@natlibfi/marc-record-validators-melinda 11.6.7 → 12.0.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.
Files changed (545) hide show
  1. package/.github/workflows/melinda-node-tests.yml +1 -1
  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 +46 -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 +871 -769
  47. package/dist/ending-punctuation-conf.js.map +7 -1
  48. package/dist/ending-punctuation.js +84 -167
  49. package/dist/ending-punctuation.js.map +7 -1
  50. package/dist/ending-punctuation.test.js +2290 -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 +119 -413
  107. package/dist/index.js.map +7 -1
  108. package/dist/indicator-fixes.js +57 -95
  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 +66 -126
  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 +182 -379
  125. package/dist/merge-fields/counterpartField.js.map +7 -1
  126. package/dist/merge-fields/index.js +15 -49
  127. package/dist/merge-fields/index.js.map +7 -1
  128. package/dist/merge-fields/mergableIndicator.js +18 -51
  129. package/dist/merge-fields/mergableIndicator.js.map +7 -1
  130. package/dist/merge-fields/mergableTag.js +78 -30
  131. package/dist/merge-fields/mergableTag.js.map +7 -1
  132. package/dist/merge-fields/mergeConfig.js +66 -171
  133. package/dist/merge-fields/mergeConfig.js.map +7 -1
  134. package/dist/merge-fields/mergeConstraints.js +323 -1214
  135. package/dist/merge-fields/mergeConstraints.js.map +7 -1
  136. package/dist/merge-fields/mergeField.js +47 -111
  137. package/dist/merge-fields/mergeField.js.map +7 -1
  138. package/dist/merge-fields/mergeIndicator.js +64 -118
  139. package/dist/merge-fields/mergeIndicator.js.map +7 -1
  140. package/dist/merge-fields/mergeOrAddPostprocess.js +14 -38
  141. package/dist/merge-fields/mergeOrAddPostprocess.js.map +7 -1
  142. package/dist/merge-fields/mergeOrAddSubfield.js +62 -104
  143. package/dist/merge-fields/mergeOrAddSubfield.js.map +7 -1
  144. package/dist/merge-fields/mergeSubfield.js +47 -95
  145. package/dist/merge-fields/mergeSubfield.js.map +7 -1
  146. package/dist/merge-fields/removeDuplicateSubfields.js +18 -31
  147. package/dist/merge-fields/removeDuplicateSubfields.js.map +7 -1
  148. package/dist/merge-fields/worldKnowledge.js +15 -40
  149. package/dist/merge-fields/worldKnowledge.js.map +7 -1
  150. package/dist/merge-fields.test.js +44 -0
  151. package/dist/merge-fields.test.js.map +7 -0
  152. package/dist/mergeField500Lisapainokset.js +28 -57
  153. package/dist/mergeField500Lisapainokset.js.map +7 -1
  154. package/dist/mergeField500Lisapainokset.test.js +44 -0
  155. package/dist/mergeField500Lisapainokset.test.js.map +7 -0
  156. package/dist/mergeRelatorTermFields.js +33 -69
  157. package/dist/mergeRelatorTermFields.js.map +7 -1
  158. package/dist/mergeRelatorTermFields.test.js +44 -0
  159. package/dist/mergeRelatorTermFields.test.js.map +7 -0
  160. package/dist/modernize-502.js +23 -55
  161. package/dist/modernize-502.js.map +7 -1
  162. package/dist/modernize-502.test.js +38 -0
  163. package/dist/modernize-502.test.js.map +7 -0
  164. package/dist/multiple-subfield-0.js +23 -48
  165. package/dist/multiple-subfield-0.js.map +7 -1
  166. package/dist/multiple-subfield-0.test.js +44 -0
  167. package/dist/multiple-subfield-0.test.js.map +7 -0
  168. package/dist/non-breaking-space.js +11 -32
  169. package/dist/non-breaking-space.js.map +7 -1
  170. package/dist/non-breaking-space.test.js +38 -0
  171. package/dist/non-breaking-space.test.js.map +7 -0
  172. package/dist/normalize-dashes.js +18 -37
  173. package/dist/normalize-dashes.js.map +7 -1
  174. package/dist/normalize-dashes.test.js +44 -0
  175. package/dist/normalize-dashes.test.js.map +7 -0
  176. package/dist/normalize-identifiers.js +54 -140
  177. package/dist/normalize-identifiers.js.map +7 -1
  178. package/dist/normalize-identifiers.test.js +44 -0
  179. package/dist/normalize-identifiers.test.js.map +7 -0
  180. package/dist/normalize-qualifying-information.js +23 -48
  181. package/dist/normalize-qualifying-information.js.map +7 -1
  182. package/dist/normalize-qualifying-information.test.js +44 -0
  183. package/dist/normalize-qualifying-information.test.js.map +7 -0
  184. package/dist/normalize-utf8-diacritics.js +19 -105
  185. package/dist/normalize-utf8-diacritics.js.map +7 -1
  186. package/dist/normalize-utf8-diacritics.test.js +44 -0
  187. package/dist/normalize-utf8-diacritics.test.js.map +7 -0
  188. package/dist/normalizeFieldForComparison.js +67 -158
  189. package/dist/normalizeFieldForComparison.js.map +7 -1
  190. package/dist/normalizeSubfieldValueForComparison.js +37 -77
  191. package/dist/normalizeSubfieldValueForComparison.js.map +7 -1
  192. package/dist/prepublicationUtils.js +58 -111
  193. package/dist/prepublicationUtils.js.map +7 -1
  194. package/dist/punctuation/index.js +56 -72
  195. package/dist/punctuation/index.js.map +7 -1
  196. package/dist/punctuation/rules/aut.js +372 -331
  197. package/dist/punctuation/rules/aut.js.map +7 -1
  198. package/dist/punctuation/rules/bib.js +420 -373
  199. package/dist/punctuation/rules/bib.js.map +7 -1
  200. package/dist/punctuation/rules/index.js +7 -21
  201. package/dist/punctuation/rules/index.js.map +7 -1
  202. package/dist/punctuation.test.js +44 -0
  203. package/dist/punctuation.test.js.map +7 -0
  204. package/dist/punctuation2.js +251 -800
  205. package/dist/punctuation2.js.map +7 -1
  206. package/dist/punctuation2.test.js +44 -0
  207. package/dist/punctuation2.test.js.map +7 -0
  208. package/dist/reindexSubfield6OccurenceNumbers.js +61 -96
  209. package/dist/reindexSubfield6OccurenceNumbers.js.map +7 -1
  210. package/dist/reindexSubfield6OccurenceNumbers.test.js +44 -0
  211. package/dist/reindexSubfield6OccurenceNumbers.test.js.map +7 -0
  212. package/dist/removeDuplicateDataFields.js +102 -202
  213. package/dist/removeDuplicateDataFields.js.map +7 -1
  214. package/dist/removeDuplicateDataFields.test.js +44 -0
  215. package/dist/removeDuplicateDataFields.test.js.map +7 -0
  216. package/dist/removeInferiorDataFields.js +103 -227
  217. package/dist/removeInferiorDataFields.js.map +7 -1
  218. package/dist/removeInferiorDataFields.test.js +44 -0
  219. package/dist/removeInferiorDataFields.test.js.map +7 -0
  220. package/dist/resolvable-ext-references-melinda.js +25 -60
  221. package/dist/resolvable-ext-references-melinda.js.map +7 -1
  222. package/dist/resolvable-ext-references-melinda.test.js +160 -0
  223. package/dist/resolvable-ext-references-melinda.test.js.map +7 -0
  224. package/dist/resolveOrphanedSubfield6s.js +33 -64
  225. package/dist/resolveOrphanedSubfield6s.js.map +7 -1
  226. package/dist/resolveOrphanedSubfield6s.test.js +44 -0
  227. package/dist/resolveOrphanedSubfield6s.test.js.map +7 -0
  228. package/dist/sanitize-vocabulary-source-codes.js +27 -55
  229. package/dist/sanitize-vocabulary-source-codes.js.map +7 -1
  230. package/dist/sanitize-vocabulary-source-codes.test.js +45 -0
  231. package/dist/sanitize-vocabulary-source-codes.test.js.map +7 -0
  232. package/dist/sort-tags.js +13 -25
  233. package/dist/sort-tags.js.map +7 -1
  234. package/dist/sort-tags.test.js +261 -0
  235. package/dist/sort-tags.test.js.map +7 -0
  236. package/dist/sortFields.js +152 -222
  237. package/dist/sortFields.js.map +7 -1
  238. package/dist/sortFields.test.js +44 -0
  239. package/dist/sortFields.test.js.map +7 -0
  240. package/dist/sortRelatorTerms.js +30 -68
  241. package/dist/sortRelatorTerms.js.map +7 -1
  242. package/dist/sortRelatorTerms.test.js +44 -0
  243. package/dist/sortRelatorTerms.test.js.map +7 -0
  244. package/dist/sortSubfields.js +102 -255
  245. package/dist/sortSubfields.js.map +7 -1
  246. package/dist/sortSubfields.test.js +44 -0
  247. package/dist/sortSubfields.test.js.map +7 -0
  248. package/dist/stripPunctuation.js +13 -36
  249. package/dist/stripPunctuation.js.map +7 -1
  250. package/dist/stripPunctuation.test.js +44 -0
  251. package/dist/stripPunctuation.test.js.map +7 -0
  252. package/dist/subfield-exclusion.js +28 -75
  253. package/dist/subfield-exclusion.js.map +7 -1
  254. package/dist/subfield-exclusion.test.js +471 -0
  255. package/dist/subfield-exclusion.test.js.map +7 -0
  256. package/dist/subfield6Utils.js +107 -269
  257. package/dist/subfield6Utils.js.map +7 -1
  258. package/dist/subfield8Utils.js +26 -50
  259. package/dist/subfield8Utils.js.map +7 -1
  260. package/dist/subfieldValueNormalizations.js +40 -74
  261. package/dist/subfieldValueNormalizations.js.map +7 -1
  262. package/dist/subfieldValueNormalizations.test.js +45 -0
  263. package/dist/subfieldValueNormalizations.test.js.map +7 -0
  264. package/dist/sync-007-and-300.js +22 -53
  265. package/dist/sync-007-and-300.js.map +7 -1
  266. package/dist/sync-007-and-300.test.js +44 -0
  267. package/dist/sync-007-and-300.test.js.map +7 -0
  268. package/dist/translate-terms.js +67 -155
  269. package/dist/translate-terms.js.map +7 -1
  270. package/dist/translate-terms.test.js +44 -0
  271. package/dist/translate-terms.test.js.map +7 -0
  272. package/dist/typeOfDate-008.js +10 -25
  273. package/dist/typeOfDate-008.js.map +7 -1
  274. package/dist/typeOfDate-008.test.js +40 -0
  275. package/dist/typeOfDate-008.test.js.map +7 -0
  276. package/dist/unicode-decomposition.js +94 -107
  277. package/dist/unicode-decomposition.js.map +7 -1
  278. package/dist/unicode-decomposition.test.js +94 -0
  279. package/dist/unicode-decomposition.test.js.map +7 -0
  280. package/dist/update-field-540.js +30 -75
  281. package/dist/update-field-540.js.map +7 -1
  282. package/dist/update-field-540.test.js +44 -0
  283. package/dist/update-field-540.test.js.map +7 -0
  284. package/dist/urn.js +55 -128
  285. package/dist/urn.js.map +7 -1
  286. package/dist/urn.test.js +44 -0
  287. package/dist/urn.test.js.map +7 -0
  288. package/dist/utils.js +72 -126
  289. package/dist/utils.js.map +7 -1
  290. package/eslint.config.mjs +1 -2
  291. package/package.json +21 -93
  292. package/src/access-rights.js +1 -1
  293. package/src/{access-rights.spec.js → access-rights.test.js} +9 -10
  294. package/src/addMissingField041.js +1 -1
  295. package/src/{addMissingField336.spec.js → addMissingField041.test.js} +13 -14
  296. package/src/addMissingField336.js +3 -3
  297. package/src/{addMissingField041.spec.js → addMissingField336.test.js} +13 -14
  298. package/src/addMissingField337.js +2 -2
  299. package/src/{addMissingField337.spec.js → addMissingField337.test.js} +13 -14
  300. package/src/addMissingField338.js +2 -2
  301. package/src/{addMissingField338.spec.js → addMissingField338.test.js} +13 -14
  302. package/src/cyrillux-usemarcon-replacement.js +18 -18
  303. package/src/cyrillux-usemarcon-replacement.test.js +55 -0
  304. package/src/cyrillux.js +19 -12
  305. package/src/{cyrillux.spec.js → cyrillux.test.js} +13 -14
  306. package/src/disambiguateSeriesStatements.js +2 -2
  307. package/src/{disambiguateSeriesStatements.spec.js → disambiguateSeriesStatements.test.js} +12 -13
  308. package/src/double-commas.js +1 -1
  309. package/src/{double-commas.spec.js → double-commas.test.js} +9 -11
  310. package/src/duplicates-ind1.js +1 -1
  311. package/src/{duplicates-ind1.spec.js → duplicates-ind1.test.js} +12 -13
  312. package/src/{empty-fields.spec.js → empty-fields.test.js} +11 -13
  313. package/src/ending-punctuation.js +1 -1
  314. package/src/{ending-punctuation.spec.js → ending-punctuation.test.js} +172 -173
  315. package/src/{ending-whitespace.spec.js → ending-whitespace.test.js} +12 -13
  316. package/src/field-008-18-34-character-groups.js +2 -2
  317. package/src/{field-008-18-34-character-groups.spec.js → field-008-18-34-character-groups.test.js} +13 -13
  318. package/src/field-505-separators.js +3 -3
  319. package/src/{field-505-separators.spec.js → field-505-separators.test.js} +16 -14
  320. package/src/field-521-fix.js +2 -2
  321. package/src/{field-521-fix.spec.js → field-521-fix.test.js} +12 -13
  322. package/src/field-exclusion.js +1 -1
  323. package/src/{field-exclusion.spec.js → field-exclusion.test.js} +60 -57
  324. package/src/{field-structure.spec.js → field-structure.test.js} +29 -29
  325. package/src/{fields-present.spec.js → fields-present.test.js} +12 -15
  326. package/src/fix-33X.js +4 -4
  327. package/src/{fix-33X.spec.js → fix-33X.test.js} +13 -14
  328. package/src/fix-country-codes.js +1 -1
  329. package/src/{fix-country-codes.spec.js → fix-country-codes.test.js} +12 -13
  330. package/src/fix-language-codes.js +5 -5
  331. package/src/{fix-language-codes.spec.js → fix-language-codes.test.js} +12 -13
  332. package/src/fixRelatorTerms.js +5 -5
  333. package/src/{fixRelatorTerms.spec.js → fixRelatorTerms.test.js} +13 -13
  334. package/src/{fixed-fields.spec.js → fixed-fields.test.js} +11 -14
  335. package/src/identical-fields.js +1 -1
  336. package/src/{identical-fields.spec.js → identical-fields.test.js} +9 -11
  337. package/src/indicator-fixes.js +3 -3
  338. package/src/{indicator-fixes.spec.js → indicator-fixes.test.js} +9 -12
  339. package/src/isbn-issn.js +1 -1
  340. package/src/{isbn-issn.spec.js → isbn-issn.test.js} +20 -22
  341. package/src/{item-language.spec.js → item-language.test.js} +21 -22
  342. package/src/merge-fields/controlSubfields.js +1 -1
  343. package/src/merge-fields/counterpartField.js +8 -9
  344. package/src/merge-fields/index.js +1 -1
  345. package/src/merge-fields/mergableIndicator.js +1 -1
  346. package/src/merge-fields/mergeField.js +6 -6
  347. package/src/merge-fields/mergeIndicator.js +1 -1
  348. package/src/merge-fields/mergeOrAddPostprocess.js +4 -4
  349. package/src/merge-fields/mergeOrAddSubfield.js +2 -2
  350. package/src/merge-fields/mergeSubfield.js +4 -4
  351. package/src/merge-fields/removeDuplicateSubfields.js +2 -2
  352. package/src/{merge-fields.spec.js → merge-fields.test.js} +12 -13
  353. package/src/{mergeField500Lisapainokset.spec.js → mergeField500Lisapainokset.test.js} +12 -13
  354. package/src/mergeRelatorTermFields.js +5 -7
  355. package/src/{mergeRelatorTermFields.spec.js → mergeRelatorTermFields.test.js} +12 -13
  356. package/src/modernize-502.js +1 -1
  357. package/src/{modernize-502.spec.js → modernize-502.test.js} +12 -13
  358. package/src/multiple-subfield-0.js +3 -3
  359. package/src/{multiple-subfield-0.spec.js → multiple-subfield-0.test.js} +13 -13
  360. package/src/{non-breaking-space.spec.js → non-breaking-space.test.js} +12 -13
  361. package/src/normalize-dashes.js +2 -2
  362. package/src/{normalize-dashes.spec.js → normalize-dashes.test.js} +12 -13
  363. package/src/normalize-identifiers.js +1 -1
  364. package/src/{normalize-identifiers.spec.js → normalize-identifiers.test.js} +12 -13
  365. package/src/normalize-qualifying-information.js +2 -2
  366. package/src/{normalize-qualifying-information.spec.js → normalize-qualifying-information.test.js} +12 -13
  367. package/src/normalize-utf8-diacritics.js +2 -2
  368. package/src/{normalize-utf8-diacritics.spec.js → normalize-utf8-diacritics.test.js} +13 -13
  369. package/src/normalizeFieldForComparison.js +6 -6
  370. package/src/normalizeSubfieldValueForComparison.js +1 -1
  371. package/src/prepublicationUtils.js +4 -4
  372. package/src/punctuation/index.js +1 -1
  373. package/src/punctuation/rules/index.js +2 -2
  374. package/src/{punctuation.spec.js → punctuation.test.js} +12 -13
  375. package/src/punctuation2.js +4 -4
  376. package/src/{punctuation2.spec.js → punctuation2.test.js} +12 -13
  377. package/src/reindexSubfield6OccurenceNumbers.js +5 -7
  378. package/src/{reindexSubfield6OccurenceNumbers.spec.js → reindexSubfield6OccurenceNumbers.test.js} +12 -13
  379. package/src/removeDuplicateDataFields.js +11 -19
  380. package/src/{removeDuplicateDataFields.spec.js → removeDuplicateDataFields.test.js} +12 -13
  381. package/src/removeInferiorDataFields.js +11 -11
  382. package/src/{removeInferiorDataFields.spec.js → removeInferiorDataFields.test.js} +13 -13
  383. package/src/resolvable-ext-references-melinda.js +1 -1
  384. package/src/{resolvable-ext-references-melinda.spec.js → resolvable-ext-references-melinda.test.js} +42 -27
  385. package/src/resolveOrphanedSubfield6s.js +5 -5
  386. package/src/{resolveOrphanedSubfield6s.spec.js → resolveOrphanedSubfield6s.test.js} +13 -13
  387. package/src/sanitize-vocabulary-source-codes.js +4 -4
  388. package/src/{sanitize-vocabulary-source-codes.spec.js → sanitize-vocabulary-source-codes.test.js} +16 -14
  389. package/src/{sort-tags.spec.js → sort-tags.test.js} +9 -11
  390. package/src/sortFields.js +4 -4
  391. package/src/{sortFields.spec.js → sortFields.test.js} +12 -13
  392. package/src/sortRelatorTerms.js +3 -3
  393. package/src/{sortRelatorTerms.spec.js → sortRelatorTerms.test.js} +13 -13
  394. package/src/sortSubfields.js +1 -1
  395. package/src/{sortSubfields.spec.js → sortSubfields.test.js} +13 -13
  396. package/src/stripPunctuation.js +3 -3
  397. package/src/{stripPunctuation.spec.js → stripPunctuation.test.js} +13 -13
  398. package/src/subfield-exclusion.js +1 -1
  399. package/src/{subfield-exclusion.spec.js → subfield-exclusion.test.js} +45 -36
  400. package/src/subfield6Utils.js +6 -10
  401. package/src/subfield8Utils.js +4 -4
  402. package/src/subfieldValueNormalizations.js +3 -3
  403. package/src/{subfieldValueNormalizations.spec.js → subfieldValueNormalizations.test.js} +18 -14
  404. package/src/sync-007-and-300.js +2 -2
  405. package/src/{sync-007-and-300.spec.js → sync-007-and-300.test.js} +13 -13
  406. package/src/translate-terms.js +3 -3
  407. package/src/{translate-terms.spec.js → translate-terms.test.js} +13 -13
  408. package/src/{typeOfDate-008.spec.js → typeOfDate-008.test.js} +12 -13
  409. package/src/{unicode-decomposition.spec.js → unicode-decomposition.test.js} +10 -16
  410. package/src/update-field-540.js +2 -2
  411. package/src/{update-field-540.spec.js → update-field-540.test.js} +13 -10
  412. package/src/urn.js +2 -2
  413. package/src/{urn.spec.js → urn.test.js} +12 -13
  414. package/src/utils.js +3 -3
  415. package/test-fixtures/field-505-separators/03/expectedResult.json +3 -1
  416. package/test-fixtures/field-505-separators/03/record.json +3 -0
  417. package/test-fixtures/normalize-subfield-value/01/metadata.json +4 -1
  418. package/test-fixtures/normalize-subfield-value/01/record.json +3 -0
  419. package/test-fixtures/normalize-subfield-value/02/expectedResult.json +3 -1
  420. package/test-fixtures/normalize-subfield-value/02/metadata.json +2 -1
  421. package/test-fixtures/normalize-subfield-value/02/record.json +3 -0
  422. package/test-fixtures/sanitize-vocabulary-source-codes/f03/expectedResult.json +3 -1
  423. package/test-fixtures/sanitize-vocabulary-source-codes/f04/expectedResult.json +3 -1
  424. package/test-fixtures/sanitize-vocabulary-source-codes/v04/metadata.json +1 -4
  425. package/test-fixtures/sanitize-vocabulary-source-codes/v04/record.json +1 -1
  426. package/dist/access-rights.spec.js +0 -195
  427. package/dist/access-rights.spec.js.map +0 -1
  428. package/dist/addMissingField041.spec.js +0 -45
  429. package/dist/addMissingField041.spec.js.map +0 -1
  430. package/dist/addMissingField336.spec.js +0 -45
  431. package/dist/addMissingField336.spec.js.map +0 -1
  432. package/dist/addMissingField337.spec.js +0 -43
  433. package/dist/addMissingField337.spec.js.map +0 -1
  434. package/dist/addMissingField338.spec.js +0 -45
  435. package/dist/addMissingField338.spec.js.map +0 -1
  436. package/dist/cyrillux-usemarcon-replacement.spec.js +0 -45
  437. package/dist/cyrillux-usemarcon-replacement.spec.js.map +0 -1
  438. package/dist/cyrillux.spec.js +0 -46
  439. package/dist/cyrillux.spec.js.map +0 -1
  440. package/dist/disambiguateSeriesStatements.spec.js +0 -51
  441. package/dist/disambiguateSeriesStatements.spec.js.map +0 -1
  442. package/dist/double-commas.spec.js +0 -73
  443. package/dist/double-commas.spec.js.map +0 -1
  444. package/dist/duplicates-ind1.spec.js +0 -45
  445. package/dist/duplicates-ind1.spec.js.map +0 -1
  446. package/dist/empty-fields.spec.js +0 -118
  447. package/dist/empty-fields.spec.js.map +0 -1
  448. package/dist/ending-punctuation.spec.js +0 -2654
  449. package/dist/ending-punctuation.spec.js.map +0 -1
  450. package/dist/ending-whitespace.spec.js +0 -42
  451. package/dist/ending-whitespace.spec.js.map +0 -1
  452. package/dist/field-008-18-34-character-groups.spec.js +0 -51
  453. package/dist/field-008-18-34-character-groups.spec.js.map +0 -1
  454. package/dist/field-505-separators.spec.js +0 -51
  455. package/dist/field-505-separators.spec.js.map +0 -1
  456. package/dist/field-521-fix.spec.js +0 -51
  457. package/dist/field-521-fix.spec.js.map +0 -1
  458. package/dist/field-exclusion.spec.js +0 -1054
  459. package/dist/field-exclusion.spec.js.map +0 -1
  460. package/dist/field-structure.spec.js +0 -535
  461. package/dist/field-structure.spec.js.map +0 -1
  462. package/dist/fields-present.spec.js +0 -121
  463. package/dist/fields-present.spec.js.map +0 -1
  464. package/dist/fix-33X.spec.js +0 -45
  465. package/dist/fix-33X.spec.js.map +0 -1
  466. package/dist/fix-country-codes.spec.js +0 -51
  467. package/dist/fix-country-codes.spec.js.map +0 -1
  468. package/dist/fix-language-codes.spec.js +0 -44
  469. package/dist/fix-language-codes.spec.js.map +0 -1
  470. package/dist/fixRelatorTerms.spec.js +0 -51
  471. package/dist/fixRelatorTerms.spec.js.map +0 -1
  472. package/dist/fixed-fields.spec.js +0 -140
  473. package/dist/fixed-fields.spec.js.map +0 -1
  474. package/dist/identical-fields.spec.js +0 -99
  475. package/dist/identical-fields.spec.js.map +0 -1
  476. package/dist/indicator-fixes.spec.js +0 -51
  477. package/dist/indicator-fixes.spec.js.map +0 -1
  478. package/dist/isbn-issn.spec.js +0 -595
  479. package/dist/isbn-issn.spec.js.map +0 -1
  480. package/dist/item-language.spec.js +0 -306
  481. package/dist/item-language.spec.js.map +0 -1
  482. package/dist/melindaCustomMergeFields.json +0 -5120
  483. package/dist/merge-fields.spec.js +0 -51
  484. package/dist/merge-fields.spec.js.map +0 -1
  485. package/dist/mergeField500Lisapainokset.spec.js +0 -51
  486. package/dist/mergeField500Lisapainokset.spec.js.map +0 -1
  487. package/dist/mergeRelatorTermFields.spec.js +0 -51
  488. package/dist/mergeRelatorTermFields.spec.js.map +0 -1
  489. package/dist/modernize-502.spec.js +0 -49
  490. package/dist/modernize-502.spec.js.map +0 -1
  491. package/dist/multiple-subfield-0.spec.js +0 -51
  492. package/dist/multiple-subfield-0.spec.js.map +0 -1
  493. package/dist/non-breaking-space.spec.js +0 -42
  494. package/dist/non-breaking-space.spec.js.map +0 -1
  495. package/dist/normalize-dashes.spec.js +0 -51
  496. package/dist/normalize-dashes.spec.js.map +0 -1
  497. package/dist/normalize-identifiers.spec.js +0 -51
  498. package/dist/normalize-identifiers.spec.js.map +0 -1
  499. package/dist/normalize-qualifying-information.spec.js +0 -51
  500. package/dist/normalize-qualifying-information.spec.js.map +0 -1
  501. package/dist/normalize-utf8-diacritics.spec.js +0 -51
  502. package/dist/normalize-utf8-diacritics.spec.js.map +0 -1
  503. package/dist/punctuation.spec.js +0 -51
  504. package/dist/punctuation.spec.js.map +0 -1
  505. package/dist/punctuation2.spec.js +0 -51
  506. package/dist/punctuation2.spec.js.map +0 -1
  507. package/dist/reindexSubfield6OccurenceNumbers.spec.js +0 -51
  508. package/dist/reindexSubfield6OccurenceNumbers.spec.js.map +0 -1
  509. package/dist/removeDuplicateDataFields.spec.js +0 -51
  510. package/dist/removeDuplicateDataFields.spec.js.map +0 -1
  511. package/dist/removeInferiorDataFields.spec.js +0 -51
  512. package/dist/removeInferiorDataFields.spec.js.map +0 -1
  513. package/dist/resolvable-ext-references-melinda.spec.js +0 -166
  514. package/dist/resolvable-ext-references-melinda.spec.js.map +0 -1
  515. package/dist/resolveOrphanedSubfield6s.spec.js +0 -51
  516. package/dist/resolveOrphanedSubfield6s.spec.js.map +0 -1
  517. package/dist/sanitize-vocabulary-source-codes.spec.js +0 -51
  518. package/dist/sanitize-vocabulary-source-codes.spec.js.map +0 -1
  519. package/dist/sort-tags.spec.js +0 -207
  520. package/dist/sort-tags.spec.js.map +0 -1
  521. package/dist/sortFields.spec.js +0 -51
  522. package/dist/sortFields.spec.js.map +0 -1
  523. package/dist/sortRelatorTerms.spec.js +0 -51
  524. package/dist/sortRelatorTerms.spec.js.map +0 -1
  525. package/dist/sortSubfields.spec.js +0 -52
  526. package/dist/sortSubfields.spec.js.map +0 -1
  527. package/dist/stripPunctuation.spec.js +0 -51
  528. package/dist/stripPunctuation.spec.js.map +0 -1
  529. package/dist/subfield-exclusion.spec.js +0 -523
  530. package/dist/subfield-exclusion.spec.js.map +0 -1
  531. package/dist/subfieldValueNormalizations.spec.js +0 -51
  532. package/dist/subfieldValueNormalizations.spec.js.map +0 -1
  533. package/dist/sync-007-and-300.spec.js +0 -51
  534. package/dist/sync-007-and-300.spec.js.map +0 -1
  535. package/dist/translate-terms.spec.js +0 -51
  536. package/dist/translate-terms.spec.js.map +0 -1
  537. package/dist/typeOfDate-008.spec.js +0 -47
  538. package/dist/typeOfDate-008.spec.js.map +0 -1
  539. package/dist/unicode-decomposition.spec.js +0 -91
  540. package/dist/unicode-decomposition.spec.js.map +0 -1
  541. package/dist/update-field-540.spec.js +0 -51
  542. package/dist/update-field-540.spec.js.map +0 -1
  543. package/dist/urn.spec.js +0 -52
  544. package/dist/urn.spec.js.map +0 -1
  545. package/src/cyrillux-usemarcon-replacement.spec.js +0 -47
@@ -1,7 +1,7 @@
1
- import {expect} from 'chai';
2
- //import chaiAsPromised from 'chai-as-promised';
1
+ import assert from 'node:assert';
3
2
  import {MarcRecord} from '@natlibfi/marc-record';
4
- import validatorFactory from '../src/subfield-exclusion';
3
+ import validatorFactory from '../src/subfield-exclusion.js';
4
+ import {describe, it} from 'node:test';
5
5
 
6
6
  //chai.use(chaiAsPromised);
7
7
 
@@ -17,12 +17,9 @@ describe('subfield-exclusion', () => {
17
17
  ];
18
18
 
19
19
  const validator = await validatorFactory(config);
20
- expect(validator)
21
- .to.be.an('object')
22
- .that.has.any.keys('description', 'validate');
23
-
24
- expect(validator.description).to.be.a('string');
25
- expect(validator.validate).to.be.a('function');
20
+ assert.equal(typeof validator, 'object');
21
+ assert.equal(typeof validator.description, 'string');
22
+ assert.equal(typeof validator.validate, 'function');
26
23
  });
27
24
 
28
25
  it('Creates a validator from complex config', async () => {
@@ -40,12 +37,9 @@ describe('subfield-exclusion', () => {
40
37
  ];
41
38
 
42
39
  const validator = await validatorFactory(config);
43
- expect(validator)
44
- .to.be.an('object')
45
- .that.has.any.keys('description', 'validate');
46
-
47
- expect(validator.description).to.be.a('string');
48
- expect(validator.validate).to.be.a('function');
40
+ assert.equal(typeof validator, 'object');
41
+ assert.equal(typeof validator.description, 'string');
42
+ assert.equal(typeof validator.validate, 'function');
49
43
  });
50
44
 
51
45
  it('Fails to create a validator from invalid config - subfields missing', () => {
@@ -58,7 +52,8 @@ describe('subfield-exclusion', () => {
58
52
  try {
59
53
  validatorFactory(config);
60
54
  } catch (error) {
61
- expect(error).to.be.an('error').with.property('message', 'Configuration not valid - missing mandatory element: subfields');
55
+ assert.equal(error instanceof Error, true);
56
+ assert.equal(error.message, 'Configuration not valid - missing mandatory element: subfields');
62
57
  }
63
58
  });
64
59
 
@@ -73,7 +68,8 @@ describe('subfield-exclusion', () => {
73
68
  try {
74
69
  validatorFactory(config);
75
70
  } catch (error) {
76
- expect(error).to.be.an('error').with.property('message', 'Configuration not valid - invalid data type for: tag');
71
+ assert.equal(error instanceof Error, true);
72
+ assert.equal(error.message, 'Configuration not valid - invalid data type for: tag');
77
73
  }
78
74
  });
79
75
 
@@ -86,7 +82,8 @@ describe('subfield-exclusion', () => {
86
82
  try {
87
83
  validatorFactory(config);
88
84
  } catch (error) {
89
- expect(error).to.be.an('error').with.property('message', 'Configuration array not provided');
85
+ assert.equal(error instanceof Error, true);
86
+ assert.equal(error.message, 'Configuration array not provided');
90
87
  }
91
88
  });
92
89
 
@@ -101,7 +98,8 @@ describe('subfield-exclusion', () => {
101
98
  try {
102
99
  validatorFactory(config);
103
100
  } catch (error) {
104
- expect(error).to.be.an('error').with.property('message', 'Configuration not valid - invalid data type for: code');
101
+ assert.equal(error instanceof Error, true);
102
+ assert.equal(error.message, 'Configuration not valid - invalid data type for: code');
105
103
  }
106
104
  });
107
105
 
@@ -116,7 +114,8 @@ describe('subfield-exclusion', () => {
116
114
  try {
117
115
  validatorFactory(config);
118
116
  } catch (error) {
119
- expect(error).to.be.an('error').with.property('message', 'Configuration not valid - invalid data type for: value');
117
+ assert.equal(error instanceof Error, true);
118
+ assert.equal(error.message, 'Configuration not valid - invalid data type for: value');
120
119
  }
121
120
  });
122
121
 
@@ -132,7 +131,8 @@ describe('subfield-exclusion', () => {
132
131
  try {
133
132
  validatorFactory(config);
134
133
  } catch (error) {
135
- expect(error).to.be.an('error').with.property('message', 'Configuration not valid - missing mandatory element: tag');
134
+ assert.equal(error instanceof Error, true);
135
+ assert.equal(error.message, 'Configuration not valid - missing mandatory element: tag');
136
136
  }
137
137
  });
138
138
 
@@ -150,7 +150,8 @@ describe('subfield-exclusion', () => {
150
150
  try {
151
151
  validatorFactory(config);
152
152
  } catch (error) {
153
- expect(error).to.be.an('error').with.property('message', 'Configuration not valid - subfield: /9/,/^(?!FENNI<KEEP>).*$/ not object');
153
+ assert.equal(error instanceof Error, true);
154
+ assert.equal(error.message, 'Configuration not valid - subfield: /9/,/^(?!FENNI<KEEP>).*$/ not object');
154
155
  }
155
156
  });
156
157
 
@@ -169,7 +170,8 @@ describe('subfield-exclusion', () => {
169
170
  try {
170
171
  validatorFactory(config);
171
172
  } catch (error) {
172
- expect(error).to.be.an('error').with.property('message', 'Configuration not valid - subfield: /9/ not object');
173
+ assert.equal(error instanceof Error, true);
174
+ assert.equal(error.message, 'Configuration not valid - subfield: /9/ not object');
173
175
  }
174
176
  });
175
177
 
@@ -187,7 +189,8 @@ describe('subfield-exclusion', () => {
187
189
  try {
188
190
  validatorFactory(config);
189
191
  } catch (error) {
190
- expect(error).to.be.an('error').with.property('message', 'Configuration not valid - missing mandatory element: code');
192
+ assert.equal(error instanceof Error, true);
193
+ assert.equal(error.message, 'Configuration not valid - missing mandatory element: code');
191
194
  }
192
195
  });
193
196
 
@@ -206,7 +209,9 @@ describe('subfield-exclusion', () => {
206
209
  try {
207
210
  validatorFactory(config);
208
211
  } catch (error) {
209
- expect(error).to.be.an('error').with.property('message', 'Configuration not valid - unidentified value: unidentified');
212
+ assert.equal(error instanceof Error, true);
213
+ assert.equal(error.message, 'Configuration not valid - unidentified value: unidentified');
214
+ //assert(error).to.be.an('error').with.property('message', 'Configuration not valid - unidentified value: unidentified');
210
215
  }
211
216
  });
212
217
  });
@@ -277,19 +282,20 @@ describe('subfield-exclusion', () => {
277
282
  it('Finds the record valid (spec)', async () => {
278
283
  const validator = await validatorFactory(config);
279
284
  const result = await validator.validate(recordValid);
280
- expect(result).to.eql({valid: true, message: []});
285
+ assert.deepEqual(result, {valid: true, message: []});
281
286
  });
282
287
 
283
288
  it('Finds the record invalid (spec)', async () => {
284
289
  const validator = await validatorFactory(config);
285
290
  const result = await validator.validate(recordInvalid);
286
- expect(result).to.eql({valid: false, message: ['Subfield $100$$4should be excluded']});
291
+ assert.deepEqual(result, {valid: false, message: ['Subfield $100$$4should be excluded']});
287
292
  });
288
293
 
289
294
  it('Repairs invalid record', async () => {
290
295
  const validator = await validatorFactory(config);
291
296
  await validator.fix(recordInvalid);
292
- expect(recordInvalid.equalsTo(recordInvalidFixed)).to.eql(true);
297
+ //assert(recordInvalid.equalsTo(recordInvalidFixed)).to.eql(true);
298
+ assert(recordInvalid.equalsTo(recordInvalidFixed), true);
293
299
  });
294
300
  });
295
301
 
@@ -334,13 +340,14 @@ describe('subfield-exclusion', () => {
334
340
  it('Finds the record with 041$a zxx invalid (spec)', async () => {
335
341
  const validator = await validatorFactory(config);
336
342
  const result = await validator.validate(recordOriginal);
337
- expect(result).to.eql({valid: false, message: ['Subfield $041$$ashould be excluded']});
343
+ assert.deepEqual(result, {valid: false, message: ['Subfield $041$$ashould be excluded']});
338
344
  });
339
345
 
340
346
  it('Repairs invalid record', async () => {
341
347
  const validator = await validatorFactory(config);
342
348
  await validator.fix(recordOriginal);
343
- expect(recordOriginal.equalsTo(recordModified)).to.eql(true);
349
+ //assert(recordOriginal.equalsTo(recordModified)).to.eql(true);
350
+ assert.equal(recordOriginal.equalsTo(recordModified), true);
344
351
  });
345
352
  });
346
353
 
@@ -411,19 +418,20 @@ describe('subfield-exclusion', () => {
411
418
  it('Finds the record valid (spec)', async () => {
412
419
  const validator = await validatorFactory(config);
413
420
  const result = await validator.validate(recordValid);
414
- expect(result).to.eql({valid: true, message: []});
421
+ assert.deepEqual(result, {valid: true, message: []});
415
422
  });
416
423
 
417
424
  it('Finds the record invalid (spec)', async () => {
418
425
  const validator = await validatorFactory(config);
419
426
  const result = await validator.validate(recordInvalid);
420
- expect(result).to.eql({valid: false, message: ['Subfield $210$$2should be excluded']});
427
+ assert.deepEqual(result, {valid: false, message: ['Subfield $210$$2should be excluded']});
421
428
  });
422
429
 
423
430
  it('Repairs invalid record', async () => {
424
431
  const validator = await validatorFactory(config);
425
432
  await validator.fix(recordInvalid);
426
- expect(recordInvalid.equalsTo(recordInvalidFixed)).to.eql(true);
433
+ // assert(recordInvalid.equalsTo(recordInvalidFixed)).to.eql(true);
434
+ assert.equal(recordInvalid.equalsTo(recordInvalidFixed), true);
427
435
  });
428
436
  });
429
437
 
@@ -496,19 +504,20 @@ describe('subfield-exclusion', () => {
496
504
  it('Finds the record valid - Ind1&Ind2', async () => {
497
505
  const validator = await validatorFactory(configInd);
498
506
  const result = await validator.validate(recordValid);
499
- expect(result).to.eql({valid: true, message: []});
507
+ assert.deepEqual(result, {valid: true, message: []});
500
508
  });
501
509
 
502
510
  it('Finds the record invalid - Ind', async () => {
503
511
  const validator = await validatorFactory(configInd);
504
512
  const result = await validator.validate(recordIndInvalid);
505
- expect(result).to.eql({valid: false, message: ['Subfield $500$$2should be excluded']});
513
+ assert.deepEqual(result, {valid: false, message: ['Subfield $500$$2should be excluded']});
506
514
  });
507
515
 
508
516
  it('Repairs invalid record', async () => {
509
517
  const validator = await validatorFactory(configInd);
510
518
  await validator.fix(recordIndInvalid);
511
- expect(recordIndInvalid.equalsTo(recordIndInvalidFixed)).to.eql(true);
519
+ // assert(recordIndInvalid.equalsTo(recordIndInvalidFixed)).to.eql(true);
520
+ assert.equal(recordIndInvalid.equalsTo(recordIndInvalidFixed), true);
512
521
  });
513
522
  });
514
523
  });
@@ -1,8 +1,8 @@
1
1
  import createDebugLogger from 'debug';
2
2
  // const debug = createDebugLogger('@natlibfi/marc-record-validator-melinda/subfield6Utils');
3
3
 
4
- import {add8s, fieldsGetAllSubfield8LinkingNumbers, getSubfield8LinkingNumber, isValidSubfield8} from './subfield8Utils';
5
- import {fieldHasSubfield, fieldToString, fieldsToString, nvdebug, subfieldToString} from './utils';
4
+ import {add8s, fieldsGetAllSubfield8LinkingNumbers, getSubfield8LinkingNumber, isValidSubfield8} from './subfield8Utils.js';
5
+ import {fieldHasSubfield, fieldToString, fieldsToString, nvdebug, subfieldToString} from './utils.js';
6
6
 
7
7
  const debug = createDebugLogger('@natlibfi/melinda-marc-record-merge-reducers:subfield6Utils');
8
8
  //const debugData = debug.extend('data');
@@ -99,7 +99,7 @@ export function fieldHasOccurrenceNumber(field, occurrenceNumber) {
99
99
  }
100
100
 
101
101
  export function fieldResetOccurrenceNumber(field, newOccurrenceNumber, oldOccurrenceNumber = undefined) {
102
- field.subfields.forEach(subfield => innerReset(subfield)); // eslint-disable-line array-callback-return
102
+ field.subfields.forEach(subfield => innerReset(subfield));
103
103
 
104
104
  function innerReset(subfield) {
105
105
  // (Optional) Check that this is really the occurrence number we wan't to reseot
@@ -210,7 +210,7 @@ export function fieldSevenToOneOccurrenceNumber(field) {
210
210
  if (field.tag !== '880') {
211
211
  return;
212
212
  }
213
- field.subfields.forEach(sf => subfieldSevenToOneOccurrenceNumber(sf)); // eslint-disable-line array-callback-return
213
+ field.subfields.forEach(sf => subfieldSevenToOneOccurrenceNumber(sf));
214
214
  }
215
215
 
216
216
 
@@ -223,12 +223,11 @@ export function fieldGetOccurrenceNumberPairs(field, candFields) {
223
223
  return pairs;
224
224
  }
225
225
  nvdebug(`${pairs.length} PAIR(S) FOUND FOR '${fieldToString(field)}'`);
226
- pairs.forEach(pairedField => nvdebug(` '${fieldToString(pairedField)}'`)); // eslint-disable-line array-callback-return
226
+ pairs.forEach(pairedField => nvdebug(` '${fieldToString(pairedField)}'`));
227
227
  return pairs;
228
228
  }
229
229
 
230
230
  export function fieldGetOccurrenceNumbers(field) {
231
- /* eslint-disable */
232
231
  let occurrenceNumbers = [];
233
232
  field.subfields?.forEach(sf => subfieldExtractOccurrenceNumber(sf));
234
233
 
@@ -242,12 +241,10 @@ export function fieldGetOccurrenceNumbers(field) {
242
241
  }
243
242
  occurrenceNumbers.push(occurrenceNumber);
244
243
  }
245
- /* eslint-enable */
246
244
  return occurrenceNumbers;
247
245
  }
248
246
 
249
247
  export function fieldsGetOccurrenceNumbers(fields) {
250
- /* eslint-disable */
251
248
  let occurrenceNumbers = [];
252
249
 
253
250
  fields.forEach(f => fieldProcessOccurrenceNumbers(f));
@@ -261,7 +258,6 @@ export function fieldsGetOccurrenceNumbers(fields) {
261
258
 
262
259
  });
263
260
  }
264
- /* eslint-enable */
265
261
  return occurrenceNumbers;
266
262
  }
267
263
 
@@ -482,7 +478,7 @@ export function get6s(field, candidateFields) { // NB! Convert field to fields!!
482
478
 
483
479
  const relevantFields = candidateFields.filter(f => occurrenceNumbers.some(o => fieldHasOccurrenceNumber(f, o)));
484
480
  nvdebug(`${fieldToString(field)}: $6-RELFIELDS FOUND: ${relevantFields.length}...`);
485
- relevantFields.forEach(f => nvdebug(fieldToString(f))); // eslint-disable-line array-callback-return
481
+ relevantFields.forEach(f => nvdebug(fieldToString(f)));
486
482
  return relevantFields;
487
483
  }
488
484
 
@@ -1,7 +1,7 @@
1
1
  // import createDebugLogger from 'debug';
2
2
  // const debug = createDebugLogger('@natlibfi/marc-record-validator-melinda/subfield8Utils');
3
3
 
4
- import {fieldToString, nvdebug} from './utils';
4
+ import {fieldToString, nvdebug} from './utils.js';
5
5
 
6
6
  const sf8Regexp = /^([1-9][0-9]*)(?:\.[0-9]+)?(?:\\[acprux])?$/u;
7
7
 
@@ -77,9 +77,9 @@ export function add8s(fields, record) {
77
77
  }
78
78
 
79
79
  nvdebug(`Linking number(s): ${linkingNumbers.join(', ')}`);
80
- linkingNumbers.forEach(number => collectLinkingNumberFields(number)); // eslint-disable-line array-callback-return
80
+ linkingNumbers.forEach(number => collectLinkingNumberFields(number));
81
81
 
82
- fields.forEach(f => nvdebug(`AFTER ADDING 8s: '${fieldToString(f)}'`)); // eslint-disable-line array-callback-return
82
+ fields.forEach(f => nvdebug(`AFTER ADDING 8s: '${fieldToString(f)}'`));
83
83
 
84
84
  return fields;
85
85
 
@@ -88,7 +88,7 @@ export function add8s(fields, record) {
88
88
  fields = fields.filter(f => !fieldHasLinkingNumber(f, linkingNumber));
89
89
  // Add them and their "sisters" back:
90
90
  const addableFields = record.fields.filter(f => fieldHasLinkingNumber(f, linkingNumber));
91
- addableFields.forEach(f => nvdebug(`(RE-?)ADD ${fieldToString(f)}`)); // eslint-disable-line array-callback-return
91
+ addableFields.forEach(f => nvdebug(`(RE-?)ADD ${fieldToString(f)}`));
92
92
  fields = fields.concat(addableFields);
93
93
 
94
94
  }
@@ -1,8 +1,8 @@
1
1
  //import createDebugLogger from 'debug';
2
2
  import clone from 'clone';
3
- import {fieldHasSubfield, fieldToString, getCatalogingLanguage} from './utils';
4
- import {fieldFixPunctuation} from './punctuation2';
5
- import {fieldGetUnambiguousTag} from './subfield6Utils';
3
+ import {fieldHasSubfield, fieldToString, getCatalogingLanguage} from './utils.js';
4
+ import {fieldFixPunctuation} from './punctuation2.js';
5
+ import {fieldGetUnambiguousTag} from './subfield6Utils.js';
6
6
 
7
7
  // NB! You should probably run punctuation fixes after this validator!
8
8
 
@@ -1,33 +1,33 @@
1
- import {expect} from 'chai';
1
+ import assert from 'node:assert';
2
2
  import {MarcRecord} from '@natlibfi/marc-record';
3
- import validatorFactory from './subfieldValueNormalizations';
3
+ import validatorFactory from './subfieldValueNormalizations.js';
4
4
  import {READERS} from '@natlibfi/fixura';
5
5
  import generateTests from '@natlibfi/fixugen';
6
6
  import createDebugLogger from 'debug';
7
7
 
8
8
  generateTests({
9
9
  callback,
10
- path: [__dirname, '..', 'test-fixtures', 'normalize-subfield-value'],
10
+ path: [import.meta.dirname, '..', 'test-fixtures', 'normalize-subfield-value'],
11
11
  useMetadataFile: true,
12
12
  recurse: false,
13
13
  fixura: {
14
14
  reader: READERS.JSON
15
15
  },
16
- mocha: {
17
- before: () => testValidatorFactory()
16
+ hooks: {
17
+ before: async () => {
18
+ testValidatorFactory();
19
+ }
18
20
  }
19
21
  });
22
+
20
23
  const debug = createDebugLogger('@natlibfi/marc-record-validators-melinda/subfieldValueNormalizations:test');
21
24
 
22
25
  async function testValidatorFactory() {
23
26
  const validator = await validatorFactory();
24
27
 
25
- expect(validator)
26
- .to.be.an('object')
27
- .that.has.any.keys('description', 'validate');
28
-
29
- expect(validator.description).to.be.a('string');
30
- expect(validator.validate).to.be.a('function');
28
+ assert.equal(typeof validator, 'object');
29
+ assert.equal(typeof validator, 'string');
30
+ assert.equal(typeof validator, 'function');
31
31
  }
32
32
 
33
33
  async function callback({getFixture, enabled = true, fix = false}) {
@@ -37,16 +37,20 @@ async function callback({getFixture, enabled = true, fix = false}) {
37
37
  }
38
38
 
39
39
  const validator = await validatorFactory();
40
- const record = new MarcRecord(getFixture('record.json'));
40
+
41
+ const recordFixture = getFixture('record.json');
42
+
43
+ const record = recordFixture._validationOptions ? new MarcRecord(recordFixture, recordFixture._validationOptions) : new MarcRecord(recordFixture);
44
+ //const record = new MarcRecord(recordFixture, {"subfields": false}); // works
41
45
  const expectedResult = getFixture('expectedResult.json');
42
46
  // console.log(expectedResult); // eslint-disable-line
43
47
 
44
48
  if (!fix) {
45
49
  const result = await validator.validate(record);
46
- expect(result).to.eql(expectedResult);
50
+ assert.deepEqual(result, expectedResult);
47
51
  return;
48
52
  }
49
53
 
50
54
  await validator.fix(record);
51
- expect(record).to.eql(expectedResult);
55
+ assert.deepEqual(record, expectedResult);
52
56
  }
@@ -1,5 +1,5 @@
1
1
  //import createDebugLogger from 'debug';
2
- import {fieldToString} from './utils';
2
+ import {fieldToString} from './utils.js';
3
3
  import clone from 'clone';
4
4
 
5
5
  //const debug = createDebugLogger('@natlibfi/marc-record-validators-melinda/sanitize-vocabulary-source-codes);
@@ -14,7 +14,7 @@ export default function () {
14
14
 
15
15
  function fix(record) {
16
16
  const res = {message: [], fix: [], valid: true};
17
- record.fields.forEach(f => fixField(f, record)); // eslint-disable-line array-callback-return
17
+ record.fields.forEach(f => fixField(f, record));
18
18
  return res;
19
19
  }
20
20
 
@@ -1,33 +1,33 @@
1
- import {expect} from 'chai';
1
+ import assert from 'node:assert';
2
2
  import {MarcRecord} from '@natlibfi/marc-record';
3
- import validatorFactory from './sync-007-and-300';
3
+ import validatorFactory from './sync-007-and-300.js';
4
4
  import {READERS} from '@natlibfi/fixura';
5
5
  import generateTests from '@natlibfi/fixugen';
6
6
  import createDebugLogger from 'debug';
7
7
 
8
8
  generateTests({
9
9
  callback,
10
- path: [__dirname, '..', 'test-fixtures', 'sync-007-and-300'],
10
+ path: [import.meta.dirname, '..', 'test-fixtures', 'sync-007-and-300'],
11
11
  useMetadataFile: true,
12
12
  recurse: false,
13
13
  fixura: {
14
14
  reader: READERS.JSON
15
15
  },
16
- mocha: {
17
- before: () => testValidatorFactory()
16
+ hooks: {
17
+ before: async () => {
18
+ testValidatorFactory();
19
+ }
18
20
  }
21
+
19
22
  });
20
23
  const debug = createDebugLogger('@natlibfi/marc-record-validators-melinda/sync-007-and-300:test');
21
24
 
22
25
  async function testValidatorFactory() {
23
26
  const validator = await validatorFactory();
24
27
 
25
- expect(validator)
26
- .to.be.an('object')
27
- .that.has.any.keys('description', 'validate');
28
-
29
- expect(validator.description).to.be.a('string');
30
- expect(validator.validate).to.be.a('function');
28
+ assert.equal(typeof validator, 'object');
29
+ assert.equal(typeof validator.description, 'string');
30
+ assert.equal(typeof validator.validate, 'function');
31
31
  }
32
32
 
33
33
  async function callback({getFixture, enabled = true, fix = false}) {
@@ -43,10 +43,10 @@ async function callback({getFixture, enabled = true, fix = false}) {
43
43
 
44
44
  if (!fix) {
45
45
  const result = await validator.validate(record);
46
- expect(result).to.eql(expectedResult);
46
+ assert.deepEqual(result, expectedResult);
47
47
  return;
48
48
  }
49
49
 
50
50
  await validator.fix(record);
51
- expect(record).to.eql(expectedResult);
51
+ assert.deepEqual(record, expectedResult);
52
52
  }
@@ -1,6 +1,6 @@
1
1
  import clone from 'clone';
2
2
  import createDebugLogger from 'debug';
3
- import {fieldHasSubfield, fieldToString, nvdebug} from './utils';
3
+ import {fieldHasSubfield, fieldToString, nvdebug} from './utils.js';
4
4
 
5
5
 
6
6
  const debug = createDebugLogger('@natlibfi/marc-record-validators-melinda:translate-terms');
@@ -23,9 +23,9 @@ export default function () {
23
23
  async function fix(record) {
24
24
  const newFields = await getFields(record, defaultTags, []);
25
25
 
26
- newFields.forEach(nf => nvdebug(`Add new field '${fieldToString(nf)}'`, debug)); // eslint-disable-line array-callback-return
26
+ newFields.forEach(nf => nvdebug(`Add new field '${fieldToString(nf)}'`, debug));
27
27
 
28
- newFields.forEach(nf => record.insertField(nf)); // eslint-disable-line array-callback-return
28
+ newFields.forEach(nf => record.insertField(nf));
29
29
 
30
30
  const newFieldsAsStrings = newFields.map(f => fieldToString(f));
31
31
 
@@ -1,33 +1,33 @@
1
- import {expect} from 'chai';
1
+ import assert from 'node:assert';
2
2
  import {MarcRecord} from '@natlibfi/marc-record';
3
- import validatorFactory from './translate-terms';
3
+ import validatorFactory from './translate-terms.js';
4
4
  import {READERS} from '@natlibfi/fixura';
5
5
  import generateTests from '@natlibfi/fixugen';
6
6
  import createDebugLogger from 'debug';
7
7
 
8
8
  generateTests({
9
9
  callback,
10
- path: [__dirname, '..', 'test-fixtures', 'translate-terms'],
10
+ path: [import.meta.dirname, '..', 'test-fixtures', 'translate-terms'],
11
11
  useMetadataFile: true,
12
12
  recurse: false,
13
13
  fixura: {
14
14
  reader: READERS.JSON
15
15
  },
16
- mocha: {
17
- before: () => testValidatorFactory()
16
+ hooks: {
17
+ before: async () => {
18
+ testValidatorFactory();
19
+ }
18
20
  }
19
21
  });
22
+
20
23
  const debug = createDebugLogger('@natlibfi/marc-record-validators-melinda/translate-terms:test');
21
24
 
22
25
  async function testValidatorFactory() {
23
26
  const validator = await validatorFactory();
24
27
 
25
- expect(validator)
26
- .to.be.an('object')
27
- .that.has.any.keys('description', 'validate');
28
-
29
- expect(validator.description).to.be.a('string');
30
- expect(validator.validate).to.be.a('function');
28
+ assert.equal(typeof validator, 'object');
29
+ assert.equal(typeof validator.description, 'string');
30
+ assert.equal(typeof validator.validate, 'function');
31
31
  }
32
32
 
33
33
  async function callback({getFixture, enabled = true, fix = false}) {
@@ -43,10 +43,10 @@ async function callback({getFixture, enabled = true, fix = false}) {
43
43
 
44
44
  if (!fix) {
45
45
  const result = await validator.validate(record);
46
- expect(result).to.eql(expectedResult);
46
+ assert.deepEqual(result, expectedResult);
47
47
  return;
48
48
  }
49
49
 
50
50
  await validator.fix(record);
51
- expect(record).to.eql(expectedResult);
51
+ assert.deepEqual(record, expectedResult);
52
52
  }
@@ -1,20 +1,22 @@
1
- import {expect} from 'chai';
1
+ import assert from 'node:assert';
2
2
  import {MarcRecord} from '@natlibfi/marc-record';
3
- import validatorFactory from './typeOfDate-008';
3
+ import validatorFactory from './typeOfDate-008.js';
4
4
  import {READERS} from '@natlibfi/fixura';
5
5
  import generateTests from '@natlibfi/fixugen';
6
6
  import createDebugLogger from 'debug';
7
7
 
8
8
  generateTests({
9
9
  callback,
10
- path: [__dirname, '..', 'test-fixtures', 'typeOfDate-008'],
10
+ path: [import.meta.dirname, '..', 'test-fixtures', 'typeOfDate-008'],
11
11
  useMetadataFile: true,
12
12
  recurse: false,
13
13
  fixura: {
14
14
  reader: READERS.JSON
15
15
  },
16
- mocha: {
17
- before: () => testValidatorFactory()
16
+ hooks: {
17
+ before: async () => {
18
+ testValidatorFactory();
19
+ }
18
20
  }
19
21
  });
20
22
  const debug = createDebugLogger('@natlibfi/marc-record-validators-melinda/typeOfDate-008:test'); // eslint-disable-line
@@ -22,12 +24,9 @@ const debug = createDebugLogger('@natlibfi/marc-record-validators-melinda/typeOf
22
24
  async function testValidatorFactory() {
23
25
  const validator = await validatorFactory();
24
26
 
25
- expect(validator)
26
- .to.be.an('object')
27
- .that.has.any.keys('description', 'validate');
28
-
29
- expect(validator.description).to.be.a('string');
30
- expect(validator.validate).to.be.a('function');
27
+ assert.equal(typeof validator, 'object');
28
+ assert.equal(typeof validator.description, 'string');
29
+ assert.equal(typeof validator.validate, 'function');
31
30
  }
32
31
 
33
32
  async function callback({getFixture, fix = false}) {
@@ -38,10 +37,10 @@ async function callback({getFixture, fix = false}) {
38
37
 
39
38
  if (!fix) {
40
39
  const result = await validator.validate(record);
41
- expect(result).to.eql(expectedResult);
40
+ assert.deepEqual(result, expectedResult);
42
41
  return;
43
42
  }
44
43
 
45
44
  await validator.fix(record);
46
- expect(record).to.eql(expectedResult);
45
+ assert.deepEqual(record, expectedResult);
47
46
  }