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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (563) hide show
  1. package/.github/workflows/{melinda-node-tests.yml → melinda-node-tests-and-publish.yml} +37 -12
  2. package/dist/access-rights.js +63 -91
  3. package/dist/access-rights.js.map +7 -1
  4. package/dist/access-rights.test.js +137 -0
  5. package/dist/access-rights.test.js.map +7 -0
  6. package/dist/addMissingField041.js +21 -53
  7. package/dist/addMissingField041.js.map +7 -1
  8. package/dist/addMissingField041.test.js +39 -0
  9. package/dist/addMissingField041.test.js.map +7 -0
  10. package/dist/addMissingField336.js +99 -191
  11. package/dist/addMissingField336.js.map +7 -1
  12. package/dist/addMissingField336.test.js +39 -0
  13. package/dist/addMissingField336.test.js.map +7 -0
  14. package/dist/addMissingField337.js +63 -132
  15. package/dist/addMissingField337.js.map +7 -1
  16. package/dist/addMissingField337.test.js +39 -0
  17. package/dist/addMissingField337.test.js.map +7 -0
  18. package/dist/addMissingField338.js +147 -253
  19. package/dist/addMissingField338.js.map +7 -1
  20. package/dist/addMissingField338.test.js +39 -0
  21. package/dist/addMissingField338.test.js.map +7 -0
  22. package/dist/cyrillux-usemarcon-replacement.js +119 -272
  23. package/dist/cyrillux-usemarcon-replacement.js.map +7 -1
  24. package/dist/cyrillux-usemarcon-replacement.test.js +43 -0
  25. package/dist/cyrillux-usemarcon-replacement.test.js.map +7 -0
  26. package/dist/cyrillux.js +119 -223
  27. package/dist/cyrillux.js.map +7 -1
  28. package/dist/cyrillux.test.js +39 -0
  29. package/dist/cyrillux.test.js.map +7 -0
  30. package/dist/disambiguateSeriesStatements.js +40 -81
  31. package/dist/disambiguateSeriesStatements.js.map +7 -1
  32. package/dist/disambiguateSeriesStatements.test.js +44 -0
  33. package/dist/disambiguateSeriesStatements.test.js.map +7 -0
  34. package/dist/double-commas.js +7 -14
  35. package/dist/double-commas.js.map +7 -1
  36. package/dist/double-commas.test.js +48 -0
  37. package/dist/double-commas.test.js.map +7 -0
  38. package/dist/duplicates-ind1.js +10 -31
  39. package/dist/duplicates-ind1.js.map +7 -1
  40. package/dist/duplicates-ind1.test.js +40 -0
  41. package/dist/duplicates-ind1.test.js.map +7 -0
  42. package/dist/empty-fields.js +10 -22
  43. package/dist/empty-fields.js.map +7 -1
  44. package/dist/empty-fields.test.js +129 -0
  45. package/dist/empty-fields.test.js.map +7 -0
  46. package/dist/ending-punctuation-conf.js +873 -769
  47. package/dist/ending-punctuation-conf.js.map +7 -1
  48. package/dist/ending-punctuation.js +156 -169
  49. package/dist/ending-punctuation.js.map +7 -1
  50. package/dist/ending-punctuation.test.js +2385 -0
  51. package/dist/ending-punctuation.test.js.map +7 -0
  52. package/dist/ending-whitespace.js +10 -35
  53. package/dist/ending-whitespace.js.map +7 -1
  54. package/dist/ending-whitespace.test.js +38 -0
  55. package/dist/ending-whitespace.test.js.map +7 -0
  56. package/dist/field-008-18-34-character-groups.js +40 -125
  57. package/dist/field-008-18-34-character-groups.js.map +7 -1
  58. package/dist/field-008-18-34-character-groups.test.js +45 -0
  59. package/dist/field-008-18-34-character-groups.test.js.map +7 -0
  60. package/dist/field-505-separators.js +19 -39
  61. package/dist/field-505-separators.js.map +7 -1
  62. package/dist/field-505-separators.test.js +45 -0
  63. package/dist/field-505-separators.test.js.map +7 -0
  64. package/dist/field-521-fix.js +19 -47
  65. package/dist/field-521-fix.js.map +7 -1
  66. package/dist/field-521-fix.test.js +44 -0
  67. package/dist/field-521-fix.test.js.map +7 -0
  68. package/dist/field-exclusion.js +37 -91
  69. package/dist/field-exclusion.js.map +7 -1
  70. package/dist/field-exclusion.test.js +821 -0
  71. package/dist/field-exclusion.test.js.map +7 -0
  72. package/dist/field-structure.js +52 -104
  73. package/dist/field-structure.js.map +7 -1
  74. package/dist/field-structure.test.js +587 -0
  75. package/dist/field-structure.test.js.map +7 -0
  76. package/dist/field33XUtils.js +119 -503
  77. package/dist/field33XUtils.js.map +7 -1
  78. package/dist/fields-present.js +11 -23
  79. package/dist/fields-present.js.map +7 -1
  80. package/dist/fields-present.test.js +95 -0
  81. package/dist/fields-present.test.js.map +7 -0
  82. package/dist/fix-33X.js +393 -431
  83. package/dist/fix-33X.js.map +7 -1
  84. package/dist/fix-33X.test.js +39 -0
  85. package/dist/fix-33X.test.js.map +7 -0
  86. package/dist/fix-country-codes.js +20 -50
  87. package/dist/fix-country-codes.js.map +7 -1
  88. package/dist/fix-country-codes.test.js +44 -0
  89. package/dist/fix-country-codes.test.js.map +7 -0
  90. package/dist/fix-language-codes.js +23 -53
  91. package/dist/fix-language-codes.js.map +7 -1
  92. package/dist/fix-language-codes.test.js +38 -0
  93. package/dist/fix-language-codes.test.js.map +7 -0
  94. package/dist/fixRelatorTerms.js +82 -209
  95. package/dist/fixRelatorTerms.js.map +7 -1
  96. package/dist/fixRelatorTerms.test.js +44 -0
  97. package/dist/fixRelatorTerms.test.js.map +7 -0
  98. package/dist/fixed-fields.js +21 -30
  99. package/dist/fixed-fields.js.map +7 -1
  100. package/dist/fixed-fields.test.js +87 -0
  101. package/dist/fixed-fields.test.js.map +7 -0
  102. package/dist/identical-fields.js +8 -24
  103. package/dist/identical-fields.js.map +7 -1
  104. package/dist/identical-fields.test.js +119 -0
  105. package/dist/identical-fields.test.js.map +7 -0
  106. package/dist/index.js +182 -413
  107. package/dist/index.js.map +7 -1
  108. package/dist/indicator-fixes.js +66 -94
  109. package/dist/indicator-fixes.js.map +7 -1
  110. package/dist/indicator-fixes.test.js +42 -0
  111. package/dist/indicator-fixes.test.js.map +7 -0
  112. package/dist/isbn-issn.js +71 -128
  113. package/dist/isbn-issn.js.map +7 -1
  114. package/dist/isbn-issn.test.js +398 -0
  115. package/dist/isbn-issn.test.js.map +7 -0
  116. package/dist/item-language.js +32 -65
  117. package/dist/item-language.js.map +7 -1
  118. package/dist/item-language.test.js +322 -0
  119. package/dist/item-language.test.js.map +7 -0
  120. package/dist/melindaCustomMergeFields.js +5182 -11233
  121. package/dist/melindaCustomMergeFields.js.map +7 -1
  122. package/dist/merge-fields/controlSubfields.js +75 -142
  123. package/dist/merge-fields/controlSubfields.js.map +7 -1
  124. package/dist/merge-fields/counterpartField.js +187 -379
  125. package/dist/merge-fields/counterpartField.js.map +7 -1
  126. package/dist/merge-fields/dataProvenance.js +29 -0
  127. package/dist/merge-fields/dataProvenance.js.map +7 -0
  128. package/dist/merge-fields/index.js +25 -50
  129. package/dist/merge-fields/index.js.map +7 -1
  130. package/dist/merge-fields/mergableIndicator.js +18 -51
  131. package/dist/merge-fields/mergableIndicator.js.map +7 -1
  132. package/dist/merge-fields/mergableTag.js +78 -30
  133. package/dist/merge-fields/mergableTag.js.map +7 -1
  134. package/dist/merge-fields/mergeConfig.js +66 -171
  135. package/dist/merge-fields/mergeConfig.js.map +7 -1
  136. package/dist/merge-fields/mergeConstraints.js +323 -1214
  137. package/dist/merge-fields/mergeConstraints.js.map +7 -1
  138. package/dist/merge-fields/mergeField.js +47 -111
  139. package/dist/merge-fields/mergeField.js.map +7 -1
  140. package/dist/merge-fields/mergeIndicator.js +64 -118
  141. package/dist/merge-fields/mergeIndicator.js.map +7 -1
  142. package/dist/merge-fields/mergeOrAddPostprocess.js +14 -38
  143. package/dist/merge-fields/mergeOrAddPostprocess.js.map +7 -1
  144. package/dist/merge-fields/mergeOrAddSubfield.js +62 -104
  145. package/dist/merge-fields/mergeOrAddSubfield.js.map +7 -1
  146. package/dist/merge-fields/mergeSubfield.js +47 -95
  147. package/dist/merge-fields/mergeSubfield.js.map +7 -1
  148. package/dist/merge-fields/removeDuplicateSubfields.js +18 -31
  149. package/dist/merge-fields/removeDuplicateSubfields.js.map +7 -1
  150. package/dist/merge-fields/worldKnowledge.js +15 -40
  151. package/dist/merge-fields/worldKnowledge.js.map +7 -1
  152. package/dist/merge-fields.test.js +46 -0
  153. package/dist/merge-fields.test.js.map +7 -0
  154. package/dist/mergeField500Lisapainokset.js +27 -56
  155. package/dist/mergeField500Lisapainokset.js.map +7 -1
  156. package/dist/mergeField500Lisapainokset.test.js +44 -0
  157. package/dist/mergeField500Lisapainokset.test.js.map +7 -0
  158. package/dist/mergeRelatorTermFields.js +33 -69
  159. package/dist/mergeRelatorTermFields.js.map +7 -1
  160. package/dist/mergeRelatorTermFields.test.js +44 -0
  161. package/dist/mergeRelatorTermFields.test.js.map +7 -0
  162. package/dist/modernize-502.js +23 -55
  163. package/dist/modernize-502.js.map +7 -1
  164. package/dist/modernize-502.test.js +38 -0
  165. package/dist/modernize-502.test.js.map +7 -0
  166. package/dist/multiple-subfield-0.js +23 -48
  167. package/dist/multiple-subfield-0.js.map +7 -1
  168. package/dist/multiple-subfield-0.test.js +44 -0
  169. package/dist/multiple-subfield-0.test.js.map +7 -0
  170. package/dist/non-breaking-space.js +11 -32
  171. package/dist/non-breaking-space.js.map +7 -1
  172. package/dist/non-breaking-space.test.js +38 -0
  173. package/dist/non-breaking-space.test.js.map +7 -0
  174. package/dist/normalize-dashes.js +18 -37
  175. package/dist/normalize-dashes.js.map +7 -1
  176. package/dist/normalize-dashes.test.js +44 -0
  177. package/dist/normalize-dashes.test.js.map +7 -0
  178. package/dist/normalize-identifiers.js +54 -140
  179. package/dist/normalize-identifiers.js.map +7 -1
  180. package/dist/normalize-identifiers.test.js +44 -0
  181. package/dist/normalize-identifiers.test.js.map +7 -0
  182. package/dist/normalize-qualifying-information.js +23 -48
  183. package/dist/normalize-qualifying-information.js.map +7 -1
  184. package/dist/normalize-qualifying-information.test.js +44 -0
  185. package/dist/normalize-qualifying-information.test.js.map +7 -0
  186. package/dist/normalize-utf8-diacritics.js +19 -105
  187. package/dist/normalize-utf8-diacritics.js.map +7 -1
  188. package/dist/normalize-utf8-diacritics.test.js +44 -0
  189. package/dist/normalize-utf8-diacritics.test.js.map +7 -0
  190. package/dist/normalizeFieldForComparison.js +91 -158
  191. package/dist/normalizeFieldForComparison.js.map +7 -1
  192. package/dist/normalizeSubfieldValueForComparison.js +37 -77
  193. package/dist/normalizeSubfieldValueForComparison.js.map +7 -1
  194. package/dist/prepublicationUtils.js +58 -111
  195. package/dist/prepublicationUtils.js.map +7 -1
  196. package/dist/punctuation/index.js +56 -72
  197. package/dist/punctuation/index.js.map +7 -1
  198. package/dist/punctuation/rules/aut.js +372 -331
  199. package/dist/punctuation/rules/aut.js.map +7 -1
  200. package/dist/punctuation/rules/bib.js +420 -373
  201. package/dist/punctuation/rules/bib.js.map +7 -1
  202. package/dist/punctuation/rules/index.js +7 -21
  203. package/dist/punctuation/rules/index.js.map +7 -1
  204. package/dist/punctuation.test.js +44 -0
  205. package/dist/punctuation.test.js.map +7 -0
  206. package/dist/punctuation2.js +259 -802
  207. package/dist/punctuation2.js.map +7 -1
  208. package/dist/punctuation2.test.js +44 -0
  209. package/dist/punctuation2.test.js.map +7 -0
  210. package/dist/reindexSubfield6OccurenceNumbers.js +61 -96
  211. package/dist/reindexSubfield6OccurenceNumbers.js.map +7 -1
  212. package/dist/reindexSubfield6OccurenceNumbers.test.js +44 -0
  213. package/dist/reindexSubfield6OccurenceNumbers.test.js.map +7 -0
  214. package/dist/removeDuplicateDataFields.js +102 -202
  215. package/dist/removeDuplicateDataFields.js.map +7 -1
  216. package/dist/removeDuplicateDataFields.test.js +44 -0
  217. package/dist/removeDuplicateDataFields.test.js.map +7 -0
  218. package/dist/removeInferiorDataFields.js +104 -227
  219. package/dist/removeInferiorDataFields.js.map +7 -1
  220. package/dist/removeInferiorDataFields.test.js +44 -0
  221. package/dist/removeInferiorDataFields.test.js.map +7 -0
  222. package/dist/resolvable-ext-references-melinda.js +25 -60
  223. package/dist/resolvable-ext-references-melinda.js.map +7 -1
  224. package/dist/resolvable-ext-references-melinda.test.js +160 -0
  225. package/dist/resolvable-ext-references-melinda.test.js.map +7 -0
  226. package/dist/resolveOrphanedSubfield6s.js +32 -63
  227. package/dist/resolveOrphanedSubfield6s.js.map +7 -1
  228. package/dist/resolveOrphanedSubfield6s.test.js +44 -0
  229. package/dist/resolveOrphanedSubfield6s.test.js.map +7 -0
  230. package/dist/sanitize-vocabulary-source-codes.js +27 -55
  231. package/dist/sanitize-vocabulary-source-codes.js.map +7 -1
  232. package/dist/sanitize-vocabulary-source-codes.test.js +45 -0
  233. package/dist/sanitize-vocabulary-source-codes.test.js.map +7 -0
  234. package/dist/sort-tags.js +13 -25
  235. package/dist/sort-tags.js.map +7 -1
  236. package/dist/sort-tags.test.js +261 -0
  237. package/dist/sort-tags.test.js.map +7 -0
  238. package/dist/sortFields.js +152 -222
  239. package/dist/sortFields.js.map +7 -1
  240. package/dist/sortFields.test.js +44 -0
  241. package/dist/sortFields.test.js.map +7 -0
  242. package/dist/sortRelatorTerms.js +30 -68
  243. package/dist/sortRelatorTerms.js.map +7 -1
  244. package/dist/sortRelatorTerms.test.js +44 -0
  245. package/dist/sortRelatorTerms.test.js.map +7 -0
  246. package/dist/sortSubfields.js +102 -255
  247. package/dist/sortSubfields.js.map +7 -1
  248. package/dist/sortSubfields.test.js +44 -0
  249. package/dist/sortSubfields.test.js.map +7 -0
  250. package/dist/stripPunctuation.js +13 -36
  251. package/dist/stripPunctuation.js.map +7 -1
  252. package/dist/stripPunctuation.test.js +44 -0
  253. package/dist/stripPunctuation.test.js.map +7 -0
  254. package/dist/subfield-exclusion.js +28 -75
  255. package/dist/subfield-exclusion.js.map +7 -1
  256. package/dist/subfield-exclusion.test.js +471 -0
  257. package/dist/subfield-exclusion.test.js.map +7 -0
  258. package/dist/subfield6Utils.js +107 -269
  259. package/dist/subfield6Utils.js.map +7 -1
  260. package/dist/subfield8Utils.js +26 -50
  261. package/dist/subfield8Utils.js.map +7 -1
  262. package/dist/subfieldValueNormalizations.js +40 -74
  263. package/dist/subfieldValueNormalizations.js.map +7 -1
  264. package/dist/subfieldValueNormalizations.test.js +45 -0
  265. package/dist/subfieldValueNormalizations.test.js.map +7 -0
  266. package/dist/sync-007-and-300.js +22 -53
  267. package/dist/sync-007-and-300.js.map +7 -1
  268. package/dist/sync-007-and-300.test.js +44 -0
  269. package/dist/sync-007-and-300.test.js.map +7 -0
  270. package/dist/translate-terms.js +67 -155
  271. package/dist/translate-terms.js.map +7 -1
  272. package/dist/translate-terms.test.js +54 -0
  273. package/dist/translate-terms.test.js.map +7 -0
  274. package/dist/typeOfDate-008.js +10 -25
  275. package/dist/typeOfDate-008.js.map +7 -1
  276. package/dist/typeOfDate-008.test.js +40 -0
  277. package/dist/typeOfDate-008.test.js.map +7 -0
  278. package/dist/unicode-decomposition.js +94 -107
  279. package/dist/unicode-decomposition.js.map +7 -1
  280. package/dist/unicode-decomposition.test.js +94 -0
  281. package/dist/unicode-decomposition.test.js.map +7 -0
  282. package/dist/update-field-540.js +30 -75
  283. package/dist/update-field-540.js.map +7 -1
  284. package/dist/update-field-540.test.js +44 -0
  285. package/dist/update-field-540.test.js.map +7 -0
  286. package/dist/urn.js +55 -128
  287. package/dist/urn.js.map +7 -1
  288. package/dist/urn.test.js +44 -0
  289. package/dist/urn.test.js.map +7 -0
  290. package/dist/utils.js +78 -126
  291. package/dist/utils.js.map +7 -1
  292. package/eslint.config.mjs +1 -2
  293. package/package.json +28 -101
  294. package/src/access-rights.js +1 -1
  295. package/src/{access-rights.spec.js → access-rights.test.js} +9 -10
  296. package/src/addMissingField041.js +1 -1
  297. package/src/{addMissingField336.spec.js → addMissingField041.test.js} +13 -14
  298. package/src/addMissingField336.js +3 -3
  299. package/src/{addMissingField041.spec.js → addMissingField336.test.js} +13 -14
  300. package/src/addMissingField337.js +2 -2
  301. package/src/{addMissingField337.spec.js → addMissingField337.test.js} +13 -14
  302. package/src/addMissingField338.js +2 -2
  303. package/src/{addMissingField338.spec.js → addMissingField338.test.js} +13 -14
  304. package/src/cyrillux-usemarcon-replacement.js +18 -18
  305. package/src/{cyrillux-usemarcon-replacement.spec.js → cyrillux-usemarcon-replacement.test.js} +17 -14
  306. package/src/cyrillux.js +19 -12
  307. package/src/{cyrillux.spec.js → cyrillux.test.js} +13 -14
  308. package/src/disambiguateSeriesStatements.js +2 -2
  309. package/src/{disambiguateSeriesStatements.spec.js → disambiguateSeriesStatements.test.js} +12 -13
  310. package/src/double-commas.js +1 -1
  311. package/src/{double-commas.spec.js → double-commas.test.js} +9 -11
  312. package/src/duplicates-ind1.js +1 -1
  313. package/src/{duplicates-ind1.spec.js → duplicates-ind1.test.js} +12 -13
  314. package/src/{empty-fields.spec.js → empty-fields.test.js} +11 -13
  315. package/src/ending-punctuation-conf.js +6 -5
  316. package/src/ending-punctuation.js +115 -24
  317. package/src/{ending-punctuation.spec.js → ending-punctuation.test.js} +357 -275
  318. package/src/{ending-whitespace.spec.js → ending-whitespace.test.js} +12 -13
  319. package/src/field-008-18-34-character-groups.js +2 -2
  320. package/src/{field-008-18-34-character-groups.spec.js → field-008-18-34-character-groups.test.js} +13 -13
  321. package/src/field-505-separators.js +3 -3
  322. package/src/{field-505-separators.spec.js → field-505-separators.test.js} +16 -14
  323. package/src/field-521-fix.js +2 -2
  324. package/src/{field-521-fix.spec.js → field-521-fix.test.js} +12 -13
  325. package/src/field-exclusion.js +1 -1
  326. package/src/{field-exclusion.spec.js → field-exclusion.test.js} +60 -57
  327. package/src/{field-structure.spec.js → field-structure.test.js} +29 -29
  328. package/src/{fields-present.spec.js → fields-present.test.js} +12 -15
  329. package/src/fix-33X.js +4 -4
  330. package/src/{fix-33X.spec.js → fix-33X.test.js} +13 -14
  331. package/src/fix-country-codes.js +1 -1
  332. package/src/{fix-country-codes.spec.js → fix-country-codes.test.js} +12 -13
  333. package/src/fix-language-codes.js +5 -5
  334. package/src/{fix-language-codes.spec.js → fix-language-codes.test.js} +12 -13
  335. package/src/fixRelatorTerms.js +5 -5
  336. package/src/{fixRelatorTerms.spec.js → fixRelatorTerms.test.js} +13 -13
  337. package/src/{fixed-fields.spec.js → fixed-fields.test.js} +11 -14
  338. package/src/identical-fields.js +1 -1
  339. package/src/{identical-fields.spec.js → identical-fields.test.js} +9 -11
  340. package/src/index.js +132 -59
  341. package/src/indicator-fixes.js +17 -4
  342. package/src/{indicator-fixes.spec.js → indicator-fixes.test.js} +9 -12
  343. package/src/isbn-issn.js +12 -7
  344. package/src/{isbn-issn.spec.js → isbn-issn.test.js} +20 -22
  345. package/src/{item-language.spec.js → item-language.test.js} +21 -22
  346. package/src/melindaCustomMergeFields.js +1 -1
  347. package/src/merge-fields/controlSubfields.js +1 -1
  348. package/src/merge-fields/counterpartField.js +14 -9
  349. package/src/merge-fields/dataProvenance.js +41 -0
  350. package/src/merge-fields/index.js +12 -3
  351. package/src/merge-fields/mergableIndicator.js +1 -1
  352. package/src/merge-fields/mergeField.js +8 -8
  353. package/src/merge-fields/mergeIndicator.js +1 -1
  354. package/src/merge-fields/mergeOrAddPostprocess.js +4 -4
  355. package/src/merge-fields/mergeOrAddSubfield.js +2 -2
  356. package/src/merge-fields/mergeSubfield.js +4 -4
  357. package/src/merge-fields/removeDuplicateSubfields.js +2 -2
  358. package/src/{merge-fields.spec.js → merge-fields.test.js} +18 -15
  359. package/src/mergeField500Lisapainokset.js +1 -1
  360. package/src/{mergeField500Lisapainokset.spec.js → mergeField500Lisapainokset.test.js} +12 -13
  361. package/src/mergeRelatorTermFields.js +5 -7
  362. package/src/{mergeRelatorTermFields.spec.js → mergeRelatorTermFields.test.js} +12 -13
  363. package/src/modernize-502.js +1 -1
  364. package/src/{modernize-502.spec.js → modernize-502.test.js} +12 -13
  365. package/src/multiple-subfield-0.js +3 -3
  366. package/src/{multiple-subfield-0.spec.js → multiple-subfield-0.test.js} +13 -13
  367. package/src/{non-breaking-space.spec.js → non-breaking-space.test.js} +12 -13
  368. package/src/normalize-dashes.js +2 -2
  369. package/src/{normalize-dashes.spec.js → normalize-dashes.test.js} +12 -13
  370. package/src/normalize-identifiers.js +1 -1
  371. package/src/{normalize-identifiers.spec.js → normalize-identifiers.test.js} +12 -13
  372. package/src/normalize-qualifying-information.js +2 -2
  373. package/src/{normalize-qualifying-information.spec.js → normalize-qualifying-information.test.js} +12 -13
  374. package/src/normalize-utf8-diacritics.js +2 -2
  375. package/src/{normalize-utf8-diacritics.spec.js → normalize-utf8-diacritics.test.js} +13 -13
  376. package/src/normalizeFieldForComparison.js +32 -6
  377. package/src/normalizeSubfieldValueForComparison.js +1 -1
  378. package/src/prepublicationUtils.js +4 -4
  379. package/src/punctuation/index.js +1 -1
  380. package/src/punctuation/rules/index.js +2 -2
  381. package/src/{punctuation.spec.js → punctuation.test.js} +12 -13
  382. package/src/punctuation2.js +17 -8
  383. package/src/{punctuation2.spec.js → punctuation2.test.js} +12 -13
  384. package/src/reindexSubfield6OccurenceNumbers.js +5 -7
  385. package/src/{reindexSubfield6OccurenceNumbers.spec.js → reindexSubfield6OccurenceNumbers.test.js} +12 -13
  386. package/src/removeDuplicateDataFields.js +11 -19
  387. package/src/{removeDuplicateDataFields.spec.js → removeDuplicateDataFields.test.js} +12 -13
  388. package/src/removeInferiorDataFields.js +15 -12
  389. package/src/{removeInferiorDataFields.spec.js → removeInferiorDataFields.test.js} +13 -13
  390. package/src/resolvable-ext-references-melinda.js +1 -1
  391. package/src/{resolvable-ext-references-melinda.spec.js → resolvable-ext-references-melinda.test.js} +42 -27
  392. package/src/resolveOrphanedSubfield6s.js +6 -6
  393. package/src/{resolveOrphanedSubfield6s.spec.js → resolveOrphanedSubfield6s.test.js} +13 -13
  394. package/src/sanitize-vocabulary-source-codes.js +4 -4
  395. package/src/{sanitize-vocabulary-source-codes.spec.js → sanitize-vocabulary-source-codes.test.js} +16 -14
  396. package/src/{sort-tags.spec.js → sort-tags.test.js} +9 -11
  397. package/src/sortFields.js +4 -4
  398. package/src/{sortFields.spec.js → sortFields.test.js} +12 -13
  399. package/src/sortRelatorTerms.js +3 -3
  400. package/src/{sortRelatorTerms.spec.js → sortRelatorTerms.test.js} +13 -13
  401. package/src/sortSubfields.js +8 -6
  402. package/src/{sortSubfields.spec.js → sortSubfields.test.js} +13 -13
  403. package/src/stripPunctuation.js +3 -3
  404. package/src/{stripPunctuation.spec.js → stripPunctuation.test.js} +13 -13
  405. package/src/subfield-exclusion.js +1 -1
  406. package/src/{subfield-exclusion.spec.js → subfield-exclusion.test.js} +45 -36
  407. package/src/subfield6Utils.js +6 -10
  408. package/src/subfield8Utils.js +4 -4
  409. package/src/subfieldValueNormalizations.js +3 -3
  410. package/src/{subfieldValueNormalizations.spec.js → subfieldValueNormalizations.test.js} +18 -14
  411. package/src/sync-007-and-300.js +2 -2
  412. package/src/{sync-007-and-300.spec.js → sync-007-and-300.test.js} +13 -13
  413. package/src/translate-terms.js +3 -3
  414. package/src/translate-terms.test.js +75 -0
  415. package/src/{typeOfDate-008.spec.js → typeOfDate-008.test.js} +12 -13
  416. package/src/{unicode-decomposition.spec.js → unicode-decomposition.test.js} +10 -16
  417. package/src/update-field-540.js +2 -2
  418. package/src/{update-field-540.spec.js → update-field-540.test.js} +13 -10
  419. package/src/urn.js +2 -2
  420. package/src/{urn.spec.js → urn.test.js} +12 -13
  421. package/src/utils.js +21 -5
  422. package/test-fixtures/field-505-separators/03/expectedResult.json +3 -1
  423. package/test-fixtures/field-505-separators/03/record.json +3 -0
  424. package/test-fixtures/indicator-fixes/10/expectedResult.json +11 -0
  425. package/test-fixtures/indicator-fixes/10/metadata.json +4 -0
  426. package/test-fixtures/indicator-fixes/10/record.json +11 -0
  427. package/test-fixtures/merge-fields/f05/expectedResult.json +24 -0
  428. package/test-fixtures/merge-fields/f05/metadata.json +6 -0
  429. package/test-fixtures/merge-fields/f05/record.json +30 -0
  430. package/test-fixtures/normalize-subfield-value/01/metadata.json +4 -1
  431. package/test-fixtures/normalize-subfield-value/01/record.json +3 -0
  432. package/test-fixtures/normalize-subfield-value/02/expectedResult.json +3 -1
  433. package/test-fixtures/normalize-subfield-value/02/metadata.json +2 -1
  434. package/test-fixtures/normalize-subfield-value/02/record.json +3 -0
  435. package/test-fixtures/remove-inferior-datafields/f16/expectedResult.json +12 -0
  436. package/test-fixtures/remove-inferior-datafields/f16/metadata.json +5 -0
  437. package/test-fixtures/remove-inferior-datafields/f16/record.json +14 -0
  438. package/test-fixtures/sanitize-vocabulary-source-codes/f03/expectedResult.json +3 -1
  439. package/test-fixtures/sanitize-vocabulary-source-codes/f04/expectedResult.json +3 -1
  440. package/test-fixtures/sanitize-vocabulary-source-codes/v04/metadata.json +1 -4
  441. package/test-fixtures/sanitize-vocabulary-source-codes/v04/record.json +1 -1
  442. package/test-fixtures/translate-terms-data.js +42 -0
  443. package/dist/access-rights.spec.js +0 -195
  444. package/dist/access-rights.spec.js.map +0 -1
  445. package/dist/addMissingField041.spec.js +0 -45
  446. package/dist/addMissingField041.spec.js.map +0 -1
  447. package/dist/addMissingField336.spec.js +0 -45
  448. package/dist/addMissingField336.spec.js.map +0 -1
  449. package/dist/addMissingField337.spec.js +0 -43
  450. package/dist/addMissingField337.spec.js.map +0 -1
  451. package/dist/addMissingField338.spec.js +0 -45
  452. package/dist/addMissingField338.spec.js.map +0 -1
  453. package/dist/cyrillux-usemarcon-replacement.spec.js +0 -45
  454. package/dist/cyrillux-usemarcon-replacement.spec.js.map +0 -1
  455. package/dist/cyrillux.spec.js +0 -46
  456. package/dist/cyrillux.spec.js.map +0 -1
  457. package/dist/disambiguateSeriesStatements.spec.js +0 -51
  458. package/dist/disambiguateSeriesStatements.spec.js.map +0 -1
  459. package/dist/double-commas.spec.js +0 -73
  460. package/dist/double-commas.spec.js.map +0 -1
  461. package/dist/duplicates-ind1.spec.js +0 -45
  462. package/dist/duplicates-ind1.spec.js.map +0 -1
  463. package/dist/empty-fields.spec.js +0 -118
  464. package/dist/empty-fields.spec.js.map +0 -1
  465. package/dist/ending-punctuation.spec.js +0 -2654
  466. package/dist/ending-punctuation.spec.js.map +0 -1
  467. package/dist/ending-whitespace.spec.js +0 -42
  468. package/dist/ending-whitespace.spec.js.map +0 -1
  469. package/dist/field-008-18-34-character-groups.spec.js +0 -51
  470. package/dist/field-008-18-34-character-groups.spec.js.map +0 -1
  471. package/dist/field-505-separators.spec.js +0 -51
  472. package/dist/field-505-separators.spec.js.map +0 -1
  473. package/dist/field-521-fix.spec.js +0 -51
  474. package/dist/field-521-fix.spec.js.map +0 -1
  475. package/dist/field-exclusion.spec.js +0 -1054
  476. package/dist/field-exclusion.spec.js.map +0 -1
  477. package/dist/field-structure.spec.js +0 -535
  478. package/dist/field-structure.spec.js.map +0 -1
  479. package/dist/fields-present.spec.js +0 -121
  480. package/dist/fields-present.spec.js.map +0 -1
  481. package/dist/fix-33X.spec.js +0 -45
  482. package/dist/fix-33X.spec.js.map +0 -1
  483. package/dist/fix-country-codes.spec.js +0 -51
  484. package/dist/fix-country-codes.spec.js.map +0 -1
  485. package/dist/fix-language-codes.spec.js +0 -44
  486. package/dist/fix-language-codes.spec.js.map +0 -1
  487. package/dist/fixRelatorTerms.spec.js +0 -51
  488. package/dist/fixRelatorTerms.spec.js.map +0 -1
  489. package/dist/fixed-fields.spec.js +0 -140
  490. package/dist/fixed-fields.spec.js.map +0 -1
  491. package/dist/identical-fields.spec.js +0 -99
  492. package/dist/identical-fields.spec.js.map +0 -1
  493. package/dist/indicator-fixes.spec.js +0 -51
  494. package/dist/indicator-fixes.spec.js.map +0 -1
  495. package/dist/isbn-issn.spec.js +0 -595
  496. package/dist/isbn-issn.spec.js.map +0 -1
  497. package/dist/item-language.spec.js +0 -306
  498. package/dist/item-language.spec.js.map +0 -1
  499. package/dist/melindaCustomMergeFields.json +0 -5120
  500. package/dist/merge-fields.spec.js +0 -51
  501. package/dist/merge-fields.spec.js.map +0 -1
  502. package/dist/mergeField500Lisapainokset.spec.js +0 -51
  503. package/dist/mergeField500Lisapainokset.spec.js.map +0 -1
  504. package/dist/mergeRelatorTermFields.spec.js +0 -51
  505. package/dist/mergeRelatorTermFields.spec.js.map +0 -1
  506. package/dist/modernize-502.spec.js +0 -49
  507. package/dist/modernize-502.spec.js.map +0 -1
  508. package/dist/multiple-subfield-0.spec.js +0 -51
  509. package/dist/multiple-subfield-0.spec.js.map +0 -1
  510. package/dist/non-breaking-space.spec.js +0 -42
  511. package/dist/non-breaking-space.spec.js.map +0 -1
  512. package/dist/normalize-dashes.spec.js +0 -51
  513. package/dist/normalize-dashes.spec.js.map +0 -1
  514. package/dist/normalize-identifiers.spec.js +0 -51
  515. package/dist/normalize-identifiers.spec.js.map +0 -1
  516. package/dist/normalize-qualifying-information.spec.js +0 -51
  517. package/dist/normalize-qualifying-information.spec.js.map +0 -1
  518. package/dist/normalize-utf8-diacritics.spec.js +0 -51
  519. package/dist/normalize-utf8-diacritics.spec.js.map +0 -1
  520. package/dist/punctuation.spec.js +0 -51
  521. package/dist/punctuation.spec.js.map +0 -1
  522. package/dist/punctuation2.spec.js +0 -51
  523. package/dist/punctuation2.spec.js.map +0 -1
  524. package/dist/reindexSubfield6OccurenceNumbers.spec.js +0 -51
  525. package/dist/reindexSubfield6OccurenceNumbers.spec.js.map +0 -1
  526. package/dist/removeDuplicateDataFields.spec.js +0 -51
  527. package/dist/removeDuplicateDataFields.spec.js.map +0 -1
  528. package/dist/removeInferiorDataFields.spec.js +0 -51
  529. package/dist/removeInferiorDataFields.spec.js.map +0 -1
  530. package/dist/resolvable-ext-references-melinda.spec.js +0 -166
  531. package/dist/resolvable-ext-references-melinda.spec.js.map +0 -1
  532. package/dist/resolveOrphanedSubfield6s.spec.js +0 -51
  533. package/dist/resolveOrphanedSubfield6s.spec.js.map +0 -1
  534. package/dist/sanitize-vocabulary-source-codes.spec.js +0 -51
  535. package/dist/sanitize-vocabulary-source-codes.spec.js.map +0 -1
  536. package/dist/sort-tags.spec.js +0 -207
  537. package/dist/sort-tags.spec.js.map +0 -1
  538. package/dist/sortFields.spec.js +0 -51
  539. package/dist/sortFields.spec.js.map +0 -1
  540. package/dist/sortRelatorTerms.spec.js +0 -51
  541. package/dist/sortRelatorTerms.spec.js.map +0 -1
  542. package/dist/sortSubfields.spec.js +0 -52
  543. package/dist/sortSubfields.spec.js.map +0 -1
  544. package/dist/stripPunctuation.spec.js +0 -51
  545. package/dist/stripPunctuation.spec.js.map +0 -1
  546. package/dist/subfield-exclusion.spec.js +0 -523
  547. package/dist/subfield-exclusion.spec.js.map +0 -1
  548. package/dist/subfieldValueNormalizations.spec.js +0 -51
  549. package/dist/subfieldValueNormalizations.spec.js.map +0 -1
  550. package/dist/sync-007-and-300.spec.js +0 -51
  551. package/dist/sync-007-and-300.spec.js.map +0 -1
  552. package/dist/translate-terms.spec.js +0 -51
  553. package/dist/translate-terms.spec.js.map +0 -1
  554. package/dist/typeOfDate-008.spec.js +0 -47
  555. package/dist/typeOfDate-008.spec.js.map +0 -1
  556. package/dist/unicode-decomposition.spec.js +0 -91
  557. package/dist/unicode-decomposition.spec.js.map +0 -1
  558. package/dist/update-field-540.spec.js +0 -51
  559. package/dist/update-field-540.spec.js.map +0 -1
  560. package/dist/urn.spec.js +0 -52
  561. package/dist/urn.spec.js.map +0 -1
  562. package/src/melindaCustomMergeFields.json +0 -5120
  563. package/src/translate-terms.spec.js +0 -52
@@ -1 +1,7 @@
1
- {"version":3,"file":"field33XUtils.js","names":["field336Mappings","exports","field337Mappings","field338Mappings","map33XCodeToTerm","mapping","catLang","undefined","fin","map336CodeToTerm","code","filter","m","map337CodeToTerm","map338CodeToTerm","getFormOfItem","record","f008Value","get","map","field","value","length","pos","getFormOfItemPosition","isMP","isVM","getTitleMedium","f245","h","subfields","sf"],"sources":["../src/field33XUtils.js"],"sourcesContent":["\nexport const field336Mappings = [\n {'code': 'crd', 'fin': 'kartografinen data', 'swe': 'kartografisk data', 'eng': 'cartographic dataset'},\n {'code': 'cri', 'fin': 'kartografinen kuva', 'swe': 'kartografisk bild', 'eng': 'cartographic image'},\n {'code': 'crm', 'fin': 'kartografinen liikkuva kuva', 'swe': 'kartografisk rörlig bild', 'eng': 'cartographic moving image'},\n {'code': 'crt', 'fin': 'kartografinen taktiili kuva', 'swe': 'kartografisk taktil bild', 'eng': 'cartographic tactile image'},\n {'code': 'crn', 'fin': 'kartografinen taktiili kolmiulotteinen muoto', 'swe': 'kartografisk taktil tredimensionell form', 'eng': 'cartographic tactile three-dimensional form'},\n {'code': 'crf', 'fin': 'kartografinen kolmiulotteinen muoto', 'swe': 'kartografisk tredimensionell form', 'eng': 'cartographic three-dimensional form'},\n {'code': 'cod', 'fin': 'digitaalinen data', 'swe': 'digitalt dataset', 'eng': 'computer dataset'},\n {'code': 'cop', 'fin': 'tietokoneohjelma', 'swe': 'datorprogram', 'eng': 'computer program'},\n {'code': 'ntv', 'fin': 'liikenotaatio', 'swe': 'rörelsenotation', 'eng': 'notated movement'},\n {'code': 'ntm', 'fin': 'nuottikirjoitus', 'swe': 'noterad musik', 'eng': 'notated music'},\n {'code': 'prm', 'fin': 'esitetty musiikki', 'swe': 'framförd musik', 'eng': 'performed music'},\n {'code': 'snd', 'fin': 'ääni', 'swe': 'ljud', 'eng': 'sounds', 'ger': 'Geräusche'},\n {'code': 'spw', 'fin': 'puhe', 'swe': 'tal', 'eng': 'spoken word', 'ger': 'gesprochenes Wort'},\n {'code': 'sti', 'fin': 'stillkuva', 'swe': 'stillbild', 'eng': 'still image', 'ger': 'unbewegtes Bild'},\n {'code': 'tci', 'fin': 'taktiili kuva', 'swe': 'taktil bild', 'eng': 'tactile image'},\n {'code': 'tcm', 'fin': 'taktiili nuottikirjoitus', 'swe': 'taktil musiknotation', 'eng': 'tactile notated music'},\n {'code': 'tcn', 'fin': 'taktiili liikenotaatio', 'swe': 'taktil noterad rörelse', 'eng': 'tactile notated movement'},\n {'code': 'tct', 'fin': 'taktiili teksti', 'swe': 'taktil text', 'eng': 'tactile text', 'fre': 'texte tactile'},\n {'code': 'tcf', 'fin': 'taktiili kolmiulotteinen muoto', 'swe': 'taktil tredimensionell form', 'eng': 'tactile three-dimensional form'},\n {'code': 'txt', 'fin': 'teksti', 'swe': 'text', 'eng': 'text', 'ger': 'Text', 'fre': 'texte'},\n {'code': 'tdf', 'fin': 'kolmiulotteinen muoto', 'swe': 'tredimensionell form', 'eng': 'three-dimensional form'},\n {'code': 'tdm', 'fin': 'kolmiulotteinen liikkuva kuva', 'swe': 'tredimensionell rörlig bild', 'eng': 'three-dimensional moving image'},\n {'code': 'tdi', 'fin': 'kaksiulotteinen liikkuva kuva', 'swe': 'tvådimensionell rörlig bild', 'eng': 'two-dimensional moving image'},\n {'code': 'xxx', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'zzz', 'fin': 'määrittelemätön', 'swe': 'ospecificerad', 'eng': 'unspecified'}\n];\n\nexport const field337Mappings = [\n {'code': 's', 'fin': 'audio', 'swe': 'audio', 'eng': 'audio'},\n {'code': 'c', 'fin': 'tietokonekäyttöinen', 'swe': 'dator', 'eng': 'computer'},\n {'code': 'h', 'fin': 'mikromuoto', 'swe': 'mikroform', 'eng': 'microform'},\n {'code': 'p', 'fin': 'mikroskooppinen', 'swe': 'mikroskopisk', 'eng': 'microscopic'},\n {'code': 'g', 'fin': 'heijastettava', 'swe': 'projicerad', 'eng': 'projected'},\n {'code': 'e', 'fin': 'stereografinen', 'swe': 'stereografisk', 'eng': 'stereographic'},\n {'code': 'n', 'fin': 'käytettävissä ilman laitetta', 'swe': 'omedierad', 'eng': 'unmediated'},\n {'code': 'v', 'fin': 'video', 'swe': 'video', 'eng': 'video'},\n {'code': 'x', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'z', 'fin': 'määrittelemätön', 'swe': 'ospecificerad', 'eng': 'unspecified'}\n];\n\nexport const field338Mappings = [\n {'code': 'ca', 'fin': 'tietonauhan silmukkakasetti', 'swe': 'datorbandmagasin', 'eng': 'computer tape cartridge'},\n {'code': 'cb', 'fin': 'piirikotelo', 'swe': 'datorminnesmodul', 'eng': 'computer cartridge'},\n {'code': 'cd', 'fin': 'tietolevy', 'swe': 'datorskiva', 'eng': 'computer disc'},\n {'code': 'ce', 'fin': 'tietolevykotelo', 'swe': 'datorskivmagasin', 'eng': 'computer disc cartridge'},\n {'code': 'cf', 'fin': 'tietokasetti', 'swe': 'datorkassett', 'eng': 'computer tape cassette'},\n {'code': 'ch', 'fin': 'tietonauhakela', 'swe': 'datorbandspole', 'eng': 'computer tape reel'},\n {'code': 'ck', 'fin': 'muistikortti', 'swe': 'datorkort', 'eng': 'computer card'},\n {'code': 'cr', 'fin': 'verkkoaineisto', 'swe': 'onlineresurs', 'eng': 'online resource'},\n {'code': 'cz', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'eh', 'fin': 'stereografinen kortti', 'swe': 'stereografiskt kort', 'eng': 'stereograph card'},\n {'code': 'es', 'fin': 'stereografinen levy', 'swe': 'stereografisk skiva', 'eng': 'stereograph disc'},\n {'code': 'ez', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'gc', 'fin': 'rainakasetti', 'swe': 'bildbandsmagasin', 'eng': 'filmstrip cartridge'},\n {'code': 'gd', 'fin': 'filmiliuska', 'swe': 'filmremsa', 'eng': 'filmslip'},\n {'code': 'gf', 'fin': 'raina', 'swe': 'bildband', 'eng': 'filmstrip'},\n {'code': 'gs', 'fin': 'dia', 'swe': 'diabild', 'eng': 'slide'},\n {'code': 'gt', 'fin': 'piirtoheitinkalvo', 'swe': 'transparang', 'eng': 'overhead transparency'},\n {'code': 'ha', 'fin': 'ikkunakortti', 'swe': 'fönsterkort', 'eng': 'aperture card'},\n {'code': 'hb', 'fin': 'mikrofilmisilmukkakasetti', 'swe': 'mikrofilmsmagasin', 'eng': 'microfilm cartridge'},\n {'code': 'hc', 'fin': 'mikrofilmikasetti', 'swe': 'mikrofilmskassett', 'eng': 'microfilm cassette'},\n {'code': 'hd', 'fin': 'mikrofilmikela', 'swe': 'mikrofilmsspole', 'eng': 'microfilm reel'},\n {'code': 'he', 'fin': 'mikrokortti', 'swe': 'mikrofiche', 'eng': 'microfiche'},\n {'code': 'hf', 'fin': 'mikrokorttikasetti', 'swe': 'mikrofichekassett', 'eng': 'microfiche cassette'},\n {'code': 'hg', 'fin': 'mikrokortti (läpinäkymätön)', 'swe': 'mikrofiche (ogenomskinlig)', 'eng': 'microopaque'},\n {'code': 'hh', 'fin': 'mikrofilmiliuska', 'swe': 'mikrofilmsremsa', 'eng': 'microfilm slip'},\n {'code': 'hj', 'fin': 'mikrofilmirulla', 'swe': 'mikrofilmsrulle', 'eng': 'microfilm roll'},\n {'code': 'hz', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'mc', 'fin': 'filmisilmukkakasetti', 'swe': 'filmmagasin', 'eng': 'film cartridge'},\n {'code': 'mf', 'fin': 'filmikasetti', 'swe': 'filmkassett', 'eng': 'film cassette'},\n {'code': 'mo', 'fin': 'filmirulla', 'swe': 'filmrulle', 'eng': 'film roll'},\n {'code': 'mr', 'fin': 'filmikela', 'swe': 'filmspole', 'eng': 'film reel'},\n {'code': 'mz', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'na', 'fin': 'rulla', 'swe': 'rulle', 'eng': 'roll'},\n {'code': 'nb', 'fin': 'arkki', 'swe': 'ark', 'eng': 'sheet'},\n {'code': 'nc', 'fin': 'nide', 'swe': 'volym', 'eng': 'volume'},\n {'code': 'nn', 'fin': 'lehtiötaulu', 'swe': 'blädderblock', 'eng': 'flipchart'},\n {'code': 'no', 'fin': 'kortti', 'swe': 'kort', 'eng': 'card'},\n {'code': 'nr', 'fin': 'objekti', 'swe': 'föremål', 'eng': 'object'},\n {'code': 'nz', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'pp', 'fin': 'preparaattilasi', 'swe': 'mikroskoperingspreparat', 'eng': 'microscope slide'},\n {'code': 'pz', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'sb', 'fin': 'äänihihna', 'swe': 'ljudslinga', 'eng': 'audio belt'},\n {'code': 'sd', 'fin': 'äänilevy', 'swe': 'ljudskiva', 'eng': 'audio disc'},\n {'code': 'se', 'fin': 'äänisylinteri', 'swe': 'ljudcylinder', 'eng': 'audio cylinder'},\n {'code': 'sg', 'fin': 'äänisilmukkakasetti', 'swe': 'ljudmagasin', 'eng': 'audio cartridge'},\n {'code': 'si', 'fin': 'ääniraitakela', 'swe': 'filmljudspole', 'eng': 'sound-track reel'},\n {'code': 'sq', 'fin': 'äänirulla', 'swe': 'ljudrulle', 'eng': 'audio roll'},\n {'code': 'ss', 'fin': 'äänikasetti', 'swe': 'ljudkassett', 'eng': 'audiocassette'},\n {'code': 'st', 'fin': 'äänikela', 'swe': 'ljudspole', 'eng': 'audiotape reel'},\n {'code': 'sw', 'fin': 'äänilankakela', 'swe': 'ljudtråd', 'eng': 'audio wire reel'},\n {'code': 'sz', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'vc', 'fin': 'videosilmukkakasetti', 'swe': 'videomagasin', 'eng': 'video cartridge'},\n {'code': 'vd', 'fin': 'videolevy', 'swe': 'videoskiva', 'eng': 'videodisc'},\n {'code': 'vf', 'fin': 'videokasetti', 'swe': 'videokassett', 'eng': 'videocassette'},\n {'code': 'vr', 'fin': 'videokela', 'swe': 'videospole', 'eng': 'videotape reel'},\n {'code': 'vz', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'zu', 'fin': 'määrittelemätön', 'swe': 'ospecificerad', 'eng': 'unspecified'}\n];\n\n\nfunction map33XCodeToTerm(mapping, catLang = 'fin') {\n if (!mapping) {\n return undefined;\n }\n if (catLang in mapping) {\n return mapping[catLang];\n }\n if ('fin' in mapping) {\n return mapping.fin; // Default to Finnish (which should be complete, knock-knock)\n }\n return undefined;\n}\n\nexport function map336CodeToTerm(code, catLang = 'fin') {\n const [mapping] = field336Mappings.filter(m => m.code === code);\n return map33XCodeToTerm(mapping, catLang);\n}\n\nexport function map337CodeToTerm(code, catLang = 'fin') {\n const [mapping] = field337Mappings.filter(m => m.code === code);\n return map33XCodeToTerm(mapping, catLang);\n}\n\nexport function map338CodeToTerm(code, catLang = 'fin') {\n const [mapping] = field338Mappings.filter(m => m.code === code);\n return map33XCodeToTerm(mapping, catLang);\n}\n\nexport function getFormOfItem(record) {\n const [f008Value] = record.get('008').map(field => field.value);\n if (f008Value && f008Value.length === 40) {\n const pos = getFormOfItemPosition(record);\n return f008Value[pos];\n }\n return '|';\n}\n\nexport function getFormOfItemPosition(record) {\n if (record.isMP() || record.isVM()) {\n return 29;\n }\n return 23;\n}\n\nexport function getTitleMedium(record) {\n // Get 245$h. Very old and deprecated practise...\n const [f245] = record.get('245');\n if (!f245) {\n return undefined;\n }\n const [h] = f245.subfields.filter(sf => sf.code === 'h');\n return h ? h.value : undefined;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/field33XUtils.js"],
4
+ "sourcesContent": ["\nexport const field336Mappings = [\n {'code': 'crd', 'fin': 'kartografinen data', 'swe': 'kartografisk data', 'eng': 'cartographic dataset'},\n {'code': 'cri', 'fin': 'kartografinen kuva', 'swe': 'kartografisk bild', 'eng': 'cartographic image'},\n {'code': 'crm', 'fin': 'kartografinen liikkuva kuva', 'swe': 'kartografisk r\u00F6rlig bild', 'eng': 'cartographic moving image'},\n {'code': 'crt', 'fin': 'kartografinen taktiili kuva', 'swe': 'kartografisk taktil bild', 'eng': 'cartographic tactile image'},\n {'code': 'crn', 'fin': 'kartografinen taktiili kolmiulotteinen muoto', 'swe': 'kartografisk taktil tredimensionell form', 'eng': 'cartographic tactile three-dimensional form'},\n {'code': 'crf', 'fin': 'kartografinen kolmiulotteinen muoto', 'swe': 'kartografisk tredimensionell form', 'eng': 'cartographic three-dimensional form'},\n {'code': 'cod', 'fin': 'digitaalinen data', 'swe': 'digitalt dataset', 'eng': 'computer dataset'},\n {'code': 'cop', 'fin': 'tietokoneohjelma', 'swe': 'datorprogram', 'eng': 'computer program'},\n {'code': 'ntv', 'fin': 'liikenotaatio', 'swe': 'r\u00F6relsenotation', 'eng': 'notated movement'},\n {'code': 'ntm', 'fin': 'nuottikirjoitus', 'swe': 'noterad musik', 'eng': 'notated music'},\n {'code': 'prm', 'fin': 'esitetty musiikki', 'swe': 'framf\u00F6rd musik', 'eng': 'performed music'},\n {'code': 'snd', 'fin': '\u00E4\u00E4ni', 'swe': 'ljud', 'eng': 'sounds', 'ger': 'Ger\u00E4usche'},\n {'code': 'spw', 'fin': 'puhe', 'swe': 'tal', 'eng': 'spoken word', 'ger': 'gesprochenes Wort'},\n {'code': 'sti', 'fin': 'stillkuva', 'swe': 'stillbild', 'eng': 'still image', 'ger': 'unbewegtes Bild'},\n {'code': 'tci', 'fin': 'taktiili kuva', 'swe': 'taktil bild', 'eng': 'tactile image'},\n {'code': 'tcm', 'fin': 'taktiili nuottikirjoitus', 'swe': 'taktil musiknotation', 'eng': 'tactile notated music'},\n {'code': 'tcn', 'fin': 'taktiili liikenotaatio', 'swe': 'taktil noterad r\u00F6relse', 'eng': 'tactile notated movement'},\n {'code': 'tct', 'fin': 'taktiili teksti', 'swe': 'taktil text', 'eng': 'tactile text', 'fre': 'texte tactile'},\n {'code': 'tcf', 'fin': 'taktiili kolmiulotteinen muoto', 'swe': 'taktil tredimensionell form', 'eng': 'tactile three-dimensional form'},\n {'code': 'txt', 'fin': 'teksti', 'swe': 'text', 'eng': 'text', 'ger': 'Text', 'fre': 'texte'},\n {'code': 'tdf', 'fin': 'kolmiulotteinen muoto', 'swe': 'tredimensionell form', 'eng': 'three-dimensional form'},\n {'code': 'tdm', 'fin': 'kolmiulotteinen liikkuva kuva', 'swe': 'tredimensionell r\u00F6rlig bild', 'eng': 'three-dimensional moving image'},\n {'code': 'tdi', 'fin': 'kaksiulotteinen liikkuva kuva', 'swe': 'tv\u00E5dimensionell r\u00F6rlig bild', 'eng': 'two-dimensional moving image'},\n {'code': 'xxx', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'zzz', 'fin': 'm\u00E4\u00E4rittelem\u00E4t\u00F6n', 'swe': 'ospecificerad', 'eng': 'unspecified'}\n];\n\nexport const field337Mappings = [\n {'code': 's', 'fin': 'audio', 'swe': 'audio', 'eng': 'audio'},\n {'code': 'c', 'fin': 'tietokonek\u00E4ytt\u00F6inen', 'swe': 'dator', 'eng': 'computer'},\n {'code': 'h', 'fin': 'mikromuoto', 'swe': 'mikroform', 'eng': 'microform'},\n {'code': 'p', 'fin': 'mikroskooppinen', 'swe': 'mikroskopisk', 'eng': 'microscopic'},\n {'code': 'g', 'fin': 'heijastettava', 'swe': 'projicerad', 'eng': 'projected'},\n {'code': 'e', 'fin': 'stereografinen', 'swe': 'stereografisk', 'eng': 'stereographic'},\n {'code': 'n', 'fin': 'k\u00E4ytett\u00E4viss\u00E4 ilman laitetta', 'swe': 'omedierad', 'eng': 'unmediated'},\n {'code': 'v', 'fin': 'video', 'swe': 'video', 'eng': 'video'},\n {'code': 'x', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'z', 'fin': 'm\u00E4\u00E4rittelem\u00E4t\u00F6n', 'swe': 'ospecificerad', 'eng': 'unspecified'}\n];\n\nexport const field338Mappings = [\n {'code': 'ca', 'fin': 'tietonauhan silmukkakasetti', 'swe': 'datorbandmagasin', 'eng': 'computer tape cartridge'},\n {'code': 'cb', 'fin': 'piirikotelo', 'swe': 'datorminnesmodul', 'eng': 'computer cartridge'},\n {'code': 'cd', 'fin': 'tietolevy', 'swe': 'datorskiva', 'eng': 'computer disc'},\n {'code': 'ce', 'fin': 'tietolevykotelo', 'swe': 'datorskivmagasin', 'eng': 'computer disc cartridge'},\n {'code': 'cf', 'fin': 'tietokasetti', 'swe': 'datorkassett', 'eng': 'computer tape cassette'},\n {'code': 'ch', 'fin': 'tietonauhakela', 'swe': 'datorbandspole', 'eng': 'computer tape reel'},\n {'code': 'ck', 'fin': 'muistikortti', 'swe': 'datorkort', 'eng': 'computer card'},\n {'code': 'cr', 'fin': 'verkkoaineisto', 'swe': 'onlineresurs', 'eng': 'online resource'},\n {'code': 'cz', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'eh', 'fin': 'stereografinen kortti', 'swe': 'stereografiskt kort', 'eng': 'stereograph card'},\n {'code': 'es', 'fin': 'stereografinen levy', 'swe': 'stereografisk skiva', 'eng': 'stereograph disc'},\n {'code': 'ez', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'gc', 'fin': 'rainakasetti', 'swe': 'bildbandsmagasin', 'eng': 'filmstrip cartridge'},\n {'code': 'gd', 'fin': 'filmiliuska', 'swe': 'filmremsa', 'eng': 'filmslip'},\n {'code': 'gf', 'fin': 'raina', 'swe': 'bildband', 'eng': 'filmstrip'},\n {'code': 'gs', 'fin': 'dia', 'swe': 'diabild', 'eng': 'slide'},\n {'code': 'gt', 'fin': 'piirtoheitinkalvo', 'swe': 'transparang', 'eng': 'overhead transparency'},\n {'code': 'ha', 'fin': 'ikkunakortti', 'swe': 'f\u00F6nsterkort', 'eng': 'aperture card'},\n {'code': 'hb', 'fin': 'mikrofilmisilmukkakasetti', 'swe': 'mikrofilmsmagasin', 'eng': 'microfilm cartridge'},\n {'code': 'hc', 'fin': 'mikrofilmikasetti', 'swe': 'mikrofilmskassett', 'eng': 'microfilm cassette'},\n {'code': 'hd', 'fin': 'mikrofilmikela', 'swe': 'mikrofilmsspole', 'eng': 'microfilm reel'},\n {'code': 'he', 'fin': 'mikrokortti', 'swe': 'mikrofiche', 'eng': 'microfiche'},\n {'code': 'hf', 'fin': 'mikrokorttikasetti', 'swe': 'mikrofichekassett', 'eng': 'microfiche cassette'},\n {'code': 'hg', 'fin': 'mikrokortti (l\u00E4pin\u00E4kym\u00E4t\u00F6n)', 'swe': 'mikrofiche (ogenomskinlig)', 'eng': 'microopaque'},\n {'code': 'hh', 'fin': 'mikrofilmiliuska', 'swe': 'mikrofilmsremsa', 'eng': 'microfilm slip'},\n {'code': 'hj', 'fin': 'mikrofilmirulla', 'swe': 'mikrofilmsrulle', 'eng': 'microfilm roll'},\n {'code': 'hz', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'mc', 'fin': 'filmisilmukkakasetti', 'swe': 'filmmagasin', 'eng': 'film cartridge'},\n {'code': 'mf', 'fin': 'filmikasetti', 'swe': 'filmkassett', 'eng': 'film cassette'},\n {'code': 'mo', 'fin': 'filmirulla', 'swe': 'filmrulle', 'eng': 'film roll'},\n {'code': 'mr', 'fin': 'filmikela', 'swe': 'filmspole', 'eng': 'film reel'},\n {'code': 'mz', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'na', 'fin': 'rulla', 'swe': 'rulle', 'eng': 'roll'},\n {'code': 'nb', 'fin': 'arkki', 'swe': 'ark', 'eng': 'sheet'},\n {'code': 'nc', 'fin': 'nide', 'swe': 'volym', 'eng': 'volume'},\n {'code': 'nn', 'fin': 'lehti\u00F6taulu', 'swe': 'bl\u00E4dderblock', 'eng': 'flipchart'},\n {'code': 'no', 'fin': 'kortti', 'swe': 'kort', 'eng': 'card'},\n {'code': 'nr', 'fin': 'objekti', 'swe': 'f\u00F6rem\u00E5l', 'eng': 'object'},\n {'code': 'nz', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'pp', 'fin': 'preparaattilasi', 'swe': 'mikroskoperingspreparat', 'eng': 'microscope slide'},\n {'code': 'pz', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'sb', 'fin': '\u00E4\u00E4nihihna', 'swe': 'ljudslinga', 'eng': 'audio belt'},\n {'code': 'sd', 'fin': '\u00E4\u00E4nilevy', 'swe': 'ljudskiva', 'eng': 'audio disc'},\n {'code': 'se', 'fin': '\u00E4\u00E4nisylinteri', 'swe': 'ljudcylinder', 'eng': 'audio cylinder'},\n {'code': 'sg', 'fin': '\u00E4\u00E4nisilmukkakasetti', 'swe': 'ljudmagasin', 'eng': 'audio cartridge'},\n {'code': 'si', 'fin': '\u00E4\u00E4niraitakela', 'swe': 'filmljudspole', 'eng': 'sound-track reel'},\n {'code': 'sq', 'fin': '\u00E4\u00E4nirulla', 'swe': 'ljudrulle', 'eng': 'audio roll'},\n {'code': 'ss', 'fin': '\u00E4\u00E4nikasetti', 'swe': 'ljudkassett', 'eng': 'audiocassette'},\n {'code': 'st', 'fin': '\u00E4\u00E4nikela', 'swe': 'ljudspole', 'eng': 'audiotape reel'},\n {'code': 'sw', 'fin': '\u00E4\u00E4nilankakela', 'swe': 'ljudtr\u00E5d', 'eng': 'audio wire reel'},\n {'code': 'sz', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'vc', 'fin': 'videosilmukkakasetti', 'swe': 'videomagasin', 'eng': 'video cartridge'},\n {'code': 'vd', 'fin': 'videolevy', 'swe': 'videoskiva', 'eng': 'videodisc'},\n {'code': 'vf', 'fin': 'videokasetti', 'swe': 'videokassett', 'eng': 'videocassette'},\n {'code': 'vr', 'fin': 'videokela', 'swe': 'videospole', 'eng': 'videotape reel'},\n {'code': 'vz', 'fin': 'muu', 'swe': 'annan', 'eng': 'other'},\n {'code': 'zu', 'fin': 'm\u00E4\u00E4rittelem\u00E4t\u00F6n', 'swe': 'ospecificerad', 'eng': 'unspecified'}\n];\n\n\nfunction map33XCodeToTerm(mapping, catLang = 'fin') {\n if (!mapping) {\n return undefined;\n }\n if (catLang in mapping) {\n return mapping[catLang];\n }\n if ('fin' in mapping) {\n return mapping.fin; // Default to Finnish (which should be complete, knock-knock)\n }\n return undefined;\n}\n\nexport function map336CodeToTerm(code, catLang = 'fin') {\n const [mapping] = field336Mappings.filter(m => m.code === code);\n return map33XCodeToTerm(mapping, catLang);\n}\n\nexport function map337CodeToTerm(code, catLang = 'fin') {\n const [mapping] = field337Mappings.filter(m => m.code === code);\n return map33XCodeToTerm(mapping, catLang);\n}\n\nexport function map338CodeToTerm(code, catLang = 'fin') {\n const [mapping] = field338Mappings.filter(m => m.code === code);\n return map33XCodeToTerm(mapping, catLang);\n}\n\nexport function getFormOfItem(record) {\n const [f008Value] = record.get('008').map(field => field.value);\n if (f008Value && f008Value.length === 40) {\n const pos = getFormOfItemPosition(record);\n return f008Value[pos];\n }\n return '|';\n}\n\nexport function getFormOfItemPosition(record) {\n if (record.isMP() || record.isVM()) {\n return 29;\n }\n return 23;\n}\n\nexport function getTitleMedium(record) {\n // Get 245$h. Very old and deprecated practise...\n const [f245] = record.get('245');\n if (!f245) {\n return undefined;\n }\n const [h] = f245.subfields.filter(sf => sf.code === 'h');\n return h ? h.value : undefined;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,32 +1,20 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
- function _default(tagPatterns) {
1
+ export default function(tagPatterns) {
8
2
  if (Array.isArray(tagPatterns)) {
9
3
  return {
10
- description: 'Checks whether the configured fields are present in the record',
4
+ description: "Checks whether the configured fields are present in the record",
11
5
  validate
12
6
  };
13
7
  }
14
- throw new Error('No tag pattern array provided');
8
+ throw new Error("No tag pattern array provided");
15
9
  function validate(record) {
16
- const missingFields = tagPatterns.map(pattern => {
17
- const result = record.fields.find(field => pattern.test(field.tag));
18
- return result ? undefined : pattern;
10
+ const missingFields = tagPatterns.map((pattern) => {
11
+ const result = record.fields.find((field) => pattern.test(field.tag));
12
+ return result ? void 0 : pattern;
19
13
  });
20
- const isEmpty = missingFields.every(index => index === undefined);
21
- let errorMessage = ['The following tag patterns are not present in the record tag field: '];
22
- errorMessage = errorMessage.concat(missingFields).join(' ');
23
- return isEmpty ? {
24
- valid: true,
25
- messages: []
26
- } : {
27
- valid: false,
28
- messages: [errorMessage]
29
- };
14
+ const isEmpty = missingFields.every((index) => index === void 0);
15
+ let errorMessage = ["The following tag patterns are not present in the record tag field: "];
16
+ errorMessage = errorMessage.concat(missingFields).join(" ");
17
+ return isEmpty ? { valid: true, messages: [] } : { valid: false, messages: [errorMessage] };
30
18
  }
31
19
  }
32
- //# sourceMappingURL=fields-present.js.map
20
+ //# sourceMappingURL=fields-present.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"fields-present.js","names":["_default","tagPatterns","Array","isArray","description","validate","Error","record","missingFields","map","pattern","result","fields","find","field","test","tag","undefined","isEmpty","every","index","errorMessage","concat","join","valid","messages"],"sources":["../src/fields-present.js"],"sourcesContent":["export default function (tagPatterns) {\n if (Array.isArray(tagPatterns)) {\n return {\n description:\n 'Checks whether the configured fields are present in the record',\n validate\n };\n }\n\n throw new Error('No tag pattern array provided');\n\n function validate(record) {\n const missingFields = tagPatterns.map(pattern => {\n const result = record.fields.find(field => pattern.test(field.tag));\n return result ? undefined : pattern;\n });\n const isEmpty = missingFields.every(index => index === undefined);\n let errorMessage = ['The following tag patterns are not present in the record tag field: '];\n errorMessage = errorMessage.concat(missingFields).join(' ');\n\n return isEmpty ? {valid: true, messages: []} : {valid: false, messages: [errorMessage]};\n }\n}\n"],"mappings":";;;;;;AAAe,SAAAA,SAAUC,WAAW,EAAE;EACpC,IAAIC,KAAK,CAACC,OAAO,CAACF,WAAW,CAAC,EAAE;IAC9B,OAAO;MACLG,WAAW,EACT,gEAAgE;MAClEC;IACF,CAAC;EACH;EAEA,MAAM,IAAIC,KAAK,CAAC,+BAA+B,CAAC;EAEhD,SAASD,QAAQA,CAACE,MAAM,EAAE;IACxB,MAAMC,aAAa,GAAGP,WAAW,CAACQ,GAAG,CAACC,OAAO,IAAI;MAC/C,MAAMC,MAAM,GAAGJ,MAAM,CAACK,MAAM,CAACC,IAAI,CAACC,KAAK,IAAIJ,OAAO,CAACK,IAAI,CAACD,KAAK,CAACE,GAAG,CAAC,CAAC;MACnE,OAAOL,MAAM,GAAGM,SAAS,GAAGP,OAAO;IACrC,CAAC,CAAC;IACF,MAAMQ,OAAO,GAAGV,aAAa,CAACW,KAAK,CAACC,KAAK,IAAIA,KAAK,KAAKH,SAAS,CAAC;IACjE,IAAII,YAAY,GAAG,CAAC,sEAAsE,CAAC;IAC3FA,YAAY,GAAGA,YAAY,CAACC,MAAM,CAACd,aAAa,CAAC,CAACe,IAAI,CAAC,GAAG,CAAC;IAE3D,OAAOL,OAAO,GAAG;MAACM,KAAK,EAAE,IAAI;MAAEC,QAAQ,EAAE;IAAE,CAAC,GAAG;MAACD,KAAK,EAAE,KAAK;MAAEC,QAAQ,EAAE,CAACJ,YAAY;IAAC,CAAC;EACzF;AACF","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/fields-present.js"],
4
+ "sourcesContent": ["export default function (tagPatterns) {\n if (Array.isArray(tagPatterns)) {\n return {\n description:\n 'Checks whether the configured fields are present in the record',\n validate\n };\n }\n\n throw new Error('No tag pattern array provided');\n\n function validate(record) {\n const missingFields = tagPatterns.map(pattern => {\n const result = record.fields.find(field => pattern.test(field.tag));\n return result ? undefined : pattern;\n });\n const isEmpty = missingFields.every(index => index === undefined);\n let errorMessage = ['The following tag patterns are not present in the record tag field: '];\n errorMessage = errorMessage.concat(missingFields).join(' ');\n\n return isEmpty ? {valid: true, messages: []} : {valid: false, messages: [errorMessage]};\n }\n}\n"],
5
+ "mappings": "AAAA,wBAAyB,aAAa;AACpC,MAAI,MAAM,QAAQ,WAAW,GAAG;AAC9B,WAAO;AAAA,MACL,aACE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,IAAI,MAAM,+BAA+B;AAE/C,WAAS,SAAS,QAAQ;AACxB,UAAM,gBAAgB,YAAY,IAAI,aAAW;AAC/C,YAAM,SAAS,OAAO,OAAO,KAAK,WAAS,QAAQ,KAAK,MAAM,GAAG,CAAC;AAClE,aAAO,SAAS,SAAY;AAAA,IAC9B,CAAC;AACD,UAAM,UAAU,cAAc,MAAM,WAAS,UAAU,MAAS;AAChE,QAAI,eAAe,CAAC,sEAAsE;AAC1F,mBAAe,aAAa,OAAO,aAAa,EAAE,KAAK,GAAG;AAE1D,WAAO,UAAU,EAAC,OAAO,MAAM,UAAU,CAAC,EAAC,IAAI,EAAC,OAAO,OAAO,UAAU,CAAC,YAAY,EAAC;AAAA,EACxF;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,95 @@
1
+ import { describe, it } from "node:test";
2
+ import assert from "node:assert";
3
+ import { MarcRecord } from "@natlibfi/marc-record";
4
+ import validatorFactory from "../src/fields-present.js";
5
+ describe("fields-present", () => {
6
+ it("Creates a validator", async () => {
7
+ const validator = await validatorFactory([/^500$/u, /^400$/u]);
8
+ assert.equal(typeof validator, "object");
9
+ assert.equal(typeof validator.description, "string");
10
+ assert.equal(typeof validator.validate, "function");
11
+ });
12
+ it("Throws an error when tagPatterns not provided", () => {
13
+ try {
14
+ validatorFactory();
15
+ } catch (error) {
16
+ assert.equal(error instanceof Error, true);
17
+ assert.equal(error.message, "No tag pattern array provided");
18
+ }
19
+ });
20
+ describe("#validate", () => {
21
+ it("Finds the record valid", async () => {
22
+ const tagPatterns = [/^5..$/u, /^FOO$/u];
23
+ const validator = await validatorFactory(tagPatterns);
24
+ const record = new MarcRecord({
25
+ fields: [
26
+ {
27
+ tag: "500",
28
+ ind1: " ",
29
+ ind2: "0",
30
+ subfields: [{ code: "a", value: "foo" }]
31
+ },
32
+ {
33
+ tag: "FOO",
34
+ ind1: " ",
35
+ ind2: "0",
36
+ subfields: [{ code: "a", value: "foo" }]
37
+ }
38
+ ]
39
+ });
40
+ const result = await validator.validate(record);
41
+ assert.deepEqual(result, { valid: true, messages: [] });
42
+ });
43
+ it("Finds the record valid", async () => {
44
+ const tagPatterns = [/^(020|022|024)$/u];
45
+ const validator = await validatorFactory(tagPatterns);
46
+ const record = new MarcRecord({
47
+ fields: [
48
+ {
49
+ tag: "020",
50
+ ind1: " ",
51
+ ind2: "0",
52
+ subfields: [{ code: "a", value: "foo" }]
53
+ },
54
+ {
55
+ tag: "040",
56
+ ind1: " ",
57
+ ind2: "0",
58
+ subfields: [{ code: "a", value: "foo" }]
59
+ }
60
+ ]
61
+ });
62
+ const result = await validator.validate(record);
63
+ assert.deepEqual(result, { valid: true, messages: [] });
64
+ });
65
+ it("Finds the record invalid", async () => {
66
+ const tagPatterns = [/^5..$/u, /^FOO$/u];
67
+ const validator = await validatorFactory(tagPatterns);
68
+ const record = new MarcRecord({
69
+ fields: [
70
+ {
71
+ tag: "001",
72
+ ind1: " ",
73
+ ind2: "0",
74
+ subfields: [{ code: "a", value: "foo" }]
75
+ },
76
+ {
77
+ tag: "500",
78
+ ind1: " ",
79
+ ind2: "0",
80
+ subfields: [{ code: "a", value: "foo" }]
81
+ },
82
+ {
83
+ tag: "BAR",
84
+ ind1: "1",
85
+ ind2: "0",
86
+ subfields: [{ code: "a", value: "foo" }]
87
+ }
88
+ ]
89
+ });
90
+ const result = await validator.validate(record);
91
+ assert.deepEqual(result, { valid: false, messages: ["The following tag patterns are not present in the record tag field: /^FOO$/u"] });
92
+ });
93
+ });
94
+ });
95
+ //# sourceMappingURL=fields-present.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/fields-present.test.js"],
4
+ "sourcesContent": ["import {describe, it} from 'node:test';\nimport assert from 'node:assert';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/fields-present.js';\n\n\n\ndescribe('fields-present', () => {\n it('Creates a validator', async () => {\n const validator = await validatorFactory([/^500$/u, /^400$/u]);\n\n assert.equal(typeof validator, 'object');\n assert.equal(typeof validator.description, 'string');\n assert.equal(typeof validator.validate, 'function');\n });\n\n it('Throws an error when tagPatterns not provided', () => {\n try {\n validatorFactory();\n } catch (error) {\n assert.equal(error instanceof Error, true);\n assert.equal(error.message, 'No tag pattern array provided');\n }\n });\n\n describe('#validate', () => {\n it('Finds the record valid', async () => {\n const tagPatterns = [/^5..$/u, /^FOO$/u];\n const validator = await validatorFactory(tagPatterns);\n const record = new MarcRecord({\n fields: [\n {\n tag: '500',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: 'FOO',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n assert.deepEqual(result, {valid: true, messages: []});\n });\n it('Finds the record valid', async () => {\n const tagPatterns = [/^(020|022|024)$/u];\n const validator = await validatorFactory(tagPatterns);\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: '040',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n assert.deepEqual(result, {valid: true, messages: []});\n });\n it('Finds the record invalid', async () => {\n const tagPatterns = [/^5..$/u, /^FOO$/u];\n const validator = await validatorFactory(tagPatterns);\n const record = new MarcRecord({\n fields: [\n {\n tag: '001',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: '500',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: 'BAR',\n ind1: '1',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n assert.deepEqual(result, {valid: false, messages: ['The following tag patterns are not present in the record tag field: /^FOO$/u']});\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }