field-redactor 1.6.2 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/.github/workflows/publish.yml +55 -0
  2. package/CHANGELOG.md +17 -0
  3. package/CONTRIBUTING.md +23 -2
  4. package/README.md +1 -0
  5. package/dist/api/fieldRedactor.d.ts +3 -3
  6. package/dist/api/fieldRedactor.js +4 -4
  7. package/dist/api/fieldRedactor.js.map +1 -1
  8. package/dist/config/configValidator.d.ts.map +1 -1
  9. package/dist/config/configValidator.js +16 -0
  10. package/dist/config/configValidator.js.map +1 -1
  11. package/dist/types.d.ts +27 -9
  12. package/dist/types.d.ts.map +1 -1
  13. package/dist/types.js.map +1 -1
  14. package/docs/guides/migration-1.5-to-1.6.md +4 -3
  15. package/docs/release-notes/README.md +4 -1
  16. package/docs/release-notes/v1.6.3.md +25 -0
  17. package/examples/README.md +14 -0
  18. package/examples/dry-run.ts +21 -0
  19. package/examples/logging-metadata.ts +18 -0
  20. package/examples/path-rules.ts +23 -0
  21. package/examples/value-patterns.ts +16 -0
  22. package/package.json +1 -1
  23. package/dist/arrayRedaction.d.ts +0 -12
  24. package/dist/arrayRedaction.d.ts.map +0 -1
  25. package/dist/arrayRedaction.js +0 -70
  26. package/dist/arrayRedaction.js.map +0 -1
  27. package/dist/configValidator.d.ts +0 -9
  28. package/dist/configValidator.d.ts.map +0 -1
  29. package/dist/configValidator.js +0 -77
  30. package/dist/configValidator.js.map +0 -1
  31. package/dist/copyOnWriteHelpers.d.ts +0 -20
  32. package/dist/copyOnWriteHelpers.d.ts.map +0 -1
  33. package/dist/copyOnWriteHelpers.js +0 -58
  34. package/dist/copyOnWriteHelpers.js.map +0 -1
  35. package/dist/customObjectFieldHandler.d.ts +0 -21
  36. package/dist/customObjectFieldHandler.d.ts.map +0 -1
  37. package/dist/customObjectFieldHandler.js +0 -159
  38. package/dist/customObjectFieldHandler.js.map +0 -1
  39. package/dist/customObjectManager.d.ts +0 -28
  40. package/dist/customObjectManager.d.ts.map +0 -1
  41. package/dist/customObjectManager.js +0 -60
  42. package/dist/customObjectManager.js.map +0 -1
  43. package/dist/customObjectSchemas.d.ts +0 -7
  44. package/dist/customObjectSchemas.d.ts.map +0 -1
  45. package/dist/customObjectSchemas.js +0 -35
  46. package/dist/customObjectSchemas.js.map +0 -1
  47. package/dist/dryRun.d.ts +0 -9
  48. package/dist/dryRun.d.ts.map +0 -1
  49. package/dist/dryRun.js +0 -75
  50. package/dist/dryRun.js.map +0 -1
  51. package/dist/dryRunAttribution.d.ts +0 -10
  52. package/dist/dryRunAttribution.d.ts.map +0 -1
  53. package/dist/dryRunAttribution.js +0 -14
  54. package/dist/dryRunAttribution.js.map +0 -1
  55. package/dist/dryrun/dryRunAttribution.d.ts +0 -10
  56. package/dist/dryrun/dryRunAttribution.d.ts.map +0 -1
  57. package/dist/dryrun/dryRunAttribution.js +0 -14
  58. package/dist/dryrun/dryRunAttribution.js.map +0 -1
  59. package/dist/engine/objectRedactor.d.ts +0 -18
  60. package/dist/engine/objectRedactor.d.ts.map +0 -1
  61. package/dist/engine/objectRedactor.js +0 -38
  62. package/dist/engine/objectRedactor.js.map +0 -1
  63. package/dist/engine/objectRedactorSync.d.ts +0 -2
  64. package/dist/engine/objectRedactorSync.d.ts.map +0 -1
  65. package/dist/engine/objectRedactorSync.js +0 -7
  66. package/dist/engine/objectRedactorSync.js.map +0 -1
  67. package/dist/fieldDisposition.d.ts +0 -3
  68. package/dist/fieldDisposition.d.ts.map +0 -1
  69. package/dist/fieldDisposition.js +0 -6
  70. package/dist/fieldDisposition.js.map +0 -1
  71. package/dist/fieldRedactor.d.ts +0 -51
  72. package/dist/fieldRedactor.d.ts.map +0 -1
  73. package/dist/fieldRedactor.js +0 -165
  74. package/dist/fieldRedactor.js.map +0 -1
  75. package/dist/fieldRedactorConfigBuilder.d.ts +0 -55
  76. package/dist/fieldRedactorConfigBuilder.d.ts.map +0 -1
  77. package/dist/fieldRedactorConfigBuilder.js +0 -111
  78. package/dist/fieldRedactorConfigBuilder.js.map +0 -1
  79. package/dist/fieldRedactorDeps.d.ts +0 -19
  80. package/dist/fieldRedactorDeps.d.ts.map +0 -1
  81. package/dist/fieldRedactorDeps.js +0 -43
  82. package/dist/fieldRedactorDeps.js.map +0 -1
  83. package/dist/jsonWalk.d.ts +0 -11
  84. package/dist/jsonWalk.d.ts.map +0 -1
  85. package/dist/jsonWalk.js +0 -55
  86. package/dist/jsonWalk.js.map +0 -1
  87. package/dist/maybeAsync.d.ts +0 -7
  88. package/dist/maybeAsync.d.ts.map +0 -1
  89. package/dist/maybeAsync.js +0 -56
  90. package/dist/maybeAsync.js.map +0 -1
  91. package/dist/objectRedactor.d.ts +0 -18
  92. package/dist/objectRedactor.d.ts.map +0 -1
  93. package/dist/objectRedactor.js +0 -38
  94. package/dist/objectRedactor.js.map +0 -1
  95. package/dist/objectRedactorCow.d.ts +0 -35
  96. package/dist/objectRedactorCow.d.ts.map +0 -1
  97. package/dist/objectRedactorCow.js +0 -300
  98. package/dist/objectRedactorCow.js.map +0 -1
  99. package/dist/objectRedactorCustomObject.d.ts +0 -28
  100. package/dist/objectRedactorCustomObject.d.ts.map +0 -1
  101. package/dist/objectRedactorCustomObject.js +0 -57
  102. package/dist/objectRedactorCustomObject.js.map +0 -1
  103. package/dist/objectRedactorHelpers.d.ts +0 -9
  104. package/dist/objectRedactorHelpers.d.ts.map +0 -1
  105. package/dist/objectRedactorHelpers.js +0 -61
  106. package/dist/objectRedactorHelpers.js.map +0 -1
  107. package/dist/objectRedactorMutation.d.ts +0 -10
  108. package/dist/objectRedactorMutation.d.ts.map +0 -1
  109. package/dist/objectRedactorMutation.js +0 -89
  110. package/dist/objectRedactorMutation.js.map +0 -1
  111. package/dist/objectRedactorSync.d.ts +0 -2
  112. package/dist/objectRedactorSync.d.ts.map +0 -1
  113. package/dist/objectRedactorSync.js +0 -7
  114. package/dist/objectRedactorSync.js.map +0 -1
  115. package/dist/objectRedactorTraversal.d.ts +0 -41
  116. package/dist/objectRedactorTraversal.d.ts.map +0 -1
  117. package/dist/objectRedactorTraversal.js +0 -201
  118. package/dist/objectRedactorTraversal.js.map +0 -1
  119. package/dist/pathParsing.d.ts +0 -11
  120. package/dist/pathParsing.d.ts.map +0 -1
  121. package/dist/pathParsing.js +0 -53
  122. package/dist/pathParsing.js.map +0 -1
  123. package/dist/pathRuleMatcher.d.ts +0 -19
  124. package/dist/pathRuleMatcher.d.ts.map +0 -1
  125. package/dist/pathRuleMatcher.js +0 -42
  126. package/dist/pathRuleMatcher.js.map +0 -1
  127. package/dist/presets.d.ts +0 -22
  128. package/dist/presets.d.ts.map +0 -1
  129. package/dist/presets.js +0 -50
  130. package/dist/presets.js.map +0 -1
  131. package/dist/primitiveRedactor.d.ts +0 -33
  132. package/dist/primitiveRedactor.d.ts.map +0 -1
  133. package/dist/primitiveRedactor.js +0 -75
  134. package/dist/primitiveRedactor.js.map +0 -1
  135. package/dist/redactionRules.d.ts +0 -22
  136. package/dist/redactionRules.d.ts.map +0 -1
  137. package/dist/redactionRules.js +0 -74
  138. package/dist/redactionRules.js.map +0 -1
  139. package/dist/regexUtils.d.ts +0 -3
  140. package/dist/regexUtils.d.ts.map +0 -1
  141. package/dist/regexUtils.js +0 -8
  142. package/dist/regexUtils.js.map +0 -1
  143. package/dist/ruleResolver.d.ts +0 -65
  144. package/dist/ruleResolver.d.ts.map +0 -1
  145. package/dist/ruleResolver.js +0 -193
  146. package/dist/ruleResolver.js.map +0 -1
  147. package/dist/rules/fieldDisposition.d.ts +0 -3
  148. package/dist/rules/fieldDisposition.d.ts.map +0 -1
  149. package/dist/rules/fieldDisposition.js +0 -6
  150. package/dist/rules/fieldDisposition.js.map +0 -1
  151. package/dist/secretManager.d.ts +0 -32
  152. package/dist/secretManager.d.ts.map +0 -1
  153. package/dist/secretManager.js +0 -85
  154. package/dist/secretManager.js.map +0 -1
  155. package/dist/traversalServices.d.ts +0 -21
  156. package/dist/traversalServices.d.ts.map +0 -1
  157. package/dist/traversalServices.js +0 -3
  158. package/dist/traversalServices.js.map +0 -1
  159. package/dist/valuePatternMatcher.d.ts +0 -15
  160. package/dist/valuePatternMatcher.d.ts.map +0 -1
  161. package/dist/valuePatternMatcher.js +0 -30
  162. package/dist/valuePatternMatcher.js.map +0 -1
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildFieldRedactorDeps = void 0;
4
- const customObjectManager_1 = require("./customObjectManager");
5
- const objectRedactor_1 = require("./objectRedactor");
6
- const primitiveRedactor_1 = require("./primitiveRedactor");
7
- const redactionRules_1 = require("./redactionRules");
8
- const secretManager_1 = require("./secretManager");
9
- const pathRuleMatcher_1 = require("./pathRuleMatcher");
10
- const valuePatternMatcher_1 = require("./valuePatternMatcher");
11
- const resolveBoolean = (value, defaultValue) => typeof value === 'boolean' ? value : defaultValue;
12
- const buildFieldRedactorDeps = (config) => {
13
- const { redactor, syncRedactor, deepSecretKeys, fullSecretKeys, deleteSecretKeys, customObjects, valuePatterns, pathRules, passKeys } = config !== null && config !== void 0 ? config : {};
14
- const primitiveRedactor = new primitiveRedactor_1.PrimitiveRedactor({
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),
17
- redactor,
18
- syncRedactor
19
- });
20
- const secretManager = new secretManager_1.SecretManager({
21
- secretKeys: (0, redactionRules_1.resolveSecretKeys)(config),
22
- deepSecretKeys,
23
- fullSecretKeys,
24
- deleteSecretKeys,
25
- passKeys
26
- });
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;
29
- const customObjectManager = new customObjectManager_1.CustomObjectManager(customObjects, config === null || config === void 0 ? void 0 : config.schemaNames);
30
- const objectRedactor = new objectRedactor_1.ObjectRedactor(primitiveRedactor, secretManager, customObjectManager, valuePatternMatcher, pathRuleMatcher);
31
- return {
32
- primitiveRedactor,
33
- secretManager,
34
- valuePatternMatcher,
35
- pathRuleMatcher,
36
- customObjectManager,
37
- objectRedactor,
38
- usesAsyncRedactor: primitiveRedactor.usesAsyncRedactor(),
39
- cloneInput: (config === null || config === void 0 ? void 0 : config.cloneInput) !== false
40
- };
41
- };
42
- exports.buildFieldRedactorDeps = buildFieldRedactorDeps;
43
- //# sourceMappingURL=fieldRedactorDeps.js.map
@@ -1 +0,0 @@
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"}
@@ -1,11 +0,0 @@
1
- import { JsonArray, JsonObject, JsonValue } from './types';
2
- export { parseJsonPath } from './pathParsing';
3
- export declare const getJsonValueAtPath: (value: JsonValue | undefined, segments: Array<string | number>) => JsonValue | undefined;
4
- export declare const getParentContext: (value: JsonValue | undefined, segments: Array<string | number>) => {
5
- parent: JsonObject | JsonArray | undefined;
6
- leaf: string | number | undefined;
7
- };
8
- export declare const joinPath: (base: string, segment: string | number) => string;
9
- export declare const isTraversableJson: (value: JsonValue | undefined) => value is JsonObject | JsonValue[];
10
- export declare const walkTraversableJson: (value: JsonValue | undefined, path: string, visit: (value: JsonValue, path: string) => void) => void;
11
- //# sourceMappingURL=jsonWalk.d.ts.map
@@ -1 +0,0 @@
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 DELETED
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.walkTraversableJson = exports.isTraversableJson = exports.joinPath = exports.getParentContext = exports.getJsonValueAtPath = exports.parseJsonPath = void 0;
4
- const types_1 = require("./types");
5
- var pathParsing_1 = require("./pathParsing");
6
- Object.defineProperty(exports, "parseJsonPath", { enumerable: true, get: function () { return pathParsing_1.parseJsonPath; } });
7
- const getJsonValueAtPath = (value, segments) => {
8
- let current = value;
9
- for (const segment of segments) {
10
- if (current === undefined || current === null || typeof current !== 'object') {
11
- return undefined;
12
- }
13
- if (Array.isArray(current) && typeof segment === 'number') {
14
- current = current[segment];
15
- continue;
16
- }
17
- if ((0, types_1.isJsonObject)(current) && typeof segment === 'string') {
18
- current = current[segment];
19
- continue;
20
- }
21
- return undefined;
22
- }
23
- return current;
24
- };
25
- exports.getJsonValueAtPath = getJsonValueAtPath;
26
- const getParentContext = (value, segments) => {
27
- if (segments.length === 0) {
28
- return { parent: undefined, leaf: undefined };
29
- }
30
- const leaf = segments.at(-1);
31
- const parent = segments.length === 1 ? value : (0, exports.getJsonValueAtPath)(value, segments.slice(0, -1));
32
- return (0, exports.isTraversableJson)(parent) ? { parent, leaf } : { parent: undefined, leaf };
33
- };
34
- exports.getParentContext = getParentContext;
35
- const joinPath = (base, segment) => typeof segment === 'number' ? (base ? `${base}[${segment}]` : `[${segment}]`) : base ? `${base}.${segment}` : segment;
36
- exports.joinPath = joinPath;
37
- const isTraversableJson = (value) => !!value && typeof value === 'object' && !(value instanceof Date);
38
- exports.isTraversableJson = isTraversableJson;
39
- const walkTraversableJson = (value, path, visit) => {
40
- if (!(0, exports.isTraversableJson)(value)) {
41
- return;
42
- }
43
- if (Array.isArray(value)) {
44
- value.forEach((item, index) => (0, exports.walkTraversableJson)(item, (0, exports.joinPath)(path, index), visit));
45
- return;
46
- }
47
- if ((0, types_1.isJsonObject)(value)) {
48
- visit(value, path);
49
- for (const key of Object.keys(value)) {
50
- (0, exports.walkTraversableJson)(value[key], (0, exports.joinPath)(path, key), visit);
51
- }
52
- }
53
- };
54
- exports.walkTraversableJson = walkTraversableJson;
55
- //# sourceMappingURL=jsonWalk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsonWalk.js","sourceRoot":"","sources":["../src/jsonWalk.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,56 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,18 +0,0 @@
1
- import { TraversableJson } from './types';
2
- import { CustomObjectManager } from './customObjectManager';
3
- import { PrimitiveRedactor } from './primitiveRedactor';
4
- import { SecretManager } from './secretManager';
5
- import { ValuePatternMatcher } from './valuePatternMatcher';
6
- import { PathRuleMatcher } from './pathRuleMatcher';
7
- /**
8
- * Redacts fields in a JSON object using the secretManager, primitiveRedactor, and CustomObjectChecker provided in the
9
- * constructor. CustomObjects take highest precedence, followed by fullSecretKeys, then deepSecretKeys, and finally secretKeys.
10
- */
11
- export declare class ObjectRedactor {
12
- private readonly traversal;
13
- constructor(primitiveRedactor: PrimitiveRedactor, secretManager: SecretManager, customObjManager: CustomObjectManager, valuePatternMatcher: ValuePatternMatcher, pathRuleMatcher: PathRuleMatcher);
14
- redactInPlace<T extends TraversableJson>(value: T): Promise<T>;
15
- redactInPlaceSync<T extends TraversableJson>(value: T): T;
16
- redactCopyOnWrite<T extends TraversableJson>(value: T): T;
17
- }
18
- //# sourceMappingURL=objectRedactor.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,38 +0,0 @@
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.ObjectRedactor = void 0;
13
- const objectRedactorTraversal_1 = require("./objectRedactorTraversal");
14
- /**
15
- * Redacts fields in a JSON object using the secretManager, primitiveRedactor, and CustomObjectChecker provided in the
16
- * constructor. CustomObjects take highest precedence, followed by fullSecretKeys, then deepSecretKeys, and finally secretKeys.
17
- */
18
- class ObjectRedactor {
19
- constructor(primitiveRedactor, secretManager, customObjManager, valuePatternMatcher, pathRuleMatcher) {
20
- this.traversal = new objectRedactorTraversal_1.ObjectRedactorTraversal(primitiveRedactor, secretManager, customObjManager, valuePatternMatcher, pathRuleMatcher);
21
- }
22
- redactInPlace(value) {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- if (!this.traversal.usesAsyncRedactor()) {
25
- return Promise.resolve(this.redactInPlaceSync(value));
26
- }
27
- return this.traversal.redactInPlaceAsync(value);
28
- });
29
- }
30
- redactInPlaceSync(value) {
31
- return this.traversal.redactInPlace(value);
32
- }
33
- redactCopyOnWrite(value) {
34
- return this.traversal.redactCopyOnWrite(value);
35
- }
36
- }
37
- exports.ObjectRedactor = ObjectRedactor;
38
- //# sourceMappingURL=objectRedactor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"objectRedactor.js","sourceRoot":"","sources":["../src/objectRedactor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAMA,uEAAoE;AAEpE;;;GAGG;AACH,MAAa,cAAc;IAGzB,YACE,iBAAoC,EACpC,aAA4B,EAC5B,gBAAqC,EACrC,mBAAwC,EACxC,eAAgC;QAEhC,IAAI,CAAC,SAAS,GAAG,IAAI,iDAAuB,CAC1C,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,CAChB,CAAC;IACJ,CAAC;IAEY,aAAa,CAA4B,KAAQ;;YAC5D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,CAAC;gBACxC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;KAAA;IAEM,iBAAiB,CAA4B,KAAQ;QAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAEM,iBAAiB,CAA4B,KAAQ;QAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;CACF;AAlCD,wCAkCC"}
@@ -1,35 +0,0 @@
1
- import { TraversableJson } from './types';
2
- import { SecretManager } from './secretManager';
3
- import { CustomObjectManager } from './customObjectManager';
4
- import { PrimitiveRedactor } from './primitiveRedactor';
5
- /**
6
- * Copy-on-write JSON traversal: clones only branches that are mutated so unredacted
7
- * subtrees are shared with the input.
8
- */
9
- export declare class ObjectRedactorCowTraversal {
10
- private readonly primitiveRedactor;
11
- private readonly secretManager;
12
- private readonly customObjManager;
13
- constructor(primitiveRedactor: PrimitiveRedactor, secretManager: SecretManager, customObjManager: CustomObjectManager);
14
- redactCopyOnWrite<T extends TraversableJson>(value: T): T;
15
- private redactSecretObjectFields;
16
- private redactSecretArrayRecord;
17
- private redactSecretObjectRecord;
18
- private redactArrayInObject;
19
- private redactObjectsInArray;
20
- private redactAllArrayValues;
21
- private redactNestedObject;
22
- private handleCustomObject;
23
- private handleCustomObjectValueIfArray;
24
- private handleCustomObjectArrayValueIfStringKeySpecified;
25
- private handleCustomObjectArrayValueIfMatchTypeSpecified;
26
- private handleCustomObjectValueIfObject;
27
- private handleCustomObjectObjectValueIfStringKeySpecified;
28
- private handleCustomObjectObjectValueIfMatchTypeSpecified;
29
- private handleCustomObjectValueIfPrimitive;
30
- private handleCustomObjectPrimitiveValueIfMatchTypeSpecified;
31
- private handleCustomObjectPrimitiveValueIfStringKeySpecified;
32
- private redactPrimitiveValueIfSecret;
33
- private redactPrimitive;
34
- }
35
- //# sourceMappingURL=objectRedactorCow.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"objectRedactorCow.d.ts","sourceRoot":"","sources":["../src/objectRedactorCow.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,eAAe,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAkBxD;;;GAGG;AACH,qBAAa,0BAA0B;IAEnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAFhB,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,mBAAmB;IAGxD,iBAAiB,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;IASzD,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,uBAAuB;IAyB/B,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,8BAA8B;IAStC,OAAO,CAAC,gDAAgD;IAsBxD,OAAO,CAAC,gDAAgD;IA8BxD,OAAO,CAAC,+BAA+B;IASvC,OAAO,CAAC,iDAAiD;IAwBzD,OAAO,CAAC,iDAAiD;IA6BzD,OAAO,CAAC,kCAAkC;IAkB1C,OAAO,CAAC,oDAAoD;IAsB5D,OAAO,CAAC,oDAAoD;IAgB5D,OAAO,CAAC,4BAA4B;IAcpC,OAAO,CAAC,eAAe;CAGxB"}
@@ -1,300 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ObjectRedactorCowTraversal = void 0;
4
- const types_1 = require("./types");
5
- const copyOnWriteHelpers_1 = require("./copyOnWriteHelpers");
6
- const objectRedactorHelpers_1 = require("./objectRedactorHelpers");
7
- /**
8
- * Copy-on-write JSON traversal: clones only branches that are mutated so unredacted
9
- * subtrees are shared with the input.
10
- */
11
- class ObjectRedactorCowTraversal {
12
- constructor(primitiveRedactor, secretManager, customObjManager) {
13
- this.primitiveRedactor = primitiveRedactor;
14
- this.secretManager = secretManager;
15
- this.customObjManager = customObjManager;
16
- }
17
- redactCopyOnWrite(value) {
18
- const customObject = this.customObjManager.getMatchingCustomObject(value);
19
- if (customObject && (0, types_1.isJsonObject)(value)) {
20
- return this.handleCustomObject(value, customObject);
21
- }
22
- return this.redactSecretObjectFields(value);
23
- }
24
- redactSecretObjectFields(object, forceDeepRedaction = false) {
25
- if (Array.isArray(object)) {
26
- return this.redactSecretArrayRecord(object, forceDeepRedaction);
27
- }
28
- return this.redactSecretObjectRecord(object, forceDeepRedaction);
29
- }
30
- redactSecretArrayRecord(array, forceDeepRedaction) {
31
- const state = (0, copyOnWriteHelpers_1.createArrayCopyState)(array);
32
- for (const key of Object.keys(array)) {
33
- const index = Number(key);
34
- const value = array[index];
35
- const customObject = (0, types_1.isJsonObject)(value) ? this.customObjManager.getMatchingCustomObject(value) : undefined;
36
- if (customObject && (0, types_1.isJsonObject)(value)) {
37
- (0, copyOnWriteHelpers_1.setArrayIndex)(state, index, this.handleCustomObject(value, customObject));
38
- }
39
- else if (this.secretManager.isDeleteSecretKey(key)) {
40
- (0, copyOnWriteHelpers_1.deleteArrayIndex)(state, index);
41
- }
42
- else if (this.secretManager.isFullSecretKey(key)) {
43
- (0, copyOnWriteHelpers_1.setArrayIndex)(state, index, this.redactPrimitive((0, objectRedactorHelpers_1.getStringValue)(value)));
44
- }
45
- else if (Array.isArray(value)) {
46
- (0, copyOnWriteHelpers_1.setArrayIndex)(state, index, this.redactArrayInObject(value, key, forceDeepRedaction));
47
- }
48
- else if ((0, types_1.isJsonObject)(value)) {
49
- (0, copyOnWriteHelpers_1.setArrayIndex)(state, index, this.redactNestedObject(value, key, forceDeepRedaction));
50
- }
51
- else {
52
- (0, copyOnWriteHelpers_1.setArrayIndex)(state, index, this.redactPrimitiveValueIfSecret(key, value, forceDeepRedaction));
53
- }
54
- }
55
- return (0, copyOnWriteHelpers_1.finishArrayCopy)(state);
56
- }
57
- redactSecretObjectRecord(object, forceDeepRedaction) {
58
- const state = (0, copyOnWriteHelpers_1.createObjectCopyState)(object);
59
- for (const key of Object.keys(object)) {
60
- const value = object[key];
61
- const customObject = (0, types_1.isJsonObject)(value) ? this.customObjManager.getMatchingCustomObject(value) : undefined;
62
- if (customObject && (0, types_1.isJsonObject)(value)) {
63
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.handleCustomObject(value, customObject));
64
- }
65
- else if (this.secretManager.isDeleteSecretKey(key)) {
66
- (0, copyOnWriteHelpers_1.deleteObjectKey)(state, key);
67
- }
68
- else if (this.secretManager.isFullSecretKey(key)) {
69
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactPrimitive((0, objectRedactorHelpers_1.getStringValue)(value)));
70
- }
71
- else if (Array.isArray(value)) {
72
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactArrayInObject(value, key, forceDeepRedaction));
73
- }
74
- else if ((0, types_1.isJsonObject)(value)) {
75
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactNestedObject(value, key, forceDeepRedaction));
76
- }
77
- else {
78
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactPrimitiveValueIfSecret(key, value, forceDeepRedaction));
79
- }
80
- }
81
- return (0, copyOnWriteHelpers_1.finishObjectCopy)(state);
82
- }
83
- redactArrayInObject(array, key, forceDeepRedaction) {
84
- const deepSecretKey = this.secretManager.isDeepSecretKey(key);
85
- if (this.secretManager.isSecretKey(key) || deepSecretKey || forceDeepRedaction) {
86
- return this.redactAllArrayValues(array, forceDeepRedaction || deepSecretKey);
87
- }
88
- return this.redactObjectsInArray(array);
89
- }
90
- redactObjectsInArray(array) {
91
- const state = (0, copyOnWriteHelpers_1.createArrayCopyState)(array);
92
- for (let index = 0; index < array.length; index++) {
93
- const value = array[index];
94
- if ((0, types_1.isJsonObject)(value)) {
95
- const customObject = this.customObjManager.getMatchingCustomObject(value);
96
- if (customObject) {
97
- (0, copyOnWriteHelpers_1.setArrayIndex)(state, index, this.handleCustomObject(value, customObject));
98
- }
99
- else {
100
- (0, copyOnWriteHelpers_1.setArrayIndex)(state, index, this.redactSecretObjectRecord(value, false));
101
- }
102
- }
103
- }
104
- return (0, copyOnWriteHelpers_1.finishArrayCopy)(state);
105
- }
106
- redactAllArrayValues(array, forceDeepRedaction) {
107
- const state = (0, copyOnWriteHelpers_1.createArrayCopyState)(array);
108
- for (let index = 0; index < array.length; index++) {
109
- const value = array[index];
110
- if (Array.isArray(value)) {
111
- (0, copyOnWriteHelpers_1.setArrayIndex)(state, index, this.redactAllArrayValues(value, forceDeepRedaction));
112
- }
113
- else if (!(0, types_1.isJsonObject)(value)) {
114
- (0, copyOnWriteHelpers_1.setArrayIndex)(state, index, this.redactPrimitive((0, objectRedactorHelpers_1.toRedactablePrimitive)(value)));
115
- }
116
- else {
117
- const customObject = this.customObjManager.getMatchingCustomObject(value);
118
- if (customObject) {
119
- (0, copyOnWriteHelpers_1.setArrayIndex)(state, index, this.handleCustomObject(value, customObject));
120
- }
121
- else {
122
- (0, copyOnWriteHelpers_1.setArrayIndex)(state, index, this.redactSecretObjectRecord(value, forceDeepRedaction));
123
- }
124
- }
125
- }
126
- return (0, copyOnWriteHelpers_1.finishArrayCopy)(state);
127
- }
128
- redactNestedObject(value, key, forceDeepRedaction) {
129
- const customObject = this.customObjManager.getMatchingCustomObject(value);
130
- if (customObject) {
131
- return this.handleCustomObject(value, customObject);
132
- }
133
- return this.redactSecretObjectRecord(value, forceDeepRedaction || this.secretManager.isDeepSecretKey(key));
134
- }
135
- handleCustomObject(value, customObject) {
136
- const state = (0, copyOnWriteHelpers_1.createObjectCopyState)(value);
137
- for (const key of Object.keys(customObject)) {
138
- const fieldValue = value[key];
139
- if (Array.isArray(fieldValue)) {
140
- this.handleCustomObjectValueIfArray(state, key, customObject);
141
- }
142
- else if ((0, types_1.isJsonObject)(fieldValue)) {
143
- this.handleCustomObjectValueIfObject(state, key, customObject);
144
- }
145
- else {
146
- this.handleCustomObjectValueIfPrimitive(state, customObject, key);
147
- }
148
- }
149
- return (0, copyOnWriteHelpers_1.finishObjectCopy)(state);
150
- }
151
- handleCustomObjectValueIfArray(state, key, customObject) {
152
- const stringKey = (0, objectRedactorHelpers_1.getStringSpecifiedCustomObjectSecretKeyValueIfExists)(state.source, customObject, key);
153
- if (stringKey !== undefined) {
154
- this.handleCustomObjectArrayValueIfStringKeySpecified(state, key, stringKey);
155
- }
156
- else {
157
- this.handleCustomObjectArrayValueIfMatchTypeSpecified(state, key, customObject[key]);
158
- }
159
- }
160
- handleCustomObjectArrayValueIfStringKeySpecified(state, key, stringKey) {
161
- const fieldValue = state.source[key];
162
- if (!Array.isArray(fieldValue)) {
163
- return;
164
- }
165
- if (this.secretManager.isDeleteSecretKey(stringKey)) {
166
- (0, copyOnWriteHelpers_1.deleteObjectKey)(state, key);
167
- }
168
- else if (this.secretManager.isFullSecretKey(stringKey)) {
169
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactPrimitive((0, objectRedactorHelpers_1.getStringValue)(fieldValue)));
170
- }
171
- else {
172
- const isDeepSecretKey = this.secretManager.isDeepSecretKey(stringKey);
173
- if (isDeepSecretKey || this.secretManager.isSecretKey(stringKey)) {
174
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactAllArrayValues(fieldValue, isDeepSecretKey));
175
- }
176
- }
177
- }
178
- handleCustomObjectArrayValueIfMatchTypeSpecified(state, key, matchType) {
179
- const fieldValue = state.source[key];
180
- if (!Array.isArray(fieldValue)) {
181
- return;
182
- }
183
- switch (matchType) {
184
- case types_1.CustomObjectMatchType.Delete:
185
- (0, copyOnWriteHelpers_1.deleteObjectKey)(state, key);
186
- return;
187
- case types_1.CustomObjectMatchType.Full:
188
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactPrimitive((0, objectRedactorHelpers_1.getStringValue)(fieldValue)));
189
- return;
190
- case types_1.CustomObjectMatchType.Deep:
191
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactAllArrayValues(fieldValue, true));
192
- return;
193
- case types_1.CustomObjectMatchType.Shallow:
194
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactAllArrayValues(fieldValue, false));
195
- return;
196
- case types_1.CustomObjectMatchType.Pass:
197
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactArrayInObject(fieldValue, key, false));
198
- default:
199
- return;
200
- }
201
- }
202
- handleCustomObjectValueIfObject(state, key, customObject) {
203
- const stringKey = (0, objectRedactorHelpers_1.getStringSpecifiedCustomObjectSecretKeyValueIfExists)(state.source, customObject, key);
204
- if (stringKey !== undefined) {
205
- this.handleCustomObjectObjectValueIfStringKeySpecified(state, key, stringKey);
206
- }
207
- else {
208
- this.handleCustomObjectObjectValueIfMatchTypeSpecified(state, key, customObject[key]);
209
- }
210
- }
211
- handleCustomObjectObjectValueIfStringKeySpecified(state, key, stringKey) {
212
- const fieldValue = state.source[key];
213
- if (!(0, types_1.isJsonObject)(fieldValue)) {
214
- return;
215
- }
216
- const customObject = this.customObjManager.getMatchingCustomObject(fieldValue);
217
- if (customObject) {
218
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.handleCustomObject(fieldValue, customObject));
219
- }
220
- else if (this.secretManager.isDeleteSecretKey(stringKey)) {
221
- (0, copyOnWriteHelpers_1.deleteObjectKey)(state, key);
222
- }
223
- else if (this.secretManager.isFullSecretKey(stringKey)) {
224
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactPrimitive((0, objectRedactorHelpers_1.getStringValue)(fieldValue)));
225
- }
226
- else if (this.secretManager.isDeepSecretKey(stringKey)) {
227
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactSecretObjectRecord(fieldValue, true));
228
- }
229
- else if (this.secretManager.isSecretKey(stringKey)) {
230
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactSecretObjectRecord(fieldValue, false));
231
- }
232
- }
233
- handleCustomObjectObjectValueIfMatchTypeSpecified(state, key, matchType) {
234
- const fieldValue = state.source[key];
235
- if (!(0, types_1.isJsonObject)(fieldValue)) {
236
- return;
237
- }
238
- switch (matchType) {
239
- case types_1.CustomObjectMatchType.Delete:
240
- (0, copyOnWriteHelpers_1.deleteObjectKey)(state, key);
241
- return;
242
- case types_1.CustomObjectMatchType.Full:
243
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactPrimitive((0, objectRedactorHelpers_1.getStringValue)(fieldValue)));
244
- return;
245
- case types_1.CustomObjectMatchType.Deep:
246
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactSecretObjectRecord(fieldValue, true));
247
- return;
248
- case types_1.CustomObjectMatchType.Shallow:
249
- case types_1.CustomObjectMatchType.Pass:
250
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactSecretObjectRecord(fieldValue, false));
251
- return;
252
- case types_1.CustomObjectMatchType.Ignore:
253
- return;
254
- }
255
- }
256
- handleCustomObjectValueIfPrimitive(state, customObject, key) {
257
- if (typeof customObject[key] === 'number') {
258
- this.handleCustomObjectPrimitiveValueIfMatchTypeSpecified(state, key, customObject[key]);
259
- return;
260
- }
261
- const secretKey = (0, objectRedactorHelpers_1.getStringSpecifiedCustomObjectSecretKeyValueIfExists)(state.source, customObject, key);
262
- if (secretKey === undefined) {
263
- return;
264
- }
265
- this.handleCustomObjectPrimitiveValueIfStringKeySpecified(state, secretKey, key);
266
- }
267
- handleCustomObjectPrimitiveValueIfMatchTypeSpecified(state, key, matchValue) {
268
- switch (matchValue) {
269
- case types_1.CustomObjectMatchType.Delete:
270
- (0, copyOnWriteHelpers_1.deleteObjectKey)(state, key);
271
- return;
272
- case types_1.CustomObjectMatchType.Full:
273
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactPrimitive((0, objectRedactorHelpers_1.getStringValue)(state.source[key])));
274
- return;
275
- case types_1.CustomObjectMatchType.Deep:
276
- case types_1.CustomObjectMatchType.Shallow:
277
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactPrimitive(state.source[key]));
278
- return;
279
- case types_1.CustomObjectMatchType.Pass:
280
- default:
281
- return;
282
- }
283
- }
284
- handleCustomObjectPrimitiveValueIfStringKeySpecified(state, secretKey, key) {
285
- if (this.secretManager.isDeleteSecretKey(secretKey)) {
286
- (0, copyOnWriteHelpers_1.deleteObjectKey)(state, key);
287
- }
288
- else {
289
- (0, copyOnWriteHelpers_1.setObjectKey)(state, key, this.redactPrimitiveValueIfSecret(secretKey, state.source[key], false));
290
- }
291
- }
292
- redactPrimitiveValueIfSecret(key, value, forceDeepRedaction) {
293
- return (0, objectRedactorHelpers_1.redactPrimitiveValueIfSecret)(this.secretManager, (primitive) => this.redactPrimitive(primitive), key, value, forceDeepRedaction);
294
- }
295
- redactPrimitive(value) {
296
- return this.primitiveRedactor.redactValueSync(value);
297
- }
298
- }
299
- exports.ObjectRedactorCowTraversal = ObjectRedactorCowTraversal;
300
- //# sourceMappingURL=objectRedactorCow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"objectRedactorCow.js","sourceRoot":"","sources":["../src/objectRedactorCow.ts"],"names":[],"mappings":"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"}