@natlibfi/marc-record-validators-melinda 11.0.0 → 11.1.0-alpha.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/addMissingField336.js +272 -0
- package/dist/addMissingField336.js.map +1 -0
- package/dist/addMissingField336.spec.js +45 -0
- package/dist/addMissingField336.spec.js.map +1 -0
- package/dist/addMissingField337.js +177 -0
- package/dist/addMissingField337.js.map +1 -0
- package/dist/addMissingField337.spec.js +43 -0
- package/dist/addMissingField337.spec.js.map +1 -0
- package/dist/addMissingField338.js +424 -0
- package/dist/addMissingField338.js.map +1 -0
- package/dist/addMissingField338.spec.js +45 -0
- package/dist/addMissingField338.spec.js.map +1 -0
- package/dist/cyrillux-usemarcon-replacement.js +370 -0
- package/dist/cyrillux-usemarcon-replacement.js.map +1 -0
- package/dist/cyrillux-usemarcon-replacement.spec.js +45 -0
- package/dist/cyrillux-usemarcon-replacement.spec.js.map +1 -0
- package/dist/field33XUtils.js +529 -0
- package/dist/field33XUtils.js.map +1 -0
- package/dist/fix-33X.js +484 -0
- package/dist/fix-33X.js.map +1 -0
- package/dist/fix-33X.spec.js +45 -0
- package/dist/fix-33X.spec.js.map +1 -0
- package/dist/fix-language-codes.js +109 -0
- package/dist/fix-language-codes.js.map +1 -0
- package/dist/fix-language-codes.spec.js +44 -0
- package/dist/fix-language-codes.spec.js.map +1 -0
- package/dist/fixRelatorTerms.js +1 -1
- package/dist/fixRelatorTerms.js.map +1 -1
- package/dist/punctuation2.js +4 -3
- package/dist/punctuation2.js.map +1 -1
- package/dist/resolvable-ext-references-melinda.spec.js +1 -1
- package/dist/resolvable-ext-references-melinda.spec.js.map +1 -1
- package/dist/sanitize-vocabulary-source-codes.js +7 -10
- package/dist/sanitize-vocabulary-source-codes.js.map +1 -1
- package/dist/utils.js +13 -8
- package/dist/utils.js.map +1 -1
- package/package.json +7 -7
- package/src/addMissingField336.js +260 -0
- package/src/addMissingField336.spec.js +46 -0
- package/src/addMissingField337.js +132 -0
- package/src/addMissingField337.spec.js +45 -0
- package/src/addMissingField338.js +446 -0
- package/src/addMissingField338.spec.js +46 -0
- package/src/cyrillux-usemarcon-replacement.js +410 -0
- package/src/cyrillux-usemarcon-replacement.spec.js +47 -0
- package/src/field33XUtils.js +156 -0
- package/src/fix-33X.js +473 -0
- package/src/fix-33X.spec.js +46 -0
- package/src/fix-language-codes.js +121 -0
- package/src/fix-language-codes.spec.js +45 -0
- package/src/fixRelatorTerms.js +1 -1
- package/src/punctuation2.js +3 -3
- package/src/sanitize-vocabulary-source-codes.js +9 -11
- package/src/utils.js +13 -8
- package/test-fixtures/addMissingField336/01/expectedResult.json +6 -0
- package/test-fixtures/addMissingField336/01/metadata.json +7 -0
- package/test-fixtures/addMissingField336/01/record.json +8 -0
- package/test-fixtures/addMissingField336/02/expectedResult.json +4 -0
- package/test-fixtures/addMissingField336/02/metadata.json +7 -0
- package/test-fixtures/addMissingField336/02/record.json +13 -0
- package/test-fixtures/addMissingField336/cod/expectedResult.json +12 -0
- package/test-fixtures/addMissingField336/cod/metadata.json +6 -0
- package/test-fixtures/addMissingField336/cod/record.json +6 -0
- package/test-fixtures/addMissingField336/cop/expectedResult.json +12 -0
- package/test-fixtures/addMissingField336/cop/metadata.json +6 -0
- package/test-fixtures/addMissingField336/cop/record.json +6 -0
- package/test-fixtures/addMissingField336/cop2/expectedResult.json +13 -0
- package/test-fixtures/addMissingField336/cop2/metadata.json +6 -0
- package/test-fixtures/addMissingField336/cop2/record.json +7 -0
- package/test-fixtures/addMissingField336/crf/expectedResult.json +12 -0
- package/test-fixtures/addMissingField336/crf/metadata.json +6 -0
- package/test-fixtures/addMissingField336/crf/record.json +6 -0
- package/test-fixtures/addMissingField336/cri/expectedResult.json +12 -0
- package/test-fixtures/addMissingField336/cri/metadata.json +6 -0
- package/test-fixtures/addMissingField336/cri/record.json +6 -0
- package/test-fixtures/addMissingField336/crt/expectedResult.json +13 -0
- package/test-fixtures/addMissingField336/crt/metadata.json +6 -0
- package/test-fixtures/addMissingField336/crt/record.json +7 -0
- package/test-fixtures/addMissingField336/f01/expectedResult.json +17 -0
- package/test-fixtures/addMissingField336/f01/metadata.json +6 -0
- package/test-fixtures/addMissingField336/f01/record.json +11 -0
- package/test-fixtures/addMissingField336/f02/expectedResult.json +15 -0
- package/test-fixtures/addMissingField336/f02/metadata.json +6 -0
- package/test-fixtures/addMissingField336/f02/record.json +9 -0
- package/test-fixtures/addMissingField336/mixed2txt/expectedResult.json +12 -0
- package/test-fixtures/addMissingField336/mixed2txt/metadata.json +6 -0
- package/test-fixtures/addMissingField336/mixed2txt/record.json +6 -0
- package/test-fixtures/addMissingField336/mixed2xxx/expectedResult.json +12 -0
- package/test-fixtures/addMissingField336/mixed2xxx/metadata.json +6 -0
- package/test-fixtures/addMissingField336/mixed2xxx/record.json +6 -0
- package/test-fixtures/addMissingField336/ntm/expectedResult.json +12 -0
- package/test-fixtures/addMissingField336/ntm/metadata.json +6 -0
- package/test-fixtures/addMissingField336/ntm/record.json +6 -0
- package/test-fixtures/addMissingField336/snd/expectedResult.json +12 -0
- package/test-fixtures/addMissingField336/snd/metadata.json +6 -0
- package/test-fixtures/addMissingField336/snd/record.json +6 -0
- package/test-fixtures/addMissingField336/spw/expectedResult.json +12 -0
- package/test-fixtures/addMissingField336/spw/metadata.json +6 -0
- package/test-fixtures/addMissingField336/spw/record.json +6 -0
- package/test-fixtures/addMissingField336/spw2/expectedResult.json +13 -0
- package/test-fixtures/addMissingField336/spw2/metadata.json +6 -0
- package/test-fixtures/addMissingField336/spw2/record.json +7 -0
- package/test-fixtures/addMissingField336/spw_txt/expectedResult.json +18 -0
- package/test-fixtures/addMissingField336/spw_txt/metadata.json +6 -0
- package/test-fixtures/addMissingField336/spw_txt/record.json +7 -0
- package/test-fixtures/addMissingField336/sti/expectedResult.json +12 -0
- package/test-fixtures/addMissingField336/sti/metadata.json +6 -0
- package/test-fixtures/addMissingField336/sti/record.json +6 -0
- package/test-fixtures/addMissingField336/sti_projected/expectedResult.json +13 -0
- package/test-fixtures/addMissingField336/sti_projected/metadata.json +6 -0
- package/test-fixtures/addMissingField336/sti_projected/record.json +7 -0
- package/test-fixtures/addMissingField336/tci/expectedResult.json +12 -0
- package/test-fixtures/addMissingField336/tci/metadata.json +6 -0
- package/test-fixtures/addMissingField336/tci/record.json +6 -0
- package/test-fixtures/addMissingField336/tcm/expectedResult.json +12 -0
- package/test-fixtures/addMissingField336/tcm/metadata.json +6 -0
- package/test-fixtures/addMissingField336/tcm/record.json +6 -0
- package/test-fixtures/addMissingField336/tdf/expectedResult.json +12 -0
- package/test-fixtures/addMissingField336/tdf/metadata.json +6 -0
- package/test-fixtures/addMissingField336/tdf/record.json +6 -0
- package/test-fixtures/addMissingField336/tdi/expectedResult.json +13 -0
- package/test-fixtures/addMissingField336/tdi/metadata.json +6 -0
- package/test-fixtures/addMissingField336/tdi/record.json +7 -0
- package/test-fixtures/addMissingField336/txt/expectedResult.json +12 -0
- package/test-fixtures/addMissingField336/txt/metadata.json +6 -0
- package/test-fixtures/addMissingField336/txt/record.json +6 -0
- package/test-fixtures/addMissingField336/zzz/expectedResult.json +13 -0
- package/test-fixtures/addMissingField336/zzz/metadata.json +6 -0
- package/test-fixtures/addMissingField336/zzz/record.json +7 -0
- package/test-fixtures/addMissingField337/c1/expectedResult.json +12 -0
- package/test-fixtures/addMissingField337/c1/metadata.json +6 -0
- package/test-fixtures/addMissingField337/c1/record.json +7 -0
- package/test-fixtures/addMissingField337/g1/expectedResult.json +13 -0
- package/test-fixtures/addMissingField337/g1/metadata.json +6 -0
- package/test-fixtures/addMissingField337/g1/record.json +7 -0
- package/test-fixtures/addMissingField337/n1/expectedResult.json +12 -0
- package/test-fixtures/addMissingField337/n1/metadata.json +6 -0
- package/test-fixtures/addMissingField337/n1/record.json +6 -0
- package/test-fixtures/addMissingField337/no_action_required/expectedResult.json +12 -0
- package/test-fixtures/addMissingField337/no_action_required/metadata.json +7 -0
- package/test-fixtures/addMissingField337/no_action_required/record.json +11 -0
- package/test-fixtures/addMissingField337/p1/expectedResult.json +12 -0
- package/test-fixtures/addMissingField337/p1/metadata.json +6 -0
- package/test-fixtures/addMissingField337/p1/record.json +6 -0
- package/test-fixtures/addMissingField337/validate_x1/expectedResult.json +6 -0
- package/test-fixtures/addMissingField337/validate_x1/metadata.json +6 -0
- package/test-fixtures/addMissingField337/validate_x1/record.json +6 -0
- package/test-fixtures/addMissingField338/cb/expectedResult.json +14 -0
- package/test-fixtures/addMissingField338/cb/metadata.json +6 -0
- package/test-fixtures/addMissingField338/cb/record.json +8 -0
- package/test-fixtures/addMissingField338/cd/expectedResult.json +14 -0
- package/test-fixtures/addMissingField338/cd/metadata.json +6 -0
- package/test-fixtures/addMissingField338/cd/record.json +8 -0
- package/test-fixtures/addMissingField338/ck/expectedResult.json +14 -0
- package/test-fixtures/addMissingField338/ck/metadata.json +6 -0
- package/test-fixtures/addMissingField338/ck/record.json +8 -0
- package/test-fixtures/addMissingField338/cr/expectedResult.json +15 -0
- package/test-fixtures/addMissingField338/cr/metadata.json +6 -0
- package/test-fixtures/addMissingField338/cr/record.json +9 -0
- package/test-fixtures/addMissingField338/cr2/expectedResult.json +14 -0
- package/test-fixtures/addMissingField338/cr2/metadata.json +6 -0
- package/test-fixtures/addMissingField338/cr2/record.json +8 -0
- package/test-fixtures/addMissingField338/cr3/expectedResult.json +18 -0
- package/test-fixtures/addMissingField338/cr3/metadata.json +6 -0
- package/test-fixtures/addMissingField338/cr3/record.json +12 -0
- package/test-fixtures/addMissingField338/cr4/expectedResult.json +15 -0
- package/test-fixtures/addMissingField338/cr4/metadata.json +6 -0
- package/test-fixtures/addMissingField338/cr4/record.json +9 -0
- package/test-fixtures/addMissingField338/gc/expectedResult.json +12 -0
- package/test-fixtures/addMissingField338/gc/metadata.json +6 -0
- package/test-fixtures/addMissingField338/gc/record.json +7 -0
- package/test-fixtures/addMissingField338/gd/expectedResult.json +13 -0
- package/test-fixtures/addMissingField338/gd/metadata.json +6 -0
- package/test-fixtures/addMissingField338/gd/record.json +8 -0
- package/test-fixtures/addMissingField338/gf/expectedResult.json +13 -0
- package/test-fixtures/addMissingField338/gf/metadata.json +6 -0
- package/test-fixtures/addMissingField338/gf/record.json +8 -0
- package/test-fixtures/addMissingField338/gs/expectedResult.json +15 -0
- package/test-fixtures/addMissingField338/gs/metadata.json +6 -0
- package/test-fixtures/addMissingField338/gs/record.json +9 -0
- package/test-fixtures/addMissingField338/gt/expectedResult.json +15 -0
- package/test-fixtures/addMissingField338/gt/metadata.json +6 -0
- package/test-fixtures/addMissingField338/gt/record.json +9 -0
- package/test-fixtures/addMissingField338/hd/expectedResult.json +16 -0
- package/test-fixtures/addMissingField338/hd/metadata.json +6 -0
- package/test-fixtures/addMissingField338/hd/record.json +10 -0
- package/test-fixtures/addMissingField338/he/expectedResult.json +15 -0
- package/test-fixtures/addMissingField338/he/metadata.json +6 -0
- package/test-fixtures/addMissingField338/he/record.json +9 -0
- package/test-fixtures/addMissingField338/he2/expectedResult.json +12 -0
- package/test-fixtures/addMissingField338/he2/metadata.json +6 -0
- package/test-fixtures/addMissingField338/he2/record.json +6 -0
- package/test-fixtures/addMissingField338/hg/expectedResult.json +15 -0
- package/test-fixtures/addMissingField338/hg/metadata.json +7 -0
- package/test-fixtures/addMissingField338/hg/record.json +9 -0
- package/test-fixtures/addMissingField338/hg2/expectedResult.json +15 -0
- package/test-fixtures/addMissingField338/hg2/metadata.json +6 -0
- package/test-fixtures/addMissingField338/hg2/record.json +9 -0
- package/test-fixtures/addMissingField338/hj/expectedResult.json +15 -0
- package/test-fixtures/addMissingField338/hj/metadata.json +6 -0
- package/test-fixtures/addMissingField338/hj/record.json +9 -0
- package/test-fixtures/addMissingField338/hj2/expectedResult.json +15 -0
- package/test-fixtures/addMissingField338/hj2/metadata.json +6 -0
- package/test-fixtures/addMissingField338/hj2/record.json +9 -0
- package/test-fixtures/addMissingField338/mo/expectedResult.json +15 -0
- package/test-fixtures/addMissingField338/mo/metadata.json +6 -0
- package/test-fixtures/addMissingField338/mo/record.json +9 -0
- package/test-fixtures/addMissingField338/nc/expectedResult.json +19 -0
- package/test-fixtures/addMissingField338/nc/metadata.json +6 -0
- package/test-fixtures/addMissingField338/nc/record.json +13 -0
- package/test-fixtures/addMissingField338/nr/expectedResult.json +12 -0
- package/test-fixtures/addMissingField338/nr/metadata.json +7 -0
- package/test-fixtures/addMissingField338/nr/record.json +6 -0
- package/test-fixtures/addMissingField338/sd/expectedResult.json +14 -0
- package/test-fixtures/addMissingField338/sd/metadata.json +6 -0
- package/test-fixtures/addMissingField338/sd/record.json +8 -0
- package/test-fixtures/addMissingField338/sd2/expectedResult.json +14 -0
- package/test-fixtures/addMissingField338/sd2/metadata.json +6 -0
- package/test-fixtures/addMissingField338/sd2/record.json +8 -0
- package/test-fixtures/addMissingField338/sd3/expectedResult.json +14 -0
- package/test-fixtures/addMissingField338/sd3/metadata.json +6 -0
- package/test-fixtures/addMissingField338/sd3/record.json +8 -0
- package/test-fixtures/addMissingField338/ss/expectedResult.json +14 -0
- package/test-fixtures/addMissingField338/ss/metadata.json +6 -0
- package/test-fixtures/addMissingField338/ss/record.json +8 -0
- package/test-fixtures/addMissingField338/ss2/expectedResult.json +14 -0
- package/test-fixtures/addMissingField338/ss2/metadata.json +6 -0
- package/test-fixtures/addMissingField338/ss2/record.json +8 -0
- package/test-fixtures/addMissingField338/vd/expectedResult.json +15 -0
- package/test-fixtures/addMissingField338/vd/metadata.json +6 -0
- package/test-fixtures/addMissingField338/vd/record.json +9 -0
- package/test-fixtures/addMissingField338/vd2/expectedResult.json +13 -0
- package/test-fixtures/addMissingField338/vd2/metadata.json +6 -0
- package/test-fixtures/addMissingField338/vd2/record.json +8 -0
- package/test-fixtures/addMissingField338/vf/expectedResult.json +15 -0
- package/test-fixtures/addMissingField338/vf/metadata.json +6 -0
- package/test-fixtures/addMissingField338/vf/record.json +9 -0
- package/test-fixtures/addMissingField338/zu/expectedResult.json +14 -0
- package/test-fixtures/addMissingField338/zu/metadata.json +6 -0
- package/test-fixtures/addMissingField338/zu/record.json +8 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f01/expectedResult.json +32 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f01/metadata.json +7 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f01/record.json +20 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f02/expectedResult.json +29 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f02/metadata.json +7 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f02/record.json +9 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f03/expectedResult.json +34 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f03/metadata.json +7 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f03/record.json +12 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f04/expectedResult.json +26 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f04/metadata.json +8 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f04/record.json +6 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f05/expectedResult.json +27 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f05/metadata.json +7 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f05/record.json +8 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f06/expectedResult.json +27 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f06/metadata.json +7 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f06/record.json +8 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f07/expectedResult.json +25 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f07/metadata.json +7 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f07/record.json +8 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f08/expectedResult.json +34 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f08/metadata.json +6 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f08/record.json +33 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f09/expectedResult.json +35 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f09/metadata.json +6 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f09/record.json +35 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f10/expectedResult.json +41 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f10/metadata.json +7 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f10/record.json +33 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f11/expectedResult.json +32 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f11/metadata.json +6 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f11/record.json +22 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/v01/expectedResult.json +7 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/v01/metadata.json +6 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/v01/record.json +20 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/v02/expectedResult.json +5 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/v02/metadata.json +6 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/v02/record.json +29 -0
- package/test-fixtures/fix-33X/f11/expectedResult.json +29 -0
- package/test-fixtures/fix-33X/f11/metadata.json +6 -0
- package/test-fixtures/fix-33X/f11/record.json +22 -0
- package/test-fixtures/fix-33X/v11/expectedResult.json +9 -0
- package/test-fixtures/fix-33X/v11/metadata.json +6 -0
- package/test-fixtures/fix-33X/v11/record.json +22 -0
- package/test-fixtures/fix-language-codes/01/expectedResult.json +5 -0
- package/test-fixtures/fix-language-codes/01/metadata.json +6 -0
- package/test-fixtures/fix-language-codes/01/record.json +7 -0
- package/test-fixtures/fix-language-codes/02/expectedResult.json +7 -0
- package/test-fixtures/fix-language-codes/02/metadata.json +6 -0
- package/test-fixtures/fix-language-codes/02/record.json +10 -0
- package/test-fixtures/fix-language-codes/03/expectedResult.json +10 -0
- package/test-fixtures/fix-language-codes/03/metadata.json +6 -0
- package/test-fixtures/fix-language-codes/03/record.json +8 -0
- package/test-fixtures/fix-language-codes/04/expectedResult.json +9 -0
- package/test-fixtures/fix-language-codes/04/metadata.json +7 -0
- package/test-fixtures/fix-language-codes/04/record.json +7 -0
- package/test-fixtures/fix-language-codes/05/expectedResult.json +8 -0
- package/test-fixtures/fix-language-codes/05/metadata.json +6 -0
- package/test-fixtures/fix-language-codes/05/record.json +5 -0
- package/test-fixtures/punctuation2/95/expectedResult.json +22 -0
- package/test-fixtures/punctuation2/95/metadata.json +6 -0
- package/test-fixtures/punctuation2/95/record.json +20 -0
- package/test-fixtures/sanitize-vocabulary-source-codes/f03/expectedResult.json +143 -0
- package/test-fixtures/sanitize-vocabulary-source-codes/f03/metadata.json +9 -0
- package/test-fixtures/sanitize-vocabulary-source-codes/f03/record.json +145 -0
- package/test-fixtures/sanitize-vocabulary-source-codes/v03/expectedResult.json +5 -0
- package/test-fixtures/sanitize-vocabulary-source-codes/v03/metadata.json +6 -0
- package/test-fixtures/sanitize-vocabulary-source-codes/v03/record.json +145 -0
package/src/punctuation2.js
CHANGED
|
@@ -338,7 +338,7 @@ const addPairedPunctuationRules = {
|
|
|
338
338
|
{'code': 'b', 'followedBy': 'c', 'add': ',', 'context': defaultNeedsPuncAfter2},
|
|
339
339
|
// NB! The $c rule messes dotless exception "264 #4 $c p1983" up
|
|
340
340
|
// We'll need to add a hacky postprocessor for this? Add 'hasInd1': '0123' etc?
|
|
341
|
-
{'code': 'c', 'followedBy': '#', 'add': '.', 'context':
|
|
341
|
+
{'code': 'c', 'followedBy': '#', 'add': '.', 'context': defaultNeedsPuncAfter, 'ind2': ['0', '1', '2', '3']}
|
|
342
342
|
],
|
|
343
343
|
'300': [
|
|
344
344
|
{'code': 'a', 'followedBy': 'b', 'add': ' :', 'context': defaultNeedsPuncAfter2},
|
|
@@ -394,11 +394,11 @@ function ruleAppliesToSubfieldCode(targetSubfieldCodes, currSubfieldCode) {
|
|
|
394
394
|
|
|
395
395
|
|
|
396
396
|
function ruleAppliesToField(rule, field) {
|
|
397
|
-
if ('ind1' in rule &&
|
|
397
|
+
if ('ind1' in rule && !rule.ind1.includes(field.ind1)) {
|
|
398
398
|
return false;
|
|
399
399
|
}
|
|
400
400
|
|
|
401
|
-
if ('ind2' in rule &&
|
|
401
|
+
if ('ind2' in rule && !rule.ind2.includes(field.ind2)) {
|
|
402
402
|
return false;
|
|
403
403
|
}
|
|
404
404
|
|
|
@@ -14,25 +14,26 @@ export default function () {
|
|
|
14
14
|
|
|
15
15
|
function fix(record) {
|
|
16
16
|
const res = {message: [], fix: [], valid: true};
|
|
17
|
-
|
|
17
|
+
const relevantFields = getRelevantFields(record);
|
|
18
|
+
relevantFields.forEach(f => fieldSanitizeVocabularySourceCode(f));
|
|
18
19
|
return res;
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
function validate(record) {
|
|
22
23
|
const res = {message: []};
|
|
24
|
+
const relevantFields = getRelevantFields(record);
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
validateField(field, res);
|
|
26
|
-
});
|
|
26
|
+
relevantFields.forEach(field => validateField(field, res));
|
|
27
27
|
|
|
28
28
|
res.valid = !(res.message.length >= 1); // eslint-disable-line functional/immutable-data
|
|
29
29
|
return res;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
function getRelevantFields(record) {
|
|
33
|
+
return record.fields.filter(f => f.subfields && f.tag.match(/^(?:6..|257|370|38.)$/u));
|
|
34
|
+
}
|
|
35
|
+
|
|
32
36
|
function validateField(field, res) {
|
|
33
|
-
if (!field.subfields) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
37
|
const orig = fieldToString(field);
|
|
37
38
|
|
|
38
39
|
const normalizedField = fieldSanitizeVocabularySourceCode(clone(field));
|
|
@@ -49,11 +50,8 @@ export default function () {
|
|
|
49
50
|
return;
|
|
50
51
|
}
|
|
51
52
|
|
|
52
|
-
function fieldSanitizeVocabularySourceCode(field) {
|
|
53
|
-
if (!field.tag.match(/^(?:6..|257|370|38.)$/u)) {
|
|
54
|
-
return field;
|
|
55
|
-
}
|
|
56
53
|
|
|
54
|
+
function fieldSanitizeVocabularySourceCode(field) {
|
|
57
55
|
field.subfields.forEach(sf => subfieldSanitizeVocabularySourceCode(sf));
|
|
58
56
|
return field;
|
|
59
57
|
}
|
package/src/utils.js
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
export function isElectronicMaterial(record) {
|
|
2
2
|
const f337s = record.get('337');
|
|
3
3
|
|
|
4
|
-
return f337s.some(
|
|
5
|
-
const mediaTypeIsC = field.subfields.some(sub => sub.code === 'b' && sub.value === 'c');
|
|
6
|
-
const sourceIsRdamedia = field.subfields.some(sub => sub.code === '2' && sub.value === 'rdamedia');
|
|
7
|
-
return mediaTypeIsC && sourceIsRdamedia;
|
|
8
|
-
});
|
|
4
|
+
return f337s.length > 0 && f337s.some(f => fieldHasSubfield(f, 'b', 'c') && fieldHasSubfield(f, '2', 'rdamedia'));
|
|
9
5
|
}
|
|
10
6
|
|
|
11
7
|
export function nvdebug(message, func = undefined) {
|
|
@@ -26,6 +22,9 @@ export function fieldHasSubfield(field, subfieldCode, subfieldValue = null) {
|
|
|
26
22
|
}
|
|
27
23
|
|
|
28
24
|
export function subfieldToString(sf) {
|
|
25
|
+
if (!sf.value) {
|
|
26
|
+
return `‡${sf.code}`;
|
|
27
|
+
}
|
|
29
28
|
return `‡${sf.code} ${sf.value}`;
|
|
30
29
|
}
|
|
31
30
|
|
|
@@ -36,6 +35,12 @@ function normalizeIndicatorValue(val) {
|
|
|
36
35
|
return val;
|
|
37
36
|
}
|
|
38
37
|
|
|
38
|
+
export function recordToString(record) {
|
|
39
|
+
const ldr = `LDR ${record.leader}`;
|
|
40
|
+
const fields = record.fields.map(f => fieldToString(f));
|
|
41
|
+
return `${ldr}\n${fields.join('\n')}`;
|
|
42
|
+
}
|
|
43
|
+
|
|
39
44
|
export function fieldToString(f) {
|
|
40
45
|
if ('subfields' in f) {
|
|
41
46
|
return `${f.tag} ${normalizeIndicatorValue(f.ind1)}${normalizeIndicatorValue(f.ind2)}${formatSubfields(f)}`;
|
|
@@ -62,14 +67,14 @@ export function isControlSubfieldCode(subfieldCode) {
|
|
|
62
67
|
return false;
|
|
63
68
|
}
|
|
64
69
|
|
|
65
|
-
export function getCatalogingLanguage(record) {
|
|
70
|
+
export function getCatalogingLanguage(record, defaultCatalogingLanguage = undefined) {
|
|
66
71
|
const [field040] = record.get(/^040$/u);
|
|
67
72
|
if (!field040) {
|
|
68
|
-
return
|
|
73
|
+
return defaultCatalogingLanguage;
|
|
69
74
|
}
|
|
70
75
|
const [b] = field040.subfields.filter(sf => sf.code === 'b');
|
|
71
76
|
if (!b) {
|
|
72
|
-
return
|
|
77
|
+
return defaultCatalogingLanguage;
|
|
73
78
|
}
|
|
74
79
|
return b.value;
|
|
75
80
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"leader": "12345cam a22123454i 4500",
|
|
3
|
+
"fields": [
|
|
4
|
+
{ "tag": "300", "ind1": " ", "ind2": " ", "subfields": [
|
|
5
|
+
{ "code": "a", "value": "123 sivua" }
|
|
6
|
+
]},
|
|
7
|
+
{ "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
|
|
8
|
+
{ "code": "a", "value": "teksti" },
|
|
9
|
+
{ "code": "b", "value": "txt" },
|
|
10
|
+
{ "code": "2", "value": "rdacontent" }
|
|
11
|
+
]}
|
|
12
|
+
]
|
|
13
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_validationOptions": {},
|
|
3
|
+
"leader": "12345cmm a22123454i 4500",
|
|
4
|
+
"fields": [
|
|
5
|
+
{ "tag": "008", "value": "121212s2000 fi |||| a| | | | fin "},
|
|
6
|
+
{ "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
|
|
7
|
+
{ "code": "a", "value": "digitaalinen data" },
|
|
8
|
+
{ "code": "b", "value": "cod" },
|
|
9
|
+
{ "code": "2", "value": "rdacontent" }
|
|
10
|
+
]}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_validationOptions": {},
|
|
3
|
+
"leader": "12345cmm a22123454i 4500",
|
|
4
|
+
"fields": [
|
|
5
|
+
{ "tag": "008", "value": "121212s2000 fi |||| q b| | | | fin "},
|
|
6
|
+
{ "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
|
|
7
|
+
{ "code": "a", "value": "tietokoneohjelma" },
|
|
8
|
+
{ "code": "b", "value": "cop" },
|
|
9
|
+
{ "code": "2", "value": "rdacontent" }
|
|
10
|
+
]}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_validationOptions": {},
|
|
3
|
+
"leader": "12345cmm a22123454i 4500",
|
|
4
|
+
"fields": [
|
|
5
|
+
{ "tag": "008", "value": "121212s2000 fi |||| q | | | | fin "},
|
|
6
|
+
{ "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
|
|
7
|
+
{ "code": "a", "value": "tietokoneohjelma" },
|
|
8
|
+
{ "code": "b", "value": "cop" },
|
|
9
|
+
{ "code": "2", "value": "rdacontent" }
|
|
10
|
+
]},
|
|
11
|
+
{ "tag": "516", "ind1": " ", "ind2": " ", "subfields": [ { "code": "a", "value": "tietokoneohjelma" } ] }
|
|
12
|
+
]
|
|
13
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_validationOptions": {},
|
|
3
|
+
"leader": "12345cem a22123454i 4500",
|
|
4
|
+
"fields": [
|
|
5
|
+
{ "tag": "008", "value": "121212s2000 fi d fin "},
|
|
6
|
+
{ "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
|
|
7
|
+
{ "code": "a", "value": "kartografinen kolmiulotteinen muoto" },
|
|
8
|
+
{ "code": "b", "value": "crf" },
|
|
9
|
+
{ "code": "2", "value": "rdacontent" }
|
|
10
|
+
]}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_validationOptions": {},
|
|
3
|
+
"leader": "12345cem a22123454i 4500",
|
|
4
|
+
"fields": [
|
|
5
|
+
{ "tag": "008", "value": "121212s2000 fi fin "},
|
|
6
|
+
{ "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
|
|
7
|
+
{ "code": "a", "value": "kartografinen kuva" },
|
|
8
|
+
{ "code": "b", "value": "cri" },
|
|
9
|
+
{ "code": "2", "value": "rdacontent" }
|
|
10
|
+
]}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_validationOptions": {},
|
|
3
|
+
"leader": "12345cem a22123454i 4500",
|
|
4
|
+
"fields": [
|
|
5
|
+
{ "tag": "007", "value": "aq234567"},
|
|
6
|
+
{ "tag": "008", "value": "121212s2000 fi f fin "},
|
|
7
|
+
{ "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
|
|
8
|
+
{ "code": "a", "value": "kartografinen taktiili kuva" },
|
|
9
|
+
{ "code": "b", "value": "crt" },
|
|
10
|
+
{ "code": "2", "value": "rdacontent" }
|
|
11
|
+
]}
|
|
12
|
+
]
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_validationOptions": {},
|
|
3
|
+
"leader": "12345cam a22123454i 4500",
|
|
4
|
+
"fields": [
|
|
5
|
+
{ "tag": "040", "ind1": " ", "ind2": " ", "subfields": [
|
|
6
|
+
{ "code": "b", "value": "swe" }
|
|
7
|
+
]},
|
|
8
|
+
{ "tag": "300", "ind1": " ", "ind2": " ", "subfields": [
|
|
9
|
+
{ "code": "a", "value": "123 sivua" }
|
|
10
|
+
]},
|
|
11
|
+
{ "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
|
|
12
|
+
{ "code": "a", "value": "text" },
|
|
13
|
+
{ "code": "b", "value": "txt" },
|
|
14
|
+
{ "code": "2", "value": "rdacontent" }
|
|
15
|
+
]}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"leader": "12345cam a22123454i 4500",
|
|
3
|
+
"fields": [
|
|
4
|
+
{ "tag": "040", "ind1": " ", "ind2": " ", "subfields": [
|
|
5
|
+
{ "code": "b", "value": "swe" }
|
|
6
|
+
]},
|
|
7
|
+
{ "tag": "300", "ind1": " ", "ind2": " ", "subfields": [
|
|
8
|
+
{ "code": "a", "value": "123 sivua" }
|
|
9
|
+
]}
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_validationOptions": {},
|
|
3
|
+
"leader": "12345cam a22123454i 4500",
|
|
4
|
+
"fields": [
|
|
5
|
+
{ "tag": "008", "value": "121212s2000 fi abcd f 000 1 fin "},
|
|
6
|
+
{ "tag": "300", "ind1": " ", "ind2": " ", "subfields": [
|
|
7
|
+
{ "code": "a", "value": "123 sivua" }
|
|
8
|
+
]},
|
|
9
|
+
{ "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
|
|
10
|
+
{ "code": "a", "value": "taktiili teksti" },
|
|
11
|
+
{ "code": "b", "value": "tct" },
|
|
12
|
+
{ "code": "2", "value": "rdacontent" }
|
|
13
|
+
]}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_validationOptions": {},
|
|
3
|
+
"leader": "12345cpm a22123454i 4500",
|
|
4
|
+
"fields": [
|
|
5
|
+
{ "tag": "008", "value": "121212s2000 fi |||| r b| | | | fin "},
|
|
6
|
+
{ "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
|
|
7
|
+
{ "code": "a", "value": "teksti" },
|
|
8
|
+
{ "code": "b", "value": "txt" },
|
|
9
|
+
{ "code": "2", "value": "rdacontent" }
|
|
10
|
+
]}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_validationOptions": {},
|
|
3
|
+
"leader": "12345cpm a22123454i 4500",
|
|
4
|
+
"fields": [
|
|
5
|
+
{ "tag": "008", "value": "121212s2000 fi |||| a b| | | | fin "},
|
|
6
|
+
{ "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
|
|
7
|
+
{ "code": "a", "value": "muu" },
|
|
8
|
+
{ "code": "b", "value": "xxx" },
|
|
9
|
+
{ "code": "2", "value": "rdacontent" }
|
|
10
|
+
]}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_validationOptions": {},
|
|
3
|
+
"leader": "12345cdm a22123454i 4500",
|
|
4
|
+
"fields": [
|
|
5
|
+
{ "tag": "008", "value": "121212s2000 fi fin "},
|
|
6
|
+
{ "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
|
|
7
|
+
{ "code": "a", "value": "nuottikirjoitus" },
|
|
8
|
+
{ "code": "b", "value": "ntm" },
|
|
9
|
+
{ "code": "2", "value": "rdacontent" }
|
|
10
|
+
]}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_validationOptions": {},
|
|
3
|
+
"leader": "12345cmm a22123454i 4500",
|
|
4
|
+
"fields": [
|
|
5
|
+
{ "tag": "008", "value": "121212s2000 fi |||| q h| | | | fin "},
|
|
6
|
+
{ "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
|
|
7
|
+
{ "code": "a", "value": "ääni" },
|
|
8
|
+
{ "code": "b", "value": "snd" },
|
|
9
|
+
{ "code": "2", "value": "rdacontent" }
|
|
10
|
+
]}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_validationOptions": {},
|
|
3
|
+
"leader": "12345cim a22123454i 4500",
|
|
4
|
+
"fields": [
|
|
5
|
+
{ "tag": "008", "value": "121212s2000 fi fin "},
|
|
6
|
+
{ "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
|
|
7
|
+
{ "code": "a", "value": "puhe" },
|
|
8
|
+
{ "code": "b", "value": "spw" },
|
|
9
|
+
{ "code": "2", "value": "rdacontent" }
|
|
10
|
+
]}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_validationOptions": {},
|
|
3
|
+
"leader": "12345cmm a22123454i 4500",
|
|
4
|
+
"fields": [
|
|
5
|
+
{ "tag": "008", "value": "121212s2000 fi |||| q | | | | fin "},
|
|
6
|
+
{ "tag": "336", "ind1": " ", "ind2": " ", "subfields": [
|
|
7
|
+
{ "code": "a", "value": "puhe" },
|
|
8
|
+
{ "code": "b", "value": "spw" },
|
|
9
|
+
{ "code": "2", "value": "rdacontent" }
|
|
10
|
+
]},
|
|
11
|
+
{ "tag": "516", "ind1": " ", "ind2": " ", "subfields": [ { "code": "a", "value": "äänikirja" } ] }
|
|
12
|
+
]
|
|
13
|
+
}
|