auth0-deploy-cli 7.8.0 → 7.11.0

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 (137) hide show
  1. package/CHANGELOG.md +40 -1
  2. package/README.md +2 -2
  3. package/lib/context/directory/handlers/actions.d.ts +2 -3
  4. package/lib/context/directory/handlers/actions.js +4 -4
  5. package/lib/context/directory/handlers/attackProtection.d.ts +6 -7
  6. package/lib/context/directory/handlers/attackProtection.js +3 -1
  7. package/lib/context/directory/handlers/branding.d.ts +2 -3
  8. package/lib/context/directory/handlers/branding.js +45 -21
  9. package/lib/context/directory/handlers/clientGrants.d.ts +2 -3
  10. package/lib/context/directory/handlers/clientGrants.js +3 -2
  11. package/lib/context/directory/handlers/clients.d.ts +2 -3
  12. package/lib/context/directory/handlers/clients.js +1 -1
  13. package/lib/context/directory/handlers/connections.d.ts +2 -3
  14. package/lib/context/directory/handlers/connections.js +3 -3
  15. package/lib/context/directory/handlers/databases.d.ts +2 -3
  16. package/lib/context/directory/handlers/databases.js +2 -2
  17. package/lib/context/directory/handlers/emailProvider.d.ts +2 -3
  18. package/lib/context/directory/handlers/emailProvider.js +12 -10
  19. package/lib/context/directory/handlers/emailTemplates.d.ts +2 -3
  20. package/lib/context/directory/handlers/emailTemplates.js +2 -2
  21. package/lib/context/directory/handlers/guardianFactorProviders.d.ts +2 -3
  22. package/lib/context/directory/handlers/guardianFactorProviders.js +1 -1
  23. package/lib/context/directory/handlers/guardianFactorTemplates.d.ts +2 -3
  24. package/lib/context/directory/handlers/guardianFactorTemplates.js +1 -1
  25. package/lib/context/directory/handlers/guardianFactors.d.ts +2 -3
  26. package/lib/context/directory/handlers/guardianFactors.js +1 -1
  27. package/lib/context/directory/handlers/guardianPhoneFactorMessageTypes.d.ts +2 -3
  28. package/lib/context/directory/handlers/guardianPhoneFactorMessageTypes.js +6 -6
  29. package/lib/context/directory/handlers/guardianPhoneFactorSelectedProvider.d.ts +2 -3
  30. package/lib/context/directory/handlers/guardianPhoneFactorSelectedProvider.js +6 -6
  31. package/lib/context/directory/handlers/guardianPolicies.d.ts +2 -3
  32. package/lib/context/directory/handlers/guardianPolicies.js +6 -6
  33. package/lib/context/directory/handlers/hooks.d.ts +2 -3
  34. package/lib/context/directory/handlers/hooks.js +3 -3
  35. package/lib/context/directory/handlers/index.d.ts +2 -2
  36. package/lib/context/directory/handlers/index.js +2 -0
  37. package/lib/context/directory/handlers/logStreams.d.ts +5 -0
  38. package/lib/context/directory/handlers/logStreams.js +49 -0
  39. package/lib/context/directory/handlers/migrations.d.ts +2 -3
  40. package/lib/context/directory/handlers/migrations.js +2 -2
  41. package/lib/context/directory/handlers/organizations.d.ts +2 -3
  42. package/lib/context/directory/handlers/organizations.js +1 -1
  43. package/lib/context/directory/handlers/pages.d.ts +2 -3
  44. package/lib/context/directory/handlers/pages.js +2 -2
  45. package/lib/context/directory/handlers/resourceServers.d.ts +2 -3
  46. package/lib/context/directory/handlers/resourceServers.js +1 -1
  47. package/lib/context/directory/handlers/roles.d.ts +2 -3
  48. package/lib/context/directory/handlers/roles.js +1 -1
  49. package/lib/context/directory/handlers/rules.d.ts +2 -3
  50. package/lib/context/directory/handlers/rules.js +2 -2
  51. package/lib/context/directory/handlers/rulesConfigs.d.ts +2 -3
  52. package/lib/context/directory/handlers/rulesConfigs.js +1 -1
  53. package/lib/context/directory/handlers/tenant.d.ts +7 -7
  54. package/lib/context/directory/handlers/tenant.js +11 -10
  55. package/lib/context/directory/handlers/triggers.d.ts +2 -3
  56. package/lib/context/directory/handlers/triggers.js +1 -1
  57. package/lib/context/yaml/handlers/actions.d.ts +2 -3
  58. package/lib/context/yaml/handlers/actions.js +6 -8
  59. package/lib/context/yaml/handlers/attackProtection.d.ts +6 -3
  60. package/lib/context/yaml/handlers/attackProtection.js +9 -1
  61. package/lib/context/yaml/handlers/branding.d.ts +9 -2
  62. package/lib/context/yaml/handlers/branding.js +33 -11
  63. package/lib/context/yaml/handlers/clientGrants.d.ts +2 -3
  64. package/lib/context/yaml/handlers/clientGrants.js +7 -6
  65. package/lib/context/yaml/handlers/clients.d.ts +2 -3
  66. package/lib/context/yaml/handlers/clients.js +6 -3
  67. package/lib/context/yaml/handlers/connections.d.ts +2 -3
  68. package/lib/context/yaml/handlers/connections.js +6 -9
  69. package/lib/context/yaml/handlers/databases.d.ts +3 -4
  70. package/lib/context/yaml/handlers/databases.js +7 -7
  71. package/lib/context/yaml/handlers/emailProvider.d.ts +2 -3
  72. package/lib/context/yaml/handlers/emailProvider.js +17 -10
  73. package/lib/context/yaml/handlers/emailTemplates.d.ts +2 -3
  74. package/lib/context/yaml/handlers/emailTemplates.js +16 -13
  75. package/lib/context/yaml/handlers/guardianFactorProviders.d.ts +2 -3
  76. package/lib/context/yaml/handlers/guardianFactorProviders.js +4 -2
  77. package/lib/context/yaml/handlers/guardianFactorTemplates.d.ts +2 -3
  78. package/lib/context/yaml/handlers/guardianFactorTemplates.js +4 -2
  79. package/lib/context/yaml/handlers/guardianFactors.d.ts +2 -3
  80. package/lib/context/yaml/handlers/guardianFactors.js +4 -2
  81. package/lib/context/yaml/handlers/guardianPhoneFactorMessageTypes.d.ts +2 -3
  82. package/lib/context/yaml/handlers/guardianPhoneFactorMessageTypes.js +4 -2
  83. package/lib/context/yaml/handlers/guardianPhoneFactorSelectedProvider.d.ts +2 -3
  84. package/lib/context/yaml/handlers/guardianPhoneFactorSelectedProvider.js +4 -2
  85. package/lib/context/yaml/handlers/guardianPolicies.d.ts +4 -3
  86. package/lib/context/yaml/handlers/guardianPolicies.js +4 -2
  87. package/lib/context/yaml/handlers/hooks.d.ts +2 -3
  88. package/lib/context/yaml/handlers/hooks.js +20 -19
  89. package/lib/context/yaml/handlers/index.d.ts +1 -1
  90. package/lib/context/yaml/handlers/index.js +2 -0
  91. package/lib/context/yaml/handlers/logStreams.d.ts +5 -0
  92. package/lib/context/yaml/handlers/logStreams.js +26 -0
  93. package/lib/context/yaml/handlers/migrations.d.ts +2 -3
  94. package/lib/context/yaml/handlers/migrations.js +5 -9
  95. package/lib/context/yaml/handlers/organizations.d.ts +2 -1
  96. package/lib/context/yaml/handlers/organizations.js +17 -15
  97. package/lib/context/yaml/handlers/pages.d.ts +2 -3
  98. package/lib/context/yaml/handlers/pages.js +20 -18
  99. package/lib/context/yaml/handlers/resourceServers.d.ts +2 -3
  100. package/lib/context/yaml/handlers/resourceServers.js +8 -13
  101. package/lib/context/yaml/handlers/roles.d.ts +2 -3
  102. package/lib/context/yaml/handlers/roles.js +13 -11
  103. package/lib/context/yaml/handlers/rules.d.ts +2 -3
  104. package/lib/context/yaml/handlers/rules.js +18 -17
  105. package/lib/context/yaml/handlers/rulesConfigs.d.ts +2 -3
  106. package/lib/context/yaml/handlers/rulesConfigs.js +9 -5
  107. package/lib/context/yaml/handlers/tenant.d.ts +2 -3
  108. package/lib/context/yaml/handlers/tenant.js +4 -3
  109. package/lib/context/yaml/handlers/triggers.d.ts +2 -3
  110. package/lib/context/yaml/handlers/triggers.js +2 -2
  111. package/lib/context/yaml/index.js +2 -1
  112. package/lib/index.d.ts +1 -0
  113. package/lib/tools/auth0/handlers/actions.js +3 -3
  114. package/lib/tools/auth0/handlers/branding.d.ts +2 -2
  115. package/lib/tools/auth0/handlers/clientGrants.js +1 -1
  116. package/lib/tools/auth0/handlers/connections.js +1 -1
  117. package/lib/tools/auth0/handlers/default.js +10 -2
  118. package/lib/tools/auth0/handlers/index.d.ts +5 -0
  119. package/lib/tools/auth0/handlers/index.js +2 -0
  120. package/lib/tools/auth0/handlers/logStreams.d.ts +40 -0
  121. package/lib/tools/auth0/handlers/logStreams.js +77 -0
  122. package/lib/tools/auth0/handlers/organizations.js +1 -1
  123. package/lib/tools/auth0/handlers/resourceServers.js +1 -1
  124. package/lib/tools/auth0/handlers/roles.js +1 -1
  125. package/lib/tools/auth0/handlers/rules.js +1 -1
  126. package/lib/tools/auth0/index.js +5 -2
  127. package/lib/tools/calculateChanges.d.ts +2 -2
  128. package/lib/tools/calculateChanges.js +2 -2
  129. package/lib/tools/constants.d.ts +1 -0
  130. package/lib/tools/constants.js +1 -0
  131. package/lib/tools/index.d.ts +1 -0
  132. package/lib/tools/utils.d.ts +9 -0
  133. package/lib/tools/utils.js +34 -2
  134. package/lib/types.d.ts +39 -29
  135. package/lib/utils.d.ts +34 -28
  136. package/lib/utils.js +1 -1
  137. package/package.json +11 -8
@@ -22,11 +22,20 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
25
34
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
36
  };
28
37
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.stripObfuscatedFieldsFromPayload = exports.obfuscateSensitiveValues = exports.areArraysEquals = exports.filterExcluded = exports.duplicateItems = exports.getEnabledClients = exports.stripFields = exports.convertJsonToString = exports.flatten = exports.loadFileAndReplaceKeywords = exports.convertClientNamesToIds = exports.convertClientNameToId = exports.keywordReplace = exports.keywordStringReplace = exports.keywordArrayReplace = void 0;
38
+ exports.detectInsufficientScopeError = exports.stripObfuscatedFieldsFromPayload = exports.obfuscateSensitiveValues = exports.areArraysEquals = exports.filterExcluded = exports.duplicateItems = exports.getEnabledClients = exports.stripFields = exports.convertJsonToString = exports.flatten = exports.loadFileAndReplaceKeywords = exports.convertClientNamesToIds = exports.convertClientNameToId = exports.keywordReplace = exports.keywordStringReplace = exports.keywordArrayReplace = void 0;
30
39
  const path_1 = __importDefault(require("path"));
31
40
  const fs_1 = __importStar(require("fs"));
32
41
  const dot_prop_1 = __importDefault(require("dot-prop"));
@@ -56,8 +65,8 @@ exports.keywordStringReplace = keywordStringReplace;
56
65
  function keywordReplace(input, mappings) {
57
66
  // Replace keywords with mappings within input.
58
67
  if (mappings && Object.keys(mappings).length > 0) {
59
- input = keywordStringReplace(input, mappings);
60
68
  input = keywordArrayReplace(input, mappings);
69
+ input = keywordStringReplace(input, mappings);
61
70
  }
62
71
  return input;
63
72
  }
@@ -208,3 +217,26 @@ const stripObfuscatedFieldsFromPayload = (data, obfuscatedFields) => {
208
217
  return newAsset;
209
218
  };
210
219
  exports.stripObfuscatedFieldsFromPayload = stripObfuscatedFieldsFromPayload;
220
+ const detectInsufficientScopeError = (fn) => __awaiter(void 0, void 0, void 0, function* () {
221
+ var _a, _b;
222
+ try {
223
+ const data = yield fn();
224
+ return {
225
+ hadSufficientScopes: true,
226
+ data,
227
+ requiredScopes: [],
228
+ };
229
+ }
230
+ catch (err) {
231
+ if (err.statusCode === 403 && err.message.includes('Insufficient scope')) {
232
+ const requiredScopes = (_b = (_a = err.message) === null || _a === void 0 ? void 0 : _a.split('Insufficient scope, expected any of: ')) === null || _b === void 0 ? void 0 : _b.slice(1);
233
+ return {
234
+ hadSufficientScopes: false,
235
+ requiredScopes,
236
+ data: null,
237
+ };
238
+ }
239
+ throw err;
240
+ }
241
+ });
242
+ exports.detectInsufficientScopeError = detectInsufficientScopeError;
package/lib/types.d.ts CHANGED
@@ -109,6 +109,7 @@ export declare type BaseAuth0APIClient = {
109
109
  }) => Promise<Promise<Asset[]>>;
110
110
  addSecrets: (arg0: {}, arg1: Asset) => Promise<void>;
111
111
  };
112
+ logStreams: APIClientBaseFunctions;
112
113
  migrations: APIClientBaseFunctions & {
113
114
  getMigrations: () => Promise<{
114
115
  flags: Asset[];
@@ -207,49 +208,58 @@ export declare type Config = {
207
208
  export declare type Asset = {
208
209
  [key: string]: any;
209
210
  };
210
- export declare type Assets = {
211
- actions: Asset[];
212
- attackProtection: Asset;
213
- branding: Asset;
214
- clients: Asset[];
215
- clientGrants: Asset[];
216
- connections: Asset[];
217
- databases: Asset[];
218
- emailProvider: Asset;
219
- emailTemplates: Asset[];
220
- guardianFactorProviders: Asset[];
221
- guardianFactors: Asset[];
222
- guardianFactorTemplates: Asset[];
211
+ export declare type Assets = Partial<{
212
+ actions: Asset[] | null;
213
+ attackProtection: Asset | null;
214
+ branding: {
215
+ templates?: {
216
+ template: string;
217
+ body: string;
218
+ }[] | null;
219
+ } | null;
220
+ clients: Asset[] | null;
221
+ clientGrants: Asset[] | null;
222
+ connections: Asset[] | null;
223
+ databases: Asset[] | null;
224
+ emailProvider: Asset | null;
225
+ emailTemplates: Asset[] | null;
226
+ guardianFactorProviders: Asset[] | null;
227
+ guardianFactors: Asset[] | null;
228
+ guardianFactorTemplates: Asset[] | null;
223
229
  guardianPhoneFactorMessageTypes: {
224
230
  message_types: Asset[];
225
- };
226
- guardianPhoneFactorSelectedProvider: Asset;
231
+ } | null;
232
+ guardianPhoneFactorSelectedProvider: Asset | null;
227
233
  guardianPolicies: {
228
234
  policies: Asset[];
229
- };
230
- hooks: Asset[];
231
- migrations: Asset[];
232
- organizations: Asset[];
233
- pages: Asset[];
234
- resourceServers: Asset[];
235
- roles: Asset[];
236
- rules: Asset[];
237
- rulesConfigs: Asset[];
238
- tenant: Asset;
239
- triggers: Asset[];
235
+ } | null;
236
+ hooks: Asset[] | null;
237
+ logStreams: Asset[] | null;
238
+ migrations: Asset[] | null;
239
+ organizations: Asset[] | null;
240
+ pages: Asset[] | null;
241
+ resourceServers: Asset[] | null;
242
+ roles: Asset[] | null;
243
+ rules: Asset[] | null;
244
+ rulesConfigs: Asset[] | null;
245
+ tenant: Asset | null;
246
+ triggers: Asset[] | null;
240
247
  exclude?: {
241
248
  [key: string]: string[];
242
249
  };
243
- clientsOrig: Asset[];
244
- };
250
+ clientsOrig: Asset[] | null;
251
+ }>;
245
252
  export declare type CalculatedChanges = {
246
253
  del: Asset[];
247
254
  update: Asset[];
248
255
  conflicts: Asset[];
249
256
  create: Asset[];
250
257
  };
251
- export declare type AssetTypes = 'rules' | 'rulesConfigs' | 'hooks' | 'pages' | 'databases' | 'clientGrants' | 'resourceServers' | 'clients' | 'connections' | 'tenant' | 'emailProvider' | 'emailTemplates' | 'guardianFactors' | 'guardianFactorProviders' | 'guardianFactorTemplates' | 'migrations' | 'guardianPhoneFactorMessageTypes' | 'guardianPhoneFactorSelectedProvider' | 'guardianPolicies' | 'roles' | 'actions' | 'organizations' | 'triggers' | 'attackProtection' | 'branding';
258
+ export declare type AssetTypes = 'rules' | 'rulesConfigs' | 'hooks' | 'pages' | 'databases' | 'clientGrants' | 'resourceServers' | 'clients' | 'connections' | 'tenant' | 'emailProvider' | 'emailTemplates' | 'guardianFactors' | 'guardianFactorProviders' | 'guardianFactorTemplates' | 'migrations' | 'guardianPhoneFactorMessageTypes' | 'guardianPhoneFactorSelectedProvider' | 'guardianPolicies' | 'roles' | 'actions' | 'organizations' | 'triggers' | 'attackProtection' | 'branding' | 'logStreams';
252
259
  export declare type KeywordMappings = {
253
260
  [key: string]: (string | number)[] | string | number;
254
261
  };
262
+ export declare type ParsedAsset<Key extends AssetTypes, T> = {
263
+ [key in Key]: T | null;
264
+ };
255
265
  export {};
package/lib/utils.d.ts CHANGED
@@ -10,39 +10,45 @@ export declare function dumpJSON(file: string, mappings: {
10
10
  export declare function existsMustBeDir(folder: string): boolean;
11
11
  export declare function toConfigFn(data: Config): (arg0: keyof Config) => any;
12
12
  export declare function stripIdentifiers(auth0: Auth0, assets: Assets): {
13
- actions: Asset[];
14
- attackProtection: Asset;
15
- branding: Asset;
16
- clients: Asset[];
17
- clientGrants: Asset[];
18
- connections: Asset[];
19
- databases: Asset[];
20
- emailProvider: Asset;
21
- emailTemplates: Asset[];
22
- guardianFactorProviders: Asset[];
23
- guardianFactors: Asset[];
24
- guardianFactorTemplates: Asset[];
25
- guardianPhoneFactorMessageTypes: {
13
+ actions?: Asset[] | null | undefined;
14
+ attackProtection?: Asset | null | undefined;
15
+ branding?: {
16
+ templates?: {
17
+ template: string;
18
+ body: string;
19
+ }[] | null | undefined;
20
+ } | null | undefined;
21
+ clients?: Asset[] | null | undefined;
22
+ clientGrants?: Asset[] | null | undefined;
23
+ connections?: Asset[] | null | undefined;
24
+ databases?: Asset[] | null | undefined;
25
+ emailProvider?: Asset | null | undefined;
26
+ emailTemplates?: Asset[] | null | undefined;
27
+ guardianFactorProviders?: Asset[] | null | undefined;
28
+ guardianFactors?: Asset[] | null | undefined;
29
+ guardianFactorTemplates?: Asset[] | null | undefined;
30
+ guardianPhoneFactorMessageTypes?: {
26
31
  message_types: Asset[];
27
- };
28
- guardianPhoneFactorSelectedProvider: Asset;
29
- guardianPolicies: {
32
+ } | null | undefined;
33
+ guardianPhoneFactorSelectedProvider?: Asset | null | undefined;
34
+ guardianPolicies?: {
30
35
  policies: Asset[];
31
- };
32
- hooks: Asset[];
33
- migrations: Asset[];
34
- organizations: Asset[];
35
- pages: Asset[];
36
- resourceServers: Asset[];
37
- roles: Asset[];
38
- rules: Asset[];
39
- rulesConfigs: Asset[];
40
- tenant: Asset;
41
- triggers: Asset[];
36
+ } | null | undefined;
37
+ hooks?: Asset[] | null | undefined;
38
+ logStreams?: Asset[] | null | undefined;
39
+ migrations?: Asset[] | null | undefined;
40
+ organizations?: Asset[] | null | undefined;
41
+ pages?: Asset[] | null | undefined;
42
+ resourceServers?: Asset[] | null | undefined;
43
+ roles?: Asset[] | null | undefined;
44
+ rules?: Asset[] | null | undefined;
45
+ rulesConfigs?: Asset[] | null | undefined;
46
+ tenant?: Asset | null | undefined;
47
+ triggers?: Asset[] | null | undefined;
42
48
  exclude?: {
43
49
  [key: string]: string[];
44
50
  } | undefined;
45
- clientsOrig: Asset[];
51
+ clientsOrig?: Asset[] | null | undefined;
46
52
  };
47
53
  export declare function sanitize(str: string): string;
48
54
  declare type ImportantFields = {
package/lib/utils.js CHANGED
@@ -107,7 +107,7 @@ function sanitize(str) {
107
107
  }
108
108
  exports.sanitize = sanitize;
109
109
  function formatResults(item) {
110
- if (typeof item !== 'object') {
110
+ if (!item || typeof item !== 'object') {
111
111
  return item;
112
112
  }
113
113
  const importantFields = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "auth0-deploy-cli",
3
- "version": "7.8.0",
3
+ "version": "7.11.0",
4
4
  "description": "A command line tool for deploying updates to your Auth0 tenant",
5
5
  "main": "lib/index.js",
6
6
  "bin": {
@@ -40,35 +40,38 @@
40
40
  "global-agent": "^2.1.12",
41
41
  "js-yaml": "^4.1.0",
42
42
  "lodash": "^4.17.20",
43
- "mkdirp": "^0.5.1",
44
- "nconf": "^0.11.4",
43
+ "mkdirp": "^0.5.6",
44
+ "nconf": "^0.12.0",
45
45
  "promise-pool-executor": "^1.1.1",
46
46
  "sanitize-filename": "^1.6.1",
47
47
  "sinon": "^13.0.1",
48
48
  "sinon-chai": "^3.7.0",
49
- "winston": "^3.3.0",
49
+ "winston": "^3.7.2",
50
50
  "yargs": "^15.3.1"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/expect": "^24.3.0",
54
54
  "@types/mocha": "^9.1.0",
55
55
  "chai": "^4.3.6",
56
- "@typescript-eslint/parser": "^5.16.0",
56
+ "@typescript-eslint/parser": "^5.18.0",
57
57
  "chai-as-promised": "^7.1.1",
58
58
  "cross-env": "^3.1.4",
59
59
  "eslint": "^7.28.0",
60
60
  "eslint-config-airbnb-base": "^14.2.1",
61
61
  "eslint-config-prettier": "^8.5.0",
62
- "eslint-plugin-import": "^2.25.4",
62
+ "eslint-plugin-import": "^2.26.0",
63
63
  "husky": "^7.0.4",
64
64
  "kacl": "^1.1.1",
65
65
  "mocha": "^9.2.2",
66
66
  "nyc": "^15.0.1",
67
- "prettier": "^2.6.1",
67
+ "prettier": "^2.6.2",
68
68
  "pretty-quick": "^3.1.3",
69
69
  "rimraf": "^3.0.2",
70
70
  "rmdir-sync": "^1.0.1",
71
71
  "ts-mocha": "^9.0.2",
72
- "typescript": "^4.6.2"
72
+ "typescript": "^4.6.3"
73
+ },
74
+ "overrides": {
75
+ "istanbul-reports": "3.1.4"
73
76
  }
74
77
  }