@natlibfi/marc-record-validators-melinda 11.6.7 → 12.0.0-alpha.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (563) hide show
  1. package/.github/workflows/{melinda-node-tests.yml → melinda-node-tests-and-publish.yml} +37 -12
  2. package/dist/access-rights.js +63 -91
  3. package/dist/access-rights.js.map +7 -1
  4. package/dist/access-rights.test.js +137 -0
  5. package/dist/access-rights.test.js.map +7 -0
  6. package/dist/addMissingField041.js +21 -53
  7. package/dist/addMissingField041.js.map +7 -1
  8. package/dist/addMissingField041.test.js +39 -0
  9. package/dist/addMissingField041.test.js.map +7 -0
  10. package/dist/addMissingField336.js +99 -191
  11. package/dist/addMissingField336.js.map +7 -1
  12. package/dist/addMissingField336.test.js +39 -0
  13. package/dist/addMissingField336.test.js.map +7 -0
  14. package/dist/addMissingField337.js +63 -132
  15. package/dist/addMissingField337.js.map +7 -1
  16. package/dist/addMissingField337.test.js +39 -0
  17. package/dist/addMissingField337.test.js.map +7 -0
  18. package/dist/addMissingField338.js +147 -253
  19. package/dist/addMissingField338.js.map +7 -1
  20. package/dist/addMissingField338.test.js +39 -0
  21. package/dist/addMissingField338.test.js.map +7 -0
  22. package/dist/cyrillux-usemarcon-replacement.js +119 -272
  23. package/dist/cyrillux-usemarcon-replacement.js.map +7 -1
  24. package/dist/cyrillux-usemarcon-replacement.test.js +43 -0
  25. package/dist/cyrillux-usemarcon-replacement.test.js.map +7 -0
  26. package/dist/cyrillux.js +119 -223
  27. package/dist/cyrillux.js.map +7 -1
  28. package/dist/cyrillux.test.js +39 -0
  29. package/dist/cyrillux.test.js.map +7 -0
  30. package/dist/disambiguateSeriesStatements.js +40 -81
  31. package/dist/disambiguateSeriesStatements.js.map +7 -1
  32. package/dist/disambiguateSeriesStatements.test.js +44 -0
  33. package/dist/disambiguateSeriesStatements.test.js.map +7 -0
  34. package/dist/double-commas.js +7 -14
  35. package/dist/double-commas.js.map +7 -1
  36. package/dist/double-commas.test.js +48 -0
  37. package/dist/double-commas.test.js.map +7 -0
  38. package/dist/duplicates-ind1.js +10 -31
  39. package/dist/duplicates-ind1.js.map +7 -1
  40. package/dist/duplicates-ind1.test.js +40 -0
  41. package/dist/duplicates-ind1.test.js.map +7 -0
  42. package/dist/empty-fields.js +10 -22
  43. package/dist/empty-fields.js.map +7 -1
  44. package/dist/empty-fields.test.js +129 -0
  45. package/dist/empty-fields.test.js.map +7 -0
  46. package/dist/ending-punctuation-conf.js +873 -769
  47. package/dist/ending-punctuation-conf.js.map +7 -1
  48. package/dist/ending-punctuation.js +156 -169
  49. package/dist/ending-punctuation.js.map +7 -1
  50. package/dist/ending-punctuation.test.js +2385 -0
  51. package/dist/ending-punctuation.test.js.map +7 -0
  52. package/dist/ending-whitespace.js +10 -35
  53. package/dist/ending-whitespace.js.map +7 -1
  54. package/dist/ending-whitespace.test.js +38 -0
  55. package/dist/ending-whitespace.test.js.map +7 -0
  56. package/dist/field-008-18-34-character-groups.js +40 -125
  57. package/dist/field-008-18-34-character-groups.js.map +7 -1
  58. package/dist/field-008-18-34-character-groups.test.js +45 -0
  59. package/dist/field-008-18-34-character-groups.test.js.map +7 -0
  60. package/dist/field-505-separators.js +19 -39
  61. package/dist/field-505-separators.js.map +7 -1
  62. package/dist/field-505-separators.test.js +45 -0
  63. package/dist/field-505-separators.test.js.map +7 -0
  64. package/dist/field-521-fix.js +19 -47
  65. package/dist/field-521-fix.js.map +7 -1
  66. package/dist/field-521-fix.test.js +44 -0
  67. package/dist/field-521-fix.test.js.map +7 -0
  68. package/dist/field-exclusion.js +37 -91
  69. package/dist/field-exclusion.js.map +7 -1
  70. package/dist/field-exclusion.test.js +821 -0
  71. package/dist/field-exclusion.test.js.map +7 -0
  72. package/dist/field-structure.js +52 -104
  73. package/dist/field-structure.js.map +7 -1
  74. package/dist/field-structure.test.js +587 -0
  75. package/dist/field-structure.test.js.map +7 -0
  76. package/dist/field33XUtils.js +119 -503
  77. package/dist/field33XUtils.js.map +7 -1
  78. package/dist/fields-present.js +11 -23
  79. package/dist/fields-present.js.map +7 -1
  80. package/dist/fields-present.test.js +95 -0
  81. package/dist/fields-present.test.js.map +7 -0
  82. package/dist/fix-33X.js +393 -431
  83. package/dist/fix-33X.js.map +7 -1
  84. package/dist/fix-33X.test.js +39 -0
  85. package/dist/fix-33X.test.js.map +7 -0
  86. package/dist/fix-country-codes.js +20 -50
  87. package/dist/fix-country-codes.js.map +7 -1
  88. package/dist/fix-country-codes.test.js +44 -0
  89. package/dist/fix-country-codes.test.js.map +7 -0
  90. package/dist/fix-language-codes.js +23 -53
  91. package/dist/fix-language-codes.js.map +7 -1
  92. package/dist/fix-language-codes.test.js +38 -0
  93. package/dist/fix-language-codes.test.js.map +7 -0
  94. package/dist/fixRelatorTerms.js +82 -209
  95. package/dist/fixRelatorTerms.js.map +7 -1
  96. package/dist/fixRelatorTerms.test.js +44 -0
  97. package/dist/fixRelatorTerms.test.js.map +7 -0
  98. package/dist/fixed-fields.js +21 -30
  99. package/dist/fixed-fields.js.map +7 -1
  100. package/dist/fixed-fields.test.js +87 -0
  101. package/dist/fixed-fields.test.js.map +7 -0
  102. package/dist/identical-fields.js +8 -24
  103. package/dist/identical-fields.js.map +7 -1
  104. package/dist/identical-fields.test.js +119 -0
  105. package/dist/identical-fields.test.js.map +7 -0
  106. package/dist/index.js +182 -413
  107. package/dist/index.js.map +7 -1
  108. package/dist/indicator-fixes.js +66 -94
  109. package/dist/indicator-fixes.js.map +7 -1
  110. package/dist/indicator-fixes.test.js +42 -0
  111. package/dist/indicator-fixes.test.js.map +7 -0
  112. package/dist/isbn-issn.js +71 -128
  113. package/dist/isbn-issn.js.map +7 -1
  114. package/dist/isbn-issn.test.js +398 -0
  115. package/dist/isbn-issn.test.js.map +7 -0
  116. package/dist/item-language.js +32 -65
  117. package/dist/item-language.js.map +7 -1
  118. package/dist/item-language.test.js +322 -0
  119. package/dist/item-language.test.js.map +7 -0
  120. package/dist/melindaCustomMergeFields.js +5182 -11233
  121. package/dist/melindaCustomMergeFields.js.map +7 -1
  122. package/dist/merge-fields/controlSubfields.js +75 -142
  123. package/dist/merge-fields/controlSubfields.js.map +7 -1
  124. package/dist/merge-fields/counterpartField.js +187 -379
  125. package/dist/merge-fields/counterpartField.js.map +7 -1
  126. package/dist/merge-fields/dataProvenance.js +29 -0
  127. package/dist/merge-fields/dataProvenance.js.map +7 -0
  128. package/dist/merge-fields/index.js +25 -50
  129. package/dist/merge-fields/index.js.map +7 -1
  130. package/dist/merge-fields/mergableIndicator.js +18 -51
  131. package/dist/merge-fields/mergableIndicator.js.map +7 -1
  132. package/dist/merge-fields/mergableTag.js +78 -30
  133. package/dist/merge-fields/mergableTag.js.map +7 -1
  134. package/dist/merge-fields/mergeConfig.js +66 -171
  135. package/dist/merge-fields/mergeConfig.js.map +7 -1
  136. package/dist/merge-fields/mergeConstraints.js +323 -1214
  137. package/dist/merge-fields/mergeConstraints.js.map +7 -1
  138. package/dist/merge-fields/mergeField.js +47 -111
  139. package/dist/merge-fields/mergeField.js.map +7 -1
  140. package/dist/merge-fields/mergeIndicator.js +64 -118
  141. package/dist/merge-fields/mergeIndicator.js.map +7 -1
  142. package/dist/merge-fields/mergeOrAddPostprocess.js +14 -38
  143. package/dist/merge-fields/mergeOrAddPostprocess.js.map +7 -1
  144. package/dist/merge-fields/mergeOrAddSubfield.js +62 -104
  145. package/dist/merge-fields/mergeOrAddSubfield.js.map +7 -1
  146. package/dist/merge-fields/mergeSubfield.js +47 -95
  147. package/dist/merge-fields/mergeSubfield.js.map +7 -1
  148. package/dist/merge-fields/removeDuplicateSubfields.js +18 -31
  149. package/dist/merge-fields/removeDuplicateSubfields.js.map +7 -1
  150. package/dist/merge-fields/worldKnowledge.js +15 -40
  151. package/dist/merge-fields/worldKnowledge.js.map +7 -1
  152. package/dist/merge-fields.test.js +46 -0
  153. package/dist/merge-fields.test.js.map +7 -0
  154. package/dist/mergeField500Lisapainokset.js +27 -56
  155. package/dist/mergeField500Lisapainokset.js.map +7 -1
  156. package/dist/mergeField500Lisapainokset.test.js +44 -0
  157. package/dist/mergeField500Lisapainokset.test.js.map +7 -0
  158. package/dist/mergeRelatorTermFields.js +33 -69
  159. package/dist/mergeRelatorTermFields.js.map +7 -1
  160. package/dist/mergeRelatorTermFields.test.js +44 -0
  161. package/dist/mergeRelatorTermFields.test.js.map +7 -0
  162. package/dist/modernize-502.js +23 -55
  163. package/dist/modernize-502.js.map +7 -1
  164. package/dist/modernize-502.test.js +38 -0
  165. package/dist/modernize-502.test.js.map +7 -0
  166. package/dist/multiple-subfield-0.js +23 -48
  167. package/dist/multiple-subfield-0.js.map +7 -1
  168. package/dist/multiple-subfield-0.test.js +44 -0
  169. package/dist/multiple-subfield-0.test.js.map +7 -0
  170. package/dist/non-breaking-space.js +11 -32
  171. package/dist/non-breaking-space.js.map +7 -1
  172. package/dist/non-breaking-space.test.js +38 -0
  173. package/dist/non-breaking-space.test.js.map +7 -0
  174. package/dist/normalize-dashes.js +18 -37
  175. package/dist/normalize-dashes.js.map +7 -1
  176. package/dist/normalize-dashes.test.js +44 -0
  177. package/dist/normalize-dashes.test.js.map +7 -0
  178. package/dist/normalize-identifiers.js +54 -140
  179. package/dist/normalize-identifiers.js.map +7 -1
  180. package/dist/normalize-identifiers.test.js +44 -0
  181. package/dist/normalize-identifiers.test.js.map +7 -0
  182. package/dist/normalize-qualifying-information.js +23 -48
  183. package/dist/normalize-qualifying-information.js.map +7 -1
  184. package/dist/normalize-qualifying-information.test.js +44 -0
  185. package/dist/normalize-qualifying-information.test.js.map +7 -0
  186. package/dist/normalize-utf8-diacritics.js +19 -105
  187. package/dist/normalize-utf8-diacritics.js.map +7 -1
  188. package/dist/normalize-utf8-diacritics.test.js +44 -0
  189. package/dist/normalize-utf8-diacritics.test.js.map +7 -0
  190. package/dist/normalizeFieldForComparison.js +91 -158
  191. package/dist/normalizeFieldForComparison.js.map +7 -1
  192. package/dist/normalizeSubfieldValueForComparison.js +37 -77
  193. package/dist/normalizeSubfieldValueForComparison.js.map +7 -1
  194. package/dist/prepublicationUtils.js +58 -111
  195. package/dist/prepublicationUtils.js.map +7 -1
  196. package/dist/punctuation/index.js +56 -72
  197. package/dist/punctuation/index.js.map +7 -1
  198. package/dist/punctuation/rules/aut.js +372 -331
  199. package/dist/punctuation/rules/aut.js.map +7 -1
  200. package/dist/punctuation/rules/bib.js +420 -373
  201. package/dist/punctuation/rules/bib.js.map +7 -1
  202. package/dist/punctuation/rules/index.js +7 -21
  203. package/dist/punctuation/rules/index.js.map +7 -1
  204. package/dist/punctuation.test.js +44 -0
  205. package/dist/punctuation.test.js.map +7 -0
  206. package/dist/punctuation2.js +259 -802
  207. package/dist/punctuation2.js.map +7 -1
  208. package/dist/punctuation2.test.js +44 -0
  209. package/dist/punctuation2.test.js.map +7 -0
  210. package/dist/reindexSubfield6OccurenceNumbers.js +61 -96
  211. package/dist/reindexSubfield6OccurenceNumbers.js.map +7 -1
  212. package/dist/reindexSubfield6OccurenceNumbers.test.js +44 -0
  213. package/dist/reindexSubfield6OccurenceNumbers.test.js.map +7 -0
  214. package/dist/removeDuplicateDataFields.js +102 -202
  215. package/dist/removeDuplicateDataFields.js.map +7 -1
  216. package/dist/removeDuplicateDataFields.test.js +44 -0
  217. package/dist/removeDuplicateDataFields.test.js.map +7 -0
  218. package/dist/removeInferiorDataFields.js +104 -227
  219. package/dist/removeInferiorDataFields.js.map +7 -1
  220. package/dist/removeInferiorDataFields.test.js +44 -0
  221. package/dist/removeInferiorDataFields.test.js.map +7 -0
  222. package/dist/resolvable-ext-references-melinda.js +25 -60
  223. package/dist/resolvable-ext-references-melinda.js.map +7 -1
  224. package/dist/resolvable-ext-references-melinda.test.js +160 -0
  225. package/dist/resolvable-ext-references-melinda.test.js.map +7 -0
  226. package/dist/resolveOrphanedSubfield6s.js +32 -63
  227. package/dist/resolveOrphanedSubfield6s.js.map +7 -1
  228. package/dist/resolveOrphanedSubfield6s.test.js +44 -0
  229. package/dist/resolveOrphanedSubfield6s.test.js.map +7 -0
  230. package/dist/sanitize-vocabulary-source-codes.js +27 -55
  231. package/dist/sanitize-vocabulary-source-codes.js.map +7 -1
  232. package/dist/sanitize-vocabulary-source-codes.test.js +45 -0
  233. package/dist/sanitize-vocabulary-source-codes.test.js.map +7 -0
  234. package/dist/sort-tags.js +13 -25
  235. package/dist/sort-tags.js.map +7 -1
  236. package/dist/sort-tags.test.js +261 -0
  237. package/dist/sort-tags.test.js.map +7 -0
  238. package/dist/sortFields.js +152 -222
  239. package/dist/sortFields.js.map +7 -1
  240. package/dist/sortFields.test.js +44 -0
  241. package/dist/sortFields.test.js.map +7 -0
  242. package/dist/sortRelatorTerms.js +30 -68
  243. package/dist/sortRelatorTerms.js.map +7 -1
  244. package/dist/sortRelatorTerms.test.js +44 -0
  245. package/dist/sortRelatorTerms.test.js.map +7 -0
  246. package/dist/sortSubfields.js +102 -255
  247. package/dist/sortSubfields.js.map +7 -1
  248. package/dist/sortSubfields.test.js +44 -0
  249. package/dist/sortSubfields.test.js.map +7 -0
  250. package/dist/stripPunctuation.js +13 -36
  251. package/dist/stripPunctuation.js.map +7 -1
  252. package/dist/stripPunctuation.test.js +44 -0
  253. package/dist/stripPunctuation.test.js.map +7 -0
  254. package/dist/subfield-exclusion.js +28 -75
  255. package/dist/subfield-exclusion.js.map +7 -1
  256. package/dist/subfield-exclusion.test.js +471 -0
  257. package/dist/subfield-exclusion.test.js.map +7 -0
  258. package/dist/subfield6Utils.js +107 -269
  259. package/dist/subfield6Utils.js.map +7 -1
  260. package/dist/subfield8Utils.js +26 -50
  261. package/dist/subfield8Utils.js.map +7 -1
  262. package/dist/subfieldValueNormalizations.js +40 -74
  263. package/dist/subfieldValueNormalizations.js.map +7 -1
  264. package/dist/subfieldValueNormalizations.test.js +45 -0
  265. package/dist/subfieldValueNormalizations.test.js.map +7 -0
  266. package/dist/sync-007-and-300.js +22 -53
  267. package/dist/sync-007-and-300.js.map +7 -1
  268. package/dist/sync-007-and-300.test.js +44 -0
  269. package/dist/sync-007-and-300.test.js.map +7 -0
  270. package/dist/translate-terms.js +67 -155
  271. package/dist/translate-terms.js.map +7 -1
  272. package/dist/translate-terms.test.js +54 -0
  273. package/dist/translate-terms.test.js.map +7 -0
  274. package/dist/typeOfDate-008.js +10 -25
  275. package/dist/typeOfDate-008.js.map +7 -1
  276. package/dist/typeOfDate-008.test.js +40 -0
  277. package/dist/typeOfDate-008.test.js.map +7 -0
  278. package/dist/unicode-decomposition.js +94 -107
  279. package/dist/unicode-decomposition.js.map +7 -1
  280. package/dist/unicode-decomposition.test.js +94 -0
  281. package/dist/unicode-decomposition.test.js.map +7 -0
  282. package/dist/update-field-540.js +30 -75
  283. package/dist/update-field-540.js.map +7 -1
  284. package/dist/update-field-540.test.js +44 -0
  285. package/dist/update-field-540.test.js.map +7 -0
  286. package/dist/urn.js +55 -128
  287. package/dist/urn.js.map +7 -1
  288. package/dist/urn.test.js +44 -0
  289. package/dist/urn.test.js.map +7 -0
  290. package/dist/utils.js +78 -126
  291. package/dist/utils.js.map +7 -1
  292. package/eslint.config.mjs +1 -2
  293. package/package.json +28 -101
  294. package/src/access-rights.js +1 -1
  295. package/src/{access-rights.spec.js → access-rights.test.js} +9 -10
  296. package/src/addMissingField041.js +1 -1
  297. package/src/{addMissingField336.spec.js → addMissingField041.test.js} +13 -14
  298. package/src/addMissingField336.js +3 -3
  299. package/src/{addMissingField041.spec.js → addMissingField336.test.js} +13 -14
  300. package/src/addMissingField337.js +2 -2
  301. package/src/{addMissingField337.spec.js → addMissingField337.test.js} +13 -14
  302. package/src/addMissingField338.js +2 -2
  303. package/src/{addMissingField338.spec.js → addMissingField338.test.js} +13 -14
  304. package/src/cyrillux-usemarcon-replacement.js +18 -18
  305. package/src/{cyrillux-usemarcon-replacement.spec.js → cyrillux-usemarcon-replacement.test.js} +17 -14
  306. package/src/cyrillux.js +19 -12
  307. package/src/{cyrillux.spec.js → cyrillux.test.js} +13 -14
  308. package/src/disambiguateSeriesStatements.js +2 -2
  309. package/src/{disambiguateSeriesStatements.spec.js → disambiguateSeriesStatements.test.js} +12 -13
  310. package/src/double-commas.js +1 -1
  311. package/src/{double-commas.spec.js → double-commas.test.js} +9 -11
  312. package/src/duplicates-ind1.js +1 -1
  313. package/src/{duplicates-ind1.spec.js → duplicates-ind1.test.js} +12 -13
  314. package/src/{empty-fields.spec.js → empty-fields.test.js} +11 -13
  315. package/src/ending-punctuation-conf.js +6 -5
  316. package/src/ending-punctuation.js +115 -24
  317. package/src/{ending-punctuation.spec.js → ending-punctuation.test.js} +357 -275
  318. package/src/{ending-whitespace.spec.js → ending-whitespace.test.js} +12 -13
  319. package/src/field-008-18-34-character-groups.js +2 -2
  320. package/src/{field-008-18-34-character-groups.spec.js → field-008-18-34-character-groups.test.js} +13 -13
  321. package/src/field-505-separators.js +3 -3
  322. package/src/{field-505-separators.spec.js → field-505-separators.test.js} +16 -14
  323. package/src/field-521-fix.js +2 -2
  324. package/src/{field-521-fix.spec.js → field-521-fix.test.js} +12 -13
  325. package/src/field-exclusion.js +1 -1
  326. package/src/{field-exclusion.spec.js → field-exclusion.test.js} +60 -57
  327. package/src/{field-structure.spec.js → field-structure.test.js} +29 -29
  328. package/src/{fields-present.spec.js → fields-present.test.js} +12 -15
  329. package/src/fix-33X.js +4 -4
  330. package/src/{fix-33X.spec.js → fix-33X.test.js} +13 -14
  331. package/src/fix-country-codes.js +1 -1
  332. package/src/{fix-country-codes.spec.js → fix-country-codes.test.js} +12 -13
  333. package/src/fix-language-codes.js +5 -5
  334. package/src/{fix-language-codes.spec.js → fix-language-codes.test.js} +12 -13
  335. package/src/fixRelatorTerms.js +5 -5
  336. package/src/{fixRelatorTerms.spec.js → fixRelatorTerms.test.js} +13 -13
  337. package/src/{fixed-fields.spec.js → fixed-fields.test.js} +11 -14
  338. package/src/identical-fields.js +1 -1
  339. package/src/{identical-fields.spec.js → identical-fields.test.js} +9 -11
  340. package/src/index.js +132 -59
  341. package/src/indicator-fixes.js +17 -4
  342. package/src/{indicator-fixes.spec.js → indicator-fixes.test.js} +9 -12
  343. package/src/isbn-issn.js +12 -7
  344. package/src/{isbn-issn.spec.js → isbn-issn.test.js} +20 -22
  345. package/src/{item-language.spec.js → item-language.test.js} +21 -22
  346. package/src/melindaCustomMergeFields.js +1 -1
  347. package/src/merge-fields/controlSubfields.js +1 -1
  348. package/src/merge-fields/counterpartField.js +14 -9
  349. package/src/merge-fields/dataProvenance.js +41 -0
  350. package/src/merge-fields/index.js +12 -3
  351. package/src/merge-fields/mergableIndicator.js +1 -1
  352. package/src/merge-fields/mergeField.js +8 -8
  353. package/src/merge-fields/mergeIndicator.js +1 -1
  354. package/src/merge-fields/mergeOrAddPostprocess.js +4 -4
  355. package/src/merge-fields/mergeOrAddSubfield.js +2 -2
  356. package/src/merge-fields/mergeSubfield.js +4 -4
  357. package/src/merge-fields/removeDuplicateSubfields.js +2 -2
  358. package/src/{merge-fields.spec.js → merge-fields.test.js} +18 -15
  359. package/src/mergeField500Lisapainokset.js +1 -1
  360. package/src/{mergeField500Lisapainokset.spec.js → mergeField500Lisapainokset.test.js} +12 -13
  361. package/src/mergeRelatorTermFields.js +5 -7
  362. package/src/{mergeRelatorTermFields.spec.js → mergeRelatorTermFields.test.js} +12 -13
  363. package/src/modernize-502.js +1 -1
  364. package/src/{modernize-502.spec.js → modernize-502.test.js} +12 -13
  365. package/src/multiple-subfield-0.js +3 -3
  366. package/src/{multiple-subfield-0.spec.js → multiple-subfield-0.test.js} +13 -13
  367. package/src/{non-breaking-space.spec.js → non-breaking-space.test.js} +12 -13
  368. package/src/normalize-dashes.js +2 -2
  369. package/src/{normalize-dashes.spec.js → normalize-dashes.test.js} +12 -13
  370. package/src/normalize-identifiers.js +1 -1
  371. package/src/{normalize-identifiers.spec.js → normalize-identifiers.test.js} +12 -13
  372. package/src/normalize-qualifying-information.js +2 -2
  373. package/src/{normalize-qualifying-information.spec.js → normalize-qualifying-information.test.js} +12 -13
  374. package/src/normalize-utf8-diacritics.js +2 -2
  375. package/src/{normalize-utf8-diacritics.spec.js → normalize-utf8-diacritics.test.js} +13 -13
  376. package/src/normalizeFieldForComparison.js +32 -6
  377. package/src/normalizeSubfieldValueForComparison.js +1 -1
  378. package/src/prepublicationUtils.js +4 -4
  379. package/src/punctuation/index.js +1 -1
  380. package/src/punctuation/rules/index.js +2 -2
  381. package/src/{punctuation.spec.js → punctuation.test.js} +12 -13
  382. package/src/punctuation2.js +17 -8
  383. package/src/{punctuation2.spec.js → punctuation2.test.js} +12 -13
  384. package/src/reindexSubfield6OccurenceNumbers.js +5 -7
  385. package/src/{reindexSubfield6OccurenceNumbers.spec.js → reindexSubfield6OccurenceNumbers.test.js} +12 -13
  386. package/src/removeDuplicateDataFields.js +11 -19
  387. package/src/{removeDuplicateDataFields.spec.js → removeDuplicateDataFields.test.js} +12 -13
  388. package/src/removeInferiorDataFields.js +15 -12
  389. package/src/{removeInferiorDataFields.spec.js → removeInferiorDataFields.test.js} +13 -13
  390. package/src/resolvable-ext-references-melinda.js +1 -1
  391. package/src/{resolvable-ext-references-melinda.spec.js → resolvable-ext-references-melinda.test.js} +42 -27
  392. package/src/resolveOrphanedSubfield6s.js +6 -6
  393. package/src/{resolveOrphanedSubfield6s.spec.js → resolveOrphanedSubfield6s.test.js} +13 -13
  394. package/src/sanitize-vocabulary-source-codes.js +4 -4
  395. package/src/{sanitize-vocabulary-source-codes.spec.js → sanitize-vocabulary-source-codes.test.js} +16 -14
  396. package/src/{sort-tags.spec.js → sort-tags.test.js} +9 -11
  397. package/src/sortFields.js +4 -4
  398. package/src/{sortFields.spec.js → sortFields.test.js} +12 -13
  399. package/src/sortRelatorTerms.js +3 -3
  400. package/src/{sortRelatorTerms.spec.js → sortRelatorTerms.test.js} +13 -13
  401. package/src/sortSubfields.js +8 -6
  402. package/src/{sortSubfields.spec.js → sortSubfields.test.js} +13 -13
  403. package/src/stripPunctuation.js +3 -3
  404. package/src/{stripPunctuation.spec.js → stripPunctuation.test.js} +13 -13
  405. package/src/subfield-exclusion.js +1 -1
  406. package/src/{subfield-exclusion.spec.js → subfield-exclusion.test.js} +45 -36
  407. package/src/subfield6Utils.js +6 -10
  408. package/src/subfield8Utils.js +4 -4
  409. package/src/subfieldValueNormalizations.js +3 -3
  410. package/src/{subfieldValueNormalizations.spec.js → subfieldValueNormalizations.test.js} +18 -14
  411. package/src/sync-007-and-300.js +2 -2
  412. package/src/{sync-007-and-300.spec.js → sync-007-and-300.test.js} +13 -13
  413. package/src/translate-terms.js +3 -3
  414. package/src/translate-terms.test.js +75 -0
  415. package/src/{typeOfDate-008.spec.js → typeOfDate-008.test.js} +12 -13
  416. package/src/{unicode-decomposition.spec.js → unicode-decomposition.test.js} +10 -16
  417. package/src/update-field-540.js +2 -2
  418. package/src/{update-field-540.spec.js → update-field-540.test.js} +13 -10
  419. package/src/urn.js +2 -2
  420. package/src/{urn.spec.js → urn.test.js} +12 -13
  421. package/src/utils.js +21 -5
  422. package/test-fixtures/field-505-separators/03/expectedResult.json +3 -1
  423. package/test-fixtures/field-505-separators/03/record.json +3 -0
  424. package/test-fixtures/indicator-fixes/10/expectedResult.json +11 -0
  425. package/test-fixtures/indicator-fixes/10/metadata.json +4 -0
  426. package/test-fixtures/indicator-fixes/10/record.json +11 -0
  427. package/test-fixtures/merge-fields/f05/expectedResult.json +24 -0
  428. package/test-fixtures/merge-fields/f05/metadata.json +6 -0
  429. package/test-fixtures/merge-fields/f05/record.json +30 -0
  430. package/test-fixtures/normalize-subfield-value/01/metadata.json +4 -1
  431. package/test-fixtures/normalize-subfield-value/01/record.json +3 -0
  432. package/test-fixtures/normalize-subfield-value/02/expectedResult.json +3 -1
  433. package/test-fixtures/normalize-subfield-value/02/metadata.json +2 -1
  434. package/test-fixtures/normalize-subfield-value/02/record.json +3 -0
  435. package/test-fixtures/remove-inferior-datafields/f16/expectedResult.json +12 -0
  436. package/test-fixtures/remove-inferior-datafields/f16/metadata.json +5 -0
  437. package/test-fixtures/remove-inferior-datafields/f16/record.json +14 -0
  438. package/test-fixtures/sanitize-vocabulary-source-codes/f03/expectedResult.json +3 -1
  439. package/test-fixtures/sanitize-vocabulary-source-codes/f04/expectedResult.json +3 -1
  440. package/test-fixtures/sanitize-vocabulary-source-codes/v04/metadata.json +1 -4
  441. package/test-fixtures/sanitize-vocabulary-source-codes/v04/record.json +1 -1
  442. package/test-fixtures/translate-terms-data.js +42 -0
  443. package/dist/access-rights.spec.js +0 -195
  444. package/dist/access-rights.spec.js.map +0 -1
  445. package/dist/addMissingField041.spec.js +0 -45
  446. package/dist/addMissingField041.spec.js.map +0 -1
  447. package/dist/addMissingField336.spec.js +0 -45
  448. package/dist/addMissingField336.spec.js.map +0 -1
  449. package/dist/addMissingField337.spec.js +0 -43
  450. package/dist/addMissingField337.spec.js.map +0 -1
  451. package/dist/addMissingField338.spec.js +0 -45
  452. package/dist/addMissingField338.spec.js.map +0 -1
  453. package/dist/cyrillux-usemarcon-replacement.spec.js +0 -45
  454. package/dist/cyrillux-usemarcon-replacement.spec.js.map +0 -1
  455. package/dist/cyrillux.spec.js +0 -46
  456. package/dist/cyrillux.spec.js.map +0 -1
  457. package/dist/disambiguateSeriesStatements.spec.js +0 -51
  458. package/dist/disambiguateSeriesStatements.spec.js.map +0 -1
  459. package/dist/double-commas.spec.js +0 -73
  460. package/dist/double-commas.spec.js.map +0 -1
  461. package/dist/duplicates-ind1.spec.js +0 -45
  462. package/dist/duplicates-ind1.spec.js.map +0 -1
  463. package/dist/empty-fields.spec.js +0 -118
  464. package/dist/empty-fields.spec.js.map +0 -1
  465. package/dist/ending-punctuation.spec.js +0 -2654
  466. package/dist/ending-punctuation.spec.js.map +0 -1
  467. package/dist/ending-whitespace.spec.js +0 -42
  468. package/dist/ending-whitespace.spec.js.map +0 -1
  469. package/dist/field-008-18-34-character-groups.spec.js +0 -51
  470. package/dist/field-008-18-34-character-groups.spec.js.map +0 -1
  471. package/dist/field-505-separators.spec.js +0 -51
  472. package/dist/field-505-separators.spec.js.map +0 -1
  473. package/dist/field-521-fix.spec.js +0 -51
  474. package/dist/field-521-fix.spec.js.map +0 -1
  475. package/dist/field-exclusion.spec.js +0 -1054
  476. package/dist/field-exclusion.spec.js.map +0 -1
  477. package/dist/field-structure.spec.js +0 -535
  478. package/dist/field-structure.spec.js.map +0 -1
  479. package/dist/fields-present.spec.js +0 -121
  480. package/dist/fields-present.spec.js.map +0 -1
  481. package/dist/fix-33X.spec.js +0 -45
  482. package/dist/fix-33X.spec.js.map +0 -1
  483. package/dist/fix-country-codes.spec.js +0 -51
  484. package/dist/fix-country-codes.spec.js.map +0 -1
  485. package/dist/fix-language-codes.spec.js +0 -44
  486. package/dist/fix-language-codes.spec.js.map +0 -1
  487. package/dist/fixRelatorTerms.spec.js +0 -51
  488. package/dist/fixRelatorTerms.spec.js.map +0 -1
  489. package/dist/fixed-fields.spec.js +0 -140
  490. package/dist/fixed-fields.spec.js.map +0 -1
  491. package/dist/identical-fields.spec.js +0 -99
  492. package/dist/identical-fields.spec.js.map +0 -1
  493. package/dist/indicator-fixes.spec.js +0 -51
  494. package/dist/indicator-fixes.spec.js.map +0 -1
  495. package/dist/isbn-issn.spec.js +0 -595
  496. package/dist/isbn-issn.spec.js.map +0 -1
  497. package/dist/item-language.spec.js +0 -306
  498. package/dist/item-language.spec.js.map +0 -1
  499. package/dist/melindaCustomMergeFields.json +0 -5120
  500. package/dist/merge-fields.spec.js +0 -51
  501. package/dist/merge-fields.spec.js.map +0 -1
  502. package/dist/mergeField500Lisapainokset.spec.js +0 -51
  503. package/dist/mergeField500Lisapainokset.spec.js.map +0 -1
  504. package/dist/mergeRelatorTermFields.spec.js +0 -51
  505. package/dist/mergeRelatorTermFields.spec.js.map +0 -1
  506. package/dist/modernize-502.spec.js +0 -49
  507. package/dist/modernize-502.spec.js.map +0 -1
  508. package/dist/multiple-subfield-0.spec.js +0 -51
  509. package/dist/multiple-subfield-0.spec.js.map +0 -1
  510. package/dist/non-breaking-space.spec.js +0 -42
  511. package/dist/non-breaking-space.spec.js.map +0 -1
  512. package/dist/normalize-dashes.spec.js +0 -51
  513. package/dist/normalize-dashes.spec.js.map +0 -1
  514. package/dist/normalize-identifiers.spec.js +0 -51
  515. package/dist/normalize-identifiers.spec.js.map +0 -1
  516. package/dist/normalize-qualifying-information.spec.js +0 -51
  517. package/dist/normalize-qualifying-information.spec.js.map +0 -1
  518. package/dist/normalize-utf8-diacritics.spec.js +0 -51
  519. package/dist/normalize-utf8-diacritics.spec.js.map +0 -1
  520. package/dist/punctuation.spec.js +0 -51
  521. package/dist/punctuation.spec.js.map +0 -1
  522. package/dist/punctuation2.spec.js +0 -51
  523. package/dist/punctuation2.spec.js.map +0 -1
  524. package/dist/reindexSubfield6OccurenceNumbers.spec.js +0 -51
  525. package/dist/reindexSubfield6OccurenceNumbers.spec.js.map +0 -1
  526. package/dist/removeDuplicateDataFields.spec.js +0 -51
  527. package/dist/removeDuplicateDataFields.spec.js.map +0 -1
  528. package/dist/removeInferiorDataFields.spec.js +0 -51
  529. package/dist/removeInferiorDataFields.spec.js.map +0 -1
  530. package/dist/resolvable-ext-references-melinda.spec.js +0 -166
  531. package/dist/resolvable-ext-references-melinda.spec.js.map +0 -1
  532. package/dist/resolveOrphanedSubfield6s.spec.js +0 -51
  533. package/dist/resolveOrphanedSubfield6s.spec.js.map +0 -1
  534. package/dist/sanitize-vocabulary-source-codes.spec.js +0 -51
  535. package/dist/sanitize-vocabulary-source-codes.spec.js.map +0 -1
  536. package/dist/sort-tags.spec.js +0 -207
  537. package/dist/sort-tags.spec.js.map +0 -1
  538. package/dist/sortFields.spec.js +0 -51
  539. package/dist/sortFields.spec.js.map +0 -1
  540. package/dist/sortRelatorTerms.spec.js +0 -51
  541. package/dist/sortRelatorTerms.spec.js.map +0 -1
  542. package/dist/sortSubfields.spec.js +0 -52
  543. package/dist/sortSubfields.spec.js.map +0 -1
  544. package/dist/stripPunctuation.spec.js +0 -51
  545. package/dist/stripPunctuation.spec.js.map +0 -1
  546. package/dist/subfield-exclusion.spec.js +0 -523
  547. package/dist/subfield-exclusion.spec.js.map +0 -1
  548. package/dist/subfieldValueNormalizations.spec.js +0 -51
  549. package/dist/subfieldValueNormalizations.spec.js.map +0 -1
  550. package/dist/sync-007-and-300.spec.js +0 -51
  551. package/dist/sync-007-and-300.spec.js.map +0 -1
  552. package/dist/translate-terms.spec.js +0 -51
  553. package/dist/translate-terms.spec.js.map +0 -1
  554. package/dist/typeOfDate-008.spec.js +0 -47
  555. package/dist/typeOfDate-008.spec.js.map +0 -1
  556. package/dist/unicode-decomposition.spec.js +0 -91
  557. package/dist/unicode-decomposition.spec.js.map +0 -1
  558. package/dist/update-field-540.spec.js +0 -51
  559. package/dist/update-field-540.spec.js.map +0 -1
  560. package/dist/urn.spec.js +0 -52
  561. package/dist/urn.spec.js.map +0 -1
  562. package/src/melindaCustomMergeFields.json +0 -5120
  563. package/src/translate-terms.spec.js +0 -52
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-structure.spec.js","names":["_chai","_interopRequireDefault","require","_chaiAsPromised","_marcRecord","_fieldStructure","e","__esModule","default","expect","chai","use","chaiAsPromised","describe","it","config","tag","ind1","ind2","subfields","a","maxOccurrence","validator","validatorFactory","to","be","an","that","has","any","keys","description","validate","error","with","property","leader","tags","valuePattern","strict","record","MarcRecord","fields","value","result","eql","valid","recordValid","code","recordInvalidMany","required","pattern","b","recordInvalidExtra","recordInvalidTooMany","recordInvalidRegExp","recordInvalidMissing","recordInvalidMissingSubfield","dependencies","recordInvalid"],"sources":["../src/field-structure.spec.js"],"sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/field-structure';\n\nconst {expect} = chai;\nchai.use(chaiAsPromised);\n\n// Factory validation\ndescribe('field-structure', () => {\n it('Creates a validator', async () => {\n const config = [\n {\n tag: /^035$/u,\n ind1: /^0$/u,\n ind2: /^1$/u\n }, {\n tag: /^100$/u,\n subfields: {\n a: {maxOccurrence: 1}\n }\n }\n ];\n\n const validator = await validatorFactory(config);\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 describe('#configuration', () => {\n it('Throws an error when config array not provided', () => {\n try {\n validatorFactory();\n } catch (error) {\n expect(error).to.be.an('error').with.property('message', 'Configuration array not provided');\n }\n });\n\n it('Throws an error when config array has unidentified field', () => {\n const config = [\n {\n leader: /^035$/u,\n tags: /^035$/u\n }\n ];\n\n try {\n validatorFactory(config);\n } catch (error) {\n expect(error).to.be.an('error').with.property('message', 'Configuration not valid - unidentified value: tags');\n }\n });\n\n it('Throws an error when config array has field with incorrect data type', () => {\n const config = [\n {\n leader: /^035$/u,\n tag: 35\n }\n ];\n\n try {\n validatorFactory(config);\n } catch (error) {\n expect(error).to.be.an('error').with.property('message', 'Configuration not valid - invalid data type for: tag');\n }\n });\n\n it('Throws an error when config array has excluded element', () => {\n const config = [\n {\n leader: /^035$/u,\n tag: /^035$/u\n }\n ];\n\n try {\n validatorFactory(config);\n } catch (error) {\n expect(error).to.be.an('error').with.property('message', 'Configuration not valid - excluded element');\n }\n });\n\n it('Throws an error when config subfields not object', () => {\n const config = [\n {\n tag: /^001$/u,\n valuePattern: /\\d+/u\n }, {\n tag: /^245$/u,\n strict: true,\n subfields: 'This should be Object'\n }\n ];\n\n try {\n validatorFactory(config);\n } catch (error) {\n expect(error).to.be.an('error').with.property('message', 'Configuration not valid - subfields not object');\n }\n });\n });\n\n it('Should find the record valid because no fields match the config', async () => {\n const config = [\n {\n tag: /^FOO$/u,\n valuePattern: /bar/u\n }\n ];\n\n const record = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '001',\n value: '123456'\n }\n ]\n });\n\n const validator = await validatorFactory(config);\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: true});\n });\n\n // Indicators and subfields validation\n describe('#validate: Indicators and subfields', () => {\n const config = [\n {\n tag: /^035$/u,\n ind1: /^0$/u,\n ind2: /^1$/u\n }, {\n tag: /^100$/u,\n subfields: {\n a: {maxOccurrence: 1}\n }\n }\n ];\n\n const recordValid = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '001',\n value: '123456'\n }, {\n tag: '035',\n ind1: '0',\n ind2: '1',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }\n ]\n }, {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'bar'\n }, {\n code: 'b',\n value: 'fubar'\n }\n ]\n }\n ]\n });\n\n const recordInvalidMany = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '001',\n value: '123456'\n }, {\n tag: '035',\n ind1: '1',\n ind2: '1',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }\n ]\n }, {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'bar'\n }, {\n code: 'b',\n value: 'fubar'\n }, {\n code: 'a',\n value: 'barfoo'\n }\n ]\n }\n ]\n });\n\n it('Finds the record valid', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordValid);\n\n expect(result).to.eql({valid: true});\n });\n\n it('Finds the record invalid: Too many subfields', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordInvalidMany);\n\n expect(result).to.eql({valid: false});\n });\n });\n\n // Patterns and mandatory & strict subfields\n describe('#validate: Patterns and mandatory & strict subfields', () => {\n const config = [\n {\n tag: /^001$/u,\n valuePattern: /\\d+/u\n }, {\n tag: /^245$/u,\n strict: true,\n subfields: {\n a: {required: true, maxOccurrence: 1, pattern: /\\w+/u},\n b: {maxOccurrence: 1, pattern: /\\w+/u}\n }\n }\n ];\n\n const recordValid = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '001',\n value: '123456'\n }, {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'bar'\n }\n ]\n }, {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }, {\n code: 'b',\n value: 'bar'\n }\n ]\n }\n ]\n });\n\n const recordInvalidExtra = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '001',\n value: '123456a'\n }, {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'bar'\n }\n ]\n }, {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }, {\n code: 'b',\n value: 'bar'\n }, {\n code: 'c',\n value: 'fubar'\n }\n ]\n }\n ]\n });\n\n const recordInvalidTooMany = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '001',\n value: '123456a'\n }, {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'bar'\n }\n ]\n }, {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }, {\n code: 'b',\n value: 'bar'\n }, {\n code: 'a',\n value: 'fubar'\n }\n ]\n }\n ]\n });\n\n const recordInvalidRegExp = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '001',\n value: '123456a'\n }, {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'bar'\n }\n ]\n }, {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'ää'\n }, {\n code: 'b',\n value: 'bar'\n }\n ]\n }\n ]\n });\n\n const recordInvalidMissing = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'bar'\n }\n ]\n }, {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'ää'\n }, {\n code: 'b',\n value: 'bar'\n }\n ]\n }\n ]\n });\n\n const recordInvalidMissingSubfield = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '001',\n value: '123456'\n }, {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'bar'\n }\n ]\n }, {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'b',\n value: 'bar'\n }\n ]\n }\n ]\n });\n\n it('Finds the record valid', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordValid);\n\n expect(result).to.eql({valid: true});\n });\n\n it('Finds the record invalid: Extra field in strict', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordInvalidExtra);\n\n expect(result).to.eql({valid: false});\n });\n\n it('Finds the record invalid: Too many occurances', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordInvalidTooMany);\n\n expect(result).to.eql({valid: false});\n });\n\n it('Finds the record invalid: Invalid RegExp', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordInvalidRegExp);\n\n expect(result).to.eql({valid: false});\n });\n\n it('Finds the record invalid: Missing field', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordInvalidMissing);\n\n expect(result).to.eql({valid: false});\n });\n it('Finds the record invalid: Missing subfield', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordInvalidMissingSubfield);\n\n expect(result).to.eql({valid: false});\n });\n });\n\n // Dependencies\n describe('#validate: Dependencies', () => {\n const config = [\n {\n leader: /^.{6}s/u,\n dependencies: [\n {\n tag: /^773$/u,\n subfields: {7: /^nnas$/u}\n }\n ]\n }\n ];\n\n const recordValid = new MarcRecord({\n leader: '63ab75sfoo122myhgh',\n fields: [\n {\n tag: '001',\n value: '123456'\n }, {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }\n ]\n }, {\n tag: '773',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: '7',\n value: 'nnas'\n }, {\n code: 'w',\n value: '789101112'\n }\n ]\n }\n ]\n });\n\n const recordInvalid = new MarcRecord({\n leader: '63ab75afoo122myhgh',\n fields: [\n {\n tag: '001',\n value: '123456'\n }, {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }\n ]\n }, {\n tag: '773',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: '7',\n value: 'nnas'\n }, {\n code: 'w',\n value: '789101112'\n }\n ]\n }\n ]\n });\n\n it('Finds the record valid', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordValid);\n\n expect(result).to.eql({valid: true});\n });\n\n it('Finds the record invalid', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordInvalid);\n\n expect(result).to.eql({valid: false});\n });\n\n it('Find the record valid (Dependency on leader)', async () => {\n const validator = await validatorFactory([{tag: /^007$/u, dependencies: [{leader: /^.{6}[at]/u}]}]);\n const result = await validator.validate(new MarcRecord({\n leader: '00000ccm^a22003372i^4500',\n fields: [\n {tag: '001', value: '123456'},\n {tag: '245', value: 'foobar'}\n ]\n }));\n\n expect(result).to.eql({valid: true});\n });\n\n it('Find the record invalid (Dependency on leader)', async () => {\n const validator = await validatorFactory([{tag: /^007$/u, dependencies: [{leader: /^.{6}[at]/u}]}]);\n const result = await validator.validate(new MarcRecord({\n leader: '00000cam^a22003372i^4500',\n fields: [\n {tag: '001', value: '123456'},\n {tag: '245', value: 'foobar'}\n ]\n }));\n\n expect(result).to.eql({valid: false});\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,121 +0,0 @@
1
- "use strict";
2
-
3
- var _chai = _interopRequireDefault(require("chai"));
4
- var _chaiAsPromised = _interopRequireDefault(require("chai-as-promised"));
5
- var _marcRecord = require("@natlibfi/marc-record");
6
- var _fieldsPresent = _interopRequireDefault(require("../src/fields-present"));
7
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
- const {
9
- expect
10
- } = _chai.default;
11
- _chai.default.use(_chaiAsPromised.default);
12
- describe('fields-present', () => {
13
- it('Creates a validator', async () => {
14
- const validator = await (0, _fieldsPresent.default)([/^500$/u, /^400$/u]);
15
- expect(validator).to.be.an('object').that.has.any.keys('description', 'validate');
16
- expect(validator.description).to.be.a('string');
17
- expect(validator.validate).to.be.a('function');
18
- });
19
- it('Throws an error when tagPatterns not provided', () => {
20
- try {
21
- (0, _fieldsPresent.default)();
22
- } catch (error) {
23
- expect(error).to.be.an('error').with.property('message', 'No tag pattern array provided');
24
- }
25
- });
26
- describe('#validate', () => {
27
- it('Finds the record valid', async () => {
28
- const tagPatterns = [/^5..$/u, /^FOO$/u];
29
- const validator = await (0, _fieldsPresent.default)(tagPatterns);
30
- const record = new _marcRecord.MarcRecord({
31
- fields: [{
32
- tag: '500',
33
- ind1: ' ',
34
- ind2: '0',
35
- subfields: [{
36
- code: 'a',
37
- value: 'foo'
38
- }]
39
- }, {
40
- tag: 'FOO',
41
- ind1: ' ',
42
- ind2: '0',
43
- subfields: [{
44
- code: 'a',
45
- value: 'foo'
46
- }]
47
- }]
48
- });
49
- const result = await validator.validate(record);
50
- expect(result).to.eql({
51
- valid: true,
52
- messages: []
53
- });
54
- });
55
- it('Finds the record valid', async () => {
56
- const tagPatterns = [/^(020|022|024)$/u];
57
- const validator = await (0, _fieldsPresent.default)(tagPatterns);
58
- const record = new _marcRecord.MarcRecord({
59
- fields: [{
60
- tag: '020',
61
- ind1: ' ',
62
- ind2: '0',
63
- subfields: [{
64
- code: 'a',
65
- value: 'foo'
66
- }]
67
- }, {
68
- tag: '040',
69
- ind1: ' ',
70
- ind2: '0',
71
- subfields: [{
72
- code: 'a',
73
- value: 'foo'
74
- }]
75
- }]
76
- });
77
- const result = await validator.validate(record);
78
- expect(result).to.eql({
79
- valid: true,
80
- messages: []
81
- });
82
- });
83
- it('Finds the record invalid', async () => {
84
- const tagPatterns = [/^5..$/u, /^FOO$/u];
85
- const validator = await (0, _fieldsPresent.default)(tagPatterns);
86
- const record = new _marcRecord.MarcRecord({
87
- fields: [{
88
- tag: '001',
89
- ind1: ' ',
90
- ind2: '0',
91
- subfields: [{
92
- code: 'a',
93
- value: 'foo'
94
- }]
95
- }, {
96
- tag: '500',
97
- ind1: ' ',
98
- ind2: '0',
99
- subfields: [{
100
- code: 'a',
101
- value: 'foo'
102
- }]
103
- }, {
104
- tag: 'BAR',
105
- ind1: '1',
106
- ind2: '0',
107
- subfields: [{
108
- code: 'a',
109
- value: 'foo'
110
- }]
111
- }]
112
- });
113
- const result = await validator.validate(record);
114
- expect(result).to.eql({
115
- valid: false,
116
- messages: ['The following tag patterns are not present in the record tag field: /^FOO$/u']
117
- });
118
- });
119
- });
120
- });
121
- //# sourceMappingURL=fields-present.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fields-present.spec.js","names":["_chai","_interopRequireDefault","require","_chaiAsPromised","_marcRecord","_fieldsPresent","e","__esModule","default","expect","chai","use","chaiAsPromised","describe","it","validator","validatorFactory","to","be","an","that","has","any","keys","description","a","validate","error","with","property","tagPatterns","record","MarcRecord","fields","tag","ind1","ind2","subfields","code","value","result","eql","valid","messages"],"sources":["../src/fields-present.spec.js"],"sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/fields-present';\n\nconst {expect} = chai;\nchai.use(chaiAsPromised);\n\ndescribe('fields-present', () => {\n it('Creates a validator', async () => {\n const validator = await validatorFactory([/^500$/u, /^400$/u]);\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 tagPatterns not provided', () => {\n try {\n validatorFactory();\n } catch (error) {\n expect(error).to.be.an('error').with.property('message', 'No tag pattern array provided');\n }\n });\n\n describe('#validate', () => {\n it('Finds the record valid', async () => {\n const tagPatterns = [/^5..$/u, /^FOO$/u];\n const validator = await validatorFactory(tagPatterns);\n const record = new MarcRecord({\n fields: [\n {\n tag: '500',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: 'FOO',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: true, messages: []});\n });\n it('Finds the record valid', async () => {\n const tagPatterns = [/^(020|022|024)$/u];\n const validator = await validatorFactory(tagPatterns);\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: '040',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: true, messages: []});\n });\n it('Finds the record invalid', async () => {\n const tagPatterns = [/^5..$/u, /^FOO$/u];\n const validator = await validatorFactory(tagPatterns);\n const record = new MarcRecord({\n fields: [\n {\n tag: '001',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: '500',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: 'BAR',\n ind1: '1',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: false, messages: ['The following tag patterns are not present in the record tag field: /^FOO$/u']});\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,45 +0,0 @@
1
- "use strict";
2
-
3
- var _chai = require("chai");
4
- var _marcRecord = require("@natlibfi/marc-record");
5
- var _fix33X = _interopRequireDefault(require("./fix-33X"));
6
- var _fixura = require("@natlibfi/fixura");
7
- var _fixugen = _interopRequireDefault(require("@natlibfi/fixugen"));
8
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- (0, _fixugen.default)({
10
- callback,
11
- path: [__dirname, '..', 'test-fixtures', 'fix-33X'],
12
- useMetadataFile: true,
13
- recurse: false,
14
- fixura: {
15
- reader: _fixura.READERS.JSON
16
- },
17
- mocha: {
18
- before: () => testValidatorFactory()
19
- }
20
- });
21
- async function testValidatorFactory() {
22
- const validator = await (0, _fix33X.default)();
23
- (0, _chai.expect)(validator).to.be.an('object').that.has.any.keys('description', 'validate');
24
- (0, _chai.expect)(validator.description).to.be.a('string');
25
- (0, _chai.expect)(validator.validate).to.be.a('function');
26
- (0, _chai.expect)(validator.fix).to.be.a('function');
27
- }
28
- async function callback({
29
- getFixture,
30
- fix = false
31
- }) {
32
- const validator = await (0, _fix33X.default)();
33
- const record = new _marcRecord.MarcRecord(getFixture('record.json'));
34
- const expectedResult = getFixture('expectedResult.json');
35
- // console.log(expectedResult); // eslint-disable-line
36
-
37
- if (!fix) {
38
- const result = await validator.validate(record);
39
- (0, _chai.expect)(result).to.eql(expectedResult);
40
- return;
41
- }
42
- await validator.fix(record);
43
- (0, _chai.expect)(record).to.eql(expectedResult);
44
- }
45
- //# sourceMappingURL=fix-33X.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fix-33X.spec.js","names":["_chai","require","_marcRecord","_fix33X","_interopRequireDefault","_fixura","_fixugen","e","__esModule","default","generateTests","callback","path","__dirname","useMetadataFile","recurse","fixura","reader","READERS","JSON","mocha","before","testValidatorFactory","validator","validatorFactory","expect","to","be","an","that","has","any","keys","description","a","validate","fix","getFixture","record","MarcRecord","expectedResult","result","eql"],"sources":["../src/fix-33X.spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from './fix-33X';\nimport {READERS} from '@natlibfi/fixura';\nimport generateTests from '@natlibfi/fixugen';\n\ngenerateTests({\n callback,\n path: [__dirname, '..', 'test-fixtures', 'fix-33X'],\n useMetadataFile: true,\n recurse: false,\n fixura: {\n reader: READERS.JSON\n },\n mocha: {\n before: () => testValidatorFactory()\n }\n});\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 expect(validator.fix).to.be.a('function');\n}\n\nasync function callback({getFixture, fix = false}) {\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,OAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAF,sBAAA,CAAAH,OAAA;AAA8C,SAAAG,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9C,IAAAG,gBAAa,EAAC;EACZC,QAAQ;EACRC,IAAI,EAAE,CAACC,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC;EACnDC,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;AAEF,eAAeA,oBAAoBA,CAAA,EAAG;EACpC,MAAMC,SAAS,GAAG,MAAM,IAAAC,eAAgB,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;EAC9C,IAAAT,YAAM,EAACF,SAAS,CAACa,GAAG,CAAC,CAACV,EAAE,CAACC,EAAE,CAACO,CAAC,CAAC,UAAU,CAAC;AAC3C;AAEA,eAAevB,QAAQA,CAAC;EAAC0B,UAAU;EAAED,GAAG,GAAG;AAAK,CAAC,EAAE;EACjD,MAAMb,SAAS,GAAG,MAAM,IAAAC,eAAgB,EAAC,CAAC;EAC1C,MAAMc,MAAM,GAAG,IAAIC,sBAAU,CAACF,UAAU,CAAC,aAAa,CAAC,CAAC;EACxD,MAAMG,cAAc,GAAGH,UAAU,CAAC,qBAAqB,CAAC;EACxD;;EAEA,IAAI,CAACD,GAAG,EAAE;IACR,MAAMK,MAAM,GAAG,MAAMlB,SAAS,CAACY,QAAQ,CAACG,MAAM,CAAC;IAC/C,IAAAb,YAAM,EAACgB,MAAM,CAAC,CAACf,EAAE,CAACgB,GAAG,CAACF,cAAc,CAAC;IACrC;EACF;EAEA,MAAMjB,SAAS,CAACa,GAAG,CAACE,MAAM,CAAC;EAC3B,IAAAb,YAAM,EAACa,MAAM,CAAC,CAACZ,EAAE,CAACgB,GAAG,CAACF,cAAc,CAAC;AACvC","ignoreList":[]}
@@ -1,51 +0,0 @@
1
- "use strict";
2
-
3
- var _chai = require("chai");
4
- var _marcRecord = require("@natlibfi/marc-record");
5
- var _fixCountryCodes = _interopRequireDefault(require("./fix-country-codes"));
6
- var _fixura = require("@natlibfi/fixura");
7
- var _fixugen = _interopRequireDefault(require("@natlibfi/fixugen"));
8
- var _debug = _interopRequireDefault(require("debug"));
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- (0, _fixugen.default)({
11
- callback,
12
- path: [__dirname, '..', 'test-fixtures', 'fix-country-codes'],
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/fix-country-codes:test');
23
- async function testValidatorFactory() {
24
- const validator = await (0, _fixCountryCodes.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, _fixCountryCodes.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=fix-country-codes.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fix-country-codes.spec.js","names":["_chai","require","_marcRecord","_fixCountryCodes","_interopRequireDefault","_fixura","_fixugen","_debug","e","__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/fix-country-codes.spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from './fix-country-codes';\nimport {READERS} from '@natlibfi/fixura';\nimport generateTests from '@natlibfi/fixugen';\nimport createDebugLogger from 'debug';\n\ngenerateTests({\n callback,\n path: [__dirname, '..', 'test-fixtures', 'fix-country-codes'],\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/fix-country-codes: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,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtC,IAAAG,gBAAa,EAAC;EACZC,QAAQ;EACRC,IAAI,EAAE,CAACC,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,mBAAmB,CAAC;EAC7DC,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,iEAAiE,CAAC;AAElG,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","ignoreList":[]}
@@ -1,44 +0,0 @@
1
- "use strict";
2
-
3
- var _chai = require("chai");
4
- var _marcRecord = require("@natlibfi/marc-record");
5
- var _fixLanguageCodes = _interopRequireDefault(require("./fix-language-codes"));
6
- var _fixura = require("@natlibfi/fixura");
7
- var _fixugen = _interopRequireDefault(require("@natlibfi/fixugen"));
8
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- (0, _fixugen.default)({
10
- callback,
11
- path: [__dirname, '..', 'test-fixtures', 'fix-language-codes'],
12
- useMetadataFile: true,
13
- recurse: false,
14
- fixura: {
15
- reader: _fixura.READERS.JSON
16
- },
17
- mocha: {
18
- before: () => testValidatorFactory()
19
- }
20
- });
21
- async function testValidatorFactory() {
22
- const validator = await (0, _fixLanguageCodes.default)();
23
- (0, _chai.expect)(validator).to.be.an('object').that.has.any.keys('description', 'validate');
24
- (0, _chai.expect)(validator.description).to.be.a('string');
25
- (0, _chai.expect)(validator.validate).to.be.a('function');
26
- }
27
- async function callback({
28
- getFixture,
29
- fix = false
30
- }) {
31
- const validator = await (0, _fixLanguageCodes.default)();
32
- const record = new _marcRecord.MarcRecord(getFixture('record.json'));
33
- const expectedResult = getFixture('expectedResult.json');
34
- // console.log(expectedResult); // eslint-disable-line
35
-
36
- if (!fix) {
37
- const result = await validator.validate(record);
38
- (0, _chai.expect)(result).to.eql(expectedResult);
39
- return;
40
- }
41
- await validator.fix(record);
42
- (0, _chai.expect)(record).to.eql(expectedResult);
43
- }
44
- //# sourceMappingURL=fix-language-codes.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fix-language-codes.spec.js","names":["_chai","require","_marcRecord","_fixLanguageCodes","_interopRequireDefault","_fixura","_fixugen","e","__esModule","default","generateTests","callback","path","__dirname","useMetadataFile","recurse","fixura","reader","READERS","JSON","mocha","before","testValidatorFactory","validator","validatorFactory","expect","to","be","an","that","has","any","keys","description","a","validate","getFixture","fix","record","MarcRecord","expectedResult","result","eql"],"sources":["../src/fix-language-codes.spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from './fix-language-codes';\nimport {READERS} from '@natlibfi/fixura';\nimport generateTests from '@natlibfi/fixugen';\n\ngenerateTests({\n callback,\n path: [__dirname, '..', 'test-fixtures', 'fix-language-codes'],\n useMetadataFile: true,\n recurse: false,\n fixura: {\n reader: READERS.JSON\n },\n mocha: {\n before: () => testValidatorFactory()\n }\n});\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, fix = false}) {\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,iBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAF,sBAAA,CAAAH,OAAA;AAA8C,SAAAG,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9C,IAAAG,gBAAa,EAAC;EACZC,QAAQ;EACRC,IAAI,EAAE,CAACC,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,oBAAoB,CAAC;EAC9DC,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;AAEF,eAAeA,oBAAoBA,CAAA,EAAG;EACpC,MAAMC,SAAS,GAAG,MAAM,IAAAC,yBAAgB,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,eAAevB,QAAQA,CAAC;EAACyB,UAAU;EAAEC,GAAG,GAAG;AAAK,CAAC,EAAE;EACjD,MAAMd,SAAS,GAAG,MAAM,IAAAC,yBAAgB,EAAC,CAAC;EAC1C,MAAMc,MAAM,GAAG,IAAIC,sBAAU,CAACH,UAAU,CAAC,aAAa,CAAC,CAAC;EACxD,MAAMI,cAAc,GAAGJ,UAAU,CAAC,qBAAqB,CAAC;EACxD;;EAEA,IAAI,CAACC,GAAG,EAAE;IACR,MAAMI,MAAM,GAAG,MAAMlB,SAAS,CAACY,QAAQ,CAACG,MAAM,CAAC;IAC/C,IAAAb,YAAM,EAACgB,MAAM,CAAC,CAACf,EAAE,CAACgB,GAAG,CAACF,cAAc,CAAC;IACrC;EACF;EAEA,MAAMjB,SAAS,CAACc,GAAG,CAACC,MAAM,CAAC;EAC3B,IAAAb,YAAM,EAACa,MAAM,CAAC,CAACZ,EAAE,CAACgB,GAAG,CAACF,cAAc,CAAC;AACvC","ignoreList":[]}
@@ -1,51 +0,0 @@
1
- "use strict";
2
-
3
- var _chai = require("chai");
4
- var _marcRecord = require("@natlibfi/marc-record");
5
- var _fixRelatorTerms = _interopRequireDefault(require("./fixRelatorTerms"));
6
- var _fixura = require("@natlibfi/fixura");
7
- var _fixugen = _interopRequireDefault(require("@natlibfi/fixugen"));
8
- var _debug = _interopRequireDefault(require("debug"));
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- (0, _fixugen.default)({
11
- callback,
12
- path: [__dirname, '..', 'test-fixtures', 'fix-relator-terms'],
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/fixRelatorTerms:test');
23
- async function testValidatorFactory() {
24
- const validator = await (0, _fixRelatorTerms.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, _fixRelatorTerms.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=fixRelatorTerms.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fixRelatorTerms.spec.js","names":["_chai","require","_marcRecord","_fixRelatorTerms","_interopRequireDefault","_fixura","_fixugen","_debug","e","__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/fixRelatorTerms.spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from './fixRelatorTerms';\nimport {READERS} from '@natlibfi/fixura';\nimport generateTests from '@natlibfi/fixugen';\nimport createDebugLogger from 'debug';\n\ngenerateTests({\n callback,\n path: [__dirname, '..', 'test-fixtures', 'fix-relator-terms'],\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/fixRelatorTerms: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,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtC,IAAAG,gBAAa,EAAC;EACZC,QAAQ;EACRC,IAAI,EAAE,CAACC,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,mBAAmB,CAAC;EAC7DC,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,+DAA+D,CAAC;AAEhG,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","ignoreList":[]}
@@ -1,140 +0,0 @@
1
- "use strict";
2
-
3
- var _chai = _interopRequireDefault(require("chai"));
4
- var _chaiAsPromised = _interopRequireDefault(require("chai-as-promised"));
5
- var _marcRecord = require("@natlibfi/marc-record");
6
- var _fixedFields = _interopRequireDefault(require("../src/fixed-fields"));
7
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
- const {
9
- expect
10
- } = _chai.default;
11
- _chai.default.use(_chaiAsPromised.default);
12
- describe('fixed-fields: language', () => {
13
- it('Creates a validator', async () => {
14
- const validator = await (0, _fixedFields.default)([]);
15
- expect(validator).to.be.an('object').that.has.any.keys('description', 'validate');
16
- expect(validator.description).to.be.a('string');
17
- expect(validator.validate).to.be.a('function');
18
- });
19
- it('Throws an error when configuration is not provided', () => {
20
- try {
21
- (0, _fixedFields.default)();
22
- } catch (error) {
23
- expect(error).to.be.an('error').with.property('message', 'No configuration provided');
24
- }
25
- });
26
- describe('#validate', () => {
27
- it('Finds the record valid', async () => {
28
- const validator = await (0, _fixedFields.default)([{
29
- leader: true,
30
- length: 6,
31
- rules: [{
32
- position: [0, 6],
33
- pattern: /[abcdefg]/u
34
- }]
35
- }, {
36
- tag: /^FOO$/u,
37
- length: 12,
38
- rules: [{
39
- position: 0,
40
- pattern: /f/u
41
- }]
42
- }, {
43
- tag: /^BAR$/u,
44
- length: 6,
45
- rules: [{
46
- position: 0,
47
- pattern: /[fb]/u
48
- }, {
49
- position: 1,
50
- pattern: /a/u,
51
- dependencies: [{
52
- position: 0,
53
- pattern: /b/u
54
- }]
55
- }, {
56
- position: [2, 3],
57
- pattern: /u/u,
58
- dependencies: [{
59
- position: 0,
60
- pattern: /[^b]/u
61
- }]
62
- }]
63
- }]);
64
- const record = new _marcRecord.MarcRecord({
65
- leader: 'bacgfe',
66
- fields: [{
67
- tag: 'FOO',
68
- value: 'foobarfoobar'
69
- }, {
70
- tag: 'BAR',
71
- value: 'bauuoo'
72
- }]
73
- });
74
- const result = await validator.validate(record);
75
- expect(result).to.be.an('object').and.to.include({
76
- valid: true
77
- });
78
- });
79
- it('Finds the record invalid', async () => {
80
- const validator = await (0, _fixedFields.default)([{
81
- leader: true,
82
- length: 6,
83
- rules: [{
84
- position: [0, 6],
85
- pattern: /[abcdefg]/u
86
- }]
87
- }, {
88
- tag: /^FOO$/u,
89
- length: 12,
90
- rules: [{
91
- position: 0,
92
- pattern: /f/u
93
- }]
94
- }, {
95
- tag: /^BAR$/u,
96
- length: 6,
97
- rules: [{
98
- position: 0,
99
- pattern: /[fb]/u
100
- }, {
101
- position: 1,
102
- pattern: /a/u,
103
- dependencies: [{
104
- position: 0,
105
- pattern: /b/u
106
- }]
107
- }, {
108
- position: [2, 3],
109
- pattern: /u/u,
110
- dependencies: [{
111
- position: 0,
112
- pattern: /[^a]/u
113
- }]
114
- }]
115
- }, {
116
- tag: /^FUB$/u,
117
- length: 5
118
- }]);
119
- const record = new _marcRecord.MarcRecord({
120
- leader: 'bacxfe',
121
- fields: [{
122
- tag: 'FOO',
123
- value: 'barfoofoobar'
124
- }, {
125
- tag: 'BAR',
126
- value: 'burfoo'
127
- }, {
128
- tag: 'FUB',
129
- value: 'foo'
130
- }]
131
- });
132
- const result = await validator.validate(record);
133
- expect(result).to.eql({
134
- valid: false,
135
- messages: ['Leader has invalid values at positions: 3 (Rule index 0)', 'Field FOO has invalid values at positions: 0 (Rule index 0)', 'Field BAR has invalid values at positions: 1 (Rule index 1)', 'Field BAR has invalid values at positions: 2,3 (Rule index 2)', 'Field FUB has invalid length']
136
- });
137
- });
138
- });
139
- });
140
- //# sourceMappingURL=fixed-fields.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fixed-fields.spec.js","names":["_chai","_interopRequireDefault","require","_chaiAsPromised","_marcRecord","_fixedFields","e","__esModule","default","expect","chai","use","chaiAsPromised","describe","it","validator","validatorFactory","to","be","an","that","has","any","keys","description","a","validate","error","with","property","leader","length","rules","position","pattern","tag","dependencies","record","MarcRecord","fields","value","result","and","include","valid","eql","messages"],"sources":["../src/fixed-fields.spec.js"],"sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/fixed-fields';\n\nconst {expect} = chai;\nchai.use(chaiAsPromised);\n\ndescribe('fixed-fields: language', () => {\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 it('Throws an error when configuration is not provided', () => {\n try {\n validatorFactory();\n } catch (error) {\n expect(error).to.be.an('error').with.property('message', 'No configuration provided');\n }\n });\n\n describe('#validate', () => {\n it('Finds the record valid', async () => {\n const validator = await validatorFactory([\n {leader: true, length: 6, rules: [{position: [0, 6], pattern: /[abcdefg]/u}]},\n {tag: /^FOO$/u, length: 12, rules: [{position: 0, pattern: /f/u}]},\n {tag: /^BAR$/u, length: 6, rules: [\n {position: 0, pattern: /[fb]/u},\n {position: 1, pattern: /a/u, dependencies: [{position: 0, pattern: /b/u}]},\n {position: [2, 3], pattern: /u/u, dependencies: [{position: 0, pattern: /[^b]/u}]}\n ]}\n ]);\n const record = new MarcRecord({\n leader: 'bacgfe',\n fields: [\n {\n tag: 'FOO',\n value: 'foobarfoobar'\n },\n {\n tag: 'BAR',\n value: 'bauuoo'\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.be.an('object').and.to.include({valid: true});\n });\n\n it('Finds the record invalid', async () => {\n const validator = await validatorFactory([\n {leader: true, length: 6, rules: [{position: [0, 6], pattern: /[abcdefg]/u}]},\n {tag: /^FOO$/u, length: 12, rules: [{position: 0, pattern: /f/u}]},\n {tag: /^BAR$/u, length: 6, rules: [\n {position: 0, pattern: /[fb]/u},\n {position: 1, pattern: /a/u, dependencies: [{position: 0, pattern: /b/u}]},\n {position: [2, 3], pattern: /u/u, dependencies: [{position: 0, pattern: /[^a]/u}]}\n ]},\n {tag: /^FUB$/u, length: 5}\n ]);\n const record = new MarcRecord({\n leader: 'bacxfe',\n fields: [\n {\n tag: 'FOO',\n value: 'barfoofoobar'\n },\n {\n tag: 'BAR',\n value: 'burfoo'\n },\n {\n tag: 'FUB',\n value: 'foo'\n }\n ]\n });\n\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: false, messages: [\n 'Leader has invalid values at positions: 3 (Rule index 0)',\n 'Field FOO has invalid values at positions: 0 (Rule index 0)',\n 'Field BAR has invalid values at positions: 1 (Rule index 1)',\n 'Field BAR has invalid values at positions: 2,3 (Rule index 2)',\n 'Field FUB has invalid length'\n ]});\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}