@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":"ending-punctuation-conf.js","names":["finnishTerms","exports","validPuncMarks","confSpec","rangeStart","rangeEnd","index","punc","special","afterOnly","strict","secondLastIfLast","last","noPuncIfField","ifBoth","puncSubField","ifInd2","ifLastCharNot","noPuncIfInd2","lastOf","mandatory","termField","else","linked"],"sources":["../src/ending-punctuation-conf.js"],"sourcesContent":["// Const finnishTerms = ['ysa', 'yso', 'kassu', 'seko', 'valo', 'kulo', 'puho', 'oiko', 'mero', 'liito', 'fast', 'allars', 'kaunokki'];\nconst finnishTerms = [\n /^(?:allars|bella|fast|juho|jupo|kassu|kauno|kaunokki|keko|koko|kulo|liiko|liito|local|mero|mts|musa|oiko|puho|seko|woto|valo|ysa|yso)$/u,\n /^(?:kauno|slm|yso)\\//u\n];\n\nconst validPuncMarks = '?\"-!,)]';\n// Configuration specification\nconst confSpec = [\n { // 010-035 EI\n rangeStart: 10,\n rangeEnd: 35,\n index: null,\n punc: false,\n special: null\n }, { // 036 KYLLÄ vain osakentän $b jälkeen\n rangeStart: null,\n rangeEnd: null,\n index: 36,\n punc: true,\n special: {\n afterOnly: 'b',\n strict: true // Punctuation only after $b, because $a is register number\n }\n }, { // 037-050 EI\n rangeStart: 37,\n rangeEnd: 50,\n index: null,\n punc: false,\n special: null\n }, { // 051 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 51,\n punc: true,\n special: null\n }, { // 052-09X EI\n rangeStart: 52,\n rangeEnd: 99,\n index: null,\n punc: false,\n special: null\n }, { // 100 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 100,\n punc: true,\n special: null\n }, { // 110 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 110,\n punc: true,\n special: null\n }, { // 111 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 111,\n punc: true,\n special: null\n }, { // 130 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 130,\n punc: true,\n special: null\n }, { // 210 EI\n rangeStart: null,\n rangeEnd: null,\n index: 210,\n punc: false,\n special: null\n }, { // 222 EI\n rangeStart: null,\n rangeEnd: null,\n index: 222,\n punc: false,\n special: null\n }, { // 240 EI\n rangeStart: null,\n rangeEnd: null,\n index: 240,\n punc: false,\n special: null\n }, { // 242 KYLLÄ Jos viimeinen osakenttä on $y, piste on ennen sitä\n rangeStart: null,\n rangeEnd: null,\n index: 242,\n punc: true,\n special: {\n secondLastIfLast: 'y',\n last: false\n }\n }, { // 243 EI\n rangeStart: null,\n rangeEnd: null,\n index: 243,\n punc: false,\n special: null\n }, { // 245 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 245,\n punc: true,\n special: null\n }, { // 246-247 EI\n rangeStart: 246,\n rangeEnd: 247,\n index: null,\n punc: false,\n special: null\n }, { // 250 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 250,\n punc: true,\n special: null\n }, { // 251 EI\n rangeStart: null,\n rangeEnd: null,\n index: 251,\n punc: false,\n special: null\n }, { // 254-256 KYLLÄ\n rangeStart: 254,\n rangeEnd: 256,\n index: null,\n punc: true,\n special: null\n }, { // 257\n rangeStart: null,\n rangeEnd: null,\n index: 257,\n punc: true,\n special: {\n noPuncIfField: '2'\n }\n }, { // 258 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 258,\n punc: true,\n special: null\n }, { // 260 KYLLÄ Pääsääntö: $a : $b, $c. Tarkista eri poikkeukset ja välimerkitys MARC 21 Full -versiosta\n rangeStart: null,\n rangeEnd: null,\n index: 260,\n punc: true,\n special: {\n afterOnly: 'c',\n strict: false // Others fields may contain abbreviation\n }\n }, { // 263 EI\n rangeStart: null,\n rangeEnd: null,\n index: 263,\n punc: false,\n special: null\n }, { // 264 KYLLÄ Tarkista poikkeukset MARC 21 -sovellusohjeesta\n rangeStart: null,\n rangeEnd: null,\n index: 264,\n punc: true,\n special: {\n ifBoth: true,\n puncSubField: 'c',\n ifInd2: ['0', '1', '2', '3'],\n ifLastCharNot: ']-)?',\n noPuncIfInd2: ['4']\n }\n }, { // 270 EI\n rangeStart: null,\n rangeEnd: null,\n index: 270,\n punc: false,\n special: null\n }, { // 300 EI\n rangeStart: null,\n rangeEnd: null,\n index: 300,\n punc: false,\n special: null\n }, { // 306 EI\n rangeStart: null,\n rangeEnd: null,\n index: 306,\n punc: false,\n special: null\n }, { // 307 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 307,\n punc: true,\n special: null\n }, { // 310 EI\n rangeStart: null,\n rangeEnd: null,\n index: 310,\n punc: false,\n special: null\n }, { // 321 EI\n rangeStart: null,\n rangeEnd: null,\n index: 321,\n punc: false,\n special: null\n }, { // 335-338 EI\n rangeStart: 335,\n rangeEnd: 338,\n index: null,\n punc: false,\n special: null\n }, { // 340 KYLLÄ Vain joidenkin osakenttien jälkeen. Tarkista osakentät MARC 21 Full -versiosta\n rangeStart: null,\n rangeEnd: null,\n index: 340,\n punc: true,\n special: {\n lastOf: ['a', 'd', 'e', 'f', 'h', 'i'],\n mandatory: ['b']\n }\n }, { // 341-342 EI\n rangeStart: 341,\n rangeEnd: 342,\n index: null,\n punc: false,\n special: null\n }, { // 343 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 343,\n punc: true,\n special: null\n }, { // 344-348 EI\n rangeStart: 344,\n rangeEnd: 348,\n index: null,\n punc: false,\n special: null\n }, { // 351-352 KYLLÄ\n rangeStart: 351,\n rangeEnd: 352,\n index: null,\n punc: true,\n special: null\n }, { // 355 EI\n rangeStart: null,\n rangeEnd: null,\n index: 355,\n punc: false,\n special: null\n }, { // 357 EI\n rangeStart: null,\n rangeEnd: null,\n index: 357,\n punc: false,\n special: null\n }, { // 362 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 362,\n punc: true,\n special: null\n }, { // 363 EI\n rangeStart: null,\n rangeEnd: null,\n index: 363,\n punc: false,\n special: null\n }, { // 365-366 EI\n rangeStart: 365,\n rangeEnd: 366,\n index: null,\n punc: false,\n special: null\n }, { // 370 EI\n rangeStart: null,\n rangeEnd: null,\n index: 370,\n punc: false,\n special: null\n }, { // 377 EI\n rangeStart: null,\n rangeEnd: null,\n index: 377,\n punc: false,\n special: null\n }, { // 380-388 EI\n rangeStart: 380,\n rangeEnd: 388,\n index: null,\n punc: false,\n special: null\n }, { // 490 EI\n rangeStart: null,\n rangeEnd: null,\n index: 490,\n punc: false,\n special: null\n }, { // 500-505 KYLLÄ\n rangeStart: 500,\n rangeEnd: 505,\n index: null,\n punc: true,\n special: null\n }, { // 506 KYLLÄ\n index: 506,\n punc: true,\n special: {\n noPuncIfField: 'f'\n }\n }, { // 507-509 KYLLÄ\n rangeStart: 507,\n rangeEnd: 509,\n index: null,\n punc: true,\n special: null\n }, { // 510 EI\n rangeStart: null,\n rangeEnd: null,\n index: 510,\n punc: false,\n special: null\n }, { // 511-518 KYLLÄ\n rangeStart: 511,\n rangeEnd: 518,\n index: null,\n punc: true,\n special: null\n }, { // 520 KYLLÄ Jos viimeinen osakenttä on $u, piste on ennen sitä\n rangeStart: null,\n rangeEnd: null,\n index: 520,\n punc: true,\n special: {\n secondLastIfLast: 'u'\n // Last: false //$u is URL and hence should not be checked as URL's can have '.' at end\n }\n }, { // 521-526 KYLLÄ\n rangeStart: 521,\n rangeEnd: 526,\n index: null,\n punc: true,\n special: null\n }, { // 530 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 530,\n punc: true,\n special: null\n }, { // 532 EI\n rangeStart: null,\n rangeEnd: null,\n index: 532,\n punc: false,\n special: null\n }, { // 533-534 KYLLÄ\n rangeStart: 533,\n rangeEnd: 534,\n index: null,\n punc: true,\n special: null\n }, { // 535-536 EI\n rangeStart: 535,\n rangeEnd: 536,\n index: null,\n punc: false,\n special: null\n }, { // 538 KYLLÄ Jos viimeinen osakenttä on $u, piste on ennen sitä\n rangeStart: null,\n rangeEnd: null,\n index: 538,\n punc: true,\n special: {\n secondLastIfLast: 'u'\n // Last: false //$u is URL and hence should not be checked as URL's can have '.' at end\n }\n }, { // 540-541 KYLLÄ\n rangeStart: 540,\n rangeEnd: 541,\n index: null,\n punc: true,\n special: {\n noPuncIfField: 'u'\n }\n }, { // 542 EI\n rangeStart: null,\n rangeEnd: null,\n index: 542,\n punc: false,\n special: null\n }, { // 544-547 KYLLÄ\n rangeStart: 544,\n rangeEnd: 547,\n index: null,\n punc: true,\n special: null\n }, { // 550 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 550,\n punc: true,\n special: null\n }, { // 552 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 552,\n punc: true,\n special: null\n }, { // 555-556 KYLLÄ\n rangeStart: 555,\n rangeEnd: 556,\n index: null,\n punc: true,\n special: null\n }, { // 561-563 KYLLÄ\n rangeStart: 561,\n rangeEnd: 563,\n index: null,\n punc: true,\n special: null\n }, { // 565 EI\n rangeStart: null,\n rangeEnd: null,\n index: 565,\n punc: false,\n special: null\n }, { // 567 KYLLÄ osakentän $a jälkeen, EI muiden osakenttien jälkeen\n rangeStart: null,\n rangeEnd: null,\n index: 567,\n punc: true,\n special: {\n afterOnly: 'a',\n strict: true // $b can only be controlled term\n }\n }, { // 580-581 KYLLÄ\n rangeStart: 580,\n rangeEnd: 581,\n index: null,\n punc: true,\n special: null\n }, { // 583 EI\n rangeStart: null,\n rangeEnd: null,\n index: 583,\n punc: false,\n special: null\n }, { // 584-585 KYLLÄ\n rangeStart: 584,\n rangeEnd: 585,\n index: null,\n punc: true,\n special: null\n }, { // 586 EI\n rangeStart: null,\n rangeEnd: null,\n index: 586,\n punc: false,\n special: null\n }, { // 588 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: null,\n punc: true,\n special: null\n }, { // 59X EI\n rangeStart: 590,\n rangeEnd: 599,\n index: null,\n punc: false,\n special: null\n }, { // 600 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 600,\n punc: true,\n special: null\n }, { // 610 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 610,\n punc: true,\n special: null\n }, { // 611 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 611,\n punc: true,\n special: null\n }, { // 630 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 630,\n punc: true,\n special: null\n }, { // 647-651 EI suomalaisten sanastojen termeihin, muihin sanaston käytännön mukaan, yleensä KYLLÄ\n rangeStart: 647,\n rangeEnd: 651,\n index: null,\n punc: false,\n special: {\n termField: '2',\n finnishTerms,\n else: true\n }\n }, { // 653 EI\n rangeStart: null,\n rangeEnd: null,\n index: 653,\n punc: false,\n special: null\n }, { // 654-662 EI suomalaisten sanastojen termeihin, muihin sanaston käytännön mukaan, yleensä KYLLÄ\n rangeStart: 654,\n rangeEnd: 662,\n index: null,\n punc: false,\n special: {\n termField: '2',\n finnishTerms,\n else: true\n }\n }, { // 69X EI\n rangeStart: 690,\n rangeEnd: 699,\n index: null,\n punc: false,\n special: null\n }, { // 700 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 700,\n punc: true,\n special: null\n }, { // 710 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 710,\n punc: true,\n special: null\n }, { // 711 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 711,\n punc: true,\n special: null\n }, { // 720 EI\n rangeStart: null,\n rangeEnd: null,\n index: 720,\n punc: false,\n special: null\n }, { // 730 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 730,\n punc: true,\n special: null\n }, { // 740 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 740,\n punc: true,\n special: null\n }, { // 751 EI\n rangeStart: null,\n rangeEnd: null,\n index: 751,\n punc: false,\n special: null\n }, { // 752 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 752,\n punc: true,\n special: null\n }, { // 753 EI\n rangeStart: null,\n rangeEnd: null,\n index: 753,\n punc: false,\n special: null\n }, { // 754 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 754,\n punc: true,\n special: null\n }, { // 758 EI\n rangeStart: null,\n rangeEnd: null,\n index: 758,\n punc: false,\n special: null\n }, { // 760-787 KYLLÄ osakentän $a jälkeen, EI muiden osakenttien jälkeen\n rangeStart: 760,\n rangeEnd: 787,\n index: null,\n punc: true,\n special: {\n afterOnly: 'a',\n strict: false\n }\n }, { // 800 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 800,\n punc: true,\n special: null\n }, { // 810 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 810,\n punc: true,\n special: null\n }, { // 811 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 811,\n punc: true,\n special: null\n }, { // 830 KYLLÄ\n rangeStart: null,\n rangeEnd: null,\n index: 830,\n punc: true,\n special: null\n }, { // 850 EI\n rangeStart: null,\n rangeEnd: null,\n index: 850,\n punc: false,\n special: null\n }, { // 852 EI\n rangeStart: null,\n rangeEnd: null,\n index: 852,\n punc: false,\n special: null\n }, { // 856 EI\n rangeStart: null,\n rangeEnd: null,\n index: 856,\n punc: false,\n special: null\n }, { // 880 Samoin kuin vastaavat kentät\n rangeStart: null,\n rangeEnd: null,\n index: 880,\n punc: null,\n special: {\n linked: '6'\n }\n }, { // 882-887 EI\n rangeStart: 882,\n rangeEnd: 887,\n index: null,\n punc: false,\n special: null\n }, { // 9XX EI\n rangeStart: 900,\n rangeEnd: 999,\n index: null,\n punc: false,\n special: null\n }\n];\n\nexport {finnishTerms, validPuncMarks, confSpec};\n"],"mappings":"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","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/ending-punctuation-conf.js"],
4
+ "sourcesContent": ["// Const finnishTerms = ['ysa', 'yso', 'kassu', 'seko', 'valo', 'kulo', 'puho', 'oiko', 'mero', 'liito', 'fast', 'allars', 'kaunokki'];\nconst finnishTerms = [\n /^(?:allars|bella|fast|juho|jupo|kassu|kauno|kaunokki|keko|koko|kulo|liiko|liito|local|mero|mts|musa|oiko|puho|seko|woto|valo|ysa|yso)$/u,\n /^(?:kauno|slm|yso)\\//u // <= yso/* etc\n];\n\nconst validPuncMarks = '?-!.'; // NB! ')' and ']' are only valid for some fields!\nconst validQuoteChars = \"\\\"'\";\n// Configuration specification\nconst confSpec = [\n { // 010-035 EI\n rangeStart: 10,\n rangeEnd: 35,\n index: null,\n punc: false,\n special: null\n }, { // 036 KYLL\u00C4 vain osakent\u00E4n $b j\u00E4lkeen\n rangeStart: null,\n rangeEnd: null,\n index: 36,\n punc: true,\n special: {\n afterOnly: 'b',\n strict: true // Punctuation only after $b, because $a is register number\n }\n }, { // 037-050 EI\n rangeStart: 37,\n rangeEnd: 50,\n index: null,\n punc: false,\n special: null\n }, { // 051 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 51,\n punc: true,\n special: null\n }, { // 052-09X EI\n rangeStart: 52,\n rangeEnd: 99,\n index: null,\n punc: false,\n special: null\n }, { // 100 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 100,\n punc: true,\n special: null\n }, { // 110 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 110,\n punc: true,\n special: null\n }, { // 111 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 111,\n punc: true,\n special: null\n }, { // 130 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 130,\n punc: true,\n special: null\n }, { // 210 EI\n rangeStart: null,\n rangeEnd: null,\n index: 210,\n punc: false,\n special: null\n }, { // 222 EI\n rangeStart: null,\n rangeEnd: null,\n index: 222,\n punc: false,\n special: null\n }, { // 240 EI\n rangeStart: null,\n rangeEnd: null,\n index: 240,\n punc: false,\n special: null\n }, { // 242 KYLL\u00C4 Jos viimeinen osakentt\u00E4 on $y, piste on ennen sit\u00E4\n rangeStart: null,\n rangeEnd: null,\n index: 242,\n punc: true,\n special: {\n secondLastIfLast: 'y',\n last: false\n }\n }, { // 243 EI\n rangeStart: null,\n rangeEnd: null,\n index: 243,\n punc: false,\n special: null\n }, { // 245 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 245,\n punc: true,\n special: null\n }, { // 246-247 EI\n rangeStart: 246,\n rangeEnd: 247,\n index: null,\n punc: false,\n special: null\n }, { // 250 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 250,\n punc: true,\n special: null\n }, { // 251 EI\n rangeStart: null,\n rangeEnd: null,\n index: 251,\n punc: false,\n special: null\n }, { // 254-256 KYLL\u00C4\n rangeStart: 254,\n rangeEnd: 256,\n index: null,\n punc: true,\n special: null\n }, { // 257\n rangeStart: null,\n rangeEnd: null,\n index: 257,\n punc: true,\n special: {\n noPuncIfField: '2'\n }\n }, { // 258 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 258,\n punc: true,\n special: null\n }, { // 260 KYLL\u00C4 P\u00E4\u00E4s\u00E4\u00E4nt\u00F6: $a : $b, $c. Tarkista eri poikkeukset ja v\u00E4limerkitys MARC 21 Full -versiosta\n rangeStart: null,\n rangeEnd: null,\n index: 260,\n punc: true,\n special: {\n afterOnly: 'c',\n strict: false // Others fields may contain abbreviation\n }\n }, { // 263 EI\n rangeStart: null,\n rangeEnd: null,\n index: 263,\n punc: false,\n special: null\n }, { // 264 KYLL\u00C4 Tarkista poikkeukset MARC 21 -sovellusohjeesta\n rangeStart: null,\n rangeEnd: null,\n index: 264,\n punc: true,\n special: {\n ifBoth: true,\n puncSubField: 'c',\n ifInd2: ['0', '1', '2', '3'],\n ifLastCharNot: ']-)?',\n noPuncIfInd2: ['4']\n }\n }, { // 270 EI\n rangeStart: null,\n rangeEnd: null,\n index: 270,\n punc: false,\n special: null\n }, { // 300 EI\n rangeStart: null,\n rangeEnd: null,\n index: 300,\n punc: false,\n special: null\n }, { // 306 EI\n rangeStart: null,\n rangeEnd: null,\n index: 306,\n punc: false,\n special: null\n }, { // 307 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 307,\n punc: true,\n special: null\n }, { // 310 EI\n rangeStart: null,\n rangeEnd: null,\n index: 310,\n punc: false,\n special: null\n }, { // 321 EI\n rangeStart: null,\n rangeEnd: null,\n index: 321,\n punc: false,\n special: null\n }, { // 335-338 EI\n rangeStart: 335,\n rangeEnd: 338,\n index: null,\n punc: false,\n special: null\n }, { // 340 KYLL\u00C4 Vain joidenkin osakenttien j\u00E4lkeen. Tarkista osakent\u00E4t MARC 21 Full -versiosta\n rangeStart: null,\n rangeEnd: null,\n index: 340,\n punc: true,\n special: {\n lastOf: ['a', 'd', 'e', 'f', 'h', 'i'],\n mandatory: ['b']\n }\n }, { // 341-342 EI\n rangeStart: 341,\n rangeEnd: 342,\n index: null,\n punc: false,\n special: null\n }, { // 343 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 343,\n punc: true,\n special: null\n }, { // 344-348 EI\n rangeStart: 344,\n rangeEnd: 348,\n index: null,\n punc: false,\n special: null\n }, { // 351-352 KYLL\u00C4\n rangeStart: 351,\n rangeEnd: 352,\n index: null,\n punc: true,\n special: null\n }, { // 355 EI\n rangeStart: null,\n rangeEnd: null,\n index: 355,\n punc: false,\n special: null\n }, { // 357 EI\n rangeStart: null,\n rangeEnd: null,\n index: 357,\n punc: false,\n special: null\n }, { // 362 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 362,\n punc: true,\n special: null\n }, { // 363 EI\n rangeStart: null,\n rangeEnd: null,\n index: 363,\n punc: false,\n special: null\n }, { // 365-366 EI\n rangeStart: 365,\n rangeEnd: 366,\n index: null,\n punc: false,\n special: null\n }, { // 370 EI\n rangeStart: null,\n rangeEnd: null,\n index: 370,\n punc: false,\n special: null\n }, { // 377 EI\n rangeStart: null,\n rangeEnd: null,\n index: 377,\n punc: false,\n special: null\n }, { // 380-388 EI\n rangeStart: 380,\n rangeEnd: 388,\n index: null,\n punc: false,\n special: null\n }, { // 490 EI\n rangeStart: null,\n rangeEnd: null,\n index: 490,\n punc: false,\n special: null\n }, { // 500-505 KYLL\u00C4\n rangeStart: 500,\n rangeEnd: 505,\n index: null,\n punc: true,\n special: null\n }, { // 506 KYLL\u00C4\n index: 506,\n punc: true,\n special: {\n noPuncIfField: 'f'\n }\n }, { // 507-509 KYLL\u00C4\n rangeStart: 507,\n rangeEnd: 509,\n index: null,\n punc: true,\n special: null\n }, { // 510 EI\n rangeStart: null,\n rangeEnd: null,\n index: 510,\n punc: false,\n special: null\n }, { // 511-518 KYLL\u00C4\n rangeStart: 511,\n rangeEnd: 518,\n index: null,\n punc: true,\n special: null\n }, { // 520 KYLL\u00C4 Jos viimeinen osakentt\u00E4 on $u, piste on ennen sit\u00E4\n rangeStart: null,\n rangeEnd: null,\n index: 520,\n punc: true,\n special: {\n secondLastIfLast: 'u'\n // Last: false //$u is URL and hence should not be checked as URL's can have '.' at end\n }\n }, { // 521-526 KYLL\u00C4\n rangeStart: 521,\n rangeEnd: 526,\n index: null,\n punc: true,\n special: null\n }, { // 530 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 530,\n punc: true,\n special: null\n }, { // 532 EI\n rangeStart: null,\n rangeEnd: null,\n index: 532,\n punc: false,\n special: null\n }, { // 533-534 KYLL\u00C4\n rangeStart: 533,\n rangeEnd: 534,\n index: null,\n punc: true,\n special: null\n }, { // 535-536 EI\n rangeStart: 535,\n rangeEnd: 536,\n index: null,\n punc: false,\n special: null\n }, { // 538 KYLL\u00C4 Jos viimeinen osakentt\u00E4 on $u, piste on ennen sit\u00E4\n rangeStart: null,\n rangeEnd: null,\n index: 538,\n punc: true,\n special: {\n secondLastIfLast: 'u'\n // Last: false //$u is URL and hence should not be checked as URL's can have '.' at end\n }\n }, { // 540-541 KYLL\u00C4\n rangeStart: 540,\n rangeEnd: 541,\n index: null,\n punc: true,\n special: {\n noPuncIfField: 'u'\n }\n }, { // 542 EI\n rangeStart: null,\n rangeEnd: null,\n index: 542,\n punc: false,\n special: null\n }, { // 544-547 KYLL\u00C4\n rangeStart: 544,\n rangeEnd: 547,\n index: null,\n punc: true,\n special: null\n }, { // 550 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 550,\n punc: true,\n special: null\n }, { // 552 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 552,\n punc: true,\n special: null\n }, { // 555-556 KYLL\u00C4\n rangeStart: 555,\n rangeEnd: 556,\n index: null,\n punc: true,\n special: null\n }, { // 561-563 KYLL\u00C4\n rangeStart: 561,\n rangeEnd: 563,\n index: null,\n punc: true,\n special: null\n }, { // 565 EI\n rangeStart: null,\n rangeEnd: null,\n index: 565,\n punc: false,\n special: null\n }, { // 567 KYLL\u00C4 osakent\u00E4n $a j\u00E4lkeen, EI muiden osakenttien j\u00E4lkeen\n rangeStart: null,\n rangeEnd: null,\n index: 567,\n punc: true,\n special: {\n afterOnly: 'a',\n strict: true // $b can only be controlled term\n }\n }, { // 580-581 KYLL\u00C4\n rangeStart: 580,\n rangeEnd: 581,\n index: null,\n punc: true,\n special: null\n }, { // 583 EI\n rangeStart: null,\n rangeEnd: null,\n index: 583,\n punc: false,\n special: null\n }, { // 584-585 KYLL\u00C4\n rangeStart: 584,\n rangeEnd: 585,\n index: null,\n punc: true,\n special: null\n }, { // 586 EI\n rangeStart: null,\n rangeEnd: null,\n index: 586,\n punc: false,\n special: null\n }, { // 588 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: null,\n punc: true,\n special: null\n }, { // 59X EI\n rangeStart: 590,\n rangeEnd: 599,\n index: null,\n punc: false,\n special: null\n }, { // 600 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 600,\n punc: true,\n special: null\n }, { // 610 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 610,\n punc: true,\n special: null\n }, { // 611 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 611,\n punc: true,\n special: null\n }, { // 630 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 630,\n punc: true,\n special: null\n }, { // 647-651 EI suomalaisten sanastojen termeihin, muihin sanaston k\u00E4yt\u00E4nn\u00F6n mukaan, yleens\u00E4 KYLL\u00C4\n rangeStart: 647,\n rangeEnd: 651,\n index: null,\n punc: false,\n special: {\n termSubfieldCode: '2',\n finnishTerms,\n else: true\n }\n }, { // 653 EI\n rangeStart: null,\n rangeEnd: null,\n index: 653,\n punc: false,\n special: null\n }, { // 654-662 EI suomalaisten sanastojen termeihin, muihin sanaston k\u00E4yt\u00E4nn\u00F6n mukaan, yleens\u00E4 KYLL\u00C4\n rangeStart: 654,\n rangeEnd: 662,\n index: null,\n punc: false,\n special: {\n termSubfieldCode: '2',\n finnishTerms,\n else: true\n }\n }, { // 69X EI\n rangeStart: 690,\n rangeEnd: 699,\n index: null,\n punc: false,\n special: null\n }, { // 700 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 700,\n punc: true,\n special: null\n }, { // 710 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 710,\n punc: true,\n special: null\n }, { // 711 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 711,\n punc: true,\n special: null\n }, { // 720 EI\n rangeStart: null,\n rangeEnd: null,\n index: 720,\n punc: false,\n special: null\n }, { // 730 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 730,\n punc: true,\n special: null\n }, { // 740 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 740,\n punc: true,\n special: null\n }, { // 751 EI\n rangeStart: null,\n rangeEnd: null,\n index: 751,\n punc: false,\n special: null\n }, { // 752 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 752,\n punc: true,\n special: null\n }, { // 753 EI\n rangeStart: null,\n rangeEnd: null,\n index: 753,\n punc: false,\n special: null\n }, { // 754 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 754,\n punc: true,\n special: null\n }, { // 758 EI\n rangeStart: null,\n rangeEnd: null,\n index: 758,\n punc: false,\n special: null\n }, { // 760-787 KYLL\u00C4 osakent\u00E4n $a j\u00E4lkeen, EI muiden osakenttien j\u00E4lkeen\n rangeStart: 760,\n rangeEnd: 787,\n index: null,\n punc: true,\n special: {\n afterOnly: 'a',\n strict: false\n }\n }, { // 800 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 800,\n punc: true,\n special: null\n }, { // 810 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 810,\n punc: true,\n special: null\n }, { // 811 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 811,\n punc: true,\n special: null\n }, { // 830 KYLL\u00C4\n rangeStart: null,\n rangeEnd: null,\n index: 830,\n punc: true,\n special: null\n }, { // 850 EI\n rangeStart: null,\n rangeEnd: null,\n index: 850,\n punc: false,\n special: null\n }, { // 852 EI\n rangeStart: null,\n rangeEnd: null,\n index: 852,\n punc: false,\n special: null\n }, { // 856 EI\n rangeStart: null,\n rangeEnd: null,\n index: 856,\n punc: false,\n special: null\n }, { // 880 Samoin kuin vastaavat kent\u00E4t\n rangeStart: null,\n rangeEnd: null,\n index: 880,\n punc: null,\n special: {\n linked: '6'\n }\n }, { // 882-887 EI\n rangeStart: 882,\n rangeEnd: 887,\n index: null,\n punc: false,\n special: null\n }, { // 9XX EI\n rangeStart: 900,\n rangeEnd: 999,\n index: null,\n punc: false,\n special: null\n }\n];\n\nexport {finnishTerms, validPuncMarks, validQuoteChars, confSpec};\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,207 +1,157 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
- exports.validateSingleField = validateSingleField;
8
- var _endingPunctuationConf = require("./ending-punctuation-conf");
9
- var _debug = _interopRequireDefault(require("debug"));
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
- /**
12
- *
13
- * @licstart The following is the entire license notice for the JavaScript code in this file.
14
- *
15
- * MARC record validators used in Melinda
16
- *
17
- * Copyright (c) 2014-2021 University Of Helsinki (The National Library Of Finland)
18
- *
19
- * This file is part of marc-record-validators-melinda
20
- *
21
- * marc-record-validators-melinda program is free software: you can redistribute it and/or modify
22
- * it under the terms of the GNU Lesser General Public License as
23
- * published by the Free Software Foundation, either version 3 of the
24
- * License, or (at your option) any later version.
25
- *
26
- * marc-record-validators-melinda is distributed in the hope that it will be useful,
27
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
28
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29
- * GNU Lesser General Public License for more details.
30
- *
31
- * You should have received a copy of the GNU Lesser General Public License
32
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
33
- *
34
- * @licend The above is the entire license notice
35
- * for the JavaScript code in this file.
36
- *
37
- */
38
-
39
- // Import {validPuncMarks, finnishTerms, confSpec} from './ending-punctuation-conf.js';
40
-
41
- const debug = (0, _debug.default)('@natlibfi/marc-record-validator-melinda/ending-punctuation');
42
- function _default() {
1
+ import { validPuncMarks, validQuoteChars, finnishTerms, confSpec } from "./ending-punctuation-conf.js";
2
+ import createDebugLogger from "debug";
3
+ const debug = createDebugLogger("@natlibfi/marc-record-validator-melinda/ending-punctuation");
4
+ export default function() {
43
5
  return {
44
- description: 'Handles invalid ending punctuation',
45
- validate: record => validatePunc(record, false),
6
+ description: "Handles invalid ending punctuation",
7
+ validate: (record) => validatePunc(record, false),
8
+ // Record (Object), fix (boolean)
9
+ fix: (record) => validatePunc(record, true)
46
10
  // Record (Object), fix (boolean)
47
- fix: record => validatePunc(record, true) // Record (Object), fix (boolean)
48
11
  };
49
-
50
- // This is used to validate record against configuration
51
12
  function validatePunc(record, fix) {
52
- const message = {
53
- message: []
54
- };
13
+ const message = { message: [] };
55
14
  if (fix) {
56
15
  message.fix = [];
57
16
  }
58
-
59
- // Actual parsing of all fields
60
17
  if (!record.fields) {
61
18
  return false;
62
19
  }
63
- record.fields.forEach(field => {
20
+ record.fields.forEach((field) => {
64
21
  validateField(field, false, fix, message);
65
22
  });
66
23
  message.valid = !(message.message.length >= 1);
67
24
  return message;
68
25
  }
69
26
  }
70
-
71
- // Field validation with punctuation rules for normal and special cases in subfunction (to reduce complexity to please travisci)
72
27
  function validateField(field, linkedTag, fix, message) {
73
- // This is used to find last subfield that should have punctuation
74
- function findLastSubfield(field) {
75
- const subfields = field.subfields.filter(sf => isNaN(sf.code) && 'value' in sf);
76
- return subfields.slice(-1).shift();
28
+ function getDefaultPuncMarks(tag2) {
29
+ if (tag2.match(/^[1678](?:00|10|11|30)/u) || tag2 === "740") {
30
+ return `${validPuncMarks})`;
31
+ }
32
+ if (["647", "648", "650", "651", "654", "655", "656", "657", "658", "662"].includes(tag2)) {
33
+ return `${validPuncMarks})`;
34
+ }
35
+ if (["260"].includes(tag2)) {
36
+ return `${validPuncMarks})]`;
37
+ }
38
+ return validPuncMarks;
77
39
  }
78
-
79
- // Punctuation rule (Boolean), Check no ending dot strict (Boolean)
80
- function normalPuncRules(subfield, punc, tag, checkEnd, overrideValidPuncMarks) {
81
- const puncMarks = overrideValidPuncMarks || _endingPunctuationConf.validPuncMarks;
82
- const lastPuncMark = puncMarks.includes(subfield.value.slice(-1)); // If string ends to punctuation char
83
- const lastPuncDot = '.'.includes(subfield.value.slice(-1)); // If string ends to dot
84
-
85
- // Last char should be punc, but its not one of marks nor dot
40
+ function normalPuncRules(subfield, punc, tag2, checkEnd, overrideValidPuncMarks) {
41
+ const puncMarks = overrideValidPuncMarks || getDefaultPuncMarks(tag2);
42
+ const lastChar = subfield.value.slice(-1);
43
+ const lastPuncMark = puncMarks.includes(lastChar);
44
+ const lastPuncDot = ".".includes(lastChar);
45
+ const penultimateCharacter = subfield.value.length >= 2 ? subfield.value.charAt(subfield.value.length - 2) : void 0;
46
+ const antePenultimateCharacter = subfield.value.length >= 3 ? subfield.value.charAt(subfield.value.length - 3) : void 0;
86
47
  if (punc && !(lastPuncMark || lastPuncDot)) {
87
- // Console.log("1. Invalid punctuation - missing")
88
- message.message.push(`Field ${tag} has invalid ending punctuation`);
48
+ if (penultimateCharacter && validQuoteChars.includes(lastChar) && puncMarks.includes(penultimateCharacter)) {
49
+ } else {
50
+ message.message.push(`Field ${tag2} requires ending punctuation, ends in '${lastChar}'`);
51
+ if (fix) {
52
+ subfield.value = subfield.value.concat(".");
53
+ message.fix.push(`Field ${tag2} - Added punctuation to $${subfield.code}`);
54
+ }
55
+ }
56
+ } else if (lastPuncDot && penultimateCharacter && puncMarks.includes(penultimateCharacter)) {
57
+ message.message.push(`Field ${tag2} has an extra dot after '${penultimateCharacter}'`);
89
58
  if (fix) {
90
- subfield.value = subfield.value.concat('.');
91
- message.fix.push(`Field ${tag} - Added punctuation to $${subfield.code}`);
59
+ subfield.value = subfield.value.slice(0, -1);
60
+ message.fix.push(`Field ${tag2} - Removed dot after punctuation from $${subfield.code}`);
92
61
  }
93
-
94
- // Last char is dot, but previous char is one of punc marks, like 'Question?.'
95
- } else if (lastPuncDot && subfield.value.length > 1 && puncMarks.includes(subfield.value.charAt(subfield.value.length - 2))) {
96
- // Console.log("2. Invalid punctuation - duplicate, like '?.'")
97
- message.message.push(`Field ${tag} has invalid ending punctuation`);
62
+ } else if (lastPuncDot && antePenultimateCharacter && validQuoteChars.includes(penultimateCharacter) && puncMarks.includes(antePenultimateCharacter)) {
63
+ message.message.push(`Field ${tag2} has an extra dot in '${antePenultimateCharacter}${penultimateCharacter}${lastChar}'`);
98
64
  if (fix) {
99
65
  subfield.value = subfield.value.slice(0, -1);
100
- message.fix.push(`Field ${tag} - Removed double punctuation from $${subfield.code}`);
66
+ message.fix.push(`Field ${tag2} - Removed '${lastChar}' after '${antePenultimateCharacter}${penultimateCharacter}'`);
101
67
  }
102
-
103
- // Last char shouldn't be dot !! This is behind checkEnd boolean, because of dots at end of abbreviations, so this is checked only in special cases !!//
104
- } else if (checkEnd && !punc && lastPuncDot) {
105
- // Console.log("3. Invalid punctuation - Shouldn't be dot, is")
106
- message.message.push(`Field ${tag} has invalid ending punctuation`);
68
+ } else if (checkEnd && (!punc && lastPuncDot)) {
69
+ message.message.push(`Field ${tag2} has unwanted ending punctuation '${lastChar}'`);
107
70
  if (fix) {
108
71
  subfield.value = subfield.value.slice(0, -1);
109
- message.fix.push(`Field ${tag} - Removed punctuation from $${subfield.code}`);
72
+ message.fix.push(`Field ${tag2} - Removed punctuation from $${subfield.code}`);
110
73
  }
111
74
  }
112
75
  }
113
-
114
- // Special cases from here on
115
- function specialCases(res, field, tag) {
116
- let lastSubField = null;
117
- // Punctuation should be only after specific field
118
- if (res.special.afterOnly) {
119
- lastSubField = findLastSubfield(field);
120
- if (lastSubField) {
121
- if (typeof res.special.strict === 'undefined') {
122
- res.special.strict = true;
76
+ function specialCases(res2, field2, tag2) {
77
+ let lastSubField2 = null;
78
+ if (res2.special.afterOnly) {
79
+ lastSubField2 = findLastSubfield(field2);
80
+ if (lastSubField2) {
81
+ if (typeof res2.special.strict === "undefined") {
82
+ res2.special.strict = true;
123
83
  }
124
- if (lastSubField.code === res.special.afterOnly) {
125
- normalPuncRules(lastSubField, res.punc, tag, res.special.strict, false);
84
+ if (lastSubField2.code === res2.special.afterOnly) {
85
+ normalPuncRules(lastSubField2, res2.punc, tag2, res2.special.strict, false);
126
86
  } else {
127
- normalPuncRules(lastSubField, !res.punc, tag, true, false);
87
+ normalPuncRules(lastSubField2, !res2.punc, tag2, true, false);
128
88
  }
129
89
  }
130
- } else if (res.special.noPuncIfField) {
131
- if (field.subfields.some(subField => subField.code === res.special.noPuncIfField) === false) {
132
- lastSubField = findLastSubfield(field);
133
- normalPuncRules(lastSubField, res.punc, tag, true, false);
90
+ } else if (res2.special.noPuncIfField) {
91
+ if (field2.subfields.some((subField) => subField.code === res2.special.noPuncIfField) === false) {
92
+ lastSubField2 = findLastSubfield(field2);
93
+ normalPuncRules(lastSubField2, res2.punc, tag2, true, false);
134
94
  }
135
- } else if (res.special.ifBoth) {
136
- lastSubField = findLastSubfield(field);
137
- if (lastSubField && lastSubField.code === res.special.puncSubField) {
138
- // Ind2 match, check second if at punc rules with special punc char override
139
- if (res.special.ifInd2 && res.special.ifInd2.includes(field.ind2)) {
140
- normalPuncRules(lastSubField, res.special.ifBoth, tag, true, res.special.ifLastCharNot);
141
-
142
- // Matches execption to special rule, noPuncIfInd2 (likely with value 4, that indicates copyright mark)
143
- } else if (res.special.noPuncIfInd2 && field.ind2 && res.special.noPuncIfInd2.includes(field.ind2)) {
144
- normalPuncRules(lastSubField, !res.special.ifBoth, tag, true, res.special.ifLastCharNot);
145
-
146
- // Does not match rules -> shouldn't have punc
95
+ } else if (res2.special.ifBoth) {
96
+ lastSubField2 = findLastSubfield(field2);
97
+ if (lastSubField2 && lastSubField2.code === res2.special.puncSubField) {
98
+ if (res2.special.ifInd2 && res2.special.ifInd2.includes(field2.ind2)) {
99
+ normalPuncRules(lastSubField2, res2.special.ifBoth, tag2, true, res2.special.ifLastCharNot);
100
+ } else if (res2.special.noPuncIfInd2 && field2.ind2 && res2.special.noPuncIfInd2.includes(field2.ind2)) {
101
+ normalPuncRules(lastSubField2, !res2.special.ifBoth, tag2, true, res2.special.ifLastCharNot);
147
102
  } else {
148
- normalPuncRules(lastSubField, !res.special.ifBoth, tag, true, res.special.ifLastCharNot);
103
+ normalPuncRules(lastSubField2, !res2.special.ifBoth, tag2, true, res2.special.ifLastCharNot);
149
104
  }
150
105
  }
151
- } else if (res.special.secondLastIfLast) {
152
- field.subfields.forEach(subField => {
153
- if (isNaN(subField.code) && res.special.secondLastIfLast !== subField.code) {
154
- lastSubField = subField;
155
- } // Not control field
156
-
157
- if (typeof res.special.last !== 'undefined' && res.special.secondLastIfLast === subField.code) {
158
- normalPuncRules(subField, res.special.last, tag, true, false);
159
- } // Strict because this field should not be abbreviation
106
+ } else if (res2.special.secondLastIfLast) {
107
+ field2.subfields.forEach((subField) => {
108
+ if (isNaN(subField.code) && res2.special.secondLastIfLast !== subField.code) {
109
+ lastSubField2 = subField;
110
+ }
111
+ if (typeof res2.special.last !== "undefined" && res2.special.secondLastIfLast === subField.code) {
112
+ normalPuncRules(subField, res2.special.last, tag2, true, false);
113
+ }
160
114
  });
161
- normalPuncRules(lastSubField, res.punc, tag, false, false);
162
-
163
- // Search for Finnish terms
164
- } else if (res.special.termField) {
165
- lastSubField = findLastSubfield(field);
166
- if (lastSubField) {
167
- const languageField = field.subfields.find(({
168
- code
169
- }) => code === res.special.termField);
170
- if (languageField && languageField.value && _endingPunctuationConf.finnishTerms.some(p => p.test(languageField.value))) {
171
- // If (languageField && languageField.value && finnishTerms.indexOf(languageField.value) > -1) {
172
- normalPuncRules(lastSubField, res.punc, tag, true, false);
115
+ normalPuncRules(lastSubField2, res2.punc, tag2, false, false);
116
+ } else if (res2.special.termSubfieldCode) {
117
+ lastSubField2 = findLastSubfield(field2);
118
+ if (lastSubField2) {
119
+ const lexicon = getLexicon(field2, res2.special.termSubfieldCode);
120
+ const proceed = !finnishException(field2, res2.special.termSubfieldCode, false);
121
+ if (lexicon && finnishTerms.some((p) => p.test(lexicon)) && proceed) {
122
+ normalPuncRules(lastSubField2, res2.punc, tag2, true, false);
173
123
  } else {
174
- normalPuncRules(lastSubField, res.special.else, tag, false, false); // Strict because of years etc (648, 650)
124
+ normalPuncRules(lastSubField2, res2.special.else, tag2, false, false);
175
125
  }
176
126
  }
177
- // Search last of array in subfields and check if it has punc
178
- } else if (res.special.lastOf) {
179
- lastSubField = null;
180
- field.subfields.filter(subField => 'value' in subField).forEach(subField => {
181
- if (isNaN(subField.code) && res.special.lastOf.indexOf(subField.code) > -1) {
182
- lastSubField = subField;
183
- } // Not control field
184
-
185
- if (res.special.mandatory && res.special.mandatory.indexOf(subField.code) > -1) {
186
- normalPuncRules(subField, res.punc, tag, true, false);
187
- } // Strict because of mandatory
127
+ } else if (res2.special.lastOf) {
128
+ lastSubField2 = null;
129
+ field2.subfields.filter((subField) => "value" in subField).forEach((subField) => {
130
+ if (isNaN(subField.code) && res2.special.lastOf.indexOf(subField.code) > -1) {
131
+ lastSubField2 = subField;
132
+ }
133
+ if (res2.special.mandatory && res2.special.mandatory.indexOf(subField.code) > -1) {
134
+ normalPuncRules(subField, res2.punc, tag2, true, false);
135
+ }
188
136
  });
189
- if (lastSubField) {
190
- normalPuncRules(lastSubField, res.punc, tag, false, false);
137
+ if (lastSubField2) {
138
+ normalPuncRules(lastSubField2, res2.punc, tag2, false, false);
191
139
  }
192
-
193
- // If field has linked rules (tag: 880), find rules and re-validate
194
- } else if (res.special.linked) {
195
- let linkedTag = null;
140
+ } else if (res2.special.linked) {
141
+ let linkedTag2 = null;
196
142
  try {
197
- linkedTag = parseInt(field.subfields.find(({
198
- code
199
- }) => code === res.special.linked).value.substr(0, 3), 10); // Substring feels stupid, but is used in MarcRecord to extract tag.
143
+ linkedTag2 = parseInt(field2.subfields.find(({ code }) => code === res2.special.linked).value.substr(0, 3), 10);
200
144
  } catch (err) {
201
145
  debug(`Got error while parsing tag: ${err instanceof Error ? err.stack : err}`);
202
146
  return false;
203
147
  }
204
- validateField(field, linkedTag, fix, message);
148
+ validateField(field2, linkedTag2, fix, message);
149
+ } else {
150
+ debug(`special is definedm but no rule applies`);
151
+ const lastSubField3 = findLastSubfield(field2);
152
+ if (lastSubField3) {
153
+ normalPuncRules(lastSubField3, res2.punc, field2.tag, false, false, fix, message);
154
+ }
205
155
  }
206
156
  }
207
157
  let res = null;
@@ -217,24 +167,22 @@ function validateField(field, linkedTag, fix, message) {
217
167
  return false;
218
168
  }
219
169
  }
220
-
221
- // Find configuration object matching tag:
222
- res = Object.values(_endingPunctuationConf.confSpec).find(o => {
170
+ res = Object.values(confSpec).find((o) => {
223
171
  const rangeFine = o.rangeStart <= tag && o.rangeEnd >= tag;
224
172
  return o.index === tag || rangeFine;
225
173
  });
226
174
  if (!res) {
227
175
  return;
228
- } // Configuration not found, pass field without error
229
-
230
- // Field does not have subfields; invalid
231
- if (typeof field.subfields === 'undefined' || field.subfields === null) {
176
+ }
177
+ if (typeof field.subfields === "undefined" || field.subfields === null) {
232
178
  message.message.push(`Field ${field.tag} has invalid ending punctuation`);
233
179
  return;
234
180
  }
235
-
236
- // Normal rules
237
- if (typeof res.special === 'undefined' || res.special === null) {
181
+ const forceNormal = res.special ? finnishException(field, res.special.termSubfieldCode, true) : false;
182
+ if (typeof res.special === "undefined" || res.special === null || forceNormal) {
183
+ if (forceNormal) {
184
+ console.info("EXCEPTION. SKIP FINNISH RULES");
185
+ }
238
186
  lastSubField = findLastSubfield(field);
239
187
  if (lastSubField) {
240
188
  normalPuncRules(lastSubField, res.punc, field.tag, false, false, fix, message);
@@ -243,11 +191,11 @@ function validateField(field, linkedTag, fix, message) {
243
191
  try {
244
192
  specialCases(res, field, field.tag);
245
193
  } catch (e) {
246
- console.error('Catched error from special case: ', e); // eslint-disable-line no-console
194
+ console.error("Catched error from special case: ", e);
247
195
  }
248
196
  }
249
197
  }
250
- function validateSingleField(field, linkedTag, fix) {
198
+ export function validateSingleField(field, linkedTag, fix) {
251
199
  const message = {};
252
200
  message.message = [];
253
201
  if (fix) {
@@ -257,4 +205,43 @@ function validateSingleField(field, linkedTag, fix) {
257
205
  message.valid = !(message.message.length >= 1);
258
206
  return message;
259
207
  }
260
- //# sourceMappingURL=ending-punctuation.js.map
208
+ function getLexicon(field, subfieldCode) {
209
+ const languageSubfield = field.subfields.find(({ code }) => code === subfieldCode);
210
+ if (!languageSubfield || !languageSubfield.value) {
211
+ return void 0;
212
+ }
213
+ if (finnishTerms.find((p) => p.test(languageSubfield.value))) {
214
+ return languageSubfield.value;
215
+ }
216
+ return void 0;
217
+ }
218
+ function finnishException(field, termSubfieldCode, hasDot = true) {
219
+ const lexicon = getLexicon(field, termSubfieldCode);
220
+ if (!lexicon) {
221
+ return false;
222
+ }
223
+ const lastSubfield = findLastSubfield(field);
224
+ if (!lastSubfield || !lastSubfield.value) {
225
+ return false;
226
+ }
227
+ if (field.tag === "648") {
228
+ if (lexicon === "yso/fin") {
229
+ if (hasDot) {
230
+ return lastSubfield.value.match(/ (?:eaa|[ej]Kr|jaa)\.$/u);
231
+ }
232
+ return lastSubfield.value.match(/ (?:eaa|[ej]Kr)|jaa$/u);
233
+ }
234
+ if (lexicon === "yso/swe") {
235
+ if (hasDot) {
236
+ return lastSubfield.value.match(/ (?:[ef]\.Kr|f\.v\.t)\.$/u);
237
+ }
238
+ return lastSubfield.value.match(/ (?:[ef]\.Kr|f\.v\.t)$/u);
239
+ }
240
+ }
241
+ return false;
242
+ }
243
+ function findLastSubfield(field) {
244
+ const subfields = field.subfields.filter((sf) => isNaN(sf.code) && "value" in sf);
245
+ return subfields.slice(-1).shift();
246
+ }
247
+ //# sourceMappingURL=ending-punctuation.js.map