opticore-webapp 1.0.41 → 1.0.43

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.
package/dist/index.cjs CHANGED
@@ -36,8 +36,12 @@ __export(index_exports, {
36
36
  });
37
37
  module.exports = __toCommonJS(index_exports);
38
38
 
39
+ // node_modules/tsup/assets/cjs_shims.js
40
+ var getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
41
+ var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
42
+
39
43
  // src/core/webServer.core.ts
40
- var path2 = __toESM(require("path"), 1);
44
+ var path3 = __toESM(require("path"), 1);
41
45
  var import_node_process3 = __toESM(require("process"), 1);
42
46
  var import_cors = __toESM(require("cors"), 1);
43
47
  var import_opticore_catch_exception_error4 = require("opticore-catch-exception-error");
@@ -102,13 +106,13 @@ function eventProcessHandler(localeLanguage) {
102
106
  // src/application/service/core.service.ts
103
107
  var import_node_process2 = __toESM(require("process"), 1);
104
108
  var import_chalk = __toESM(require("chalk"), 1);
105
- var path = __toESM(require("path"), 1);
109
+ var path2 = __toESM(require("path"), 1);
106
110
  var fs = __toESM(require("fs"), 1);
107
111
  var import_ansi_colors3 = __toESM(require("ansi-colors"), 1);
108
- var import_opticore_http_response = require("opticore-http-response");
109
- var import_opticore_translator2 = require("opticore-translator");
112
+ var import_opticore_http_response2 = require("opticore-http-response");
113
+ var import_opticore_translator3 = require("opticore-translator");
110
114
  var import_opticore_env_access2 = require("opticore-env-access");
111
- var import_opticore_logger = require("opticore-logger");
115
+ var import_opticore_logger2 = require("opticore-logger");
112
116
 
113
117
  // src/core/helpers/modulesLoaded.utils.ts
114
118
  var import_ansi_colors2 = __toESM(require("ansi-colors"), 1);
@@ -186,6 +190,38 @@ var loggerConfig = (envDir) => {
186
190
  };
187
191
  };
188
192
 
193
+ // src/core/config/loaders/translateLanguage.loader.ts
194
+ var import_path = __toESM(require("path"), 1);
195
+ var import_module = require("module");
196
+ var import_opticore_translator2 = require("opticore-translator");
197
+
198
+ // src/application/service/logger.service.ts
199
+ var import_opticore_logger = require("opticore-logger");
200
+ var SLogger = () => {
201
+ return new import_opticore_logger.LoggerCore();
202
+ };
203
+
204
+ // src/core/config/loaders/translateLanguage.loader.ts
205
+ var import_opticore_http_response = require("opticore-http-response");
206
+ var TranslateWebAppCoreLanguageLoader = class {
207
+ translateLanguageLoader(localLang) {
208
+ try {
209
+ const require2 = (0, import_module.createRequire)(importMetaUrl);
210
+ const packagePath = import_path.default.dirname(require2.resolve("opticore-webapp"));
211
+ const translateMsgJsonFilePath = import_path.default.join(packagePath, "utils", "translations");
212
+ import_opticore_translator2.TranslationLoader.loadTranslations(translateMsgJsonFilePath);
213
+ } catch (error) {
214
+ SLogger().error(
215
+ import_opticore_translator2.TranslationLoader.t(error.message, localLang),
216
+ import_opticore_translator2.TranslationLoader.t("readdir", localLang),
217
+ import_opticore_translator2.TranslationLoader.t("ENOENT:NoSuchFileOrDir", localLang),
218
+ error.stack,
219
+ import_opticore_http_response.HttpStatusCode.INTERNAL_SERVER_ERROR
220
+ );
221
+ }
222
+ }
223
+ };
224
+
189
225
  // src/core/helpers/container.utils.ts
190
226
  var Container = class {
191
227
  dependencies = /* @__PURE__ */ new Map();
@@ -208,6 +244,10 @@ function Inject(key) {
208
244
  return containerDependency.resolve(key);
209
245
  }
210
246
 
247
+ // src/utils/envPath.utils.ts
248
+ var import_process = __toESM(require("process"), 1);
249
+ var envPath = import_process.default.cwd() + "/config/env/.env";
250
+
211
251
  // src/application/service/core.service.ts
212
252
  var CoreService = class {
213
253
  loggerConfig;
@@ -215,8 +255,9 @@ var CoreService = class {
215
255
  environnementPath;
216
256
  translateWebAppCoreLanguageLoader;
217
257
  constructor(localLang, environnementPath) {
258
+ containerDependency.register("TranslateWebAppCoreLanguageLoader", new TranslateWebAppCoreLanguageLoader());
218
259
  this.translateWebAppCoreLanguageLoader = Inject("TranslateWebAppCoreLanguageLoader");
219
- this.loggerConfig = new import_opticore_logger.LoggerCore(loggerConfig(environnementPath));
260
+ this.loggerConfig = new import_opticore_logger2.LoggerCore(loggerConfig(environnementPath));
220
261
  this.environnementPath = environnementPath;
221
262
  this.localLanguage = localLang;
222
263
  }
@@ -257,20 +298,20 @@ var CoreService = class {
257
298
  this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
258
299
  const memoryData = import_node_process2.default.memoryUsage();
259
300
  const data = {
260
- [import_opticore_translator2.TranslationLoader.t("totalMemoryAllocated", this.localLanguage)]: this.formatMemoryUsage(memoryData.rss),
261
- [import_opticore_translator2.TranslationLoader.t("sizeAllocatedHeap", this.localLanguage)]: this.formatMemoryUsage(memoryData.heapTotal),
262
- [import_opticore_translator2.TranslationLoader.t("memoryUsedExecution", this.localLanguage)]: this.formatMemoryUsage(memoryData.heapUsed),
263
- [import_opticore_translator2.TranslationLoader.t("externalMemory", this.localLanguage)]: this.formatMemoryUsage(memoryData.external),
264
- [import_opticore_translator2.TranslationLoader.t("memoryUsageUser", this.localLanguage)]: this.formatMemoryUsage(import_node_process2.default.cpuUsage().user),
265
- [import_opticore_translator2.TranslationLoader.t("memoryUsageSystem", this.localLanguage)]: this.formatMemoryUsage(import_node_process2.default.cpuUsage().system)
301
+ [import_opticore_translator3.TranslationLoader.t("totalMemoryAllocated", this.localLanguage)]: this.formatMemoryUsage(memoryData.rss),
302
+ [import_opticore_translator3.TranslationLoader.t("sizeAllocatedHeap", this.localLanguage)]: this.formatMemoryUsage(memoryData.heapTotal),
303
+ [import_opticore_translator3.TranslationLoader.t("memoryUsedExecution", this.localLanguage)]: this.formatMemoryUsage(memoryData.heapUsed),
304
+ [import_opticore_translator3.TranslationLoader.t("externalMemory", this.localLanguage)]: this.formatMemoryUsage(memoryData.external),
305
+ [import_opticore_translator3.TranslationLoader.t("memoryUsageUser", this.localLanguage)]: this.formatMemoryUsage(import_node_process2.default.cpuUsage().user),
306
+ [import_opticore_translator3.TranslationLoader.t("memoryUsageSystem", this.localLanguage)]: this.formatMemoryUsage(import_node_process2.default.cpuUsage().system)
266
307
  };
267
308
  return {
268
- "rss": data[import_opticore_translator2.TranslationLoader.t("totalMemoryAllocated", this.localLanguage)],
269
- "heapTotal": data[import_opticore_translator2.TranslationLoader.t("sizeAllocatedHeap", this.localLanguage)],
270
- "heapUsed": data[import_opticore_translator2.TranslationLoader.t("memoryUsedExecution", this.localLanguage)],
271
- "external": data[import_opticore_translator2.TranslationLoader.t("externalMemory", this.localLanguage)],
272
- "user": data[import_opticore_translator2.TranslationLoader.t("memoryUsageUser", this.localLanguage)],
273
- "system": data[import_opticore_translator2.TranslationLoader.t("memoryUsageSystem", this.localLanguage)]
309
+ "rss": data[import_opticore_translator3.TranslationLoader.t("totalMemoryAllocated", this.localLanguage)],
310
+ "heapTotal": data[import_opticore_translator3.TranslationLoader.t("sizeAllocatedHeap", this.localLanguage)],
311
+ "heapUsed": data[import_opticore_translator3.TranslationLoader.t("memoryUsedExecution", this.localLanguage)],
312
+ "external": data[import_opticore_translator3.TranslationLoader.t("externalMemory", this.localLanguage)],
313
+ "user": data[import_opticore_translator3.TranslationLoader.t("memoryUsageUser", this.localLanguage)],
314
+ "system": data[import_opticore_translator3.TranslationLoader.t("memoryUsageSystem", this.localLanguage)]
274
315
  };
275
316
  }
276
317
  /**
@@ -281,7 +322,7 @@ var CoreService = class {
281
322
  const endTime = import_node_process2.default.hrtime(startTime);
282
323
  const executionTime = (endTime[0] * 1e9 + endTime[1]) / 1e6;
283
324
  return {
284
- "projectPath": path.join(import_node_process2.default.cwd()),
325
+ "projectPath": path2.join(import_node_process2.default.cwd()),
285
326
  "startingTime": `${executionTime.toFixed(5)} ms`
286
327
  };
287
328
  }
@@ -293,7 +334,7 @@ var CoreService = class {
293
334
  * Return void
294
335
  */
295
336
  getEnvFileLoading(filePath) {
296
- const fullPath = path.resolve(import_node_process2.default.cwd(), filePath);
337
+ const fullPath = path2.resolve(import_node_process2.default.cwd(), filePath);
297
338
  if (fs.existsSync(fullPath)) {
298
339
  const env = fs.readFileSync(fullPath, "utf-8");
299
340
  const lines = env.split("\n");
@@ -316,12 +357,14 @@ var CoreService = class {
316
357
  getServerRunningMode(development, production) {
317
358
  this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
318
359
  this.getEnvFileLoading(".env");
319
- const env = (0, import_opticore_env_access2.getEnvironnementValue)(path.join(import_node_process2.default.cwd(), "config", "env"));
320
- const isDevelopment = env.devEnv === development && env.prodEnv === void 0 || env.devEnv === development && env.prodEnv === "";
360
+ const env = (0, import_opticore_env_access2.getEnvironnementValue)(path2.join(envPath));
361
+ const isDevelopment = env.devEnv === development && env.prodEnv === "";
321
362
  if (isDevelopment) {
322
- return `${import_opticore_translator2.TranslationLoader.t("serverRunning", this.localLanguage)} ${import_ansi_colors3.default.bgBlue(`${import_ansi_colors3.default.bold(`${development}`)}`)} mode`;
363
+ return `${import_opticore_translator3.TranslationLoader.t("serverRunning", this.localLanguage)} ${import_ansi_colors3.default.bgBlue(`${import_ansi_colors3.default.bold(`${development}`)}`)} mode`;
364
+ } else if (!isDevelopment) {
365
+ return `${import_opticore_translator3.TranslationLoader.t("serverRunning", this.localLanguage)} ${import_ansi_colors3.default.bgBlue(`${import_ansi_colors3.default.bold(`${production}`)}`)} mode`;
323
366
  } else {
324
- return `${import_opticore_translator2.TranslationLoader.t("serverRunning", this.localLanguage)} ${import_ansi_colors3.default.bgBlue(`${import_ansi_colors3.default.bold(`${production}`)}`)} mode`;
367
+ return `${import_opticore_translator3.TranslationLoader.t("serverRunning", this.localLanguage)} ${import_ansi_colors3.default.bgBlue(`${import_ansi_colors3.default.bold(`${development}`)}`)} mode`;
325
368
  }
326
369
  }
327
370
  infoServer(nodeVersion, startingTime, host, port) {
@@ -329,15 +372,16 @@ var CoreService = class {
329
372
  const getEnvironnement = (0, import_opticore_env_access2.getEnvironnementValue)(this.environnementPath);
330
373
  const msg5 = getEnvironnement.protocolTransfert === "" ? `${import_ansi_colors3.default.underline(`http://${host}:${port}`)}` : `${import_ansi_colors3.default.underline(`${getEnvironnement.protocolTransfert}://${host}:${port}`)}`;
331
374
  const messages = [
332
- import_opticore_translator2.TranslationLoader.t("webServerListening", this.localLanguage),
333
- import_opticore_translator2.TranslationLoader.t("webServerUsingNodeVersion", this.localLanguage),
334
- import_opticore_translator2.TranslationLoader.t("startTime", this.localLanguage),
335
- this.getServerRunningMode(import_opticore_translator2.TranslationLoader.t("runningModeDev", this.localLanguage), import_opticore_translator2.TranslationLoader.t("runningModeProd", this.localLanguage)),
375
+ import_opticore_translator3.TranslationLoader.t("webServerListening", this.localLanguage),
376
+ import_opticore_translator3.TranslationLoader.t("webServerUsingNodeVersion", this.localLanguage, { nodeVersion: this.getVersions().nodeVersion }),
377
+ import_opticore_translator3.TranslationLoader.t("startTime", this.localLanguage, { startTime: this.getProjectInfo().startingTime }),
378
+ this.getServerRunningMode(import_opticore_translator3.TranslationLoader.t("runningModeDev", this.localLanguage), import_opticore_translator3.TranslationLoader.t("runningModeProd", this.localLanguage)),
336
379
  msg5
337
380
  ];
338
381
  const maxLength = Math.max(...messages.map((m) => {
339
382
  return m.replace(/\u001b\[[0-9]{1,2}m/g, "").length;
340
383
  })) + 4;
384
+ console.log(import_chalk.default.blackBright(`Tailing Web Server log file (${path2.join(path2.basename(import_node_process2.default.cwd()), "logs", "app.log")})`));
341
385
  const border = import_chalk.default.bgGreen.white(" ".repeat(maxLength));
342
386
  console.log(border);
343
387
  messages.forEach((msg) => {
@@ -346,6 +390,7 @@ var CoreService = class {
346
390
  console.log(import_chalk.default.bgGreen.white(` ${msg}${" ".repeat(padding)} `));
347
391
  });
348
392
  console.log(border);
393
+ console.log("\n");
349
394
  }
350
395
  coreListenerEventLoaderModuleService(kernelModule) {
351
396
  this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
@@ -365,9 +410,9 @@ var CoreService = class {
365
410
  })();
366
411
  } else {
367
412
  const stackTrace = STraceError(
368
- import_opticore_translator2.TranslationLoader.t("loadedModulesError", this.localLanguage),
369
- import_opticore_translator2.TranslationLoader.t("loadedModules", this.localLanguage),
370
- import_opticore_http_response.HttpStatusCode.NOT_ACCEPTABLE,
413
+ import_opticore_translator3.TranslationLoader.t("loadedModulesError", this.localLanguage),
414
+ import_opticore_translator3.TranslationLoader.t("loadedModules", this.localLanguage),
415
+ import_opticore_http_response2.HttpStatusCode.NOT_ACCEPTABLE,
371
416
  true
372
417
  );
373
418
  throw new Error(stackTrace.message);
@@ -377,27 +422,19 @@ var CoreService = class {
377
422
 
378
423
  // src/application/service/serverStartError.service.ts
379
424
  var import_opticore_catch_exception_error3 = require("opticore-catch-exception-error");
380
-
381
- // src/application/service/logger.service.ts
382
- var import_opticore_logger2 = require("opticore-logger");
383
- var SLogger = () => {
384
- return new import_opticore_logger2.LoggerCore();
385
- };
386
-
387
- // src/application/service/serverStartError.service.ts
388
- var import_opticore_http_response2 = require("opticore-http-response");
425
+ var import_opticore_http_response3 = require("opticore-http-response");
389
426
  var SServerStartError = (err) => {
390
427
  if (err.name) {
391
428
  for (const [key, code] of Object.entries(import_opticore_catch_exception_error3.CErrorName)) {
392
429
  if (err.name === code) {
393
- SLogger().error(err.message, code, code, err.stack, import_opticore_http_response2.HttpStatusCode.INTERNAL_SERVER_ERROR);
430
+ SLogger().error(err.message, code, code, err.stack, import_opticore_http_response3.HttpStatusCode.INTERNAL_SERVER_ERROR);
394
431
  break;
395
432
  }
396
433
  }
397
434
  } else {
398
435
  for (const [key, code] of Object.entries(import_opticore_catch_exception_error3.CCodeError)) {
399
436
  if (err.code === code) {
400
- SLogger().error(err.message, code, key, err.stack, import_opticore_http_response2.HttpStatusCode.INTERNAL_SERVER_ERROR);
437
+ SLogger().error(err.message, code, key, err.stack, import_opticore_http_response3.HttpStatusCode.INTERNAL_SERVER_ERROR);
401
438
  break;
402
439
  }
403
440
  }
@@ -407,8 +444,9 @@ var SServerStartError = (err) => {
407
444
  // src/core/webServer.core.ts
408
445
  var import_opticore_request_call_event = require("opticore-request-call-event");
409
446
  var import_opticore_inject_dependency = require("opticore-inject-dependency");
410
- var import_opticore_http_response3 = require("opticore-http-response");
411
- var import_opticore_translator3 = require("opticore-translator");
447
+ var import_opticore_http_response4 = require("opticore-http-response");
448
+ var import_opticore_translator4 = require("opticore-translator");
449
+ var import_opticore_mysqldb = require("opticore-mysqldb");
412
450
  var WebServerCore = class {
413
451
  serverUtility;
414
452
  expressApp = (0, import_opticore_express2.express)();
@@ -419,7 +457,9 @@ var WebServerCore = class {
419
457
  environnementPath;
420
458
  serverListenEvent;
421
459
  translateWebAppCoreLanguageLoader;
460
+ static dependenciesRegistered = false;
422
461
  constructor(app, loggerConfig2, localLanguage, environnementPath, corsOriginOptions) {
462
+ containerDependency.register("TranslateWebAppCoreLanguageLoader", new TranslateWebAppCoreLanguageLoader());
423
463
  this.translateWebAppCoreLanguageLoader = Inject("TranslateWebAppCoreLanguageLoader");
424
464
  this.translateWebAppCoreLanguageLoader.translateLanguageLoader(localLanguage);
425
465
  this.stackTraceErrorHandling(localLanguage);
@@ -436,8 +476,17 @@ var WebServerCore = class {
436
476
  this.serverListenEvent = new import_opticore_catch_exception_error4.ServerListenEventError(localLanguage);
437
477
  this.serverUtility = new CoreService(localLanguage, environnementPath);
438
478
  }
439
- onStartServer(routers, dbConnexion, dependenciesProvider) {
479
+ static registerDependencies(dependencies) {
480
+ if (this.dependenciesRegistered) return;
481
+ containerDependency.register("TranslateWebAppCoreLanguageLoader", new TranslateWebAppCoreLanguageLoader());
482
+ dependencies.forEach((value, key) => {
483
+ containerDependency.register(key, value);
484
+ });
485
+ this.dependenciesRegistered = true;
486
+ }
487
+ onStartServer(routers, dependenciesProvider) {
440
488
  this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
489
+ const mySQL = new import_opticore_mysqldb.OptiCoreMySQLDriver(envPath, this.localLanguage);
441
490
  if (this.getEnvironnement.appHost === "" && Number(this.getEnvironnement.appPort) === 0) {
442
491
  this.serverListenEvent.hostPortUndefined(Number(this.getEnvironnement.appPort));
443
492
  } else if (this.getEnvironnement.appHost === "") {
@@ -446,20 +495,20 @@ var WebServerCore = class {
446
495
  this.serverListenEvent.portUndefined();
447
496
  } else if (this.localLanguage === "") {
448
497
  SLogger().error(
449
- import_opticore_translator3.TranslationLoader.t("noDefaultLocalLang", this.localLanguage),
450
- import_opticore_translator3.TranslationLoader.t("noLocalLang", this.localLanguage),
451
- import_opticore_translator3.TranslationLoader.t("localLangMissing", this.localLanguage),
498
+ import_opticore_translator4.TranslationLoader.t("noDefaultLocalLang", this.localLanguage),
499
+ import_opticore_translator4.TranslationLoader.t("noLocalLang", this.localLanguage),
500
+ import_opticore_translator4.TranslationLoader.t("localLangMissing", this.localLanguage),
452
501
  void 0,
453
- import_opticore_http_response3.HttpStatusCode.NOT_FOUND
502
+ import_opticore_http_response4.HttpStatusCode.NOT_FOUND
454
503
  );
455
504
  } else {
456
505
  return this.expressApp.listen(
457
506
  Number(this.getEnvironnement.appPort),
458
507
  () => {
459
508
  try {
460
- dbConnexion;
509
+ mySQL.databaseConnexionChecker(envPath, "");
461
510
  new import_opticore_inject_dependency.SContainer(dependenciesProvider, this.localLanguage);
462
- this.expressApp.use(import_opticore_express2.express.static(path2.join(import_node_process3.default.cwd(), "public/template")));
511
+ this.expressApp.use(import_opticore_express2.express.static(path3.join(import_node_process3.default.cwd(), "public/template")));
463
512
  this.registerRoutes(routers);
464
513
  } catch (err) {
465
514
  SServerStartError(err);
@@ -514,14 +563,10 @@ var WebServerCore = class {
514
563
  }
515
564
  };
516
565
 
517
- // src/utils/envPath.utils.ts
518
- var import_process = __toESM(require("process"), 1);
519
- var envPath = import_process.default.cwd() + "/config/env/.env";
520
-
521
566
  // src/utils/stopServer.utils.ts
522
567
  var import_dotenv = __toESM(require("dotenv"), 1);
523
568
  var import_child_process = require("child_process");
524
- var import_opticore_translator4 = require("opticore-translator");
569
+ var import_opticore_translator5 = require("opticore-translator");
525
570
  var UStopServer = () => {
526
571
  import_dotenv.default.config();
527
572
  const port = process.env.PORT;
@@ -529,12 +574,12 @@ var UStopServer = () => {
529
574
  const pid = (0, import_child_process.execSync)(`lsof -i :${port} -t`, { encoding: "utf-8" }).trim();
530
575
  if (pid) {
531
576
  (0, import_child_process.execSync)(`kill ${pid}`);
532
- SLogger().success("serverPortKill", import_opticore_translator4.TranslationLoader.t("serverPortKill", "en", { port }));
577
+ SLogger().success("serverPortKill", import_opticore_translator5.TranslationLoader.t("serverPortKill", "en", { port }));
533
578
  } else {
534
- SLogger().warn("pidOnPortNotFound", import_opticore_translator4.TranslationLoader.t("pidOnPortNotFound", "en", { port }));
579
+ SLogger().warn("pidOnPortNotFound", import_opticore_translator5.TranslationLoader.t("pidOnPortNotFound", "en", { port }));
535
580
  }
536
581
  } catch (error) {
537
- SLogger().error("noProcessRunningOnPort", import_opticore_translator4.TranslationLoader.t("noProcessRunningOnPort", "en", { port }));
582
+ SLogger().error("noProcessRunningOnPort", import_opticore_translator5.TranslationLoader.t("noProcessRunningOnPort", "en", { port }));
538
583
  }
539
584
  };
540
585
  // Annotate the CommonJS export names for ESM import in node:
package/dist/index.d.cts CHANGED
@@ -2,7 +2,7 @@ import { CorsOptions } from 'cors';
2
2
  import { Server } from 'http';
3
3
  import { Router, express } from 'opticore-express';
4
4
  import { LoggerCore } from 'opticore-logger';
5
- import { TDependency } from 'opticore-inject-dependency';
5
+ import { TDependencyKey, TDependency } from 'opticore-inject-dependency';
6
6
 
7
7
  interface IRouteDefinition {
8
8
  path: string;
@@ -23,8 +23,10 @@ declare class WebServerCore {
23
23
  private readonly environnementPath;
24
24
  private serverListenEvent;
25
25
  private translateWebAppCoreLanguageLoader;
26
+ private static dependenciesRegistered;
26
27
  constructor(app: express.Application, loggerConfig: LoggerCore, localLanguage: string, environnementPath: any, corsOriginOptions?: Partial<CorsOptions>);
27
- onStartServer(routers: TFeatureRoutes[], dbConnexion: (envPath: any, optionalArgumentConnection?: string | any) => void, dependenciesProvider?: TDependency[]): any;
28
+ static registerDependencies(dependencies: Map<TDependencyKey, any>): void;
29
+ onStartServer(routers: TFeatureRoutes[], dependenciesProvider?: TDependency[]): any;
28
30
  onListeningOnServerEvent(serverWeb: Server): void;
29
31
  onRequestOnServerEvent(serverWeb: Server): void;
30
32
  private registerRoutes;
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import { CorsOptions } from 'cors';
2
2
  import { Server } from 'http';
3
3
  import { Router, express } from 'opticore-express';
4
4
  import { LoggerCore } from 'opticore-logger';
5
- import { TDependency } from 'opticore-inject-dependency';
5
+ import { TDependencyKey, TDependency } from 'opticore-inject-dependency';
6
6
 
7
7
  interface IRouteDefinition {
8
8
  path: string;
@@ -23,8 +23,10 @@ declare class WebServerCore {
23
23
  private readonly environnementPath;
24
24
  private serverListenEvent;
25
25
  private translateWebAppCoreLanguageLoader;
26
+ private static dependenciesRegistered;
26
27
  constructor(app: express.Application, loggerConfig: LoggerCore, localLanguage: string, environnementPath: any, corsOriginOptions?: Partial<CorsOptions>);
27
- onStartServer(routers: TFeatureRoutes[], dbConnexion: (envPath: any, optionalArgumentConnection?: string | any) => void, dependenciesProvider?: TDependency[]): any;
28
+ static registerDependencies(dependencies: Map<TDependencyKey, any>): void;
29
+ onStartServer(routers: TFeatureRoutes[], dependenciesProvider?: TDependency[]): any;
28
30
  onListeningOnServerEvent(serverWeb: Server): void;
29
31
  onRequestOnServerEvent(serverWeb: Server): void;
30
32
  private registerRoutes;
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // src/core/webServer.core.ts
2
- import * as path2 from "path";
3
- import process4 from "node:process";
2
+ import * as path3 from "path";
3
+ import process5 from "node:process";
4
4
  import corsOrigin from "cors";
5
5
  import {
6
6
  CEventNameError as eventName2,
@@ -69,15 +69,15 @@ function eventProcessHandler(localeLanguage) {
69
69
  }
70
70
 
71
71
  // src/application/service/core.service.ts
72
- import process3 from "node:process";
72
+ import process4 from "node:process";
73
73
  import chalk from "chalk";
74
- import * as path from "path";
74
+ import * as path2 from "path";
75
75
  import * as fs from "fs";
76
76
  import colors3 from "ansi-colors";
77
77
  import { HttpStatusCode as status } from "opticore-http-response";
78
- import { TranslationLoader as TranslationLoader2 } from "opticore-translator";
78
+ import { TranslationLoader as TranslationLoader3 } from "opticore-translator";
79
79
  import { getEnvironnementValue as getEnvironnementValue2 } from "opticore-env-access";
80
- import { LoggerCore } from "opticore-logger";
80
+ import { LoggerCore as LoggerCore2 } from "opticore-logger";
81
81
 
82
82
  // src/core/helpers/modulesLoaded.utils.ts
83
83
  import colors2 from "ansi-colors";
@@ -155,6 +155,38 @@ var loggerConfig = (envDir) => {
155
155
  };
156
156
  };
157
157
 
158
+ // src/core/config/loaders/translateLanguage.loader.ts
159
+ import path from "path";
160
+ import { createRequire } from "module";
161
+ import { TranslationLoader as TranslationLoader2 } from "opticore-translator";
162
+
163
+ // src/application/service/logger.service.ts
164
+ import { LoggerCore } from "opticore-logger";
165
+ var SLogger = () => {
166
+ return new LoggerCore();
167
+ };
168
+
169
+ // src/core/config/loaders/translateLanguage.loader.ts
170
+ import { HttpStatusCode } from "opticore-http-response";
171
+ var TranslateWebAppCoreLanguageLoader = class {
172
+ translateLanguageLoader(localLang) {
173
+ try {
174
+ const require2 = createRequire(import.meta.url);
175
+ const packagePath = path.dirname(require2.resolve("opticore-webapp"));
176
+ const translateMsgJsonFilePath = path.join(packagePath, "utils", "translations");
177
+ TranslationLoader2.loadTranslations(translateMsgJsonFilePath);
178
+ } catch (error) {
179
+ SLogger().error(
180
+ TranslationLoader2.t(error.message, localLang),
181
+ TranslationLoader2.t("readdir", localLang),
182
+ TranslationLoader2.t("ENOENT:NoSuchFileOrDir", localLang),
183
+ error.stack,
184
+ HttpStatusCode.INTERNAL_SERVER_ERROR
185
+ );
186
+ }
187
+ }
188
+ };
189
+
158
190
  // src/core/helpers/container.utils.ts
159
191
  var Container = class {
160
192
  dependencies = /* @__PURE__ */ new Map();
@@ -177,6 +209,10 @@ function Inject(key) {
177
209
  return containerDependency.resolve(key);
178
210
  }
179
211
 
212
+ // src/utils/envPath.utils.ts
213
+ import process3 from "process";
214
+ var envPath = process3.cwd() + "/config/env/.env";
215
+
180
216
  // src/application/service/core.service.ts
181
217
  var CoreService = class {
182
218
  loggerConfig;
@@ -184,8 +220,9 @@ var CoreService = class {
184
220
  environnementPath;
185
221
  translateWebAppCoreLanguageLoader;
186
222
  constructor(localLang, environnementPath) {
223
+ containerDependency.register("TranslateWebAppCoreLanguageLoader", new TranslateWebAppCoreLanguageLoader());
187
224
  this.translateWebAppCoreLanguageLoader = Inject("TranslateWebAppCoreLanguageLoader");
188
- this.loggerConfig = new LoggerCore(loggerConfig(environnementPath));
225
+ this.loggerConfig = new LoggerCore2(loggerConfig(environnementPath));
189
226
  this.environnementPath = environnementPath;
190
227
  this.localLanguage = localLang;
191
228
  }
@@ -203,7 +240,7 @@ var CoreService = class {
203
240
  * Returns an Object containing a node version, openssl, and v0
204
241
  */
205
242
  getVersions() {
206
- const { node, openssl, v8 } = process3.versions;
243
+ const { node, openssl, v8 } = process4.versions;
207
244
  const data = {
208
245
  "node version": node,
209
246
  "openssl": openssl,
@@ -224,33 +261,33 @@ var CoreService = class {
224
261
  */
225
262
  getUsageMemory() {
226
263
  this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
227
- const memoryData = process3.memoryUsage();
264
+ const memoryData = process4.memoryUsage();
228
265
  const data = {
229
- [TranslationLoader2.t("totalMemoryAllocated", this.localLanguage)]: this.formatMemoryUsage(memoryData.rss),
230
- [TranslationLoader2.t("sizeAllocatedHeap", this.localLanguage)]: this.formatMemoryUsage(memoryData.heapTotal),
231
- [TranslationLoader2.t("memoryUsedExecution", this.localLanguage)]: this.formatMemoryUsage(memoryData.heapUsed),
232
- [TranslationLoader2.t("externalMemory", this.localLanguage)]: this.formatMemoryUsage(memoryData.external),
233
- [TranslationLoader2.t("memoryUsageUser", this.localLanguage)]: this.formatMemoryUsage(process3.cpuUsage().user),
234
- [TranslationLoader2.t("memoryUsageSystem", this.localLanguage)]: this.formatMemoryUsage(process3.cpuUsage().system)
266
+ [TranslationLoader3.t("totalMemoryAllocated", this.localLanguage)]: this.formatMemoryUsage(memoryData.rss),
267
+ [TranslationLoader3.t("sizeAllocatedHeap", this.localLanguage)]: this.formatMemoryUsage(memoryData.heapTotal),
268
+ [TranslationLoader3.t("memoryUsedExecution", this.localLanguage)]: this.formatMemoryUsage(memoryData.heapUsed),
269
+ [TranslationLoader3.t("externalMemory", this.localLanguage)]: this.formatMemoryUsage(memoryData.external),
270
+ [TranslationLoader3.t("memoryUsageUser", this.localLanguage)]: this.formatMemoryUsage(process4.cpuUsage().user),
271
+ [TranslationLoader3.t("memoryUsageSystem", this.localLanguage)]: this.formatMemoryUsage(process4.cpuUsage().system)
235
272
  };
236
273
  return {
237
- "rss": data[TranslationLoader2.t("totalMemoryAllocated", this.localLanguage)],
238
- "heapTotal": data[TranslationLoader2.t("sizeAllocatedHeap", this.localLanguage)],
239
- "heapUsed": data[TranslationLoader2.t("memoryUsedExecution", this.localLanguage)],
240
- "external": data[TranslationLoader2.t("externalMemory", this.localLanguage)],
241
- "user": data[TranslationLoader2.t("memoryUsageUser", this.localLanguage)],
242
- "system": data[TranslationLoader2.t("memoryUsageSystem", this.localLanguage)]
274
+ "rss": data[TranslationLoader3.t("totalMemoryAllocated", this.localLanguage)],
275
+ "heapTotal": data[TranslationLoader3.t("sizeAllocatedHeap", this.localLanguage)],
276
+ "heapUsed": data[TranslationLoader3.t("memoryUsedExecution", this.localLanguage)],
277
+ "external": data[TranslationLoader3.t("externalMemory", this.localLanguage)],
278
+ "user": data[TranslationLoader3.t("memoryUsageUser", this.localLanguage)],
279
+ "system": data[TranslationLoader3.t("memoryUsageSystem", this.localLanguage)]
243
280
  };
244
281
  }
245
282
  /**
246
283
  * Return an Object containing a project path and running server time
247
284
  */
248
285
  getProjectInfo() {
249
- const startTime = process3.hrtime();
250
- const endTime = process3.hrtime(startTime);
286
+ const startTime = process4.hrtime();
287
+ const endTime = process4.hrtime(startTime);
251
288
  const executionTime = (endTime[0] * 1e9 + endTime[1]) / 1e6;
252
289
  return {
253
- "projectPath": path.join(process3.cwd()),
290
+ "projectPath": path2.join(process4.cwd()),
254
291
  "startingTime": `${executionTime.toFixed(5)} ms`
255
292
  };
256
293
  }
@@ -262,7 +299,7 @@ var CoreService = class {
262
299
  * Return void
263
300
  */
264
301
  getEnvFileLoading(filePath) {
265
- const fullPath = path.resolve(process3.cwd(), filePath);
302
+ const fullPath = path2.resolve(process4.cwd(), filePath);
266
303
  if (fs.existsSync(fullPath)) {
267
304
  const env = fs.readFileSync(fullPath, "utf-8");
268
305
  const lines = env.split("\n");
@@ -270,7 +307,7 @@ var CoreService = class {
270
307
  const match = line.match(/^([^#=]+)=([^#]+)$/);
271
308
  if (match) {
272
309
  const key = match[1].trim();
273
- process3.env[key] = match[2].trim();
310
+ process4.env[key] = match[2].trim();
274
311
  }
275
312
  });
276
313
  }
@@ -285,12 +322,14 @@ var CoreService = class {
285
322
  getServerRunningMode(development, production) {
286
323
  this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
287
324
  this.getEnvFileLoading(".env");
288
- const env = getEnvironnementValue2(path.join(process3.cwd(), "config", "env"));
289
- const isDevelopment = env.devEnv === development && env.prodEnv === void 0 || env.devEnv === development && env.prodEnv === "";
325
+ const env = getEnvironnementValue2(path2.join(envPath));
326
+ const isDevelopment = env.devEnv === development && env.prodEnv === "";
290
327
  if (isDevelopment) {
291
- return `${TranslationLoader2.t("serverRunning", this.localLanguage)} ${colors3.bgBlue(`${colors3.bold(`${development}`)}`)} mode`;
328
+ return `${TranslationLoader3.t("serverRunning", this.localLanguage)} ${colors3.bgBlue(`${colors3.bold(`${development}`)}`)} mode`;
329
+ } else if (!isDevelopment) {
330
+ return `${TranslationLoader3.t("serverRunning", this.localLanguage)} ${colors3.bgBlue(`${colors3.bold(`${production}`)}`)} mode`;
292
331
  } else {
293
- return `${TranslationLoader2.t("serverRunning", this.localLanguage)} ${colors3.bgBlue(`${colors3.bold(`${production}`)}`)} mode`;
332
+ return `${TranslationLoader3.t("serverRunning", this.localLanguage)} ${colors3.bgBlue(`${colors3.bold(`${development}`)}`)} mode`;
294
333
  }
295
334
  }
296
335
  infoServer(nodeVersion, startingTime, host, port) {
@@ -298,15 +337,16 @@ var CoreService = class {
298
337
  const getEnvironnement = getEnvironnementValue2(this.environnementPath);
299
338
  const msg5 = getEnvironnement.protocolTransfert === "" ? `${colors3.underline(`http://${host}:${port}`)}` : `${colors3.underline(`${getEnvironnement.protocolTransfert}://${host}:${port}`)}`;
300
339
  const messages = [
301
- TranslationLoader2.t("webServerListening", this.localLanguage),
302
- TranslationLoader2.t("webServerUsingNodeVersion", this.localLanguage),
303
- TranslationLoader2.t("startTime", this.localLanguage),
304
- this.getServerRunningMode(TranslationLoader2.t("runningModeDev", this.localLanguage), TranslationLoader2.t("runningModeProd", this.localLanguage)),
340
+ TranslationLoader3.t("webServerListening", this.localLanguage),
341
+ TranslationLoader3.t("webServerUsingNodeVersion", this.localLanguage, { nodeVersion: this.getVersions().nodeVersion }),
342
+ TranslationLoader3.t("startTime", this.localLanguage, { startTime: this.getProjectInfo().startingTime }),
343
+ this.getServerRunningMode(TranslationLoader3.t("runningModeDev", this.localLanguage), TranslationLoader3.t("runningModeProd", this.localLanguage)),
305
344
  msg5
306
345
  ];
307
346
  const maxLength = Math.max(...messages.map((m) => {
308
347
  return m.replace(/\u001b\[[0-9]{1,2}m/g, "").length;
309
348
  })) + 4;
349
+ console.log(chalk.blackBright(`Tailing Web Server log file (${path2.join(path2.basename(process4.cwd()), "logs", "app.log")})`));
310
350
  const border = chalk.bgGreen.white(" ".repeat(maxLength));
311
351
  console.log(border);
312
352
  messages.forEach((msg) => {
@@ -315,6 +355,7 @@ var CoreService = class {
315
355
  console.log(chalk.bgGreen.white(` ${msg}${" ".repeat(padding)} `));
316
356
  });
317
357
  console.log(border);
358
+ console.log("\n");
318
359
  }
319
360
  coreListenerEventLoaderModuleService(kernelModule) {
320
361
  this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
@@ -334,8 +375,8 @@ var CoreService = class {
334
375
  })();
335
376
  } else {
336
377
  const stackTrace = STraceError(
337
- TranslationLoader2.t("loadedModulesError", this.localLanguage),
338
- TranslationLoader2.t("loadedModules", this.localLanguage),
378
+ TranslationLoader3.t("loadedModulesError", this.localLanguage),
379
+ TranslationLoader3.t("loadedModules", this.localLanguage),
339
380
  status.NOT_ACCEPTABLE,
340
381
  true
341
382
  );
@@ -349,27 +390,19 @@ import {
349
390
  CCodeError,
350
391
  CErrorName
351
392
  } from "opticore-catch-exception-error";
352
-
353
- // src/application/service/logger.service.ts
354
- import { LoggerCore as LoggerCore2 } from "opticore-logger";
355
- var SLogger = () => {
356
- return new LoggerCore2();
357
- };
358
-
359
- // src/application/service/serverStartError.service.ts
360
- import { HttpStatusCode } from "opticore-http-response";
393
+ import { HttpStatusCode as HttpStatusCode2 } from "opticore-http-response";
361
394
  var SServerStartError = (err) => {
362
395
  if (err.name) {
363
396
  for (const [key, code] of Object.entries(CErrorName)) {
364
397
  if (err.name === code) {
365
- SLogger().error(err.message, code, code, err.stack, HttpStatusCode.INTERNAL_SERVER_ERROR);
398
+ SLogger().error(err.message, code, code, err.stack, HttpStatusCode2.INTERNAL_SERVER_ERROR);
366
399
  break;
367
400
  }
368
401
  }
369
402
  } else {
370
403
  for (const [key, code] of Object.entries(CCodeError)) {
371
404
  if (err.code === code) {
372
- SLogger().error(err.message, code, key, err.stack, HttpStatusCode.INTERNAL_SERVER_ERROR);
405
+ SLogger().error(err.message, code, key, err.stack, HttpStatusCode2.INTERNAL_SERVER_ERROR);
373
406
  break;
374
407
  }
375
408
  }
@@ -379,8 +412,9 @@ var SServerStartError = (err) => {
379
412
  // src/core/webServer.core.ts
380
413
  import { requestCallsEvent } from "opticore-request-call-event";
381
414
  import { SContainer } from "opticore-inject-dependency";
382
- import { HttpStatusCode as HttpStatusCode2 } from "opticore-http-response";
383
- import { TranslationLoader as TranslationLoader3 } from "opticore-translator";
415
+ import { HttpStatusCode as HttpStatusCode3 } from "opticore-http-response";
416
+ import { TranslationLoader as TranslationLoader4 } from "opticore-translator";
417
+ import { OptiCoreMySQLDriver } from "opticore-mysqldb";
384
418
  var WebServerCore = class {
385
419
  serverUtility;
386
420
  expressApp = express2();
@@ -391,7 +425,9 @@ var WebServerCore = class {
391
425
  environnementPath;
392
426
  serverListenEvent;
393
427
  translateWebAppCoreLanguageLoader;
428
+ static dependenciesRegistered = false;
394
429
  constructor(app, loggerConfig2, localLanguage, environnementPath, corsOriginOptions) {
430
+ containerDependency.register("TranslateWebAppCoreLanguageLoader", new TranslateWebAppCoreLanguageLoader());
395
431
  this.translateWebAppCoreLanguageLoader = Inject("TranslateWebAppCoreLanguageLoader");
396
432
  this.translateWebAppCoreLanguageLoader.translateLanguageLoader(localLanguage);
397
433
  this.stackTraceErrorHandling(localLanguage);
@@ -408,8 +444,17 @@ var WebServerCore = class {
408
444
  this.serverListenEvent = new ServerListenEventError2(localLanguage);
409
445
  this.serverUtility = new CoreService(localLanguage, environnementPath);
410
446
  }
411
- onStartServer(routers, dbConnexion, dependenciesProvider) {
447
+ static registerDependencies(dependencies) {
448
+ if (this.dependenciesRegistered) return;
449
+ containerDependency.register("TranslateWebAppCoreLanguageLoader", new TranslateWebAppCoreLanguageLoader());
450
+ dependencies.forEach((value, key) => {
451
+ containerDependency.register(key, value);
452
+ });
453
+ this.dependenciesRegistered = true;
454
+ }
455
+ onStartServer(routers, dependenciesProvider) {
412
456
  this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
457
+ const mySQL = new OptiCoreMySQLDriver(envPath, this.localLanguage);
413
458
  if (this.getEnvironnement.appHost === "" && Number(this.getEnvironnement.appPort) === 0) {
414
459
  this.serverListenEvent.hostPortUndefined(Number(this.getEnvironnement.appPort));
415
460
  } else if (this.getEnvironnement.appHost === "") {
@@ -418,20 +463,20 @@ var WebServerCore = class {
418
463
  this.serverListenEvent.portUndefined();
419
464
  } else if (this.localLanguage === "") {
420
465
  SLogger().error(
421
- TranslationLoader3.t("noDefaultLocalLang", this.localLanguage),
422
- TranslationLoader3.t("noLocalLang", this.localLanguage),
423
- TranslationLoader3.t("localLangMissing", this.localLanguage),
466
+ TranslationLoader4.t("noDefaultLocalLang", this.localLanguage),
467
+ TranslationLoader4.t("noLocalLang", this.localLanguage),
468
+ TranslationLoader4.t("localLangMissing", this.localLanguage),
424
469
  void 0,
425
- HttpStatusCode2.NOT_FOUND
470
+ HttpStatusCode3.NOT_FOUND
426
471
  );
427
472
  } else {
428
473
  return this.expressApp.listen(
429
474
  Number(this.getEnvironnement.appPort),
430
475
  () => {
431
476
  try {
432
- dbConnexion;
477
+ mySQL.databaseConnexionChecker(envPath, "");
433
478
  new SContainer(dependenciesProvider, this.localLanguage);
434
- this.expressApp.use(express2.static(path2.join(process4.cwd(), "public/template")));
479
+ this.expressApp.use(express2.static(path3.join(process5.cwd(), "public/template")));
435
480
  this.registerRoutes(routers);
436
481
  } catch (err) {
437
482
  SServerStartError(err);
@@ -486,14 +531,10 @@ var WebServerCore = class {
486
531
  }
487
532
  };
488
533
 
489
- // src/utils/envPath.utils.ts
490
- import process5 from "process";
491
- var envPath = process5.cwd() + "/config/env/.env";
492
-
493
534
  // src/utils/stopServer.utils.ts
494
535
  import dotenv from "dotenv";
495
536
  import { execSync } from "child_process";
496
- import { TranslationLoader as TranslationLoader4 } from "opticore-translator";
537
+ import { TranslationLoader as TranslationLoader5 } from "opticore-translator";
497
538
  var UStopServer = () => {
498
539
  dotenv.config();
499
540
  const port = process.env.PORT;
@@ -501,12 +542,12 @@ var UStopServer = () => {
501
542
  const pid = execSync(`lsof -i :${port} -t`, { encoding: "utf-8" }).trim();
502
543
  if (pid) {
503
544
  execSync(`kill ${pid}`);
504
- SLogger().success("serverPortKill", TranslationLoader4.t("serverPortKill", "en", { port }));
545
+ SLogger().success("serverPortKill", TranslationLoader5.t("serverPortKill", "en", { port }));
505
546
  } else {
506
- SLogger().warn("pidOnPortNotFound", TranslationLoader4.t("pidOnPortNotFound", "en", { port }));
547
+ SLogger().warn("pidOnPortNotFound", TranslationLoader5.t("pidOnPortNotFound", "en", { port }));
507
548
  }
508
549
  } catch (error) {
509
- SLogger().error("noProcessRunningOnPort", TranslationLoader4.t("noProcessRunningOnPort", "en", { port }));
550
+ SLogger().error("noProcessRunningOnPort", TranslationLoader5.t("noProcessRunningOnPort", "en", { port }));
510
551
  }
511
552
  };
512
553
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opticore-webapp",
3
- "version": "1.0.41",
3
+ "version": "1.0.43",
4
4
  "description": "wep server",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -35,6 +35,7 @@
35
35
  "opticore-http-response": "^1.0.3",
36
36
  "opticore-inject-dependency": "^1.0.6",
37
37
  "opticore-logger": "^1.0.15",
38
+ "opticore-mysqldb": "^1.0.20",
38
39
  "opticore-request-call-event": "^1.0.2",
39
40
  "opticore-router": "^1.0.11",
40
41
  "opticore-translator": "^1.0.10",