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

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 (546) 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/index.js +58 -58
  338. package/src/indicator-fixes.js +3 -3
  339. package/src/{indicator-fixes.spec.js → indicator-fixes.test.js} +9 -12
  340. package/src/isbn-issn.js +1 -1
  341. package/src/{isbn-issn.spec.js → isbn-issn.test.js} +20 -22
  342. package/src/{item-language.spec.js → item-language.test.js} +21 -22
  343. package/src/merge-fields/controlSubfields.js +1 -1
  344. package/src/merge-fields/counterpartField.js +8 -9
  345. package/src/merge-fields/index.js +1 -1
  346. package/src/merge-fields/mergableIndicator.js +1 -1
  347. package/src/merge-fields/mergeField.js +6 -6
  348. package/src/merge-fields/mergeIndicator.js +1 -1
  349. package/src/merge-fields/mergeOrAddPostprocess.js +4 -4
  350. package/src/merge-fields/mergeOrAddSubfield.js +2 -2
  351. package/src/merge-fields/mergeSubfield.js +4 -4
  352. package/src/merge-fields/removeDuplicateSubfields.js +2 -2
  353. package/src/{merge-fields.spec.js → merge-fields.test.js} +12 -13
  354. package/src/{mergeField500Lisapainokset.spec.js → mergeField500Lisapainokset.test.js} +12 -13
  355. package/src/mergeRelatorTermFields.js +5 -7
  356. package/src/{mergeRelatorTermFields.spec.js → mergeRelatorTermFields.test.js} +12 -13
  357. package/src/modernize-502.js +1 -1
  358. package/src/{modernize-502.spec.js → modernize-502.test.js} +12 -13
  359. package/src/multiple-subfield-0.js +3 -3
  360. package/src/{multiple-subfield-0.spec.js → multiple-subfield-0.test.js} +13 -13
  361. package/src/{non-breaking-space.spec.js → non-breaking-space.test.js} +12 -13
  362. package/src/normalize-dashes.js +2 -2
  363. package/src/{normalize-dashes.spec.js → normalize-dashes.test.js} +12 -13
  364. package/src/normalize-identifiers.js +1 -1
  365. package/src/{normalize-identifiers.spec.js → normalize-identifiers.test.js} +12 -13
  366. package/src/normalize-qualifying-information.js +2 -2
  367. package/src/{normalize-qualifying-information.spec.js → normalize-qualifying-information.test.js} +12 -13
  368. package/src/normalize-utf8-diacritics.js +2 -2
  369. package/src/{normalize-utf8-diacritics.spec.js → normalize-utf8-diacritics.test.js} +13 -13
  370. package/src/normalizeFieldForComparison.js +6 -6
  371. package/src/normalizeSubfieldValueForComparison.js +1 -1
  372. package/src/prepublicationUtils.js +4 -4
  373. package/src/punctuation/index.js +1 -1
  374. package/src/punctuation/rules/index.js +2 -2
  375. package/src/{punctuation.spec.js → punctuation.test.js} +12 -13
  376. package/src/punctuation2.js +4 -4
  377. package/src/{punctuation2.spec.js → punctuation2.test.js} +12 -13
  378. package/src/reindexSubfield6OccurenceNumbers.js +5 -7
  379. package/src/{reindexSubfield6OccurenceNumbers.spec.js → reindexSubfield6OccurenceNumbers.test.js} +12 -13
  380. package/src/removeDuplicateDataFields.js +11 -19
  381. package/src/{removeDuplicateDataFields.spec.js → removeDuplicateDataFields.test.js} +12 -13
  382. package/src/removeInferiorDataFields.js +11 -11
  383. package/src/{removeInferiorDataFields.spec.js → removeInferiorDataFields.test.js} +13 -13
  384. package/src/resolvable-ext-references-melinda.js +1 -1
  385. package/src/{resolvable-ext-references-melinda.spec.js → resolvable-ext-references-melinda.test.js} +42 -27
  386. package/src/resolveOrphanedSubfield6s.js +5 -5
  387. package/src/{resolveOrphanedSubfield6s.spec.js → resolveOrphanedSubfield6s.test.js} +13 -13
  388. package/src/sanitize-vocabulary-source-codes.js +4 -4
  389. package/src/{sanitize-vocabulary-source-codes.spec.js → sanitize-vocabulary-source-codes.test.js} +16 -14
  390. package/src/{sort-tags.spec.js → sort-tags.test.js} +9 -11
  391. package/src/sortFields.js +4 -4
  392. package/src/{sortFields.spec.js → sortFields.test.js} +12 -13
  393. package/src/sortRelatorTerms.js +3 -3
  394. package/src/{sortRelatorTerms.spec.js → sortRelatorTerms.test.js} +13 -13
  395. package/src/sortSubfields.js +1 -1
  396. package/src/{sortSubfields.spec.js → sortSubfields.test.js} +13 -13
  397. package/src/stripPunctuation.js +3 -3
  398. package/src/{stripPunctuation.spec.js → stripPunctuation.test.js} +13 -13
  399. package/src/subfield-exclusion.js +1 -1
  400. package/src/{subfield-exclusion.spec.js → subfield-exclusion.test.js} +45 -36
  401. package/src/subfield6Utils.js +6 -10
  402. package/src/subfield8Utils.js +4 -4
  403. package/src/subfieldValueNormalizations.js +3 -3
  404. package/src/{subfieldValueNormalizations.spec.js → subfieldValueNormalizations.test.js} +18 -14
  405. package/src/sync-007-and-300.js +2 -2
  406. package/src/{sync-007-and-300.spec.js → sync-007-and-300.test.js} +13 -13
  407. package/src/translate-terms.js +3 -3
  408. package/src/{translate-terms.spec.js → translate-terms.test.js} +13 -13
  409. package/src/{typeOfDate-008.spec.js → typeOfDate-008.test.js} +12 -13
  410. package/src/{unicode-decomposition.spec.js → unicode-decomposition.test.js} +10 -16
  411. package/src/update-field-540.js +2 -2
  412. package/src/{update-field-540.spec.js → update-field-540.test.js} +13 -10
  413. package/src/urn.js +2 -2
  414. package/src/{urn.spec.js → urn.test.js} +12 -13
  415. package/src/utils.js +3 -3
  416. package/test-fixtures/field-505-separators/03/expectedResult.json +3 -1
  417. package/test-fixtures/field-505-separators/03/record.json +3 -0
  418. package/test-fixtures/normalize-subfield-value/01/metadata.json +4 -1
  419. package/test-fixtures/normalize-subfield-value/01/record.json +3 -0
  420. package/test-fixtures/normalize-subfield-value/02/expectedResult.json +3 -1
  421. package/test-fixtures/normalize-subfield-value/02/metadata.json +2 -1
  422. package/test-fixtures/normalize-subfield-value/02/record.json +3 -0
  423. package/test-fixtures/sanitize-vocabulary-source-codes/f03/expectedResult.json +3 -1
  424. package/test-fixtures/sanitize-vocabulary-source-codes/f04/expectedResult.json +3 -1
  425. package/test-fixtures/sanitize-vocabulary-source-codes/v04/metadata.json +1 -4
  426. package/test-fixtures/sanitize-vocabulary-source-codes/v04/record.json +1 -1
  427. package/dist/access-rights.spec.js +0 -195
  428. package/dist/access-rights.spec.js.map +0 -1
  429. package/dist/addMissingField041.spec.js +0 -45
  430. package/dist/addMissingField041.spec.js.map +0 -1
  431. package/dist/addMissingField336.spec.js +0 -45
  432. package/dist/addMissingField336.spec.js.map +0 -1
  433. package/dist/addMissingField337.spec.js +0 -43
  434. package/dist/addMissingField337.spec.js.map +0 -1
  435. package/dist/addMissingField338.spec.js +0 -45
  436. package/dist/addMissingField338.spec.js.map +0 -1
  437. package/dist/cyrillux-usemarcon-replacement.spec.js +0 -45
  438. package/dist/cyrillux-usemarcon-replacement.spec.js.map +0 -1
  439. package/dist/cyrillux.spec.js +0 -46
  440. package/dist/cyrillux.spec.js.map +0 -1
  441. package/dist/disambiguateSeriesStatements.spec.js +0 -51
  442. package/dist/disambiguateSeriesStatements.spec.js.map +0 -1
  443. package/dist/double-commas.spec.js +0 -73
  444. package/dist/double-commas.spec.js.map +0 -1
  445. package/dist/duplicates-ind1.spec.js +0 -45
  446. package/dist/duplicates-ind1.spec.js.map +0 -1
  447. package/dist/empty-fields.spec.js +0 -118
  448. package/dist/empty-fields.spec.js.map +0 -1
  449. package/dist/ending-punctuation.spec.js +0 -2654
  450. package/dist/ending-punctuation.spec.js.map +0 -1
  451. package/dist/ending-whitespace.spec.js +0 -42
  452. package/dist/ending-whitespace.spec.js.map +0 -1
  453. package/dist/field-008-18-34-character-groups.spec.js +0 -51
  454. package/dist/field-008-18-34-character-groups.spec.js.map +0 -1
  455. package/dist/field-505-separators.spec.js +0 -51
  456. package/dist/field-505-separators.spec.js.map +0 -1
  457. package/dist/field-521-fix.spec.js +0 -51
  458. package/dist/field-521-fix.spec.js.map +0 -1
  459. package/dist/field-exclusion.spec.js +0 -1054
  460. package/dist/field-exclusion.spec.js.map +0 -1
  461. package/dist/field-structure.spec.js +0 -535
  462. package/dist/field-structure.spec.js.map +0 -1
  463. package/dist/fields-present.spec.js +0 -121
  464. package/dist/fields-present.spec.js.map +0 -1
  465. package/dist/fix-33X.spec.js +0 -45
  466. package/dist/fix-33X.spec.js.map +0 -1
  467. package/dist/fix-country-codes.spec.js +0 -51
  468. package/dist/fix-country-codes.spec.js.map +0 -1
  469. package/dist/fix-language-codes.spec.js +0 -44
  470. package/dist/fix-language-codes.spec.js.map +0 -1
  471. package/dist/fixRelatorTerms.spec.js +0 -51
  472. package/dist/fixRelatorTerms.spec.js.map +0 -1
  473. package/dist/fixed-fields.spec.js +0 -140
  474. package/dist/fixed-fields.spec.js.map +0 -1
  475. package/dist/identical-fields.spec.js +0 -99
  476. package/dist/identical-fields.spec.js.map +0 -1
  477. package/dist/indicator-fixes.spec.js +0 -51
  478. package/dist/indicator-fixes.spec.js.map +0 -1
  479. package/dist/isbn-issn.spec.js +0 -595
  480. package/dist/isbn-issn.spec.js.map +0 -1
  481. package/dist/item-language.spec.js +0 -306
  482. package/dist/item-language.spec.js.map +0 -1
  483. package/dist/melindaCustomMergeFields.json +0 -5120
  484. package/dist/merge-fields.spec.js +0 -51
  485. package/dist/merge-fields.spec.js.map +0 -1
  486. package/dist/mergeField500Lisapainokset.spec.js +0 -51
  487. package/dist/mergeField500Lisapainokset.spec.js.map +0 -1
  488. package/dist/mergeRelatorTermFields.spec.js +0 -51
  489. package/dist/mergeRelatorTermFields.spec.js.map +0 -1
  490. package/dist/modernize-502.spec.js +0 -49
  491. package/dist/modernize-502.spec.js.map +0 -1
  492. package/dist/multiple-subfield-0.spec.js +0 -51
  493. package/dist/multiple-subfield-0.spec.js.map +0 -1
  494. package/dist/non-breaking-space.spec.js +0 -42
  495. package/dist/non-breaking-space.spec.js.map +0 -1
  496. package/dist/normalize-dashes.spec.js +0 -51
  497. package/dist/normalize-dashes.spec.js.map +0 -1
  498. package/dist/normalize-identifiers.spec.js +0 -51
  499. package/dist/normalize-identifiers.spec.js.map +0 -1
  500. package/dist/normalize-qualifying-information.spec.js +0 -51
  501. package/dist/normalize-qualifying-information.spec.js.map +0 -1
  502. package/dist/normalize-utf8-diacritics.spec.js +0 -51
  503. package/dist/normalize-utf8-diacritics.spec.js.map +0 -1
  504. package/dist/punctuation.spec.js +0 -51
  505. package/dist/punctuation.spec.js.map +0 -1
  506. package/dist/punctuation2.spec.js +0 -51
  507. package/dist/punctuation2.spec.js.map +0 -1
  508. package/dist/reindexSubfield6OccurenceNumbers.spec.js +0 -51
  509. package/dist/reindexSubfield6OccurenceNumbers.spec.js.map +0 -1
  510. package/dist/removeDuplicateDataFields.spec.js +0 -51
  511. package/dist/removeDuplicateDataFields.spec.js.map +0 -1
  512. package/dist/removeInferiorDataFields.spec.js +0 -51
  513. package/dist/removeInferiorDataFields.spec.js.map +0 -1
  514. package/dist/resolvable-ext-references-melinda.spec.js +0 -166
  515. package/dist/resolvable-ext-references-melinda.spec.js.map +0 -1
  516. package/dist/resolveOrphanedSubfield6s.spec.js +0 -51
  517. package/dist/resolveOrphanedSubfield6s.spec.js.map +0 -1
  518. package/dist/sanitize-vocabulary-source-codes.spec.js +0 -51
  519. package/dist/sanitize-vocabulary-source-codes.spec.js.map +0 -1
  520. package/dist/sort-tags.spec.js +0 -207
  521. package/dist/sort-tags.spec.js.map +0 -1
  522. package/dist/sortFields.spec.js +0 -51
  523. package/dist/sortFields.spec.js.map +0 -1
  524. package/dist/sortRelatorTerms.spec.js +0 -51
  525. package/dist/sortRelatorTerms.spec.js.map +0 -1
  526. package/dist/sortSubfields.spec.js +0 -52
  527. package/dist/sortSubfields.spec.js.map +0 -1
  528. package/dist/stripPunctuation.spec.js +0 -51
  529. package/dist/stripPunctuation.spec.js.map +0 -1
  530. package/dist/subfield-exclusion.spec.js +0 -523
  531. package/dist/subfield-exclusion.spec.js.map +0 -1
  532. package/dist/subfieldValueNormalizations.spec.js +0 -51
  533. package/dist/subfieldValueNormalizations.spec.js.map +0 -1
  534. package/dist/sync-007-and-300.spec.js +0 -51
  535. package/dist/sync-007-and-300.spec.js.map +0 -1
  536. package/dist/translate-terms.spec.js +0 -51
  537. package/dist/translate-terms.spec.js.map +0 -1
  538. package/dist/typeOfDate-008.spec.js +0 -47
  539. package/dist/typeOfDate-008.spec.js.map +0 -1
  540. package/dist/unicode-decomposition.spec.js +0 -91
  541. package/dist/unicode-decomposition.spec.js.map +0 -1
  542. package/dist/update-field-540.spec.js +0 -51
  543. package/dist/update-field-540.spec.js.map +0 -1
  544. package/dist/urn.spec.js +0 -52
  545. package/dist/urn.spec.js.map +0 -1
  546. package/src/cyrillux-usemarcon-replacement.spec.js +0 -47
package/dist/fix-33X.js CHANGED
@@ -1,474 +1,439 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
- var _clone = _interopRequireDefault(require("clone"));
8
- var _utils = require("./utils");
9
- var _field33XUtils = require("./field33XUtils");
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
- //import createDebugLogger from 'debug';
12
-
13
- const description = 'Fix non-RDA 33X field(s)';
1
+ import clone from "clone";
2
+ import { fieldToString, getCatalogingLanguage, nvdebug } from "./utils.js";
3
+ import { map336CodeToTerm, map337CodeToTerm, map338CodeToTerm } from "./field33XUtils.js";
4
+ const description = "Fix non-RDA 33X field(s)";
14
5
  const map336 = {
15
- 'Bild (kartografisk ; att vidra)': 'crt',
16
- 'Bild (kartografisk ; rörlig)': 'crm',
17
- 'Bild (kartografisk)': 'cri',
18
- 'Bild (rörlig ; tredimensionell)': 'tdm',
19
- 'Bild (rörlig ; tvådimensionell)': 'tdi',
20
- 'Bild (still ; att vidra)': 'tci',
21
- 'Bild (still ; tredimensionell)': 'sti',
22
- 'Bild (still)': 'sti',
23
- 'Data': 'cod',
24
- 'Data (kartografinen)': 'crd',
25
- 'Dataset': 'cod',
26
- 'Dataset (kartografisk)': 'crd',
27
- 'Datorprogram': 'cop',
28
- 'Esine': 'tdf',
29
- 'Esine (kartografinen ; kosketeltava)': 'crn',
30
- 'Esine (kartografinen)': 'crf',
31
- 'Esine (kartogragrafinen ; kolmiulotteinen)': 'crf',
32
- 'Esine (kolmiulotteinen)': 'tdf',
33
- 'Esine (kosketeltava)': 'tcf',
34
- 'Flera innehållstyper': 'zzz',
35
- 'Föremal': 'tdf',
36
- 'Föremål (att vidra)': 'tcf',
37
- 'Föremål (kartografisk ; att vidra)': 'crn',
38
- 'Föremål (kartografisk ; tredimensionell)': 'crn',
39
- 'Föremål (tredimensionell)': 'tdf',
40
- 'Geräusche': 'snd',
41
- 'Kuva': 'sti',
42
- 'Kuva (kartografinen ; kosketeltava)': 'crt',
43
- 'Kuva (kartografinen ; liikkuva)': 'crm',
44
- 'Kuva (kartografinen)': 'cri',
45
- 'Kuva (liikkuva ; kaksiulotteinen)': 'tdi',
46
- 'Kuva (liikkuva ; kolmiulotteinen)': 'tdm',
47
- 'Kuva (still ; kaksiulotteinen)': 'sti',
48
- 'Kuva (still ; kolmiulotteinen)': 'sti',
49
- 'Kuva (still ; kosketeltava)': 'tci',
50
- 'Kuva (still)': 'sti',
51
- 'Liike (kosketeltava ; notatoitu)': 'tcn',
52
- 'Liike (notatoitu ; kosketeltava': 'tcn',
53
- 'Liike (notatoitu)': 'ntv',
54
- 'Ljud': 'snd',
55
- 'Musiikki (esitetty)': 'prm',
56
- 'Musiikki (kosketeltava ; notatoitu)': 'tcm',
57
- 'Musiikki (notatoitu ; kosketeltava)': 'tcm',
58
- 'Musiikki (notatoitu)': 'ntm',
59
- 'Musik (notation ; att vidra)': 'tcm',
60
- 'Musik (notation)': 'ntm',
61
- 'Musik (performance)': 'prm',
62
- 'Määrittelemätön': 'zzz',
63
- 'Määrittelemätön sisältötyyppi': 'zzz',
64
- 'Obestämd innehållstyp': 'zzz',
65
- 'Ospecificerad innehållstyp': 'zzz',
66
- 'Puhe': 'spw',
67
- 'Rörelse (notation ; att vidra)': 'tcn',
68
- 'Rörelse (notation)': 'ntv',
69
- 'Tal': 'spw',
70
- 'Teksti': 'txt',
71
- 'Teksti (kosketeltava); Text (att vidra)': 'tct',
72
- 'Text': 'txt',
73
- 'Tietokoneohjelma': 'cop',
74
- 'Useita sisältötyyppejä': 'zzz',
75
- 'Vild (still ; tvådimensionell)': 'sti',
76
- 'annan': 'xxx',
77
- 'cartographic dataset': 'crd',
78
- 'cartographic image': 'cri',
79
- 'cartographic moving image': 'crm',
80
- 'cartographic tactile image': 'crt',
81
- 'cartographic tactile three-dimensional form': 'crn',
82
- 'cartographic three-dimensional form': 'crf',
83
- 'cartographic three-dimensional tactile form': 'crn',
84
- 'computer dataset': 'cod',
85
- 'computer program': 'cop',
86
- 'dataset': 'cod',
87
- 'datorprogram': 'cop',
88
- 'digitaalinen data': 'cod',
89
- 'digitalt dataset': 'cod',
90
- 'esitetty musiikki': 'prm',
91
- 'framförd musik': 'prm',
92
- 'gesprochenes Wort': 'spw',
93
- 'kaksiulotteinen liikkuva kuva': 'tdi',
94
- 'kartografinen data': 'crd',
95
- 'kartografinen kolmiulotteinen muoto': 'crf',
96
- 'kartografinen kuva': 'cri',
97
- 'kartografinen liikkuva kuva': 'crm',
98
- 'kartografinen taktiili kolmiulotteinen muoto': 'crn',
99
- 'kartografinen taktiili kuva': 'crt',
100
- 'kartografisk bild': 'cri',
101
- 'kartografisk data': 'crd',
102
- 'kartografisk rörlig bild': 'crm',
103
- 'kartografisk taktil bild': 'crt',
104
- 'kartografisk taktil tredimensionell form': 'crn',
105
- 'kartografisk tredimensionell form': 'crf',
106
- 'kolmiulotteinen liikkuva kuva': 'tdm',
107
- 'kolmiulotteinen muoto': 'tdf',
108
- 'liikenotaatio': 'ntv',
109
- 'ljud': 'snd',
110
- 'muu': 'xxx',
111
- 'määrittelemätön': 'zzz',
112
- 'notated movement': 'ntv',
113
- 'notated music': 'ntm',
114
- 'noterad musik': 'ntm',
115
- 'nuottikirjoitus': 'ntm',
116
- 'ospecificerad': 'zzz',
117
- 'other': 'xxx',
118
- 'performed music': 'prm',
119
- 'puhe': 'spw',
120
- 'rörelsenotation': 'ntv',
121
- 'sounds': 'snd',
122
- 'spoken word': 'spw',
123
- 'still image': 'sti',
124
- 'stillbild': 'sti',
125
- 'stillkuva': 'sti',
126
- 'tactile image': 'tci',
127
- 'tactile notated movement': 'tcn',
128
- 'tactile notated music': 'tcm',
129
- 'tactile text': 'tct',
130
- 'tactile three-dimensional form': 'tcf',
131
- 'taktiili kolmiulotteinen muoto': 'tcf',
132
- 'taktiili kuva': 'tci',
133
- 'taktiili liikenotaatio': 'tcn',
134
- 'taktiili nuottikirjoitus': 'tcm',
135
- 'taktiili teksti': 'tct',
136
- 'taktil bild': 'tci',
137
- 'taktil musiknotation': 'tcm',
138
- 'taktil noterad rörelse': 'tcn',
139
- 'taktil text': 'tct',
140
- 'taktil tredimensionell form': 'tcf',
141
- 'tal': 'spw',
142
- 'teksti': 'txt',
143
- 'text': 'txt',
144
- 'texte': 'txt',
145
- 'texte tactile': 'tct',
146
- 'three-dimensional form': 'tdf',
147
- 'three-dimensional moving image': 'tdm',
148
- 'tietokoneohjelma': 'cop',
149
- 'tredimensionell form': 'tdf',
150
- 'tredimensionell rörlig bild': 'tdm',
151
- 'tvådimensionell rörlig bild': 'tdi',
152
- 'two-dimensional moving image': 'tdi',
153
- 'unbewegtes Bild': 'sti',
154
- 'unspecified': 'zzz',
155
- 'Ääni': 'snd',
156
- 'ääni': 'snd',
157
- 'Электронная программа': 'cop',
6
+ "Bild (kartografisk ; att vidra)": "crt",
7
+ "Bild (kartografisk ; r\xF6rlig)": "crm",
8
+ "Bild (kartografisk)": "cri",
9
+ "Bild (r\xF6rlig ; tredimensionell)": "tdm",
10
+ "Bild (r\xF6rlig ; tv\xE5dimensionell)": "tdi",
11
+ "Bild (still ; att vidra)": "tci",
12
+ "Bild (still ; tredimensionell)": "sti",
13
+ "Bild (still)": "sti",
14
+ "Data": "cod",
15
+ "Data (kartografinen)": "crd",
16
+ "Dataset": "cod",
17
+ "Dataset (kartografisk)": "crd",
18
+ "Datorprogram": "cop",
19
+ "Esine": "tdf",
20
+ "Esine (kartografinen ; kosketeltava)": "crn",
21
+ "Esine (kartografinen)": "crf",
22
+ "Esine (kartogragrafinen ; kolmiulotteinen)": "crf",
23
+ "Esine (kolmiulotteinen)": "tdf",
24
+ "Esine (kosketeltava)": "tcf",
25
+ "Flera inneh\xE5llstyper": "zzz",
26
+ "F\xF6remal": "tdf",
27
+ "F\xF6rem\xE5l (att vidra)": "tcf",
28
+ "F\xF6rem\xE5l (kartografisk ; att vidra)": "crn",
29
+ "F\xF6rem\xE5l (kartografisk ; tredimensionell)": "crn",
30
+ "F\xF6rem\xE5l (tredimensionell)": "tdf",
31
+ "Ger\xE4usche": "snd",
32
+ "Kuva": "sti",
33
+ "Kuva (kartografinen ; kosketeltava)": "crt",
34
+ "Kuva (kartografinen ; liikkuva)": "crm",
35
+ "Kuva (kartografinen)": "cri",
36
+ "Kuva (liikkuva ; kaksiulotteinen)": "tdi",
37
+ "Kuva (liikkuva ; kolmiulotteinen)": "tdm",
38
+ "Kuva (still ; kaksiulotteinen)": "sti",
39
+ "Kuva (still ; kolmiulotteinen)": "sti",
40
+ "Kuva (still ; kosketeltava)": "tci",
41
+ "Kuva (still)": "sti",
42
+ "Liike (kosketeltava ; notatoitu)": "tcn",
43
+ "Liike (notatoitu ; kosketeltava": "tcn",
44
+ "Liike (notatoitu)": "ntv",
45
+ "Ljud": "snd",
46
+ "Musiikki (esitetty)": "prm",
47
+ "Musiikki (kosketeltava ; notatoitu)": "tcm",
48
+ "Musiikki (notatoitu ; kosketeltava)": "tcm",
49
+ "Musiikki (notatoitu)": "ntm",
50
+ "Musik (notation ; att vidra)": "tcm",
51
+ "Musik (notation)": "ntm",
52
+ "Musik (performance)": "prm",
53
+ "M\xE4\xE4rittelem\xE4t\xF6n": "zzz",
54
+ "M\xE4\xE4rittelem\xE4t\xF6n sis\xE4lt\xF6tyyppi": "zzz",
55
+ "Obest\xE4md inneh\xE5llstyp": "zzz",
56
+ "Ospecificerad inneh\xE5llstyp": "zzz",
57
+ "Puhe": "spw",
58
+ "R\xF6relse (notation ; att vidra)": "tcn",
59
+ "R\xF6relse (notation)": "ntv",
60
+ "Tal": "spw",
61
+ "Teksti": "txt",
62
+ "Teksti (kosketeltava); Text (att vidra)": "tct",
63
+ "Text": "txt",
64
+ "Tietokoneohjelma": "cop",
65
+ "Useita sis\xE4lt\xF6tyyppej\xE4": "zzz",
66
+ "Vild (still ; tv\xE5dimensionell)": "sti",
67
+ "annan": "xxx",
68
+ "cartographic dataset": "crd",
69
+ "cartographic image": "cri",
70
+ "cartographic moving image": "crm",
71
+ "cartographic tactile image": "crt",
72
+ "cartographic tactile three-dimensional form": "crn",
73
+ "cartographic three-dimensional form": "crf",
74
+ "cartographic three-dimensional tactile form": "crn",
75
+ "computer dataset": "cod",
76
+ "computer program": "cop",
77
+ "dataset": "cod",
78
+ "datorprogram": "cop",
79
+ "digitaalinen data": "cod",
80
+ "digitalt dataset": "cod",
81
+ "esitetty musiikki": "prm",
82
+ "framf\xF6rd musik": "prm",
83
+ "gesprochenes Wort": "spw",
84
+ "kaksiulotteinen liikkuva kuva": "tdi",
85
+ "kartografinen data": "crd",
86
+ "kartografinen kolmiulotteinen muoto": "crf",
87
+ "kartografinen kuva": "cri",
88
+ "kartografinen liikkuva kuva": "crm",
89
+ "kartografinen taktiili kolmiulotteinen muoto": "crn",
90
+ "kartografinen taktiili kuva": "crt",
91
+ "kartografisk bild": "cri",
92
+ "kartografisk data": "crd",
93
+ "kartografisk r\xF6rlig bild": "crm",
94
+ "kartografisk taktil bild": "crt",
95
+ "kartografisk taktil tredimensionell form": "crn",
96
+ "kartografisk tredimensionell form": "crf",
97
+ "kolmiulotteinen liikkuva kuva": "tdm",
98
+ "kolmiulotteinen muoto": "tdf",
99
+ "liikenotaatio": "ntv",
100
+ "ljud": "snd",
101
+ "muu": "xxx",
102
+ "m\xE4\xE4rittelem\xE4t\xF6n": "zzz",
103
+ "notated movement": "ntv",
104
+ "notated music": "ntm",
105
+ "noterad musik": "ntm",
106
+ "nuottikirjoitus": "ntm",
107
+ "ospecificerad": "zzz",
108
+ "other": "xxx",
109
+ "performed music": "prm",
110
+ "puhe": "spw",
111
+ "r\xF6relsenotation": "ntv",
112
+ "sounds": "snd",
113
+ "spoken word": "spw",
114
+ "still image": "sti",
115
+ "stillbild": "sti",
116
+ "stillkuva": "sti",
117
+ "tactile image": "tci",
118
+ "tactile notated movement": "tcn",
119
+ "tactile notated music": "tcm",
120
+ "tactile text": "tct",
121
+ "tactile three-dimensional form": "tcf",
122
+ "taktiili kolmiulotteinen muoto": "tcf",
123
+ "taktiili kuva": "tci",
124
+ "taktiili liikenotaatio": "tcn",
125
+ "taktiili nuottikirjoitus": "tcm",
126
+ "taktiili teksti": "tct",
127
+ "taktil bild": "tci",
128
+ "taktil musiknotation": "tcm",
129
+ "taktil noterad r\xF6relse": "tcn",
130
+ "taktil text": "tct",
131
+ "taktil tredimensionell form": "tcf",
132
+ "tal": "spw",
133
+ "teksti": "txt",
134
+ "text": "txt",
135
+ "texte": "txt",
136
+ "texte tactile": "tct",
137
+ "three-dimensional form": "tdf",
138
+ "three-dimensional moving image": "tdm",
139
+ "tietokoneohjelma": "cop",
140
+ "tredimensionell form": "tdf",
141
+ "tredimensionell r\xF6rlig bild": "tdm",
142
+ "tv\xE5dimensionell r\xF6rlig bild": "tdi",
143
+ "two-dimensional moving image": "tdi",
144
+ "unbewegtes Bild": "sti",
145
+ "unspecified": "zzz",
146
+ "\xC4\xE4ni": "snd",
147
+ "\xE4\xE4ni": "snd",
148
+ "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0430": "cop",
158
149
  // computer program
159
- 'Изображение (картографическое)': 'cri',
160
- 'Музыка (знаковая)': 'ntm',
150
+ "\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 (\u043A\u0430\u0440\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0435)": "cri",
151
+ "\u041C\u0443\u0437\u044B\u043A\u0430 (\u0437\u043D\u0430\u043A\u043E\u0432\u0430\u044F)": "ntm",
161
152
  // notated music
162
- 'Музыка (исполнительская)': 'prm',
153
+ "\u041C\u0443\u0437\u044B\u043A\u0430 (\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u0430\u044F)": "prm",
163
154
  // performed music
164
- 'Устная речь': 'spw',
165
- 'Изображение (неподвижное)': 'sti',
166
- 'Изображение (движущееся)': 'tdi',
155
+ "\u0423\u0441\u0442\u043D\u0430\u044F \u0440\u0435\u0447\u044C": "spw",
156
+ "\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 (\u043D\u0435\u043F\u043E\u0434\u0432\u0438\u0436\u043D\u043E\u0435)": "sti",
157
+ "\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 (\u0434\u0432\u0438\u0436\u0443\u0449\u0435\u0435\u0441\u044F)": "tdi",
167
158
  // 2D moving image
168
- 'Текст': 'txt',
169
- 'Текст (визуальный)': 'txt'
159
+ "\u0422\u0435\u043A\u0441\u0442": "txt",
160
+ "\u0422\u0435\u043A\u0441\u0442 (\u0432\u0438\u0437\u0443\u0430\u043B\u044C\u043D\u044B\u0439)": "txt"
170
161
  };
171
162
  const map337 = {
172
- 'Computermedien': 'c',
173
- 'Mikroform': 'h',
174
- 'annan': 'x',
175
- 'audio': 's',
176
- 'computer': 'c',
177
- 'dator': 'c',
178
- 'datoranvändbar': 'c',
179
- 'ei välittävää laitetta': 'n',
180
- 'elektroninen': 'c',
181
- 'elektronisk': 'c',
182
- 'heijastettava': 'g',
183
- 'ingen medietyp': 'n',
184
- 'käytettävissä ilman laitetta': 'n',
185
- 'microform': 'h',
186
- 'microscopic': 'p',
187
- 'mikroform': 'h',
188
- 'mikromuoto': 'h',
189
- 'mikroskooppinen': 'p',
190
- 'mikroskopisch': 'p',
191
- 'mikroskopisk': 'p',
192
- 'muu': 'x',
193
- 'määrittelemätön': 'z',
194
- 'määrittelemätön välittävä laite': 'z',
195
- 'oförmedlad': 'n',
196
- 'ohne Hilfsmittel zu benutzen': 'n',
197
- 'omedierad': 'n',
198
- 'ospecificerad': 'z',
199
- 'ospecificerad medietyp': 'z',
200
- 'other': 'x',
201
- 'projected': 'g',
202
- 'projektion': 'g',
203
- 'projicerad': 'g',
204
- 'projicerbar': 'g',
205
- 'projizierbar': 'g',
206
- 'stereografinen': 'e',
207
- 'stereografisch': 'e',
208
- 'stereografisk': 'e',
209
- 'stereographic': 'e',
210
- 'tietokonekäyttöinen': 'c',
211
- 'unmediated': 'n',
212
- 'unspecified': 'z',
213
- 'useita mediatyyppejä': 'z',
214
- 'video': 'v',
215
- 'övrig': 'x',
163
+ "Computermedien": "c",
164
+ "Mikroform": "h",
165
+ "annan": "x",
166
+ "audio": "s",
167
+ "computer": "c",
168
+ "dator": "c",
169
+ "datoranv\xE4ndbar": "c",
170
+ "ei v\xE4litt\xE4v\xE4\xE4 laitetta": "n",
171
+ "elektroninen": "c",
172
+ "elektronisk": "c",
173
+ "heijastettava": "g",
174
+ "ingen medietyp": "n",
175
+ "k\xE4ytett\xE4viss\xE4 ilman laitetta": "n",
176
+ "microform": "h",
177
+ "microscopic": "p",
178
+ "mikroform": "h",
179
+ "mikromuoto": "h",
180
+ "mikroskooppinen": "p",
181
+ "mikroskopisch": "p",
182
+ "mikroskopisk": "p",
183
+ "muu": "x",
184
+ "m\xE4\xE4rittelem\xE4t\xF6n": "z",
185
+ "m\xE4\xE4rittelem\xE4t\xF6n v\xE4litt\xE4v\xE4 laite": "z",
186
+ "of\xF6rmedlad": "n",
187
+ "ohne Hilfsmittel zu benutzen": "n",
188
+ "omedierad": "n",
189
+ "ospecificerad": "z",
190
+ "ospecificerad medietyp": "z",
191
+ "other": "x",
192
+ "projected": "g",
193
+ "projektion": "g",
194
+ "projicerad": "g",
195
+ "projicerbar": "g",
196
+ "projizierbar": "g",
197
+ "stereografinen": "e",
198
+ "stereografisch": "e",
199
+ "stereografisk": "e",
200
+ "stereographic": "e",
201
+ "tietokonek\xE4ytt\xF6inen": "c",
202
+ "unmediated": "n",
203
+ "unspecified": "z",
204
+ "useita mediatyyppej\xE4": "z",
205
+ "video": "v",
206
+ "\xF6vrig": "x",
216
207
  // Cyrillic (sorted by result):
217
- 'электронн': 'c',
218
- 'электронный': 'c',
219
- 'непосредственн': 'n',
220
- 'непосредственный': 'n',
221
- 'аудио': 's',
208
+ "\u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D": "c",
209
+ "\u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u044B\u0439": "c",
210
+ "\u043D\u0435\u043F\u043E\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043D\u043D": "n",
211
+ "\u043D\u0435\u043F\u043E\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439": "n",
212
+ "\u0430\u0443\u0434\u0438\u043E": "s",
222
213
  // audio
223
- 'видео': 'v'
214
+ "\u0432\u0438\u0434\u0435\u043E": "v"
224
215
  };
225
216
  const map338 = {
226
- 'aperture card': 'ha',
227
- 'ark': 'nb',
228
- 'arkki': 'nb',
229
- 'audio belt': 'sb',
230
- 'audio cartridge': 'sg',
231
- 'audio cylinder': 'se',
232
- 'audio disc': 'sd',
233
- 'audio roll': 'sq',
234
- 'audio wire reel': 'sw',
235
- 'audiocassette': 'ss',
236
- 'audiotape reel': 'st',
237
- 'bildband': 'gf',
238
- 'bildbandsmagasin': 'gc',
239
- 'blädderblock': 'nn',
240
- 'card': 'no',
241
- 'computer card': 'ck',
242
- 'computer cartridge': 'cb',
243
- 'computer disc': 'cd',
244
- 'computer disc cartridge': 'ce',
245
- 'computer tape cartridge': 'ca',
246
- 'computer tape cassette': 'cf',
247
- 'computer tape reel': 'ch',
248
- 'datorbandmagasin': 'ca',
249
- 'datorbandspole': 'ch',
250
- 'datorkassett': 'cf',
251
- 'datorkort': 'ck',
252
- 'datorminnesmodul': 'cb',
253
- 'datorskiva': 'cd',
254
- 'datorskivmagasin': 'ce',
255
- 'dia': 'gs',
256
- 'diabild': 'gs',
257
- 'film cartridge': 'mc',
258
- 'film cassette': 'mf',
259
- 'film reel': 'mr',
260
- 'film roll': 'mo',
261
- 'filmikasetti': 'mf',
262
- 'filmikela': 'mr',
263
- 'filmiliuska': 'gd',
264
- 'filmirulla': 'mo',
265
- 'filmisilmukkakasetti': 'mc',
266
- 'filmkassett': 'mf',
267
- 'filmljudspole': 'si',
268
- 'filmmagasin': 'mc',
269
- 'filmremsa': 'gd',
270
- 'filmrulle': 'mo',
271
- 'filmslip': 'gd',
272
- 'filmspole': 'mr',
273
- 'filmstrip': 'gf',
274
- 'filmstrip cartridge': 'gc',
275
- 'flipchart': 'nn',
276
- 'fönsterkort': 'ha',
277
- 'föremål': 'nr',
278
- 'ikkunakortti': 'ha',
279
- 'kort': 'no',
280
- 'kortti': 'no',
281
- 'lehtiötaulu': 'nn',
282
- 'ljudcylinder': 'se',
283
- 'ljudkassett': 'ss',
284
- 'ljudmagasin': 'sg',
285
- 'ljudrulle': 'sq',
286
- 'ljudskiva': 'sd',
287
- 'ljudslinga': 'sb',
288
- 'ljudspole': 'st',
289
- 'ljudtråd': 'sw',
290
- 'microfiche': 'he',
291
- 'microfiche cassette': 'hf',
292
- 'microfilm cartridge': 'hb',
293
- 'microfilm cassette': 'hc',
294
- 'microfilm reel': 'hd',
295
- 'microfilm roll': 'hj',
296
- 'microfilm slip': 'hh',
297
- 'microopaque': 'hg',
298
- 'microscope slide': 'pp',
299
- 'mikrofiche': 'he',
300
- 'mikrofiche (ogenomskinlig)': 'hg',
301
- 'mikrofichekassett': 'hf',
302
- 'mikrofilmikasetti': 'hc',
303
- 'mikrofilmikela': 'hd',
304
- 'mikrofilmiliuska': 'hh',
305
- 'mikrofilmirulla': 'hj',
306
- 'mikrofilmisilmukkakasetti': 'hb',
307
- 'mikrofilmskassett': 'hc',
308
- 'mikrofilmsmagasin': 'hb',
309
- 'mikrofilmsremsa': 'hh',
310
- 'mikrofilmsrulle': 'hj',
311
- 'mikrofilmsspole': 'hd',
312
- 'mikrokortti': 'he',
313
- 'mikrokortti (läpinäkymätön)': 'hg',
314
- 'mikrokorttikasetti': 'hf',
315
- 'mikroskoperingspreparat': 'pp',
316
- 'muistikortti': 'ck',
317
- 'määrittelemätön': 'zu',
318
- 'nide': 'nc',
319
- 'object': 'nr',
320
- 'objekti': 'nr',
321
- 'online resource': 'cr',
322
- 'onlineresurs': 'cr',
323
- 'ospecificerad': 'zu',
324
- 'overhead transparency': 'gt',
325
- 'piirikotelo': 'cb',
326
- 'piirtoheitinkalvo': 'gt',
327
- 'preparaattilasi': 'pp',
328
- 'raina': 'gf',
329
- 'rainakasetti': 'gc',
330
- 'roll': 'na',
331
- 'rulla': 'na',
332
- 'rulle': 'na',
333
- 'sheet': 'nb',
334
- 'slide': 'gs',
335
- 'sound-track reel': 'si',
336
- 'stereografinen kortti': 'eh',
337
- 'stereografinen levy': 'es',
338
- 'stereografisk skiva': 'es',
339
- 'stereografiskt kort': 'eh',
340
- 'stereograph card': 'eh',
341
- 'stereograph disc': 'es',
342
- 'tietokasetti': 'cf',
343
- 'tietolevy': 'cd',
344
- 'tietolevykotelo': 'ce',
345
- 'tietonauhakela': 'ch',
346
- 'tietonauhan silmukkakasetti': 'ca',
347
- 'transparang': 'gt',
348
- 'unspecified': 'zu',
349
- 'verkkoaineisto': 'cr',
350
- 'video cartridge': 'vc',
351
- 'videocassette': 'vf',
352
- 'videodisc': 'vd',
353
- 'videokasetti': 'vf',
354
- 'videokassett': 'vf',
355
- 'videokela': 'vr',
356
- 'videolevy': 'vd',
357
- 'videomagasin': 'vc',
358
- 'videosilmukkakasetti': 'vc',
359
- 'videoskiva': 'vd',
360
- 'videospole': 'vr',
361
- 'videotape reel': 'vr',
362
- 'volume': 'nc',
363
- 'volym': 'nc',
364
- 'äänihihna': 'sb',
365
- 'äänikasetti': 'ss',
366
- 'äänikela': 'st',
367
- 'äänilankakela': 'sw',
368
- 'äänilevy': 'sd',
369
- 'ääniraitakela': 'si',
370
- 'äänirulla': 'sq',
371
- 'äänisilmukkakasetti': 'sg',
372
- 'äänisylinteri': 'se'
217
+ "aperture card": "ha",
218
+ "ark": "nb",
219
+ "arkki": "nb",
220
+ "audio belt": "sb",
221
+ "audio cartridge": "sg",
222
+ "audio cylinder": "se",
223
+ "audio disc": "sd",
224
+ "audio roll": "sq",
225
+ "audio wire reel": "sw",
226
+ "audiocassette": "ss",
227
+ "audiotape reel": "st",
228
+ "bildband": "gf",
229
+ "bildbandsmagasin": "gc",
230
+ "bl\xE4dderblock": "nn",
231
+ "card": "no",
232
+ "computer card": "ck",
233
+ "computer cartridge": "cb",
234
+ "computer disc": "cd",
235
+ "computer disc cartridge": "ce",
236
+ "computer tape cartridge": "ca",
237
+ "computer tape cassette": "cf",
238
+ "computer tape reel": "ch",
239
+ "datorbandmagasin": "ca",
240
+ "datorbandspole": "ch",
241
+ "datorkassett": "cf",
242
+ "datorkort": "ck",
243
+ "datorminnesmodul": "cb",
244
+ "datorskiva": "cd",
245
+ "datorskivmagasin": "ce",
246
+ "dia": "gs",
247
+ "diabild": "gs",
248
+ "film cartridge": "mc",
249
+ "film cassette": "mf",
250
+ "film reel": "mr",
251
+ "film roll": "mo",
252
+ "filmikasetti": "mf",
253
+ "filmikela": "mr",
254
+ "filmiliuska": "gd",
255
+ "filmirulla": "mo",
256
+ "filmisilmukkakasetti": "mc",
257
+ "filmkassett": "mf",
258
+ "filmljudspole": "si",
259
+ "filmmagasin": "mc",
260
+ "filmremsa": "gd",
261
+ "filmrulle": "mo",
262
+ "filmslip": "gd",
263
+ "filmspole": "mr",
264
+ "filmstrip": "gf",
265
+ "filmstrip cartridge": "gc",
266
+ "flipchart": "nn",
267
+ "f\xF6nsterkort": "ha",
268
+ "f\xF6rem\xE5l": "nr",
269
+ "ikkunakortti": "ha",
270
+ "kort": "no",
271
+ "kortti": "no",
272
+ "lehti\xF6taulu": "nn",
273
+ "ljudcylinder": "se",
274
+ "ljudkassett": "ss",
275
+ "ljudmagasin": "sg",
276
+ "ljudrulle": "sq",
277
+ "ljudskiva": "sd",
278
+ "ljudslinga": "sb",
279
+ "ljudspole": "st",
280
+ "ljudtr\xE5d": "sw",
281
+ "microfiche": "he",
282
+ "microfiche cassette": "hf",
283
+ "microfilm cartridge": "hb",
284
+ "microfilm cassette": "hc",
285
+ "microfilm reel": "hd",
286
+ "microfilm roll": "hj",
287
+ "microfilm slip": "hh",
288
+ "microopaque": "hg",
289
+ "microscope slide": "pp",
290
+ "mikrofiche": "he",
291
+ "mikrofiche (ogenomskinlig)": "hg",
292
+ "mikrofichekassett": "hf",
293
+ "mikrofilmikasetti": "hc",
294
+ "mikrofilmikela": "hd",
295
+ "mikrofilmiliuska": "hh",
296
+ "mikrofilmirulla": "hj",
297
+ "mikrofilmisilmukkakasetti": "hb",
298
+ "mikrofilmskassett": "hc",
299
+ "mikrofilmsmagasin": "hb",
300
+ "mikrofilmsremsa": "hh",
301
+ "mikrofilmsrulle": "hj",
302
+ "mikrofilmsspole": "hd",
303
+ "mikrokortti": "he",
304
+ "mikrokortti (l\xE4pin\xE4kym\xE4t\xF6n)": "hg",
305
+ "mikrokorttikasetti": "hf",
306
+ "mikroskoperingspreparat": "pp",
307
+ "muistikortti": "ck",
308
+ "m\xE4\xE4rittelem\xE4t\xF6n": "zu",
309
+ "nide": "nc",
310
+ "object": "nr",
311
+ "objekti": "nr",
312
+ "online resource": "cr",
313
+ "onlineresurs": "cr",
314
+ "ospecificerad": "zu",
315
+ "overhead transparency": "gt",
316
+ "piirikotelo": "cb",
317
+ "piirtoheitinkalvo": "gt",
318
+ "preparaattilasi": "pp",
319
+ "raina": "gf",
320
+ "rainakasetti": "gc",
321
+ "roll": "na",
322
+ "rulla": "na",
323
+ "rulle": "na",
324
+ "sheet": "nb",
325
+ "slide": "gs",
326
+ "sound-track reel": "si",
327
+ "stereografinen kortti": "eh",
328
+ "stereografinen levy": "es",
329
+ "stereografisk skiva": "es",
330
+ "stereografiskt kort": "eh",
331
+ "stereograph card": "eh",
332
+ "stereograph disc": "es",
333
+ "tietokasetti": "cf",
334
+ "tietolevy": "cd",
335
+ "tietolevykotelo": "ce",
336
+ "tietonauhakela": "ch",
337
+ "tietonauhan silmukkakasetti": "ca",
338
+ "transparang": "gt",
339
+ "unspecified": "zu",
340
+ "verkkoaineisto": "cr",
341
+ "video cartridge": "vc",
342
+ "videocassette": "vf",
343
+ "videodisc": "vd",
344
+ "videokasetti": "vf",
345
+ "videokassett": "vf",
346
+ "videokela": "vr",
347
+ "videolevy": "vd",
348
+ "videomagasin": "vc",
349
+ "videosilmukkakasetti": "vc",
350
+ "videoskiva": "vd",
351
+ "videospole": "vr",
352
+ "videotape reel": "vr",
353
+ "volume": "nc",
354
+ "volym": "nc",
355
+ "\xE4\xE4nihihna": "sb",
356
+ "\xE4\xE4nikasetti": "ss",
357
+ "\xE4\xE4nikela": "st",
358
+ "\xE4\xE4nilankakela": "sw",
359
+ "\xE4\xE4nilevy": "sd",
360
+ "\xE4\xE4niraitakela": "si",
361
+ "\xE4\xE4nirulla": "sq",
362
+ "\xE4\xE4nisilmukkakasetti": "sg",
363
+ "\xE4\xE4nisylinteri": "se"
373
364
  };
374
-
375
- // const multimediaRegexp = /multimedia/ui;
376
-
377
- function _default() {
365
+ export default function() {
378
366
  return {
379
367
  description,
380
368
  validate,
381
369
  fix
382
370
  };
383
371
  function fix(record) {
384
- (0, _utils.nvdebug)(`FIX ${description}...`);
385
- const catLang = (0, _utils.getCatalogingLanguage)(record) || 'fin';
372
+ nvdebug(`FIX ${description}...`);
373
+ const catLang = getCatalogingLanguage(record) || "fin";
386
374
  const fields = getRelevantFields(record);
387
- fields.forEach(f => fixField(f, catLang)); // eslint-disable-line array-callback-return
388
- (0, _utils.nvdebug)(` GOT ${fields.length}...`);
389
- // FFS: we actually need newFields array here! Videogame, for example, might be
390
- // 336 ## ‡a kaksiulotteinen liikkuva kuva ‡b tdi ‡2 rdacontent
391
- // 336 ## ‡a tietokoneohjelma ‡b cop ‡2 rdacontent
392
- const res = {
393
- message: [],
394
- fix: [],
395
- valid: true
396
- };
375
+ fields.forEach((f) => fixField(f, catLang));
376
+ nvdebug(` GOT ${fields.length}...`);
377
+ const res = { message: [], fix: [], valid: true };
397
378
  return res;
398
379
  }
399
380
  function validate(record) {
400
- (0, _utils.nvdebug)(`VALIDATE ${description}...`); // NOT READY YET
401
- const catLang = (0, _utils.getCatalogingLanguage)(record) || 'fin';
381
+ nvdebug(`VALIDATE ${description}...`);
382
+ const catLang = getCatalogingLanguage(record) || "fin";
402
383
  const fields = getRelevantFields(record);
403
384
  if (fields.length === 0) {
404
- return {
405
- message: [],
406
- valid: true
407
- };
385
+ return { message: [], valid: true };
408
386
  }
409
- const originalStrings = fields.map(f => (0, _utils.fieldToString)(f));
410
- const clonedFields = fields.map(f => (0, _clone.default)(f));
411
- clonedFields.forEach(f => fixField(f, catLang)); // eslint-disable-line array-callback-return
412
- const modifiedStrings = clonedFields.map(f => (0, _utils.fieldToString)(f));
387
+ const originalStrings = fields.map((f) => fieldToString(f));
388
+ const clonedFields = fields.map((f) => clone(f));
389
+ clonedFields.forEach((f) => fixField(f, catLang));
390
+ const modifiedStrings = clonedFields.map((f) => fieldToString(f));
413
391
  const changes = originalStrings.map((str, i) => `'${str}' => '${modifiedStrings[i]}'`);
414
- return {
415
- message: changes,
416
- valid: false
417
- };
392
+ return { message: changes, valid: false };
418
393
  }
419
394
  function getA(field) {
420
- const as = field.subfields.filter(f => f.code === 'a');
395
+ const as = field.subfields.filter((f) => f.code === "a");
421
396
  if (as.length === 1) {
422
397
  return as[0];
423
398
  }
424
- return undefined;
399
+ return void 0;
425
400
  }
426
401
  function mapTermToCode(term, tag) {
427
- (0, _utils.nvdebug)(`TERM/${tag}: '${term}'`);
428
- if (tag === '336' && term in map336) {
402
+ nvdebug(`TERM/${tag}: '${term}'`);
403
+ if (tag === "336" && term in map336) {
429
404
  return map336[term];
430
405
  }
431
- if (tag === '337' && term in map337) {
406
+ if (tag === "337" && term in map337) {
432
407
  return map337[term];
433
408
  }
434
- if (tag === '338' && term in map338) {
409
+ if (tag === "338" && term in map338) {
435
410
  return map338[term];
436
411
  }
437
- return undefined;
412
+ return void 0;
438
413
  }
439
414
  function mapFieldToCode(field) {
440
415
  const subfieldA = getA(field);
441
416
  if (subfieldA) {
442
417
  return mapTermToCode(subfieldA.value, field.tag);
443
418
  }
444
- return undefined;
419
+ return void 0;
445
420
  }
446
421
  function getRelevantFields(record) {
447
- const fields = record.get('33[678]');
448
- // Currently not handline $3 etc
449
- return fields.filter(f => f.subfields.length === 1 && mapFieldToCode(f));
422
+ const fields = record.get("33[678]");
423
+ return fields.filter((f) => f.subfields.length === 1 && mapFieldToCode(f));
450
424
  }
451
425
  function tagToSubfield2(tag) {
452
- if (tag === '336') {
453
- return {
454
- 'code': '2',
455
- 'value': 'rdacontent'
456
- };
426
+ if (tag === "336") {
427
+ return { "code": "2", "value": "rdacontent" };
457
428
  }
458
- if (tag === '337') {
459
- return {
460
- 'code': '2',
461
- 'value': 'rdamedia'
462
- };
429
+ if (tag === "337") {
430
+ return { "code": "2", "value": "rdamedia" };
463
431
  }
464
- if (tag === '338') {
465
- return {
466
- 'code': '2',
467
- 'value': 'rdacarrier'
468
- };
432
+ if (tag === "338") {
433
+ return { "code": "2", "value": "rdacarrier" };
469
434
  }
470
435
  }
471
- function fixField(field, catalogingLanguage = 'fin') {
436
+ function fixField(field, catalogingLanguage = "fin") {
472
437
  const subfieldA = getA(field);
473
438
  if (!subfieldA) {
474
439
  return;
@@ -482,23 +447,20 @@ function _default() {
482
447
  return;
483
448
  }
484
449
  subfieldA.value = newTerm;
485
- field.subfields.push({
486
- 'code': 'b',
487
- 'value': code
488
- });
450
+ field.subfields.push({ "code": "b", "value": code });
489
451
  field.subfields.push(tagToSubfield2(field.tag));
490
- function codeToTerm(code) {
491
- if (field.tag === '336') {
492
- return (0, _field33XUtils.map336CodeToTerm)(code, catalogingLanguage);
452
+ function codeToTerm(code2) {
453
+ if (field.tag === "336") {
454
+ return map336CodeToTerm(code2, catalogingLanguage);
493
455
  }
494
- if (field.tag === '337') {
495
- return (0, _field33XUtils.map337CodeToTerm)(code, catalogingLanguage);
456
+ if (field.tag === "337") {
457
+ return map337CodeToTerm(code2, catalogingLanguage);
496
458
  }
497
- if (field.tag === '338') {
498
- return (0, _field33XUtils.map338CodeToTerm)(code, catalogingLanguage);
459
+ if (field.tag === "338") {
460
+ return map338CodeToTerm(code2, catalogingLanguage);
499
461
  }
500
- return undefined;
462
+ return void 0;
501
463
  }
502
464
  }
503
465
  }
504
- //# sourceMappingURL=fix-33X.js.map
466
+ //# sourceMappingURL=fix-33X.js.map