permissions-contractx 1.0.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 (75) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1397 -0
  3. package/dist/constants/contractx-permissions.constants.d.ts +310 -0
  4. package/dist/constants/contractx-permissions.constants.d.ts.map +1 -0
  5. package/dist/constants/contractx-permissions.constants.js +1061 -0
  6. package/dist/constants/contractx-roles.constants.d.ts +295 -0
  7. package/dist/constants/contractx-roles.constants.d.ts.map +1 -0
  8. package/dist/constants/contractx-roles.constants.js +238 -0
  9. package/dist/constants/index.d.ts +3 -0
  10. package/dist/constants/index.d.ts.map +1 -0
  11. package/dist/constants/index.js +18 -0
  12. package/dist/constants/security.constants.d.ts +77 -0
  13. package/dist/constants/security.constants.d.ts.map +1 -0
  14. package/dist/constants/security.constants.js +139 -0
  15. package/dist/decorators/current-user.decorator.d.ts +73 -0
  16. package/dist/decorators/current-user.decorator.d.ts.map +1 -0
  17. package/dist/decorators/current-user.decorator.js +91 -0
  18. package/dist/decorators/index.d.ts +5 -0
  19. package/dist/decorators/index.d.ts.map +1 -0
  20. package/dist/decorators/index.js +20 -0
  21. package/dist/decorators/permissions.decorator.d.ts +97 -0
  22. package/dist/decorators/permissions.decorator.d.ts.map +1 -0
  23. package/dist/decorators/permissions.decorator.js +106 -0
  24. package/dist/decorators/public.decorator.d.ts +18 -0
  25. package/dist/decorators/public.decorator.d.ts.map +1 -0
  26. package/dist/decorators/public.decorator.js +22 -0
  27. package/dist/decorators/roles.decorator.d.ts +79 -0
  28. package/dist/decorators/roles.decorator.d.ts.map +1 -0
  29. package/dist/decorators/roles.decorator.js +87 -0
  30. package/dist/guards/index.d.ts +4 -0
  31. package/dist/guards/index.d.ts.map +1 -0
  32. package/dist/guards/index.js +19 -0
  33. package/dist/guards/jwt-auth.guard.d.ts +21 -0
  34. package/dist/guards/jwt-auth.guard.d.ts.map +1 -0
  35. package/dist/guards/jwt-auth.guard.js +115 -0
  36. package/dist/guards/permissions.guard.d.ts +14 -0
  37. package/dist/guards/permissions.guard.d.ts.map +1 -0
  38. package/dist/guards/permissions.guard.js +77 -0
  39. package/dist/guards/roles.guard.d.ts +13 -0
  40. package/dist/guards/roles.guard.d.ts.map +1 -0
  41. package/dist/guards/roles.guard.js +59 -0
  42. package/dist/index.d.ts +8 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +28 -0
  45. package/dist/interfaces/index.d.ts +2 -0
  46. package/dist/interfaces/index.d.ts.map +1 -0
  47. package/dist/interfaces/index.js +17 -0
  48. package/dist/interfaces/jwt-payload.interface.d.ts +93 -0
  49. package/dist/interfaces/jwt-payload.interface.d.ts.map +1 -0
  50. package/dist/interfaces/jwt-payload.interface.js +2 -0
  51. package/dist/modules/index.d.ts +2 -0
  52. package/dist/modules/index.d.ts.map +1 -0
  53. package/dist/modules/index.js +17 -0
  54. package/dist/modules/permissions-contractx.module.d.ts +41 -0
  55. package/dist/modules/permissions-contractx.module.d.ts.map +1 -0
  56. package/dist/modules/permissions-contractx.module.js +215 -0
  57. package/dist/services/contractx-authorization.service.d.ts +107 -0
  58. package/dist/services/contractx-authorization.service.d.ts.map +1 -0
  59. package/dist/services/contractx-authorization.service.js +362 -0
  60. package/dist/services/contractx-document-compliance.service.d.ts +85 -0
  61. package/dist/services/contractx-document-compliance.service.d.ts.map +1 -0
  62. package/dist/services/contractx-document-compliance.service.js +536 -0
  63. package/dist/services/contractx-validation.service.d.ts +76 -0
  64. package/dist/services/contractx-validation.service.d.ts.map +1 -0
  65. package/dist/services/contractx-validation.service.js +305 -0
  66. package/dist/services/index.d.ts +6 -0
  67. package/dist/services/index.d.ts.map +1 -0
  68. package/dist/services/index.js +20 -0
  69. package/dist/services/user-context.service.d.ts +114 -0
  70. package/dist/services/user-context.service.d.ts.map +1 -0
  71. package/dist/services/user-context.service.js +199 -0
  72. package/dist/test-document-compliance.d.ts +7 -0
  73. package/dist/test-document-compliance.d.ts.map +1 -0
  74. package/dist/test-document-compliance.js +118 -0
  75. package/package.json +405 -0
@@ -0,0 +1,118 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * Test script to validate permissions-contractx package compliance with PermisosRoles.odt document
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.testDocumentCompliance = main;
8
+ const contractx_document_compliance_service_1 = require("./services/contractx-document-compliance.service");
9
+ const common_1 = require("@nestjs/common");
10
+ // Mock Logger for standalone script
11
+ const mockLogger = {
12
+ log: console.log,
13
+ error: console.error,
14
+ warn: console.warn,
15
+ debug: console.debug,
16
+ verbose: console.log
17
+ };
18
+ // Override NestJS Logger
19
+ Object.setPrototypeOf(common_1.Logger.prototype, mockLogger);
20
+ async function main() {
21
+ console.log('🔍 ContractX Package Document Compliance Validation');
22
+ console.log('===================================================\n');
23
+ const complianceService = new contractx_document_compliance_service_1.ContractXDocumentComplianceService();
24
+ try {
25
+ console.log('📋 Validating package compliance with PermisosRoles.odt document...\n');
26
+ const validationResult = await complianceService.validateDocumentCompliance();
27
+ // Generate and display report
28
+ const report = complianceService.generateComplianceReport(validationResult);
29
+ console.log(report);
30
+ // Summary
31
+ console.log('\n🎯 COMPLIANCE SUMMARY:');
32
+ console.log('=======================');
33
+ console.log(`Overall Compliance: ${validationResult.isCompliant ? '✅ PASSED' : '❌ FAILED'}`);
34
+ console.log(`Compliant Roles: ${validationResult.summary.compliantRoles.length}/${validationResult.summary.totalRoles}`);
35
+ console.log(`Validated Permissions: ${validationResult.summary.validatedPermissions}`);
36
+ console.log(`Warnings: ${validationResult.warnings.length}`);
37
+ console.log(`Errors: ${validationResult.errors.length}`);
38
+ if (!validationResult.isCompliant) {
39
+ console.log('\n❌ NON-COMPLIANT ROLES:');
40
+ validationResult.summary.nonCompliantRoles.forEach(role => {
41
+ const analysis = validationResult.roleAnalysis.find(a => a.role === role);
42
+ if (analysis) {
43
+ console.log(` • ${role}:`);
44
+ if (analysis.missingPermissions.length > 0) {
45
+ console.log(` Missing: ${analysis.missingPermissions.length} permissions`);
46
+ }
47
+ if (analysis.extraPermissions.length > 0) {
48
+ console.log(` Extra: ${analysis.extraPermissions.length} permissions`);
49
+ }
50
+ }
51
+ });
52
+ }
53
+ // Detailed analysis for key roles
54
+ console.log('\n🔍 KEY ROLE ANALYSIS:');
55
+ console.log('=====================');
56
+ const keyRoles = [
57
+ 'superadmin',
58
+ 'support',
59
+ 'client_contract_admin',
60
+ 'provider_contract_admin',
61
+ 'client_reports_manager',
62
+ 'provider_finance_manager'
63
+ ];
64
+ keyRoles.forEach(role => {
65
+ const analysis = validationResult.roleAnalysis.find(a => a.role === role);
66
+ if (analysis) {
67
+ const status = analysis.isCompliant ? '✅' : '❌';
68
+ console.log(`${status} ${role}: ${analysis.expectedPermissions.length} expected, ${analysis.actualPermissions.length} actual`);
69
+ if (!analysis.isCompliant) {
70
+ if (analysis.missingPermissions.length > 0) {
71
+ console.log(` Missing (${analysis.missingPermissions.length}): ${analysis.missingPermissions.slice(0, 3).join(', ')}${analysis.missingPermissions.length > 3 ? '...' : ''}`);
72
+ }
73
+ if (analysis.extraPermissions.length > 0) {
74
+ console.log(` Extra (${analysis.extraPermissions.length}): ${analysis.extraPermissions.slice(0, 3).join(', ')}${analysis.extraPermissions.length > 3 ? '...' : ''}`);
75
+ }
76
+ }
77
+ }
78
+ });
79
+ // Module coverage analysis
80
+ console.log('\n📊 MODULE COVERAGE:');
81
+ console.log('===================');
82
+ const coverageStats = {
83
+ covered: validationResult.modulesCoverage.filter(m => m.covered).length,
84
+ total: validationResult.modulesCoverage.length
85
+ };
86
+ console.log(`Modules covered: ${coverageStats.covered}/${coverageStats.total}`);
87
+ // Show uncovered modules if any
88
+ const uncoveredModules = validationResult.modulesCoverage.filter(m => !m.covered);
89
+ if (uncoveredModules.length > 0) {
90
+ console.log('Uncovered modules:');
91
+ uncoveredModules.forEach(module => {
92
+ console.log(` ❌ ${module.module}`);
93
+ });
94
+ }
95
+ // Final assessment
96
+ console.log('\n🎯 FINAL ASSESSMENT:');
97
+ console.log('====================');
98
+ if (validationResult.isCompliant) {
99
+ console.log('✅ The permissions-contractx package is FULLY COMPLIANT with the PermisosRoles.odt document.');
100
+ console.log('✅ All role permissions match the documented requirements.');
101
+ console.log('✅ The package can be confidently used for JWT token validation.');
102
+ }
103
+ else {
104
+ console.log('❌ The permissions-contractx package has COMPLIANCE ISSUES with the PermisosRoles.odt document.');
105
+ console.log('❌ Some role permissions do not match the documented requirements.');
106
+ console.log('⚠️ Review and fix the non-compliant roles before using for JWT validation.');
107
+ }
108
+ process.exit(validationResult.isCompliant ? 0 : 1);
109
+ }
110
+ catch (error) {
111
+ console.error('❌ Error during compliance validation:', error);
112
+ process.exit(1);
113
+ }
114
+ }
115
+ // Run the validation
116
+ if (require.main === module) {
117
+ main().catch(console.error);
118
+ }
package/package.json ADDED
@@ -0,0 +1,405 @@
1
+ {
2
+ "name": "permissions-contractx",
3
+ "version": "1.0.0",
4
+ "description": "Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist/**/*",
9
+ "README.md",
10
+ "LICENSE"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "build:watch": "tsc -w",
15
+ "clean": "rimraf dist",
16
+ "prepublishOnly": "npm run clean && npm run build",
17
+ "test": "jest",
18
+ "test:watch": "jest --watch",
19
+ "test:coverage": "jest --coverage",
20
+ "lint": "eslint src/**/*.ts",
21
+ "lint:fix": "eslint src/**/*.ts --fix"
22
+ },
23
+ "keywords": [
24
+ "nestjs",
25
+ "authentication",
26
+ "authorization",
27
+ "rbac",
28
+ "jwt",
29
+ "permissions",
30
+ "roles",
31
+ "security",
32
+ "microservices",
33
+ "middleware",
34
+ "guard",
35
+ "decorator"
36
+ ],
37
+ "author": "ContractX Development Team",
38
+ "license": "MIT",
39
+ "homepage": "https://github.com/your-org/permissions-contractx#readme",
40
+ "repository": {
41
+ "type": "git",
42
+ "url": "git+https://github.com/your-org/permissions-contractx.git"
43
+ },
44
+ "bugs": {
45
+ "url": "https://github.com/your-org/permissions-contractx/issues"
46
+ },
47
+ "peerDependencies": {
48
+ "@nestjs/common": "^11.1.6",
49
+ "@nestjs/config": "^4.0.2",
50
+ "@nestjs/core": "^11.1.6",
51
+ "@nestjs/jwt": "^11.0.0",
52
+ "jsonwebtoken": "^9.0.0",
53
+ "reflect-metadata": "^0.1.13",
54
+ "rxjs": "^7.0.0"
55
+ },
56
+ "devDependencies": {
57
+ "@nestjs/testing": "^11.1.6",
58
+ "@types/express": "^5.0.3",
59
+ "@types/jest": "^29.5.0",
60
+ "@types/jsonwebtoken": "^9.0.0",
61
+ "@types/node": "^20.0.0",
62
+ "@types/supertest": "^2.0.12",
63
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
64
+ "@typescript-eslint/parser": "^6.0.0",
65
+ "eslint": "^8.40.0",
66
+ "jest": "^29.5.0",
67
+ "rimraf": "^5.0.0",
68
+ "supertest": "^6.3.0",
69
+ "ts-jest": "^29.1.0",
70
+ "ts-node": "^10.9.0",
71
+ "typescript": "^5.0.0"
72
+ },
73
+ "engines": {
74
+ "node": ">=16.0.0",
75
+ "npm": ">=7.0.0"
76
+ },
77
+ "directories": {
78
+ "example": "examples",
79
+ "test": "test"
80
+ },
81
+ "dependencies": {
82
+ "acorn": "^8.15.0",
83
+ "acorn-jsx": "^5.3.2",
84
+ "acorn-walk": "^8.3.4",
85
+ "ajv": "^6.12.6",
86
+ "ansi-escapes": "^4.3.2",
87
+ "ansi-regex": "^5.0.1",
88
+ "ansi-styles": "^4.3.0",
89
+ "anymatch": "^3.1.3",
90
+ "arg": "^4.1.3",
91
+ "argparse": "^2.0.1",
92
+ "array-union": "^2.1.0",
93
+ "asap": "^2.0.6",
94
+ "asynckit": "^0.4.0",
95
+ "babel-jest": "^29.7.0",
96
+ "babel-plugin-istanbul": "^6.1.1",
97
+ "babel-plugin-jest-hoist": "^29.6.3",
98
+ "babel-preset-current-node-syntax": "^1.2.0",
99
+ "babel-preset-jest": "^29.6.3",
100
+ "balanced-match": "^1.0.2",
101
+ "brace-expansion": "^2.0.2",
102
+ "braces": "^3.0.3",
103
+ "browserslist": "^4.25.2",
104
+ "bs-logger": "^0.2.6",
105
+ "bser": "^2.1.1",
106
+ "buffer-equal-constant-time": "^1.0.1",
107
+ "buffer-from": "^1.1.2",
108
+ "call-bind-apply-helpers": "^1.0.2",
109
+ "call-bound": "^1.0.4",
110
+ "callsites": "^3.1.0",
111
+ "camelcase": "^5.3.1",
112
+ "caniuse-lite": "^1.0.30001733",
113
+ "chalk": "^4.1.2",
114
+ "char-regex": "^1.0.2",
115
+ "ci-info": "^3.9.0",
116
+ "cjs-module-lexer": "^1.4.3",
117
+ "cliui": "^8.0.1",
118
+ "co": "^4.6.0",
119
+ "collect-v8-coverage": "^1.0.2",
120
+ "color-convert": "^2.0.1",
121
+ "color-name": "^1.1.4",
122
+ "combined-stream": "^1.0.8",
123
+ "component-emitter": "^1.3.1",
124
+ "concat-map": "^0.0.1",
125
+ "consola": "^3.4.2",
126
+ "convert-source-map": "^2.0.0",
127
+ "cookiejar": "^2.1.4",
128
+ "create-jest": "^29.7.0",
129
+ "create-require": "^1.1.1",
130
+ "cross-spawn": "^7.0.6",
131
+ "debug": "^4.4.1",
132
+ "dedent": "^1.6.0",
133
+ "deep-is": "^0.1.4",
134
+ "deepmerge": "^4.3.1",
135
+ "delayed-stream": "^1.0.0",
136
+ "detect-newline": "^3.1.0",
137
+ "dezalgo": "^1.0.4",
138
+ "diff": "^4.0.2",
139
+ "diff-sequences": "^29.6.3",
140
+ "dir-glob": "^3.0.1",
141
+ "doctrine": "^3.0.0",
142
+ "dotenv": "^16.4.7",
143
+ "dotenv-expand": "^12.0.1",
144
+ "dunder-proto": "^1.0.1",
145
+ "eastasianwidth": "^0.2.0",
146
+ "ecdsa-sig-formatter": "^1.0.11",
147
+ "electron-to-chromium": "^1.5.199",
148
+ "emittery": "^0.13.1",
149
+ "emoji-regex": "^8.0.0",
150
+ "error-ex": "^1.3.2",
151
+ "es-define-property": "^1.0.1",
152
+ "es-errors": "^1.3.0",
153
+ "es-object-atoms": "^1.1.1",
154
+ "es-set-tostringtag": "^2.1.0",
155
+ "escalade": "^3.2.0",
156
+ "escape-string-regexp": "^4.0.0",
157
+ "eslint-scope": "^7.2.2",
158
+ "eslint-visitor-keys": "^3.4.3",
159
+ "espree": "^9.6.1",
160
+ "esprima": "^4.0.1",
161
+ "esquery": "^1.6.0",
162
+ "esrecurse": "^4.3.0",
163
+ "estraverse": "^5.3.0",
164
+ "esutils": "^2.0.3",
165
+ "execa": "^5.1.1",
166
+ "exit": "^0.1.2",
167
+ "expect": "^29.7.0",
168
+ "fast-deep-equal": "^3.1.3",
169
+ "fast-glob": "^3.3.3",
170
+ "fast-json-stable-stringify": "^2.1.0",
171
+ "fast-levenshtein": "^2.0.6",
172
+ "fast-safe-stringify": "^2.1.1",
173
+ "fastq": "^1.19.1",
174
+ "fb-watchman": "^2.0.2",
175
+ "fflate": "^0.8.2",
176
+ "file-entry-cache": "^6.0.1",
177
+ "file-type": "^21.0.0",
178
+ "fill-range": "^7.1.1",
179
+ "find-up": "^5.0.0",
180
+ "flat-cache": "^3.2.0",
181
+ "flatted": "^3.3.3",
182
+ "foreground-child": "^3.3.1",
183
+ "form-data": "^4.0.4",
184
+ "formidable": "^2.1.5",
185
+ "fs.realpath": "^1.0.0",
186
+ "function-bind": "^1.1.2",
187
+ "gensync": "^1.0.0-beta.2",
188
+ "get-caller-file": "^2.0.5",
189
+ "get-intrinsic": "^1.3.0",
190
+ "get-package-type": "^0.1.0",
191
+ "get-proto": "^1.0.1",
192
+ "get-stream": "^6.0.1",
193
+ "glob": "^7.2.3",
194
+ "glob-parent": "^6.0.2",
195
+ "globals": "^13.24.0",
196
+ "globby": "^11.1.0",
197
+ "gopd": "^1.2.0",
198
+ "graceful-fs": "^4.2.11",
199
+ "graphemer": "^1.4.0",
200
+ "handlebars": "^4.7.8",
201
+ "has-flag": "^4.0.0",
202
+ "has-symbols": "^1.1.0",
203
+ "has-tostringtag": "^1.0.2",
204
+ "hasown": "^2.0.2",
205
+ "html-escaper": "^2.0.2",
206
+ "human-signals": "^2.1.0",
207
+ "ieee754": "^1.2.1",
208
+ "ignore": "^5.3.2",
209
+ "import-fresh": "^3.3.1",
210
+ "import-local": "^3.2.0",
211
+ "imurmurhash": "^0.1.4",
212
+ "inflight": "^1.0.6",
213
+ "inherits": "^2.0.4",
214
+ "is-arrayish": "^0.2.1",
215
+ "is-core-module": "^2.16.1",
216
+ "is-extglob": "^2.1.1",
217
+ "is-fullwidth-code-point": "^3.0.0",
218
+ "is-generator-fn": "^2.1.0",
219
+ "is-glob": "^4.0.3",
220
+ "is-number": "^7.0.0",
221
+ "is-path-inside": "^3.0.3",
222
+ "is-stream": "^2.0.1",
223
+ "isexe": "^2.0.0",
224
+ "istanbul-lib-coverage": "^3.2.2",
225
+ "istanbul-lib-instrument": "^6.0.3",
226
+ "istanbul-lib-report": "^3.0.1",
227
+ "istanbul-lib-source-maps": "^4.0.1",
228
+ "istanbul-reports": "^3.1.7",
229
+ "iterare": "^1.2.1",
230
+ "jackspeak": "^3.4.3",
231
+ "jest-changed-files": "^29.7.0",
232
+ "jest-circus": "^29.7.0",
233
+ "jest-cli": "^29.7.0",
234
+ "jest-config": "^29.7.0",
235
+ "jest-diff": "^29.7.0",
236
+ "jest-docblock": "^29.7.0",
237
+ "jest-each": "^29.7.0",
238
+ "jest-environment-node": "^29.7.0",
239
+ "jest-get-type": "^29.6.3",
240
+ "jest-haste-map": "^29.7.0",
241
+ "jest-leak-detector": "^29.7.0",
242
+ "jest-matcher-utils": "^29.7.0",
243
+ "jest-message-util": "^29.7.0",
244
+ "jest-mock": "^29.7.0",
245
+ "jest-pnp-resolver": "^1.2.3",
246
+ "jest-regex-util": "^29.6.3",
247
+ "jest-resolve": "^29.7.0",
248
+ "jest-resolve-dependencies": "^29.7.0",
249
+ "jest-runner": "^29.7.0",
250
+ "jest-runtime": "^29.7.0",
251
+ "jest-snapshot": "^29.7.0",
252
+ "jest-util": "^29.7.0",
253
+ "jest-validate": "^29.7.0",
254
+ "jest-watcher": "^29.7.0",
255
+ "jest-worker": "^29.7.0",
256
+ "js-tokens": "^4.0.0",
257
+ "js-yaml": "^4.1.0",
258
+ "jsesc": "^3.1.0",
259
+ "json-buffer": "^3.0.1",
260
+ "json-parse-even-better-errors": "^2.3.1",
261
+ "json-schema-traverse": "^0.4.1",
262
+ "json-stable-stringify-without-jsonify": "^1.0.1",
263
+ "json5": "^2.2.3",
264
+ "jsonwebtoken": "^9.0.2",
265
+ "jwa": "^1.4.2",
266
+ "jws": "^3.2.2",
267
+ "keyv": "^4.5.4",
268
+ "kleur": "^3.0.3",
269
+ "leven": "^3.1.0",
270
+ "levn": "^0.4.1",
271
+ "lines-and-columns": "^1.2.4",
272
+ "load-esm": "^1.0.2",
273
+ "locate-path": "^6.0.0",
274
+ "lodash": "^4.17.21",
275
+ "lodash.includes": "^4.3.0",
276
+ "lodash.isboolean": "^3.0.3",
277
+ "lodash.isinteger": "^4.0.4",
278
+ "lodash.isnumber": "^3.0.3",
279
+ "lodash.isplainobject": "^4.0.6",
280
+ "lodash.isstring": "^4.0.1",
281
+ "lodash.memoize": "^4.1.2",
282
+ "lodash.merge": "^4.6.2",
283
+ "lodash.once": "^4.1.1",
284
+ "lru-cache": "^5.1.1",
285
+ "make-dir": "^4.0.0",
286
+ "make-error": "^1.3.6",
287
+ "makeerror": "^1.0.12",
288
+ "math-intrinsics": "^1.1.0",
289
+ "merge-stream": "^2.0.0",
290
+ "merge2": "^1.4.1",
291
+ "methods": "^1.1.2",
292
+ "micromatch": "^4.0.8",
293
+ "mime": "^2.6.0",
294
+ "mime-db": "^1.52.0",
295
+ "mime-types": "^2.1.35",
296
+ "mimic-fn": "^2.1.0",
297
+ "minimatch": "^9.0.3",
298
+ "minimist": "^1.2.8",
299
+ "minipass": "^7.1.2",
300
+ "ms": "^2.1.3",
301
+ "natural-compare": "^1.4.0",
302
+ "neo-async": "^2.6.2",
303
+ "node-int64": "^0.4.0",
304
+ "node-releases": "^2.0.19",
305
+ "normalize-path": "^3.0.0",
306
+ "npm-run-path": "^4.0.1",
307
+ "object-inspect": "^1.13.4",
308
+ "once": "^1.4.0",
309
+ "onetime": "^5.1.2",
310
+ "optionator": "^0.9.4",
311
+ "p-limit": "^3.1.0",
312
+ "p-locate": "^5.0.0",
313
+ "p-try": "^2.2.0",
314
+ "package-json-from-dist": "^1.0.1",
315
+ "parent-module": "^1.0.1",
316
+ "parse-json": "^5.2.0",
317
+ "path-exists": "^4.0.0",
318
+ "path-is-absolute": "^1.0.1",
319
+ "path-key": "^3.1.1",
320
+ "path-parse": "^1.0.7",
321
+ "path-scurry": "^1.11.1",
322
+ "path-to-regexp": "^8.2.0",
323
+ "path-type": "^4.0.0",
324
+ "picocolors": "^1.1.1",
325
+ "picomatch": "^2.3.1",
326
+ "pirates": "^4.0.7",
327
+ "pkg-dir": "^4.2.0",
328
+ "prelude-ls": "^1.2.1",
329
+ "pretty-format": "^29.7.0",
330
+ "prompts": "^2.4.2",
331
+ "punycode": "^2.3.1",
332
+ "pure-rand": "^6.1.0",
333
+ "qs": "^6.14.0",
334
+ "queue-microtask": "^1.2.3",
335
+ "react-is": "^18.3.1",
336
+ "reflect-metadata": "^0.1.14",
337
+ "require-directory": "^2.1.1",
338
+ "resolve": "^1.22.10",
339
+ "resolve-cwd": "^3.0.0",
340
+ "resolve-from": "^4.0.0",
341
+ "resolve.exports": "^2.0.3",
342
+ "reusify": "^1.1.0",
343
+ "run-parallel": "^1.2.0",
344
+ "rxjs": "^7.8.2",
345
+ "safe-buffer": "^5.2.1",
346
+ "semver": "^7.7.2",
347
+ "shebang-command": "^2.0.0",
348
+ "shebang-regex": "^3.0.0",
349
+ "side-channel": "^1.1.0",
350
+ "side-channel-list": "^1.0.0",
351
+ "side-channel-map": "^1.0.1",
352
+ "side-channel-weakmap": "^1.0.2",
353
+ "signal-exit": "^3.0.7",
354
+ "sisteransi": "^1.0.5",
355
+ "slash": "^3.0.0",
356
+ "source-map": "^0.6.1",
357
+ "source-map-support": "^0.5.13",
358
+ "sprintf-js": "^1.0.3",
359
+ "stack-utils": "^2.0.6",
360
+ "string-length": "^4.0.2",
361
+ "string-width": "^4.2.3",
362
+ "string-width-cjs": "^4.2.3",
363
+ "strip-ansi": "^6.0.1",
364
+ "strip-ansi-cjs": "^6.0.1",
365
+ "strip-bom": "^4.0.0",
366
+ "strip-final-newline": "^2.0.0",
367
+ "strip-json-comments": "^3.1.1",
368
+ "strtok3": "^10.3.4",
369
+ "superagent": "^8.1.2",
370
+ "supports-color": "^7.2.0",
371
+ "supports-preserve-symlinks-flag": "^1.0.0",
372
+ "test-exclude": "^6.0.0",
373
+ "text-table": "^0.2.0",
374
+ "tmpl": "^1.0.5",
375
+ "to-regex-range": "^5.0.1",
376
+ "token-types": "^6.0.4",
377
+ "ts-api-utils": "^1.4.3",
378
+ "tslib": "^2.8.1",
379
+ "type-check": "^0.4.0",
380
+ "type-detect": "^4.0.8",
381
+ "type-fest": "^0.20.2",
382
+ "uglify-js": "^3.19.3",
383
+ "uid": "^2.0.2",
384
+ "uint8array-extras": "^1.4.0",
385
+ "undici-types": "^6.21.0",
386
+ "update-browserslist-db": "^1.1.3",
387
+ "uri-js": "^4.4.1",
388
+ "v8-compile-cache-lib": "^3.0.1",
389
+ "v8-to-istanbul": "^9.3.0",
390
+ "walker": "^1.0.8",
391
+ "which": "^2.0.2",
392
+ "word-wrap": "^1.2.5",
393
+ "wordwrap": "^1.0.0",
394
+ "wrap-ansi": "^7.0.0",
395
+ "wrap-ansi-cjs": "^7.0.0",
396
+ "wrappy": "^1.0.2",
397
+ "write-file-atomic": "^4.0.2",
398
+ "y18n": "^5.0.8",
399
+ "yallist": "^3.1.1",
400
+ "yargs": "^17.7.2",
401
+ "yargs-parser": "^21.1.1",
402
+ "yn": "^3.1.1",
403
+ "yocto-queue": "^0.1.0"
404
+ }
405
+ }