field-redactor 1.6.1 → 1.6.3

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