@natlibfi/marc-record-validators-melinda 11.2.1 → 11.2.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 (229) hide show
  1. package/dist/access-rights.spec.js +1 -1
  2. package/dist/access-rights.spec.js.map +1 -1
  3. package/dist/addMissingField041.js.map +1 -1
  4. package/dist/addMissingField041.spec.js +1 -1
  5. package/dist/addMissingField041.spec.js.map +1 -1
  6. package/dist/addMissingField336.js.map +1 -1
  7. package/dist/addMissingField336.spec.js +1 -1
  8. package/dist/addMissingField336.spec.js.map +1 -1
  9. package/dist/addMissingField337.js.map +1 -1
  10. package/dist/addMissingField337.spec.js +1 -1
  11. package/dist/addMissingField337.spec.js.map +1 -1
  12. package/dist/addMissingField338.js.map +1 -1
  13. package/dist/addMissingField338.spec.js +1 -1
  14. package/dist/addMissingField338.spec.js.map +1 -1
  15. package/dist/cyrillux-usemarcon-replacement.js +82 -22
  16. package/dist/cyrillux-usemarcon-replacement.js.map +1 -1
  17. package/dist/cyrillux-usemarcon-replacement.spec.js +1 -1
  18. package/dist/cyrillux-usemarcon-replacement.spec.js.map +1 -1
  19. package/dist/double-commas.spec.js +1 -1
  20. package/dist/double-commas.spec.js.map +1 -1
  21. package/dist/duplicates-ind1.js.map +1 -1
  22. package/dist/duplicates-ind1.spec.js +1 -1
  23. package/dist/duplicates-ind1.spec.js.map +1 -1
  24. package/dist/empty-fields.js.map +1 -1
  25. package/dist/empty-fields.spec.js +1 -1
  26. package/dist/empty-fields.spec.js.map +1 -1
  27. package/dist/ending-punctuation.js +1 -1
  28. package/dist/ending-punctuation.js.map +1 -1
  29. package/dist/ending-punctuation.spec.js +1 -1
  30. package/dist/ending-punctuation.spec.js.map +1 -1
  31. package/dist/ending-whitespace.js.map +1 -1
  32. package/dist/ending-whitespace.spec.js +1 -1
  33. package/dist/ending-whitespace.spec.js.map +1 -1
  34. package/dist/field-008-18-34-character-groups.js +1 -1
  35. package/dist/field-008-18-34-character-groups.js.map +1 -1
  36. package/dist/field-008-18-34-character-groups.spec.js +1 -1
  37. package/dist/field-008-18-34-character-groups.spec.js.map +1 -1
  38. package/dist/field-505-separators.js +1 -1
  39. package/dist/field-505-separators.js.map +1 -1
  40. package/dist/field-505-separators.spec.js +1 -1
  41. package/dist/field-505-separators.spec.js.map +1 -1
  42. package/dist/field-521-fix.js +1 -1
  43. package/dist/field-521-fix.js.map +1 -1
  44. package/dist/field-521-fix.spec.js +1 -1
  45. package/dist/field-521-fix.spec.js.map +1 -1
  46. package/dist/field-exclusion.js.map +1 -1
  47. package/dist/field-exclusion.spec.js +1 -1
  48. package/dist/field-exclusion.spec.js.map +1 -1
  49. package/dist/field-structure.js.map +1 -1
  50. package/dist/field-structure.spec.js +1 -1
  51. package/dist/field-structure.spec.js.map +1 -1
  52. package/dist/fields-present.spec.js +1 -1
  53. package/dist/fields-present.spec.js.map +1 -1
  54. package/dist/fix-33X.js +1 -1
  55. package/dist/fix-33X.js.map +1 -1
  56. package/dist/fix-33X.spec.js +1 -1
  57. package/dist/fix-33X.spec.js.map +1 -1
  58. package/dist/fix-country-codes.js.map +1 -1
  59. package/dist/fix-country-codes.spec.js +1 -1
  60. package/dist/fix-country-codes.spec.js.map +1 -1
  61. package/dist/fix-language-codes.js +1 -1
  62. package/dist/fix-language-codes.js.map +1 -1
  63. package/dist/fix-language-codes.spec.js +1 -1
  64. package/dist/fix-language-codes.spec.js.map +1 -1
  65. package/dist/fixRelatorTerms.js +6 -3
  66. package/dist/fixRelatorTerms.js.map +1 -1
  67. package/dist/fixRelatorTerms.spec.js +1 -1
  68. package/dist/fixRelatorTerms.spec.js.map +1 -1
  69. package/dist/fixed-fields.js.map +1 -1
  70. package/dist/fixed-fields.spec.js +1 -1
  71. package/dist/fixed-fields.spec.js.map +1 -1
  72. package/dist/identical-fields.js.map +1 -1
  73. package/dist/identical-fields.spec.js +1 -1
  74. package/dist/identical-fields.spec.js.map +1 -1
  75. package/dist/index.js +66 -3
  76. package/dist/index.js.map +1 -1
  77. package/dist/indicator-fixes.js +17 -0
  78. package/dist/indicator-fixes.js.map +1 -1
  79. package/dist/indicator-fixes.spec.js +1 -1
  80. package/dist/indicator-fixes.spec.js.map +1 -1
  81. package/dist/isbn-issn.js +1 -1
  82. package/dist/isbn-issn.js.map +1 -1
  83. package/dist/isbn-issn.spec.js +1 -1
  84. package/dist/isbn-issn.spec.js.map +1 -1
  85. package/dist/item-language.js +1 -1
  86. package/dist/item-language.js.map +1 -1
  87. package/dist/item-language.spec.js +1 -1
  88. package/dist/item-language.spec.js.map +1 -1
  89. package/dist/mergeField500Lisapainokset.js.map +1 -1
  90. package/dist/mergeField500Lisapainokset.spec.js +1 -1
  91. package/dist/mergeField500Lisapainokset.spec.js.map +1 -1
  92. package/dist/mergeRelatorTermFields.js +1 -1
  93. package/dist/mergeRelatorTermFields.js.map +1 -1
  94. package/dist/mergeRelatorTermFields.spec.js +1 -1
  95. package/dist/mergeRelatorTermFields.spec.js.map +1 -1
  96. package/dist/multiple-subfield-0.js.map +1 -1
  97. package/dist/multiple-subfield-0.spec.js +1 -1
  98. package/dist/multiple-subfield-0.spec.js.map +1 -1
  99. package/dist/non-breaking-space.js.map +1 -1
  100. package/dist/non-breaking-space.spec.js +1 -1
  101. package/dist/non-breaking-space.spec.js.map +1 -1
  102. package/dist/normalize-dashes.js +1 -1
  103. package/dist/normalize-dashes.js.map +1 -1
  104. package/dist/normalize-dashes.spec.js +1 -1
  105. package/dist/normalize-dashes.spec.js.map +1 -1
  106. package/dist/normalize-identifiers.js +1 -1
  107. package/dist/normalize-identifiers.js.map +1 -1
  108. package/dist/normalize-identifiers.spec.js +1 -1
  109. package/dist/normalize-identifiers.spec.js.map +1 -1
  110. package/dist/normalize-qualifying-information.js +1 -1
  111. package/dist/normalize-qualifying-information.js.map +1 -1
  112. package/dist/normalize-qualifying-information.spec.js +1 -1
  113. package/dist/normalize-qualifying-information.spec.js.map +1 -1
  114. package/dist/normalize-utf8-diacritics.js +1 -1
  115. package/dist/normalize-utf8-diacritics.js.map +1 -1
  116. package/dist/normalize-utf8-diacritics.spec.js +1 -1
  117. package/dist/normalize-utf8-diacritics.spec.js.map +1 -1
  118. package/dist/normalizeFieldForComparison.js +1 -1
  119. package/dist/normalizeFieldForComparison.js.map +1 -1
  120. package/dist/normalizeSubfieldValueForComparison.js +1 -1
  121. package/dist/normalizeSubfieldValueForComparison.js.map +1 -1
  122. package/dist/prepublicationUtils.js +1 -1
  123. package/dist/prepublicationUtils.js.map +1 -1
  124. package/dist/punctuation/index.js +1 -1
  125. package/dist/punctuation/index.js.map +1 -1
  126. package/dist/punctuation/rules/index.js +1 -1
  127. package/dist/punctuation/rules/index.js.map +1 -1
  128. package/dist/punctuation.spec.js +1 -1
  129. package/dist/punctuation.spec.js.map +1 -1
  130. package/dist/punctuation2.js +1 -1
  131. package/dist/punctuation2.js.map +1 -1
  132. package/dist/punctuation2.spec.js +1 -1
  133. package/dist/punctuation2.spec.js.map +1 -1
  134. package/dist/reindexSubfield6OccurenceNumbers.js +1 -1
  135. package/dist/reindexSubfield6OccurenceNumbers.js.map +1 -1
  136. package/dist/reindexSubfield6OccurenceNumbers.spec.js +1 -1
  137. package/dist/reindexSubfield6OccurenceNumbers.spec.js.map +1 -1
  138. package/dist/removeDuplicateDataFields.js +1 -1
  139. package/dist/removeDuplicateDataFields.js.map +1 -1
  140. package/dist/removeDuplicateDataFields.spec.js +1 -1
  141. package/dist/removeDuplicateDataFields.spec.js.map +1 -1
  142. package/dist/removeInferiorDataFields.js +1 -1
  143. package/dist/removeInferiorDataFields.js.map +1 -1
  144. package/dist/removeInferiorDataFields.spec.js +1 -1
  145. package/dist/removeInferiorDataFields.spec.js.map +1 -1
  146. package/dist/resolvable-ext-references-melinda.js +1 -1
  147. package/dist/resolvable-ext-references-melinda.js.map +1 -1
  148. package/dist/resolvable-ext-references-melinda.spec.js +1 -1
  149. package/dist/resolvable-ext-references-melinda.spec.js.map +1 -1
  150. package/dist/resolveOrphanedSubfield6s.js +1 -1
  151. package/dist/resolveOrphanedSubfield6s.js.map +1 -1
  152. package/dist/resolveOrphanedSubfield6s.spec.js +1 -1
  153. package/dist/resolveOrphanedSubfield6s.spec.js.map +1 -1
  154. package/dist/sanitize-vocabulary-source-codes.js +5 -1
  155. package/dist/sanitize-vocabulary-source-codes.js.map +1 -1
  156. package/dist/sanitize-vocabulary-source-codes.spec.js +1 -1
  157. package/dist/sanitize-vocabulary-source-codes.spec.js.map +1 -1
  158. package/dist/sort-tags.spec.js +1 -1
  159. package/dist/sort-tags.spec.js.map +1 -1
  160. package/dist/sortFields.js +1 -1
  161. package/dist/sortFields.js.map +1 -1
  162. package/dist/sortFields.spec.js +1 -1
  163. package/dist/sortFields.spec.js.map +1 -1
  164. package/dist/sortRelatorTerms.js +1 -1
  165. package/dist/sortRelatorTerms.js.map +1 -1
  166. package/dist/sortRelatorTerms.spec.js +1 -1
  167. package/dist/sortRelatorTerms.spec.js.map +1 -1
  168. package/dist/sortSubfields.js +1 -1
  169. package/dist/sortSubfields.js.map +1 -1
  170. package/dist/sortSubfields.spec.js +1 -1
  171. package/dist/sortSubfields.spec.js.map +1 -1
  172. package/dist/stripPunctuation.js.map +1 -1
  173. package/dist/stripPunctuation.spec.js +1 -1
  174. package/dist/stripPunctuation.spec.js.map +1 -1
  175. package/dist/subfield-exclusion.js.map +1 -1
  176. package/dist/subfield-exclusion.spec.js +1 -1
  177. package/dist/subfield-exclusion.spec.js.map +1 -1
  178. package/dist/subfield6Utils.js.map +1 -1
  179. package/dist/subfield8Utils.js.map +1 -1
  180. package/dist/subfieldValueNormalizations.js +1 -1
  181. package/dist/subfieldValueNormalizations.js.map +1 -1
  182. package/dist/subfieldValueNormalizations.spec.js +1 -1
  183. package/dist/subfieldValueNormalizations.spec.js.map +1 -1
  184. package/dist/sync-007-and-300.js +1 -1
  185. package/dist/sync-007-and-300.js.map +1 -1
  186. package/dist/sync-007-and-300.spec.js +1 -1
  187. package/dist/sync-007-and-300.spec.js.map +1 -1
  188. package/dist/typeOfDate-008.js +1 -1
  189. package/dist/typeOfDate-008.js.map +1 -1
  190. package/dist/typeOfDate-008.spec.js +1 -1
  191. package/dist/typeOfDate-008.spec.js.map +1 -1
  192. package/dist/unicode-decomposition.js.map +1 -1
  193. package/dist/unicode-decomposition.spec.js +1 -1
  194. package/dist/unicode-decomposition.spec.js.map +1 -1
  195. package/dist/update-field-540.spec.js +1 -1
  196. package/dist/update-field-540.spec.js.map +1 -1
  197. package/dist/urn.js +1 -1
  198. package/dist/urn.js.map +1 -1
  199. package/dist/urn.spec.js +1 -1
  200. package/dist/urn.spec.js.map +1 -1
  201. package/dist/utils.js +17 -0
  202. package/dist/utils.js.map +1 -1
  203. package/package.json +1 -1
  204. package/src/cyrillux-usemarcon-replacement.js +87 -24
  205. package/src/fixRelatorTerms.js +5 -2
  206. package/src/index.js +21 -3
  207. package/src/indicator-fixes.js +19 -0
  208. package/src/sanitize-vocabulary-source-codes.js +4 -0
  209. package/src/utils.js +16 -0
  210. package/test-fixtures/cyrillux-usemarcon-replacement/f11/expectedResult.json +3 -0
  211. package/test-fixtures/cyrillux-usemarcon-replacement/f11/record.json +8 -0
  212. package/test-fixtures/cyrillux-usemarcon-replacement/f12/expectedResult.json +32 -0
  213. package/test-fixtures/cyrillux-usemarcon-replacement/f12/metadata.json +6 -0
  214. package/test-fixtures/cyrillux-usemarcon-replacement/f12/record.json +30 -0
  215. package/test-fixtures/cyrillux-usemarcon-replacement/f13/expectedResult.json +38 -0
  216. package/test-fixtures/cyrillux-usemarcon-replacement/f13/metadata.json +6 -0
  217. package/test-fixtures/cyrillux-usemarcon-replacement/f13/record.json +29 -0
  218. package/test-fixtures/cyrillux-usemarcon-replacement/f14/expectedResult.json +42 -0
  219. package/test-fixtures/cyrillux-usemarcon-replacement/f14/metadata.json +6 -0
  220. package/test-fixtures/cyrillux-usemarcon-replacement/f14/record.json +33 -0
  221. package/test-fixtures/indicator-fixes/09/expectedResult.json +10 -0
  222. package/test-fixtures/indicator-fixes/09/metadata.json +4 -0
  223. package/test-fixtures/indicator-fixes/09/record.json +11 -0
  224. package/test-fixtures/sanitize-vocabulary-source-codes/f04/expectedResult.json +74 -0
  225. package/test-fixtures/sanitize-vocabulary-source-codes/f04/metadata.json +8 -0
  226. package/test-fixtures/sanitize-vocabulary-source-codes/f04/record.json +75 -0
  227. package/test-fixtures/sanitize-vocabulary-source-codes/v04/expectedResult.json +5 -0
  228. package/test-fixtures/sanitize-vocabulary-source-codes/v04/metadata.json +8 -0
  229. package/test-fixtures/sanitize-vocabulary-source-codes/v04/record.json +75 -0
@@ -17,6 +17,14 @@
17
17
  ]},
18
18
  { "tag": "338", "ind1": " ", "ind2": " ", "subfields": [
19
19
  { "code": "a", "value": "ospecificerad" }
20
+ ]},
21
+ { "tag": "FOO", "ind1": " ", "ind2": " ", "subfields": [
22
+ { "code": "a", "value": "whatever" },
23
+ { "code": "b" }
24
+ ]},
25
+ { "tag": "BAR", "ind1": " ", "ind2": " ", "subfields": [
26
+ { "code": "a" }
20
27
  ]}
28
+
21
29
  ]
22
30
  }
@@ -0,0 +1,32 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "leader": "12345cam a22123454i 4500",
4
+ "fields": [
5
+ { "tag": "007", "value": "v12345678"},
6
+ { "tag": "008", "value": "012345s7890 fi |||| fin |"},
7
+ { "tag": "040", "ind1": " ", "ind2": " ", "subfields": [{ "code": "b", "value": "mul" }, { "code": "e", "value": "rda" }]},
8
+ { "tag": "041", "ind1": " ", "ind2": " ", "subfields": [
9
+ { "code": "a", "value": "fin" }
10
+ ]},
11
+ { "tag": "084", "ind1": " ", "ind2": " ", "subfields": [
12
+ { "code": "a", "value": "84.2" },
13
+ { "code": "2", "value": "ykl" }
14
+ ]},
15
+ { "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
16
+ { "code": "a", "value": "teksti" },
17
+ { "code": "b", "value": "txt"},
18
+ { "code": "2", "value": "rdacontent" }
19
+ ]},
20
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields": [
21
+ { "code": "a", "value": "käytettävissä ilman laitetta" },
22
+ { "code": "b", "value": "n"},
23
+ { "code": "2", "value": "rdamedia" }
24
+ ]},
25
+ { "tag": "338", "ind1": " ", "ind2": " ", "subfields": [
26
+ { "code": "a", "value": "määrittelemätön" },
27
+ { "code": "b", "value": "zu"},
28
+ { "code": "2", "value": "rdacarrier" }
29
+ ]}
30
+
31
+ ]
32
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "f12: Remove 084 field if it does not have a $2 ykl",
3
+ "comment": "Based on a USEMARCON-RDA/bw_rda_kyril.rul code by LL 2019. Added keep-$2 ykl part",
4
+ "only": false,
5
+ "fix": true
6
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "leader": "12345cam a22123454i 4500",
3
+ "fields": [
4
+ { "tag": "007", "value": "v12345678"},
5
+ { "tag": "008", "value": "012345s7890 fi |||| fin |"},
6
+ { "tag": "084", "ind1": " ", "ind2": " ", "subfields": [
7
+ { "code": "a", "value": "84.2" },
8
+ { "code": "2", "value": "ykl" }
9
+ ]},
10
+ { "tag": "084", "ind1": " ", "ind2": " ", "subfields": [
11
+ { "code": "a", "value": "84.3" }
12
+ ]},
13
+ { "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
14
+ { "code": "a", "value": "teksti" },
15
+ { "code": "b", "value": "txt"},
16
+ { "code": "2", "value": "rdacontent" }
17
+ ]},
18
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields": [
19
+ { "code": "a", "value": "käytettävissä ilman laitetta" },
20
+ { "code": "b", "value": "n"},
21
+ { "code": "2", "value": "rdamedia" }
22
+ ]},
23
+ { "tag": "338", "ind1": " ", "ind2": " ", "subfields": [
24
+ { "code": "a", "value": "määrittelemätön" },
25
+ { "code": "b", "value": "zu"},
26
+ { "code": "2", "value": "rdacarrier" }
27
+ ]}
28
+
29
+ ]
30
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "leader": "12345cam a22123454i 4500",
4
+ "fields": [
5
+ { "tag": "007", "value": "v12345678"},
6
+ { "tag": "008", "value": "012345s7890 fi |||| fin |"},
7
+ { "tag": "040", "ind1": " ", "ind2": " ", "subfields": [
8
+ { "code": "b", "value": "mul" },
9
+ { "code": "e", "value": "rda" }
10
+ ]},
11
+ { "tag": "041", "ind1": " ", "ind2": " ", "subfields": [
12
+ { "code": "a", "value": "fin" }
13
+ ]},
14
+ { "tag": "100", "ind1": "1", "ind2": " ", "subfields": [
15
+ { "code": "a", "value": "Sukunimi, Etunimi," },
16
+ { "code": "e", "value": "kirjoittaja." }
17
+ ]},
18
+ { "tag": "300", "ind1": " ", "ind2": " ", "subfields": [
19
+ { "code": "a", "value": "123 sivua" }
20
+ ]},
21
+ { "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
22
+ { "code": "a", "value": "teksti" },
23
+ { "code": "b", "value": "txt"},
24
+ { "code": "2", "value": "rdacontent" }
25
+ ]},
26
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields": [
27
+ { "code": "a", "value": "käytettävissä ilman laitetta" },
28
+ { "code": "b", "value": "n"},
29
+ { "code": "2", "value": "rdamedia" }
30
+ ]},
31
+ { "tag": "338", "ind1": " ", "ind2": " ", "subfields": [
32
+ { "code": "a", "value": "määrittelemätön" },
33
+ { "code": "b", "value": "zu"},
34
+ { "code": "2", "value": "rdacarrier" }
35
+ ]}
36
+
37
+ ]
38
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "f13: Add 100$e kirjoittaja",
3
+ "comment": "Based on a USEMARCON-RDA/bw_rda_kyril.rul code by LL 2019. Added keep-$2 ykl part",
4
+ "only": false,
5
+ "fix": true
6
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "leader": "12345cam a22123454i 4500",
3
+ "fields": [
4
+ { "tag": "007", "value": "v12345678"},
5
+ { "tag": "008", "value": "012345s7890 fi |||| fin |"},
6
+ { "tag": "100", "ind1": "1", "ind2": " ", "subfields": [
7
+ { "code": "a", "value": "Sukunimi, Etunimi." }
8
+ ]},
9
+ { "tag": "300", "ind1": " ", "ind2": " ", "subfields": [
10
+ { "code": "a", "value": "123 с." }
11
+ ]},
12
+ { "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
13
+ { "code": "a", "value": "teksti" },
14
+ { "code": "b", "value": "txt"},
15
+ { "code": "2", "value": "rdacontent" }
16
+ ]},
17
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields": [
18
+ { "code": "a", "value": "käytettävissä ilman laitetta" },
19
+ { "code": "b", "value": "n"},
20
+ { "code": "2", "value": "rdamedia" }
21
+ ]},
22
+ { "tag": "338", "ind1": " ", "ind2": " ", "subfields": [
23
+ { "code": "a", "value": "määrittelemätön" },
24
+ { "code": "b", "value": "zu"},
25
+ { "code": "2", "value": "rdacarrier" }
26
+ ]}
27
+
28
+ ]
29
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "leader": "12345cam a22123454i 4500",
4
+ "fields": [
5
+ { "tag": "007", "value": "v12345678"},
6
+ { "tag": "008", "value": "012345s7890 fi |||| fin |"},
7
+ { "tag": "040", "ind1": " ", "ind2": " ", "subfields": [
8
+ { "code": "b", "value": "mul" },
9
+ { "code": "e", "value": "rda" }
10
+ ]},
11
+ { "tag": "041", "ind1": " ", "ind2": " ", "subfields": [
12
+ { "code": "a", "value": "fin" }
13
+ ]},
14
+ { "tag": "100", "ind1": "1", "ind2": " ", "subfields": [
15
+ { "code": "a", "value": "Sukunimi, Etunimi," },
16
+ { "code": "e", "value": "kirjoittaja." }
17
+ ]},
18
+ { "tag": "300", "ind1": " ", "ind2": " ", "subfields": [
19
+ { "code": "a", "value": "1 sivu" }
20
+ ]},
21
+ { "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
22
+ { "code": "a", "value": "teksti" },
23
+ { "code": "b", "value": "txt"},
24
+ { "code": "2", "value": "rdacontent" }
25
+ ]},
26
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields": [
27
+ { "code": "a", "value": "käytettävissä ilman laitetta" },
28
+ { "code": "b", "value": "n"},
29
+ { "code": "2", "value": "rdamedia" }
30
+ ]},
31
+ { "tag": "338", "ind1": " ", "ind2": " ", "subfields": [
32
+ { "code": "a", "value": "määrittelemätön" },
33
+ { "code": "b", "value": "zu"},
34
+ { "code": "2", "value": "rdacarrier" }
35
+ ]},
36
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
37
+ { "code": "a", "value": "Sukunimi2, Etunimi," },
38
+ { "code": "e", "value": "toimittaja." }
39
+ ]}
40
+
41
+ ]
42
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "description": "f14: Add 100$e kirjoittaja, translate 300$a and 700$e ",
3
+ "comment": "Based on a USEMARCON-RDA/bw_rda_kyril.rul code (as per MI's wishes)",
4
+ "only": false,
5
+ "fix": true
6
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "leader": "12345cam a22123454i 4500",
3
+ "fields": [
4
+ { "tag": "007", "value": "v12345678"},
5
+ { "tag": "008", "value": "012345s7890 fi |||| fin |"},
6
+ { "tag": "100", "ind1": "1", "ind2": " ", "subfields": [
7
+ { "code": "a", "value": "Sukunimi, Etunimi." }
8
+ ]},
9
+ { "tag": "300", "ind1": " ", "ind2": " ", "subfields": [
10
+ { "code": "a", "value": "1 с." }
11
+ ]},
12
+ { "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
13
+ { "code": "a", "value": "teksti" },
14
+ { "code": "b", "value": "txt"},
15
+ { "code": "2", "value": "rdacontent" }
16
+ ]},
17
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields": [
18
+ { "code": "a", "value": "käytettävissä ilman laitetta" },
19
+ { "code": "b", "value": "n"},
20
+ { "code": "2", "value": "rdamedia" }
21
+ ]},
22
+ { "tag": "338", "ind1": " ", "ind2": " ", "subfields": [
23
+ { "code": "a", "value": "määrittelemätön" },
24
+ { "code": "b", "value": "zu"},
25
+ { "code": "2", "value": "rdacarrier" }
26
+ ]},
27
+ { "tag": "700", "ind1": "1", "ind2": " ", "subfields": [
28
+ { "code": "a", "value": "Sukunimi2, Etunimi," },
29
+ { "code": "e", "value": "сост." }
30
+ ]}
31
+
32
+ ]
33
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "fields": [
4
+ { "tag": "005", "value": "20220202020202.0" },
5
+ { "tag": "084", "ind1": " ", "ind2": " ", "subfields": [ {"code": "a", "value": "Whatever"}, {"code": "2", "value": "ykl"} ]},
6
+ { "tag": "084", "ind1": "9", "ind2": " ", "subfields": [ {"code": "a", "value": "Urheilu"}, {"code": "2", "value": "ykl"} ]},
7
+ { "tag": "084", "ind1": " ", "ind2": " ", "subfields": [ {"code": "a", "value": "Urheilu"}, {"code": "2", "value": "jokumuu"} ]}
8
+ ],
9
+ "leader": ""
10
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "description": "09: 084ind1=9 if ykl and $a belongs to Fiktiivisen aineiston lisäluokat",
3
+ "fix": true
4
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "_validationOptions": {},
3
+ "fields": [
4
+ { "tag": "005", "value": "20220202020202.0" },
5
+ { "tag": "084", "ind1": " ", "ind2": " ", "subfields": [ {"code": "a", "value": "Whatever"}, {"code": "2", "value": "ykl"} ]},
6
+ { "tag": "084", "ind1": " ", "ind2": " ", "subfields": [ {"code": "a", "value": "Urheilu"}, {"code": "2", "value": "ykl"} ]},
7
+ { "tag": "084", "ind1": " ", "ind2": " ", "subfields": [ {"code": "a", "value": "Urheilu"}, {"code": "2", "value": "jokumuu"} ]}
8
+
9
+ ],
10
+ "leader": ""
11
+ }
@@ -0,0 +1,74 @@
1
+ {
2
+ "leader": "01470cam a22004214i 4500",
3
+ "_validationOptions": { },
4
+ "fields" : [
5
+ { "tag": "001", "value": "001173044" },
6
+ { "tag": "003", "value": "FI-MELINDA" },
7
+ { "tag": "005", "value": "20160810215731.0" },
8
+ { "tag": "008", "value": "880603s1978 gw |||||||||||||||||ger||" },
9
+ { "tag": "020", "ind1": " ", "ind2": " ", "subfields" : [
10
+ { "code": "a", "value": "3-7613-0117-0" }
11
+ ]},
12
+ { "tag": "035", "ind1": " ", "ind2": " ", "subfields" : [
13
+ { "code": "a", "value": "(FI-MELINDA)001173044" }
14
+ ]},
15
+ { "tag": "041", "ind1": "0", "ind2": " ", "subfields" : [
16
+ { "code": "a", "value": "ger" }
17
+ ]},
18
+ { "tag": "050", "ind1": " ", "ind2": "4", "subfields" : [
19
+ { "code": "a", "value": "BX485" }
20
+ ]},
21
+ { "tag": "080", "ind1": " ", "ind2": " ", "subfields" : [
22
+ { "code": "a", "value": "281.93:27" },
23
+ { "code": "x", "value": "(47)" }
24
+ ]},
25
+ { "tag": "080", "ind1": " ", "ind2": " ", "subfields" : [
26
+ { "code": "a", "value": "281.93" }
27
+ ]},
28
+ { "tag": "080", "ind1": " ", "ind2": " ", "subfields" : [
29
+ { "code": "a", "value": "27" },
30
+ { "code": "x", "value": "(47)" }
31
+ ]},
32
+ { "tag": "100", "ind1": "1", "ind2": " ", "subfields" : [
33
+ { "code": "a", "value": "Immekus, Erwin." }
34
+ ]},
35
+ { "tag": "245", "ind1": "1", "ind2": "4", "subfields" : [
36
+ { "code": "a", "value": "Die russisch-orthodoxe Landpfarrei zu Beginn des XX. Jahrhunderts nach dem Gutachten der Diözesanbischöfe /" },
37
+ { "code": "c", "value": "Erwin Immekus." }
38
+ ]},
39
+ { "tag": "260", "ind1": " ", "ind2": " ", "subfields" : [
40
+ { "code": "a", "value": "Würzburg :" },
41
+ { "code": "b", "value": "Augustinus-Verlag," },
42
+ { "code": "c", "value": "1978." }
43
+ ]},
44
+ { "tag": "300", "ind1": " ", "ind2": " ", "subfields" : [
45
+ { "code": "a", "value": "xvi, 284 p. ;" },
46
+ { "code": "c", "value": "23 cm" }
47
+ ]},
48
+ { "tag": "336", "ind1": " ", "ind2": " ", "subfields" : [
49
+ { "code": "a", "value": "teksti" },
50
+ { "code": "b", "value": "txt" },
51
+ { "code": "2", "value": "rdacontent" }
52
+ ]},
53
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields" : [
54
+ { "code": "a", "value": "käytettävissä ilman laitetta" },
55
+ { "code": "b", "value": "n" },
56
+ { "code": "2", "value": "rdamedia" }
57
+ ]},
58
+ { "tag": "338", "ind1": " ", "ind2": " ", "subfields" : [
59
+ { "code": "a", "value": "nide" },
60
+ { "code": "b", "value": "nc" },
61
+ { "code": "2", "value": "rdacarrier" }
62
+ ]},
63
+
64
+ { "tag": "655", "ind1": " ", "ind2": "7", "subfields" : [
65
+ { "code": "a", "value": "japaninkielinen kirjallisuus" },
66
+ { "code": "2", "value": "local" }
67
+ ]},
68
+ { "tag": "655", "ind1": " ", "ind2": "7", "subfields" : [
69
+ { "code": "a", "value": "käännökset" },
70
+ { "code": "2", "value": "slm/fin" },
71
+ { "code": "0" }
72
+ ]}
73
+ ]
74
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "description": "f04: bug fix 20240523 (JO/Slack): $0 with no value",
3
+ "fix": true,
4
+ "only": false,
5
+ "_validationOptions": {
6
+ "subfieldValues": false
7
+ }
8
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "leader": "01470cam a22004214i 4500",
3
+ "_validationOptions": {
4
+ "subfieldValues": false
5
+ },
6
+ "fields" : [
7
+ { "tag": "001", "value": "001173044" },
8
+ { "tag": "003", "value": "FI-MELINDA" },
9
+ { "tag": "005", "value": "20160810215731.0" },
10
+ { "tag": "008", "value": "880603s1978 gw |||||||||||||||||ger||" },
11
+ { "tag": "020", "ind1": " ", "ind2": " ", "subfields" : [
12
+ { "code": "a", "value": "3-7613-0117-0" }
13
+ ]},
14
+ { "tag": "035", "ind1": " ", "ind2": " ", "subfields" : [
15
+ { "code": "a", "value": "(FI-MELINDA)001173044" }
16
+ ]},
17
+ { "tag": "041", "ind1": "0", "ind2": " ", "subfields" : [
18
+ { "code": "a", "value": "ger" }
19
+ ]},
20
+ { "tag": "050", "ind1": " ", "ind2": "4", "subfields" : [
21
+ { "code": "a", "value": "BX485" }
22
+ ]},
23
+ { "tag": "080", "ind1": " ", "ind2": " ", "subfields" : [
24
+ { "code": "a", "value": "281.93:27" },
25
+ { "code": "x", "value": "(47)" }
26
+ ]},
27
+ { "tag": "080", "ind1": " ", "ind2": " ", "subfields" : [
28
+ { "code": "a", "value": "281.93" }
29
+ ]},
30
+ { "tag": "080", "ind1": " ", "ind2": " ", "subfields" : [
31
+ { "code": "a", "value": "27" },
32
+ { "code": "x", "value": "(47)" }
33
+ ]},
34
+ { "tag": "100", "ind1": "1", "ind2": " ", "subfields" : [
35
+ { "code": "a", "value": "Immekus, Erwin." }
36
+ ]},
37
+ { "tag": "245", "ind1": "1", "ind2": "4", "subfields" : [
38
+ { "code": "a", "value": "Die russisch-orthodoxe Landpfarrei zu Beginn des XX. Jahrhunderts nach dem Gutachten der Diözesanbischöfe /" },
39
+ { "code": "c", "value": "Erwin Immekus." }
40
+ ]},
41
+ { "tag": "260", "ind1": " ", "ind2": " ", "subfields" : [
42
+ { "code": "a", "value": "Würzburg :" },
43
+ { "code": "b", "value": "Augustinus-Verlag," },
44
+ { "code": "c", "value": "1978." }
45
+ ]},
46
+ { "tag": "300", "ind1": " ", "ind2": " ", "subfields" : [
47
+ { "code": "a", "value": "xvi, 284 p. ;" },
48
+ { "code": "c", "value": "23 cm" }
49
+ ]},
50
+ { "tag": "336", "ind1": " ", "ind2": " ", "subfields" : [
51
+ { "code": "a", "value": "teksti" },
52
+ { "code": "b", "value": "txt" },
53
+ { "code": "2", "value": "rdacontent" }
54
+ ]},
55
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields" : [
56
+ { "code": "a", "value": "käytettävissä ilman laitetta" },
57
+ { "code": "b", "value": "n" },
58
+ { "code": "2", "value": "rdamedia" }
59
+ ]},
60
+ { "tag": "338", "ind1": " ", "ind2": " ", "subfields" : [
61
+ { "code": "a", "value": "nide" },
62
+ { "code": "b", "value": "nc" },
63
+ { "code": "2", "value": "rdacarrier" }
64
+ ]},
65
+ { "tag": "655", "ind1": " ", "ind2": "7", "subfields" : [
66
+ { "code": "a", "value": "japaninkielinen kirjallisuus" },
67
+ { "code": "2", "value": "local" }
68
+ ]},
69
+ { "tag": "655", "ind1": " ", "ind2": "7", "subfields" : [
70
+ { "code": "a", "value": "käännökset" },
71
+ { "code": "2", "value": "slm/fin" },
72
+ { "code": "0" }
73
+ ]}
74
+ ]
75
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "message": [
3
+ ],
4
+ "valid": true
5
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "description": "v04: bug fix 20240523 (JO/Slack): $0 with no value",
3
+ "fix": false,
4
+ "only": false,
5
+ "_validationOptions": {
6
+ "subfieldValues": false
7
+ }
8
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "leader": "01470cam a22004214i 4500",
3
+ "_validationOptions": {
4
+ "subfieldValues": false
5
+ },
6
+ "fields" : [
7
+ { "tag": "001", "value": "001173044" },
8
+ { "tag": "003", "value": "FI-MELINDA" },
9
+ { "tag": "005", "value": "20160810215731.0" },
10
+ { "tag": "008", "value": "880603s1978 gw |||||||||||||||||ger||" },
11
+ { "tag": "020", "ind1": " ", "ind2": " ", "subfields" : [
12
+ { "code": "a", "value": "3-7613-0117-0" }
13
+ ]},
14
+ { "tag": "035", "ind1": " ", "ind2": " ", "subfields" : [
15
+ { "code": "a", "value": "(FI-MELINDA)001173044" }
16
+ ]},
17
+ { "tag": "041", "ind1": "0", "ind2": " ", "subfields" : [
18
+ { "code": "a", "value": "ger" }
19
+ ]},
20
+ { "tag": "050", "ind1": " ", "ind2": "4", "subfields" : [
21
+ { "code": "a", "value": "BX485" }
22
+ ]},
23
+ { "tag": "080", "ind1": " ", "ind2": " ", "subfields" : [
24
+ { "code": "a", "value": "281.93:27" },
25
+ { "code": "x", "value": "(47)" }
26
+ ]},
27
+ { "tag": "080", "ind1": " ", "ind2": " ", "subfields" : [
28
+ { "code": "a", "value": "281.93" }
29
+ ]},
30
+ { "tag": "080", "ind1": " ", "ind2": " ", "subfields" : [
31
+ { "code": "a", "value": "27" },
32
+ { "code": "x", "value": "(47)" }
33
+ ]},
34
+ { "tag": "100", "ind1": "1", "ind2": " ", "subfields" : [
35
+ { "code": "a", "value": "Immekus, Erwin." }
36
+ ]},
37
+ { "tag": "245", "ind1": "1", "ind2": "4", "subfields" : [
38
+ { "code": "a", "value": "Die russisch-orthodoxe Landpfarrei zu Beginn des XX. Jahrhunderts nach dem Gutachten der Diözesanbischöfe /" },
39
+ { "code": "c", "value": "Erwin Immekus." }
40
+ ]},
41
+ { "tag": "260", "ind1": " ", "ind2": " ", "subfields" : [
42
+ { "code": "a", "value": "Würzburg :" },
43
+ { "code": "b", "value": "Augustinus-Verlag," },
44
+ { "code": "c", "value": "1978." }
45
+ ]},
46
+ { "tag": "300", "ind1": " ", "ind2": " ", "subfields" : [
47
+ { "code": "a", "value": "xvi, 284 p. ;" },
48
+ { "code": "c", "value": "23 cm" }
49
+ ]},
50
+ { "tag": "336", "ind1": " ", "ind2": " ", "subfields" : [
51
+ { "code": "a", "value": "teksti" },
52
+ { "code": "b", "value": "txt" },
53
+ { "code": "2", "value": "rdacontent" }
54
+ ]},
55
+ { "tag": "337", "ind1": " ", "ind2": " ", "subfields" : [
56
+ { "code": "a", "value": "käytettävissä ilman laitetta" },
57
+ { "code": "b", "value": "n" },
58
+ { "code": "2", "value": "rdamedia" }
59
+ ]},
60
+ { "tag": "338", "ind1": " ", "ind2": " ", "subfields" : [
61
+ { "code": "a", "value": "nide" },
62
+ { "code": "b", "value": "nc" },
63
+ { "code": "2", "value": "rdacarrier" }
64
+ ]},
65
+ { "tag": "655", "ind1": " ", "ind2": "7", "subfields" : [
66
+ { "code": "a", "value": "japaninkielinen kirjallisuus" },
67
+ { "code": "2", "value": "local" }
68
+ ]},
69
+ { "tag": "655", "ind1": " ", "ind2": "7", "subfields" : [
70
+ { "code": "a", "value": "käännökset" },
71
+ { "code": "2", "value": "slm/fin" },
72
+ { "code": "0" }
73
+ ]}
74
+ ]
75
+ }