@natlibfi/marc-record-validators-melinda 10.14.0 → 10.15.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.
@@ -140,10 +140,10 @@ describe('access-rights', async () => {
140
140
  await test.fix([f5060, ldf540], [f5060, ldf5061, ldf540]);
141
141
  });
142
142
  it('5061 but missing 540; Adds 540', async () => {
143
- await test.fix([ldf5061, f540], [ldf5061, ldf540, f540]);
143
+ await test.fix([ldf5061, f540], [ldf5061, f540, ldf540]);
144
144
  });
145
145
  it('Both, 5061 and 540, missing; Adds 5061 and 540', async () => {
146
- await test.fix([f5060, f540], [f5060, ldf5061, ldf540, f540]);
146
+ await test.fix([f5060, f540], [f5060, ldf5061, f540, ldf540]);
147
147
  });
148
148
  });
149
149
  });
@@ -1 +1 @@
1
- {"version":3,"file":"access-rights.spec.js","names":["_chai","require","_marcRecord","_accessRights","_interopRequireDefault","obj","__esModule","default","describe","f337","tag","ind1","ind2","subfields","code","value","ldf5061","ldf540","f5060","f540","it","validator","validatorFactory","expect","to","be","an","that","has","any","keys","description","a","validate","test","valid","recfields","result","MarcRecord","fields","eql","fix","resfields","record"],"sources":["../src/access-rights.spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/access-rights';\n\ndescribe('access-rights', async () => {\n // Fields\n const f337 = {\n tag: '337',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {code: 'b', value: 'c'},\n {code: '2', value: 'rdamedia'}\n ]\n };\n\n const ldf5061 = {\n tag: '506',\n ind1: '1',\n ind2: ' ',\n subfields: [\n {code: 'a', value: 'Aineisto on käytettävissä vapaakappalekirjastoissa.'},\n {code: 'f', value: 'Online access with authorization'},\n {code: '2', value: 'star'},\n {code: '5', value: 'FI-Vapaa'},\n {code: '9', value: 'FENNI<KEEP>'}\n ]\n };\n\n const ldf540 = {\n tag: '540',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {code: 'a', value: 'Aineisto on käytettävissä tutkimus- ja muihin tarkoituksiin;'},\n {code: 'b', value: 'Kansalliskirjasto;'},\n {code: 'c', value: 'Laki kulttuuriaineistojen tallettamisesta ja säilyttämisestä'},\n {code: 'u', value: 'http://www.finlex.fi/fi/laki/ajantasa/2007/20071433'},\n {code: '5', value: 'FI-Vapaa'},\n {code: '9', value: 'FENNI<KEEP>'}\n ]\n };\n\n const f5060 = {\n tag: '506',\n ind1: '0',\n ind2: ' ',\n subfields: [\n {code: 'a', value: 'Aineisto on vapaasti saatavissa.'},\n {code: 'f', value: 'Unrestricted online access'},\n {code: '2', value: 'star'},\n {code: '9', value: 'FENNI<KEEP>'}\n ]\n };\n\n const f540 = {\n tag: '540',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'c', value: 'This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.'}]\n };\n\n it('Creates a validator', async () => {\n const validator = await validatorFactory();\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n });\n\n // Tests\n const test = await (async () => {\n const validator = await validatorFactory();\n return {\n validate: async (valid, ...recfields) => {\n const result = await validator.validate(new MarcRecord({fields: recfields}));\n expect(result).to.eql({valid});\n },\n\n fix: async (recfields, resfields) => {\n const record = new MarcRecord({fields: recfields});\n await validator.fix(record);\n expect(record.fields).to.eql(resfields);\n }\n };\n })();\n\n describe('#validate', () => {\n it('Finds the record valid; Legal deposit fields 5061 and 540', async () => {\n await test.validate(true, ldf5061, ldf540);\n });\n\n it('Finds the record invalid; Missing 5061', async () => {\n await test.validate(false, f337, f5060, ldf540);\n });\n\n it('Finds the record invalid; Missing 540', async () => {\n await test.validate(false, f337, ldf5061, f540);\n });\n\n it('Finds the record invalid; Missing 5061 and 540', async () => {\n await test.validate(false, f337, f5060, f540);\n });\n });\n\n describe('#fix', () => {\n it('Legal deposit fields 5061 and 540; Nothing to add', async () => {\n await test.fix([ldf5061, ldf540], [ldf5061, ldf540]);\n });\n\n it('540 but missing 5061; Adds 5061', async () => {\n await test.fix([f5060, ldf540], [f5060, ldf5061, ldf540]);\n });\n\n it('5061 but missing 540; Adds 540', async () => {\n await test.fix([ldf5061, f540], [ldf5061, ldf540, f540]);\n });\n\n it('Both, 5061 and 540, missing; Adds 5061 and 540', async () => {\n await test.fix([f5060, f540], [f5060, ldf5061, ldf540, f540]);\n });\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"access-rights.spec.js","names":["_chai","require","_marcRecord","_accessRights","_interopRequireDefault","obj","__esModule","default","describe","f337","tag","ind1","ind2","subfields","code","value","ldf5061","ldf540","f5060","f540","it","validator","validatorFactory","expect","to","be","an","that","has","any","keys","description","a","validate","test","valid","recfields","result","MarcRecord","fields","eql","fix","resfields","record"],"sources":["../src/access-rights.spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/access-rights';\n\ndescribe('access-rights', async () => {\n // Fields\n const f337 = {\n tag: '337',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {code: 'b', value: 'c'},\n {code: '2', value: 'rdamedia'}\n ]\n };\n\n const ldf5061 = {\n tag: '506',\n ind1: '1',\n ind2: ' ',\n subfields: [\n {code: 'a', value: 'Aineisto on käytettävissä vapaakappalekirjastoissa.'},\n {code: 'f', value: 'Online access with authorization'},\n {code: '2', value: 'star'},\n {code: '5', value: 'FI-Vapaa'},\n {code: '9', value: 'FENNI<KEEP>'}\n ]\n };\n\n const ldf540 = {\n tag: '540',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {code: 'a', value: 'Aineisto on käytettävissä tutkimus- ja muihin tarkoituksiin;'},\n {code: 'b', value: 'Kansalliskirjasto;'},\n {code: 'c', value: 'Laki kulttuuriaineistojen tallettamisesta ja säilyttämisestä'},\n {code: 'u', value: 'http://www.finlex.fi/fi/laki/ajantasa/2007/20071433'},\n {code: '5', value: 'FI-Vapaa'},\n {code: '9', value: 'FENNI<KEEP>'}\n ]\n };\n\n const f5060 = {\n tag: '506',\n ind1: '0',\n ind2: ' ',\n subfields: [\n {code: 'a', value: 'Aineisto on vapaasti saatavissa.'},\n {code: 'f', value: 'Unrestricted online access'},\n {code: '2', value: 'star'},\n {code: '9', value: 'FENNI<KEEP>'}\n ]\n };\n\n const f540 = {\n tag: '540',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'c', value: 'This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.'}]\n };\n\n it('Creates a validator', async () => {\n const validator = await validatorFactory();\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n });\n\n // Tests\n const test = await (async () => {\n const validator = await validatorFactory();\n return {\n validate: async (valid, ...recfields) => {\n const result = await validator.validate(new MarcRecord({fields: recfields}));\n expect(result).to.eql({valid});\n },\n\n fix: async (recfields, resfields) => {\n const record = new MarcRecord({fields: recfields});\n await validator.fix(record);\n expect(record.fields).to.eql(resfields);\n }\n };\n })();\n\n describe('#validate', () => {\n it('Finds the record valid; Legal deposit fields 5061 and 540', async () => {\n await test.validate(true, ldf5061, ldf540);\n });\n\n it('Finds the record invalid; Missing 5061', async () => {\n await test.validate(false, f337, f5060, ldf540);\n });\n\n it('Finds the record invalid; Missing 540', async () => {\n await test.validate(false, f337, ldf5061, f540);\n });\n\n it('Finds the record invalid; Missing 5061 and 540', async () => {\n await test.validate(false, f337, f5060, f540);\n });\n });\n\n describe('#fix', () => {\n it('Legal deposit fields 5061 and 540; Nothing to add', async () => {\n await test.fix([ldf5061, ldf540], [ldf5061, ldf540]);\n });\n\n it('540 but missing 5061; Adds 5061', async () => {\n await test.fix([f5060, ldf540], [f5060, ldf5061, ldf540]);\n });\n\n it('5061 but missing 540; Adds 540', async () => {\n await test.fix([ldf5061, f540], [ldf5061, f540, ldf540]);\n });\n\n it('Both, 5061 and 540, missing; Adds 5061 and 540', async () => {\n await test.fix([f5060, f540], [f5060, ldf5061, f540, ldf540]);\n });\n });\n});\n"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -129,6 +129,12 @@ Object.defineProperty(exports, "NonBreakingSpace", {
129
129
  return _nonBreakingSpace.default;
130
130
  }
131
131
  });
132
+ Object.defineProperty(exports, "NormalizeDashes", {
133
+ enumerable: true,
134
+ get: function () {
135
+ return _normalizeDashes.default;
136
+ }
137
+ });
132
138
  Object.defineProperty(exports, "NormalizeIdentifiers", {
133
139
  enumerable: true,
134
140
  get: function () {
@@ -282,6 +288,7 @@ var _mergeField500Lisapainokset = _interopRequireDefault(require("./mergeField50
282
288
  var _mergeRelatorTermFields = _interopRequireDefault(require("./mergeRelatorTermFields"));
283
289
  var _multipleSubfield = _interopRequireDefault(require("./multiple-subfield-0"));
284
290
  var _nonBreakingSpace = _interopRequireDefault(require("./non-breaking-space"));
291
+ var _normalizeDashes = _interopRequireDefault(require("./normalize-dashes"));
285
292
  var _normalizeIdentifiers = _interopRequireDefault(require("./normalize-identifiers"));
286
293
  var _normalizeQualifyingInformation = _interopRequireDefault(require("./normalize-qualifying-information"));
287
294
  var _normalizeUtf8Diacritics = _interopRequireDefault(require("./normalize-utf8-diacritics"));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_accessRights","_interopRequireDefault","require","_doubleCommas","_duplicatesInd","_emptyFields","_endingPunctuation","_endingWhitespace","_field505Separators","_field521Fix","_fieldExclusion","_fieldStructure","_fieldsPresent","_fixedFields","_fixRelatorTerms","_identicalFields","_indicatorFixes","_isbnIssn","_itemLanguage","_mergeField500Lisapainokset","_mergeRelatorTermFields","_multipleSubfield","_nonBreakingSpace","_normalizeIdentifiers","_normalizeQualifyingInformation","_normalizeUtf8Diacritics","_punctuation","_punctuation2","_resolveOrphanedSubfield6s","_reindexSubfield6OccurenceNumbers","_removeDuplicateDataFields","_removeInferiorDataFields","_resolvableExtReferencesMelinda","_sanitizeVocabularySourceCodes","_sortFields","_sortRelatorTerms","_sortSubfields","_sortTags","_subfieldValueNormalizations","_subfieldExclusion","_sync007And","_typeOfDate","_unicodeDecomposition","_updateField","_urn","obj","__esModule","default"],"sources":["../src/index.js"],"sourcesContent":["import AccessRights from './access-rights';\nimport DoubleCommas from './double-commas';\nimport DuplicatesInd1 from './duplicates-ind1';\nimport EmptyFields from './empty-fields';\nimport EndingPunctuation from './ending-punctuation';\nimport EndingWhitespace from './ending-whitespace';\nimport Field505Separators from './field-505-separators';\nimport Field521Fix from './field-521-fix';\nimport FieldExclusion from './field-exclusion';\nimport FieldStructure from './field-structure';\nimport FieldsPresent from './fields-present';\nimport FixedFields from './fixed-fields';\nimport FixRelatorTerms from './fixRelatorTerms';\nimport IdenticalFields from './identical-fields';\nimport IndicatorFixes from './indicator-fixes';\nimport IsbnIssn from './isbn-issn';\nimport ItemLanguage from './item-language';\nimport MergeField500Lisapainokset from './mergeField500Lisapainokset';\nimport MergeRelatorTermFields from './mergeRelatorTermFields';\nimport MultipleSubfield0s from './multiple-subfield-0';\nimport NonBreakingSpace from './non-breaking-space';\nimport NormalizeIdentifiers from './normalize-identifiers';\nimport NormalizeQualifyingInformation from './normalize-qualifying-information';\nimport NormalizeUTF8Diacritics from './normalize-utf8-diacritics';\nimport Punctuation from './punctuation/';\nimport Punctuation2 from './punctuation2';\nimport ResolveOrphanedSubfield6s from './resolveOrphanedSubfield6s'; // Do this before reindexing! (thus not in alphabetical order)\nimport ReindexSubfield6OccurenceNumbers from './reindexSubfield6OccurenceNumbers';\nimport RemoveDuplicateDataFields from './removeDuplicateDataFields';\nimport RemoveInferiorDataFields from './removeInferiorDataFields';\nimport ResolvableExtReferences from './resolvable-ext-references-melinda';\nimport SanitizeVocabularySourceCodes from './sanitize-vocabulary-source-codes';\nimport SortFields from './sortFields';\nimport SortRelatorTerms from './sortRelatorTerms';\nimport SortSubfields from './sortSubfields';\nimport SortTags from './sort-tags';\n// import StripPunctuation from './stripPunctuation'; // Can we add this here? Should be used very cautiosly!\nimport SubfieldValueNormalizations from './subfieldValueNormalizations';\nimport SubfieldExclusion from './subfield-exclusion';\nimport Sync007And300 from './sync-007-and-300';\nimport TypeOfDateF008 from './typeOfDate-008';\nimport UnicodeDecomposition from './unicode-decomposition';\nimport UpdateField540 from './update-field-540';\nimport Urn from './urn';\n\nexport {\n AccessRights,\n DoubleCommas,\n DuplicatesInd1,\n EmptyFields,\n EndingPunctuation,\n EndingWhitespace,\n Field505Separators,\n Field521Fix,\n FieldExclusion,\n FieldsPresent,\n FieldStructure,\n FixRelatorTerms,\n FixedFields,\n IdenticalFields,\n IndicatorFixes,\n IsbnIssn,\n ItemLanguage,\n MergeField500Lisapainokset,\n MergeRelatorTermFields,\n MultipleSubfield0s,\n NonBreakingSpace,\n NormalizeIdentifiers,\n NormalizeQualifyingInformation,\n NormalizeUTF8Diacritics,\n Punctuation,\n Punctuation2,\n ResolveOrphanedSubfield6s,\n ReindexSubfield6OccurenceNumbers,\n RemoveDuplicateDataFields,\n RemoveInferiorDataFields,\n ResolvableExtReferences,\n SanitizeVocabularySourceCodes,\n SortRelatorTerms,\n SortSubfields,\n SortTags,\n SubfieldExclusion,\n SubfieldValueNormalizations,\n Sync007And300,\n TypeOfDateF008,\n UnicodeDecomposition,\n UpdateField540,\n Urn,\n SortFields // Keep this as last\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,YAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,kBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,iBAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,mBAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,YAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,eAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,eAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,cAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,YAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,gBAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,gBAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,eAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,SAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,aAAA,GAAAjB,sBAAA,CAAAC,OAAA;AACA,IAAAiB,2BAAA,GAAAlB,sBAAA,CAAAC,OAAA;AACA,IAAAkB,uBAAA,GAAAnB,sBAAA,CAAAC,OAAA;AACA,IAAAmB,iBAAA,GAAApB,sBAAA,CAAAC,OAAA;AACA,IAAAoB,iBAAA,GAAArB,sBAAA,CAAAC,OAAA;AACA,IAAAqB,qBAAA,GAAAtB,sBAAA,CAAAC,OAAA;AACA,IAAAsB,+BAAA,GAAAvB,sBAAA,CAAAC,OAAA;AACA,IAAAuB,wBAAA,GAAAxB,sBAAA,CAAAC,OAAA;AACA,IAAAwB,YAAA,GAAAzB,sBAAA,CAAAC,OAAA;AACA,IAAAyB,aAAA,GAAA1B,sBAAA,CAAAC,OAAA;AACA,IAAA0B,0BAAA,GAAA3B,sBAAA,CAAAC,OAAA;AACA,IAAA2B,iCAAA,GAAA5B,sBAAA,CAAAC,OAAA;AACA,IAAA4B,0BAAA,GAAA7B,sBAAA,CAAAC,OAAA;AACA,IAAA6B,yBAAA,GAAA9B,sBAAA,CAAAC,OAAA;AACA,IAAA8B,+BAAA,GAAA/B,sBAAA,CAAAC,OAAA;AACA,IAAA+B,8BAAA,GAAAhC,sBAAA,CAAAC,OAAA;AACA,IAAAgC,WAAA,GAAAjC,sBAAA,CAAAC,OAAA;AACA,IAAAiC,iBAAA,GAAAlC,sBAAA,CAAAC,OAAA;AACA,IAAAkC,cAAA,GAAAnC,sBAAA,CAAAC,OAAA;AACA,IAAAmC,SAAA,GAAApC,sBAAA,CAAAC,OAAA;AAEA,IAAAoC,4BAAA,GAAArC,sBAAA,CAAAC,OAAA;AACA,IAAAqC,kBAAA,GAAAtC,sBAAA,CAAAC,OAAA;AACA,IAAAsC,WAAA,GAAAvC,sBAAA,CAAAC,OAAA;AACA,IAAAuC,WAAA,GAAAxC,sBAAA,CAAAC,OAAA;AACA,IAAAwC,qBAAA,GAAAzC,sBAAA,CAAAC,OAAA;AACA,IAAAyC,YAAA,GAAA1C,sBAAA,CAAAC,OAAA;AACA,IAAA0C,IAAA,GAAA3C,sBAAA,CAAAC,OAAA;AAAwB,SAAAD,uBAAA4C,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA"}
1
+ {"version":3,"file":"index.js","names":["_accessRights","_interopRequireDefault","require","_doubleCommas","_duplicatesInd","_emptyFields","_endingPunctuation","_endingWhitespace","_field505Separators","_field521Fix","_fieldExclusion","_fieldStructure","_fieldsPresent","_fixedFields","_fixRelatorTerms","_identicalFields","_indicatorFixes","_isbnIssn","_itemLanguage","_mergeField500Lisapainokset","_mergeRelatorTermFields","_multipleSubfield","_nonBreakingSpace","_normalizeDashes","_normalizeIdentifiers","_normalizeQualifyingInformation","_normalizeUtf8Diacritics","_punctuation","_punctuation2","_resolveOrphanedSubfield6s","_reindexSubfield6OccurenceNumbers","_removeDuplicateDataFields","_removeInferiorDataFields","_resolvableExtReferencesMelinda","_sanitizeVocabularySourceCodes","_sortFields","_sortRelatorTerms","_sortSubfields","_sortTags","_subfieldValueNormalizations","_subfieldExclusion","_sync007And","_typeOfDate","_unicodeDecomposition","_updateField","_urn","obj","__esModule","default"],"sources":["../src/index.js"],"sourcesContent":["import AccessRights from './access-rights';\nimport DoubleCommas from './double-commas';\nimport DuplicatesInd1 from './duplicates-ind1';\nimport EmptyFields from './empty-fields';\nimport EndingPunctuation from './ending-punctuation';\nimport EndingWhitespace from './ending-whitespace';\nimport Field505Separators from './field-505-separators';\nimport Field521Fix from './field-521-fix';\nimport FieldExclusion from './field-exclusion';\nimport FieldStructure from './field-structure';\nimport FieldsPresent from './fields-present';\nimport FixedFields from './fixed-fields';\nimport FixRelatorTerms from './fixRelatorTerms';\nimport IdenticalFields from './identical-fields';\nimport IndicatorFixes from './indicator-fixes';\nimport IsbnIssn from './isbn-issn';\nimport ItemLanguage from './item-language';\nimport MergeField500Lisapainokset from './mergeField500Lisapainokset';\nimport MergeRelatorTermFields from './mergeRelatorTermFields';\nimport MultipleSubfield0s from './multiple-subfield-0';\nimport NonBreakingSpace from './non-breaking-space';\nimport NormalizeDashes from './normalize-dashes';\nimport NormalizeIdentifiers from './normalize-identifiers';\nimport NormalizeQualifyingInformation from './normalize-qualifying-information';\nimport NormalizeUTF8Diacritics from './normalize-utf8-diacritics';\nimport Punctuation from './punctuation/';\nimport Punctuation2 from './punctuation2';\nimport ResolveOrphanedSubfield6s from './resolveOrphanedSubfield6s'; // Do this before reindexing! (thus not in alphabetical order)\nimport ReindexSubfield6OccurenceNumbers from './reindexSubfield6OccurenceNumbers';\nimport RemoveDuplicateDataFields from './removeDuplicateDataFields';\nimport RemoveInferiorDataFields from './removeInferiorDataFields';\nimport ResolvableExtReferences from './resolvable-ext-references-melinda';\nimport SanitizeVocabularySourceCodes from './sanitize-vocabulary-source-codes';\nimport SortFields from './sortFields';\nimport SortRelatorTerms from './sortRelatorTerms';\nimport SortSubfields from './sortSubfields';\nimport SortTags from './sort-tags';\n// import StripPunctuation from './stripPunctuation'; // Can we add this here? Should be used very cautiosly!\nimport SubfieldValueNormalizations from './subfieldValueNormalizations';\nimport SubfieldExclusion from './subfield-exclusion';\nimport Sync007And300 from './sync-007-and-300';\nimport TypeOfDateF008 from './typeOfDate-008';\nimport UnicodeDecomposition from './unicode-decomposition';\nimport UpdateField540 from './update-field-540';\nimport Urn from './urn';\n\nexport {\n AccessRights,\n DoubleCommas,\n DuplicatesInd1,\n EmptyFields,\n EndingPunctuation,\n EndingWhitespace,\n Field505Separators,\n Field521Fix,\n FieldExclusion,\n FieldsPresent,\n FieldStructure,\n FixRelatorTerms,\n FixedFields,\n IdenticalFields,\n IndicatorFixes,\n IsbnIssn,\n ItemLanguage,\n MergeField500Lisapainokset,\n MergeRelatorTermFields,\n MultipleSubfield0s,\n NonBreakingSpace,\n NormalizeDashes,\n NormalizeIdentifiers,\n NormalizeQualifyingInformation,\n NormalizeUTF8Diacritics,\n Punctuation,\n Punctuation2,\n ResolveOrphanedSubfield6s,\n ReindexSubfield6OccurenceNumbers,\n RemoveDuplicateDataFields,\n RemoveInferiorDataFields,\n ResolvableExtReferences,\n SanitizeVocabularySourceCodes,\n SortRelatorTerms,\n SortSubfields,\n SortTags,\n SubfieldExclusion,\n SubfieldValueNormalizations,\n Sync007And300,\n TypeOfDateF008,\n UnicodeDecomposition,\n UpdateField540,\n Urn,\n SortFields // Keep this as last\n};\n"],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+ var _clone = _interopRequireDefault(require("clone"));
8
+ var _utils = require("./utils");
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ //import createDebugLogger from 'debug';
11
+
12
+ // Author(s): Nicholas Volk
13
+ function _default() {
14
+ return {
15
+ description: 'Normalize various dashes to "-"',
16
+ validate,
17
+ fix
18
+ };
19
+ function fix(record) {
20
+ (0, _utils.nvdebug)(`FIX ME`);
21
+ record.fields.forEach(field => {
22
+ fixDashes(field);
23
+ });
24
+ const res = {
25
+ message: [],
26
+ fix: [],
27
+ valid: true
28
+ };
29
+ return res;
30
+ }
31
+ function validate(record) {
32
+ const res = {
33
+ message: []
34
+ };
35
+ (0, _utils.nvdebug)(`VALIDATE ME`);
36
+ record.fields?.forEach(field => {
37
+ validateField(field, res);
38
+ });
39
+ res.valid = !(res.message.length >= 1); // eslint-disable-line functional/immutable-data
40
+ return res;
41
+ }
42
+ function validateField(field, res) {
43
+ const orig = (0, _utils.fieldToString)(field);
44
+ (0, _utils.nvdebug)(` VALIDATE FIELD '${orig}'`);
45
+ const normalizedField = fixDashes((0, _clone.default)(field));
46
+ const mod = (0, _utils.fieldToString)(normalizedField);
47
+ if (orig === mod) {
48
+ // Fail as the input is "broken"/"crap"/sumthing
49
+ return;
50
+ }
51
+ res.message.push(`'TODO: ${orig}' => '${mod}'`); // eslint-disable-line functional/immutable-data
52
+ return;
53
+ }
54
+ }
55
+ function fixDashes(field) {
56
+ if (!field.subfields) {
57
+ return field;
58
+ }
59
+ (0, _utils.nvdebug)(`Dashing ${(0, _utils.fieldToString)(field)}`);
60
+ field.subfields.forEach(sf => subfieldFixDashes(sf));
61
+ return field;
62
+ function subfieldFixDashes(subfield) {
63
+ if ((0, _utils.isControlSubfieldCode)(subfield.code)) {
64
+ return;
65
+ }
66
+ // Normalize dashes U+2010 ... U+2015 to '-':
67
+ subfield.value = subfield.value.replace(/[\u2010\u2011\u2012\u2013\u2014\u2015]/ug, '-'); // eslint-disable-line functional/immutable-data
68
+ }
69
+ }
70
+ //# sourceMappingURL=normalize-dashes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-dashes.js","names":["_clone","_interopRequireDefault","require","_utils","obj","__esModule","default","_default","description","validate","fix","record","nvdebug","fields","forEach","field","fixDashes","res","message","valid","validateField","length","orig","fieldToString","normalizedField","clone","mod","push","subfields","sf","subfieldFixDashes","subfield","isControlSubfieldCode","code","value","replace"],"sources":["../src/normalize-dashes.js"],"sourcesContent":["//import createDebugLogger from 'debug';\nimport clone from 'clone';\nimport {fieldToString, isControlSubfieldCode, nvdebug} from './utils';\n\n// Author(s): Nicholas Volk\nexport default function () {\n\n return {\n description: 'Normalize various dashes to \"-\"',\n validate, fix\n };\n\n function fix(record) {\n nvdebug(`FIX ME`);\n record.fields.forEach(field => {\n fixDashes(field);\n });\n\n const res = {message: [], fix: [], valid: true};\n return res;\n }\n\n function validate(record) {\n const res = {message: []};\n\n nvdebug(`VALIDATE ME`);\n record.fields?.forEach(field => {\n validateField(field, res);\n });\n\n res.valid = !(res.message.length >= 1); // eslint-disable-line functional/immutable-data\n return res;\n }\n\n function validateField(field, res) {\n const orig = fieldToString(field);\n nvdebug(` VALIDATE FIELD '${orig}'`);\n\n const normalizedField = fixDashes(clone(field));\n const mod = fieldToString(normalizedField);\n if (orig === mod) { // Fail as the input is \"broken\"/\"crap\"/sumthing\n return;\n }\n res.message.push(`'TODO: ${orig}' => '${mod}'`); // eslint-disable-line functional/immutable-data\n return;\n }\n}\n\n\nfunction fixDashes(field) {\n if (!field.subfields) {\n return field;\n }\n\n nvdebug(`Dashing ${fieldToString(field)}`);\n\n field.subfields.forEach(sf => subfieldFixDashes(sf));\n\n return field;\n\n function subfieldFixDashes(subfield) {\n if (isControlSubfieldCode(subfield.code)) {\n return;\n }\n // Normalize dashes U+2010 ... U+2015 to '-':\n subfield.value = subfield.value.replace(/[\\u2010\\u2011\\u2012\\u2013\\u2014\\u2015]/ug, '-'); // eslint-disable-line functional/immutable-data\n }\n\n}\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAAsE,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAFtE;;AAIA;AACe,SAAAG,SAAA,EAAY;EAEzB,OAAO;IACLC,WAAW,EAAE,iCAAiC;IAC9CC,QAAQ;IAAEC;EACZ,CAAC;EAED,SAASA,GAAGA,CAACC,MAAM,EAAE;IACnB,IAAAC,cAAO,EAAE,QAAO,CAAC;IACjBD,MAAM,CAACE,MAAM,CAACC,OAAO,CAACC,KAAK,IAAI;MAC7BC,SAAS,CAACD,KAAK,CAAC;IAClB,CAAC,CAAC;IAEF,MAAME,GAAG,GAAG;MAACC,OAAO,EAAE,EAAE;MAAER,GAAG,EAAE,EAAE;MAAES,KAAK,EAAE;IAAI,CAAC;IAC/C,OAAOF,GAAG;EACZ;EAEA,SAASR,QAAQA,CAACE,MAAM,EAAE;IACxB,MAAMM,GAAG,GAAG;MAACC,OAAO,EAAE;IAAE,CAAC;IAEzB,IAAAN,cAAO,EAAE,aAAY,CAAC;IACtBD,MAAM,CAACE,MAAM,EAAEC,OAAO,CAACC,KAAK,IAAI;MAC9BK,aAAa,CAACL,KAAK,EAAEE,GAAG,CAAC;IAC3B,CAAC,CAAC;IAEFA,GAAG,CAACE,KAAK,GAAG,EAAEF,GAAG,CAACC,OAAO,CAACG,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,OAAOJ,GAAG;EACZ;EAEA,SAASG,aAAaA,CAACL,KAAK,EAAEE,GAAG,EAAE;IACjC,MAAMK,IAAI,GAAG,IAAAC,oBAAa,EAACR,KAAK,CAAC;IACjC,IAAAH,cAAO,EAAE,oBAAmBU,IAAK,GAAE,CAAC;IAEpC,MAAME,eAAe,GAAGR,SAAS,CAAC,IAAAS,cAAK,EAACV,KAAK,CAAC,CAAC;IAC/C,MAAMW,GAAG,GAAG,IAAAH,oBAAa,EAACC,eAAe,CAAC;IAC1C,IAAIF,IAAI,KAAKI,GAAG,EAAE;MAAE;MAClB;IACF;IACAT,GAAG,CAACC,OAAO,CAACS,IAAI,CAAE,UAASL,IAAK,SAAQI,GAAI,GAAE,CAAC,CAAC,CAAC;IACjD;EACF;AACF;AAGA,SAASV,SAASA,CAACD,KAAK,EAAE;EACxB,IAAI,CAACA,KAAK,CAACa,SAAS,EAAE;IACpB,OAAOb,KAAK;EACd;EAEA,IAAAH,cAAO,EAAE,WAAU,IAAAW,oBAAa,EAACR,KAAK,CAAE,EAAC,CAAC;EAE1CA,KAAK,CAACa,SAAS,CAACd,OAAO,CAACe,EAAE,IAAIC,iBAAiB,CAACD,EAAE,CAAC,CAAC;EAEpD,OAAOd,KAAK;EAEZ,SAASe,iBAAiBA,CAACC,QAAQ,EAAE;IACnC,IAAI,IAAAC,4BAAqB,EAACD,QAAQ,CAACE,IAAI,CAAC,EAAE;MACxC;IACF;IACA;IACAF,QAAQ,CAACG,KAAK,GAAGH,QAAQ,CAACG,KAAK,CAACC,OAAO,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC,CAAC;EAC5F;AAEF"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _chai = require("chai");
4
+ var _marcRecord = require("@natlibfi/marc-record");
5
+ var _normalizeDashes = _interopRequireDefault(require("./normalize-dashes"));
6
+ var _fixura = require("@natlibfi/fixura");
7
+ var _fixugen = _interopRequireDefault(require("@natlibfi/fixugen"));
8
+ var _debug = _interopRequireDefault(require("debug"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ (0, _fixugen.default)({
11
+ callback,
12
+ path: [__dirname, '..', 'test-fixtures', 'normalize-dashes'],
13
+ useMetadataFile: true,
14
+ recurse: false,
15
+ fixura: {
16
+ reader: _fixura.READERS.JSON
17
+ },
18
+ mocha: {
19
+ before: () => testValidatorFactory()
20
+ }
21
+ });
22
+ const debug = (0, _debug.default)('@natlibfi/marc-record-validators-melinda/normalize-dashes:test');
23
+ async function testValidatorFactory() {
24
+ const validator = await (0, _normalizeDashes.default)();
25
+ (0, _chai.expect)(validator).to.be.an('object').that.has.any.keys('description', 'validate');
26
+ (0, _chai.expect)(validator.description).to.be.a('string');
27
+ (0, _chai.expect)(validator.validate).to.be.a('function');
28
+ }
29
+ async function callback({
30
+ getFixture,
31
+ enabled = true,
32
+ fix = false
33
+ }) {
34
+ if (enabled === false) {
35
+ debug('TEST SKIPPED!');
36
+ return;
37
+ }
38
+ const validator = await (0, _normalizeDashes.default)();
39
+ const record = new _marcRecord.MarcRecord(getFixture('record.json'));
40
+ const expectedResult = getFixture('expectedResult.json');
41
+ // console.log(expectedResult); // eslint-disable-line
42
+
43
+ if (!fix) {
44
+ const result = await validator.validate(record);
45
+ (0, _chai.expect)(result).to.eql(expectedResult);
46
+ return;
47
+ }
48
+ await validator.fix(record);
49
+ (0, _chai.expect)(record).to.eql(expectedResult);
50
+ }
51
+ //# sourceMappingURL=normalize-dashes.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-dashes.spec.js","names":["_chai","require","_marcRecord","_normalizeDashes","_interopRequireDefault","_fixura","_fixugen","_debug","obj","__esModule","default","generateTests","callback","path","__dirname","useMetadataFile","recurse","fixura","reader","READERS","JSON","mocha","before","testValidatorFactory","debug","createDebugLogger","validator","validatorFactory","expect","to","be","an","that","has","any","keys","description","a","validate","getFixture","enabled","fix","record","MarcRecord","expectedResult","result","eql"],"sources":["../src/normalize-dashes.spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from './normalize-dashes';\nimport {READERS} from '@natlibfi/fixura';\nimport generateTests from '@natlibfi/fixugen';\nimport createDebugLogger from 'debug';\n\ngenerateTests({\n callback,\n path: [__dirname, '..', 'test-fixtures', 'normalize-dashes'],\n useMetadataFile: true,\n recurse: false,\n fixura: {\n reader: READERS.JSON\n },\n mocha: {\n before: () => testValidatorFactory()\n }\n});\nconst debug = createDebugLogger('@natlibfi/marc-record-validators-melinda/normalize-dashes:test');\n\nasync function testValidatorFactory() {\n const validator = await validatorFactory();\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n}\n\nasync function callback({getFixture, enabled = true, fix = false}) {\n if (enabled === false) {\n debug('TEST SKIPPED!');\n return;\n }\n\n const validator = await validatorFactory();\n const record = new MarcRecord(getFixture('record.json'));\n const expectedResult = getFixture('expectedResult.json');\n // console.log(expectedResult); // eslint-disable-line\n\n if (!fix) {\n const result = await validator.validate(record);\n expect(result).to.eql(expectedResult);\n return;\n }\n\n await validator.fix(record);\n expect(record).to.eql(expectedResult);\n}\n"],"mappings":";;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,MAAA,GAAAH,sBAAA,CAAAH,OAAA;AAAsC,SAAAG,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEtC,IAAAG,gBAAa,EAAC;EACZC,QAAQ;EACRC,IAAI,EAAE,CAACC,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,kBAAkB,CAAC;EAC5DC,eAAe,EAAE,IAAI;EACrBC,OAAO,EAAE,KAAK;EACdC,MAAM,EAAE;IACNC,MAAM,EAAEC,eAAO,CAACC;EAClB,CAAC;EACDC,KAAK,EAAE;IACLC,MAAM,EAAEA,CAAA,KAAMC,oBAAoB,CAAC;EACrC;AACF,CAAC,CAAC;AACF,MAAMC,KAAK,GAAG,IAAAC,cAAiB,EAAC,gEAAgE,CAAC;AAEjG,eAAeF,oBAAoBA,CAAA,EAAG;EACpC,MAAMG,SAAS,GAAG,MAAM,IAAAC,wBAAgB,EAAC,CAAC;EAE1C,IAAAC,YAAM,EAACF,SAAS,CAAC,CACdG,EAAE,CAACC,EAAE,CAACC,EAAE,CAAC,QAAQ,CAAC,CAClBC,IAAI,CAACC,GAAG,CAACC,GAAG,CAACC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;EAE/C,IAAAP,YAAM,EAACF,SAAS,CAACU,WAAW,CAAC,CAACP,EAAE,CAACC,EAAE,CAACO,CAAC,CAAC,QAAQ,CAAC;EAC/C,IAAAT,YAAM,EAACF,SAAS,CAACY,QAAQ,CAAC,CAACT,EAAE,CAACC,EAAE,CAACO,CAAC,CAAC,UAAU,CAAC;AAChD;AAEA,eAAezB,QAAQA,CAAC;EAAC2B,UAAU;EAAEC,OAAO,GAAG,IAAI;EAAEC,GAAG,GAAG;AAAK,CAAC,EAAE;EACjE,IAAID,OAAO,KAAK,KAAK,EAAE;IACrBhB,KAAK,CAAC,eAAe,CAAC;IACtB;EACF;EAEA,MAAME,SAAS,GAAG,MAAM,IAAAC,wBAAgB,EAAC,CAAC;EAC1C,MAAMe,MAAM,GAAG,IAAIC,sBAAU,CAACJ,UAAU,CAAC,aAAa,CAAC,CAAC;EACxD,MAAMK,cAAc,GAAGL,UAAU,CAAC,qBAAqB,CAAC;EACxD;;EAEA,IAAI,CAACE,GAAG,EAAE;IACR,MAAMI,MAAM,GAAG,MAAMnB,SAAS,CAACY,QAAQ,CAACI,MAAM,CAAC;IAC/C,IAAAd,YAAM,EAACiB,MAAM,CAAC,CAAChB,EAAE,CAACiB,GAAG,CAACF,cAAc,CAAC;IACrC;EACF;EAEA,MAAMlB,SAAS,CAACe,GAAG,CAACC,MAAM,CAAC;EAC3B,IAAAd,YAAM,EAACc,MAAM,CAAC,CAACb,EAAE,CAACiB,GAAG,CAACF,cAAc,CAAC;AACvC"}
@@ -6,8 +6,8 @@ var _marcRecord = require("@natlibfi/marc-record");
6
6
  var _fetchMock = _interopRequireDefault(require("fetch-mock"));
7
7
  var testContext = _interopRequireWildcard(require("../src/resolvable-ext-references-melinda"));
8
8
  var _resolvableExtReferencesMelinda2 = require("../test-fixtures/resolvable-ext-references-melinda");
9
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
10
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
12
  const {
13
13
  expect
@@ -1 +1 @@
1
- {"version":3,"file":"resolvable-ext-references-melinda.spec.js","names":["_chai","_interopRequireDefault","require","_chaiAsPromised","_marcRecord","_fetchMock","testContext","_interopRequireWildcard","_resolvableExtReferencesMelinda2","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","expect","chai","use","chaiAsPromised","endpoint","queryParam","prefixPattern","fields","describe","afterEach","__ResetDependency__","it","validator","to","be","an","that","any","keys","description","a","validate","rejectedWith","Error","mock","fetchMock","sandbox","fixture5000","fixture9550","__Rewire__","record","MarcRecord","tag","value","subfields","code","result","eql","valid","messages","fixture1000"],"sources":["../src/resolvable-ext-references-melinda.spec.js"],"sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport fetchMock from 'fetch-mock';\nimport * as testContext from '../src/resolvable-ext-references-melinda';\nimport {fixture5000, fixture9550, fixture1000} from '../test-fixtures/resolvable-ext-references-melinda';\n\nconst {expect} = chai;\nchai.use(chaiAsPromised);\n\nconst endpoint = 'http://melinda.kansalliskirjasto.fi:210/fin01';\nconst queryParam = '?operation=searchRetrieve&maximumRecords=2&version=1&query=rec.id=';\nconst prefixPattern = /^\\(FOOBAR\\)/u;\nconst fields = {\n 773: ['w'],\n 833: ['w', 'p']\n};\n\ndescribe('resolvable-ext-references-melinda', () => {\n afterEach(() => {\n testContext.default.__ResetDependency__('fetch');\n });\n\n it('Creates a validator', async () => {\n const validator = await testContext.default({endpoint, prefixPattern, fields});\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n });\n\n it('Throws an error when prefixPattern not provided', async () => {\n const validator = await testContext.default({endpoint, prefixPattern, fields});\n // Cannot read property 'fields' of undefined or Cannot read properties of undefined (reading 'fields')'\n await expect(validator.validate()).to.be.rejectedWith(Error, /^Cannot read propert/u);\n });\n\n describe('#validate', () => {\n it('Finds prefixPattern on record and removes it', async () => {\n const mock = fetchMock.sandbox();\n mock.get(`${endpoint}${queryParam}5000`, fixture5000);\n mock.get(`${endpoint}${queryParam}9550`, fixture9550);\n\n testContext.default.__Rewire__('fetch', mock);\n const validator = await testContext.default({endpoint, prefixPattern, fields});\n\n const record = new MarcRecord({\n fields: [\n {\n tag: '001',\n value: '123456'\n },\n {\n tag: '035',\n subfields: [\n {\n code: 'a',\n value: '(FI-MELINDA)123456'\n }\n ]\n },\n {\n tag: '773',\n subfields: [\n {\n code: 'w',\n value: '(FOOBAR)5000'\n }\n ]\n },\n {\n tag: '833',\n subfields: [\n {\n code: 'p',\n value: '(FOOBAR)9550'\n },\n {\n code: 'c',\n value: '(FI-MELINDA)8850'\n }\n ]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: true, messages: []});\n });\n\n it('Finds no matching prefixPattern on record', async () => {\n const mock = fetchMock.sandbox();\n\n mock.get(`${endpoint}5000`, fixture5000);\n\n testContext.default.__Rewire__('fetch', mock);\n const validator = await testContext.default({endpoint, prefixPattern, fields});\n\n const record = new MarcRecord({\n fields: [\n {\n tag: '001',\n value: '123456'\n },\n {\n tag: '035',\n subfields: [\n {\n code: 'a',\n value: '(FI-MELINDA)123456'\n }\n ]\n },\n {\n tag: '773',\n subfields: [\n {\n code: 'w',\n value: '(FI-MELINDA)123456'\n }\n ]\n },\n {\n tag: '833',\n subfields: [\n {\n code: 'p',\n value: '(FI-MELINDA)2620'\n },\n {\n code: 'w',\n value: '(FI-MELINDA)8850'\n }\n ]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: true, messages: []});\n });\n\n it('Finds prefixPattern on record but values not resolvable', async () => {\n const mock = fetchMock.sandbox();\n mock.get(`${endpoint}${queryParam}1000`, fixture1000);\n\n testContext.default.__Rewire__('fetch', mock);\n const validator = await testContext.default({endpoint, prefixPattern, fields});\n\n const record = new MarcRecord({\n fields: [\n {\n tag: '001',\n value: '123456'\n },\n {\n tag: '035',\n subfields: [\n {\n code: 'a',\n value: '(FI-MELINDA)123456'\n }\n ]\n },\n {\n tag: '773',\n subfields: [\n {\n code: 'w',\n value: '(FOOBAR)1000'\n }\n ]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: false, messages: ['Field 773$w with value 1000 is not resolvable']});\n });\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"resolvable-ext-references-melinda.spec.js","names":["_chai","_interopRequireDefault","require","_chaiAsPromised","_marcRecord","_fetchMock","testContext","_interopRequireWildcard","_resolvableExtReferencesMelinda2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","expect","chai","use","chaiAsPromised","endpoint","queryParam","prefixPattern","fields","describe","afterEach","__ResetDependency__","it","validator","to","be","an","that","any","keys","description","validate","rejectedWith","Error","mock","fetchMock","sandbox","fixture5000","fixture9550","__Rewire__","record","MarcRecord","tag","value","subfields","code","result","eql","valid","messages","fixture1000"],"sources":["../src/resolvable-ext-references-melinda.spec.js"],"sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport fetchMock from 'fetch-mock';\nimport * as testContext from '../src/resolvable-ext-references-melinda';\nimport {fixture5000, fixture9550, fixture1000} from '../test-fixtures/resolvable-ext-references-melinda';\n\nconst {expect} = chai;\nchai.use(chaiAsPromised);\n\nconst endpoint = 'http://melinda.kansalliskirjasto.fi:210/fin01';\nconst queryParam = '?operation=searchRetrieve&maximumRecords=2&version=1&query=rec.id=';\nconst prefixPattern = /^\\(FOOBAR\\)/u;\nconst fields = {\n 773: ['w'],\n 833: ['w', 'p']\n};\n\ndescribe('resolvable-ext-references-melinda', () => {\n afterEach(() => {\n testContext.default.__ResetDependency__('fetch');\n });\n\n it('Creates a validator', async () => {\n const validator = await testContext.default({endpoint, prefixPattern, fields});\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n });\n\n it('Throws an error when prefixPattern not provided', async () => {\n const validator = await testContext.default({endpoint, prefixPattern, fields});\n // Cannot read property 'fields' of undefined or Cannot read properties of undefined (reading 'fields')'\n await expect(validator.validate()).to.be.rejectedWith(Error, /^Cannot read propert/u);\n });\n\n describe('#validate', () => {\n it('Finds prefixPattern on record and removes it', async () => {\n const mock = fetchMock.sandbox();\n mock.get(`${endpoint}${queryParam}5000`, fixture5000);\n mock.get(`${endpoint}${queryParam}9550`, fixture9550);\n\n testContext.default.__Rewire__('fetch', mock);\n const validator = await testContext.default({endpoint, prefixPattern, fields});\n\n const record = new MarcRecord({\n fields: [\n {\n tag: '001',\n value: '123456'\n },\n {\n tag: '035',\n subfields: [\n {\n code: 'a',\n value: '(FI-MELINDA)123456'\n }\n ]\n },\n {\n tag: '773',\n subfields: [\n {\n code: 'w',\n value: '(FOOBAR)5000'\n }\n ]\n },\n {\n tag: '833',\n subfields: [\n {\n code: 'p',\n value: '(FOOBAR)9550'\n },\n {\n code: 'c',\n value: '(FI-MELINDA)8850'\n }\n ]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: true, messages: []});\n });\n\n it('Finds no matching prefixPattern on record', async () => {\n const mock = fetchMock.sandbox();\n\n mock.get(`${endpoint}5000`, fixture5000);\n\n testContext.default.__Rewire__('fetch', mock);\n const validator = await testContext.default({endpoint, prefixPattern, fields});\n\n const record = new MarcRecord({\n fields: [\n {\n tag: '001',\n value: '123456'\n },\n {\n tag: '035',\n subfields: [\n {\n code: 'a',\n value: '(FI-MELINDA)123456'\n }\n ]\n },\n {\n tag: '773',\n subfields: [\n {\n code: 'w',\n value: '(FI-MELINDA)123456'\n }\n ]\n },\n {\n tag: '833',\n subfields: [\n {\n code: 'p',\n value: '(FI-MELINDA)2620'\n },\n {\n code: 'w',\n value: '(FI-MELINDA)8850'\n }\n ]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: true, messages: []});\n });\n\n it('Finds prefixPattern on record but values not resolvable', async () => {\n const mock = fetchMock.sandbox();\n mock.get(`${endpoint}${queryParam}1000`, fixture1000);\n\n testContext.default.__Rewire__('fetch', mock);\n const validator = await testContext.default({endpoint, prefixPattern, fields});\n\n const record = new MarcRecord({\n fields: [\n {\n tag: '001',\n value: '123456'\n },\n {\n tag: '035',\n subfields: [\n {\n code: 'a',\n value: '(FI-MELINDA)123456'\n }\n ]\n },\n {\n tag: '773',\n subfields: [\n {\n code: 'w',\n value: '(FOOBAR)1000'\n }\n ]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: false, messages: ['Field 773$w with value 1000 is not resolvable']});\n });\n });\n});\n"],"mappings":"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"}