@fdm-monster/server 2.0.1 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/.env.template +2 -1
  2. package/.yarn/install-state.gz +0 -0
  3. package/README.md +30 -13
  4. package/RELEASE_NOTES.MD +39 -0
  5. package/dist/consoles/mock-octoprint.server.js +1 -1
  6. package/dist/consoles/mock-octoprint.server.js.map +1 -1
  7. package/dist/constants/authorization.constants.js +12 -3
  8. package/dist/constants/authorization.constants.js.map +1 -1
  9. package/dist/container.js +2 -0
  10. package/dist/container.js.map +1 -1
  11. package/dist/container.tokens.js +1 -0
  12. package/dist/container.tokens.js.map +1 -1
  13. package/dist/controllers/printer-maintenance-log.controller.js +174 -0
  14. package/dist/controllers/printer-maintenance-log.controller.js.map +1 -0
  15. package/dist/data-source.js +8 -8
  16. package/dist/data-source.js.map +1 -1
  17. package/dist/entities/index.js +4 -0
  18. package/dist/entities/index.js.map +1 -1
  19. package/dist/entities/print-job.entity.js +5 -1
  20. package/dist/entities/print-job.entity.js.map +1 -1
  21. package/dist/entities/printer-maintenance-log.entity.js +142 -0
  22. package/dist/entities/printer-maintenance-log.entity.js.map +1 -0
  23. package/dist/entities/printer.entity.js +2 -1
  24. package/dist/entities/printer.entity.js.map +1 -1
  25. package/dist/handlers/logging/file-logging.transport.js +2 -2
  26. package/dist/handlers/logging/file-logging.transport.js.map +1 -1
  27. package/dist/index.js +11 -5
  28. package/dist/index.js.map +1 -1
  29. package/dist/migrations/1767909428129-AddPrinterMaintenanceLog.js +52 -0
  30. package/dist/migrations/1767909428129-AddPrinterMaintenanceLog.js.map +1 -0
  31. package/dist/server.constants.js +13 -9
  32. package/dist/server.constants.js.map +1 -1
  33. package/dist/server.core.js +7 -4
  34. package/dist/server.core.js.map +1 -1
  35. package/dist/server.env.js +13 -32
  36. package/dist/server.env.js.map +1 -1
  37. package/dist/server.host.js +1 -1
  38. package/dist/server.host.js.map +1 -1
  39. package/dist/services/bambu/bambu-ftp.adapter.js +1 -1
  40. package/dist/services/bambu/bambu-ftp.adapter.js.map +1 -1
  41. package/dist/services/core/client-bundle.service.js +10 -11
  42. package/dist/services/core/client-bundle.service.js.map +1 -1
  43. package/dist/services/core/config.service.js +3 -5
  44. package/dist/services/core/config.service.js.map +1 -1
  45. package/dist/services/core/logs-manager.service.js +9 -10
  46. package/dist/services/core/logs-manager.service.js.map +1 -1
  47. package/dist/services/core/multer.service.js +2 -2
  48. package/dist/services/core/multer.service.js.map +1 -1
  49. package/dist/services/core/yaml.service.js +8 -5
  50. package/dist/services/core/yaml.service.js.map +1 -1
  51. package/dist/services/file-storage.service.js +1 -1
  52. package/dist/services/file-storage.service.js.map +1 -1
  53. package/dist/services/interfaces/printer-maintenance-log.dto.js +6 -0
  54. package/dist/services/interfaces/printer-maintenance-log.dto.js.map +1 -0
  55. package/dist/services/interfaces/printer.dto.js.map +1 -1
  56. package/dist/services/orm/printer-maintenance-log.service.js +151 -0
  57. package/dist/services/orm/printer-maintenance-log.service.js.map +1 -0
  58. package/dist/services/orm/printer.service.js +15 -7
  59. package/dist/services/orm/printer.service.js.map +1 -1
  60. package/dist/services/typeorm/typeorm.service.js +5 -5
  61. package/dist/services/typeorm/typeorm.service.js.map +1 -1
  62. package/dist/services/validators/printer-maintenance-log.validation.js +41 -0
  63. package/dist/services/validators/printer-maintenance-log.validation.js.map +1 -0
  64. package/dist/services/validators/printer-service.validation.js +4 -5
  65. package/dist/services/validators/printer-service.validation.js.map +1 -1
  66. package/dist/services/validators/yaml-service.validation.js +6 -2
  67. package/dist/services/validators/yaml-service.validation.js.map +1 -1
  68. package/dist/state/test-printer-socket.store.js +2 -2
  69. package/dist/state/test-printer-socket.store.js.map +1 -1
  70. package/dist/tasks/print-job-analysis.task.js +0 -1
  71. package/dist/tasks/print-job-analysis.task.js.map +1 -1
  72. package/dist/utils/env.utils.js +5 -4
  73. package/dist/utils/env.utils.js.map +1 -1
  74. package/dist/utils/fs.utils.js +37 -11
  75. package/dist/utils/fs.utils.js.map +1 -1
  76. package/dist/utils/swagger/swagger.js +1 -1
  77. package/dist/utils/swagger/swagger.js.map +1 -1
  78. package/package.json +10 -11
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data-source.ts"],"names":["AppDataSource","process","env","NODE_ENV","dotenv","config","path","join","superRootPath","dbFolder","AppConstants","DATABASE_PATH","dbFile","DATABASE_FILE","dbName","DataSource","type","database","synchronize","logging","entities","Floor","FloorPosition","Printer","Settings","User","CameraStream","Role","RefreshToken","UserRole","Tag","PrinterTag","PrintJob","migrations","InitSqlite1706829146617","PrinterGroup1707494762198","ChangePrintCompletionDeletePrinterCascade1708465930665","ChangeRoleNameUnique1713300747465","RemovePrinterFile1720338804844","AddPrinterType1713897879622","AddPrinterUsernamePassword1745141688926","DropPermissions1766576698569","ChangeCameraPrinterOnDeleteSetNull1767278216516","DropCustomGcode1767279607392","DropPrintCompletions1767291804417","DropSettingsFileClean1767352862576","ChangeFloorNonUniqueOrder1767370191762","RenameGroupToTag1767432108916","AddPrintJob1767451444137","subscribers"],"mappings":";;;;+BA8CaA;;;eAAAA;;;QA9CN;yBACoB;+DACR;0BACE;iCACQ;yBACC;6BACR;qCACQ;+BACN;gCACC;0BACoB;oCAChB;4BACR;gCACI;yCACe;kCACb;2BACP;2CACsB;wEAGnC;mDAC2C;gDACH;6CACH;yDACY;8CACX;iEAGtC;8CACsC;mDACK;oDACC;wDACI;+CACT;0CACL;;;;;;AAEzC,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,QAAQ;IACnCC,eAAM,CAACC,MAAM,CAAC;QACZC,MAAMC,IAAAA,cAAI,EAACC,IAAAA,sBAAa,KAAI;IAC9B;AACF;AAEA,MAAMC,WAAWR,QAAQC,GAAG,CAACQ,6BAAY,CAACC,aAAa,CAAC,IAAI;AAC5D,MAAMC,SAASX,QAAQC,GAAG,CAACQ,6BAAY,CAACG,aAAa,CAAC,IAAI;AAC1D,MAAMC,SAASF,WAAW,aAAaA,SAASL,IAAAA,cAAI,EAACC,IAAAA,sBAAa,KAAIC,UAAUG;AAEzE,MAAMZ,gBAAgB,IAAIe,mBAAU,CAAC;IAC1CC,MAAM;IACNC,UAAUH;IACVI,aAAa;IACbC,SAAS;IACTC,UAAU;QACRC,kBAAK;QACLC,kCAAa;QACbC,sBAAO;QACPC,wBAAQ;QACRC,cAAI;QACJC,gCAAY;QACZC,gBAAI;QACJC,sBAAY;QACZC,wBAAQ;QACRC,cAAG;QACHC,4BAAU;QACVC,kBAAQ;KACT;IACDC,YAAY;QACVC,gDAAuB;QACvBC,oDAAyB;QACzBC,8GAAsD;QACtDC,oEAAiC;QACjCC,8DAA8B;QAC9BC,wDAA2B;QAC3BC,gFAAuC;QACvCC,0DAA4B;QAC5BC,gGAA+C;QAC/CC,0DAA4B;QAC5BC,oEAAiC;QACjCC,sEAAkC;QAClCC,8EAAsC;QACtCC,4DAA6B;QAC7BC,kDAAwB;KACzB;IACDC,aAAa,EAAE;AACjB"}
1
+ {"version":3,"sources":["../src/data-source.ts"],"names":["AppDataSource","process","env","NODE_ENV","dotenv","config","path","ENV_FILE","join","quiet","DataSource","type","database","getDatabaseFilePath","synchronize","logging","entities","Floor","FloorPosition","Printer","Settings","User","CameraStream","Role","RefreshToken","UserRole","Tag","PrinterTag","PrintJob","PrinterMaintenanceLog","migrations","InitSqlite1706829146617","PrinterGroup1707494762198","ChangePrintCompletionDeletePrinterCascade1708465930665","ChangeRoleNameUnique1713300747465","RemovePrinterFile1720338804844","AddPrinterType1713897879622","AddPrinterUsernamePassword1745141688926","DropPermissions1766576698569","ChangeCameraPrinterOnDeleteSetNull1767278216516","DropCustomGcode1767279607392","DropPrintCompletions1767291804417","DropSettingsFileClean1767352862576","ChangeFloorNonUniqueOrder1767370191762","RenameGroupToTag1767432108916","AddPrintJob1767451444137","AddPrinterMaintenanceLog1767909428129","subscribers"],"mappings":";;;;+BA2CaA;;;eAAAA;;;QA3CN;yBACoB;+DACR;0BACE;yBACe;6BACd;qCACQ;+BACN;gCACC;0BAC2C;oCACvC;4BACR;gCACI;yCACe;kCACb;2BACP;2CACsB;wEAGnC;mDAC2C;gDACH;6CACH;yDACY;8CACX;iEAGtC;8CACsC;mDACK;oDACC;wDACI;+CACT;0CACL;uDACa;;;;;;AAEtD,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,QAAQ;IACnCC,eAAM,CAACC,MAAM,CAAC;QACZC,MAAML,QAAQC,GAAG,CAACK,QAAQ,IAAIC,IAAAA,cAAI,EAAC;QACnCC,OAAO;IACT;AACF;AAEO,MAAMT,gBAAgB,IAAIU,mBAAU,CAAC;IAC1CC,MAAM;IACNC,UAAUC,IAAAA,4BAAmB;IAC7BC,aAAa;IACbC,SAAS;IACTC,UAAU;QACRC,kBAAK;QACLC,kCAAa;QACbC,sBAAO;QACPC,wBAAQ;QACRC,cAAI;QACJC,gCAAY;QACZC,gBAAI;QACJC,sBAAY;QACZC,wBAAQ;QACRC,cAAG;QACHC,4BAAU;QACVC,kBAAQ;QACRC,+BAAqB;KACtB;IACDC,YAAY;QACVC,gDAAuB;QACvBC,oDAAyB;QACzBC,8GAAsD;QACtDC,oEAAiC;QACjCC,8DAA8B;QAC9BC,wDAA2B;QAC3BC,gFAAuC;QACvCC,0DAA4B;QAC5BC,gGAA+C;QAC/CC,0DAA4B;QAC5BC,oEAAiC;QACjCC,sEAAkC;QAClCC,8EAAsC;QACtCC,4DAA6B;QAC7BC,kDAAwB;QACxBC,4EAAqC;KACtC;IACDC,aAAa,EAAE;AACjB"}
@@ -24,6 +24,9 @@ _export(exports, {
24
24
  get Printer () {
25
25
  return _printerentity.Printer;
26
26
  },
27
+ get PrinterMaintenanceLog () {
28
+ return _printermaintenancelogentity.PrinterMaintenanceLog;
29
+ },
27
30
  get PrinterTag () {
28
31
  return _printertagentity.PrinterTag;
29
32
  },
@@ -58,5 +61,6 @@ const _refreshtokenentity = require("./refresh-token.entity");
58
61
  const _printertagentity = require("./printer-tag.entity");
59
62
  const _tagentity = require("./tag.entity");
60
63
  const _printjobentity = require("./print-job.entity");
64
+ const _printermaintenancelogentity = require("./printer-maintenance-log.entity");
61
65
 
62
66
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/entities/index.ts"],"names":["CameraStream","Floor","FloorPosition","PrintJob","Printer","PrinterTag","RefreshToken","Role","Settings","Tag","User","UserRole"],"mappings":";;;;;;;;;;;QACSA;eAAAA,gCAAY;;QACZC;eAAAA,kBAAK;;QACLC;eAAAA,kCAAa;;QAQbC;eAAAA,wBAAQ;;QAPRC;eAAAA,sBAAO;;QAKPC;eAAAA,4BAAU;;QADVC;eAAAA,gCAAY;;QAHZC;eAAAA,gBAAI;;QAEJC;eAAAA,wBAAQ;;QAGRC;eAAAA,cAAG;;QAVHC;eAAAA,gBAAI;;QAMJC;eAAAA,wBAAQ;;;4BANI;oCACQ;6BACP;qCACQ;+BACN;4BACH;gCACI;gCACA;oCACI;kCACF;2BACP;gCACK"}
1
+ {"version":3,"sources":["../../src/entities/index.ts"],"names":["CameraStream","Floor","FloorPosition","PrintJob","Printer","PrinterMaintenanceLog","PrinterTag","RefreshToken","Role","Settings","Tag","User","UserRole"],"mappings":";;;;;;;;;;;QACSA;eAAAA,gCAAY;;QACZC;eAAAA,kBAAK;;QACLC;eAAAA,kCAAa;;QAQbC;eAAAA,wBAAQ;;QAPRC;eAAAA,sBAAO;;QAQPC;eAAAA,kDAAqB;;QAHrBC;eAAAA,4BAAU;;QADVC;eAAAA,gCAAY;;QAHZC;eAAAA,gBAAI;;QAEJC;eAAAA,wBAAQ;;QAGRC;eAAAA,cAAG;;QAVHC;eAAAA,gBAAI;;QAMJC;eAAAA,wBAAQ;;;4BANI;oCACQ;6BACP;qCACQ;+BACN;4BACH;gCACI;gCACA;oCACI;kCACF;2BACP;gCACK;6CACa"}
@@ -49,9 +49,13 @@ _ts_decorate([
49
49
  ], PrintJob.prototype, "id", void 0);
50
50
  _ts_decorate([
51
51
  (0, _typeorm.ManyToOne)(()=>_printerentity.Printer, {
52
+ nullable: true,
52
53
  onDelete: "SET NULL"
53
54
  }),
54
- _ts_metadata("design:type", typeof _printerentity.Printer === "undefined" ? Object : _printerentity.Printer)
55
+ (0, _typeorm.JoinColumn)({
56
+ name: "printerId"
57
+ }),
58
+ _ts_metadata("design:type", typeof _typeorm.Relation === "undefined" ? Object : _typeorm.Relation)
55
59
  ], PrintJob.prototype, "printer", void 0);
56
60
  _ts_decorate([
57
61
  (0, _typeorm.Column)({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/entities/print-job.entity.ts"],"names":["PrintJob","id","printer","printerId","printerName","fileName","fileStorageId","fileFormat","fileSize","fileHash","createdAt","updatedAt","analyzedAt","startedAt","endedAt","status","analysisState","statusReason","progress","metadata","statistics","queuePosition","queueGroup","Printer","onDelete","nullable","type","Date","default"],"mappings":";;;;+BAwJaA;;;eAAAA;;;yBAxJyF;+BAC9E;;;;;;;;;;AAuJjB,MAAMA;IAEXC,GAAW;IAGXC,QAAkB;IAGlBC,UAAyB;IAGzBC,YAA2B;IAI3BC,SAAiB;IAGjBC,cAA6B;IAG7BC,WAAkC;IAGlCC,SAAwB;IAGxBC,SAAwB;IAIxBC,UAAgB;IAGhBC,UAAgB;IAGhBC,WAAwB;IAGxBC,UAAuB;IAGvBC,QAAqB;IAIrBC,OAAuB;IAGvBC,cAA6B;IAG7BC,aAA4B;IAI5BC,SAAwB;IAIxBC,SAAkC;IAIlCC,WAAmC;IAInCC,cAA6B;IAG7BC,WAA0B;AAC5B;;;;;;gCArEmBC,sBAAO;QAAIC,UAAU;;;;;;QAG5BC,UAAU;;;;;;QAGVC,MAAM;QAAWD,UAAU;;;;;;QAI3BC,MAAM;QAAWD,UAAU;;;;;;QAG3BC,MAAM;QAAWD,UAAU;;;;;;QAG3BC,MAAM;QAAWD,UAAU;;;;;;QAG3BC,MAAM;QAAOD,UAAU;;;;;;QAGvBC,MAAM;QAAWD,UAAU;;;;;;;;;;;;;;QAU3BC,MAAMC;QAAMF,UAAU;;;;;;QAGtBC,MAAMC;QAAMF,UAAU;;;;;;QAGtBC,MAAMC;QAAMF,UAAU;;;;;;QAItBC,MAAM;QAAWD,UAAU;QAAOG,SAAS;;;;;;QAG3CF,MAAM;QAAWD,UAAU;QAAOG,SAAS;;;;;;QAG3CF,MAAM;QAAWD,UAAU;;;;;;QAI3BC,MAAM;QAASD,UAAU;;;;;;QAIzBC,MAAM;QAAQD,UAAU;;;;;;QAIxBC,MAAM;QAAQD,UAAU;;;;;;QAIxBC,MAAM;QAAOD,UAAU;;;;;;QAGvBC,MAAM;QAAWD,UAAU"}
1
+ {"version":3,"sources":["../../src/entities/print-job.entity.ts"],"names":["PrintJob","id","printer","printerId","printerName","fileName","fileStorageId","fileFormat","fileSize","fileHash","createdAt","updatedAt","analyzedAt","startedAt","endedAt","status","analysisState","statusReason","progress","metadata","statistics","queuePosition","queueGroup","Printer","nullable","onDelete","name","type","Date","default"],"mappings":";;;;+BAiKaA;;;eAAAA;;;yBAxJN;+BACiB;;;;;;;;;;AAuJjB,MAAMA;IAEXC,GAAW;IAIXC,QAA4B;IAE5BC,UAAyB;IAGzBC,YAA2B;IAI3BC,SAAiB;IAGjBC,cAA6B;IAG7BC,WAAkC;IAGlCC,SAAwB;IAGxBC,SAAwB;IAIxBC,UAAgB;IAGhBC,UAAgB;IAGhBC,WAAwB;IAGxBC,UAAuB;IAGvBC,QAAqB;IAIrBC,OAAuB;IAGvBC,cAA6B;IAG7BC,aAA4B;IAI5BC,SAAwB;IAIxBC,SAAkC;IAIlCC,WAAmC;IAInCC,cAA6B;IAG7BC,WAA0B;AAC5B;;;;;;gCArEmBC,sBAAO;QAAIC,UAAU;QAAMC,UAAU;;;QACxCC,MAAM;;;;;;QAEVF,UAAU;;;;;;QAGVG,MAAM;QAAWH,UAAU;;;;;;QAI3BG,MAAM;QAAWH,UAAU;;;;;;QAG3BG,MAAM;QAAWH,UAAU;;;;;;QAG3BG,MAAM;QAAWH,UAAU;;;;;;QAG3BG,MAAM;QAAOH,UAAU;;;;;;QAGvBG,MAAM;QAAWH,UAAU;;;;;;;;;;;;;;QAU3BG,MAAMC;QAAMJ,UAAU;;;;;;QAGtBG,MAAMC;QAAMJ,UAAU;;;;;;QAGtBG,MAAMC;QAAMJ,UAAU;;;;;;QAItBG,MAAM;QAAWH,UAAU;QAAOK,SAAS;;;;;;QAG3CF,MAAM;QAAWH,UAAU;QAAOK,SAAS;;;;;;QAG3CF,MAAM;QAAWH,UAAU;;;;;;QAI3BG,MAAM;QAASH,UAAU;;;;;;QAIzBG,MAAM;QAAQH,UAAU;;;;;;QAIxBG,MAAM;QAAQH,UAAU;;;;;;QAIxBG,MAAM;QAAOH,UAAU;;;;;;QAGvBG,MAAM;QAAWH,UAAU"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "PrinterMaintenanceLog", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return PrinterMaintenanceLog;
9
+ }
10
+ });
11
+ const _typeorm = require("typeorm");
12
+ const _printerentity = require("./printer.entity");
13
+ const _userentity = require("./user.entity");
14
+ function _ts_decorate(decorators, target, key, desc) {
15
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
19
+ }
20
+ function _ts_metadata(k, v) {
21
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
22
+ }
23
+ class PrinterMaintenanceLog {
24
+ id;
25
+ createdAt;
26
+ createdBy;
27
+ createdByUser;
28
+ createdByUserId;
29
+ printer;
30
+ printerId;
31
+ printerName;
32
+ printerUrl;
33
+ metadata;
34
+ completed;
35
+ completedAt;
36
+ completedByUser;
37
+ completedByUserId;
38
+ completedBy;
39
+ }
40
+ _ts_decorate([
41
+ (0, _typeorm.PrimaryGeneratedColumn)(),
42
+ _ts_metadata("design:type", Number)
43
+ ], PrinterMaintenanceLog.prototype, "id", void 0);
44
+ _ts_decorate([
45
+ (0, _typeorm.CreateDateColumn)(),
46
+ _ts_metadata("design:type", typeof Date === "undefined" ? Object : Date)
47
+ ], PrinterMaintenanceLog.prototype, "createdAt", void 0);
48
+ _ts_decorate([
49
+ (0, _typeorm.Column)({
50
+ nullable: false
51
+ }),
52
+ _ts_metadata("design:type", String)
53
+ ], PrinterMaintenanceLog.prototype, "createdBy", void 0);
54
+ _ts_decorate([
55
+ (0, _typeorm.ManyToOne)(()=>_userentity.User, {
56
+ onDelete: "SET NULL",
57
+ nullable: true
58
+ }),
59
+ _ts_metadata("design:type", Object)
60
+ ], PrinterMaintenanceLog.prototype, "createdByUser", void 0);
61
+ _ts_decorate([
62
+ (0, _typeorm.Column)({
63
+ nullable: true
64
+ }),
65
+ _ts_metadata("design:type", Object)
66
+ ], PrinterMaintenanceLog.prototype, "createdByUserId", void 0);
67
+ _ts_decorate([
68
+ (0, _typeorm.ManyToOne)(()=>_printerentity.Printer, {
69
+ onDelete: "SET NULL",
70
+ nullable: true
71
+ }),
72
+ _ts_metadata("design:type", Object)
73
+ ], PrinterMaintenanceLog.prototype, "printer", void 0);
74
+ _ts_decorate([
75
+ (0, _typeorm.Column)({
76
+ nullable: true
77
+ }),
78
+ _ts_metadata("design:type", Object)
79
+ ], PrinterMaintenanceLog.prototype, "printerId", void 0);
80
+ _ts_decorate([
81
+ (0, _typeorm.Column)({
82
+ nullable: false
83
+ }),
84
+ _ts_metadata("design:type", String)
85
+ ], PrinterMaintenanceLog.prototype, "printerName", void 0);
86
+ _ts_decorate([
87
+ (0, _typeorm.Column)({
88
+ nullable: false
89
+ }),
90
+ _ts_metadata("design:type", String)
91
+ ], PrinterMaintenanceLog.prototype, "printerUrl", void 0);
92
+ _ts_decorate([
93
+ (0, _typeorm.Column)({
94
+ nullable: false,
95
+ type: "json",
96
+ default: "{}"
97
+ }),
98
+ _ts_metadata("design:type", Object)
99
+ ], PrinterMaintenanceLog.prototype, "metadata", void 0);
100
+ _ts_decorate([
101
+ (0, _typeorm.Column)({
102
+ nullable: false,
103
+ default: false
104
+ }),
105
+ _ts_metadata("design:type", Boolean)
106
+ ], PrinterMaintenanceLog.prototype, "completed", void 0);
107
+ _ts_decorate([
108
+ (0, _typeorm.Column)({
109
+ nullable: true
110
+ }),
111
+ _ts_metadata("design:type", typeof Date === "undefined" ? Object : Date)
112
+ ], PrinterMaintenanceLog.prototype, "completedAt", void 0);
113
+ _ts_decorate([
114
+ (0, _typeorm.ManyToOne)(()=>_userentity.User, {
115
+ onDelete: "SET NULL",
116
+ nullable: true
117
+ }),
118
+ _ts_metadata("design:type", Object)
119
+ ], PrinterMaintenanceLog.prototype, "completedByUser", void 0);
120
+ _ts_decorate([
121
+ (0, _typeorm.Column)({
122
+ nullable: true
123
+ }),
124
+ _ts_metadata("design:type", Object)
125
+ ], PrinterMaintenanceLog.prototype, "completedByUserId", void 0);
126
+ _ts_decorate([
127
+ (0, _typeorm.Column)({
128
+ nullable: true
129
+ }),
130
+ _ts_metadata("design:type", String)
131
+ ], PrinterMaintenanceLog.prototype, "completedBy", void 0);
132
+ PrinterMaintenanceLog = _ts_decorate([
133
+ (0, _typeorm.Entity)(),
134
+ (0, _typeorm.Index)([
135
+ "printerId"
136
+ ], {
137
+ unique: true,
138
+ where: "completed = 0"
139
+ })
140
+ ], PrinterMaintenanceLog);
141
+
142
+ //# sourceMappingURL=printer-maintenance-log.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/entities/printer-maintenance-log.entity.ts"],"names":["PrinterMaintenanceLog","id","createdAt","createdBy","createdByUser","createdByUserId","printer","printerId","printerName","printerUrl","metadata","completed","completedAt","completedByUser","completedByUserId","completedBy","nullable","User","onDelete","Printer","type","default","unique","where"],"mappings":";;;;+BAaaA;;;eAAAA;;;yBANN;+BACiB;4BACH;;;;;;;;;;AAId,MAAMA;IAEXC,GAAW;IAGXC,UAAgB;IAEhBC,UAAkB;IAElBC,cAA2B;IAE3BC,gBAA+B;IAG/BC,QAAwB;IAExBC,UAAyB;IAEzBC,YAAoB;IAEpBC,WAAmB;IAGnBC,SAKE;IAGFC,UAAmB;IAEnBC,YAAmB;IAEnBC,gBAA6B;IAE7BC,kBAAiC;IAEjCC,YAAqB;AACvB;;;;;;;;;;;QAlCYC,UAAU;;;;;gCAEHC,gBAAI;QAAIC,UAAU;QAAYF,UAAU;;;;;;QAE/CA,UAAU;;;;;gCAGHG,sBAAO;QAAID,UAAU;QAAYF,UAAU;;;;;;QAElDA,UAAU;;;;;;QAEVA,UAAU;;;;;;QAEVA,UAAU;;;;;;QAGVA,UAAU;QAAOI,MAAM;QAAQC,SAAS;;;;;;QAQxCL,UAAU;QAAOK,SAAS;;;;;;QAE1BL,UAAU;;;;;gCAEHC,gBAAI;QAAIC,UAAU;QAAYF,UAAU;;;;;;QAE/CA,UAAU;;;;;;QAEVA,UAAU;;;;;;;QAvCd;;QAAgBM,QAAQ;QAAMC,OAAO"}
@@ -89,9 +89,10 @@ _ts_decorate([
89
89
  ], Printer.prototype, "enabled", void 0);
90
90
  _ts_decorate([
91
91
  (0, _typeorm.Column)({
92
+ type: "varchar",
92
93
  nullable: true
93
94
  }),
94
- _ts_metadata("design:type", String)
95
+ _ts_metadata("design:type", Object)
95
96
  ], Printer.prototype, "disabledReason", void 0);
96
97
  _ts_decorate([
97
98
  (0, _typeorm.Column)({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/entities/printer.entity.ts"],"names":["Printer","id","name","printerURL","printerType","apiKey","username","password","enabled","disabledReason","assignee","printerTags","dateAdded","feedRate","flowRate","default","OctoprintType","nullable","PrinterTag","pc","printer","type"],"mappings":";;;;+BAMaA;;;eAAAA;;;gCANkB;yBAC+D;kCACnE;qCACG;;;;;;;;;;AAGvB,MAAMA;IAEXC,GAAW;IAGXC,KAAa;IAGbC,WAAmB;IAGnBC,YAAoB;IAIpBC,OAAe;IAIfC,SAAiB;IAIjBC,SAAiB;IAMjBC,QAAiB;IAKjBC,eAAwB;IAKxBC,SAAkB;IAMlBC,YAAoC;IAGpCC,UAAkB;IAGlBC,SAAkB;IAGlBC,SAAkB;AACpB;;;;;;;;;;;;;;;QA7CYC,SAASC,kCAAa;QAAEC,UAAU;;;;;;QAGlCF,SAAS;QAAIE,UAAU;;;;;;;QAIvBF,SAAS;QAAIE,UAAU;;;;;;;QAIvBF,SAAS;QAAIE,UAAU;;;;;;;QAK/BA,UAAU;QACVF,SAAS;;;;;;QAKTE,UAAU;;;;;;QAKVA,UAAU;;;;;gCAKJC,4BAAU,GACfC,KAAOA,GAAGC,OAAO;;;;;QAIAC,MAAM;;;;;;QAGhBJ,UAAU;;;;;;QAGVA,UAAU"}
1
+ {"version":3,"sources":["../../src/entities/printer.entity.ts"],"names":["Printer","id","name","printerURL","printerType","apiKey","username","password","enabled","disabledReason","assignee","printerTags","dateAdded","feedRate","flowRate","default","OctoprintType","nullable","type","PrinterTag","pc","printer"],"mappings":";;;;+BAMaA;;;eAAAA;;;gCANkB;yBAC+D;kCACnE;qCACG;;;;;;;;;;AAGvB,MAAMA;IAEXC,GAAW;IAGXC,KAAa;IAGbC,WAAmB;IAGnBC,YAAoB;IAIpBC,OAAe;IAIfC,SAAiB;IAIjBC,SAAiB;IAMjBC,QAAiB;IAGjBC,eAA8B;IAK9BC,SAAkB;IAMlBC,YAAoC;IAGpCC,UAAkB;IAGlBC,SAAkB;IAGlBC,SAAkB;AACpB;;;;;;;;;;;;;;;QA3CYC,SAASC,kCAAa;QAAEC,UAAU;;;;;;QAGlCF,SAAS;QAAIE,UAAU;;;;;;;QAIvBF,SAAS;QAAIE,UAAU;;;;;;;QAIvBF,SAAS;QAAIE,UAAU;;;;;;;QAK/BA,UAAU;QACVF,SAAS;;;;;;QAIDG,MAAM;QAAWD,UAAU;;;;;;QAInCA,UAAU;;;;;gCAKJE,4BAAU,GACfC,KAAOA,GAAGC,OAAO;;;;;QAIAH,MAAM;;;;;;QAGhBD,UAAU;;;;;;QAGVA,UAAU"}
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "createFileLoggingTransport", {
9
9
  }
10
10
  });
11
11
  const _luxon = require("luxon");
12
- const _path = require("path");
12
+ const _nodepath = require("node:path");
13
13
  const _fsutils = require("../../utils/fs.utils");
14
14
  const _serverconstants = require("../../server.constants");
15
15
  const _winston = /*#__PURE__*/ _interop_require_default(require("winston"));
@@ -23,7 +23,7 @@ function createFileLoggingTransport(options) {
23
23
  return;
24
24
  }
25
25
  const date = _luxon.DateTime.now().toISODate();
26
- const logFilePath = (0, _path.join)((0, _fsutils.superRootPath)(), _serverconstants.AppConstants.defaultLogsFolder, `${_serverconstants.AppConstants.logAppName}-${date}.log`);
26
+ const logFilePath = (0, _nodepath.join)((0, _fsutils.getMediaPath)(), _serverconstants.AppConstants.defaultLogsFolder, `${_serverconstants.AppConstants.logAppName}-${date}.log`);
27
27
  return new _winston.default.transports.File({
28
28
  level: options.isTest ? "warn" : "info",
29
29
  filename: logFilePath,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/handlers/logging/file-logging.transport.ts"],"names":["createFileLoggingTransport","options","enabled","date","DateTime","now","toISODate","logFilePath","join","superRootPath","AppConstants","defaultLogsFolder","logAppName","winston","transports","File","level","isTest","filename","maxsize","maxFiles"],"mappings":";;;;+BAWgBA;;;eAAAA;;;uBAXS;sBACJ;yBACS;iCACD;gEACT;;;;;;AAOb,SAASA,2BAA2BC,OAA0B;IACnE,IAAI,CAACA,QAAQC,OAAO,EAAE;QACpB;IACF;IAEA,MAAMC,OAAOC,eAAQ,CAACC,GAAG,GAAGC,SAAS;IACrC,MAAMC,cAAcC,IAAAA,UAAI,EAACC,IAAAA,sBAAa,KAAIC,6BAAY,CAACC,iBAAiB,EAAE,GAAGD,6BAAY,CAACE,UAAU,CAAC,CAAC,EAAET,KAAK,IAAI,CAAC;IAElH,OAAO,IAAIU,gBAAO,CAACC,UAAU,CAACC,IAAI,CAAC;QACjCC,OAAOf,QAAQgB,MAAM,GAAG,SAAS;QACjCC,UAAUX;QACVY,SAAS;QACTC,UAAU;IACZ;AACF"}
1
+ {"version":3,"sources":["../../../src/handlers/logging/file-logging.transport.ts"],"names":["createFileLoggingTransport","options","enabled","date","DateTime","now","toISODate","logFilePath","join","getMediaPath","AppConstants","defaultLogsFolder","logAppName","winston","transports","File","level","isTest","filename","maxsize","maxFiles"],"mappings":";;;;+BAWgBA;;;eAAAA;;;uBAXS;0BACJ;yBACQ;iCACA;gEACT;;;;;;AAOb,SAASA,2BAA2BC,OAA0B;IACnE,IAAI,CAACA,QAAQC,OAAO,EAAE;QACpB;IACF;IAEA,MAAMC,OAAOC,eAAQ,CAACC,GAAG,GAAGC,SAAS;IACrC,MAAMC,cAAcC,IAAAA,cAAI,EAACC,IAAAA,qBAAY,KAAIC,6BAAY,CAACC,iBAAiB,EAAE,GAAGD,6BAAY,CAACE,UAAU,CAAC,CAAC,EAAET,KAAK,IAAI,CAAC;IAEjH,OAAO,IAAIU,gBAAO,CAACC,UAAU,CAACC,IAAI,CAAC;QACjCC,OAAOf,QAAQgB,MAAM,GAAG,SAAS;QACjCC,UAAUX;QACVY,SAAS;QACTC,UAAU;IACZ;AACF"}
package/dist/index.js CHANGED
@@ -2,17 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
+ const _dotenv = /*#__PURE__*/ _interop_require_default(require("dotenv"));
6
+ const _nodepath = require("node:path");
5
7
  const _node = require("@sentry/node");
6
8
  const _serverenv = require("./server.env");
7
9
  const _servercore = require("./server.core");
8
10
  const _containertokens = require("./container.tokens");
9
- const _dotenv = require("dotenv");
10
11
  const _logger = require("./handlers/logger");
11
- const _nodepath = require("node:path");
12
- const _fsutils = require("./utils/fs.utils");
13
12
  const _staticlogger = require("./handlers/logging/static.logger");
14
- (0, _dotenv.config)({
15
- path: (0, _nodepath.join)((0, _fsutils.superRootPath)(), "./.env")
13
+ const _fsutils = require("./utils/fs.utils");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ _dotenv.default.config({
20
+ path: process.env.ENV_FILE || (0, _nodepath.join)((0, _fsutils.superRootPath)(), ".env"),
21
+ quiet: true
16
22
  });
17
23
  (0, _staticlogger.createStaticLogger)({
18
24
  enableFileLogs: true
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["config","path","join","superRootPath","createStaticLogger","enableFileLogs","logger","Logger","log","setupEnvConfig","process","on","err","error","reason","setupServer","then","httpServer","container","resolve","DITokens","serverHost","boot","catch","e","console","captureException","flush","exit"],"mappings":";;;;sBAAwC;2BACT;4BACH;iCACH;wBAEF;wBACiB;0BACnB;yBACS;8BACK;AAEnCA,IAAAA,cAAM,EAAC;IAAEC,MAAMC,IAAAA,cAAI,EAACC,IAAAA,sBAAa,KAAI;AAAU;AAC/CC,IAAAA,gCAAkB,EAAC;IAAEC,gBAAgB;AAAK;AAE1C,MAAMC,SAAS,IAAIC,qBAAM,CAAC;AAC1BD,OAAOE,GAAG,CAAC;AAEXC,IAAAA,yBAAc;AAEdC,QAAQC,EAAE,CAAC,qBAAqB,CAACC;IAC/BN,OAAOO,KAAK,CAAC,sBAAsBD;AACrC;AAEAF,QAAQC,EAAE,CAAC,sBAAsB,CAACG;IAChCR,OAAOO,KAAK,CAAC,+BAA+BC;AAC9C;AAEAC,IAAAA,uBAAW,IAAGC,IAAI,CAAC,CAAC,EAAEC,UAAU,EAAEC,SAAS,EAAE;IAC3CA,UACGC,OAAO,CAAaC,yBAAQ,CAACC,UAAU,EACvCC,IAAI,CAACL,YACLM,KAAK,CAAC,OAAOC;QACZC,QAAQZ,KAAK,CAAC,2DAA2DW;QAEzEE,IAAAA,sBAAgB,EAACF;QACjB,MAAMG,IAAAA,WAAK,EAAC;QACZjB,QAAQkB,IAAI,CAAC;IACf;AACJ"}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["dotenv","config","path","process","env","ENV_FILE","join","superRootPath","quiet","createStaticLogger","enableFileLogs","logger","Logger","log","setupEnvConfig","on","err","error","reason","setupServer","then","httpServer","container","resolve","DITokens","serverHost","boot","catch","e","console","captureException","flush","exit"],"mappings":";;;;+DAAmB;0BACE;sBACmB;2BACT;4BACH;iCACH;wBAEe;8BACL;yBACL;;;;;;AAE9BA,eAAM,CAACC,MAAM,CAAC;IACZC,MAAMC,QAAQC,GAAG,CAACC,QAAQ,IAAIC,IAAAA,cAAI,EAACC,IAAAA,sBAAa,KAAI;IACpDC,OAAO;AACT;AAEAC,IAAAA,gCAAkB,EAAC;IAAEC,gBAAgB;AAAK;AAC1C,MAAMC,SAAS,IAAIC,qBAAM,CAAC;AAC1BD,OAAOE,GAAG,CAAC;AAEXC,IAAAA,yBAAc;AAEdX,QAAQY,EAAE,CAAC,qBAAqB,CAACC;IAC/BL,OAAOM,KAAK,CAAC,sBAAsBD;AACrC;AAEAb,QAAQY,EAAE,CAAC,sBAAsB,CAACG;IAChCP,OAAOM,KAAK,CAAC,+BAA+BC;AAC9C;AAEAC,IAAAA,uBAAW,IAAGC,IAAI,CAAC,CAAC,EAAEC,UAAU,EAAEC,SAAS,EAAE;IAC3CA,UACGC,OAAO,CAAaC,yBAAQ,CAACC,UAAU,EACvCC,IAAI,CAACL,YACLM,KAAK,CAAC,OAAOC;QACZC,QAAQZ,KAAK,CAAC,2DAA2DW;QAEzEE,IAAAA,sBAAgB,EAACF;QACjB,MAAMG,IAAAA,WAAK,EAAC;QACZ5B,QAAQ6B,IAAI,CAAC;IACf;AACJ"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "AddPrinterMaintenanceLog1767909428129", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return AddPrinterMaintenanceLog1767909428129;
9
+ }
10
+ });
11
+ class AddPrinterMaintenanceLog1767909428129 {
12
+ name = 'AddPrinterMaintenanceLog1767909428129';
13
+ async up(queryRunner) {
14
+ await queryRunner.query(`
15
+ CREATE TABLE "printer_maintenance_log"
16
+ (
17
+ "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
18
+ "createdAt" datetime NOT NULL DEFAULT (datetime('now')),
19
+ "createdBy" varchar NOT NULL,
20
+ "createdByUserId" integer,
21
+ "printerId" integer,
22
+ "printerName" varchar NOT NULL,
23
+ "printerUrl" varchar NOT NULL,
24
+ "metadata" json NOT NULL DEFAULT ('{}'),
25
+ "completed" boolean NOT NULL DEFAULT (0),
26
+ "completedAt" datetime,
27
+ "completedByUserId" integer,
28
+ "completedBy" varchar,
29
+ CONSTRAINT "FK_d54c05d7dc0cf426afc8175cfdf" FOREIGN KEY ("createdByUserId") REFERENCES "user" ("id") ON DELETE
30
+ SET NULL ON UPDATE NO ACTION,
31
+ CONSTRAINT "FK_9740e3fd40554a0e40e595ff66d" FOREIGN KEY ("printerId") REFERENCES "printer" ("id") ON DELETE
32
+ SET NULL ON UPDATE NO ACTION,
33
+ CONSTRAINT "FK_36c3aa0f9077a6c06e93e7ec79e" FOREIGN KEY ("completedByUserId") REFERENCES "user" ("id") ON DELETE
34
+ SET NULL ON UPDATE NO ACTION
35
+ )
36
+ `);
37
+ await queryRunner.query(`
38
+ CREATE UNIQUE INDEX "IDX_14acf30ae0f34a69d98bf92064" ON "printer_maintenance_log" ("printerId")
39
+ WHERE completed = 0
40
+ `);
41
+ }
42
+ async down(queryRunner) {
43
+ await queryRunner.query(`
44
+ DROP INDEX "IDX_14acf30ae0f34a69d98bf92064"
45
+ `);
46
+ await queryRunner.query(`
47
+ DROP TABLE "printer_maintenance_log"
48
+ `);
49
+ }
50
+ }
51
+
52
+ //# sourceMappingURL=1767909428129-AddPrinterMaintenanceLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/migrations/1767909428129-AddPrinterMaintenanceLog.ts"],"names":["AddPrinterMaintenanceLog1767909428129","name","up","queryRunner","query","down"],"mappings":";;;;+BAEaA;;;eAAAA;;;AAAN,MAAMA;IACXC,OAAO,wCAAuC;IAE9C,MAAaC,GAAGC,WAAwB,EAAiB;QACvD,MAAMA,YAAYC,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;IAsBzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;;IAGzB,CAAC;IACH;IAEA,MAAaC,KAAKF,WAAwB,EAAiB;QACzD,MAAMA,YAAYC,KAAK,CAAC,CAAC;;IAEzB,CAAC;QACD,MAAMD,YAAYC,KAAK,CAAC,CAAC;;IAEzB,CAAC;IACH;AACF"}
@@ -13,17 +13,20 @@ const AppConstants = {
13
13
  VERSION_KEY: "npm_package_version",
14
14
  SERVER_PORT_KEY: "SERVER_PORT",
15
15
  DATABASE_PATH: "DATABASE_PATH",
16
+ defaultDatabasePath: "./database",
16
17
  DATABASE_FILE: "DATABASE_FILE",
18
+ defaultDatabaseFile: "./fdm-monster.sqlite",
17
19
  pm2ServiceName: "FDM",
18
20
  logAppName: "fdm-monster",
19
- defaultFileStorageFolder: "./media",
20
- defaultLogsFolder: "./media/logs",
21
- defaultLogZipsFolder: "./media/log-zips",
22
- defaultClientBundleStorage: "./media/client-dist",
23
- defaultClientBundleZipsStorage: "./media/client-dist-zips",
24
- defaultPrinterThumbnailsStorage: "./media/printer-thumbnails",
25
- defaultFileUploadsStorage: "./media/file-uploads",
26
- defaultPrintFilesStorage: "./media/files",
21
+ MEDIA_PATH: "MEDIA_PATH",
22
+ defaultBaseMediaPath: "./media",
23
+ defaultLogsFolder: "logs",
24
+ defaultLogZipsFolder: "log-zips",
25
+ defaultClientBundleStorage: "client-dist",
26
+ defaultClientBundleZipsStorage: "client-dist-zips",
27
+ defaultPrinterThumbnailsStorage: "printer-thumbnails",
28
+ defaultFileUploadsStorage: "file-uploads",
29
+ defaultPrintFilesStorage: "files",
27
30
  defaultAcceptedGcodeExtensions: [
28
31
  ".gcode",
29
32
  ".bgcode"
@@ -70,9 +73,10 @@ const AppConstants = {
70
73
  clientPackageName: "@fdm-monster/client-next",
71
74
  clientRepoName: "fdm-monster-client-next",
72
75
  githubUrl: "https://github.com/fdm-monster/fdm-monster",
76
+ docsUrl: "https://docs.fdm-monster.net",
73
77
  orgName: "fdm-monster",
74
78
  currentWizardVersion: 1,
75
- defaultClientMinimum: "2.1.5",
79
+ defaultClientMinimum: "2.2.3",
76
80
  defaultWebsocketHandshakeTimeout: 3000,
77
81
  defaultSocketThrottleRate: 1,
78
82
  debugSocketStatesKey: "DEBUG_SOCKET_STATES",
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server.constants.ts"],"names":["AppConstants","NODE_ENV_KEY","VERSION_KEY","SERVER_PORT_KEY","DATABASE_PATH","DATABASE_FILE","pm2ServiceName","logAppName","defaultFileStorageFolder","defaultLogsFolder","defaultLogZipsFolder","defaultClientBundleStorage","defaultClientBundleZipsStorage","defaultPrinterThumbnailsStorage","defaultFileUploadsStorage","defaultPrintFilesStorage","defaultAcceptedGcodeExtensions","defaultAcceptedBambuExtensions","defaultServerPort","apiRoute","enableClientDistAutoUpdateKey","OVERRIDE_LOGIN_REQUIRED","OVERRIDE_REGISTRATION_ENABLED","DEFAULT_USERNAME_MINLEN","DEFAULT_PASSWORD_MINLEN","OVERRIDE_JWT_SECRET","OVERRIDE_JWT_EXPIRES_IN","DEFAULT_JWT_EXPIRES_IN","DEFAULT_REFRESH_TOKEN_ATTEMPTS","DEFAULT_REFRESH_TOKEN_EXPIRY","OVERRIDE_JWT_ISSUER","DEFAULT_JWT_ISSUER","OVERRIDE_JWT_AUDIENCE","DEFAULT_JWT_AUDIENCE","OVERRIDE_IS_DEMO_MODE","OVERRIDE_DEMO_USERNAME","DEFAULT_DEMO_USERNAME","OVERRIDE_DEMO_PASSWORD","DEFAULT_DEMO_PASSWORD","OVERRIDE_DEMO_ROLE","DEFAULT_DEMO_ROLE","defaultDevelopmentEnv","ENABLE_COLORED_LOGS_KEY","defaultTestEnv","defaultProductionEnv","knownEnvNames","GITHUB_PAT","serverPackageName","serverRepoName","clientPackageName","clientRepoName","githubUrl","orgName","currentWizardVersion","defaultClientMinimum","defaultWebsocketHandshakeTimeout","defaultSocketThrottleRate","debugSocketStatesKey","defaultDebugSocketStates","monsterPiFilePath","sentryCustomDsnToken","sentryCustomDsnDefault","ENABLE_PROMETHEUS_METRICS","ENABLE_LOKI_LOGGING","LOKI_ADDRESS","LOKI_TIMEOUT_SECONDS","LOKI_INTERVAL","DISABLE_SWAGGER_OPENAPI","GENERATE_SWAGGER_JSON"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,eAAe;IAC1BC,cAAc;IACdC,aAAa;IACbC,iBAAiB;IACjBC,eAAe;IACfC,eAAe;IAEfC,gBAAgB;IAChBC,YAAY;IAGZC,0BAA0B;IAC1BC,mBAAmB;IACnBC,sBAAsB;IAEtBC,4BAA4B;IAC5BC,gCAAgC;IAChCC,iCAAiC;IACjCC,2BAA2B;IAC3BC,0BAA0B;IAC1BC,gCAAgC;QAAC;QAAU;KAAU;IACrDC,gCAAgC;QAAC;QAAU;KAAO;IAClDC,mBAAmB;IACnBC,UAAU;IACVC,+BAA+B;IAG/BC,yBAAyB;IAEzBC,+BAA+B;IAE/BC,yBAAyB;IAEzBC,yBAAyB;IAEzBC,qBAAqB;IAErBC,yBAAyB;IACzBC,wBAAwB,KAAK;IAE7BC,gCAAgC,CAAC;IAEjCC,8BAA8B,KAAK,KAAK,KAAK;IAE7CC,qBAAqB;IACrBC,oBAAoB;IAEpBC,uBAAuB;IACvBC,sBAAsB;IAEtBC,uBAAuB;IACvBC,wBAAwB;IACxBC,uBAAuB;IACvBC,wBAAwB;IACxBC,uBAAuB;IACvBC,oBAAoB;IACpBC,mBAAmB;IAEnBC,uBAAuB;IACvBC,yBAAyB;IACzBC,gBAAgB;IAChBC,sBAAsB;IACtBC,eAAe;QAAC;QAAe;QAAc;KAAO;IACpDC,YAAY;IACZC,mBAAmB;IACnBC,gBAAgB;IAChBC,mBAAmB;IACnBC,gBAAgB;IAChBC,WAAW;IACXC,SAAS;IAETC,sBAAsB;IACtBC,sBAAsB;IAGtBC,kCAAkC;IAClCC,2BAA2B;IAC3BC,sBAAsB;IACtBC,0BAA0B;IAG1BC,mBAAmB;IAGnBC,sBAAsB;IACtBC,wBACE;IAEFC,2BAA2B;IAC3BC,qBAAqB;IACrBC,cAAc;IACdC,sBAAsB;IACtBC,eAAe;IAGfC,yBAAyB;IACzBC,uBAAuB;AACzB"}
1
+ {"version":3,"sources":["../src/server.constants.ts"],"names":["AppConstants","NODE_ENV_KEY","VERSION_KEY","SERVER_PORT_KEY","DATABASE_PATH","defaultDatabasePath","DATABASE_FILE","defaultDatabaseFile","pm2ServiceName","logAppName","MEDIA_PATH","defaultBaseMediaPath","defaultLogsFolder","defaultLogZipsFolder","defaultClientBundleStorage","defaultClientBundleZipsStorage","defaultPrinterThumbnailsStorage","defaultFileUploadsStorage","defaultPrintFilesStorage","defaultAcceptedGcodeExtensions","defaultAcceptedBambuExtensions","defaultServerPort","apiRoute","enableClientDistAutoUpdateKey","OVERRIDE_LOGIN_REQUIRED","OVERRIDE_REGISTRATION_ENABLED","DEFAULT_USERNAME_MINLEN","DEFAULT_PASSWORD_MINLEN","OVERRIDE_JWT_SECRET","OVERRIDE_JWT_EXPIRES_IN","DEFAULT_JWT_EXPIRES_IN","DEFAULT_REFRESH_TOKEN_ATTEMPTS","DEFAULT_REFRESH_TOKEN_EXPIRY","OVERRIDE_JWT_ISSUER","DEFAULT_JWT_ISSUER","OVERRIDE_JWT_AUDIENCE","DEFAULT_JWT_AUDIENCE","OVERRIDE_IS_DEMO_MODE","OVERRIDE_DEMO_USERNAME","DEFAULT_DEMO_USERNAME","OVERRIDE_DEMO_PASSWORD","DEFAULT_DEMO_PASSWORD","OVERRIDE_DEMO_ROLE","DEFAULT_DEMO_ROLE","defaultDevelopmentEnv","ENABLE_COLORED_LOGS_KEY","defaultTestEnv","defaultProductionEnv","knownEnvNames","GITHUB_PAT","serverPackageName","serverRepoName","clientPackageName","clientRepoName","githubUrl","docsUrl","orgName","currentWizardVersion","defaultClientMinimum","defaultWebsocketHandshakeTimeout","defaultSocketThrottleRate","debugSocketStatesKey","defaultDebugSocketStates","monsterPiFilePath","sentryCustomDsnToken","sentryCustomDsnDefault","ENABLE_PROMETHEUS_METRICS","ENABLE_LOKI_LOGGING","LOKI_ADDRESS","LOKI_TIMEOUT_SECONDS","LOKI_INTERVAL","DISABLE_SWAGGER_OPENAPI","GENERATE_SWAGGER_JSON"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,eAAe;IAC1BC,cAAc;IACdC,aAAa;IACbC,iBAAiB;IACjBC,eAAe;IACfC,qBAAqB;IACrBC,eAAe;IACfC,qBAAqB;IAErBC,gBAAgB;IAChBC,YAAY;IAEZC,YAAY;IACZC,sBAAsB;IACtBC,mBAAmB;IACnBC,sBAAsB;IAEtBC,4BAA4B;IAC5BC,gCAAgC;IAChCC,iCAAiC;IACjCC,2BAA2B;IAC3BC,0BAA0B;IAC1BC,gCAAgC;QAAC;QAAU;KAAU;IACrDC,gCAAgC;QAAC;QAAU;KAAO;IAClDC,mBAAmB;IACnBC,UAAU;IACVC,+BAA+B;IAG/BC,yBAAyB;IAEzBC,+BAA+B;IAE/BC,yBAAyB;IAEzBC,yBAAyB;IAEzBC,qBAAqB;IAErBC,yBAAyB;IACzBC,wBAAwB,KAAK;IAE7BC,gCAAgC,CAAC;IAEjCC,8BAA8B,KAAK,KAAK,KAAK;IAE7CC,qBAAqB;IACrBC,oBAAoB;IAEpBC,uBAAuB;IACvBC,sBAAsB;IAEtBC,uBAAuB;IACvBC,wBAAwB;IACxBC,uBAAuB;IACvBC,wBAAwB;IACxBC,uBAAuB;IACvBC,oBAAoB;IACpBC,mBAAmB;IAEnBC,uBAAuB;IACvBC,yBAAyB;IACzBC,gBAAgB;IAChBC,sBAAsB;IACtBC,eAAe;QAAC;QAAe;QAAc;KAAO;IACpDC,YAAY;IACZC,mBAAmB;IACnBC,gBAAgB;IAChBC,mBAAmB;IACnBC,gBAAgB;IAChBC,WAAW;IACXC,SAAS;IACTC,SAAS;IAETC,sBAAsB;IACtBC,sBAAsB;IAGtBC,kCAAkC;IAClCC,2BAA2B;IAC3BC,sBAAsB;IACtBC,0BAA0B;IAG1BC,mBAAmB;IAGnBC,sBAAsB;IACtBC,wBACE;IAEFC,2BAA2B;IAC3BC,qBAAqB;IACrBC,cAAc;IACdC,sBAAsB;IACtBC,eAAe;IAGfC,yBAAyB;IACzBC,uBAAuB;AACzB"}
@@ -18,8 +18,6 @@ const _container = require("./container");
18
18
  const _database = require("./middleware/database");
19
19
  const _globalmiddleware = require("./middleware/global.middleware");
20
20
  const _passport1 = require("./middleware/passport");
21
- const _serverconstants = require("./server.constants");
22
- const _path = require("path");
23
21
  const _fsutils = require("./utils/fs.utils");
24
22
  const _promclient = require("prom-client");
25
23
  const _logger = require("./handlers/logger");
@@ -74,9 +72,14 @@ const httpRequestsTotal = new _promclient.Counter({
74
72
  help: "HTTP requests executed"
75
73
  });
76
74
  async function setupServer() {
75
+ const logger = new _logger.LoggerService("FDM-ServerCore");
77
76
  const httpServer = (0, _express.default)();
78
- const dbFolder = process.env[_serverconstants.AppConstants.DATABASE_PATH] ?? "./database";
79
- (0, _fsutils.ensureDirExists)((0, _path.join)((0, _fsutils.superRootPath)(), dbFolder));
77
+ const databasePath = (0, _fsutils.getDatabaseFolder)();
78
+ (0, _fsutils.ensureDirExists)(databasePath);
79
+ logger.log(`Expecting database at path ${databasePath}`);
80
+ const mediaPath = (0, _fsutils.getMediaPath)();
81
+ (0, _fsutils.ensureDirExists)(mediaPath);
82
+ logger.log(`Expecting media at path ${mediaPath}`);
80
83
  const container = (0, _container.configureContainer)();
81
84
  (0, _passport1.initializePassportStrategies)(_passport.default, container);
82
85
  httpServer.use((req, res, next)=>{
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server.core.ts"],"names":["setupServer","httpRequestsTotal","Counter","name","help","httpServer","express","dbFolder","process","env","AppConstants","DATABASE_PATH","ensureDirExists","join","superRootPath","container","configureContainer","initializePassportStrategies","passport","use","req","res","next","route","path","includes","start","hrtime","on","inc","delta","duration","logger","LoggerService","newDebug","message","method","originalUrl","statusCode","responseTimeMs","toFixed","clientIp","ip","userAgent","get","cors","origin","methods","helmet","contentSecurityPolicy","json","limit","cookieParser","urlencoded","extended","initialize","authenticate","session","scopePerRequest","interceptDatabaseError","validateWizardCompleted","interceptRoles"],"mappings":";;;;+BAqBsBA;;;eAAAA;;;iEArBoB;qEACjB;iEACJ;6DACJ;+DACE;+BACa;2BACG;0BACI;kCACiB;2BACX;iCAChB;sBACR;yBAC0B;4BACvB;wBACM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE9B,MAAMC,oBAAoB,IAAIC,mBAAO,CAAC;IACpCC,MAAM;IACNC,MAAM;AACR;AAEO,eAAeJ;IACpB,MAAMK,aAAaC,IAAAA,gBAAO;IAE1B,MAAMC,WAAWC,QAAQC,GAAG,CAACC,6BAAY,CAACC,aAAa,CAAC,IAAI;IAC5DC,IAAAA,wBAAe,EAACC,IAAAA,UAAI,EAACC,IAAAA,sBAAa,KAAIP;IAEtC,MAAMQ,YAAYC,IAAAA,6BAAkB;IACpCC,IAAAA,uCAA4B,EAACC,iBAAQ,EAAEH;IAEvCV,WACGc,GAAG,CAAC,CAACC,KAAKC,KAAKC;QACd,MAAMC,QAAQH,IAAIG,KAAK,EAAEC,QAAQJ,IAAII,IAAI,IAAI;QAE7C,IAAID,MAAME,QAAQ,CAAC,SAAS;YAC1B,MAAMC,QAAQlB,QAAQmB,MAAM;YAE5BN,IAAIO,EAAE,CAAC,UAAU;gBACf3B,kBAAkB4B,GAAG;gBAErB,MAAMC,QAAQtB,QAAQmB,MAAM,CAACD;gBAC7B,MAAMK,WAAWD,KAAK,CAAC,EAAE,GAAGA,KAAK,CAAC,EAAE,GAAG;gBACvC,MAAME,SAAS,IAAIC,qBAAa,CAAC;gBACjCD,OAAOE,QAAQ,CAAC;oBACdC,SAAS,CAAC,aAAa,EAAEf,IAAIgB,MAAM,CAAC,CAAC,EAAEhB,IAAIiB,WAAW,CAAC,CAAC,EAAEhB,IAAIiB,UAAU,EAAE;oBAC1EF,QAAQhB,IAAIgB,MAAM;oBAClBZ,MAAMJ,IAAIiB,WAAW;oBACrBC,YAAYjB,IAAIiB,UAAU;oBAC1BC,gBAAgBR,SAASS,OAAO,CAAC;oBACjCC,UAAUrB,IAAIsB,EAAE;oBAChBC,WAAWvB,IAAIwB,GAAG,CAAC;gBACrB;YACF;QACF;QAEAtB;IACF,GACCH,GAAG,CACF0B,IAAAA,aAAI,EAAC;QACHC,QAAQ;QACRC,SAAS;IACX,IAED5B,GAAG,CACF6B,IAAAA,eAAM,EAAC;QACLC,uBAAuB;IACzB,IAED9B,GAAG,CAAC+B,IAAAA,aAAI,EAAC;QAAEC,OAAO;IAAO,IACzBhC,GAAG,CAACiC,IAAAA,qBAAY,KAChBjC,GAAG,CAACkC,IAAAA,mBAAU,EAAC;QAAEC,UAAU;IAAM,IACjCnC,GAAG,CAACD,iBAAQ,CAACqC,UAAU,IACvBpC,GAAG,CAACD,iBAAQ,CAACsC,YAAY,CAAC;QAAC;QAAO;KAAY,EAAE;QAAEC,SAAS;IAAM,IACjEtC,GAAG,CAACuC,IAAAA,8BAAe,EAAC3C,YACpBI,GAAG,CAACwC,gCAAsB,EAE1BxC,GAAG,CAACyC,yCAAuB,EAC3BzC,GAAG,CAAC0C,gCAAc;IAErB,OAAO;QACLxD;QACAU;IACF;AACF"}
1
+ {"version":3,"sources":["../src/server.core.ts"],"names":["setupServer","httpRequestsTotal","Counter","name","help","logger","LoggerService","httpServer","express","databasePath","getDatabaseFolder","ensureDirExists","log","mediaPath","getMediaPath","container","configureContainer","initializePassportStrategies","passport","use","req","res","next","route","path","includes","start","process","hrtime","on","inc","delta","duration","newDebug","message","method","originalUrl","statusCode","responseTimeMs","toFixed","clientIp","ip","userAgent","get","cors","origin","methods","helmet","contentSecurityPolicy","json","limit","cookieParser","urlencoded","extended","initialize","authenticate","session","scopePerRequest","interceptDatabaseError","validateWizardCompleted","interceptRoles"],"mappings":";;;;+BAmBsBA;;;eAAAA;;;iEAnBoB;qEACjB;iEACJ;6DACJ;+DACE;+BACa;2BACG;0BACI;kCACiB;2BACX;yBACoB;4BACzC;wBACM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE9B,MAAMC,oBAAoB,IAAIC,mBAAO,CAAC;IACpCC,MAAM;IACNC,MAAM;AACR;AAEO,eAAeJ;IACpB,MAAMK,SAAS,IAAIC,qBAAa,CAAC;IACjC,MAAMC,aAAaC,IAAAA,gBAAO;IAE1B,MAAMC,eAAeC,IAAAA,0BAAiB;IACtCC,IAAAA,wBAAe,EAACF;IAChBJ,OAAOO,GAAG,CAAC,CAAC,2BAA2B,EAAEH,cAAc;IAEvD,MAAMI,YAAYC,IAAAA,qBAAY;IAC9BH,IAAAA,wBAAe,EAACE;IAChBR,OAAOO,GAAG,CAAC,CAAC,wBAAwB,EAAEC,WAAW;IAEjD,MAAME,YAAYC,IAAAA,6BAAkB;IACpCC,IAAAA,uCAA4B,EAACC,iBAAQ,EAAEH;IAEvCR,WACGY,GAAG,CAAC,CAACC,KAAKC,KAAKC;QACd,MAAMC,QAAQH,IAAIG,KAAK,EAAEC,QAAQJ,IAAII,IAAI,IAAI;QAE7C,IAAID,MAAME,QAAQ,CAAC,SAAS;YAC1B,MAAMC,QAAQC,QAAQC,MAAM;YAE5BP,IAAIQ,EAAE,CAAC,UAAU;gBACf5B,kBAAkB6B,GAAG;gBAErB,MAAMC,QAAQJ,QAAQC,MAAM,CAACF;gBAC7B,MAAMM,WAAWD,KAAK,CAAC,EAAE,GAAGA,KAAK,CAAC,EAAE,GAAG;gBACvC,MAAM1B,SAAS,IAAIC,qBAAa,CAAC;gBACjCD,OAAO4B,QAAQ,CAAC;oBACdC,SAAS,CAAC,aAAa,EAAEd,IAAIe,MAAM,CAAC,CAAC,EAAEf,IAAIgB,WAAW,CAAC,CAAC,EAAEf,IAAIgB,UAAU,EAAE;oBAC1EF,QAAQf,IAAIe,MAAM;oBAClBX,MAAMJ,IAAIgB,WAAW;oBACrBC,YAAYhB,IAAIgB,UAAU;oBAC1BC,gBAAgBN,SAASO,OAAO,CAAC;oBACjCC,UAAUpB,IAAIqB,EAAE;oBAChBC,WAAWtB,IAAIuB,GAAG,CAAC;gBACrB;YACF;QACF;QAEArB;IACF,GACCH,GAAG,CACFyB,IAAAA,aAAI,EAAC;QACHC,QAAQ;QACRC,SAAS;IACX,IAED3B,GAAG,CACF4B,IAAAA,eAAM,EAAC;QACLC,uBAAuB;IACzB,IAED7B,GAAG,CAAC8B,IAAAA,aAAI,EAAC;QAAEC,OAAO;IAAO,IACzB/B,GAAG,CAACgC,IAAAA,qBAAY,KAChBhC,GAAG,CAACiC,IAAAA,mBAAU,EAAC;QAAEC,UAAU;IAAM,IACjClC,GAAG,CAACD,iBAAQ,CAACoC,UAAU,IACvBnC,GAAG,CAACD,iBAAQ,CAACqC,YAAY,CAAC;QAAC;QAAO;KAAY,EAAE;QAAEC,SAAS;IAAM,IACjErC,GAAG,CAACsC,IAAAA,8BAAe,EAAC1C,YACpBI,GAAG,CAACuC,gCAAsB,EAE1BvC,GAAG,CAACwC,yCAAuB,EAC3BxC,GAAG,CAACyC,gCAAc;IAErB,OAAO;QACLrD;QACAQ;IACF;AACF"}
@@ -15,9 +15,6 @@ _export(exports, {
15
15
  get fetchServerPort () {
16
16
  return fetchServerPort;
17
17
  },
18
- get isEnvProd () {
19
- return isEnvProd;
20
- },
21
18
  get setupEnvConfig () {
22
19
  return setupEnvConfig;
23
20
  },
@@ -25,7 +22,6 @@ _export(exports, {
25
22
  return setupSentry;
26
23
  }
27
24
  });
28
- const _nodepath = require("node:path");
29
25
  const _node = /*#__PURE__*/ _interop_require_wildcard(require("@sentry/node"));
30
26
  const _serverconstants = require("./server.constants");
31
27
  const _logger = require("./handlers/logger");
@@ -74,15 +70,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
74
70
  }
75
71
  return newObj;
76
72
  }
77
- const instructionsReferralURL = "https://docs.fdm-monster.net";
78
- const packageJsonPath = (0, _nodepath.join)((0, _fsutils.superRootPath)(), "./package.json");
79
- function isEnvTest() {
80
- return process.env[_serverconstants.AppConstants.NODE_ENV_KEY] === _serverconstants.AppConstants.defaultTestEnv;
81
- }
82
- function isEnvProd() {
83
- return process.env[_serverconstants.AppConstants.NODE_ENV_KEY] === _serverconstants.AppConstants.defaultProductionEnv;
84
- }
85
- function ensureNodeEnvSet() {
73
+ function setupEnvConfig() {
86
74
  const logger = new _logger.LoggerService("FDM-Environment");
87
75
  const environment = process.env[_serverconstants.AppConstants.NODE_ENV_KEY];
88
76
  if (!environment || !_serverconstants.AppConstants.knownEnvNames.includes(environment)) {
@@ -92,17 +80,22 @@ function ensureNodeEnvSet() {
92
80
  } else {
93
81
  logger.log(`✓ NODE_ENV variable correctly set (${environment})!`);
94
82
  }
83
+ ensurePackageVersionSet();
84
+ setupSentry();
85
+ ensurePortSet();
86
+ if (process.env[_serverconstants.AppConstants.ENABLE_PROMETHEUS_METRICS] === "true") {
87
+ (0, _promclient.collectDefaultMetrics)({
88
+ register: _promclient.register
89
+ });
90
+ _promclient.register.removeSingleMetric("nodejs_version_info");
91
+ }
95
92
  }
96
93
  function ensurePackageVersionSet() {
97
94
  const logger = new _logger.LoggerService("FDM-Environment");
98
- const packageJsonVersion = require(packageJsonPath).version;
95
+ const packageJsonVersion = require((0, _fsutils.packageJsonPath)()).version;
99
96
  process.env[_serverconstants.AppConstants.VERSION_KEY] ??= packageJsonVersion;
100
97
  logger.log(`✓ Running server version ${process.env[_serverconstants.AppConstants.VERSION_KEY]}`);
101
98
  }
102
- function printInstructionsURL() {
103
- const logger = new _logger.LoggerService("FDM-Environment");
104
- logger.log(`Please make sure to read ${instructionsReferralURL} for more information.`);
105
- }
106
99
  function fetchServerPort() {
107
100
  let port = process.env[_serverconstants.AppConstants.SERVER_PORT_KEY];
108
101
  if (Number.isNaN(Number.parseInt(port))) {
@@ -118,7 +111,7 @@ function setupSentry() {
118
111
  dsn: sentryDsnToken,
119
112
  environment: process.env.NODE_ENV,
120
113
  release: process.env.npm_package_version,
121
- enabled: !isEnvTest(),
114
+ enabled: !(0, _envutils.isTestEnvironment)(),
122
115
  tracesSampleRate: (0, _envutils.isProductionEnvironment)() ? 0.25 : 1
123
116
  });
124
117
  process.on("unhandledRejection", (e)=>{
@@ -132,21 +125,9 @@ function ensurePortSet() {
132
125
  fetchServerPort();
133
126
  if (!process.env[_serverconstants.AppConstants.SERVER_PORT_KEY]) {
134
127
  logger.log(`~ ${_serverconstants.AppConstants.SERVER_PORT_KEY} environment variable is not set`);
135
- printInstructionsURL();
128
+ logger.log(`Please make sure to read ${_serverconstants.AppConstants.docsUrl} for more information.`);
136
129
  process.env[_serverconstants.AppConstants.SERVER_PORT_KEY] = _serverconstants.AppConstants.defaultServerPort.toString();
137
130
  }
138
131
  }
139
- function setupEnvConfig() {
140
- ensureNodeEnvSet();
141
- ensurePackageVersionSet();
142
- setupSentry();
143
- ensurePortSet();
144
- if (process.env[_serverconstants.AppConstants.ENABLE_PROMETHEUS_METRICS] === "true") {
145
- (0, _promclient.collectDefaultMetrics)({
146
- register: _promclient.register
147
- });
148
- _promclient.register.removeSingleMetric("nodejs_version_info");
149
- }
150
- }
151
132
 
152
133
  //# sourceMappingURL=server.env.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server.env.ts"],"names":["ensurePortSet","fetchServerPort","isEnvProd","setupEnvConfig","setupSentry","instructionsReferralURL","packageJsonPath","join","superRootPath","isEnvTest","process","env","AppConstants","NODE_ENV_KEY","defaultTestEnv","defaultProductionEnv","ensureNodeEnvSet","logger","Logger","environment","knownEnvNames","includes","newEnvName","warn","log","ensurePackageVersionSet","packageJsonVersion","require","version","VERSION_KEY","printInstructionsURL","port","SERVER_PORT_KEY","Number","isNaN","parseInt","defaultServerPort","toString","sentryDsnToken","getEnvOrDefault","sentryCustomDsnToken","sentryCustomDsnDefault","Sentry","init","dsn","NODE_ENV","release","npm_package_version","enabled","tracesSampleRate","isProductionEnvironment","on","e","message","errorSummary","error","captureException","ENABLE_PROMETHEUS_METRICS","collectDefaultMetrics","register","removeSingleMetric"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/server.env.ts"],"names":["ensurePortSet","fetchServerPort","setupEnvConfig","setupSentry","logger","Logger","environment","process","env","AppConstants","NODE_ENV_KEY","knownEnvNames","includes","newEnvName","defaultProductionEnv","warn","log","ensurePackageVersionSet","ENABLE_PROMETHEUS_METRICS","collectDefaultMetrics","register","removeSingleMetric","packageJsonVersion","require","packageJsonPath","version","VERSION_KEY","port","SERVER_PORT_KEY","Number","isNaN","parseInt","defaultServerPort","toString","sentryDsnToken","getEnvOrDefault","sentryCustomDsnToken","sentryCustomDsnDefault","Sentry","init","dsn","NODE_ENV","release","npm_package_version","enabled","isTestEnvironment","tracesSampleRate","isProductionEnvironment","on","e","message","errorSummary","error","captureException","docsUrl"],"mappings":"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"}
@@ -62,7 +62,7 @@ class ServerHost {
62
62
  await (0, _swagger.setupSwagger)(app, this.logger);
63
63
  this.logger.log("Swagger/OpenAPI documentation enabled");
64
64
  }
65
- const bundleDistPath = (0, _nodepath.join)((0, _fsutils.superRootPath)(), _serverconstants.AppConstants.defaultClientBundleStorage, "dist");
65
+ const bundleDistPath = (0, _nodepath.join)((0, _fsutils.getMediaPath)(), _serverconstants.AppConstants.defaultClientBundleStorage, "dist");
66
66
  const backupClientPath = (0, _nodepath.join)((0, _fsutils.superRootPath)(), "node_modules", _serverconstants.AppConstants.clientPackageName, "dist");
67
67
  app.use(_express.default.static(bundleDistPath));
68
68
  app.use(_express.default.static(backupClientPath));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server.host.ts"],"names":["ServerHost","logger","loggerFactory","configService","bootTask","socketIoGateway","typeormService","exceptionFilter","name","boot","app","quick_boot","listenRequests","serveControllerRoutes","runOnce","httpListen","hasConnected","swaggerDisabled","process","env","AppConstants","DISABLE_SWAGGER_OPENAPI","use","req","res","next","originalUrl","startsWith","history","loadControllersFunc","log","setupSwagger","bundleDistPath","join","superRootPath","defaultClientBundleStorage","backupClientPath","clientPackageName","express","static","get","_","path","resource","endsWith","error","NotFoundException","handle","bind","port","fetchServerPort","Number","isNaN","parseInt","Error","hostOrFqdn","server","listen","attachServer"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/server.host.ts"],"names":["ServerHost","logger","loggerFactory","configService","bootTask","socketIoGateway","typeormService","exceptionFilter","name","boot","app","quick_boot","listenRequests","serveControllerRoutes","runOnce","httpListen","hasConnected","swaggerDisabled","process","env","AppConstants","DISABLE_SWAGGER_OPENAPI","use","req","res","next","originalUrl","startsWith","history","loadControllersFunc","log","setupSwagger","bundleDistPath","join","getMediaPath","defaultClientBundleStorage","backupClientPath","superRootPath","clientPackageName","express","static","get","_","path","resource","endsWith","error","NotFoundException","handle","bind","port","fetchServerPort","Number","isNaN","parseInt","Error","hostOrFqdn","server","listen","attachServer"],"mappings":"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"}