@natlibfi/marc-record-validators-melinda 8.4.4 → 9.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/.drone.yml +14 -14
  2. package/dist/access-rights.js +19 -23
  3. package/dist/access-rights.js.map +1 -1
  4. package/dist/access-rights.spec.js +12 -14
  5. package/dist/access-rights.spec.js.map +1 -1
  6. package/dist/double-commas.js +12 -12
  7. package/dist/double-commas.js.map +1 -1
  8. package/dist/double-commas.spec.js +10 -10
  9. package/dist/double-commas.spec.js.map +1 -1
  10. package/dist/duplicates-ind1.js +16 -17
  11. package/dist/duplicates-ind1.js.map +1 -1
  12. package/dist/duplicates-ind1.spec.js +14 -14
  13. package/dist/duplicates-ind1.spec.js.map +1 -1
  14. package/dist/empty-fields.js +8 -6
  15. package/dist/empty-fields.js.map +1 -1
  16. package/dist/empty-fields.spec.js +10 -10
  17. package/dist/empty-fields.spec.js.map +1 -1
  18. package/dist/ending-punctuation-conf.js +111 -109
  19. package/dist/ending-punctuation-conf.js.map +1 -1
  20. package/dist/ending-punctuation.js +77 -42
  21. package/dist/ending-punctuation.js.map +1 -1
  22. package/dist/ending-punctuation.spec.js +14 -14
  23. package/dist/ending-punctuation.spec.js.map +1 -1
  24. package/dist/field-exclusion.js +33 -29
  25. package/dist/field-exclusion.js.map +1 -1
  26. package/dist/field-exclusion.spec.js +390 -103
  27. package/dist/field-exclusion.spec.js.map +1 -1
  28. package/dist/field-structure.js +58 -54
  29. package/dist/field-structure.js.map +1 -1
  30. package/dist/field-structure.spec.js +76 -52
  31. package/dist/field-structure.spec.js.map +1 -1
  32. package/dist/fields-present.js +11 -10
  33. package/dist/fields-present.js.map +1 -1
  34. package/dist/fields-present.spec.js +59 -18
  35. package/dist/fields-present.spec.js.map +1 -1
  36. package/dist/fixed-fields.js +14 -16
  37. package/dist/fixed-fields.js.map +1 -1
  38. package/dist/fixed-fields.spec.js +38 -34
  39. package/dist/fixed-fields.spec.js.map +1 -1
  40. package/dist/identical-fields.js +14 -13
  41. package/dist/identical-fields.js.map +1 -1
  42. package/dist/identical-fields.spec.js +10 -10
  43. package/dist/identical-fields.spec.js.map +1 -1
  44. package/dist/index.js +7 -34
  45. package/dist/index.js.map +1 -1
  46. package/dist/isbn-issn.js +16 -11
  47. package/dist/isbn-issn.js.map +1 -1
  48. package/dist/isbn-issn.spec.js +10 -10
  49. package/dist/isbn-issn.spec.js.map +1 -1
  50. package/dist/item-language.js +29 -23
  51. package/dist/item-language.js.map +1 -1
  52. package/dist/item-language.spec.js +22 -22
  53. package/dist/item-language.spec.js.map +1 -1
  54. package/dist/punctuation/index.js +55 -36
  55. package/dist/punctuation/index.js.map +1 -1
  56. package/dist/punctuation/rules/aut.js +1 -1
  57. package/dist/punctuation/rules/aut.js.map +1 -1
  58. package/dist/punctuation/rules/bib.js +1 -1
  59. package/dist/punctuation/rules/bib.js.map +1 -1
  60. package/dist/punctuation/rules/index.js +4 -4
  61. package/dist/punctuation/rules/index.js.map +1 -1
  62. package/dist/punctuation.spec.js +38 -40
  63. package/dist/punctuation.spec.js.map +1 -1
  64. package/dist/resolvable-ext-references-melinda.js +15 -15
  65. package/dist/resolvable-ext-references-melinda.js.map +1 -1
  66. package/dist/resolvable-ext-references-melinda.spec.js +21 -21
  67. package/dist/resolvable-ext-references-melinda.spec.js.map +1 -1
  68. package/dist/sort-tags.js +25 -20
  69. package/dist/sort-tags.js.map +1 -1
  70. package/dist/sort-tags.spec.js +11 -11
  71. package/dist/sort-tags.spec.js.map +1 -1
  72. package/dist/subfield-exclusion.js +34 -23
  73. package/dist/subfield-exclusion.js.map +1 -1
  74. package/dist/subfield-exclusion.spec.js +140 -106
  75. package/dist/subfield-exclusion.spec.js.map +1 -1
  76. package/dist/unicode-decomposition.js +14 -18
  77. package/dist/unicode-decomposition.js.map +1 -1
  78. package/dist/unicode-decomposition.spec.js +12 -12
  79. package/dist/unicode-decomposition.spec.js.map +1 -1
  80. package/dist/urn.js +31 -37
  81. package/dist/urn.js.map +1 -1
  82. package/dist/urn.spec.js +11 -13
  83. package/dist/urn.spec.js.map +1 -1
  84. package/package.json +111 -117
  85. package/src/access-rights.js +67 -70
  86. package/src/access-rights.spec.js +107 -112
  87. package/src/double-commas.js +12 -18
  88. package/src/double-commas.spec.js +43 -44
  89. package/src/duplicates-ind1.js +34 -44
  90. package/src/duplicates-ind1.spec.js +82 -83
  91. package/src/empty-fields.js +60 -62
  92. package/src/empty-fields.spec.js +130 -132
  93. package/src/ending-punctuation-conf.js +677 -677
  94. package/src/ending-punctuation.js +220 -224
  95. package/src/ending-punctuation.spec.js +2545 -2410
  96. package/src/field-exclusion.js +191 -206
  97. package/src/field-exclusion.spec.js +883 -726
  98. package/src/field-structure.js +187 -215
  99. package/src/field-structure.spec.js +597 -496
  100. package/src/fields-present.js +19 -20
  101. package/src/fields-present.spec.js +90 -60
  102. package/src/fixed-fields.js +77 -82
  103. package/src/fixed-fields.spec.js +81 -94
  104. package/src/identical-fields.js +26 -27
  105. package/src/identical-fields.spec.js +114 -115
  106. package/src/index.js +18 -19
  107. package/src/isbn-issn.js +125 -127
  108. package/src/isbn-issn.spec.js +292 -291
  109. package/src/item-language.js +155 -160
  110. package/src/item-language.spec.js +313 -300
  111. package/src/punctuation/index.js +265 -262
  112. package/src/punctuation/rules/aut.js +369 -369
  113. package/src/punctuation/rules/bib.js +409 -409
  114. package/src/punctuation/rules/index.js +2 -2
  115. package/src/punctuation.spec.js +106 -110
  116. package/src/resolvable-ext-references-melinda.js +88 -94
  117. package/src/resolvable-ext-references-melinda.spec.js +167 -167
  118. package/src/sort-tags.js +33 -32
  119. package/src/sort-tags.spec.js +257 -262
  120. package/src/subfield-exclusion.js +147 -153
  121. package/src/subfield-exclusion.spec.js +456 -422
  122. package/src/unicode-decomposition.js +126 -126
  123. package/src/unicode-decomposition.spec.js +89 -84
  124. package/src/urn.js +75 -85
  125. package/src/urn.spec.js +121 -130
package/.drone.yml CHANGED
@@ -11,29 +11,29 @@ trigger:
11
11
  steps:
12
12
 
13
13
  - name: audit
14
- image: node:12
14
+ image: node:14
15
15
  commands:
16
16
  - npm audit --package-lock-only --production --audit-level=moderate
17
17
 
18
18
  - name: install
19
- image: node:12
19
+ image: node:14
20
20
  environment:
21
- NPM_CONFIG_IGNORE_SCRIPTS: true
21
+ NPM_CONFIG_IGNORE_SCRIPTS: true
22
22
  commands:
23
23
  - npm ci
24
24
 
25
- #- name: test
26
- # image: node:12
27
- # commands:
28
- # - npm test
25
+ - name: test
26
+ image: node:14
27
+ commands:
28
+ - npm test
29
29
 
30
- #- name: check-coverage
31
- # image: node:12
32
- # commands:
33
- # - npm run coverage
30
+ - name: check-coverage
31
+ image: node:14
32
+ commands:
33
+ - npm run coverage
34
34
 
35
35
  - name: build
36
- image: node:12
36
+ image: node:14
37
37
  commands:
38
38
  - npm run build
39
39
  - NPM_CONFIG_IGNORE_SCRIPTS=true npm ci --production
@@ -50,7 +50,7 @@ steps:
50
50
  token:
51
51
  from_secret: npm_token
52
52
  when:
53
- event: tag
53
+ event: tag
54
54
  ---
55
55
  kind: pipeline
56
56
  type: docker
@@ -87,6 +87,6 @@ name: gpg_key
87
87
  data: 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
88
88
  ---
89
89
  kind: signature
90
- hmac: 5cddc8caf94ae2e883dd0afe3f595759de846aa41c2f6fc5813f59fe160d1245
90
+ hmac: 976ccc627b05500d5bcf91a1ccdc5c2b0cdfdd18e151220f1a7ca985542cb2d0
91
91
 
92
92
  ...
@@ -1,3 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+
1
8
  /**
2
9
  *
3
10
  * @licstart The following is the entire license notice for the JavaScript code in this file.
@@ -25,27 +32,19 @@
25
32
  * for the JavaScript code in this file.
26
33
  *
27
34
  */
28
-
29
- /* eslint-disable require-await */
30
- 'use strict';
31
-
32
- Object.defineProperty(exports, "__esModule", {
33
- value: true
34
- });
35
- exports.default = _default;
36
-
37
- async function _default() {
35
+ function _default() {
38
36
  const sf506 = [{
39
37
  code: 'a',
40
- value: /aineisto on käytettävissä vapaakappalekirjastoissa/i
38
+ value: /aineisto on käytettävissä vapaakappalekirjastoissa/ui
41
39
  }];
42
40
  const sf540 = [{
43
41
  code: 'c',
44
- value: /laki kulttuuriaineistojen tallettamisesta ja säilyttämisestä/i
42
+ value: /laki kulttuuriaineistojen tallettamisesta ja säilyttämisestä/ui
45
43
  }];
46
44
 
47
- async function fix(record) {
45
+ function fix(record) {
48
46
  if (!hasTag(record, '506', sf506)) {
47
+ // eslint-disable-line functional/no-conditional-statement
49
48
  record.insertField({
50
49
  tag: '506',
51
50
  ind1: '1',
@@ -54,7 +53,7 @@ async function _default() {
54
53
  value: 'Aineisto on käytettävissä vapaakappalekirjastoissa.'
55
54
  }, {
56
55
  code: 'f',
57
- value: 'Online access with authorization.'
56
+ value: 'Online access with authorization'
58
57
  }, {
59
58
  code: '2',
60
59
  value: 'star'
@@ -69,6 +68,7 @@ async function _default() {
69
68
  }
70
69
 
71
70
  if (!hasTag(record, '540', sf540)) {
71
+ // eslint-disable-line functional/no-conditional-statement
72
72
  record.insertField({
73
73
  tag: '540',
74
74
  subfields: [{
@@ -96,7 +96,7 @@ async function _default() {
96
96
  return true;
97
97
  }
98
98
 
99
- async function validate(record) {
99
+ function validate(record) {
100
100
  return {
101
101
  valid: hasTag(record, '506', sf506) && hasTag(record, '540', sf540)
102
102
  };
@@ -109,14 +109,10 @@ async function _default() {
109
109
  };
110
110
 
111
111
  function hasTag(rec, tag, sfcv) {
112
- return rec.fields.some(f => {
113
- return f.tag === tag && sfcv.every(({
114
- code,
115
- value
116
- }) => f.subfields.some(sf => {
117
- return sf.code === code && value.test(sf.value);
118
- }));
119
- });
112
+ return rec.fields.some(f => f.tag === tag && sfcv.every(({
113
+ code,
114
+ value
115
+ }) => f.subfields.some(sf => sf.code === code && value.test(sf.value))));
120
116
  }
121
117
  }
122
118
  //# sourceMappingURL=access-rights.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/access-rights.js"],"names":["sf506","code","value","sf540","fix","record","hasTag","insertField","tag","ind1","subfields","validate","valid","description","rec","sfcv","fields","some","f","every","sf","test"],"mappings":"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","sourcesContent":["/**\n *\n * @licstart The following is the entire license notice for the JavaScript code in this file.\n *\n * MARC record validators used in Melinda\n *\n * Copyright (c) 2014-2020 University Of Helsinki (The National Library Of Finland)\n *\n * This file is part of marc-record-validators-melinda\n *\n * marc-record-validators-melinda program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * marc-record-validators-melinda is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n * @licend The above is the entire license notice\n * for the JavaScript code in this file.\n *\n */\n\n/* eslint-disable require-await */\n\n'use strict';\n\nexport default async function () {\n\tconst sf506 = [{code: 'a', value: /aineisto on käytettävissä vapaakappalekirjastoissa/i}];\n\tconst sf540 = [{code: 'c', value: /laki kulttuuriaineistojen tallettamisesta ja säilyttämisestä/i}];\n\n\tasync function fix(record) {\n\t\tif (!hasTag(record, '506', sf506)) {\n\t\t\trecord.insertField({\n\t\t\t\ttag: '506',\n\t\t\t\tind1: '1',\n\t\t\t\tsubfields: [{\n\t\t\t\t\tcode: 'a',\n\t\t\t\t\tvalue: 'Aineisto on käytettävissä vapaakappalekirjastoissa.'\n\t\t\t\t}, {\n\t\t\t\t\tcode: 'f',\n\t\t\t\t\tvalue: 'Online access with authorization.'\n\t\t\t\t}, {\n\t\t\t\t\tcode: '2',\n\t\t\t\t\tvalue: 'star'\n\t\t\t\t}, {\n\t\t\t\t\tcode: '5',\n\t\t\t\t\tvalue: 'FI-Vapaa'\n\t\t\t\t}, {\n\t\t\t\t\tcode: '9',\n\t\t\t\t\tvalue: 'FENNI<KEEP>'\n\t\t\t\t}]\n\t\t\t});\n\t\t}\n\n\t\tif (!hasTag(record, '540', sf540)) {\n\t\t\trecord.insertField({\n\t\t\t\ttag: '540',\n\t\t\t\tsubfields: [{\n\t\t\t\t\tcode: 'a',\n\t\t\t\t\tvalue: 'Aineisto on käytettävissä tutkimus- ja muihin tarkoituksiin;'\n\t\t\t\t}, {\n\t\t\t\t\tcode: 'b',\n\t\t\t\t\tvalue: 'Kansalliskirjasto;'\n\t\t\t\t}, {\n\t\t\t\t\tcode: 'c',\n\t\t\t\t\tvalue: 'Laki kulttuuriaineistojen tallettamisesta ja säilyttämisestä'\n\t\t\t\t}, {\n\t\t\t\t\tcode: 'u',\n\t\t\t\t\tvalue: 'http://www.finlex.fi/fi/laki/ajantasa/2007/20071433'\n\t\t\t\t}, {\n\t\t\t\t\tcode: '5',\n\t\t\t\t\tvalue: 'FI-Vapaa'\n\t\t\t\t}, {\n\t\t\t\t\tcode: '9',\n\t\t\t\t\tvalue: 'FENNI<KEEP>'\n\t\t\t\t}]\n\t\t\t});\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tasync function validate(record) {\n\t\treturn {valid: hasTag(record, '506', sf506) && hasTag(record, '540', sf540)};\n\t}\n\n\treturn {\n\t\tdescription: 'Adds access rights fields for a record (if not existing)',\n\t\tvalidate,\n\t\tfix\n\t};\n\n\tfunction hasTag(rec, tag, sfcv) {\n\t\treturn rec.fields.some(f => {\n\t\t\treturn (f.tag === tag) && sfcv.every(({code, value}) => f.subfields.some(sf => {\n\t\t\t\treturn (sf.code === code) && value.test(sf.value);\n\t\t\t}));\n\t\t});\n\t}\n}\n"],"file":"access-rights.js"}
1
+ {"version":3,"sources":["../src/access-rights.js"],"names":["sf506","code","value","sf540","fix","record","hasTag","insertField","tag","ind1","subfields","validate","valid","description","rec","sfcv","fields","some","f","every","sf","test"],"mappings":"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","sourcesContent":["/**\n *\n * @licstart The following is the entire license notice for the JavaScript code in this file.\n *\n * MARC record validators used in Melinda\n *\n * Copyright (c) 2014-2020 University Of Helsinki (The National Library Of Finland)\n *\n * This file is part of marc-record-validators-melinda\n *\n * marc-record-validators-melinda program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * marc-record-validators-melinda is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n * @licend The above is the entire license notice\n * for the JavaScript code in this file.\n *\n */\n\n\nexport default function () {\n const sf506 = [{code: 'a', value: /aineisto on käytettävissä vapaakappalekirjastoissa/ui}];\n const sf540 = [{code: 'c', value: /laki kulttuuriaineistojen tallettamisesta ja säilyttämisestä/ui}];\n\n function fix(record) {\n if (!hasTag(record, '506', sf506)) { // eslint-disable-line functional/no-conditional-statement\n record.insertField({\n tag: '506',\n ind1: '1',\n subfields: [\n {\n code: 'a',\n value: 'Aineisto on käytettävissä vapaakappalekirjastoissa.'\n }, {\n code: 'f',\n value: 'Online access with authorization'\n }, {\n code: '2',\n value: 'star'\n }, {\n code: '5',\n value: 'FI-Vapaa'\n }, {\n code: '9',\n value: 'FENNI<KEEP>'\n }\n ]\n });\n }\n\n if (!hasTag(record, '540', sf540)) { // eslint-disable-line functional/no-conditional-statement\n record.insertField({\n tag: '540',\n subfields: [\n {\n code: 'a',\n value: 'Aineisto on käytettävissä tutkimus- ja muihin tarkoituksiin;'\n }, {\n code: 'b',\n value: 'Kansalliskirjasto;'\n }, {\n code: 'c',\n value: 'Laki kulttuuriaineistojen tallettamisesta ja säilyttämisestä'\n }, {\n code: 'u',\n value: 'http://www.finlex.fi/fi/laki/ajantasa/2007/20071433'\n }, {\n code: '5',\n value: 'FI-Vapaa'\n }, {\n code: '9',\n value: 'FENNI<KEEP>'\n }\n ]\n });\n }\n\n return true;\n }\n\n function validate(record) {\n return {valid: hasTag(record, '506', sf506) && hasTag(record, '540', sf540)};\n }\n\n return {\n description: 'Adds access rights fields for a record (if not existing)',\n validate,\n fix\n };\n\n function hasTag(rec, tag, sfcv) {\n return rec.fields.some(f => f.tag === tag && sfcv.every(({code, value}) => f.subfields.some(sf => sf.code === code && value.test(sf.value))));\n }\n}\n"],"file":"access-rights.js"}
@@ -1,3 +1,13 @@
1
+ "use strict";
2
+
3
+ var _chai = require("chai");
4
+
5
+ var _marcRecord = require("@natlibfi/marc-record");
6
+
7
+ var _accessRights = _interopRequireDefault(require("../src/access-rights"));
8
+
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+
1
11
  /**
2
12
  *
3
13
  * @licstart The following is the entire license notice for the JavaScript code in this file.
@@ -25,18 +35,6 @@
25
35
  * for the JavaScript code in this file.
26
36
  *
27
37
  */
28
-
29
- /* eslint-disable no-undef, max-nested-callbacks, no-unused-expressions */
30
- 'use strict';
31
-
32
- var _chai = require("chai");
33
-
34
- var _marcRecord = require("@natlibfi/marc-record");
35
-
36
- var _accessRights = _interopRequireDefault(require("../src/access-rights"));
37
-
38
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
-
40
38
  describe('access-rights', async () => {
41
39
  // Fields
42
40
  const ldf5061 = {
@@ -48,7 +46,7 @@ describe('access-rights', async () => {
48
46
  value: 'Aineisto on käytettävissä vapaakappalekirjastoissa.'
49
47
  }, {
50
48
  code: 'f',
51
- value: 'Online access with authorization.'
49
+ value: 'Online access with authorization'
52
50
  }, {
53
51
  code: '2',
54
52
  value: 'star'
@@ -126,7 +124,7 @@ describe('access-rights', async () => {
126
124
  fields: recfields
127
125
  }));
128
126
  (0, _chai.expect)(result).to.eql({
129
- valid: valid
127
+ valid
130
128
  });
131
129
  },
132
130
  fix: async (recfields, resfields) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/access-rights.spec.js"],"names":["describe","ldf5061","tag","ind1","ind2","subfields","code","value","ldf540","f5060","f540","it","validator","to","be","an","that","has","any","keys","description","a","validate","test","valid","recfields","result","MarcRecord","fields","eql","fix","resfields","record"],"mappings":"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","sourcesContent":["/**\n *\n * @licstart The following is the entire license notice for the JavaScript code in this file.\n *\n * MARC record validators used in Melinda\n *\n * Copyright (c) 2014-2020 University Of Helsinki (The National Library Of Finland)\n *\n * This file is part of marc-record-validators-melinda\n *\n * marc-record-validators-melinda program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * marc-record-validators-melinda is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n * @licend The above is the entire license notice\n * for the JavaScript code in this file.\n *\n */\n\n/* eslint-disable no-undef, max-nested-callbacks, no-unused-expressions */\n\n'use strict';\n\nimport {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/access-rights';\n\ndescribe('access-rights', async () => {\n\t// Fields\n\tconst ldf5061 = {\n\t\ttag: '506',\n\t\tind1: '1',\n\t\tind2: ' ',\n\t\tsubfields: [\n\t\t\t{code: 'a', value: 'Aineisto on käytettävissä vapaakappalekirjastoissa.'},\n\t\t\t{code: 'f', value: 'Online access with authorization.'},\n\t\t\t{code: '2', value: 'star'},\n\t\t\t{code: '5', value: 'FI-Vapaa'},\n\t\t\t{code: '9', value: 'FENNI<KEEP>'}\n\t\t]\n\t};\n\tconst ldf540 = {\n\t\ttag: '540',\n\t\tind1: ' ',\n\t\tind2: ' ',\n\t\tsubfields: [\n\t\t\t{code: 'a', value: 'Aineisto on käytettävissä tutkimus- ja muihin tarkoituksiin;'},\n\t\t\t{code: 'b', value: 'Kansalliskirjasto;'},\n\t\t\t{code: 'c', value: 'Laki kulttuuriaineistojen tallettamisesta ja säilyttämisestä'},\n\t\t\t{code: 'u', value: 'http://www.finlex.fi/fi/laki/ajantasa/2007/20071433'},\n\t\t\t{code: '5', value: 'FI-Vapaa'},\n\t\t\t{code: '9', value: 'FENNI<KEEP>'}\n\t\t]\n\t};\n\tconst f5060 = {\n\t\ttag: '506',\n\t\tind1: '0',\n\t\tind2: ' ',\n\t\tsubfields: [\n\t\t\t{code: 'a', value: 'Aineisto on vapaasti saatavissa.'},\n\t\t\t{code: 'f', value: 'Unrestricted online access'},\n\t\t\t{code: '2', value: 'star'},\n\t\t\t{code: '9', value: 'FENNI<KEEP>'}\n\t\t]\n\t};\n\tconst f540 = {\n\t\ttag: '540',\n\t\tind1: ' ',\n\t\tind2: ' ',\n\t\tsubfields: [\n\t\t\t{code: 'c', value: 'This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.'}\n\t\t]\n\t};\n\n\tit('Creates a validator', async () => {\n\t\tconst validator = await validatorFactory();\n\n\t\texpect(validator)\n\t\t\t.to.be.an('object')\n\t\t\t.that.has.any.keys('description', 'validate');\n\n\t\texpect(validator.description).to.be.a('string');\n\t\texpect(validator.validate).to.be.a('function');\n\t});\n\n\t// Tests\n\tconst test = await (async () => {\n\t\tconst validator = await validatorFactory();\n\t\treturn {\n\t\t\tvalidate: async (valid, ...recfields) => {\n\t\t\t\tconst result = await validator.validate(new MarcRecord({fields: recfields}));\n\t\t\t\texpect(result).to.eql({valid: valid});\n\t\t\t},\n\n\t\t\tfix: async (recfields, resfields) => {\n\t\t\t\tconst record = new MarcRecord({fields: recfields});\n\t\t\t\tawait validator.fix(record);\n\t\t\t\texpect(record.fields).to.eql(resfields);\n\t\t\t}\n\t\t};\n\t})();\n\n\tdescribe('#validate', () => {\n\t\tit('Finds the record valid; Legal deposit fields 5061 and 540', async () => {\n\t\t\tawait test.validate(true, ldf5061, ldf540);\n\t\t});\n\n\t\tit('Finds the record invalid; Missing 5061', async () => {\n\t\t\tawait test.validate(false, f5060, ldf540);\n\t\t});\n\n\t\tit('Finds the record invalid; Missing 540', async () => {\n\t\t\tawait test.validate(false, ldf5061, f540);\n\t\t});\n\n\t\tit('Finds the record invalid; Missing 5061 and 540', async () => {\n\t\t\tawait test.validate(false, f5060, f540);\n\t\t});\n\t});\n\n\tdescribe('#fix', () => {\n\t\tit('Legal deposit fields 5061 and 540; Nothing to add', async () => {\n\t\t\tawait test.fix([ldf5061, ldf540], [ldf5061, ldf540]);\n\t\t});\n\n\t\tit('540 but missing 5061; Adds 5061', async () => {\n\t\t\tawait test.fix([f5060, ldf540], [f5060, ldf5061, ldf540]);\n\t\t});\n\n\t\tit('5061 but missing 540; Adds 540', async () => {\n\t\t\tawait test.fix([ldf5061, f540], [ldf5061, f540, ldf540]);\n\t\t});\n\n\t\tit('Both, 5061 and 540, missing; Adds 5061 and 540', async () => {\n\t\t\tawait test.fix([f5060, f540], [f5060, ldf5061, f540, ldf540]);\n\t\t});\n\t});\n});\n"],"file":"access-rights.spec.js"}
1
+ {"version":3,"sources":["../src/access-rights.spec.js"],"names":["describe","ldf5061","tag","ind1","ind2","subfields","code","value","ldf540","f5060","f540","it","validator","to","be","an","that","has","any","keys","description","a","validate","test","valid","recfields","result","MarcRecord","fields","eql","fix","resfields","record"],"mappings":"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","sourcesContent":["/**\n *\n * @licstart The following is the entire license notice for the JavaScript code in this file.\n *\n * MARC record validators used in Melinda\n *\n * Copyright (c) 2014-2020 University Of Helsinki (The National Library Of Finland)\n *\n * This file is part of marc-record-validators-melinda\n *\n * marc-record-validators-melinda program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * marc-record-validators-melinda is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n * @licend The above is the entire license notice\n * for the JavaScript code in this file.\n *\n */\n\n\nimport {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/access-rights';\n\ndescribe('access-rights', async () => {\n // Fields\n const ldf5061 = {\n tag: '506',\n ind1: '1',\n ind2: ' ',\n subfields: [\n {code: 'a', value: 'Aineisto on käytettävissä vapaakappalekirjastoissa.'},\n {code: 'f', value: 'Online access with authorization'},\n {code: '2', value: 'star'},\n {code: '5', value: 'FI-Vapaa'},\n {code: '9', value: 'FENNI<KEEP>'}\n ]\n };\n const ldf540 = {\n tag: '540',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {code: 'a', value: 'Aineisto on käytettävissä tutkimus- ja muihin tarkoituksiin;'},\n {code: 'b', value: 'Kansalliskirjasto;'},\n {code: 'c', value: 'Laki kulttuuriaineistojen tallettamisesta ja säilyttämisestä'},\n {code: 'u', value: 'http://www.finlex.fi/fi/laki/ajantasa/2007/20071433'},\n {code: '5', value: 'FI-Vapaa'},\n {code: '9', value: 'FENNI<KEEP>'}\n ]\n };\n const f5060 = {\n tag: '506',\n ind1: '0',\n ind2: ' ',\n subfields: [\n {code: 'a', value: 'Aineisto on vapaasti saatavissa.'},\n {code: 'f', value: 'Unrestricted online access'},\n {code: '2', value: 'star'},\n {code: '9', value: 'FENNI<KEEP>'}\n ]\n };\n const f540 = {\n tag: '540',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'c', value: 'This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.'}]\n };\n\n it('Creates a validator', async () => {\n const validator = await validatorFactory();\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n });\n\n // Tests\n const test = await (async () => {\n const validator = await validatorFactory();\n return {\n validate: async (valid, ...recfields) => {\n const result = await validator.validate(new MarcRecord({fields: recfields}));\n expect(result).to.eql({valid});\n },\n\n fix: async (recfields, resfields) => {\n const record = new MarcRecord({fields: recfields});\n await validator.fix(record);\n expect(record.fields).to.eql(resfields);\n }\n };\n })();\n\n describe('#validate', () => {\n it('Finds the record valid; Legal deposit fields 5061 and 540', async () => {\n await test.validate(true, ldf5061, ldf540);\n });\n\n it('Finds the record invalid; Missing 5061', async () => {\n await test.validate(false, f5060, ldf540);\n });\n\n it('Finds the record invalid; Missing 540', async () => {\n await test.validate(false, ldf5061, f540);\n });\n\n it('Finds the record invalid; Missing 5061 and 540', async () => {\n await test.validate(false, f5060, f540);\n });\n });\n\n describe('#fix', () => {\n it('Legal deposit fields 5061 and 540; Nothing to add', async () => {\n await test.fix([ldf5061, ldf540], [ldf5061, ldf540]);\n });\n\n it('540 but missing 5061; Adds 5061', async () => {\n await test.fix([f5060, ldf540], [f5060, ldf5061, ldf540]);\n });\n\n it('5061 but missing 540; Adds 540', async () => {\n await test.fix([ldf5061, f540], [ldf5061, f540, ldf540]);\n });\n\n it('Both, 5061 and 540, missing; Adds 5061 and 540', async () => {\n await test.fix([f5060, f540], [f5060, ldf5061, f540, ldf540]);\n });\n });\n});\n"],"file":"access-rights.spec.js"}
@@ -1,3 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+
1
8
  /**
2
9
  *
3
10
  * @licstart The following is the entire license notice for the JavaScript code in this file.
@@ -25,21 +32,14 @@
25
32
  * for the JavaScript code in this file.
26
33
  *
27
34
  */
28
- 'use strict';
29
-
30
- Object.defineProperty(exports, "__esModule", {
31
- value: true
32
- });
33
- exports.default = _default;
34
-
35
- async function _default() {
35
+ function _default() {
36
36
  return {
37
37
  description: 'Handle double commas in 700$e-subfields',
38
- validate: async record => ({
39
- valid: !record.get(/^700$/).some(f => f.subfields.every(sf => sf.code === 'e' && /,,/.test(sf.value)))
38
+ validate: record => ({
39
+ valid: !record.get(/^700$/u).some(f => f.subfields.every(sf => sf.code === 'e' && /,,/u.test(sf.value)))
40
40
  }),
41
- fix: async record => record.get(/^700$/).forEach(f => f.subfields.filter(sf => sf.code === 'e').forEach(sf => {
42
- sf.value = sf.value.replace(/,,/, ',');
41
+ fix: record => record.get(/^700$/u).forEach(f => f.subfields.filter(sf => sf.code === 'e').forEach(sf => {
42
+ sf.value = sf.value.replace(/,,/u, ','); // eslint-disable-line functional/immutable-data
43
43
  }))
44
44
  };
45
45
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/double-commas.js"],"names":["description","validate","record","valid","get","some","f","subfields","every","sf","code","test","value","fix","forEach","filter","replace"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;AAEe,0BAAkB;AAChC,SAAO;AACNA,IAAAA,WAAW,EAAE,yCADP;AAENC,IAAAA,QAAQ,EAAE,MAAMC,MAAN,KAAiB;AAC1BC,MAAAA,KAAK,EAAE,CAACD,MAAM,CACZE,GADM,CACF,OADE,EAENC,IAFM,CAEDC,CAAC,IACNA,CAAC,CAACC,SAAF,CAAYC,KAAZ,CAAkBC,EAAE,IAAIA,EAAE,CAACC,IAAH,KAAY,GAAZ,IAAmB,KAAKC,IAAL,CAAUF,EAAE,CAACG,KAAb,CAA3C,CAHM;AADkB,KAAjB,CAFJ;AASNC,IAAAA,GAAG,EAAE,MAAMX,MAAN,IACJA,MAAM,CAACE,GAAP,CAAW,OAAX,EAAoBU,OAApB,CAA4BR,CAAC,IAC5BA,CAAC,CAACC,SAAF,CAAYQ,MAAZ,CAAmBN,EAAE,IAAIA,EAAE,CAACC,IAAH,KAAY,GAArC,EAA0CI,OAA1C,CAAkDL,EAAE,IAAI;AACvDA,MAAAA,EAAE,CAACG,KAAH,GAAWH,EAAE,CAACG,KAAH,CAASI,OAAT,CAAiB,IAAjB,EAAuB,GAAvB,CAAX;AACA,KAFD,CADD;AAVK,GAAP;AAgBA","sourcesContent":["/**\n *\n * @licstart The following is the entire license notice for the JavaScript code in this file.\n *\n * MARC record validators used in Melinda\n *\n * Copyright (c) 2014-2020 University Of Helsinki (The National Library Of Finland)\n *\n * This file is part of marc-record-validators-melinda\n *\n * marc-record-validators-melinda program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * marc-record-validators-melinda is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n * @licend The above is the entire license notice\n * for the JavaScript code in this file.\n *\n */\n\n'use strict';\n\nexport default async function () {\n\treturn {\n\t\tdescription: 'Handle double commas in 700$e-subfields',\n\t\tvalidate: async record => ({\n\t\t\tvalid: !record\n\t\t\t\t.get(/^700$/)\n\t\t\t\t.some(f =>\n\t\t\t\t\tf.subfields.every(sf => sf.code === 'e' && /,,/.test(sf.value))\n\t\t\t\t)\n\t\t}),\n\t\tfix: async record =>\n\t\t\trecord.get(/^700$/).forEach(f =>\n\t\t\t\tf.subfields.filter(sf => sf.code === 'e').forEach(sf => {\n\t\t\t\t\tsf.value = sf.value.replace(/,,/, ',');\n\t\t\t\t})\n\t\t\t)\n\t};\n}\n"],"file":"double-commas.js"}
1
+ {"version":3,"sources":["../src/double-commas.js"],"names":["description","validate","record","valid","get","some","f","subfields","every","sf","code","test","value","fix","forEach","filter","replace"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGe,oBAAY;AACzB,SAAO;AACLA,IAAAA,WAAW,EAAE,yCADR;AAELC,IAAAA,QAAQ,EAAEC,MAAM,KAAK;AACnBC,MAAAA,KAAK,EAAE,CAACD,MAAM,CACXE,GADK,CACD,QADC,EAELC,IAFK,CAEAC,CAAC,IAAIA,CAAC,CAACC,SAAF,CAAYC,KAAZ,CAAkBC,EAAE,IAAIA,EAAE,CAACC,IAAH,KAAY,GAAZ,IAAoB,KAAD,CAAQC,IAAR,CAAaF,EAAE,CAACG,KAAhB,CAA3C,CAFL;AADW,KAAL,CAFX;AAOLC,IAAAA,GAAG,EAAEX,MAAM,IAAIA,MAAM,CAACE,GAAP,CAAW,QAAX,EAAqBU,OAArB,CAA6BR,CAAC,IAAIA,CAAC,CAACC,SAAF,CAAYQ,MAAZ,CAAmBN,EAAE,IAAIA,EAAE,CAACC,IAAH,KAAY,GAArC,EAA0CI,OAA1C,CAAkDL,EAAE,IAAI;AACvGA,MAAAA,EAAE,CAACG,KAAH,GAAWH,EAAE,CAACG,KAAH,CAASI,OAAT,CAAiB,KAAjB,EAAwB,GAAxB,CAAX,CADuG,CAC9D;AAC1C,KAFgD,CAAlC;AAPV,GAAP;AAWD","sourcesContent":["/**\n *\n * @licstart The following is the entire license notice for the JavaScript code in this file.\n *\n * MARC record validators used in Melinda\n *\n * Copyright (c) 2014-2020 University Of Helsinki (The National Library Of Finland)\n *\n * This file is part of marc-record-validators-melinda\n *\n * marc-record-validators-melinda program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * marc-record-validators-melinda is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n * @licend The above is the entire license notice\n * for the JavaScript code in this file.\n *\n */\n\n\nexport default function () {\n return {\n description: 'Handle double commas in 700$e-subfields',\n validate: record => ({\n valid: !record\n .get(/^700$/u)\n .some(f => f.subfields.every(sf => sf.code === 'e' && (/,,/u).test(sf.value)))\n }),\n fix: record => record.get(/^700$/u).forEach(f => f.subfields.filter(sf => sf.code === 'e').forEach(sf => {\n sf.value = sf.value.replace(/,,/u, ','); // eslint-disable-line functional/immutable-data\n }))\n };\n}\n"],"file":"double-commas.js"}
@@ -1,3 +1,13 @@
1
+ "use strict";
2
+
3
+ var _chai = require("chai");
4
+
5
+ var _marcRecord = require("@natlibfi/marc-record");
6
+
7
+ var _doubleCommas = _interopRequireDefault(require("../src/double-commas"));
8
+
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+
1
11
  /**
2
12
  *
3
13
  * @licstart The following is the entire license notice for the JavaScript code in this file.
@@ -25,16 +35,6 @@
25
35
  * for the JavaScript code in this file.
26
36
  *
27
37
  */
28
- 'use strict';
29
-
30
- var _chai = require("chai");
31
-
32
- var _marcRecord = require("@natlibfi/marc-record");
33
-
34
- var _doubleCommas = _interopRequireDefault(require("../src/double-commas"));
35
-
36
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
-
38
38
  describe('double-commas', () => {
39
39
  it('Creates a validator', async () => {
40
40
  const validator = await (0, _doubleCommas.default)();
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/double-commas.spec.js"],"names":["describe","it","validator","to","be","an","that","has","any","keys","description","a","validate","record","MarcRecord","fields","tag","subfields","code","value","result","eql","valid","fix","ind1","ind2"],"mappings":"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","sourcesContent":["/**\n *\n * @licstart The following is the entire license notice for the JavaScript code in this file.\n *\n * MARC record validators used in Melinda\n *\n * Copyright (c) 2014-2020 University Of Helsinki (The National Library Of Finland)\n *\n * This file is part of marc-record-validators-melinda\n *\n * marc-record-validators-melinda program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * marc-record-validators-melinda is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n * @licend The above is the entire license notice\n * for the JavaScript code in this file.\n *\n */\n\n'use strict';\n\nimport {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/double-commas';\n\ndescribe('double-commas', () => {\n\tit('Creates a validator', async () => {\n\t\tconst validator = await validatorFactory();\n\n\t\texpect(validator)\n\t\t\t.to.be.an('object')\n\t\t\t.that.has.any.keys('description', 'validate');\n\n\t\texpect(validator.description).to.be.a('string');\n\t\texpect(validator.validate).to.be.a('function');\n\t});\n\n\tdescribe('#validate', () => {\n\t\tit('Finds the record valid', async () => {\n\t\t\tconst validator = await validatorFactory();\n\t\t\tconst record = new MarcRecord({\n\t\t\t\tfields: [{tag: '700', subfields: [{code: 'e', value: 'foo,bar'}]}]\n\t\t\t});\n\t\t\tconst result = await validator.validate(record);\n\n\t\t\texpect(result).to.eql({valid: true});\n\t\t});\n\t\tit('Finds the record invalid', async () => {\n\t\t\tconst validator = await validatorFactory();\n\t\t\tconst record = new MarcRecord({\n\t\t\t\tfields: [{tag: '700', subfields: [{code: 'e', value: 'foo,,bar'}]}]\n\t\t\t});\n\t\t\tconst result = await validator.validate(record);\n\n\t\t\texpect(result).to.eql({valid: false});\n\t\t});\n\t});\n\n\tdescribe('#fix', () => {\n\t\tit('Fixes the record', async () => {\n\t\t\tconst validator = await validatorFactory();\n\t\t\tconst record = new MarcRecord({\n\t\t\t\tfields: [{tag: '700', subfields: [{code: 'e', value: 'foo,,bar'}]}]\n\t\t\t});\n\t\t\tawait validator.fix(record);\n\n\t\t\texpect(record.fields).to.eql([\n\t\t\t\t{\n\t\t\t\t\ttag: '700',\n\t\t\t\t\tind1: ' ',\n\t\t\t\t\tind2: ' ',\n\t\t\t\t\tsubfields: [{code: 'e', value: 'foo,bar'}]\n\t\t\t\t}\n\t\t\t]);\n\t\t});\n\t});\n});\n"],"file":"double-commas.spec.js"}
1
+ {"version":3,"sources":["../src/double-commas.spec.js"],"names":["describe","it","validator","to","be","an","that","has","any","keys","description","a","validate","record","MarcRecord","fields","tag","subfields","code","value","result","eql","valid","fix","ind1","ind2"],"mappings":"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","sourcesContent":["/**\n *\n * @licstart The following is the entire license notice for the JavaScript code in this file.\n *\n * MARC record validators used in Melinda\n *\n * Copyright (c) 2014-2020 University Of Helsinki (The National Library Of Finland)\n *\n * This file is part of marc-record-validators-melinda\n *\n * marc-record-validators-melinda program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * marc-record-validators-melinda is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n * @licend The above is the entire license notice\n * for the JavaScript code in this file.\n *\n */\n\n\nimport {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/double-commas';\n\ndescribe('double-commas', () => {\n it('Creates a validator', async () => {\n const validator = await validatorFactory();\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n });\n\n describe('#validate', () => {\n it('Finds the record valid', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [{tag: '700', subfields: [{code: 'e', value: 'foo,bar'}]}]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: true});\n });\n it('Finds the record invalid', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [{tag: '700', subfields: [{code: 'e', value: 'foo,,bar'}]}]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: false});\n });\n });\n\n describe('#fix', () => {\n it('Fixes the record', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [{tag: '700', subfields: [{code: 'e', value: 'foo,,bar'}]}]\n });\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n {\n tag: '700',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'e', value: 'foo,bar'}]\n }\n ]);\n });\n });\n});\n"],"file":"double-commas.spec.js"}
@@ -1,3 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+
1
8
  /**
2
9
  *
3
10
  * @licstart The following is the entire license notice for the JavaScript code in this file.
@@ -25,14 +32,7 @@
25
32
  * for the JavaScript code in this file.
26
33
  *
27
34
  */
28
- 'use strict';
29
-
30
- Object.defineProperty(exports, "__esModule", {
31
- value: true
32
- });
33
- exports.default = _default;
34
-
35
- async function _default(tagPattern) {
35
+ function _default(tagPattern) {
36
36
  if (tagPattern instanceof RegExp) {
37
37
  return {
38
38
  description: 'Handles data fields that only differ in the first indicator',
@@ -43,7 +43,7 @@ async function _default(tagPattern) {
43
43
 
44
44
  throw new Error('No tagPattern provided');
45
45
 
46
- async function validate(record) {
46
+ function validate(record) {
47
47
  const invalid = iterateFields(record).find(obj => obj.validation === true);
48
48
  return invalid ? {
49
49
  valid: false,
@@ -54,20 +54,19 @@ async function _default(tagPattern) {
54
54
  };
55
55
  }
56
56
 
57
- async function fix(record) {
57
+ function fix(record) {
58
58
  iterateFields(record).filter(item => item.validation === false).map(({
59
59
  validation,
60
60
  ...item
61
- }) => item).forEach(field => record.removeField(field));
61
+ }) => item) // eslint-disable-line no-unused-vars
62
+ .forEach(field => record.removeField(field));
62
63
  }
63
64
 
64
65
  function iterateFields(record) {
65
- return record.fields.map(obj => {
66
- return {
67
- validation: matches(obj, record.fields),
68
- obj
69
- };
70
- });
66
+ return record.fields.map(obj => ({
67
+ validation: matches(obj, record.fields),
68
+ obj
69
+ }));
71
70
  }
72
71
 
73
72
  function matches(field, fields) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/duplicates-ind1.js"],"names":["tagPattern","RegExp","description","validate","fix","Error","record","invalid","iterateFields","find","obj","validation","valid","messages","tag","filter","item","map","forEach","field","removeField","fields","matches","test","ind1","hasDuplicate","fieldA","some","fieldB","subfields","length","every","aSf","bSf","code","value"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;AAEe,wBAAgBA,UAAhB,EAA4B;AAC1C,MAAIA,UAAU,YAAYC,MAA1B,EAAkC;AACjC,WAAO;AACNC,MAAAA,WAAW,EACV,6DAFK;AAGNC,MAAAA,QAHM;AAINC,MAAAA;AAJM,KAAP;AAMA;;AAED,QAAM,IAAIC,KAAJ,CAAU,wBAAV,CAAN;;AAEA,iBAAeF,QAAf,CAAwBG,MAAxB,EAAgC;AAC/B,UAAMC,OAAO,GAAGC,aAAa,CAACF,MAAD,CAAb,CACdG,IADc,CACTC,GAAG,IAAIA,GAAG,CAACC,UAAJ,KAAmB,IADjB,CAAhB;AAEA,WAAOJ,OAAO,GAAG;AAACK,MAAAA,KAAK,EAAE,KAAR;AAAeC,MAAAA,QAAQ,EAAE,CAAE,YAAWN,OAAO,CAACG,GAAR,CAAYI,GAAI,kDAA7B;AAAzB,KAAH,GAA+G;AAACF,MAAAA,KAAK,EAAE,IAAR;AAAcC,MAAAA,QAAQ,EAAE;AAAxB,KAA7H;AACA;;AAED,iBAAeT,GAAf,CAAmBE,MAAnB,EAA2B;AAC1BE,IAAAA,aAAa,CAACF,MAAD,CAAb,CACES,MADF,CACSC,IAAI,IAAIA,IAAI,CAACL,UAAL,KAAoB,KADrC,EAEEM,GAFF,CAEM,CAAC;AAACN,MAAAA,UAAD;AAAa,SAAGK;AAAhB,KAAD,KAA2BA,IAFjC,EAGEE,OAHF,CAGUC,KAAK,IAAIb,MAAM,CAACc,WAAP,CAAmBD,KAAnB,CAHnB;AAIA;;AAED,WAASX,aAAT,CAAuBF,MAAvB,EAA+B;AAC9B,WAAOA,MAAM,CAACe,MAAP,CAAcJ,GAAd,CAAkBP,GAAG,IAAI;AAC/B,aAAO;AAACC,QAAAA,UAAU,EAAEW,OAAO,CAACZ,GAAD,EAAMJ,MAAM,CAACe,MAAb,CAApB;AAA0CX,QAAAA;AAA1C,OAAP;AACA,KAFM,CAAP;AAGA;;AAED,WAASY,OAAT,CAAiBH,KAAjB,EAAwBE,MAAxB,EAAgC;AAC/B,WAAOrB,UAAU,CAACuB,IAAX,CAAgBJ,KAAK,CAACL,GAAtB,KAA8BK,KAAK,CAACK,IAAN,KAAe,GAA7C,IAAoDC,YAAY,CAACN,KAAD,EAAQE,MAAR,CAAvE;AACA;;AAED,WAASI,YAAT,CAAsBC,MAAtB,EAA8BL,MAA9B,EAAsC;AACrC,WAAOA,MAAM,CAACM,IAAP,CACNC,MAAM,IACLF,MAAM,KAAKE,MAAX,IACAF,MAAM,CAACZ,GAAP,KAAec,MAAM,CAACd,GADtB,IAEAY,MAAM,CAACF,IAAP,KAAgBI,MAAM,CAACJ,IAFvB,IAGAE,MAAM,CAACG,SAAP,CAAiBC,MAAjB,KAA4BF,MAAM,CAACC,SAAP,CAAiBC,MAH7C,IAIAJ,MAAM,CAACG,SAAP,CAAiBE,KAAjB,CAAuBC,GAAG,IACzBJ,MAAM,CAACC,SAAP,CAAiBF,IAAjB,CACCM,GAAG,IAAID,GAAG,CAACE,IAAJ,KAAaD,GAAG,CAACC,IAAjB,IAAyBF,GAAG,CAACG,KAAJ,KAAcF,GAAG,CAACE,KADnD,CADD,CANK,CAAP;AAYA;AACD","sourcesContent":["/**\n *\n * @licstart The following is the entire license notice for the JavaScript code in this file.\n *\n * MARC record validators used in Melinda\n *\n * Copyright (c) 2014-2020 University Of Helsinki (The National Library Of Finland)\n *\n * This file is part of marc-record-validators-melinda\n *\n * marc-record-validators-melinda program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * marc-record-validators-melinda is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n * @licend The above is the entire license notice\n * for the JavaScript code in this file.\n *\n */\n\n'use strict';\n\nexport default async function (tagPattern) {\n\tif (tagPattern instanceof RegExp) {\n\t\treturn {\n\t\t\tdescription:\n\t\t\t\t'Handles data fields that only differ in the first indicator',\n\t\t\tvalidate,\n\t\t\tfix\n\t\t};\n\t}\n\n\tthrow new Error('No tagPattern provided');\n\n\tasync function validate(record) {\n\t\tconst invalid = iterateFields(record)\n\t\t\t.find(obj => obj.validation === true);\n\t\treturn invalid ? {valid: false, messages: [`Multiple ${invalid.obj.tag} fields which only differ in the first indicator`]} : {valid: true, messages: []};\n\t}\n\n\tasync function fix(record) {\n\t\titerateFields(record)\n\t\t\t.filter(item => item.validation === false)\n\t\t\t.map(({validation, ...item}) => item)\n\t\t\t.forEach(field => record.removeField(field));\n\t}\n\n\tfunction iterateFields(record) {\n\t\treturn record.fields.map(obj => {\n\t\t\treturn {validation: matches(obj, record.fields), obj};\n\t\t});\n\t}\n\n\tfunction matches(field, fields) {\n\t\treturn tagPattern.test(field.tag) && field.ind1 === ' ' && hasDuplicate(field, fields);\n\t}\n\n\tfunction hasDuplicate(fieldA, fields) {\n\t\treturn fields.some(\n\t\t\tfieldB =>\n\t\t\t\tfieldA !== fieldB &&\n\t\t\t\tfieldA.tag === fieldB.tag &&\n\t\t\t\tfieldA.ind1 !== fieldB.ind1 &&\n\t\t\t\tfieldA.subfields.length === fieldB.subfields.length &&\n\t\t\t\tfieldA.subfields.every(aSf =>\n\t\t\t\t\tfieldB.subfields.some(\n\t\t\t\t\t\tbSf => aSf.code === bSf.code && aSf.value === bSf.value\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t);\n\t}\n}\n"],"file":"duplicates-ind1.js"}
1
+ {"version":3,"sources":["../src/duplicates-ind1.js"],"names":["tagPattern","RegExp","description","validate","fix","Error","record","invalid","iterateFields","find","obj","validation","valid","messages","tag","filter","item","map","forEach","field","removeField","fields","matches","test","ind1","hasDuplicate","fieldA","some","fieldB","subfields","length","every","aSf","bSf","code","value"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGe,kBAAUA,UAAV,EAAsB;AACnC,MAAIA,UAAU,YAAYC,MAA1B,EAAkC;AAChC,WAAO;AACLC,MAAAA,WAAW,EACT,6DAFG;AAGLC,MAAAA,QAHK;AAILC,MAAAA;AAJK,KAAP;AAMD;;AAED,QAAM,IAAIC,KAAJ,CAAU,wBAAV,CAAN;;AAEA,WAASF,QAAT,CAAkBG,MAAlB,EAA0B;AACxB,UAAMC,OAAO,GAAGC,aAAa,CAACF,MAAD,CAAb,CACbG,IADa,CACRC,GAAG,IAAIA,GAAG,CAACC,UAAJ,KAAmB,IADlB,CAAhB;AAEA,WAAOJ,OAAO,GAAG;AAACK,MAAAA,KAAK,EAAE,KAAR;AAAeC,MAAAA,QAAQ,EAAE,CAAE,YAAWN,OAAO,CAACG,GAAR,CAAYI,GAAI,kDAA7B;AAAzB,KAAH,GAA+G;AAACF,MAAAA,KAAK,EAAE,IAAR;AAAcC,MAAAA,QAAQ,EAAE;AAAxB,KAA7H;AACD;;AAED,WAAST,GAAT,CAAaE,MAAb,EAAqB;AACnBE,IAAAA,aAAa,CAACF,MAAD,CAAb,CACGS,MADH,CACUC,IAAI,IAAIA,IAAI,CAACL,UAAL,KAAoB,KADtC,EAEGM,GAFH,CAEO,CAAC;AAACN,MAAAA,UAAD;AAAa,SAAGK;AAAhB,KAAD,KAA2BA,IAFlC,EAEwC;AAFxC,KAGGE,OAHH,CAGWC,KAAK,IAAIb,MAAM,CAACc,WAAP,CAAmBD,KAAnB,CAHpB;AAID;;AAED,WAASX,aAAT,CAAuBF,MAAvB,EAA+B;AAC7B,WAAOA,MAAM,CAACe,MAAP,CAAcJ,GAAd,CAAkBP,GAAG,KAAK;AAACC,MAAAA,UAAU,EAAEW,OAAO,CAACZ,GAAD,EAAMJ,MAAM,CAACe,MAAb,CAApB;AAA0CX,MAAAA;AAA1C,KAAL,CAArB,CAAP;AACD;;AAED,WAASY,OAAT,CAAiBH,KAAjB,EAAwBE,MAAxB,EAAgC;AAC9B,WAAOrB,UAAU,CAACuB,IAAX,CAAgBJ,KAAK,CAACL,GAAtB,KAA8BK,KAAK,CAACK,IAAN,KAAe,GAA7C,IAAoDC,YAAY,CAACN,KAAD,EAAQE,MAAR,CAAvE;AACD;;AAED,WAASI,YAAT,CAAsBC,MAAtB,EAA8BL,MAA9B,EAAsC;AACpC,WAAOA,MAAM,CAACM,IAAP,CAAYC,MAAM,IAAIF,MAAM,KAAKE,MAAX,IAC3BF,MAAM,CAACZ,GAAP,KAAec,MAAM,CAACd,GADK,IAE3BY,MAAM,CAACF,IAAP,KAAgBI,MAAM,CAACJ,IAFI,IAG3BE,MAAM,CAACG,SAAP,CAAiBC,MAAjB,KAA4BF,MAAM,CAACC,SAAP,CAAiBC,MAHlB,IAI3BJ,MAAM,CAACG,SAAP,CAAiBE,KAAjB,CAAuBC,GAAG,IAAIJ,MAAM,CAACC,SAAP,CAAiBF,IAAjB,CAAsBM,GAAG,IAAID,GAAG,CAACE,IAAJ,KAAaD,GAAG,CAACC,IAAjB,IAAyBF,GAAG,CAACG,KAAJ,KAAcF,GAAG,CAACE,KAAxE,CAA9B,CAJK,CAAP;AAKD;AACF","sourcesContent":["/**\n *\n * @licstart The following is the entire license notice for the JavaScript code in this file.\n *\n * MARC record validators used in Melinda\n *\n * Copyright (c) 2014-2020 University Of Helsinki (The National Library Of Finland)\n *\n * This file is part of marc-record-validators-melinda\n *\n * marc-record-validators-melinda program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * marc-record-validators-melinda is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n * @licend The above is the entire license notice\n * for the JavaScript code in this file.\n *\n */\n\n\nexport default function (tagPattern) {\n if (tagPattern instanceof RegExp) {\n return {\n description:\n 'Handles data fields that only differ in the first indicator',\n validate,\n fix\n };\n }\n\n throw new Error('No tagPattern provided');\n\n function validate(record) {\n const invalid = iterateFields(record)\n .find(obj => obj.validation === true);\n return invalid ? {valid: false, messages: [`Multiple ${invalid.obj.tag} fields which only differ in the first indicator`]} : {valid: true, messages: []};\n }\n\n function fix(record) {\n iterateFields(record)\n .filter(item => item.validation === false)\n .map(({validation, ...item}) => item) // eslint-disable-line no-unused-vars\n .forEach(field => record.removeField(field));\n }\n\n function iterateFields(record) {\n return record.fields.map(obj => ({validation: matches(obj, record.fields), obj}));\n }\n\n function matches(field, fields) {\n return tagPattern.test(field.tag) && field.ind1 === ' ' && hasDuplicate(field, fields);\n }\n\n function hasDuplicate(fieldA, fields) {\n return fields.some(fieldB => fieldA !== fieldB &&\n fieldA.tag === fieldB.tag &&\n fieldA.ind1 !== fieldB.ind1 &&\n fieldA.subfields.length === fieldB.subfields.length &&\n fieldA.subfields.every(aSf => fieldB.subfields.some(bSf => aSf.code === bSf.code && aSf.value === bSf.value)));\n }\n}\n"],"file":"duplicates-ind1.js"}
@@ -1,3 +1,13 @@
1
+ "use strict";
2
+
3
+ var _chai = require("chai");
4
+
5
+ var _marcRecord = require("@natlibfi/marc-record");
6
+
7
+ var _duplicatesInd = _interopRequireDefault(require("../src/duplicates-ind1"));
8
+
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+
1
11
  /**
2
12
  *
3
13
  * @licstart The following is the entire license notice for the JavaScript code in this file.
@@ -25,26 +35,16 @@
25
35
  * for the JavaScript code in this file.
26
36
  *
27
37
  */
28
- 'use strict';
29
-
30
- var _chai = require("chai");
31
-
32
- var _marcRecord = require("@natlibfi/marc-record");
33
-
34
- var _duplicatesInd = _interopRequireDefault(require("../src/duplicates-ind1"));
35
-
36
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
-
38
38
  describe('duplicates-ind1', () => {
39
39
  it('Creates a validator', async () => {
40
- const validator = await (0, _duplicatesInd.default)(/^245$/);
40
+ const validator = await (0, _duplicatesInd.default)(/^245$/u);
41
41
  (0, _chai.expect)(validator).to.be.an('object').that.has.any.keys('description', 'validate');
42
42
  (0, _chai.expect)(validator.description).to.be.a('string');
43
43
  (0, _chai.expect)(validator.validate).to.be.a('function');
44
44
  });
45
45
  describe('#validate', () => {
46
46
  it('Finds the record valid', async () => {
47
- const validator = await (0, _duplicatesInd.default)(/^500$/);
47
+ const validator = await (0, _duplicatesInd.default)(/^500$/u);
48
48
  const record = new _marcRecord.MarcRecord({
49
49
  fields: [{
50
50
  tag: '500',
@@ -71,7 +71,7 @@ describe('duplicates-ind1', () => {
71
71
  });
72
72
  });
73
73
  it('Finds the record invalid', async () => {
74
- const validator = await (0, _duplicatesInd.default)(/^500$/);
74
+ const validator = await (0, _duplicatesInd.default)(/^500$/u);
75
75
  const record = new _marcRecord.MarcRecord({
76
76
  fields: [{
77
77
  tag: '500',
@@ -100,7 +100,7 @@ describe('duplicates-ind1', () => {
100
100
  });
101
101
  describe('#fix', () => {
102
102
  it('Removes duplicate values', async () => {
103
- const validator = await (0, _duplicatesInd.default)(/^500$/);
103
+ const validator = await (0, _duplicatesInd.default)(/^500$/u);
104
104
  const record = new _marcRecord.MarcRecord({
105
105
  fields: [{
106
106
  tag: '500',