types.tsx 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. export enum RuleType {
  2. PATTERN = 'pattern',
  3. CREDITCARD = 'creditcard',
  4. PASSWORD = 'password',
  5. IP = 'ip',
  6. IMEI = 'imei',
  7. EMAIL = 'email',
  8. UUID = 'uuid',
  9. PEMKEY = 'pemkey',
  10. URLAUTH = 'url_auth',
  11. USSSN = 'us_ssn',
  12. USER_PATH = 'userpath',
  13. MAC = 'mac',
  14. ANYTHING = 'anything',
  15. }
  16. export enum MethodType {
  17. MASK = 'mask',
  18. REMOVE = 'remove',
  19. HASH = 'hash',
  20. REPLACE = 'replace',
  21. }
  22. export enum EventIdStatus {
  23. UNDEFINED = 'undefined',
  24. LOADING = 'loading',
  25. INVALID = 'invalid',
  26. NOT_FOUND = 'not_found',
  27. LOADED = 'loaded',
  28. ERROR = 'error',
  29. }
  30. export enum SourceSuggestionType {
  31. VALUE = 'value',
  32. UNARY = 'unary',
  33. BINARY = 'binary',
  34. STRING = 'string',
  35. }
  36. export type SourceSuggestion = {
  37. type: SourceSuggestionType;
  38. value: string;
  39. description?: string;
  40. examples?: Array<string>;
  41. };
  42. type RuleBase = {
  43. id: number;
  44. source: string;
  45. };
  46. export type RuleDefault = RuleBase & {
  47. method: MethodType.MASK | MethodType.REMOVE | MethodType.HASH;
  48. type:
  49. | RuleType.CREDITCARD
  50. | RuleType.PASSWORD
  51. | RuleType.IP
  52. | RuleType.IMEI
  53. | RuleType.EMAIL
  54. | RuleType.UUID
  55. | RuleType.PEMKEY
  56. | RuleType.URLAUTH
  57. | RuleType.USSSN
  58. | RuleType.USER_PATH
  59. | RuleType.MAC
  60. | RuleType.ANYTHING;
  61. };
  62. export type RulePattern = RuleBase & {
  63. pattern: string;
  64. type: RuleType.PATTERN;
  65. } & Pick<RuleDefault, 'method'>;
  66. export type RuleReplace = RuleBase & {
  67. method: MethodType.REPLACE;
  68. placeholder?: string;
  69. } & Pick<RuleDefault, 'type'>;
  70. export type KeysOfUnion<T> = T extends any ? keyof T : never;
  71. export type RuleReplaceAndPattern = Omit<RulePattern, 'method'> &
  72. Omit<RuleReplace, 'type'>;
  73. export type Rule = RuleDefault | RuleReplace | RulePattern | RuleReplaceAndPattern;
  74. export type EventId = {
  75. status: EventIdStatus;
  76. value: string;
  77. };
  78. type PiiConfigDefault = {
  79. redaction: {
  80. method: RuleDefault['method'];
  81. };
  82. type: RuleDefault['type'];
  83. };
  84. type PiiConfigReplace = {
  85. redaction: {
  86. method: RuleReplace['method'];
  87. text?: string;
  88. };
  89. type: RuleReplace['type'];
  90. };
  91. type PiiConfigPattern = {
  92. pattern: string;
  93. redaction: {
  94. method: RulePattern['method'];
  95. };
  96. type: RulePattern['type'];
  97. };
  98. type PiiConfigReplaceAndPattern = Omit<PiiConfigPattern, 'redaction'> &
  99. Pick<PiiConfigReplace, 'redaction'>;
  100. export type PiiConfig =
  101. | PiiConfigDefault
  102. | PiiConfigPattern
  103. | PiiConfigReplace
  104. | PiiConfigReplaceAndPattern;
  105. export type Applications = Record<string, Array<string>>;
  106. export type Errors = Partial<Record<KeysOfUnion<Rule>, string>>;