@natlibfi/marc-record-validators-melinda 11.1.1 → 11.2.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/addMissingField041.js +93 -0
- package/dist/addMissingField041.js.map +1 -0
- package/dist/addMissingField041.spec.js +45 -0
- package/dist/addMissingField041.spec.js.map +1 -0
- package/dist/cyrillux-usemarcon-replacement.js +16 -13
- package/dist/cyrillux-usemarcon-replacement.js.map +1 -1
- package/dist/punctuation2.js +26 -19
- package/dist/punctuation2.js.map +1 -1
- package/dist/sortSubfields.js +1 -0
- package/dist/sortSubfields.js.map +1 -1
- package/package.json +5 -5
- package/src/addMissingField041.js +74 -0
- package/src/addMissingField041.spec.js +46 -0
- package/src/cyrillux-usemarcon-replacement.js +28 -5
- package/src/punctuation2.js +19 -20
- package/src/sortSubfields.js +1 -0
- package/test-fixtures/addMissingField041/f01/expectedResult.json +7 -0
- package/test-fixtures/addMissingField041/f01/metadata.json +5 -0
- package/test-fixtures/addMissingField041/f01/record.json +6 -0
- package/test-fixtures/addMissingField041/f02/expectedResult.json +8 -0
- package/test-fixtures/addMissingField041/f02/metadata.json +6 -0
- package/test-fixtures/addMissingField041/f02/record.json +6 -0
- package/test-fixtures/addMissingField041/f03/expectedResult.json +8 -0
- package/test-fixtures/addMissingField041/f03/metadata.json +6 -0
- package/test-fixtures/addMissingField041/f03/record.json +7 -0
- package/test-fixtures/addMissingField041/f04/expectedResult.json +8 -0
- package/test-fixtures/addMissingField041/f04/metadata.json +5 -0
- package/test-fixtures/addMissingField041/f04/record.json +6 -0
- package/test-fixtures/addMissingField041/v01/expectedResult.json +5 -0
- package/test-fixtures/addMissingField041/v01/metadata.json +5 -0
- package/test-fixtures/addMissingField041/v01/record.json +6 -0
- package/test-fixtures/addMissingField041/v02/expectedResult.json +6 -0
- package/test-fixtures/addMissingField041/v02/metadata.json +6 -0
- package/test-fixtures/addMissingField041/v02/record.json +6 -0
- package/test-fixtures/addMissingField336/01/metadata.json +0 -1
- package/test-fixtures/addMissingField336/02/metadata.json +0 -1
- package/test-fixtures/addMissingField336/cod/metadata.json +0 -1
- package/test-fixtures/addMissingField336/cop/metadata.json +0 -1
- package/test-fixtures/addMissingField336/cop2/metadata.json +0 -1
- package/test-fixtures/addMissingField336/crf/metadata.json +0 -1
- package/test-fixtures/addMissingField336/cri/metadata.json +0 -1
- package/test-fixtures/addMissingField336/crt/metadata.json +0 -1
- package/test-fixtures/addMissingField336/f01/metadata.json +0 -1
- package/test-fixtures/addMissingField336/f02/metadata.json +0 -1
- package/test-fixtures/addMissingField336/mixed2txt/metadata.json +0 -1
- package/test-fixtures/addMissingField336/mixed2xxx/metadata.json +0 -1
- package/test-fixtures/addMissingField336/ntm/metadata.json +0 -1
- package/test-fixtures/addMissingField336/snd/metadata.json +0 -1
- package/test-fixtures/addMissingField336/spw/metadata.json +0 -1
- package/test-fixtures/addMissingField336/spw2/metadata.json +0 -1
- package/test-fixtures/addMissingField336/spw_txt/metadata.json +0 -1
- package/test-fixtures/addMissingField336/sti/metadata.json +0 -1
- package/test-fixtures/addMissingField336/sti_projected/metadata.json +0 -1
- package/test-fixtures/addMissingField336/tci/metadata.json +0 -1
- package/test-fixtures/addMissingField336/tcm/metadata.json +0 -1
- package/test-fixtures/addMissingField336/tdf/metadata.json +0 -1
- package/test-fixtures/addMissingField336/tdi/metadata.json +0 -1
- package/test-fixtures/addMissingField336/txt/metadata.json +0 -1
- package/test-fixtures/addMissingField336/zzz/metadata.json +0 -1
- package/test-fixtures/addMissingField337/c1/metadata.json +0 -1
- package/test-fixtures/addMissingField337/g1/metadata.json +0 -1
- package/test-fixtures/addMissingField337/n1/metadata.json +0 -1
- package/test-fixtures/addMissingField337/no_action_required/metadata.json +0 -1
- package/test-fixtures/addMissingField337/p1/metadata.json +0 -1
- package/test-fixtures/addMissingField337/validate_x1/metadata.json +0 -1
- package/test-fixtures/addMissingField338/cb/metadata.json +0 -1
- package/test-fixtures/addMissingField338/cd/metadata.json +0 -1
- package/test-fixtures/addMissingField338/ck/metadata.json +0 -1
- package/test-fixtures/addMissingField338/cr/metadata.json +0 -1
- package/test-fixtures/addMissingField338/cr2/metadata.json +0 -1
- package/test-fixtures/addMissingField338/cr3/metadata.json +0 -1
- package/test-fixtures/addMissingField338/cr4/metadata.json +0 -1
- package/test-fixtures/addMissingField338/gc/metadata.json +0 -1
- package/test-fixtures/addMissingField338/gd/metadata.json +0 -1
- package/test-fixtures/addMissingField338/gf/metadata.json +0 -1
- package/test-fixtures/addMissingField338/gs/metadata.json +0 -1
- package/test-fixtures/addMissingField338/gt/metadata.json +0 -1
- package/test-fixtures/addMissingField338/hd/metadata.json +0 -1
- package/test-fixtures/addMissingField338/he/metadata.json +0 -1
- package/test-fixtures/addMissingField338/he2/metadata.json +0 -1
- package/test-fixtures/addMissingField338/hg/metadata.json +0 -1
- package/test-fixtures/addMissingField338/hg2/metadata.json +0 -1
- package/test-fixtures/addMissingField338/hj/metadata.json +0 -1
- package/test-fixtures/addMissingField338/hj2/metadata.json +0 -1
- package/test-fixtures/addMissingField338/mo/metadata.json +0 -1
- package/test-fixtures/addMissingField338/nc/metadata.json +0 -1
- package/test-fixtures/addMissingField338/nr/metadata.json +0 -1
- package/test-fixtures/addMissingField338/sd/metadata.json +0 -1
- package/test-fixtures/addMissingField338/sd2/metadata.json +0 -1
- package/test-fixtures/addMissingField338/sd3/metadata.json +0 -1
- package/test-fixtures/addMissingField338/ss/metadata.json +0 -1
- package/test-fixtures/addMissingField338/ss2/metadata.json +0 -1
- package/test-fixtures/addMissingField338/vd/metadata.json +0 -1
- package/test-fixtures/addMissingField338/vd2/metadata.json +0 -1
- package/test-fixtures/addMissingField338/vf/metadata.json +0 -1
- package/test-fixtures/addMissingField338/zu/metadata.json +0 -1
- package/test-fixtures/cyrillux-usemarcon-replacement/f01/metadata.json +0 -1
- package/test-fixtures/cyrillux-usemarcon-replacement/f02/expectedResult.json +3 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f02/metadata.json +0 -1
- package/test-fixtures/cyrillux-usemarcon-replacement/f03/expectedResult.json +3 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f03/metadata.json +0 -1
- package/test-fixtures/cyrillux-usemarcon-replacement/f04/expectedResult.json +3 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f04/metadata.json +0 -1
- package/test-fixtures/cyrillux-usemarcon-replacement/f05/expectedResult.json +3 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f05/metadata.json +1 -1
- package/test-fixtures/cyrillux-usemarcon-replacement/f06/expectedResult.json +3 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f06/metadata.json +0 -1
- package/test-fixtures/cyrillux-usemarcon-replacement/f07/expectedResult.json +3 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f07/metadata.json +0 -1
- package/test-fixtures/cyrillux-usemarcon-replacement/f08/expectedResult.json +3 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f08/metadata.json +0 -1
- package/test-fixtures/cyrillux-usemarcon-replacement/f09/expectedResult.json +1 -2
- package/test-fixtures/cyrillux-usemarcon-replacement/f09/metadata.json +1 -2
- package/test-fixtures/cyrillux-usemarcon-replacement/f09/record.json +1 -1
- package/test-fixtures/cyrillux-usemarcon-replacement/f10/expectedResult.json +1 -1
- package/test-fixtures/cyrillux-usemarcon-replacement/f10/metadata.json +0 -1
- package/test-fixtures/cyrillux-usemarcon-replacement/f10/record.json +1 -1
- package/test-fixtures/cyrillux-usemarcon-replacement/f11/expectedResult.json +3 -0
- package/test-fixtures/cyrillux-usemarcon-replacement/f11/metadata.json +1 -2
- package/test-fixtures/cyrillux-usemarcon-replacement/v01/metadata.json +0 -1
- package/test-fixtures/cyrillux-usemarcon-replacement/v02/metadata.json +0 -1
- package/test-fixtures/cyrillux-usemarcon-replacement/v02/record.json +1 -1
- package/test-fixtures/field-008-18-34-character-groups/01/metadata.json +0 -1
- package/test-fixtures/field-008-18-34-character-groups/02/metadata.json +0 -1
- package/test-fixtures/field-008-18-34-character-groups/03/metadata.json +0 -1
- package/test-fixtures/field-008-18-34-character-groups/04/metadata.json +0 -1
- package/test-fixtures/field-008-18-34-character-groups/05/metadata.json +0 -1
- package/test-fixtures/field-505-separators/01/metadata.json +0 -1
- package/test-fixtures/field-505-separators/02/metadata.json +0 -1
- package/test-fixtures/fix-33X/f11/metadata.json +0 -1
- package/test-fixtures/fix-33X/v11/metadata.json +0 -1
- package/test-fixtures/fix-country-codes/01/metadata.json +0 -1
- package/test-fixtures/fix-country-codes/02/metadata.json +0 -1
- package/test-fixtures/fix-country-codes/03/metadata.json +0 -1
- package/test-fixtures/fix-country-codes/04/metadata.json +0 -1
- package/test-fixtures/fix-country-codes/05/metadata.json +0 -1
- package/test-fixtures/fix-language-codes/01/metadata.json +0 -1
- package/test-fixtures/fix-language-codes/02/metadata.json +0 -1
- package/test-fixtures/fix-language-codes/03/metadata.json +0 -1
- package/test-fixtures/fix-language-codes/04/metadata.json +0 -1
- package/test-fixtures/fix-language-codes/05/metadata.json +0 -1
- package/test-fixtures/fix-relator-terms/f01/metadata.json +0 -1
- package/test-fixtures/fix-relator-terms/f01b/metadata.json +0 -1
- package/test-fixtures/fix-relator-terms/f02/metadata.json +0 -1
- package/test-fixtures/fix521/01/metadata.json +0 -1
- package/test-fixtures/fix521/02/metadata.json +0 -1
- package/test-fixtures/fix521/03/metadata.json +0 -1
- package/test-fixtures/indicator-fixes/01/metadata.json +0 -1
- package/test-fixtures/indicator-fixes/02/metadata.json +0 -1
- package/test-fixtures/indicator-fixes/03/metadata.json +0 -1
- package/test-fixtures/indicator-fixes/04/metadata.json +0 -1
- package/test-fixtures/indicator-fixes/05/metadata.json +0 -1
- package/test-fixtures/indicator-fixes/06/metadata.json +0 -1
- package/test-fixtures/indicator-fixes/07/metadata.json +0 -1
- package/test-fixtures/normalize-dashes/01/metadata.json +0 -1
- package/test-fixtures/normalize-dashes/02/metadata.json +0 -1
- package/test-fixtures/normalize-dashes/03/metadata.json +0 -1
- package/test-fixtures/normalize-identifiers/01/metadata.json +0 -1
- package/test-fixtures/normalize-identifiers/02/metadata.json +0 -1
- package/test-fixtures/normalize-identifiers/03/metadata.json +0 -1
- package/test-fixtures/normalize-identifiers/04/metadata.json +0 -1
- package/test-fixtures/normalize-qualifying-information/01/metadata.json +0 -1
- package/test-fixtures/normalize-qualifying-information/02/metadata.json +0 -1
- package/test-fixtures/normalize-subfield-value/01/metadata.json +0 -1
- package/test-fixtures/normalize-utf8-diacritics/01/metadata.json +0 -1
- package/test-fixtures/normalize-utf8-diacritics/02/metadata.json +0 -1
- package/test-fixtures/normalize-utf8-diacritics/03/metadata.json +0 -1
- package/test-fixtures/normalize-utf8-diacritics/04/metadata.json +0 -1
- package/test-fixtures/normalize-utf8-diacritics/05/metadata.json +0 -1
- package/test-fixtures/punctuation/03/metadata.json +0 -1
- package/test-fixtures/punctuation/04/metadata.json +0 -1
- package/test-fixtures/punctuation/05/metadata.json +0 -1
- package/test-fixtures/punctuation2/01/metadata.json +0 -1
- package/test-fixtures/punctuation2/02/metadata.json +0 -1
- package/test-fixtures/punctuation2/04/metadata.json +0 -1
- package/test-fixtures/punctuation2/05/metadata.json +0 -1
- package/test-fixtures/punctuation2/240/metadata.json +0 -1
- package/test-fixtures/punctuation2/260/expectedResult.json +14 -0
- package/test-fixtures/punctuation2/260/metadata.json +5 -0
- package/test-fixtures/punctuation2/260/record.json +12 -0
- package/test-fixtures/punctuation2/710/expectedResult.json +11 -0
- package/test-fixtures/punctuation2/710/metadata.json +5 -0
- package/test-fixtures/punctuation2/710/record.json +9 -0
- package/test-fixtures/punctuation2/800/metadata.json +0 -1
- package/test-fixtures/punctuation2/95/metadata.json +0 -1
- package/test-fixtures/punctuation2/96/metadata.json +0 -1
- package/test-fixtures/punctuation2/97/metadata.json +0 -1
- package/test-fixtures/punctuation2/98/metadata.json +0 -1
- package/test-fixtures/punctuation2/99/metadata.json +0 -1
- package/test-fixtures/reindex-sf6-occurence-numbers/f01/metadata.json +0 -1
- package/test-fixtures/reindex-sf6-occurence-numbers/f02/metadata.json +0 -1
- package/test-fixtures/reindex-sf6-occurence-numbers/f03/metadata.json +0 -1
- package/test-fixtures/reindex-sf6-occurence-numbers/v01/metadata.json +0 -1
- package/test-fixtures/reindex-sf6-occurence-numbers/v02/metadata.json +0 -1
- package/test-fixtures/reindex-sf6-occurence-numbers/v03/metadata.json +0 -1
- package/test-fixtures/remove-duplicate-datafields/f01/metadata.json +0 -1
- package/test-fixtures/remove-duplicate-datafields/f03/metadata.json +0 -1
- package/test-fixtures/remove-duplicate-datafields/f03b/metadata.json +0 -1
- package/test-fixtures/remove-duplicate-datafields/f04/metadata.json +0 -1
- package/test-fixtures/remove-duplicate-datafields/f05/metadata.json +0 -1
- package/test-fixtures/remove-duplicate-datafields/f06/metadata.json +0 -1
- package/test-fixtures/remove-duplicate-datafields/f07/metadata.json +0 -1
- package/test-fixtures/remove-duplicate-datafields/f08/metadata.json +0 -1
- package/test-fixtures/remove-duplicate-datafields/f09/metadata.json +0 -1
- package/test-fixtures/remove-duplicate-datafields/f10/metadata.json +0 -1
- package/test-fixtures/remove-duplicate-datafields/f11/metadata.json +0 -1
- package/test-fixtures/remove-duplicate-datafields/v01/metadata.json +0 -1
- package/test-fixtures/remove-duplicate-datafields/v02/metadata.json +0 -1
- package/test-fixtures/remove-duplicate-datafields/v03/metadata.json +0 -1
- package/test-fixtures/remove-duplicate-datafields/v04/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f01/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f02a/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f02b/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f03/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f04/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f05/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f06/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f07a/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f07b/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f07c/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f07d/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f07e/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f07f/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f07g/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f07h/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f07i/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f07j/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f08/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f09/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f10/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f11/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f12/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/f13/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/v01/metadata.json +0 -1
- package/test-fixtures/remove-inferior-datafields/v02/metadata.json +0 -1
- package/test-fixtures/remove-orphanded-sf6s/f01/metadata.json +0 -1
- package/test-fixtures/remove-orphanded-sf6s/f02/metadata.json +0 -1
- package/test-fixtures/remove-orphanded-sf6s/v01/metadata.json +0 -1
- package/test-fixtures/remove-orphanded-sf6s/v02/metadata.json +0 -1
- package/test-fixtures/sanitize-vocabulary-source-codes/f01/metadata.json +0 -1
- package/test-fixtures/sanitize-vocabulary-source-codes/f02/metadata.json +0 -1
- package/test-fixtures/sanitize-vocabulary-source-codes/f03/metadata.json +0 -1
- package/test-fixtures/sanitize-vocabulary-source-codes/v01/metadata.json +0 -1
- package/test-fixtures/sanitize-vocabulary-source-codes/v03/metadata.json +0 -1
- package/test-fixtures/sort-relator-terms/f01/metadata.json +0 -1
- package/test-fixtures/sort-relator-terms/f02/metadata.json +0 -1
- package/test-fixtures/sort-relator-terms/v01/metadata.json +0 -1
- package/test-fixtures/sort-relator-terms/v02/metadata.json +0 -1
- package/test-fixtures/sort-subfields/f01/metadata.json +0 -1
- package/test-fixtures/sort-subfields/f02/metadata.json +0 -1
- package/test-fixtures/sort-subfields/v01/metadata.json +0 -1
- package/test-fixtures/sort-subfields/v02/metadata.json +0 -1
- package/test-fixtures/strip-punctuation/01/metadata.json +0 -1
- package/test-fixtures/strip-punctuation/02/metadata.json +0 -1
- package/test-fixtures/strip-punctuation/04/metadata.json +0 -1
- package/test-fixtures/strip-punctuation/05/metadata.json +0 -1
- package/test-fixtures/strip-punctuation/240/metadata.json +0 -1
- package/test-fixtures/strip-punctuation/96/metadata.json +0 -1
- package/test-fixtures/strip-punctuation/97/metadata.json +0 -1
- package/test-fixtures/strip-punctuation/98/metadata.json +0 -1
- package/test-fixtures/strip-punctuation/99/metadata.json +0 -1
- package/test-fixtures/subfield0/f01/metadata.json +0 -1
- package/test-fixtures/subfield0/f02/metadata.json +0 -1
- package/test-fixtures/subfield0/f03/metadata.json +0 -1
- package/test-fixtures/subfield0/v01/metadata.json +0 -1
- package/test-fixtures/subfield0/v02/metadata.json +0 -1
- package/test-fixtures/sync-007-and-300/f01/metadata.json +0 -1
- package/test-fixtures/sync-007-and-300/v01/metadata.json +0 -1
- package/test-fixtures/sync-007-and-300/v02/metadata.json +0 -1
- package/test-fixtures/sync-007-and-300/v03/metadata.json +0 -1
- package/test-fixtures/update-field-540/f01/metadata.json +0 -1
- package/test-fixtures/update-field-540/v01/metadata.json +0 -1
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import clone from 'clone';
|
|
9
9
|
import {MarcRecord} from '@natlibfi/marc-record';
|
|
10
10
|
import {default as fix33X} from './fix-33X';
|
|
11
|
+
import {default as add041} from './addMissingField041';
|
|
11
12
|
import {default as add336} from './addMissingField336';
|
|
12
13
|
import {default as add337} from './addMissingField337';
|
|
13
14
|
import {default as add338} from './addMissingField338';
|
|
@@ -68,6 +69,7 @@ export default function () {
|
|
|
68
69
|
f028.forEach(f => sortAdjacentSubfields(f));
|
|
69
70
|
|
|
70
71
|
fixField040(record); // All $b values are changed to 'mul'. As a side effect 33X$b=>$a mappings are in Finnish! Ok in this domain!
|
|
72
|
+
add041().fix(record);
|
|
71
73
|
|
|
72
74
|
fixRelatorTerms().fix(record);
|
|
73
75
|
|
|
@@ -338,6 +340,8 @@ function expandEnglishAbbreviations(value) {
|
|
|
338
340
|
replace(/col\. ill\./ui, 'color illustrations').
|
|
339
341
|
replace(/diagrs\./ui, 'diagrams').
|
|
340
342
|
replace(/\bhbk\.\b/gui, 'hardcover').replace(/\bhbk\b/gui, 'hardcover'). // expand to MTS-compliant form
|
|
343
|
+
replace(/\b1 hr\./gui, '1 hour').
|
|
344
|
+
replace(/\bhr\./gui, 'hours').
|
|
341
345
|
replace(/\bill\./gui, 'illustrated'). // or illustrations (or Swedish "illustrerad" or...)
|
|
342
346
|
replace(/\billus\./gui, 'illustrated'). // or illustrations
|
|
343
347
|
replace(/incl\./gui, 'includes').
|
|
@@ -346,9 +350,10 @@ function expandEnglishAbbreviations(value) {
|
|
|
346
350
|
// replace(/\bmin\b/gu, 'minutes').
|
|
347
351
|
replace(/\bp\.\b/gui, 'pages').replace(/\bp\b/gu, 'pages').
|
|
348
352
|
replace(/\bpbk\.\b/gui, 'paperback').replace(/\bpbk\b/gui, 'paperback'). // expand to MTS-compliant form
|
|
353
|
+
replace(/\bpdf\b/gui, 'PDF').
|
|
349
354
|
replace(/\bports\./gui, 'portraits').
|
|
350
355
|
replace('sd., col.', 'sound, color').
|
|
351
|
-
replace(/ *\((?:chiefly col\.|chiefly color|some
|
|
356
|
+
replace(/ *\((?:chiefly col\.|chiefly color|some col[s.])\)/gui, '').
|
|
352
357
|
replace(/\b1 hr\./gui, '1 hour');
|
|
353
358
|
}
|
|
354
359
|
|
|
@@ -375,33 +380,51 @@ function finnishTranslationsAndMappings(value) {
|
|
|
375
380
|
replace('approximately', 'noin').
|
|
376
381
|
replace('audio discs', 'äänilevyä').
|
|
377
382
|
replace('black and white', 'mustavalkoinen').
|
|
383
|
+
replace(/\bbilaga\b/gui, 'liite').
|
|
384
|
+
replace(/\bbilagor\b/gui, 'liitettä').
|
|
378
385
|
replace(/\bcharts\b/gui, 'kaavioita').
|
|
379
386
|
replace('chiefly color illustrations', 'pääosin värikuvitettu').
|
|
380
387
|
replace('chiefly', 'pääosin').
|
|
388
|
+
replace(/\bcirca\b/gui, 'noin').
|
|
389
|
+
replace(/coil[- ]?bound/gui, 'kierreselkä').
|
|
381
390
|
replace('color illustrations', 'värikuvitus').
|
|
391
|
+
replace(/comb[- ]?bound/gui, 'kierreselkä').
|
|
382
392
|
replace(/\bdigital\b/gui, 'digitaalinen').
|
|
383
393
|
replace(/\belectronic book\b/gui, 'verkkoaineisto').
|
|
394
|
+
replace('(flera nummersviter)', '(useita numerointijaksoja)').
|
|
384
395
|
replace(/\bfolded sheet\b/gui, 'taitelehti').
|
|
385
|
-
replace(/\
|
|
396
|
+
replace(/\bfärgillustratione[nr]\b/gui, 'värikuvitus').
|
|
397
|
+
replace(/\bhard(?:back|cover)\b/gui, 'kovakantinen').
|
|
386
398
|
replace(/\bhours\b/gui, 'tuntia').
|
|
399
|
+
replace(/\bi flera nummersviter/gui, 'useina numerointijaksoina').
|
|
387
400
|
replace('illustrated', 'kuvitettu').
|
|
388
|
-
replace(/
|
|
389
|
-
replace(
|
|
401
|
+
replace(/illustrations?\b/gui, 'kuvitettu'). // Based on usemacron-bookwhere (NB! usemarcon-cyrillux had kuvitus/kuvitettu)
|
|
402
|
+
replace(/\binbunden\b/gui, 'kovakantinen'). // swe
|
|
390
403
|
replace(/\binsert\b/gui, 'liite').
|
|
391
404
|
replace(/\binserts\b/gui, 'liitteitä').
|
|
405
|
+
replace(/\bin various pagings/gui, 'useina numerointijaksoina').
|
|
392
406
|
replace('leaves of plates', 'kuvalehteä').
|
|
407
|
+
replace(/\bljudskiva\b/gui, 'äänilevy').
|
|
408
|
+
replace(/\bljudskivor\b/gui, 'äänilevyä').
|
|
393
409
|
replace(/\bmap\b/gui, 'kartta').
|
|
394
410
|
replace(/\bmaps\b/gui, 'karttoja'). // or karttaa?
|
|
395
411
|
replace('minutes', 'minuuttia').
|
|
412
|
+
replace('mjuka pärmar', 'pehmeäkantinen').
|
|
396
413
|
replace('online resource', 'verkkoaineisto').
|
|
414
|
+
replace('onlineresurs', 'verkkoaineisto').
|
|
415
|
+
replace('onumrerade', 'numeroimatonta').
|
|
397
416
|
replace('pages of plates', 'kuvalehteä').
|
|
398
417
|
replace(/\bpages\b/gui, 'sivua').
|
|
399
418
|
replace(/\bpaperback\b/gui, 'pehmeäkantinen'). // MTS alt
|
|
419
|
+
replace(/\bSeiten\b/gu, 'sivua').
|
|
400
420
|
replace(/\bsoftcover\b/gui, 'pehmeäkantinen'). // MTS pref
|
|
401
421
|
replace('sound, color', 'äänellinen, värillinen').
|
|
402
422
|
replace('sound cassettes', 'äänikasettia').replace('sound cassette', 'äänikasetti').
|
|
403
|
-
replace('sound discs', 'äänilevyä').replace(
|
|
423
|
+
replace('sound discs', 'äänilevyä').replace(/sound disc\b/gui, 'äänilevy').
|
|
424
|
+
replace(/(?:spiral[- ]?bound|spiralrygg)/gui, 'kierreselkä').
|
|
425
|
+
replace('svartvit', 'mustavalkoinen').
|
|
404
426
|
replace('unnumbered', 'numeroimatonta').
|
|
427
|
+
replace('(various pagings)', '(useita numerointijaksoja)').
|
|
405
428
|
replace(/\bverkkojulkaisu\b/gui, 'verkkoaineisto').
|
|
406
429
|
replace('videodiscs', 'videolevyä').
|
|
407
430
|
replace('videodisc', 'videolevy').
|
package/src/punctuation2.js
CHANGED
|
@@ -86,7 +86,7 @@ export function fieldNeedsModification(field, add = true) {
|
|
|
86
86
|
|
|
87
87
|
|
|
88
88
|
//const stripCrap = / *[-;:,+]+$/u;
|
|
89
|
-
const
|
|
89
|
+
const needsPuncAfterAlphanumeric = /(?:[a-z0-9A-Z]|å|ä|ö|Å|Ä|Ö)$/u;
|
|
90
90
|
const defaultNeedsPuncAfter2 = /(?:[\]a-zA-Z0-9)]|ä|å|ö|Å|Ä|Ö)$/u;
|
|
91
91
|
const doesNotEndInPunc = /[^!?.:;,]$/u; // non-punc for pre-240/700/XXX $, note that '.' comes if preceded by ')'
|
|
92
92
|
const blocksPuncRHS = /^(?:\()/u;
|
|
@@ -105,7 +105,6 @@ const cleanX00aDot = {'code': 'abcde', 'followedBy': 'cdegj', 'context': dotIsPr
|
|
|
105
105
|
const cleanCorruption = {'code': 'abcdefghijklmnopqrstuvwxyz', 'remove': / \.$/u};
|
|
106
106
|
// These $e dot removals are tricky: before removing the comma, we should know that it ain't an abbreviation such as "esitt."...
|
|
107
107
|
const cleanX00eDot = {'code': 'e', 'followedBy': 'egj#', 'context': /(?:[ai]ja|jä)[.,]$/u, 'remove': /\.$/u};
|
|
108
|
-
|
|
109
108
|
const removeCommaBeforeLanguageSubfieldL = {'followedBy': 'l', 'remove': /,$/u};
|
|
110
109
|
const removeCommaBeforeTitleSubfieldT = {'followedBy': 't', 'remove': /,$/u};
|
|
111
110
|
|
|
@@ -113,17 +112,16 @@ const X00RemoveDotAfterBracket = {'code': 'cq', 'context': /\)\.$/u, 'remove': /
|
|
|
113
112
|
// 390, 800, 810, 830...
|
|
114
113
|
const cleanPuncBeforeLanguage = {'code': 'atvxyz', 'followedBy': 'l', 'context': puncIsProbablyPunc, 'remove': / *[.,:;]$/u};
|
|
115
114
|
|
|
116
|
-
|
|
117
115
|
const addX00aComma = {'add': ',', 'code': 'abcqej', 'followedBy': 'cdeg', 'context': doesNotEndInPunc, 'contextRHS': allowsPuncRHS};
|
|
118
116
|
const addX00dComma = {'name': 'X00$d ending in "-" does not get comma', 'add': ',', 'code': 'd', 'followedBy': 'cdeg', 'context': /[^-,.!]$/u, 'contextRHS': allowsPuncRHS};
|
|
119
117
|
const addX00aComma2 = {'add': ',', 'code': 'abcdej', 'followedBy': 'cdeg', 'context': /(?:[A-Z]|Å|Ä|Ö)\.$/u, 'contextRHS': allowsPuncRHS};
|
|
120
|
-
const addX00Dot = {'add': '.', 'code': 'abcdetv', 'followedBy': '#fklptu', 'context':
|
|
118
|
+
const addX00Dot = {'add': '.', 'code': 'abcdetv', 'followedBy': '#fklptu', 'context': needsPuncAfterAlphanumeric};
|
|
121
119
|
|
|
122
120
|
|
|
123
|
-
|
|
124
|
-
const addX10bDot = {'name': 'Add X10 pre-$b dot', 'add': '.', 'code': 'ab', 'followedBy': 'b', 'context':
|
|
125
|
-
const addX10eComma = {'add': ',', 'code': 'abe', 'followedBy': 'e', 'context':
|
|
126
|
-
const addX10Dot = {'name': 'Add X10 final dot', 'add': '.', 'code': 'abet', 'followedBy': 'tu#', 'context':
|
|
121
|
+
const addX10iColon = {'name': 'Punctuate relationship information', 'code': 'i', 'context': defaultNeedsPuncAfter2};
|
|
122
|
+
const addX10bDot = {'name': 'Add X10 pre-$b dot', 'add': '.', 'code': 'ab', 'followedBy': 'b', 'context': needsPuncAfterAlphanumeric};
|
|
123
|
+
const addX10eComma = {'add': ',', 'code': 'abe', 'followedBy': 'e', 'context': defaultNeedsPuncAfter2};
|
|
124
|
+
const addX10Dot = {'name': 'Add X10 final dot', 'add': '.', 'code': 'abet', 'followedBy': 'tu#', 'context': needsPuncAfterAlphanumeric};
|
|
127
125
|
const addColonToRelationshipInformation = {'name': 'Add \':\' to 7X0 $i relationship info', 'add': ':', 'code': 'i', 'context': defaultNeedsPuncAfter2};
|
|
128
126
|
|
|
129
127
|
const addDotBeforeLanguageSubfieldL = {'name': 'Add dot before $l', 'add': '.', 'code': 'abepst', 'followedBy': 'l', 'context': doesNotEndInPunc};
|
|
@@ -248,6 +246,7 @@ const cleanValidPunctuationRules = {
|
|
|
248
246
|
'245': clean24X,
|
|
249
247
|
'246': clean24X,
|
|
250
248
|
'260': [
|
|
249
|
+
{'code': 'abc', 'followedBy': 'a', 'remove': / ;$/u},
|
|
251
250
|
{'code': 'a', 'followedBy': 'b', 'remove': / :$/u},
|
|
252
251
|
{'code': 'b', 'followedBy': 'c', 'remove': /,$/u},
|
|
253
252
|
{'code': 'c', 'followedBy': '#', 'remove': /\.$/u},
|
|
@@ -291,29 +290,29 @@ const addToAllEntryFields = [addDotBeforeLanguageSubfieldL, addSemicolonBeforeVo
|
|
|
291
290
|
|
|
292
291
|
|
|
293
292
|
const addX00 = [addX00aComma, addX00aComma2, addX00Dot, addX00dComma, ...addToAllEntryFields];
|
|
294
|
-
const addX10 = [addX10bDot, addX10eComma, addX10Dot, ...addToAllEntryFields];
|
|
293
|
+
const addX10 = [addX10iColon, addX10bDot, addX10eComma, addX10Dot, ...addToAllEntryFields];
|
|
295
294
|
const addX11 = [...addToAllEntryFields];
|
|
296
295
|
const addX30 = [...addToAllEntryFields];
|
|
297
296
|
|
|
298
297
|
const add24X = [
|
|
299
|
-
{'code': 'i', 'followedBy': 'a', 'add': ':', 'context':
|
|
300
|
-
{'code': 'a', 'followedBy': 'b', 'add': ' :', 'context':
|
|
301
|
-
{'code': 'abk', 'followedBy': 'f', 'add': ',', 'context':
|
|
302
|
-
{'code': 'abfnp', 'followedBy': 'c', 'add': ' /', 'context':
|
|
298
|
+
{'code': 'i', 'followedBy': 'a', 'add': ':', 'context': needsPuncAfterAlphanumeric},
|
|
299
|
+
{'code': 'a', 'followedBy': 'b', 'add': ' :', 'context': needsPuncAfterAlphanumeric},
|
|
300
|
+
{'code': 'abk', 'followedBy': 'f', 'add': ',', 'context': needsPuncAfterAlphanumeric},
|
|
301
|
+
{'code': 'abfnp', 'followedBy': 'c', 'add': ' /', 'context': needsPuncAfterAlphanumeric},
|
|
303
302
|
addDotBeforeLanguageSubfieldL
|
|
304
303
|
];
|
|
305
304
|
|
|
306
305
|
const add245 = [
|
|
307
306
|
...add24X,
|
|
308
307
|
// Blah! Also "$a = $b" and "$a ; $b" can be valid... But ' :' is better than nothing, I guess...
|
|
309
|
-
{'code': 'ab', 'followedBy': 'n', 'add': '.', 'context':
|
|
310
|
-
{'code': 'n', 'followedBy': 'p', 'add': ',', 'context':
|
|
311
|
-
{'code': 'abc', 'followedBy': '#', 'add': '.', 'context':
|
|
308
|
+
{'code': 'ab', 'followedBy': 'n', 'add': '.', 'context': needsPuncAfterAlphanumeric},
|
|
309
|
+
{'code': 'n', 'followedBy': 'p', 'add': ',', 'context': defaultNeedsPuncAfter2},
|
|
310
|
+
{'code': 'abc', 'followedBy': '#', 'add': '.', 'context': needsPuncAfterAlphanumeric} // Stepping on "punctuation validator's" toes
|
|
312
311
|
];
|
|
313
312
|
|
|
314
313
|
const addSeriesTitle = [ // 490 and 830
|
|
315
314
|
{'code': 'a', 'followedBy': 'a', 'add': ' =', 'context': defaultNeedsPuncAfter2},
|
|
316
|
-
{'code': 'axyz', 'followedBy': 'xy', 'add': ',', 'context':
|
|
315
|
+
{'code': 'axyz', 'followedBy': 'xy', 'add': ',', 'context': defaultNeedsPuncAfter2},
|
|
317
316
|
addSemicolonBeforeVolumeDesignation // eg. 490$axyz-$v
|
|
318
317
|
];
|
|
319
318
|
|
|
@@ -328,7 +327,7 @@ const addPairedPunctuationRules = {
|
|
|
328
327
|
'246': add24X,
|
|
329
328
|
'260': [
|
|
330
329
|
{'code': 'a', 'followedBy': 'b', 'add': ' :', 'context': defaultNeedsPuncAfter2},
|
|
331
|
-
{'code': '
|
|
330
|
+
{'code': 'ab', 'followedBy': 'c', 'add': ',', 'context': defaultNeedsPuncAfter2},
|
|
332
331
|
{'code': 'abc', 'followedBy': 'a', 'add': ' ;', 'context': defaultNeedsPuncAfter2},
|
|
333
332
|
{'code': 'e', 'followedBy': 'f', 'add': ' :', 'context': defaultNeedsPuncAfter2},
|
|
334
333
|
{'code': 'f', 'followedBy': 'g', 'add': ',', 'context': defaultNeedsPuncAfter2}
|
|
@@ -338,7 +337,7 @@ const addPairedPunctuationRules = {
|
|
|
338
337
|
{'code': 'b', 'followedBy': 'c', 'add': ',', 'context': defaultNeedsPuncAfter2},
|
|
339
338
|
// NB! The $c rule messes dotless exception "264 #4 $c p1983" up
|
|
340
339
|
// We'll need to add a hacky postprocessor for this? Add 'hasInd1': '0123' etc?
|
|
341
|
-
{'code': 'c', 'followedBy': '#', 'add': '.', 'context':
|
|
340
|
+
{'code': 'c', 'followedBy': '#', 'add': '.', 'context': needsPuncAfterAlphanumeric, 'ind2': ['0', '1', '2', '3']}
|
|
342
341
|
],
|
|
343
342
|
'300': [
|
|
344
343
|
{'code': 'a', 'followedBy': 'b', 'add': ' :', 'context': defaultNeedsPuncAfter2},
|
|
@@ -360,7 +359,7 @@ const addPairedPunctuationRules = {
|
|
|
360
359
|
'810': addX10,
|
|
361
360
|
'811': addX11,
|
|
362
361
|
'830': [...addX30, ...addSeriesTitle],
|
|
363
|
-
'946': [{'code': 'i', 'followedBy': 'a', 'add': ':', 'context':
|
|
362
|
+
'946': [{'code': 'i', 'followedBy': 'a', 'add': ':', 'context': defaultNeedsPuncAfter2}]
|
|
364
363
|
};
|
|
365
364
|
|
|
366
365
|
/*
|
package/src/sortSubfields.js
CHANGED
|
@@ -66,6 +66,7 @@ export default function (tagPattern) {
|
|
|
66
66
|
|
|
67
67
|
|
|
68
68
|
// X00, X10, X11 and X130 could also for their own sets...
|
|
69
|
+
// (ouch! sometimes $c comes after $d...): LoC: 100 0# ‡a Black Foot, ‡c Chief, ‡d d. 1877 ‡c (Spirit)
|
|
69
70
|
const sortOrderForX00 = ['6', 'i', 'a', 'b', 'c', 'q', 'd', 'e', 't', 'u', 'l', 'f', 'x', 'y', 'z', '0', '5', '9']; // skip $g. Can't remember why, though...
|
|
70
71
|
const sortOrderForX10 = ['6', 'i', 'a', 'b', 't', 'n', 'e', 'v', 'w', 'x', 'y', 'z', '0', '5', '9']; // somewhat iffy
|
|
71
72
|
const sortOrderFor7XX = ['8', '6', '7', 'i', 'a', 's', 't', 'b', 'c', 'd', 'm', 'h', 'k', 'o', 'x', 'z', 'g', 'q', 'w'];
|