@nodesecure/rc 4.0.1 → 5.0.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.
- package/README.md +245 -245
- package/dist/functions/memoize.d.ts +4 -4
- package/dist/functions/read.d.ts +2 -2
- package/dist/functions/write.d.ts +4 -4
- package/dist/functions/write.js +1 -1
- package/dist/functions/write.js.map +1 -1
- package/dist/projects/ci.d.ts +2 -2
- package/dist/projects/ci.d.ts.map +1 -1
- package/dist/projects/ci.js +0 -2
- package/dist/projects/ci.js.map +1 -1
- package/dist/rc.d.ts.map +1 -1
- package/dist/rc.js +1 -0
- package/dist/rc.js.map +1 -1
- package/package.json +53 -60
package/README.md
CHANGED
|
@@ -1,245 +1,245 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<img src="https://user-images.githubusercontent.com/4438263/216045720-779bf16d-1d35-409f-a0e6-4019bda8edde.jpg" alt="@nodesecure/rc">
|
|
3
|
-
</p>
|
|
4
|
-
|
|
5
|
-
<p align="center">
|
|
6
|
-
<a href="https://github.com/NodeSecure/blob/master/workspaces/rc">
|
|
7
|
-
<img src="https://img.shields.io/badge/dynamic/json.svg?style=for-the-badge&url=https://raw.githubusercontent.com/NodeSecure/scanner/
|
|
8
|
-
</a>
|
|
9
|
-
<a href="https://github.com/NodeSecure/scanner/blob/master/workspaces/rc/LICENSE">
|
|
10
|
-
<img src="https://img.shields.io/github/license/NodeSecure/scanner.svg?style=for-the-badge" alt="license">
|
|
11
|
-
</a>
|
|
12
|
-
<a href="https://api.securityscorecards.dev/projects/github.com/NodeSecure/blob/master/workspaces/rc">
|
|
13
|
-
<img src="https://api.securityscorecards.dev/projects/github.com/NodeSecure/scanner/badge?style=for-the-badge" alt="ossf scorecard">
|
|
14
|
-
</a>
|
|
15
|
-
<a href="https://github.com/NodeSecure/scanner/actions?query=workflow%3A%22Node.js+CI%22">
|
|
16
|
-
<img src="https://img.shields.io/github/actions/workflow/status/NodeSecure/scanner/node.js.yml?style=for-the-badge" alt="github ci workflow">
|
|
17
|
-
</a>
|
|
18
|
-
</p>
|
|
19
|
-
|
|
20
|
-
NodeSecure runtime configuration.
|
|
21
|
-
|
|
22
|
-
## Requirements
|
|
23
|
-
|
|
24
|
-
- [Node.js](https://nodejs.org/en/) v20 or higher
|
|
25
|
-
|
|
26
|
-
## Getting Started
|
|
27
|
-
|
|
28
|
-
This package is available in the Node Package Repository and can be easily installed with [npm](https://docs.npmjs.com/getting-started/what-is-npm) or [yarn](https://yarnpkg.com).
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
$ npm i @nodesecure/rc
|
|
32
|
-
# or
|
|
33
|
-
$ yarn add @nodesecure/rc
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Usage example
|
|
37
|
-
|
|
38
|
-
read:
|
|
39
|
-
|
|
40
|
-
```ts
|
|
41
|
-
import * as RC from "@nodesecure/rc";
|
|
42
|
-
|
|
43
|
-
const configurationPayload = (
|
|
44
|
-
await RC.read(void 0, { createIfDoesNotExist: true })
|
|
45
|
-
).unwrap();
|
|
46
|
-
console.log(configurationPayload);
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
write:
|
|
50
|
-
|
|
51
|
-
```ts
|
|
52
|
-
import assert from "node:assert/strict";
|
|
53
|
-
import * as RC from "@nodesecure/rc";
|
|
54
|
-
|
|
55
|
-
const writeOpts: RC.writeOptions = {
|
|
56
|
-
payload: { version: "2.0.0" },
|
|
57
|
-
partialUpdate: true,
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
const result = (await RC.write(void 0, writeOpts)).unwrap();
|
|
61
|
-
assert.strictEqual(result, void 0);
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
memoize/memoized:
|
|
65
|
-
|
|
66
|
-
```ts
|
|
67
|
-
import * as RC from "@nodesecure/rc";
|
|
68
|
-
import assert from "node:assert";
|
|
69
|
-
|
|
70
|
-
const configurationPayload = (
|
|
71
|
-
await RC.read(void 0, { createMode: "ci" })
|
|
72
|
-
).unwrap()
|
|
73
|
-
|
|
74
|
-
RC.memoize(configurationPayload, { overwrite: true });
|
|
75
|
-
|
|
76
|
-
const memoizedPayload = RC.memoized();
|
|
77
|
-
assert.deepEqual(configurationPayload, memoizedPayload);
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
> 👀 .read and .write return Rust like [Result](https://doc.rust-lang.org/std/result/) object.
|
|
81
|
-
|
|
82
|
-
## API
|
|
83
|
-
|
|
84
|
-
> [!NOTE]
|
|
85
|
-
> If `undefined`, the location will be assigned to `process.cwd()`.
|
|
86
|
-
|
|
87
|
-
### read(location?: string, options?: readOptions): Promise< Result< RC, NodeJS.ErrnoException > >
|
|
88
|
-
|
|
89
|
-
```ts
|
|
90
|
-
interface
|
|
91
|
-
/**
|
|
92
|
-
* If enabled, the file will be created if it does not exist on disk.
|
|
93
|
-
*
|
|
94
|
-
* @default false
|
|
95
|
-
*/
|
|
96
|
-
createIfDoesNotExist?: boolean;
|
|
97
|
-
/**
|
|
98
|
-
* Generate a more or less complete configuration.
|
|
99
|
-
*
|
|
100
|
-
* @default `minimal`
|
|
101
|
-
*/
|
|
102
|
-
createMode?: RCGenerationMode | RCGenerationMode[];
|
|
103
|
-
/**
|
|
104
|
-
* Automatically cache the configuration when enabled.
|
|
105
|
-
*
|
|
106
|
-
* @default false
|
|
107
|
-
*/
|
|
108
|
-
memoize?: boolean;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
export type readOptions = RequireAtLeastOne<
|
|
112
|
-
|
|
113
|
-
"createIfDoesNotExist" | "createMode"
|
|
114
|
-
>;
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
The `createIfDoesNotExist` argument can be ignored if `createMode` is provided.
|
|
118
|
-
|
|
119
|
-
```ts
|
|
120
|
-
import * as RC from "@nodesecure/rc";
|
|
121
|
-
|
|
122
|
-
const configurationPayload = (
|
|
123
|
-
await RC.read(void 0, { createMode: "ci" })
|
|
124
|
-
).unwrap();
|
|
125
|
-
console.log(configurationPayload);
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
### write(location?: string, options:
|
|
129
|
-
|
|
130
|
-
By default the write API will overwrite the current payload with the provided one. When the `partialUpdate` option is enabled it will merge the new properties with the existing one.
|
|
131
|
-
|
|
132
|
-
```ts
|
|
133
|
-
/**
|
|
134
|
-
* Overwrite the complete payload. partialUpdate property is mandatory.
|
|
135
|
-
*/
|
|
136
|
-
export interface
|
|
137
|
-
payload: RC;
|
|
138
|
-
partialUpdate?: false;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Partially update the payload. This implies not to rewrite the content of the file when enabled.
|
|
143
|
-
**/
|
|
144
|
-
export interface
|
|
145
|
-
payload: Partial<RC>;
|
|
146
|
-
partialUpdate: true;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
export type
|
|
150
|
-
```
|
|
151
|
-
### memoize(payload: Partial< RC >, options:
|
|
152
|
-
By default, the memory API overwrites the previous stored payload. When the `OVERWRITE` option is `false`, it merges new properties with existing properties.
|
|
153
|
-
|
|
154
|
-
```ts
|
|
155
|
-
export interface
|
|
156
|
-
overwrite?: boolean;
|
|
157
|
-
}
|
|
158
|
-
```
|
|
159
|
-
The `overwrite` option is used to specify whether data should be overwritten or merged.
|
|
160
|
-
|
|
161
|
-
### memoized(options:
|
|
162
|
-
This method returns null, when the default value is null, otherwise, it returns the current value of `memoizedValue`.
|
|
163
|
-
|
|
164
|
-
```ts
|
|
165
|
-
export interface
|
|
166
|
-
defaultValue: Partial<RC>;
|
|
167
|
-
}
|
|
168
|
-
```
|
|
169
|
-
If the `defaultValue` property is at null, then this value will be returned when `memoized` is called.
|
|
170
|
-
|
|
171
|
-
### maybeMemoized(): Option< Partial< RC > >
|
|
172
|
-
|
|
173
|
-
Same as memoized but return an Option monad.
|
|
174
|
-
|
|
175
|
-
```ts
|
|
176
|
-
import * as RC from "@nodesecure/rc";
|
|
177
|
-
|
|
178
|
-
const memoized = RC.maybeMemoized()
|
|
179
|
-
.unwrapOr({}); // Some default RC here
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
### clearMemoized(): void
|
|
183
|
-
Clear/reset memoized RC
|
|
184
|
-
|
|
185
|
-
### homedir(): string
|
|
186
|
-
|
|
187
|
-
Dedicated directory for NodeSecure to store the configuration in the os HOME directory.
|
|
188
|
-
|
|
189
|
-
```ts
|
|
190
|
-
import * as RC from "@nodesecure/rc";
|
|
191
|
-
|
|
192
|
-
const homedir = RC.homedir();
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
### CONSTANTS
|
|
196
|
-
|
|
197
|
-
```ts
|
|
198
|
-
import assert from "node:assert/strict";
|
|
199
|
-
import * as RC from "@nodesecure/rc";
|
|
200
|
-
|
|
201
|
-
assert.strictEqual(RC.CONSTANTS.CONFIGURATION_NAME, ".nodesecurerc");
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
### Generation Mode
|
|
205
|
-
|
|
206
|
-
We provide by default a configuration generation that we consider `minimal`. On the contrary, a `complete` value will indicate the generation with all possible default keys.
|
|
207
|
-
|
|
208
|
-
```ts
|
|
209
|
-
export type RCGenerationMode = "minimal" | "ci" | "report" | "scanner" | "complete";
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
However, depending on the NodeSecure tool you are working on, it can be interesting to generate a configuration with some property sets specific to your needs.
|
|
213
|
-
|
|
214
|
-
Note that you can combine several modes:
|
|
215
|
-
|
|
216
|
-
```ts
|
|
217
|
-
import * as RC from "@nodesecure/rc";
|
|
218
|
-
|
|
219
|
-
await RC.read(void 0, { createMode: ["ci", "report"] });
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
## JSON Schema
|
|
223
|
-
|
|
224
|
-
The runtime configuration is validated using a JSON Schema: `./src/schema/nodesecurerc.json`.
|
|
225
|
-
|
|
226
|
-
It can be retrieved via API if needed:
|
|
227
|
-
|
|
228
|
-
```ts
|
|
229
|
-
import * as RC from "@nodesecure/rc";
|
|
230
|
-
|
|
231
|
-
console.log(RC.JSONSchema);
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
The JSON schema is a composition of multiple definitions for each tool:
|
|
235
|
-
|
|
236
|
-
- [ci](./src/schema/defs/ci.json)
|
|
237
|
-
- [ciWarnings](./src/schema/defs/ciWarnings.json)
|
|
238
|
-
- [contact](./src/schema/defs/contact.json)
|
|
239
|
-
- [report](./src/schema/defs/report.json)
|
|
240
|
-
- [reportChart](./src/schema/defs/reportChart.json)
|
|
241
|
-
- [scanner](./src/schema/defs/scanner.json)
|
|
242
|
-
|
|
243
|
-
## License
|
|
244
|
-
|
|
245
|
-
MIT
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://user-images.githubusercontent.com/4438263/216045720-779bf16d-1d35-409f-a0e6-4019bda8edde.jpg" alt="@nodesecure/rc">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://github.com/NodeSecure/blob/master/workspaces/rc">
|
|
7
|
+
<img src="https://img.shields.io/badge/dynamic/json.svg?style=for-the-badge&url=https://raw.githubusercontent.com/NodeSecure/scanner/refs/heads/master/workspaces/rc/package.json&query=$.version&label=Version" alt="npm version">
|
|
8
|
+
</a>
|
|
9
|
+
<a href="https://github.com/NodeSecure/scanner/blob/master/workspaces/rc/LICENSE">
|
|
10
|
+
<img src="https://img.shields.io/github/license/NodeSecure/scanner.svg?style=for-the-badge" alt="license">
|
|
11
|
+
</a>
|
|
12
|
+
<a href="https://api.securityscorecards.dev/projects/github.com/NodeSecure/blob/master/workspaces/rc">
|
|
13
|
+
<img src="https://api.securityscorecards.dev/projects/github.com/NodeSecure/scanner/badge?style=for-the-badge" alt="ossf scorecard">
|
|
14
|
+
</a>
|
|
15
|
+
<a href="https://github.com/NodeSecure/scanner/actions?query=workflow%3A%22Node.js+CI%22">
|
|
16
|
+
<img src="https://img.shields.io/github/actions/workflow/status/NodeSecure/scanner/node.js.yml?style=for-the-badge" alt="github ci workflow">
|
|
17
|
+
</a>
|
|
18
|
+
</p>
|
|
19
|
+
|
|
20
|
+
NodeSecure runtime configuration.
|
|
21
|
+
|
|
22
|
+
## Requirements
|
|
23
|
+
|
|
24
|
+
- [Node.js](https://nodejs.org/en/) v20 or higher
|
|
25
|
+
|
|
26
|
+
## Getting Started
|
|
27
|
+
|
|
28
|
+
This package is available in the Node Package Repository and can be easily installed with [npm](https://docs.npmjs.com/getting-started/what-is-npm) or [yarn](https://yarnpkg.com).
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
$ npm i @nodesecure/rc
|
|
32
|
+
# or
|
|
33
|
+
$ yarn add @nodesecure/rc
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Usage example
|
|
37
|
+
|
|
38
|
+
read:
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
import * as RC from "@nodesecure/rc";
|
|
42
|
+
|
|
43
|
+
const configurationPayload = (
|
|
44
|
+
await RC.read(void 0, { createIfDoesNotExist: true })
|
|
45
|
+
).unwrap();
|
|
46
|
+
console.log(configurationPayload);
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
write:
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
import assert from "node:assert/strict";
|
|
53
|
+
import * as RC from "@nodesecure/rc";
|
|
54
|
+
|
|
55
|
+
const writeOpts: RC.writeOptions = {
|
|
56
|
+
payload: { version: "2.0.0" },
|
|
57
|
+
partialUpdate: true,
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const result = (await RC.write(void 0, writeOpts)).unwrap();
|
|
61
|
+
assert.strictEqual(result, void 0);
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
memoize/memoized:
|
|
65
|
+
|
|
66
|
+
```ts
|
|
67
|
+
import * as RC from "@nodesecure/rc";
|
|
68
|
+
import assert from "node:assert";
|
|
69
|
+
|
|
70
|
+
const configurationPayload = (
|
|
71
|
+
await RC.read(void 0, { createMode: "ci" })
|
|
72
|
+
).unwrap()
|
|
73
|
+
|
|
74
|
+
RC.memoize(configurationPayload, { overwrite: true });
|
|
75
|
+
|
|
76
|
+
const memoizedPayload = RC.memoized();
|
|
77
|
+
assert.deepEqual(configurationPayload, memoizedPayload);
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
> 👀 .read and .write return Rust like [Result](https://doc.rust-lang.org/std/result/) object.
|
|
81
|
+
|
|
82
|
+
## API
|
|
83
|
+
|
|
84
|
+
> [!NOTE]
|
|
85
|
+
> If `undefined`, the location will be assigned to `process.cwd()`.
|
|
86
|
+
|
|
87
|
+
### read(location?: string, options?: readOptions): Promise< Result< RC, NodeJS.ErrnoException > >
|
|
88
|
+
|
|
89
|
+
```ts
|
|
90
|
+
interface CreateReadOptions {
|
|
91
|
+
/**
|
|
92
|
+
* If enabled, the file will be created if it does not exist on disk.
|
|
93
|
+
*
|
|
94
|
+
* @default false
|
|
95
|
+
*/
|
|
96
|
+
createIfDoesNotExist?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Generate a more or less complete configuration.
|
|
99
|
+
*
|
|
100
|
+
* @default `minimal`
|
|
101
|
+
*/
|
|
102
|
+
createMode?: RCGenerationMode | RCGenerationMode[];
|
|
103
|
+
/**
|
|
104
|
+
* Automatically cache the configuration when enabled.
|
|
105
|
+
*
|
|
106
|
+
* @default false
|
|
107
|
+
*/
|
|
108
|
+
memoize?: boolean;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export type readOptions = RequireAtLeastOne<
|
|
112
|
+
CreateReadOptions,
|
|
113
|
+
"createIfDoesNotExist" | "createMode"
|
|
114
|
+
>;
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
The `createIfDoesNotExist` argument can be ignored if `createMode` is provided.
|
|
118
|
+
|
|
119
|
+
```ts
|
|
120
|
+
import * as RC from "@nodesecure/rc";
|
|
121
|
+
|
|
122
|
+
const configurationPayload = (
|
|
123
|
+
await RC.read(void 0, { createMode: "ci" })
|
|
124
|
+
).unwrap();
|
|
125
|
+
console.log(configurationPayload);
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### write(location?: string, options: WriteOptions): Promise< Result< void, NodeJS.ErrnoException > >
|
|
129
|
+
|
|
130
|
+
By default the write API will overwrite the current payload with the provided one. When the `partialUpdate` option is enabled it will merge the new properties with the existing one.
|
|
131
|
+
|
|
132
|
+
```ts
|
|
133
|
+
/**
|
|
134
|
+
* Overwrite the complete payload. partialUpdate property is mandatory.
|
|
135
|
+
*/
|
|
136
|
+
export interface WriteCompletePayload {
|
|
137
|
+
payload: RC;
|
|
138
|
+
partialUpdate?: false;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Partially update the payload. This implies not to rewrite the content of the file when enabled.
|
|
143
|
+
**/
|
|
144
|
+
export interface WritePartialPayload {
|
|
145
|
+
payload: Partial<RC>;
|
|
146
|
+
partialUpdate: true;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export type WriteOptions = WriteCompletePayload | WritePartialPayload;
|
|
150
|
+
```
|
|
151
|
+
### memoize(payload: Partial< RC >, options: MemoizeOptions = {}): void
|
|
152
|
+
By default, the memory API overwrites the previous stored payload. When the `OVERWRITE` option is `false`, it merges new properties with existing properties.
|
|
153
|
+
|
|
154
|
+
```ts
|
|
155
|
+
export interface MemoizeOptions {
|
|
156
|
+
overwrite?: boolean;
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
The `overwrite` option is used to specify whether data should be overwritten or merged.
|
|
160
|
+
|
|
161
|
+
### memoized(options: MemoizedOptions): Partial< RC > | null
|
|
162
|
+
This method returns null, when the default value is null, otherwise, it returns the current value of `memoizedValue`.
|
|
163
|
+
|
|
164
|
+
```ts
|
|
165
|
+
export interface MemoizedOptions {
|
|
166
|
+
defaultValue: Partial<RC>;
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
If the `defaultValue` property is at null, then this value will be returned when `memoized` is called.
|
|
170
|
+
|
|
171
|
+
### maybeMemoized(): Option< Partial< RC > >
|
|
172
|
+
|
|
173
|
+
Same as memoized but return an Option monad.
|
|
174
|
+
|
|
175
|
+
```ts
|
|
176
|
+
import * as RC from "@nodesecure/rc";
|
|
177
|
+
|
|
178
|
+
const memoized = RC.maybeMemoized()
|
|
179
|
+
.unwrapOr({}); // Some default RC here
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### clearMemoized(): void
|
|
183
|
+
Clear/reset memoized RC
|
|
184
|
+
|
|
185
|
+
### homedir(): string
|
|
186
|
+
|
|
187
|
+
Dedicated directory for NodeSecure to store the configuration in the os HOME directory.
|
|
188
|
+
|
|
189
|
+
```ts
|
|
190
|
+
import * as RC from "@nodesecure/rc";
|
|
191
|
+
|
|
192
|
+
const homedir = RC.homedir();
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### CONSTANTS
|
|
196
|
+
|
|
197
|
+
```ts
|
|
198
|
+
import assert from "node:assert/strict";
|
|
199
|
+
import * as RC from "@nodesecure/rc";
|
|
200
|
+
|
|
201
|
+
assert.strictEqual(RC.CONSTANTS.CONFIGURATION_NAME, ".nodesecurerc");
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Generation Mode
|
|
205
|
+
|
|
206
|
+
We provide by default a configuration generation that we consider `minimal`. On the contrary, a `complete` value will indicate the generation with all possible default keys.
|
|
207
|
+
|
|
208
|
+
```ts
|
|
209
|
+
export type RCGenerationMode = "minimal" | "ci" | "report" | "scanner" | "complete";
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
However, depending on the NodeSecure tool you are working on, it can be interesting to generate a configuration with some property sets specific to your needs.
|
|
213
|
+
|
|
214
|
+
Note that you can combine several modes:
|
|
215
|
+
|
|
216
|
+
```ts
|
|
217
|
+
import * as RC from "@nodesecure/rc";
|
|
218
|
+
|
|
219
|
+
await RC.read(void 0, { createMode: ["ci", "report"] });
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## JSON Schema
|
|
223
|
+
|
|
224
|
+
The runtime configuration is validated using a JSON Schema: `./src/schema/nodesecurerc.json`.
|
|
225
|
+
|
|
226
|
+
It can be retrieved via API if needed:
|
|
227
|
+
|
|
228
|
+
```ts
|
|
229
|
+
import * as RC from "@nodesecure/rc";
|
|
230
|
+
|
|
231
|
+
console.log(RC.JSONSchema);
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
The JSON schema is a composition of multiple definitions for each tool:
|
|
235
|
+
|
|
236
|
+
- [ci](./src/schema/defs/ci.json)
|
|
237
|
+
- [ciWarnings](./src/schema/defs/ciWarnings.json)
|
|
238
|
+
- [contact](./src/schema/defs/contact.json)
|
|
239
|
+
- [report](./src/schema/defs/report.json)
|
|
240
|
+
- [reportChart](./src/schema/defs/reportChart.json)
|
|
241
|
+
- [scanner](./src/schema/defs/scanner.json)
|
|
242
|
+
|
|
243
|
+
## License
|
|
244
|
+
|
|
245
|
+
MIT
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { type Option } from "@openally/result";
|
|
2
2
|
import type { RC } from "../rc.js";
|
|
3
|
-
export interface
|
|
3
|
+
export interface MemoizeOptions {
|
|
4
4
|
/**
|
|
5
5
|
* If enabled it will overwrite (crush) the previous memoized RC
|
|
6
6
|
* @default true
|
|
7
7
|
*/
|
|
8
8
|
overwrite?: boolean;
|
|
9
9
|
}
|
|
10
|
-
export declare function memoize(payload: Partial<RC>, options?:
|
|
11
|
-
export interface
|
|
10
|
+
export declare function memoize(payload: Partial<RC>, options?: MemoizeOptions): void;
|
|
11
|
+
export interface MemoizedOptions {
|
|
12
12
|
defaultValue: Partial<RC>;
|
|
13
13
|
}
|
|
14
|
-
export declare function memoized(options?:
|
|
14
|
+
export declare function memoized(options?: MemoizedOptions): Partial<RC> | null;
|
|
15
15
|
export declare function maybeMemoized(): Option<Partial<RC>>;
|
|
16
16
|
export declare function clearMemoized(): void;
|
|
17
17
|
//# sourceMappingURL=memoize.d.ts.map
|
package/dist/functions/read.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Result } from "@openally/result";
|
|
2
2
|
import type { RequireAtLeastOne } from "type-fest";
|
|
3
3
|
import { type RCGenerationMode, type RC } from "../rc.js";
|
|
4
|
-
interface
|
|
4
|
+
interface CreateReadOptions {
|
|
5
5
|
/**
|
|
6
6
|
* If enabled the file will be created if it does not exist on the disk.
|
|
7
7
|
*
|
|
@@ -21,7 +21,7 @@ interface createReadOptions {
|
|
|
21
21
|
*/
|
|
22
22
|
memoize?: boolean;
|
|
23
23
|
}
|
|
24
|
-
export type readOptions = RequireAtLeastOne<
|
|
24
|
+
export type readOptions = RequireAtLeastOne<CreateReadOptions, "createIfDoesNotExist" | "createMode">;
|
|
25
25
|
export declare function read(location?: string, options?: readOptions): Promise<Result<RC, NodeJS.ErrnoException>>;
|
|
26
26
|
export {};
|
|
27
27
|
//# sourceMappingURL=read.d.ts.map
|
|
@@ -3,17 +3,17 @@ import { type RC } from "../rc.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Overwrite the complete payload. partialUpdate property is mandatory.
|
|
5
5
|
*/
|
|
6
|
-
export interface
|
|
6
|
+
export interface WriteCompletePayload {
|
|
7
7
|
payload: RC;
|
|
8
8
|
partialUpdate?: false;
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* Partially update the payload. This implies not to rewrite the content of the file when enabled.
|
|
12
12
|
**/
|
|
13
|
-
export interface
|
|
13
|
+
export interface WritePartialPayload {
|
|
14
14
|
payload: Partial<RC>;
|
|
15
15
|
partialUpdate: true;
|
|
16
16
|
}
|
|
17
|
-
export type
|
|
18
|
-
export declare function write(location: string, options:
|
|
17
|
+
export type WriteOptions = WriteCompletePayload | WritePartialPayload;
|
|
18
|
+
export declare function write(location: string, options: WriteOptions): Promise<Result<void, NodeJS.ErrnoException>>;
|
|
19
19
|
//# sourceMappingURL=write.d.ts.map
|
package/dist/functions/write.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/functions/write.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/functions/write.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,kCAAkC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,+BAA+B;AAC/B,OAAO,EAAE,UAAU,EAAW,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAmB7C,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,QAAgB,EAChB,OAAqB;IAErB,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;QAEnD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAAK,OAAO,EAAE;YAC9C,UAAU,EAAE,UAAU;SACvB,CAAC,CAAC;QACH,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAEjB,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAa,CAAC;QAC5F,GAAG,CAAC,OAAO,GAAG,eAAe,CAAC;QAE9B,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QAElB,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,GAAG,CAAC,KAA8B,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
|
package/dist/projects/ci.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { WarningName } from "@nodesecure/js-x-ray";
|
|
2
2
|
/**
|
|
3
3
|
* Configuration dedicated for NodeSecure CI (or nsci)
|
|
4
4
|
* @see https://github.com/NodeSecure/ci
|
|
@@ -17,7 +17,7 @@ export interface CiConfiguration {
|
|
|
17
17
|
* JS-X-Ray warnings configuration
|
|
18
18
|
* @see https://github.com/NodeSecure/js-x-ray#warnings-legends-v20
|
|
19
19
|
*/
|
|
20
|
-
warnings?: CiWarnings | Record<
|
|
20
|
+
warnings?: CiWarnings | Record<WarningName, CiWarnings>;
|
|
21
21
|
}
|
|
22
22
|
export type CiWarnings = "off" | "error" | "warning";
|
|
23
23
|
export declare function generateCIConfiguration(): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/projects/ci.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/projects/ci.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC;IACnC,eAAe,CAAC,EAAE;QAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC;KACnD,CAAC;IACF;;;OAGG;IACH,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;CACzD;AACD,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;AAErD,wBAAgB,uBAAuB,IAAI;IAAE,EAAE,EAAE,eAAe,CAAC;CAAE,CAUlE"}
|
package/dist/projects/ci.js
CHANGED
package/dist/projects/ci.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci.js","sourceRoot":"","sources":["../../src/projects/ci.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ci.js","sourceRoot":"","sources":["../../src/projects/ci.ts"],"names":[],"mappings":"AAyBA,MAAM,UAAU,uBAAuB;IACrC,MAAM,EAAE,GAAoB;QAC1B,SAAS,EAAE,CAAC,SAAS,CAAC;QACtB,eAAe,EAAE;YACf,QAAQ,EAAE,QAAQ;SACnB;QACD,QAAQ,EAAE,OAAO;KAClB,CAAC;IAEF,OAAO,EAAE,EAAE,EAAE,CAAC;AAChB,CAAC"}
|
package/dist/rc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rc.d.ts","sourceRoot":"","sources":["../src/rc.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAM/C,OAAO,EACL,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAC3B,KAAK,mBAAmB,EACxB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,4BAA4B,EAC5B,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"rc.d.ts","sourceRoot":"","sources":["../src/rc.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAM/C,OAAO,EACL,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAC3B,KAAK,mBAAmB,EACxB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,4BAA4B,EAC5B,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAI/B,eAAO,MAAM,UAAU,KAAuB,CAAC;AAE/C,MAAM,WAAW,EAAE;IACjB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,yCAAyC;IACzC,EAAE,CAAC,EAAE,eAAe,CAAC;IACrB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAEpF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,GAAE,gBAAgB,GAAG,gBAAgB,EAAc,GACtD,EAAE,CAiBJ;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAED,OAAO,EACL,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,UAAU,EAEf,2BAA2B,EAC3B,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAEhB,4BAA4B,EAC5B,KAAK,oBAAoB,EAC1B,CAAC"}
|
package/dist/rc.js
CHANGED
|
@@ -10,6 +10,7 @@ import { generateCIConfiguration } from "./projects/ci.js";
|
|
|
10
10
|
import { generateReportConfiguration } from "./projects/report.js";
|
|
11
11
|
import { generateScannerConfiguration } from "./projects/scanner.js";
|
|
12
12
|
// CONSTANTS
|
|
13
|
+
// eslint-disable-next-line @openally/constants
|
|
13
14
|
export const JSONSchema = loadJSONSchemaSync();
|
|
14
15
|
/**
|
|
15
16
|
* @example
|
package/dist/rc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rc.js","sourceRoot":"","sources":["../src/rc.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,kCAAkC;AAClC,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,+BAA+B;AAC/B,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EACL,uBAAuB,EAGxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAG5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,4BAA4B,EAE7B,MAAM,uBAAuB,CAAC;AAE/B,YAAY;AACZ,MAAM,CAAC,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC;AAmC/C;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA8C,SAAS;IAEvD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAG;QAChB,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,SAAkB;QACxB,QAAQ,EAAE,iBAA0B;QACpC,QAAQ,EAAE,4BAA4B;KACvC,CAAC;IACF,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAEvC,OAAO,MAAM,CAAC,MAAM,CAClB,SAAS,EACT,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,EAAE,EAC5D,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC,EAAE,EACpE,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC,EAAE,CACvE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO;IACrB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,8BAA8B,CAAC,CAAC;AACjE,CAAC;AAED,OAAO,EACL,uBAAuB,EAIvB,2BAA2B,EAI3B,4BAA4B,EAE7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"rc.js","sourceRoot":"","sources":["../src/rc.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,kCAAkC;AAClC,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,+BAA+B;AAC/B,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EACL,uBAAuB,EAGxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAG5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,4BAA4B,EAE7B,MAAM,uBAAuB,CAAC;AAE/B,YAAY;AACZ,+CAA+C;AAC/C,MAAM,CAAC,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC;AAmC/C;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA8C,SAAS;IAEvD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAG;QAChB,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,SAAkB;QACxB,QAAQ,EAAE,iBAA0B;QACpC,QAAQ,EAAE,4BAA4B;KACvC,CAAC;IACF,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAEvC,OAAO,MAAM,CAAC,MAAM,CAClB,SAAS,EACT,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,EAAE,EAC5D,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC,EAAE,EACpE,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC,EAAE,CACvE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO;IACrB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,8BAA8B,CAAC,CAAC;AACjE,CAAC;AAED,OAAO,EACL,uBAAuB,EAIvB,2BAA2B,EAI3B,4BAA4B,EAE7B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,60 +1,53 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@nodesecure/rc",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "NodeSecure runtime configuration",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "./dist/index.js",
|
|
7
|
-
"types": "./dist/index.d.ts",
|
|
8
|
-
"engines": {
|
|
9
|
-
"node": ">=20"
|
|
10
|
-
},
|
|
11
|
-
"scripts": {
|
|
12
|
-
"build": "tsc",
|
|
13
|
-
"prepublishOnly": "npm run build",
|
|
14
|
-
"test-only": "
|
|
15
|
-
"test:tsd": "npm run build && tsd",
|
|
16
|
-
"test": "c8 -r html npm run test-only && npm run test:tsd"
|
|
17
|
-
},
|
|
18
|
-
"repository": {
|
|
19
|
-
"type": "git",
|
|
20
|
-
"url": "git+https://github.com/NodeSecure/scanner.git"
|
|
21
|
-
},
|
|
22
|
-
"files": [
|
|
23
|
-
"dist"
|
|
24
|
-
],
|
|
25
|
-
"keywords": [
|
|
26
|
-
"rc",
|
|
27
|
-
"config",
|
|
28
|
-
"configuration"
|
|
29
|
-
],
|
|
30
|
-
"author": "GENTILHOMME Thomas <gentilhomme.thomas@gmail.com>",
|
|
31
|
-
"license": "MIT",
|
|
32
|
-
"bugs": {
|
|
33
|
-
"url": "https://github.com/NodeSecure/scanner/issues"
|
|
34
|
-
},
|
|
35
|
-
"homepage": "https://github.com/NodeSecure/tree/master/workspaces/rc#readme",
|
|
36
|
-
"devDependencies": {
|
|
37
|
-
"@
|
|
38
|
-
"@types/
|
|
39
|
-
"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
"lodash.merge": "^4.6.2",
|
|
55
|
-
"type-fest": "^4.23.0"
|
|
56
|
-
},
|
|
57
|
-
"tsd": {
|
|
58
|
-
"directory": "test/types"
|
|
59
|
-
}
|
|
60
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@nodesecure/rc",
|
|
3
|
+
"version": "5.0.0",
|
|
4
|
+
"description": "NodeSecure runtime configuration",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"engines": {
|
|
9
|
+
"node": ">=20"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc",
|
|
13
|
+
"prepublishOnly": "npm run build",
|
|
14
|
+
"test-only": "tsx --test ./test/**/*.spec.ts",
|
|
15
|
+
"test:tsd": "npm run build && tsd",
|
|
16
|
+
"test": "c8 -r html npm run test-only && npm run test:tsd"
|
|
17
|
+
},
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git+https://github.com/NodeSecure/scanner.git"
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"dist"
|
|
24
|
+
],
|
|
25
|
+
"keywords": [
|
|
26
|
+
"rc",
|
|
27
|
+
"config",
|
|
28
|
+
"configuration"
|
|
29
|
+
],
|
|
30
|
+
"author": "GENTILHOMME Thomas <gentilhomme.thomas@gmail.com>",
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"bugs": {
|
|
33
|
+
"url": "https://github.com/NodeSecure/scanner/issues"
|
|
34
|
+
},
|
|
35
|
+
"homepage": "https://github.com/NodeSecure/tree/master/workspaces/rc#readme",
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/lodash.merge": "^4.6.7",
|
|
38
|
+
"@types/zen-observable": "^0.8.4",
|
|
39
|
+
"ajv": "^8.12.0"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@nodesecure/js-x-ray": "^8.1.0",
|
|
43
|
+
"@nodesecure/npm-types": "^1.2.0",
|
|
44
|
+
"@nodesecure/vulnera": "^2.0.1",
|
|
45
|
+
"@openally/config": "^1.0.1",
|
|
46
|
+
"@openally/result": "^1.2.1",
|
|
47
|
+
"lodash.merge": "^4.6.2",
|
|
48
|
+
"type-fest": "^4.41.0"
|
|
49
|
+
},
|
|
50
|
+
"tsd": {
|
|
51
|
+
"directory": "test/types"
|
|
52
|
+
}
|
|
53
|
+
}
|