field-redactor 1.5.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -0
- package/CONTRIBUTING.md +64 -0
- package/README.md +3 -0
- package/dist/api/fieldRedactor.d.ts +51 -0
- package/dist/api/fieldRedactor.d.ts.map +1 -0
- package/dist/api/fieldRedactor.js +165 -0
- package/dist/api/fieldRedactor.js.map +1 -0
- package/dist/api/fieldRedactorConfigBuilder.d.ts +57 -0
- package/dist/api/fieldRedactorConfigBuilder.d.ts.map +1 -0
- package/dist/api/fieldRedactorConfigBuilder.js +115 -0
- package/dist/api/fieldRedactorConfigBuilder.js.map +1 -0
- package/dist/api/fieldRedactorDeps.d.ts +19 -0
- package/dist/api/fieldRedactorDeps.d.ts.map +1 -0
- package/dist/api/fieldRedactorDeps.js +45 -0
- package/dist/api/fieldRedactorDeps.js.map +1 -0
- package/dist/arrayRedaction.d.ts +12 -0
- package/dist/arrayRedaction.d.ts.map +1 -0
- package/dist/arrayRedaction.js +70 -0
- package/dist/arrayRedaction.js.map +1 -0
- package/dist/config/configValidator.d.ts +9 -0
- package/dist/config/configValidator.d.ts.map +1 -0
- package/dist/config/configValidator.js +77 -0
- package/dist/config/configValidator.js.map +1 -0
- package/dist/config/customObjectSchemas.d.ts +7 -0
- package/dist/config/customObjectSchemas.d.ts.map +1 -0
- package/dist/config/customObjectSchemas.js +35 -0
- package/dist/config/customObjectSchemas.js.map +1 -0
- package/dist/config/presets.d.ts +22 -0
- package/dist/config/presets.d.ts.map +1 -0
- package/dist/config/presets.js +50 -0
- package/dist/config/presets.js.map +1 -0
- package/dist/config/redactionRules.d.ts +26 -0
- package/dist/config/redactionRules.d.ts.map +1 -0
- package/dist/config/redactionRules.js +107 -0
- package/dist/config/redactionRules.js.map +1 -0
- package/dist/configValidator.d.ts +3 -4
- package/dist/configValidator.d.ts.map +1 -1
- package/dist/configValidator.js +9 -26
- package/dist/configValidator.js.map +1 -1
- package/dist/customObjectFieldHandler.d.ts +21 -0
- package/dist/customObjectFieldHandler.d.ts.map +1 -0
- package/dist/customObjectFieldHandler.js +159 -0
- package/dist/customObjectFieldHandler.js.map +1 -0
- package/dist/customObjectManager.d.ts +1 -1
- package/dist/customObjectManager.js +3 -3
- package/dist/customObjectManager.js.map +1 -1
- package/dist/customObjectSchemas.d.ts +7 -0
- package/dist/customObjectSchemas.d.ts.map +1 -0
- package/dist/customObjectSchemas.js +35 -0
- package/dist/customObjectSchemas.js.map +1 -0
- package/dist/dryRun.d.ts +2 -1
- package/dist/dryRun.d.ts.map +1 -1
- package/dist/dryRun.js +2 -2
- package/dist/dryRun.js.map +1 -1
- package/dist/dryRunAttribution.d.ts +5 -3
- package/dist/dryRunAttribution.d.ts.map +1 -1
- package/dist/dryRunAttribution.js +9 -101
- package/dist/dryRunAttribution.js.map +1 -1
- package/dist/dryrun/dryRun.d.ts +9 -0
- package/dist/dryrun/dryRun.d.ts.map +1 -0
- package/dist/dryrun/dryRun.js +75 -0
- package/dist/dryrun/dryRun.js.map +1 -0
- package/dist/dryrun/dryRunAttribution.d.ts +10 -0
- package/dist/dryrun/dryRunAttribution.d.ts.map +1 -0
- package/dist/dryrun/dryRunAttribution.js +14 -0
- package/dist/dryrun/dryRunAttribution.js.map +1 -0
- package/dist/engine/arrayRedaction.d.ts +12 -0
- package/dist/engine/arrayRedaction.d.ts.map +1 -0
- package/dist/engine/arrayRedaction.js +70 -0
- package/dist/engine/arrayRedaction.js.map +1 -0
- package/dist/engine/customObjectFieldHandler.d.ts +30 -0
- package/dist/engine/customObjectFieldHandler.d.ts.map +1 -0
- package/dist/engine/customObjectFieldHandler.js +149 -0
- package/dist/engine/customObjectFieldHandler.js.map +1 -0
- package/dist/engine/objectRedactor.d.ts +18 -0
- package/dist/engine/objectRedactor.d.ts.map +1 -0
- package/dist/engine/objectRedactor.js +38 -0
- package/dist/engine/objectRedactor.js.map +1 -0
- package/dist/engine/objectRedactorCustomObject.d.ts +12 -0
- package/dist/engine/objectRedactorCustomObject.d.ts.map +1 -0
- package/dist/engine/objectRedactorCustomObject.js +22 -0
- package/dist/engine/objectRedactorCustomObject.js.map +1 -0
- package/dist/engine/objectRedactorHelpers.d.ts +8 -0
- package/dist/engine/objectRedactorHelpers.d.ts.map +1 -0
- package/dist/engine/objectRedactorHelpers.js +35 -0
- package/dist/engine/objectRedactorHelpers.js.map +1 -0
- package/dist/engine/objectRedactorMutation.d.ts +10 -0
- package/dist/engine/objectRedactorMutation.d.ts.map +1 -0
- package/dist/engine/objectRedactorMutation.js +89 -0
- package/dist/engine/objectRedactorMutation.js.map +1 -0
- package/dist/engine/objectRedactorSync.d.ts +2 -0
- package/dist/engine/objectRedactorSync.d.ts.map +1 -0
- package/dist/engine/objectRedactorSync.js +7 -0
- package/dist/engine/objectRedactorSync.js.map +1 -0
- package/dist/engine/objectRedactorTraversal.d.ts +41 -0
- package/dist/engine/objectRedactorTraversal.d.ts.map +1 -0
- package/dist/engine/objectRedactorTraversal.js +201 -0
- package/dist/engine/objectRedactorTraversal.js.map +1 -0
- package/dist/engine/primitiveRedactor.d.ts +33 -0
- package/dist/engine/primitiveRedactor.d.ts.map +1 -0
- package/dist/engine/primitiveRedactor.js +75 -0
- package/dist/engine/primitiveRedactor.js.map +1 -0
- package/dist/engine/traversalServices.d.ts +21 -0
- package/dist/engine/traversalServices.d.ts.map +1 -0
- package/dist/engine/traversalServices.js +3 -0
- package/dist/engine/traversalServices.js.map +1 -0
- package/dist/fieldDisposition.d.ts +3 -0
- package/dist/fieldDisposition.d.ts.map +1 -0
- package/dist/fieldDisposition.js +6 -0
- package/dist/fieldDisposition.js.map +1 -0
- package/dist/fieldRedactor.d.ts +6 -21
- package/dist/fieldRedactor.d.ts.map +1 -1
- package/dist/fieldRedactor.js +37 -56
- package/dist/fieldRedactor.js.map +1 -1
- package/dist/fieldRedactorConfigBuilder.d.ts +7 -1
- package/dist/fieldRedactorConfigBuilder.d.ts.map +1 -1
- package/dist/fieldRedactorConfigBuilder.js +14 -1
- package/dist/fieldRedactorConfigBuilder.js.map +1 -1
- package/dist/fieldRedactorDeps.d.ts +2 -0
- package/dist/fieldRedactorDeps.d.ts.map +1 -1
- package/dist/fieldRedactorDeps.js +11 -9
- package/dist/fieldRedactorDeps.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/jsonWalk.d.ts +1 -1
- package/dist/jsonWalk.d.ts.map +1 -1
- package/dist/jsonWalk.js +2 -33
- package/dist/jsonWalk.js.map +1 -1
- package/dist/maybeAsync.d.ts +7 -0
- package/dist/maybeAsync.d.ts.map +1 -0
- package/dist/maybeAsync.js +56 -0
- package/dist/maybeAsync.js.map +1 -0
- package/dist/objectRedactor.d.ts +2 -1
- package/dist/objectRedactor.d.ts.map +1 -1
- package/dist/objectRedactor.js +2 -2
- package/dist/objectRedactor.js.map +1 -1
- package/dist/objectRedactorCustomObject.d.ts +19 -40
- package/dist/objectRedactorCustomObject.d.ts.map +1 -1
- package/dist/objectRedactorCustomObject.js +20 -101
- package/dist/objectRedactorCustomObject.js.map +1 -1
- package/dist/objectRedactorHelpers.d.ts.map +1 -1
- package/dist/objectRedactorHelpers.js +3 -0
- package/dist/objectRedactorHelpers.js.map +1 -1
- package/dist/objectRedactorTraversal.d.ts +20 -36
- package/dist/objectRedactorTraversal.d.ts.map +1 -1
- package/dist/objectRedactorTraversal.js +141 -516
- package/dist/objectRedactorTraversal.js.map +1 -1
- package/dist/pathParsing.d.ts +11 -0
- package/dist/pathParsing.d.ts.map +1 -0
- package/dist/pathParsing.js +53 -0
- package/dist/pathParsing.js.map +1 -0
- package/dist/pathRuleMatcher.d.ts +19 -0
- package/dist/pathRuleMatcher.d.ts.map +1 -0
- package/dist/pathRuleMatcher.js +42 -0
- package/dist/pathRuleMatcher.js.map +1 -0
- package/dist/redactionRules.d.ts +3 -4
- package/dist/redactionRules.d.ts.map +1 -1
- package/dist/redactionRules.js +7 -9
- package/dist/redactionRules.js.map +1 -1
- package/dist/ruleResolver.d.ts +65 -0
- package/dist/ruleResolver.d.ts.map +1 -0
- package/dist/ruleResolver.js +193 -0
- package/dist/ruleResolver.js.map +1 -0
- package/dist/rules/customObjectManager.d.ts +28 -0
- package/dist/rules/customObjectManager.d.ts.map +1 -0
- package/dist/rules/customObjectManager.js +60 -0
- package/dist/rules/customObjectManager.js.map +1 -0
- package/dist/rules/fieldDisposition.d.ts +3 -0
- package/dist/rules/fieldDisposition.d.ts.map +1 -0
- package/dist/rules/fieldDisposition.js +6 -0
- package/dist/rules/fieldDisposition.js.map +1 -0
- package/dist/rules/pathRuleMatcher.d.ts +19 -0
- package/dist/rules/pathRuleMatcher.d.ts.map +1 -0
- package/dist/rules/pathRuleMatcher.js +40 -0
- package/dist/rules/pathRuleMatcher.js.map +1 -0
- package/dist/rules/ruleResolver.d.ts +63 -0
- package/dist/rules/ruleResolver.d.ts.map +1 -0
- package/dist/rules/ruleResolver.js +188 -0
- package/dist/rules/ruleResolver.js.map +1 -0
- package/dist/rules/schemaSiblingKey.d.ts +4 -0
- package/dist/rules/schemaSiblingKey.d.ts.map +1 -0
- package/dist/rules/schemaSiblingKey.js +19 -0
- package/dist/rules/schemaSiblingKey.js.map +1 -0
- package/dist/rules/secretManager.d.ts +31 -0
- package/dist/rules/secretManager.d.ts.map +1 -0
- package/dist/rules/secretManager.js +85 -0
- package/dist/rules/secretManager.js.map +1 -0
- package/dist/rules/valuePatternMatcher.d.ts +15 -0
- package/dist/rules/valuePatternMatcher.d.ts.map +1 -0
- package/dist/rules/valuePatternMatcher.js +30 -0
- package/dist/rules/valuePatternMatcher.js.map +1 -0
- package/dist/secretManager.d.ts +6 -19
- package/dist/secretManager.d.ts.map +1 -1
- package/dist/secretManager.js +19 -30
- package/dist/secretManager.js.map +1 -1
- package/dist/traversalServices.d.ts +21 -0
- package/dist/traversalServices.d.ts.map +1 -0
- package/dist/traversalServices.js +3 -0
- package/dist/traversalServices.js.map +1 -0
- package/dist/types.d.ts +41 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +8 -1
- package/dist/types.js.map +1 -1
- package/dist/util/jsonWalk.d.ts +10 -0
- package/dist/util/jsonWalk.d.ts.map +1 -0
- package/dist/util/jsonWalk.js +53 -0
- package/dist/util/jsonWalk.js.map +1 -0
- package/dist/util/maybeAsync.d.ts +6 -0
- package/dist/util/maybeAsync.d.ts.map +1 -0
- package/dist/util/maybeAsync.js +54 -0
- package/dist/util/maybeAsync.js.map +1 -0
- package/dist/util/pathParsing.d.ts +11 -0
- package/dist/util/pathParsing.d.ts.map +1 -0
- package/dist/util/pathParsing.js +53 -0
- package/dist/util/pathParsing.js.map +1 -0
- package/dist/util/primitiveCoercion.d.ts +4 -0
- package/dist/util/primitiveCoercion.d.ts.map +1 -0
- package/dist/util/primitiveCoercion.js +21 -0
- package/dist/util/primitiveCoercion.js.map +1 -0
- package/dist/util/regexUtils.d.ts +3 -0
- package/dist/util/regexUtils.d.ts.map +1 -0
- package/dist/util/regexUtils.js +8 -0
- package/dist/util/regexUtils.js.map +1 -0
- package/docs/guides/migration-1.5-to-1.6.md +57 -0
- package/docs/guides/path-rules.md +47 -0
- package/docs/reference/config.md +5 -1
- package/docs/release-notes/README.md +4 -1
- package/docs/release-notes/v1.6.0.md +59 -0
- package/docs/release-notes/v1.6.1.md +24 -0
- package/jest.config.js +3 -1
- package/package.json +8 -2
package/dist/fieldRedactor.js
CHANGED
|
@@ -13,11 +13,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.FieldRedactor = void 0;
|
|
16
|
-
const rfdc_1 = __importDefault(require("rfdc"));
|
|
17
16
|
const errors_1 = require("./errors");
|
|
18
|
-
const configValidator_1 = require("./configValidator");
|
|
19
|
-
const dryRun_1 = require("./dryRun");
|
|
20
17
|
const fieldRedactorDeps_1 = require("./fieldRedactorDeps");
|
|
18
|
+
const dryRun_1 = require("./dryRun");
|
|
19
|
+
const rfdc_1 = __importDefault(require("rfdc"));
|
|
20
|
+
const configValidator_1 = require("./configValidator");
|
|
21
21
|
/**
|
|
22
22
|
* FieldRedactor is a highly customizable JSON object field redactor. It conditionally redacts fields based on
|
|
23
23
|
* the secrets, deepSecrets, fullSecrets, and custom objects provided in the configuration. Refer to the README.md
|
|
@@ -33,13 +33,7 @@ class FieldRedactor {
|
|
|
33
33
|
for (const warning of this.configWarnings) {
|
|
34
34
|
(_a = config === null || config === void 0 ? void 0 : config.onConfigWarning) === null || _a === void 0 ? void 0 : _a.call(config, warning);
|
|
35
35
|
}
|
|
36
|
-
|
|
37
|
-
this.usesAsyncRedactor = deps.usesAsyncRedactor;
|
|
38
|
-
this.cloneInput = deps.cloneInput;
|
|
39
|
-
this.secretManager = deps.secretManager;
|
|
40
|
-
this.valuePatternMatcher = deps.valuePatternMatcher;
|
|
41
|
-
this.customObjectManager = deps.customObjectManager;
|
|
42
|
-
this.objectRedactor = deps.objectRedactor;
|
|
36
|
+
this.deps = (0, fieldRedactorDeps_1.buildFieldRedactorDeps)(config);
|
|
43
37
|
}
|
|
44
38
|
/**
|
|
45
39
|
* Creates a FieldRedactor that requires at least one explicit redaction rule: Shallow (`secretKeys`),
|
|
@@ -53,21 +47,13 @@ class FieldRedactor {
|
|
|
53
47
|
}
|
|
54
48
|
return new FieldRedactor(config);
|
|
55
49
|
}
|
|
56
|
-
/**
|
|
57
|
-
* Redacts a copy of the input and returns an audit report of affected paths without mutating the original.
|
|
58
|
-
*/
|
|
50
|
+
/** Redacts a copy of the input and returns an audit report of affected paths without mutating the original. */
|
|
59
51
|
dryRun(value) {
|
|
60
52
|
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
-
|
|
62
|
-
return this.emptyDryRunResult(value);
|
|
63
|
-
}
|
|
64
|
-
const snapshot = this.deepCopy(value);
|
|
65
|
-
return this.toDryRunResult(snapshot, yield this.redact(value));
|
|
53
|
+
return this.runDryRun(value, (input) => this.redact(input));
|
|
66
54
|
});
|
|
67
55
|
}
|
|
68
|
-
/**
|
|
69
|
-
* Synchronous {@link FieldRedactor.dryRun} without per-field Promise overhead.
|
|
70
|
-
*/
|
|
56
|
+
/** Synchronous {@link FieldRedactor.dryRun} without per-field Promise overhead. */
|
|
71
57
|
dryRunSync(value) {
|
|
72
58
|
if (this.isPrimitiveOrUndefined(value)) {
|
|
73
59
|
return this.emptyDryRunResult(value);
|
|
@@ -75,32 +61,41 @@ class FieldRedactor {
|
|
|
75
61
|
const snapshot = this.deepCopy(value);
|
|
76
62
|
return this.toDryRunResult(snapshot, this.redactSync(value));
|
|
77
63
|
}
|
|
64
|
+
runDryRun(value, redact) {
|
|
65
|
+
if (this.isPrimitiveOrUndefined(value)) {
|
|
66
|
+
return this.emptyDryRunResult(value);
|
|
67
|
+
}
|
|
68
|
+
const snapshot = this.deepCopy(value);
|
|
69
|
+
const result = redact(value);
|
|
70
|
+
if (result instanceof Promise) {
|
|
71
|
+
return result.then((redacted) => this.toDryRunResult(snapshot, redacted));
|
|
72
|
+
}
|
|
73
|
+
return this.toDryRunResult(snapshot, result);
|
|
74
|
+
}
|
|
78
75
|
emptyDryRunResult(value) {
|
|
79
76
|
return { result: value, report: dryRun_1.EMPTY_DRY_RUN_REPORT };
|
|
80
77
|
}
|
|
81
78
|
toDryRunResult(snapshot, result) {
|
|
82
79
|
return {
|
|
83
80
|
result,
|
|
84
|
-
report: (0, dryRun_1.buildDryRunReport)(snapshot, result, this.customObjectManager, this.secretManager, this.valuePatternMatcher)
|
|
81
|
+
report: (0, dryRun_1.buildDryRunReport)(snapshot, result, this.deps.customObjectManager, this.deps.secretManager, this.deps.valuePatternMatcher, this.deps.pathRuleMatcher)
|
|
85
82
|
};
|
|
86
83
|
}
|
|
87
84
|
/**
|
|
88
85
|
* Conditionally redacts fields in the JSON object based on the configuration provided in the constructor and returns the
|
|
89
86
|
* redacted result.
|
|
90
87
|
* If the value is a primitive, undefined, or date, returns the value as-is.
|
|
91
|
-
* @param value The JSON value to redact. If primitive it will be resolved as-is.
|
|
92
|
-
* @returns The redacted JSON object.
|
|
93
88
|
*/
|
|
94
89
|
redact(value) {
|
|
95
90
|
return __awaiter(this, void 0, void 0, function* () {
|
|
96
91
|
if (this.isPrimitiveOrUndefined(value)) {
|
|
97
92
|
return value;
|
|
98
93
|
}
|
|
99
|
-
if (!this.cloneInput) {
|
|
94
|
+
if (!this.deps.cloneInput) {
|
|
100
95
|
yield this.redactInPlace(value);
|
|
101
96
|
return value;
|
|
102
97
|
}
|
|
103
|
-
if (!this.usesAsyncRedactor) {
|
|
98
|
+
if (!this.deps.usesAsyncRedactor) {
|
|
104
99
|
return Promise.resolve(this.redactSync(value));
|
|
105
100
|
}
|
|
106
101
|
const copy = this.deepCopy(value);
|
|
@@ -116,26 +111,20 @@ class FieldRedactor {
|
|
|
116
111
|
if (this.isPrimitiveOrUndefined(value)) {
|
|
117
112
|
return value;
|
|
118
113
|
}
|
|
119
|
-
if (!this.cloneInput) {
|
|
114
|
+
if (!this.deps.cloneInput) {
|
|
120
115
|
this.redactInPlaceSync(value);
|
|
121
116
|
return value;
|
|
122
117
|
}
|
|
123
|
-
return this.objectRedactor.redactCopyOnWrite(value);
|
|
118
|
+
return this.deps.objectRedactor.redactCopyOnWrite(value);
|
|
124
119
|
}
|
|
125
|
-
/**
|
|
126
|
-
* Conditionally redacts fields in the JSON object in place based on the configuration provided in the constructor.
|
|
127
|
-
* If the value is a primitive, undefined, or date, returns the value as-is.
|
|
128
|
-
* @param value The JSON value to redact in place. If primitive it will be resolved as-is.
|
|
129
|
-
*/
|
|
120
|
+
/** Conditionally redacts fields in the JSON object in place based on the configuration provided in the constructor. */
|
|
130
121
|
redactInPlace(value) {
|
|
131
122
|
return __awaiter(this, void 0, void 0, function* () {
|
|
132
|
-
if (!this.usesAsyncRedactor) {
|
|
123
|
+
if (!this.deps.usesAsyncRedactor) {
|
|
133
124
|
this.redactInPlaceSync(value);
|
|
134
125
|
return;
|
|
135
126
|
}
|
|
136
|
-
yield this.
|
|
137
|
-
yield this.objectRedactor.redactInPlace(value);
|
|
138
|
-
}));
|
|
127
|
+
yield this.runTraversableRedaction(value, () => this.deps.objectRedactor.redactInPlace(value));
|
|
139
128
|
});
|
|
140
129
|
}
|
|
141
130
|
/**
|
|
@@ -143,35 +132,27 @@ class FieldRedactor {
|
|
|
143
132
|
* Requires a `syncRedactor` or the default redactor; throws when only an async `redactor` is configured.
|
|
144
133
|
*/
|
|
145
134
|
redactInPlaceSync(value) {
|
|
146
|
-
if (this.usesAsyncRedactor) {
|
|
135
|
+
if (this.deps.usesAsyncRedactor) {
|
|
147
136
|
throw new errors_1.FieldRedactorError('redactInPlaceSync requires syncRedactor configuration or the default redactor');
|
|
148
137
|
}
|
|
149
|
-
this.
|
|
138
|
+
this.runTraversableRedaction(value, () => this.deps.objectRedactor.redactInPlaceSync(value));
|
|
150
139
|
}
|
|
151
|
-
|
|
140
|
+
runTraversableRedaction(value, redact) {
|
|
152
141
|
if (this.isPrimitiveOrUndefined(value)) {
|
|
153
142
|
return;
|
|
154
143
|
}
|
|
155
144
|
try {
|
|
156
|
-
redact();
|
|
145
|
+
const result = redact();
|
|
146
|
+
if (result instanceof Promise) {
|
|
147
|
+
return result.catch((error) => {
|
|
148
|
+
throw this.toFieldRedactorError(error);
|
|
149
|
+
});
|
|
150
|
+
}
|
|
157
151
|
}
|
|
158
|
-
catch (
|
|
159
|
-
throw this.toFieldRedactorError(
|
|
152
|
+
catch (error) {
|
|
153
|
+
throw this.toFieldRedactorError(error);
|
|
160
154
|
}
|
|
161
155
|
}
|
|
162
|
-
runTraversableRedactionAsync(value, redact) {
|
|
163
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
164
|
-
if (this.isPrimitiveOrUndefined(value)) {
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
try {
|
|
168
|
-
yield redact();
|
|
169
|
-
}
|
|
170
|
-
catch (e) {
|
|
171
|
-
throw this.toFieldRedactorError(e);
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
156
|
toFieldRedactorError(error) {
|
|
176
157
|
const message = error instanceof Error ? error.message : String(error);
|
|
177
158
|
return new errors_1.FieldRedactorError(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldRedactor.js","sourceRoot":"","sources":["../src/fieldRedactor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"fieldRedactor.js","sourceRoot":"","sources":["../src/fieldRedactor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAA+E;AAC/E,2DAAgF;AAUhF,qCAAmE;AACnE,gDAAwB;AACxB,uDAA2F;AAE3F;;;;;;GAMG;AACH,MAAa,aAAa;IAOxB,YAAY,MAA4B;;QANvB,aAAQ,GAAG,IAAA,cAAI,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAO/D,IAAI,CAAC,cAAc,GAAG,IAAA,6CAA2B,EAAC,MAAM,CAAC,CAAC;QAC1D,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1C,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,uDAAG,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,IAAA,0CAAsB,EAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,UAAU,CAAC,MAA2B;QAClD,IAAI,CAAC,IAAA,2CAAyB,EAAC,MAAM,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,wCAA+B,CACvC,4OAA4O,CAC7O,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,+GAA+G;IAClG,MAAM,CAA4B,KAAQ;;YACrD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,CAAC;KAAA;IAED,mFAAmF;IAC5E,UAAU,CAA4B,KAAQ;QACnD,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAM,CAAC;QAC3C,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEO,SAAS,CACf,KAAQ,EACR,MAAoC;QAEpC,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAM,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAEO,iBAAiB,CAAI,KAAQ;QACnC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,6BAAoB,EAAE,CAAC;IACzD,CAAC;IAEO,cAAc,CAA4B,QAAW,EAAE,MAAS;QACtE,OAAO;YACL,MAAM;YACN,MAAM,EAAE,IAAA,0BAAiB,EACvB,QAAqB,EACrB,MAAmB,EACnB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAC7B,IAAI,CAAC,IAAI,CAAC,aAAa,EACvB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAC7B,IAAI,CAAC,IAAI,CAAC,eAAe,CAC1B;SACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACU,MAAM,CAA4B,KAAQ;;YACrD,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC1B,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAChC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACjC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAM,CAAC;YACvC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAED;;;OAGG;IACI,UAAU,CAA4B,KAAQ;QACnD,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAwB,CAAM,CAAC;IACnF,CAAC;IAED,uHAAuH;IAC1G,aAAa,CAA4B,KAAQ;;YAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACjC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC9B,OAAO;YACT,CAAC;YAED,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAwB,CAAC,CAAC,CAAC;QACpH,CAAC;KAAA;IAED;;;OAGG;IACI,iBAAiB,CAA4B,KAAQ;QAC1D,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAChC,MAAM,IAAI,2BAAkB,CAAC,+EAA+E,CAAC,CAAC;QAChH,CAAC;QAED,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAwB,CAAC,CAAC,CAAC;IAClH,CAAC;IAEO,uBAAuB,CAC7B,KAAQ,EACR,MAAqB;QAErB,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;YACxB,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;gBAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;oBACrC,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBACzC,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,KAAc;QACzC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,IAAI,2BAAkB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAEO,sBAAsB,CAAC,KAAsB;QACnD,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,IAAI,CAAC;IACtE,CAAC;CACF;AA7KD,sCA6KC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FieldRedactor } from './fieldRedactor';
|
|
2
|
-
import { CustomObject, FieldRedactorConfig, Redactor, SyncRedactor } from './types';
|
|
2
|
+
import { CustomObject, FieldRedactorConfig, PathRuleMode, Redactor, SyncRedactor } from './types';
|
|
3
3
|
export type SchemaOptions = {
|
|
4
4
|
/** Optional label surfaced in {@link FieldRedactor.dryRun} `matchedSchemas` reports. */
|
|
5
5
|
name?: string;
|
|
@@ -28,6 +28,12 @@ export declare class FieldRedactorConfigBuilder {
|
|
|
28
28
|
* Lowest precedence; opt-in defense in depth beyond key-name rules.
|
|
29
29
|
*/
|
|
30
30
|
valuePattern(...patterns: RegExp[]): this;
|
|
31
|
+
/**
|
|
32
|
+
* Path rule — apply a redaction mode at a JSON path (`metadata.*.value`, `accountInfo.id`).
|
|
33
|
+
*/
|
|
34
|
+
pathRule(path: string, mode: PathRuleMode): this;
|
|
35
|
+
/** Allowlist — matching key names are never redacted under deep parents (`passKeys`). */
|
|
36
|
+
passKey(...patterns: RegExp[]): this;
|
|
31
37
|
/**
|
|
32
38
|
* Merge a {@link presets} return value (or any partial config) into the builder.
|
|
33
39
|
* Regex arrays and schemas accumulate; scalar options apply only when not already set.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldRedactorConfigBuilder.d.ts","sourceRoot":"","sources":["../src/fieldRedactorConfigBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"fieldRedactorConfigBuilder.d.ts","sourceRoot":"","sources":["../src/fieldRedactorConfigBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAElG,MAAM,MAAM,aAAa,GAAG;IAC1B,wFAAwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,OAAO,CAA0B;IAEzC,MAAM,CAAC,MAAM,IAAI,0BAA0B;IAI3C,oEAAoE;IACpE,OAAO,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIpC,sEAAsE;IACtE,IAAI,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIjC,4EAA4E;IAC5E,MAAM,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAInC,sEAAsE;IACtE,MAAM,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAInC,2DAA2D;IAC3D,MAAM,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAInC,mDAAmD;IACnD,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IAKjE;;;OAGG;IACH,YAAY,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAKzC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI;IAKhD,yFAAyF;IACzF,OAAO,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAKpC;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAKrD,QAAQ,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAI5B,YAAY,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IAIpC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIpC,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI3C,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIhC,MAAM,CAAC,KAAK,UAAO,GAAG,IAAI;IAI1B,eAAe,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIzD,KAAK,IAAI,mBAAmB;IAI5B,aAAa,IAAI,aAAa;IAI9B,iBAAiB,IAAI,aAAa;IAIlC,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,GAAG;CAIZ"}
|
|
@@ -47,6 +47,19 @@ class FieldRedactorConfigBuilder {
|
|
|
47
47
|
(0, redactionRules_1.appendRegExpArray)(this.config, 'valuePatterns', patterns);
|
|
48
48
|
return this;
|
|
49
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Path rule — apply a redaction mode at a JSON path (`metadata.*.value`, `accountInfo.id`).
|
|
52
|
+
*/
|
|
53
|
+
pathRule(path, mode) {
|
|
54
|
+
var _a;
|
|
55
|
+
this.config.pathRules = [...((_a = this.config.pathRules) !== null && _a !== void 0 ? _a : []), { path, mode }];
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
/** Allowlist — matching key names are never redacted under deep parents (`passKeys`). */
|
|
59
|
+
passKey(...patterns) {
|
|
60
|
+
(0, redactionRules_1.appendRegExpArray)(this.config, 'passKeys', patterns);
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
50
63
|
/**
|
|
51
64
|
* Merge a {@link presets} return value (or any partial config) into the builder.
|
|
52
65
|
* Regex arrays and schemas accumulate; scalar options apply only when not already set.
|
|
@@ -86,7 +99,7 @@ class FieldRedactorConfigBuilder {
|
|
|
86
99
|
return fieldRedactor_1.FieldRedactor.createSafe(this.build());
|
|
87
100
|
}
|
|
88
101
|
appendRegex(field, patterns) {
|
|
89
|
-
(0, redactionRules_1.
|
|
102
|
+
(0, redactionRules_1.appendRegExpArray)(this.config, field, patterns);
|
|
90
103
|
return this;
|
|
91
104
|
}
|
|
92
105
|
set(key, value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldRedactorConfigBuilder.js","sourceRoot":"","sources":["../src/fieldRedactorConfigBuilder.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"fieldRedactorConfigBuilder.js","sourceRoot":"","sources":["../src/fieldRedactorConfigBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,13 @@ import { ObjectRedactor } from './objectRedactor';
|
|
|
3
3
|
import { PrimitiveRedactor } from './primitiveRedactor';
|
|
4
4
|
import { SecretManager } from './secretManager';
|
|
5
5
|
import { FieldRedactorConfig } from './types';
|
|
6
|
+
import { PathRuleMatcher } from './pathRuleMatcher';
|
|
6
7
|
import { ValuePatternMatcher } from './valuePatternMatcher';
|
|
7
8
|
export type FieldRedactorDeps = {
|
|
8
9
|
primitiveRedactor: PrimitiveRedactor;
|
|
9
10
|
secretManager: SecretManager;
|
|
10
11
|
valuePatternMatcher: ValuePatternMatcher;
|
|
12
|
+
pathRuleMatcher: PathRuleMatcher;
|
|
11
13
|
customObjectManager: CustomObjectManager;
|
|
12
14
|
objectRedactor: ObjectRedactor;
|
|
13
15
|
usesAsyncRedactor: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldRedactorDeps.d.ts","sourceRoot":"","sources":["../src/fieldRedactorDeps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAA+B,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEzF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,EAAE,aAAa,CAAC;IAC7B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,cAAc,EAAE,cAAc,CAAC;IAC/B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"fieldRedactorDeps.d.ts","sourceRoot":"","sources":["../src/fieldRedactorDeps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAA2B,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAA+B,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEzF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,EAAE,aAAa,CAAC;IAC7B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,eAAe,EAAE,eAAe,CAAC;IACjC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,cAAc,EAAE,cAAc,CAAC;IAC/B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAKF,eAAO,MAAM,sBAAsB,YAAa,mBAAmB,KAAG,iBAgDrE,CAAC"}
|
|
@@ -6,15 +6,14 @@ const objectRedactor_1 = require("./objectRedactor");
|
|
|
6
6
|
const primitiveRedactor_1 = require("./primitiveRedactor");
|
|
7
7
|
const redactionRules_1 = require("./redactionRules");
|
|
8
8
|
const secretManager_1 = require("./secretManager");
|
|
9
|
+
const pathRuleMatcher_1 = require("./pathRuleMatcher");
|
|
9
10
|
const valuePatternMatcher_1 = require("./valuePatternMatcher");
|
|
11
|
+
const resolveBoolean = (value, defaultValue) => typeof value === 'boolean' ? value : defaultValue;
|
|
10
12
|
const buildFieldRedactorDeps = (config) => {
|
|
11
|
-
const { redactor, syncRedactor, deepSecretKeys, fullSecretKeys, deleteSecretKeys, customObjects, valuePatterns } = config !== null && config !== void 0 ? config : {};
|
|
12
|
-
const ignoreNullOrUndefined = typeof (config === null || config === void 0 ? void 0 : config.ignoreNullOrUndefined) === 'boolean' ? config.ignoreNullOrUndefined : true;
|
|
13
|
-
const ignoreBooleans = typeof (config === null || config === void 0 ? void 0 : config.ignoreBooleans) === 'boolean' ? config.ignoreBooleans : false;
|
|
14
|
-
const cloneInput = (config === null || config === void 0 ? void 0 : config.cloneInput) !== false;
|
|
13
|
+
const { redactor, syncRedactor, deepSecretKeys, fullSecretKeys, deleteSecretKeys, customObjects, valuePatterns, pathRules, passKeys } = config !== null && config !== void 0 ? config : {};
|
|
15
14
|
const primitiveRedactor = new primitiveRedactor_1.PrimitiveRedactor({
|
|
16
|
-
ignoreBooleans,
|
|
17
|
-
ignoreNullOrUndefined,
|
|
15
|
+
ignoreBooleans: resolveBoolean(config === null || config === void 0 ? void 0 : config.ignoreBooleans, false),
|
|
16
|
+
ignoreNullOrUndefined: resolveBoolean(config === null || config === void 0 ? void 0 : config.ignoreNullOrUndefined, true),
|
|
18
17
|
redactor,
|
|
19
18
|
syncRedactor
|
|
20
19
|
});
|
|
@@ -22,19 +21,22 @@ const buildFieldRedactorDeps = (config) => {
|
|
|
22
21
|
secretKeys: (0, redactionRules_1.resolveSecretKeys)(config),
|
|
23
22
|
deepSecretKeys,
|
|
24
23
|
fullSecretKeys,
|
|
25
|
-
deleteSecretKeys
|
|
24
|
+
deleteSecretKeys,
|
|
25
|
+
passKeys
|
|
26
26
|
});
|
|
27
27
|
const valuePatternMatcher = (valuePatterns === null || valuePatterns === void 0 ? void 0 : valuePatterns.length) ? new valuePatternMatcher_1.ValuePatternMatcher(valuePatterns) : valuePatternMatcher_1.EMPTY_VALUE_PATTERN_MATCHER;
|
|
28
|
+
const pathRuleMatcher = (pathRules === null || pathRules === void 0 ? void 0 : pathRules.length) ? new pathRuleMatcher_1.PathRuleMatcher(pathRules) : pathRuleMatcher_1.EMPTY_PATH_RULE_MATCHER;
|
|
28
29
|
const customObjectManager = new customObjectManager_1.CustomObjectManager(customObjects, config === null || config === void 0 ? void 0 : config.schemaNames);
|
|
29
|
-
const objectRedactor = new objectRedactor_1.ObjectRedactor(primitiveRedactor, secretManager, customObjectManager, valuePatternMatcher);
|
|
30
|
+
const objectRedactor = new objectRedactor_1.ObjectRedactor(primitiveRedactor, secretManager, customObjectManager, valuePatternMatcher, pathRuleMatcher);
|
|
30
31
|
return {
|
|
31
32
|
primitiveRedactor,
|
|
32
33
|
secretManager,
|
|
33
34
|
valuePatternMatcher,
|
|
35
|
+
pathRuleMatcher,
|
|
34
36
|
customObjectManager,
|
|
35
37
|
objectRedactor,
|
|
36
38
|
usesAsyncRedactor: primitiveRedactor.usesAsyncRedactor(),
|
|
37
|
-
cloneInput
|
|
39
|
+
cloneInput: (config === null || config === void 0 ? void 0 : config.cloneInput) !== false
|
|
38
40
|
};
|
|
39
41
|
};
|
|
40
42
|
exports.buildFieldRedactorDeps = buildFieldRedactorDeps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldRedactorDeps.js","sourceRoot":"","sources":["../src/fieldRedactorDeps.ts"],"names":[],"mappings":";;;AAAA,+DAA4D;AAC5D,qDAAkD;AAClD,2DAAwD;AACxD,qDAAqD;AACrD,mDAAgD;AAEhD,+DAAyF;
|
|
1
|
+
{"version":3,"file":"fieldRedactorDeps.js","sourceRoot":"","sources":["../src/fieldRedactorDeps.ts"],"names":[],"mappings":";;;AAAA,+DAA4D;AAC5D,qDAAkD;AAClD,2DAAwD;AACxD,qDAAqD;AACrD,mDAAgD;AAEhD,uDAA6E;AAC7E,+DAAyF;AAazF,MAAM,cAAc,GAAG,CAAC,KAA0B,EAAE,YAAqB,EAAW,EAAE,CACpF,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;AAE7C,MAAM,sBAAsB,GAAG,CAAC,MAA4B,EAAqB,EAAE;IACxF,MAAM,EACJ,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,SAAS,EACT,QAAQ,EACT,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;IAEjB,MAAM,iBAAiB,GAAG,IAAI,qCAAiB,CAAC;QAC9C,cAAc,EAAE,cAAc,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,EAAE,KAAK,CAAC;QAC7D,qBAAqB,EAAE,cAAc,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,qBAAqB,EAAE,IAAI,CAAC;QAC1E,QAAQ;QACR,YAAY;KACb,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAI,6BAAa,CAAC;QACtC,UAAU,EAAE,IAAA,kCAAiB,EAAC,MAAM,CAAC;QACrC,cAAc;QACd,cAAc;QACd,gBAAgB;QAChB,QAAQ;KACT,CAAC,CAAC;IACH,MAAM,mBAAmB,GAAG,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,EAAC,CAAC,CAAC,IAAI,yCAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,iDAA2B,CAAC;IACzH,MAAM,eAAe,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,EAAC,CAAC,CAAC,IAAI,iCAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,yCAAuB,CAAC;IACrG,MAAM,mBAAmB,GAAG,IAAI,yCAAmB,CAAC,aAAa,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAC,CAAC;IACxF,MAAM,cAAc,GAAG,IAAI,+BAAc,CACvC,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,CAChB,CAAC;IAEF,OAAO;QACL,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,eAAe;QACf,mBAAmB;QACnB,cAAc;QACd,iBAAiB,EAAE,iBAAiB,CAAC,iBAAiB,EAAE;QACxD,UAAU,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,MAAK,KAAK;KACzC,CAAC;AACJ,CAAC,CAAC;AAhDW,QAAA,sBAAsB,0BAgDjC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { FieldRedactor } from './fieldRedactor';
|
|
2
|
-
export { CustomObjectMatchType, Redactor, FieldRedactorConfig, CustomObject, DryRunReport, DryRunResult, DryRunPathRule, MatchedSchemaReport, RedactionRuleLabel, JsonArray, JsonFunction, JsonLeafValue, JsonObject, JsonPrimitive, JsonValue, RedactableInput, RedactablePrimitive, RedactedPrimitive, RedactorInput, SecretSpecifierValue, SyncRedactor, TraversableJson, isJsonObject } from './types';
|
|
1
|
+
import { FieldRedactor } from './api/fieldRedactor';
|
|
2
|
+
export { CustomObjectMatchType, Redactor, FieldRedactorConfig, CustomObject, DryRunReport, DryRunResult, DryRunPathRule, MatchedSchemaReport, PathRule, PathRuleMode, RedactionMode, RedactionRuleLabel, JsonArray, JsonFunction, JsonLeafValue, JsonObject, JsonPrimitive, JsonValue, RedactableInput, RedactablePrimitive, RedactedPrimitive, RedactorInput, SecretSpecifierValue, SyncRedactor, TraversableJson, isJsonObject } from './types';
|
|
3
3
|
export { FieldRedactorError, FieldRedactorConfigurationError } from './errors';
|
|
4
|
-
export { validateFieldRedactorConfig, hasExplicitRedactionRules } from './configValidator';
|
|
5
|
-
export { EMPTY_DRY_RUN_REPORT } from './dryRun';
|
|
6
|
-
export { presets } from './presets';
|
|
7
|
-
export { FieldRedactorConfigBuilder } from './fieldRedactorConfigBuilder';
|
|
8
|
-
export type { SchemaOptions } from './fieldRedactorConfigBuilder';
|
|
4
|
+
export { validateFieldRedactorConfig, hasExplicitRedactionRules } from './config/configValidator';
|
|
5
|
+
export { EMPTY_DRY_RUN_REPORT } from './dryrun/dryRun';
|
|
6
|
+
export { presets } from './config/presets';
|
|
7
|
+
export { FieldRedactorConfigBuilder } from './api/fieldRedactorConfigBuilder';
|
|
8
|
+
export type { SchemaOptions } from './api/fieldRedactorConfigBuilder';
|
|
9
9
|
export { FieldRedactor };
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,qBAAqB,EACrB,QAAQ,EACR,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,aAAa,EACb,UAAU,EACV,aAAa,EACb,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,YAAY,EACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,+BAA+B,EAAE,MAAM,UAAU,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,YAAY,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FieldRedactor = exports.FieldRedactorConfigBuilder = exports.presets = exports.EMPTY_DRY_RUN_REPORT = exports.hasExplicitRedactionRules = exports.validateFieldRedactorConfig = exports.FieldRedactorConfigurationError = exports.FieldRedactorError = exports.isJsonObject = exports.CustomObjectMatchType = void 0;
|
|
4
|
-
const fieldRedactor_1 = require("./fieldRedactor");
|
|
4
|
+
const fieldRedactor_1 = require("./api/fieldRedactor");
|
|
5
5
|
Object.defineProperty(exports, "FieldRedactor", { enumerable: true, get: function () { return fieldRedactor_1.FieldRedactor; } });
|
|
6
6
|
var types_1 = require("./types");
|
|
7
7
|
Object.defineProperty(exports, "CustomObjectMatchType", { enumerable: true, get: function () { return types_1.CustomObjectMatchType; } });
|
|
@@ -9,13 +9,13 @@ Object.defineProperty(exports, "isJsonObject", { enumerable: true, get: function
|
|
|
9
9
|
var errors_1 = require("./errors");
|
|
10
10
|
Object.defineProperty(exports, "FieldRedactorError", { enumerable: true, get: function () { return errors_1.FieldRedactorError; } });
|
|
11
11
|
Object.defineProperty(exports, "FieldRedactorConfigurationError", { enumerable: true, get: function () { return errors_1.FieldRedactorConfigurationError; } });
|
|
12
|
-
var configValidator_1 = require("./configValidator");
|
|
12
|
+
var configValidator_1 = require("./config/configValidator");
|
|
13
13
|
Object.defineProperty(exports, "validateFieldRedactorConfig", { enumerable: true, get: function () { return configValidator_1.validateFieldRedactorConfig; } });
|
|
14
14
|
Object.defineProperty(exports, "hasExplicitRedactionRules", { enumerable: true, get: function () { return configValidator_1.hasExplicitRedactionRules; } });
|
|
15
|
-
var dryRun_1 = require("./dryRun");
|
|
15
|
+
var dryRun_1 = require("./dryrun/dryRun");
|
|
16
16
|
Object.defineProperty(exports, "EMPTY_DRY_RUN_REPORT", { enumerable: true, get: function () { return dryRun_1.EMPTY_DRY_RUN_REPORT; } });
|
|
17
|
-
var presets_1 = require("./presets");
|
|
17
|
+
var presets_1 = require("./config/presets");
|
|
18
18
|
Object.defineProperty(exports, "presets", { enumerable: true, get: function () { return presets_1.presets; } });
|
|
19
|
-
var fieldRedactorConfigBuilder_1 = require("./fieldRedactorConfigBuilder");
|
|
19
|
+
var fieldRedactorConfigBuilder_1 = require("./api/fieldRedactorConfigBuilder");
|
|
20
20
|
Object.defineProperty(exports, "FieldRedactorConfigBuilder", { enumerable: true, get: function () { return fieldRedactorConfigBuilder_1.FieldRedactorConfigBuilder; } });
|
|
21
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uDAAoD;AAmC3C,8FAnCA,6BAAa,OAmCA;AAlCtB,iCA2BiB;AA1Bf,8GAAA,qBAAqB,OAAA;AAyBrB,qGAAA,YAAY,OAAA;AAEd,mCAA+E;AAAtE,4GAAA,kBAAkB,OAAA;AAAE,yHAAA,+BAA+B,OAAA;AAC5D,4DAAkG;AAAzF,8HAAA,2BAA2B,OAAA;AAAE,4HAAA,yBAAyB,OAAA;AAC/D,0CAAuD;AAA9C,8GAAA,oBAAoB,OAAA;AAC7B,4CAA2C;AAAlC,kGAAA,OAAO,OAAA;AAChB,+EAA8E;AAArE,wIAAA,0BAA0B,OAAA"}
|
package/dist/jsonWalk.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { JsonArray, JsonObject, JsonValue } from './types';
|
|
2
|
-
export
|
|
2
|
+
export { parseJsonPath } from './pathParsing';
|
|
3
3
|
export declare const getJsonValueAtPath: (value: JsonValue | undefined, segments: Array<string | number>) => JsonValue | undefined;
|
|
4
4
|
export declare const getParentContext: (value: JsonValue | undefined, segments: Array<string | number>) => {
|
|
5
5
|
parent: JsonObject | JsonArray | undefined;
|
package/dist/jsonWalk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonWalk.d.ts","sourceRoot":"","sources":["../src/jsonWalk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzE,
|
|
1
|
+
{"version":3,"file":"jsonWalk.d.ts","sourceRoot":"","sources":["../src/jsonWalk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,eAAO,MAAM,kBAAkB,UAAW,SAAS,GAAG,SAAS,YAAY,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAAG,SAAS,GAAG,SAsB/G,CAAC;AAEF,eAAO,MAAM,gBAAgB,UACpB,SAAS,GAAG,SAAS,YAClB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAC/B;IAAE,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CASjF,CAAC;AAEF,eAAO,MAAM,QAAQ,SAAU,MAAM,WAAW,MAAM,GAAG,MAAM,KAAG,MACqD,CAAC;AAExH,eAAO,MAAM,iBAAiB,UAAW,SAAS,GAAG,SAAS,KAAG,KAAK,IAAI,UAAU,GAAG,SAAS,EAC9B,CAAC;AAEnE,eAAO,MAAM,mBAAmB,UACvB,SAAS,GAAG,SAAS,QACtB,MAAM,SACL,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,KAC9C,IAgBF,CAAC"}
|
package/dist/jsonWalk.js
CHANGED
|
@@ -2,39 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.walkTraversableJson = exports.isTraversableJson = exports.joinPath = exports.getParentContext = exports.getJsonValueAtPath = exports.parseJsonPath = void 0;
|
|
4
4
|
const types_1 = require("./types");
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
return [];
|
|
8
|
-
}
|
|
9
|
-
const segments = [];
|
|
10
|
-
let current = '';
|
|
11
|
-
for (let index = 0; index < path.length; index++) {
|
|
12
|
-
const char = path[index];
|
|
13
|
-
if (char === '.') {
|
|
14
|
-
if (current) {
|
|
15
|
-
segments.push(current);
|
|
16
|
-
current = '';
|
|
17
|
-
}
|
|
18
|
-
continue;
|
|
19
|
-
}
|
|
20
|
-
if (char === '[') {
|
|
21
|
-
if (current) {
|
|
22
|
-
segments.push(current);
|
|
23
|
-
current = '';
|
|
24
|
-
}
|
|
25
|
-
const close = path.indexOf(']', index);
|
|
26
|
-
segments.push(Number(path.slice(index + 1, close)));
|
|
27
|
-
index = close;
|
|
28
|
-
continue;
|
|
29
|
-
}
|
|
30
|
-
current += char;
|
|
31
|
-
}
|
|
32
|
-
if (current) {
|
|
33
|
-
segments.push(current);
|
|
34
|
-
}
|
|
35
|
-
return segments;
|
|
36
|
-
};
|
|
37
|
-
exports.parseJsonPath = parseJsonPath;
|
|
5
|
+
var pathParsing_1 = require("./pathParsing");
|
|
6
|
+
Object.defineProperty(exports, "parseJsonPath", { enumerable: true, get: function () { return pathParsing_1.parseJsonPath; } });
|
|
38
7
|
const getJsonValueAtPath = (value, segments) => {
|
|
39
8
|
let current = value;
|
|
40
9
|
for (const segment of segments) {
|
package/dist/jsonWalk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonWalk.js","sourceRoot":"","sources":["../src/jsonWalk.ts"],"names":[],"mappings":";;;AAAA,mCAAyE;
|
|
1
|
+
{"version":3,"file":"jsonWalk.js","sourceRoot":"","sources":["../src/jsonWalk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type MaybeAsync<T> = T | Promise<T>;
|
|
2
|
+
export declare const awaitMaybe: <T>(value: MaybeAsync<T>) => Promise<T>;
|
|
3
|
+
/** Normalizes sync results for async traversal without forcing Promises on the sync path. */
|
|
4
|
+
export declare const resolveMaybeAsync: <T>(value: MaybeAsync<T>, asyncMode: boolean) => MaybeAsync<T>;
|
|
5
|
+
export declare const runSequential: <T>(items: readonly T[], process: (item: T, index: number) => MaybeAsync<void>, asyncMode: boolean) => MaybeAsync<void>;
|
|
6
|
+
export declare const finalizeMaybeAsync: <T>(work: MaybeAsync<void>, result: () => T, asyncMode: boolean) => MaybeAsync<T>;
|
|
7
|
+
//# sourceMappingURL=maybeAsync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maybeAsync.d.ts","sourceRoot":"","sources":["../src/maybeAsync.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE3C,eAAO,MAAM,UAAU,GAAU,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAAU,CAAC;AAE/E,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,aAAa,OAAO,KAAG,UAAU,CAAC,CAAC,CAU3F,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,CAAC,SACtB,SAAS,CAAC,EAAE,WACV,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,CAAC,IAAI,CAAC,aAC1C,OAAO,KACjB,UAAU,CAAC,IAAI,CAgBjB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,CAAC,QAAQ,UAAU,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,aAAa,OAAO,KAAG,UAAU,CAAC,CAAC,CAa/G,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.finalizeMaybeAsync = exports.runSequential = exports.resolveMaybeAsync = exports.awaitMaybe = void 0;
|
|
13
|
+
const awaitMaybe = (value) => __awaiter(void 0, void 0, void 0, function* () { return value; });
|
|
14
|
+
exports.awaitMaybe = awaitMaybe;
|
|
15
|
+
/** Normalizes sync results for async traversal without forcing Promises on the sync path. */
|
|
16
|
+
const resolveMaybeAsync = (value, asyncMode) => {
|
|
17
|
+
if (!asyncMode) {
|
|
18
|
+
if (value instanceof Promise) {
|
|
19
|
+
throw new Error('Unexpected async work on sync traversal path');
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
return value instanceof Promise ? value : Promise.resolve(value);
|
|
24
|
+
};
|
|
25
|
+
exports.resolveMaybeAsync = resolveMaybeAsync;
|
|
26
|
+
const runSequential = (items, process, asyncMode) => {
|
|
27
|
+
if (!asyncMode) {
|
|
28
|
+
for (let index = 0; index < items.length; index++) {
|
|
29
|
+
const result = process(items[index], index);
|
|
30
|
+
if (result instanceof Promise) {
|
|
31
|
+
throw new Error('Unexpected async work on sync traversal path');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
return (() => __awaiter(void 0, void 0, void 0, function* () {
|
|
37
|
+
for (let index = 0; index < items.length; index++) {
|
|
38
|
+
yield process(items[index], index);
|
|
39
|
+
}
|
|
40
|
+
}))();
|
|
41
|
+
};
|
|
42
|
+
exports.runSequential = runSequential;
|
|
43
|
+
const finalizeMaybeAsync = (work, result, asyncMode) => {
|
|
44
|
+
if (!asyncMode) {
|
|
45
|
+
if (work instanceof Promise) {
|
|
46
|
+
throw new Error('Unexpected async work on sync traversal path');
|
|
47
|
+
}
|
|
48
|
+
return result();
|
|
49
|
+
}
|
|
50
|
+
if (work instanceof Promise) {
|
|
51
|
+
return work.then(result);
|
|
52
|
+
}
|
|
53
|
+
return result();
|
|
54
|
+
};
|
|
55
|
+
exports.finalizeMaybeAsync = finalizeMaybeAsync;
|
|
56
|
+
//# sourceMappingURL=maybeAsync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maybeAsync.js","sourceRoot":"","sources":["../src/maybeAsync.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEO,MAAM,UAAU,GAAG,CAAU,KAAoB,EAAc,EAAE,kDAAC,OAAA,KAAK,CAAA,GAAA,CAAC;AAAlE,QAAA,UAAU,cAAwD;AAE/E,6FAA6F;AACtF,MAAM,iBAAiB,GAAG,CAAI,KAAoB,EAAE,SAAkB,EAAiB,EAAE;IAC9F,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,YAAY,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC,CAAC;AAVW,QAAA,iBAAiB,qBAU5B;AAEK,MAAM,aAAa,GAAG,CAC3B,KAAmB,EACnB,OAAqD,EACrD,SAAkB,EACA,EAAE;IACpB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;YAC5C,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QACD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAS,EAAE;QACjB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAClD,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAA,CAAC,EAAE,CAAC;AACP,CAAC,CAAC;AApBW,QAAA,aAAa,iBAoBxB;AAEK,MAAM,kBAAkB,GAAG,CAAI,IAAsB,EAAE,MAAe,EAAE,SAAkB,EAAiB,EAAE;IAClH,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,IAAI,YAAY,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,YAAY,OAAO,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,MAAM,EAAE,CAAC;AAClB,CAAC,CAAC;AAbW,QAAA,kBAAkB,sBAa7B"}
|
package/dist/objectRedactor.d.ts
CHANGED
|
@@ -3,13 +3,14 @@ import { CustomObjectManager } from './customObjectManager';
|
|
|
3
3
|
import { PrimitiveRedactor } from './primitiveRedactor';
|
|
4
4
|
import { SecretManager } from './secretManager';
|
|
5
5
|
import { ValuePatternMatcher } from './valuePatternMatcher';
|
|
6
|
+
import { PathRuleMatcher } from './pathRuleMatcher';
|
|
6
7
|
/**
|
|
7
8
|
* Redacts fields in a JSON object using the secretManager, primitiveRedactor, and CustomObjectChecker provided in the
|
|
8
9
|
* constructor. CustomObjects take highest precedence, followed by fullSecretKeys, then deepSecretKeys, and finally secretKeys.
|
|
9
10
|
*/
|
|
10
11
|
export declare class ObjectRedactor {
|
|
11
12
|
private readonly traversal;
|
|
12
|
-
constructor(primitiveRedactor: PrimitiveRedactor, secretManager: SecretManager, customObjManager: CustomObjectManager, valuePatternMatcher: ValuePatternMatcher);
|
|
13
|
+
constructor(primitiveRedactor: PrimitiveRedactor, secretManager: SecretManager, customObjManager: CustomObjectManager, valuePatternMatcher: ValuePatternMatcher, pathRuleMatcher: PathRuleMatcher);
|
|
13
14
|
redactInPlace<T extends TraversableJson>(value: T): Promise<T>;
|
|
14
15
|
redactInPlaceSync<T extends TraversableJson>(value: T): T;
|
|
15
16
|
redactCopyOnWrite<T extends TraversableJson>(value: T): T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objectRedactor.d.ts","sourceRoot":"","sources":["../src/objectRedactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"objectRedactor.d.ts","sourceRoot":"","sources":["../src/objectRedactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;gBAGlD,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,mBAAmB,EACrC,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,eAAe;IAWrB,aAAa,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAQpE,iBAAiB,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;IAIzD,iBAAiB,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;CAGjE"}
|
package/dist/objectRedactor.js
CHANGED
|
@@ -16,8 +16,8 @@ const objectRedactorTraversal_1 = require("./objectRedactorTraversal");
|
|
|
16
16
|
* constructor. CustomObjects take highest precedence, followed by fullSecretKeys, then deepSecretKeys, and finally secretKeys.
|
|
17
17
|
*/
|
|
18
18
|
class ObjectRedactor {
|
|
19
|
-
constructor(primitiveRedactor, secretManager, customObjManager, valuePatternMatcher) {
|
|
20
|
-
this.traversal = new objectRedactorTraversal_1.ObjectRedactorTraversal(primitiveRedactor, secretManager, customObjManager, valuePatternMatcher);
|
|
19
|
+
constructor(primitiveRedactor, secretManager, customObjManager, valuePatternMatcher, pathRuleMatcher) {
|
|
20
|
+
this.traversal = new objectRedactorTraversal_1.ObjectRedactorTraversal(primitiveRedactor, secretManager, customObjManager, valuePatternMatcher, pathRuleMatcher);
|
|
21
21
|
}
|
|
22
22
|
redactInPlace(value) {
|
|
23
23
|
return __awaiter(this, void 0, void 0, function* () {
|