opticore-webapp 1.0.43 → 1.0.45

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
@@ -30,7 +30,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/index.ts
31
31
  var index_exports = {};
32
32
  __export(index_exports, {
33
- UStopServer: () => UStopServer,
34
33
  WebServer: () => WebServerCore,
35
34
  envPath: () => envPath
36
35
  });
@@ -197,29 +196,32 @@ var import_opticore_translator2 = require("opticore-translator");
197
196
 
198
197
  // src/application/service/logger.service.ts
199
198
  var import_opticore_logger = require("opticore-logger");
200
- var SLogger = () => {
201
- return new import_opticore_logger.LoggerCore();
199
+ var SLogger = (environnementPath) => {
200
+ return new import_opticore_logger.LoggerCore(loggerConfig(environnementPath));
202
201
  };
203
202
 
204
203
  // src/core/config/loaders/translateLanguage.loader.ts
205
204
  var import_opticore_http_response = require("opticore-http-response");
206
205
  var TranslateWebAppCoreLanguageLoader = class {
207
- translateLanguageLoader(localLang) {
206
+ translateLanguageLoader(localLang, environnementPath) {
208
207
  try {
209
208
  const require2 = (0, import_module.createRequire)(importMetaUrl);
210
209
  const packagePath = import_path.default.dirname(require2.resolve("opticore-webapp"));
211
210
  const translateMsgJsonFilePath = import_path.default.join(packagePath, "utils", "translations");
212
211
  import_opticore_translator2.TranslationLoader.loadTranslations(translateMsgJsonFilePath);
213
212
  } 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
- );
213
+ SLogger(environnementPath).error(this.handleError(error, localLang));
221
214
  }
222
215
  }
216
+ handleError(error, localLang) {
217
+ return {
218
+ message: import_opticore_translator2.TranslationLoader.t(error.message, localLang),
219
+ title: import_opticore_translator2.TranslationLoader.t("readdir", localLang),
220
+ errorType: import_opticore_translator2.TranslationLoader.t("ENOENT:NoSuchFileOrDir", localLang),
221
+ stackTrace: error.stack,
222
+ httpCodeValue: import_opticore_http_response.HttpStatusCode.INTERNAL_SERVER_ERROR
223
+ };
224
+ }
223
225
  };
224
226
 
225
227
  // src/core/helpers/container.utils.ts
@@ -295,7 +297,7 @@ var CoreService = class {
295
297
  * and Memory usage system
296
298
  */
297
299
  getUsageMemory() {
298
- this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
300
+ this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
299
301
  const memoryData = import_node_process2.default.memoryUsage();
300
302
  const data = {
301
303
  [import_opticore_translator3.TranslationLoader.t("totalMemoryAllocated", this.localLanguage)]: this.formatMemoryUsage(memoryData.rss),
@@ -311,7 +313,8 @@ var CoreService = class {
311
313
  "heapUsed": data[import_opticore_translator3.TranslationLoader.t("memoryUsedExecution", this.localLanguage)],
312
314
  "external": data[import_opticore_translator3.TranslationLoader.t("externalMemory", this.localLanguage)],
313
315
  "user": data[import_opticore_translator3.TranslationLoader.t("memoryUsageUser", this.localLanguage)],
314
- "system": data[import_opticore_translator3.TranslationLoader.t("memoryUsageSystem", this.localLanguage)]
316
+ "system": data[import_opticore_translator3.TranslationLoader.t("memoryUsageSystem", this.localLanguage)],
317
+ "pid": import_node_process2.default.pid
315
318
  };
316
319
  }
317
320
  /**
@@ -334,16 +337,26 @@ var CoreService = class {
334
337
  * Return void
335
338
  */
336
339
  getEnvFileLoading(filePath) {
337
- const fullPath = path2.resolve(import_node_process2.default.cwd(), filePath);
338
- if (fs.existsSync(fullPath)) {
339
- const env = fs.readFileSync(fullPath, "utf-8");
340
- const lines = env.split("\n");
341
- lines.forEach((line) => {
342
- const match = line.match(/^([^#=]+)=([^#]+)$/);
343
- if (match) {
344
- const key = match[1].trim();
345
- import_node_process2.default.env[key] = match[2].trim();
346
- }
340
+ try {
341
+ const fullPath = path2.resolve(import_node_process2.default.cwd(), filePath);
342
+ if (fs.existsSync(fullPath)) {
343
+ const env = fs.readFileSync(fullPath, "utf-8");
344
+ const lines = env.split("\n");
345
+ lines.forEach((line) => {
346
+ const match = line.match(/^([^#=]+)=([^#]+)$/);
347
+ if (match) {
348
+ const key = match[1].trim();
349
+ import_node_process2.default.env[key] = match[2].trim();
350
+ }
351
+ });
352
+ }
353
+ } catch (err) {
354
+ SLogger(this.environnementPath).error({
355
+ message: err.message,
356
+ title: "EnvFileLoading",
357
+ errorType: err.code,
358
+ stackTrace: err.stack,
359
+ httpCodeValue: import_opticore_http_response2.HttpStatusCode.INTERNAL_SERVER_ERROR
347
360
  });
348
361
  }
349
362
  }
@@ -355,45 +368,64 @@ var CoreService = class {
355
368
  * Return string
356
369
  */
357
370
  getServerRunningMode(development, production) {
358
- this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
359
- this.getEnvFileLoading(".env");
360
- const env = (0, import_opticore_env_access2.getEnvironnementValue)(path2.join(envPath));
361
- const isDevelopment = env.devEnv === development && env.prodEnv === "";
362
- if (isDevelopment) {
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`;
366
- } else {
367
- return `${import_opticore_translator3.TranslationLoader.t("serverRunning", this.localLanguage)} ${import_ansi_colors3.default.bgBlue(`${import_ansi_colors3.default.bold(`${development}`)}`)} mode`;
371
+ try {
372
+ this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
373
+ this.getEnvFileLoading(".env");
374
+ const env = (0, import_opticore_env_access2.getEnvironnementValue)(path2.join(envPath));
375
+ const isDevelopment = env.devEnv === development && env.prodEnv === "";
376
+ if (isDevelopment) {
377
+ return `${import_opticore_translator3.TranslationLoader.t("serverRunning", this.localLanguage)} ${import_ansi_colors3.default.bgBlue(`${import_ansi_colors3.default.bold(`${development}`)}`)} mode`;
378
+ } else if (!isDevelopment) {
379
+ return `${import_opticore_translator3.TranslationLoader.t("serverRunning", this.localLanguage)} ${import_ansi_colors3.default.bgBlue(`${import_ansi_colors3.default.bold(`${production}`)}`)} mode`;
380
+ } else {
381
+ return `${import_opticore_translator3.TranslationLoader.t("serverRunning", this.localLanguage)} ${import_ansi_colors3.default.bgBlue(`${import_ansi_colors3.default.bold(`${development}`)}`)} mode`;
382
+ }
383
+ } catch (err) {
384
+ SLogger(this.environnementPath).error({
385
+ message: err.message,
386
+ title: "serverRunning mode",
387
+ errorType: err.code,
388
+ stackTrace: err.stack,
389
+ httpCodeValue: import_opticore_http_response2.HttpStatusCode.INTERNAL_SERVER_ERROR
390
+ });
368
391
  }
369
392
  }
370
393
  infoServer(nodeVersion, startingTime, host, port) {
371
- this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
372
- const getEnvironnement = (0, import_opticore_env_access2.getEnvironnementValue)(this.environnementPath);
373
- const msg5 = getEnvironnement.protocolTransfert === "" ? `${import_ansi_colors3.default.underline(`http://${host}:${port}`)}` : `${import_ansi_colors3.default.underline(`${getEnvironnement.protocolTransfert}://${host}:${port}`)}`;
374
- const messages = [
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)),
379
- msg5
380
- ];
381
- const maxLength = Math.max(...messages.map((m) => {
382
- return m.replace(/\u001b\[[0-9]{1,2}m/g, "").length;
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")})`));
385
- const border = import_chalk.default.bgGreen.white(" ".repeat(maxLength));
386
- console.log(border);
387
- messages.forEach((msg) => {
388
- const cleanLength = msg.replace(/\u001b\[[0-9]{1,2}m/g, "").length;
389
- const padding = maxLength - cleanLength - 2;
390
- console.log(import_chalk.default.bgGreen.white(` ${msg}${" ".repeat(padding)} `));
391
- });
392
- console.log(border);
393
- console.log("\n");
394
+ try {
395
+ this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
396
+ const getEnvironnement = (0, import_opticore_env_access2.getEnvironnementValue)(this.environnementPath);
397
+ const msg5 = getEnvironnement.protocolTransfert === "" ? `${import_ansi_colors3.default.underline(`http://${host}:${port}`)}` : `${import_ansi_colors3.default.underline(`${getEnvironnement.protocolTransfert}://${host}:${port}`)}`;
398
+ const messages = [
399
+ import_opticore_translator3.TranslationLoader.t("webServerListening", this.localLanguage),
400
+ import_opticore_translator3.TranslationLoader.t("webServerUsingNodeVersion", this.localLanguage, { nodeVersion: this.getVersions().nodeVersion }),
401
+ import_opticore_translator3.TranslationLoader.t("startTime", this.localLanguage, { startTime: this.getProjectInfo().startingTime }),
402
+ this.getServerRunningMode(import_opticore_translator3.TranslationLoader.t("runningModeDev", this.localLanguage), import_opticore_translator3.TranslationLoader.t("runningModeProd", this.localLanguage))
403
+ ];
404
+ const maxLength = Math.max(...messages.map((m) => {
405
+ return m.replace(/\u001b\[[0-9]{1,2}m/g, "").length;
406
+ })) + 4;
407
+ console.log(import_chalk.default.blackBright(`Tailing Web Server log file (${path2.join(path2.basename(import_node_process2.default.cwd()), "logs", "app.log")})`));
408
+ const border = import_chalk.default.bgGreen.white(" ".repeat(maxLength));
409
+ console.log(border);
410
+ messages.forEach((msg) => {
411
+ const cleanLength = msg.replace(/\u001b\[[0-9]{1,2}m/g, "").length;
412
+ const padding = maxLength - cleanLength - 2;
413
+ console.log(import_chalk.default.bgGreen.white(` ${msg}${" ".repeat(padding)} `));
414
+ });
415
+ console.log(border);
416
+ console.log("\n");
417
+ } catch (err) {
418
+ SLogger(this.environnementPath).error({
419
+ message: err.message,
420
+ title: "server",
421
+ errorType: err.code,
422
+ stackTrace: err.stack,
423
+ httpCodeValue: import_opticore_http_response2.HttpStatusCode.INTERNAL_SERVER_ERROR
424
+ });
425
+ }
394
426
  }
395
427
  coreListenerEventLoaderModuleService(kernelModule) {
396
- this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
428
+ this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
397
429
  let router = [];
398
430
  let dbCon;
399
431
  kernelModule.forEach((module2) => {
@@ -423,18 +455,30 @@ var CoreService = class {
423
455
  // src/application/service/serverStartError.service.ts
424
456
  var import_opticore_catch_exception_error3 = require("opticore-catch-exception-error");
425
457
  var import_opticore_http_response3 = require("opticore-http-response");
426
- var SServerStartError = (err) => {
458
+ var SServerStartError = (err, environnementPath) => {
427
459
  if (err.name) {
428
460
  for (const [key, code] of Object.entries(import_opticore_catch_exception_error3.CErrorName)) {
429
461
  if (err.name === code) {
430
- SLogger().error(err.message, code, code, err.stack, import_opticore_http_response3.HttpStatusCode.INTERNAL_SERVER_ERROR);
462
+ SLogger(environnementPath).error({
463
+ message: err.message,
464
+ title: code,
465
+ errorType: code,
466
+ stackTrace: err.stack,
467
+ httpCodeValue: import_opticore_http_response3.HttpStatusCode.INTERNAL_SERVER_ERROR
468
+ });
431
469
  break;
432
470
  }
433
471
  }
434
472
  } else {
435
473
  for (const [key, code] of Object.entries(import_opticore_catch_exception_error3.CCodeError)) {
436
474
  if (err.code === code) {
437
- SLogger().error(err.message, code, key, err.stack, import_opticore_http_response3.HttpStatusCode.INTERNAL_SERVER_ERROR);
475
+ SLogger(environnementPath).error({
476
+ message: err.message,
477
+ title: code,
478
+ errorType: key,
479
+ stackTrace: err.stack,
480
+ httpCodeValue: import_opticore_http_response3.HttpStatusCode.INTERNAL_SERVER_ERROR
481
+ });
438
482
  break;
439
483
  }
440
484
  }
@@ -457,11 +501,11 @@ var WebServerCore = class {
457
501
  environnementPath;
458
502
  serverListenEvent;
459
503
  translateWebAppCoreLanguageLoader;
460
- static dependenciesRegistered = false;
504
+ dependenciesRegistered = false;
461
505
  constructor(app, loggerConfig2, localLanguage, environnementPath, corsOriginOptions) {
462
506
  containerDependency.register("TranslateWebAppCoreLanguageLoader", new TranslateWebAppCoreLanguageLoader());
463
507
  this.translateWebAppCoreLanguageLoader = Inject("TranslateWebAppCoreLanguageLoader");
464
- this.translateWebAppCoreLanguageLoader.translateLanguageLoader(localLanguage);
508
+ this.translateWebAppCoreLanguageLoader.translateLanguageLoader(localLanguage, environnementPath);
465
509
  this.stackTraceErrorHandling(localLanguage);
466
510
  this.getEnvironnement = (0, import_opticore_env_access3.getEnvironnementValue)(environnementPath);
467
511
  this.routerExpressApp = app;
@@ -476,49 +520,59 @@ var WebServerCore = class {
476
520
  this.serverListenEvent = new import_opticore_catch_exception_error4.ServerListenEventError(localLanguage);
477
521
  this.serverUtility = new CoreService(localLanguage, environnementPath);
478
522
  }
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;
523
+ registerDependencies(dependencies) {
524
+ try {
525
+ if (this.dependenciesRegistered) return;
526
+ containerDependency.register("TranslateWebAppCoreLanguageLoader", new TranslateWebAppCoreLanguageLoader());
527
+ dependencies.forEach((value, key) => {
528
+ containerDependency.register(key, value);
529
+ });
530
+ this.dependenciesRegistered = true;
531
+ } catch (err) {
532
+ SLogger(this.environnementPath).error({
533
+ message: err.message,
534
+ title: "Register Dependencies",
535
+ errorType: err.code,
536
+ stackTrace: err.stack,
537
+ httpCodeValue: import_opticore_http_response4.HttpStatusCode.INTERNAL_SERVER_ERROR
538
+ });
539
+ }
486
540
  }
487
541
  onStartServer(routers, dependenciesProvider) {
488
- this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
489
- const mySQL = new import_opticore_mysqldb.OptiCoreMySQLDriver(envPath, this.localLanguage);
490
- if (this.getEnvironnement.appHost === "" && Number(this.getEnvironnement.appPort) === 0) {
542
+ this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
543
+ const mySQL = new import_opticore_mysqldb.OptiCoreMySQLDriver(this.getEnvironnement, this.localLanguage);
544
+ if (this.getEnvironnement.appPort === "" && Number(this.getEnvironnement.appPort) === 0) {
491
545
  this.serverListenEvent.hostPortUndefined(Number(this.getEnvironnement.appPort));
492
546
  } else if (this.getEnvironnement.appHost === "") {
493
547
  this.serverListenEvent.hostUndefined(this.getEnvironnement.appHost);
494
548
  } else if (Number(this.getEnvironnement.appPort) === 0) {
495
549
  this.serverListenEvent.portUndefined();
496
550
  } else if (this.localLanguage === "") {
497
- SLogger().error(
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),
501
- void 0,
502
- import_opticore_http_response4.HttpStatusCode.NOT_FOUND
503
- );
551
+ SLogger(this.environnementPath).error({
552
+ message: import_opticore_translator4.TranslationLoader.t("noDefaultLocalLang", this.localLanguage),
553
+ title: import_opticore_translator4.TranslationLoader.t("noLocalLang", this.localLanguage),
554
+ errorType: import_opticore_translator4.TranslationLoader.t("localLangMissing", this.localLanguage),
555
+ stackTrace: void 0,
556
+ httpCodeValue: import_opticore_http_response4.HttpStatusCode.NOT_FOUND
557
+ });
504
558
  } else {
505
559
  return this.expressApp.listen(
506
560
  Number(this.getEnvironnement.appPort),
507
561
  () => {
508
562
  try {
509
- mySQL.databaseConnexionChecker(envPath, "");
563
+ mySQL.databaseConnexionChecker(this.getEnvironnement);
510
564
  new import_opticore_inject_dependency.SContainer(dependenciesProvider, this.localLanguage);
511
565
  this.expressApp.use(import_opticore_express2.express.static(path3.join(import_node_process3.default.cwd(), "public/template")));
512
566
  this.registerRoutes(routers);
513
567
  } catch (err) {
514
- SServerStartError(err);
568
+ SServerStartError(err, this.environnementPath);
515
569
  }
516
570
  }
517
571
  );
518
572
  }
519
573
  }
520
574
  onListeningOnServerEvent(serverWeb) {
521
- this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
575
+ this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
522
576
  serverWeb.on(import_opticore_catch_exception_error4.CEventNameError.error, (err) => {
523
577
  this.serverListenEvent.onEventError(err);
524
578
  }).on(import_opticore_catch_exception_error4.CEventNameError.close, () => {
@@ -530,7 +584,7 @@ var WebServerCore = class {
530
584
  });
531
585
  }
532
586
  onRequestOnServerEvent(serverWeb) {
533
- this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
587
+ this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
534
588
  serverWeb.on(import_opticore_catch_exception_error4.CEventNameError.request, (req, res) => {
535
589
  (0, import_opticore_request_call_event.requestCallsEvent)(
536
590
  req,
@@ -562,29 +616,8 @@ var WebServerCore = class {
562
616
  );
563
617
  }
564
618
  };
565
-
566
- // src/utils/stopServer.utils.ts
567
- var import_dotenv = __toESM(require("dotenv"), 1);
568
- var import_child_process = require("child_process");
569
- var import_opticore_translator5 = require("opticore-translator");
570
- var UStopServer = () => {
571
- import_dotenv.default.config();
572
- const port = process.env.PORT;
573
- try {
574
- const pid = (0, import_child_process.execSync)(`lsof -i :${port} -t`, { encoding: "utf-8" }).trim();
575
- if (pid) {
576
- (0, import_child_process.execSync)(`kill ${pid}`);
577
- SLogger().success("serverPortKill", import_opticore_translator5.TranslationLoader.t("serverPortKill", "en", { port }));
578
- } else {
579
- SLogger().warn("pidOnPortNotFound", import_opticore_translator5.TranslationLoader.t("pidOnPortNotFound", "en", { port }));
580
- }
581
- } catch (error) {
582
- SLogger().error("noProcessRunningOnPort", import_opticore_translator5.TranslationLoader.t("noProcessRunningOnPort", "en", { port }));
583
- }
584
- };
585
619
  // Annotate the CommonJS export names for ESM import in node:
586
620
  0 && (module.exports = {
587
- UStopServer,
588
621
  WebServer,
589
622
  envPath
590
623
  });
package/dist/index.d.cts CHANGED
@@ -23,9 +23,9 @@ declare class WebServerCore {
23
23
  private readonly environnementPath;
24
24
  private serverListenEvent;
25
25
  private translateWebAppCoreLanguageLoader;
26
- private static dependenciesRegistered;
26
+ private dependenciesRegistered;
27
27
  constructor(app: express.Application, loggerConfig: LoggerCore, localLanguage: string, environnementPath: any, corsOriginOptions?: Partial<CorsOptions>);
28
- static registerDependencies(dependencies: Map<TDependencyKey, any>): void;
28
+ registerDependencies(dependencies: Map<TDependencyKey, any>): void;
29
29
  onStartServer(routers: TFeatureRoutes[], dependenciesProvider?: TDependency[]): any;
30
30
  onListeningOnServerEvent(serverWeb: Server): void;
31
31
  onRequestOnServerEvent(serverWeb: Server): void;
@@ -36,12 +36,10 @@ declare class WebServerCore {
36
36
 
37
37
  declare const envPath: string;
38
38
 
39
- declare const UStopServer: () => void;
40
-
41
39
  type TFeatureRouteDefinition = {
42
40
  featureRoute: IRouteDefinition[];
43
41
  };
44
42
 
45
43
  type KernelModuleType = [TFeatureRouteDefinition[], () => void];
46
44
 
47
- export { type IRouteDefinition, type KernelModuleType, type TFeatureRoutes, UStopServer, WebServerCore as WebServer, envPath };
45
+ export { type IRouteDefinition, type KernelModuleType, type TFeatureRoutes, WebServerCore as WebServer, envPath };
package/dist/index.d.ts CHANGED
@@ -23,9 +23,9 @@ declare class WebServerCore {
23
23
  private readonly environnementPath;
24
24
  private serverListenEvent;
25
25
  private translateWebAppCoreLanguageLoader;
26
- private static dependenciesRegistered;
26
+ private dependenciesRegistered;
27
27
  constructor(app: express.Application, loggerConfig: LoggerCore, localLanguage: string, environnementPath: any, corsOriginOptions?: Partial<CorsOptions>);
28
- static registerDependencies(dependencies: Map<TDependencyKey, any>): void;
28
+ registerDependencies(dependencies: Map<TDependencyKey, any>): void;
29
29
  onStartServer(routers: TFeatureRoutes[], dependenciesProvider?: TDependency[]): any;
30
30
  onListeningOnServerEvent(serverWeb: Server): void;
31
31
  onRequestOnServerEvent(serverWeb: Server): void;
@@ -36,12 +36,10 @@ declare class WebServerCore {
36
36
 
37
37
  declare const envPath: string;
38
38
 
39
- declare const UStopServer: () => void;
40
-
41
39
  type TFeatureRouteDefinition = {
42
40
  featureRoute: IRouteDefinition[];
43
41
  };
44
42
 
45
43
  type KernelModuleType = [TFeatureRouteDefinition[], () => void];
46
44
 
47
- export { type IRouteDefinition, type KernelModuleType, type TFeatureRoutes, UStopServer, WebServerCore as WebServer, envPath };
45
+ export { type IRouteDefinition, type KernelModuleType, type TFeatureRoutes, WebServerCore as WebServer, envPath };
package/dist/index.js CHANGED
@@ -1,16 +1,13 @@
1
1
  // src/core/webServer.core.ts
2
2
  import * as path3 from "path";
3
- import process5 from "node:process";
3
+ import process4 from "node:process";
4
4
  import corsOrigin from "cors";
5
- import {
6
- CEventNameError as eventName2,
7
- ServerListenEventError as ServerListenEventError2
8
- } from "opticore-catch-exception-error";
5
+ import { CEventNameError as eventName2, ServerListenEventError as ServerListenEventError2 } from "opticore-catch-exception-error";
9
6
  import { express as express2 } from "opticore-express";
10
7
  import { getEnvironnementValue as getEnvironnementValue3 } from "opticore-env-access";
11
8
 
12
9
  // src/core/handlers/eventProcess.handler.ts
13
- import process2 from "node:process";
10
+ import process from "node:process";
14
11
  import EventEmitter from "node:events";
15
12
  import { express } from "opticore-express";
16
13
  import {
@@ -25,42 +22,42 @@ function eventProcessHandler(localeLanguage) {
25
22
  errorEmitter.on(eventName.error, (error) => {
26
23
  serverListenEvent.listenerError(error);
27
24
  });
28
- process2.on(event.beforeExit, (code) => {
25
+ process.on(event.beforeExit, (code) => {
29
26
  setTimeout(() => {
30
27
  serverListenEvent.processBeforeExit(code);
31
28
  }, 100);
32
29
  });
33
- process2.on(event.disconnect, () => {
30
+ process.on(event.disconnect, () => {
34
31
  serverListenEvent.processDisconnected();
35
32
  });
36
- process2.on(event.exit, (code) => {
33
+ process.on(event.exit, (code) => {
37
34
  serverListenEvent.exited(code);
38
35
  });
39
- process2.on(event.rejectionHandled, (promise) => {
36
+ process.on(event.rejectionHandled, (promise) => {
40
37
  serverListenEvent.promiseRejectionHandled(promise);
41
38
  });
42
- process2.on(event.uncaughtException, (error) => {
39
+ process.on(event.uncaughtException, (error) => {
43
40
  serverListenEvent.uncaughtException(error);
44
41
  });
45
- process2.on(event.uncaughtExceptionMonitor, (error) => {
42
+ process.on(event.uncaughtExceptionMonitor, (error) => {
46
43
  serverListenEvent.uncaughtExceptionMonitor(error);
47
44
  });
48
- process2.on(event.unhandledRejection, (reason, promise) => {
45
+ process.on(event.unhandledRejection, (reason, promise) => {
49
46
  serverListenEvent.unhandledRejection(reason, promise);
50
47
  });
51
- process2.on(event.warning, (warning) => {
48
+ process.on(event.warning, (warning) => {
52
49
  serverListenEvent.warning(warning);
53
50
  });
54
- process2.on(event.message, (message) => {
51
+ process.on(event.message, (message) => {
55
52
  serverListenEvent.message(message);
56
53
  });
57
- process2.on(event.multipleResolves, (type, promise, reason) => {
54
+ process.on(event.multipleResolves, (type, promise, reason) => {
58
55
  serverListenEvent.multipleResolves(type, promise, reason);
59
56
  });
60
- process2.on(event.sigint, () => {
57
+ process.on(event.sigint, () => {
61
58
  serverListenEvent.processInterrupted();
62
59
  });
63
- process2.on(event.sigterm, (signal) => {
60
+ process.on(event.sigterm, (signal) => {
64
61
  serverListenEvent.sigtermSignalReceived(signal);
65
62
  });
66
63
  app.use((err, req, res, next) => {
@@ -69,12 +66,12 @@ function eventProcessHandler(localeLanguage) {
69
66
  }
70
67
 
71
68
  // src/application/service/core.service.ts
72
- import process4 from "node:process";
69
+ import process3 from "node:process";
73
70
  import chalk from "chalk";
74
71
  import * as path2 from "path";
75
72
  import * as fs from "fs";
76
73
  import colors3 from "ansi-colors";
77
- import { HttpStatusCode as status } from "opticore-http-response";
74
+ import { HttpStatusCode as HttpStatusCode2, HttpStatusCode as status } from "opticore-http-response";
78
75
  import { TranslationLoader as TranslationLoader3 } from "opticore-translator";
79
76
  import { getEnvironnementValue as getEnvironnementValue2 } from "opticore-env-access";
80
77
  import { LoggerCore as LoggerCore2 } from "opticore-logger";
@@ -162,29 +159,32 @@ import { TranslationLoader as TranslationLoader2 } from "opticore-translator";
162
159
 
163
160
  // src/application/service/logger.service.ts
164
161
  import { LoggerCore } from "opticore-logger";
165
- var SLogger = () => {
166
- return new LoggerCore();
162
+ var SLogger = (environnementPath) => {
163
+ return new LoggerCore(loggerConfig(environnementPath));
167
164
  };
168
165
 
169
166
  // src/core/config/loaders/translateLanguage.loader.ts
170
167
  import { HttpStatusCode } from "opticore-http-response";
171
168
  var TranslateWebAppCoreLanguageLoader = class {
172
- translateLanguageLoader(localLang) {
169
+ translateLanguageLoader(localLang, environnementPath) {
173
170
  try {
174
171
  const require2 = createRequire(import.meta.url);
175
172
  const packagePath = path.dirname(require2.resolve("opticore-webapp"));
176
173
  const translateMsgJsonFilePath = path.join(packagePath, "utils", "translations");
177
174
  TranslationLoader2.loadTranslations(translateMsgJsonFilePath);
178
175
  } 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
- );
176
+ SLogger(environnementPath).error(this.handleError(error, localLang));
186
177
  }
187
178
  }
179
+ handleError(error, localLang) {
180
+ return {
181
+ message: TranslationLoader2.t(error.message, localLang),
182
+ title: TranslationLoader2.t("readdir", localLang),
183
+ errorType: TranslationLoader2.t("ENOENT:NoSuchFileOrDir", localLang),
184
+ stackTrace: error.stack,
185
+ httpCodeValue: HttpStatusCode.INTERNAL_SERVER_ERROR
186
+ };
187
+ }
188
188
  };
189
189
 
190
190
  // src/core/helpers/container.utils.ts
@@ -210,8 +210,8 @@ function Inject(key) {
210
210
  }
211
211
 
212
212
  // src/utils/envPath.utils.ts
213
- import process3 from "process";
214
- var envPath = process3.cwd() + "/config/env/.env";
213
+ import process2 from "process";
214
+ var envPath = process2.cwd() + "/config/env/.env";
215
215
 
216
216
  // src/application/service/core.service.ts
217
217
  var CoreService = class {
@@ -240,7 +240,7 @@ var CoreService = class {
240
240
  * Returns an Object containing a node version, openssl, and v0
241
241
  */
242
242
  getVersions() {
243
- const { node, openssl, v8 } = process4.versions;
243
+ const { node, openssl, v8 } = process3.versions;
244
244
  const data = {
245
245
  "node version": node,
246
246
  "openssl": openssl,
@@ -260,15 +260,15 @@ var CoreService = class {
260
260
  * and Memory usage system
261
261
  */
262
262
  getUsageMemory() {
263
- this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
264
- const memoryData = process4.memoryUsage();
263
+ this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
264
+ const memoryData = process3.memoryUsage();
265
265
  const data = {
266
266
  [TranslationLoader3.t("totalMemoryAllocated", this.localLanguage)]: this.formatMemoryUsage(memoryData.rss),
267
267
  [TranslationLoader3.t("sizeAllocatedHeap", this.localLanguage)]: this.formatMemoryUsage(memoryData.heapTotal),
268
268
  [TranslationLoader3.t("memoryUsedExecution", this.localLanguage)]: this.formatMemoryUsage(memoryData.heapUsed),
269
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)
270
+ [TranslationLoader3.t("memoryUsageUser", this.localLanguage)]: this.formatMemoryUsage(process3.cpuUsage().user),
271
+ [TranslationLoader3.t("memoryUsageSystem", this.localLanguage)]: this.formatMemoryUsage(process3.cpuUsage().system)
272
272
  };
273
273
  return {
274
274
  "rss": data[TranslationLoader3.t("totalMemoryAllocated", this.localLanguage)],
@@ -276,18 +276,19 @@ var CoreService = class {
276
276
  "heapUsed": data[TranslationLoader3.t("memoryUsedExecution", this.localLanguage)],
277
277
  "external": data[TranslationLoader3.t("externalMemory", this.localLanguage)],
278
278
  "user": data[TranslationLoader3.t("memoryUsageUser", this.localLanguage)],
279
- "system": data[TranslationLoader3.t("memoryUsageSystem", this.localLanguage)]
279
+ "system": data[TranslationLoader3.t("memoryUsageSystem", this.localLanguage)],
280
+ "pid": process3.pid
280
281
  };
281
282
  }
282
283
  /**
283
284
  * Return an Object containing a project path and running server time
284
285
  */
285
286
  getProjectInfo() {
286
- const startTime = process4.hrtime();
287
- const endTime = process4.hrtime(startTime);
287
+ const startTime = process3.hrtime();
288
+ const endTime = process3.hrtime(startTime);
288
289
  const executionTime = (endTime[0] * 1e9 + endTime[1]) / 1e6;
289
290
  return {
290
- "projectPath": path2.join(process4.cwd()),
291
+ "projectPath": path2.join(process3.cwd()),
291
292
  "startingTime": `${executionTime.toFixed(5)} ms`
292
293
  };
293
294
  }
@@ -299,16 +300,26 @@ var CoreService = class {
299
300
  * Return void
300
301
  */
301
302
  getEnvFileLoading(filePath) {
302
- const fullPath = path2.resolve(process4.cwd(), filePath);
303
- if (fs.existsSync(fullPath)) {
304
- const env = fs.readFileSync(fullPath, "utf-8");
305
- const lines = env.split("\n");
306
- lines.forEach((line) => {
307
- const match = line.match(/^([^#=]+)=([^#]+)$/);
308
- if (match) {
309
- const key = match[1].trim();
310
- process4.env[key] = match[2].trim();
311
- }
303
+ try {
304
+ const fullPath = path2.resolve(process3.cwd(), filePath);
305
+ if (fs.existsSync(fullPath)) {
306
+ const env = fs.readFileSync(fullPath, "utf-8");
307
+ const lines = env.split("\n");
308
+ lines.forEach((line) => {
309
+ const match = line.match(/^([^#=]+)=([^#]+)$/);
310
+ if (match) {
311
+ const key = match[1].trim();
312
+ process3.env[key] = match[2].trim();
313
+ }
314
+ });
315
+ }
316
+ } catch (err) {
317
+ SLogger(this.environnementPath).error({
318
+ message: err.message,
319
+ title: "EnvFileLoading",
320
+ errorType: err.code,
321
+ stackTrace: err.stack,
322
+ httpCodeValue: HttpStatusCode2.INTERNAL_SERVER_ERROR
312
323
  });
313
324
  }
314
325
  }
@@ -320,45 +331,64 @@ var CoreService = class {
320
331
  * Return string
321
332
  */
322
333
  getServerRunningMode(development, production) {
323
- this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
324
- this.getEnvFileLoading(".env");
325
- const env = getEnvironnementValue2(path2.join(envPath));
326
- const isDevelopment = env.devEnv === development && env.prodEnv === "";
327
- if (isDevelopment) {
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`;
331
- } else {
332
- return `${TranslationLoader3.t("serverRunning", this.localLanguage)} ${colors3.bgBlue(`${colors3.bold(`${development}`)}`)} mode`;
334
+ try {
335
+ this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
336
+ this.getEnvFileLoading(".env");
337
+ const env = getEnvironnementValue2(path2.join(envPath));
338
+ const isDevelopment = env.devEnv === development && env.prodEnv === "";
339
+ if (isDevelopment) {
340
+ return `${TranslationLoader3.t("serverRunning", this.localLanguage)} ${colors3.bgBlue(`${colors3.bold(`${development}`)}`)} mode`;
341
+ } else if (!isDevelopment) {
342
+ return `${TranslationLoader3.t("serverRunning", this.localLanguage)} ${colors3.bgBlue(`${colors3.bold(`${production}`)}`)} mode`;
343
+ } else {
344
+ return `${TranslationLoader3.t("serverRunning", this.localLanguage)} ${colors3.bgBlue(`${colors3.bold(`${development}`)}`)} mode`;
345
+ }
346
+ } catch (err) {
347
+ SLogger(this.environnementPath).error({
348
+ message: err.message,
349
+ title: "serverRunning mode",
350
+ errorType: err.code,
351
+ stackTrace: err.stack,
352
+ httpCodeValue: HttpStatusCode2.INTERNAL_SERVER_ERROR
353
+ });
333
354
  }
334
355
  }
335
356
  infoServer(nodeVersion, startingTime, host, port) {
336
- this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
337
- const getEnvironnement = getEnvironnementValue2(this.environnementPath);
338
- const msg5 = getEnvironnement.protocolTransfert === "" ? `${colors3.underline(`http://${host}:${port}`)}` : `${colors3.underline(`${getEnvironnement.protocolTransfert}://${host}:${port}`)}`;
339
- const messages = [
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)),
344
- msg5
345
- ];
346
- const maxLength = Math.max(...messages.map((m) => {
347
- return m.replace(/\u001b\[[0-9]{1,2}m/g, "").length;
348
- })) + 4;
349
- console.log(chalk.blackBright(`Tailing Web Server log file (${path2.join(path2.basename(process4.cwd()), "logs", "app.log")})`));
350
- const border = chalk.bgGreen.white(" ".repeat(maxLength));
351
- console.log(border);
352
- messages.forEach((msg) => {
353
- const cleanLength = msg.replace(/\u001b\[[0-9]{1,2}m/g, "").length;
354
- const padding = maxLength - cleanLength - 2;
355
- console.log(chalk.bgGreen.white(` ${msg}${" ".repeat(padding)} `));
356
- });
357
- console.log(border);
358
- console.log("\n");
357
+ try {
358
+ this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
359
+ const getEnvironnement = getEnvironnementValue2(this.environnementPath);
360
+ const msg5 = getEnvironnement.protocolTransfert === "" ? `${colors3.underline(`http://${host}:${port}`)}` : `${colors3.underline(`${getEnvironnement.protocolTransfert}://${host}:${port}`)}`;
361
+ const messages = [
362
+ TranslationLoader3.t("webServerListening", this.localLanguage),
363
+ TranslationLoader3.t("webServerUsingNodeVersion", this.localLanguage, { nodeVersion: this.getVersions().nodeVersion }),
364
+ TranslationLoader3.t("startTime", this.localLanguage, { startTime: this.getProjectInfo().startingTime }),
365
+ this.getServerRunningMode(TranslationLoader3.t("runningModeDev", this.localLanguage), TranslationLoader3.t("runningModeProd", this.localLanguage))
366
+ ];
367
+ const maxLength = Math.max(...messages.map((m) => {
368
+ return m.replace(/\u001b\[[0-9]{1,2}m/g, "").length;
369
+ })) + 4;
370
+ console.log(chalk.blackBright(`Tailing Web Server log file (${path2.join(path2.basename(process3.cwd()), "logs", "app.log")})`));
371
+ const border = chalk.bgGreen.white(" ".repeat(maxLength));
372
+ console.log(border);
373
+ messages.forEach((msg) => {
374
+ const cleanLength = msg.replace(/\u001b\[[0-9]{1,2}m/g, "").length;
375
+ const padding = maxLength - cleanLength - 2;
376
+ console.log(chalk.bgGreen.white(` ${msg}${" ".repeat(padding)} `));
377
+ });
378
+ console.log(border);
379
+ console.log("\n");
380
+ } catch (err) {
381
+ SLogger(this.environnementPath).error({
382
+ message: err.message,
383
+ title: "server",
384
+ errorType: err.code,
385
+ stackTrace: err.stack,
386
+ httpCodeValue: HttpStatusCode2.INTERNAL_SERVER_ERROR
387
+ });
388
+ }
359
389
  }
360
390
  coreListenerEventLoaderModuleService(kernelModule) {
361
- this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
391
+ this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
362
392
  let router = [];
363
393
  let dbCon;
364
394
  kernelModule.forEach((module) => {
@@ -390,19 +420,31 @@ import {
390
420
  CCodeError,
391
421
  CErrorName
392
422
  } from "opticore-catch-exception-error";
393
- import { HttpStatusCode as HttpStatusCode2 } from "opticore-http-response";
394
- var SServerStartError = (err) => {
423
+ import { HttpStatusCode as HttpStatusCode3 } from "opticore-http-response";
424
+ var SServerStartError = (err, environnementPath) => {
395
425
  if (err.name) {
396
426
  for (const [key, code] of Object.entries(CErrorName)) {
397
427
  if (err.name === code) {
398
- SLogger().error(err.message, code, code, err.stack, HttpStatusCode2.INTERNAL_SERVER_ERROR);
428
+ SLogger(environnementPath).error({
429
+ message: err.message,
430
+ title: code,
431
+ errorType: code,
432
+ stackTrace: err.stack,
433
+ httpCodeValue: HttpStatusCode3.INTERNAL_SERVER_ERROR
434
+ });
399
435
  break;
400
436
  }
401
437
  }
402
438
  } else {
403
439
  for (const [key, code] of Object.entries(CCodeError)) {
404
440
  if (err.code === code) {
405
- SLogger().error(err.message, code, key, err.stack, HttpStatusCode2.INTERNAL_SERVER_ERROR);
441
+ SLogger(environnementPath).error({
442
+ message: err.message,
443
+ title: code,
444
+ errorType: key,
445
+ stackTrace: err.stack,
446
+ httpCodeValue: HttpStatusCode3.INTERNAL_SERVER_ERROR
447
+ });
406
448
  break;
407
449
  }
408
450
  }
@@ -412,7 +454,7 @@ var SServerStartError = (err) => {
412
454
  // src/core/webServer.core.ts
413
455
  import { requestCallsEvent } from "opticore-request-call-event";
414
456
  import { SContainer } from "opticore-inject-dependency";
415
- import { HttpStatusCode as HttpStatusCode3 } from "opticore-http-response";
457
+ import { HttpStatusCode as HttpStatusCode4 } from "opticore-http-response";
416
458
  import { TranslationLoader as TranslationLoader4 } from "opticore-translator";
417
459
  import { OptiCoreMySQLDriver } from "opticore-mysqldb";
418
460
  var WebServerCore = class {
@@ -425,11 +467,11 @@ var WebServerCore = class {
425
467
  environnementPath;
426
468
  serverListenEvent;
427
469
  translateWebAppCoreLanguageLoader;
428
- static dependenciesRegistered = false;
470
+ dependenciesRegistered = false;
429
471
  constructor(app, loggerConfig2, localLanguage, environnementPath, corsOriginOptions) {
430
472
  containerDependency.register("TranslateWebAppCoreLanguageLoader", new TranslateWebAppCoreLanguageLoader());
431
473
  this.translateWebAppCoreLanguageLoader = Inject("TranslateWebAppCoreLanguageLoader");
432
- this.translateWebAppCoreLanguageLoader.translateLanguageLoader(localLanguage);
474
+ this.translateWebAppCoreLanguageLoader.translateLanguageLoader(localLanguage, environnementPath);
433
475
  this.stackTraceErrorHandling(localLanguage);
434
476
  this.getEnvironnement = getEnvironnementValue3(environnementPath);
435
477
  this.routerExpressApp = app;
@@ -444,49 +486,59 @@ var WebServerCore = class {
444
486
  this.serverListenEvent = new ServerListenEventError2(localLanguage);
445
487
  this.serverUtility = new CoreService(localLanguage, environnementPath);
446
488
  }
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;
489
+ registerDependencies(dependencies) {
490
+ try {
491
+ if (this.dependenciesRegistered) return;
492
+ containerDependency.register("TranslateWebAppCoreLanguageLoader", new TranslateWebAppCoreLanguageLoader());
493
+ dependencies.forEach((value, key) => {
494
+ containerDependency.register(key, value);
495
+ });
496
+ this.dependenciesRegistered = true;
497
+ } catch (err) {
498
+ SLogger(this.environnementPath).error({
499
+ message: err.message,
500
+ title: "Register Dependencies",
501
+ errorType: err.code,
502
+ stackTrace: err.stack,
503
+ httpCodeValue: HttpStatusCode4.INTERNAL_SERVER_ERROR
504
+ });
505
+ }
454
506
  }
455
507
  onStartServer(routers, dependenciesProvider) {
456
- this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
457
- const mySQL = new OptiCoreMySQLDriver(envPath, this.localLanguage);
458
- if (this.getEnvironnement.appHost === "" && Number(this.getEnvironnement.appPort) === 0) {
508
+ this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
509
+ const mySQL = new OptiCoreMySQLDriver(this.getEnvironnement, this.localLanguage);
510
+ if (this.getEnvironnement.appPort === "" && Number(this.getEnvironnement.appPort) === 0) {
459
511
  this.serverListenEvent.hostPortUndefined(Number(this.getEnvironnement.appPort));
460
512
  } else if (this.getEnvironnement.appHost === "") {
461
513
  this.serverListenEvent.hostUndefined(this.getEnvironnement.appHost);
462
514
  } else if (Number(this.getEnvironnement.appPort) === 0) {
463
515
  this.serverListenEvent.portUndefined();
464
516
  } else if (this.localLanguage === "") {
465
- SLogger().error(
466
- TranslationLoader4.t("noDefaultLocalLang", this.localLanguage),
467
- TranslationLoader4.t("noLocalLang", this.localLanguage),
468
- TranslationLoader4.t("localLangMissing", this.localLanguage),
469
- void 0,
470
- HttpStatusCode3.NOT_FOUND
471
- );
517
+ SLogger(this.environnementPath).error({
518
+ message: TranslationLoader4.t("noDefaultLocalLang", this.localLanguage),
519
+ title: TranslationLoader4.t("noLocalLang", this.localLanguage),
520
+ errorType: TranslationLoader4.t("localLangMissing", this.localLanguage),
521
+ stackTrace: void 0,
522
+ httpCodeValue: HttpStatusCode4.NOT_FOUND
523
+ });
472
524
  } else {
473
525
  return this.expressApp.listen(
474
526
  Number(this.getEnvironnement.appPort),
475
527
  () => {
476
528
  try {
477
- mySQL.databaseConnexionChecker(envPath, "");
529
+ mySQL.databaseConnexionChecker(this.getEnvironnement);
478
530
  new SContainer(dependenciesProvider, this.localLanguage);
479
- this.expressApp.use(express2.static(path3.join(process5.cwd(), "public/template")));
531
+ this.expressApp.use(express2.static(path3.join(process4.cwd(), "public/template")));
480
532
  this.registerRoutes(routers);
481
533
  } catch (err) {
482
- SServerStartError(err);
534
+ SServerStartError(err, this.environnementPath);
483
535
  }
484
536
  }
485
537
  );
486
538
  }
487
539
  }
488
540
  onListeningOnServerEvent(serverWeb) {
489
- this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
541
+ this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
490
542
  serverWeb.on(eventName2.error, (err) => {
491
543
  this.serverListenEvent.onEventError(err);
492
544
  }).on(eventName2.close, () => {
@@ -498,7 +550,7 @@ var WebServerCore = class {
498
550
  });
499
551
  }
500
552
  onRequestOnServerEvent(serverWeb) {
501
- this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage);
553
+ this.translateWebAppCoreLanguageLoader.translateLanguageLoader(this.localLanguage, this.environnementPath);
502
554
  serverWeb.on(eventName2.request, (req, res) => {
503
555
  requestCallsEvent(
504
556
  req,
@@ -530,28 +582,7 @@ var WebServerCore = class {
530
582
  );
531
583
  }
532
584
  };
533
-
534
- // src/utils/stopServer.utils.ts
535
- import dotenv from "dotenv";
536
- import { execSync } from "child_process";
537
- import { TranslationLoader as TranslationLoader5 } from "opticore-translator";
538
- var UStopServer = () => {
539
- dotenv.config();
540
- const port = process.env.PORT;
541
- try {
542
- const pid = execSync(`lsof -i :${port} -t`, { encoding: "utf-8" }).trim();
543
- if (pid) {
544
- execSync(`kill ${pid}`);
545
- SLogger().success("serverPortKill", TranslationLoader5.t("serverPortKill", "en", { port }));
546
- } else {
547
- SLogger().warn("pidOnPortNotFound", TranslationLoader5.t("pidOnPortNotFound", "en", { port }));
548
- }
549
- } catch (error) {
550
- SLogger().error("noProcessRunningOnPort", TranslationLoader5.t("noProcessRunningOnPort", "en", { port }));
551
- }
552
- };
553
585
  export {
554
- UStopServer,
555
586
  WebServerCore as WebServer,
556
587
  envPath
557
588
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opticore-webapp",
3
- "version": "1.0.43",
3
+ "version": "1.0.45",
4
4
  "description": "wep server",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -33,11 +33,12 @@
33
33
  "opticore-env-access": "^1.0.6",
34
34
  "opticore-express": "^1.0.3",
35
35
  "opticore-http-response": "^1.0.3",
36
- "opticore-inject-dependency": "^1.0.6",
37
- "opticore-logger": "^1.0.15",
38
- "opticore-mysqldb": "^1.0.20",
36
+ "opticore-inject-dependency": "^1.0.7",
37
+ "opticore-logger": "^1.0.17",
38
+ "opticore-mysqldb": "^1.0.25",
39
39
  "opticore-request-call-event": "^1.0.2",
40
40
  "opticore-router": "^1.0.11",
41
+ "opticore-server-logger": "^1.0.2",
41
42
  "opticore-translator": "^1.0.10",
42
43
  "opticore-validator": "^1.0.3"
43
44
  },
@@ -1,97 +0,0 @@
1
- {
2
- "serverRunning": "The server is running in",
3
- "webServerListening": "[OK] Web server listening",
4
- "webServerUsingNodeVersion": "The Web server is using Node.js version {nodeVersion}",
5
- "startTime": "Startup time : {startTime}",
6
- "runningModeDev": "development",
7
- "runningModeProd": "production",
8
- "totalMemoryAllocated": "Resident Set Size - total memory allocated for the process execution",
9
- "sizeAllocatedHeap": "Total size of the allocated heap",
10
- "memoryUsedExecution": "Actual memory used during the execution",
11
- "externalMemory":"V8 external memory",
12
- "memoryUsageUser": "Memory usage user",
13
- "memoryUsageSystem": "Memory usage system",
14
- "dbConnection": "DataBase connection",
15
- "dbConnectionClosed": "MySQL connection is closed",
16
- "mysqlErrorCon": "MysqlError connection",
17
- "mySQLError": "MysqlError",
18
- "mySqlCloseConnection": "MySql close connection",
19
- "verifyExistingKey": "Verify Existing Key",
20
- "invalidRequest": "Invalid request",
21
- "tokenNotProvided": "No token provided.",
22
- "ExpiresToken": "Expires Token. You're not authorize",
23
- "privateKeyNotExist": "A private key doesn't exist.",
24
- "publicKeyNotExist": "A public key doesn't exist.",
25
- "errorNamePublicKeyNotExist": "No public key",
26
- "errorAuthorPublicKeyNotExist": "PublicKey not existing",
27
- "errorDecryption": "Error decryption with private key",
28
- "rsaKeyNotFound": "RSA key provided is not found.",
29
- "notVerifyingRSAKey": "Not verify RSA Key",
30
- "errorNameNotVerifyingRSAKey": "Error Verify RSA Key",
31
- "errorEncryptionPublicKey": "Error encryption with public key",
32
- "errorEncryptionPrivateKey": "Error encryption with private key",
33
- "errorNameRsaVerifyExistingKey": "Verify existing key",
34
- "signatureRSAKeyFailed": "Signature verification failed.",
35
- "encryptionWithPrivateKeyFailed": "Encryption With PrivateKey",
36
- "encryptionFailed": "Encryption failed",
37
- "decryptionWithPublicKeyFailed": "Decryption With PublicKey",
38
- "decryptionFailed": "Decryption failed",
39
- "verifyRSAKey": "Verify RSA Keys",
40
- "verifyRSAKeyFailed": "Verify RSA Keys Failed",
41
- "notVerifying": "Verification failed",
42
- "signatureRSAKeysError": "Signature RSA Keys Error",
43
- "encryptionWithPublicKey": "Encryption error",
44
- "errorDecryptionWithPrivateKey": "Error Decryption With PrivateKey",
45
- "verifyPublicRSAKey": "Verify Public RSA Key",
46
- "PostgresDBConnectionChecker": "PostgresDB Connection Checker",
47
- "PostgresConnection": "connection",
48
- "MongoDBConnectionChecker": "MongoDB Connection Checker",
49
- "MongoConnection": "connection",
50
- "mongoDBAuthentication": "authentication",
51
- "mongoDBConnection": "MongoDB connection",
52
- "mongoDBAuthenticationFailed": "failed",
53
- "mongoDBUnableParsingUrl": "unable to parse",
54
- "mongoDBConnectionUrl": "url",
55
- "mongoDBServerSelection": "MongoServer selection error",
56
- "mongoDBServer": "MongoServer",
57
- "mongoDBConnectionError": "connection error",
58
- "mongoDBError": "error",
59
- "loadedModules": "Loading core modules",
60
- "kernel": "Kernel",
61
- "loadKernel": "load kernel",
62
- "moduleAppLoaded": "Modules app have been successfully loaded",
63
- "content": "content",
64
- "serverSide": "server side",
65
- "hasBeenLoadedSuccessfully": "has been loaded successfully",
66
- "routerService": "Routers service",
67
- "registerRoutes": "Register routes",
68
- "fail": "fail",
69
- "loading": "loading",
70
- "routers": "routers",
71
- "registerLoadingFailed": "The route register failed to load",
72
- "dbConnChecker": "database checker connection",
73
- "loadedModulesError": "Required core modules are not loaded properly",
74
- "dbConnexionSuccess": "The database connection was successful 🚀",
75
- "mongoConnectionSuccess": "Connection to database is successfully.",
76
- "PostgresConnectionSuccess": "Connection to database is successfully.",
77
- "verifyExistingKeyError": "The provided key is not found",
78
- "webServer": "Web server",
79
- "listening": "listening",
80
- "webHost": "host",
81
- "badHost": "bad host",
82
- "hostNotFound": "not found",
83
- "errorHostUrl": "The host and port are not define, please define them in .env",
84
- "badPort": "bad port",
85
- "errorPort": "The port is not correct. Please define a right port with number port.",
86
- "errorHost": "The host can't be empty or blank. Please define a string host in .env",
87
- "accessDeniedToDBCon": "Access denied for user {user}. Database credentials in .env file are User: {user} and Password: {password}. {user}''{password}'@'localhost'. Try to set user and password in .env file",
88
- "unknownDB": "Database {database} is unknown. Please try to use Database CLI to create your database, or do it manually in your Database Management System",
89
- "errorDBHost": "A database host {host} does not allow connection. Please either set the host like this: {localhost} in your .env file",
90
- "serverPortKill": "Server which started on port {port} has been stopped successfully.",
91
- "pidOnPortNotFound": "No process found on port {port}.",
92
- "noProcessRunningOnPort": "Error: No process running on port {port}",
93
- "noDefaultLocalLang": "A default local language is not define. Please define it into .env file at the key : DEFAULT_LOCAL_LANG",
94
- "noLocalLang": "Local lang missing",
95
- "localLangMissing": "DEFAULT_LOCAL_LANG missing",
96
- "ENOENT:NoSuchFileOrDir": "ENOENT:NoSuchFileOrDir"
97
- }
@@ -1,97 +0,0 @@
1
- {
2
- "serverRunning": "Le serveur est en cours d'exécution en",
3
- "webServerListening": "[OK] Le serveur web écoute",
4
- "webServerUsingNodeVersion": "Le serveur Web utilise la version Node.js {nodeVersion}",
5
- "startTime": "Temps de démarrage : {startTime}",
6
- "runningModeDev": "développement",
7
- "runningModeProd": "production",
8
- "totalMemoryAllocated": "Taille de l'ensemble résident - mémoire totale allouée à l'exécution du processus",
9
- "sizeAllocatedHeap": "Taille totale du segment alloué",
10
- "memoryUsedExecution": "Mémoire réelle utilisée lors de l'exécution",
11
- "externalMemory":"Mémoire externe V8",
12
- "memoryUsageUser": "Utilisation de la mémoire par l'utilisateur",
13
- "memoryUsageSystem": "Système d'usage de la mémoire",
14
- "dbConnection": "Connexion à la base de données",
15
- "dbConnectionClosed": "La connexion MySQL est fermée",
16
- "mysqlErrorCon": "MysqlError connection",
17
- "mySQLError": "MysqlError",
18
- "mySqlCloseConnection": "Connexion MySql fermée",
19
- "verifyExistingKey": "Vérifier la clé existante",
20
- "invalidRequest": "Demande invalide",
21
- "tokenNotProvided": "Aucun jeton fourni.",
22
- "ExpiresToken": "Jeton expiré. Vous n'êtes pas autorisé",
23
- "privateKeyNotExist": "Il n'existe pas de clé privée.",
24
- "publicKeyNotExist": "Il n'existe pas de clé public.",
25
- "errorNamePublicKeyNotExist": "Aucune clé public.",
26
- "errorAuthorPublicKeyNotExist": "Clé publique inexistante",
27
- "errorDecryption": "Erreur de décryptage avec la clé privée",
28
- "rsaKeyNotFound": "La clé RSA fournie n'est pas trouvée.",
29
- "notVerifyingRSAKey": "Pas de vérification de la clé RSA",
30
- "errorNameNotVerifyingRSAKey": "Erreur lors de la vérification de la clé RSA",
31
- "errorEncryptionPublicKey": "Erreur de chiffrement avec la clé publique",
32
- "errorEncryptionPrivateKey": "Erreur de chiffrement avec la clé privée",
33
- "errorNameRsaVerifyExistingKey": "Vérification de la clé existante",
34
- "signatureRSAKeyFailed": "La vérification de la signature a échoué.",
35
- "encryptionWithPrivateKeyFailed": "Chiffrement avec clé privée",
36
- "encryptionFailed": "Le cryptage a échoué",
37
- "decryptionWithPublicKeyFailed": "Décryptage avec la clé publique",
38
- "decryptionFailed": "Le décryptage a échoué",
39
- "verifyRSAKey": "Vérification des clés RSA",
40
- "verifyRSAKeyFailed": "Échec de la vérification des clés RSA",
41
- "notVerifying": "La vérification a échoué",
42
- "signatureRSAKeysError": "Erreur de clé de signature RSA",
43
- "encryptionWithPublicKey": "Erreur de cryptage",
44
- "errorDecryptionWithPrivateKey": "Erreur de décryptage avec la clé privée",
45
- "verifyPublicRSAKey": "Vérifier la clé publique RSA",
46
- "PostgresDBConnectionChecker": "Vérificateur de la connexion a la base de donnée Postgres",
47
- "PostgresConnection": "connection",
48
- "MongoDBConnectionChecker": "Vérificateur de la connexion a la base de donnée connexion MongoDB",
49
- "MongoConnection": "connection",
50
- "mongoDBAuthentication": "authentication",
51
- "mongoDBConnection": "Connexion à la base de données Mongo",
52
- "mongoDBAuthenticationFailed": "échoué",
53
- "mongoDBUnableParsingUrl": "impossible d'analyser",
54
- "mongoDBConnectionUrl": "url",
55
- "mongoDBServerSelection": "Erreur de sélection du serveur Mongo",
56
- "mongoDBServer": "Serveur Mongo",
57
- "mongoDBConnectionError": "Erreur de connection",
58
- "mongoDBError": "erreur",
59
- "loadedModules": "Chargement des modules de base",
60
- "kernel": "Noyau",
61
- "loadKernel": "charger le kernel",
62
- "moduleAppLoaded": "Les modules de l'application ont été chargés avec succès",
63
- "content": "contenu",
64
- "serverSide": "côté serveur",
65
- "hasBeenLoadedSuccessfully": "a été chargé avec succès",
66
- "routerService": "Service de routeurs",
67
- "registerRoutes": "Registre des routes",
68
- "fail": "échec",
69
- "loading": "Chargement",
70
- "routers": "routes",
71
- "registerLoadingFailed": "Le registre des routes n'a pas pu être chargé",
72
- "dbConnChecker": "vérificateur a la connexion de base de données",
73
- "loadedModulesError": "Les modules de base requis ne sont pas chargés correctement",
74
- "dbConnexionSuccess": "La connexion à la base de données a réussi 🚀",
75
- "mongoConnectionSuccess": "La connexion à la base de données est réussie.",
76
- "PostgresConnectionSuccess": "La connexion à la base de données est réussie.",
77
- "verifyExistingKeyError": "La clé fournie est introuvable",
78
- "webServer": "Serveur Web",
79
- "listening": "écoute",
80
- "webHost": "hôte",
81
- "badHost": "mauvais hôte",
82
- "hostNotFound": "introuvable",
83
- "errorHostUrl": "L'hôte et le port ne sont pas définis, veuillez les définir dans .env",
84
- "badPort": "mauvais port",
85
- "errorPort": "Le port est incorrect. Veuillez définir un port correct avec le numéro port.",
86
- "errorHost": "L'hôte ne peut être vide. Veuillez définir une chaîne d'hôte dans .env.",
87
- "accessDeniedToDBCon": "Accès refusé pour l'utilisateur {user}. Les identifiants de la base de données dans le fichier .env sont : utilisateur : {user} et le mot de passe : {password}. {user}''{password}'@'localhost'. Essayez de définir l'utilisateur et le mot de passe dans le fichier .env",
88
- "unknownDB": "La base de données {database} est inconnue. Veuillez utiliser l'interface de ligne de commande de la base de données pour la créer, ou le faire manuellement dans votre système de gestion de bases de données.",
89
- "errorDBHost": "L'hôte de la base de données {host} n'autorise pas la connexion. Veuillez définir l'hôte comme suit : {localhost} dans votre fichier .env",
90
- "serverPortKill": "Serveur qui a démarré sur le port {port} a été arrêté avec succès.",
91
- "pidOnPortNotFound": "Aucun processus trouvé sur le port {port}.",
92
- "noProcessRunningOnPort": "Erreur : Aucun processus en cours sur le port {port}.",
93
- "noDefaultLocalLang": "La langue locale par défaut n'est pas définie. Veuillez le définir dans le fichier .env a la clé: DEFAULT_LOCAL_LANG",
94
- "noLocalLang": "Langue local manquante",
95
- "localLangMissing": "DEFAULT_LOCAL_LANG manquante",
96
- "ENOENT:NoSuchFileOrDir": "ENOENT:NoSuchFileOrDir"
97
- }