@natlibfi/marc-record-merge 5.0.0 → 6.0.0-beta.4
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/.drone.yml +92 -0
- package/.github/CODEOWNERS +9 -0
- package/.github/dependabot.yml +41 -0
- package/.github/workflows/melinda-node-tests.yml +60 -0
- package/LICENSE +21 -0
- package/README.md +64 -246
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/reducers/copy.js +297 -0
- package/dist/reducers/copy.js.map +1 -0
- package/dist/reducers/copy.spec.js +68 -0
- package/dist/reducers/copy.spec.js.map +1 -0
- package/dist/reducers/index.js +25 -0
- package/dist/reducers/index.js.map +1 -0
- package/dist/reducers/select.js +130 -0
- package/dist/reducers/select.js.map +1 -0
- package/dist/reducers/select.spec.js +68 -0
- package/dist/reducers/select.spec.js.map +1 -0
- package/package.json +103 -57
- package/src/index.js +4 -0
- package/src/reducers/copy.js +274 -0
- package/src/reducers/copy.spec.js +48 -0
- package/src/reducers/index.js +4 -0
- package/src/reducers/select.js +107 -0
- package/src/reducers/select.spec.js +45 -0
- package/test-fixtures/reducers/copy/basic copy/01/base.json +9 -0
- package/test-fixtures/reducers/copy/basic copy/01/merged.json +20 -0
- package/test-fixtures/reducers/copy/basic copy/01/metadata.json +5 -0
- package/test-fixtures/reducers/copy/basic copy/01/source.json +20 -0
- package/test-fixtures/reducers/copy/basic copy/02/base.json +20 -0
- package/test-fixtures/reducers/copy/basic copy/02/merged.json +20 -0
- package/test-fixtures/reducers/copy/basic copy/02/metadata.json +5 -0
- package/test-fixtures/reducers/copy/basic copy/02/source.json +20 -0
- package/test-fixtures/reducers/copy/basic copy/03/base.json +20 -0
- package/test-fixtures/reducers/copy/basic copy/03/merged.json +28 -0
- package/test-fixtures/reducers/copy/basic copy/03/metadata.json +5 -0
- package/test-fixtures/reducers/copy/basic copy/03/source.json +24 -0
- package/test-fixtures/reducers/copy/basic copy/04/base.json +39 -0
- package/test-fixtures/reducers/copy/basic copy/04/merged.json +39 -0
- package/test-fixtures/reducers/copy/basic copy/04/metadata.json +5 -0
- package/test-fixtures/reducers/copy/basic copy/04/source.json +39 -0
- package/test-fixtures/reducers/copy/basic copy/05/base.json +39 -0
- package/test-fixtures/reducers/copy/basic copy/05/merged.json +77 -0
- package/test-fixtures/reducers/copy/basic copy/05/metadata.json +5 -0
- package/test-fixtures/reducers/copy/basic copy/05/source.json +62 -0
- package/test-fixtures/reducers/copy/basic copy/06/base.json +24 -0
- package/test-fixtures/reducers/copy/basic copy/06/merged.json +39 -0
- package/test-fixtures/reducers/copy/basic copy/06/metadata.json +5 -0
- package/test-fixtures/reducers/copy/basic copy/06/source.json +24 -0
- package/test-fixtures/reducers/copy/compareTagsOnly/01/base.json +24 -0
- package/test-fixtures/reducers/copy/compareTagsOnly/01/merged.json +24 -0
- package/test-fixtures/reducers/copy/compareTagsOnly/01/metadata.json +6 -0
- package/test-fixtures/reducers/copy/compareTagsOnly/01/source.json +24 -0
- package/test-fixtures/reducers/copy/compareTagsOnly/02/base.json +24 -0
- package/test-fixtures/reducers/copy/compareTagsOnly/02/merged.json +100 -0
- package/test-fixtures/reducers/copy/compareTagsOnly/02/metadata.json +6 -0
- package/test-fixtures/reducers/copy/compareTagsOnly/02/source.json +100 -0
- package/test-fixtures/reducers/copy/compareWithoutIndicators/01/base.json +24 -0
- package/test-fixtures/reducers/copy/compareWithoutIndicators/01/merged.json +24 -0
- package/test-fixtures/reducers/copy/compareWithoutIndicators/01/metadata.json +6 -0
- package/test-fixtures/reducers/copy/compareWithoutIndicators/01/source.json +24 -0
- package/test-fixtures/reducers/copy/compareWithoutIndicators/02/base.json +24 -0
- package/test-fixtures/reducers/copy/compareWithoutIndicators/02/merged.json +39 -0
- package/test-fixtures/reducers/copy/compareWithoutIndicators/02/metadata.json +6 -0
- package/test-fixtures/reducers/copy/compareWithoutIndicators/02/source.json +24 -0
- package/test-fixtures/reducers/copy/copyUnless/01/base.json +9 -0
- package/test-fixtures/reducers/copy/copyUnless/01/merged.json +24 -0
- package/test-fixtures/reducers/copy/copyUnless/01/metadata.json +6 -0
- package/test-fixtures/reducers/copy/copyUnless/01/source.json +47 -0
- package/test-fixtures/reducers/copy/dropSubfields/01/base.json +35 -0
- package/test-fixtures/reducers/copy/dropSubfields/01/merged.json +54 -0
- package/test-fixtures/reducers/copy/dropSubfields/01/metadata.json +6 -0
- package/test-fixtures/reducers/copy/dropSubfields/01/source.json +43 -0
- package/test-fixtures/reducers/copy/dropSubfields/02/base.json +43 -0
- package/test-fixtures/reducers/copy/dropSubfields/02/merged.json +58 -0
- package/test-fixtures/reducers/copy/dropSubfields/02/metadata.json +6 -0
- package/test-fixtures/reducers/copy/dropSubfields/02/source.json +32 -0
- package/test-fixtures/reducers/copy/dropSubfields/03/base.json +43 -0
- package/test-fixtures/reducers/copy/dropSubfields/03/merged.json +58 -0
- package/test-fixtures/reducers/copy/dropSubfields/03/metadata.json +6 -0
- package/test-fixtures/reducers/copy/dropSubfields/03/source.json +32 -0
- package/test-fixtures/reducers/copy/dropSubfields/04/base.json +43 -0
- package/test-fixtures/reducers/copy/dropSubfields/04/merged.json +43 -0
- package/test-fixtures/reducers/copy/dropSubfields/04/metadata.json +6 -0
- package/test-fixtures/reducers/copy/dropSubfields/04/source.json +32 -0
- package/test-fixtures/reducers/copy/excludeSubfields/01/base.json +39 -0
- package/test-fixtures/reducers/copy/excludeSubfields/01/merged.json +39 -0
- package/test-fixtures/reducers/copy/excludeSubfields/01/metadata.json +9 -0
- package/test-fixtures/reducers/copy/excludeSubfields/01/source.json +43 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/01/base.json +24 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/01/merged.json +39 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/01/metadata.json +6 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/01/source.json +24 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/02/base.json +24 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/02/merged.json +24 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/02/metadata.json +6 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/02/source.json +24 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/03/base.json +28 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/03/merged.json +43 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/03/metadata.json +6 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/03/source.json +24 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/04/base.json +28 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/04/merged.json +28 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/04/metadata.json +6 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/04/source.json +24 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/05/base.json +20 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/05/merged.json +35 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/05/metadata.json +6 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/05/source.json +24 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/06/base.json +20 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/06/merged.json +35 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/06/metadata.json +6 -0
- package/test-fixtures/reducers/copy/subfieldsMustBeIdentical/06/source.json +24 -0
- package/test-fixtures/reducers/metadata.json +5 -0
- package/test-fixtures/reducers/select/01/base.json +21 -0
- package/test-fixtures/reducers/select/01/merged.json +20 -0
- package/test-fixtures/reducers/select/01/metadata.json +5 -0
- package/test-fixtures/reducers/select/01/source.json +20 -0
- package/test-fixtures/reducers/select/02/base.json +31 -0
- package/test-fixtures/reducers/select/02/merged.json +31 -0
- package/test-fixtures/reducers/select/02/metadata.json +4 -0
- package/test-fixtures/reducers/select/02/source.json +42 -0
- package/test-fixtures/reducers/select/03/base.json +20 -0
- package/test-fixtures/reducers/select/03/merged.json +20 -0
- package/test-fixtures/reducers/select/03/metadata.json +4 -0
- package/test-fixtures/reducers/select/03/source.json +20 -0
- package/test-fixtures/reducers/select/04/base.json +20 -0
- package/test-fixtures/reducers/select/04/merged.json +20 -0
- package/test-fixtures/reducers/select/04/metadata.json +5 -0
- package/test-fixtures/reducers/select/04/source.json +20 -0
- package/test-fixtures/reducers/select/05/base.json +24 -0
- package/test-fixtures/reducers/select/05/merged.json +24 -0
- package/test-fixtures/reducers/select/05/metadata.json +4 -0
- package/test-fixtures/reducers/select/05/source.json +24 -0
- package/test-fixtures/reducers/select/06/base.json +28 -0
- package/test-fixtures/reducers/select/06/merged.json +28 -0
- package/test-fixtures/reducers/select/06/metadata.json +4 -0
- package/test-fixtures/reducers/select/06/source.json +28 -0
- package/test-fixtures/reducers/select/07/base.json +24 -0
- package/test-fixtures/reducers/select/07/merged.json +24 -0
- package/test-fixtures/reducers/select/07/metadata.json +5 -0
- package/test-fixtures/reducers/select/07/source.json +24 -0
- package/test-fixtures/reducers/select/08/base.json +24 -0
- package/test-fixtures/reducers/select/08/merged.json +24 -0
- package/test-fixtures/reducers/select/08/metadata.json +4 -0
- package/test-fixtures/reducers/select/08/source.json +24 -0
- package/test-fixtures/reducers/select/09/base.json +24 -0
- package/test-fixtures/reducers/select/09/merged.json +24 -0
- package/test-fixtures/reducers/select/09/metadata.json +4 -0
- package/test-fixtures/reducers/select/09/source.json +24 -0
- package/test-fixtures/reducers/select/10/base.json +24 -0
- package/test-fixtures/reducers/select/10/merged.json +28 -0
- package/test-fixtures/reducers/select/10/metadata.json +5 -0
- package/test-fixtures/reducers/select/10/source.json +28 -0
- package/test-fixtures/reducers/select/11/base.json +24 -0
- package/test-fixtures/reducers/select/11/merged.json +24 -0
- package/test-fixtures/reducers/select/11/metadata.json +4 -0
- package/test-fixtures/reducers/select/11/source.json +28 -0
- package/test-fixtures/reducers/select/12/base.json +24 -0
- package/test-fixtures/reducers/select/12/merged.json +28 -0
- package/test-fixtures/reducers/select/12/metadata.json +5 -0
- package/test-fixtures/reducers/select/12/source.json +28 -0
- package/test-fixtures/reducers/select/13/base.json +28 -0
- package/test-fixtures/reducers/select/13/merged.json +28 -0
- package/test-fixtures/reducers/select/13/metadata.json +4 -0
- package/test-fixtures/reducers/select/13/source.json +24 -0
- package/test-fixtures/reducers/select/14/base.json +24 -0
- package/test-fixtures/reducers/select/14/merged.json +24 -0
- package/test-fixtures/reducers/select/14/metadata.json +4 -0
- package/test-fixtures/reducers/select/14/source.json +24 -0
- package/.editorconfig +0 -10
- package/.istanbul.yml +0 -6
- package/.jshintignore +0 -2
- package/.jshintrc +0 -3
- package/.travis.yml +0 -16
- package/LICENSE.txt +0 -661
- package/karma.conf.js +0 -39
- package/lib/main.js +0 -1215
- package/resources/action-copy-options-schema.json +0 -81
- package/resources/action-select-better-options-schema.json +0 -34
- package/resources/configuration-schema.json +0 -46
- package/test/browser/main.spec.js +0 -96
- package/test/nodejs/main.spec.js +0 -71
- package/test/suites/74.json +0 -10
- package/test/suites/config/1to3.json +0 -10
- package/test/suites/config/27to28.json +0 -10
- package/test/suites/config/29to31.json +0 -10
- package/test/suites/config/32to40.json +0 -16
- package/test/suites/config/41to43.json +0 -10
- package/test/suites/config/44to56.json +0 -15
- package/test/suites/config/4to26.json +0 -81
- package/test/suites/config/57to63.json +0 -63
- package/test/suites/config/64.json +0 -7
- package/test/suites/config/65.json +0 -19
- package/test/suites/config/66.json +0 -13
- package/test/suites/config/67.json +0 -14
- package/test/suites/config/68.json +0 -12
- package/test/suites/config/69.json +0 -12
- package/test/suites/config/70.json +0 -13
- package/test/suites/config/71.json +0 -10
- package/test/suites/config/72.json +0 -12
- package/test/suites/config/73.json +0 -10
- package/test/suites/config/76.json +0 -13
- package/test/suites/config/77.json +0 -11
- package/test/suites/config/78to79.json +0 -12
- package/test/suites/config/80to81.json +0 -12
- package/test/suites/config/82.json +0 -10
- package/test/suites/config/83to85.json +0 -15
- package/test/suites/config/86.json +0 -16
- package/test/suites/config/87.json +0 -15
- package/test/suites/config/88.json +0 -16
- package/test/suites/data/1/merged +0 -3
- package/test/suites/data/1/other +0 -3
- package/test/suites/data/1/preferred +0 -2
- package/test/suites/data/10/descr +0 -1
- package/test/suites/data/10/merged +0 -2
- package/test/suites/data/10/other +0 -2
- package/test/suites/data/10/preferred +0 -2
- package/test/suites/data/11/descr +0 -1
- package/test/suites/data/11/merged +0 -2
- package/test/suites/data/11/other +0 -2
- package/test/suites/data/11/preferred +0 -2
- package/test/suites/data/12/descr +0 -1
- package/test/suites/data/12/merged +0 -2
- package/test/suites/data/12/other +0 -2
- package/test/suites/data/12/preferred +0 -2
- package/test/suites/data/13/descr +0 -1
- package/test/suites/data/13/merged +0 -3
- package/test/suites/data/13/other +0 -2
- package/test/suites/data/13/preferred +0 -3
- package/test/suites/data/14/descr +0 -1
- package/test/suites/data/14/merged +0 -2
- package/test/suites/data/14/other +0 -2
- package/test/suites/data/14/preferred +0 -2
- package/test/suites/data/15/descr +0 -1
- package/test/suites/data/15/merged +0 -2
- package/test/suites/data/15/other +0 -2
- package/test/suites/data/15/preferred +0 -2
- package/test/suites/data/16/descr +0 -1
- package/test/suites/data/16/merged +0 -2
- package/test/suites/data/16/other +0 -2
- package/test/suites/data/16/preferred +0 -2
- package/test/suites/data/17/descr +0 -1
- package/test/suites/data/17/merged +0 -2
- package/test/suites/data/17/other +0 -2
- package/test/suites/data/17/preferred +0 -2
- package/test/suites/data/18/descr +0 -1
- package/test/suites/data/18/merged +0 -2
- package/test/suites/data/18/other +0 -2
- package/test/suites/data/18/preferred +0 -2
- package/test/suites/data/19/descr +0 -1
- package/test/suites/data/19/merged +0 -2
- package/test/suites/data/19/other +0 -2
- package/test/suites/data/19/preferred +0 -2
- package/test/suites/data/2/merged +0 -3
- package/test/suites/data/2/other +0 -2
- package/test/suites/data/2/preferred +0 -3
- package/test/suites/data/20/descr +0 -1
- package/test/suites/data/20/merged +0 -3
- package/test/suites/data/20/other +0 -2
- package/test/suites/data/20/preferred +0 -2
- package/test/suites/data/21/descr +0 -1
- package/test/suites/data/21/merged +0 -4
- package/test/suites/data/21/other +0 -4
- package/test/suites/data/21/preferred +0 -3
- package/test/suites/data/22/descr +0 -1
- package/test/suites/data/22/merged +0 -10
- package/test/suites/data/22/other +0 -7
- package/test/suites/data/22/preferred +0 -10
- package/test/suites/data/23/descr +0 -1
- package/test/suites/data/23/merged +0 -2
- package/test/suites/data/23/other +0 -2
- package/test/suites/data/23/preferred +0 -2
- package/test/suites/data/24/descr +0 -1
- package/test/suites/data/24/merged +0 -2
- package/test/suites/data/24/other +0 -2
- package/test/suites/data/24/preferred +0 -2
- package/test/suites/data/25/descr +0 -1
- package/test/suites/data/25/merged +0 -2
- package/test/suites/data/25/other +0 -2
- package/test/suites/data/25/preferred +0 -2
- package/test/suites/data/26/descr +0 -1
- package/test/suites/data/26/merged +0 -3
- package/test/suites/data/26/other +0 -3
- package/test/suites/data/26/preferred +0 -3
- package/test/suites/data/27/merged +0 -3
- package/test/suites/data/27/other +0 -2
- package/test/suites/data/27/preferred +0 -2
- package/test/suites/data/28/merged +0 -3
- package/test/suites/data/28/other +0 -2
- package/test/suites/data/28/preferred +0 -2
- package/test/suites/data/29/merged +0 -2
- package/test/suites/data/29/other +0 -2
- package/test/suites/data/29/preferred +0 -2
- package/test/suites/data/3/merged +0 -3
- package/test/suites/data/3/other +0 -3
- package/test/suites/data/3/preferred +0 -3
- package/test/suites/data/30/merged +0 -3
- package/test/suites/data/30/other +0 -2
- package/test/suites/data/30/preferred +0 -2
- package/test/suites/data/31/merged +0 -3
- package/test/suites/data/31/other +0 -2
- package/test/suites/data/31/preferred +0 -3
- package/test/suites/data/32/other +0 -2
- package/test/suites/data/32/preferred +0 -3
- package/test/suites/data/33/merged +0 -2
- package/test/suites/data/33/other +0 -2
- package/test/suites/data/33/preferred +0 -2
- package/test/suites/data/34/merged +0 -2
- package/test/suites/data/34/other +0 -2
- package/test/suites/data/34/preferred +0 -2
- package/test/suites/data/35/merged +0 -2
- package/test/suites/data/35/other +0 -2
- package/test/suites/data/35/preferred +0 -2
- package/test/suites/data/36/merged +0 -2
- package/test/suites/data/36/other +0 -2
- package/test/suites/data/36/preferred +0 -2
- package/test/suites/data/37/merged +0 -3
- package/test/suites/data/37/other +0 -2
- package/test/suites/data/37/preferred +0 -2
- package/test/suites/data/38/merged +0 -3
- package/test/suites/data/38/other +0 -2
- package/test/suites/data/38/preferred +0 -2
- package/test/suites/data/39/merged +0 -2
- package/test/suites/data/39/other +0 -2
- package/test/suites/data/39/preferred +0 -2
- package/test/suites/data/4/descr +0 -1
- package/test/suites/data/4/merged +0 -2
- package/test/suites/data/4/other +0 -2
- package/test/suites/data/4/preferred +0 -2
- package/test/suites/data/40/merged +0 -2
- package/test/suites/data/40/other +0 -2
- package/test/suites/data/40/preferred +0 -2
- package/test/suites/data/41/merged +0 -2
- package/test/suites/data/41/other +0 -2
- package/test/suites/data/41/preferred +0 -2
- package/test/suites/data/42/merged +0 -2
- package/test/suites/data/42/other +0 -2
- package/test/suites/data/42/preferred +0 -2
- package/test/suites/data/43/merged +0 -2
- package/test/suites/data/43/other +0 -2
- package/test/suites/data/43/preferred +0 -2
- package/test/suites/data/44/merged +0 -2
- package/test/suites/data/44/other +0 -2
- package/test/suites/data/44/preferred +0 -2
- package/test/suites/data/45/merged +0 -2
- package/test/suites/data/45/other +0 -2
- package/test/suites/data/45/preferred +0 -2
- package/test/suites/data/46/merged +0 -2
- package/test/suites/data/46/other +0 -2
- package/test/suites/data/46/preferred +0 -2
- package/test/suites/data/47/merged +0 -2
- package/test/suites/data/47/other +0 -2
- package/test/suites/data/47/preferred +0 -2
- package/test/suites/data/48/merged +0 -2
- package/test/suites/data/48/other +0 -2
- package/test/suites/data/48/preferred +0 -2
- package/test/suites/data/49/merged +0 -3
- package/test/suites/data/49/other +0 -2
- package/test/suites/data/49/preferred +0 -2
- package/test/suites/data/5/descr +0 -1
- package/test/suites/data/5/merged +0 -2
- package/test/suites/data/5/other +0 -2
- package/test/suites/data/5/preferred +0 -2
- package/test/suites/data/50/merged +0 -3
- package/test/suites/data/50/other +0 -2
- package/test/suites/data/50/preferred +0 -2
- package/test/suites/data/51/merged +0 -3
- package/test/suites/data/51/other +0 -2
- package/test/suites/data/51/preferred +0 -2
- package/test/suites/data/52/merged +0 -2
- package/test/suites/data/52/other +0 -2
- package/test/suites/data/52/preferred +0 -2
- package/test/suites/data/53/merged +0 -3
- package/test/suites/data/53/other +0 -2
- package/test/suites/data/53/preferred +0 -2
- package/test/suites/data/54/merged +0 -3
- package/test/suites/data/54/other +0 -2
- package/test/suites/data/54/preferred +0 -2
- package/test/suites/data/55/merged +0 -3
- package/test/suites/data/55/other +0 -2
- package/test/suites/data/55/preferred +0 -2
- package/test/suites/data/56/merged +0 -2
- package/test/suites/data/56/other +0 -2
- package/test/suites/data/56/preferred +0 -2
- package/test/suites/data/57/descr +0 -1
- package/test/suites/data/57/merged +0 -4
- package/test/suites/data/57/other +0 -4
- package/test/suites/data/57/preferred +0 -4
- package/test/suites/data/58/descr +0 -1
- package/test/suites/data/58/merged +0 -2
- package/test/suites/data/58/other +0 -2
- package/test/suites/data/58/preferred +0 -2
- package/test/suites/data/59/descr +0 -1
- package/test/suites/data/59/merged +0 -2
- package/test/suites/data/59/other +0 -2
- package/test/suites/data/59/preferred +0 -2
- package/test/suites/data/6/descr +0 -1
- package/test/suites/data/6/merged +0 -2
- package/test/suites/data/6/other +0 -3
- package/test/suites/data/6/preferred +0 -2
- package/test/suites/data/60/descr +0 -1
- package/test/suites/data/60/merged +0 -2
- package/test/suites/data/60/other +0 -2
- package/test/suites/data/60/preferred +0 -2
- package/test/suites/data/61/descr +0 -1
- package/test/suites/data/61/merged +0 -2
- package/test/suites/data/61/other +0 -2
- package/test/suites/data/61/preferred +0 -2
- package/test/suites/data/62/descr +0 -1
- package/test/suites/data/62/merged +0 -3
- package/test/suites/data/62/other +0 -2
- package/test/suites/data/62/preferred +0 -2
- package/test/suites/data/63/descr +0 -1
- package/test/suites/data/63/merged +0 -3
- package/test/suites/data/63/other +0 -2
- package/test/suites/data/63/preferred +0 -2
- package/test/suites/data/64/merged +0 -2
- package/test/suites/data/64/other +0 -2
- package/test/suites/data/64/preferred +0 -2
- package/test/suites/data/65/merged +0 -3
- package/test/suites/data/65/other +0 -2
- package/test/suites/data/65/preferred +0 -2
- package/test/suites/data/66/merged +0 -2
- package/test/suites/data/66/other +0 -2
- package/test/suites/data/66/preferred +0 -2
- package/test/suites/data/67/merged +0 -2
- package/test/suites/data/67/other +0 -2
- package/test/suites/data/67/preferred +0 -2
- package/test/suites/data/68/merged +0 -2
- package/test/suites/data/68/other +0 -2
- package/test/suites/data/68/preferred +0 -2
- package/test/suites/data/69/merged +0 -2
- package/test/suites/data/69/other +0 -2
- package/test/suites/data/69/preferred +0 -2
- package/test/suites/data/7/descr +0 -1
- package/test/suites/data/7/merged +0 -4
- package/test/suites/data/7/other +0 -3
- package/test/suites/data/7/preferred +0 -3
- package/test/suites/data/70/merged +0 -2
- package/test/suites/data/70/other +0 -2
- package/test/suites/data/70/preferred +0 -2
- package/test/suites/data/71/merged +0 -3
- package/test/suites/data/71/other +0 -2
- package/test/suites/data/71/preferred +0 -2
- package/test/suites/data/72/merged +0 -5
- package/test/suites/data/72/other +0 -2
- package/test/suites/data/72/preferred +0 -4
- package/test/suites/data/73/merged +0 -3
- package/test/suites/data/73/other +0 -3
- package/test/suites/data/73/preferred +0 -3
- package/test/suites/data/74/1/merged +0 -3
- package/test/suites/data/74/1/other +0 -3
- package/test/suites/data/74/1/preferred +0 -2
- package/test/suites/data/74/merged +0 -4
- package/test/suites/data/74/other +0 -4
- package/test/suites/data/74/preferred +0 -2
- package/test/suites/data/75/74/1/merged +0 -3
- package/test/suites/data/75/74/1/other +0 -3
- package/test/suites/data/75/74/1/preferred +0 -2
- package/test/suites/data/75/74/merged +0 -4
- package/test/suites/data/75/74/other +0 -4
- package/test/suites/data/75/74/preferred +0 -2
- package/test/suites/data/75/merged +0 -4
- package/test/suites/data/75/other +0 -3
- package/test/suites/data/75/preferred +0 -2
- package/test/suites/data/76/merged +0 -2
- package/test/suites/data/76/other +0 -2
- package/test/suites/data/76/preferred +0 -2
- package/test/suites/data/77/descr +0 -1
- package/test/suites/data/77/merged +0 -2
- package/test/suites/data/77/other +0 -2
- package/test/suites/data/77/preferred +0 -2
- package/test/suites/data/78/merged +0 -3
- package/test/suites/data/78/other +0 -2
- package/test/suites/data/78/preferred +0 -2
- package/test/suites/data/79/merged +0 -2
- package/test/suites/data/79/other +0 -2
- package/test/suites/data/79/preferred +0 -2
- package/test/suites/data/8/descr +0 -1
- package/test/suites/data/8/merged +0 -3
- package/test/suites/data/8/other +0 -3
- package/test/suites/data/8/preferred +0 -3
- package/test/suites/data/80/merged +0 -3
- package/test/suites/data/80/other +0 -2
- package/test/suites/data/80/preferred +0 -2
- package/test/suites/data/81/merged +0 -2
- package/test/suites/data/81/other +0 -2
- package/test/suites/data/81/preferred +0 -2
- package/test/suites/data/82/merged +0 -2
- package/test/suites/data/82/other +0 -2
- package/test/suites/data/82/preferred +0 -2
- package/test/suites/data/83/merged +0 -2
- package/test/suites/data/83/other +0 -2
- package/test/suites/data/83/preferred +0 -1
- package/test/suites/data/84/merged +0 -2
- package/test/suites/data/84/other +0 -2
- package/test/suites/data/84/preferred +0 -1
- package/test/suites/data/85/merged +0 -2
- package/test/suites/data/85/other +0 -2
- package/test/suites/data/85/preferred +0 -2
- package/test/suites/data/86/merged +0 -2
- package/test/suites/data/86/other +0 -2
- package/test/suites/data/86/preferred +0 -1
- package/test/suites/data/87/merged +0 -2
- package/test/suites/data/87/other +0 -2
- package/test/suites/data/87/preferred +0 -1
- package/test/suites/data/88/merged +0 -2
- package/test/suites/data/88/other +0 -2
- package/test/suites/data/88/preferred +0 -1
- package/test/suites/data/9/descr +0 -1
- package/test/suites/data/9/merged +0 -2
- package/test/suites/data/9/other +0 -2
- package/test/suites/data/9/preferred +0 -2
- package/test/test.js +0 -1001
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import {normalizeSync} from 'normalize-diacritics';
|
|
2
|
+
import createDebugLogger from 'debug';
|
|
3
|
+
|
|
4
|
+
export function strictEquality(subfieldA, subfieldB) {
|
|
5
|
+
return subfieldA.code === subfieldB.code &&
|
|
6
|
+
subfieldA.value === subfieldB.value;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function subsetEquality(subfieldA, subfieldB) {
|
|
10
|
+
return subfieldA.code === subfieldB.code &&
|
|
11
|
+
(subfieldA.value.indexOf(subfieldB.value) !== -1 || subfieldB.value.indexOf(subfieldA.value) !== -1);
|
|
12
|
+
}
|
|
13
|
+
// EqualityFunction can be either strictEquality or subsetEquality
|
|
14
|
+
export default ({tagPattern, equalityFunction = strictEquality}) => (base, source) => {
|
|
15
|
+
const debug = createDebugLogger('@natlibfi/marc-record-merge:select');
|
|
16
|
+
const baseFields = base.get(tagPattern);
|
|
17
|
+
const sourceFields = source.get(tagPattern);
|
|
18
|
+
const fieldTag = sourceFields.map(field => field.tag);
|
|
19
|
+
debug(`Comparing field ${fieldTag}`);
|
|
20
|
+
|
|
21
|
+
checkFieldType(baseFields);
|
|
22
|
+
checkFieldType(sourceFields);
|
|
23
|
+
|
|
24
|
+
if (baseFields.length > 1 || sourceFields.length > 1) {
|
|
25
|
+
debug(`Multiple fields in base or source`);
|
|
26
|
+
debug(`No changes to base`);
|
|
27
|
+
return base;
|
|
28
|
+
}
|
|
29
|
+
const [baseField] = baseFields;
|
|
30
|
+
const [sourceField] = sourceFields;
|
|
31
|
+
|
|
32
|
+
if (baseField.tag === sourceField.tag === false) {
|
|
33
|
+
debug(`Base tag ${baseField.tag} is not equal to source tag ${sourceField.tag}`);
|
|
34
|
+
debug(`No changes to base`);
|
|
35
|
+
return base;
|
|
36
|
+
}
|
|
37
|
+
const baseSubs = baseField.subfields;
|
|
38
|
+
const sourceSubs = sourceField.subfields;
|
|
39
|
+
|
|
40
|
+
const baseSubsNormalized = baseSubs
|
|
41
|
+
.map(({code, value}) => ({code, value: normalizeSubfieldValue(value)}));
|
|
42
|
+
|
|
43
|
+
const sourceSubsNormalized = sourceSubs
|
|
44
|
+
.map(({code, value}) => ({code, value: normalizeSubfieldValue(value)}));
|
|
45
|
+
|
|
46
|
+
// Returns the base subfields for which a matching source subfield is found
|
|
47
|
+
const equalSubfieldsBase = baseSubsNormalized
|
|
48
|
+
.filter(baseSubfield => sourceSubsNormalized
|
|
49
|
+
.some(sourceSubfield => equalityFunction(baseSubfield, sourceSubfield)));
|
|
50
|
+
debug(`equalSubfieldsBase: ${JSON.stringify(equalSubfieldsBase, undefined, 2)}`);
|
|
51
|
+
|
|
52
|
+
// Returns the source subfields for which a matching base subfield is found
|
|
53
|
+
const equalSubfieldsSource = sourceSubsNormalized
|
|
54
|
+
.filter(sourceSubfield => baseSubsNormalized
|
|
55
|
+
.some(baseSubfield => equalityFunction(sourceSubfield, baseSubfield)));
|
|
56
|
+
debug(`equalSubfieldsSource: ${JSON.stringify(equalSubfieldsSource, undefined, 2)}`);
|
|
57
|
+
|
|
58
|
+
if (baseSubs.length === sourceSubs.length && equalSubfieldsBase.length < baseSubs.length) {
|
|
59
|
+
debug(`Base and source subfields are not equal`);
|
|
60
|
+
debug(`No changes to base`);
|
|
61
|
+
return base;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (baseSubs.length === sourceSubs.length && equalSubfieldsBase.length === equalSubfieldsSource.length) {
|
|
65
|
+
debug(`Checking subfield equality`);
|
|
66
|
+
const totalSubfieldLengthBase = baseSubsNormalized
|
|
67
|
+
.map(({value}) => value.length)
|
|
68
|
+
.reduce((acc, value) => acc + value);
|
|
69
|
+
const totalSubfieldLengthSource = sourceSubsNormalized
|
|
70
|
+
.map(({value}) => value.length)
|
|
71
|
+
.reduce((acc, value) => acc + value);
|
|
72
|
+
|
|
73
|
+
if (totalSubfieldLengthSource > totalSubfieldLengthBase) {
|
|
74
|
+
return replaceBasefieldWithSourcefield(base);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
if (sourceSubs.length > baseSubs.length && equalSubfieldsBase.length === baseSubs.length) {
|
|
79
|
+
return replaceBasefieldWithSourcefield(base);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
debug(`No changes to base`);
|
|
83
|
+
return base;
|
|
84
|
+
|
|
85
|
+
function replaceBasefieldWithSourcefield(base) {
|
|
86
|
+
const index = base.fields.findIndex(field => field === baseField);
|
|
87
|
+
base.fields.splice(index, 1, sourceField); // eslint-disable-line functional/immutable-data
|
|
88
|
+
debug(`Source field is longer, replacing base with source`);
|
|
89
|
+
return base;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function checkFieldType(fields) {
|
|
93
|
+
const checkedFields = fields.map(field => {
|
|
94
|
+
if ('value' in field) { // eslint-disable-line functional/no-conditional-statement
|
|
95
|
+
throw new Error('Invalid control field, expected data field');
|
|
96
|
+
}
|
|
97
|
+
return field;
|
|
98
|
+
});
|
|
99
|
+
return checkedFields;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function normalizeSubfieldValue(value) {
|
|
103
|
+
// Regexp options: g: global search, u: unicode
|
|
104
|
+
const punctuation = /[.,\-/#!?$%^&*;:{}=_`~()[\]]/gu;
|
|
105
|
+
return normalizeSync(value).toLowerCase().replace(punctuation, '', 'u').replace(/\s+/gu, ' ').trim();
|
|
106
|
+
}
|
|
107
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import {expect} from 'chai';
|
|
2
|
+
import {MarcRecord} from '@natlibfi/marc-record';
|
|
3
|
+
import createReducer, {subsetEquality} from './select';
|
|
4
|
+
import {READERS} from '@natlibfi/fixura';
|
|
5
|
+
import generateTests from '@natlibfi/fixugen';
|
|
6
|
+
|
|
7
|
+
MarcRecord.setValidationOptions({subfieldValues: false});
|
|
8
|
+
|
|
9
|
+
generateTests({
|
|
10
|
+
callback,
|
|
11
|
+
path: [__dirname, '..', '..', 'test-fixtures', 'reducers', 'select'],
|
|
12
|
+
useMetadataFile: true,
|
|
13
|
+
recurse: false,
|
|
14
|
+
fixura: {
|
|
15
|
+
reader: READERS.JSON,
|
|
16
|
+
failWhenNotFound: false
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
function callback({
|
|
21
|
+
getFixture,
|
|
22
|
+
disabled = false,
|
|
23
|
+
tagPatternRegExp = false,
|
|
24
|
+
expectedError = false,
|
|
25
|
+
useSubsetEquality = false
|
|
26
|
+
}) {
|
|
27
|
+
if (disabled) {
|
|
28
|
+
console.log('TEST DISABLED!'); // eslint-disable-line no-console
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const base = new MarcRecord(getFixture('base.json'), {subfieldValues: false});
|
|
32
|
+
const source = new MarcRecord(getFixture('source.json'), {subfieldValues: false});
|
|
33
|
+
const tagPattern = new RegExp(tagPatternRegExp, 'u');
|
|
34
|
+
const expectedRecord = getFixture('merged.json');
|
|
35
|
+
const equalityFunction = useSubsetEquality ? subsetEquality : undefined;
|
|
36
|
+
|
|
37
|
+
// Bypass expected error in testing
|
|
38
|
+
if (expectedError) {
|
|
39
|
+
expect(() => createReducer.to.throw(Error, 'control field'));
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const mergedRecord = createReducer({tagPattern, equalityFunction})(base, source);
|
|
44
|
+
expect(mergedRecord.toObject()).to.eql(expectedRecord);
|
|
45
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"leader": "01331cam a22003494i 4500",
|
|
3
|
+
"fields": [
|
|
4
|
+
{
|
|
5
|
+
"tag": "001",
|
|
6
|
+
"value": "007346734"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"tag": "010",
|
|
10
|
+
"ind1": " ",
|
|
11
|
+
"ind2": " ",
|
|
12
|
+
"subfields": [
|
|
13
|
+
{
|
|
14
|
+
"code": "a",
|
|
15
|
+
"value": "##2002021346"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"leader": "01331cam a22003494i 4500",
|
|
3
|
+
"fields": [
|
|
4
|
+
{
|
|
5
|
+
"tag": "001",
|
|
6
|
+
"value": "007346734"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"tag": "010",
|
|
10
|
+
"ind1": " ",
|
|
11
|
+
"ind2": " ",
|
|
12
|
+
"subfields": [
|
|
13
|
+
{
|
|
14
|
+
"code": "a",
|
|
15
|
+
"value": "##2002021346"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"leader": "01331cam a22003494i 4500",
|
|
3
|
+
"fields": [
|
|
4
|
+
{
|
|
5
|
+
"tag": "001",
|
|
6
|
+
"value": "007346734"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"tag": "010",
|
|
10
|
+
"ind1": " ",
|
|
11
|
+
"ind2": " ",
|
|
12
|
+
"subfields": [
|
|
13
|
+
{
|
|
14
|
+
"code": "a",
|
|
15
|
+
"value": "##2002021346"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"leader": "01331cam a22003494i 4500",
|
|
3
|
+
"fields": [
|
|
4
|
+
{
|
|
5
|
+
"tag": "001",
|
|
6
|
+
"value": "007346734"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"tag": "010",
|
|
10
|
+
"ind1": " ",
|
|
11
|
+
"ind2": " ",
|
|
12
|
+
"subfields": [
|
|
13
|
+
{
|
|
14
|
+
"code": "a",
|
|
15
|
+
"value": "##2002021346"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"leader": "01331cam a22003494i 4500",
|
|
3
|
+
"fields": [
|
|
4
|
+
{
|
|
5
|
+
"tag": "001",
|
|
6
|
+
"value": "007346734"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"tag": "010",
|
|
10
|
+
"ind1": " ",
|
|
11
|
+
"ind2": " ",
|
|
12
|
+
"subfields": [
|
|
13
|
+
{
|
|
14
|
+
"code": "a",
|
|
15
|
+
"value": "##2002021346"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"leader": "01331cam a22003494i 4500",
|
|
3
|
+
"fields": [
|
|
4
|
+
{
|
|
5
|
+
"tag": "001",
|
|
6
|
+
"value": "007346734"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"tag": "010",
|
|
10
|
+
"ind1": " ",
|
|
11
|
+
"ind2": " ",
|
|
12
|
+
"subfields": [
|
|
13
|
+
{
|
|
14
|
+
"code": "a",
|
|
15
|
+
"value": "##2002021346"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"leader": "01331cam a22003494i 4500",
|
|
3
|
+
"fields": [
|
|
4
|
+
{
|
|
5
|
+
"tag": "001",
|
|
6
|
+
"value": "007346734"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"tag": "001",
|
|
10
|
+
"value": "007346735"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"tag": "001",
|
|
14
|
+
"value": "007346736"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"tag": "010",
|
|
18
|
+
"ind1": " ",
|
|
19
|
+
"ind2": " ",
|
|
20
|
+
"subfields": [
|
|
21
|
+
{
|
|
22
|
+
"code": "a",
|
|
23
|
+
"value": "##2002021346"
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"leader": "01331cam a22003494i 4500",
|
|
3
|
+
"fields": [
|
|
4
|
+
{
|
|
5
|
+
"tag": "001",
|
|
6
|
+
"value": "007346735"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"tag": "001",
|
|
10
|
+
"value": "007346736"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"tag": "010",
|
|
14
|
+
"ind1": " ",
|
|
15
|
+
"ind2": " ",
|
|
16
|
+
"subfields": [
|
|
17
|
+
{
|
|
18
|
+
"code": "a",
|
|
19
|
+
"value": "##2002021346"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"leader": "01331cam a22003494i 4500",
|
|
3
|
+
"fields": [
|
|
4
|
+
{
|
|
5
|
+
"tag": "001",
|
|
6
|
+
"value": "007346734"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"tag": "010",
|
|
10
|
+
"ind1": " ",
|
|
11
|
+
"ind2": " ",
|
|
12
|
+
"subfields": [
|
|
13
|
+
{
|
|
14
|
+
"code": "a",
|
|
15
|
+
"value": "##2002021346"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"code": "b",
|
|
19
|
+
"value": "##2002021356"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"tag": "010",
|
|
25
|
+
"ind1": " ",
|
|
26
|
+
"ind2": " ",
|
|
27
|
+
"subfields": [
|
|
28
|
+
{
|
|
29
|
+
"code": "c",
|
|
30
|
+
"value": "##2002021347"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"code": "d",
|
|
34
|
+
"value": "##2002021357"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"leader": "01331cam a22003494i 4500",
|
|
3
|
+
"fields": [
|
|
4
|
+
{
|
|
5
|
+
"tag": "001",
|
|
6
|
+
"value": "007346734"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"tag": "010",
|
|
10
|
+
"ind1": " ",
|
|
11
|
+
"ind2": " ",
|
|
12
|
+
"subfields": [
|
|
13
|
+
{
|
|
14
|
+
"code": "a",
|
|
15
|
+
"value": "##2002021346"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"code": "b",
|
|
19
|
+
"value": "##2002021356"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"tag": "010",
|
|
25
|
+
"ind1": " ",
|
|
26
|
+
"ind2": " ",
|
|
27
|
+
"subfields": [
|
|
28
|
+
{
|
|
29
|
+
"code": "c",
|
|
30
|
+
"value": "##2002021347"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"code": "d",
|
|
34
|
+
"value": "##2002021357"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"leader": "01331cam a22003494i 4500",
|
|
3
|
+
"fields": [
|
|
4
|
+
{
|
|
5
|
+
"tag": "001",
|
|
6
|
+
"value": "007346734"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"tag": "010",
|
|
10
|
+
"ind1": " ",
|
|
11
|
+
"ind2": " ",
|
|
12
|
+
"subfields": [
|
|
13
|
+
{
|
|
14
|
+
"code": "a",
|
|
15
|
+
"value": "##2002021346"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"code": "b",
|
|
19
|
+
"value": "##2002021356"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"tag": "010",
|
|
25
|
+
"ind1": " ",
|
|
26
|
+
"ind2": " ",
|
|
27
|
+
"subfields": [
|
|
28
|
+
{
|
|
29
|
+
"code": "c",
|
|
30
|
+
"value": "##2002021347"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"code": "d",
|
|
34
|
+
"value": "##2002021357"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"leader": "01331cam a22003494i 4500",
|
|
3
|
+
"fields": [
|
|
4
|
+
{
|
|
5
|
+
"tag": "001",
|
|
6
|
+
"value": "007346734"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"tag": "010",
|
|
10
|
+
"ind1": " ",
|
|
11
|
+
"ind2": " ",
|
|
12
|
+
"subfields": [
|
|
13
|
+
{
|
|
14
|
+
"code": "a",
|
|
15
|
+
"value": "##2002021346"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"code": "b",
|
|
19
|
+
"value": "##2002021356"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"tag": "010",
|
|
25
|
+
"ind1": " ",
|
|
26
|
+
"ind2": " ",
|
|
27
|
+
"subfields": [
|
|
28
|
+
{
|
|
29
|
+
"code": "c",
|
|
30
|
+
"value": "##2002021347"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"code": "d",
|
|
34
|
+
"value": "##2002021357"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"leader": "01331cam a22003494i 4500",
|
|
3
|
+
"fields": [
|
|
4
|
+
{
|
|
5
|
+
"tag": "001",
|
|
6
|
+
"value": "007346734"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"tag": "010",
|
|
10
|
+
"ind1": " ",
|
|
11
|
+
"ind2": " ",
|
|
12
|
+
"subfields": [
|
|
13
|
+
{
|
|
14
|
+
"code": "a",
|
|
15
|
+
"value": "##2002021346"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"code": "b",
|
|
19
|
+
"value": "##2002021356"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"tag": "010",
|
|
25
|
+
"ind1": " ",
|
|
26
|
+
"ind2": " ",
|
|
27
|
+
"subfields": [
|
|
28
|
+
{
|
|
29
|
+
"code": "c",
|
|
30
|
+
"value": "##2002021347"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"code": "d",
|
|
34
|
+
"value": "##2002021357"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"tag": "010",
|
|
40
|
+
"ind1": " ",
|
|
41
|
+
"ind2": " ",
|
|
42
|
+
"subfields": [
|
|
43
|
+
{
|
|
44
|
+
"code": "c",
|
|
45
|
+
"value": "##2002021348"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"code": "d",
|
|
49
|
+
"value": "##2002021358"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"code": "e",
|
|
53
|
+
"value": "##2002021359"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"tag": "010",
|
|
59
|
+
"ind1": " ",
|
|
60
|
+
"ind2": " ",
|
|
61
|
+
"subfields": [
|
|
62
|
+
{
|
|
63
|
+
"code": "f",
|
|
64
|
+
"value": "##2002021311"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"code": "g",
|
|
68
|
+
"value": "##2002021322"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"code": "h",
|
|
72
|
+
"value": "##2002021333"
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"leader": "01331cam a22003494i 4500",
|
|
3
|
+
"fields": [
|
|
4
|
+
{
|
|
5
|
+
"tag": "001",
|
|
6
|
+
"value": "007346734"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"tag": "010",
|
|
10
|
+
"ind1": " ",
|
|
11
|
+
"ind2": " ",
|
|
12
|
+
"subfields": [
|
|
13
|
+
{
|
|
14
|
+
"code": "a",
|
|
15
|
+
"value": "##2002021346"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"code": "b",
|
|
19
|
+
"value": "##2002021356"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"tag": "010",
|
|
25
|
+
"ind1": " ",
|
|
26
|
+
"ind2": " ",
|
|
27
|
+
"subfields": [
|
|
28
|
+
{
|
|
29
|
+
"code": "c",
|
|
30
|
+
"value": "##2002021348"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"code": "d",
|
|
34
|
+
"value": "##2002021358"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"code": "e",
|
|
38
|
+
"value": "##2002021359"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"tag": "010",
|
|
44
|
+
"ind1": " ",
|
|
45
|
+
"ind2": " ",
|
|
46
|
+
"subfields": [
|
|
47
|
+
{
|
|
48
|
+
"code": "f",
|
|
49
|
+
"value": "##2002021311"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"code": "g",
|
|
53
|
+
"value": "##2002021322"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"code": "h",
|
|
57
|
+
"value": "##2002021333"
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
}
|