pro-editor-schema 1.2.0 → 1.2.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.
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,27 @@ 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).trim();
3119
+ if (ORCID_PATTERN.test(text)) {
3120
+ return errors;
3121
+ }
3122
+ addValidationIssue(errors, {
3123
+ store: getStore(element.parentElement ?? element),
3124
+ title: "Invalid ORCID",
3125
+ kind: "forbidden",
3126
+ description: "The ORCiD is not the correct format. Please check it and adjust.",
3127
+ level: "warning"
3128
+ });
3129
+ return errors;
3130
+ };
3131
+
3129
3132
  // src/validation/validateXml.ts
3130
3133
  var validateElement = (element, root, elementsToLink, linkElements, schemasToValidateAgainst) => {
3131
3134
  if (isIgnoredElement(element)) {
@@ -3149,6 +3152,9 @@ var validateElement = (element, root, elementsToLink, linkElements, schemasToVal
3149
3152
  if (schema.code === HEADING_SCHEMA.code) {
3150
3153
  errors.push(...validateHeadingHierarchy(element));
3151
3154
  }
3155
+ if (schema.code === OLINK_SCHEMA.code) {
3156
+ errors.push(...validateOlink(element));
3157
+ }
3152
3158
  if (isIgnoredValidation(schema.code)) {
3153
3159
  return errors;
3154
3160
  }
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,27 @@ 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).trim();
3039
+ if (ORCID_PATTERN.test(text)) {
3040
+ return errors;
3041
+ }
3042
+ addValidationIssue(errors, {
3043
+ store: getStore(element.parentElement ?? element),
3044
+ title: "Invalid ORCID",
3045
+ kind: "forbidden",
3046
+ description: "The ORCiD is not the correct format. Please check it and adjust.",
3047
+ level: "warning"
3048
+ });
3049
+ return errors;
3050
+ };
3051
+
3049
3052
  // src/validation/validateXml.ts
3050
3053
  var validateElement = (element, root, elementsToLink, linkElements, schemasToValidateAgainst) => {
3051
3054
  if (isIgnoredElement(element)) {
@@ -3069,6 +3072,9 @@ var validateElement = (element, root, elementsToLink, linkElements, schemasToVal
3069
3072
  if (schema.code === HEADING_SCHEMA.code) {
3070
3073
  errors.push(...validateHeadingHierarchy(element));
3071
3074
  }
3075
+ if (schema.code === OLINK_SCHEMA.code) {
3076
+ errors.push(...validateOlink(element));
3077
+ }
3072
3078
  if (isIgnoredValidation(schema.code)) {
3073
3079
  return errors;
3074
3080
  }
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.1",
4
4
  "description": "Pro Editor XML schemas",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",