field-redactor 1.6.1 → 1.6.3
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/.github/workflows/publish.yml +55 -0
- package/CHANGELOG.md +32 -0
- package/CONTRIBUTING.md +26 -3
- package/README.md +3 -2
- package/dist/api/fieldRedactor.d.ts +4 -4
- package/dist/api/fieldRedactor.js +8 -8
- package/dist/api/fieldRedactor.js.map +1 -1
- package/dist/api/fieldRedactorConfigBuilder.d.ts +3 -3
- package/dist/api/fieldRedactorConfigBuilder.d.ts.map +1 -1
- package/dist/api/fieldRedactorConfigBuilder.js +7 -9
- package/dist/api/fieldRedactorConfigBuilder.js.map +1 -1
- package/dist/api/fieldRedactorDeps.d.ts +2 -2
- package/dist/api/fieldRedactorDeps.d.ts.map +1 -1
- package/dist/api/fieldRedactorDeps.js +6 -6
- package/dist/api/fieldRedactorDeps.js.map +1 -1
- package/dist/config/configValidator.d.ts.map +1 -1
- package/dist/config/configValidator.js +16 -0
- package/dist/config/configValidator.js.map +1 -1
- package/dist/config/presets.d.ts +2 -2
- package/dist/config/presets.js +1 -1
- package/dist/config/redactionRules.d.ts +10 -5
- package/dist/config/redactionRules.d.ts.map +1 -1
- package/dist/config/redactionRules.js +16 -11
- package/dist/config/redactionRules.js.map +1 -1
- package/dist/engine/objectRedactorHelpers.js +2 -2
- package/dist/engine/objectRedactorHelpers.js.map +1 -1
- package/dist/engine/objectRedactorTraversal.d.ts +1 -0
- package/dist/engine/objectRedactorTraversal.d.ts.map +1 -1
- package/dist/engine/objectRedactorTraversal.js +1 -0
- package/dist/engine/objectRedactorTraversal.js.map +1 -1
- package/dist/rules/ruleResolver.js +2 -2
- package/dist/rules/ruleResolver.js.map +1 -1
- package/dist/rules/secretManager.d.ts +5 -5
- package/dist/rules/secretManager.d.ts.map +1 -1
- package/dist/rules/secretManager.js +13 -8
- package/dist/rules/secretManager.js.map +1 -1
- package/dist/types.d.ts +39 -21
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -4
- package/dist/types.js.map +1 -1
- package/docs/guides/anti-patterns.md +1 -1
- package/docs/guides/metadata-redaction.md +2 -2
- package/docs/guides/migration-1.5-to-1.6.md +6 -4
- package/docs/guides/secret-key-modes.md +9 -14
- package/docs/reference/config.md +2 -2
- package/docs/release-notes/README.md +5 -1
- package/docs/release-notes/v1.6.2.md +26 -0
- package/docs/release-notes/v1.6.3.md +25 -0
- package/examples/README.md +14 -0
- package/examples/dry-run.ts +21 -0
- package/examples/logging-metadata.ts +18 -0
- package/examples/path-rules.ts +23 -0
- package/examples/value-patterns.ts +16 -0
- package/package.json +1 -1
- package/dist/arrayRedaction.d.ts +0 -12
- package/dist/arrayRedaction.d.ts.map +0 -1
- package/dist/arrayRedaction.js +0 -70
- package/dist/arrayRedaction.js.map +0 -1
- package/dist/configValidator.d.ts +0 -9
- package/dist/configValidator.d.ts.map +0 -1
- package/dist/configValidator.js +0 -77
- package/dist/configValidator.js.map +0 -1
- package/dist/copyOnWriteHelpers.d.ts +0 -20
- package/dist/copyOnWriteHelpers.d.ts.map +0 -1
- package/dist/copyOnWriteHelpers.js +0 -58
- package/dist/copyOnWriteHelpers.js.map +0 -1
- package/dist/customObjectFieldHandler.d.ts +0 -21
- package/dist/customObjectFieldHandler.d.ts.map +0 -1
- package/dist/customObjectFieldHandler.js +0 -159
- package/dist/customObjectFieldHandler.js.map +0 -1
- package/dist/customObjectManager.d.ts +0 -28
- package/dist/customObjectManager.d.ts.map +0 -1
- package/dist/customObjectManager.js +0 -60
- package/dist/customObjectManager.js.map +0 -1
- package/dist/customObjectSchemas.d.ts +0 -7
- package/dist/customObjectSchemas.d.ts.map +0 -1
- package/dist/customObjectSchemas.js +0 -35
- package/dist/customObjectSchemas.js.map +0 -1
- package/dist/dryRun.d.ts +0 -9
- package/dist/dryRun.d.ts.map +0 -1
- package/dist/dryRun.js +0 -75
- package/dist/dryRun.js.map +0 -1
- package/dist/dryRunAttribution.d.ts +0 -10
- package/dist/dryRunAttribution.d.ts.map +0 -1
- package/dist/dryRunAttribution.js +0 -14
- package/dist/dryRunAttribution.js.map +0 -1
- package/dist/dryrun/dryRunAttribution.d.ts +0 -10
- package/dist/dryrun/dryRunAttribution.d.ts.map +0 -1
- package/dist/dryrun/dryRunAttribution.js +0 -14
- package/dist/dryrun/dryRunAttribution.js.map +0 -1
- package/dist/engine/objectRedactor.d.ts +0 -18
- package/dist/engine/objectRedactor.d.ts.map +0 -1
- package/dist/engine/objectRedactor.js +0 -38
- package/dist/engine/objectRedactor.js.map +0 -1
- package/dist/engine/objectRedactorSync.d.ts +0 -2
- package/dist/engine/objectRedactorSync.d.ts.map +0 -1
- package/dist/engine/objectRedactorSync.js +0 -7
- package/dist/engine/objectRedactorSync.js.map +0 -1
- package/dist/fieldDisposition.d.ts +0 -3
- package/dist/fieldDisposition.d.ts.map +0 -1
- package/dist/fieldDisposition.js +0 -6
- package/dist/fieldDisposition.js.map +0 -1
- package/dist/fieldRedactor.d.ts +0 -51
- package/dist/fieldRedactor.d.ts.map +0 -1
- package/dist/fieldRedactor.js +0 -165
- package/dist/fieldRedactor.js.map +0 -1
- package/dist/fieldRedactorConfigBuilder.d.ts +0 -55
- package/dist/fieldRedactorConfigBuilder.d.ts.map +0 -1
- package/dist/fieldRedactorConfigBuilder.js +0 -111
- package/dist/fieldRedactorConfigBuilder.js.map +0 -1
- package/dist/fieldRedactorDeps.d.ts +0 -19
- package/dist/fieldRedactorDeps.d.ts.map +0 -1
- package/dist/fieldRedactorDeps.js +0 -43
- package/dist/fieldRedactorDeps.js.map +0 -1
- package/dist/jsonWalk.d.ts +0 -11
- package/dist/jsonWalk.d.ts.map +0 -1
- package/dist/jsonWalk.js +0 -55
- package/dist/jsonWalk.js.map +0 -1
- package/dist/maybeAsync.d.ts +0 -7
- package/dist/maybeAsync.d.ts.map +0 -1
- package/dist/maybeAsync.js +0 -56
- package/dist/maybeAsync.js.map +0 -1
- package/dist/objectRedactor.d.ts +0 -18
- package/dist/objectRedactor.d.ts.map +0 -1
- package/dist/objectRedactor.js +0 -38
- package/dist/objectRedactor.js.map +0 -1
- package/dist/objectRedactorCow.d.ts +0 -35
- package/dist/objectRedactorCow.d.ts.map +0 -1
- package/dist/objectRedactorCow.js +0 -300
- package/dist/objectRedactorCow.js.map +0 -1
- package/dist/objectRedactorCustomObject.d.ts +0 -28
- package/dist/objectRedactorCustomObject.d.ts.map +0 -1
- package/dist/objectRedactorCustomObject.js +0 -57
- package/dist/objectRedactorCustomObject.js.map +0 -1
- package/dist/objectRedactorHelpers.d.ts +0 -9
- package/dist/objectRedactorHelpers.d.ts.map +0 -1
- package/dist/objectRedactorHelpers.js +0 -61
- package/dist/objectRedactorHelpers.js.map +0 -1
- package/dist/objectRedactorMutation.d.ts +0 -10
- package/dist/objectRedactorMutation.d.ts.map +0 -1
- package/dist/objectRedactorMutation.js +0 -89
- package/dist/objectRedactorMutation.js.map +0 -1
- package/dist/objectRedactorSync.d.ts +0 -2
- package/dist/objectRedactorSync.d.ts.map +0 -1
- package/dist/objectRedactorSync.js +0 -7
- package/dist/objectRedactorSync.js.map +0 -1
- package/dist/objectRedactorTraversal.d.ts +0 -41
- package/dist/objectRedactorTraversal.d.ts.map +0 -1
- package/dist/objectRedactorTraversal.js +0 -201
- package/dist/objectRedactorTraversal.js.map +0 -1
- package/dist/pathParsing.d.ts +0 -11
- package/dist/pathParsing.d.ts.map +0 -1
- package/dist/pathParsing.js +0 -53
- package/dist/pathParsing.js.map +0 -1
- package/dist/pathRuleMatcher.d.ts +0 -19
- package/dist/pathRuleMatcher.d.ts.map +0 -1
- package/dist/pathRuleMatcher.js +0 -42
- package/dist/pathRuleMatcher.js.map +0 -1
- package/dist/presets.d.ts +0 -22
- package/dist/presets.d.ts.map +0 -1
- package/dist/presets.js +0 -50
- package/dist/presets.js.map +0 -1
- package/dist/primitiveRedactor.d.ts +0 -33
- package/dist/primitiveRedactor.d.ts.map +0 -1
- package/dist/primitiveRedactor.js +0 -75
- package/dist/primitiveRedactor.js.map +0 -1
- package/dist/redactionRules.d.ts +0 -22
- package/dist/redactionRules.d.ts.map +0 -1
- package/dist/redactionRules.js +0 -74
- package/dist/redactionRules.js.map +0 -1
- package/dist/regexUtils.d.ts +0 -3
- package/dist/regexUtils.d.ts.map +0 -1
- package/dist/regexUtils.js +0 -8
- package/dist/regexUtils.js.map +0 -1
- package/dist/ruleResolver.d.ts +0 -65
- package/dist/ruleResolver.d.ts.map +0 -1
- package/dist/ruleResolver.js +0 -193
- package/dist/ruleResolver.js.map +0 -1
- package/dist/rules/fieldDisposition.d.ts +0 -3
- package/dist/rules/fieldDisposition.d.ts.map +0 -1
- package/dist/rules/fieldDisposition.js +0 -6
- package/dist/rules/fieldDisposition.js.map +0 -1
- package/dist/secretManager.d.ts +0 -32
- package/dist/secretManager.d.ts.map +0 -1
- package/dist/secretManager.js +0 -85
- package/dist/secretManager.js.map +0 -1
- package/dist/traversalServices.d.ts +0 -21
- package/dist/traversalServices.d.ts.map +0 -1
- package/dist/traversalServices.js +0 -3
- package/dist/traversalServices.js.map +0 -1
- package/dist/valuePatternMatcher.d.ts +0 -15
- package/dist/valuePatternMatcher.d.ts.map +0 -1
- package/dist/valuePatternMatcher.js +0 -30
- package/dist/valuePatternMatcher.js.map +0 -1
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createContainerMutation = void 0;
|
|
4
|
-
const createObjectCopyState = (source) => ({
|
|
5
|
-
source,
|
|
6
|
-
current: source,
|
|
7
|
-
copied: false
|
|
8
|
-
});
|
|
9
|
-
const createArrayCopyState = (source) => ({
|
|
10
|
-
source,
|
|
11
|
-
current: source,
|
|
12
|
-
copied: false
|
|
13
|
-
});
|
|
14
|
-
const finishObjectCopy = (state) => state.copied ? state.current : state.source;
|
|
15
|
-
const finishArrayCopy = (state) => state.copied ? state.current : state.source;
|
|
16
|
-
const ensureObjectCopy = (state) => {
|
|
17
|
-
if (!state.copied) {
|
|
18
|
-
state.current = Object.assign({}, state.source);
|
|
19
|
-
state.copied = true;
|
|
20
|
-
}
|
|
21
|
-
return state.current;
|
|
22
|
-
};
|
|
23
|
-
const ensureArrayCopy = (state) => {
|
|
24
|
-
if (!state.copied) {
|
|
25
|
-
state.current = state.source.slice();
|
|
26
|
-
state.copied = true;
|
|
27
|
-
}
|
|
28
|
-
return state.current;
|
|
29
|
-
};
|
|
30
|
-
const createContainerMutation = (source, copyOnWrite) => {
|
|
31
|
-
if (!copyOnWrite) {
|
|
32
|
-
const record = source;
|
|
33
|
-
return {
|
|
34
|
-
copyOnWrite: false,
|
|
35
|
-
source,
|
|
36
|
-
set(key, value) {
|
|
37
|
-
record[key] = value;
|
|
38
|
-
},
|
|
39
|
-
remove(key) {
|
|
40
|
-
delete record[key];
|
|
41
|
-
},
|
|
42
|
-
result() {
|
|
43
|
-
return source;
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
if (Array.isArray(source)) {
|
|
48
|
-
const state = createArrayCopyState(source);
|
|
49
|
-
return {
|
|
50
|
-
copyOnWrite: true,
|
|
51
|
-
source,
|
|
52
|
-
set(key, value) {
|
|
53
|
-
const index = Number(key);
|
|
54
|
-
if (source[index] !== value) {
|
|
55
|
-
ensureArrayCopy(state)[index] = value;
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
remove(key) {
|
|
59
|
-
const index = Number(key);
|
|
60
|
-
if (index < source.length) {
|
|
61
|
-
delete ensureArrayCopy(state)[index];
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
result() {
|
|
65
|
-
return finishArrayCopy(state);
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
const state = createObjectCopyState(source);
|
|
70
|
-
return {
|
|
71
|
-
copyOnWrite: true,
|
|
72
|
-
source,
|
|
73
|
-
set(key, value) {
|
|
74
|
-
if (source[key] !== value) {
|
|
75
|
-
ensureObjectCopy(state)[key] = value;
|
|
76
|
-
}
|
|
77
|
-
},
|
|
78
|
-
remove(key) {
|
|
79
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
80
|
-
delete ensureObjectCopy(state)[key];
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
|
-
result() {
|
|
84
|
-
return finishObjectCopy(state);
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
};
|
|
88
|
-
exports.createContainerMutation = createContainerMutation;
|
|
89
|
-
//# sourceMappingURL=objectRedactorMutation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"objectRedactorMutation.js","sourceRoot":"","sources":["../src/objectRedactorMutation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"objectRedactorSync.d.ts","sourceRoot":"","sources":["../src/objectRedactorSync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,IAAI,2BAA2B,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObjectRedactorSyncTraversal = exports.ObjectRedactorTraversal = void 0;
|
|
4
|
-
var objectRedactorTraversal_1 = require("./objectRedactorTraversal");
|
|
5
|
-
Object.defineProperty(exports, "ObjectRedactorTraversal", { enumerable: true, get: function () { return objectRedactorTraversal_1.ObjectRedactorTraversal; } });
|
|
6
|
-
Object.defineProperty(exports, "ObjectRedactorSyncTraversal", { enumerable: true, get: function () { return objectRedactorTraversal_1.ObjectRedactorTraversal; } });
|
|
7
|
-
//# sourceMappingURL=objectRedactorSync.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"objectRedactorSync.js","sourceRoot":"","sources":["../src/objectRedactorSync.ts"],"names":[],"mappings":";;;AAAA,qEAA4H;AAAnH,kIAAA,uBAAuB,OAAA;AAAE,sIAAA,uBAAuB,OAA+B"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { TraversableJson } from './types';
|
|
2
|
-
import { SecretManager } from './secretManager';
|
|
3
|
-
import { CustomObjectManager } from './customObjectManager';
|
|
4
|
-
import { PrimitiveRedactor } from './primitiveRedactor';
|
|
5
|
-
import { ValuePatternMatcher } from './valuePatternMatcher';
|
|
6
|
-
import { PathRuleMatcher } from './pathRuleMatcher';
|
|
7
|
-
/**
|
|
8
|
-
* Unified JSON traversal for in-place and copy-on-write redaction.
|
|
9
|
-
* Sync and async paths share one implementation; async mode propagates Promises only when configured.
|
|
10
|
-
*/
|
|
11
|
-
export declare class ObjectRedactorTraversal {
|
|
12
|
-
private readonly primitiveRedactor;
|
|
13
|
-
private readonly secretManager;
|
|
14
|
-
private readonly valuePatternMatcher;
|
|
15
|
-
private readonly ruleResolver;
|
|
16
|
-
private readonly arrayRedactor;
|
|
17
|
-
private readonly customObjectHandler;
|
|
18
|
-
private readonly services;
|
|
19
|
-
constructor(primitiveRedactor: PrimitiveRedactor, secretManager: SecretManager, customObjManager: CustomObjectManager, valuePatternMatcher: ValuePatternMatcher, pathRuleMatcher: PathRuleMatcher);
|
|
20
|
-
usesAsyncRedactor(): boolean;
|
|
21
|
-
redactInPlace<T extends TraversableJson>(value: T): T;
|
|
22
|
-
redactCopyOnWrite<T extends TraversableJson>(value: T): T;
|
|
23
|
-
redactInPlaceAsync<T extends TraversableJson>(value: T): Promise<T>;
|
|
24
|
-
private get asyncMode();
|
|
25
|
-
private traverseRedact;
|
|
26
|
-
private handleCustomObject;
|
|
27
|
-
private redactArrayInObject;
|
|
28
|
-
private redactAllArrayValues;
|
|
29
|
-
private redactPrimitive;
|
|
30
|
-
private setPrimitive;
|
|
31
|
-
private setPrimitiveFromValue;
|
|
32
|
-
private chainHandled;
|
|
33
|
-
private applyFieldDisposition;
|
|
34
|
-
private redactFieldValue;
|
|
35
|
-
private redactSecretFields;
|
|
36
|
-
private processSecretField;
|
|
37
|
-
private applyDefaultSecretRules;
|
|
38
|
-
private redactNestedObject;
|
|
39
|
-
private setPrimitiveValueIfSecret;
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=objectRedactorTraversal.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"objectRedactorTraversal.d.ts","sourceRoot":"","sources":["../src/objectRedactorTraversal.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,eAAe,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAYpD;;;GAGG;AACH,qBAAa,uBAAuB;IAOhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IATtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;IAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;gBAG1B,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,aAAa,EAC7C,gBAAgB,EAAE,mBAAmB,EACpB,mBAAmB,EAAE,mBAAmB,EACzD,eAAe,EAAE,eAAe;IAiClC,iBAAiB,IAAI,OAAO;IAI5B,aAAa,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;IASrD,iBAAiB,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;IASzD,kBAAkB,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAInE,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,qBAAqB;IAkC7B,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,kBAAkB;IAyC1B,OAAO,CAAC,uBAAuB;IA2B/B,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,yBAAyB;CAwBlC"}
|
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObjectRedactorTraversal = void 0;
|
|
4
|
-
const types_1 = require("./types");
|
|
5
|
-
const objectRedactorMutation_1 = require("./objectRedactorMutation");
|
|
6
|
-
const objectRedactorHelpers_1 = require("./objectRedactorHelpers");
|
|
7
|
-
const ruleResolver_1 = require("./ruleResolver");
|
|
8
|
-
const maybeAsync_1 = require("./maybeAsync");
|
|
9
|
-
const arrayRedaction_1 = require("./arrayRedaction");
|
|
10
|
-
const customObjectFieldHandler_1 = require("./customObjectFieldHandler");
|
|
11
|
-
/**
|
|
12
|
-
* Unified JSON traversal for in-place and copy-on-write redaction.
|
|
13
|
-
* Sync and async paths share one implementation; async mode propagates Promises only when configured.
|
|
14
|
-
*/
|
|
15
|
-
class ObjectRedactorTraversal {
|
|
16
|
-
constructor(primitiveRedactor, secretManager, customObjManager, valuePatternMatcher, pathRuleMatcher) {
|
|
17
|
-
this.primitiveRedactor = primitiveRedactor;
|
|
18
|
-
this.secretManager = secretManager;
|
|
19
|
-
this.valuePatternMatcher = valuePatternMatcher;
|
|
20
|
-
this.ruleResolver = new ruleResolver_1.RuleResolver(secretManager, pathRuleMatcher, valuePatternMatcher, customObjManager);
|
|
21
|
-
this.services = {
|
|
22
|
-
get asyncMode() {
|
|
23
|
-
return primitiveRedactor.usesAsyncRedactor();
|
|
24
|
-
},
|
|
25
|
-
ruleResolver: this.ruleResolver,
|
|
26
|
-
secretManager,
|
|
27
|
-
valuePatternMatcher,
|
|
28
|
-
setPrimitive: (container, key, primitive) => this.setPrimitive(container, key, primitive),
|
|
29
|
-
setPrimitiveFromValue: (container, key, value) => this.setPrimitiveFromValue(container, key, value),
|
|
30
|
-
setPrimitiveValueIfSecret: (container, key, secretKey, value, forceDeepRedaction) => this.setPrimitiveValueIfSecret(container, key, secretKey, value, forceDeepRedaction),
|
|
31
|
-
redactSecretFields: (container, forceDeepRedaction, pathSegments) => this.redactSecretFields(container, forceDeepRedaction, pathSegments),
|
|
32
|
-
handleCustomObject: (container, customObject) => this.handleCustomObject(container, customObject),
|
|
33
|
-
redactArrayInObject: (array, key, forceDeepRedaction, parent, pathSegments) => this.redactArrayInObject(array, key, forceDeepRedaction, parent, pathSegments),
|
|
34
|
-
redactAllArrayValues: (array, forceDeepRedaction, copyOnWrite, pathSegments) => this.redactAllArrayValues(array, forceDeepRedaction, copyOnWrite, pathSegments)
|
|
35
|
-
};
|
|
36
|
-
this.arrayRedactor = new arrayRedaction_1.ArrayRedactor(this.services);
|
|
37
|
-
this.customObjectHandler = new customObjectFieldHandler_1.CustomObjectFieldHandler(this.services);
|
|
38
|
-
}
|
|
39
|
-
usesAsyncRedactor() {
|
|
40
|
-
return this.primitiveRedactor.usesAsyncRedactor();
|
|
41
|
-
}
|
|
42
|
-
redactInPlace(value) {
|
|
43
|
-
const result = this.traverseRedact(value, false);
|
|
44
|
-
if (result instanceof Promise) {
|
|
45
|
-
throw new Error('Unexpected async work on sync traversal path');
|
|
46
|
-
}
|
|
47
|
-
return result;
|
|
48
|
-
}
|
|
49
|
-
redactCopyOnWrite(value) {
|
|
50
|
-
const result = this.traverseRedact(value, true);
|
|
51
|
-
if (result instanceof Promise) {
|
|
52
|
-
throw new Error('Unexpected async work on sync traversal path');
|
|
53
|
-
}
|
|
54
|
-
return result;
|
|
55
|
-
}
|
|
56
|
-
redactInPlaceAsync(value) {
|
|
57
|
-
return Promise.resolve(this.traverseRedact(value, false));
|
|
58
|
-
}
|
|
59
|
-
get asyncMode() {
|
|
60
|
-
return this.primitiveRedactor.usesAsyncRedactor();
|
|
61
|
-
}
|
|
62
|
-
traverseRedact(value, copyOnWrite) {
|
|
63
|
-
const container = (0, objectRedactorMutation_1.createContainerMutation)(value, copyOnWrite);
|
|
64
|
-
const customObject = this.ruleResolver.getMatchingSchema(value);
|
|
65
|
-
const work = customObject && (0, types_1.isJsonObject)(value)
|
|
66
|
-
? this.handleCustomObject(container, customObject)
|
|
67
|
-
: this.redactSecretFields(container, false, []);
|
|
68
|
-
return (0, maybeAsync_1.finalizeMaybeAsync)(work, () => (copyOnWrite ? container.result() : value), this.asyncMode);
|
|
69
|
-
}
|
|
70
|
-
handleCustomObject(container, customObject) {
|
|
71
|
-
return this.customObjectHandler.handleCustomObject(container, customObject);
|
|
72
|
-
}
|
|
73
|
-
redactArrayInObject(array, key, forceDeepRedaction, parent, pathSegments) {
|
|
74
|
-
return this.arrayRedactor.redactArrayInObject(array, key, forceDeepRedaction, parent, pathSegments);
|
|
75
|
-
}
|
|
76
|
-
redactAllArrayValues(array, forceDeepRedaction, copyOnWrite, pathSegments) {
|
|
77
|
-
return this.arrayRedactor.redactAllArrayValues(array, forceDeepRedaction, copyOnWrite, pathSegments);
|
|
78
|
-
}
|
|
79
|
-
redactPrimitive(value) {
|
|
80
|
-
return this.asyncMode ? this.primitiveRedactor.redactValue(value) : this.primitiveRedactor.redactValueSync(value);
|
|
81
|
-
}
|
|
82
|
-
setPrimitive(container, key, primitive) {
|
|
83
|
-
const redacted = this.redactPrimitive(primitive);
|
|
84
|
-
if (redacted instanceof Promise) {
|
|
85
|
-
return redacted.then((result) => {
|
|
86
|
-
container.set(key, result);
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
container.set(key, redacted);
|
|
90
|
-
}
|
|
91
|
-
setPrimitiveFromValue(container, key, value) {
|
|
92
|
-
return this.setPrimitive(container, key, (0, objectRedactorHelpers_1.getStringValue)(value));
|
|
93
|
-
}
|
|
94
|
-
chainHandled(work) {
|
|
95
|
-
if (work instanceof Promise) {
|
|
96
|
-
return work.then(() => 'handled');
|
|
97
|
-
}
|
|
98
|
-
return 'handled';
|
|
99
|
-
}
|
|
100
|
-
applyFieldDisposition(disposition, value, key, fieldPath, container) {
|
|
101
|
-
switch (disposition.action) {
|
|
102
|
-
case 'skip':
|
|
103
|
-
return 'handled';
|
|
104
|
-
case 'remove':
|
|
105
|
-
container.remove(key);
|
|
106
|
-
return 'handled';
|
|
107
|
-
case 'opaque':
|
|
108
|
-
return this.chainHandled(this.setPrimitiveFromValue(container, key, value));
|
|
109
|
-
case 'deep':
|
|
110
|
-
return this.chainHandled(this.redactFieldValue(value, key, true, container, fieldPath));
|
|
111
|
-
case 'shallow':
|
|
112
|
-
if (Array.isArray(value) || (0, types_1.isJsonObject)(value)) {
|
|
113
|
-
return this.chainHandled(this.redactFieldValue(value, key, false, container, fieldPath));
|
|
114
|
-
}
|
|
115
|
-
return this.chainHandled(this.setPrimitive(container, key, (0, objectRedactorHelpers_1.toRedactablePrimitive)(value)));
|
|
116
|
-
case 'pass-key-recurse':
|
|
117
|
-
if (Array.isArray(value) || (0, types_1.isJsonObject)(value)) {
|
|
118
|
-
return this.chainHandled(this.redactFieldValue(value, key, false, container, fieldPath));
|
|
119
|
-
}
|
|
120
|
-
return 'handled';
|
|
121
|
-
default:
|
|
122
|
-
return 'default';
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
redactFieldValue(value, key, forceDeepRedaction, container, fieldPath) {
|
|
126
|
-
if (Array.isArray(value)) {
|
|
127
|
-
return this.redactArrayInObject(value, key, forceDeepRedaction, container, fieldPath);
|
|
128
|
-
}
|
|
129
|
-
if ((0, types_1.isJsonObject)(value)) {
|
|
130
|
-
return this.redactNestedObject(value, key, forceDeepRedaction, container, fieldPath);
|
|
131
|
-
}
|
|
132
|
-
return this.setPrimitiveValueIfSecret(container, key, key, value, forceDeepRedaction);
|
|
133
|
-
}
|
|
134
|
-
redactSecretFields(container, forceDeepRedaction, pathSegments) {
|
|
135
|
-
const record = container.source;
|
|
136
|
-
return (0, maybeAsync_1.runSequential)(Object.keys(record), (key) => this.processSecretField(record, key, forceDeepRedaction, pathSegments, container), this.asyncMode);
|
|
137
|
-
}
|
|
138
|
-
processSecretField(record, key, forceDeepRedaction, pathSegments, container) {
|
|
139
|
-
const fieldValue = record[key];
|
|
140
|
-
const fieldPath = [...pathSegments, key];
|
|
141
|
-
const customObject = (0, types_1.isJsonObject)(fieldValue) ? this.ruleResolver.getMatchingSchema(fieldValue) : undefined;
|
|
142
|
-
if (customObject && (0, types_1.isJsonObject)(fieldValue)) {
|
|
143
|
-
const child = (0, objectRedactorMutation_1.createContainerMutation)(fieldValue, container.copyOnWrite);
|
|
144
|
-
return (0, maybeAsync_1.finalizeMaybeAsync)(this.handleCustomObject(child, customObject), () => {
|
|
145
|
-
if (container.copyOnWrite) {
|
|
146
|
-
container.set(key, child.result());
|
|
147
|
-
}
|
|
148
|
-
}, this.asyncMode);
|
|
149
|
-
}
|
|
150
|
-
const disposition = this.ruleResolver.resolvePathDisposition(pathSegments, key, forceDeepRedaction);
|
|
151
|
-
const dispositionResult = this.applyFieldDisposition(disposition, fieldValue, key, fieldPath, container);
|
|
152
|
-
if (dispositionResult instanceof Promise) {
|
|
153
|
-
return dispositionResult.then((handled) => handled === 'handled'
|
|
154
|
-
? undefined
|
|
155
|
-
: this.applyDefaultSecretRules(fieldValue, key, forceDeepRedaction, container, fieldPath));
|
|
156
|
-
}
|
|
157
|
-
if (dispositionResult === 'handled') {
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
return this.applyDefaultSecretRules(fieldValue, key, forceDeepRedaction, container, fieldPath);
|
|
161
|
-
}
|
|
162
|
-
applyDefaultSecretRules(fieldValue, key, forceDeepRedaction, container, fieldPath) {
|
|
163
|
-
if (this.ruleResolver.shouldRemoveByKey(key)) {
|
|
164
|
-
container.remove(key);
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
if (this.ruleResolver.shouldOpaqueByKey(key)) {
|
|
168
|
-
return this.setPrimitiveFromValue(container, key, fieldValue);
|
|
169
|
-
}
|
|
170
|
-
if (Array.isArray(fieldValue)) {
|
|
171
|
-
return this.redactArrayInObject(fieldValue, key, forceDeepRedaction, container, fieldPath);
|
|
172
|
-
}
|
|
173
|
-
if ((0, types_1.isJsonObject)(fieldValue)) {
|
|
174
|
-
return this.redactNestedObject(fieldValue, key, forceDeepRedaction, container, fieldPath);
|
|
175
|
-
}
|
|
176
|
-
return this.setPrimitiveValueIfSecret(container, key, key, fieldValue, forceDeepRedaction);
|
|
177
|
-
}
|
|
178
|
-
redactNestedObject(value, key, forceDeepRedaction, parent, pathSegments) {
|
|
179
|
-
const child = (0, objectRedactorMutation_1.createContainerMutation)(value, parent.copyOnWrite);
|
|
180
|
-
const customObject = this.ruleResolver.getMatchingSchema(value);
|
|
181
|
-
const work = customObject
|
|
182
|
-
? this.handleCustomObject(child, customObject)
|
|
183
|
-
: this.redactSecretFields(child, this.ruleResolver.nestedObjectForceDeepRedaction(key, forceDeepRedaction), pathSegments);
|
|
184
|
-
return (0, maybeAsync_1.finalizeMaybeAsync)(work, () => {
|
|
185
|
-
if (parent.copyOnWrite) {
|
|
186
|
-
parent.set(key, child.result());
|
|
187
|
-
}
|
|
188
|
-
}, this.asyncMode);
|
|
189
|
-
}
|
|
190
|
-
setPrimitiveValueIfSecret(container, key, secretKey, value, forceDeepRedaction) {
|
|
191
|
-
const redacted = (0, objectRedactorHelpers_1.redactPrimitiveValueIfSecret)(this.secretManager, this.valuePatternMatcher, (primitive) => this.redactPrimitive(primitive), secretKey, value, forceDeepRedaction);
|
|
192
|
-
if (redacted instanceof Promise) {
|
|
193
|
-
return redacted.then((result) => {
|
|
194
|
-
container.set(key, result);
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
container.set(key, redacted);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
exports.ObjectRedactorTraversal = ObjectRedactorTraversal;
|
|
201
|
-
//# sourceMappingURL=objectRedactorTraversal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"objectRedactorTraversal.js","sourceRoot":"","sources":["../src/objectRedactorTraversal.ts"],"names":[],"mappings":"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"}
|
package/dist/pathParsing.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export type JsonPathSegment = string | number;
|
|
2
|
-
export type PathPatternSegment = string | number | '*';
|
|
3
|
-
export type ParsePathOptions = {
|
|
4
|
-
allowWildcard?: boolean;
|
|
5
|
-
coerceNumericSegments?: boolean;
|
|
6
|
-
};
|
|
7
|
-
/** Parse dot/bracket path syntax shared by JSON paths and path-rule patterns. */
|
|
8
|
-
export declare const parsePathSegments: (path: string, options?: ParsePathOptions) => PathPatternSegment[];
|
|
9
|
-
export declare const parseJsonPath: (path: string) => JsonPathSegment[];
|
|
10
|
-
export declare const parsePathRulePattern: (pattern: string) => PathPatternSegment[];
|
|
11
|
-
//# sourceMappingURL=pathParsing.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pathParsing.d.ts","sourceRoot":"","sources":["../src/pathParsing.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC;AAC9C,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;AAEvD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAmBF,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,SAAU,MAAM,YAAW,gBAAgB,KAAQ,kBAAkB,EAuClG,CAAC;AAEF,eAAO,MAAM,aAAa,SAAU,MAAM,KAAG,eAAe,EACoB,CAAC;AAEjF,eAAO,MAAM,oBAAoB,YAAa,MAAM,KAAG,kBAAkB,EACS,CAAC"}
|
package/dist/pathParsing.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parsePathRulePattern = exports.parseJsonPath = exports.parsePathSegments = void 0;
|
|
4
|
-
const pushPatternSegment = (segments, segment, coerceNumericSegments) => {
|
|
5
|
-
if (!segment) {
|
|
6
|
-
return;
|
|
7
|
-
}
|
|
8
|
-
if (coerceNumericSegments && /^\d+$/.test(segment)) {
|
|
9
|
-
segments.push(Number(segment));
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
segments.push(segment);
|
|
13
|
-
};
|
|
14
|
-
/** Parse dot/bracket path syntax shared by JSON paths and path-rule patterns. */
|
|
15
|
-
const parsePathSegments = (path, options = {}) => {
|
|
16
|
-
if (!path) {
|
|
17
|
-
return [];
|
|
18
|
-
}
|
|
19
|
-
const { allowWildcard = false, coerceNumericSegments = false } = options;
|
|
20
|
-
const segments = [];
|
|
21
|
-
let current = '';
|
|
22
|
-
for (let index = 0; index < path.length; index++) {
|
|
23
|
-
const char = path[index];
|
|
24
|
-
if (char === '.') {
|
|
25
|
-
pushPatternSegment(segments, current, coerceNumericSegments);
|
|
26
|
-
current = '';
|
|
27
|
-
continue;
|
|
28
|
-
}
|
|
29
|
-
if (char === '[') {
|
|
30
|
-
pushPatternSegment(segments, current, coerceNumericSegments);
|
|
31
|
-
current = '';
|
|
32
|
-
const close = path.indexOf(']', index);
|
|
33
|
-
segments.push(Number(path.slice(index + 1, close)));
|
|
34
|
-
index = close;
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
|
-
if (allowWildcard && char === '*') {
|
|
38
|
-
pushPatternSegment(segments, current, coerceNumericSegments);
|
|
39
|
-
current = '';
|
|
40
|
-
segments.push('*');
|
|
41
|
-
continue;
|
|
42
|
-
}
|
|
43
|
-
current += char;
|
|
44
|
-
}
|
|
45
|
-
pushPatternSegment(segments, current, coerceNumericSegments);
|
|
46
|
-
return segments;
|
|
47
|
-
};
|
|
48
|
-
exports.parsePathSegments = parsePathSegments;
|
|
49
|
-
const parseJsonPath = (path) => (0, exports.parsePathSegments)(path, { coerceNumericSegments: false });
|
|
50
|
-
exports.parseJsonPath = parseJsonPath;
|
|
51
|
-
const parsePathRulePattern = (pattern) => (0, exports.parsePathSegments)(pattern, { allowWildcard: true, coerceNumericSegments: true });
|
|
52
|
-
exports.parsePathRulePattern = parsePathRulePattern;
|
|
53
|
-
//# sourceMappingURL=pathParsing.js.map
|
package/dist/pathParsing.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pathParsing.js","sourceRoot":"","sources":["../src/pathParsing.ts"],"names":[],"mappings":";;;AAQA,MAAM,kBAAkB,GAAG,CACzB,QAA8B,EAC9B,OAAe,EACf,qBAA8B,EACxB,EAAE;IACR,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,IAAI,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,iFAAiF;AAC1E,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,UAA4B,EAAE,EAAwB,EAAE;IACtG,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,EAAE,aAAa,GAAG,KAAK,EAAE,qBAAqB,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACzE,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC7D,OAAO,GAAG,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC7D,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACpD,KAAK,GAAG,KAAK,CAAC;YACd,SAAS;QACX,CAAC;QAED,IAAI,aAAa,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAClC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC7D,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,SAAS;QACX,CAAC;QAED,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAC7D,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAvCW,QAAA,iBAAiB,qBAuC5B;AAEK,MAAM,aAAa,GAAG,CAAC,IAAY,EAAqB,EAAE,CAC/D,IAAA,yBAAiB,EAAC,IAAI,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAsB,CAAC;AADpE,QAAA,aAAa,iBACuD;AAE1E,MAAM,oBAAoB,GAAG,CAAC,OAAe,EAAwB,EAAE,CAC5E,IAAA,yBAAiB,EAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;AADtE,QAAA,oBAAoB,wBACkD"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { PathPatternSegment } from './pathParsing';
|
|
2
|
-
import { PathRule, PathRuleMode } from './types';
|
|
3
|
-
type CompiledPathRule = {
|
|
4
|
-
segments: PathPatternSegment[];
|
|
5
|
-
mode: PathRuleMode;
|
|
6
|
-
path: string;
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* Matches configured path rules against traversal paths. Longest matching rule wins.
|
|
10
|
-
*/
|
|
11
|
-
export declare class PathRuleMatcher {
|
|
12
|
-
private readonly rules;
|
|
13
|
-
constructor(pathRules?: PathRule[]);
|
|
14
|
-
getMatchingRule(path: Array<string | number>): CompiledPathRule | undefined;
|
|
15
|
-
hasRules(): boolean;
|
|
16
|
-
}
|
|
17
|
-
export { parsePathRulePattern } from './pathParsing';
|
|
18
|
-
export declare const EMPTY_PATH_RULE_MATCHER: PathRuleMatcher;
|
|
19
|
-
//# sourceMappingURL=pathRuleMatcher.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pathRuleMatcher.d.ts","sourceRoot":"","sources":["../src/pathRuleMatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEjD,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAUF;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;gBAE/B,SAAS,CAAC,EAAE,QAAQ,EAAE;IAoBlC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,gBAAgB,GAAG,SAAS;IAI3E,QAAQ,IAAI,OAAO;CAGpB;AAED,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,eAAO,MAAM,uBAAuB,iBAAwB,CAAC"}
|
package/dist/pathRuleMatcher.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EMPTY_PATH_RULE_MATCHER = exports.parsePathRulePattern = exports.PathRuleMatcher = void 0;
|
|
4
|
-
const pathParsing_1 = require("./pathParsing");
|
|
5
|
-
const segmentsMatch = (rule, path) => {
|
|
6
|
-
if (rule.length !== path.length) {
|
|
7
|
-
return false;
|
|
8
|
-
}
|
|
9
|
-
return rule.every((segment, index) => segment === '*' || segment === path[index]);
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* Matches configured path rules against traversal paths. Longest matching rule wins.
|
|
13
|
-
*/
|
|
14
|
-
class PathRuleMatcher {
|
|
15
|
-
constructor(pathRules) {
|
|
16
|
-
this.rules = (pathRules !== null && pathRules !== void 0 ? pathRules : [])
|
|
17
|
-
.map((rule) => ({
|
|
18
|
-
segments: (0, pathParsing_1.parsePathRulePattern)(rule.path),
|
|
19
|
-
mode: rule.mode,
|
|
20
|
-
path: rule.path
|
|
21
|
-
}))
|
|
22
|
-
.filter((rule) => rule.segments.length > 0)
|
|
23
|
-
.sort((left, right) => {
|
|
24
|
-
if (right.segments.length !== left.segments.length) {
|
|
25
|
-
return right.segments.length - left.segments.length;
|
|
26
|
-
}
|
|
27
|
-
const wildcardCount = (segments) => segments.filter((segment) => segment === '*').length;
|
|
28
|
-
return wildcardCount(left.segments) - wildcardCount(right.segments);
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
getMatchingRule(path) {
|
|
32
|
-
return this.rules.find((rule) => segmentsMatch(rule.segments, path));
|
|
33
|
-
}
|
|
34
|
-
hasRules() {
|
|
35
|
-
return this.rules.length > 0;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
exports.PathRuleMatcher = PathRuleMatcher;
|
|
39
|
-
var pathParsing_2 = require("./pathParsing");
|
|
40
|
-
Object.defineProperty(exports, "parsePathRulePattern", { enumerable: true, get: function () { return pathParsing_2.parsePathRulePattern; } });
|
|
41
|
-
exports.EMPTY_PATH_RULE_MATCHER = new PathRuleMatcher();
|
|
42
|
-
//# sourceMappingURL=pathRuleMatcher.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pathRuleMatcher.js","sourceRoot":"","sources":["../src/pathRuleMatcher.ts"],"names":[],"mappings":";;;AAAA,+CAAyE;AASzE,MAAM,aAAa,GAAG,CAAC,IAA0B,EAAE,IAA4B,EAAW,EAAE;IAC1F,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACpF,CAAC,CAAC;AAEF;;GAEG;AACH,MAAa,eAAe;IAG1B,YAAY,SAAsB;QAChC,IAAI,CAAC,KAAK,GAAG,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC;aAC3B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACd,QAAQ,EAAE,IAAA,kCAAoB,EAAC,IAAI,CAAC,IAAI,CAAC;YACzC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;aACF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;aAC1C,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACpB,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACnD,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACtD,CAAC;YAED,MAAM,aAAa,GAAG,CAAC,QAA8B,EAAU,EAAE,CAC/D,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;YAEvD,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe,CAAC,IAA4B;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,CAAC;CACF;AA9BD,0CA8BC;AAED,6CAAqD;AAA5C,mHAAA,oBAAoB,OAAA;AAEhB,QAAA,uBAAuB,GAAG,IAAI,eAAe,EAAE,CAAC"}
|
package/dist/presets.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { FieldRedactorConfig } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Opinionated configuration presets derived from integration test fixtures.
|
|
4
|
-
* Spread into {@link FieldRedactor} or {@link FieldRedactor.createSafe} config and extend as needed.
|
|
5
|
-
*/
|
|
6
|
-
export declare const presets: {
|
|
7
|
-
/**
|
|
8
|
-
* `{ name, type, value }` metadata entries with sibling-key redaction and auth key removal.
|
|
9
|
-
* Pair with your own `secretKeys` for field names that should trigger redaction.
|
|
10
|
-
*/
|
|
11
|
-
loggingMetadata(): Pick<FieldRedactorConfig, "customObjects" | "deleteSecretKeys">;
|
|
12
|
-
/**
|
|
13
|
-
* Application log preset from `realExamples.spec.ts`: common PII field patterns,
|
|
14
|
-
* auth key removal, and `{ name, value }` event metadata schemas.
|
|
15
|
-
*/
|
|
16
|
-
applicationLogging(): Pick<FieldRedactorConfig, "secretKeys" | "deleteSecretKeys" | "customObjects">;
|
|
17
|
-
/**
|
|
18
|
-
* `{ key, value }` shaped entries (blanket coverage small schema).
|
|
19
|
-
*/
|
|
20
|
-
keyValueEntries(): Pick<FieldRedactorConfig, "customObjects">;
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=presets.d.ts.map
|
package/dist/presets.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAwBnF;;;GAGG;AACH,eAAO,MAAM,OAAO;IAClB;;;OAGG;uBACgB,IAAI,CAAC,mBAAmB,EAAE,eAAe,GAAG,kBAAkB,CAAC;IAOlF;;;OAGG;0BACmB,IAAI,CAAC,mBAAmB,EAAE,YAAY,GAAG,kBAAkB,GAAG,eAAe,CAAC;IAQpG;;OAEG;uBACgB,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC;CAK9D,CAAC"}
|
package/dist/presets.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.presets = void 0;
|
|
4
|
-
const types_1 = require("./types");
|
|
5
|
-
const AUTH_KEY_REMOVAL = {
|
|
6
|
-
deleteSecretKeys: [/authKey/i]
|
|
7
|
-
};
|
|
8
|
-
const NAME_VALUE_EVENT_SCHEMA = {
|
|
9
|
-
name: types_1.CustomObjectMatchType.Ignore,
|
|
10
|
-
value: 'name'
|
|
11
|
-
};
|
|
12
|
-
const NAME_TYPE_VALUE_METADATA_SCHEMA = {
|
|
13
|
-
name: types_1.CustomObjectMatchType.Ignore,
|
|
14
|
-
type: types_1.CustomObjectMatchType.Ignore,
|
|
15
|
-
value: 'name'
|
|
16
|
-
};
|
|
17
|
-
const KEY_VALUE_ENTRY_SCHEMA = {
|
|
18
|
-
key: types_1.CustomObjectMatchType.Ignore,
|
|
19
|
-
value: 'key'
|
|
20
|
-
};
|
|
21
|
-
const APPLICATION_LOG_SECRET_KEYS = [/email/i, /mdn/i, /phone/i, /.+name$/i, /auth/i];
|
|
22
|
-
/**
|
|
23
|
-
* Opinionated configuration presets derived from integration test fixtures.
|
|
24
|
-
* Spread into {@link FieldRedactor} or {@link FieldRedactor.createSafe} config and extend as needed.
|
|
25
|
-
*/
|
|
26
|
-
exports.presets = {
|
|
27
|
-
/**
|
|
28
|
-
* `{ name, type, value }` metadata entries with sibling-key redaction and auth key removal.
|
|
29
|
-
* Pair with your own `secretKeys` for field names that should trigger redaction.
|
|
30
|
-
*/
|
|
31
|
-
loggingMetadata() {
|
|
32
|
-
return Object.assign(Object.assign({}, AUTH_KEY_REMOVAL), { customObjects: [NAME_TYPE_VALUE_METADATA_SCHEMA] });
|
|
33
|
-
},
|
|
34
|
-
/**
|
|
35
|
-
* Application log preset from `realExamples.spec.ts`: common PII field patterns,
|
|
36
|
-
* auth key removal, and `{ name, value }` event metadata schemas.
|
|
37
|
-
*/
|
|
38
|
-
applicationLogging() {
|
|
39
|
-
return Object.assign(Object.assign({ secretKeys: APPLICATION_LOG_SECRET_KEYS }, AUTH_KEY_REMOVAL), { customObjects: [NAME_VALUE_EVENT_SCHEMA] });
|
|
40
|
-
},
|
|
41
|
-
/**
|
|
42
|
-
* `{ key, value }` shaped entries (blanket coverage small schema).
|
|
43
|
-
*/
|
|
44
|
-
keyValueEntries() {
|
|
45
|
-
return {
|
|
46
|
-
customObjects: [KEY_VALUE_ENTRY_SCHEMA]
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=presets.js.map
|
package/dist/presets.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":";;;AAAA,mCAAmF;AAEnF,MAAM,gBAAgB,GAAkD;IACtE,gBAAgB,EAAE,CAAC,UAAU,CAAC;CAC/B,CAAC;AAEF,MAAM,uBAAuB,GAAiB;IAC5C,IAAI,EAAE,6BAAqB,CAAC,MAAM;IAClC,KAAK,EAAE,MAAM;CACd,CAAC;AAEF,MAAM,+BAA+B,GAAiB;IACpD,IAAI,EAAE,6BAAqB,CAAC,MAAM;IAClC,IAAI,EAAE,6BAAqB,CAAC,MAAM;IAClC,KAAK,EAAE,MAAM;CACd,CAAC;AAEF,MAAM,sBAAsB,GAAiB;IAC3C,GAAG,EAAE,6BAAqB,CAAC,MAAM;IACjC,KAAK,EAAE,KAAK;CACb,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAEtF;;;GAGG;AACU,QAAA,OAAO,GAAG;IACrB;;;OAGG;IACH,eAAe;QACb,uCACK,gBAAgB,KACnB,aAAa,EAAE,CAAC,+BAA+B,CAAC,IAChD;IACJ,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,qCACE,UAAU,EAAE,2BAA2B,IACpC,gBAAgB,KACnB,aAAa,EAAE,CAAC,uBAAuB,CAAC,IACxC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO;YACL,aAAa,EAAE,CAAC,sBAAsB,CAAC;SACxC,CAAC;IACJ,CAAC;CACF,CAAC"}
|