@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,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 './modernize-502';
3
+ import validatorFactory from './modernize-502.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', 'modernize-502'],
10
+ path: [import.meta.dirname, '..', 'test-fixtures', 'modernize-502'],
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
 
@@ -23,12 +25,9 @@ generateTests({
23
25
  async function testValidatorFactory() {
24
26
  const validator = await validatorFactory();
25
27
 
26
- expect(validator)
27
- .to.be.an('object')
28
- .that.has.any.keys('description', 'validate');
29
-
30
- expect(validator.description).to.be.a('string');
31
- 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');
32
31
  }
33
32
 
34
33
  async function callback({getFixture, fix = false}) {
@@ -39,10 +38,10 @@ async function callback({getFixture, fix = false}) {
39
38
 
40
39
  if (!fix) {
41
40
  const result = await validator.validate(record);
42
- expect(result).to.eql(expectedResult);
41
+ assert.deepEqual(result, expectedResult);
43
42
  return;
44
43
  }
45
44
 
46
45
  await validator.fix(record);
47
- expect(record).to.eql(expectedResult);
46
+ assert.deepEqual(record, expectedResult);
48
47
  }
@@ -2,7 +2,7 @@
2
2
  // import clone from 'clone';
3
3
  // const debug = createDebugLogger('@natlibfi/marc-record-validators-melinda:multiple-subfield-0');
4
4
 
5
- import {fieldHasSubfield, fieldToString} from './utils';
5
+ import {fieldHasSubfield, fieldToString} from './utils.js';
6
6
 
7
7
  const asteriNamePrefixes = ['(FI-ASTERI-N)', '(FIN11)', 'http://urn.fi/URN:NBN:fi:au:finaf:', 'https://urn.fi/URN:NBN:fi:au:finaf:'];
8
8
 
@@ -16,14 +16,14 @@ export default function () {
16
16
  function fix(record) {
17
17
  function fixField(field) {
18
18
  const removableSubfields = fieldGetDeletableSubfields(field);
19
- removableSubfields.forEach(sf => record.removeSubfield(sf, field)); // eslint-disable-line array-callback-return
19
+ removableSubfields.forEach(sf => record.removeSubfield(sf, field));
20
20
  }
21
21
 
22
22
  const res = {message: [], fix: [], valid: true};
23
23
 
24
24
  const relevantFields = getRelevantFields(record);
25
25
 
26
- relevantFields.forEach(field => fixField(field)); // eslint-disable-line array-callback-return
26
+ relevantFields.forEach(field => fixField(field));
27
27
 
28
28
  // message.valid = !(message.message.length >= 1);
29
29
  return res;
@@ -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 './multiple-subfield-0';
3
+ import validatorFactory from './multiple-subfield-0.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', 'subfield0'],
10
+ path: [import.meta.dirname, '..', 'test-fixtures', 'subfield0'],
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/multiple-subfield-0: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,31 +1,30 @@
1
- import {expect} from 'chai';
1
+ import assert from 'node:assert';
2
2
  import {MarcRecord} from '@natlibfi/marc-record';
3
- import validatorFactory from './non-breaking-space';
3
+ import validatorFactory from './non-breaking-space.js';
4
4
  import {READERS} from '@natlibfi/fixura';
5
5
  import generateTests from '@natlibfi/fixugen';
6
6
 
7
7
  generateTests({
8
8
  callback,
9
- path: [__dirname, '..', 'test-fixtures', 'non-breaking-space'],
9
+ path: [import.meta.dirname, '..', 'test-fixtures', 'non-breaking-space'],
10
10
  useMetadataFile: true,
11
11
  recurse: false,
12
12
  fixura: {
13
13
  reader: READERS.JSON
14
14
  },
15
- mocha: {
16
- before: () => testValidatorFactory()
15
+ hooks: {
16
+ before: async () => {
17
+ testValidatorFactory();
18
+ }
17
19
  }
18
20
  });
19
21
 
20
22
  async function testValidatorFactory() {
21
23
  const validator = await validatorFactory();
22
24
 
23
- expect(validator)
24
- .to.be.an('object')
25
- .that.has.any.keys('description', 'validate');
26
-
27
- expect(validator.description).to.be.a('string');
28
- expect(validator.validate).to.be.a('function');
25
+ assert.equal(validator, 'object');
26
+ assert.equal(validator.description, 'string');
27
+ assert.equal(validator.validate, 'function');
29
28
  }
30
29
 
31
30
  async function callback({getFixture, fix = false}) {
@@ -35,10 +34,10 @@ async function callback({getFixture, fix = false}) {
35
34
 
36
35
  if (!fix) {
37
36
  const result = await validator.validate(record);
38
- expect(result).to.eql(expectedResult);
37
+ assert.deepEqual(result, expectedResult);
39
38
  return;
40
39
  }
41
40
 
42
41
  await validator.fix(record);
43
- expect(record).to.eql(expectedResult);
42
+ assert.deepEqual(record, expectedResult);
44
43
  }
@@ -1,6 +1,6 @@
1
1
  //import createDebugLogger from 'debug';
2
2
  import clone from 'clone';
3
- import {fieldToString, isControlSubfieldCode, nvdebug} from './utils';
3
+ import {fieldToString, isControlSubfieldCode, nvdebug} from './utils.js';
4
4
 
5
5
  // Author(s): Nicholas Volk
6
6
  export default function () {
@@ -54,7 +54,7 @@ function fixDashes(field) {
54
54
 
55
55
  nvdebug(`Dashing ${fieldToString(field)}`);
56
56
 
57
- field.subfields.forEach(sf => subfieldFixDashes(sf)); // eslint-disable-line array-callback-return
57
+ field.subfields.forEach(sf => subfieldFixDashes(sf));
58
58
 
59
59
  return field;
60
60
 
@@ -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 './normalize-dashes';
3
+ import validatorFactory from './normalize-dashes.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-dashes'],
10
+ path: [import.meta.dirname, '..', 'test-fixtures', 'normalize-dashes'],
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/normalize-dashes:test');
@@ -22,12 +24,9 @@ const debug = createDebugLogger('@natlibfi/marc-record-validators-melinda/normal
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, enabled = true, fix = false}) {
@@ -43,10 +42,10 @@ async function callback({getFixture, enabled = true, fix = false}) {
43
42
 
44
43
  if (!fix) {
45
44
  const result = await validator.validate(record);
46
- expect(result).to.eql(expectedResult);
45
+ assert.deepEqual(result, expectedResult);
47
46
  return;
48
47
  }
49
48
 
50
49
  await validator.fix(record);
51
- expect(record).to.eql(expectedResult);
50
+ assert.deepEqual(record, expectedResult);
52
51
  }
@@ -1,7 +1,7 @@
1
1
  // Relocated from melinda-marc-record-merge-reducers (and renamed)
2
2
  //import createDebugLogger from 'debug';
3
3
  import clone from 'clone';
4
- import {fieldToString} from './utils';
4
+ import {fieldToString} from './utils.js';
5
5
  //const debug = createDebugLogger('@natlibfi/marc-record-validators-melinda:normalize-identifiers');
6
6
 
7
7
  /*
@@ -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 './normalize-identifiers';
3
+ import validatorFactory from './normalize-identifiers.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-identifiers'],
10
+ path: [import.meta.dirname, '..', 'test-fixtures', 'normalize-identifiers'],
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/normalize-identifiers:test');
@@ -22,12 +24,9 @@ const debug = createDebugLogger('@natlibfi/marc-record-validators-melinda/normal
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, enabled = true, fix = false}) {
@@ -43,10 +42,10 @@ async function callback({getFixture, enabled = true, fix = false}) {
43
42
 
44
43
  if (!fix) {
45
44
  const result = await validator.validate(record);
46
- expect(result).to.eql(expectedResult);
45
+ assert.deepEqual(result, expectedResult);
47
46
  return;
48
47
  }
49
48
 
50
49
  await validator.fix(record);
51
- expect(record).to.eql(expectedResult);
50
+ assert.deepEqual(record, expectedResult);
52
51
  }
@@ -1,6 +1,6 @@
1
1
  //import createDebugLogger from 'debug';
2
2
  import clone from 'clone';
3
- import {fieldToString} from './utils';
3
+ import {fieldToString} from './utils.js';
4
4
 
5
5
  // Author(s): Nicholas Volk
6
6
  export default function () {
@@ -51,7 +51,7 @@ function normalizeQualifyingInformationField(field) {
51
51
  return;
52
52
  }
53
53
 
54
- field.subfields.forEach(sf => fixSubfield(sf)); // eslint-disable-line array-callback-return
54
+ field.subfields.forEach(sf => fixSubfield(sf));
55
55
  return;
56
56
 
57
57
  function fixSubfield(sf) {
@@ -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 './normalize-qualifying-information';
3
+ import validatorFactory from './normalize-qualifying-information.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-qualifying-information'],
10
+ path: [import.meta.dirname, '..', 'test-fixtures', 'normalize-qualifying-information'],
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/normalize-qualifying-information:test');
@@ -22,12 +24,9 @@ const debug = createDebugLogger('@natlibfi/marc-record-validators-melinda/normal
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, enabled = true, fix = false}) {
@@ -43,10 +42,10 @@ async function callback({getFixture, enabled = true, fix = false}) {
43
42
 
44
43
  if (!fix) {
45
44
  const result = await validator.validate(record);
46
- expect(result).to.eql(expectedResult);
45
+ assert.deepEqual(result, expectedResult);
47
46
  return;
48
47
  }
49
48
 
50
49
  await validator.fix(record);
51
- expect(record).to.eql(expectedResult);
50
+ assert.deepEqual(record, expectedResult);
52
51
  }
@@ -1,7 +1,7 @@
1
1
  //import createDebugLogger from 'debug';
2
2
  import clone from 'clone';
3
- import {convert as nongenericNormalization} from './unicode-decomposition';
4
- import {fieldToString} from './utils';
3
+ import {convert as nongenericNormalization} from './unicode-decomposition.js';
4
+ import {fieldToString} from './utils.js';
5
5
 
6
6
  // Note that https://github.com/NatLibFi/marc-record-validators-melinda/blob/master/src/unicode-decomposition.js contains
7
7
  // similar functionalities. It's less generic and lacks diacritic removal but has it advantages as well.
@@ -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 './normalize-utf8-diacritics';
3
+ import validatorFactory from './normalize-utf8-diacritics.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-utf8-diacritics'],
10
+ path: [import.meta.dirname, '..', 'test-fixtures', 'normalize-utf8-diacritics'],
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/normalize-utf8-diacritics: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
  }
@@ -7,12 +7,12 @@
7
7
  Thus it is here. However, most of the testing is done via merge-reducers...
8
8
  */
9
9
  import clone from 'clone';
10
- import {fieldStripPunctuation} from './punctuation2';
10
+ import {fieldStripPunctuation} from './punctuation2.js';
11
11
  import {fieldToString, isControlSubfieldCode} from './utils.js';
12
12
 
13
- import {fieldNormalizeControlNumbers/*, normalizeControlSubfieldValue*/} from './normalize-identifiers';
13
+ import {fieldNormalizeControlNumbers/*, normalizeControlSubfieldValue*/} from './normalize-identifiers.js';
14
14
  import createDebugLogger from 'debug';
15
- import {normalizePartData, subfieldContainsPartData} from './normalizeSubfieldValueForComparison';
15
+ import {normalizePartData, subfieldContainsPartData} from './normalizeSubfieldValueForComparison.js';
16
16
 
17
17
  const debug = createDebugLogger('@natlibfi/melinda-marc-record-merge-reducers:normalizeFieldForComparison');
18
18
  //const debugData = debug.extend('data');
@@ -124,7 +124,7 @@ function fieldLowercase(field) {
124
124
  return;
125
125
  }
126
126
 
127
- field.subfields.forEach(sf => subfieldLowercase(sf, field.tag)); // eslint-disable-line array-callback-return
127
+ field.subfields.forEach(sf => subfieldLowercase(sf, field.tag));
128
128
 
129
129
  function skipFieldLowercase(field) {
130
130
  if (skipAllFieldNormalizations(field.tag)) {
@@ -144,7 +144,7 @@ function hack490SubfieldA(field) {
144
144
  if (field.tag !== '490') {
145
145
  return;
146
146
  }
147
- field.subfields.forEach(sf => removeSarja(sf)); // eslint-disable-line array-callback-return
147
+ field.subfields.forEach(sf => removeSarja(sf));
148
148
 
149
149
  // NB! This won't work, if the punctuation has not been stripped beforehand!
150
150
  function removeSarja(subfield) {
@@ -185,7 +185,7 @@ function normalizeISBN(field) {
185
185
 
186
186
  //nvdebug(`ISBN-field? ${fieldToString(field)}`);
187
187
  const relevantSubfields = field.subfields.filter(sf => tagAndSubfieldCodeReferToIsbn(field.tag, sf.code) && looksLikeIsbn(sf.value));
188
- relevantSubfields.forEach(sf => normalizeIsbnSubfield(sf)); // eslint-disable-line array-callback-return
188
+ relevantSubfields.forEach(sf => normalizeIsbnSubfield(sf));
189
189
 
190
190
  function normalizeIsbnSubfield(sf) {
191
191
  //nvdebug(` ISBN-subfield? ${subfieldToString(sf)}`);
@@ -1,4 +1,4 @@
1
- import {nvdebug} from './utils';
1
+ import {nvdebug} from './utils.js';
2
2
  import createDebugLogger from 'debug';
3
3
 
4
4
  // Normalizes at least 490$v and 773$g which contain information such as "Raita 5" vs "5", and "Osa 3" vs "Osa III".
@@ -1,4 +1,4 @@
1
- import {fieldHasSubfield, nvdebug, nvdebugFieldArray} from './utils';
1
+ import {fieldHasSubfield, nvdebug, nvdebugFieldArray} from './utils.js';
2
2
  import createDebugLogger from 'debug';
3
3
 
4
4
  const debug = createDebugLogger('@natlibfi/marc-record-validators-melinda:prepublicationUtils');
@@ -178,7 +178,7 @@ export function deleteAllPrepublicationNotesFromField500InNonPubRecord(record) {
178
178
 
179
179
 
180
180
  nvdebug(`Delete all ${f500.length} instance(s) of field 500`, debugDev);
181
- f500.forEach(field => record.removeField(field)); // eslint-disable-line array-callback-return
181
+ f500.forEach(field => record.removeField(field));
182
182
  }
183
183
 
184
184
 
@@ -188,7 +188,7 @@ export function removeWorsePrepubField500s(record) {
188
188
  nvdebugFieldArray(fields, ' Candidates for non-best 500 b4 filtering: ', debugDev);
189
189
  const nonBest = fields.filter(field => fields.some(field2 => firstFieldHasBetterPrepubEncodingLevel(field2, field)));
190
190
  nvdebugFieldArray(nonBest, ' Remove non-best 500: ', debugDev);
191
- nonBest.forEach(field => record.removeField(field)); // eslint-disable-line array-callback-return
191
+ nonBest.forEach(field => record.removeField(field));
192
192
  }
193
193
 
194
194
 
@@ -198,7 +198,7 @@ export function removeWorsePrepubField594s(record) {
198
198
  nvdebugFieldArray(fields594, ' Candidates for non-best 594 b4 filtering: ', debugDev);
199
199
  const nonBest = fields594.filter(field => fields594.some(field2 => firstFieldHasBetterPrepubEncodingLevel(field2, field)));
200
200
  nvdebugFieldArray(nonBest, ' Remove non-best 594: ', debugDev);
201
- nonBest.forEach(field => record.removeField(field)); // eslint-disable-line array-callback-return
201
+ nonBest.forEach(field => record.removeField(field));
202
202
  }
203
203
 
204
204
 
@@ -1,6 +1,6 @@
1
1
  import {MarcRecord} from '@natlibfi/marc-record';
2
2
  import createDebug from 'debug';
3
- import {autRules, bibRules} from './rules';
3
+ import {autRules, bibRules} from './rules/index.js';
4
4
 
5
5
  const debug = createDebug('@natlibfi/marc-record-validator-melinda/punctuation:dev');
6
6
 
@@ -1,5 +1,5 @@
1
- import bibRules from './bib';
2
- import autRules from './aut';
1
+ import bibRules from './bib.js';
2
+ import autRules from './aut.js';
3
3
 
4
4
  export {
5
5
  bibRules,
@@ -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 './punctuation/';
3
+ import validatorFactory from './punctuation/index.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', 'punctuation'],
10
+ path: [import.meta.dirname, '..', 'test-fixtures', 'punctuation'],
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/punctuation:test');
@@ -22,12 +24,9 @@ const debug = createDebugLogger('@natlibfi/marc-record-validators-melinda/punctu
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, enabled = true, fix = false}) {
@@ -43,10 +42,10 @@ async function callback({getFixture, enabled = true, fix = false}) {
43
42
 
44
43
  if (!fix) {
45
44
  const result = await validator.validate(record);
46
- expect(result).to.eql(expectedResult);
45
+ assert.deepEqual(result, expectedResult);
47
46
  return;
48
47
  }
49
48
 
50
49
  await validator.fix(record);
51
- expect(record).to.eql(expectedResult);
50
+ assert.deepEqual(record, expectedResult);
52
51
  }