@ktuban/safe-json-loader 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,58 +1,46 @@
1
- Got it, K — let’s update your **README.md** so it reflects the new helpers (`parseSafeJsonString` and `sanitizeParsedJsonObject`) alongside the loader. This way, developers see clearly how to use the library in **all entry points**: files, URLs, raw strings, and already‑parsed objects (like Express `req.body`).
1
+ # Safe-json-loader
2
2
 
3
- Here’s the polished, industrygrade README update:
3
+ A security‑hardened JSON loader and sanitizer for Node.js that protects against prototype pollution, excessive depth, oversized payloads, unsafe remote JSON, and directorybased DoS attacks.
4
4
 
5
- ---
6
-
7
- # **safe-json-loader**
8
-
9
- 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.
10
- Supports:
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
- ## **Features**
15
+ ## Features
23
16
 
24
- - 🔐 **Security‑first design**
25
- - Strips `__proto__`, `constructor`, and `prototype`
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
- - 🧹 **Helpers for all entry points**
33
- - `loadSafeJsonResources()` load from file, directory, or URL
34
- - `parseSafeJsonString()` sanitize raw JSON strings
35
- - `sanitizeParsedJsonObject()` sanitize already‑parsed objects (e.g. Express `req.body`)
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
- - 🧪 **TypeScript‑first**
38
- - Full type definitions
39
- - Strongly typed loader output
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
- ## **Installation**
33
+ ## Installation
44
34
 
45
35
  ```bash
46
36
  npm install safe-json-loader safe-json-stringify
47
37
  ```
48
38
 
49
- Node.js **18+** required.
39
+ Node.js 18+ required.
50
40
 
51
41
  ---
52
42
 
53
- ## **Usage**
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
- ### **2. Parse and sanitize a raw JSON string**
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(file.data);
131
+ const json = safeStringify(files[0].data);
112
132
  ```
113
133
 
114
134
  ---
115
135
 
116
- ## **Options**
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; // default 100
121
- maxTotalBytes?: number; // default 10 MB
122
- maxFileBytes?: number; // default 2 MB
123
- httpTimeoutMs?: number; // default 8000
124
- maxConcurrency?: number; // default 5
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; // default 50
127
- logger?: JsonLoaderLogger;
128
- onFileLoaded?: (file) => void;
129
- onFileSkipped?: (info) => void;
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
- ## **Returned Structure**
165
+ ---
136
166
 
137
- Each loaded file has the shape:
167
+ ## Returned structure
138
168
 
139
169
  ```ts
140
170
  interface LoadedJsonFile {
141
- name: string; // file name or URL basename
142
- data: JsonValue; // sanitized JSON
143
- __source: string; // absolute path or URL
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
- ## **Security Guarantees**
179
+ ## Security guarantees
150
180
 
151
- - Prototype pollution prevented
152
- - No inherited prototypes
153
- - Depth‑limited
154
- - Size‑limited
155
- - Safe remote fetch
156
- - Concurrency‑limited
157
- - Sanitized before user code touches it
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
- ## **Error Handling**
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
- ## **License**
213
+ ## Advanced examples
184
214
 
185
- MIT
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
- 👉 With this update, your README now documents **all three entry points**: loader, string parser, and object sanitizer.
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
- always sanitize `req.body` before schema validation, always set `maxJsonDepth` in production)
260
+ ---
@@ -1,18 +1,31 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
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.logWith = logWith;
9
- // logger.ts
10
- const safe_json_stringify_1 = __importDefault(require("safe-json-stringify"));
11
- const NOOP_LOGGER = {
12
- log: () => {
13
- // no‑op
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: NOOP_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 logWith(options, level, message, meta) {
65
- options.logger.log(level, message, meta);
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
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":";;;;;;AA4BA,oCAYC;AA4BD,0BAOC;AA3ED,YAAY;AACZ,8EAA4C;AAQ5C,MAAM,WAAW,GAAqB;IACpC,GAAG,EAAE,GAAG,EAAE;QACR,QAAQ;IACV,CAAC;CACF,CAAC;AAEF,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,WAAW;IACnB,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;IACtB,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC;CACxB,CAAC;AAEF,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;;GAEG;AACH,MAAa,uBAAuB;IAClC,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,IAA8B;QAClE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,MAAM,IAAA,6BAAS,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACnE,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,OAAO;gBACV,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACvB,MAAM;YACR,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,OAAO;gBACV,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACvB,MAAM;QACV,CAAC;IACH,CAAC;CACF;AAlBD,0DAkBC;AAED;;GAEG;AACH,SAAgB,OAAO,CACrB,OAAsC,EACtC,KAAe,EACf,OAAe,EACf,IAA8B;IAE9B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":";AAAA,YAAY;;AAmDZ,oCAYC;AAQD,kBAQC;AA7ED,iEAA6E;AAM7E;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG,oCAAgB,CAAC,WAAW,EAAE,CAAC;AAExD;;;GAGG;AACH,MAAM,cAAc,GAAmB;IACrC,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,KAA2B,EAC3B,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.logWith)(opts, "debug", "Loading remote index", {
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.logWith)(opts, "info", "Remote JSON file loaded", {
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.logWith)(opts, "warn", "Skipping local file due to size limit", {
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.logWith)(opts, "info", "Local JSON file loaded", { filePath });
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.logWith)(opts, "debug", "No JSON files found in directory", { dirPath });
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.logWith)(opts, "debug", "Loading local directory", {
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.logWith)(opts, "info", "Remote JSON file loaded", { url: inputStr });
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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"}
@@ -1,10 +1,27 @@
1
1
  // logger.ts
2
- import stringify from "safe-json-stringify";
3
- const NOOP_LOGGER = {
4
- log: () => {
5
- // no‑op
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: NOOP_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 logWith(options, level, message, meta) {
56
- options.logger.log(level, message, meta);
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
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,OAAQ,SAAS,MAAM,qBAAqB,CAAA;AAQ5C,MAAM,WAAW,GAAqB;IACpC,GAAG,EAAE,GAAG,EAAE;QACR,QAAQ;IACV,CAAC;CACF,CAAC;AAEF,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,WAAW;IACnB,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;IACtB,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC;CACxB,CAAC;AAEF,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;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAClC,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,IAA8B;QAClE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACnE,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,OAAO;gBACV,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACvB,MAAM;YACR,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,OAAO;gBACV,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACvB,MAAM;QACV,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CACrB,OAAsC,EACtC,KAAe,EACf,OAAe,EACf,IAA8B;IAE9B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,YAAY;AAEZ,OAAO,EAAkB,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAM7E;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC;AAExD;;;GAGG;AACH,MAAM,cAAc,GAAmB;IACrC,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,KAA2B,EAC3B,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, logWith } from "./logger.js";
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
- logWith(opts, "debug", "Loading remote index", {
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
- logWith(opts, "info", "Remote JSON file loaded", {
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
- logWith(opts, "warn", "Skipping local file due to size limit", {
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
- logWith(opts, "info", "Local JSON file loaded", { filePath });
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
- logWith(opts, "debug", "No JSON files found in directory", { dirPath });
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
- logWith(opts, "debug", "Loading local directory", {
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
- logWith(opts, "info", "Remote JSON file loaded", { url: inputStr });
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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"}
@@ -1,12 +1,16 @@
1
- import type { JsonLoaderLogger, LogLevel, ResolvedSafeJsonLoaderOptions, SafeJsonLoaderOptions } from "./types.js";
2
- export declare function mergeOptions(opts?: SafeJsonLoaderOptions): ResolvedSafeJsonLoaderOptions;
1
+ import { LoggerContract } from "@ktuban/structured-logger";
2
+ import type { ResolvedSafeJsonLoaderOptions, SafeJsonLoaderOptions } from "./types.js";
3
3
  /**
4
- * Simple adapter to allow direct use of console as logger, if desired.
4
+ * Merge user‑provided options with defaults.
5
+ *
6
+ * - Ensures all numeric limits are set.
7
+ * - Ensures logger and hooks are always defined.
5
8
  */
6
- export declare class ConsoleJsonLoaderLogger implements JsonLoaderLogger {
7
- log(level: LogLevel, message: string, meta?: Record<string, unknown>): void;
8
- }
9
+ export declare function mergeOptions(opts?: SafeJsonLoaderOptions): ResolvedSafeJsonLoaderOptions;
9
10
  /**
10
11
  * Helper to log with a specific log level using resolved options.
12
+ *
13
+ * This is intentionally minimal and tolerant:
14
+ * - If a given level is not implemented by the logger, it is silently skipped.
11
15
  */
12
- export declare function logWith(options: ResolvedSafeJsonLoaderOptions, level: LogLevel, message: string, meta?: Record<string, unknown>): void;
16
+ export declare function log(options: ResolvedSafeJsonLoaderOptions, level: keyof LoggerContract, message: string, meta?: unknown): void;
@@ -1,32 +1,28 @@
1
1
  import type { PathLike } from "fs";
2
2
  import type { URL } from "url";
3
+ import { LoggerContract } from "@ktuban/structured-logger";
4
+ /** JSON primitive types. */
3
5
  export type JsonPrimitive = string | number | boolean | null;
6
+ /** JSON object type. */
4
7
  export interface JsonObject {
5
8
  [key: string]: JsonValue;
6
9
  }
10
+ /** JSON array type. */
7
11
  export interface JsonArray extends Array<JsonValue> {
8
12
  }
13
+ /** Any valid JSON value. */
9
14
  export type JsonValue = JsonPrimitive | JsonObject | JsonArray;
15
+ /**
16
+ * A single loaded JSON file, with metadata.
17
+ */
10
18
  export interface LoadedJsonFile {
11
- /** Logical name (basename of path or URL) */
19
+ /** Logical name (basename of path or URL). */
12
20
  name: string;
13
- /** Parsed and security‑sanitized JSON data */
21
+ /** Parsed and security‑sanitized JSON data. */
14
22
  data: JsonValue;
15
- /** Original source (absolute path or URL) */
23
+ /** Original source (absolute path or URL). */
16
24
  __source: string;
17
25
  }
18
- /**
19
- * High‑level logging categories.
20
- * Keeps the core loader decoupled from any concrete logging framework.
21
- */
22
- export type LogLevel = "debug" | "info" | "warn" | "error";
23
- /**
24
- * Abstract logger interface the loader will use.
25
- * Callers can pass a custom implementation (winston/pino/console/etc.).
26
- */
27
- export interface JsonLoaderLogger {
28
- log(level: LogLevel, message: string, meta?: Record<string, unknown>): void;
29
- }
30
26
  /**
31
27
  * Options for safe JSON loading.
32
28
  */
@@ -71,9 +67,9 @@ export interface SafeJsonLoaderOptions {
71
67
  maxJsonDepth?: number;
72
68
  /**
73
69
  * Optional logger implementation.
74
- * If omitted, a no‑op logger is used.
70
+ * If omitted, a default adapter to @ktuban/structured-logger is used.
75
71
  */
76
- logger?: JsonLoaderLogger;
72
+ logger?: LoggerContract;
77
73
  /**
78
74
  * Optional hook invoked after each file is successfully loaded and sanitized.
79
75
  */
@@ -97,7 +93,7 @@ export interface ResolvedSafeJsonLoaderOptions extends SafeJsonLoaderOptions {
97
93
  maxConcurrency: number;
98
94
  looseJsonContentType: boolean;
99
95
  maxJsonDepth: number;
100
- logger: JsonLoaderLogger;
96
+ logger: LoggerContract;
101
97
  onFileLoaded: (file: LoadedJsonFile) => void;
102
98
  onFileSkipped: (info: {
103
99
  source: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ktuban/safe-json-loader",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
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.1.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
+ }