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.
Files changed (233) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/CONTRIBUTING.md +64 -0
  3. package/README.md +3 -0
  4. package/dist/api/fieldRedactor.d.ts +51 -0
  5. package/dist/api/fieldRedactor.d.ts.map +1 -0
  6. package/dist/api/fieldRedactor.js +165 -0
  7. package/dist/api/fieldRedactor.js.map +1 -0
  8. package/dist/api/fieldRedactorConfigBuilder.d.ts +57 -0
  9. package/dist/api/fieldRedactorConfigBuilder.d.ts.map +1 -0
  10. package/dist/api/fieldRedactorConfigBuilder.js +115 -0
  11. package/dist/api/fieldRedactorConfigBuilder.js.map +1 -0
  12. package/dist/api/fieldRedactorDeps.d.ts +19 -0
  13. package/dist/api/fieldRedactorDeps.d.ts.map +1 -0
  14. package/dist/api/fieldRedactorDeps.js +45 -0
  15. package/dist/api/fieldRedactorDeps.js.map +1 -0
  16. package/dist/arrayRedaction.d.ts +12 -0
  17. package/dist/arrayRedaction.d.ts.map +1 -0
  18. package/dist/arrayRedaction.js +70 -0
  19. package/dist/arrayRedaction.js.map +1 -0
  20. package/dist/config/configValidator.d.ts +9 -0
  21. package/dist/config/configValidator.d.ts.map +1 -0
  22. package/dist/config/configValidator.js +77 -0
  23. package/dist/config/configValidator.js.map +1 -0
  24. package/dist/config/customObjectSchemas.d.ts +7 -0
  25. package/dist/config/customObjectSchemas.d.ts.map +1 -0
  26. package/dist/config/customObjectSchemas.js +35 -0
  27. package/dist/config/customObjectSchemas.js.map +1 -0
  28. package/dist/config/presets.d.ts +22 -0
  29. package/dist/config/presets.d.ts.map +1 -0
  30. package/dist/config/presets.js +50 -0
  31. package/dist/config/presets.js.map +1 -0
  32. package/dist/config/redactionRules.d.ts +26 -0
  33. package/dist/config/redactionRules.d.ts.map +1 -0
  34. package/dist/config/redactionRules.js +107 -0
  35. package/dist/config/redactionRules.js.map +1 -0
  36. package/dist/configValidator.d.ts +3 -4
  37. package/dist/configValidator.d.ts.map +1 -1
  38. package/dist/configValidator.js +9 -26
  39. package/dist/configValidator.js.map +1 -1
  40. package/dist/customObjectFieldHandler.d.ts +21 -0
  41. package/dist/customObjectFieldHandler.d.ts.map +1 -0
  42. package/dist/customObjectFieldHandler.js +159 -0
  43. package/dist/customObjectFieldHandler.js.map +1 -0
  44. package/dist/customObjectManager.d.ts +1 -1
  45. package/dist/customObjectManager.js +3 -3
  46. package/dist/customObjectManager.js.map +1 -1
  47. package/dist/customObjectSchemas.d.ts +7 -0
  48. package/dist/customObjectSchemas.d.ts.map +1 -0
  49. package/dist/customObjectSchemas.js +35 -0
  50. package/dist/customObjectSchemas.js.map +1 -0
  51. package/dist/dryRun.d.ts +2 -1
  52. package/dist/dryRun.d.ts.map +1 -1
  53. package/dist/dryRun.js +2 -2
  54. package/dist/dryRun.js.map +1 -1
  55. package/dist/dryRunAttribution.d.ts +5 -3
  56. package/dist/dryRunAttribution.d.ts.map +1 -1
  57. package/dist/dryRunAttribution.js +9 -101
  58. package/dist/dryRunAttribution.js.map +1 -1
  59. package/dist/dryrun/dryRun.d.ts +9 -0
  60. package/dist/dryrun/dryRun.d.ts.map +1 -0
  61. package/dist/dryrun/dryRun.js +75 -0
  62. package/dist/dryrun/dryRun.js.map +1 -0
  63. package/dist/dryrun/dryRunAttribution.d.ts +10 -0
  64. package/dist/dryrun/dryRunAttribution.d.ts.map +1 -0
  65. package/dist/dryrun/dryRunAttribution.js +14 -0
  66. package/dist/dryrun/dryRunAttribution.js.map +1 -0
  67. package/dist/engine/arrayRedaction.d.ts +12 -0
  68. package/dist/engine/arrayRedaction.d.ts.map +1 -0
  69. package/dist/engine/arrayRedaction.js +70 -0
  70. package/dist/engine/arrayRedaction.js.map +1 -0
  71. package/dist/engine/customObjectFieldHandler.d.ts +30 -0
  72. package/dist/engine/customObjectFieldHandler.d.ts.map +1 -0
  73. package/dist/engine/customObjectFieldHandler.js +149 -0
  74. package/dist/engine/customObjectFieldHandler.js.map +1 -0
  75. package/dist/engine/objectRedactor.d.ts +18 -0
  76. package/dist/engine/objectRedactor.d.ts.map +1 -0
  77. package/dist/engine/objectRedactor.js +38 -0
  78. package/dist/engine/objectRedactor.js.map +1 -0
  79. package/dist/engine/objectRedactorCustomObject.d.ts +12 -0
  80. package/dist/engine/objectRedactorCustomObject.d.ts.map +1 -0
  81. package/dist/engine/objectRedactorCustomObject.js +22 -0
  82. package/dist/engine/objectRedactorCustomObject.js.map +1 -0
  83. package/dist/engine/objectRedactorHelpers.d.ts +8 -0
  84. package/dist/engine/objectRedactorHelpers.d.ts.map +1 -0
  85. package/dist/engine/objectRedactorHelpers.js +35 -0
  86. package/dist/engine/objectRedactorHelpers.js.map +1 -0
  87. package/dist/engine/objectRedactorMutation.d.ts +10 -0
  88. package/dist/engine/objectRedactorMutation.d.ts.map +1 -0
  89. package/dist/engine/objectRedactorMutation.js +89 -0
  90. package/dist/engine/objectRedactorMutation.js.map +1 -0
  91. package/dist/engine/objectRedactorSync.d.ts +2 -0
  92. package/dist/engine/objectRedactorSync.d.ts.map +1 -0
  93. package/dist/engine/objectRedactorSync.js +7 -0
  94. package/dist/engine/objectRedactorSync.js.map +1 -0
  95. package/dist/engine/objectRedactorTraversal.d.ts +41 -0
  96. package/dist/engine/objectRedactorTraversal.d.ts.map +1 -0
  97. package/dist/engine/objectRedactorTraversal.js +201 -0
  98. package/dist/engine/objectRedactorTraversal.js.map +1 -0
  99. package/dist/engine/primitiveRedactor.d.ts +33 -0
  100. package/dist/engine/primitiveRedactor.d.ts.map +1 -0
  101. package/dist/engine/primitiveRedactor.js +75 -0
  102. package/dist/engine/primitiveRedactor.js.map +1 -0
  103. package/dist/engine/traversalServices.d.ts +21 -0
  104. package/dist/engine/traversalServices.d.ts.map +1 -0
  105. package/dist/engine/traversalServices.js +3 -0
  106. package/dist/engine/traversalServices.js.map +1 -0
  107. package/dist/fieldDisposition.d.ts +3 -0
  108. package/dist/fieldDisposition.d.ts.map +1 -0
  109. package/dist/fieldDisposition.js +6 -0
  110. package/dist/fieldDisposition.js.map +1 -0
  111. package/dist/fieldRedactor.d.ts +6 -21
  112. package/dist/fieldRedactor.d.ts.map +1 -1
  113. package/dist/fieldRedactor.js +37 -56
  114. package/dist/fieldRedactor.js.map +1 -1
  115. package/dist/fieldRedactorConfigBuilder.d.ts +7 -1
  116. package/dist/fieldRedactorConfigBuilder.d.ts.map +1 -1
  117. package/dist/fieldRedactorConfigBuilder.js +14 -1
  118. package/dist/fieldRedactorConfigBuilder.js.map +1 -1
  119. package/dist/fieldRedactorDeps.d.ts +2 -0
  120. package/dist/fieldRedactorDeps.d.ts.map +1 -1
  121. package/dist/fieldRedactorDeps.js +11 -9
  122. package/dist/fieldRedactorDeps.js.map +1 -1
  123. package/dist/index.d.ts +7 -7
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +5 -5
  126. package/dist/index.js.map +1 -1
  127. package/dist/jsonWalk.d.ts +1 -1
  128. package/dist/jsonWalk.d.ts.map +1 -1
  129. package/dist/jsonWalk.js +2 -33
  130. package/dist/jsonWalk.js.map +1 -1
  131. package/dist/maybeAsync.d.ts +7 -0
  132. package/dist/maybeAsync.d.ts.map +1 -0
  133. package/dist/maybeAsync.js +56 -0
  134. package/dist/maybeAsync.js.map +1 -0
  135. package/dist/objectRedactor.d.ts +2 -1
  136. package/dist/objectRedactor.d.ts.map +1 -1
  137. package/dist/objectRedactor.js +2 -2
  138. package/dist/objectRedactor.js.map +1 -1
  139. package/dist/objectRedactorCustomObject.d.ts +19 -40
  140. package/dist/objectRedactorCustomObject.d.ts.map +1 -1
  141. package/dist/objectRedactorCustomObject.js +20 -101
  142. package/dist/objectRedactorCustomObject.js.map +1 -1
  143. package/dist/objectRedactorHelpers.d.ts.map +1 -1
  144. package/dist/objectRedactorHelpers.js +3 -0
  145. package/dist/objectRedactorHelpers.js.map +1 -1
  146. package/dist/objectRedactorTraversal.d.ts +20 -36
  147. package/dist/objectRedactorTraversal.d.ts.map +1 -1
  148. package/dist/objectRedactorTraversal.js +141 -516
  149. package/dist/objectRedactorTraversal.js.map +1 -1
  150. package/dist/pathParsing.d.ts +11 -0
  151. package/dist/pathParsing.d.ts.map +1 -0
  152. package/dist/pathParsing.js +53 -0
  153. package/dist/pathParsing.js.map +1 -0
  154. package/dist/pathRuleMatcher.d.ts +19 -0
  155. package/dist/pathRuleMatcher.d.ts.map +1 -0
  156. package/dist/pathRuleMatcher.js +42 -0
  157. package/dist/pathRuleMatcher.js.map +1 -0
  158. package/dist/redactionRules.d.ts +3 -4
  159. package/dist/redactionRules.d.ts.map +1 -1
  160. package/dist/redactionRules.js +7 -9
  161. package/dist/redactionRules.js.map +1 -1
  162. package/dist/ruleResolver.d.ts +65 -0
  163. package/dist/ruleResolver.d.ts.map +1 -0
  164. package/dist/ruleResolver.js +193 -0
  165. package/dist/ruleResolver.js.map +1 -0
  166. package/dist/rules/customObjectManager.d.ts +28 -0
  167. package/dist/rules/customObjectManager.d.ts.map +1 -0
  168. package/dist/rules/customObjectManager.js +60 -0
  169. package/dist/rules/customObjectManager.js.map +1 -0
  170. package/dist/rules/fieldDisposition.d.ts +3 -0
  171. package/dist/rules/fieldDisposition.d.ts.map +1 -0
  172. package/dist/rules/fieldDisposition.js +6 -0
  173. package/dist/rules/fieldDisposition.js.map +1 -0
  174. package/dist/rules/pathRuleMatcher.d.ts +19 -0
  175. package/dist/rules/pathRuleMatcher.d.ts.map +1 -0
  176. package/dist/rules/pathRuleMatcher.js +40 -0
  177. package/dist/rules/pathRuleMatcher.js.map +1 -0
  178. package/dist/rules/ruleResolver.d.ts +63 -0
  179. package/dist/rules/ruleResolver.d.ts.map +1 -0
  180. package/dist/rules/ruleResolver.js +188 -0
  181. package/dist/rules/ruleResolver.js.map +1 -0
  182. package/dist/rules/schemaSiblingKey.d.ts +4 -0
  183. package/dist/rules/schemaSiblingKey.d.ts.map +1 -0
  184. package/dist/rules/schemaSiblingKey.js +19 -0
  185. package/dist/rules/schemaSiblingKey.js.map +1 -0
  186. package/dist/rules/secretManager.d.ts +31 -0
  187. package/dist/rules/secretManager.d.ts.map +1 -0
  188. package/dist/rules/secretManager.js +85 -0
  189. package/dist/rules/secretManager.js.map +1 -0
  190. package/dist/rules/valuePatternMatcher.d.ts +15 -0
  191. package/dist/rules/valuePatternMatcher.d.ts.map +1 -0
  192. package/dist/rules/valuePatternMatcher.js +30 -0
  193. package/dist/rules/valuePatternMatcher.js.map +1 -0
  194. package/dist/secretManager.d.ts +6 -19
  195. package/dist/secretManager.d.ts.map +1 -1
  196. package/dist/secretManager.js +19 -30
  197. package/dist/secretManager.js.map +1 -1
  198. package/dist/traversalServices.d.ts +21 -0
  199. package/dist/traversalServices.d.ts.map +1 -0
  200. package/dist/traversalServices.js +3 -0
  201. package/dist/traversalServices.js.map +1 -0
  202. package/dist/types.d.ts +41 -5
  203. package/dist/types.d.ts.map +1 -1
  204. package/dist/types.js +8 -1
  205. package/dist/types.js.map +1 -1
  206. package/dist/util/jsonWalk.d.ts +10 -0
  207. package/dist/util/jsonWalk.d.ts.map +1 -0
  208. package/dist/util/jsonWalk.js +53 -0
  209. package/dist/util/jsonWalk.js.map +1 -0
  210. package/dist/util/maybeAsync.d.ts +6 -0
  211. package/dist/util/maybeAsync.d.ts.map +1 -0
  212. package/dist/util/maybeAsync.js +54 -0
  213. package/dist/util/maybeAsync.js.map +1 -0
  214. package/dist/util/pathParsing.d.ts +11 -0
  215. package/dist/util/pathParsing.d.ts.map +1 -0
  216. package/dist/util/pathParsing.js +53 -0
  217. package/dist/util/pathParsing.js.map +1 -0
  218. package/dist/util/primitiveCoercion.d.ts +4 -0
  219. package/dist/util/primitiveCoercion.d.ts.map +1 -0
  220. package/dist/util/primitiveCoercion.js +21 -0
  221. package/dist/util/primitiveCoercion.js.map +1 -0
  222. package/dist/util/regexUtils.d.ts +3 -0
  223. package/dist/util/regexUtils.d.ts.map +1 -0
  224. package/dist/util/regexUtils.js +8 -0
  225. package/dist/util/regexUtils.js.map +1 -0
  226. package/docs/guides/migration-1.5-to-1.6.md +57 -0
  227. package/docs/guides/path-rules.md +47 -0
  228. package/docs/reference/config.md +5 -1
  229. package/docs/release-notes/README.md +4 -1
  230. package/docs/release-notes/v1.6.0.md +59 -0
  231. package/docs/release-notes/v1.6.1.md +24 -0
  232. package/jest.config.js +3 -1
  233. package/package.json +8 -2
@@ -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
- const deps = (0, fieldRedactorDeps_1.buildFieldRedactorDeps)(config);
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
- if (this.isPrimitiveOrUndefined(value)) {
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.runTraversableRedactionAsync(value, () => __awaiter(this, void 0, void 0, function* () {
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.runTraversableRedactionSync(value, () => this.objectRedactor.redactInPlaceSync(value));
138
+ this.runTraversableRedaction(value, () => this.deps.objectRedactor.redactInPlaceSync(value));
150
139
  }
151
- runTraversableRedactionSync(value, redact) {
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 (e) {
159
- throw this.toFieldRedactorError(e);
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":"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"}
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;AAShD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEpF,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;;;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"}
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.appendRegexToConfig)(this.config, field, patterns);
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,qDAO0B;AAQ1B;;GAEG;AACH,MAAa,0BAA0B;IAAvC;QACU,WAAM,GAAwB,EAAE,CAAC;QACjC,YAAO,GAAuB,EAAE,CAAC;IAwG3C,CAAC;IAtGC,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,0BAA0B,EAAE,CAAC;IAC1C,CAAC;IAED,oEAAoE;IACpE,OAAO,CAAC,GAAG,QAAkB;QAC3B,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,sEAAsE;IACtE,IAAI,CAAC,GAAG,QAAkB;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,4EAA4E;IAC5E,MAAM,CAAC,GAAG,QAAkB;QAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,sEAAsE;IACtE,MAAM,CAAC,GAAG,QAAkB;QAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,2DAA2D;IAC3D,MAAM,CAAC,GAAG,QAAkB;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,mDAAmD;IACnD,MAAM,CAAC,YAA0B,EAAE,OAAuB;QACxD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,GAAG,QAAkB;QAChC,IAAA,kCAAiB,EAAC,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,MAAoC;QAC5C,IAAA,mCAAkB,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,EAAY;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,YAAY,CAAC,EAAgB;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,cAAc,CAAC,KAAc;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,qBAAqB,CAAC,KAAc;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,UAAU,CAAC,KAAc;QACvB,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,KAAK,GAAG,IAAI;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,eAAe,CAAC,OAAkC;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK;QACH,uCAAY,IAAI,CAAC,MAAM,GAAK,IAAA,0CAAyB,EAAC,IAAI,CAAC,OAAO,CAAC,EAAG;IACxE,CAAC;IAED,aAAa;QACX,OAAO,IAAI,6BAAa,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,iBAAiB;QACf,OAAO,6BAAa,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;IAEO,WAAW,CAAC,KAAuB,EAAE,QAAkB;QAC7D,IAAA,oCAAmB,EAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,GAAG,CAAsC,GAAM,EAAE,KAA6B;QACpF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA1GD,gEA0GC"}
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;AAEF,eAAO,MAAM,sBAAsB,YAAa,mBAAmB,KAAG,iBA+CrE,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;AAYlF,MAAM,sBAAsB,GAAG,CAAC,MAA4B,EAAqB,EAAE;IACxF,MAAM,EACJ,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,aAAa,EACd,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;IAEjB,MAAM,qBAAqB,GACzB,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,qBAAqB,CAAA,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3F,MAAM,cAAc,GAAG,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,CAAA,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;IACnG,MAAM,UAAU,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,MAAK,KAAK,CAAC;IAEhD,MAAM,iBAAiB,GAAG,IAAI,qCAAiB,CAAC;QAC9C,cAAc;QACd,qBAAqB;QACrB,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;KACjB,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,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,CACpB,CAAC;IAEF,OAAO;QACL,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,mBAAmB;QACnB,cAAc;QACd,iBAAiB,EAAE,iBAAiB,CAAC,iBAAiB,EAAE;QACxD,UAAU;KACX,CAAC;AACJ,CAAC,CAAC;AA/CW,QAAA,sBAAsB,0BA+CjC"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,qBAAqB,EACrB,QAAQ,EACR,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,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,mBAAmB,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,CAAC"}
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,mDAAgD;AAgCvC,8FAhCA,6BAAa,OAgCA;AA/BtB,iCAwBiB;AAvBf,8GAAA,qBAAqB,OAAA;AAsBrB,qGAAA,YAAY,OAAA;AAEd,mCAA+E;AAAtE,4GAAA,kBAAkB,OAAA;AAAE,yHAAA,+BAA+B,OAAA;AAC5D,qDAA2F;AAAlF,8HAAA,2BAA2B,OAAA;AAAE,4HAAA,yBAAyB,OAAA;AAC/D,mCAAgD;AAAvC,8GAAA,oBAAoB,OAAA;AAC7B,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,2EAA0E;AAAjE,wIAAA,0BAA0B,OAAA"}
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"}
@@ -1,5 +1,5 @@
1
1
  import { JsonArray, JsonObject, JsonValue } from './types';
2
- export declare const parseJsonPath: (path: string) => Array<string | number>;
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;
@@ -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,eAAO,MAAM,aAAa,SAAU,MAAM,KAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAuCjE,CAAC;AAEF,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;CAUjF,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"}
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
- const parseJsonPath = (path) => {
6
- if (!path) {
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) {
@@ -1 +1 @@
1
- {"version":3,"file":"jsonWalk.js","sourceRoot":"","sources":["../src/jsonWalk.ts"],"names":[],"mappings":";;;AAAA,mCAAyE;AAElE,MAAM,aAAa,GAAG,CAAC,IAAY,EAA0B,EAAE;IACpE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,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,IAAI,OAAO,EAAE,CAAC;gBACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvB,OAAO,GAAG,EAAE,CAAC;YACf,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,OAAO,EAAE,CAAC;gBACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvB,OAAO,GAAG,EAAE,CAAC;YACf,CAAC;YAED,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,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAvCW,QAAA,aAAa,iBAuCxB;AAEK,MAAM,kBAAkB,GAAG,CAAC,KAA4B,EAAE,QAAgC,EAAyB,EAAE;IAC1H,IAAI,OAAO,GAA0B,KAAK,CAAC;IAE3C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC7E,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC1D,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,IAAI,IAAA,oBAAY,EAAC,OAAO,CAAC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAtBW,QAAA,kBAAkB,sBAsB7B;AAEK,MAAM,gBAAgB,GAAG,CAC9B,KAA4B,EAC5B,QAAgC,EACmD,EAAE;IACrF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAChD,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,MAAM,GACV,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,0BAAkB,EAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnF,OAAO,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACpF,CAAC,CAAC;AAbW,QAAA,gBAAgB,oBAa3B;AAEK,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,OAAwB,EAAU,EAAE,CACzE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AAD3G,QAAA,QAAQ,YACmG;AAEjH,MAAM,iBAAiB,GAAG,CAAC,KAA4B,EAAqC,EAAE,CACnG,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,CAAC;AADtD,QAAA,iBAAiB,qBACqC;AAE5D,MAAM,mBAAmB,GAAG,CACjC,KAA4B,EAC5B,IAAY,EACZ,KAA+C,EACzC,EAAE;IACR,IAAI,CAAC,IAAA,yBAAiB,EAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAA,2BAAmB,EAAC,IAAI,EAAE,IAAA,gBAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACxF,OAAO;IACT,CAAC;IAED,IAAI,IAAA,oBAAY,EAAC,KAAK,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,IAAA,2BAAmB,EAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAA,gBAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AApBW,QAAA,mBAAmB,uBAoB9B"}
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"}
@@ -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;AAG5D;;;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;IAU7B,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"}
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"}
@@ -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* () {