@fdm-monster/server 2.0.7 → 2.0.9

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 (82) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/README.md +1 -1
  3. package/RELEASE_NOTES.MD +35 -0
  4. package/dist/container.js +0 -6
  5. package/dist/container.js.map +1 -1
  6. package/dist/container.tokens.js +0 -2
  7. package/dist/container.tokens.js.map +1 -1
  8. package/dist/controllers/print-job.controller.js +12 -151
  9. package/dist/controllers/print-job.controller.js.map +1 -1
  10. package/dist/controllers/print-queue.controller.js +82 -17
  11. package/dist/controllers/print-queue.controller.js.map +1 -1
  12. package/dist/controllers/printer-files.controller.js +16 -77
  13. package/dist/controllers/printer-files.controller.js.map +1 -1
  14. package/dist/controllers/printer.controller.js +3 -3
  15. package/dist/controllers/printer.controller.js.map +1 -1
  16. package/dist/controllers/validation/printer-files-controller.validation.js +7 -0
  17. package/dist/controllers/validation/printer-files-controller.validation.js.map +1 -1
  18. package/dist/entities/print-job.entity.js.map +1 -1
  19. package/dist/server.constants.js +1 -2
  20. package/dist/server.constants.js.map +1 -1
  21. package/dist/services/bambu/bambu-ftp.adapter.js +3 -13
  22. package/dist/services/bambu/bambu-ftp.adapter.js.map +1 -1
  23. package/dist/services/bambu.api.js +31 -30
  24. package/dist/services/bambu.api.js.map +1 -1
  25. package/dist/services/file-storage.service.js +11 -2
  26. package/dist/services/file-storage.service.js.map +1 -1
  27. package/dist/services/moonraker/moonraker.client.js +5 -17
  28. package/dist/services/moonraker/moonraker.client.js.map +1 -1
  29. package/dist/services/moonraker.api.js +45 -11
  30. package/dist/services/moonraker.api.js.map +1 -1
  31. package/dist/services/octoprint/octoprint-api.routes.js +1 -1
  32. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
  33. package/dist/services/octoprint/octoprint.client.js +35 -24
  34. package/dist/services/octoprint/octoprint.client.js.map +1 -1
  35. package/dist/services/octoprint/utils/file.utils.js +42 -5
  36. package/dist/services/octoprint/utils/file.utils.js.map +1 -1
  37. package/dist/services/octoprint.api.js +15 -10
  38. package/dist/services/octoprint.api.js.map +1 -1
  39. package/dist/services/orm/print-job.service.js +55 -47
  40. package/dist/services/orm/print-job.service.js.map +1 -1
  41. package/dist/services/print-queue.service.js +90 -30
  42. package/dist/services/print-queue.service.js.map +1 -1
  43. package/dist/services/printer-api.interface.js +13 -0
  44. package/dist/services/printer-api.interface.js.map +1 -1
  45. package/dist/services/prusa-link/prusa-link.api.js +33 -27
  46. package/dist/services/prusa-link/prusa-link.api.js.map +1 -1
  47. package/dist/tasks/print-job-analysis.task.js.map +1 -1
  48. package/dist/utils/bgcode/bgcode-thumbnail.parser.js +50 -0
  49. package/dist/utils/bgcode/bgcode-thumbnail.parser.js.map +1 -0
  50. package/dist/utils/bgcode/bgcode.constants.js +57 -0
  51. package/dist/utils/bgcode/bgcode.constants.js.map +1 -0
  52. package/dist/utils/bgcode/bgcode.types.js +132 -0
  53. package/dist/utils/bgcode/bgcode.types.js.map +1 -0
  54. package/dist/utils/bgcode/bgcode.utils.js +288 -0
  55. package/dist/utils/bgcode/bgcode.utils.js.map +1 -0
  56. package/dist/utils/bgcode/heatshrink-decoder.js +172 -0
  57. package/dist/utils/bgcode/heatshrink-decoder.js.map +1 -0
  58. package/dist/utils/bgcode/png-encoder.js +76 -0
  59. package/dist/utils/bgcode/png-encoder.js.map +1 -0
  60. package/dist/utils/bgcode/qoi-decoder.js +141 -0
  61. package/dist/utils/bgcode/qoi-decoder.js.map +1 -0
  62. package/dist/utils/image-dimensions.js +62 -0
  63. package/dist/utils/image-dimensions.js.map +1 -0
  64. package/dist/utils/job-stats.util.js +79 -0
  65. package/dist/utils/job-stats.util.js.map +1 -0
  66. package/dist/utils/parsers/3mf.parser.js +39 -9
  67. package/dist/utils/parsers/3mf.parser.js.map +1 -1
  68. package/dist/utils/parsers/bgcode.parser.js +125 -144
  69. package/dist/utils/parsers/bgcode.parser.js.map +1 -1
  70. package/dist/utils/parsers/gcode.parser.js +13 -2
  71. package/dist/utils/parsers/gcode.parser.js.map +1 -1
  72. package/dist/utils/parsers/parser.types.js +6 -0
  73. package/dist/utils/parsers/parser.types.js.map +1 -0
  74. package/dist/utils/thumbnail.util.js +24 -0
  75. package/dist/utils/thumbnail.util.js.map +1 -0
  76. package/package.json +5 -5
  77. package/dist/state/file.cache.js +0 -68
  78. package/dist/state/file.cache.js.map +0 -1
  79. package/dist/state/printer-files.store.js +0 -92
  80. package/dist/state/printer-files.store.js.map +0 -1
  81. package/dist/tasks/printer-files-load.task.js +0 -29
  82. package/dist/tasks/printer-files-load.task.js.map +0 -1
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "OctoprintClient", {
8
8
  return OctoprintClient;
9
9
  }
10
10
  });
11
- const _fs = require("fs");
12
11
  const _formdata = /*#__PURE__*/ _interop_require_default(require("form-data"));
13
12
  const _eventconstants = require("../../constants/event.constants");
14
13
  const _runtimeexceptions = require("../../exceptions/runtime.exceptions");
@@ -108,16 +107,38 @@ class OctoprintClient extends _octoprintapiroutes.OctoprintRoutes {
108
107
  async getUsers(login) {
109
108
  return await this.createClient(login).get(this.apiUsers);
110
109
  }
111
- async getLocalFiles(login, recursive = false) {
112
- const response = await this.createClient(login).get(this.apiGetFiles(recursive));
113
- return response?.data?.files?.filter((f)=>f.date && f.type === "machinecode").map((f)=>{
114
- return (0, _fileutils.normalizePrinterFile)(f);
115
- }) || [];
110
+ async getLocalFiles(login, recursive = false, startDir = "") {
111
+ const url = this.apiGetFiles(recursive, startDir);
112
+ const response = await this.createClient(login).get(url);
113
+ if (!response?.data) {
114
+ return [];
115
+ }
116
+ const data = response.data;
117
+ const items = data.files || (data.children ? data.children : []);
118
+ if (!items.length) {
119
+ return [];
120
+ }
121
+ if (recursive) {
122
+ return (0, _fileutils.flattenOctoPrintFiles)(items, startDir);
123
+ } else {
124
+ return items.map((item)=>({
125
+ path: item.path || item.name,
126
+ size: item.size || 0,
127
+ date: item.date || null,
128
+ dir: item.type === 'folder'
129
+ }));
130
+ }
116
131
  }
117
132
  async getFile(login, path) {
118
133
  const urlPath = this.apiFile(path);
119
134
  const response = await this.createClient(login).get(urlPath);
120
- return (0, _fileutils.normalizePrinterFile)(response?.data);
135
+ const file = response?.data;
136
+ return {
137
+ path: file.path,
138
+ size: file.size,
139
+ date: file.date,
140
+ dir: file.type === 'folder'
141
+ };
121
142
  }
122
143
  async downloadFile(login, path) {
123
144
  const urlPath = this.downloadFileLocal(path);
@@ -147,29 +168,19 @@ class OctoprintClient extends _octoprintapiroutes.OctoprintRoutes {
147
168
  }
148
169
  async postSelectPrintFile(login, path, print) {
149
170
  const command = this.selectCommand(print);
150
- await this.createClient(login).post(this.apiFile(path), command);
171
+ const url = this.apiFile(path);
172
+ await this.createClient(login).post(url, command);
151
173
  }
152
- async uploadFileAsMultiPart(login, multerFileOrBuffer, startPrint, progressToken) {
174
+ async uploadFileAsMultiPart(login, stream, fileName, contentLength, startPrint, progressToken) {
153
175
  const urlPath = this.apiFilesLocal;
154
176
  const formData = new _formdata.default();
155
177
  if (startPrint) {
156
178
  formData.append("print", "true");
157
179
  }
158
- let fileBuffer = multerFileOrBuffer.buffer;
159
- const filename = multerFileOrBuffer.originalname;
160
- if (fileBuffer) {
161
- this.logger.log("Attaching file from memory buffer to formdata for upload");
162
- formData.append("file", fileBuffer, {
163
- filename
164
- });
165
- } else {
166
- const filePath = multerFileOrBuffer.path;
167
- const fileStream = (0, _fs.createReadStream)(filePath);
168
- this.logger.log(`Attaching file from disk to formdata for upload`);
169
- formData.append("file", fileStream, {
170
- filename
171
- });
172
- }
180
+ formData.append("file", stream, {
181
+ filename: fileName,
182
+ knownLength: contentLength
183
+ });
173
184
  const result = await new Promise((resolve, reject)=>{
174
185
  return formData.getLength((err, length)=>{
175
186
  if (err) reject(new Error("Could not retrieve formData length"));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/octoprint/octoprint.client.ts"],"names":["OctoprintClient","OctoprintRoutes","logger","loggerFactory","httpClientFactory","eventEmitter2","settingsStore","name","getApiVersion","login","createClient","get","apiVersion","getServer","apiServer","post","apiLogin","passive","sendConnectionCommand","commandData","apiConnection","sendPrintHeadJogCommand","amounts","axesToHome","x","y","z","command","sendPrintHeadCommand","sendPrintHeadHomeCommand","axes","apiPrinterHead","sendCustomGCodeCommand","commandString","apiPrinterCustomCommand","getJob","apiJob","sendJobCommand","sendBedTempCommand","targetTemp","data","getBedTargetCommand","apiPrinterBed","getSettings","apiSettingsPart","updatePrinterNameSetting","printerName","settingPatch","printerNameSetting","getCurrentUser","apiCurrentUser","getAdminUserOrDefault","currentUserResponse","getUsers","apiUsers","getLocalFiles","recursive","response","apiGetFiles","files","filter","f","date","type","map","normalizePrinterFile","getFile","path","urlPath","apiFile","downloadFile","downloadFileLocal","responseType","getFileChunk","filePath","startBytes","endBytes","pathUrl","o","withHeaders","Range","createFolder","foldername","formData","FormData","append","headers","getHeaders","getLengthSync","toString","apiFilesLocal","moveFileOrFolder","destination","moveFileCommand","postSelectPrintFile","print","selectCommand","uploadFileAsMultiPart","multerFileOrBuffer","startPrint","progressToken","fileBuffer","buffer","filename","originalname","log","fileStream","createReadStream","result","Promise","resolve","reject","getLength","err","length","Error","builder","withMultiPartFormData","withTimeout","getTimeoutSettings","apiUploadTimeout","withOnUploadProgress","p","emit","uploadProgressEvent","uploadDoneEvent","e","uploadFailedEvent","message","JSON","parse","body","ExternalServiceError","error","statusCode","success","stack","deleteFileOrFolder","delete","getPrinterCurrent","history","limit","exclude","apiPrinterCurrent","getConnection","getPrinterProfiles","apiPrinterProfiles","getSystemInfo","apiSystemInfo","getSystemCommands","apiSystemCommands","postServerRestartCommand","apiServerRestartCommand","buildFluentOptions","baseAddress","printerURL","createAnonymousClient","withXApiKeyHeader","apiKey","OctoprintHttpClientBuilder","createClientWithBaseUrl","b"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/services/octoprint/octoprint.client.ts"],"names":["OctoprintClient","OctoprintRoutes","logger","loggerFactory","httpClientFactory","eventEmitter2","settingsStore","name","getApiVersion","login","createClient","get","apiVersion","getServer","apiServer","post","apiLogin","passive","sendConnectionCommand","commandData","apiConnection","sendPrintHeadJogCommand","amounts","axesToHome","x","y","z","command","sendPrintHeadCommand","sendPrintHeadHomeCommand","axes","apiPrinterHead","sendCustomGCodeCommand","commandString","apiPrinterCustomCommand","getJob","apiJob","sendJobCommand","sendBedTempCommand","targetTemp","data","getBedTargetCommand","apiPrinterBed","getSettings","apiSettingsPart","updatePrinterNameSetting","printerName","settingPatch","printerNameSetting","getCurrentUser","apiCurrentUser","getAdminUserOrDefault","currentUserResponse","getUsers","apiUsers","getLocalFiles","recursive","startDir","url","apiGetFiles","response","items","files","children","length","flattenOctoPrintFiles","map","item","path","size","date","dir","type","getFile","urlPath","apiFile","file","downloadFile","downloadFileLocal","responseType","getFileChunk","filePath","startBytes","endBytes","pathUrl","o","withHeaders","Range","createFolder","foldername","formData","FormData","append","headers","getHeaders","getLengthSync","toString","apiFilesLocal","moveFileOrFolder","destination","moveFileCommand","postSelectPrintFile","print","selectCommand","uploadFileAsMultiPart","stream","fileName","contentLength","startPrint","progressToken","filename","knownLength","result","Promise","resolve","reject","getLength","err","Error","builder","withMultiPartFormData","withTimeout","getTimeoutSettings","apiUploadTimeout","withOnUploadProgress","p","emit","uploadProgressEvent","uploadDoneEvent","e","uploadFailedEvent","message","JSON","parse","body","ExternalServiceError","error","statusCode","success","stack","deleteFileOrFolder","delete","getPrinterCurrent","history","limit","exclude","apiPrinterCurrent","getConnection","getPrinterProfiles","apiPrinterProfiles","getSystemInfo","apiSystemInfo","getSystemCommands","apiSystemCommands","postServerRestartCommand","apiServerRestartCommand","buildFluentOptions","baseAddress","printerURL","createAnonymousClient","withXApiKeyHeader","apiKey","OctoprintHttpClientBuilder","createClientWithBaseUrl","b"],"mappings":"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"}
@@ -2,9 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "normalizePrinterFile", {
6
- enumerable: true,
7
- get: function() {
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get flattenOctoPrintFiles () {
13
+ return flattenOctoPrintFiles;
14
+ },
15
+ get normalizePrinterFile () {
8
16
  return normalizePrinterFile;
9
17
  }
10
18
  });
@@ -28,8 +36,37 @@ function normalizePrinterFile(file) {
28
36
  customData[unknownKey] = fileCopy[unknownKey];
29
37
  delete fileCopy[unknownKey];
30
38
  }
31
- fileCopy.customData = customData;
32
- return fileCopy;
39
+ return {
40
+ path: fileCopy.path,
41
+ size: fileCopy.size,
42
+ date: fileCopy.date,
43
+ dir: fileCopy.type === 'folder'
44
+ };
45
+ }
46
+ function flattenOctoPrintFiles(items, parentPath = '') {
47
+ const files = [];
48
+ for (const item of items){
49
+ const fullPath = parentPath ? `${parentPath}/${item.name}` : item.name;
50
+ if (item.type === 'folder') {
51
+ files.push({
52
+ path: fullPath,
53
+ size: 0,
54
+ date: item.date || null,
55
+ dir: true
56
+ });
57
+ if (item.children) {
58
+ files.push(...flattenOctoPrintFiles(item.children, fullPath));
59
+ }
60
+ } else if (item.type === 'machinecode') {
61
+ files.push({
62
+ path: fullPath,
63
+ size: item.size,
64
+ date: item.date,
65
+ dir: false
66
+ });
67
+ }
68
+ }
69
+ return files;
33
70
  }
34
71
 
35
72
  //# sourceMappingURL=file.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/services/octoprint/utils/file.utils.ts"],"names":["normalizePrinterFile","file","Error","keys","Object","fileCopy","knownKeys","unknownKeys","filter","k","includes","customData","unknownKey"],"mappings":";;;;+BAGgBA;;;eAAAA;;;AAAT,SAASA,qBAAqBC,IAAsB;IACzD,IAAI,CAACA,MAAM;QACT,MAAM,IAAIC,MAAM;IAClB;IAEA,MAAMC,OAAOC,OAAOD,IAAI,CAACF;IACzB,MAAMI,WAAW;QACf,GAAGJ,IAAI;IACT;IAEA,MAAMK,YAAY;QAChB;QACA;QACA;QAOA;KAID;IAED,MAAMC,cAAcJ,KAAKK,MAAM,CAAC,CAACC,IAAM,CAACH,UAAUI,QAAQ,CAACD;IAE3D,MAAME,aAAiC,CAAC;IACxC,KAAK,MAAMC,cAAcL,YAAa;QACpCI,UAAU,CAACC,WAAW,GAAGP,QAAQ,CAACO,WAAW;QAC7C,OAAOP,QAAQ,CAACO,WAAW;IAC7B;IAEAP,SAASM,UAAU,GAAGA;IAEtB,OAAON;AACT"}
1
+ {"version":3,"sources":["../../../../src/services/octoprint/utils/file.utils.ts"],"names":["flattenOctoPrintFiles","normalizePrinterFile","file","Error","keys","Object","fileCopy","knownKeys","unknownKeys","filter","k","includes","customData","unknownKey","path","size","date","dir","type","items","parentPath","files","item","fullPath","name","push","children"],"mappings":";;;;;;;;;;;QA6CgBA;eAAAA;;QA1CAC;eAAAA;;;AAAT,SAASA,qBAAqBC,IAAsB;IACzD,IAAI,CAACA,MAAM;QACT,MAAM,IAAIC,MAAM;IAClB;IAEA,MAAMC,OAAOC,OAAOD,IAAI,CAACF;IACzB,MAAMI,WAAW;QACf,GAAGJ,IAAI;IACT;IAEA,MAAMK,YAAY;QAChB;QACA;QACA;QAOA;KAID;IAED,MAAMC,cAAcJ,KAAKK,MAAM,CAAC,CAACC,IAAM,CAACH,UAAUI,QAAQ,CAACD;IAE3D,MAAME,aAAiC,CAAC;IACxC,KAAK,MAAMC,cAAcL,YAAa;QACpCI,UAAU,CAACC,WAAW,GAAGP,QAAQ,CAACO,WAAW;QAC7C,OAAOP,QAAQ,CAACO,WAAW;IAC7B;IAEA,OAAO;QACLC,MAAMR,SAASQ,IAAI;QACnBC,MAAMT,SAASS,IAAI;QACnBC,MAAMV,SAASU,IAAI;QACnBC,KAAKX,SAASY,IAAI,KAAK;IACzB;AACF;AAEO,SAASlB,sBAAsBmB,KAAyB,EAAEC,aAAqB,EAAE;IACtF,MAAMC,QAAmB,EAAE;IAE3B,KAAK,MAAMC,QAAQH,MAAO;QACxB,MAAMI,WAAWH,aAAa,GAAGA,WAAW,CAAC,EAAEE,KAAKE,IAAI,EAAE,GAAGF,KAAKE,IAAI;QAEtE,IAAIF,KAAKJ,IAAI,KAAK,UAAU;YAC1BG,MAAMI,IAAI,CAAC;gBACTX,MAAMS;gBACNR,MAAM;gBACNC,MAAMM,KAAKN,IAAI,IAAI;gBACnBC,KAAK;YACP;YAEA,IAAIK,KAAKI,QAAQ,EAAE;gBACjBL,MAAMI,IAAI,IAAIzB,sBAAsBsB,KAAKI,QAAQ,EAAEH;YACrD;QACF,OAAO,IAAID,KAAKJ,IAAI,KAAK,eAAe;YACtCG,MAAMI,IAAI,CAAC;gBACTX,MAAMS;gBACNR,MAAMO,KAAKP,IAAI;gBACfC,MAAMM,KAAKN,IAAI;gBACfC,KAAK;YACP;QACF;IACF;IAEA,OAAOI;AACT"}
@@ -75,13 +75,12 @@ class OctoprintApi {
75
75
  async getFile(path) {
76
76
  return this.client.getFile(this.login, path);
77
77
  }
78
- async getFiles() {
79
- const files = await this.client.getLocalFiles(this.login, false);
80
- return files.map((f)=>({
81
- path: f.path,
82
- size: f.size,
83
- date: f.date
84
- }));
78
+ async getFiles(recursive = false, startDir = "") {
79
+ const items = await this.client.getLocalFiles(this.login, recursive, startDir);
80
+ return {
81
+ dirs: items.filter((f)=>f.dir),
82
+ files: items.filter((f)=>!f.dir)
83
+ };
85
84
  }
86
85
  async downloadFile(path) {
87
86
  return await this.client.downloadFile(this.login, path);
@@ -89,8 +88,9 @@ class OctoprintApi {
89
88
  async getFileChunk(path, startBytes, endBytes) {
90
89
  return await this.client.getFileChunk(this.login, path, startBytes, endBytes);
91
90
  }
92
- async uploadFile(fileOrBuffer, startPrint, uploadToken) {
93
- await this.client.uploadFileAsMultiPart(this.login, fileOrBuffer, startPrint, uploadToken);
91
+ async uploadFile(input) {
92
+ const validated = _printerapiinterface.uploadFileInputSchema.parse(input);
93
+ await this.client.uploadFileAsMultiPart(this.login, validated.stream, validated.fileName, validated.contentLength, validated.startPrint, validated.uploadToken);
94
94
  }
95
95
  async deleteFile(path) {
96
96
  await this.client.deleteFileOrFolder(this.login, path);
@@ -116,7 +116,12 @@ class OctoprintApi {
116
116
  }
117
117
  return {
118
118
  connectionState,
119
- file: currentJobFile,
119
+ file: {
120
+ path: currentJobFile.path,
121
+ size: currentJobFile.size,
122
+ date: currentJobFile.date,
123
+ dir: false
124
+ },
120
125
  reprintState: _printerapiinterface.ReprintState.LastPrintReady
121
126
  };
122
127
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/services/octoprint.api.ts"],"names":["OctoprintApi","client","octoprintClient","printerLogin","type","OctoprintType","login","getVersion","result","getApiVersion","data","server","validateConnection","connect","sendConnectionCommand","connectCommand","disconnect","disconnectCommand","restartServer","postServerRestartCommand","restartHost","NotImplementedException","restartPrinterFirmware","startPrint","filePath","postSelectPrintFile","pausePrint","sendJobCommand","pauseJobCommand","resumePrint","resumeJobCommand","cancelPrint","cancelJobCommand","sendGcode","script","sendCustomGCodeCommand","quickStop","movePrintHead","amounts","sendPrintHeadJogCommand","homeAxes","axes","sendPrintHeadHomeCommand","getFile","path","getFiles","files","getLocalFiles","map","f","size","date","downloadFile","getFileChunk","startBytes","endBytes","uploadFile","fileOrBuffer","uploadToken","uploadFileAsMultiPart","deleteFile","deleteFileOrFolder","deleteFolder","getSettings","response","getReprintState","connectedResponse","getConnection","connectionState","current","state","selectedJobResponse","getJob","selectedJob","currentJobFile","job","file","reprintState","ReprintState","NoLastPrint","LastPrintReady"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/services/octoprint.api.ts"],"names":["OctoprintApi","client","octoprintClient","printerLogin","type","OctoprintType","login","getVersion","result","getApiVersion","data","server","validateConnection","connect","sendConnectionCommand","connectCommand","disconnect","disconnectCommand","restartServer","postServerRestartCommand","restartHost","NotImplementedException","restartPrinterFirmware","startPrint","filePath","postSelectPrintFile","pausePrint","sendJobCommand","pauseJobCommand","resumePrint","resumeJobCommand","cancelPrint","cancelJobCommand","sendGcode","script","sendCustomGCodeCommand","quickStop","movePrintHead","amounts","sendPrintHeadJogCommand","homeAxes","axes","sendPrintHeadHomeCommand","getFile","path","getFiles","recursive","startDir","items","getLocalFiles","dirs","filter","f","dir","files","downloadFile","getFileChunk","startBytes","endBytes","uploadFile","input","validated","uploadFileInputSchema","parse","uploadFileAsMultiPart","stream","fileName","contentLength","uploadToken","deleteFile","deleteFileOrFolder","deleteFolder","getSettings","response","getReprintState","connectedResponse","getConnection","connectionState","current","state","selectedJobResponse","getJob","selectedJob","currentJobFile","job","file","reprintState","ReprintState","NoLastPrint","size","date","LastPrintReady"],"mappings":"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"}
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "PrintJobService", {
10
10
  });
11
11
  const _printjobentity = require("../../entities/print-job.entity");
12
12
  const _runtimeexceptions = require("../../exceptions/runtime.exceptions");
13
+ const _jobstatsutil = require("../../utils/job-stats.util");
13
14
  class PrintJobService {
14
15
  printJobRepository;
15
16
  eventEmitter2;
@@ -215,22 +216,9 @@ class PrintJobService {
215
216
  this.logger.warn(`Filename mismatch on completion: expected "${job.fileName}", got "${fileName}"`);
216
217
  }
217
218
  const endedAt = new Date();
218
- const actualTimeSeconds = job.startedAt ? (endedAt.getTime() - job.startedAt.getTime()) / 1000 : null;
219
+ const actualTimeSeconds = (0, _jobstatsutil.calculateJobDuration)(job.startedAt, endedAt);
219
220
  job.status = "COMPLETED";
220
- job.endedAt = endedAt;
221
- job.progress = 100;
222
- if (!job.statistics) {
223
- job.statistics = {
224
- startedAt: job.startedAt,
225
- endedAt,
226
- actualPrintTimeSeconds: actualTimeSeconds,
227
- progress: 100
228
- };
229
- } else {
230
- job.statistics.endedAt = endedAt;
231
- job.statistics.actualPrintTimeSeconds = actualTimeSeconds;
232
- job.statistics.progress = 100;
233
- }
221
+ (0, _jobstatsutil.updateStatisticsForCompletion)(job, endedAt);
234
222
  await this.printJobRepository.save(job);
235
223
  this.eventEmitter2.emit("printJob.completed", {
236
224
  jobId: job.id,
@@ -257,25 +245,8 @@ class PrintJobService {
257
245
  return null;
258
246
  }
259
247
  const endedAt = new Date();
260
- const actualTimeSeconds = job.startedAt ? (endedAt.getTime() - job.startedAt.getTime()) / 1000 : null;
261
248
  job.status = "FAILED";
262
- job.statusReason = reason;
263
- job.endedAt = endedAt;
264
- if (!job.statistics) {
265
- job.statistics = {
266
- startedAt: job.startedAt,
267
- endedAt,
268
- actualPrintTimeSeconds: actualTimeSeconds,
269
- progress: job.progress,
270
- failureReason: reason,
271
- failureTime: endedAt
272
- };
273
- } else {
274
- job.statistics.endedAt = endedAt;
275
- job.statistics.actualPrintTimeSeconds = actualTimeSeconds;
276
- job.statistics.failureReason = reason;
277
- job.statistics.failureTime = endedAt;
278
- }
249
+ (0, _jobstatsutil.updateStatisticsForFailure)(job, reason, endedAt);
279
250
  await this.printJobRepository.save(job);
280
251
  this.eventEmitter2.emit("printJob.failed", {
281
252
  jobId: job.id,
@@ -302,21 +273,8 @@ class PrintJobService {
302
273
  return null;
303
274
  }
304
275
  const endedAt = new Date();
305
- const actualTimeSeconds = job.startedAt ? (endedAt.getTime() - job.startedAt.getTime()) / 1000 : null;
306
276
  job.status = "CANCELLED";
307
- job.statusReason = reason || "Print cancelled by user";
308
- job.endedAt = endedAt;
309
- if (!job.statistics) {
310
- job.statistics = {
311
- startedAt: job.startedAt,
312
- endedAt,
313
- actualPrintTimeSeconds: actualTimeSeconds,
314
- progress: job.progress
315
- };
316
- } else {
317
- job.statistics.endedAt = endedAt;
318
- job.statistics.actualPrintTimeSeconds = actualTimeSeconds;
319
- }
277
+ (0, _jobstatsutil.updateStatisticsForCancellation)(job, reason, endedAt);
320
278
  await this.printJobRepository.save(job);
321
279
  this.eventEmitter2.emit("printJob.cancelled", {
322
280
  jobId: job.id,
@@ -534,6 +492,56 @@ class PrintJobService {
534
492
  });
535
493
  this.logger.log(`Triggered file download and analysis for job ${jobId}`);
536
494
  }
495
+ async markAsCompleted(jobId, reason) {
496
+ const job = await this.getJobByIdOrFail(jobId);
497
+ job.status = "COMPLETED";
498
+ (0, _jobstatsutil.updateStatisticsForCompletion)(job);
499
+ if (reason) {
500
+ job.statusReason = reason;
501
+ } else {
502
+ job.statusReason = "Manually marked as completed by user";
503
+ }
504
+ await this.printJobRepository.save(job);
505
+ this.logger.log(`Job ${jobId} manually marked as COMPLETED`);
506
+ return job;
507
+ }
508
+ async markAsFailed(jobId, reason) {
509
+ const job = await this.getJobByIdOrFail(jobId);
510
+ job.status = "FAILED";
511
+ (0, _jobstatsutil.updateStatisticsForFailure)(job, reason);
512
+ await this.printJobRepository.save(job);
513
+ this.logger.log(`Job ${jobId} manually marked as FAILED: ${reason}`);
514
+ return job;
515
+ }
516
+ async markAsCancelled(jobId, reason) {
517
+ const job = await this.getJobByIdOrFail(jobId);
518
+ job.status = "CANCELLED";
519
+ (0, _jobstatsutil.updateStatisticsForCancellation)(job, reason);
520
+ await this.printJobRepository.save(job);
521
+ this.logger.log(`Job ${jobId} manually marked as CANCELLED`);
522
+ return job;
523
+ }
524
+ async markAsUnknown(jobId, reason) {
525
+ const job = await this.getJobByIdOrFail(jobId);
526
+ job.status = "UNKNOWN";
527
+ job.statusReason = reason || "Manually marked as unknown by user (state uncertain)";
528
+ await this.printJobRepository.save(job);
529
+ this.logger.log(`Job ${jobId} manually marked as UNKNOWN`);
530
+ return job;
531
+ }
532
+ async countJobsReferencingFile(fileStorageId) {
533
+ return await this.printJobRepository.count({
534
+ where: {
535
+ fileStorageId
536
+ }
537
+ });
538
+ }
539
+ async updateJob(job) {
540
+ return await this.printJobRepository.save(job);
541
+ }
542
+ async deleteJob(job) {
543
+ await this.printJobRepository.remove(job);
544
+ }
537
545
  }
538
546
 
539
547
  //# sourceMappingURL=print-job.service.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/orm/print-job.service.ts"],"names":["PrintJobService","printJobRepository","eventEmitter2","logger","loggerFactory","typeormService","getDataSource","getRepository","PrintJob","name","getJobByIdOrFail","id","relations","job","findOne","where","NotFoundException","handleFileAnalyzed","jobId","metadata","thumbnails","Error","analysisState","analyzedAt","Date","fileFormat","save","emit","printerId","log","fileName","handlePrintStarted","printerName","existingJob","status","order","startedAt","statusReason","endedAt","warn","createdAt","create","progress","statistics","actualPrintTimeSeconds","handlePrintProgress","currentLayer","totalLayers","Math","min","max","undefined","handlePrintCompleted","actualTimeSeconds","getTime","estimatedTimeSeconds","gcodePrintTimeSeconds","toFixed","handlePrintFailed","reason","failureReason","failureTime","failedAt","handlePrintCancelled","cancelledAt","handlePrintPaused","handlePrintResumed","cleanupStaleJobs","staleJobs","find","length","getActivePrintJob","getPrintJobHistory","limit","take","markStarted","markProgress","markFinished","markFailed","updateJobMetadata","partialMetadata","debug","updatedMetadata","key","value","Object","entries","hasData","values","some","v","searchPrintJobs","searchPrinter","searchFile","startDate","endDate","query","createQueryBuilder","andWhere","Number","parseInt","orderBy","getMany","searchPrintJobsPaged","page","pageSize","skip","getManyAndCount","createPendingJob","hasAnalysisData","filamentUsedGrams","totalFilamentUsedGrams","layerHeight","fileSize","toLowerCase","triggerFileAnalysis"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/services/orm/print-job.service.ts"],"names":["PrintJobService","printJobRepository","eventEmitter2","logger","loggerFactory","typeormService","getDataSource","getRepository","PrintJob","name","getJobByIdOrFail","id","relations","job","findOne","where","NotFoundException","handleFileAnalyzed","jobId","metadata","thumbnails","Error","analysisState","analyzedAt","Date","fileFormat","save","emit","printerId","log","fileName","handlePrintStarted","printerName","existingJob","status","order","startedAt","statusReason","endedAt","warn","createdAt","create","progress","statistics","actualPrintTimeSeconds","handlePrintProgress","currentLayer","totalLayers","Math","min","max","undefined","handlePrintCompleted","actualTimeSeconds","calculateJobDuration","updateStatisticsForCompletion","estimatedTimeSeconds","gcodePrintTimeSeconds","toFixed","handlePrintFailed","reason","updateStatisticsForFailure","failedAt","handlePrintCancelled","updateStatisticsForCancellation","cancelledAt","handlePrintPaused","handlePrintResumed","cleanupStaleJobs","staleJobs","find","length","getActivePrintJob","getPrintJobHistory","limit","take","markStarted","markProgress","markFinished","markFailed","updateJobMetadata","partialMetadata","debug","updatedMetadata","key","value","Object","entries","hasData","values","some","v","searchPrintJobs","searchPrinter","searchFile","startDate","endDate","query","createQueryBuilder","andWhere","Number","parseInt","orderBy","getMany","searchPrintJobsPaged","page","pageSize","skip","getManyAndCount","createPendingJob","hasAnalysisData","filamentUsedGrams","totalFilamentUsedGrams","layerHeight","fileSize","toLowerCase","triggerFileAnalysis","markAsCompleted","markAsFailed","markAsCancelled","markAsUnknown","countJobsReferencingFile","fileStorageId","count","updateJob","deleteJob","remove"],"mappings":"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"}