create-fluxstack 1.0.5 → 1.0.7

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 (406) hide show
  1. package/.claude/settings.local.json +2 -1
  2. package/create-fluxstack.ts +1 -0
  3. package/package.json +3 -3
  4. package/ENV_TESTING_REPORT.md +0 -292
  5. package/FRAMEWORK_ROADMAP.md +0 -183
  6. package/FRONTEND_TESTS_README.md +0 -287
  7. package/TEST_RESULTS.md +0 -130
  8. package/docs/dynamic-environment-variables.md +0 -380
  9. package/examples/dynamic-env-usage.ts +0 -283
  10. package/examples/hybrid-env-strategy.ts +0 -212
  11. package/examples/simplified-env-usage.ts +0 -251
  12. package/meu-app-teste/README.md +0 -44
  13. package/meu-app-teste/app/client/README.md +0 -69
  14. package/meu-app-teste/app/client/frontend-only.ts +0 -12
  15. package/meu-app-teste/app/client/index.html +0 -13
  16. package/meu-app-teste/app/client/public/vite.svg +0 -1
  17. package/meu-app-teste/app/client/src/App.css +0 -883
  18. package/meu-app-teste/app/client/src/App.tsx +0 -669
  19. package/meu-app-teste/app/client/src/assets/react.svg +0 -1
  20. package/meu-app-teste/app/client/src/components/TestPage.tsx +0 -453
  21. package/meu-app-teste/app/client/src/index.css +0 -51
  22. package/meu-app-teste/app/client/src/lib/eden-api.ts +0 -110
  23. package/meu-app-teste/app/client/src/main.tsx +0 -10
  24. package/meu-app-teste/app/client/src/vite-env.d.ts +0 -1
  25. package/meu-app-teste/app/client/tsconfig.app.json +0 -43
  26. package/meu-app-teste/app/client/tsconfig.json +0 -7
  27. package/meu-app-teste/app/client/tsconfig.node.json +0 -25
  28. package/meu-app-teste/app/server/app.ts +0 -10
  29. package/meu-app-teste/app/server/backend-only.ts +0 -15
  30. package/meu-app-teste/app/server/controllers/users.controller.ts +0 -69
  31. package/meu-app-teste/app/server/index.ts +0 -104
  32. package/meu-app-teste/app/server/routes/index.ts +0 -25
  33. package/meu-app-teste/app/server/routes/users.routes.ts +0 -121
  34. package/meu-app-teste/app/server/types/index.ts +0 -1
  35. package/meu-app-teste/app/shared/types/index.ts +0 -18
  36. package/meu-app-teste/bun.lock +0 -1053
  37. package/meu-app-teste/core/__tests__/integration.test.ts +0 -227
  38. package/meu-app-teste/core/build/index.ts +0 -186
  39. package/meu-app-teste/core/cli/command-registry.ts +0 -334
  40. package/meu-app-teste/core/cli/index.ts +0 -394
  41. package/meu-app-teste/core/cli/plugin-discovery.ts +0 -200
  42. package/meu-app-teste/core/client/standalone.ts +0 -57
  43. package/meu-app-teste/core/config/__tests__/config-loader.test.ts +0 -591
  44. package/meu-app-teste/core/config/__tests__/config-merger.test.ts +0 -657
  45. package/meu-app-teste/core/config/__tests__/env-converter.test.ts +0 -372
  46. package/meu-app-teste/core/config/__tests__/env-processor.test.ts +0 -431
  47. package/meu-app-teste/core/config/__tests__/env.test.ts +0 -452
  48. package/meu-app-teste/core/config/__tests__/integration.test.ts +0 -418
  49. package/meu-app-teste/core/config/__tests__/loader.test.ts +0 -331
  50. package/meu-app-teste/core/config/__tests__/schema.test.ts +0 -129
  51. package/meu-app-teste/core/config/__tests__/validator.test.ts +0 -318
  52. package/meu-app-teste/core/config/env-dynamic.ts +0 -326
  53. package/meu-app-teste/core/config/env.ts +0 -597
  54. package/meu-app-teste/core/config/index.ts +0 -317
  55. package/meu-app-teste/core/config/loader.ts +0 -546
  56. package/meu-app-teste/core/config/runtime-config.ts +0 -322
  57. package/meu-app-teste/core/config/schema.ts +0 -694
  58. package/meu-app-teste/core/config/validator.ts +0 -540
  59. package/meu-app-teste/core/framework/__tests__/server.test.ts +0 -233
  60. package/meu-app-teste/core/framework/client.ts +0 -132
  61. package/meu-app-teste/core/framework/index.ts +0 -8
  62. package/meu-app-teste/core/framework/server.ts +0 -501
  63. package/meu-app-teste/core/framework/types.ts +0 -63
  64. package/meu-app-teste/core/plugins/__tests__/built-in.test.ts.disabled +0 -366
  65. package/meu-app-teste/core/plugins/__tests__/manager.test.ts +0 -398
  66. package/meu-app-teste/core/plugins/__tests__/monitoring.test.ts +0 -401
  67. package/meu-app-teste/core/plugins/__tests__/registry.test.ts +0 -335
  68. package/meu-app-teste/core/plugins/built-in/index.ts +0 -142
  69. package/meu-app-teste/core/plugins/built-in/logger/index.ts +0 -180
  70. package/meu-app-teste/core/plugins/built-in/monitoring/README.md +0 -193
  71. package/meu-app-teste/core/plugins/built-in/monitoring/index.ts +0 -912
  72. package/meu-app-teste/core/plugins/built-in/static/index.ts +0 -289
  73. package/meu-app-teste/core/plugins/built-in/swagger/index.ts +0 -229
  74. package/meu-app-teste/core/plugins/built-in/vite/index.ts +0 -316
  75. package/meu-app-teste/core/plugins/config.ts +0 -348
  76. package/meu-app-teste/core/plugins/discovery.ts +0 -350
  77. package/meu-app-teste/core/plugins/executor.ts +0 -351
  78. package/meu-app-teste/core/plugins/index.ts +0 -195
  79. package/meu-app-teste/core/plugins/manager.ts +0 -583
  80. package/meu-app-teste/core/plugins/registry.ts +0 -424
  81. package/meu-app-teste/core/plugins/types.ts +0 -254
  82. package/meu-app-teste/core/server/framework.ts +0 -123
  83. package/meu-app-teste/core/server/index.ts +0 -8
  84. package/meu-app-teste/core/server/plugins/database.ts +0 -182
  85. package/meu-app-teste/core/server/plugins/logger.ts +0 -47
  86. package/meu-app-teste/core/server/plugins/swagger.ts +0 -34
  87. package/meu-app-teste/core/server/standalone.ts +0 -91
  88. package/meu-app-teste/core/templates/create-project.ts +0 -455
  89. package/meu-app-teste/core/types/api.ts +0 -169
  90. package/meu-app-teste/core/types/build.ts +0 -174
  91. package/meu-app-teste/core/types/config.ts +0 -68
  92. package/meu-app-teste/core/types/index.ts +0 -127
  93. package/meu-app-teste/core/types/plugin.ts +0 -94
  94. package/meu-app-teste/core/utils/__tests__/errors.test.ts +0 -139
  95. package/meu-app-teste/core/utils/__tests__/helpers.test.ts +0 -297
  96. package/meu-app-teste/core/utils/__tests__/logger.test.ts +0 -141
  97. package/meu-app-teste/core/utils/env-runtime-v2.ts +0 -232
  98. package/meu-app-teste/core/utils/env-runtime.ts +0 -252
  99. package/meu-app-teste/core/utils/errors/codes.ts +0 -115
  100. package/meu-app-teste/core/utils/errors/handlers.ts +0 -63
  101. package/meu-app-teste/core/utils/errors/index.ts +0 -81
  102. package/meu-app-teste/core/utils/helpers.ts +0 -180
  103. package/meu-app-teste/core/utils/index.ts +0 -18
  104. package/meu-app-teste/core/utils/logger/index.ts +0 -161
  105. package/meu-app-teste/core/utils/logger.ts +0 -106
  106. package/meu-app-teste/core/utils/monitoring/index.ts +0 -212
  107. package/meu-app-teste/package.json +0 -92
  108. package/meu-app-teste/tsconfig.json +0 -51
  109. package/meu-app-teste/vite.config.ts +0 -42
  110. package/my-final-test/README.md +0 -44
  111. package/my-final-test/app/client/README.md +0 -69
  112. package/my-final-test/app/client/frontend-only.ts +0 -12
  113. package/my-final-test/app/client/index.html +0 -13
  114. package/my-final-test/app/client/public/vite.svg +0 -1
  115. package/my-final-test/app/client/src/App.css +0 -883
  116. package/my-final-test/app/client/src/App.tsx +0 -669
  117. package/my-final-test/app/client/src/assets/react.svg +0 -1
  118. package/my-final-test/app/client/src/components/TestPage.tsx +0 -453
  119. package/my-final-test/app/client/src/index.css +0 -51
  120. package/my-final-test/app/client/src/lib/eden-api.ts +0 -110
  121. package/my-final-test/app/client/src/main.tsx +0 -10
  122. package/my-final-test/app/client/src/vite-env.d.ts +0 -1
  123. package/my-final-test/app/client/tsconfig.app.json +0 -43
  124. package/my-final-test/app/client/tsconfig.json +0 -7
  125. package/my-final-test/app/client/tsconfig.node.json +0 -25
  126. package/my-final-test/app/server/app.ts +0 -10
  127. package/my-final-test/app/server/backend-only.ts +0 -15
  128. package/my-final-test/app/server/controllers/users.controller.ts +0 -69
  129. package/my-final-test/app/server/index.ts +0 -104
  130. package/my-final-test/app/server/routes/index.ts +0 -25
  131. package/my-final-test/app/server/routes/users.routes.ts +0 -121
  132. package/my-final-test/app/server/types/index.ts +0 -1
  133. package/my-final-test/app/shared/types/index.ts +0 -18
  134. package/my-final-test/bun.lock +0 -993
  135. package/my-final-test/core/__tests__/integration.test.ts +0 -227
  136. package/my-final-test/core/build/index.ts +0 -186
  137. package/my-final-test/core/cli/command-registry.ts +0 -334
  138. package/my-final-test/core/cli/index.ts +0 -394
  139. package/my-final-test/core/cli/plugin-discovery.ts +0 -200
  140. package/my-final-test/core/client/standalone.ts +0 -57
  141. package/my-final-test/core/config/__tests__/config-loader.test.ts +0 -591
  142. package/my-final-test/core/config/__tests__/config-merger.test.ts +0 -657
  143. package/my-final-test/core/config/__tests__/env-converter.test.ts +0 -372
  144. package/my-final-test/core/config/__tests__/env-processor.test.ts +0 -431
  145. package/my-final-test/core/config/__tests__/env.test.ts +0 -452
  146. package/my-final-test/core/config/__tests__/integration.test.ts +0 -418
  147. package/my-final-test/core/config/__tests__/loader.test.ts +0 -331
  148. package/my-final-test/core/config/__tests__/schema.test.ts +0 -129
  149. package/my-final-test/core/config/__tests__/validator.test.ts +0 -318
  150. package/my-final-test/core/config/env-dynamic.ts +0 -326
  151. package/my-final-test/core/config/env.ts +0 -597
  152. package/my-final-test/core/config/index.ts +0 -317
  153. package/my-final-test/core/config/loader.ts +0 -546
  154. package/my-final-test/core/config/runtime-config.ts +0 -322
  155. package/my-final-test/core/config/schema.ts +0 -694
  156. package/my-final-test/core/config/validator.ts +0 -540
  157. package/my-final-test/core/framework/__tests__/server.test.ts +0 -233
  158. package/my-final-test/core/framework/client.ts +0 -132
  159. package/my-final-test/core/framework/index.ts +0 -8
  160. package/my-final-test/core/framework/server.ts +0 -501
  161. package/my-final-test/core/framework/types.ts +0 -63
  162. package/my-final-test/core/plugins/__tests__/built-in.test.ts.disabled +0 -366
  163. package/my-final-test/core/plugins/__tests__/manager.test.ts +0 -398
  164. package/my-final-test/core/plugins/__tests__/monitoring.test.ts +0 -401
  165. package/my-final-test/core/plugins/__tests__/registry.test.ts +0 -335
  166. package/my-final-test/core/plugins/built-in/index.ts +0 -142
  167. package/my-final-test/core/plugins/built-in/logger/index.ts +0 -180
  168. package/my-final-test/core/plugins/built-in/monitoring/README.md +0 -193
  169. package/my-final-test/core/plugins/built-in/monitoring/index.ts +0 -912
  170. package/my-final-test/core/plugins/built-in/static/index.ts +0 -289
  171. package/my-final-test/core/plugins/built-in/swagger/index.ts +0 -229
  172. package/my-final-test/core/plugins/built-in/vite/index.ts +0 -316
  173. package/my-final-test/core/plugins/config.ts +0 -348
  174. package/my-final-test/core/plugins/discovery.ts +0 -350
  175. package/my-final-test/core/plugins/executor.ts +0 -351
  176. package/my-final-test/core/plugins/index.ts +0 -195
  177. package/my-final-test/core/plugins/manager.ts +0 -583
  178. package/my-final-test/core/plugins/registry.ts +0 -424
  179. package/my-final-test/core/plugins/types.ts +0 -254
  180. package/my-final-test/core/server/framework.ts +0 -123
  181. package/my-final-test/core/server/index.ts +0 -8
  182. package/my-final-test/core/server/plugins/database.ts +0 -182
  183. package/my-final-test/core/server/plugins/logger.ts +0 -47
  184. package/my-final-test/core/server/plugins/swagger.ts +0 -34
  185. package/my-final-test/core/server/standalone.ts +0 -91
  186. package/my-final-test/core/templates/create-project.ts +0 -455
  187. package/my-final-test/core/types/api.ts +0 -169
  188. package/my-final-test/core/types/build.ts +0 -174
  189. package/my-final-test/core/types/config.ts +0 -68
  190. package/my-final-test/core/types/index.ts +0 -127
  191. package/my-final-test/core/types/plugin.ts +0 -94
  192. package/my-final-test/core/utils/__tests__/errors.test.ts +0 -139
  193. package/my-final-test/core/utils/__tests__/helpers.test.ts +0 -297
  194. package/my-final-test/core/utils/__tests__/logger.test.ts +0 -141
  195. package/my-final-test/core/utils/env-runtime-v2.ts +0 -232
  196. package/my-final-test/core/utils/env-runtime.ts +0 -252
  197. package/my-final-test/core/utils/errors/codes.ts +0 -115
  198. package/my-final-test/core/utils/errors/handlers.ts +0 -63
  199. package/my-final-test/core/utils/errors/index.ts +0 -81
  200. package/my-final-test/core/utils/helpers.ts +0 -180
  201. package/my-final-test/core/utils/index.ts +0 -18
  202. package/my-final-test/core/utils/logger/index.ts +0 -161
  203. package/my-final-test/core/utils/logger.ts +0 -106
  204. package/my-final-test/core/utils/monitoring/index.ts +0 -212
  205. package/my-final-test/package.json +0 -68
  206. package/my-final-test/tsconfig.json +0 -51
  207. package/my-final-test/vite.config.ts +0 -42
  208. package/publish-setup.md +0 -111
  209. package/teste-corrigido/README.md +0 -44
  210. package/teste-corrigido/app/client/README.md +0 -69
  211. package/teste-corrigido/app/client/frontend-only.ts +0 -12
  212. package/teste-corrigido/app/client/index.html +0 -13
  213. package/teste-corrigido/app/client/public/vite.svg +0 -1
  214. package/teste-corrigido/app/client/src/App.css +0 -883
  215. package/teste-corrigido/app/client/src/App.tsx +0 -669
  216. package/teste-corrigido/app/client/src/assets/react.svg +0 -1
  217. package/teste-corrigido/app/client/src/components/TestPage.tsx +0 -453
  218. package/teste-corrigido/app/client/src/index.css +0 -51
  219. package/teste-corrigido/app/client/src/lib/eden-api.ts +0 -110
  220. package/teste-corrigido/app/client/src/main.tsx +0 -10
  221. package/teste-corrigido/app/client/src/vite-env.d.ts +0 -1
  222. package/teste-corrigido/app/client/tsconfig.app.json +0 -43
  223. package/teste-corrigido/app/client/tsconfig.json +0 -7
  224. package/teste-corrigido/app/client/tsconfig.node.json +0 -25
  225. package/teste-corrigido/app/server/app.ts +0 -10
  226. package/teste-corrigido/app/server/backend-only.ts +0 -15
  227. package/teste-corrigido/app/server/controllers/users.controller.ts +0 -69
  228. package/teste-corrigido/app/server/index.ts +0 -104
  229. package/teste-corrigido/app/server/routes/index.ts +0 -25
  230. package/teste-corrigido/app/server/routes/users.routes.ts +0 -121
  231. package/teste-corrigido/app/server/types/index.ts +0 -1
  232. package/teste-corrigido/app/shared/types/index.ts +0 -18
  233. package/teste-corrigido/bun.lock +0 -1053
  234. package/teste-corrigido/core/__tests__/integration.test.ts +0 -227
  235. package/teste-corrigido/core/build/index.ts +0 -186
  236. package/teste-corrigido/core/cli/command-registry.ts +0 -334
  237. package/teste-corrigido/core/cli/index.ts +0 -394
  238. package/teste-corrigido/core/cli/plugin-discovery.ts +0 -200
  239. package/teste-corrigido/core/client/standalone.ts +0 -57
  240. package/teste-corrigido/core/config/__tests__/config-loader.test.ts +0 -591
  241. package/teste-corrigido/core/config/__tests__/config-merger.test.ts +0 -657
  242. package/teste-corrigido/core/config/__tests__/env-converter.test.ts +0 -372
  243. package/teste-corrigido/core/config/__tests__/env-processor.test.ts +0 -431
  244. package/teste-corrigido/core/config/__tests__/env.test.ts +0 -452
  245. package/teste-corrigido/core/config/__tests__/integration.test.ts +0 -418
  246. package/teste-corrigido/core/config/__tests__/loader.test.ts +0 -331
  247. package/teste-corrigido/core/config/__tests__/schema.test.ts +0 -129
  248. package/teste-corrigido/core/config/__tests__/validator.test.ts +0 -318
  249. package/teste-corrigido/core/config/env-dynamic.ts +0 -326
  250. package/teste-corrigido/core/config/env.ts +0 -597
  251. package/teste-corrigido/core/config/index.ts +0 -317
  252. package/teste-corrigido/core/config/loader.ts +0 -546
  253. package/teste-corrigido/core/config/runtime-config.ts +0 -322
  254. package/teste-corrigido/core/config/schema.ts +0 -694
  255. package/teste-corrigido/core/config/validator.ts +0 -540
  256. package/teste-corrigido/core/framework/__tests__/server.test.ts +0 -233
  257. package/teste-corrigido/core/framework/client.ts +0 -132
  258. package/teste-corrigido/core/framework/index.ts +0 -8
  259. package/teste-corrigido/core/framework/server.ts +0 -501
  260. package/teste-corrigido/core/framework/types.ts +0 -63
  261. package/teste-corrigido/core/plugins/__tests__/built-in.test.ts.disabled +0 -366
  262. package/teste-corrigido/core/plugins/__tests__/manager.test.ts +0 -398
  263. package/teste-corrigido/core/plugins/__tests__/monitoring.test.ts +0 -401
  264. package/teste-corrigido/core/plugins/__tests__/registry.test.ts +0 -335
  265. package/teste-corrigido/core/plugins/built-in/index.ts +0 -142
  266. package/teste-corrigido/core/plugins/built-in/logger/index.ts +0 -180
  267. package/teste-corrigido/core/plugins/built-in/monitoring/README.md +0 -193
  268. package/teste-corrigido/core/plugins/built-in/monitoring/index.ts +0 -912
  269. package/teste-corrigido/core/plugins/built-in/static/index.ts +0 -289
  270. package/teste-corrigido/core/plugins/built-in/swagger/index.ts +0 -229
  271. package/teste-corrigido/core/plugins/built-in/vite/index.ts +0 -316
  272. package/teste-corrigido/core/plugins/config.ts +0 -348
  273. package/teste-corrigido/core/plugins/discovery.ts +0 -350
  274. package/teste-corrigido/core/plugins/executor.ts +0 -351
  275. package/teste-corrigido/core/plugins/index.ts +0 -195
  276. package/teste-corrigido/core/plugins/manager.ts +0 -583
  277. package/teste-corrigido/core/plugins/registry.ts +0 -424
  278. package/teste-corrigido/core/plugins/types.ts +0 -254
  279. package/teste-corrigido/core/server/framework.ts +0 -123
  280. package/teste-corrigido/core/server/index.ts +0 -8
  281. package/teste-corrigido/core/server/plugins/database.ts +0 -182
  282. package/teste-corrigido/core/server/plugins/logger.ts +0 -47
  283. package/teste-corrigido/core/server/plugins/swagger.ts +0 -34
  284. package/teste-corrigido/core/server/standalone.ts +0 -91
  285. package/teste-corrigido/core/templates/create-project.ts +0 -455
  286. package/teste-corrigido/core/types/api.ts +0 -169
  287. package/teste-corrigido/core/types/build.ts +0 -174
  288. package/teste-corrigido/core/types/config.ts +0 -68
  289. package/teste-corrigido/core/types/index.ts +0 -127
  290. package/teste-corrigido/core/types/plugin.ts +0 -94
  291. package/teste-corrigido/core/utils/__tests__/errors.test.ts +0 -139
  292. package/teste-corrigido/core/utils/__tests__/helpers.test.ts +0 -297
  293. package/teste-corrigido/core/utils/__tests__/logger.test.ts +0 -141
  294. package/teste-corrigido/core/utils/env-runtime-v2.ts +0 -232
  295. package/teste-corrigido/core/utils/env-runtime.ts +0 -252
  296. package/teste-corrigido/core/utils/errors/codes.ts +0 -115
  297. package/teste-corrigido/core/utils/errors/handlers.ts +0 -63
  298. package/teste-corrigido/core/utils/errors/index.ts +0 -81
  299. package/teste-corrigido/core/utils/helpers.ts +0 -180
  300. package/teste-corrigido/core/utils/index.ts +0 -18
  301. package/teste-corrigido/core/utils/logger/index.ts +0 -161
  302. package/teste-corrigido/core/utils/logger.ts +0 -106
  303. package/teste-corrigido/core/utils/monitoring/index.ts +0 -212
  304. package/teste-corrigido/package-template.json +0 -51
  305. package/teste-corrigido/package.json +0 -51
  306. package/teste-corrigido/tsconfig.json +0 -51
  307. package/teste-corrigido/vite.config.ts +0 -42
  308. package/teste-final-npm/README.md +0 -44
  309. package/teste-final-npm/app/client/README.md +0 -69
  310. package/teste-final-npm/app/client/frontend-only.ts +0 -12
  311. package/teste-final-npm/app/client/index.html +0 -13
  312. package/teste-final-npm/app/client/public/vite.svg +0 -1
  313. package/teste-final-npm/app/client/src/App.css +0 -883
  314. package/teste-final-npm/app/client/src/App.tsx +0 -669
  315. package/teste-final-npm/app/client/src/assets/react.svg +0 -1
  316. package/teste-final-npm/app/client/src/components/TestPage.tsx +0 -453
  317. package/teste-final-npm/app/client/src/index.css +0 -51
  318. package/teste-final-npm/app/client/src/lib/eden-api.ts +0 -110
  319. package/teste-final-npm/app/client/src/main.tsx +0 -10
  320. package/teste-final-npm/app/client/src/vite-env.d.ts +0 -1
  321. package/teste-final-npm/app/client/tsconfig.app.json +0 -43
  322. package/teste-final-npm/app/client/tsconfig.json +0 -7
  323. package/teste-final-npm/app/client/tsconfig.node.json +0 -25
  324. package/teste-final-npm/app/server/app.ts +0 -10
  325. package/teste-final-npm/app/server/backend-only.ts +0 -15
  326. package/teste-final-npm/app/server/controllers/users.controller.ts +0 -69
  327. package/teste-final-npm/app/server/index.ts +0 -104
  328. package/teste-final-npm/app/server/routes/index.ts +0 -25
  329. package/teste-final-npm/app/server/routes/users.routes.ts +0 -121
  330. package/teste-final-npm/app/server/types/index.ts +0 -1
  331. package/teste-final-npm/app/shared/types/index.ts +0 -18
  332. package/teste-final-npm/bun.lock +0 -1053
  333. package/teste-final-npm/core/__tests__/integration.test.ts +0 -227
  334. package/teste-final-npm/core/build/index.ts +0 -186
  335. package/teste-final-npm/core/cli/command-registry.ts +0 -334
  336. package/teste-final-npm/core/cli/index.ts +0 -394
  337. package/teste-final-npm/core/cli/plugin-discovery.ts +0 -200
  338. package/teste-final-npm/core/client/standalone.ts +0 -57
  339. package/teste-final-npm/core/config/__tests__/config-loader.test.ts +0 -591
  340. package/teste-final-npm/core/config/__tests__/config-merger.test.ts +0 -657
  341. package/teste-final-npm/core/config/__tests__/env-converter.test.ts +0 -372
  342. package/teste-final-npm/core/config/__tests__/env-processor.test.ts +0 -431
  343. package/teste-final-npm/core/config/__tests__/env.test.ts +0 -452
  344. package/teste-final-npm/core/config/__tests__/integration.test.ts +0 -418
  345. package/teste-final-npm/core/config/__tests__/loader.test.ts +0 -331
  346. package/teste-final-npm/core/config/__tests__/schema.test.ts +0 -129
  347. package/teste-final-npm/core/config/__tests__/validator.test.ts +0 -318
  348. package/teste-final-npm/core/config/env-dynamic.ts +0 -326
  349. package/teste-final-npm/core/config/env.ts +0 -597
  350. package/teste-final-npm/core/config/index.ts +0 -317
  351. package/teste-final-npm/core/config/loader.ts +0 -546
  352. package/teste-final-npm/core/config/runtime-config.ts +0 -322
  353. package/teste-final-npm/core/config/schema.ts +0 -694
  354. package/teste-final-npm/core/config/validator.ts +0 -540
  355. package/teste-final-npm/core/framework/__tests__/server.test.ts +0 -233
  356. package/teste-final-npm/core/framework/client.ts +0 -132
  357. package/teste-final-npm/core/framework/index.ts +0 -8
  358. package/teste-final-npm/core/framework/server.ts +0 -501
  359. package/teste-final-npm/core/framework/types.ts +0 -63
  360. package/teste-final-npm/core/plugins/__tests__/built-in.test.ts.disabled +0 -366
  361. package/teste-final-npm/core/plugins/__tests__/manager.test.ts +0 -398
  362. package/teste-final-npm/core/plugins/__tests__/monitoring.test.ts +0 -401
  363. package/teste-final-npm/core/plugins/__tests__/registry.test.ts +0 -335
  364. package/teste-final-npm/core/plugins/built-in/index.ts +0 -142
  365. package/teste-final-npm/core/plugins/built-in/logger/index.ts +0 -180
  366. package/teste-final-npm/core/plugins/built-in/monitoring/README.md +0 -193
  367. package/teste-final-npm/core/plugins/built-in/monitoring/index.ts +0 -912
  368. package/teste-final-npm/core/plugins/built-in/static/index.ts +0 -289
  369. package/teste-final-npm/core/plugins/built-in/swagger/index.ts +0 -229
  370. package/teste-final-npm/core/plugins/built-in/vite/index.ts +0 -316
  371. package/teste-final-npm/core/plugins/config.ts +0 -348
  372. package/teste-final-npm/core/plugins/discovery.ts +0 -350
  373. package/teste-final-npm/core/plugins/executor.ts +0 -351
  374. package/teste-final-npm/core/plugins/index.ts +0 -195
  375. package/teste-final-npm/core/plugins/manager.ts +0 -583
  376. package/teste-final-npm/core/plugins/registry.ts +0 -424
  377. package/teste-final-npm/core/plugins/types.ts +0 -254
  378. package/teste-final-npm/core/server/framework.ts +0 -123
  379. package/teste-final-npm/core/server/index.ts +0 -8
  380. package/teste-final-npm/core/server/plugins/database.ts +0 -182
  381. package/teste-final-npm/core/server/plugins/logger.ts +0 -47
  382. package/teste-final-npm/core/server/plugins/swagger.ts +0 -34
  383. package/teste-final-npm/core/server/standalone.ts +0 -91
  384. package/teste-final-npm/core/templates/create-project.ts +0 -455
  385. package/teste-final-npm/core/types/api.ts +0 -169
  386. package/teste-final-npm/core/types/build.ts +0 -174
  387. package/teste-final-npm/core/types/config.ts +0 -68
  388. package/teste-final-npm/core/types/index.ts +0 -127
  389. package/teste-final-npm/core/types/plugin.ts +0 -94
  390. package/teste-final-npm/core/utils/__tests__/errors.test.ts +0 -139
  391. package/teste-final-npm/core/utils/__tests__/helpers.test.ts +0 -297
  392. package/teste-final-npm/core/utils/__tests__/logger.test.ts +0 -141
  393. package/teste-final-npm/core/utils/env-runtime-v2.ts +0 -232
  394. package/teste-final-npm/core/utils/env-runtime.ts +0 -252
  395. package/teste-final-npm/core/utils/errors/codes.ts +0 -115
  396. package/teste-final-npm/core/utils/errors/handlers.ts +0 -63
  397. package/teste-final-npm/core/utils/errors/index.ts +0 -81
  398. package/teste-final-npm/core/utils/helpers.ts +0 -180
  399. package/teste-final-npm/core/utils/index.ts +0 -18
  400. package/teste-final-npm/core/utils/logger/index.ts +0 -161
  401. package/teste-final-npm/core/utils/logger.ts +0 -106
  402. package/teste-final-npm/core/utils/monitoring/index.ts +0 -212
  403. package/teste-final-npm/package-template.json +0 -51
  404. package/teste-final-npm/package.json +0 -51
  405. package/teste-final-npm/tsconfig.json +0 -51
  406. package/teste-final-npm/vite.config.ts +0 -42
@@ -1,501 +0,0 @@
1
- import { Elysia } from "elysia"
2
- import type { FluxStackConfig, FluxStackContext } from "../types"
3
- import type { Plugin, PluginContext, PluginUtils } from "../plugins/types"
4
- import { PluginRegistry } from "../plugins/registry"
5
- import { getConfigSync, getEnvironmentInfo } from "../config"
6
- import { logger } from "../utils/logger"
7
- import { createErrorHandler } from "../utils/errors/handlers"
8
- import { createTimer, formatBytes, isProduction, isDevelopment } from "../utils/helpers"
9
-
10
- export class FluxStackFramework {
11
- private app: Elysia
12
- private context: FluxStackContext
13
- private pluginRegistry: PluginRegistry
14
- private pluginContext: PluginContext
15
- private isStarted: boolean = false
16
-
17
- constructor(config?: Partial<FluxStackConfig>) {
18
- // Load the full configuration
19
- const fullConfig = config ? { ...getConfigSync(), ...config } : getConfigSync()
20
- const envInfo = getEnvironmentInfo()
21
-
22
- this.context = {
23
- config: fullConfig,
24
- isDevelopment: envInfo.isDevelopment,
25
- isProduction: envInfo.isProduction,
26
- isTest: envInfo.isTest,
27
- environment: envInfo.name
28
- }
29
-
30
- this.app = new Elysia()
31
- this.pluginRegistry = new PluginRegistry()
32
-
33
- // Create plugin utilities
34
- const pluginUtils: PluginUtils = {
35
- createTimer,
36
- formatBytes,
37
- isProduction,
38
- isDevelopment,
39
- getEnvironment: () => envInfo.name,
40
- createHash: (data: string) => {
41
- const crypto = require('crypto')
42
- return crypto.createHash('sha256').update(data).digest('hex')
43
- },
44
- deepMerge: (target: any, source: any) => {
45
- const result = { ...target }
46
- for (const key in source) {
47
- if (source[key] && typeof source[key] === 'object' && !Array.isArray(source[key])) {
48
- result[key] = pluginUtils.deepMerge(result[key] || {}, source[key])
49
- } else {
50
- result[key] = source[key]
51
- }
52
- }
53
- return result
54
- },
55
- validateSchema: (_data: any, _schema: any) => {
56
- // Simple validation - in a real implementation you'd use a proper schema validator
57
- try {
58
- // Basic validation logic
59
- return { valid: true, errors: [] }
60
- } catch (error) {
61
- return { valid: false, errors: [error instanceof Error ? error.message : 'Validation failed'] }
62
- }
63
- }
64
- }
65
-
66
- // Create a logger wrapper that implements the full Logger interface
67
- const pluginLogger = {
68
- debug: (message: string, meta?: any) => logger.debug(message, meta),
69
- info: (message: string, meta?: any) => logger.info(message, meta),
70
- warn: (message: string, meta?: any) => logger.warn(message, meta),
71
- error: (message: string, meta?: any) => logger.error(message, meta),
72
- child: (context: any) => (logger as any).child(context),
73
- time: (label: string) => (logger as any).time(label),
74
- timeEnd: (label: string) => (logger as any).timeEnd(label),
75
- request: (method: string, path: string, status?: number, duration?: number) =>
76
- logger.request(method, path, status, duration)
77
- }
78
-
79
- this.pluginContext = {
80
- config: fullConfig,
81
- logger: pluginLogger,
82
- app: this.app,
83
- utils: pluginUtils
84
- }
85
-
86
- this.setupCors()
87
- this.setupHooks()
88
- this.setupErrorHandling()
89
-
90
- logger.framework('FluxStack framework initialized', {
91
- environment: envInfo.name,
92
- port: fullConfig.server.port
93
- })
94
- }
95
-
96
- private setupCors() {
97
- const { cors } = this.context.config.server
98
-
99
- this.app
100
- .onRequest(({ set }) => {
101
- set.headers["Access-Control-Allow-Origin"] = cors.origins.join(", ") || "*"
102
- set.headers["Access-Control-Allow-Methods"] = cors.methods.join(", ") || "*"
103
- set.headers["Access-Control-Allow-Headers"] = cors.headers.join(", ") || "*"
104
- if (cors.credentials) {
105
- set.headers["Access-Control-Allow-Credentials"] = "true"
106
- }
107
- })
108
- .options("*", ({ set }) => {
109
- set.status = 200
110
- return ""
111
- })
112
- }
113
-
114
- private setupHooks() {
115
- // Setup onRequest hook and onBeforeRoute hook
116
- this.app.onRequest(async ({ request, set }) => {
117
- const startTime = Date.now()
118
- const url = new URL(request.url)
119
-
120
- const requestContext = {
121
- request,
122
- path: url.pathname,
123
- method: request.method,
124
- headers: (() => {
125
- const headers: Record<string, string> = {}
126
- request.headers.forEach((value: string, key: string) => {
127
- headers[key] = value
128
- })
129
- return headers
130
- })(),
131
- query: Object.fromEntries(url.searchParams.entries()),
132
- params: {},
133
- startTime,
134
- handled: false,
135
- response: undefined
136
- }
137
-
138
- // Execute onRequest hooks for all plugins first (logging, auth, etc.)
139
- await this.executePluginHooks('onRequest', requestContext)
140
-
141
- // Execute onBeforeRoute hooks - allow plugins to handle requests before routing
142
- const handledResponse = await this.executePluginBeforeRouteHooks(requestContext)
143
-
144
- // If a plugin handled the request, return the response
145
- if (handledResponse) {
146
- return handledResponse
147
- }
148
- })
149
-
150
- // Setup onResponse hook
151
- this.app.onAfterHandle(async ({ request, response, set }) => {
152
- const startTime = Date.now()
153
- const url = new URL(request.url)
154
-
155
- const responseContext = {
156
- request,
157
- path: url.pathname,
158
- method: request.method,
159
- headers: (() => {
160
- const headers: Record<string, string> = {}
161
- request.headers.forEach((value: string, key: string) => {
162
- headers[key] = value
163
- })
164
- return headers
165
- })(),
166
- query: Object.fromEntries(url.searchParams.entries()),
167
- params: {},
168
- response,
169
- statusCode: (response as any)?.status || set.status || 200,
170
- duration: Date.now() - startTime,
171
- startTime
172
- }
173
-
174
- // Execute onResponse hooks for all plugins
175
- await this.executePluginHooks('onResponse', responseContext)
176
- })
177
- }
178
-
179
- private setupErrorHandling() {
180
- const errorHandler = createErrorHandler({
181
- logger: this.pluginContext.logger,
182
- isDevelopment: this.context.isDevelopment
183
- })
184
-
185
- this.app.onError(async ({ error, request, path, set }) => {
186
- const startTime = Date.now()
187
- const url = new URL(request.url)
188
-
189
- const errorContext = {
190
- request,
191
- path: url.pathname,
192
- method: request.method,
193
- headers: (() => {
194
- const headers: Record<string, string> = {}
195
- request.headers.forEach((value: string, key: string) => {
196
- headers[key] = value
197
- })
198
- return headers
199
- })(),
200
- query: Object.fromEntries(url.searchParams.entries()),
201
- params: {},
202
- error: error instanceof Error ? error : new Error(String(error)),
203
- duration: Date.now() - startTime,
204
- handled: false,
205
- startTime
206
- }
207
-
208
- // Execute onError hooks for all plugins - allow them to handle the error
209
- const handledResponse = await this.executePluginErrorHooks(errorContext)
210
-
211
- // If a plugin handled the error, return the response
212
- if (handledResponse) {
213
- return handledResponse
214
- }
215
-
216
- // Vite proxy logic is now handled by the Vite plugin via onBeforeRoute hook
217
-
218
- // Convert Elysia error to standard Error if needed
219
- const standardError = error instanceof Error ? error : new Error(String(error))
220
- return errorHandler(standardError, request, path)
221
- })
222
- }
223
-
224
- private async executePluginHooks(hookName: string, context: any): Promise<void> {
225
- const loadOrder = this.pluginRegistry.getLoadOrder()
226
-
227
- for (const pluginName of loadOrder) {
228
- const plugin = this.pluginRegistry.get(pluginName)
229
- if (!plugin) continue
230
-
231
- const hookFn = (plugin as any)[hookName]
232
- if (typeof hookFn === 'function') {
233
- try {
234
- await hookFn(context)
235
- } catch (error) {
236
- logger.error(`Plugin '${pluginName}' ${hookName} hook failed`, {
237
- error: (error as Error).message
238
- })
239
- }
240
- }
241
- }
242
- }
243
-
244
- private async executePluginBeforeRouteHooks(requestContext: any): Promise<Response | null> {
245
- const loadOrder = this.pluginRegistry.getLoadOrder()
246
-
247
- for (const pluginName of loadOrder) {
248
- const plugin = this.pluginRegistry.get(pluginName)
249
- if (!plugin) continue
250
-
251
- const onBeforeRouteFn = (plugin as any).onBeforeRoute
252
- if (typeof onBeforeRouteFn === 'function') {
253
- try {
254
- await onBeforeRouteFn(requestContext)
255
-
256
- // If this plugin handled the request, return the response
257
- if (requestContext.handled && requestContext.response) {
258
- return requestContext.response
259
- }
260
- } catch (error) {
261
- logger.error(`Plugin '${pluginName}' onBeforeRoute hook failed`, {
262
- error: (error as Error).message
263
- })
264
- }
265
- }
266
- }
267
-
268
- return null
269
- }
270
-
271
- private async executePluginErrorHooks(errorContext: any): Promise<Response | null> {
272
- const loadOrder = this.pluginRegistry.getLoadOrder()
273
-
274
- for (const pluginName of loadOrder) {
275
- const plugin = this.pluginRegistry.get(pluginName)
276
- if (!plugin) continue
277
-
278
- const onErrorFn = (plugin as any).onError
279
- if (typeof onErrorFn === 'function') {
280
- try {
281
- await onErrorFn(errorContext)
282
-
283
- // If this plugin handled the error, check if it provides a response
284
- if (errorContext.handled) {
285
- // For Vite plugin, we'll handle the proxy here
286
- if (pluginName === 'vite' && errorContext.error.constructor.name === 'NotFoundError') {
287
- return await this.handleViteProxy(errorContext)
288
- }
289
-
290
- // For other plugins, return a basic success response
291
- return new Response('OK', { status: 200 })
292
- }
293
- } catch (error) {
294
- logger.error(`Plugin '${pluginName}' onError hook failed`, {
295
- error: (error as Error).message
296
- })
297
- }
298
- }
299
- }
300
-
301
- return null
302
- }
303
-
304
- private async handleViteProxy(errorContext: any): Promise<Response> {
305
- const vitePort = this.context.config.client?.port || 5173
306
- const url = new URL(errorContext.request.url)
307
-
308
- try {
309
- const viteUrl = `http://localhost:${vitePort}${url.pathname}${url.search}`
310
-
311
- // Forward request to Vite
312
- const response = await fetch(viteUrl, {
313
- method: errorContext.method,
314
- headers: errorContext.headers
315
- })
316
-
317
- // Return a proper Response object with all headers and status
318
- const body = await response.arrayBuffer()
319
-
320
- return new Response(body, {
321
- status: response.status,
322
- statusText: response.statusText,
323
- headers: response.headers
324
- })
325
-
326
- } catch (viteError) {
327
- // If Vite fails, return error response
328
- return new Response(`Vite server not ready on port ${vitePort}. Error: ${viteError}`, {
329
- status: 503,
330
- headers: { 'Content-Type': 'text/plain' }
331
- })
332
- }
333
- }
334
-
335
- use(plugin: Plugin) {
336
- try {
337
- // Use the registry's public register method, but don't await it since we need sync operation
338
- if (this.pluginRegistry.has(plugin.name)) {
339
- throw new Error(`Plugin '${plugin.name}' is already registered`)
340
- }
341
-
342
- // Store plugin without calling setup - setup will be called in start()
343
- // We need to manually set the plugin since register() is async but we need sync
344
- (this.pluginRegistry as any).plugins.set(plugin.name, plugin)
345
-
346
- // Update dependencies tracking
347
- if (plugin.dependencies) {
348
- (this.pluginRegistry as any).dependencies.set(plugin.name, plugin.dependencies)
349
- }
350
-
351
- // Update load order by calling the private method
352
- try {
353
- (this.pluginRegistry as any).updateLoadOrder()
354
- } catch (error) {
355
- // Fallback: create basic load order
356
- const plugins = (this.pluginRegistry as any).plugins as Map<string, Plugin>
357
- const loadOrder = Array.from(plugins.keys())
358
- ;(this.pluginRegistry as any).loadOrder = loadOrder
359
- }
360
-
361
- logger.framework(`Plugin '${plugin.name}' registered`, {
362
- version: plugin.version,
363
- dependencies: plugin.dependencies
364
- })
365
- return this
366
- } catch (error) {
367
- logger.error(`Failed to register plugin '${plugin.name}'`, { error: (error as Error).message })
368
- throw error
369
- }
370
- }
371
-
372
- routes(routeModule: any) {
373
- this.app.use(routeModule)
374
- return this
375
- }
376
-
377
- async start(): Promise<void> {
378
- if (this.isStarted) {
379
- logger.warn('Framework is already started')
380
- return
381
- }
382
-
383
- try {
384
- // Validate plugin dependencies before starting
385
- const plugins = (this.pluginRegistry as any).plugins as Map<string, Plugin>
386
- for (const [pluginName, plugin] of plugins) {
387
- if (plugin.dependencies) {
388
- for (const depName of plugin.dependencies) {
389
- if (!plugins.has(depName)) {
390
- throw new Error(`Plugin '${pluginName}' depends on '${depName}' which is not registered`)
391
- }
392
- }
393
- }
394
- }
395
-
396
- // Get load order
397
- const loadOrder = this.pluginRegistry.getLoadOrder()
398
-
399
- // Call setup hooks for all plugins
400
- for (const pluginName of loadOrder) {
401
- const plugin = this.pluginRegistry.get(pluginName)!
402
-
403
- // Call setup hook if it exists and hasn't been called
404
- if (plugin.setup) {
405
- await plugin.setup(this.pluginContext)
406
- }
407
- }
408
-
409
- // Call onServerStart hooks
410
- for (const pluginName of loadOrder) {
411
- const plugin = this.pluginRegistry.get(pluginName)!
412
-
413
- if (plugin.onServerStart) {
414
- await plugin.onServerStart(this.pluginContext)
415
- }
416
- }
417
-
418
- this.isStarted = true
419
- logger.framework('All plugins loaded successfully', {
420
- pluginCount: loadOrder.length
421
- })
422
-
423
- } catch (error) {
424
- logger.error('Failed to start framework', { error: (error as Error).message })
425
- throw error
426
- }
427
- }
428
-
429
- async stop(): Promise<void> {
430
- if (!this.isStarted) {
431
- return
432
- }
433
-
434
- try {
435
- // Call onServerStop hooks in reverse order
436
- const loadOrder = this.pluginRegistry.getLoadOrder().reverse()
437
-
438
- for (const pluginName of loadOrder) {
439
- const plugin = this.pluginRegistry.get(pluginName)!
440
-
441
- if (plugin.onServerStop) {
442
- await plugin.onServerStop(this.pluginContext)
443
- logger.framework(`Plugin '${pluginName}' server stop hook completed`)
444
- }
445
- }
446
-
447
- this.isStarted = false
448
- logger.framework('Framework stopped successfully')
449
-
450
- } catch (error) {
451
- logger.error('Error during framework shutdown', { error: (error as Error).message })
452
- throw error
453
- }
454
- }
455
-
456
- getApp() {
457
- return this.app
458
- }
459
-
460
- getContext() {
461
- return this.context
462
- }
463
-
464
- getPluginRegistry() {
465
- return this.pluginRegistry
466
- }
467
-
468
- async listen(callback?: () => void) {
469
- // Start the framework (load plugins)
470
- await this.start()
471
-
472
- const port = this.context.config.server.port
473
- const apiPrefix = this.context.config.server.apiPrefix
474
-
475
- this.app.listen(port, () => {
476
- logger.framework(`Server started on port ${port}`, {
477
- apiPrefix,
478
- environment: this.context.environment,
479
- pluginCount: this.pluginRegistry.getAll().length
480
- })
481
-
482
- console.log(`🚀 API ready at http://localhost:${port}${apiPrefix}`)
483
- console.log(`📋 Health check: http://localhost:${port}${apiPrefix}/health`)
484
- console.log()
485
- callback?.()
486
- })
487
-
488
- // Handle graceful shutdown
489
- process.on('SIGTERM', async () => {
490
- logger.framework('Received SIGTERM, shutting down gracefully')
491
- await this.stop()
492
- process.exit(0)
493
- })
494
-
495
- process.on('SIGINT', async () => {
496
- logger.framework('Received SIGINT, shutting down gracefully')
497
- await this.stop()
498
- process.exit(0)
499
- })
500
- }
501
- }
@@ -1,63 +0,0 @@
1
- /**
2
- * Core Framework Types
3
- * Defines the main interfaces and types for the FluxStack framework
4
- */
5
-
6
- import type { FluxStackConfig } from "../types"
7
- import type { Logger } from "../utils/logger/index"
8
-
9
- export interface FluxStackFrameworkOptions {
10
- config?: Partial<FluxStackConfig>
11
- plugins?: string[]
12
- autoStart?: boolean
13
- }
14
-
15
- export interface FrameworkContext {
16
- config: FluxStackConfig
17
- isDevelopment: boolean
18
- isProduction: boolean
19
- isTest: boolean
20
- environment: string
21
- logger: Logger
22
- startTime: Date
23
- }
24
-
25
- export interface FrameworkStats {
26
- uptime: number
27
- pluginCount: number
28
- requestCount: number
29
- errorCount: number
30
- memoryUsage: NodeJS.MemoryUsage
31
- }
32
-
33
- export interface FrameworkHooks {
34
- beforeStart?: () => void | Promise<void>
35
- afterStart?: () => void | Promise<void>
36
- beforeStop?: () => void | Promise<void>
37
- afterStop?: () => void | Promise<void>
38
- onError?: (error: Error) => void | Promise<void>
39
- }
40
-
41
- export interface RouteDefinition {
42
- method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'OPTIONS' | 'HEAD'
43
- path: string
44
- handler: Function
45
- schema?: any
46
- middleware?: Function[]
47
- description?: string
48
- tags?: string[]
49
- }
50
-
51
- export interface MiddlewareDefinition {
52
- name: string
53
- handler: Function
54
- priority?: number
55
- routes?: string[]
56
- }
57
-
58
- export interface ServiceDefinition {
59
- name: string
60
- instance: any
61
- dependencies?: string[]
62
- singleton?: boolean
63
- }