pro-editor-schema 1.2.0 → 1.2.2

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 CHANGED
@@ -86,21 +86,9 @@ declare const SCHEMAS: {
86
86
  email: Schema<readonly ["store", "ele-id"], readonly []>;
87
87
  org: Schema<readonly ["store", "ele-id"], readonly []>;
88
88
  degrees: Schema<readonly ["store", "ele-id"], readonly []>;
89
- dialogue: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", {
90
- readonly name: "role";
91
- readonly values: readonly ["add-element"];
92
- readonly defaultValue: "add-element";
93
- }]>;
94
- line: Schema<readonly ["store", "ele-id"], readonly [{
95
- readonly name: "role";
96
- readonly values: readonly ["add-element"];
97
- readonly defaultValue: "add-element";
98
- }]>;
99
- speaker: Schema<readonly ["store", "ele-id"], readonly [{
100
- readonly name: "role";
101
- readonly values: readonly ["add-element"];
102
- readonly defaultValue: "add-element";
103
- }]>;
89
+ dialogue: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", "role", "trackmsg"]>;
90
+ line: Schema<readonly ["store", "ele-id"], readonly ["role"]>;
91
+ speaker: Schema<readonly ["store", "ele-id"], readonly ["role"]>;
104
92
  equation: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", {
105
93
  readonly name: "eqn-data";
106
94
  readonly values: readonly ["new", "updated"];
@@ -251,7 +239,7 @@ declare const SCHEMAS: {
251
239
  readonly values: readonly ["add-element", "change-element"];
252
240
  readonly defaultValue: "add-element";
253
241
  }]>;
254
- poem: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", "role"]>;
242
+ poem: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", "role", "trackmsg"]>;
255
243
  blockquote: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", "xmlid", "data-tagname", "element-change-description", {
256
244
  readonly name: "role";
257
245
  readonly values: readonly ["add-element", "extract_group", "change-element"];
@@ -441,21 +429,9 @@ declare const ELEMENT_SCHEMAS: {
441
429
  email: Schema<readonly ["store", "ele-id"], readonly []>;
442
430
  org: Schema<readonly ["store", "ele-id"], readonly []>;
443
431
  degrees: Schema<readonly ["store", "ele-id"], readonly []>;
444
- dialogue: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", {
445
- readonly name: "role";
446
- readonly values: readonly ["add-element"];
447
- readonly defaultValue: "add-element";
448
- }]>;
449
- line: Schema<readonly ["store", "ele-id"], readonly [{
450
- readonly name: "role";
451
- readonly values: readonly ["add-element"];
452
- readonly defaultValue: "add-element";
453
- }]>;
454
- speaker: Schema<readonly ["store", "ele-id"], readonly [{
455
- readonly name: "role";
456
- readonly values: readonly ["add-element"];
457
- readonly defaultValue: "add-element";
458
- }]>;
432
+ dialogue: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", "role", "trackmsg"]>;
433
+ line: Schema<readonly ["store", "ele-id"], readonly ["role"]>;
434
+ speaker: Schema<readonly ["store", "ele-id"], readonly ["role"]>;
459
435
  equation: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", {
460
436
  readonly name: "eqn-data";
461
437
  readonly values: readonly ["new", "updated"];
@@ -606,7 +582,7 @@ declare const ELEMENT_SCHEMAS: {
606
582
  readonly values: readonly ["add-element", "change-element"];
607
583
  readonly defaultValue: "add-element";
608
584
  }]>;
609
- poem: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", "role"]>;
585
+ poem: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", "role", "trackmsg"]>;
610
586
  blockquote: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", "xmlid", "data-tagname", "element-change-description", {
611
587
  readonly name: "role";
612
588
  readonly values: readonly ["add-element", "extract_group", "change-element"];
package/dist/index.d.ts CHANGED
@@ -86,21 +86,9 @@ declare const SCHEMAS: {
86
86
  email: Schema<readonly ["store", "ele-id"], readonly []>;
87
87
  org: Schema<readonly ["store", "ele-id"], readonly []>;
88
88
  degrees: Schema<readonly ["store", "ele-id"], readonly []>;
89
- dialogue: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", {
90
- readonly name: "role";
91
- readonly values: readonly ["add-element"];
92
- readonly defaultValue: "add-element";
93
- }]>;
94
- line: Schema<readonly ["store", "ele-id"], readonly [{
95
- readonly name: "role";
96
- readonly values: readonly ["add-element"];
97
- readonly defaultValue: "add-element";
98
- }]>;
99
- speaker: Schema<readonly ["store", "ele-id"], readonly [{
100
- readonly name: "role";
101
- readonly values: readonly ["add-element"];
102
- readonly defaultValue: "add-element";
103
- }]>;
89
+ dialogue: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", "role", "trackmsg"]>;
90
+ line: Schema<readonly ["store", "ele-id"], readonly ["role"]>;
91
+ speaker: Schema<readonly ["store", "ele-id"], readonly ["role"]>;
104
92
  equation: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", {
105
93
  readonly name: "eqn-data";
106
94
  readonly values: readonly ["new", "updated"];
@@ -251,7 +239,7 @@ declare const SCHEMAS: {
251
239
  readonly values: readonly ["add-element", "change-element"];
252
240
  readonly defaultValue: "add-element";
253
241
  }]>;
254
- poem: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", "role"]>;
242
+ poem: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", "role", "trackmsg"]>;
255
243
  blockquote: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", "xmlid", "data-tagname", "element-change-description", {
256
244
  readonly name: "role";
257
245
  readonly values: readonly ["add-element", "extract_group", "change-element"];
@@ -441,21 +429,9 @@ declare const ELEMENT_SCHEMAS: {
441
429
  email: Schema<readonly ["store", "ele-id"], readonly []>;
442
430
  org: Schema<readonly ["store", "ele-id"], readonly []>;
443
431
  degrees: Schema<readonly ["store", "ele-id"], readonly []>;
444
- dialogue: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", {
445
- readonly name: "role";
446
- readonly values: readonly ["add-element"];
447
- readonly defaultValue: "add-element";
448
- }]>;
449
- line: Schema<readonly ["store", "ele-id"], readonly [{
450
- readonly name: "role";
451
- readonly values: readonly ["add-element"];
452
- readonly defaultValue: "add-element";
453
- }]>;
454
- speaker: Schema<readonly ["store", "ele-id"], readonly [{
455
- readonly name: "role";
456
- readonly values: readonly ["add-element"];
457
- readonly defaultValue: "add-element";
458
- }]>;
432
+ dialogue: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", "role", "trackmsg"]>;
433
+ line: Schema<readonly ["store", "ele-id"], readonly ["role"]>;
434
+ speaker: Schema<readonly ["store", "ele-id"], readonly ["role"]>;
459
435
  equation: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", {
460
436
  readonly name: "eqn-data";
461
437
  readonly values: readonly ["new", "updated"];
@@ -606,7 +582,7 @@ declare const ELEMENT_SCHEMAS: {
606
582
  readonly values: readonly ["add-element", "change-element"];
607
583
  readonly defaultValue: "add-element";
608
584
  }]>;
609
- poem: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", "role"]>;
585
+ poem: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", "role", "trackmsg"]>;
610
586
  blockquote: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date", "xmlid", "data-tagname", "element-change-description", {
611
587
  readonly name: "role";
612
588
  readonly values: readonly ["add-element", "extract_group", "change-element"];
package/dist/index.js CHANGED
@@ -839,13 +839,7 @@ var LINE_SCHEMA = createSchema({
839
839
  kind: "element",
840
840
  tag: LINE_TAG,
841
841
  requiredAttributes: [...ID_ATTRS],
842
- optionalAttributes: [
843
- {
844
- name: "role",
845
- values: ["add-element"],
846
- defaultValue: "add-element"
847
- }
848
- ],
842
+ optionalAttributes: ["role"],
849
843
  allowedChildrenCodes: [
850
844
  ...ATOM_CODES_ALLOWED_CHILDREN,
851
845
  ...INLINE_ELEMENT_CODES_ALLOWED_CHILDREN
@@ -858,13 +852,7 @@ var SPEAKER_SCHEMA = createSchema({
858
852
  kind: "element",
859
853
  tag: SPEAKER_TAG,
860
854
  requiredAttributes: [...ID_ATTRS],
861
- optionalAttributes: [
862
- {
863
- name: "role",
864
- values: ["add-element"],
865
- defaultValue: "add-element"
866
- }
867
- ],
855
+ optionalAttributes: ["role"],
868
856
  allowedChildrenCodes: [...ATOM_CODES_ALLOWED_CHILDREN]
869
857
  });
870
858
 
@@ -874,16 +862,10 @@ var DIALOGUE_SCHEMA = createSchema({
874
862
  kind: "element",
875
863
  tag: DIALOGUE_TAG,
876
864
  requiredAttributes: [...ID_ATTRS],
877
- optionalAttributes: [
878
- ...TRACK_CHANGES_ATTRS,
879
- {
880
- name: "role",
881
- values: ["add-element"],
882
- defaultValue: "add-element"
883
- }
884
- ],
865
+ optionalAttributes: [...TRACK_CHANGES_ATTRS, "role", "trackmsg"],
866
+ defaultChildCode: "line",
885
867
  allowedChildrenCodes: [
886
- { code: "line", required: false },
868
+ { code: "line", required: true },
887
869
  { code: "speaker", required: true }
888
870
  ]
889
871
  });
@@ -2098,7 +2080,7 @@ var POEM_SCHEMA = createSchema({
2098
2080
  kind: "element",
2099
2081
  tag: POEM_TAG,
2100
2082
  requiredAttributes: [...ID_ATTRS],
2101
- optionalAttributes: [...TRACK_CHANGES_ATTRS, "role"],
2083
+ optionalAttributes: [...TRACK_CHANGES_ATTRS, "role", "trackmsg"],
2102
2084
  defaultChildCode: "line",
2103
2085
  allowedChildrenCodes: [
2104
2086
  { code: "line", required: true },
@@ -3126,6 +3108,29 @@ var validateHeadingHierarchy = (element) => {
3126
3108
  return errors;
3127
3109
  };
3128
3110
 
3111
+ // src/validation/validateOlink.ts
3112
+ var ORCID_PATTERN = /^\d{4}-\d{4}-\d{4}-\d{4}$/;
3113
+ var validateOlink = (element) => {
3114
+ const errors = [];
3115
+ if (isDeletedElement(element)) {
3116
+ return errors;
3117
+ }
3118
+ const text = retrieveTextIgnoringNodesWithSelector(element);
3119
+ const isEmpty = text.length === 0;
3120
+ const isValidOrcid = ORCID_PATTERN.test(text);
3121
+ if (isEmpty || isValidOrcid) {
3122
+ return errors;
3123
+ }
3124
+ addValidationIssue(errors, {
3125
+ store: getStore(element.parentElement ?? element),
3126
+ title: "Invalid ORCID",
3127
+ kind: "forbidden",
3128
+ description: "The ORCiD is not the correct format. Please check it and adjust.",
3129
+ level: "warning"
3130
+ });
3131
+ return errors;
3132
+ };
3133
+
3129
3134
  // src/validation/validateXml.ts
3130
3135
  var validateElement = (element, root, elementsToLink, linkElements, schemasToValidateAgainst) => {
3131
3136
  if (isIgnoredElement(element)) {
@@ -3149,6 +3154,9 @@ var validateElement = (element, root, elementsToLink, linkElements, schemasToVal
3149
3154
  if (schema.code === HEADING_SCHEMA.code) {
3150
3155
  errors.push(...validateHeadingHierarchy(element));
3151
3156
  }
3157
+ if (schema.code === OLINK_SCHEMA.code) {
3158
+ errors.push(...validateOlink(element));
3159
+ }
3152
3160
  if (isIgnoredValidation(schema.code)) {
3153
3161
  return errors;
3154
3162
  }
package/dist/index.mjs CHANGED
@@ -759,13 +759,7 @@ var LINE_SCHEMA = createSchema({
759
759
  kind: "element",
760
760
  tag: LINE_TAG,
761
761
  requiredAttributes: [...ID_ATTRS],
762
- optionalAttributes: [
763
- {
764
- name: "role",
765
- values: ["add-element"],
766
- defaultValue: "add-element"
767
- }
768
- ],
762
+ optionalAttributes: ["role"],
769
763
  allowedChildrenCodes: [
770
764
  ...ATOM_CODES_ALLOWED_CHILDREN,
771
765
  ...INLINE_ELEMENT_CODES_ALLOWED_CHILDREN
@@ -778,13 +772,7 @@ var SPEAKER_SCHEMA = createSchema({
778
772
  kind: "element",
779
773
  tag: SPEAKER_TAG,
780
774
  requiredAttributes: [...ID_ATTRS],
781
- optionalAttributes: [
782
- {
783
- name: "role",
784
- values: ["add-element"],
785
- defaultValue: "add-element"
786
- }
787
- ],
775
+ optionalAttributes: ["role"],
788
776
  allowedChildrenCodes: [...ATOM_CODES_ALLOWED_CHILDREN]
789
777
  });
790
778
 
@@ -794,16 +782,10 @@ var DIALOGUE_SCHEMA = createSchema({
794
782
  kind: "element",
795
783
  tag: DIALOGUE_TAG,
796
784
  requiredAttributes: [...ID_ATTRS],
797
- optionalAttributes: [
798
- ...TRACK_CHANGES_ATTRS,
799
- {
800
- name: "role",
801
- values: ["add-element"],
802
- defaultValue: "add-element"
803
- }
804
- ],
785
+ optionalAttributes: [...TRACK_CHANGES_ATTRS, "role", "trackmsg"],
786
+ defaultChildCode: "line",
805
787
  allowedChildrenCodes: [
806
- { code: "line", required: false },
788
+ { code: "line", required: true },
807
789
  { code: "speaker", required: true }
808
790
  ]
809
791
  });
@@ -2018,7 +2000,7 @@ var POEM_SCHEMA = createSchema({
2018
2000
  kind: "element",
2019
2001
  tag: POEM_TAG,
2020
2002
  requiredAttributes: [...ID_ATTRS],
2021
- optionalAttributes: [...TRACK_CHANGES_ATTRS, "role"],
2003
+ optionalAttributes: [...TRACK_CHANGES_ATTRS, "role", "trackmsg"],
2022
2004
  defaultChildCode: "line",
2023
2005
  allowedChildrenCodes: [
2024
2006
  { code: "line", required: true },
@@ -3046,6 +3028,29 @@ var validateHeadingHierarchy = (element) => {
3046
3028
  return errors;
3047
3029
  };
3048
3030
 
3031
+ // src/validation/validateOlink.ts
3032
+ var ORCID_PATTERN = /^\d{4}-\d{4}-\d{4}-\d{4}$/;
3033
+ var validateOlink = (element) => {
3034
+ const errors = [];
3035
+ if (isDeletedElement(element)) {
3036
+ return errors;
3037
+ }
3038
+ const text = retrieveTextIgnoringNodesWithSelector(element);
3039
+ const isEmpty = text.length === 0;
3040
+ const isValidOrcid = ORCID_PATTERN.test(text);
3041
+ if (isEmpty || isValidOrcid) {
3042
+ return errors;
3043
+ }
3044
+ addValidationIssue(errors, {
3045
+ store: getStore(element.parentElement ?? element),
3046
+ title: "Invalid ORCID",
3047
+ kind: "forbidden",
3048
+ description: "The ORCiD is not the correct format. Please check it and adjust.",
3049
+ level: "warning"
3050
+ });
3051
+ return errors;
3052
+ };
3053
+
3049
3054
  // src/validation/validateXml.ts
3050
3055
  var validateElement = (element, root, elementsToLink, linkElements, schemasToValidateAgainst) => {
3051
3056
  if (isIgnoredElement(element)) {
@@ -3069,6 +3074,9 @@ var validateElement = (element, root, elementsToLink, linkElements, schemasToVal
3069
3074
  if (schema.code === HEADING_SCHEMA.code) {
3070
3075
  errors.push(...validateHeadingHierarchy(element));
3071
3076
  }
3077
+ if (schema.code === OLINK_SCHEMA.code) {
3078
+ errors.push(...validateOlink(element));
3079
+ }
3072
3080
  if (isIgnoredValidation(schema.code)) {
3073
3081
  return errors;
3074
3082
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pro-editor-schema",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "Pro Editor XML schemas",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",