@friggframework/devtools 2.0.0--canary.400.bed3308.0 → 2.0.0--canary.400.545e7a8.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 (167) hide show
  1. package/frigg-cli/build-command/index.js +2 -15
  2. package/frigg-cli/deploy-command/index.js +2 -15
  3. package/frigg-cli/index.js +4 -66
  4. package/frigg-cli/install-command/index.js +2 -15
  5. package/frigg-cli/start-command/index.js +2 -17
  6. package/infrastructure/AWS-IAM-CREDENTIAL-NEEDS.md +19 -43
  7. package/infrastructure/IAM-POLICY-TEMPLATES.md +1 -1
  8. package/infrastructure/frigg-deployment-iam-stack.yaml +2 -16
  9. package/infrastructure/iam-generator.js +6 -129
  10. package/infrastructure/iam-policy-basic.json +5 -29
  11. package/infrastructure/iam-policy-full.json +5 -28
  12. package/infrastructure/serverless-template.js +3 -190
  13. package/infrastructure/serverless-template.test.js +0 -12
  14. package/management-ui/dist/assets/index-CbM64Oba.js +1221 -0
  15. package/management-ui/dist/assets/index-CkvseXTC.css +1 -0
  16. package/management-ui/{index.html → dist/index.html} +2 -1
  17. package/package.json +5 -5
  18. package/frigg-cli/.eslintrc.js +0 -141
  19. package/frigg-cli/__tests__/jest.config.js +0 -102
  20. package/frigg-cli/__tests__/unit/commands/build.test.js +0 -483
  21. package/frigg-cli/__tests__/unit/commands/install.test.js +0 -418
  22. package/frigg-cli/__tests__/unit/commands/ui.test.js +0 -592
  23. package/frigg-cli/__tests__/utils/command-tester.js +0 -170
  24. package/frigg-cli/__tests__/utils/mock-factory.js +0 -270
  25. package/frigg-cli/__tests__/utils/test-fixtures.js +0 -463
  26. package/frigg-cli/__tests__/utils/test-setup.js +0 -286
  27. package/frigg-cli/generate-command/__tests__/generate-command.test.js +0 -312
  28. package/frigg-cli/generate-command/azure-generator.js +0 -43
  29. package/frigg-cli/generate-command/gcp-generator.js +0 -47
  30. package/frigg-cli/generate-command/index.js +0 -350
  31. package/frigg-cli/generate-command/terraform-generator.js +0 -555
  32. package/frigg-cli/package.json +0 -75
  33. package/frigg-cli/ui-command/index.js +0 -167
  34. package/frigg-cli/utils/app-resolver.js +0 -319
  35. package/frigg-cli/utils/backend-path.js +0 -38
  36. package/frigg-cli/utils/process-manager.js +0 -199
  37. package/frigg-cli/utils/repo-detection.js +0 -405
  38. package/management-ui/.eslintrc.js +0 -22
  39. package/management-ui/README.md +0 -203
  40. package/management-ui/components.json +0 -21
  41. package/management-ui/merge-conflict-cleaner.py +0 -371
  42. package/management-ui/package-lock.json +0 -10997
  43. package/management-ui/package.json +0 -76
  44. package/management-ui/postcss.config.js +0 -6
  45. package/management-ui/server/api/backend.js +0 -256
  46. package/management-ui/server/api/cli.js +0 -315
  47. package/management-ui/server/api/codegen.js +0 -663
  48. package/management-ui/server/api/connections.js +0 -857
  49. package/management-ui/server/api/discovery.js +0 -185
  50. package/management-ui/server/api/environment/index.js +0 -1
  51. package/management-ui/server/api/environment/router.js +0 -378
  52. package/management-ui/server/api/environment.js +0 -328
  53. package/management-ui/server/api/integrations.js +0 -479
  54. package/management-ui/server/api/logs.js +0 -248
  55. package/management-ui/server/api/monitoring.js +0 -282
  56. package/management-ui/server/api/open-ide.js +0 -31
  57. package/management-ui/server/api/project.js +0 -553
  58. package/management-ui/server/api/users/sessions.js +0 -371
  59. package/management-ui/server/api/users/simulation.js +0 -254
  60. package/management-ui/server/api/users.js +0 -362
  61. package/management-ui/server/api-contract.md +0 -275
  62. package/management-ui/server/index.js +0 -428
  63. package/management-ui/server/middleware/errorHandler.js +0 -70
  64. package/management-ui/server/middleware/security.js +0 -32
  65. package/management-ui/server/processManager.js +0 -296
  66. package/management-ui/server/server.js +0 -188
  67. package/management-ui/server/services/aws-monitor.js +0 -413
  68. package/management-ui/server/services/npm-registry.js +0 -347
  69. package/management-ui/server/services/template-engine.js +0 -538
  70. package/management-ui/server/utils/cliIntegration.js +0 -220
  71. package/management-ui/server/utils/environment/auditLogger.js +0 -471
  72. package/management-ui/server/utils/environment/awsParameterStore.js +0 -264
  73. package/management-ui/server/utils/environment/encryption.js +0 -278
  74. package/management-ui/server/utils/environment/envFileManager.js +0 -286
  75. package/management-ui/server/utils/import-commonjs.js +0 -28
  76. package/management-ui/server/utils/response.js +0 -83
  77. package/management-ui/server/websocket/handler.js +0 -325
  78. package/management-ui/src/App.jsx +0 -51
  79. package/management-ui/src/components/AppRouter.jsx +0 -65
  80. package/management-ui/src/components/Button.jsx +0 -2
  81. package/management-ui/src/components/Card.jsx +0 -9
  82. package/management-ui/src/components/EnvironmentCompare.jsx +0 -400
  83. package/management-ui/src/components/EnvironmentEditor.jsx +0 -372
  84. package/management-ui/src/components/EnvironmentImportExport.jsx +0 -469
  85. package/management-ui/src/components/EnvironmentSchema.jsx +0 -491
  86. package/management-ui/src/components/EnvironmentSecurity.jsx +0 -463
  87. package/management-ui/src/components/ErrorBoundary.jsx +0 -73
  88. package/management-ui/src/components/IntegrationCard.jsx +0 -199
  89. package/management-ui/src/components/IntegrationCardEnhanced.jsx +0 -490
  90. package/management-ui/src/components/IntegrationExplorer.jsx +0 -379
  91. package/management-ui/src/components/IntegrationStatus.jsx +0 -235
  92. package/management-ui/src/components/Layout.jsx +0 -250
  93. package/management-ui/src/components/LoadingSpinner.jsx +0 -45
  94. package/management-ui/src/components/RepositoryPicker.jsx +0 -248
  95. package/management-ui/src/components/SessionMonitor.jsx +0 -255
  96. package/management-ui/src/components/StatusBadge.jsx +0 -70
  97. package/management-ui/src/components/UserContextSwitcher.jsx +0 -154
  98. package/management-ui/src/components/UserSimulation.jsx +0 -299
  99. package/management-ui/src/components/Welcome.jsx +0 -434
  100. package/management-ui/src/components/codegen/APIEndpointGenerator.jsx +0 -637
  101. package/management-ui/src/components/codegen/APIModuleSelector.jsx +0 -227
  102. package/management-ui/src/components/codegen/CodeGenerationWizard.jsx +0 -247
  103. package/management-ui/src/components/codegen/CodePreviewEditor.jsx +0 -316
  104. package/management-ui/src/components/codegen/DynamicModuleForm.jsx +0 -271
  105. package/management-ui/src/components/codegen/FormBuilder.jsx +0 -737
  106. package/management-ui/src/components/codegen/IntegrationGenerator.jsx +0 -855
  107. package/management-ui/src/components/codegen/ProjectScaffoldWizard.jsx +0 -797
  108. package/management-ui/src/components/codegen/SchemaBuilder.jsx +0 -303
  109. package/management-ui/src/components/codegen/TemplateSelector.jsx +0 -586
  110. package/management-ui/src/components/codegen/index.js +0 -10
  111. package/management-ui/src/components/connections/ConnectionConfigForm.jsx +0 -362
  112. package/management-ui/src/components/connections/ConnectionHealthMonitor.jsx +0 -182
  113. package/management-ui/src/components/connections/ConnectionTester.jsx +0 -200
  114. package/management-ui/src/components/connections/EntityRelationshipMapper.jsx +0 -292
  115. package/management-ui/src/components/connections/OAuthFlow.jsx +0 -204
  116. package/management-ui/src/components/connections/index.js +0 -5
  117. package/management-ui/src/components/index.js +0 -21
  118. package/management-ui/src/components/monitoring/APIGatewayMetrics.jsx +0 -222
  119. package/management-ui/src/components/monitoring/LambdaMetrics.jsx +0 -169
  120. package/management-ui/src/components/monitoring/MetricsChart.jsx +0 -197
  121. package/management-ui/src/components/monitoring/MonitoringDashboard.jsx +0 -393
  122. package/management-ui/src/components/monitoring/SQSMetrics.jsx +0 -246
  123. package/management-ui/src/components/monitoring/index.js +0 -6
  124. package/management-ui/src/components/monitoring/monitoring.css +0 -218
  125. package/management-ui/src/components/theme-provider.jsx +0 -52
  126. package/management-ui/src/components/theme-toggle.jsx +0 -39
  127. package/management-ui/src/components/ui/badge.tsx +0 -36
  128. package/management-ui/src/components/ui/button.test.jsx +0 -56
  129. package/management-ui/src/components/ui/button.tsx +0 -57
  130. package/management-ui/src/components/ui/card.tsx +0 -76
  131. package/management-ui/src/components/ui/dropdown-menu.tsx +0 -199
  132. package/management-ui/src/components/ui/select.tsx +0 -157
  133. package/management-ui/src/components/ui/skeleton.jsx +0 -15
  134. package/management-ui/src/hooks/useFrigg.jsx +0 -387
  135. package/management-ui/src/hooks/useSocket.jsx +0 -58
  136. package/management-ui/src/index.css +0 -194
  137. package/management-ui/src/lib/utils.ts +0 -6
  138. package/management-ui/src/main.jsx +0 -10
  139. package/management-ui/src/pages/CodeGeneration.jsx +0 -14
  140. package/management-ui/src/pages/Connections.jsx +0 -252
  141. package/management-ui/src/pages/ConnectionsEnhanced.jsx +0 -427
  142. package/management-ui/src/pages/Dashboard.jsx +0 -311
  143. package/management-ui/src/pages/Environment.jsx +0 -314
  144. package/management-ui/src/pages/IntegrationConfigure.jsx +0 -544
  145. package/management-ui/src/pages/IntegrationDiscovery.jsx +0 -479
  146. package/management-ui/src/pages/IntegrationTest.jsx +0 -494
  147. package/management-ui/src/pages/Integrations.jsx +0 -254
  148. package/management-ui/src/pages/Monitoring.jsx +0 -17
  149. package/management-ui/src/pages/Simulation.jsx +0 -155
  150. package/management-ui/src/pages/Users.jsx +0 -492
  151. package/management-ui/src/services/api.js +0 -41
  152. package/management-ui/src/services/apiModuleService.js +0 -193
  153. package/management-ui/src/services/websocket-handlers.js +0 -120
  154. package/management-ui/src/test/api/project.test.js +0 -273
  155. package/management-ui/src/test/components/Welcome.test.jsx +0 -378
  156. package/management-ui/src/test/mocks/server.js +0 -178
  157. package/management-ui/src/test/setup.js +0 -61
  158. package/management-ui/src/test/utils/test-utils.jsx +0 -134
  159. package/management-ui/src/utils/repository.js +0 -98
  160. package/management-ui/src/utils/repository.test.js +0 -118
  161. package/management-ui/src/workflows/phase2-integration-workflows.js +0 -884
  162. package/management-ui/tailwind.config.js +0 -63
  163. package/management-ui/tsconfig.json +0 -37
  164. package/management-ui/tsconfig.node.json +0 -10
  165. package/management-ui/vite.config.js +0 -26
  166. package/management-ui/vitest.config.js +0 -38
  167. /package/management-ui/{src/assets/FriggLogo.svg → dist/assets/FriggLogo-B7Xx8ZW1.svg} +0 -0
@@ -1,170 +0,0 @@
1
- const { Command } = require('commander');
2
-
3
- /**
4
- * CommandTester - Utility class for testing CLI commands
5
- * Provides a fluent interface for setting up mocks and executing commands
6
- */
7
- class CommandTester {
8
- constructor(commandDefinition) {
9
- this.commandDefinition = commandDefinition;
10
- this.mocks = new Map();
11
- this.originalEnv = process.env;
12
- this.capturedLogs = {
13
- info: [],
14
- error: [],
15
- debug: [],
16
- warn: []
17
- };
18
- }
19
-
20
- /**
21
- * Set up a mock for a module
22
- * @param {string} modulePath - Path to the module to mock
23
- * @param {object} implementation - Mock implementation
24
- * @returns {CommandTester} - Fluent interface
25
- */
26
- mock(modulePath, implementation) {
27
- this.mocks.set(modulePath, implementation);
28
- return this;
29
- }
30
-
31
- /**
32
- * Set environment variables for the test
33
- * @param {object} env - Environment variables to set
34
- * @returns {CommandTester} - Fluent interface
35
- */
36
- withEnv(env) {
37
- process.env = { ...process.env, ...env };
38
- return this;
39
- }
40
-
41
- /**
42
- * Capture console output during test execution
43
- * @returns {CommandTester} - Fluent interface
44
- */
45
- captureOutput() {
46
- const originalConsole = { ...console };
47
-
48
- console.log = (...args) => {
49
- this.capturedLogs.info.push(args.join(' '));
50
- originalConsole.log(...args);
51
- };
52
-
53
- console.error = (...args) => {
54
- this.capturedLogs.error.push(args.join(' '));
55
- originalConsole.error(...args);
56
- };
57
-
58
- console.warn = (...args) => {
59
- this.capturedLogs.warn.push(args.join(' '));
60
- originalConsole.warn(...args);
61
- };
62
-
63
- console.debug = (...args) => {
64
- this.capturedLogs.debug.push(args.join(' '));
65
- originalConsole.debug(...args);
66
- };
67
-
68
- return this;
69
- }
70
-
71
- /**
72
- * Execute the command with given arguments
73
- * @param {string[]} args - Command arguments
74
- * @param {object} options - Command options
75
- * @returns {Promise<object>} - Execution result
76
- */
77
- async execute(args = [], options = {}) {
78
- // Set up mocks
79
- for (const [path, impl] of this.mocks) {
80
- jest.mock(path, () => impl, { virtual: true });
81
- }
82
-
83
- try {
84
- const program = new Command();
85
-
86
- // Set up the command
87
- const cmd = program
88
- .command(this.commandDefinition.name)
89
- .description(this.commandDefinition.description);
90
-
91
- // Add options if defined
92
- if (this.commandDefinition.options) {
93
- this.commandDefinition.options.forEach(option => {
94
- cmd.option(option.flags, option.description, option.defaultValue);
95
- });
96
- }
97
-
98
- // Add action
99
- cmd.action(this.commandDefinition.action);
100
-
101
- // Mock process.exit to prevent actual exit
102
- const originalExit = process.exit;
103
- let exitCode = 0;
104
- process.exit = (code) => {
105
- exitCode = code;
106
- throw new Error(`Process exited with code ${code}`);
107
- };
108
-
109
- try {
110
- await program.parseAsync(['node', 'cli', ...args]);
111
-
112
- return {
113
- success: true,
114
- exitCode: 0,
115
- logs: this.capturedLogs,
116
- args,
117
- options
118
- };
119
- } catch (error) {
120
- if (error.message.includes('Process exited with code')) {
121
- return {
122
- success: false,
123
- exitCode,
124
- error: error.message,
125
- logs: this.capturedLogs,
126
- args,
127
- options
128
- };
129
- }
130
- throw error;
131
- } finally {
132
- process.exit = originalExit;
133
- }
134
- } finally {
135
- // Clean up mocks
136
- for (const [path] of this.mocks) {
137
- jest.unmock(path);
138
- }
139
-
140
- // Restore environment
141
- process.env = this.originalEnv;
142
- }
143
- }
144
-
145
- /**
146
- * Get captured logs
147
- * @returns {object} - Captured logs by type
148
- */
149
- getLogs() {
150
- return this.capturedLogs;
151
- }
152
-
153
- /**
154
- * Reset the tester state
155
- * @returns {CommandTester} - Fluent interface
156
- */
157
- reset() {
158
- this.mocks.clear();
159
- this.capturedLogs = {
160
- info: [],
161
- error: [],
162
- debug: [],
163
- warn: []
164
- };
165
- process.env = this.originalEnv;
166
- return this;
167
- }
168
- }
169
-
170
- module.exports = { CommandTester };
@@ -1,270 +0,0 @@
1
- /**
2
- * MockFactory - Factory for creating standardized mocks
3
- * Provides consistent mock implementations across all CLI tests
4
- */
5
- class MockFactory {
6
- /**
7
- * Create a file system mock
8
- * @returns {object} - Mock fs implementation
9
- */
10
- static createFileSystem() {
11
- return {
12
- existsSync: jest.fn().mockReturnValue(true),
13
- readFileSync: jest.fn().mockReturnValue('{}'),
14
- writeFileSync: jest.fn(),
15
- mkdirSync: jest.fn(),
16
- readdirSync: jest.fn().mockReturnValue([]),
17
- statSync: jest.fn().mockReturnValue({
18
- isDirectory: () => false,
19
- isFile: () => true
20
- }),
21
- copyFileSync: jest.fn(),
22
- unlinkSync: jest.fn(),
23
- rmdirSync: jest.fn(),
24
- constants: {
25
- F_OK: 0,
26
- R_OK: 4,
27
- W_OK: 2,
28
- X_OK: 1
29
- }
30
- };
31
- }
32
-
33
- /**
34
- * Create a logger mock
35
- * @returns {object} - Mock logger implementation
36
- */
37
- static createLogger() {
38
- return {
39
- info: jest.fn(),
40
- error: jest.fn(),
41
- debug: jest.fn(),
42
- warn: jest.fn(),
43
- logInfo: jest.fn(),
44
- logError: jest.fn(),
45
- logDebug: jest.fn(),
46
- logWarn: jest.fn()
47
- };
48
- }
49
-
50
- /**
51
- * Create a package manager mock
52
- * @returns {object} - Mock package manager implementation
53
- */
54
- static createPackageManager() {
55
- return {
56
- install: jest.fn().mockResolvedValue({ success: true }),
57
- list: jest.fn().mockResolvedValue([]),
58
- exists: jest.fn().mockResolvedValue(true),
59
- getInfo: jest.fn().mockResolvedValue({
60
- name: 'test-package',
61
- version: '1.0.0'
62
- }),
63
- search: jest.fn().mockResolvedValue([])
64
- };
65
- }
66
-
67
- /**
68
- * Create a child process mock
69
- * @returns {object} - Mock child_process implementation
70
- */
71
- static createChildProcess() {
72
- return {
73
- execSync: jest.fn().mockReturnValue(''),
74
- exec: jest.fn(),
75
- spawn: jest.fn().mockReturnValue({
76
- stdout: { on: jest.fn() },
77
- stderr: { on: jest.fn() },
78
- on: jest.fn((event, callback) => {
79
- if (event === 'close') {
80
- callback(0);
81
- }
82
- })
83
- }),
84
- fork: jest.fn()
85
- };
86
- }
87
-
88
- /**
89
- * Create a git mock
90
- * @returns {object} - Mock git implementation
91
- */
92
- static createGit() {
93
- return {
94
- init: jest.fn(),
95
- add: jest.fn(),
96
- commit: jest.fn(),
97
- status: jest.fn().mockReturnValue({
98
- clean: true,
99
- files: []
100
- }),
101
- branch: jest.fn().mockReturnValue('main'),
102
- remote: jest.fn().mockReturnValue('origin'),
103
- isRepo: jest.fn().mockReturnValue(true)
104
- };
105
- }
106
-
107
- /**
108
- * Create a config loader mock
109
- * @returns {object} - Mock config loader implementation
110
- */
111
- static createConfigLoader() {
112
- return {
113
- load: jest.fn().mockReturnValue({
114
- stage: 'dev',
115
- region: 'us-east-1',
116
- profile: 'default'
117
- }),
118
- validate: jest.fn().mockReturnValue(true),
119
- save: jest.fn(),
120
- merge: jest.fn()
121
- };
122
- }
123
-
124
- /**
125
- * Create an app resolver mock
126
- * @returns {object} - Mock app resolver implementation
127
- */
128
- static createAppResolver() {
129
- return {
130
- resolveAppPath: jest.fn().mockReturnValue('/mock/app/path'),
131
- findNearestBackendPackageJson: jest.fn().mockReturnValue('/mock/backend/package.json'),
132
- validateBackendPath: jest.fn().mockReturnValue(true),
133
- getProjectRoot: jest.fn().mockReturnValue('/mock/project'),
134
- findConfigFile: jest.fn().mockReturnValue('/mock/config.json')
135
- };
136
- }
137
-
138
- /**
139
- * Create a network mock
140
- * @returns {object} - Mock network implementation
141
- */
142
- static createNetwork() {
143
- return {
144
- get: jest.fn().mockResolvedValue({
145
- status: 200,
146
- data: {}
147
- }),
148
- post: jest.fn().mockResolvedValue({
149
- status: 200,
150
- data: {}
151
- }),
152
- put: jest.fn().mockResolvedValue({
153
- status: 200,
154
- data: {}
155
- }),
156
- delete: jest.fn().mockResolvedValue({
157
- status: 200,
158
- data: {}
159
- })
160
- };
161
- }
162
-
163
- /**
164
- * Create a comprehensive mock environment
165
- * @returns {object} - Complete mock environment
166
- */
167
- static createMockEnvironment() {
168
- return {
169
- fs: this.createFileSystem(),
170
- logger: this.createLogger(),
171
- packageManager: this.createPackageManager(),
172
- childProcess: this.createChildProcess(),
173
- git: this.createGit(),
174
- config: this.createConfigLoader(),
175
- appResolver: this.createAppResolver(),
176
- network: this.createNetwork()
177
- };
178
- }
179
-
180
- /**
181
- * Create a mock for process.env
182
- * @param {object} customEnv - Custom environment variables
183
- * @returns {object} - Mock environment
184
- */
185
- static createProcessEnv(customEnv = {}) {
186
- return {
187
- NODE_ENV: 'test',
188
- HOME: '/mock/home',
189
- PATH: '/mock/path',
190
- ...customEnv
191
- };
192
- }
193
-
194
- /**
195
- * Create success response mock
196
- * @param {any} data - Response data
197
- * @returns {object} - Success response
198
- */
199
- static createSuccessResponse(data = {}) {
200
- return {
201
- success: true,
202
- data,
203
- message: 'Operation completed successfully'
204
- };
205
- }
206
-
207
- /**
208
- * Create error response mock
209
- * @param {string} message - Error message
210
- * @param {string} code - Error code
211
- * @returns {object} - Error response
212
- */
213
- static createErrorResponse(message = 'An error occurred', code = 'GENERIC_ERROR') {
214
- return {
215
- success: false,
216
- error: {
217
- message,
218
- code,
219
- stack: 'Mock stack trace'
220
- }
221
- };
222
- }
223
-
224
- /**
225
- * Create package.json mock
226
- * @param {object} overrides - Custom package.json properties
227
- * @returns {object} - Mock package.json
228
- */
229
- static createPackageJson(overrides = {}) {
230
- return {
231
- name: 'test-package',
232
- version: '1.0.0',
233
- description: 'Test package',
234
- main: 'index.js',
235
- scripts: {
236
- test: 'jest',
237
- start: 'node index.js'
238
- },
239
- dependencies: {},
240
- devDependencies: {},
241
- ...overrides
242
- };
243
- }
244
-
245
- /**
246
- * Create frigg config mock
247
- * @param {object} overrides - Custom config properties
248
- * @returns {object} - Mock frigg config
249
- */
250
- static createFriggConfig(overrides = {}) {
251
- return {
252
- stage: 'dev',
253
- region: 'us-east-1',
254
- profile: 'default',
255
- backend: {
256
- runtime: 'nodejs18.x',
257
- timeout: 30,
258
- memory: 128
259
- },
260
- frontend: {
261
- framework: 'react',
262
- buildCommand: 'npm run build',
263
- outputDir: 'dist'
264
- },
265
- ...overrides
266
- };
267
- }
268
- }
269
-
270
- module.exports = { MockFactory };