@heroku/js-blanket 0.0.0 → 1.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.
Files changed (82) hide show
  1. package/README.md +4 -1
  2. package/dist/cjs/.tsbuildinfo +1 -0
  3. package/dist/cjs/adapters/logging/generic.js +23 -0
  4. package/dist/cjs/adapters/logging/generic.js.map +1 -0
  5. package/dist/cjs/adapters/logging/generic.test.js +432 -0
  6. package/dist/cjs/adapters/logging/generic.test.js.map +1 -0
  7. package/dist/cjs/core/patterns.js +17 -0
  8. package/dist/cjs/core/patterns.js.map +1 -0
  9. package/dist/cjs/core/presets.js +116 -0
  10. package/dist/cjs/core/presets.js.map +1 -0
  11. package/dist/cjs/core/scrubber.js +260 -0
  12. package/dist/cjs/core/scrubber.js.map +1 -0
  13. package/dist/cjs/core/scrubber.test.js +392 -0
  14. package/dist/cjs/core/scrubber.test.js.map +1 -0
  15. package/dist/cjs/core/types.js +3 -0
  16. package/dist/cjs/core/types.js.map +1 -0
  17. package/dist/cjs/core/types.test.js +326 -0
  18. package/dist/cjs/core/types.test.js.map +1 -0
  19. package/dist/cjs/index.js +16 -0
  20. package/dist/cjs/index.js.map +1 -0
  21. package/dist/cjs/index.test.js +31 -0
  22. package/dist/cjs/index.test.js.map +1 -0
  23. package/dist/cjs/package.json +1 -0
  24. package/dist/esm/.tsbuildinfo +1 -0
  25. package/{src/adapters/logging/generic.ts → dist/esm/adapters/logging/generic.d.ts} +1 -4
  26. package/dist/esm/adapters/logging/generic.js +20 -0
  27. package/dist/esm/adapters/logging/generic.js.map +1 -0
  28. package/dist/esm/adapters/logging/generic.test.d.ts +7 -0
  29. package/dist/esm/adapters/logging/generic.test.js +430 -0
  30. package/dist/esm/adapters/logging/generic.test.js.map +1 -0
  31. package/dist/esm/core/patterns.d.ts +4 -0
  32. package/dist/esm/core/patterns.js +14 -0
  33. package/dist/esm/core/patterns.js.map +1 -0
  34. package/dist/esm/core/presets.d.ts +64 -0
  35. package/{src/core/presets.ts → dist/esm/core/presets.js} +46 -55
  36. package/dist/esm/core/presets.js.map +1 -0
  37. package/dist/esm/core/scrubber.d.ts +131 -0
  38. package/dist/esm/core/scrubber.js +256 -0
  39. package/dist/esm/core/scrubber.js.map +1 -0
  40. package/dist/esm/core/scrubber.test.d.ts +1 -0
  41. package/dist/esm/core/scrubber.test.js +390 -0
  42. package/dist/esm/core/scrubber.test.js.map +1 -0
  43. package/dist/esm/core/types.d.ts +169 -0
  44. package/dist/esm/core/types.js +2 -0
  45. package/dist/esm/core/types.js.map +1 -0
  46. package/dist/esm/core/types.test.d.ts +9 -0
  47. package/dist/esm/core/types.test.js +324 -0
  48. package/dist/esm/core/types.test.js.map +1 -0
  49. package/{src/index.ts → dist/esm/index.d.ts} +0 -3
  50. package/dist/esm/index.js +7 -0
  51. package/dist/esm/index.js.map +1 -0
  52. package/dist/esm/index.test.d.ts +1 -0
  53. package/dist/esm/index.test.js +29 -0
  54. package/dist/esm/index.test.js.map +1 -0
  55. package/package.json +45 -47
  56. package/.c8rc.json +0 -11
  57. package/.editorconfig +0 -11
  58. package/.github/PULL_REQUEST_TEMPLATE.md +0 -41
  59. package/.github/copilot-instructions.md +0 -117
  60. package/.github/workflows/ci.yml +0 -25
  61. package/.husky/pre-commit +0 -1
  62. package/.lintstagedrc.json +0 -4
  63. package/.tool-versions +0 -1
  64. package/CODEOWNERS +0 -8
  65. package/CODE_OF_CONDUCT.md +0 -111
  66. package/CONTRIBUTING.md +0 -123
  67. package/SECURITY.md +0 -8
  68. package/docs/examples/logging-integration.md +0 -736
  69. package/eslint.config.mjs +0 -108
  70. package/prettier.config.mjs +0 -10
  71. package/scripts/test-setup.mjs +0 -24
  72. package/src/adapters/logging/generic.test.ts +0 -531
  73. package/src/core/patterns.ts +0 -22
  74. package/src/core/scrubber.test.ts +0 -465
  75. package/src/core/scrubber.ts +0 -284
  76. package/src/core/types.test.ts +0 -516
  77. package/src/core/types.ts +0 -176
  78. package/src/index.test.ts +0 -41
  79. package/tsconfig.cjs.json +0 -12
  80. package/tsconfig.esm.json +0 -12
  81. package/tsconfig.json +0 -32
  82. package/tsconfig.test.json +0 -9
@@ -0,0 +1,392 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mocha_1 = require("mocha");
4
+ const chai_1 = require("chai");
5
+ const scrubber_js_1 = require("./scrubber.js");
6
+ (0, mocha_1.describe)('Scrubber', () => {
7
+ (0, mocha_1.describe)('Field-based scrubbing', () => {
8
+ (0, mocha_1.it)('scrubs sensitive fields at any depth', () => {
9
+ const scrubber = new scrubber_js_1.Scrubber({
10
+ fields: ['access_token'],
11
+ });
12
+ const input = {
13
+ user: {
14
+ profile: {
15
+ settings: {
16
+ auth: { access_token: 'secret123' },
17
+ },
18
+ },
19
+ },
20
+ };
21
+ const { data } = scrubber.scrub(input);
22
+ (0, chai_1.expect)(data.user.profile.settings.auth.access_token).to.equal('[SCRUBBED]');
23
+ });
24
+ (0, mocha_1.it)('handles case-insensitive field matching', () => {
25
+ const scrubber = new scrubber_js_1.Scrubber({
26
+ fields: ['password'],
27
+ });
28
+ const input = {
29
+ Password: 'secret1',
30
+ PASSWORD: 'secret2',
31
+ password: 'secret3',
32
+ };
33
+ const { data } = scrubber.scrub(input);
34
+ (0, chai_1.expect)(data.Password).to.equal('[SCRUBBED]');
35
+ (0, chai_1.expect)(data.PASSWORD).to.equal('[SCRUBBED]');
36
+ (0, chai_1.expect)(data.password).to.equal('[SCRUBBED]');
37
+ });
38
+ (0, mocha_1.it)('supports regex field patterns', () => {
39
+ const scrubber = new scrubber_js_1.Scrubber({
40
+ fields: [/api[-_]?key/i], // Matches api_key, api-key, apikey (case insensitive)
41
+ });
42
+ const input = {
43
+ user_api_key: 'secret',
44
+ API_KEY_V2: 'secret',
45
+ myApiKeyHere: 'secret',
46
+ };
47
+ const { data } = scrubber.scrub(input);
48
+ (0, chai_1.expect)(data.user_api_key).to.equal('[SCRUBBED]');
49
+ (0, chai_1.expect)(data.API_KEY_V2).to.equal('[SCRUBBED]');
50
+ (0, chai_1.expect)(data.myApiKeyHere).to.equal('[SCRUBBED]');
51
+ });
52
+ });
53
+ (0, mocha_1.describe)('Path-based scrubbing', () => {
54
+ (0, mocha_1.it)('scrubs specific paths only', () => {
55
+ const scrubber = new scrubber_js_1.Scrubber({
56
+ paths: ['user.profile.email'],
57
+ });
58
+ const input = {
59
+ user: {
60
+ profile: { email: 'bob@example.com', name: 'Bob' },
61
+ settings: { email: 'notifications@example.com' },
62
+ },
63
+ };
64
+ const { data } = scrubber.scrub(input);
65
+ (0, chai_1.expect)(data.user.profile.email).to.equal('[SCRUBBED]');
66
+ (0, chai_1.expect)(data.user.settings.email).to.equal('notifications@example.com');
67
+ });
68
+ (0, mocha_1.it)('scrubs array items by index', () => {
69
+ const scrubber = new scrubber_js_1.Scrubber({
70
+ paths: ['users[0].password'],
71
+ });
72
+ const input = {
73
+ users: [
74
+ { name: 'bob', password: 'secret1' },
75
+ { name: 'alice', password: 'secret2' },
76
+ ],
77
+ };
78
+ const { data } = scrubber.scrub(input);
79
+ (0, chai_1.expect)(data.users?.[0]?.password).to.equal('[SCRUBBED]');
80
+ (0, chai_1.expect)(data.users?.[1]?.password).to.equal('secret2');
81
+ });
82
+ });
83
+ (0, mocha_1.describe)('Pattern-based scrubbing', () => {
84
+ (0, mocha_1.it)('scrubs SSN patterns in strings', () => {
85
+ const scrubber = new scrubber_js_1.Scrubber({
86
+ patterns: [/\b\d{3}-\d{2}-\d{4}\b/g],
87
+ });
88
+ const input = { message: 'User SSN is 123-45-6789' };
89
+ const { data } = scrubber.scrub(input);
90
+ (0, chai_1.expect)(data.message).to.contain('[SCRUBBED]');
91
+ (0, chai_1.expect)(data.message).not.to.contain('123-45-6789');
92
+ });
93
+ (0, mocha_1.it)('scrubs email patterns in strings', () => {
94
+ const scrubber = new scrubber_js_1.Scrubber({
95
+ patterns: [/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g],
96
+ });
97
+ const input = { log: 'Auth failed for user@example.com' };
98
+ const { data } = scrubber.scrub(input);
99
+ (0, chai_1.expect)(data.log).to.contain('[SCRUBBED]');
100
+ (0, chai_1.expect)(data.log).not.to.contain('user@example.com');
101
+ });
102
+ (0, mocha_1.it)('scrubs multiple patterns in same string', () => {
103
+ const scrubber = new scrubber_js_1.Scrubber({
104
+ patterns: [
105
+ /\b\d{3}-\d{2}-\d{4}\b/g, // SSN
106
+ /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g, // Email
107
+ ],
108
+ });
109
+ const input = {
110
+ log: 'User bob@example.com has SSN 123-45-6789',
111
+ };
112
+ const { data } = scrubber.scrub(input);
113
+ (0, chai_1.expect)(data.log).not.to.contain('bob@example.com');
114
+ (0, chai_1.expect)(data.log).not.to.contain('123-45-6789');
115
+ });
116
+ });
117
+ (0, mocha_1.describe)('Array handling', () => {
118
+ (0, mocha_1.it)('scrubs fields across all array items', () => {
119
+ const scrubber = new scrubber_js_1.Scrubber({
120
+ fields: ['password'],
121
+ });
122
+ const users = [
123
+ { name: 'bob', password: 'secret' },
124
+ { name: 'alice', password: 'hidden' },
125
+ ];
126
+ const { data } = scrubber.scrub(users);
127
+ (0, chai_1.expect)(data[0]?.password).to.equal('[SCRUBBED]');
128
+ (0, chai_1.expect)(data[1]?.password).to.equal('[SCRUBBED]');
129
+ (0, chai_1.expect)(data[0]?.name).to.equal('bob');
130
+ (0, chai_1.expect)(data[1]?.name).to.equal('alice');
131
+ });
132
+ (0, mocha_1.it)('handles nested arrays', () => {
133
+ const scrubber = new scrubber_js_1.Scrubber({
134
+ fields: ['api_key'],
135
+ });
136
+ const input = {
137
+ teams: [
138
+ {
139
+ members: [
140
+ { name: 'bob', api_key: 'secret1' },
141
+ { name: 'alice', api_key: 'secret2' },
142
+ ],
143
+ },
144
+ ],
145
+ };
146
+ const { data } = scrubber.scrub(input);
147
+ (0, chai_1.expect)(data.teams?.[0]?.members?.[0]?.api_key).to.equal('[SCRUBBED]');
148
+ (0, chai_1.expect)(data.teams?.[0]?.members?.[1]?.api_key).to.equal('[SCRUBBED]');
149
+ });
150
+ });
151
+ (0, mocha_1.describe)('Circular reference handling', () => {
152
+ (0, mocha_1.it)('handles circular references without crashing', () => {
153
+ const scrubber = new scrubber_js_1.Scrubber({ fields: [] });
154
+ const input = { name: 'test' };
155
+ input.self = input;
156
+ const { data } = scrubber.scrub(input);
157
+ (0, chai_1.expect)(data.self).to.equal('[Circular Reference]');
158
+ });
159
+ (0, mocha_1.it)('scrubs fields before detecting circular references', () => {
160
+ const scrubber = new scrubber_js_1.Scrubber({ fields: ['password'] });
161
+ const input = { name: 'test', password: 'secret' };
162
+ input.self = input;
163
+ const { data } = scrubber.scrub(input);
164
+ (0, chai_1.expect)(data.password).to.equal('[SCRUBBED]');
165
+ (0, chai_1.expect)(data.self).to.equal('[Circular Reference]');
166
+ });
167
+ (0, mocha_1.it)('handles nested circular references', () => {
168
+ const scrubber = new scrubber_js_1.Scrubber({ fields: [] });
169
+ const input = { name: 'test', nested: { level: 1 } };
170
+ input.self = input;
171
+ input.nested.parent = input;
172
+ const { data } = scrubber.scrub(input);
173
+ (0, chai_1.expect)(data.self).to.equal('[Circular Reference]');
174
+ (0, chai_1.expect)(data.nested.parent).to.equal('[Circular Reference]');
175
+ });
176
+ });
177
+ (0, mocha_1.describe)('Combined modes', () => {
178
+ (0, mocha_1.it)('applies field + path + pattern scrubbing together', () => {
179
+ const scrubber = new scrubber_js_1.Scrubber({
180
+ fields: ['api_key'],
181
+ paths: ['user.email'],
182
+ patterns: [/\b\d{3}-\d{2}-\d{4}\b/g],
183
+ });
184
+ const input = {
185
+ user: {
186
+ email: 'bob@example.com', // Path-based
187
+ api_key: 'secret-key-123', // Field-based
188
+ },
189
+ log: 'SSN: 123-45-6789', // Pattern-based
190
+ nested: {
191
+ service: {
192
+ api_key: 'another-secret', // Field-based (any depth)
193
+ },
194
+ },
195
+ };
196
+ const { data, scrubbedPaths } = scrubber.scrub(input);
197
+ (0, chai_1.expect)(data.user?.email).to.equal('[SCRUBBED]');
198
+ (0, chai_1.expect)(data.user?.api_key).to.equal('[SCRUBBED]');
199
+ (0, chai_1.expect)(data.log).not.to.contain('123-45-6789');
200
+ (0, chai_1.expect)(data.nested?.service?.api_key).to.equal('[SCRUBBED]');
201
+ (0, chai_1.expect)(scrubbedPaths.length).to.be.greaterThan(0);
202
+ });
203
+ });
204
+ (0, mocha_1.describe)('Scrub result metadata', () => {
205
+ (0, mocha_1.it)('tracks scrubbed paths', () => {
206
+ const scrubber = new scrubber_js_1.Scrubber({
207
+ fields: ['password'],
208
+ paths: ['user.email'],
209
+ });
210
+ const input = {
211
+ user: { email: 'test@example.com', password: 'secret' },
212
+ };
213
+ const result = scrubber.scrub(input);
214
+ (0, chai_1.expect)(result.scrubbed).to.be.true;
215
+ (0, chai_1.expect)(result.scrubbedPaths).to.include.members([
216
+ 'user.email',
217
+ 'user.password',
218
+ ]);
219
+ });
220
+ (0, mocha_1.it)('reports scrubbed=false when nothing was scrubbed', () => {
221
+ const scrubber = new scrubber_js_1.Scrubber({
222
+ fields: ['password'],
223
+ });
224
+ const input = { name: 'Bob', age: 30 };
225
+ const result = scrubber.scrub(input);
226
+ (0, chai_1.expect)(result.scrubbed).to.be.false;
227
+ (0, chai_1.expect)(result.scrubbedPaths).to.have.length(0);
228
+ });
229
+ });
230
+ (0, mocha_1.describe)('Immutability', () => {
231
+ (0, mocha_1.it)('does not mutate original object', () => {
232
+ const scrubber = new scrubber_js_1.Scrubber({
233
+ fields: ['password'],
234
+ });
235
+ const input = { user: { password: 'secret', name: 'Bob' } };
236
+ const original = JSON.stringify(input);
237
+ scrubber.scrub(input);
238
+ (0, chai_1.expect)(JSON.stringify(input)).to.equal(original);
239
+ (0, chai_1.expect)(input.user.password).to.equal('secret');
240
+ });
241
+ });
242
+ (0, mocha_1.describe)('Custom replacement text', () => {
243
+ (0, mocha_1.it)('uses custom replacement string', () => {
244
+ const scrubber = new scrubber_js_1.Scrubber({
245
+ fields: ['password'],
246
+ replacement: '***REDACTED***',
247
+ });
248
+ const input = { password: 'secret' };
249
+ const { data } = scrubber.scrub(input);
250
+ (0, chai_1.expect)(data.password).to.equal('***REDACTED***');
251
+ });
252
+ });
253
+ (0, mocha_1.describe)('Edge cases', () => {
254
+ (0, mocha_1.it)('handles null values', () => {
255
+ const scrubber = new scrubber_js_1.Scrubber({ fields: ['password'] });
256
+ const input = { user: null };
257
+ const { data } = scrubber.scrub(input);
258
+ (0, chai_1.expect)(data.user).to.be.null;
259
+ });
260
+ (0, mocha_1.it)('handles undefined values', () => {
261
+ const scrubber = new scrubber_js_1.Scrubber({ fields: ['password'] });
262
+ const input = { user: undefined };
263
+ const { data } = scrubber.scrub(input);
264
+ (0, chai_1.expect)(data.user).to.be.undefined;
265
+ });
266
+ (0, mocha_1.it)('handles empty objects', () => {
267
+ const scrubber = new scrubber_js_1.Scrubber({ fields: ['password'] });
268
+ const input = {};
269
+ const { data } = scrubber.scrub(input);
270
+ (0, chai_1.expect)(data).to.deep.equal({});
271
+ });
272
+ (0, mocha_1.it)('handles empty arrays', () => {
273
+ const scrubber = new scrubber_js_1.Scrubber({ fields: ['password'] });
274
+ const input = [];
275
+ const { data } = scrubber.scrub(input);
276
+ (0, chai_1.expect)(data).to.deep.equal([]);
277
+ });
278
+ (0, mocha_1.it)('handles primitive values', () => {
279
+ const scrubber = new scrubber_js_1.Scrubber({ fields: ['password'] });
280
+ (0, chai_1.expect)(scrubber.scrub('test').data).to.equal('test');
281
+ (0, chai_1.expect)(scrubber.scrub(123).data).to.equal(123);
282
+ (0, chai_1.expect)(scrubber.scrub(true).data).to.equal(true);
283
+ });
284
+ (0, mocha_1.it)('scrubs entire array element by index path', () => {
285
+ // Tests lines 76-78: scrubbing entire array element, not just a field
286
+ const scrubber = new scrubber_js_1.Scrubber({
287
+ paths: ['users[0]', 'items[1]'], // Scrub specific array elements by full path
288
+ });
289
+ const input = {
290
+ users: [
291
+ { name: 'bob', email: 'bob@example.com' }, // Should be scrubbed entirely
292
+ { name: 'alice', email: 'alice@example.com' }, // Not scrubbed
293
+ ],
294
+ items: [
295
+ { id: 1, value: 'keep' }, // Not scrubbed
296
+ { id: 2, value: 'scrub' }, // Should be scrubbed entirely
297
+ ],
298
+ };
299
+ const { data } = scrubber.scrub(input);
300
+ (0, chai_1.expect)(data.users?.[0]).to.equal('[SCRUBBED]');
301
+ (0, chai_1.expect)(data.users?.[1]?.name).to.equal('alice'); // Not scrubbed
302
+ (0, chai_1.expect)(data.items?.[0]?.value).to.equal('keep'); // Not scrubbed
303
+ (0, chai_1.expect)(data.items?.[1]).to.equal('[SCRUBBED]'); // Entire element scrubbed
304
+ });
305
+ (0, mocha_1.it)('scrubs array index across all arrays', () => {
306
+ // Tests that index-only paths (e.g., '0') scrub that index in ALL arrays
307
+ const scrubber = new scrubber_js_1.Scrubber({
308
+ paths: ['1'], // Scrub index 1 of ANY array
309
+ });
310
+ const input = {
311
+ users: [
312
+ { name: 'bob' }, // Index 0 - not scrubbed
313
+ { name: 'alice' }, // Index 1 - scrubbed
314
+ { name: 'charlie' }, // Index 2 - not scrubbed
315
+ ],
316
+ teams: [
317
+ { id: 'team-a' }, // Index 0 - not scrubbed
318
+ { id: 'team-b' }, // Index 1 - scrubbed
319
+ ],
320
+ };
321
+ const { data } = scrubber.scrub(input);
322
+ (0, chai_1.expect)(data.users?.[0]?.name).to.equal('bob');
323
+ (0, chai_1.expect)(data.users?.[1]).to.equal('[SCRUBBED]'); // Scrubbed by index
324
+ (0, chai_1.expect)(data.users?.[2]?.name).to.equal('charlie');
325
+ (0, chai_1.expect)(data.teams?.[0]?.id).to.equal('team-a');
326
+ (0, chai_1.expect)(data.teams?.[1]).to.equal('[SCRUBBED]'); // Scrubbed by index
327
+ });
328
+ (0, mocha_1.it)('handles deeply nested objects (10+ levels)', () => {
329
+ // Validates discovery doc requirement: "Scrubs nested objects 10+ levels deep"
330
+ const scrubber = new scrubber_js_1.Scrubber({
331
+ fields: ['secret'],
332
+ });
333
+ // Build a 15-level deep object
334
+ const input = { level: 1 };
335
+ let current = input;
336
+ for (let i = 2; i <= 15; i++) {
337
+ current.nested = { level: i };
338
+ current = current.nested;
339
+ }
340
+ // Add secret at the deepest level
341
+ current.secret = 'deep-secret';
342
+ current.public = 'visible';
343
+ const { data } = scrubber.scrub(input);
344
+ // Navigate to the deepest level
345
+ let deepest = data;
346
+ for (let i = 1; i < 15; i++) {
347
+ (0, chai_1.expect)(deepest.level).to.equal(i);
348
+ deepest = deepest.nested;
349
+ }
350
+ // Verify scrubbing worked at 15 levels deep
351
+ (0, chai_1.expect)(deepest.level).to.equal(15);
352
+ (0, chai_1.expect)(deepest.secret).to.equal('[SCRUBBED]');
353
+ (0, chai_1.expect)(deepest.public).to.equal('visible');
354
+ });
355
+ (0, mocha_1.it)('handles circular references in deep clone fallback (arrays)', () => {
356
+ // Tests lines 166-172: circular reference deep clone for arrays
357
+ const scrubber = new scrubber_js_1.Scrubber({
358
+ fields: ['password'],
359
+ });
360
+ // Create an object with circular references that will trigger the fallback clone
361
+ const parent = { name: 'parent', password: 'secret' };
362
+ const child1 = { name: 'child1', items: [] };
363
+ const child2 = { name: 'child2', password: 'hidden' };
364
+ // Create circular reference in an array
365
+ child1.items = [child2, parent]; // Array contains parent
366
+ parent.children = [child1]; // Parent contains array with circular ref
367
+ const { data } = scrubber.scrub(parent);
368
+ // Verify scrubbing happened
369
+ (0, chai_1.expect)(data.password).to.equal('[SCRUBBED]');
370
+ (0, chai_1.expect)(data.children?.[0]?.name).to.equal('child1');
371
+ // Verify circular reference was handled in the array
372
+ (0, chai_1.expect)(data.children?.[0]?.items?.[1]).to.equal('[Circular Reference]');
373
+ });
374
+ (0, mocha_1.it)('handles arrays with circular self-reference', () => {
375
+ // Additional test for circular array deep cloning
376
+ const scrubber = new scrubber_js_1.Scrubber({
377
+ fields: ['token'],
378
+ });
379
+ const obj = {
380
+ token: 'secret-token',
381
+ list: [{ name: 'item1' }],
382
+ };
383
+ // Array references the parent object
384
+ obj.list.push(obj);
385
+ const { data } = scrubber.scrub(obj);
386
+ (0, chai_1.expect)(data.token).to.equal('[SCRUBBED]');
387
+ (0, chai_1.expect)(data.list?.[0]?.name).to.equal('item1');
388
+ (0, chai_1.expect)(data.list?.[1]).to.equal('[Circular Reference]');
389
+ });
390
+ });
391
+ });
392
+ //# sourceMappingURL=scrubber.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrubber.test.js","sourceRoot":"","sources":["../../../src/core/scrubber.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":""}