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,85 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SecretManager = void 0;
4
- const regexUtils_1 = require("./regexUtils");
5
- const KEY_RULE_PRECEDENCE = ['remove', 'opaque', 'deep', 'shallow'];
6
- /**
7
- * Utility class for managing secrets and determining if a given value is a secret of any type. If no secrets of
8
- * any type are provided in the configuration then all values are considered secrets (but not deep or full secrets).
9
- */
10
- class SecretManager {
11
- constructor(config) {
12
- this.deepSecretKeys = config.deepSecretKeys;
13
- this.fullSecretKeys = config.fullSecretKeys;
14
- this.deleteSecretKeys = config.deleteSecretKeys;
15
- this.passKeys = config.passKeys;
16
- if (!config.secretKeys && (config.deepSecretKeys || config.fullSecretKeys || config.deleteSecretKeys)) {
17
- this.secretKeys = [];
18
- }
19
- else {
20
- this.secretKeys = config.secretKeys;
21
- }
22
- }
23
- /**
24
- * Determines if the given key is a secret. If no secrets of any type are provided then this function
25
- * always returns true.
26
- */
27
- isSecretKey(key) {
28
- if (!this.secretKeys) {
29
- return true;
30
- }
31
- return this.matchesRule(key, 'shallow');
32
- }
33
- isDeepSecretKey(key) {
34
- return this.matchesRule(key, 'deep');
35
- }
36
- isFullSecretKey(key) {
37
- return this.matchesRule(key, 'opaque');
38
- }
39
- isDeleteSecretKey(key) {
40
- return this.matchesRule(key, 'remove');
41
- }
42
- /** Determines if a key is allowlisted and should not be redacted under deep parents. */
43
- isPassKey(key) {
44
- return !!this.passKeys && SecretManager.matchesAnyRegex(key, this.passKeys);
45
- }
46
- getKeyRulePattern(key, rule) {
47
- const match = SecretManager.findMatchingRegex(key, this.regexListFor(rule));
48
- return match ? (0, regexUtils_1.formatRegExp)(match) : undefined;
49
- }
50
- classifyKeyRule(key) {
51
- for (const rule of KEY_RULE_PRECEDENCE) {
52
- if (this.matchesRule(key, rule)) {
53
- return rule;
54
- }
55
- }
56
- if (this.isSecretKey(key)) {
57
- return this.secretKeys ? 'shallow' : 'default';
58
- }
59
- return null;
60
- }
61
- matchesRule(key, rule) {
62
- const regexes = this.regexListFor(rule);
63
- return !!regexes && SecretManager.matchesAnyRegex(key, regexes);
64
- }
65
- regexListFor(rule) {
66
- switch (rule) {
67
- case 'remove':
68
- return this.deleteSecretKeys;
69
- case 'opaque':
70
- return this.fullSecretKeys;
71
- case 'deep':
72
- return this.deepSecretKeys;
73
- case 'shallow':
74
- return this.secretKeys;
75
- }
76
- }
77
- static findMatchingRegex(key, regexes) {
78
- return regexes === null || regexes === void 0 ? void 0 : regexes.find((regex) => regex.test(String(key)));
79
- }
80
- static matchesAnyRegex(value, regexes) {
81
- return regexes.some((regex) => regex.test(String(value)));
82
- }
83
- }
84
- exports.SecretManager = SecretManager;
85
- //# sourceMappingURL=secretManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"secretManager.js","sourceRoot":"","sources":["../src/secretManager.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import { CustomObject, JsonArray, JsonLeafValue, JsonObject, JsonValue, RedactablePrimitive, SecretSpecifierValue } from './types';
2
- import { ContainerMutation } from './objectRedactorMutation';
3
- import { RuleResolver } from './ruleResolver';
4
- import { SecretManager } from './secretManager';
5
- import { ValuePatternMatcher } from './valuePatternMatcher';
6
- import { MaybeAsync } from './maybeAsync';
7
- /** Shared capabilities used by array and custom-object redaction modules. */
8
- export type TraversalServices = {
9
- readonly asyncMode: boolean;
10
- readonly ruleResolver: RuleResolver;
11
- readonly secretManager: SecretManager;
12
- readonly valuePatternMatcher: ValuePatternMatcher;
13
- setPrimitive(container: ContainerMutation<JsonObject | JsonArray>, key: string, primitive: RedactablePrimitive): MaybeAsync<void>;
14
- setPrimitiveFromValue(container: ContainerMutation<JsonObject | JsonArray>, key: string, value: JsonValue | undefined): MaybeAsync<void>;
15
- setPrimitiveValueIfSecret(container: ContainerMutation<JsonObject | JsonArray>, key: string, secretKey: SecretSpecifierValue, value: JsonLeafValue | undefined, forceDeepRedaction: boolean): MaybeAsync<void>;
16
- redactSecretFields(container: ContainerMutation<JsonObject | JsonArray>, forceDeepRedaction: boolean, pathSegments: Array<string | number>): MaybeAsync<void>;
17
- handleCustomObject(container: ContainerMutation<JsonObject>, customObject: CustomObject): MaybeAsync<void>;
18
- redactArrayInObject(array: JsonArray, key: string, forceDeepRedaction: boolean, parent: ContainerMutation<JsonObject | JsonArray>, pathSegments: Array<string | number>): MaybeAsync<void>;
19
- redactAllArrayValues(array: JsonArray, forceDeepRedaction: boolean, copyOnWrite: boolean, pathSegments: Array<string | number>): MaybeAsync<JsonArray>;
20
- };
21
- //# sourceMappingURL=traversalServices.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traversalServices.d.ts","sourceRoot":"","sources":["../src/traversalServices.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,SAAS,EACT,aAAa,EACb,UAAU,EACV,SAAS,EACT,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAClD,YAAY,CACV,SAAS,EAAE,iBAAiB,CAAC,UAAU,GAAG,SAAS,CAAC,EACpD,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,mBAAmB,GAC7B,UAAU,CAAC,IAAI,CAAC,CAAC;IACpB,qBAAqB,CACnB,SAAS,EAAE,iBAAiB,CAAC,UAAU,GAAG,SAAS,CAAC,EACpD,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAAG,SAAS,GAC3B,UAAU,CAAC,IAAI,CAAC,CAAC;IACpB,yBAAyB,CACvB,SAAS,EAAE,iBAAiB,CAAC,UAAU,GAAG,SAAS,CAAC,EACpD,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,oBAAoB,EAC/B,KAAK,EAAE,aAAa,GAAG,SAAS,EAChC,kBAAkB,EAAE,OAAO,GAC1B,UAAU,CAAC,IAAI,CAAC,CAAC;IACpB,kBAAkB,CAChB,SAAS,EAAE,iBAAiB,CAAC,UAAU,GAAG,SAAS,CAAC,EACpD,kBAAkB,EAAE,OAAO,EAC3B,YAAY,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GACnC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3G,mBAAmB,CACjB,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,OAAO,EAC3B,MAAM,EAAE,iBAAiB,CAAC,UAAU,GAAG,SAAS,CAAC,EACjD,YAAY,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GACnC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpB,oBAAoB,CAClB,KAAK,EAAE,SAAS,EAChB,kBAAkB,EAAE,OAAO,EAC3B,WAAW,EAAE,OAAO,EACpB,YAAY,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GACnC,UAAU,CAAC,SAAS,CAAC,CAAC;CAC1B,CAAC"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=traversalServices.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traversalServices.js","sourceRoot":"","sources":["../src/traversalServices.ts"],"names":[],"mappings":""}
@@ -1,15 +0,0 @@
1
- import { RedactablePrimitive } from './types';
2
- /**
3
- * Opt-in regex matching against scalar **values** (not key names).
4
- * Applied only when key-based rules do not already redact the field.
5
- */
6
- export declare class ValuePatternMatcher {
7
- private readonly patterns;
8
- constructor(patterns?: RegExp[]);
9
- hasPatterns(): boolean;
10
- findMatching(value: RedactablePrimitive | undefined): RegExp | undefined;
11
- formatPattern(regex: RegExp): string;
12
- }
13
- /** Shared empty matcher for tests and configs without value patterns. */
14
- export declare const EMPTY_VALUE_PATTERN_MATCHER: ValuePatternMatcher;
15
- //# sourceMappingURL=valuePatternMatcher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"valuePatternMatcher.d.ts","sourceRoot":"","sources":["../src/valuePatternMatcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAExB,QAAQ,CAAC,EAAE,MAAM,EAAE;IAIxB,WAAW,IAAI,OAAO;IAItB,YAAY,CAAC,KAAK,EAAE,mBAAmB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;IASxE,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAG5C;AAED,yEAAyE;AACzE,eAAO,MAAM,2BAA2B,qBAA4B,CAAC"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EMPTY_VALUE_PATTERN_MATCHER = exports.ValuePatternMatcher = void 0;
4
- const regexUtils_1 = require("./regexUtils");
5
- /**
6
- * Opt-in regex matching against scalar **values** (not key names).
7
- * Applied only when key-based rules do not already redact the field.
8
- */
9
- class ValuePatternMatcher {
10
- constructor(patterns) {
11
- this.patterns = patterns !== null && patterns !== void 0 ? patterns : [];
12
- }
13
- hasPatterns() {
14
- return this.patterns.length > 0;
15
- }
16
- findMatching(value) {
17
- if (value === undefined || value === null || typeof value === 'boolean') {
18
- return undefined;
19
- }
20
- const text = String(value);
21
- return this.patterns.find((pattern) => pattern.test(text));
22
- }
23
- formatPattern(regex) {
24
- return (0, regexUtils_1.formatRegExp)(regex);
25
- }
26
- }
27
- exports.ValuePatternMatcher = ValuePatternMatcher;
28
- /** Shared empty matcher for tests and configs without value patterns. */
29
- exports.EMPTY_VALUE_PATTERN_MATCHER = new ValuePatternMatcher();
30
- //# sourceMappingURL=valuePatternMatcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"valuePatternMatcher.js","sourceRoot":"","sources":["../src/valuePatternMatcher.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG5C;;;GAGG;AACH,MAAa,mBAAmB;IAG9B,YAAY,QAAmB;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CAAC;IACjC,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,CAAC;IAEM,YAAY,CAAC,KAAsC;QACxD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YACxE,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IAEM,aAAa,CAAC,KAAa;QAChC,OAAO,IAAA,yBAAY,EAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;CACF;AAvBD,kDAuBC;AAED,yEAAyE;AAC5D,QAAA,2BAA2B,GAAG,IAAI,mBAAmB,EAAE,CAAC"}