create-fluxstack 1.16.0 → 1.17.1

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 (119) hide show
  1. package/CHANGELOG.md +80 -0
  2. package/app/client/src/App.tsx +8 -0
  3. package/app/client/src/live/AuthDemo.tsx +4 -4
  4. package/core/build/bundler.ts +40 -26
  5. package/core/build/flux-plugins-generator.ts +325 -325
  6. package/core/build/index.ts +92 -21
  7. package/core/cli/command-registry.ts +44 -46
  8. package/core/cli/commands/build.ts +11 -6
  9. package/core/cli/commands/create.ts +7 -5
  10. package/core/cli/commands/dev.ts +6 -5
  11. package/core/cli/commands/help.ts +3 -2
  12. package/core/cli/commands/make-plugin.ts +8 -7
  13. package/core/cli/commands/plugin-add.ts +60 -43
  14. package/core/cli/commands/plugin-deps.ts +73 -57
  15. package/core/cli/commands/plugin-list.ts +44 -41
  16. package/core/cli/commands/plugin-remove.ts +33 -22
  17. package/core/cli/generators/component.ts +770 -769
  18. package/core/cli/generators/controller.ts +9 -8
  19. package/core/cli/generators/index.ts +148 -146
  20. package/core/cli/generators/interactive.ts +228 -227
  21. package/core/cli/generators/plugin.ts +11 -10
  22. package/core/cli/generators/prompts.ts +83 -82
  23. package/core/cli/generators/route.ts +7 -6
  24. package/core/cli/generators/service.ts +10 -9
  25. package/core/cli/generators/template-engine.ts +2 -1
  26. package/core/cli/generators/types.ts +7 -7
  27. package/core/cli/generators/utils.ts +191 -191
  28. package/core/cli/index.ts +9 -8
  29. package/core/cli/plugin-discovery.ts +2 -2
  30. package/core/client/hooks/useAuth.ts +48 -48
  31. package/core/client/standalone.ts +18 -17
  32. package/core/client/state/createStore.ts +192 -192
  33. package/core/client/state/index.ts +14 -14
  34. package/core/config/index.ts +1 -0
  35. package/core/framework/client.ts +131 -131
  36. package/core/framework/index.ts +7 -7
  37. package/core/framework/server.ts +73 -113
  38. package/core/framework/types.ts +2 -2
  39. package/core/plugins/built-in/live-components/commands/create-live-component.ts +6 -3
  40. package/core/plugins/built-in/monitoring/index.ts +110 -68
  41. package/core/plugins/built-in/static/index.ts +2 -2
  42. package/core/plugins/built-in/swagger/index.ts +9 -9
  43. package/core/plugins/built-in/vite/index.ts +3 -3
  44. package/core/plugins/built-in/vite/vite-dev.ts +3 -3
  45. package/core/plugins/config.ts +50 -47
  46. package/core/plugins/discovery.ts +10 -4
  47. package/core/plugins/executor.ts +2 -2
  48. package/core/plugins/index.ts +206 -203
  49. package/core/plugins/manager.ts +21 -20
  50. package/core/plugins/registry.ts +76 -12
  51. package/core/plugins/types.ts +14 -14
  52. package/core/server/framework.ts +3 -189
  53. package/core/server/live/auto-generated-components.ts +11 -29
  54. package/core/server/live/index.ts +41 -31
  55. package/core/server/live/websocket-plugin.ts +11 -1
  56. package/core/server/middleware/elysia-helpers.ts +16 -15
  57. package/core/server/middleware/errorHandling.ts +14 -14
  58. package/core/server/middleware/index.ts +31 -31
  59. package/core/server/plugins/database.ts +181 -180
  60. package/core/server/plugins/static-files-plugin.ts +4 -3
  61. package/core/server/plugins/swagger.ts +11 -8
  62. package/core/server/rooms/RoomBroadcaster.ts +11 -10
  63. package/core/server/rooms/RoomSystem.ts +14 -11
  64. package/core/server/services/BaseService.ts +7 -7
  65. package/core/server/services/ServiceContainer.ts +5 -5
  66. package/core/server/services/index.ts +8 -8
  67. package/core/templates/create-project.ts +28 -27
  68. package/core/testing/index.ts +9 -9
  69. package/core/testing/setup.ts +73 -73
  70. package/core/types/api.ts +168 -168
  71. package/core/types/config.ts +5 -5
  72. package/core/types/index.ts +1 -1
  73. package/core/types/plugin.ts +2 -2
  74. package/core/types/types.ts +3 -3
  75. package/core/utils/build-logger.ts +324 -324
  76. package/core/utils/config-schema.ts +480 -480
  77. package/core/utils/env.ts +10 -8
  78. package/core/utils/errors/codes.ts +114 -114
  79. package/core/utils/errors/handlers.ts +30 -20
  80. package/core/utils/errors/index.ts +54 -46
  81. package/core/utils/errors/middleware.ts +113 -113
  82. package/core/utils/helpers.ts +19 -16
  83. package/core/utils/logger/colors.ts +114 -114
  84. package/core/utils/logger/config.ts +2 -2
  85. package/core/utils/logger/formatter.ts +82 -82
  86. package/core/utils/logger/group-logger.ts +101 -101
  87. package/core/utils/logger/index.ts +13 -3
  88. package/core/utils/logger/startup-banner.ts +2 -2
  89. package/core/utils/logger/winston-logger.ts +152 -152
  90. package/core/utils/monitoring/index.ts +211 -211
  91. package/core/utils/sync-version.ts +67 -66
  92. package/core/utils/version.ts +1 -1
  93. package/package.json +104 -100
  94. package/playwright-report/index.html +85 -0
  95. package/playwright.config.ts +31 -0
  96. package/plugins/crypto-auth/client/CryptoAuthClient.ts +302 -302
  97. package/plugins/crypto-auth/client/components/index.ts +11 -11
  98. package/plugins/crypto-auth/client/index.ts +11 -11
  99. package/plugins/crypto-auth/package.json +65 -65
  100. package/plugins/crypto-auth/server/CryptoAuthService.ts +185 -185
  101. package/plugins/crypto-auth/server/middlewares/cryptoAuthAdmin.ts +6 -5
  102. package/plugins/crypto-auth/server/middlewares/cryptoAuthPermissions.ts +6 -5
  103. package/plugins/crypto-auth/server/middlewares/cryptoAuthRequired.ts +3 -3
  104. package/plugins/crypto-auth/server/middlewares/index.ts +22 -22
  105. package/plugins/crypto-auth/server/middlewares.ts +19 -19
  106. package/vite.config.ts +13 -0
  107. package/app/client/.live-stubs/LiveAdminPanel.js +0 -5
  108. package/app/client/.live-stubs/LiveCounter.js +0 -9
  109. package/app/client/.live-stubs/LiveForm.js +0 -11
  110. package/app/client/.live-stubs/LiveLocalCounter.js +0 -8
  111. package/app/client/.live-stubs/LivePingPong.js +0 -10
  112. package/app/client/.live-stubs/LiveRoomChat.js +0 -11
  113. package/app/client/.live-stubs/LiveSharedCounter.js +0 -10
  114. package/app/client/.live-stubs/LiveUpload.js +0 -15
  115. package/app/server/live/register-components.ts +0 -19
  116. package/core/build/live-components-generator.ts +0 -321
  117. package/core/live/ComponentRegistry.ts +0 -403
  118. package/core/live/types.ts +0 -241
  119. package/workspace.json +0 -6
@@ -7,7 +7,7 @@ import { Command } from 'commander'
7
7
  import { readFileSync, writeFileSync, existsSync } from 'fs'
8
8
  import { join } from 'path'
9
9
  import { $ } from 'bun'
10
- import chalk from 'chalk'
10
+ import { buildLogger } from '@core/utils/build-logger'
11
11
 
12
12
  interface PluginRemoveOptions {
13
13
  skipConfirmation?: boolean
@@ -21,13 +21,15 @@ export function createPluginRemoveCommand(): Command {
21
21
  .option('--skip-confirmation', 'Skip confirmation prompt')
22
22
  .option('--keep-installed', 'Keep plugin installed, only remove from whitelist')
23
23
  .action(async (pluginName: string, options: PluginRemoveOptions) => {
24
- console.log(chalk.blue('\nšŸ”Œ FluxStack Plugin Remover\n'))
24
+ buildLogger.info('')
25
+ buildLogger.info('šŸ”Œ FluxStack Plugin Remover')
26
+ buildLogger.info('')
25
27
 
26
28
  try {
27
29
  // 1. Check if plugin is installed
28
30
  const packageJsonPath = join(process.cwd(), 'package.json')
29
31
  if (!existsSync(packageJsonPath)) {
30
- console.error(chalk.red('āŒ package.json not found'))
32
+ buildLogger.error('āŒ package.json not found')
31
33
  process.exit(1)
32
34
  }
33
35
 
@@ -37,8 +39,9 @@ export function createPluginRemoveCommand(): Command {
37
39
  packageJson.devDependencies?.[pluginName]
38
40
 
39
41
  if (!isInstalled && !options.keepInstalled) {
40
- console.log(chalk.yellow(`āš ļø Plugin ${pluginName} is not installed`))
41
- console.log(chalk.yellow(' Will only remove from whitelist\n'))
42
+ buildLogger.warn(`āš ļø Plugin ${pluginName} is not installed`)
43
+ buildLogger.warn(' Will only remove from whitelist')
44
+ buildLogger.info('')
42
45
  }
43
46
 
44
47
  // 2. Confirmation prompt (unless skipped)
@@ -47,48 +50,56 @@ export function createPluginRemoveCommand(): Command {
47
50
  ? 'remove from whitelist'
48
51
  : 'uninstall and remove from whitelist'
49
52
 
50
- const answer = prompt(chalk.yellow(`Remove ${pluginName}? This will ${action}. (yes/no): `))
53
+ const answer = prompt(`Remove ${pluginName}? This will ${action}. (yes/no): `)
51
54
  if (answer?.toLowerCase() !== 'yes' && answer?.toLowerCase() !== 'y') {
52
- console.log(chalk.red('āŒ Removal cancelled'))
55
+ buildLogger.error('āŒ Removal cancelled')
53
56
  process.exit(0)
54
57
  }
55
58
  }
56
59
 
57
60
  // 3. Remove from whitelist
58
- console.log(chalk.blue('\nšŸ”§ Updating configuration...\n'))
61
+ buildLogger.info('')
62
+ buildLogger.info('šŸ”§ Updating configuration...')
63
+ buildLogger.info('')
59
64
  const removed = removeFromWhitelist(pluginName)
60
65
 
61
66
  if (!removed) {
62
- console.log(chalk.yellow(`āš ļø Plugin ${pluginName} was not in whitelist`))
67
+ buildLogger.warn(`āš ļø Plugin ${pluginName} was not in whitelist`)
63
68
  } else {
64
- console.log(chalk.gray(` • Removed ${pluginName} from PLUGINS_ALLOWED`))
69
+ buildLogger.info(` • Removed ${pluginName} from PLUGINS_ALLOWED`)
65
70
  }
66
71
 
67
72
  // 4. Uninstall plugin (unless --keep-installed)
68
73
  if (!options.keepInstalled && isInstalled) {
69
- console.log(chalk.blue(`\nšŸ“¦ Uninstalling ${pluginName}...\n`))
74
+ buildLogger.info('')
75
+ buildLogger.info(`šŸ“¦ Uninstalling ${pluginName}...`)
76
+ buildLogger.info('')
70
77
  await $`bun remove ${pluginName}`.quiet()
71
- console.log(chalk.green(`āœ… Plugin uninstalled successfully`))
78
+ buildLogger.success('āœ… Plugin uninstalled successfully')
72
79
  }
73
80
 
74
81
  // 5. Check if should disable NPM discovery
75
82
  checkAndDisableNpmDiscovery()
76
83
 
77
84
  // 6. Success message
78
- console.log(chalk.green('\nāœ… Plugin removal complete!\n'))
79
- console.log(chalk.blue('šŸ“‹ What was done:'))
80
- console.log(chalk.gray(` • Removed ${pluginName} from whitelist (PLUGINS_ALLOWED)`))
85
+ buildLogger.success('')
86
+ buildLogger.success('āœ… Plugin removal complete!')
87
+ buildLogger.info('')
88
+ buildLogger.info('šŸ“‹ What was done:')
89
+ buildLogger.info(` • Removed ${pluginName} from whitelist (PLUGINS_ALLOWED)`)
81
90
  if (!options.keepInstalled && isInstalled) {
82
- console.log(chalk.gray(` • Uninstalled ${pluginName}`))
91
+ buildLogger.info(` • Uninstalled ${pluginName}`)
83
92
  }
84
93
 
85
- console.log(chalk.blue('\nšŸš€ Next steps:'))
86
- console.log(chalk.gray(' 1. Restart your dev server: bun run dev'))
87
- console.log(chalk.gray(' 2. Plugin will no longer be loaded'))
94
+ buildLogger.info('')
95
+ buildLogger.info('šŸš€ Next steps:')
96
+ buildLogger.info(' 1. Restart your dev server: bun run dev')
97
+ buildLogger.info(' 2. Plugin will no longer be loaded')
88
98
 
89
99
  } catch (error) {
90
- console.error(chalk.red('\nāŒ Failed to remove plugin:'))
91
- console.error(chalk.red(error instanceof Error ? error.message : String(error)))
100
+ buildLogger.error('')
101
+ buildLogger.error('āŒ Failed to remove plugin:')
102
+ buildLogger.error(error instanceof Error ? error.message : String(error))
92
103
  process.exit(1)
93
104
  }
94
105
  })
@@ -164,7 +175,7 @@ function checkAndDisableNpmDiscovery(): void {
164
175
  'PLUGINS_DISCOVER_NPM=false'
165
176
  )
166
177
  writeFileSync(envPath, envContent, 'utf-8')
167
- console.log(chalk.gray(' • Disabled NPM plugin discovery (whitelist empty)'))
178
+ buildLogger.info(' • Disabled NPM plugin discovery (whitelist empty)')
168
179
  }
169
180
  }
170
181
  }