convert-csv-to-json 2.2.0 → 2.4.0

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 (47) hide show
  1. package/.github/workflows/ci-cd.yml +46 -0
  2. package/README.md +9 -0
  3. package/SECURITY.md +2 -0
  4. package/package.json +3 -2
  5. package/semantic-versioning.sh +27 -0
  6. package/.github/workflows/nodejs.yml +0 -26
  7. package/coverage/base.css +0 -224
  8. package/coverage/block-navigation.js +0 -87
  9. package/coverage/clover.xml +0 -222
  10. package/coverage/coverage-final.json +0 -6
  11. package/coverage/csvToJson/index.html +0 -116
  12. package/coverage/csvToJson/index.js.html +0 -565
  13. package/coverage/csvToJson/src/csvToJson.js.html +0 -757
  14. package/coverage/csvToJson/src/index.html +0 -116
  15. package/coverage/csvToJson/src/util/fileUtils.js.html +0 -151
  16. package/coverage/csvToJson/src/util/index.html +0 -146
  17. package/coverage/csvToJson/src/util/jsonUtils.js.html +0 -127
  18. package/coverage/csvToJson/src/util/stringUtils.js.html +0 -196
  19. package/coverage/favicon.png +0 -0
  20. package/coverage/index.html +0 -146
  21. package/coverage/lcov-report/base.css +0 -224
  22. package/coverage/lcov-report/block-navigation.js +0 -87
  23. package/coverage/lcov-report/csvToJson/index.html +0 -116
  24. package/coverage/lcov-report/csvToJson/index.js.html +0 -565
  25. package/coverage/lcov-report/csvToJson/src/csvToJson.js.html +0 -757
  26. package/coverage/lcov-report/csvToJson/src/index.html +0 -116
  27. package/coverage/lcov-report/csvToJson/src/util/fileUtils.js.html +0 -151
  28. package/coverage/lcov-report/csvToJson/src/util/index.html +0 -146
  29. package/coverage/lcov-report/csvToJson/src/util/jsonUtils.js.html +0 -127
  30. package/coverage/lcov-report/csvToJson/src/util/stringUtils.js.html +0 -196
  31. package/coverage/lcov-report/favicon.png +0 -0
  32. package/coverage/lcov-report/index.html +0 -146
  33. package/coverage/lcov-report/prettify.css +0 -1
  34. package/coverage/lcov-report/prettify.js +0 -2
  35. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  36. package/coverage/lcov-report/sorter.js +0 -196
  37. package/coverage/lcov-report/src/csvToJson.js.html +0 -757
  38. package/coverage/lcov-report/src/index.html +0 -116
  39. package/coverage/lcov-report/src/util/fileUtils.js.html +0 -151
  40. package/coverage/lcov-report/src/util/index.html +0 -146
  41. package/coverage/lcov-report/src/util/jsonUtils.js.html +0 -127
  42. package/coverage/lcov-report/src/util/stringUtils.js.html +0 -196
  43. package/coverage/lcov.info +0 -410
  44. package/coverage/prettify.css +0 -1
  45. package/coverage/prettify.js +0 -2
  46. package/coverage/sort-arrow-sprite.png +0 -0
  47. package/coverage/sorter.js +0 -196
@@ -0,0 +1,46 @@
1
+ name: Node CI
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ build:
7
+ name: build
8
+ runs-on: ubuntu-latest
9
+
10
+ strategy:
11
+ matrix:
12
+ node-version: [14.x, 16.x, 18.x, 20.x, 21.x]
13
+
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ - name: Use Node.js ${{ matrix.node-version }}
17
+ uses: actions/setup-node@v4
18
+ with:
19
+ node-version: ${{ matrix.node-version }}
20
+ - name: npm install, build, and test
21
+ run: |
22
+ npm install
23
+ npm ci
24
+ npm test
25
+ env:
26
+ CI: true
27
+
28
+ release:
29
+ needs: build
30
+ name: release
31
+ runs-on: ubuntu-latest
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+ with:
35
+ token: ${{ secrets.ACTION_TOKEN }}
36
+ - uses: fregante/setup-git-user@v2
37
+ - name: Use Node.js 21.x
38
+ uses: actions/setup-node@v4
39
+ with:
40
+ node-version: 21.x
41
+ registry-url: 'https://registry.npmjs.org'
42
+ - name: release
43
+ run: |
44
+ npm run release
45
+ env:
46
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
package/README.md CHANGED
@@ -32,6 +32,7 @@
32
32
  + [Encoding](#encoding)
33
33
  * [Chaining Pattern](#chaining-pattern)
34
34
  - [Development](#development)
35
+ - [CI/CD](#ci/cd-github-action)
35
36
  - [License](#license)
36
37
  - [Buy me a Coffee](#buy-me-a-coffee)
37
38
 
@@ -308,6 +309,14 @@ csvToJson.fieldDelimiter(',')
308
309
  npm run test-debug
309
310
  ~~~
310
311
 
312
+ ## CI/CD github action
313
+ Pushing on the master branch, depending on the git message, an new version will always be released.
314
+ If the commit message contains the keyword:
315
+ * **[MAJOR]**: new major relase, e.g. v1.0.0 -> v2.0.0
316
+ * **[PATCH]**: new patch relase, e.g. v1.0.0 -> v1.0.1
317
+ * without any of the above keywords a new minor relase will be applied, e.g. v1.0.0 -> v1.1.0
318
+
319
+
311
320
  ## License
312
321
  CSVtoJSON is licensed under the GNU General Public License v3.0 [License](LICENSE).
313
322
 
package/SECURITY.md CHANGED
@@ -14,6 +14,7 @@ A generated Github Depedabot PR is normally quickly merged and a new version is
14
14
 
15
15
  | Version | Supported |
16
16
  | ------- | ------------------ |
17
+ | 2.2.0 | :white_check_mark: |
17
18
  | 2.0.0 | :white_check_mark: |
18
19
  | 1.4.0 | :white_check_mark: |
19
20
  | 1.3.3 | :white_check_mark: |
@@ -23,6 +24,7 @@ A generated Github Depedabot PR is normally quickly merged and a new version is
23
24
 
24
25
  | Version | Supported |
25
26
  | ------- | ------------------ |
27
+ | 2.2.0 | :white_check_mark: |
26
28
  | 2.0.0 | :white_check_mark: |
27
29
  | 1.4.0 | :white_check_mark: |
28
30
  | 1.3.3 | :warning: moderate dev dependencies vulnerability|
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "convert-csv-to-json",
3
- "version": "2.2.0",
3
+ "version": "2.4.0",
4
4
  "description": "Convert CSV to JSON",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -8,7 +8,8 @@
8
8
  "test-debug": "node --inspect-brk node_modules/.bin/jest --runInBand --detectOpenHandles",
9
9
  "version-patch": "npm version patch --force && npm publish && git push --follow-tags",
10
10
  "version-minor": "npm version minor --force && npm publish && git push --follow-tags",
11
- "version-major": "npm version major --force && npm publish && git push --follow-tags"
11
+ "version-major": "npm version major --force && npm publish && git push --follow-tags",
12
+ "release": "./semantic-versioning.sh"
12
13
  },
13
14
  "repository": {
14
15
  "type": "git",
@@ -0,0 +1,27 @@
1
+ #!/bin/bash
2
+ set -e
3
+ echo "Start Semantic Versioning release...";
4
+ echo "Checking branch...";
5
+ RELEASE_BRANCH="master";
6
+ CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD);
7
+ if [ $RELEASE_BRANCH != $CURRENT_BRANCH ]; then
8
+ echo "A new release version is only bumped on branch: $RELEASE_BRANCH.";
9
+ echo "Exiting...";
10
+ exit 0;
11
+ fi
12
+ PATCH_MSG="[PATCH]";
13
+ MAJOR_MSG="[MAJOR]";
14
+ echo "Parsing git message...";
15
+ COMMIT_MSG=$(git log -1 --pretty=format:"%s");
16
+ echo "Last commit message: ${COMMIT_MSG}";
17
+ if [[ $COMMIT_MSG == *"$PATCH_MSG"* ]]; then
18
+ echo "Executing new PATCH release..."
19
+ npm run version-patch;
20
+ elif [[ $COMMIT_MSG == *"$MAJOR_MSG"* ]]; then
21
+ echo "Executing new MAJOR release..."
22
+ npm run version-major;
23
+ else
24
+ echo "Executing new MINOR release...";
25
+ npm run version-minor;
26
+ fi
27
+ echo "End Semantic Versioning release.";
@@ -1,26 +0,0 @@
1
- name: Node CI
2
-
3
- on: [push]
4
-
5
- jobs:
6
- build:
7
-
8
- runs-on: ubuntu-latest
9
-
10
- strategy:
11
- matrix:
12
- node-version: [14.x, 16.x, 18.x, 20.x, 21.x]
13
-
14
- steps:
15
- - uses: actions/checkout@v4
16
- - name: Use Node.js ${{ matrix.node-version }}
17
- uses: actions/setup-node@v4
18
- with:
19
- node-version: ${{ matrix.node-version }}
20
- - name: npm install, build, and test
21
- run: |
22
- npm install
23
- npm ci
24
- npm test
25
- env:
26
- CI: true
package/coverage/base.css DELETED
@@ -1,224 +0,0 @@
1
- body, html {
2
- margin:0; padding: 0;
3
- height: 100%;
4
- }
5
- body {
6
- font-family: Helvetica Neue, Helvetica, Arial;
7
- font-size: 14px;
8
- color:#333;
9
- }
10
- .small { font-size: 12px; }
11
- *, *:after, *:before {
12
- -webkit-box-sizing:border-box;
13
- -moz-box-sizing:border-box;
14
- box-sizing:border-box;
15
- }
16
- h1 { font-size: 20px; margin: 0;}
17
- h2 { font-size: 14px; }
18
- pre {
19
- font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
20
- margin: 0;
21
- padding: 0;
22
- -moz-tab-size: 2;
23
- -o-tab-size: 2;
24
- tab-size: 2;
25
- }
26
- a { color:#0074D9; text-decoration:none; }
27
- a:hover { text-decoration:underline; }
28
- .strong { font-weight: bold; }
29
- .space-top1 { padding: 10px 0 0 0; }
30
- .pad2y { padding: 20px 0; }
31
- .pad1y { padding: 10px 0; }
32
- .pad2x { padding: 0 20px; }
33
- .pad2 { padding: 20px; }
34
- .pad1 { padding: 10px; }
35
- .space-left2 { padding-left:55px; }
36
- .space-right2 { padding-right:20px; }
37
- .center { text-align:center; }
38
- .clearfix { display:block; }
39
- .clearfix:after {
40
- content:'';
41
- display:block;
42
- height:0;
43
- clear:both;
44
- visibility:hidden;
45
- }
46
- .fl { float: left; }
47
- @media only screen and (max-width:640px) {
48
- .col3 { width:100%; max-width:100%; }
49
- .hide-mobile { display:none!important; }
50
- }
51
-
52
- .quiet {
53
- color: #7f7f7f;
54
- color: rgba(0,0,0,0.5);
55
- }
56
- .quiet a { opacity: 0.7; }
57
-
58
- .fraction {
59
- font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
60
- font-size: 10px;
61
- color: #555;
62
- background: #E8E8E8;
63
- padding: 4px 5px;
64
- border-radius: 3px;
65
- vertical-align: middle;
66
- }
67
-
68
- div.path a:link, div.path a:visited { color: #333; }
69
- table.coverage {
70
- border-collapse: collapse;
71
- margin: 10px 0 0 0;
72
- padding: 0;
73
- }
74
-
75
- table.coverage td {
76
- margin: 0;
77
- padding: 0;
78
- vertical-align: top;
79
- }
80
- table.coverage td.line-count {
81
- text-align: right;
82
- padding: 0 5px 0 20px;
83
- }
84
- table.coverage td.line-coverage {
85
- text-align: right;
86
- padding-right: 10px;
87
- min-width:20px;
88
- }
89
-
90
- table.coverage td span.cline-any {
91
- display: inline-block;
92
- padding: 0 5px;
93
- width: 100%;
94
- }
95
- .missing-if-branch {
96
- display: inline-block;
97
- margin-right: 5px;
98
- border-radius: 3px;
99
- position: relative;
100
- padding: 0 4px;
101
- background: #333;
102
- color: yellow;
103
- }
104
-
105
- .skip-if-branch {
106
- display: none;
107
- margin-right: 10px;
108
- position: relative;
109
- padding: 0 4px;
110
- background: #ccc;
111
- color: white;
112
- }
113
- .missing-if-branch .typ, .skip-if-branch .typ {
114
- color: inherit !important;
115
- }
116
- .coverage-summary {
117
- border-collapse: collapse;
118
- width: 100%;
119
- }
120
- .coverage-summary tr { border-bottom: 1px solid #bbb; }
121
- .keyline-all { border: 1px solid #ddd; }
122
- .coverage-summary td, .coverage-summary th { padding: 10px; }
123
- .coverage-summary tbody { border: 1px solid #bbb; }
124
- .coverage-summary td { border-right: 1px solid #bbb; }
125
- .coverage-summary td:last-child { border-right: none; }
126
- .coverage-summary th {
127
- text-align: left;
128
- font-weight: normal;
129
- white-space: nowrap;
130
- }
131
- .coverage-summary th.file { border-right: none !important; }
132
- .coverage-summary th.pct { }
133
- .coverage-summary th.pic,
134
- .coverage-summary th.abs,
135
- .coverage-summary td.pct,
136
- .coverage-summary td.abs { text-align: right; }
137
- .coverage-summary td.file { white-space: nowrap; }
138
- .coverage-summary td.pic { min-width: 120px !important; }
139
- .coverage-summary tfoot td { }
140
-
141
- .coverage-summary .sorter {
142
- height: 10px;
143
- width: 7px;
144
- display: inline-block;
145
- margin-left: 0.5em;
146
- background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
147
- }
148
- .coverage-summary .sorted .sorter {
149
- background-position: 0 -20px;
150
- }
151
- .coverage-summary .sorted-desc .sorter {
152
- background-position: 0 -10px;
153
- }
154
- .status-line { height: 10px; }
155
- /* yellow */
156
- .cbranch-no { background: yellow !important; color: #111; }
157
- /* dark red */
158
- .red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
159
- .low .chart { border:1px solid #C21F39 }
160
- .highlighted,
161
- .highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{
162
- background: #C21F39 !important;
163
- }
164
- /* medium red */
165
- .cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
166
- /* light red */
167
- .low, .cline-no { background:#FCE1E5 }
168
- /* light green */
169
- .high, .cline-yes { background:rgb(230,245,208) }
170
- /* medium green */
171
- .cstat-yes { background:rgb(161,215,106) }
172
- /* dark green */
173
- .status-line.high, .high .cover-fill { background:rgb(77,146,33) }
174
- .high .chart { border:1px solid rgb(77,146,33) }
175
- /* dark yellow (gold) */
176
- .status-line.medium, .medium .cover-fill { background: #f9cd0b; }
177
- .medium .chart { border:1px solid #f9cd0b; }
178
- /* light yellow */
179
- .medium { background: #fff4c2; }
180
-
181
- .cstat-skip { background: #ddd; color: #111; }
182
- .fstat-skip { background: #ddd; color: #111 !important; }
183
- .cbranch-skip { background: #ddd !important; color: #111; }
184
-
185
- span.cline-neutral { background: #eaeaea; }
186
-
187
- .coverage-summary td.empty {
188
- opacity: .5;
189
- padding-top: 4px;
190
- padding-bottom: 4px;
191
- line-height: 1;
192
- color: #888;
193
- }
194
-
195
- .cover-fill, .cover-empty {
196
- display:inline-block;
197
- height: 12px;
198
- }
199
- .chart {
200
- line-height: 0;
201
- }
202
- .cover-empty {
203
- background: white;
204
- }
205
- .cover-full {
206
- border-right: none !important;
207
- }
208
- pre.prettyprint {
209
- border: none !important;
210
- padding: 0 !important;
211
- margin: 0 !important;
212
- }
213
- .com { color: #999 !important; }
214
- .ignore-none { color: #999; font-weight: normal; }
215
-
216
- .wrapper {
217
- min-height: 100%;
218
- height: auto !important;
219
- height: 100%;
220
- margin: 0 auto -48px;
221
- }
222
- .footer, .push {
223
- height: 48px;
224
- }
@@ -1,87 +0,0 @@
1
- /* eslint-disable */
2
- var jumpToCode = (function init() {
3
- // Classes of code we would like to highlight in the file view
4
- var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no'];
5
-
6
- // Elements to highlight in the file listing view
7
- var fileListingElements = ['td.pct.low'];
8
-
9
- // We don't want to select elements that are direct descendants of another match
10
- var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > `
11
-
12
- // Selecter that finds elements on the page to which we can jump
13
- var selector =
14
- fileListingElements.join(', ') +
15
- ', ' +
16
- notSelector +
17
- missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b`
18
-
19
- // The NodeList of matching elements
20
- var missingCoverageElements = document.querySelectorAll(selector);
21
-
22
- var currentIndex;
23
-
24
- function toggleClass(index) {
25
- missingCoverageElements
26
- .item(currentIndex)
27
- .classList.remove('highlighted');
28
- missingCoverageElements.item(index).classList.add('highlighted');
29
- }
30
-
31
- function makeCurrent(index) {
32
- toggleClass(index);
33
- currentIndex = index;
34
- missingCoverageElements.item(index).scrollIntoView({
35
- behavior: 'smooth',
36
- block: 'center',
37
- inline: 'center'
38
- });
39
- }
40
-
41
- function goToPrevious() {
42
- var nextIndex = 0;
43
- if (typeof currentIndex !== 'number' || currentIndex === 0) {
44
- nextIndex = missingCoverageElements.length - 1;
45
- } else if (missingCoverageElements.length > 1) {
46
- nextIndex = currentIndex - 1;
47
- }
48
-
49
- makeCurrent(nextIndex);
50
- }
51
-
52
- function goToNext() {
53
- var nextIndex = 0;
54
-
55
- if (
56
- typeof currentIndex === 'number' &&
57
- currentIndex < missingCoverageElements.length - 1
58
- ) {
59
- nextIndex = currentIndex + 1;
60
- }
61
-
62
- makeCurrent(nextIndex);
63
- }
64
-
65
- return function jump(event) {
66
- if (
67
- document.getElementById('fileSearch') === document.activeElement &&
68
- document.activeElement != null
69
- ) {
70
- // if we're currently focused on the search input, we don't want to navigate
71
- return;
72
- }
73
-
74
- switch (event.which) {
75
- case 78: // n
76
- case 74: // j
77
- goToNext();
78
- break;
79
- case 66: // b
80
- case 75: // k
81
- case 80: // p
82
- goToPrevious();
83
- break;
84
- }
85
- };
86
- })();
87
- window.addEventListener('keydown', jumpToCode);