@natlibfi/marc-record-validators-melinda 11.4.8 → 11.5.0

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 (69) hide show
  1. package/dist/disambiguateSeriesStatements.js +200 -0
  2. package/dist/disambiguateSeriesStatements.js.map +1 -0
  3. package/dist/disambiguateSeriesStatements.spec.js +51 -0
  4. package/dist/disambiguateSeriesStatements.spec.js.map +1 -0
  5. package/dist/fix-country-codes.spec.js +1 -1
  6. package/dist/fix-country-codes.spec.js.map +1 -1
  7. package/dist/index.js +7 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/merge-fields/mergeField.js +2 -2
  10. package/dist/merge-fields/mergeField.js.map +1 -1
  11. package/dist/merge-fields/mergeOrAddSubfield.js +5 -2
  12. package/dist/merge-fields/mergeOrAddSubfield.js.map +1 -1
  13. package/dist/merge-fields.spec.js +1 -1
  14. package/dist/merge-fields.spec.js.map +1 -1
  15. package/dist/normalize-identifiers.js +1 -1
  16. package/dist/normalize-identifiers.js.map +1 -1
  17. package/dist/normalizeFieldForComparison.js +12 -2
  18. package/dist/normalizeFieldForComparison.js.map +1 -1
  19. package/dist/normalizeSubfieldValueForComparison.js +1 -1
  20. package/dist/normalizeSubfieldValueForComparison.js.map +1 -1
  21. package/dist/prepublicationUtils.js +17 -6
  22. package/dist/prepublicationUtils.js.map +1 -1
  23. package/dist/removeInferiorDataFields.js +27 -4
  24. package/dist/removeInferiorDataFields.js.map +1 -1
  25. package/dist/sortRelatorTerms.js +6 -4
  26. package/dist/sortRelatorTerms.js.map +1 -1
  27. package/dist/translate-terms.js +1 -3
  28. package/dist/translate-terms.js.map +1 -1
  29. package/package.json +5 -2
  30. package/src/disambiguateSeriesStatements.js +228 -0
  31. package/src/disambiguateSeriesStatements.spec.js +52 -0
  32. package/src/fix-country-codes.spec.js +1 -1
  33. package/src/index.js +2 -0
  34. package/src/merge-fields/mergeField.js +4 -4
  35. package/src/merge-fields/mergeOrAddSubfield.js +3 -3
  36. package/src/merge-fields.spec.js +1 -1
  37. package/src/normalize-identifiers.js +1 -1
  38. package/src/normalizeFieldForComparison.js +9 -4
  39. package/src/normalizeSubfieldValueForComparison.js +1 -1
  40. package/src/prepublicationUtils.js +17 -6
  41. package/src/removeInferiorDataFields.js +32 -5
  42. package/src/sortRelatorTerms.js +4 -4
  43. package/src/translate-terms.js +1 -2
  44. package/test-fixtures/disambiguate-series-statements/f01/expectedResult.json +16 -0
  45. package/test-fixtures/disambiguate-series-statements/f01/metadata.json +5 -0
  46. package/test-fixtures/disambiguate-series-statements/f01/record.json +16 -0
  47. package/test-fixtures/disambiguate-series-statements/f02/expectedResult.json +16 -0
  48. package/test-fixtures/disambiguate-series-statements/f02/metadata.json +5 -0
  49. package/test-fixtures/disambiguate-series-statements/f02/record.json +16 -0
  50. package/test-fixtures/disambiguate-series-statements/f03/expectedResult.json +16 -0
  51. package/test-fixtures/disambiguate-series-statements/f03/metadata.json +5 -0
  52. package/test-fixtures/disambiguate-series-statements/f03/record.json +15 -0
  53. package/test-fixtures/disambiguate-series-statements/f04/expectedResult.json +17 -0
  54. package/test-fixtures/disambiguate-series-statements/f04/metadata.json +6 -0
  55. package/test-fixtures/disambiguate-series-statements/f04/record.json +16 -0
  56. package/test-fixtures/disambiguate-series-statements/f05/expectedResult.json +17 -0
  57. package/test-fixtures/disambiguate-series-statements/f05/metadata.json +5 -0
  58. package/test-fixtures/disambiguate-series-statements/f05/record.json +17 -0
  59. package/test-fixtures/disambiguate-series-statements/v01/expectedResult.json +6 -0
  60. package/test-fixtures/disambiguate-series-statements/v01/metadata.json +5 -0
  61. package/test-fixtures/disambiguate-series-statements/v01/record.json +16 -0
  62. package/test-fixtures/disambiguate-series-statements/v04/expectedResult.json +4 -0
  63. package/test-fixtures/disambiguate-series-statements/v04/metadata.json +6 -0
  64. package/test-fixtures/disambiguate-series-statements/v04/record.json +16 -0
  65. package/test-fixtures/remove-inferior-datafields/f13/expectedResult.json +7 -0
  66. package/test-fixtures/remove-inferior-datafields/f13/record.json +11 -0
  67. package/test-fixtures/remove-inferior-datafields/f15/expectedResult.json +12 -0
  68. package/test-fixtures/remove-inferior-datafields/f15/metadata.json +6 -0
  69. package/test-fixtures/remove-inferior-datafields/f15/record.json +17 -0
@@ -0,0 +1,16 @@
1
+ {
2
+ "leader": "12345cam a22123454i 4500",
3
+ "fields": [
4
+ { "tag": "008", "value": "012345s7890 fi |||| mul |"},
5
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields": [
6
+ {"code": "a", "value": "käytettävissä ilman laitetta"},
7
+ {"code": "b", "value": "n"},
8
+ {"code": "2", "value": "rdamedia"}
9
+ ]},
10
+ { "tag": "490", "ind1": " ", "ind2": " ", "subfields": [
11
+ {"code": "a", "value": "Sisu"},
12
+ {"code": "x", "value": "1797-7746"},
13
+ {"code": "x", "value": "1797-5905"}
14
+ ]}
15
+ ]
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "leader": "12345cam a22123454i 4500",
4
+ "fields": [
5
+ { "tag": "008", "value": "012345s7890 fi |||| mul |"},
6
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields": [
7
+ {"code": "a", "value": "käytettävissä ilman laitetta"},
8
+ {"code": "b", "value": "n"},
9
+ {"code": "2", "value": "rdamedia"}
10
+ ]},
11
+ { "tag": "490", "ind1": " ", "ind2": " ", "subfields": [
12
+ {"code": "a", "value": "Sisu (verkkoaineisto)"},
13
+ {"code": "x", "value": "1797-7746"}
14
+ ]}
15
+ ]
16
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "description": "Fixer 03: keep electric 490$x electric ISSN even though record is printed as there are no 490$x printed ISSN subfield",
3
+ "only": false,
4
+ "fix": true
5
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "leader": "12345cam a22123454i 4500",
3
+ "fields": [
4
+ { "tag": "008", "value": "012345s7890 fi |||| mul |"},
5
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields": [
6
+ {"code": "a", "value": "käytettävissä ilman laitetta"},
7
+ {"code": "b", "value": "n"},
8
+ {"code": "2", "value": "rdamedia"}
9
+ ]},
10
+ { "tag": "490", "ind1": " ", "ind2": " ", "subfields": [
11
+ {"code": "a", "value": "Sisu (verkkoaineisto)"},
12
+ {"code": "x", "value": "1797-7746"}
13
+ ]}
14
+ ]
15
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "leader": "12345cam a22123454i 4500",
4
+ "fields": [
5
+ { "tag": "008", "value": "012345s7890 fi |||| mul |"},
6
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields": [
7
+ {"code": "a", "value": "tietokonekäyttöinen"},
8
+ {"code": "b", "value": "c"},
9
+ {"code": "2", "value": "rdamedia"}
10
+ ]},
11
+ { "tag": "490", "ind1": "1", "ind2": " ", "subfields": [
12
+ {"code": "a", "value": "Studia Fennica/Studia Fennica Linguistica,"},
13
+ {"code": "x", "value": "2669-9605"},
14
+ {"code": "x", "value": "2669-9559"}
15
+ ]}
16
+ ]
17
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "Fixer 04: electronic record retains both electronic 490 fields",
3
+ "comment": "2669-9605 maps to 016390586. 2669-9559 maps to 016390480",
4
+ "only": false,
5
+ "fix": true
6
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "leader": "12345cam a22123454i 4500",
3
+ "fields": [
4
+ { "tag": "008", "value": "012345s7890 fi |||| mul |"},
5
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields": [
6
+ {"code": "a", "value": "tietokonekäyttöinen"},
7
+ {"code": "b", "value": "c"},
8
+ {"code": "2", "value": "rdamedia"}
9
+ ]},
10
+ { "tag": "490", "ind1": "1", "ind2": " ", "subfields": [
11
+ {"code": "a", "value": "Studia Fennica/Studia Fennica Linguistica,"},
12
+ {"code": "x", "value": "2669-9605"},
13
+ {"code": "x", "value": "2669-9559"}
14
+ ]}
15
+ ]
16
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "leader": "12345cam a22123454i 4500",
4
+ "fields": [
5
+ { "tag": "008", "value": "012345s7890 fi |||| mul |"},
6
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields": [
7
+ {"code": "a", "value": "käytettävissä ilman laitetta"},
8
+ {"code": "b", "value": "n"},
9
+ {"code": "2", "value": "rdamedia"}
10
+ ]},
11
+ { "tag": "490", "ind1": " ", "ind2": " ", "subfields": [
12
+ {"code": "a", "value": "Sisu,"},
13
+ {"code": "x", "value": "1797-5905 ;"},
14
+ {"code": "v", "value": "whatever 1"}
15
+ ]}
16
+ ]
17
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "description": "Fixer 05: (f02-ish with proper punctuation): remove 490$x eletronic ISSN as record is printed",
3
+ "only": false,
4
+ "fix": true
5
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "leader": "12345cam a22123454i 4500",
3
+ "fields": [
4
+ { "tag": "008", "value": "012345s7890 fi |||| mul |"},
5
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields": [
6
+ {"code": "a", "value": "käytettävissä ilman laitetta"},
7
+ {"code": "b", "value": "n"},
8
+ {"code": "2", "value": "rdamedia"}
9
+ ]},
10
+ { "tag": "490", "ind1": " ", "ind2": " ", "subfields": [
11
+ {"code": "a", "value": "Sisu,"},
12
+ {"code": "x", "value": "1797-5905,"},
13
+ {"code": "x", "value": "1797-7746 ;"},
14
+ {"code": "v", "value": "whatever 1"}
15
+ ]}
16
+ ]
17
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "message": [
3
+ "Replace '490 ## ‡a Sisu (verkkoaineisto ja painettu) ‡x 1797-7746 ‡x 1797-5905' with '490 ## ‡a Sisu (verkkoaineisto ja painettu) ‡x 1797-7746'"
4
+ ],
5
+ "valid": false
6
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "description": "Validate 01: remove printed 490$x as record is electronic. Changes -> fail validation.",
3
+ "only": false,
4
+ "fix": false
5
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "leader": "12345cam a22123454i 4500",
3
+ "fields": [
4
+ { "tag": "008", "value": "012345s7890 fi |||| mul |"},
5
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields": [
6
+ {"code": "a", "value": "tietokonekäyttöinen"},
7
+ {"code": "b", "value": "c"},
8
+ {"code": "2", "value": "rdamedia"}
9
+ ]},
10
+ { "tag": "490", "ind1": " ", "ind2": " ", "subfields": [
11
+ {"code": "a", "value": "Sisu (verkkoaineisto ja painettu)"},
12
+ {"code": "x", "value": "1797-7746"},
13
+ {"code": "x", "value": "1797-5905"}
14
+ ]}
15
+ ]
16
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "message": [],
3
+ "valid": true
4
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "Validate 04: electronic record retains both electronic 490$x fields. No changes -> pass validation",
3
+ "comment": "2669-9605 maps to 016390586. 2669-9559 maps to 016390480",
4
+ "only": false,
5
+ "fix": false
6
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "leader": "12345cam a22123454i 4500",
3
+ "fields": [
4
+ { "tag": "008", "value": "012345s7890 fi |||| mul |"},
5
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields": [
6
+ {"code": "a", "value": "tietokonekäyttöinen"},
7
+ {"code": "b", "value": "c"},
8
+ {"code": "2", "value": "rdamedia"}
9
+ ]},
10
+ { "tag": "490", "ind1": "1", "ind2": " ", "subfields": [
11
+ {"code": "a", "value": "Studia Fennica/Studia Fennica Linguistica,"},
12
+ {"code": "x", "value": "2669-9605"},
13
+ {"code": "x", "value": "2669-9559"}
14
+ ]}
15
+ ]
16
+ }
@@ -4,6 +4,13 @@
4
4
  { "tag": "001", "value": "f13" },
5
5
  { "tag": "653", "ind1": " ", "ind2": " ", "subfields": [
6
6
  { "code": "a", "value": "taikasana"}
7
+ ]},
8
+ { "tag": "653", "ind1": " ", "ind2": " ", "subfields": [
9
+ { "code": "a", "value": "toinen"}
10
+ ]},
11
+ { "tag": "653", "ind1": " ", "ind2": " ", "subfields": [
12
+ { "code": "a", "value": "kolmas"},
13
+ { "code": "g", "value": "ENNAKKOTIETO"}
7
14
  ]}
8
15
  ],
9
16
  "leader": "01331cam a22003498i 4500"
@@ -8,6 +8,17 @@
8
8
  { "tag": "653", "ind1": " ", "ind2": " ", "subfields": [
9
9
  { "code": "a", "value": "taikasana"},
10
10
  { "code": "g", "value": "ENNAKKOTIETO"}
11
+ ]},
12
+ { "tag": "653", "ind1": " ", "ind2": " ", "subfields": [
13
+ { "code": "a", "value": "toinen"}
14
+ ]},
15
+ { "tag": "653", "ind1": " ", "ind2": " ", "subfields": [
16
+ { "code": "a", "value": "toinen"},
17
+ { "code": "g", "value": "ennakkotieto"}
18
+ ]},
19
+ { "tag": "653", "ind1": " ", "ind2": " ", "subfields": [
20
+ { "code": "a", "value": "kolmas"},
21
+ { "code": "g", "value": "ENNAKKOTIETO"}
11
22
  ]}
12
23
  ],
13
24
  "leader": "01331cam a22003498i 4500"
@@ -0,0 +1,12 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "fields": [
4
+ { "tag": "001", "value": "f14" },
5
+ { "tag": "650", "ind1": " ", "ind2": "7", "subfields": [ { "code": "a", "value": "termi1"}, {"code": "2", "value": "yso/fin"}]},
6
+ { "tag": "650", "ind1": " ", "ind2": "2", "subfields": [ { "code": "a", "value": "termi2"}]},
7
+ { "tag": "651", "ind1": " ", "ind2": "2", "subfields": [ { "code": "a", "value": "Termia1"}, {"code": "2", "value": "yso/fin"}]},
8
+ { "tag": "653", "ind1": " ", "ind2": "0", "subfields": [ { "code": "a", "value": "Termia1"}]}
9
+ ],
10
+ "leader": "01331cam a22003498i 4500"
11
+
12
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "f14/MET-575: remove 653 fields",
3
+ "comment": "This will solve MET-575 during Merge postprocess stage",
4
+ "fix": true,
5
+ "only": false
6
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "fields": [
4
+ { "tag": "001", "value": "f14" },
5
+ { "tag": "650", "ind1": " ", "ind2": "7", "subfields": [ { "code": "a", "value": "termi1"}, {"code": "2", "value": "yso/fin"}]},
6
+ { "tag": "650", "ind1": " ", "ind2": "2", "subfields": [ { "code": "a", "value": "termi2"}]},
7
+ { "tag": "651", "ind1": " ", "ind2": "2", "subfields": [ { "code": "a", "value": "Termia1"}, {"code": "2", "value": "yso/fin"}]},
8
+ { "tag": "653", "ind1": " ", "ind2": " ", "subfields": [ { "code": "a", "value": "termi1"}]},
9
+ { "tag": "653", "ind1": " ", "ind2": "0", "subfields": [ { "code": "a", "value": "termi1"}]},
10
+ { "tag": "653", "ind1": " ", "ind2": " ", "subfields": [ { "code": "a", "value": "termi2"}]},
11
+ { "tag": "653", "ind1": " ", "ind2": "0", "subfields": [ { "code": "a", "value": "termi2"}]},
12
+ { "tag": "653", "ind1": " ", "ind2": " ", "subfields": [ { "code": "a", "value": "Termia1"}]},
13
+ { "tag": "653", "ind1": " ", "ind2": "0", "subfields": [ { "code": "a", "value": "Termia1"}]}
14
+ ],
15
+ "leader": "01331cam a22003498i 4500"
16
+
17
+ }