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,77 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateFieldRedactorConfig = exports.assertNoIdenticalCustomObjectSchemas = exports.hasExplicitRedactionRules = void 0;
4
- const errors_1 = require("./errors");
5
- const regexUtils_1 = require("./regexUtils");
6
- const redactionRules_1 = require("./redactionRules");
7
- const customObjectSchemas_1 = require("./customObjectSchemas");
8
- var redactionRules_2 = require("./redactionRules");
9
- Object.defineProperty(exports, "hasExplicitRedactionRules", { enumerable: true, get: function () { return redactionRules_2.hasExplicitRedactionRules; } });
10
- var customObjectSchemas_2 = require("./customObjectSchemas");
11
- Object.defineProperty(exports, "assertNoIdenticalCustomObjectSchemas", { enumerable: true, get: function () { return customObjectSchemas_2.assertNoIdenticalCustomObjectSchemas; } });
12
- const KEY_RULE_FIELDS = new Set(redactionRules_1.SECRET_REGEX_FIELDS);
13
- const collectRegexWarnings = (config) => {
14
- const warnings = [];
15
- const keyRuleDuplicates = new Map();
16
- for (const field of redactionRules_1.REGEX_ARRAY_CONFIG_FIELDS) {
17
- const regexes = config[field];
18
- if (!regexes) {
19
- continue;
20
- }
21
- for (const regex of regexes) {
22
- if (regex.global) {
23
- warnings.push(`Global regex ${(0, regexUtils_1.formatRegExp)(regex)} in \`${field}\` can produce surprising \`.test()\` results; remove the \`g\` flag.`);
24
- }
25
- if (!KEY_RULE_FIELDS.has(field)) {
26
- continue;
27
- }
28
- const identity = (0, regexUtils_1.regexIdentity)(regex);
29
- const prior = keyRuleDuplicates.get(identity);
30
- if (prior && prior !== field) {
31
- warnings.push(`${(0, regexUtils_1.formatRegExp)(regex)} appears in both \`${prior}\` and \`${field}\` — only the higher-precedence rule applies.`);
32
- }
33
- else if (!prior) {
34
- keyRuleDuplicates.set(identity, field);
35
- }
36
- }
37
- }
38
- return warnings;
39
- };
40
- const collectSchemaWarnings = (customObjects) => {
41
- const warnings = [];
42
- customObjects.forEach((schema, schemaIndex) => {
43
- for (const [field, rule] of Object.entries(schema)) {
44
- if (typeof rule === 'string' && !Object.prototype.hasOwnProperty.call(schema, rule)) {
45
- warnings.push(`Schema at index ${schemaIndex}: field \`${field}: '${rule}'\` references sibling key \`${rule}\` which is not defined in the schema.`);
46
- }
47
- }
48
- });
49
- for (const [i, j] of (0, customObjectSchemas_1.analyzeSchemaPairs)(customObjects).subsetPairs) {
50
- const keysA = Object.keys(customObjects[i]);
51
- const keysB = Object.keys(customObjects[j]);
52
- warnings.push(`Schemas at index ${i} and ${j} may both match the same object; index ${keysB.length > keysA.length ? j : i} wins only when it has more keys.`);
53
- }
54
- return warnings;
55
- };
56
- /**
57
- * Returns non-fatal configuration warnings. Throws {@link FieldRedactorConfigurationError} for
58
- * invalid custom object duplicates and when `strict` is true on any warning.
59
- */
60
- const validateFieldRedactorConfig = (config) => {
61
- var _a;
62
- const resolved = config !== null && config !== void 0 ? config : {};
63
- (0, customObjectSchemas_1.assertNoIdenticalCustomObjectSchemas)(resolved.customObjects);
64
- const warnings = [
65
- ...(!(0, redactionRules_1.hasExplicitRedactionRules)(resolved)
66
- ? ['All values will be redacted. Did you mean to set `secretKeys` or use `FieldRedactor.createSafe()`?']
67
- : []),
68
- ...collectRegexWarnings(resolved),
69
- ...collectSchemaWarnings((_a = resolved.customObjects) !== null && _a !== void 0 ? _a : [])
70
- ];
71
- if (resolved.strict && warnings[0]) {
72
- throw new errors_1.FieldRedactorConfigurationError(warnings[0]);
73
- }
74
- return warnings;
75
- };
76
- exports.validateFieldRedactorConfig = validateFieldRedactorConfig;
77
- //# sourceMappingURL=configValidator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configValidator.js","sourceRoot":"","sources":["../src/configValidator.ts"],"names":[],"mappings":";;;AAAA,qCAA2D;AAC3D,6CAA2D;AAC3D,qDAA6G;AAC7G,+DAAiG;AAGjG,mDAA6D;AAApD,2HAAA,yBAAyB,OAAA;AAClC,6DAA6E;AAApE,2IAAA,oCAAoC,OAAA;AAE7C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS,oCAAmB,CAAC,CAAC;AAE7D,MAAM,oBAAoB,GAAG,CAAC,MAA2B,EAAY,EAAE;IACrE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEpD,KAAK,MAAM,KAAK,IAAI,0CAAyB,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,QAAQ,CAAC,IAAI,CACX,gBAAgB,IAAA,yBAAY,EAAC,KAAK,CAAC,SAAS,KAAK,uEAAuE,CACzH,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,IAAA,0BAAa,EAAC,KAAK,CAAC,CAAC;YACtC,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC7B,QAAQ,CAAC,IAAI,CACX,GAAG,IAAA,yBAAY,EAAC,KAAK,CAAC,sBAAsB,KAAK,YAAY,KAAK,+CAA+C,CAClH,CAAC;YACJ,CAAC;iBAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBAClB,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,aAA6B,EAAY,EAAE;IACxE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC5C,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBACpF,QAAQ,CAAC,IAAI,CACX,mBAAmB,WAAW,aAAa,KAAK,MAAM,IAAI,gCAAgC,IAAI,wCAAwC,CACvI,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAA,wCAAkB,EAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,QAAQ,CAAC,IAAI,CACX,oBAAoB,CAAC,QAAQ,CAAC,0CAA0C,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAC/I,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,2BAA2B,GAAG,CAAC,MAA4B,EAAY,EAAE;;IACpF,MAAM,QAAQ,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;IAC9B,IAAA,0DAAoC,EAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAG;QACf,GAAG,CAAC,CAAC,IAAA,0CAAyB,EAAC,QAAQ,CAAC;YACtC,CAAC,CAAC,CAAC,oGAAoG,CAAC;YACxG,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,oBAAoB,CAAC,QAAQ,CAAC;QACjC,GAAG,qBAAqB,CAAC,MAAA,QAAQ,CAAC,aAAa,mCAAI,EAAE,CAAC;KACvD,CAAC;IAEF,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,wCAA+B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAjBW,QAAA,2BAA2B,+BAiBtC"}
@@ -1,20 +0,0 @@
1
- import { JsonArray, JsonObject, JsonValue } from './types';
2
- export type ObjectCopyState<T extends JsonObject> = {
3
- source: T;
4
- current: T;
5
- copied: boolean;
6
- };
7
- export type ArrayCopyState<T extends JsonArray> = {
8
- source: T;
9
- current: T;
10
- copied: boolean;
11
- };
12
- export declare const createObjectCopyState: <T extends JsonObject>(source: T) => ObjectCopyState<T>;
13
- export declare const createArrayCopyState: <T extends JsonArray>(source: T) => ArrayCopyState<T>;
14
- export declare const finishObjectCopy: <T extends JsonObject>(state: ObjectCopyState<T>) => T;
15
- export declare const finishArrayCopy: <T extends JsonArray>(state: ArrayCopyState<T>) => T;
16
- export declare const setObjectKey: <T extends JsonObject>(state: ObjectCopyState<T>, key: string, value: JsonValue | undefined) => void;
17
- export declare const deleteObjectKey: <T extends JsonObject>(state: ObjectCopyState<T>, key: string) => void;
18
- export declare const setArrayIndex: <T extends JsonArray>(state: ArrayCopyState<T>, index: number, value: JsonValue | undefined) => void;
19
- export declare const deleteArrayIndex: <T extends JsonArray>(state: ArrayCopyState<T>, index: number) => void;
20
- //# sourceMappingURL=copyOnWriteHelpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"copyOnWriteHelpers.d.ts","sourceRoot":"","sources":["../src/copyOnWriteHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAc,SAAS,EAAE,MAAM,SAAS,CAAC;AAEvE,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,UAAU,IAAI;IAClD,MAAM,EAAE,CAAC,CAAC;IACV,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,SAAS,IAAI;IAChD,MAAM,EAAE,CAAC,CAAC;IACV,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,UAAU,UAAU,CAAC,KAAG,eAAe,CAAC,CAAC,CAIvF,CAAC;AAEH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,SAAS,UAAU,CAAC,KAAG,cAAc,CAAC,CAAC,CAIpF,CAAC;AAEH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,UAAU,SAAS,eAAe,CAAC,CAAC,CAAC,KAAG,CACtC,CAAC;AAE9C,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,SAAS,SAAS,cAAc,CAAC,CAAC,CAAC,KAAG,CACnC,CAAC;AAoB9C,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,UAAU,SACxC,eAAe,CAAC,CAAC,CAAC,OACpB,MAAM,SACJ,SAAS,GAAG,SAAS,KAC3B,IAIF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,UAAU,SAAS,eAAe,CAAC,CAAC,CAAC,OAAO,MAAM,KAAG,IAI9F,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,SAAS,SACxC,cAAc,CAAC,CAAC,CAAC,SACjB,MAAM,SACN,SAAS,GAAG,SAAS,KAC3B,IAIF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,SAAS,SAAS,cAAc,CAAC,CAAC,CAAC,SAAS,MAAM,KAAG,IAI/F,CAAC"}
@@ -1,58 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deleteArrayIndex = exports.setArrayIndex = exports.deleteObjectKey = exports.setObjectKey = exports.finishArrayCopy = exports.finishObjectCopy = exports.createArrayCopyState = exports.createObjectCopyState = void 0;
4
- const createObjectCopyState = (source) => ({
5
- source,
6
- current: source,
7
- copied: false
8
- });
9
- exports.createObjectCopyState = createObjectCopyState;
10
- const createArrayCopyState = (source) => ({
11
- source,
12
- current: source,
13
- copied: false
14
- });
15
- exports.createArrayCopyState = createArrayCopyState;
16
- const finishObjectCopy = (state) => state.copied ? state.current : state.source;
17
- exports.finishObjectCopy = finishObjectCopy;
18
- const finishArrayCopy = (state) => state.copied ? state.current : state.source;
19
- exports.finishArrayCopy = finishArrayCopy;
20
- const ensureObjectCopy = (state) => {
21
- if (!state.copied) {
22
- state.current = Object.assign({}, state.source);
23
- state.copied = true;
24
- }
25
- return state.current;
26
- };
27
- const ensureArrayCopy = (state) => {
28
- if (!state.copied) {
29
- state.current = state.source.slice();
30
- state.copied = true;
31
- }
32
- return state.current;
33
- };
34
- const setObjectKey = (state, key, value) => {
35
- if (state.source[key] !== value) {
36
- ensureObjectCopy(state)[key] = value;
37
- }
38
- };
39
- exports.setObjectKey = setObjectKey;
40
- const deleteObjectKey = (state, key) => {
41
- if (Object.prototype.hasOwnProperty.call(state.source, key)) {
42
- delete ensureObjectCopy(state)[key];
43
- }
44
- };
45
- exports.deleteObjectKey = deleteObjectKey;
46
- const setArrayIndex = (state, index, value) => {
47
- if (state.source[index] !== value) {
48
- ensureArrayCopy(state)[index] = value;
49
- }
50
- };
51
- exports.setArrayIndex = setArrayIndex;
52
- const deleteArrayIndex = (state, index) => {
53
- if (index < state.source.length) {
54
- delete ensureArrayCopy(state)[index];
55
- }
56
- };
57
- exports.deleteArrayIndex = deleteArrayIndex;
58
- //# sourceMappingURL=copyOnWriteHelpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"copyOnWriteHelpers.js","sourceRoot":"","sources":["../src/copyOnWriteHelpers.ts"],"names":[],"mappings":";;;AAcO,MAAM,qBAAqB,GAAG,CAAuB,MAAS,EAAsB,EAAE,CAAC,CAAC;IAC7F,MAAM;IACN,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,KAAK;CACd,CAAC,CAAC;AAJU,QAAA,qBAAqB,yBAI/B;AAEI,MAAM,oBAAoB,GAAG,CAAsB,MAAS,EAAqB,EAAE,CAAC,CAAC;IAC1F,MAAM;IACN,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,KAAK;CACd,CAAC,CAAC;AAJU,QAAA,oBAAoB,wBAI9B;AAEI,MAAM,gBAAgB,GAAG,CAAuB,KAAyB,EAAK,EAAE,CACrF,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AADjC,QAAA,gBAAgB,oBACiB;AAEvC,MAAM,eAAe,GAAG,CAAsB,KAAwB,EAAK,EAAE,CAClF,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AADjC,QAAA,eAAe,mBACkB;AAE9C,MAAM,gBAAgB,GAAG,CAAuB,KAAyB,EAAc,EAAE;IACvF,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,OAAO,qBAAQ,KAAK,CAAC,MAAM,CAAE,CAAC;QACpC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAsB,KAAwB,EAAa,EAAE;IACnF,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAO,CAAC;QAC1C,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAC1B,KAAyB,EACzB,GAAW,EACX,KAA4B,EACtB,EAAE;IACR,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;QAChC,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACvC,CAAC;AACH,CAAC,CAAC;AARW,QAAA,YAAY,gBAQvB;AAEK,MAAM,eAAe,GAAG,CAAuB,KAAyB,EAAE,GAAW,EAAQ,EAAE;IACpG,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;AACH,CAAC,CAAC;AAJW,QAAA,eAAe,mBAI1B;AAEK,MAAM,aAAa,GAAG,CAC3B,KAAwB,EACxB,KAAa,EACb,KAA4B,EACtB,EAAE;IACR,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;QAClC,eAAe,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IACxC,CAAC;AACH,CAAC,CAAC;AARW,QAAA,aAAa,iBAQxB;AAEK,MAAM,gBAAgB,GAAG,CAAsB,KAAwB,EAAE,KAAa,EAAQ,EAAE;IACrG,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAChC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;AACH,CAAC,CAAC;AAJW,QAAA,gBAAgB,oBAI3B"}
@@ -1,21 +0,0 @@
1
- import { CustomObject, JsonObject } from './types';
2
- import { ContainerMutation } from './objectRedactorMutation';
3
- import { MaybeAsync } from './maybeAsync';
4
- import { TraversalServices } from './traversalServices';
5
- export declare class CustomObjectFieldHandler {
6
- private readonly services;
7
- constructor(services: TraversalServices);
8
- handleCustomObject(container: ContainerMutation<JsonObject>, customObject: CustomObject): MaybeAsync<void>;
9
- private handleCustomObjectValueIfArray;
10
- private handleCustomObjectArrayValueIfStringKeySpecified;
11
- private handleCustomObjectArrayValueIfMatchTypeSpecified;
12
- private setRedactedArray;
13
- private handleCustomObjectValueIfObject;
14
- private handleCustomObjectObjectValueIfStringKeySpecified;
15
- private handleCustomObjectObjectValueIfMatchTypeSpecified;
16
- private setRedactedObject;
17
- private handleCustomObjectValueIfPrimitive;
18
- private handleCustomObjectPrimitiveValueIfMatchTypeSpecified;
19
- private handleCustomObjectPrimitiveValueIfStringKeySpecified;
20
- }
21
- //# sourceMappingURL=customObjectFieldHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"customObjectFieldHandler.d.ts","sourceRoot":"","sources":["../src/customObjectFieldHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAIZ,UAAU,EAGX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAA2B,MAAM,0BAA0B,CAAC;AAOtF,OAAO,EAAsB,UAAU,EAAoC,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,qBAAa,wBAAwB;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,iBAAiB;IAExD,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC;IAmB1G,OAAO,CAAC,8BAA8B;IAiBtC,OAAO,CAAC,gDAAgD;IAkCxD,OAAO,CAAC,gDAAgD;IAsBxD,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,+BAA+B;IAiBvC,OAAO,CAAC,iDAAiD;IA8CzD,OAAO,CAAC,iDAAiD;IAsBzD,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,kCAAkC;IAiB1C,OAAO,CAAC,oDAAoD;IAgB5D,OAAO,CAAC,oDAAoD;CAkB7D"}
@@ -1,159 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CustomObjectFieldHandler = void 0;
4
- const types_1 = require("./types");
5
- const objectRedactorMutation_1 = require("./objectRedactorMutation");
6
- const objectRedactorCustomObject_1 = require("./objectRedactorCustomObject");
7
- const objectRedactorHelpers_1 = require("./objectRedactorHelpers");
8
- const maybeAsync_1 = require("./maybeAsync");
9
- class CustomObjectFieldHandler {
10
- constructor(services) {
11
- this.services = services;
12
- }
13
- handleCustomObject(container, customObject) {
14
- return (0, maybeAsync_1.runSequential)(Object.keys(customObject), (key) => {
15
- const fieldValue = container.source[key];
16
- if (Array.isArray(fieldValue)) {
17
- return this.handleCustomObjectValueIfArray(container, key, customObject);
18
- }
19
- if ((0, types_1.isJsonObject)(fieldValue)) {
20
- return this.handleCustomObjectValueIfObject(container, key, customObject);
21
- }
22
- return this.handleCustomObjectValueIfPrimitive(container, customObject, key);
23
- }, this.services.asyncMode);
24
- }
25
- handleCustomObjectValueIfArray(container, key, customObject) {
26
- const stringKey = (0, objectRedactorHelpers_1.getStringSpecifiedCustomObjectSecretKeyValueIfExists)(container.source, customObject, key);
27
- if (stringKey !== undefined) {
28
- return this.handleCustomObjectArrayValueIfStringKeySpecified(container, key, stringKey);
29
- }
30
- return this.handleCustomObjectArrayValueIfMatchTypeSpecified(container, key, customObject[key]);
31
- }
32
- handleCustomObjectArrayValueIfStringKeySpecified(container, key, stringKey) {
33
- const fieldValue = container.source[key];
34
- if (!Array.isArray(fieldValue)) {
35
- return;
36
- }
37
- if (this.services.secretManager.isDeleteSecretKey(stringKey)) {
38
- container.remove(key);
39
- return;
40
- }
41
- if (this.services.secretManager.isFullSecretKey(stringKey)) {
42
- return this.services.setPrimitiveFromValue(container, key, fieldValue);
43
- }
44
- const isDeepSecretKey = this.services.secretManager.isDeepSecretKey(stringKey);
45
- if (!isDeepSecretKey && !this.services.secretManager.isSecretKey(stringKey)) {
46
- return;
47
- }
48
- const redacted = this.services.redactAllArrayValues(fieldValue, isDeepSecretKey, container.copyOnWrite, []);
49
- if (redacted instanceof Promise) {
50
- return redacted.then((result) => {
51
- container.set(key, result);
52
- });
53
- }
54
- container.set(key, redacted);
55
- }
56
- handleCustomObjectArrayValueIfMatchTypeSpecified(container, key, matchType) {
57
- const fieldValue = container.source[key];
58
- if (!Array.isArray(fieldValue)) {
59
- return;
60
- }
61
- return (0, maybeAsync_1.resolveMaybeAsync)((0, objectRedactorCustomObject_1.applyCustomObjectArrayMatchType)(matchType, {
62
- deleteKey: () => container.remove(key),
63
- redactFull: () => this.services.setPrimitiveFromValue(container, key, fieldValue),
64
- redactDeep: () => this.setRedactedArray(container, key, fieldValue, true),
65
- redactShallow: () => this.setRedactedArray(container, key, fieldValue, false),
66
- passThrough: () => this.services.redactArrayInObject(fieldValue, key, false, container, [])
67
- }), this.services.asyncMode);
68
- }
69
- setRedactedArray(container, key, fieldValue, forceDeepRedaction) {
70
- const redacted = this.services.redactAllArrayValues(fieldValue, forceDeepRedaction, container.copyOnWrite, []);
71
- if (redacted instanceof Promise) {
72
- return redacted.then((result) => {
73
- container.set(key, result);
74
- });
75
- }
76
- container.set(key, redacted);
77
- }
78
- handleCustomObjectValueIfObject(container, key, customObject) {
79
- const stringKey = (0, objectRedactorHelpers_1.getStringSpecifiedCustomObjectSecretKeyValueIfExists)(container.source, customObject, key);
80
- if (stringKey !== undefined) {
81
- return this.handleCustomObjectObjectValueIfStringKeySpecified(container, key, stringKey);
82
- }
83
- return this.handleCustomObjectObjectValueIfMatchTypeSpecified(container, key, customObject[key]);
84
- }
85
- handleCustomObjectObjectValueIfStringKeySpecified(container, key, stringKey) {
86
- const fieldValue = container.source[key];
87
- if (!(0, types_1.isJsonObject)(fieldValue)) {
88
- return;
89
- }
90
- const nestedSchema = this.services.ruleResolver.getMatchingSchema(fieldValue);
91
- if (nestedSchema) {
92
- const child = (0, objectRedactorMutation_1.createContainerMutation)(fieldValue, container.copyOnWrite);
93
- return (0, maybeAsync_1.finalizeMaybeAsync)(this.handleCustomObject(child, nestedSchema), () => {
94
- container.set(key, child.result());
95
- }, this.services.asyncMode);
96
- }
97
- if (this.services.secretManager.isDeleteSecretKey(stringKey)) {
98
- container.remove(key);
99
- return;
100
- }
101
- if (this.services.secretManager.isFullSecretKey(stringKey)) {
102
- return this.services.setPrimitiveFromValue(container, key, fieldValue);
103
- }
104
- const forceDeep = this.services.secretManager.isDeepSecretKey(stringKey);
105
- if (!forceDeep && !this.services.secretManager.isSecretKey(stringKey)) {
106
- return;
107
- }
108
- const child = (0, objectRedactorMutation_1.createContainerMutation)(fieldValue, container.copyOnWrite);
109
- return (0, maybeAsync_1.finalizeMaybeAsync)(this.services.redactSecretFields(child, forceDeep, []), () => {
110
- container.set(key, child.result());
111
- }, this.services.asyncMode);
112
- }
113
- handleCustomObjectObjectValueIfMatchTypeSpecified(container, key, matchType) {
114
- const fieldValue = container.source[key];
115
- if (!(0, types_1.isJsonObject)(fieldValue)) {
116
- return;
117
- }
118
- return (0, maybeAsync_1.resolveMaybeAsync)((0, objectRedactorCustomObject_1.applyCustomObjectObjectMatchType)(matchType, {
119
- deleteKey: () => container.remove(key),
120
- redactFull: () => this.services.setPrimitiveFromValue(container, key, fieldValue),
121
- redactDeep: () => this.setRedactedObject(container, key, fieldValue, true),
122
- redactShallowOrPass: () => this.setRedactedObject(container, key, fieldValue, false),
123
- ignore: () => undefined
124
- }), this.services.asyncMode);
125
- }
126
- setRedactedObject(container, key, fieldValue, forceDeepRedaction) {
127
- const child = (0, objectRedactorMutation_1.createContainerMutation)(fieldValue, container.copyOnWrite);
128
- return (0, maybeAsync_1.finalizeMaybeAsync)(this.services.redactSecretFields(child, forceDeepRedaction, []), () => {
129
- container.set(key, child.result());
130
- }, this.services.asyncMode);
131
- }
132
- handleCustomObjectValueIfPrimitive(container, customObject, key) {
133
- if (typeof customObject[key] === 'number') {
134
- return this.handleCustomObjectPrimitiveValueIfMatchTypeSpecified(container, key, customObject[key]);
135
- }
136
- const secretKey = (0, objectRedactorHelpers_1.getStringSpecifiedCustomObjectSecretKeyValueIfExists)(container.source, customObject, key);
137
- if (secretKey === undefined) {
138
- return;
139
- }
140
- return this.handleCustomObjectPrimitiveValueIfStringKeySpecified(container, secretKey, key);
141
- }
142
- handleCustomObjectPrimitiveValueIfMatchTypeSpecified(container, key, matchValue) {
143
- return (0, maybeAsync_1.resolveMaybeAsync)((0, objectRedactorCustomObject_1.applyCustomObjectPrimitiveMatchType)(matchValue, {
144
- deleteKey: () => container.remove(key),
145
- redactFull: () => this.services.setPrimitiveFromValue(container, key, container.source[key]),
146
- redactScalar: () => this.services.setPrimitive(container, key, container.source[key]),
147
- passThrough: () => undefined
148
- }), this.services.asyncMode);
149
- }
150
- handleCustomObjectPrimitiveValueIfStringKeySpecified(container, secretKey, key) {
151
- if (this.services.secretManager.isDeleteSecretKey(secretKey)) {
152
- container.remove(key);
153
- return;
154
- }
155
- return this.services.setPrimitiveValueIfSecret(container, key, secretKey, container.source[key], false);
156
- }
157
- }
158
- exports.CustomObjectFieldHandler = CustomObjectFieldHandler;
159
- //# sourceMappingURL=customObjectFieldHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"customObjectFieldHandler.js","sourceRoot":"","sources":["../src/customObjectFieldHandler.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- import { CustomObject, MatchedSchemaReport } from './types';
2
- /**
3
- * Utility for determining if a given object matches a CustomObject schema.
4
- * A value matches when it contains every key defined in the schema; additional keys on the value are allowed.
5
- * When multiple schemas match, the schema with the most keys is selected.
6
- */
7
- export declare class CustomObjectManager {
8
- private readonly customObjects;
9
- private readonly schemaNames;
10
- /**
11
- * Creates a CustomObjectManager with the specified CustomObjects.
12
- * @param customObjects The CustomObjects to check against.
13
- * @param schemaNames Optional labels parallel to `customObjects` for dry-run reports.
14
- */
15
- constructor(customObjects?: CustomObject[], schemaNames?: readonly (string | undefined)[]);
16
- getSchemaIndex(schema: CustomObject): number;
17
- getSchemaName(schemaIndex: number): string | undefined;
18
- getSchemaMetadata(schema: CustomObject): Pick<MatchedSchemaReport, 'schemaIndex' | 'schemaName'>;
19
- /**
20
- * Determines if the input value matches any of the custom objects provided in the constructor.
21
- * When multiple schemas match, returns the schema with the most keys.
22
- * @param value The value to compare against the custom objects.
23
- * @returns The most specific matching custom object, otherwise undefined.
24
- */
25
- getMatchingCustomObject(value: unknown): CustomObject | undefined;
26
- private isCustomObject;
27
- }
28
- //# sourceMappingURL=customObjectManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"customObjectManager.d.ts","sourceRoot":"","sources":["../src/customObjectManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAGxE;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAE9D;;;;OAIG;gBACS,aAAa,CAAC,EAAE,YAAY,EAAE,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE;IAMlF,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAI5C,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAItD,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,aAAa,GAAG,YAAY,CAAC;IAMvG;;;;;OAKG;IACI,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS;IAiBxE,OAAO,CAAC,cAAc;CAOvB"}
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CustomObjectManager = void 0;
4
- const customObjectSchemas_1 = require("./customObjectSchemas");
5
- /**
6
- * Utility for determining if a given object matches a CustomObject schema.
7
- * A value matches when it contains every key defined in the schema; additional keys on the value are allowed.
8
- * When multiple schemas match, the schema with the most keys is selected.
9
- */
10
- class CustomObjectManager {
11
- /**
12
- * Creates a CustomObjectManager with the specified CustomObjects.
13
- * @param customObjects The CustomObjects to check against.
14
- * @param schemaNames Optional labels parallel to `customObjects` for dry-run reports.
15
- */
16
- constructor(customObjects, schemaNames) {
17
- (0, customObjectSchemas_1.assertNoIdenticalCustomObjectSchemas)(customObjects);
18
- this.customObjects = customObjects !== null && customObjects !== void 0 ? customObjects : [];
19
- this.schemaNames = schemaNames !== null && schemaNames !== void 0 ? schemaNames : [];
20
- }
21
- getSchemaIndex(schema) {
22
- return this.customObjects.indexOf(schema);
23
- }
24
- getSchemaName(schemaIndex) {
25
- return this.schemaNames[schemaIndex];
26
- }
27
- getSchemaMetadata(schema) {
28
- const schemaIndex = this.getSchemaIndex(schema);
29
- const schemaName = this.getSchemaName(schemaIndex);
30
- return schemaName ? { schemaIndex, schemaName } : { schemaIndex };
31
- }
32
- /**
33
- * Determines if the input value matches any of the custom objects provided in the constructor.
34
- * When multiple schemas match, returns the schema with the most keys.
35
- * @param value The value to compare against the custom objects.
36
- * @returns The most specific matching custom object, otherwise undefined.
37
- */
38
- getMatchingCustomObject(value) {
39
- let bestMatch;
40
- let bestMatchKeyCount = -1;
41
- for (const customObject of this.customObjects) {
42
- if (this.isCustomObject(value, customObject)) {
43
- const keyCount = Object.keys(customObject).length;
44
- if (keyCount > bestMatchKeyCount) {
45
- bestMatch = customObject;
46
- bestMatchKeyCount = keyCount;
47
- }
48
- }
49
- }
50
- return bestMatch;
51
- }
52
- isCustomObject(value, customObject) {
53
- if (typeof value !== 'object' || !value || Array.isArray(value)) {
54
- return false;
55
- }
56
- return Object.keys(customObject).every((key) => Object.prototype.hasOwnProperty.call(value, key));
57
- }
58
- }
59
- exports.CustomObjectManager = CustomObjectManager;
60
- //# sourceMappingURL=customObjectManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"customObjectManager.js","sourceRoot":"","sources":["../src/customObjectManager.ts"],"names":[],"mappings":";;;AACA,+DAA6E;AAE7E;;;;GAIG;AACH,MAAa,mBAAmB;IAI9B;;;;OAIG;IACH,YAAY,aAA8B,EAAE,WAA6C;QACvF,IAAA,0DAAoC,EAAC,aAAa,CAAC,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,CAAC;IACvC,CAAC;IAEM,cAAc,CAAC,MAAoB;QACxC,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAEM,aAAa,CAAC,WAAmB;QACtC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAEM,iBAAiB,CAAC,MAAoB;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACnD,OAAO,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IACI,uBAAuB,CAAC,KAAc;QAC3C,IAAI,SAAmC,CAAC;QACxC,IAAI,iBAAiB,GAAG,CAAC,CAAC,CAAC;QAE3B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;gBAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;gBAClD,IAAI,QAAQ,GAAG,iBAAiB,EAAE,CAAC;oBACjC,SAAS,GAAG,YAAY,CAAC;oBACzB,iBAAiB,GAAG,QAAQ,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,cAAc,CAAC,KAAc,EAAE,YAA0B;QAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACpG,CAAC;CACF;AA3DD,kDA2DC"}
@@ -1,7 +0,0 @@
1
- import { CustomObject } from './types';
2
- export declare const analyzeSchemaPairs: (customObjects: CustomObject[]) => {
3
- identicalPairs: Array<[number, number, string[]]>;
4
- subsetPairs: Array<[number, number]>;
5
- };
6
- export declare const assertNoIdenticalCustomObjectSchemas: (customObjects?: CustomObject[]) => void;
7
- //# sourceMappingURL=customObjectSchemas.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"customObjectSchemas.d.ts","sourceRoot":"","sources":["../src/customObjectSchemas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,eAAO,MAAM,kBAAkB,kBACd,YAAY,EAAE,KAC5B;IAAE,cAAc,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAAC,WAAW,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAsB3F,CAAC;AAEF,eAAO,MAAM,oCAAoC,mBAAoB,YAAY,EAAE,KAAG,IAUrF,CAAC"}
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assertNoIdenticalCustomObjectSchemas = exports.analyzeSchemaPairs = void 0;
4
- const errors_1 = require("./errors");
5
- const analyzeSchemaPairs = (customObjects) => {
6
- const identicalPairs = [];
7
- const subsetPairs = [];
8
- for (let i = 0; i < customObjects.length - 1; i++) {
9
- const keysA = Object.keys(customObjects[i]);
10
- for (let j = i + 1; j < customObjects.length; j++) {
11
- const keysB = Object.keys(customObjects[j]);
12
- if (keysA.length === keysB.length && keysA.every((key) => keysB.includes(key))) {
13
- identicalPairs.push([i, j, keysA]);
14
- continue;
15
- }
16
- const aSubsetOfB = keysA.length < keysB.length && keysA.every((key) => keysB.includes(key));
17
- const bSubsetOfA = keysB.length < keysA.length && keysB.every((key) => keysA.includes(key));
18
- if (aSubsetOfB || bSubsetOfA) {
19
- subsetPairs.push([i, j]);
20
- }
21
- }
22
- }
23
- return { identicalPairs, subsetPairs };
24
- };
25
- exports.analyzeSchemaPairs = analyzeSchemaPairs;
26
- const assertNoIdenticalCustomObjectSchemas = (customObjects) => {
27
- if (!customObjects || customObjects.length <= 1) {
28
- return;
29
- }
30
- for (const [i, j, keys] of (0, exports.analyzeSchemaPairs)(customObjects).identicalPairs) {
31
- throw new errors_1.FieldRedactorConfigurationError(`Custom Objects at indexes ${i} and ${j} cannot have identical keys: ${keys}`);
32
- }
33
- };
34
- exports.assertNoIdenticalCustomObjectSchemas = assertNoIdenticalCustomObjectSchemas;
35
- //# sourceMappingURL=customObjectSchemas.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"customObjectSchemas.js","sourceRoot":"","sources":["../src/customObjectSchemas.ts"],"names":[],"mappings":";;;AAAA,qCAA2D;AAGpD,MAAM,kBAAkB,GAAG,CAChC,aAA6B,EACgE,EAAE;IAC/F,MAAM,cAAc,GAAsC,EAAE,CAAC;IAC7D,MAAM,WAAW,GAA4B,EAAE,CAAC;IAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC/E,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBACnC,SAAS;YACX,CAAC;YAED,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5F,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5F,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;gBAC7B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;AACzC,CAAC,CAAC;AAxBW,QAAA,kBAAkB,sBAwB7B;AAEK,MAAM,oCAAoC,GAAG,CAAC,aAA8B,EAAQ,EAAE;IAC3F,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,IAAA,0BAAkB,EAAC,aAAa,CAAC,CAAC,cAAc,EAAE,CAAC;QAC5E,MAAM,IAAI,wCAA+B,CACvC,6BAA6B,CAAC,QAAQ,CAAC,gCAAgC,IAAI,EAAE,CAC9E,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAVW,QAAA,oCAAoC,wCAU/C"}
package/dist/dryRun.d.ts DELETED
@@ -1,9 +0,0 @@
1
- import { CustomObjectManager } from './customObjectManager';
2
- import { SecretManager } from './secretManager';
3
- import { ValuePatternMatcher } from './valuePatternMatcher';
4
- import { PathRuleMatcher } from './pathRuleMatcher';
5
- import { DryRunReport, JsonValue } from './types';
6
- export declare const createEmptyDryRunReport: () => DryRunReport;
7
- export declare const EMPTY_DRY_RUN_REPORT: DryRunReport;
8
- export declare const buildDryRunReport: (before: JsonValue | undefined, after: JsonValue | undefined, manager: CustomObjectManager, secretManager: SecretManager, valuePatternMatcher: ValuePatternMatcher, pathRuleMatcher: PathRuleMatcher) => DryRunReport;
9
- //# sourceMappingURL=dryRun.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dryRun.d.ts","sourceRoot":"","sources":["../src/dryRun.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAgB,SAAS,EAAE,MAAM,SAAS,CAAC;AAEhE,eAAO,MAAM,uBAAuB,QAAO,YAKzC,CAAC;AAEH,eAAO,MAAM,oBAAoB,EAAE,YAAwC,CAAC;AA0E5E,eAAO,MAAM,iBAAiB,WACpB,SAAS,GAAG,SAAS,SACtB,SAAS,GAAG,SAAS,WACnB,mBAAmB,iBACb,aAAa,uBACP,mBAAmB,mBACvB,eAAe,KAC/B,YAkBF,CAAC"}
package/dist/dryRun.js DELETED
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildDryRunReport = exports.EMPTY_DRY_RUN_REPORT = exports.createEmptyDryRunReport = void 0;
4
- const dryRunAttribution_1 = require("./dryRunAttribution");
5
- const jsonWalk_1 = require("./jsonWalk");
6
- const types_1 = require("./types");
7
- const createEmptyDryRunReport = () => ({
8
- redactedPaths: [],
9
- deletedPaths: [],
10
- matchedSchemas: [],
11
- pathRules: []
12
- });
13
- exports.createEmptyDryRunReport = createEmptyDryRunReport;
14
- exports.EMPTY_DRY_RUN_REPORT = (0, exports.createEmptyDryRunReport)();
15
- const pushPath = (report, path, list) => {
16
- if (path) {
17
- report[list].push(path);
18
- }
19
- };
20
- const diffRedaction = (before, after, path, report) => {
21
- if (before === after) {
22
- return;
23
- }
24
- if (!(0, jsonWalk_1.isTraversableJson)(before) || !(0, jsonWalk_1.isTraversableJson)(after)) {
25
- pushPath(report, path, after === undefined && before !== undefined ? 'deletedPaths' : 'redactedPaths');
26
- return;
27
- }
28
- if (Array.isArray(before)) {
29
- if (!Array.isArray(after)) {
30
- pushPath(report, path, 'redactedPaths');
31
- return;
32
- }
33
- for (let index = 0; index < Math.max(before.length, after.length); index++) {
34
- if (!Object.prototype.hasOwnProperty.call(after, index) && Object.prototype.hasOwnProperty.call(before, index)) {
35
- report.deletedPaths.push((0, jsonWalk_1.joinPath)(path, index));
36
- continue;
37
- }
38
- diffRedaction(before[index], after[index], (0, jsonWalk_1.joinPath)(path, index), report);
39
- }
40
- return;
41
- }
42
- if (!(0, types_1.isJsonObject)(before) || !(0, types_1.isJsonObject)(after)) {
43
- pushPath(report, path, 'redactedPaths');
44
- return;
45
- }
46
- for (const key of Object.keys(before)) {
47
- const childPath = (0, jsonWalk_1.joinPath)(path, key);
48
- if (!Object.prototype.hasOwnProperty.call(after, key)) {
49
- report.deletedPaths.push(childPath);
50
- }
51
- else {
52
- diffRedaction(before[key], after[key], childPath, report);
53
- }
54
- }
55
- };
56
- const collectMatchedSchemas = (value, manager, path, report) => {
57
- (0, jsonWalk_1.walkTraversableJson)(value, path, (node, nodePath) => {
58
- const schema = manager.getMatchingCustomObject(node);
59
- if (!schema) {
60
- return;
61
- }
62
- report.matchedSchemas.push(Object.assign({ path: nodePath || '(root)' }, manager.getSchemaMetadata(schema)));
63
- });
64
- };
65
- const buildDryRunReport = (before, after, manager, secretManager, valuePatternMatcher, pathRuleMatcher) => {
66
- const report = (0, exports.createEmptyDryRunReport)();
67
- if (before !== undefined) {
68
- diffRedaction(before, after, '', report);
69
- collectMatchedSchemas(before, manager, '', report);
70
- report.pathRules = (0, dryRunAttribution_1.buildPathRules)(before, report.redactedPaths, report.deletedPaths, secretManager, manager, valuePatternMatcher, pathRuleMatcher);
71
- }
72
- return report;
73
- };
74
- exports.buildDryRunReport = buildDryRunReport;
75
- //# sourceMappingURL=dryRun.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dryRun.js","sourceRoot":"","sources":["../src/dryRun.ts"],"names":[],"mappings":";;;AACA,2DAAqD;AACrD,yCAA8E;AAI9E,mCAAgE;AAEzD,MAAM,uBAAuB,GAAG,GAAiB,EAAE,CAAC,CAAC;IAC1D,aAAa,EAAE,EAAE;IACjB,YAAY,EAAE,EAAE;IAChB,cAAc,EAAE,EAAE;IAClB,SAAS,EAAE,EAAE;CACd,CAAC,CAAC;AALU,QAAA,uBAAuB,2BAKjC;AAEU,QAAA,oBAAoB,GAAiB,IAAA,+BAAuB,GAAE,CAAC;AAE5E,MAAM,QAAQ,GAAG,CAAC,MAAoB,EAAE,IAAY,EAAE,IAAsC,EAAQ,EAAE;IACpG,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CACpB,MAA6B,EAC7B,KAA4B,EAC5B,IAAY,EACZ,MAAoB,EACd,EAAE;IACR,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,CAAC,IAAA,4BAAiB,EAAC,MAAM,CAAC,IAAI,CAAC,IAAA,4BAAiB,EAAC,KAAK,CAAC,EAAE,CAAC;QAC5D,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QACvG,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3E,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC/G,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAA,mBAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBAChD,SAAS;YACX,CAAC;YAED,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,IAAA,mBAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,CAAC,IAAA,oBAAY,EAAC,MAAM,CAAC,IAAI,CAAC,IAAA,oBAAY,EAAC,KAAK,CAAC,EAAE,CAAC;QAClD,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,IAAA,mBAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC5B,KAA4B,EAC5B,OAA4B,EAC5B,IAAY,EACZ,MAAoB,EACd,EAAE;IACR,IAAA,8BAAmB,EAAC,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;QAClD,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,MAAM,CAAC,cAAc,CAAC,IAAI,iBACxB,IAAI,EAAE,QAAQ,IAAI,QAAQ,IACvB,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,EACpC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,CAC/B,MAA6B,EAC7B,KAA4B,EAC5B,OAA4B,EAC5B,aAA4B,EAC5B,mBAAwC,EACxC,eAAgC,EAClB,EAAE;IAChB,MAAM,MAAM,GAAG,IAAA,+BAAuB,GAAE,CAAC;IAEzC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACzC,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,SAAS,GAAG,IAAA,kCAAc,EAC/B,MAAM,EACN,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,YAAY,EACnB,aAAa,EACb,OAAO,EACP,mBAAmB,EACnB,eAAe,CAChB,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAzBW,QAAA,iBAAiB,qBAyB5B"}