@ktuban/safe-json-loader 1.1.0 → 1.1.1
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 +144 -75
- package/dist/cjs/logger.js +38 -37
- package/dist/cjs/logger.js.map +1 -1
- package/dist/cjs/safeJsonLoader.js +8 -9
- package/dist/cjs/safeJsonLoader.js.map +1 -1
- package/dist/esm/logger.js +36 -30
- package/dist/esm/logger.js.map +1 -1
- package/dist/esm/safeJsonLoader.js +9 -10
- package/dist/esm/safeJsonLoader.js.map +1 -1
- package/dist/types/logger.d.ts +10 -7
- package/dist/types/types.d.ts +22 -15
- package/package.json +7 -6
package/README.md
CHANGED
|
@@ -1,58 +1,46 @@
|
|
|
1
|
-
|
|
1
|
+
# Safe-json-loader
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A security‑hardened JSON loader and sanitizer for Node.js that protects against prototype pollution, excessive depth, oversized payloads, unsafe remote JSON, and directory‑based DoS attacks.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- Local JSON files
|
|
13
|
-
- Local directories of JSON files
|
|
14
|
-
- Remote JSON URLs
|
|
15
|
-
- Remote JSON indexes (`[]` or `{ files: [] }`)
|
|
16
|
-
- Safe parsing of raw JSON strings
|
|
17
|
-
- Safe sanitization of already‑parsed JSON objects
|
|
18
|
-
- Safe serialization via `safe-json-stringify`
|
|
5
|
+
- Local JSON files
|
|
6
|
+
- Local directories of JSON files
|
|
7
|
+
- Remote JSON URLs
|
|
8
|
+
- Remote JSON indexes (`[]` or `{ files: [] }`)
|
|
9
|
+
- Safe parsing of raw JSON strings
|
|
10
|
+
- Safe sanitization of already‑parsed JSON objects (e.g., Express `req.body`)
|
|
11
|
+
- Minimal logger interface with a default adapter to `@ktuban/structured-logger`
|
|
19
12
|
|
|
20
13
|
---
|
|
21
14
|
|
|
22
|
-
##
|
|
15
|
+
## Features
|
|
23
16
|
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
- Rebuilds objects using `Object.create(null)`
|
|
27
|
-
- Enforces maximum JSON depth
|
|
28
|
-
- Enforces per‑file and total directory size limits
|
|
29
|
-
- Enforces maximum number of files
|
|
30
|
-
- Safe remote loading with timeout, content‑type validation, and concurrency limits
|
|
17
|
+
- **Security‑first design:**
|
|
18
|
+
strips `__proto__`, `constructor`, `prototype`; rebuilds objects with `Object.create(null)`; enforces maximum JSON depth; per‑file and total directory size limits; safe remote loading with timeout, content‑type validation, and concurrency limits.
|
|
31
19
|
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
20
|
+
- **Helpers for all entry points:**
|
|
21
|
+
`loadSafeJsonResources()` for files/directories/URLs;
|
|
22
|
+
`parseSafeJsonString()` for raw strings;
|
|
23
|
+
`sanitizeParsedJsonObject()` for already‑parsed objects.
|
|
36
24
|
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
|
|
25
|
+
- **Logger integration without duplication:**
|
|
26
|
+
accepts a minimal `Logger` interface; if none is provided, uses the shared instance from `@ktuban/structured-logger`.
|
|
27
|
+
|
|
28
|
+
- **TypeScript‑first:**
|
|
29
|
+
full type definitions and strongly typed outputs.
|
|
40
30
|
|
|
41
31
|
---
|
|
42
32
|
|
|
43
|
-
##
|
|
33
|
+
## Installation
|
|
44
34
|
|
|
45
35
|
```bash
|
|
46
36
|
npm install safe-json-loader safe-json-stringify
|
|
47
37
|
```
|
|
48
38
|
|
|
49
|
-
Node.js
|
|
39
|
+
Node.js 18+ required.
|
|
50
40
|
|
|
51
41
|
---
|
|
52
42
|
|
|
53
|
-
##
|
|
54
|
-
|
|
55
|
-
### **1. Load from file, directory, or URL**
|
|
43
|
+
## Quick start
|
|
56
44
|
|
|
57
45
|
```ts
|
|
58
46
|
import { loadSafeJsonResources } from "safe-json-loader";
|
|
@@ -67,7 +55,44 @@ for (const file of files) {
|
|
|
67
55
|
|
|
68
56
|
---
|
|
69
57
|
|
|
70
|
-
|
|
58
|
+
## Recommended logger pattern
|
|
59
|
+
|
|
60
|
+
Most applications should use one shared logger instance across the entire codebase and let this library reuse it by default.
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
// logger.ts
|
|
64
|
+
import { StructuredLogger } from "@ktuban/structured-logger";
|
|
65
|
+
|
|
66
|
+
export const logger = StructuredLogger.getInstance({
|
|
67
|
+
level: process.env["LOG_LEVEL"] as any,
|
|
68
|
+
format: process.env["NODE_ENV"] === "development" ? "text" : "json",
|
|
69
|
+
filePath: process.env["LOG_FILE"],
|
|
70
|
+
});
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
You don’t need to pass a logger to `safe-json-loader`—it will automatically adapt the shared instance above. If you want to override it (e.g., in tests), pass a custom minimal logger.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Usage
|
|
78
|
+
|
|
79
|
+
### Load from file, directory, or URL
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
import { loadSafeJsonResources } from "safe-json-loader";
|
|
83
|
+
|
|
84
|
+
const files = await loadSafeJsonResources("https://example.com/config.json");
|
|
85
|
+
// or: await loadSafeJsonResources("./configs");
|
|
86
|
+
// or: await loadSafeJsonResources("./configs/app.json")
|
|
87
|
+
|
|
88
|
+
for (const file of files) {
|
|
89
|
+
// file.name → basename of path or URL
|
|
90
|
+
// file.data → sanitized JSON
|
|
91
|
+
// file.__source → absolute path or URL
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Parse and sanitize a raw JSON string
|
|
71
96
|
|
|
72
97
|
```ts
|
|
73
98
|
import { parseSafeJsonString } from "safe-json-loader";
|
|
@@ -76,13 +101,10 @@ const safeObj = parseSafeJsonString('{"user":{"__proto__":{"polluted":true}}}',
|
|
|
76
101
|
maxJsonDepth: 30,
|
|
77
102
|
});
|
|
78
103
|
|
|
79
|
-
console.log(safeObj);
|
|
80
104
|
// => { user: {} } // pollution stripped
|
|
81
105
|
```
|
|
82
106
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
### **3. Sanitize an already‑parsed JSON object (Express example)**
|
|
107
|
+
### Sanitize an already‑parsed JSON object (Express example)
|
|
86
108
|
|
|
87
109
|
```ts
|
|
88
110
|
import express from "express";
|
|
@@ -101,64 +123,72 @@ app.post("/api/data", (req, res) => {
|
|
|
101
123
|
});
|
|
102
124
|
```
|
|
103
125
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
### **4. Safe serialization**
|
|
126
|
+
### Safe serialization
|
|
107
127
|
|
|
108
128
|
```ts
|
|
109
129
|
import safeStringify from "safe-json-stringify";
|
|
110
130
|
|
|
111
|
-
const json = safeStringify(
|
|
131
|
+
const json = safeStringify(files[0].data);
|
|
112
132
|
```
|
|
113
133
|
|
|
114
134
|
---
|
|
115
135
|
|
|
116
|
-
##
|
|
136
|
+
## Options
|
|
117
137
|
|
|
118
138
|
```ts
|
|
139
|
+
interface Logger {
|
|
140
|
+
debug?: (message: string, meta?: unknown) => void;
|
|
141
|
+
info?: (message: string, meta?: unknown) => void;
|
|
142
|
+
warn?: (message: string, meta?: unknown) => void;
|
|
143
|
+
error?: (message: string, meta?: unknown) => void;
|
|
144
|
+
}
|
|
145
|
+
|
|
119
146
|
interface SafeJsonLoaderOptions {
|
|
120
|
-
maxFiles?: number;
|
|
121
|
-
maxTotalBytes?: number;
|
|
122
|
-
maxFileBytes?: number;
|
|
123
|
-
httpTimeoutMs?: number;
|
|
124
|
-
maxConcurrency?: number;
|
|
147
|
+
maxFiles?: number; // default 100
|
|
148
|
+
maxTotalBytes?: number; // default 10 * 1024 * 1024 (10 MB)
|
|
149
|
+
maxFileBytes?: number; // default 2 * 1024 * 1024 (2 MB)
|
|
150
|
+
httpTimeoutMs?: number; // default 8000
|
|
151
|
+
maxConcurrency?: number; // default 5
|
|
125
152
|
looseJsonContentType?: boolean; // default true
|
|
126
|
-
maxJsonDepth?: number;
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
153
|
+
maxJsonDepth?: number; // default 50
|
|
154
|
+
|
|
155
|
+
logger?: Logger; // optional; defaults to @ktuban/structured-logger
|
|
156
|
+
onFileLoaded?: (file: LoadedJsonFile) => void;
|
|
157
|
+
onFileSkipped?: (info: { source: string; reason: string }) => void;
|
|
130
158
|
}
|
|
131
159
|
```
|
|
132
160
|
|
|
133
|
-
|
|
161
|
+
- **Default logger behavior:**
|
|
162
|
+
If `logger` is omitted, the library adapts the shared instance from `@ktuban/structured-logger`.
|
|
163
|
+
If you pass a custom logger, only the methods you implement are used; missing methods are skipped silently.
|
|
134
164
|
|
|
135
|
-
|
|
165
|
+
---
|
|
136
166
|
|
|
137
|
-
|
|
167
|
+
## Returned structure
|
|
138
168
|
|
|
139
169
|
```ts
|
|
140
170
|
interface LoadedJsonFile {
|
|
141
|
-
name: string;
|
|
142
|
-
data: JsonValue;
|
|
143
|
-
__source: string;
|
|
171
|
+
name: string; // file name or URL basename
|
|
172
|
+
data: JsonValue; // sanitized JSON
|
|
173
|
+
__source: string; // absolute path or URL
|
|
144
174
|
}
|
|
145
175
|
```
|
|
146
176
|
|
|
147
177
|
---
|
|
148
178
|
|
|
149
|
-
##
|
|
179
|
+
## Security guarantees
|
|
150
180
|
|
|
151
|
-
-
|
|
152
|
-
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
-
|
|
156
|
-
-
|
|
157
|
-
-
|
|
181
|
+
- **Prototype pollution prevented:** strips `__proto__`, `constructor`, `prototype`.
|
|
182
|
+
- **No inherited prototypes:** objects rebuilt with `Object.create(null)`.
|
|
183
|
+
- **Depth‑limited:** configurable `maxJsonDepth`.
|
|
184
|
+
- **Size‑limited:** per‑file and total directory limits.
|
|
185
|
+
- **Safe remote fetch:** timeout and content‑type validation.
|
|
186
|
+
- **Concurrency‑limited:** avoids I/O storms.
|
|
187
|
+
- **Sanitized before user code touches it:** all entry points sanitize.
|
|
158
188
|
|
|
159
189
|
---
|
|
160
190
|
|
|
161
|
-
##
|
|
191
|
+
## Error handling
|
|
162
192
|
|
|
163
193
|
All errors are thrown as:
|
|
164
194
|
|
|
@@ -173,19 +203,58 @@ Example:
|
|
|
173
203
|
```ts
|
|
174
204
|
try {
|
|
175
205
|
await loadSafeJsonResources("./bad.json");
|
|
176
|
-
} catch (err) {
|
|
206
|
+
} catch (err: any) {
|
|
177
207
|
console.error(err.code, err.message);
|
|
178
208
|
}
|
|
179
209
|
```
|
|
180
210
|
|
|
181
211
|
---
|
|
182
212
|
|
|
183
|
-
##
|
|
213
|
+
## Advanced examples
|
|
184
214
|
|
|
185
|
-
|
|
215
|
+
### Custom minimal logger (tests or alternative frameworks)
|
|
216
|
+
|
|
217
|
+
```ts
|
|
218
|
+
import { loadSafeJsonResources } from "safe-json-loader";
|
|
219
|
+
|
|
220
|
+
const testLogger = {
|
|
221
|
+
info: (msg: string, meta?: unknown) => {
|
|
222
|
+
// capture logs for assertions
|
|
223
|
+
},
|
|
224
|
+
error: (msg: string, meta?: unknown) => {
|
|
225
|
+
// capture errors
|
|
226
|
+
},
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
await loadSafeJsonResources("./configs", { logger: testLogger });
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### Hooks for progress and limits
|
|
233
|
+
|
|
234
|
+
```ts
|
|
235
|
+
await loadSafeJsonResources("./configs", {
|
|
236
|
+
onFileLoaded: (file) => {
|
|
237
|
+
// e.g., metrics or audit trail
|
|
238
|
+
},
|
|
239
|
+
onFileSkipped: ({ source, reason }) => {
|
|
240
|
+
// e.g., alert on skipped files
|
|
241
|
+
},
|
|
242
|
+
});
|
|
243
|
+
```
|
|
186
244
|
|
|
187
245
|
---
|
|
188
246
|
|
|
189
|
-
|
|
247
|
+
## Best practices
|
|
248
|
+
|
|
249
|
+
- **Always sanitize `req.body`** before schema validation.
|
|
250
|
+
- **Set `maxJsonDepth`** in production to a sensible value for your domain.
|
|
251
|
+
- **Use one shared logger instance** across your app and libraries.
|
|
252
|
+
- **Keep remote indexes small** and enforce `maxFiles` to avoid DoS via large listings.
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## License
|
|
257
|
+
|
|
258
|
+
MIT
|
|
190
259
|
|
|
191
|
-
|
|
260
|
+
---
|
package/dist/cjs/logger.js
CHANGED
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
2
|
+
// logger.ts
|
|
5
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ConsoleJsonLoaderLogger = void 0;
|
|
7
4
|
exports.mergeOptions = mergeOptions;
|
|
8
|
-
exports.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
5
|
+
exports.log = log;
|
|
6
|
+
const structured_logger_1 = require("@ktuban/structured-logger");
|
|
7
|
+
/**
|
|
8
|
+
* Default logger instance.
|
|
9
|
+
*
|
|
10
|
+
* We rely on StructuredLogger's singleton behavior:
|
|
11
|
+
* - If the host app has already called StructuredLogger.getInstance({...}),
|
|
12
|
+
* this will reuse that configuration.
|
|
13
|
+
* - If not, this will create a default instance with its own defaults.
|
|
14
|
+
*/
|
|
15
|
+
const structuredLogger = structured_logger_1.StructuredLogger.getInstance();
|
|
16
|
+
/**
|
|
17
|
+
* Default logger adapter that maps the loader's minimal Logger interface
|
|
18
|
+
* to the StructuredLogger API.
|
|
19
|
+
*/
|
|
20
|
+
const DEFAULT_LOGGER = {
|
|
21
|
+
debug: (message, meta) => structuredLogger.debug(message, meta),
|
|
22
|
+
info: (message, meta) => structuredLogger.info(message, meta),
|
|
23
|
+
warn: (message, meta) => structuredLogger.warn(message, meta),
|
|
24
|
+
error: (message, meta) => structuredLogger.error(message, meta),
|
|
15
25
|
};
|
|
26
|
+
/**
|
|
27
|
+
* Default options for the safe JSON loader.
|
|
28
|
+
*/
|
|
16
29
|
const DEFAULT_OPTIONS = {
|
|
17
30
|
maxFiles: 100,
|
|
18
31
|
maxTotalBytes: 10 * 1024 * 1024, // 10 MB
|
|
@@ -21,10 +34,16 @@ const DEFAULT_OPTIONS = {
|
|
|
21
34
|
maxConcurrency: 5,
|
|
22
35
|
looseJsonContentType: true,
|
|
23
36
|
maxJsonDepth: 50,
|
|
24
|
-
logger:
|
|
37
|
+
logger: DEFAULT_LOGGER,
|
|
25
38
|
onFileLoaded: () => { },
|
|
26
39
|
onFileSkipped: () => { },
|
|
27
40
|
};
|
|
41
|
+
/**
|
|
42
|
+
* Merge user‑provided options with defaults.
|
|
43
|
+
*
|
|
44
|
+
* - Ensures all numeric limits are set.
|
|
45
|
+
* - Ensures logger and hooks are always defined.
|
|
46
|
+
*/
|
|
28
47
|
function mergeOptions(opts) {
|
|
29
48
|
const logger = opts?.logger ?? DEFAULT_OPTIONS.logger;
|
|
30
49
|
return {
|
|
@@ -35,33 +54,15 @@ function mergeOptions(opts) {
|
|
|
35
54
|
onFileSkipped: opts?.onFileSkipped ?? DEFAULT_OPTIONS.onFileSkipped,
|
|
36
55
|
};
|
|
37
56
|
}
|
|
38
|
-
/**
|
|
39
|
-
* Simple adapter to allow direct use of console as logger, if desired.
|
|
40
|
-
*/
|
|
41
|
-
class ConsoleJsonLoaderLogger {
|
|
42
|
-
log(level, message, meta) {
|
|
43
|
-
const payload = meta ? `${message} | ${(0, safe_json_stringify_1.default)(meta)}` : message;
|
|
44
|
-
switch (level) {
|
|
45
|
-
case "debug":
|
|
46
|
-
console.debug(payload);
|
|
47
|
-
break;
|
|
48
|
-
case "info":
|
|
49
|
-
console.info(payload);
|
|
50
|
-
break;
|
|
51
|
-
case "warn":
|
|
52
|
-
console.warn(payload);
|
|
53
|
-
break;
|
|
54
|
-
case "error":
|
|
55
|
-
console.error(payload);
|
|
56
|
-
break;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
exports.ConsoleJsonLoaderLogger = ConsoleJsonLoaderLogger;
|
|
61
57
|
/**
|
|
62
58
|
* Helper to log with a specific log level using resolved options.
|
|
59
|
+
*
|
|
60
|
+
* This is intentionally minimal and tolerant:
|
|
61
|
+
* - If a given level is not implemented by the logger, it is silently skipped.
|
|
63
62
|
*/
|
|
64
|
-
function
|
|
65
|
-
options.logger
|
|
63
|
+
function log(options, level, message, meta) {
|
|
64
|
+
const fn = options.logger[level];
|
|
65
|
+
if (fn)
|
|
66
|
+
fn(message, meta);
|
|
66
67
|
}
|
|
67
68
|
//# sourceMappingURL=logger.js.map
|
package/dist/cjs/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":";AAAA,YAAY;;AAoDZ,oCAYC;AAQD,kBAQC;AA9ED,iEAA6D;AAO7D;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG,oCAAgB,CAAC,WAAW,EAAE,CAAC;AAExD;;;GAGG;AACH,MAAM,cAAc,GAAW;IAC7B,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAW,CAAC;IACtE,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAW,CAAC;IACpE,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAW,CAAC;IACpE,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAW,CAAC;CACvE,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAkC;IACrD,QAAQ,EAAE,GAAG;IACb,aAAa,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,QAAQ;IACzC,YAAY,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAI,OAAO;IACxC,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,CAAC;IACjB,oBAAoB,EAAE,IAAI;IAC1B,YAAY,EAAE,EAAE;IAChB,MAAM,EAAE,cAAc;IACtB,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;IACtB,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,YAAY,CAC1B,IAA4B;IAE5B,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC;IAEtD,OAAO;QACL,GAAG,eAAe;QAClB,GAAG,IAAI;QACP,MAAM;QACN,YAAY,EAAE,IAAI,EAAE,YAAY,IAAI,eAAe,CAAC,YAAY;QAChE,aAAa,EAAE,IAAI,EAAE,aAAa,IAAI,eAAe,CAAC,aAAa;KACpE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,GAAG,CACjB,OAAsC,EACtC,KAAmB,EACnB,OAAe,EACf,IAAc;IAEd,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,EAAE;QAAE,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -112,6 +112,7 @@ function deepSanitize(value, depth, maxDepth) {
|
|
|
112
112
|
}
|
|
113
113
|
/**
|
|
114
114
|
* Computes maximum depth of a JSON value.
|
|
115
|
+
* (Currently unused externally, but kept for potential diagnostics or future features.)
|
|
115
116
|
*/
|
|
116
117
|
function calculateDepth(value, currentDepth = 0) {
|
|
117
118
|
if (value === null)
|
|
@@ -194,7 +195,7 @@ async function loadRemoteIndex(indexUrl, indexJson, opts, limitRun) {
|
|
|
194
195
|
if (urls.length > opts.maxFiles) {
|
|
195
196
|
throw new JsonLoaderError(`Remote directory index at ${indexUrl} lists ${urls.length} files, exceeding maxFiles=${opts.maxFiles}.`, "REMOTE_INDEX_LIMIT_ERROR");
|
|
196
197
|
}
|
|
197
|
-
(0, logger_js_1.
|
|
198
|
+
(0, logger_js_1.log)(opts, "debug", "Loading remote index", {
|
|
198
199
|
indexUrl,
|
|
199
200
|
fileCount: urls.length,
|
|
200
201
|
});
|
|
@@ -209,9 +210,7 @@ async function loadRemoteIndex(indexUrl, indexJson, opts, limitRun) {
|
|
|
209
210
|
__source: fileUrl,
|
|
210
211
|
});
|
|
211
212
|
opts.onFileLoaded(file);
|
|
212
|
-
(0, logger_js_1.
|
|
213
|
-
url: fileUrl,
|
|
214
|
-
});
|
|
213
|
+
(0, logger_js_1.log)(opts, "info", "Remote JSON file loaded", { url: fileUrl });
|
|
215
214
|
return file;
|
|
216
215
|
}));
|
|
217
216
|
return Promise.all(tasks);
|
|
@@ -226,7 +225,7 @@ async function loadLocalJsonFile(filePath, opts) {
|
|
|
226
225
|
source: filePath,
|
|
227
226
|
reason: `File exceeds maxFileBytes=${opts.maxFileBytes}`,
|
|
228
227
|
});
|
|
229
|
-
(0, logger_js_1.
|
|
228
|
+
(0, logger_js_1.log)(opts, "warn", "Skipping local file due to size limit", {
|
|
230
229
|
filePath,
|
|
231
230
|
size: stats.size,
|
|
232
231
|
maxFileBytes: opts.maxFileBytes,
|
|
@@ -250,14 +249,14 @@ async function loadLocalJsonFile(filePath, opts) {
|
|
|
250
249
|
__source: filePath,
|
|
251
250
|
});
|
|
252
251
|
opts.onFileLoaded(file);
|
|
253
|
-
(0, logger_js_1.
|
|
252
|
+
(0, logger_js_1.log)(opts, "info", "Local JSON file loaded", { filePath });
|
|
254
253
|
return file;
|
|
255
254
|
}
|
|
256
255
|
async function loadLocalDirectory(dirPath, opts, limitRun) {
|
|
257
256
|
const files = await promises_1.default.readdir(dirPath);
|
|
258
257
|
const jsonFiles = files.filter(isJsonFile);
|
|
259
258
|
if (jsonFiles.length === 0) {
|
|
260
|
-
(0, logger_js_1.
|
|
259
|
+
(0, logger_js_1.log)(opts, "debug", "No JSON files found in directory", { dirPath });
|
|
261
260
|
return [];
|
|
262
261
|
}
|
|
263
262
|
if (jsonFiles.length > opts.maxFiles) {
|
|
@@ -275,7 +274,7 @@ async function loadLocalDirectory(dirPath, opts, limitRun) {
|
|
|
275
274
|
}
|
|
276
275
|
filePaths.push(full);
|
|
277
276
|
}
|
|
278
|
-
(0, logger_js_1.
|
|
277
|
+
(0, logger_js_1.log)(opts, "debug", "Loading local directory", {
|
|
279
278
|
dirPath,
|
|
280
279
|
fileCount: filePaths.length,
|
|
281
280
|
totalSize,
|
|
@@ -325,7 +324,7 @@ async function loadSafeJsonResources(input, options) {
|
|
|
325
324
|
__source: inputStr,
|
|
326
325
|
});
|
|
327
326
|
opts.onFileLoaded(file);
|
|
328
|
-
(0, logger_js_1.
|
|
327
|
+
(0, logger_js_1.log)(opts, "info", "Remote JSON file loaded", { url: inputStr });
|
|
329
328
|
return [file];
|
|
330
329
|
}
|
|
331
330
|
/* ----------------------------------- LOCAL ---------------------------------- */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safeJsonLoader.js","sourceRoot":"","sources":["../../src/safeJsonLoader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"safeJsonLoader.js","sourceRoot":"","sources":["../../src/safeJsonLoader.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/logger.js
CHANGED
|
@@ -1,10 +1,27 @@
|
|
|
1
1
|
// logger.ts
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
import { StructuredLogger } from "@ktuban/structured-logger";
|
|
3
|
+
/**
|
|
4
|
+
* Default logger instance.
|
|
5
|
+
*
|
|
6
|
+
* We rely on StructuredLogger's singleton behavior:
|
|
7
|
+
* - If the host app has already called StructuredLogger.getInstance({...}),
|
|
8
|
+
* this will reuse that configuration.
|
|
9
|
+
* - If not, this will create a default instance with its own defaults.
|
|
10
|
+
*/
|
|
11
|
+
const structuredLogger = StructuredLogger.getInstance();
|
|
12
|
+
/**
|
|
13
|
+
* Default logger adapter that maps the loader's minimal Logger interface
|
|
14
|
+
* to the StructuredLogger API.
|
|
15
|
+
*/
|
|
16
|
+
const DEFAULT_LOGGER = {
|
|
17
|
+
debug: (message, meta) => structuredLogger.debug(message, meta),
|
|
18
|
+
info: (message, meta) => structuredLogger.info(message, meta),
|
|
19
|
+
warn: (message, meta) => structuredLogger.warn(message, meta),
|
|
20
|
+
error: (message, meta) => structuredLogger.error(message, meta),
|
|
7
21
|
};
|
|
22
|
+
/**
|
|
23
|
+
* Default options for the safe JSON loader.
|
|
24
|
+
*/
|
|
8
25
|
const DEFAULT_OPTIONS = {
|
|
9
26
|
maxFiles: 100,
|
|
10
27
|
maxTotalBytes: 10 * 1024 * 1024, // 10 MB
|
|
@@ -13,10 +30,16 @@ const DEFAULT_OPTIONS = {
|
|
|
13
30
|
maxConcurrency: 5,
|
|
14
31
|
looseJsonContentType: true,
|
|
15
32
|
maxJsonDepth: 50,
|
|
16
|
-
logger:
|
|
33
|
+
logger: DEFAULT_LOGGER,
|
|
17
34
|
onFileLoaded: () => { },
|
|
18
35
|
onFileSkipped: () => { },
|
|
19
36
|
};
|
|
37
|
+
/**
|
|
38
|
+
* Merge user‑provided options with defaults.
|
|
39
|
+
*
|
|
40
|
+
* - Ensures all numeric limits are set.
|
|
41
|
+
* - Ensures logger and hooks are always defined.
|
|
42
|
+
*/
|
|
20
43
|
export function mergeOptions(opts) {
|
|
21
44
|
const logger = opts?.logger ?? DEFAULT_OPTIONS.logger;
|
|
22
45
|
return {
|
|
@@ -27,32 +50,15 @@ export function mergeOptions(opts) {
|
|
|
27
50
|
onFileSkipped: opts?.onFileSkipped ?? DEFAULT_OPTIONS.onFileSkipped,
|
|
28
51
|
};
|
|
29
52
|
}
|
|
30
|
-
/**
|
|
31
|
-
* Simple adapter to allow direct use of console as logger, if desired.
|
|
32
|
-
*/
|
|
33
|
-
export class ConsoleJsonLoaderLogger {
|
|
34
|
-
log(level, message, meta) {
|
|
35
|
-
const payload = meta ? `${message} | ${stringify(meta)}` : message;
|
|
36
|
-
switch (level) {
|
|
37
|
-
case "debug":
|
|
38
|
-
console.debug(payload);
|
|
39
|
-
break;
|
|
40
|
-
case "info":
|
|
41
|
-
console.info(payload);
|
|
42
|
-
break;
|
|
43
|
-
case "warn":
|
|
44
|
-
console.warn(payload);
|
|
45
|
-
break;
|
|
46
|
-
case "error":
|
|
47
|
-
console.error(payload);
|
|
48
|
-
break;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
53
|
/**
|
|
53
54
|
* Helper to log with a specific log level using resolved options.
|
|
55
|
+
*
|
|
56
|
+
* This is intentionally minimal and tolerant:
|
|
57
|
+
* - If a given level is not implemented by the logger, it is silently skipped.
|
|
54
58
|
*/
|
|
55
|
-
export function
|
|
56
|
-
options.logger
|
|
59
|
+
export function log(options, level, message, meta) {
|
|
60
|
+
const fn = options.logger[level];
|
|
61
|
+
if (fn)
|
|
62
|
+
fn(message, meta);
|
|
57
63
|
}
|
|
58
64
|
//# sourceMappingURL=logger.js.map
|
package/dist/esm/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,YAAY;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,YAAY;AAEZ,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAO7D;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC;AAExD;;;GAGG;AACH,MAAM,cAAc,GAAW;IAC7B,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAW,CAAC;IACtE,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAW,CAAC;IACpE,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAW,CAAC;IACpE,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAW,CAAC;CACvE,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAkC;IACrD,QAAQ,EAAE,GAAG;IACb,aAAa,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,QAAQ;IACzC,YAAY,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAI,OAAO;IACxC,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,CAAC;IACjB,oBAAoB,EAAE,IAAI;IAC1B,YAAY,EAAE,EAAE;IAChB,MAAM,EAAE,cAAc;IACtB,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;IACtB,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,IAA4B;IAE5B,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC;IAEtD,OAAO;QACL,GAAG,eAAe;QAClB,GAAG,IAAI;QACP,MAAM;QACN,YAAY,EAAE,IAAI,EAAE,YAAY,IAAI,eAAe,CAAC,YAAY;QAChE,aAAa,EAAE,IAAI,EAAE,aAAa,IAAI,eAAe,CAAC,aAAa;KACpE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CACjB,OAAsC,EACtC,KAAmB,EACnB,OAAe,EACf,IAAc;IAEd,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,EAAE;QAAE,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from "fs/promises";
|
|
3
3
|
import path from "path";
|
|
4
4
|
import fetch from "node-fetch";
|
|
5
|
-
import { mergeOptions,
|
|
5
|
+
import { mergeOptions, log } from "./logger.js";
|
|
6
6
|
/* -------------------------------------------------------------------------- */
|
|
7
7
|
/* ERROR TYPE */
|
|
8
8
|
/* -------------------------------------------------------------------------- */
|
|
@@ -101,6 +101,7 @@ function deepSanitize(value, depth, maxDepth) {
|
|
|
101
101
|
}
|
|
102
102
|
/**
|
|
103
103
|
* Computes maximum depth of a JSON value.
|
|
104
|
+
* (Currently unused externally, but kept for potential diagnostics or future features.)
|
|
104
105
|
*/
|
|
105
106
|
function calculateDepth(value, currentDepth = 0) {
|
|
106
107
|
if (value === null)
|
|
@@ -183,7 +184,7 @@ async function loadRemoteIndex(indexUrl, indexJson, opts, limitRun) {
|
|
|
183
184
|
if (urls.length > opts.maxFiles) {
|
|
184
185
|
throw new JsonLoaderError(`Remote directory index at ${indexUrl} lists ${urls.length} files, exceeding maxFiles=${opts.maxFiles}.`, "REMOTE_INDEX_LIMIT_ERROR");
|
|
185
186
|
}
|
|
186
|
-
|
|
187
|
+
log(opts, "debug", "Loading remote index", {
|
|
187
188
|
indexUrl,
|
|
188
189
|
fileCount: urls.length,
|
|
189
190
|
});
|
|
@@ -198,9 +199,7 @@ async function loadRemoteIndex(indexUrl, indexJson, opts, limitRun) {
|
|
|
198
199
|
__source: fileUrl,
|
|
199
200
|
});
|
|
200
201
|
opts.onFileLoaded(file);
|
|
201
|
-
|
|
202
|
-
url: fileUrl,
|
|
203
|
-
});
|
|
202
|
+
log(opts, "info", "Remote JSON file loaded", { url: fileUrl });
|
|
204
203
|
return file;
|
|
205
204
|
}));
|
|
206
205
|
return Promise.all(tasks);
|
|
@@ -215,7 +214,7 @@ async function loadLocalJsonFile(filePath, opts) {
|
|
|
215
214
|
source: filePath,
|
|
216
215
|
reason: `File exceeds maxFileBytes=${opts.maxFileBytes}`,
|
|
217
216
|
});
|
|
218
|
-
|
|
217
|
+
log(opts, "warn", "Skipping local file due to size limit", {
|
|
219
218
|
filePath,
|
|
220
219
|
size: stats.size,
|
|
221
220
|
maxFileBytes: opts.maxFileBytes,
|
|
@@ -239,14 +238,14 @@ async function loadLocalJsonFile(filePath, opts) {
|
|
|
239
238
|
__source: filePath,
|
|
240
239
|
});
|
|
241
240
|
opts.onFileLoaded(file);
|
|
242
|
-
|
|
241
|
+
log(opts, "info", "Local JSON file loaded", { filePath });
|
|
243
242
|
return file;
|
|
244
243
|
}
|
|
245
244
|
async function loadLocalDirectory(dirPath, opts, limitRun) {
|
|
246
245
|
const files = await fs.readdir(dirPath);
|
|
247
246
|
const jsonFiles = files.filter(isJsonFile);
|
|
248
247
|
if (jsonFiles.length === 0) {
|
|
249
|
-
|
|
248
|
+
log(opts, "debug", "No JSON files found in directory", { dirPath });
|
|
250
249
|
return [];
|
|
251
250
|
}
|
|
252
251
|
if (jsonFiles.length > opts.maxFiles) {
|
|
@@ -264,7 +263,7 @@ async function loadLocalDirectory(dirPath, opts, limitRun) {
|
|
|
264
263
|
}
|
|
265
264
|
filePaths.push(full);
|
|
266
265
|
}
|
|
267
|
-
|
|
266
|
+
log(opts, "debug", "Loading local directory", {
|
|
268
267
|
dirPath,
|
|
269
268
|
fileCount: filePaths.length,
|
|
270
269
|
totalSize,
|
|
@@ -314,7 +313,7 @@ export async function loadSafeJsonResources(input, options) {
|
|
|
314
313
|
__source: inputStr,
|
|
315
314
|
});
|
|
316
315
|
opts.onFileLoaded(file);
|
|
317
|
-
|
|
316
|
+
log(opts, "info", "Remote JSON file loaded", { url: inputStr });
|
|
318
317
|
return [file];
|
|
319
318
|
}
|
|
320
319
|
/* ----------------------------------- LOCAL ---------------------------------- */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safeJsonLoader.js","sourceRoot":"","sources":["../../src/safeJsonLoader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"safeJsonLoader.js","sourceRoot":"","sources":["../../src/safeJsonLoader.ts"],"names":[],"mappings":"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"}
|
package/dist/types/logger.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function mergeOptions(opts?: SafeJsonLoaderOptions): ResolvedSafeJsonLoaderOptions;
|
|
1
|
+
import type { Logger, ResolvedSafeJsonLoaderOptions, SafeJsonLoaderOptions } from "./types.js";
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Merge user‑provided options with defaults.
|
|
4
|
+
*
|
|
5
|
+
* - Ensures all numeric limits are set.
|
|
6
|
+
* - Ensures logger and hooks are always defined.
|
|
5
7
|
*/
|
|
6
|
-
export declare
|
|
7
|
-
log(level: LogLevel, message: string, meta?: Record<string, unknown>): void;
|
|
8
|
-
}
|
|
8
|
+
export declare function mergeOptions(opts?: SafeJsonLoaderOptions): ResolvedSafeJsonLoaderOptions;
|
|
9
9
|
/**
|
|
10
10
|
* Helper to log with a specific log level using resolved options.
|
|
11
|
+
*
|
|
12
|
+
* This is intentionally minimal and tolerant:
|
|
13
|
+
* - If a given level is not implemented by the logger, it is silently skipped.
|
|
11
14
|
*/
|
|
12
|
-
export declare function
|
|
15
|
+
export declare function log(options: ResolvedSafeJsonLoaderOptions, level: keyof Logger, message: string, meta?: unknown): void;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,31 +1,38 @@
|
|
|
1
1
|
import type { PathLike } from "fs";
|
|
2
2
|
import type { URL } from "url";
|
|
3
|
+
/** JSON primitive types. */
|
|
3
4
|
export type JsonPrimitive = string | number | boolean | null;
|
|
5
|
+
/** JSON object type. */
|
|
4
6
|
export interface JsonObject {
|
|
5
7
|
[key: string]: JsonValue;
|
|
6
8
|
}
|
|
9
|
+
/** JSON array type. */
|
|
7
10
|
export interface JsonArray extends Array<JsonValue> {
|
|
8
11
|
}
|
|
12
|
+
/** Any valid JSON value. */
|
|
9
13
|
export type JsonValue = JsonPrimitive | JsonObject | JsonArray;
|
|
14
|
+
/**
|
|
15
|
+
* A single loaded JSON file, with metadata.
|
|
16
|
+
*/
|
|
10
17
|
export interface LoadedJsonFile {
|
|
11
|
-
/** Logical name (basename of path or URL) */
|
|
18
|
+
/** Logical name (basename of path or URL). */
|
|
12
19
|
name: string;
|
|
13
|
-
/** Parsed and security‑sanitized JSON data */
|
|
20
|
+
/** Parsed and security‑sanitized JSON data. */
|
|
14
21
|
data: JsonValue;
|
|
15
|
-
/** Original source (absolute path or URL) */
|
|
22
|
+
/** Original source (absolute path or URL). */
|
|
16
23
|
__source: string;
|
|
17
24
|
}
|
|
18
25
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Abstract logger interface the loader will use.
|
|
25
|
-
* Callers can pass a custom implementation (winston/pino/console/etc.).
|
|
26
|
+
* Minimal logger interface used by the loader.
|
|
27
|
+
*
|
|
28
|
+
* This keeps the loader decoupled from any specific logging framework.
|
|
29
|
+
* Callers can pass console, pino, winston, @ktuban/structured-logger, etc.
|
|
26
30
|
*/
|
|
27
|
-
export interface
|
|
28
|
-
|
|
31
|
+
export interface Logger {
|
|
32
|
+
debug?: (message: string, meta?: unknown) => void;
|
|
33
|
+
info?: (message: string, meta?: unknown) => void;
|
|
34
|
+
warn?: (message: string, meta?: unknown) => void;
|
|
35
|
+
error?: (message: string, meta?: unknown) => void;
|
|
29
36
|
}
|
|
30
37
|
/**
|
|
31
38
|
* Options for safe JSON loading.
|
|
@@ -71,9 +78,9 @@ export interface SafeJsonLoaderOptions {
|
|
|
71
78
|
maxJsonDepth?: number;
|
|
72
79
|
/**
|
|
73
80
|
* Optional logger implementation.
|
|
74
|
-
* If omitted, a
|
|
81
|
+
* If omitted, a default adapter to @ktuban/structured-logger is used.
|
|
75
82
|
*/
|
|
76
|
-
logger?:
|
|
83
|
+
logger?: Logger;
|
|
77
84
|
/**
|
|
78
85
|
* Optional hook invoked after each file is successfully loaded and sanitized.
|
|
79
86
|
*/
|
|
@@ -97,7 +104,7 @@ export interface ResolvedSafeJsonLoaderOptions extends SafeJsonLoaderOptions {
|
|
|
97
104
|
maxConcurrency: number;
|
|
98
105
|
looseJsonContentType: boolean;
|
|
99
106
|
maxJsonDepth: number;
|
|
100
|
-
logger:
|
|
107
|
+
logger: Logger;
|
|
101
108
|
onFileLoaded: (file: LoadedJsonFile) => void;
|
|
102
109
|
onFileSkipped: (info: {
|
|
103
110
|
source: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ktuban/safe-json-loader",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "A security‑hardened JSON loader with prototype‑pollution protection, depth limits, safe parsing, and optional validation layers.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"json",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
],
|
|
17
17
|
"license": "MIT",
|
|
18
18
|
"author": {
|
|
19
|
-
"name": "K",
|
|
19
|
+
"name": "K Tuban",
|
|
20
20
|
"url": "https://github.com/ktuban"
|
|
21
21
|
},
|
|
22
22
|
"private": false,
|
|
@@ -63,16 +63,17 @@
|
|
|
63
63
|
"start": "node ./dist/esm/index.js"
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
|
+
"@ktuban/structured-logger": "^1.0.0",
|
|
66
67
|
"node-fetch": "^3.3.2",
|
|
67
|
-
"safe-json-stringify":"^1.2.0"
|
|
68
|
+
"safe-json-stringify": "^1.2.0"
|
|
68
69
|
},
|
|
69
70
|
"devDependencies": {
|
|
70
71
|
"@types/node": "^25.0.7",
|
|
72
|
+
"@types/safe-json-stringify": "^1.1.5",
|
|
71
73
|
"@typescript-eslint/eslint-plugin": "^8.53.0",
|
|
72
74
|
"@typescript-eslint/parser": "^8.53.0",
|
|
73
75
|
"eslint": "^9.39.2",
|
|
74
76
|
"rimraf": "^6.1.2",
|
|
75
|
-
"typescript": "^5.9.3"
|
|
76
|
-
"@types/safe-json-stringify": "^1.1.5"
|
|
77
|
+
"typescript": "^5.9.3"
|
|
77
78
|
}
|
|
78
|
-
}
|
|
79
|
+
}
|