@natlibfi/marc-record-validators-melinda 11.3.1 → 11.3.2-alpha.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.
Files changed (80) hide show
  1. package/dist/index.js +7 -0
  2. package/dist/index.js.map +1 -1
  3. package/dist/melindaCustomMergeFields.json +5120 -0
  4. package/dist/merge-fields/config.json +83 -0
  5. package/dist/merge-fields/controlSubfields.js +278 -0
  6. package/dist/merge-fields/controlSubfields.js.map +1 -0
  7. package/dist/merge-fields/counterpartField.js +674 -0
  8. package/dist/merge-fields/counterpartField.js.map +1 -0
  9. package/dist/merge-fields/index.js +76 -0
  10. package/dist/merge-fields/index.js.map +1 -0
  11. package/dist/merge-fields/mergableIndicator.js +95 -0
  12. package/dist/merge-fields/mergableIndicator.js.map +1 -0
  13. package/dist/merge-fields/mergableTag.js +33 -0
  14. package/dist/merge-fields/mergableTag.js.map +1 -0
  15. package/dist/merge-fields/mergeConstraints.js +1225 -0
  16. package/dist/merge-fields/mergeConstraints.js.map +1 -0
  17. package/dist/merge-fields/mergeField.js +190 -0
  18. package/dist/merge-fields/mergeField.js.map +1 -0
  19. package/dist/merge-fields/mergeIndicator.js +171 -0
  20. package/dist/merge-fields/mergeIndicator.js.map +1 -0
  21. package/dist/merge-fields/mergeOrAddPostprocess.js +57 -0
  22. package/dist/merge-fields/mergeOrAddPostprocess.js.map +1 -0
  23. package/dist/merge-fields/mergeOrAddSubfield.js +203 -0
  24. package/dist/merge-fields/mergeOrAddSubfield.js.map +1 -0
  25. package/dist/merge-fields/mergeSubfield.js +277 -0
  26. package/dist/merge-fields/mergeSubfield.js.map +1 -0
  27. package/dist/merge-fields/removeDuplicateSubfields.js +48 -0
  28. package/dist/merge-fields/removeDuplicateSubfields.js.map +1 -0
  29. package/dist/merge-fields/worldKnowledge.js +98 -0
  30. package/dist/merge-fields/worldKnowledge.js.map +1 -0
  31. package/dist/merge-fields.spec.js +51 -0
  32. package/dist/merge-fields.spec.js.map +1 -0
  33. package/dist/subfield6Utils.js +16 -1
  34. package/dist/subfield6Utils.js.map +1 -1
  35. package/dist/utils.js +108 -0
  36. package/dist/utils.js.map +1 -1
  37. package/package.json +6 -6
  38. package/src/index.js +3 -1
  39. package/src/melindaCustomMergeFields.json +5120 -0
  40. package/src/merge-fields/config.json +83 -0
  41. package/src/merge-fields/controlSubfields.js +307 -0
  42. package/src/merge-fields/counterpartField.js +736 -0
  43. package/src/merge-fields/index.js +69 -0
  44. package/src/merge-fields/mergableIndicator.js +90 -0
  45. package/src/merge-fields/mergableTag.js +89 -0
  46. package/src/merge-fields/mergeConstraints.js +309 -0
  47. package/src/merge-fields/mergeField.js +187 -0
  48. package/src/merge-fields/mergeIndicator.js +185 -0
  49. package/src/merge-fields/mergeOrAddPostprocess.js +56 -0
  50. package/src/merge-fields/mergeOrAddSubfield.js +218 -0
  51. package/src/merge-fields/mergeSubfield.js +306 -0
  52. package/src/merge-fields/removeDuplicateSubfields.js +50 -0
  53. package/src/merge-fields/worldKnowledge.js +104 -0
  54. package/src/merge-fields.spec.js +52 -0
  55. package/src/subfield6Utils.js +14 -1
  56. package/src/utils.js +119 -0
  57. package/test-fixtures/merge-fields/f01/expectedResult.json +11 -0
  58. package/test-fixtures/merge-fields/f01/metadata.json +5 -0
  59. package/test-fixtures/merge-fields/f01/record.json +13 -0
  60. package/test-fixtures/merge-fields/f02/expectedResult.json +14 -0
  61. package/test-fixtures/merge-fields/f02/metadata.json +6 -0
  62. package/test-fixtures/merge-fields/f02/record.json +16 -0
  63. package/test-fixtures/merge-fields/f03/expectedResult.json +17 -0
  64. package/test-fixtures/merge-fields/f03/metadata.json +7 -0
  65. package/test-fixtures/merge-fields/f03/record.json +23 -0
  66. package/test-fixtures/merge-fields/f04/expectedResult.json +14 -0
  67. package/test-fixtures/merge-fields/f04/metadata.json +5 -0
  68. package/test-fixtures/merge-fields/f04/record.json +19 -0
  69. package/test-fixtures/merge-fields/v01/expectedResult.json +6 -0
  70. package/test-fixtures/merge-fields/v01/metadata.json +5 -0
  71. package/test-fixtures/merge-fields/v01/record.json +13 -0
  72. package/test-fixtures/merge-fields/v02/expectedResult.json +4 -0
  73. package/test-fixtures/merge-fields/v02/metadata.json +5 -0
  74. package/test-fixtures/merge-fields/v02/record.json +13 -0
  75. package/test-fixtures/merge-fields/v03/expectedResult.json +6 -0
  76. package/test-fixtures/merge-fields/v03/metadata.json +6 -0
  77. package/test-fixtures/merge-fields/v03/record.json +16 -0
  78. package/test-fixtures/merge-fields/v04/expectedResult.json +4 -0
  79. package/test-fixtures/merge-fields/v04/metadata.json +6 -0
  80. package/test-fixtures/merge-fields/v04/record.json +16 -0
@@ -0,0 +1,13 @@
1
+ {
2
+ "leader": "12345cam a22123454i 4500",
3
+ "fields": [
4
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
5
+ { "code": "a", "value": "Sukunimi, Etunimi," },
6
+ { "code": "e", "value": "säveltäjä." }
7
+ ]},
8
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
9
+ { "code": "a", "value": "Sukunimi, Etunimi," },
10
+ { "code": "e", "value": "sovittaja." }
11
+ ]}
12
+ ]
13
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "fields": [
4
+ { "tag": "005", "value": "20220202020202.0" },
5
+ { "tag": "100", "ind1": "1", "ind2": " ", "subfields": [
6
+ { "code": "a", "value": "Sukunimi, Etunimi," },
7
+ { "code": "e", "value": "kirjoittaja," },
8
+ { "code": "e", "value": "kuvittaja," },
9
+ { "code": "e", "value": "valokuvaaja." }
10
+
11
+ ]}
12
+ ],
13
+ "leader": ""
14
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "merge relator terms fields 100 + 700",
3
+ "comment": "Note that relator term sorting is used from another validator",
4
+ "fix": true,
5
+ "only": false
6
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "fields": [
3
+ { "tag": "005", "value": "20220202020202.0" },
4
+ { "tag": "100", "ind1": "1", "ind2": " ", "subfields": [
5
+ { "code": "a", "value": "Sukunimi, Etunimi," },
6
+ { "code": "e", "value": "kuvittaja." }
7
+ ]},
8
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
9
+ { "code": "a", "value": "Sukunimi, Etunimi," },
10
+ { "code": "e", "value": "kirjoittaja," },
11
+ { "code": "e", "value": "valokuvaaja." }
12
+ ]}
13
+ ],
14
+
15
+ "leader": ""
16
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "fields": [
4
+ { "tag": "005", "value": "20220202020202.0" },
5
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
6
+ { "code": "a", "value": "Sukunimi, Etunimi," },
7
+ { "code": "e", "value": "kirjoittaja," },
8
+ { "code": "e", "value": "kuvittaja." }
9
+ ]},
10
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
11
+ { "code": "a", "value": "Sukunimi2, Etunimi," },
12
+ { "code": "e", "value": "kuvittaja," },
13
+ { "code": "e", "value": "kirjoittaja." }
14
+ ]}
15
+ ],
16
+ "leader": ""
17
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "description": "merge relator terms 7XX: merge termless",
3
+ "comment": "Note that Sukunimi2's $e subfields are not sorted. Nothing is added to the original/earlier field, thus field.merged flag is not set.",
4
+ "only": false,
5
+ "fix": true
6
+
7
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "fields": [
3
+ { "tag": "005", "value": "20220202020202.0" },
4
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
5
+ { "code": "a", "value": "Sukunimi, Etunimi." }
6
+ ]},
7
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
8
+ { "code": "a", "value": "Sukunimi, Etunimi," },
9
+ { "code": "e", "value": "kuvittaja," },
10
+ { "code": "e", "value": "kirjoittaja." }
11
+ ]},
12
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
13
+ { "code": "a", "value": "Sukunimi2, Etunimi," },
14
+ { "code": "e", "value": "kuvittaja," },
15
+ { "code": "e", "value": "kirjoittaja." }
16
+ ]},
17
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
18
+ { "code": "a", "value": "Sukunimi2, Etunimi." }
19
+ ]}
20
+ ],
21
+
22
+ "leader": ""
23
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "leader": "12345cam a22123454i 4500",
4
+ "fields": [
5
+ { "tag": "100", "ind1": "1", "ind2": " ", "subfields": [
6
+ { "code": "a", "value": "Sukunimi, Etunimi," },
7
+ { "code": "d", "value": "1890-1940," },
8
+ { "code": "e", "value": "säveltäjä," },
9
+ { "code": "e", "value": "sanoittaja," },
10
+ { "code": "e", "value": "sovittaja." },
11
+ { "code": "0", "value": "(FI-ASTERI-N)000123456" }
12
+ ]}
13
+ ]
14
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "description": "F04: Fix: merge a 100 field and multiple 700 fields into a one 100 field",
3
+ "only": false,
4
+ "fix": true
5
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "leader": "12345cam a22123454i 4500",
3
+ "fields": [
4
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
5
+ { "code": "a", "value": "Sukunimi, Etunimi," },
6
+ { "code": "e", "value": "säveltäjä." }
7
+ ]},
8
+ { "tag": "100", "ind1": "1", "ind2": " ", "subfields": [
9
+ { "code": "a", "value": "Sukunimi, Etunimi," },
10
+ { "code": "e", "value": "sovittaja." },
11
+ { "code": "0", "value": "(FI-ASTERI-N)000123456" }
12
+ ]},
13
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
14
+ { "code": "a", "value": "Sukunimi, Etunimi," },
15
+ { "code": "d", "value": "1890-1940," },
16
+ { "code": "e", "value": "sanoittaja." }
17
+ ]}
18
+ ]
19
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "message": [
3
+ "Merge fields within record: number of fields changes from 2 to 1"
4
+ ],
5
+ "valid": false
6
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "description": "Validation: merge two 700 fields",
3
+ "only": false,
4
+ "fix": false
5
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "leader": "12345cam a22123454i 4500",
3
+ "fields": [
4
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
5
+ { "code": "a", "value": "Sukunimi, Etunimi," },
6
+ { "code": "e", "value": "säveltäjä." }
7
+ ]},
8
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
9
+ { "code": "a", "value": "Sukunimi, Etunimi," },
10
+ { "code": "e", "value": "sovittaja." }
11
+ ]}
12
+ ]
13
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "message": [],
3
+ "valid": true
4
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "description": "Validation: don't merge two 700 fields",
3
+ "only": false,
4
+ "fix": false
5
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "leader": "12345cam a22123454i 4500",
3
+ "fields": [
4
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
5
+ { "code": "a", "value": "Sukunimi, Etunimi," },
6
+ { "code": "e", "value": "säveltäjä." }
7
+ ]},
8
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
9
+ { "code": "a", "value": "Toinen-Sukunimi, Etunimi," },
10
+ { "code": "e", "value": "sovittaja." }
11
+ ]}
12
+ ]
13
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "message": [
3
+ "Merge fields within record: number of fields changes from 3 to 2"
4
+ ],
5
+ "valid": false
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "01: validate 100/700 relator term merge",
3
+ "only": false,
4
+ "fix": false
5
+
6
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "fields": [
3
+ { "tag": "005", "value": "20220202020202.0" },
4
+ { "tag": "100", "ind1": "1", "ind2": " ", "subfields": [
5
+ { "code": "a", "value": "Sukunimi, Etunimi," },
6
+ { "code": "e", "value": "kuvittaja." }
7
+ ]},
8
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
9
+ { "code": "a", "value": "Sukunimi, Etunimi," },
10
+ { "code": "e", "value": "kirjoittaja," },
11
+ { "code": "e", "value": "valokuvaaja." }
12
+ ]}
13
+ ],
14
+
15
+ "leader": ""
16
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "message": [],
3
+ "valid": true
4
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "v02: Relator field merge has nothing to do",
3
+ "only": false,
4
+ "fix": false
5
+
6
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "fields": [
3
+ { "tag": "005", "value": "20220202020202.0" },
4
+ { "tag": "100", "ind1": "1", "ind2": " ", "subfields": [
5
+ { "code": "a", "value": "Sukunimi, Etunimi," },
6
+ { "code": "e", "value": "kuvittaja." }
7
+ ]},
8
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
9
+ { "code": "a", "value": "Eri-Sukunimi, Etunimi," },
10
+ { "code": "e", "value": "kirjoittaja," },
11
+ { "code": "e", "value": "valokuvaaja." }
12
+ ]}
13
+ ],
14
+
15
+ "leader": ""
16
+ }