@fdm-monster/server 1.9.1 → 1.9.3

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 (75) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/.yarn/releases/{yarn-4.10.3.cjs → yarn-4.12.0.cjs} +300 -300
  3. package/.yarnrc.yml +1 -1
  4. package/README.md +3 -2
  5. package/RELEASE_NOTES.MD +20 -0
  6. package/dist/consoles/mock-bambu.server.js +305 -0
  7. package/dist/consoles/mock-bambu.server.js.map +1 -0
  8. package/dist/constants/server-settings.constants.js +1 -0
  9. package/dist/constants/server-settings.constants.js.map +1 -1
  10. package/dist/container.js +8 -0
  11. package/dist/container.js.map +1 -1
  12. package/dist/container.tokens.js +4 -0
  13. package/dist/container.tokens.js.map +1 -1
  14. package/dist/controllers/first-time-setup.controller.js +33 -2
  15. package/dist/controllers/first-time-setup.controller.js.map +1 -1
  16. package/dist/controllers/server-private.controller.js +10 -10
  17. package/dist/controllers/server-private.controller.js.map +1 -1
  18. package/dist/controllers/server-public.controller.js +4 -0
  19. package/dist/controllers/server-public.controller.js.map +1 -1
  20. package/dist/controllers/settings.controller.js +22 -0
  21. package/dist/controllers/settings.controller.js.map +1 -1
  22. package/dist/entities/settings.entity.js.map +1 -1
  23. package/dist/middleware/global.middleware.js +1 -0
  24. package/dist/middleware/global.middleware.js.map +1 -1
  25. package/dist/middleware/printer.js +11 -0
  26. package/dist/middleware/printer.js.map +1 -1
  27. package/dist/models/Settings.js +5 -0
  28. package/dist/models/Settings.js.map +1 -1
  29. package/dist/server.constants.js +1 -8
  30. package/dist/server.constants.js.map +1 -1
  31. package/dist/services/bambu/bambu-ftp.adapter.js +204 -0
  32. package/dist/services/bambu/bambu-ftp.adapter.js.map +1 -0
  33. package/dist/services/bambu/bambu-mqtt.adapter.js +387 -0
  34. package/dist/services/bambu/bambu-mqtt.adapter.js.map +1 -0
  35. package/dist/services/bambu/bambu.client.js +67 -0
  36. package/dist/services/bambu/bambu.client.js.map +1 -0
  37. package/dist/services/bambu/mqtt-message.types.js +6 -0
  38. package/dist/services/bambu/mqtt-message.types.js.map +1 -0
  39. package/dist/services/bambu.api.js +221 -0
  40. package/dist/services/bambu.api.js.map +1 -0
  41. package/dist/services/core/yaml.service.js +123 -37
  42. package/dist/services/core/yaml.service.js.map +1 -1
  43. package/dist/services/interfaces/printer.dto.js.map +1 -1
  44. package/dist/services/interfaces/settings.dto.js.map +1 -1
  45. package/dist/services/mongoose/floor.service.js +1 -1
  46. package/dist/services/mongoose/floor.service.js.map +1 -1
  47. package/dist/services/mongoose/settings.service.js.map +1 -1
  48. package/dist/services/mongoose/user.service.js +7 -0
  49. package/dist/services/mongoose/user.service.js.map +1 -1
  50. package/dist/services/orm/floor.service.js +1 -1
  51. package/dist/services/orm/settings.service.js +0 -4
  52. package/dist/services/orm/settings.service.js.map +1 -1
  53. package/dist/services/orm/user.service.js +8 -0
  54. package/dist/services/orm/user.service.js.map +1 -1
  55. package/dist/services/printer-api.factory.js +7 -1
  56. package/dist/services/printer-api.factory.js.map +1 -1
  57. package/dist/services/printer-api.interface.js +5 -0
  58. package/dist/services/printer-api.interface.js.map +1 -1
  59. package/dist/services/socket.factory.js +3 -0
  60. package/dist/services/socket.factory.js.map +1 -1
  61. package/dist/services/validators/printer-service.validation.js +1 -1
  62. package/dist/services/validators/printer-service.validation.js.map +1 -1
  63. package/dist/services/validators/settings-service.validation.js +8 -1
  64. package/dist/services/validators/settings-service.validation.js.map +1 -1
  65. package/dist/services/validators/yaml-service.validation.js +27 -1
  66. package/dist/services/validators/yaml-service.validation.js.map +1 -1
  67. package/dist/shared/runtime-settings.migration.js +1 -0
  68. package/dist/shared/runtime-settings.migration.js.map +1 -1
  69. package/dist/state/printer-events.cache.js +13 -0
  70. package/dist/state/printer-events.cache.js.map +1 -1
  71. package/dist/state/settings.store.js +13 -4
  72. package/dist/state/settings.store.js.map +1 -1
  73. package/package.json +34 -27
  74. package/dist/utils/printer-type.utils.js +0 -32
  75. package/dist/utils/printer-type.utils.js.map +0 -1
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "ServerPrivateController", {
8
8
  return ServerPrivateController;
9
9
  }
10
10
  });
11
- const _stream = require("stream");
11
+ const _nodestream = require("node:stream");
12
12
  const _awilixexpress = require("awilix-express");
13
13
  const _authenticate = require("../middleware/authenticate");
14
14
  const _serverconstants = require("../server.constants");
@@ -97,21 +97,21 @@ class ServerPrivateController {
97
97
  const rateLimitResponse = await this.githubService.getRateLimit();
98
98
  res.send(rateLimitResponse.data);
99
99
  }
100
- async importPrintersAndFloorsYaml(req, res) {
100
+ async importYaml(req, res) {
101
101
  const files = await this.multerService.multerLoadFileAsync(req, res, [
102
102
  ".yaml"
103
103
  ], false);
104
104
  const firstFile = files[0];
105
- const spec = await this.yamlService.importPrintersAndFloors(firstFile.buffer.toString());
105
+ const spec = await this.yamlService.importYaml(firstFile.buffer.toString());
106
106
  res.send({
107
107
  success: true,
108
108
  spec
109
109
  });
110
110
  }
111
- async exportPrintersAndFloorsYaml(req, res) {
112
- const yaml = await this.yamlService.exportPrintersAndFloors(req.body);
111
+ async exportYaml(req, res) {
112
+ const yaml = await this.yamlService.exportYaml(req.body);
113
113
  const fileContents = Buffer.from(yaml);
114
- const readStream = new _stream.PassThrough();
114
+ const readStream = new _nodestream.PassThrough();
115
115
  readStream.end(fileContents);
116
116
  const fileName = `export-${_serverconstants.AppConstants.serverRepoName}-` + Date.now() + ".yaml";
117
117
  res.set("Content-disposition", "attachment; filename=" + fileName);
@@ -175,24 +175,24 @@ _ts_decorate([
175
175
  ], ServerPrivateController.prototype, "getGithubRateLimit", null);
176
176
  _ts_decorate([
177
177
  (0, _awilixexpress.POST)(),
178
- (0, _awilixexpress.route)("/import-printers-floors-yaml"),
178
+ (0, _awilixexpress.route)("/yaml-import"),
179
179
  _ts_metadata("design:type", Function),
180
180
  _ts_metadata("design:paramtypes", [
181
181
  typeof _express.Request === "undefined" ? Object : _express.Request,
182
182
  typeof _express.Response === "undefined" ? Object : _express.Response
183
183
  ]),
184
184
  _ts_metadata("design:returntype", Promise)
185
- ], ServerPrivateController.prototype, "importPrintersAndFloorsYaml", null);
185
+ ], ServerPrivateController.prototype, "importYaml", null);
186
186
  _ts_decorate([
187
187
  (0, _awilixexpress.POST)(),
188
- (0, _awilixexpress.route)("/export-printers-floors-yaml"),
188
+ (0, _awilixexpress.route)("/yaml-export"),
189
189
  _ts_metadata("design:type", Function),
190
190
  _ts_metadata("design:paramtypes", [
191
191
  typeof _express.Request === "undefined" ? Object : _express.Request,
192
192
  typeof _express.Response === "undefined" ? Object : _express.Response
193
193
  ]),
194
194
  _ts_metadata("design:returntype", Promise)
195
- ], ServerPrivateController.prototype, "exportPrintersAndFloorsYaml", null);
195
+ ], ServerPrivateController.prototype, "exportYaml", null);
196
196
  _ts_decorate([
197
197
  (0, _awilixexpress.DELETE)(),
198
198
  (0, _awilixexpress.route)("/delete-all-printers"),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/controllers/server-private.controller.ts"],"names":["ServerPrivateController","logger","loggerFactory","serverReleaseService","printerCache","printerService","clientBundleService","githubService","logDumpService","yamlService","multerService","name","getReleaseStateInfo","req","res","syncLatestRelease","updateState","getState","send","getClientReleases","_req","releaseSpec","getReleases","updateClientBundleGithub","updateDto","validateMiddleware","updateClientBundleSchema","willExecute","shouldUpdateWithReason","AppConstants","defaultClientMinimum","downloadRelease","allowDowngrade","log","shouldUpdate","reason","executed","requestedVersion","currentVersion","minimumVersion","targetVersion","downloadClientUpdate","getGithubRateLimit","rateLimitResponse","getRateLimit","data","importPrintersAndFloorsYaml","files","multerLoadFileAsync","firstFile","spec","importPrintersAndFloors","buffer","toString","success","exportPrintersAndFloorsYaml","yaml","exportPrintersAndFloors","body","fileContents","Buffer","from","readStream","PassThrough","end","fileName","serverRepoName","Date","now","set","pipe","deleteAllPrinters","printers","listCachedPrinters","printerIds","map","p","id","deleteMany","clearLogs","counts","deleteOlderThanWeekAndMismatchingLogFiles","dumpLogZips","filePath","dumpZip","sendFile","apiRoute","authenticate","authorizeRoles","ROLES","ADMIN","demoUserNotAllowed"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/controllers/server-private.controller.ts"],"names":["ServerPrivateController","logger","loggerFactory","serverReleaseService","printerCache","printerService","clientBundleService","githubService","logDumpService","yamlService","multerService","name","getReleaseStateInfo","req","res","syncLatestRelease","updateState","getState","send","getClientReleases","_req","releaseSpec","getReleases","updateClientBundleGithub","updateDto","validateMiddleware","updateClientBundleSchema","willExecute","shouldUpdateWithReason","AppConstants","defaultClientMinimum","downloadRelease","allowDowngrade","log","shouldUpdate","reason","executed","requestedVersion","currentVersion","minimumVersion","targetVersion","downloadClientUpdate","getGithubRateLimit","rateLimitResponse","getRateLimit","data","importYaml","files","multerLoadFileAsync","firstFile","spec","buffer","toString","success","exportYaml","yaml","body","fileContents","Buffer","from","readStream","PassThrough","end","fileName","serverRepoName","Date","now","set","pipe","deleteAllPrinters","printers","listCachedPrinters","printerIds","map","p","id","deleteMany","clearLogs","counts","deleteOlderThanWeekAndMismatchingLogFiles","dumpLogZips","filePath","dumpZip","sendFile","apiRoute","authenticate","authorizeRoles","ROLES","ADMIN","demoUserNotAllowed"],"mappings":"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"}
@@ -54,6 +54,7 @@ class ServerPublicController {
54
54
  const serverSettings = this.settingsStore.getServerSettings();
55
55
  const moonrakerEnabled = serverSettings.experimentalMoonrakerSupport;
56
56
  const prusaLinkEnabled = serverSettings.experimentalPrusaLinkSupport;
57
+ const bambuEnabled = serverSettings.experimentalBambuSupport;
57
58
  res.send({
58
59
  printerGroupsApi: {
59
60
  available: this.isTypeormMode,
@@ -71,6 +72,9 @@ class ServerPublicController {
71
72
  ] : [],
72
73
  ...prusaLinkEnabled ? [
73
74
  "prusaLink"
75
+ ] : [],
76
+ ...bambuEnabled ? [
77
+ "bambu"
74
78
  ] : []
75
79
  ]
76
80
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/controllers/server-public.controller.ts"],"names":["ServerPublicController","settingsStore","serverVersion","serverReleaseService","monsterPiService","isTypeormMode","welcome","req","res","getSettings","getLoginRequired","send","message","getFeatures","serverSettings","getServerSettings","moonrakerEnabled","experimentalMoonrakerSupport","prusaLinkEnabled","experimentalPrusaLinkSupport","printerGroupsApi","available","version","subFeatures","multiplePrinterServices","types","getVersion","updateState","getState","monsterPiVersion","getMonsterPiVersionSafe","json","isNode","os","process","env","OS","monsterPi","update","synced","updateAvailable","airGapped","test","authenticate","permission","PERMS","ServerInfo","Get","apiRoute"],"mappings":";;;;+BAWaA;;;eAAAA;;;+BAXsB;iCACN;0BACN;8BACkB;wCACnB;+BACQ;sCACO;kCACJ;yBACC;;;;;;;;;;AAG3B,MAAMA;;;;;;IACX,YACE,AAAiBC,aAA4B,EAC7C,AAAiBC,aAAqB,EACtC,AAAiBC,oBAA0C,EAC3D,AAAiBC,gBAAkC,EACnD,AAAiBC,aAAsB,CACvC;aALiBJ,gBAAAA;aACAC,gBAAAA;aACAC,uBAAAA;aACAC,mBAAAA;aACAC,gBAAAA;IAEnB;IAKAC,QAAQC,GAAY,EAAEC,GAAa,EAAE;QACnC,IAAI,CAACP,aAAa,CAACQ,WAAW;QAE9B,IAAI,CAAC,IAAI,CAACR,aAAa,CAACS,gBAAgB,IAAI;YAC1C,OAAOF,IAAIG,IAAI,CAAC;gBACdC,SAAS;YACX;QACF;QAEA,OAAOJ,IAAIG,IAAI,CAAC;YACdC,SAAS;QACX;IACF;IAKAC,YAAYN,GAAY,EAAEC,GAAa,EAAE;QACvC,MAAMM,iBAAiB,IAAI,CAACb,aAAa,CAACc,iBAAiB;QAC3D,MAAMC,mBAAmBF,eAAeG,4BAA4B;QACpE,MAAMC,mBAAmBJ,eAAeK,4BAA4B;QACpEX,IAAIG,IAAI,CAAC;YACPS,kBAAkB;gBAEhBC,WAAW,IAAI,CAAChB,aAAa;gBAC7BiB,SAAS;gBACTC,aAAa,CAAC;YAChB;YACAC,yBAAyB;gBACvBH,WAAW;gBACXC,SAAS;gBACTC,aAAa;oBACXE,OAAO;wBACL;2BACIT,mBAAmB;4BAAC;yBAAU,GAAG,EAAE;2BACnCE,mBAAmB;4BAAC;yBAAY,GAAG,EAAE;qBAC1C;gBACH;YACF;QACF;IACF;IAEA,MAGMQ,WAAWnB,GAAY,EAAEC,GAAa,EAAE;QAC5C,MAAMmB,cAAc,IAAI,CAACxB,oBAAoB,CAACyB,QAAQ;QACtD,MAAMC,mBAAmB,IAAI,CAACzB,gBAAgB,CAAC0B,uBAAuB;QAEtEtB,IAAIuB,IAAI,CAAC;YACPT,SAAS,IAAI,CAACpB,aAAa;YAC3B8B,QAAQA,IAAAA,gBAAM;YACdC,IAAIC,QAAQC,GAAG,CAACC,EAAE;YAClBC,WAAWR;YACXS,QAAQ;gBACNC,QAAQZ,YAAYY,MAAM;gBAC1BC,iBAAiBb,YAAYa,eAAe;gBAC5CC,WAAWd,YAAYc,SAAS;YAClC;QACF;IACF;IAEA,MAEMC,KAAKnC,GAAY,EAAEC,GAAa,EAAE;QACtCA,IAAIG,IAAI,CAAC;YACPC,SAAS;QACX;IACF;AACF;;;;;QAtEW+B,IAAAA,0BAAY;QAAIC,IAAAA,wBAAU,EAACC,6BAAK,CAACC,UAAU,CAACC,GAAG;;;;;;;;;;;;;QAiB/CJ,IAAAA,0BAAY;;;;;;;;;;;;;QA4BZA,IAAAA,0BAAY;QAAIC,IAAAA,wBAAU,EAACC,6BAAK,CAACC,UAAU,CAACC,GAAG;;;;;;;;;;;;;;;;;;;;4DA1DtCC"}
1
+ {"version":3,"sources":["../../src/controllers/server-public.controller.ts"],"names":["ServerPublicController","settingsStore","serverVersion","serverReleaseService","monsterPiService","isTypeormMode","welcome","req","res","getSettings","getLoginRequired","send","message","getFeatures","serverSettings","getServerSettings","moonrakerEnabled","experimentalMoonrakerSupport","prusaLinkEnabled","experimentalPrusaLinkSupport","bambuEnabled","experimentalBambuSupport","printerGroupsApi","available","version","subFeatures","multiplePrinterServices","types","getVersion","updateState","getState","monsterPiVersion","getMonsterPiVersionSafe","json","isNode","os","process","env","OS","monsterPi","update","synced","updateAvailable","airGapped","test","authenticate","permission","PERMS","ServerInfo","Get","apiRoute"],"mappings":";;;;+BAWaA;;;eAAAA;;;+BAXsB;iCACN;0BACN;8BACkB;wCACnB;+BACQ;sCACO;kCACJ;yBACC;;;;;;;;;;AAG3B,MAAMA;;;;;;IACX,YACE,AAAiBC,aAA4B,EAC7C,AAAiBC,aAAqB,EACtC,AAAiBC,oBAA0C,EAC3D,AAAiBC,gBAAkC,EACnD,AAAiBC,aAAsB,CACvC;aALiBJ,gBAAAA;aACAC,gBAAAA;aACAC,uBAAAA;aACAC,mBAAAA;aACAC,gBAAAA;IAEnB;IAKAC,QAAQC,GAAY,EAAEC,GAAa,EAAE;QACnC,IAAI,CAACP,aAAa,CAACQ,WAAW;QAE9B,IAAI,CAAC,IAAI,CAACR,aAAa,CAACS,gBAAgB,IAAI;YAC1C,OAAOF,IAAIG,IAAI,CAAC;gBACdC,SAAS;YACX;QACF;QAEA,OAAOJ,IAAIG,IAAI,CAAC;YACdC,SAAS;QACX;IACF;IAKAC,YAAYN,GAAY,EAAEC,GAAa,EAAE;QACvC,MAAMM,iBAAiB,IAAI,CAACb,aAAa,CAACc,iBAAiB;QAC3D,MAAMC,mBAAmBF,eAAeG,4BAA4B;QACpE,MAAMC,mBAAmBJ,eAAeK,4BAA4B;QACpE,MAAMC,eAAeN,eAAeO,wBAAwB;QAC5Db,IAAIG,IAAI,CAAC;YACPW,kBAAkB;gBAEhBC,WAAW,IAAI,CAAClB,aAAa;gBAC7BmB,SAAS;gBACTC,aAAa,CAAC;YAChB;YACAC,yBAAyB;gBACvBH,WAAW;gBACXC,SAAS;gBACTC,aAAa;oBACXE,OAAO;wBACL;2BACIX,mBAAmB;4BAAC;yBAAU,GAAG,EAAE;2BACnCE,mBAAmB;4BAAC;yBAAY,GAAG,EAAE;2BACrCE,eAAe;4BAAC;yBAAQ,GAAG,EAAE;qBAClC;gBACH;YACF;QACF;IACF;IAEA,MAGMQ,WAAWrB,GAAY,EAAEC,GAAa,EAAE;QAC5C,MAAMqB,cAAc,IAAI,CAAC1B,oBAAoB,CAAC2B,QAAQ;QACtD,MAAMC,mBAAmB,IAAI,CAAC3B,gBAAgB,CAAC4B,uBAAuB;QAEtExB,IAAIyB,IAAI,CAAC;YACPT,SAAS,IAAI,CAACtB,aAAa;YAC3BgC,QAAQA,IAAAA,gBAAM;YACdC,IAAIC,QAAQC,GAAG,CAACC,EAAE;YAClBC,WAAWR;YACXS,QAAQ;gBACNC,QAAQZ,YAAYY,MAAM;gBAC1BC,iBAAiBb,YAAYa,eAAe;gBAC5CC,WAAWd,YAAYc,SAAS;YAClC;QACF;IACF;IAEA,MAEMC,KAAKrC,GAAY,EAAEC,GAAa,EAAE;QACtCA,IAAIG,IAAI,CAAC;YACPC,SAAS;QACX;IACF;AACF;;;;;QAxEWiC,IAAAA,0BAAY;QAAIC,IAAAA,wBAAU,EAACC,6BAAK,CAACC,UAAU,CAACC,GAAG;;;;;;;;;;;;;QAiB/CJ,IAAAA,0BAAY;;;;;;;;;;;;;QA8BZA,IAAAA,0BAAY;QAAIC,IAAAA,wBAAU,EAACC,6BAAK,CAACC,UAAU,CAACC,GAAG;;;;;;;;;;;;;;;;;;;;4DA5DtCC"}
@@ -96,6 +96,18 @@ class SettingsController {
96
96
  }
97
97
  res.send(result);
98
98
  }
99
+ async updateBambuSupport(req, res) {
100
+ const { enabled } = await (0, _validators.validateInput)(req.body, _settingsservicevalidation.bambuSupportSchema);
101
+ const result = await this.settingsStore.setExperimentalBambuSupport(enabled);
102
+ if (!enabled) {
103
+ const printers = await this.printerCache.listCachedPrinters(false);
104
+ const bambuPrinters = printers.filter((p)=>p.printerType === _printerapiinterface.BambuType);
105
+ for (const printer of bambuPrinters){
106
+ await this.printerService.updateEnabled(printer.id, false);
107
+ }
108
+ }
109
+ res.send(result);
110
+ }
99
111
  async updateThumbnailSupport(req, res) {
100
112
  const { enabled } = await (0, _validators.validateInput)(req.body, _settingsservicevalidation.thumbnailSupportSchema);
101
113
  const result = await this.settingsStore.setExperimentalThumbnailSupport(enabled);
@@ -213,6 +225,16 @@ _ts_decorate([
213
225
  ]),
214
226
  _ts_metadata("design:returntype", Promise)
215
227
  ], SettingsController.prototype, "updatePrusaLinkSupport", null);
228
+ _ts_decorate([
229
+ (0, _awilixexpress.PUT)(),
230
+ (0, _awilixexpress.route)("/experimental-bambu-support"),
231
+ _ts_metadata("design:type", Function),
232
+ _ts_metadata("design:paramtypes", [
233
+ typeof _express.Request === "undefined" ? Object : _express.Request,
234
+ typeof _express.Response === "undefined" ? Object : _express.Response
235
+ ]),
236
+ _ts_metadata("design:returntype", Promise)
237
+ ], SettingsController.prototype, "updateBambuSupport", null);
216
238
  _ts_decorate([
217
239
  (0, _awilixexpress.PUT)(),
218
240
  (0, _awilixexpress.route)("/experimental-thumbnail-support"),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/controllers/settings.controller.ts"],"names":["SettingsController","logger","loggerFactory","serverVersion","printerCache","printerService","settingsStore","printerThumbnailCache","name","getSettings","req","res","connection","clientIp","socket","remoteAddress","version","e","warn","settings","send","getSettingsSensitive","updateSentryDiagnosticsEnabled","enabled","validateInput","body","sentryDiagnosticsEnabledSchema","result","setSentryDiagnosticsEnabled","updateMoonrakerSupport","moonrakerSupportSchema","setExperimentalMoonrakerSupport","printers","listCachedPrinters","klipperPrinters","filter","p","printerType","MoonrakerType","printer","updateEnabled","id","updatePrusaLinkSupport","prusaLinkSupportSchema","setExperimentalPrusaLinkSupport","prusaLinkPrinters","PrusaLinkType","updateThumbnailSupport","thumbnailSupportSchema","setExperimentalThumbnailSupport","loadCache","resetCache","updateClientSupport","clientNextSchema","setExperimentalClientSupport","updateFrontendSettings","validatedInput","frontendSettingsUpdateSchema","updateLoginRequiredSettings","loginRequired","loginRequiredSchema","setLoginRequired","updateRegistrationEnabledSettings","registrationEnabled","registrationEnabledSchema","setRegistrationEnabled","updateCredentialSettings","credentialSettingUpdateSchema","updateFileCleanSettings","fileCleanSettingsUpdateSchema","updateTimeoutSettings","timeoutSettingsUpdateSchema","authorizeRoles","ROLES","ADMIN","demoUserNotAllowed","AppConstants","apiRoute","authenticate"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/controllers/settings.controller.ts"],"names":["SettingsController","logger","loggerFactory","serverVersion","printerCache","printerService","settingsStore","printerThumbnailCache","name","getSettings","req","res","connection","clientIp","socket","remoteAddress","version","e","warn","settings","send","getSettingsSensitive","updateSentryDiagnosticsEnabled","enabled","validateInput","body","sentryDiagnosticsEnabledSchema","result","setSentryDiagnosticsEnabled","updateMoonrakerSupport","moonrakerSupportSchema","setExperimentalMoonrakerSupport","printers","listCachedPrinters","klipperPrinters","filter","p","printerType","MoonrakerType","printer","updateEnabled","id","updatePrusaLinkSupport","prusaLinkSupportSchema","setExperimentalPrusaLinkSupport","prusaLinkPrinters","PrusaLinkType","updateBambuSupport","bambuSupportSchema","setExperimentalBambuSupport","bambuPrinters","BambuType","updateThumbnailSupport","thumbnailSupportSchema","setExperimentalThumbnailSupport","loadCache","resetCache","updateClientSupport","clientNextSchema","setExperimentalClientSupport","updateFrontendSettings","validatedInput","frontendSettingsUpdateSchema","updateLoginRequiredSettings","loginRequired","loginRequiredSchema","setLoginRequired","updateRegistrationEnabledSettings","registrationEnabled","registrationEnabledSchema","setRegistrationEnabled","updateCredentialSettings","credentialSettingUpdateSchema","updateFileCleanSettings","fileCleanSettingsUpdateSchema","updateTimeoutSettings","timeoutSettingsUpdateSchema","authorizeRoles","ROLES","ADMIN","demoUserNotAllowed","AppConstants","apiRoute","authenticate"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/entities/settings.entity.ts"],"names":["Settings","serverSettingsKey","credentialSettingsKey","wizardSettingKey","printerFileCleanSettingKey","frontendSettingKey","timeoutSettingKey","id","type","nullable"],"mappings":";;;;+BAYaA;;;eAAAA;;;yCALN;yBACgD;;;;;;;;;;IASrD,MAWA,OAQA,OAOA,OAOA,OAQA;AAzCA,OAACC,0CAAiB;AAWlB,QAACC,8CAAqB;AAQtB,QAACC,yCAAgB;AAOjB,QAACC,mDAA0B;AAO3B,QAACC,2CAAkB;AAQnB,QAACC,0CAAiB;AA9Cb,MAAMN;IAEXO,GAAW;IAGX,CAAA,KAAmB,CAQjB;IAGF,CAAA,MAAuB,CAKrB;IAGF,CAAA,MAAkB,CAIhB;IAGF,CAAA,MAA4B,CAI1B;IAGF,CAAA,MAAoB,CAKlB;IAGF,CAAA,MAAmB,CAGjB;AACJ;;;;;;;QA9CYC,MAAM;QAAeC,UAAU;;;uBACzC;;;QAUUD,MAAM;QAAeC,UAAU;;;uBACzC;;;QAOUD,MAAM;QAAeC,UAAU;;;uBACzC;;;QAMUD,MAAM;QAAeC,UAAU;;;uBACzC;;;QAMUD,MAAM;QAAeC,UAAU;;;uBACzC;;;QAOUD,MAAM;QAAeC,UAAU;;;uBACzC"}
1
+ {"version":3,"sources":["../../src/entities/settings.entity.ts"],"names":["Settings","serverSettingsKey","credentialSettingsKey","wizardSettingKey","printerFileCleanSettingKey","frontendSettingKey","timeoutSettingKey","id","type","nullable"],"mappings":";;;;+BAYaA;;;eAAAA;;;yCALN;yBACgD;;;;;;;;;;IASrD,MAYA,OAQA,OAOA,OAOA,OAQA;AA1CA,OAACC,0CAAiB;AAYlB,QAACC,8CAAqB;AAQtB,QAACC,yCAAgB;AAOjB,QAACC,mDAA0B;AAO3B,QAACC,2CAAkB;AAQnB,QAACC,0CAAiB;AA/Cb,MAAMN;IAEXO,GAAW;IAGX,CAAA,KAAmB,CASjB;IAGF,CAAA,MAAuB,CAKrB;IAGF,CAAA,MAAkB,CAIhB;IAGF,CAAA,MAA4B,CAI1B;IAGF,CAAA,MAAoB,CAKlB;IAGF,CAAA,MAAmB,CAGjB;AACJ;;;;;;;QA/CYC,MAAM;QAAeC,UAAU;;;uBACzC;;;QAWUD,MAAM;QAAeC,UAAU;;;uBACzC;;;QAOUD,MAAM;QAAeC,UAAU;;;uBACzC;;;QAMUD,MAAM;QAAeC,UAAU;;;uBACzC;;;QAMUD,MAAM;QAAeC,UAAU;;;uBACzC;;;QAOUD,MAAM;QAAeC,UAAU;;;uBACzC"}
@@ -28,6 +28,7 @@ const validateWizardCompleted = (0, _awilixexpress.inject)((configService, setti
28
28
  const allowedPaths = [
29
29
  "/api/first-time-setup/complete",
30
30
  "/api/first-time-setup/validate",
31
+ "/api/first-time-setup/yaml-import",
31
32
  "/api/test",
32
33
  "/api/auth/login-required"
33
34
  ];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/middleware/global.middleware.ts"],"names":["interceptRoles","validateWizardCompleted","inject","configService","settingsStore","loggerFactory","req","res","next","logger","name","isDemoMode","getWizardSettings","wizardCompleted","allowedPaths","includes","path","startsWith","error","ForbiddenError","join","roleService","isTypeormMode","serverSettings","getSettings","roles","user","map","r","roleId","roleName","getAppDefaultRole"],"mappings":";;;;;;;;;;;QAsCaA;eAAAA;;QA5BAC;eAAAA;;;+BAVU;mCACQ;AASxB,MAAMA,0BAA0BC,IAAAA,qBAAM,EAC3C,CAACC,eAA+BC,eAA8BC,gBAC5D,OAAOC,KAAcC,KAAeC;QAClC,MAAMC,SAASJ,cAAcJ,wBAAwBS,IAAI;QACzD,MAAMC,aAAaR,cAAcQ,UAAU;QAC3C,IAAIA,cAAc,CAAC,CAACP,cAAcQ,iBAAiB,IAAIC,iBAAiB;YACtEL;YACA;QACF;QAEA,MAAMM,eAAe;YACnB;YACA;YACA;YACA;SACD;QACD,IAAIA,aAAaC,QAAQ,CAACT,IAAIU,IAAI,KAAK,CAACV,IAAIU,IAAI,CAACC,UAAU,CAAC,SAAS;YACnET;YACA;QACF,OAAO;YACLC,OAAOS,KAAK,CAAC,wBAAwBZ,IAAIU,IAAI;YAC7C,MAAM,IAAIG,iCAAc,CACtB,CAAC,6DAA6D,EAAEL,aAAaM,IAAI,CAAC,OAAO;QAE7F;IACF;AAGG,MAAMpB,iBAAiBE,IAAAA,qBAAM,EAClC,CAACE,eAA8BiB,aAA2BC,gBACxD,OAAOhB,KAAcC,KAAeC;QAClC,MAAMe,iBAAiBnB,cAAcoB,WAAW;QAEhD,IAAIF,eAAe;YACjBhB,IAAImB,KAAK,GAAG,AAACnB,CAAAA,IAAIoB,IAAI,EAAED,SAAuB,EAAE,AAAD,EAAGE,GAAG,CAAC,CAACC,IAAgBA,EAAEC,MAAM;QACjF,OAAO;YACLvB,IAAImB,KAAK,GAAGnB,IAAIoB,IAAI,EAAED;QACxB;QAGA,IAAIF,kBAAkB,CAACjB,IAAIoB,IAAI,EAAE;YAC/B,MAAMI,WAAW,MAAMT,YAAYU,iBAAiB;YACpDzB,IAAImB,KAAK,GAAG;gBAACK;aAAS;QACxB;QAEAtB;IACF"}
1
+ {"version":3,"sources":["../../src/middleware/global.middleware.ts"],"names":["interceptRoles","validateWizardCompleted","inject","configService","settingsStore","loggerFactory","req","res","next","logger","name","isDemoMode","getWizardSettings","wizardCompleted","allowedPaths","includes","path","startsWith","error","ForbiddenError","join","roleService","isTypeormMode","serverSettings","getSettings","roles","user","map","r","roleId","roleName","getAppDefaultRole"],"mappings":";;;;;;;;;;;QAuCaA;eAAAA;;QA7BAC;eAAAA;;;+BAVU;mCACQ;AASxB,MAAMA,0BAA0BC,IAAAA,qBAAM,EAC3C,CAACC,eAA+BC,eAA8BC,gBAC5D,OAAOC,KAAcC,KAAeC;QAClC,MAAMC,SAASJ,cAAcJ,wBAAwBS,IAAI;QACzD,MAAMC,aAAaR,cAAcQ,UAAU;QAC3C,IAAIA,cAAc,CAAC,CAACP,cAAcQ,iBAAiB,IAAIC,iBAAiB;YACtEL;YACA;QACF;QAEA,MAAMM,eAAe;YACnB;YACA;YACA;YACA;YACA;SACD;QACD,IAAIA,aAAaC,QAAQ,CAACT,IAAIU,IAAI,KAAK,CAACV,IAAIU,IAAI,CAACC,UAAU,CAAC,SAAS;YACnET;YACA;QACF,OAAO;YACLC,OAAOS,KAAK,CAAC,wBAAwBZ,IAAIU,IAAI;YAC7C,MAAM,IAAIG,iCAAc,CACtB,CAAC,6DAA6D,EAAEL,aAAaM,IAAI,CAAC,OAAO;QAE7F;IACF;AAGG,MAAMpB,iBAAiBE,IAAAA,qBAAM,EAClC,CAACE,eAA8BiB,aAA2BC,gBACxD,OAAOhB,KAAcC,KAAeC;QAClC,MAAMe,iBAAiBnB,cAAcoB,WAAW;QAEhD,IAAIF,eAAe;YACjBhB,IAAImB,KAAK,GAAG,AAACnB,CAAAA,IAAIoB,IAAI,EAAED,SAAuB,EAAE,AAAD,EAAGE,GAAG,CAAC,CAACC,IAAgBA,EAAEC,MAAM;QACjF,OAAO;YACLvB,IAAImB,KAAK,GAAGnB,IAAIoB,IAAI,EAAED;QACxB;QAGA,IAAIF,kBAAkB,CAACjB,IAAIoB,IAAI,EAAE;YAC/B,MAAMI,WAAW,MAAMT,YAAYU,iBAAiB;YACpDzB,IAAImB,KAAK,GAAG;gBAACK;aAAS;QACxB;QAEAtB;IACF"}
@@ -38,6 +38,7 @@ const printerResolveMiddleware = (key = "id")=>{
38
38
  const settingsService = req.container.resolve(_containertokens.DITokens.settingsStore);
39
39
  const moonrakerEnabled = settingsService.getServerSettings().experimentalMoonrakerSupport;
40
40
  const prusaLinkEnabled = settingsService.getServerSettings().experimentalPrusaLinkSupport;
41
+ const bambuEnabled = settingsService.getServerSettings().experimentalBambuSupport;
41
42
  let scopedPrinter = undefined;
42
43
  let loginDto = undefined;
43
44
  const printerId = req.params[key];
@@ -72,6 +73,16 @@ const printerResolveMiddleware = (key = "id")=>{
72
73
  req.container.register({
73
74
  [printerApiToken]: prusaLinkEnabled ? (0, _awilix.asValue)(prusaLinkInstance) : (0, _awilix.asValue)(undefined)
74
75
  });
76
+ break;
77
+ }
78
+ case _printerapiinterface.BambuType:
79
+ {
80
+ const bambuInstance = req.container.resolve(_containertokens.DITokens.bambuApi);
81
+ bambuInstance.setPrinterId(printerId);
82
+ req.container.register({
83
+ [printerApiToken]: bambuEnabled ? (0, _awilix.asValue)(bambuInstance) : (0, _awilix.asValue)(undefined)
84
+ });
85
+ break;
75
86
  }
76
87
  }
77
88
  } else {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/middleware/printer.ts"],"names":["currentPrinterToken","printerApiToken","printerIdToken","printerLoginToken","printerResolveMiddleware","key","req","res","next","printerCache","container","resolve","DITokens","settingsService","settingsStore","moonrakerEnabled","getServerSettings","experimentalMoonrakerSupport","prusaLinkEnabled","experimentalPrusaLinkSupport","scopedPrinter","undefined","loginDto","printerId","params","getCachedPrinterOrThrow","getLoginDto","register","asValue","printerType","OctoprintType","octoprintApiInstance","octoprintApi","MoonrakerType","moonrakerInstance","moonrakerApi","PrusaLinkType","prusaLinkInstance","prusaLinkApi"],"mappings":";;;;;;;;;;;QAYaA;eAAAA;;QADAC;eAAAA;;QADAC;eAAAA;;QAGAC;eAAAA;;QAEAC;eAAAA;;;wBAfW;iCACC;qCAImC;AAKrD,MAAMF,iBAAiB;AACvB,MAAMD,kBAAkB;AACxB,MAAMD,sBAAsB;AAC5B,MAAMG,oBAAoB;AAE1B,MAAMC,2BAA2B,CAACC,MAAM,IAAI;IACjD,OAAO,CAACC,KAAcC,KAAeC;QACnC,MAAMC,eAAeH,IAAII,SAAS,CAACC,OAAO,CAAeC,yBAAQ,CAACH,YAAY;QAC9E,MAAMI,kBAAkBP,IAAII,SAAS,CAACC,OAAO,CAAMC,yBAAQ,CAACE,aAAa;QACzE,MAAMC,mBAAmBF,gBAAgBG,iBAAiB,GAAGC,4BAA4B;QACzF,MAAMC,mBAAmBL,gBAAgBG,iBAAiB,GAAGG,4BAA4B;QAEzF,IAAIC,gBAAgBC;QACpB,IAAIC,WAAWD;QAEf,MAAME,YAAYjB,IAAIkB,MAAM,CAACnB,IAAI;QACjC,IAAIkB,WAAW;YACbH,gBAAgBX,aAAagB,uBAAuB,CAACF;YACrDD,WAAWb,aAAaiB,WAAW,CAACH;YAEpCjB,IAAII,SAAS,CAACiB,QAAQ,CAAC;gBACrB,CAAC3B,oBAAoB,EAAE4B,IAAAA,eAAO,EAACR;gBAC/B,CAACjB,kBAAkB,EAAEyB,IAAAA,eAAO,EAACN;gBAC7B,CAACpB,eAAe,EAAE0B,IAAAA,eAAO,EAACL;YAC5B;YAEA,OAAQH,cAAcS,WAAW;gBAC/B,KAAKC,kCAAa;oBAAE;wBAClB,MAAMC,uBAAuBzB,IAAII,SAAS,CAACC,OAAO,CAAeC,yBAAQ,CAACoB,YAAY;wBACtF1B,IAAII,SAAS,CAACiB,QAAQ,CAAC;4BACrB,CAAC1B,gBAAgB,EAAE2B,IAAAA,eAAO,EAACG;wBAC7B;wBACA;oBACF;gBACA,KAAKE,kCAAa;oBAAE;wBAClB,MAAMC,oBAAoB5B,IAAII,SAAS,CAACC,OAAO,CAAeC,yBAAQ,CAACuB,YAAY;wBACnF7B,IAAII,SAAS,CAACiB,QAAQ,CAAC;4BACrB,CAAC1B,gBAAgB,EAAEc,mBAAmBa,IAAAA,eAAO,EAACM,qBAAqBN,IAAAA,eAAO,EAACP;wBAC7E;wBACA;oBACF;gBACA,KAAKe,kCAAa;oBAAE;wBAClB,MAAMC,oBAAoB/B,IAAII,SAAS,CAACC,OAAO,CAAeC,yBAAQ,CAAC0B,YAAY;wBACnFhC,IAAII,SAAS,CAACiB,QAAQ,CAAC;4BACrB,CAAC1B,gBAAgB,EAAEiB,mBAAmBU,IAAAA,eAAO,EAACS,qBAAqBT,IAAAA,eAAO,EAACP;wBAC7E;oBACF;YACF;QACF,OAAO;YACLf,IAAII,SAAS,CAACiB,QAAQ,CAAC;gBACrB,CAAC3B,oBAAoB,EAAE4B,IAAAA,eAAO,EAACP;gBAC/B,CAAClB,kBAAkB,EAAEyB,IAAAA,eAAO,EAACP;gBAC7B,CAACnB,eAAe,EAAE0B,IAAAA,eAAO,EAACP;gBAC1B,CAACpB,gBAAgB,EAAE2B,IAAAA,eAAO,EAACP;YAC7B;QACF;QAEAb;IACF;AACF"}
1
+ {"version":3,"sources":["../../src/middleware/printer.ts"],"names":["currentPrinterToken","printerApiToken","printerIdToken","printerLoginToken","printerResolveMiddleware","key","req","res","next","printerCache","container","resolve","DITokens","settingsService","settingsStore","moonrakerEnabled","getServerSettings","experimentalMoonrakerSupport","prusaLinkEnabled","experimentalPrusaLinkSupport","bambuEnabled","experimentalBambuSupport","scopedPrinter","undefined","loginDto","printerId","params","getCachedPrinterOrThrow","getLoginDto","register","asValue","printerType","OctoprintType","octoprintApiInstance","octoprintApi","MoonrakerType","moonrakerInstance","moonrakerApi","PrusaLinkType","prusaLinkInstance","prusaLinkApi","BambuType","bambuInstance","bambuApi","setPrinterId"],"mappings":"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"}
@@ -89,6 +89,11 @@ const SettingsSchema = new _mongoose.Schema({
89
89
  default: false,
90
90
  required: true
91
91
  },
92
+ experimentalBambuSupport: {
93
+ type: Boolean,
94
+ default: false,
95
+ required: true
96
+ },
92
97
  experimentalClientSupport: {
93
98
  type: Boolean,
94
99
  default: false,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/models/Settings.ts"],"names":["Settings","SettingsSchema","Schema","wizardSettingKey","wizardCompleted","type","Boolean","default","required","wizardCompletedAt","Date","wizardVersion","Number","printerFileCleanSettingKey","autoRemoveOldFilesBeforeUpload","autoRemoveOldFilesAtBoot","autoRemoveOldFilesCriteriumDays","credentialSettingsKey","jwtSecret","String","minlength","trim","jwtExpiresIn","refreshTokenAttempts","refreshTokenExpiry","serverSettingsKey","sentryDiagnosticsEnabled","loginRequired","registration","experimentalMoonrakerSupport","experimentalClientSupport","experimentalThumbnailSupport","experimentalPrusaLinkSupport","frontendSettingKey","gridCols","gridRows","largeTiles","tilePreferCancelOverQuickStop","timeoutSettingKey","apiTimeout","getDefaultTimeout","apiUploadTimeout","model"],"mappings":";;;;+BAkMaA;;;eAAAA;;;0BAlMiB;yCASvB;AAsDP,MAAMC,iBAAiB,IAAIC,gBAAM,CAAY;IAC3C,CAACC,yCAAgB,CAAC,EAAE;QAClBC,iBAAiB;YACfC,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAC,mBAAmB;YACjBJ,MAAMK;YACNH,SAAS;YACTC,UAAU;QACZ;QACAG,eAAe;YACbN,MAAMO;YACNL,SAAS;YACTC,UAAU;QACZ;IACF;IACA,CAACK,mDAA0B,CAAC,EAAE;QAC5BC,gCAAgC;YAC9BT,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAO,0BAA0B;YACxBV,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAQ,iCAAiC;YAC/BX,MAAMO;YACNL,SAAS;YACTC,UAAU;QACZ;IACF;IACA,CAACS,8CAAqB,CAAC,EAAE;QACvBZ,MAAM;YACJa,WAAW;gBACTb,MAAMc;gBACNC,WAAW;gBACXC,MAAM;gBACNb,UAAU;YACZ;YACAc,cAAc;gBACZjB,MAAMO;gBACNJ,UAAU;YACZ;YACAe,sBAAsB;gBACpBlB,MAAMO;gBACNJ,UAAU;YACZ;YACAgB,oBAAoB;gBAClBnB,MAAMO;gBACNJ,UAAU;YACZ;QACF;QACAA,UAAU;IACZ;IACA,CAACiB,0CAAiB,CAAC,EAAE;QACnBC,0BAA0B;YACxBrB,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAmB,eAAe;YACbtB,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAoB,cAAc;YACZvB,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAqB,8BAA8B;YAC5BxB,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAsB,2BAA2B;YACzBzB,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAuB,8BAA8B;YAC5B1B,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAwB,8BAA8B;YAC5B3B,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;IACF;IACA,CAACyB,2CAAkB,CAAC,EAAE;QACpBC,UAAU;YACR7B,MAAMO;YACNL,SAAS;YACTC,UAAU;QACZ;QACA2B,UAAU;YACR9B,MAAMO;YACNL,SAAS;YACTC,UAAU;QACZ;QACA4B,YAAY;YACV/B,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACA6B,+BAA+B;YAC7BhC,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;IACF;IACA,CAAC8B,0CAAiB,CAAC,EAAE;QACnBC,YAAY;YACVlC,MAAMO;YACNL,SAASiC,IAAAA,0CAAiB,IAAGD,UAAU;YACvC/B,UAAU;QACZ;QACAiC,kBAAkB;YAChBpC,MAAMO;YACNL,SAASiC,IAAAA,0CAAiB,IAAGC,gBAAgB;YAC7CjC,UAAU;QACZ;IACF;AACF;AAEO,MAAMR,WAAW0C,IAAAA,eAAK,EAAC,kBAAkBzC"}
1
+ {"version":3,"sources":["../../src/models/Settings.ts"],"names":["Settings","SettingsSchema","Schema","wizardSettingKey","wizardCompleted","type","Boolean","default","required","wizardCompletedAt","Date","wizardVersion","Number","printerFileCleanSettingKey","autoRemoveOldFilesBeforeUpload","autoRemoveOldFilesAtBoot","autoRemoveOldFilesCriteriumDays","credentialSettingsKey","jwtSecret","String","minlength","trim","jwtExpiresIn","refreshTokenAttempts","refreshTokenExpiry","serverSettingsKey","sentryDiagnosticsEnabled","loginRequired","registration","experimentalMoonrakerSupport","experimentalBambuSupport","experimentalClientSupport","experimentalThumbnailSupport","experimentalPrusaLinkSupport","frontendSettingKey","gridCols","gridRows","largeTiles","tilePreferCancelOverQuickStop","timeoutSettingKey","apiTimeout","getDefaultTimeout","apiUploadTimeout","model"],"mappings":";;;;+BAwMaA;;;eAAAA;;;0BAxMiB;yCASvB;AAuDP,MAAMC,iBAAiB,IAAIC,gBAAM,CAAY;IAC3C,CAACC,yCAAgB,CAAC,EAAE;QAClBC,iBAAiB;YACfC,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAC,mBAAmB;YACjBJ,MAAMK;YACNH,SAAS;YACTC,UAAU;QACZ;QACAG,eAAe;YACbN,MAAMO;YACNL,SAAS;YACTC,UAAU;QACZ;IACF;IACA,CAACK,mDAA0B,CAAC,EAAE;QAC5BC,gCAAgC;YAC9BT,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAO,0BAA0B;YACxBV,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAQ,iCAAiC;YAC/BX,MAAMO;YACNL,SAAS;YACTC,UAAU;QACZ;IACF;IACA,CAACS,8CAAqB,CAAC,EAAE;QACvBZ,MAAM;YACJa,WAAW;gBACTb,MAAMc;gBACNC,WAAW;gBACXC,MAAM;gBACNb,UAAU;YACZ;YACAc,cAAc;gBACZjB,MAAMO;gBACNJ,UAAU;YACZ;YACAe,sBAAsB;gBACpBlB,MAAMO;gBACNJ,UAAU;YACZ;YACAgB,oBAAoB;gBAClBnB,MAAMO;gBACNJ,UAAU;YACZ;QACF;QACAA,UAAU;IACZ;IACA,CAACiB,0CAAiB,CAAC,EAAE;QACnBC,0BAA0B;YACxBrB,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAmB,eAAe;YACbtB,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAoB,cAAc;YACZvB,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAqB,8BAA8B;YAC5BxB,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAsB,0BAA0B;YACxBzB,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAuB,2BAA2B;YACzB1B,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAwB,8BAA8B;YAC5B3B,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACAyB,8BAA8B;YAC5B5B,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;IACF;IACA,CAAC0B,2CAAkB,CAAC,EAAE;QACpBC,UAAU;YACR9B,MAAMO;YACNL,SAAS;YACTC,UAAU;QACZ;QACA4B,UAAU;YACR/B,MAAMO;YACNL,SAAS;YACTC,UAAU;QACZ;QACA6B,YAAY;YACVhC,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;QACA8B,+BAA+B;YAC7BjC,MAAMC;YACNC,SAAS;YACTC,UAAU;QACZ;IACF;IACA,CAAC+B,0CAAiB,CAAC,EAAE;QACnBC,YAAY;YACVnC,MAAMO;YACNL,SAASkC,IAAAA,0CAAiB,IAAGD,UAAU;YACvChC,UAAU;QACZ;QACAkC,kBAAkB;YAChBrC,MAAMO;YACNL,SAASkC,IAAAA,0CAAiB,IAAGC,gBAAgB;YAC7ClC,UAAU;QACZ;IACF;AACF;AAEO,MAAMR,WAAW2C,IAAAA,eAAK,EAAC,kBAAkB1C"}
@@ -71,7 +71,7 @@ const AppConstants = {
71
71
  githubUrl: "https://github.com/fdm-monster/fdm-monster",
72
72
  orgName: "fdm-monster",
73
73
  currentWizardVersion: 1,
74
- defaultClientMinimum: "1.11.1",
74
+ defaultClientMinimum: "1.12.0",
75
75
  influxUrl: "INFLUX_URL",
76
76
  influxToken: "INFLUX_TOKEN",
77
77
  influxOrg: "INFLUX_ORG",
@@ -80,13 +80,6 @@ const AppConstants = {
80
80
  defaultSocketThrottleRate: 1,
81
81
  debugSocketStatesKey: "DEBUG_SOCKET_STATES",
82
82
  defaultDebugSocketStates: "false",
83
- enableMqttAutoDiscoveryToken: "ENABLE_MQTT_AUTODISCOVERY",
84
- enableMqttAutoDiscoveryDefault: "false",
85
- mqttUrlToken: "MQTT_HOST",
86
- mqttPortToken: "MQTT_PORT",
87
- mqttPortDefault: 1883,
88
- mqttUsernameToken: "MQTT_USERNAME",
89
- mqttPasswordToken: "MQTT_PASSWORD",
90
83
  monsterPiFilePath: "/etc/monsterpi_version",
91
84
  sentryCustomDsnToken: "SENTRY_CUSTOM_DSN",
92
85
  sentryCustomDsnDefault: "https://164b8028a8a745bba3dbcab991b84ae7@o4503975545733120.ingest.sentry.io/4505101598261248",
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server.constants.ts"],"names":["AppConstants","NODE_ENV_KEY","VERSION_KEY","SERVER_PORT_KEY","MONGO_KEY","DATABASE_PATH","DATABASE_FILE","pm2ServiceName","logAppName","defaultFileStorageFolder","defaultLogsFolder","defaultLogZipsFolder","defaultClientBundleStorage","defaultClientBundleZipsStorage","defaultPrinterThumbnailsStorage","defaultFileUploadsStorage","defaultAcceptedGcodeExtensions","defaultServerPort","defaultMongoStringUnauthenticated","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","clientNextPackageName","clientNextRepoName","githubUrl","orgName","currentWizardVersion","defaultClientMinimum","influxUrl","influxToken","influxOrg","influxBucket","defaultWebsocketHandshakeTimeout","defaultSocketThrottleRate","debugSocketStatesKey","defaultDebugSocketStates","enableMqttAutoDiscoveryToken","enableMqttAutoDiscoveryDefault","mqttUrlToken","mqttPortToken","mqttPortDefault","mqttUsernameToken","mqttPasswordToken","monsterPiFilePath","sentryCustomDsnToken","sentryCustomDsnDefault","debugRoutesKey","ENABLE_EXPERIMENTAL_TYPEORM","enableExperimentalTypeormDefault","ENABLE_PROMETHEUS_METRICS","ENABLE_LOKI_LOGGING","LOKI_ADDRESS","LOKI_TIMEOUT_SECONDS","LOKI_INTERVAL"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,eAAe;IAC1BC,cAAc;IACdC,aAAa;IACbC,iBAAiB;IACjBC,WAAW;IACXC,eAAe;IACfC,eAAe;IAEfC,gBAAgB;IAChBC,YAAY;IAGZC,0BAA0B;IAC1BC,mBAAmB;IACnBC,sBAAsB;IAEtBC,4BAA4B;IAC5BC,gCAAgC;IAChCC,iCAAiC;IACjCC,2BAA2B;IAC3BC,gCAAgC;QAAC;QAAU;KAAU;IACrDC,mBAAmB;IACnBC,mCAAmC;IACnCC,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,uBAAuB;IACvBC,oBAAoB;IACpBC,WAAW;IACXC,SAAS;IAETC,sBAAsB;IACtBC,sBAAsB;IAEtBC,WAAW;IACXC,aAAa;IACbC,WAAW;IACXC,cAAc;IAGdC,kCAAkC;IAClCC,2BAA2B;IAC3BC,sBAAsB;IACtBC,0BAA0B;IAG1BC,8BAA8B;IAC9BC,gCAAgC;IAChCC,cAAc;IACdC,eAAe;IACfC,iBAAiB;IACjBC,mBAAmB;IACnBC,mBAAmB;IAGnBC,mBAAmB;IAGnBC,sBAAsB;IACtBC,wBACE;IAEFC,gBAAgB;IAEhBC,6BAA6B;IAC7BC,kCAAkC;IAClCC,2BAA2B;IAC3BC,qBAAqB;IACrBC,cAAc;IACdC,sBAAsB;IACtBC,eAAe;AACjB"}
1
+ {"version":3,"sources":["../src/server.constants.ts"],"names":["AppConstants","NODE_ENV_KEY","VERSION_KEY","SERVER_PORT_KEY","MONGO_KEY","DATABASE_PATH","DATABASE_FILE","pm2ServiceName","logAppName","defaultFileStorageFolder","defaultLogsFolder","defaultLogZipsFolder","defaultClientBundleStorage","defaultClientBundleZipsStorage","defaultPrinterThumbnailsStorage","defaultFileUploadsStorage","defaultAcceptedGcodeExtensions","defaultServerPort","defaultMongoStringUnauthenticated","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","clientNextPackageName","clientNextRepoName","githubUrl","orgName","currentWizardVersion","defaultClientMinimum","influxUrl","influxToken","influxOrg","influxBucket","defaultWebsocketHandshakeTimeout","defaultSocketThrottleRate","debugSocketStatesKey","defaultDebugSocketStates","monsterPiFilePath","sentryCustomDsnToken","sentryCustomDsnDefault","debugRoutesKey","ENABLE_EXPERIMENTAL_TYPEORM","enableExperimentalTypeormDefault","ENABLE_PROMETHEUS_METRICS","ENABLE_LOKI_LOGGING","LOKI_ADDRESS","LOKI_TIMEOUT_SECONDS","LOKI_INTERVAL"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA,eAAe;IAC1BC,cAAc;IACdC,aAAa;IACbC,iBAAiB;IACjBC,WAAW;IACXC,eAAe;IACfC,eAAe;IAEfC,gBAAgB;IAChBC,YAAY;IAGZC,0BAA0B;IAC1BC,mBAAmB;IACnBC,sBAAsB;IAEtBC,4BAA4B;IAC5BC,gCAAgC;IAChCC,iCAAiC;IACjCC,2BAA2B;IAC3BC,gCAAgC;QAAC;QAAU;KAAU;IACrDC,mBAAmB;IACnBC,mCAAmC;IACnCC,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,uBAAuB;IACvBC,oBAAoB;IACpBC,WAAW;IACXC,SAAS;IAETC,sBAAsB;IACtBC,sBAAsB;IAEtBC,WAAW;IACXC,aAAa;IACbC,WAAW;IACXC,cAAc;IAGdC,kCAAkC;IAClCC,2BAA2B;IAC3BC,sBAAsB;IACtBC,0BAA0B;IAG1BC,mBAAmB;IAGnBC,sBAAsB;IACtBC,wBACE;IAEFC,gBAAgB;IAEhBC,6BAA6B;IAC7BC,kCAAkC;IAClCC,2BAA2B;IAC3BC,qBAAqB;IACrBC,cAAc;IACdC,sBAAsB;IACtBC,eAAe;AACjB"}
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "BambuFtpAdapter", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return BambuFtpAdapter;
9
+ }
10
+ });
11
+ const _basicftp = require("basic-ftp");
12
+ const _eventconstants = require("../../constants/event.constants");
13
+ const _nodefs = require("node:fs");
14
+ const _nodeos = require("node:os");
15
+ const _nodepath = require("node:path");
16
+ class BambuFtpAdapter {
17
+ settingsStore;
18
+ eventEmitter2;
19
+ logger;
20
+ ftpClient = null;
21
+ host = null;
22
+ accessCode = null;
23
+ isConnecting = false;
24
+ constructor(settingsStore, loggerFactory, eventEmitter2){
25
+ this.settingsStore = settingsStore;
26
+ this.eventEmitter2 = eventEmitter2;
27
+ this.settingsStore = settingsStore;
28
+ this.eventEmitter2 = eventEmitter2;
29
+ this.logger = loggerFactory(BambuFtpAdapter.name);
30
+ }
31
+ async connect(host, accessCode) {
32
+ if (this.ftpClient && !this.ftpClient.closed) {
33
+ this.logger.debug("FTP already connected");
34
+ return;
35
+ }
36
+ if (this.isConnecting) {
37
+ throw new Error("Connection already in progress");
38
+ }
39
+ const sanitizedHost = this.sanitizeHost(host);
40
+ const sanitizedAccessCode = this.sanitizeAccessCode(accessCode);
41
+ this.host = sanitizedHost;
42
+ this.accessCode = sanitizedAccessCode;
43
+ this.isConnecting = true;
44
+ const timeout = this.settingsStore.getTimeoutSettings().apiTimeout;
45
+ this.logger.log(`Connecting to Bambu FTP at ${sanitizedHost}:990`);
46
+ try {
47
+ this.ftpClient = new _basicftp.Client(timeout);
48
+ this.ftpClient.ftp.verbose = false;
49
+ await this.ftpClient.access({
50
+ host: sanitizedHost,
51
+ port: 990,
52
+ user: "bblp",
53
+ password: sanitizedAccessCode,
54
+ secure: true,
55
+ secureOptions: {
56
+ rejectUnauthorized: false,
57
+ minVersion: 'TLSv1.2',
58
+ maxVersion: 'TLSv1.3'
59
+ }
60
+ });
61
+ this.isConnecting = false;
62
+ this.logger.log("FTP connected successfully");
63
+ } catch (error) {
64
+ this.isConnecting = false;
65
+ this.cleanup();
66
+ this.logger.error("FTP connection failed:", error);
67
+ throw error;
68
+ }
69
+ }
70
+ async disconnect() {
71
+ if (!this.ftpClient) {
72
+ return;
73
+ }
74
+ this.logger.log("Disconnecting FTP");
75
+ try {
76
+ this.ftpClient.close();
77
+ } catch (error) {
78
+ this.logger.error("Error closing FTP:", error);
79
+ } finally{
80
+ this.cleanup();
81
+ }
82
+ }
83
+ async listFiles(dirPath = "/") {
84
+ this.ensureConnected();
85
+ try {
86
+ const files = await this.ftpClient.list(dirPath);
87
+ this.logger.debug(`Listed ${files.length} files in ${dirPath}`);
88
+ return files;
89
+ } catch (error) {
90
+ this.logger.error(`Failed to list files in ${dirPath}:`, error);
91
+ throw error;
92
+ }
93
+ }
94
+ async uploadFile(fileBuffer, filename, progressToken) {
95
+ this.ensureConnected();
96
+ const remotePath = `/sdcard/${filename}`;
97
+ const tempPath = (0, _nodepath.join)((0, _nodeos.tmpdir)(), `bambu-upload-${Date.now()}-${filename}`);
98
+ try {
99
+ (0, _nodefs.writeFileSync)(tempPath, fileBuffer);
100
+ this.logger.debug(`Wrote temp file: ${tempPath}`);
101
+ if (progressToken) {
102
+ this.ftpClient.trackProgress((info)=>{
103
+ this.eventEmitter2.emit(`${(0, _eventconstants.uploadProgressEvent)(progressToken)}`, progressToken, {
104
+ loaded: info.bytes,
105
+ total: info.bytesOverall
106
+ });
107
+ });
108
+ }
109
+ this.logger.log(`Uploading ${filename} to ${remotePath}`);
110
+ await this.ftpClient.uploadFrom(tempPath, remotePath);
111
+ this.ftpClient.trackProgress();
112
+ if (progressToken) {
113
+ this.eventEmitter2.emit(`${(0, _eventconstants.uploadDoneEvent)(progressToken)}`, progressToken);
114
+ }
115
+ this.logger.log(`File uploaded successfully: ${filename}`);
116
+ } catch (error) {
117
+ if (progressToken) {
118
+ this.eventEmitter2.emit(`${(0, _eventconstants.uploadFailedEvent)(progressToken)}`, progressToken, error?.message);
119
+ }
120
+ this.logger.error(`Upload failed for ${filename}:`, error);
121
+ throw error;
122
+ } finally{
123
+ try {
124
+ (0, _nodefs.unlinkSync)(tempPath);
125
+ this.logger.debug(`Cleaned up temp file: ${tempPath}`);
126
+ } catch (cleanupError) {
127
+ this.logger.warn(`Failed to cleanup temp file ${tempPath}:`, cleanupError);
128
+ }
129
+ }
130
+ }
131
+ async downloadFile(remotePath, localPath) {
132
+ this.ensureConnected();
133
+ try {
134
+ this.logger.log(`Downloading ${remotePath} to ${localPath}`);
135
+ await this.ftpClient.downloadTo(localPath, remotePath);
136
+ this.logger.log(`File downloaded successfully: ${remotePath}`);
137
+ } catch (error) {
138
+ this.logger.error(`Download failed for ${remotePath}:`, error);
139
+ throw error;
140
+ }
141
+ }
142
+ async deleteFile(remotePath) {
143
+ this.ensureConnected();
144
+ try {
145
+ this.logger.log(`Deleting file: ${remotePath}`);
146
+ await this.ftpClient.remove(remotePath);
147
+ this.logger.log(`File deleted successfully: ${remotePath}`);
148
+ } catch (error) {
149
+ this.logger.error(`Delete failed for ${remotePath}:`, error);
150
+ throw error;
151
+ }
152
+ }
153
+ get isConnected() {
154
+ return this.ftpClient != null && !this.ftpClient.closed;
155
+ }
156
+ ensureConnected() {
157
+ if (!this.isConnected) {
158
+ throw new Error("FTP not connected. Call connect() first.");
159
+ }
160
+ }
161
+ cleanup() {
162
+ this.ftpClient = null;
163
+ }
164
+ sanitizeHost(host) {
165
+ if (!host?.length) {
166
+ throw new Error("Host must be a non-empty string");
167
+ }
168
+ const trimmed = host.trim();
169
+ if (trimmed.length === 0) {
170
+ throw new Error("Host cannot be empty");
171
+ }
172
+ const ipv4Pattern = /^(\d{1,3}\.){3}\d{1,3}$/;
173
+ const hostnamePattern = /^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
174
+ if (!ipv4Pattern.test(trimmed) && !hostnamePattern.test(trimmed)) {
175
+ throw new Error("Invalid host format. Must be a valid IP address or hostname");
176
+ }
177
+ if (ipv4Pattern.test(trimmed)) {
178
+ const parts = trimmed.split(".").map(Number);
179
+ if (parts.some((part)=>part < 0 || part > 255)) {
180
+ throw new Error("Invalid IPv4 address. Octets must be between 0 and 255");
181
+ }
182
+ }
183
+ return trimmed;
184
+ }
185
+ sanitizeAccessCode(accessCode) {
186
+ if (!accessCode?.length) {
187
+ throw new Error("Access code must be a non-empty string");
188
+ }
189
+ const trimmed = accessCode.trim();
190
+ if (trimmed.length === 0) {
191
+ throw new Error("Access code cannot be empty");
192
+ }
193
+ if (trimmed.length < 4 || trimmed.length > 32) {
194
+ throw new Error("Access code must be between 4 and 32 characters");
195
+ }
196
+ const alphanumericPattern = /^[a-zA-Z0-9]+$/;
197
+ if (!alphanumericPattern.test(trimmed)) {
198
+ throw new Error("Access code must contain only alphanumeric characters");
199
+ }
200
+ return trimmed;
201
+ }
202
+ }
203
+
204
+ //# sourceMappingURL=bambu-ftp.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/bambu/bambu-ftp.adapter.ts"],"names":["BambuFtpAdapter","logger","ftpClient","host","accessCode","isConnecting","settingsStore","loggerFactory","eventEmitter2","name","connect","closed","debug","Error","sanitizedHost","sanitizeHost","sanitizedAccessCode","sanitizeAccessCode","timeout","getTimeoutSettings","apiTimeout","log","Client","ftp","verbose","access","port","user","password","secure","secureOptions","rejectUnauthorized","minVersion","maxVersion","error","cleanup","disconnect","close","listFiles","dirPath","ensureConnected","files","list","length","uploadFile","fileBuffer","filename","progressToken","remotePath","tempPath","join","tmpdir","Date","now","writeFileSync","trackProgress","info","emit","uploadProgressEvent","loaded","bytes","total","bytesOverall","uploadFrom","uploadDoneEvent","uploadFailedEvent","message","unlinkSync","cleanupError","warn","downloadFile","localPath","downloadTo","deleteFile","remove","isConnected","trimmed","trim","ipv4Pattern","hostnamePattern","test","parts","split","map","Number","some","part","alphanumericPattern"],"mappings":"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"}