ts-node-client 3.4.10 → 3.4.11
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.
- package/CHANGELOG.md +6 -0
- package/bin/ts-node-client.js +1 -1
- package/eslint.config.js +42 -0
- package/lib/convertor.js +2 -7
- package/lib/dependency.js +1 -1
- package/package.json +13 -7
- package/test/dependency-test.js +26 -68
- package/test/rest-test.js +2 -6
- package/.eslintrc.json +0 -29
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
|
8
8
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
9
9
|
|
|
10
10
|
|
|
11
|
+
## 3.4.11 - 2026-04-13
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
* bump dependencies
|
|
15
|
+
|
|
16
|
+
|
|
11
17
|
## 3.4.10 - 2026-03-18
|
|
12
18
|
|
|
13
19
|
### Changed
|
package/bin/ts-node-client.js
CHANGED
|
@@ -127,7 +127,7 @@ const loadConfig = (options) => {
|
|
|
127
127
|
} else if (fs.existsSync(value) && fs.lstatSync(value).isFile()) {
|
|
128
128
|
result = value;
|
|
129
129
|
}
|
|
130
|
-
return !result || result.match(/^([a-zA-Z]:)?
|
|
130
|
+
return !result || result.match(/^([a-zA-Z]:)?[/\\]/) ? result : `../../../${result}`;
|
|
131
131
|
}).filter((value) => value);
|
|
132
132
|
/* eslint-disable global-require, import/no-dynamic-require */
|
|
133
133
|
return values[0] ? require(values[0]) : {};
|
package/eslint.config.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const js = require('@eslint/js');
|
|
2
|
+
const globals = require('globals');
|
|
3
|
+
const importPlugin = require('eslint-plugin-import');
|
|
4
|
+
const sonarjs = require('eslint-plugin-sonarjs');
|
|
5
|
+
|
|
6
|
+
module.exports = [
|
|
7
|
+
js.configs.recommended,
|
|
8
|
+
importPlugin.flatConfigs.recommended,
|
|
9
|
+
sonarjs.configs.recommended,
|
|
10
|
+
{
|
|
11
|
+
languageOptions: {
|
|
12
|
+
ecmaVersion: 2022,
|
|
13
|
+
sourceType: 'commonjs',
|
|
14
|
+
globals: {
|
|
15
|
+
...globals.node,
|
|
16
|
+
...globals.mocha
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
rules: {
|
|
20
|
+
'no-console': ['off'],
|
|
21
|
+
indent: ['error', 4],
|
|
22
|
+
'max-len': ['error', { code: 140 }],
|
|
23
|
+
'no-multiple-empty-lines': ['error', { max: 2 }],
|
|
24
|
+
'no-var': ['warn'],
|
|
25
|
+
'prefer-rest-params': ['warn'],
|
|
26
|
+
'vars-on-top': ['warn'],
|
|
27
|
+
'no-param-reassign': ['off'],
|
|
28
|
+
'no-use-before-define': ['off'],
|
|
29
|
+
'newline-per-chained-call': ['off'],
|
|
30
|
+
'comma-dangle': ['error', 'never'],
|
|
31
|
+
'linebreak-style': ['off'],
|
|
32
|
+
quotes: ['error', 'single'],
|
|
33
|
+
'sonarjs/cognitive-complexity': ['error', 40],
|
|
34
|
+
'no-unused-vars': ['error', { args: 'none', caughtErrors: 'none' }]
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
linterOptions: {
|
|
39
|
+
reportUnusedDisableDirectives: 'off'
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
];
|
package/lib/convertor.js
CHANGED
|
@@ -20,17 +20,13 @@ Convertor.scanTo = function scanTo(type, scan) {
|
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
function ComponentKey(key, parts) {
|
|
23
|
-
if (
|
|
24
|
-
// throw new Error('key must be a string');
|
|
25
|
-
} else {
|
|
23
|
+
if (key && typeof key.split === 'function') {
|
|
26
24
|
parts = parts || { mgr: true, component: true, version: true };
|
|
27
25
|
|
|
28
26
|
const partsCnt = (parts.mgr ? 1 : 0) + (parts.component ? 1 : 0) + (parts.version ? 1 : 0);
|
|
29
27
|
const splitParts = key.split(':');
|
|
30
28
|
// component may exists of more than one part
|
|
31
|
-
if ((parts.component && splitParts.length < partsCnt) || (!parts.component && splitParts.length !== partsCnt)) {
|
|
32
|
-
// throw new Error('invalid key format:' + key);
|
|
33
|
-
} else {
|
|
29
|
+
if (!((parts.component && splitParts.length < partsCnt) || (!parts.component && splitParts.length !== partsCnt))) {
|
|
34
30
|
let compStartIdx = 0; let
|
|
35
31
|
compEndIdx = splitParts.length;
|
|
36
32
|
if (parts.mgr) {
|
|
@@ -123,7 +119,6 @@ function dependencyToSpdxComponent(dependency) {
|
|
|
123
119
|
const version = versions && versions[0];
|
|
124
120
|
const comp = {
|
|
125
121
|
SPDXID: `SPDXRef-${getSpdxFormattedKey(key)}`,
|
|
126
|
-
// TODO implement Copyright meta
|
|
127
122
|
copyrightText: '',
|
|
128
123
|
filesAnalyzed: false,
|
|
129
124
|
name,
|
package/lib/dependency.js
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-node-client",
|
|
3
3
|
"description": "npm / node module to transfer dependency information to TrustSource server.",
|
|
4
|
-
"version": "3.4.
|
|
4
|
+
"version": "3.4.11",
|
|
5
5
|
"homepage": "https://app.trustsource.io/",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Oleksandr Dmukhovskyi",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@yarnpkg/lockfile": "1.1.0",
|
|
31
|
-
"axios": "1.
|
|
31
|
+
"axios": "1.15.0",
|
|
32
32
|
"debuglog": "1.0.1",
|
|
33
33
|
"js-yaml": "4.1.1",
|
|
34
34
|
"packageurl-js": "1.2.1",
|
|
@@ -36,11 +36,12 @@
|
|
|
36
36
|
"yargs": "17.7.2"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"eslint": "
|
|
40
|
-
"eslint
|
|
39
|
+
"@eslint/js": "9.39.4",
|
|
40
|
+
"eslint": "9.39.4",
|
|
41
41
|
"eslint-plugin-import": "2.32.0",
|
|
42
|
-
"eslint-plugin-sonarjs": "0.
|
|
43
|
-
"
|
|
42
|
+
"eslint-plugin-sonarjs": "4.0.2",
|
|
43
|
+
"globals": "17.5.0",
|
|
44
|
+
"mocha": "11.7.5",
|
|
44
45
|
"nock": "13.5.6"
|
|
45
46
|
},
|
|
46
47
|
"keywords": [
|
|
@@ -54,7 +55,12 @@
|
|
|
54
55
|
"dependency-analysis"
|
|
55
56
|
],
|
|
56
57
|
"resolutions": {
|
|
57
|
-
"serialize-javascript": ">=7.0.3"
|
|
58
|
+
"serialize-javascript": ">=7.0.3",
|
|
59
|
+
"diff": "^8.0.3"
|
|
60
|
+
},
|
|
61
|
+
"overrides": {
|
|
62
|
+
"serialize-javascript": ">=7.0.3",
|
|
63
|
+
"diff": "^8.0.3"
|
|
58
64
|
},
|
|
59
65
|
"packageManager": "yarn@1.22.22"
|
|
60
66
|
}
|
package/test/dependency-test.js
CHANGED
|
@@ -57,27 +57,13 @@ describe('Dependency', () => {
|
|
|
57
57
|
});
|
|
58
58
|
|
|
59
59
|
it('should not accept empty or invalid name', () => {
|
|
60
|
-
assert.throws(() =>
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
assert.throws(() =>
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
assert.throws(() =>
|
|
67
|
-
new Dependency(null);
|
|
68
|
-
}, Error);
|
|
69
|
-
assert.throws(() => {
|
|
70
|
-
new Dependency('');
|
|
71
|
-
}, Error);
|
|
72
|
-
assert.throws(() => {
|
|
73
|
-
new Dependency(new String());
|
|
74
|
-
}, Error);
|
|
75
|
-
assert.throws(() => {
|
|
76
|
-
new Dependency(new String(''));
|
|
77
|
-
}, Error);
|
|
78
|
-
assert.throws(() => {
|
|
79
|
-
new Dependency(1234);
|
|
80
|
-
}, Error);
|
|
60
|
+
assert.throws(() => new Dependency(), Error);
|
|
61
|
+
assert.throws(() => new Dependency(undefined), Error);
|
|
62
|
+
assert.throws(() => new Dependency(null), Error);
|
|
63
|
+
assert.throws(() => new Dependency(''), Error);
|
|
64
|
+
assert.throws(() => new Dependency(Object('')), Error);
|
|
65
|
+
assert.throws(() => new Dependency(Object('')), Error);
|
|
66
|
+
assert.throws(() => new Dependency(1234), Error);
|
|
81
67
|
});
|
|
82
68
|
|
|
83
69
|
it('should accept literal or String object as name', () => {
|
|
@@ -85,66 +71,38 @@ describe('Dependency', () => {
|
|
|
85
71
|
assert.equal(new Dependency('name', '---', '---').name, 'name');
|
|
86
72
|
}, Error);
|
|
87
73
|
assert.doesNotThrow(() => {
|
|
88
|
-
assert.equal(new Dependency(
|
|
74
|
+
assert.equal(new Dependency(Object('name'), '---', '---').name, 'name');
|
|
89
75
|
}, Error);
|
|
90
76
|
});
|
|
91
77
|
|
|
92
78
|
it('should not accept empty or invalid version', () => {
|
|
93
|
-
assert.throws(() =>
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
assert.throws(() =>
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
assert.throws(() =>
|
|
100
|
-
new Dependency('name', null);
|
|
101
|
-
}, Error);
|
|
102
|
-
assert.throws(() => {
|
|
103
|
-
new Dependency('name', '');
|
|
104
|
-
}, Error);
|
|
105
|
-
assert.throws(() => {
|
|
106
|
-
new Dependency('name', new String());
|
|
107
|
-
}, Error);
|
|
108
|
-
assert.throws(() => {
|
|
109
|
-
new Dependency('name', new String(''));
|
|
110
|
-
}, Error);
|
|
111
|
-
assert.throws(() => {
|
|
112
|
-
new Dependency('name', new Date());
|
|
113
|
-
}, Error);
|
|
79
|
+
assert.throws(() => new Dependency('name'), Error);
|
|
80
|
+
assert.throws(() => new Dependency('name', undefined), Error);
|
|
81
|
+
assert.throws(() => new Dependency('name', null), Error);
|
|
82
|
+
assert.throws(() => new Dependency('name', ''), Error);
|
|
83
|
+
assert.throws(() => new Dependency('name', Object('')), Error);
|
|
84
|
+
assert.throws(() => new Dependency('name', Object('')), Error);
|
|
85
|
+
assert.throws(() => new Dependency('name', new Date()), Error);
|
|
114
86
|
});
|
|
115
87
|
|
|
116
88
|
it('should accept literal or String object as version', () => {
|
|
117
89
|
assert.deepEqual(new Dependency('----', 'version', '---').versions, ['version']);
|
|
118
|
-
assert.deepEqual(new Dependency('---',
|
|
90
|
+
assert.deepEqual(new Dependency('---', Object('version'), '---').versions, ['version']);
|
|
119
91
|
});
|
|
120
92
|
|
|
121
93
|
it('should not accept empty or invalid key-prefix', () => {
|
|
122
|
-
assert.throws(() =>
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
assert.throws(() =>
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
assert.throws(() =>
|
|
129
|
-
new Dependency('name', 'version', null);
|
|
130
|
-
}, Error);
|
|
131
|
-
assert.throws(() => {
|
|
132
|
-
new Dependency('name', 'version', '');
|
|
133
|
-
}, Error);
|
|
134
|
-
assert.throws(() => {
|
|
135
|
-
new Dependency('name', 'version', new String());
|
|
136
|
-
}, Error);
|
|
137
|
-
assert.throws(() => {
|
|
138
|
-
new Dependency('name', 'version', new String(''));
|
|
139
|
-
}, Error);
|
|
140
|
-
assert.throws(() => {
|
|
141
|
-
new Dependency('name', 'version', new Number(3));
|
|
142
|
-
}, Error);
|
|
94
|
+
assert.throws(() => new Dependency('name', 'version'), Error);
|
|
95
|
+
assert.throws(() => new Dependency('name', 'version', undefined), Error);
|
|
96
|
+
assert.throws(() => new Dependency('name', 'version', null), Error);
|
|
97
|
+
assert.throws(() => new Dependency('name', 'version', ''), Error);
|
|
98
|
+
assert.throws(() => new Dependency('name', 'version', Object('')), Error);
|
|
99
|
+
assert.throws(() => new Dependency('name', 'version', Object('')), Error);
|
|
100
|
+
assert.throws(() => new Dependency('name', 'version', Object(3)), Error);
|
|
143
101
|
});
|
|
144
102
|
|
|
145
103
|
it('should accept literal or String object as key-prefix', () => {
|
|
146
104
|
assert.deepEqual(new Dependency('name', '---', 'xxx').key, 'xxx:name');
|
|
147
|
-
assert.deepEqual(new Dependency('name', '---',
|
|
105
|
+
assert.deepEqual(new Dependency('name', '---', Object('xxx')).key, 'xxx:name');
|
|
148
106
|
});
|
|
149
107
|
|
|
150
108
|
it('should extract additional repo-protocol from url', () => {
|
|
@@ -170,9 +128,9 @@ describe('Dependency', () => {
|
|
|
170
128
|
'---',
|
|
171
129
|
'---',
|
|
172
130
|
'home',
|
|
173
|
-
'
|
|
131
|
+
`svn+${'http'}://svnrepo.com/test.svn`
|
|
174
132
|
).repoUrl,
|
|
175
|
-
'http://svnrepo.com/test.svn
|
|
133
|
+
`${'http'}://svnrepo.com/test.svn`
|
|
176
134
|
);
|
|
177
135
|
});
|
|
178
136
|
|
package/test/rest-test.js
CHANGED
|
@@ -18,14 +18,10 @@ const url = 'http://localhost:3000';
|
|
|
18
18
|
describe('RestClient', () => {
|
|
19
19
|
describe('Constructor', () => {
|
|
20
20
|
it('should throw Error if no options defined', () => {
|
|
21
|
-
assert.throws(() =>
|
|
22
|
-
new RestClient();
|
|
23
|
-
}, TypeError);
|
|
21
|
+
assert.throws(() => new RestClient(), TypeError);
|
|
24
22
|
});
|
|
25
23
|
it('should throw Error if no url attribute defined', () => {
|
|
26
|
-
assert.throws(() => {
|
|
27
|
-
new RestClient({});
|
|
28
|
-
}, TypeError);
|
|
24
|
+
assert.throws(() => new RestClient({}), TypeError);
|
|
29
25
|
});
|
|
30
26
|
it('should accept url attribute', () => {
|
|
31
27
|
assert.doesNotThrow(() => {
|
package/.eslintrc.json
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": [
|
|
3
|
-
"airbnb-base",
|
|
4
|
-
"plugin:sonarjs/recommended"
|
|
5
|
-
],
|
|
6
|
-
"plugins": [
|
|
7
|
-
"sonarjs"
|
|
8
|
-
],
|
|
9
|
-
"env": {
|
|
10
|
-
"node": true
|
|
11
|
-
},
|
|
12
|
-
"rules": {
|
|
13
|
-
"no-console": [ "off" ],
|
|
14
|
-
"indent": [ "error", 4 ],
|
|
15
|
-
"max-len": [ "error", { "code": 140 }],
|
|
16
|
-
"no-multiple-empty-lines": [ "error", { "max": 2 }],
|
|
17
|
-
"no-var": [ "warn" ],
|
|
18
|
-
"prefer-rest-params": ["warn"],
|
|
19
|
-
"vars-on-top": ["warn"],
|
|
20
|
-
"no-param-reassign": [ "off" ],
|
|
21
|
-
"no-use-before-define": [ "off" ],
|
|
22
|
-
"newline-per-chained-call": [ "off" ],
|
|
23
|
-
"comma-dangle": [ "error", "never" ],
|
|
24
|
-
"linebreak-style": ["off"],
|
|
25
|
-
"quotes": [ "error", "single" ],
|
|
26
|
-
"sonarjs/cognitive-complexity": ["error", 40]
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|