@fdm-monster/server 2.0.10 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/CLAUDE.md +76 -0
- package/.vite-hooks/pre-commit +1 -0
- package/.yarn/install-state.gz +0 -0
- package/.yarn/releases/yarn-4.13.0.cjs +940 -0
- package/.yarnrc.yml +1 -1
- package/README.md +3 -2
- package/RELEASE_NOTES.MD +152 -1
- package/dist/_virtual/_@oxc-project_runtime@0.127.0/helpers/decorate.js +9 -0
- package/dist/_virtual/_@oxc-project_runtime@0.127.0/helpers/decorateMetadata.js +6 -0
- package/dist/_virtual/_rolldown/runtime.js +13 -0
- package/dist/_virtual/_virtual_controllers.js +45 -0
- package/dist/consoles/typeorm-create.js +51 -112
- package/dist/consoles/typeorm-create.js.map +1 -1
- package/dist/consoles/typeorm-generate.js +99 -165
- package/dist/consoles/typeorm-generate.js.map +1 -1
- package/dist/consoles/typeorm-migrate.js +35 -43
- package/dist/consoles/typeorm-migrate.js.map +1 -1
- package/dist/constants/authorization.constants.js +75 -97
- package/dist/constants/authorization.constants.js.map +1 -1
- package/dist/constants/event.constants.js +11 -41
- package/dist/constants/event.constants.js.map +1 -1
- package/dist/constants/http-status-codes.constants.js +319 -71
- package/dist/constants/http-status-codes.constants.js.map +1 -1
- package/dist/constants/server-settings.constants.js +45 -87
- package/dist/constants/server-settings.constants.js.map +1 -1
- package/dist/constants/service.constants.js +3 -21
- package/dist/constants/service.constants.js.map +1 -1
- package/dist/container.js +169 -181
- package/dist/container.js.map +1 -1
- package/dist/container.tokens.js +79 -85
- package/dist/container.tokens.js.map +1 -1
- package/dist/controllers/api-key.controller.js +72 -0
- package/dist/controllers/api-key.controller.js.map +1 -0
- package/dist/controllers/auth.controller.js +156 -225
- package/dist/controllers/auth.controller.js.map +1 -1
- package/dist/controllers/batch-call.controller.js +79 -116
- package/dist/controllers/batch-call.controller.js.map +1 -1
- package/dist/controllers/camera-stream.controller.js +74 -119
- package/dist/controllers/camera-stream.controller.js.map +1 -1
- package/dist/controllers/dto/update-client-dist.dto.js +8 -15
- package/dist/controllers/dto/update-client-dist.dto.js.map +1 -1
- package/dist/controllers/file-storage.controller.js +251 -312
- package/dist/controllers/file-storage.controller.js.map +1 -1
- package/dist/controllers/first-time-setup.controller.js +83 -135
- package/dist/controllers/first-time-setup.controller.js.map +1 -1
- package/dist/controllers/floor.controller.js +111 -175
- package/dist/controllers/floor.controller.js.map +1 -1
- package/dist/controllers/metrics.controller.js +27 -53
- package/dist/controllers/metrics.controller.js.map +1 -1
- package/dist/controllers/print-job.controller.js +366 -451
- package/dist/controllers/print-job.controller.js.map +1 -1
- package/dist/controllers/print-queue.controller.js +329 -427
- package/dist/controllers/print-queue.controller.js.map +1 -1
- package/dist/controllers/printer-files.controller.js +244 -305
- package/dist/controllers/printer-files.controller.js.map +1 -1
- package/dist/controllers/printer-maintenance-log.controller.js +109 -165
- package/dist/controllers/printer-maintenance-log.controller.js.map +1 -1
- package/dist/controllers/printer-settings.controller.js +50 -81
- package/dist/controllers/printer-settings.controller.js.map +1 -1
- package/dist/controllers/printer-tag.controller.js +104 -166
- package/dist/controllers/printer-tag.controller.js.map +1 -1
- package/dist/controllers/printer.controller.js +352 -469
- package/dist/controllers/printer.controller.js.map +1 -1
- package/dist/controllers/server-private.controller.js +182 -239
- package/dist/controllers/server-private.controller.js.map +1 -1
- package/dist/controllers/server-public.controller.js +104 -158
- package/dist/controllers/server-public.controller.js.map +1 -1
- package/dist/controllers/settings.controller.js +229 -364
- package/dist/controllers/settings.controller.js.map +1 -1
- package/dist/controllers/slicer-compat.controller.js +179 -206
- package/dist/controllers/slicer-compat.controller.js.map +1 -1
- package/dist/controllers/user.controller.js +226 -348
- package/dist/controllers/user.controller.js.map +1 -1
- package/dist/controllers/validation/api-key-controller.validation.js +11 -0
- package/dist/controllers/validation/api-key-controller.validation.js.map +1 -0
- package/dist/controllers/validation/auth-controller.validation.js +5 -14
- package/dist/controllers/validation/auth-controller.validation.js.map +1 -1
- package/dist/controllers/validation/batch-controller.validation.js +13 -35
- package/dist/controllers/validation/batch-controller.validation.js.map +1 -1
- package/dist/controllers/validation/generic.validation.js +6 -23
- package/dist/controllers/validation/generic.validation.js.map +1 -1
- package/dist/controllers/validation/printer-completion-controller.validation.js +5 -14
- package/dist/controllers/validation/printer-completion-controller.validation.js.map +1 -1
- package/dist/controllers/validation/printer-controller.validation.js +16 -48
- package/dist/controllers/validation/printer-controller.validation.js.map +1 -1
- package/dist/controllers/validation/printer-files-controller.validation.js +12 -47
- package/dist/controllers/validation/printer-files-controller.validation.js.map +1 -1
- package/dist/controllers/validation/printer-settings-controller.validation.js +5 -14
- package/dist/controllers/validation/printer-settings-controller.validation.js.map +1 -1
- package/dist/controllers/validation/server-private.validation.js +7 -14
- package/dist/controllers/validation/server-private.validation.js.map +1 -1
- package/dist/controllers/validation/setting.validation.js +12 -34
- package/dist/controllers/validation/setting.validation.js.map +1 -1
- package/dist/controllers/validation/user-controller.validation.js +27 -65
- package/dist/controllers/validation/user-controller.validation.js.map +1 -1
- package/dist/data-source.js +78 -79
- package/dist/data-source.js.map +1 -1
- package/dist/entities/api-key.entity.js +60 -0
- package/dist/entities/api-key.entity.js.map +1 -0
- package/dist/entities/camera-stream.entity.js +49 -91
- package/dist/entities/camera-stream.entity.js.map +1 -1
- package/dist/entities/floor-position.entity.js +38 -75
- package/dist/entities/floor-position.entity.js.map +1 -1
- package/dist/entities/floor.entity.js +18 -48
- package/dist/entities/floor.entity.js.map +1 -1
- package/dist/entities/index.js +15 -66
- package/dist/entities/print-job.entity.js +114 -196
- package/dist/entities/print-job.entity.js.map +1 -1
- package/dist/entities/printer-maintenance-log.entity.js +61 -140
- package/dist/entities/printer-maintenance-log.entity.js.map +1 -1
- package/dist/entities/printer-tag.entity.js +33 -66
- package/dist/entities/printer-tag.entity.js.map +1 -1
- package/dist/entities/printer.entity.js +67 -124
- package/dist/entities/printer.entity.js.map +1 -1
- package/dist/entities/refresh-token.entity.js +31 -66
- package/dist/entities/refresh-token.entity.js.map +1 -1
- package/dist/entities/role.entity.js +16 -45
- package/dist/entities/role.entity.js.map +1 -1
- package/dist/entities/settings.entity.js +38 -77
- package/dist/entities/settings.entity.js.map +1 -1
- package/dist/entities/tag.entity.js +19 -43
- package/dist/entities/tag.entity.js.map +1 -1
- package/dist/entities/user-role.entity.js +30 -67
- package/dist/entities/user-role.entity.js.map +1 -1
- package/dist/entities/user.entity.js +32 -87
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/exceptions/failed-dependency.exception.js +11 -18
- package/dist/exceptions/failed-dependency.exception.js.map +1 -1
- package/dist/exceptions/job.exceptions.js +9 -16
- package/dist/exceptions/job.exceptions.js.map +1 -1
- package/dist/exceptions/runtime.exceptions.js +82 -121
- package/dist/exceptions/runtime.exceptions.js.map +1 -1
- package/dist/handlers/event-emitter.js +13 -20
- package/dist/handlers/event-emitter.js.map +1 -1
- package/dist/handlers/logger-factory.js +7 -14
- package/dist/handlers/logger-factory.js.map +1 -1
- package/dist/handlers/logger.js +26 -36
- package/dist/handlers/logger.js.map +1 -1
- package/dist/handlers/logging/file-logging.transport.js +17 -31
- package/dist/handlers/logging/file-logging.transport.js.map +1 -1
- package/dist/handlers/logging/loki-logging.transport.js +34 -50
- package/dist/handlers/logging/loki-logging.transport.js.map +1 -1
- package/dist/handlers/logging/static.logger.js +83 -124
- package/dist/handlers/logging/static.logger.js.map +1 -1
- package/dist/handlers/validators.js +8 -25
- package/dist/handlers/validators.js.map +1 -1
- package/dist/index.js +23 -26
- package/dist/index.js.map +1 -1
- package/dist/middleware/api-key.strategy.js +45 -0
- package/dist/middleware/api-key.strategy.js.map +1 -0
- package/dist/middleware/authenticate.js +26 -69
- package/dist/middleware/authenticate.js.map +1 -1
- package/dist/middleware/database.js +16 -22
- package/dist/middleware/database.js.map +1 -1
- package/dist/middleware/demo.middleware.js +19 -27
- package/dist/middleware/demo.middleware.js.map +1 -1
- package/dist/middleware/exception.filter.js +109 -133
- package/dist/middleware/exception.filter.js.map +1 -1
- package/dist/middleware/global.middleware.js +28 -47
- package/dist/middleware/global.middleware.js.map +1 -1
- package/dist/middleware/param-converter.middleware.js +31 -69
- package/dist/middleware/param-converter.middleware.js.map +1 -1
- package/dist/middleware/passport.js +41 -64
- package/dist/middleware/passport.js.map +1 -1
- package/dist/middleware/printer-resolver.js +26 -33
- package/dist/middleware/printer-resolver.js.map +1 -1
- package/dist/middleware/printer.js +56 -94
- package/dist/middleware/printer.js.map +1 -1
- package/dist/middleware/slicer-api-key.middleware.js +23 -26
- package/dist/middleware/slicer-api-key.middleware.js.map +1 -1
- package/dist/middleware/socketio.middleware.js +21 -32
- package/dist/middleware/socketio.middleware.js.map +1 -1
- package/dist/migrations/1706829146617-InitSqlite.js +84 -91
- package/dist/migrations/1706829146617-InitSqlite.js.map +1 -1
- package/dist/migrations/1707494762198-PrinterGroup.js +22 -29
- package/dist/migrations/1707494762198-PrinterGroup.js.map +1 -1
- package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js +26 -33
- package/dist/migrations/1708465930665-ChangePrintCompletionDeletePrinterCascade.js.map +1 -1
- package/dist/migrations/1713300747465-ChangeRoleNameUnique.js +27 -34
- package/dist/migrations/1713300747465-ChangeRoleNameUnique.js.map +1 -1
- package/dist/migrations/1713897879622-AddPrinterType.js +34 -41
- package/dist/migrations/1713897879622-AddPrinterType.js.map +1 -1
- package/dist/migrations/1720338804844-RemovePrinterFile.js +12 -19
- package/dist/migrations/1720338804844-RemovePrinterFile.js.map +1 -1
- package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js +26 -33
- package/dist/migrations/1745141688926-AddPrinterUsernamePassword.js.map +1 -1
- package/dist/migrations/1766576698569-DropPermissions.js +11 -18
- package/dist/migrations/1766576698569-DropPermissions.js.map +1 -1
- package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js +26 -33
- package/dist/migrations/1767278216516-ChangeCameraPrinterOnDeleteSetNull.js.map +1 -1
- package/dist/migrations/1767279607392-DropCustomGcode.js +12 -19
- package/dist/migrations/1767279607392-DropCustomGcode.js.map +1 -1
- package/dist/migrations/1767291804417-DropPrintCompletions.js +12 -19
- package/dist/migrations/1767291804417-DropPrintCompletions.js.map +1 -1
- package/dist/migrations/1767352862576-DropSettingsFileClean.js +18 -25
- package/dist/migrations/1767352862576-DropSettingsFileClean.js.map +1 -1
- package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js +26 -33
- package/dist/migrations/1767355639023-ChangeFloorLevelToOrder.js.map +1 -1
- package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js +18 -25
- package/dist/migrations/1767370191762-ChangeFloorNonUniqueOrder.js.map +1 -1
- package/dist/migrations/1767432108916-RenameGroupToTag.js +22 -29
- package/dist/migrations/1767432108916-RenameGroupToTag.js.map +1 -1
- package/dist/migrations/1767451444137-AddPrintJob.js +20 -27
- package/dist/migrations/1767451444137-AddPrintJob.js.map +1 -1
- package/dist/migrations/1767909428129-AddPrinterMaintenanceLog.js +14 -21
- package/dist/migrations/1767909428129-AddPrinterMaintenanceLog.js.map +1 -1
- package/dist/migrations/1778446203015-AddApiKey.js +49 -0
- package/dist/migrations/1778446203015-AddApiKey.js.map +1 -0
- package/dist/plugins/controllers-plugin.js +21 -0
- package/dist/plugins/controllers-plugin.js.map +1 -0
- package/dist/server.constants.js +79 -91
- package/dist/server.constants.js.map +1 -1
- package/dist/server.core.js +60 -122
- package/dist/server.core.js.map +1 -1
- package/dist/server.env.js +56 -121
- package/dist/server.env.js.map +1 -1
- package/dist/server.host.js +66 -99
- package/dist/server.host.js.map +1 -1
- package/dist/services/authentication/auth.service.js +103 -126
- package/dist/services/authentication/auth.service.js.map +1 -1
- package/dist/services/authentication/jwt.service.js +23 -32
- package/dist/services/authentication/jwt.service.js.map +1 -1
- package/dist/services/bambu/bambu-ftp.adapter.js +194 -236
- package/dist/services/bambu/bambu-ftp.adapter.js.map +1 -1
- package/dist/services/bambu/bambu-mqtt.adapter.js +394 -449
- package/dist/services/bambu/bambu-mqtt.adapter.js.map +1 -1
- package/dist/services/bambu/bambu.client.js +64 -65
- package/dist/services/bambu/bambu.client.js.map +1 -1
- package/dist/services/bambu/mqtt-message.types.js +1 -6
- package/dist/services/bambu.api.js +230 -247
- package/dist/services/bambu.api.js.map +1 -1
- package/dist/services/core/batch-call.service.js +139 -163
- package/dist/services/core/batch-call.service.js.map +1 -1
- package/dist/services/core/client-bundle.service.js +126 -165
- package/dist/services/core/client-bundle.service.js.map +1 -1
- package/dist/services/core/config.service.js +16 -26
- package/dist/services/core/config.service.js.map +1 -1
- package/dist/services/core/cradle.service.js +11 -19
- package/dist/services/core/cradle.service.js.map +1 -1
- package/dist/services/core/github.service.js +59 -79
- package/dist/services/core/github.service.js.map +1 -1
- package/dist/services/core/http-client.factory.js +30 -38
- package/dist/services/core/http-client.factory.js.map +1 -1
- package/dist/services/core/logs-manager.service.js +61 -84
- package/dist/services/core/logs-manager.service.js.map +1 -1
- package/dist/services/core/monsterpi.service.js +26 -36
- package/dist/services/core/monsterpi.service.js.map +1 -1
- package/dist/services/core/multer.service.js +69 -129
- package/dist/services/core/multer.service.js.map +1 -1
- package/dist/services/core/server-release.service.js +77 -99
- package/dist/services/core/server-release.service.js.map +1 -1
- package/dist/services/core/yaml.service.js +443 -573
- package/dist/services/core/yaml.service.js.map +1 -1
- package/dist/services/file-analysis.service.js +134 -144
- package/dist/services/file-analysis.service.js.map +1 -1
- package/dist/services/file-storage.service.js +324 -423
- package/dist/services/file-storage.service.js.map +1 -1
- package/dist/services/interfaces/api-key.dto.js +19 -0
- package/dist/services/interfaces/api-key.dto.js.map +1 -0
- package/dist/services/interfaces/api-key.service.interface.js +1 -0
- package/dist/services/interfaces/auth.service.interface.js +1 -6
- package/dist/services/interfaces/camera-stream.dto.js +23 -41
- package/dist/services/interfaces/camera-stream.dto.js.map +1 -1
- package/dist/services/interfaces/camera-stream.service.interface.js +1 -6
- package/dist/services/interfaces/file-upload-tracker.interface.js +1 -6
- package/dist/services/interfaces/floor.dto.js +31 -55
- package/dist/services/interfaces/floor.dto.js.map +1 -1
- package/dist/services/interfaces/floor.service.interface.js +1 -6
- package/dist/services/interfaces/jwt.service.interface.js +1 -6
- package/dist/services/interfaces/login.dto.js +10 -17
- package/dist/services/interfaces/login.dto.js.map +1 -1
- package/dist/services/interfaces/page.interface.js +5 -12
- package/dist/services/interfaces/page.interface.js.map +1 -1
- package/dist/services/interfaces/permission.service.interface.js +1 -6
- package/dist/services/interfaces/printer-file.dto.js +1 -6
- package/dist/services/interfaces/printer-maintenance-log.dto.js +1 -6
- package/dist/services/interfaces/printer-tag.dto.js +11 -26
- package/dist/services/interfaces/printer-tag.dto.js.map +1 -1
- package/dist/services/interfaces/printer-tag.service.interface.js +1 -6
- package/dist/services/interfaces/printer.dto.js +21 -36
- package/dist/services/interfaces/printer.dto.js.map +1 -1
- package/dist/services/interfaces/printer.service.interface.js +1 -6
- package/dist/services/interfaces/refresh-token.dto.js +9 -16
- package/dist/services/interfaces/refresh-token.dto.js.map +1 -1
- package/dist/services/interfaces/refresh-token.service.interface.js +1 -6
- package/dist/services/interfaces/role-service.interface.js +1 -6
- package/dist/services/interfaces/role.dto.js +7 -14
- package/dist/services/interfaces/role.dto.js.map +1 -1
- package/dist/services/interfaces/settings.dto.js +10 -17
- package/dist/services/interfaces/settings.dto.js.map +1 -1
- package/dist/services/interfaces/settings.service.interface.js +1 -6
- package/dist/services/interfaces/tag.dto.js +1 -6
- package/dist/services/interfaces/task.interfaces.js +1 -6
- package/dist/services/interfaces/user-role.dto.js +9 -16
- package/dist/services/interfaces/user-role.dto.js.map +1 -1
- package/dist/services/interfaces/user-service.interface.js +1 -6
- package/dist/services/interfaces/user.dto.js +24 -37
- package/dist/services/interfaces/user.dto.js.map +1 -1
- package/dist/services/moonraker/constants/moonraker-event.dto.js +16 -31
- package/dist/services/moonraker/constants/moonraker-event.dto.js.map +1 -1
- package/dist/services/moonraker/constants/moonraker.constants.js +4 -11
- package/dist/services/moonraker/constants/moonraker.constants.js.map +1 -1
- package/dist/services/moonraker/dto/access/access-info.dto.js +1 -6
- package/dist/services/moonraker/dto/access/access-login-refresh.dto.js +1 -6
- package/dist/services/moonraker/dto/access/access-login-result.dto.js +1 -6
- package/dist/services/moonraker/dto/access/access-user-result.dto.js +1 -6
- package/dist/services/moonraker/dto/access/access-user.dto.js +1 -6
- package/dist/services/moonraker/dto/database/database-namespace-item.dto.js +1 -6
- package/dist/services/moonraker/dto/database/database-namespace-list.dto.js +1 -6
- package/dist/services/moonraker/dto/gcode-help.dto.js +1 -6
- package/dist/services/moonraker/dto/gcode-store.dto.js +1 -6
- package/dist/services/moonraker/dto/job-queue/enqueue-job.dto.js +1 -6
- package/dist/services/moonraker/dto/job-queue/job-queue-status.dto.js +1 -6
- package/dist/services/moonraker/dto/machine/machine-device-power-device-state.dto.js +1 -6
- package/dist/services/moonraker/dto/machine/machine-device-power-devices.dto.js +1 -6
- package/dist/services/moonraker/dto/machine/machine-peripherals-canbus.dto.js +1 -6
- package/dist/services/moonraker/dto/machine/machine-peripherals-serial.dto.js +1 -6
- package/dist/services/moonraker/dto/machine/machine-peripherals-usb.dto.js +1 -6
- package/dist/services/moonraker/dto/machine/machine-peripherals-video.dto.js +1 -6
- package/dist/services/moonraker/dto/machine/machine-system-info.dto.js +1 -6
- package/dist/services/moonraker/dto/machine/machine-update-status.dto.js +1 -6
- package/dist/services/moonraker/dto/machine/machine-wled-strips.dto.js +1 -6
- package/dist/services/moonraker/dto/notifier-list.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/bed-mesh.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/configfile.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/display-status.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/extruder.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/fan.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/filament-motion-sensor.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/filament-switch-sensor.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/gcode-move.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/gcode.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/heater-bed.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/heaters.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/idle-timeout.dto.js +6 -21
- package/dist/services/moonraker/dto/objects/idle-timeout.dto.js.map +1 -1
- package/dist/services/moonraker/dto/objects/mcu.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/motion-report.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/output-pin.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/pause-resume.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/print-stats.dto.js +9 -24
- package/dist/services/moonraker/dto/objects/print-stats.dto.js.map +1 -1
- package/dist/services/moonraker/dto/objects/printer-object.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/printer-object.types.js +1 -6
- package/dist/services/moonraker/dto/objects/printer-objects-list.dto.js +28 -43
- package/dist/services/moonraker/dto/objects/printer-objects-list.dto.js.map +1 -1
- package/dist/services/moonraker/dto/objects/printer-objects-query.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/stepper-enable.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/system-stats.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/temperature-fan.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/temperature-sensor.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/toolhead.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/virtual-sdcard.dto.js +1 -6
- package/dist/services/moonraker/dto/objects/webhooks.dto.js +1 -6
- package/dist/services/moonraker/dto/octoprint-compat/api-job.dto.js +1 -6
- package/dist/services/moonraker/dto/octoprint-compat/api-login.dto.js +1 -6
- package/dist/services/moonraker/dto/octoprint-compat/api-printer.dto.js +1 -6
- package/dist/services/moonraker/dto/octoprint-compat/api-profiles.dto.js +1 -6
- package/dist/services/moonraker/dto/octoprint-compat/api-settings.dto.js +1 -6
- package/dist/services/moonraker/dto/octoprint-compat/api-version.dto.js +1 -6
- package/dist/services/moonraker/dto/octoprint-compat/server-version.dto.js +1 -6
- package/dist/services/moonraker/dto/printer-info.dto.js +7 -22
- package/dist/services/moonraker/dto/printer-info.dto.js.map +1 -1
- package/dist/services/moonraker/dto/printer-query-endstops.dto.js +1 -6
- package/dist/services/moonraker/dto/process-stats.dto.js +1 -6
- package/dist/services/moonraker/dto/rest/action-result.dto.js +1 -6
- package/dist/services/moonraker/dto/rest/error.dto.js +1 -6
- package/dist/services/moonraker/dto/rest/result.dto.js +6 -13
- package/dist/services/moonraker/dto/rest/result.dto.js.map +1 -1
- package/dist/services/moonraker/dto/rollover-logs.dto.js +1 -6
- package/dist/services/moonraker/dto/rpc/json-rpc-error.dto.js +1 -6
- package/dist/services/moonraker/dto/rpc/json-rpc-request.dto.js +1 -6
- package/dist/services/moonraker/dto/rpc/json-rpc-response.dto.js +1 -6
- package/dist/services/moonraker/dto/server/server-config.dto.js +1 -6
- package/dist/services/moonraker/dto/server/server-info.dto.js +7 -14
- package/dist/services/moonraker/dto/server/server-info.dto.js.map +1 -1
- package/dist/services/moonraker/dto/server-announcements/announcement-action.dto.js +1 -6
- package/dist/services/moonraker/dto/server-announcements/announcement-entry-id.dto.js +1 -6
- package/dist/services/moonraker/dto/server-announcements/announcement-feeds.dto.js +1 -6
- package/dist/services/moonraker/dto/server-announcements/announcement-list.dto.js +1 -6
- package/dist/services/moonraker/dto/server-files/server-file-directory-action.dto.js +1 -6
- package/dist/services/moonraker/dto/server-files/server-file-directory-info.dto.js +1 -6
- package/dist/services/moonraker/dto/server-files/server-file-metadata.dto.js +1 -6
- package/dist/services/moonraker/dto/server-files/server-file-root.dto.js +1 -6
- package/dist/services/moonraker/dto/server-files/server-file-thumbnail.dto.js +1 -6
- package/dist/services/moonraker/dto/server-files/server-file-zip-action.dto.js +1 -6
- package/dist/services/moonraker/dto/server-files/server-file.dto.js +1 -6
- package/dist/services/moonraker/dto/server-history/history-job.dto.js +1 -6
- package/dist/services/moonraker/dto/server-history/history-last-totals.dto.js +1 -6
- package/dist/services/moonraker/dto/server-history/history-list.dto.js +1 -6
- package/dist/services/moonraker/dto/server-history/history-totals.dto.js +1 -6
- package/dist/services/moonraker/dto/server-history/job.dto.js +6 -21
- package/dist/services/moonraker/dto/server-history/job.dto.js.map +1 -1
- package/dist/services/moonraker/dto/server-sensors/sensor-info.dto.js +1 -6
- package/dist/services/moonraker/dto/server-sensors/sensor-list.dto.js +1 -6
- package/dist/services/moonraker/dto/server-sensors/sensor-measurements.dto.js +1 -6
- package/dist/services/moonraker/dto/server-webcams/webcam-item.dto.js +1 -6
- package/dist/services/moonraker/dto/server-webcams/webcam-list.dto.js +1 -6
- package/dist/services/moonraker/dto/server-webcams/webcam-test.dto.js +1 -6
- package/dist/services/moonraker/dto/spoolman/spoolman-active-spool.dto.js +1 -6
- package/dist/services/moonraker/dto/spoolman/spoolman-proxy-request.dto.js +1 -6
- package/dist/services/moonraker/dto/spoolman/spoolman-response.dto.js +1 -6
- package/dist/services/moonraker/dto/spoolman/spoolman-status.dto.js +1 -6
- package/dist/services/moonraker/dto/sudo-info.dto.js +1 -6
- package/dist/services/moonraker/dto/sudo-response.dto.js +1 -6
- package/dist/services/moonraker/dto/temperature-store.dto.js +1 -6
- package/dist/services/moonraker/dto/websocket/connection-identify-response.dto.js +1 -6
- package/dist/services/moonraker/dto/websocket/connection-identify.dto.js +1 -6
- package/dist/services/moonraker/dto/websocket/json-rpc-event.dto.js +1 -6
- package/dist/services/moonraker/dto/websocket/message.types.js +1 -6
- package/dist/services/moonraker/dto/websocket/methods.js +29 -44
- package/dist/services/moonraker/dto/websocket/methods.js.map +1 -1
- package/dist/services/moonraker/dto/websocket/notify-active-spool-set.params.js +1 -6
- package/dist/services/moonraker/dto/websocket/notify-agent-event.params.js +1 -6
- package/dist/services/moonraker/dto/websocket/notify-announcement-update.params.js +1 -6
- package/dist/services/moonraker/dto/websocket/notify-announcement.params.js +1 -6
- package/dist/services/moonraker/dto/websocket/notify-button-event.params.js +1 -6
- package/dist/services/moonraker/dto/websocket/notify-filelist-changed.params.js +11 -18
- package/dist/services/moonraker/dto/websocket/notify-filelist-changed.params.js.map +1 -1
- package/dist/services/moonraker/dto/websocket/notify-history-changed.params.js +1 -6
- package/dist/services/moonraker/dto/websocket/notify-job-queue-changed.params.js +1 -6
- package/dist/services/moonraker/dto/websocket/notify-proc-stat-update.params.js +1 -6
- package/dist/services/moonraker/dto/websocket/notify-sensor-update.params.js +1 -6
- package/dist/services/moonraker/dto/websocket/notify-service-state-changed.params.js +1 -6
- package/dist/services/moonraker/dto/websocket/notify-spoolman-status-changed.js +1 -6
- package/dist/services/moonraker/dto/websocket/notify-sudo-alert.params.js +1 -6
- package/dist/services/moonraker/dto/websocket/notify-update-response.params.js +7 -22
- package/dist/services/moonraker/dto/websocket/notify-update-response.params.js.map +1 -1
- package/dist/services/moonraker/dto/websocket/notify-user-change.params.js +1 -6
- package/dist/services/moonraker/moonraker-websocket.adapter.js +313 -348
- package/dist/services/moonraker/moonraker-websocket.adapter.js.map +1 -1
- package/dist/services/moonraker/moonraker.client.js +536 -559
- package/dist/services/moonraker/moonraker.client.js.map +1 -1
- package/dist/services/moonraker.api.js +167 -192
- package/dist/services/moonraker.api.js.map +1 -1
- package/dist/services/octoprint/constants/firmware-update-settings.constants.js +19 -28
- package/dist/services/octoprint/constants/firmware-update-settings.constants.js.map +1 -1
- package/dist/services/octoprint/constants/octoprint-service.constants.js +3 -30
- package/dist/services/octoprint/constants/octoprint-service.constants.js.map +1 -1
- package/dist/services/octoprint/constants/octoprint-websocket.constants.js +41 -56
- package/dist/services/octoprint/constants/octoprint-websocket.constants.js.map +1 -1
- package/dist/services/octoprint/dto/access/user-list.dto.js +1 -6
- package/dist/services/octoprint/dto/access/user.dto.js +1 -6
- package/dist/services/octoprint/dto/auth/current-user.dto.js +1 -6
- package/dist/services/octoprint/dto/auth/login.dto.js +1 -6
- package/dist/services/octoprint/dto/connection/connection-state.type.js +23 -30
- package/dist/services/octoprint/dto/connection/connection-state.type.js.map +1 -1
- package/dist/services/octoprint/dto/connection/connection.dto.js +1 -6
- package/dist/services/octoprint/dto/events/client-authed.dto.js +1 -6
- package/dist/services/octoprint/dto/events/client-closed.dto.js +1 -6
- package/dist/services/octoprint/dto/events/client-opened.dto.js +1 -6
- package/dist/services/octoprint/dto/events/dwelling.dto.js +1 -6
- package/dist/services/octoprint/dto/events/file-added.dto.js +1 -6
- package/dist/services/octoprint/dto/events/file-deselected.dto.js +1 -6
- package/dist/services/octoprint/dto/events/file-removed.dto.js +1 -6
- package/dist/services/octoprint/dto/events/folder-added.dto.js +1 -6
- package/dist/services/octoprint/dto/events/home.dto.js +1 -6
- package/dist/services/octoprint/dto/events/metadata-analysis-finished.dto.js +1 -6
- package/dist/services/octoprint/dto/events/metadata-analysis-started.dto.js +1 -6
- package/dist/services/octoprint/dto/events/metadata-statistics-updated.dto.js +1 -6
- package/dist/services/octoprint/dto/events/position-update.dto.js +1 -6
- package/dist/services/octoprint/dto/events/print-cancelled.dto.js +1 -6
- package/dist/services/octoprint/dto/events/print-cancelling.dto.js +1 -6
- package/dist/services/octoprint/dto/events/print-done.dto.js +1 -6
- package/dist/services/octoprint/dto/events/print-failed.dto.js +1 -6
- package/dist/services/octoprint/dto/events/print-paused.dto.js +1 -6
- package/dist/services/octoprint/dto/events/print-resumed.dto.js +1 -6
- package/dist/services/octoprint/dto/events/print-started.dto.js +1 -6
- package/dist/services/octoprint/dto/events/printer-state-changed.dto.js +1 -6
- package/dist/services/octoprint/dto/events/transfer-done.dto.js +1 -6
- package/dist/services/octoprint/dto/events/transfer-started.dto.js +1 -6
- package/dist/services/octoprint/dto/events/updated-files.dto.js +1 -6
- package/dist/services/octoprint/dto/events/upload.dto.js +1 -6
- package/dist/services/octoprint/dto/events/user-logged-in.dto.js +1 -6
- package/dist/services/octoprint/dto/events/z-change.dto.js +1 -6
- package/dist/services/octoprint/dto/files/gcode-analysis.dto.js +1 -6
- package/dist/services/octoprint/dto/files/octoprint-file.dto.js +1 -6
- package/dist/services/octoprint/dto/files/octoprint-files-response.dto.js +1 -6
- package/dist/services/octoprint/dto/job/current-job.dto.js +8 -15
- package/dist/services/octoprint/dto/job/current-job.dto.js.map +1 -1
- package/dist/services/octoprint/dto/job/job.dto.js +1 -6
- package/dist/services/octoprint/dto/octoprint-event.dto.js +21 -39
- package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -1
- package/dist/services/octoprint/dto/printer/busy-file.dto.js +1 -6
- package/dist/services/octoprint/dto/printer/current-printer-state.dto.js +1 -6
- package/dist/services/octoprint/dto/printer/flags.dto.js +1 -6
- package/dist/services/octoprint/dto/printer/markings.dto.js +1 -6
- package/dist/services/octoprint/dto/printer/progress.dto.js +1 -6
- package/dist/services/octoprint/dto/printer/resends.dto.js +1 -6
- package/dist/services/octoprint/dto/printer/state.dto.js +1 -6
- package/dist/services/octoprint/dto/printer/temps.dto.js +1 -6
- package/dist/services/octoprint/dto/rest/error.dto.js +1 -6
- package/dist/services/octoprint/dto/server/server.dto.js +1 -6
- package/dist/services/octoprint/dto/server/version.dto.js +1 -6
- package/dist/services/octoprint/dto/settings/serial-settings.dto.js +1 -6
- package/dist/services/octoprint/dto/settings/settings-parts.type.js +1 -6
- package/dist/services/octoprint/dto/settings/settings.dto.js +1 -6
- package/dist/services/octoprint/dto/settings/virtual-printer-settings.dto.js +1 -6
- package/dist/services/octoprint/dto/system/system-info.dto.js +32 -39
- package/dist/services/octoprint/dto/system/system-info.dto.js.map +1 -1
- package/dist/services/octoprint/dto/websocket/connection-message.dto.js +1 -6
- package/dist/services/octoprint/dto/websocket/current-message.dto.js +1 -6
- package/dist/services/octoprint/dto/websocket/event-message.dto.js +1 -6
- package/dist/services/octoprint/dto/websocket/event.type.js +42 -49
- package/dist/services/octoprint/dto/websocket/event.type.js.map +1 -1
- package/dist/services/octoprint/dto/websocket/history-message.dto.js +1 -6
- package/dist/services/octoprint/dto/websocket/plugin-message.dto.js +1 -6
- package/dist/services/octoprint/dto/websocket/timelapse-message.dto.js +1 -6
- package/dist/services/octoprint/octoprint-api.routes.js +77 -94
- package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
- package/dist/services/octoprint/octoprint-websocket.adapter.js +265 -315
- package/dist/services/octoprint/octoprint-websocket.adapter.js.map +1 -1
- package/dist/services/octoprint/octoprint.client.js +220 -261
- package/dist/services/octoprint/octoprint.client.js.map +1 -1
- package/dist/services/octoprint/utils/api.utils.js +15 -32
- package/dist/services/octoprint/utils/api.utils.js.map +1 -1
- package/dist/services/octoprint/utils/file.utils.js +44 -67
- package/dist/services/octoprint/utils/file.utils.js.map +1 -1
- package/dist/services/octoprint/utils/octoprint-http-client.builder.js +16 -29
- package/dist/services/octoprint/utils/octoprint-http-client.builder.js.map +1 -1
- package/dist/services/octoprint.api.js +113 -128
- package/dist/services/octoprint.api.js.map +1 -1
- package/dist/services/orm/api-key.service.js +90 -0
- package/dist/services/orm/api-key.service.js.map +1 -0
- package/dist/services/orm/base.interface.js +1 -6
- package/dist/services/orm/base.service.js +57 -73
- package/dist/services/orm/base.service.js.map +1 -1
- package/dist/services/orm/camera-stream.service.js +21 -27
- package/dist/services/orm/camera-stream.service.js.map +1 -1
- package/dist/services/orm/floor-position.service.js +42 -49
- package/dist/services/orm/floor-position.service.js.map +1 -1
- package/dist/services/orm/floor.service.js +110 -138
- package/dist/services/orm/floor.service.js.map +1 -1
- package/dist/services/orm/permission.service.js +16 -23
- package/dist/services/orm/permission.service.js.map +1 -1
- package/dist/services/orm/print-job.service.js +443 -545
- package/dist/services/orm/print-job.service.js.map +1 -1
- package/dist/services/orm/printer-maintenance-log.service.js +102 -149
- package/dist/services/orm/printer-maintenance-log.service.js.map +1 -1
- package/dist/services/orm/printer-tag.service.js +93 -118
- package/dist/services/orm/printer-tag.service.js.map +1 -1
- package/dist/services/orm/printer.service.js +110 -158
- package/dist/services/orm/printer.service.js.map +1 -1
- package/dist/services/orm/refresh-token.service.js +69 -99
- package/dist/services/orm/refresh-token.service.js.map +1 -1
- package/dist/services/orm/role.service.js +99 -116
- package/dist/services/orm/role.service.js.map +1 -1
- package/dist/services/orm/settings.service.js +84 -94
- package/dist/services/orm/settings.service.js.map +1 -1
- package/dist/services/orm/user-role.service.js +39 -53
- package/dist/services/orm/user-role.service.js.map +1 -1
- package/dist/services/orm/user.service.js +142 -189
- package/dist/services/orm/user.service.js.map +1 -1
- package/dist/services/print-file-downloader.service.js +153 -167
- package/dist/services/print-file-downloader.service.js.map +1 -1
- package/dist/services/print-queue.service.js +240 -326
- package/dist/services/print-queue.service.js.map +1 -1
- package/dist/services/printer-api.factory.js +26 -43
- package/dist/services/printer-api.factory.js.map +1 -1
- package/dist/services/printer-api.interface.js +23 -53
- package/dist/services/printer-api.interface.js.map +1 -1
- package/dist/services/prusa-link/constants/prusalink-event.dto.js +9 -16
- package/dist/services/prusa-link/constants/prusalink-event.dto.js.map +1 -1
- package/dist/services/prusa-link/constants/prusalink.constants.js +4 -11
- package/dist/services/prusa-link/constants/prusalink.constants.js.map +1 -1
- package/dist/services/prusa-link/dto/file-response.dto.js +1 -6
- package/dist/services/prusa-link/dto/file.dto.js +1 -6
- package/dist/services/prusa-link/dto/job-state.dto.js +1 -6
- package/dist/services/prusa-link/dto/printer-state.dto.js +1 -6
- package/dist/services/prusa-link/dto/status.dto.js +1 -6
- package/dist/services/prusa-link/dto/version.dto.js +1 -6
- package/dist/services/prusa-link/prusa-link-http-polling.adapter.js +141 -157
- package/dist/services/prusa-link/prusa-link-http-polling.adapter.js.map +1 -1
- package/dist/services/prusa-link/prusa-link.api.js +206 -240
- package/dist/services/prusa-link/prusa-link.api.js.map +1 -1
- package/dist/services/prusa-link/utils/digest-auth.params.js +1 -6
- package/dist/services/prusa-link/utils/digest-auth.util.js +17 -24
- package/dist/services/prusa-link/utils/digest-auth.util.js.map +1 -1
- package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js +92 -129
- package/dist/services/prusa-link/utils/prusa-link-http-client.builder.js.map +1 -1
- package/dist/services/socket.factory.js +21 -36
- package/dist/services/socket.factory.js.map +1 -1
- package/dist/services/task-manager.service.js +190 -174
- package/dist/services/task-manager.service.js.map +1 -1
- package/dist/services/typeorm/typeorm.service.js +31 -46
- package/dist/services/typeorm/typeorm.service.js.map +1 -1
- package/dist/services/validators/floor-service.validation.js +26 -63
- package/dist/services/validators/floor-service.validation.js.map +1 -1
- package/dist/services/validators/print-job.validation.js +11 -26
- package/dist/services/validators/print-job.validation.js.map +1 -1
- package/dist/services/validators/printer-maintenance-log.validation.js +17 -37
- package/dist/services/validators/printer-maintenance-log.validation.js.map +1 -1
- package/dist/services/validators/printer-service.validation.js +60 -125
- package/dist/services/validators/printer-service.validation.js.map +1 -1
- package/dist/services/validators/settings-service.validation.js +46 -106
- package/dist/services/validators/settings-service.validation.js.map +1 -1
- package/dist/services/validators/user-service.validation.js +19 -36
- package/dist/services/validators/user-service.validation.js.map +1 -1
- package/dist/services/validators/yaml-service.validation.js +96 -132
- package/dist/services/validators/yaml-service.validation.js.map +1 -1
- package/dist/services/websocket-adapter.interface.js +1 -6
- package/dist/shared/default-http-client.builder.js +74 -92
- package/dist/shared/default-http-client.builder.js.map +1 -1
- package/dist/shared/dtos/api-state.type.js +8 -15
- package/dist/shared/dtos/api-state.type.js.map +1 -1
- package/dist/shared/dtos/socket-login.dto.js +1 -6
- package/dist/shared/dtos/socket-state.type.js +11 -18
- package/dist/shared/dtos/socket-state.type.js.map +1 -1
- package/dist/shared/load-controllers.js +41 -19
- package/dist/shared/load-controllers.js.map +1 -1
- package/dist/shared/runtime-settings.migration.js +43 -50
- package/dist/shared/runtime-settings.migration.js.map +1 -1
- package/dist/shared/websocket-rpc-extended.adapter.js +74 -75
- package/dist/shared/websocket-rpc-extended.adapter.js.map +1 -1
- package/dist/shared/websocket.adapter.js +78 -63
- package/dist/shared/websocket.adapter.js.map +1 -1
- package/dist/state/file-upload-tracker.cache.js +63 -75
- package/dist/state/file-upload-tracker.cache.js.map +1 -1
- package/dist/state/floor.store.js +77 -89
- package/dist/state/floor.store.js.map +1 -1
- package/dist/state/printer-events.cache.js +237 -295
- package/dist/state/printer-events.cache.js.map +1 -1
- package/dist/state/printer-socket.store.js +156 -174
- package/dist/state/printer-socket.store.js.map +1 -1
- package/dist/state/printer-thumbnail.cache.js +129 -130
- package/dist/state/printer-thumbnail.cache.js.map +1 -1
- package/dist/state/printer.cache.js +87 -102
- package/dist/state/printer.cache.js.map +1 -1
- package/dist/state/settings.store.js +211 -234
- package/dist/state/settings.store.js.map +1 -1
- package/dist/state/socket-io.gateway.js +58 -87
- package/dist/state/socket-io.gateway.js.map +1 -1
- package/dist/state/test-printer-socket.store.js +116 -137
- package/dist/state/test-printer-socket.store.js.map +1 -1
- package/dist/state/validation/create-test-printer.validation.js +14 -21
- package/dist/state/validation/create-test-printer.validation.js.map +1 -1
- package/dist/task.presets.js +30 -37
- package/dist/task.presets.js.map +1 -1
- package/dist/tasks/boot.task.js +100 -128
- package/dist/tasks/boot.task.js.map +1 -1
- package/dist/tasks/client-bundle.task.js +20 -28
- package/dist/tasks/client-bundle.task.js.map +1 -1
- package/dist/tasks/print-job-analysis.task.js +88 -113
- package/dist/tasks/print-job-analysis.task.js.map +1 -1
- package/dist/tasks/printer-websocket-restore.task.js +41 -54
- package/dist/tasks/printer-websocket-restore.task.js.map +1 -1
- package/dist/tasks/printer-websocket.task.js +11 -19
- package/dist/tasks/printer-websocket.task.js.map +1 -1
- package/dist/tasks/socketio.task.js +35 -53
- package/dist/tasks/socketio.task.js.map +1 -1
- package/dist/tasks/software-update.task.js +12 -20
- package/dist/tasks/software-update.task.js.map +1 -1
- package/dist/tasks.js +27 -41
- package/dist/tasks.js.map +1 -1
- package/dist/types/express/index.d.js +1 -6
- package/dist/types/virtual-modules.d.js +1 -0
- package/dist/utils/array.util.js +9 -24
- package/dist/utils/array.util.js.map +1 -1
- package/dist/utils/bgcode/bgcode-thumbnail.parser.js +26 -44
- package/dist/utils/bgcode/bgcode-thumbnail.parser.js.map +1 -1
- package/dist/utils/bgcode/bgcode.constants.js +9 -45
- package/dist/utils/bgcode/bgcode.constants.js.map +1 -1
- package/dist/utils/bgcode/bgcode.types.js +57 -106
- package/dist/utils/bgcode/bgcode.types.js.map +1 -1
- package/dist/utils/bgcode/bgcode.utils.js +167 -256
- package/dist/utils/bgcode/bgcode.utils.js.map +1 -1
- package/dist/utils/bgcode/heatshrink-decoder.js +130 -170
- package/dist/utils/bgcode/heatshrink-decoder.js.map +1 -1
- package/dist/utils/bgcode/png-encoder.js +53 -66
- package/dist/utils/bgcode/png-encoder.js.map +1 -1
- package/dist/utils/bgcode/qoi-decoder.js +116 -135
- package/dist/utils/bgcode/qoi-decoder.js.map +1 -1
- package/dist/utils/cache/key-diff.cache.js +56 -85
- package/dist/utils/cache/key-diff.cache.js.map +1 -1
- package/dist/utils/correlation-token.util.js +4 -11
- package/dist/utils/correlation-token.util.js.map +1 -1
- package/dist/utils/crypto.utils.js +7 -23
- package/dist/utils/crypto.utils.js.map +1 -1
- package/dist/utils/env.utils.js +14 -49
- package/dist/utils/env.utils.js.map +1 -1
- package/dist/utils/error.utils.js +4 -11
- package/dist/utils/error.utils.js.map +1 -1
- package/dist/utils/fs.utils.js +26 -49
- package/dist/utils/fs.utils.js.map +1 -1
- package/dist/utils/gcode.utils.js +30 -43
- package/dist/utils/gcode.utils.js.map +1 -1
- package/dist/utils/image-dimensions.js +39 -54
- package/dist/utils/image-dimensions.js.map +1 -1
- package/dist/utils/job-stats.util.js +41 -72
- package/dist/utils/job-stats.util.js.map +1 -1
- package/dist/utils/normalize-url.js +135 -203
- package/dist/utils/normalize-url.js.map +1 -1
- package/dist/utils/parsers/3mf.parser.js +298 -365
- package/dist/utils/parsers/3mf.parser.js.map +1 -1
- package/dist/utils/parsers/bgcode.parser.js +149 -202
- package/dist/utils/parsers/bgcode.parser.js.map +1 -1
- package/dist/utils/parsers/gcode.parser.js +200 -263
- package/dist/utils/parsers/gcode.parser.js.map +1 -1
- package/dist/utils/parsers/parser.types.js +1 -6
- package/dist/utils/pretty-print.utils.js +5 -20
- package/dist/utils/pretty-print.utils.js.map +1 -1
- package/dist/utils/semver.utils.js +10 -26
- package/dist/utils/semver.utils.js.map +1 -1
- package/dist/utils/swagger/decorators.js +14 -32
- package/dist/utils/swagger/decorators.js.map +1 -1
- package/dist/utils/swagger/generator.js +151 -194
- package/dist/utils/swagger/generator.js.map +1 -1
- package/dist/utils/swagger/swagger.js +40 -51
- package/dist/utils/swagger/swagger.js.map +1 -1
- package/dist/utils/thumbnail.util.js +11 -20
- package/dist/utils/thumbnail.util.js.map +1 -1
- package/dist/utils/time.utils.js +4 -12
- package/dist/utils/time.utils.js.map +1 -1
- package/dist/utils/url.utils.js +9 -27
- package/dist/utils/url.utils.js.map +1 -1
- package/package.json +80 -91
- package/packages/consoles/package.json +44 -0
- package/packages/consoles/tsconfig.json +23 -0
- package/packages/consoles/vite.config.ts +15 -0
- package/tsconfig.json +10 -6
- package/vite.config.ts +62 -0
- package/.swcrc +0 -33
- package/.yarn/releases/yarn-4.12.0.cjs +0 -942
- package/biome.json +0 -36
- package/dist/consoles/bambu-mqtt-diagnostic.console.js +0 -565
- package/dist/consoles/bambu-mqtt-diagnostic.console.js.map +0 -1
- package/dist/consoles/download-github-releases.js +0 -50
- package/dist/consoles/download-github-releases.js.map +0 -1
- package/dist/consoles/gcode-scanner-poc.console.js +0 -52
- package/dist/consoles/gcode-scanner-poc.console.js.map +0 -1
- package/dist/consoles/launch-http-servers.js +0 -31
- package/dist/consoles/launch-http-servers.js.map +0 -1
- package/dist/consoles/mock-bambu.server.js +0 -319
- package/dist/consoles/mock-bambu.server.js.map +0 -1
- package/dist/consoles/mock-camera/default-image.js +0 -13
- package/dist/consoles/mock-camera/default-image.js.map +0 -1
- package/dist/consoles/mock-camera/mock-camera.server.js +0 -160
- package/dist/consoles/mock-camera/mock-camera.server.js.map +0 -1
- package/dist/consoles/mock-octoprint.server.js +0 -499
- package/dist/consoles/mock-octoprint.server.js.map +0 -1
- package/dist/consoles/mock-prusalink.server.js +0 -57
- package/dist/consoles/mock-prusalink.server.js.map +0 -1
- package/dist/consoles/moonraker-test.console.js +0 -3
- package/dist/consoles/moonraker-test.console.js.map +0 -1
- package/dist/consoles/utils/api-messages.js +0 -856
- package/dist/consoles/utils/api-messages.js.map +0 -1
- package/dist/consoles/utils/delayed-memory.storage.js +0 -42
- package/dist/consoles/utils/delayed-memory.storage.js.map +0 -1
- package/dist/consoles/utils/ws-messages.js +0 -88
- package/dist/consoles/utils/ws-messages.js.map +0 -1
- package/dist/entities/index.js.map +0 -1
- package/dist/services/bambu/mqtt-message.types.js.map +0 -1
- package/dist/services/interfaces/auth.service.interface.js.map +0 -1
- package/dist/services/interfaces/camera-stream.service.interface.js.map +0 -1
- package/dist/services/interfaces/file-upload-tracker.interface.js.map +0 -1
- package/dist/services/interfaces/floor.service.interface.js.map +0 -1
- package/dist/services/interfaces/jwt.service.interface.js.map +0 -1
- package/dist/services/interfaces/permission.service.interface.js.map +0 -1
- package/dist/services/interfaces/printer-file.dto.js.map +0 -1
- package/dist/services/interfaces/printer-maintenance-log.dto.js.map +0 -1
- package/dist/services/interfaces/printer-tag.service.interface.js.map +0 -1
- package/dist/services/interfaces/printer.service.interface.js.map +0 -1
- package/dist/services/interfaces/refresh-token.service.interface.js.map +0 -1
- package/dist/services/interfaces/role-service.interface.js.map +0 -1
- package/dist/services/interfaces/settings.service.interface.js.map +0 -1
- package/dist/services/interfaces/tag.dto.js.map +0 -1
- package/dist/services/interfaces/task.interfaces.js.map +0 -1
- package/dist/services/interfaces/user-service.interface.js.map +0 -1
- package/dist/services/moonraker/dto/access/access-info.dto.js.map +0 -1
- package/dist/services/moonraker/dto/access/access-login-refresh.dto.js.map +0 -1
- package/dist/services/moonraker/dto/access/access-login-result.dto.js.map +0 -1
- package/dist/services/moonraker/dto/access/access-user-result.dto.js.map +0 -1
- package/dist/services/moonraker/dto/access/access-user.dto.js.map +0 -1
- package/dist/services/moonraker/dto/database/database-namespace-item.dto.js.map +0 -1
- package/dist/services/moonraker/dto/database/database-namespace-list.dto.js.map +0 -1
- package/dist/services/moonraker/dto/gcode-help.dto.js.map +0 -1
- package/dist/services/moonraker/dto/gcode-store.dto.js.map +0 -1
- package/dist/services/moonraker/dto/job-queue/enqueue-job.dto.js.map +0 -1
- package/dist/services/moonraker/dto/job-queue/job-queue-status.dto.js.map +0 -1
- package/dist/services/moonraker/dto/machine/machine-device-power-device-state.dto.js.map +0 -1
- package/dist/services/moonraker/dto/machine/machine-device-power-devices.dto.js.map +0 -1
- package/dist/services/moonraker/dto/machine/machine-peripherals-canbus.dto.js.map +0 -1
- package/dist/services/moonraker/dto/machine/machine-peripherals-serial.dto.js.map +0 -1
- package/dist/services/moonraker/dto/machine/machine-peripherals-usb.dto.js.map +0 -1
- package/dist/services/moonraker/dto/machine/machine-peripherals-video.dto.js.map +0 -1
- package/dist/services/moonraker/dto/machine/machine-system-info.dto.js.map +0 -1
- package/dist/services/moonraker/dto/machine/machine-update-status.dto.js.map +0 -1
- package/dist/services/moonraker/dto/machine/machine-wled-strips.dto.js.map +0 -1
- package/dist/services/moonraker/dto/notifier-list.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/bed-mesh.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/configfile.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/display-status.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/extruder.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/fan.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/filament-motion-sensor.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/filament-switch-sensor.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/gcode-move.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/gcode.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/heater-bed.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/heaters.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/mcu.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/motion-report.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/output-pin.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/pause-resume.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/printer-object.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/printer-object.types.js.map +0 -1
- package/dist/services/moonraker/dto/objects/printer-objects-query.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/stepper-enable.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/system-stats.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/temperature-fan.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/temperature-sensor.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/toolhead.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/virtual-sdcard.dto.js.map +0 -1
- package/dist/services/moonraker/dto/objects/webhooks.dto.js.map +0 -1
- package/dist/services/moonraker/dto/octoprint-compat/api-job.dto.js.map +0 -1
- package/dist/services/moonraker/dto/octoprint-compat/api-login.dto.js.map +0 -1
- package/dist/services/moonraker/dto/octoprint-compat/api-printer.dto.js.map +0 -1
- package/dist/services/moonraker/dto/octoprint-compat/api-profiles.dto.js.map +0 -1
- package/dist/services/moonraker/dto/octoprint-compat/api-settings.dto.js.map +0 -1
- package/dist/services/moonraker/dto/octoprint-compat/api-version.dto.js.map +0 -1
- package/dist/services/moonraker/dto/octoprint-compat/server-version.dto.js.map +0 -1
- package/dist/services/moonraker/dto/printer-query-endstops.dto.js.map +0 -1
- package/dist/services/moonraker/dto/process-stats.dto.js.map +0 -1
- package/dist/services/moonraker/dto/rest/action-result.dto.js.map +0 -1
- package/dist/services/moonraker/dto/rest/error.dto.js.map +0 -1
- package/dist/services/moonraker/dto/rollover-logs.dto.js.map +0 -1
- package/dist/services/moonraker/dto/rpc/json-rpc-error.dto.js.map +0 -1
- package/dist/services/moonraker/dto/rpc/json-rpc-request.dto.js.map +0 -1
- package/dist/services/moonraker/dto/rpc/json-rpc-response.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server/server-config.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-announcements/announcement-action.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-announcements/announcement-entry-id.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-announcements/announcement-feeds.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-announcements/announcement-list.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-files/server-file-directory-action.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-files/server-file-directory-info.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-files/server-file-metadata.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-files/server-file-root.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-files/server-file-thumbnail.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-files/server-file-zip-action.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-files/server-file.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-history/history-job.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-history/history-last-totals.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-history/history-list.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-history/history-totals.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-sensors/sensor-info.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-sensors/sensor-list.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-sensors/sensor-measurements.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-webcams/webcam-item.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-webcams/webcam-list.dto.js.map +0 -1
- package/dist/services/moonraker/dto/server-webcams/webcam-test.dto.js.map +0 -1
- package/dist/services/moonraker/dto/spoolman/spoolman-active-spool.dto.js.map +0 -1
- package/dist/services/moonraker/dto/spoolman/spoolman-proxy-request.dto.js.map +0 -1
- package/dist/services/moonraker/dto/spoolman/spoolman-response.dto.js.map +0 -1
- package/dist/services/moonraker/dto/spoolman/spoolman-status.dto.js.map +0 -1
- package/dist/services/moonraker/dto/sudo-info.dto.js.map +0 -1
- package/dist/services/moonraker/dto/sudo-response.dto.js.map +0 -1
- package/dist/services/moonraker/dto/temperature-store.dto.js.map +0 -1
- package/dist/services/moonraker/dto/websocket/connection-identify-response.dto.js.map +0 -1
- package/dist/services/moonraker/dto/websocket/connection-identify.dto.js.map +0 -1
- package/dist/services/moonraker/dto/websocket/json-rpc-event.dto.js.map +0 -1
- package/dist/services/moonraker/dto/websocket/message.types.js.map +0 -1
- package/dist/services/moonraker/dto/websocket/notify-active-spool-set.params.js.map +0 -1
- package/dist/services/moonraker/dto/websocket/notify-agent-event.params.js.map +0 -1
- package/dist/services/moonraker/dto/websocket/notify-announcement-update.params.js.map +0 -1
- package/dist/services/moonraker/dto/websocket/notify-announcement.params.js.map +0 -1
- package/dist/services/moonraker/dto/websocket/notify-button-event.params.js.map +0 -1
- package/dist/services/moonraker/dto/websocket/notify-history-changed.params.js.map +0 -1
- package/dist/services/moonraker/dto/websocket/notify-job-queue-changed.params.js.map +0 -1
- package/dist/services/moonraker/dto/websocket/notify-proc-stat-update.params.js.map +0 -1
- package/dist/services/moonraker/dto/websocket/notify-sensor-update.params.js.map +0 -1
- package/dist/services/moonraker/dto/websocket/notify-service-state-changed.params.js.map +0 -1
- package/dist/services/moonraker/dto/websocket/notify-spoolman-status-changed.js.map +0 -1
- package/dist/services/moonraker/dto/websocket/notify-sudo-alert.params.js.map +0 -1
- package/dist/services/moonraker/dto/websocket/notify-user-change.params.js.map +0 -1
- package/dist/services/octoprint/dto/access/user-list.dto.js.map +0 -1
- package/dist/services/octoprint/dto/access/user.dto.js.map +0 -1
- package/dist/services/octoprint/dto/auth/current-user.dto.js.map +0 -1
- package/dist/services/octoprint/dto/auth/login.dto.js.map +0 -1
- package/dist/services/octoprint/dto/connection/connection.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/client-authed.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/client-closed.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/client-opened.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/dwelling.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/file-added.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/file-deselected.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/file-removed.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/folder-added.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/home.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/metadata-analysis-finished.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/metadata-analysis-started.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/metadata-statistics-updated.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/position-update.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/print-cancelled.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/print-cancelling.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/print-done.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/print-failed.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/print-paused.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/print-resumed.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/print-started.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/printer-state-changed.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/transfer-done.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/transfer-started.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/updated-files.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/upload.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/user-logged-in.dto.js.map +0 -1
- package/dist/services/octoprint/dto/events/z-change.dto.js.map +0 -1
- package/dist/services/octoprint/dto/files/gcode-analysis.dto.js.map +0 -1
- package/dist/services/octoprint/dto/files/octoprint-file.dto.js.map +0 -1
- package/dist/services/octoprint/dto/files/octoprint-files-response.dto.js.map +0 -1
- package/dist/services/octoprint/dto/job/job.dto.js.map +0 -1
- package/dist/services/octoprint/dto/printer/busy-file.dto.js.map +0 -1
- package/dist/services/octoprint/dto/printer/current-printer-state.dto.js.map +0 -1
- package/dist/services/octoprint/dto/printer/flags.dto.js.map +0 -1
- package/dist/services/octoprint/dto/printer/markings.dto.js.map +0 -1
- package/dist/services/octoprint/dto/printer/progress.dto.js.map +0 -1
- package/dist/services/octoprint/dto/printer/resends.dto.js.map +0 -1
- package/dist/services/octoprint/dto/printer/state.dto.js.map +0 -1
- package/dist/services/octoprint/dto/printer/temps.dto.js.map +0 -1
- package/dist/services/octoprint/dto/rest/error.dto.js.map +0 -1
- package/dist/services/octoprint/dto/server/server.dto.js.map +0 -1
- package/dist/services/octoprint/dto/server/version.dto.js.map +0 -1
- package/dist/services/octoprint/dto/settings/serial-settings.dto.js.map +0 -1
- package/dist/services/octoprint/dto/settings/settings-parts.type.js.map +0 -1
- package/dist/services/octoprint/dto/settings/settings.dto.js.map +0 -1
- package/dist/services/octoprint/dto/settings/virtual-printer-settings.dto.js.map +0 -1
- package/dist/services/octoprint/dto/websocket/connection-message.dto.js.map +0 -1
- package/dist/services/octoprint/dto/websocket/current-message.dto.js.map +0 -1
- package/dist/services/octoprint/dto/websocket/event-message.dto.js.map +0 -1
- package/dist/services/octoprint/dto/websocket/history-message.dto.js.map +0 -1
- package/dist/services/octoprint/dto/websocket/plugin-message.dto.js.map +0 -1
- package/dist/services/octoprint/dto/websocket/timelapse-message.dto.js.map +0 -1
- package/dist/services/orm/base.interface.js.map +0 -1
- package/dist/services/prusa-link/dto/file-response.dto.js.map +0 -1
- package/dist/services/prusa-link/dto/file.dto.js.map +0 -1
- package/dist/services/prusa-link/dto/job-state.dto.js.map +0 -1
- package/dist/services/prusa-link/dto/printer-state.dto.js.map +0 -1
- package/dist/services/prusa-link/dto/status.dto.js.map +0 -1
- package/dist/services/prusa-link/dto/version.dto.js.map +0 -1
- package/dist/services/prusa-link/utils/digest-auth.params.js.map +0 -1
- package/dist/services/websocket-adapter.interface.js.map +0 -1
- package/dist/shared/dtos/socket-login.dto.js.map +0 -1
- package/dist/types/express/index.d.js.map +0 -1
- package/dist/utils/parsers/parser.types.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/consoles/mock-camera/default-image.ts"],"names":["DEFAULT_IMAGE_BASE64"],"mappings":";;;;+BAGaA;;;eAAAA;;;AAAN,MAAMA,uBAAuB"}
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
const _express = /*#__PURE__*/ _interop_require_default(require("express"));
|
|
6
|
-
const _nodehttp = /*#__PURE__*/ _interop_require_default(require("node:http"));
|
|
7
|
-
const _nodefs = /*#__PURE__*/ _interop_require_default(require("node:fs"));
|
|
8
|
-
const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
|
|
9
|
-
const _defaultimage = require("./default-image.js");
|
|
10
|
-
function _interop_require_default(obj) {
|
|
11
|
-
return obj && obj.__esModule ? obj : {
|
|
12
|
-
default: obj
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
const port = process.argv[2] ? Number.parseInt(process.argv[2]) : 8181;
|
|
16
|
-
const fps = process.argv[3] ? Number.parseInt(process.argv[3]) : 10;
|
|
17
|
-
const frameInterval = 1000 / fps;
|
|
18
|
-
const app = (0, _express.default)();
|
|
19
|
-
const server = _nodehttp.default.createServer(app);
|
|
20
|
-
const activeIntervals = new Set();
|
|
21
|
-
const framesDir = _nodepath.default.join(process.cwd(), "media", "mock-camera");
|
|
22
|
-
if (!_nodefs.default.existsSync(framesDir)) {
|
|
23
|
-
console.log(`[CAMERA:${port}] Creating frames folder ${framesDir}`);
|
|
24
|
-
console.log(`[CAMERA:${port}] You can place custom .jpg/.jpeg/.png images here to use as frames`);
|
|
25
|
-
_nodefs.default.mkdirSync(framesDir, {
|
|
26
|
-
recursive: true
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
let customFrames = [];
|
|
30
|
-
try {
|
|
31
|
-
const files = _nodefs.default.readdirSync(framesDir).filter((f)=>{
|
|
32
|
-
const lower = f.toLowerCase();
|
|
33
|
-
return lower.endsWith('.jpg') || lower.endsWith('.jpeg') || lower.endsWith('.png');
|
|
34
|
-
}).sort((a, b)=>a.localeCompare(b));
|
|
35
|
-
if (files.length > 0) {
|
|
36
|
-
console.log(`[CAMERA:${port}] Loading ${files.length} custom frame(s) from ${framesDir}`);
|
|
37
|
-
customFrames = files.map((f)=>{
|
|
38
|
-
const filePath = _nodepath.default.join(framesDir, f);
|
|
39
|
-
const data = _nodefs.default.readFileSync(filePath);
|
|
40
|
-
const contentType = f.toLowerCase().endsWith('.png') ? 'image/png' : 'image/jpeg';
|
|
41
|
-
return {
|
|
42
|
-
data,
|
|
43
|
-
contentType
|
|
44
|
-
};
|
|
45
|
-
});
|
|
46
|
-
console.log(`[CAMERA:${port}] Loaded custom frames: ${files.join(', ')}`);
|
|
47
|
-
}
|
|
48
|
-
} catch (error) {
|
|
49
|
-
console.error(`[CAMERA:${port}] Error loading custom frames:`, error);
|
|
50
|
-
}
|
|
51
|
-
const defaultFrame = {
|
|
52
|
-
data: Buffer.from(_defaultimage.DEFAULT_IMAGE_BASE64, 'base64'),
|
|
53
|
-
contentType: 'image/jpeg'
|
|
54
|
-
};
|
|
55
|
-
console.log(`[CAMERA:${port}] Loaded default frame from embedded image`);
|
|
56
|
-
function generateFrame() {
|
|
57
|
-
if (customFrames.length > 0) {
|
|
58
|
-
const frameIndex = Math.floor(Date.now() / 1000) % customFrames.length;
|
|
59
|
-
return customFrames[frameIndex];
|
|
60
|
-
}
|
|
61
|
-
return defaultFrame;
|
|
62
|
-
}
|
|
63
|
-
app.get("/", (req, res)=>{
|
|
64
|
-
console.log(`[CAMERA:${port}] New MJPEG stream connection from ${req.ip}`);
|
|
65
|
-
res.writeHead(200, {
|
|
66
|
-
'Content-Type': 'multipart/x-mixed-replace; boundary=--FRAME',
|
|
67
|
-
'Cache-Control': 'no-cache, no-store, must-revalidate',
|
|
68
|
-
'Pragma': 'no-cache',
|
|
69
|
-
'Expires': '0',
|
|
70
|
-
'Connection': 'close'
|
|
71
|
-
});
|
|
72
|
-
const intervalId = setInterval(()=>{
|
|
73
|
-
try {
|
|
74
|
-
const frame = generateFrame();
|
|
75
|
-
res.write('--FRAME\r\n');
|
|
76
|
-
res.write(`Content-Type: ${frame.contentType}\r\n`);
|
|
77
|
-
res.write(`Content-Length: ${frame.data.length}\r\n`);
|
|
78
|
-
res.write('\r\n');
|
|
79
|
-
res.write(frame.data);
|
|
80
|
-
res.write('\r\n');
|
|
81
|
-
} catch (error) {
|
|
82
|
-
console.error(`[CAMERA:${port}] Error sending frame:`, error);
|
|
83
|
-
clearInterval(intervalId);
|
|
84
|
-
activeIntervals.delete(intervalId);
|
|
85
|
-
res.end();
|
|
86
|
-
}
|
|
87
|
-
}, frameInterval);
|
|
88
|
-
activeIntervals.add(intervalId);
|
|
89
|
-
req.on('close', ()=>{
|
|
90
|
-
console.log(`[CAMERA:${port}] Client disconnected`);
|
|
91
|
-
clearInterval(intervalId);
|
|
92
|
-
activeIntervals.delete(intervalId);
|
|
93
|
-
});
|
|
94
|
-
res.on('error', (error)=>{
|
|
95
|
-
console.error(`[CAMERA:${port}] Response error:`, error);
|
|
96
|
-
clearInterval(intervalId);
|
|
97
|
-
activeIntervals.delete(intervalId);
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
app.get("/snapshot", (req, res)=>{
|
|
101
|
-
console.log(`[CAMERA:${port}] Snapshot request from ${req.ip}`);
|
|
102
|
-
try {
|
|
103
|
-
const frame = generateFrame();
|
|
104
|
-
res.writeHead(200, {
|
|
105
|
-
'Content-Type': frame.contentType,
|
|
106
|
-
'Content-Length': frame.data.length,
|
|
107
|
-
'Cache-Control': 'no-cache'
|
|
108
|
-
});
|
|
109
|
-
res.end(frame.data);
|
|
110
|
-
} catch (error) {
|
|
111
|
-
console.error(`[CAMERA:${port}] Error generating snapshot:`, error);
|
|
112
|
-
res.status(500).json({
|
|
113
|
-
error: 'Failed to generate snapshot'
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
app.get("/status", (req, res)=>{
|
|
118
|
-
res.json({
|
|
119
|
-
status: 'online',
|
|
120
|
-
fps: fps,
|
|
121
|
-
customFrames: customFrames.length,
|
|
122
|
-
framesDir: framesDir
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
app.use((req, res)=>{
|
|
126
|
-
console.log(`[CAMERA:${port}] ${req.method.toUpperCase()} ${req.url} Not found`);
|
|
127
|
-
res.status(404).json({
|
|
128
|
-
error: 'Not Found'
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
server.listen(port, ()=>{
|
|
132
|
-
console.log(`[CAMERA:${port}] Mock camera server running on http://localhost:${port}`);
|
|
133
|
-
console.log(`[CAMERA:${port}] MJPEG stream: http://localhost:${port}/`);
|
|
134
|
-
console.log(`[CAMERA:${port}] Snapshot: http://localhost:${port}/snapshot`);
|
|
135
|
-
console.log(`[CAMERA:${port}] Status: http://localhost:${port}/status`);
|
|
136
|
-
console.log(`[CAMERA:${port}] FPS: ${fps}`);
|
|
137
|
-
const framesString = customFrames.length > 0 ? `${customFrames.length} loaded` : 'none (using placeholder)';
|
|
138
|
-
console.log(`[CAMERA:${port}] Custom frames: ${framesString}`);
|
|
139
|
-
if (customFrames.length === 0) {
|
|
140
|
-
console.log(`[CAMERA:${port}] Tip: Add .jpg or .png files to ${framesDir} to use custom frames`);
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
function shutdown(signal) {
|
|
144
|
-
console.log(`\n[CAMERA:${port}] Received ${signal} signal. Shutting down gracefully...`);
|
|
145
|
-
console.log(`[CAMERA:${port}] Clearing ${activeIntervals.size} active stream(s)...`);
|
|
146
|
-
activeIntervals.forEach((interval)=>clearInterval(interval));
|
|
147
|
-
activeIntervals.clear();
|
|
148
|
-
server.close(()=>{
|
|
149
|
-
console.log(`[CAMERA:${port}] Server closed`);
|
|
150
|
-
process.exit(0);
|
|
151
|
-
});
|
|
152
|
-
setTimeout(()=>{
|
|
153
|
-
console.error(`[CAMERA:${port}] Could not close connections in time, forcefully shutting down`);
|
|
154
|
-
process.exit(1);
|
|
155
|
-
}, 5000);
|
|
156
|
-
}
|
|
157
|
-
process.on('SIGINT', ()=>shutdown('SIGINT'));
|
|
158
|
-
process.on('SIGTERM', ()=>shutdown('SIGTERM'));
|
|
159
|
-
|
|
160
|
-
//# sourceMappingURL=mock-camera.server.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/consoles/mock-camera/mock-camera.server.ts"],"names":["port","process","argv","Number","parseInt","fps","frameInterval","app","express","server","http","createServer","activeIntervals","Set","framesDir","path","join","cwd","fs","existsSync","console","log","mkdirSync","recursive","customFrames","files","readdirSync","filter","f","lower","toLowerCase","endsWith","sort","a","b","localeCompare","length","map","filePath","data","readFileSync","contentType","error","defaultFrame","Buffer","from","DEFAULT_IMAGE_BASE64","generateFrame","frameIndex","Math","floor","Date","now","get","req","res","ip","writeHead","intervalId","setInterval","frame","write","clearInterval","delete","end","add","on","status","json","use","method","toUpperCase","url","listen","framesString","shutdown","signal","size","forEach","interval","clear","close","exit","setTimeout"],"mappings":"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"}
|
|
@@ -1,499 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
const _express = /*#__PURE__*/ _interop_require_default(require("express"));
|
|
6
|
-
const _multer = /*#__PURE__*/ _interop_require_default(require("multer"));
|
|
7
|
-
const _nodefs = /*#__PURE__*/ _interop_require_default(require("node:fs"));
|
|
8
|
-
const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
|
|
9
|
-
const _ws = require("ws");
|
|
10
|
-
const _nodehttp = /*#__PURE__*/ _interop_require_default(require("node:http"));
|
|
11
|
-
const _zod = require("zod");
|
|
12
|
-
const _nodeconsole = /*#__PURE__*/ _interop_require_wildcard(require("node:console"));
|
|
13
|
-
const _apimessages = require("./utils/api-messages");
|
|
14
|
-
function _interop_require_default(obj) {
|
|
15
|
-
return obj && obj.__esModule ? obj : {
|
|
16
|
-
default: obj
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
function _getRequireWildcardCache(nodeInterop) {
|
|
20
|
-
if (typeof WeakMap !== "function") return null;
|
|
21
|
-
var cacheBabelInterop = new WeakMap();
|
|
22
|
-
var cacheNodeInterop = new WeakMap();
|
|
23
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
24
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
25
|
-
})(nodeInterop);
|
|
26
|
-
}
|
|
27
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
|
28
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
29
|
-
return obj;
|
|
30
|
-
}
|
|
31
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
32
|
-
return {
|
|
33
|
-
default: obj
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
37
|
-
if (cache && cache.has(obj)) {
|
|
38
|
-
return cache.get(obj);
|
|
39
|
-
}
|
|
40
|
-
var newObj = {
|
|
41
|
-
__proto__: null
|
|
42
|
-
};
|
|
43
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
44
|
-
for(var key in obj){
|
|
45
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
46
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
47
|
-
if (desc && (desc.get || desc.set)) {
|
|
48
|
-
Object.defineProperty(newObj, key, desc);
|
|
49
|
-
} else {
|
|
50
|
-
newObj[key] = obj[key];
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
newObj.default = obj;
|
|
55
|
-
if (cache) {
|
|
56
|
-
cache.set(obj, newObj);
|
|
57
|
-
}
|
|
58
|
-
return newObj;
|
|
59
|
-
}
|
|
60
|
-
let isPrinting = false;
|
|
61
|
-
let isPaused = false;
|
|
62
|
-
let isFinished = false;
|
|
63
|
-
let currentPrintFile = "";
|
|
64
|
-
let printProgress = 0;
|
|
65
|
-
let printStartTime = 0;
|
|
66
|
-
const PRINT_DURATION = 20;
|
|
67
|
-
function getCurrentMessage() {
|
|
68
|
-
updatePrintProgress();
|
|
69
|
-
const elapsedSeconds = isPrinting ? (Date.now() - printStartTime) / 1000 : 0;
|
|
70
|
-
const remainingSeconds = isPrinting ? Math.max(0, PRINT_DURATION - elapsedSeconds) : null;
|
|
71
|
-
let stateText = "Operational";
|
|
72
|
-
if (isPrinting && isPaused) stateText = "Paused";
|
|
73
|
-
else if (isPrinting) stateText = "Printing";
|
|
74
|
-
const fileName = isFinished ? finishedFileName : currentPrintFile || null;
|
|
75
|
-
const hasFile = isPrinting || isFinished;
|
|
76
|
-
return {
|
|
77
|
-
current: {
|
|
78
|
-
state: {
|
|
79
|
-
text: stateText,
|
|
80
|
-
flags: {
|
|
81
|
-
operational: true,
|
|
82
|
-
printing: isPrinting && !isPaused,
|
|
83
|
-
cancelling: false,
|
|
84
|
-
pausing: false,
|
|
85
|
-
resuming: false,
|
|
86
|
-
finishing: false,
|
|
87
|
-
closedOrError: false,
|
|
88
|
-
error: false,
|
|
89
|
-
paused: isPaused,
|
|
90
|
-
ready: !isPrinting && !isFinished,
|
|
91
|
-
sdReady: true,
|
|
92
|
-
finished: isFinished
|
|
93
|
-
},
|
|
94
|
-
error: ""
|
|
95
|
-
},
|
|
96
|
-
job: {
|
|
97
|
-
file: {
|
|
98
|
-
name: fileName,
|
|
99
|
-
path: fileName,
|
|
100
|
-
display: fileName,
|
|
101
|
-
origin: hasFile ? "local" : null,
|
|
102
|
-
size: hasFile ? 1024000 : null,
|
|
103
|
-
date: hasFile ? printStartTime / 1000 : null
|
|
104
|
-
},
|
|
105
|
-
estimatedPrintTime: hasFile ? PRINT_DURATION : null,
|
|
106
|
-
averagePrintTime: null,
|
|
107
|
-
lastPrintTime: null,
|
|
108
|
-
filament: hasFile ? {
|
|
109
|
-
tool0: {
|
|
110
|
-
length: 1000,
|
|
111
|
-
volume: 2.4
|
|
112
|
-
}
|
|
113
|
-
} : null,
|
|
114
|
-
user: null
|
|
115
|
-
},
|
|
116
|
-
currentZ: isPrinting ? Math.floor(printProgress / 5) : null,
|
|
117
|
-
progress: {
|
|
118
|
-
completion: isFinished ? 100 : isPrinting ? printProgress : null,
|
|
119
|
-
filepos: hasFile ? Math.floor((isFinished ? 100 : printProgress) / 100 * 1024000) : null,
|
|
120
|
-
printTime: isFinished ? PRINT_DURATION : isPrinting ? Math.floor(elapsedSeconds) : null,
|
|
121
|
-
printTimeLeft: isFinished ? 0 : remainingSeconds !== null ? Math.floor(remainingSeconds) : null,
|
|
122
|
-
printTimeLeftOrigin: hasFile ? "estimate" : null
|
|
123
|
-
},
|
|
124
|
-
offsets: {},
|
|
125
|
-
resends: {
|
|
126
|
-
count: 0,
|
|
127
|
-
transmitted: 8,
|
|
128
|
-
ratio: 0
|
|
129
|
-
},
|
|
130
|
-
serverTime: Date.now() / 1000,
|
|
131
|
-
temps: [],
|
|
132
|
-
busyFiles: [],
|
|
133
|
-
logs: [],
|
|
134
|
-
messages: []
|
|
135
|
-
}
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
let finishedFileName = "";
|
|
139
|
-
function updatePrintProgress() {
|
|
140
|
-
if (isFinished) {
|
|
141
|
-
isFinished = false;
|
|
142
|
-
finishedFileName = "";
|
|
143
|
-
currentPrintFile = "";
|
|
144
|
-
printProgress = 0;
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
if (isPrinting && !isPaused) {
|
|
148
|
-
const elapsedSeconds = (Date.now() - printStartTime) / 1000;
|
|
149
|
-
printProgress = Math.min(elapsedSeconds / PRINT_DURATION * 100, 100);
|
|
150
|
-
if (printProgress >= 100) {
|
|
151
|
-
isFinished = true;
|
|
152
|
-
finishedFileName = currentPrintFile;
|
|
153
|
-
isPrinting = false;
|
|
154
|
-
printProgress = 100;
|
|
155
|
-
_nodeconsole.log(`[PORT] Print completed: ${currentPrintFile}`);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
function getJobResponse() {
|
|
160
|
-
updatePrintProgress();
|
|
161
|
-
const fileName = isFinished ? finishedFileName : currentPrintFile;
|
|
162
|
-
const hasJob = isPrinting || isFinished;
|
|
163
|
-
if (!hasJob) {
|
|
164
|
-
return {
|
|
165
|
-
job: {
|
|
166
|
-
file: {
|
|
167
|
-
name: null,
|
|
168
|
-
origin: null,
|
|
169
|
-
size: null,
|
|
170
|
-
date: null
|
|
171
|
-
},
|
|
172
|
-
estimatedPrintTime: null,
|
|
173
|
-
filament: null
|
|
174
|
-
},
|
|
175
|
-
progress: {
|
|
176
|
-
completion: null,
|
|
177
|
-
filepos: null,
|
|
178
|
-
printTime: null,
|
|
179
|
-
printTimeLeft: null
|
|
180
|
-
},
|
|
181
|
-
state: "Operational"
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
const elapsedSeconds = (Date.now() - printStartTime) / 1000;
|
|
185
|
-
const remainingSeconds = Math.max(0, PRINT_DURATION - elapsedSeconds);
|
|
186
|
-
let state = "Printing";
|
|
187
|
-
if (isFinished) state = "Operational";
|
|
188
|
-
else if (isPaused) state = "Paused";
|
|
189
|
-
return {
|
|
190
|
-
job: {
|
|
191
|
-
file: {
|
|
192
|
-
name: fileName,
|
|
193
|
-
origin: "local",
|
|
194
|
-
size: 1024000,
|
|
195
|
-
date: printStartTime / 1000
|
|
196
|
-
},
|
|
197
|
-
estimatedPrintTime: PRINT_DURATION,
|
|
198
|
-
filament: {
|
|
199
|
-
tool0: {
|
|
200
|
-
length: 1000,
|
|
201
|
-
volume: 2.4
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
},
|
|
205
|
-
progress: {
|
|
206
|
-
completion: isFinished ? 100 : printProgress,
|
|
207
|
-
filepos: Math.floor((isFinished ? 100 : printProgress) / 100 * 1024000),
|
|
208
|
-
printTime: isFinished ? PRINT_DURATION : Math.floor(elapsedSeconds),
|
|
209
|
-
printTimeLeft: isFinished ? 0 : Math.floor(remainingSeconds)
|
|
210
|
-
},
|
|
211
|
-
state
|
|
212
|
-
};
|
|
213
|
-
}
|
|
214
|
-
const port = process.argv[2] ? Number.parseInt(process.argv[2]) : 1234;
|
|
215
|
-
const uploadsDir = _nodepath.default.join(__dirname, "uploads", `server-${port.toString()}`);
|
|
216
|
-
const WS_MESSAGE_INTERVAL = 1000;
|
|
217
|
-
if (!_nodefs.default.existsSync(uploadsDir)) {
|
|
218
|
-
_nodeconsole.log(`[PORT ${port}] Creating uploads folder ${uploadsDir}`);
|
|
219
|
-
_nodefs.default.mkdirSync(uploadsDir, {
|
|
220
|
-
recursive: true
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
cleanupUploads();
|
|
224
|
-
const upload = (0, _multer.default)({
|
|
225
|
-
dest: uploadsDir
|
|
226
|
-
});
|
|
227
|
-
const app = (0, _express.default)();
|
|
228
|
-
const server = _nodehttp.default.createServer(app);
|
|
229
|
-
const wss = new _ws.Server({
|
|
230
|
-
server
|
|
231
|
-
});
|
|
232
|
-
const clients = new Map();
|
|
233
|
-
const AuthSchema = _zod.z.object({
|
|
234
|
-
command: _zod.z.literal("auth"),
|
|
235
|
-
user: _zod.z.literal("admin"),
|
|
236
|
-
token: _zod.z.string().regex(/^[a-zA-Z0-9]{32}$/)
|
|
237
|
-
});
|
|
238
|
-
wss.on("connection", (ws)=>{
|
|
239
|
-
const clientId = Date.now().toString();
|
|
240
|
-
_nodeconsole.log(`[PORT ${port}] New WebSocket connection established`);
|
|
241
|
-
let authenticated = false;
|
|
242
|
-
let messageInterval = null;
|
|
243
|
-
ws.on("message", async (message)=>{
|
|
244
|
-
try {
|
|
245
|
-
const msgString = message.toString();
|
|
246
|
-
if (msgString.includes("throttle")) {
|
|
247
|
-
_nodeconsole.log(`Throttle message received ${msgString}`);
|
|
248
|
-
return;
|
|
249
|
-
}
|
|
250
|
-
const json = JSON.parse(msgString);
|
|
251
|
-
if (authenticated) {
|
|
252
|
-
_nodeconsole.log(`[PORT ${port}] Received message from authenticated client`);
|
|
253
|
-
return;
|
|
254
|
-
}
|
|
255
|
-
if (!json) {
|
|
256
|
-
_nodeconsole.log(`[PORT ${port}] Invalid message JSON format`);
|
|
257
|
-
ws.close();
|
|
258
|
-
return;
|
|
259
|
-
}
|
|
260
|
-
try {
|
|
261
|
-
const parts = json.auth.split(":");
|
|
262
|
-
AuthSchema.parse({
|
|
263
|
-
command: "auth",
|
|
264
|
-
user: parts[0],
|
|
265
|
-
token: parts[1]
|
|
266
|
-
});
|
|
267
|
-
_nodeconsole.log(`[PORT ${port}] Authentication successful for admin`);
|
|
268
|
-
authenticated = true;
|
|
269
|
-
clients.set(clientId, {
|
|
270
|
-
ws,
|
|
271
|
-
authenticated
|
|
272
|
-
});
|
|
273
|
-
setTimeout(async ()=>{
|
|
274
|
-
try {
|
|
275
|
-
ws.send(JSON.stringify(getCurrentMessage()));
|
|
276
|
-
} catch (fileError) {
|
|
277
|
-
_nodeconsole.error(`[PORT ${port}] Error reading message file:`, fileError);
|
|
278
|
-
ws.send(JSON.stringify({
|
|
279
|
-
error: "Failed to read message content"
|
|
280
|
-
}));
|
|
281
|
-
}
|
|
282
|
-
}, 500);
|
|
283
|
-
messageInterval = setupMessageInterval(ws, clientId, WS_MESSAGE_INTERVAL);
|
|
284
|
-
} catch (validationError) {
|
|
285
|
-
_nodeconsole.log(`[PORT ${port}] Authentication failed: Invalid token format ${JSON.stringify(json)} ${validationError}`);
|
|
286
|
-
ws.close();
|
|
287
|
-
}
|
|
288
|
-
} catch (error) {
|
|
289
|
-
_nodeconsole.error(`[PORT ${port}] Error processing message:`, error);
|
|
290
|
-
ws.close();
|
|
291
|
-
}
|
|
292
|
-
});
|
|
293
|
-
ws.on("close", ()=>{
|
|
294
|
-
_nodeconsole.log(`[PORT ${port}] WebSocket connection closed ${clientId}`);
|
|
295
|
-
if (messageInterval) {
|
|
296
|
-
clearInterval(messageInterval);
|
|
297
|
-
messageInterval = null;
|
|
298
|
-
}
|
|
299
|
-
clients.delete(clientId);
|
|
300
|
-
});
|
|
301
|
-
const setupMessageInterval = (ws, clientId, baseInterval)=>{
|
|
302
|
-
if (messageInterval) {
|
|
303
|
-
clearInterval(messageInterval);
|
|
304
|
-
messageInterval = null;
|
|
305
|
-
}
|
|
306
|
-
const getRandomizedInterval = (baseMs)=>{
|
|
307
|
-
const variationFactor = 0.85 + Math.random() * 0.3;
|
|
308
|
-
return Math.floor(baseMs * variationFactor);
|
|
309
|
-
};
|
|
310
|
-
const sendPeriodicMessage = ()=>{
|
|
311
|
-
try {
|
|
312
|
-
if (ws.readyState === ws.OPEN) {
|
|
313
|
-
ws.send(JSON.stringify(getCurrentMessage()));
|
|
314
|
-
_nodeconsole.log(`[PORT ${port}] Periodic message sent to client (ID: ${clientId})`);
|
|
315
|
-
messageInterval = setTimeout(sendPeriodicMessage, getRandomizedInterval(baseInterval));
|
|
316
|
-
} else {
|
|
317
|
-
_nodeconsole.log(`[PORT ${port}] Stopped periodic messages for client (ID: ${clientId})`);
|
|
318
|
-
messageInterval = null;
|
|
319
|
-
}
|
|
320
|
-
} catch (error) {
|
|
321
|
-
_nodeconsole.error(`[PORT ${port}] Error sending periodic message:`, error);
|
|
322
|
-
messageInterval = null;
|
|
323
|
-
}
|
|
324
|
-
};
|
|
325
|
-
messageInterval = setTimeout(sendPeriodicMessage, getRandomizedInterval(baseInterval));
|
|
326
|
-
return messageInterval;
|
|
327
|
-
};
|
|
328
|
-
});
|
|
329
|
-
app.get("/api/version", async (req, res)=>{
|
|
330
|
-
res.send({
|
|
331
|
-
server: "1",
|
|
332
|
-
api: "2",
|
|
333
|
-
text: "3"
|
|
334
|
-
});
|
|
335
|
-
});
|
|
336
|
-
app.get("/api/currentuser", async (req, res)=>{
|
|
337
|
-
res.send({
|
|
338
|
-
name: "admin",
|
|
339
|
-
permissions: [],
|
|
340
|
-
groups: []
|
|
341
|
-
});
|
|
342
|
-
});
|
|
343
|
-
app.get("/api/printer", async (req, res)=>{
|
|
344
|
-
_nodeconsole.log(`[PORT ${port}] ${req.method.toUpperCase()} ${req.url} request`);
|
|
345
|
-
res.status(200).json(_apimessages.printerHistorySuccessResponse);
|
|
346
|
-
});
|
|
347
|
-
app.get("/api/connection", async (req, res)=>{
|
|
348
|
-
_nodeconsole.log(`[PORT ${port}] ${req.method.toUpperCase()} ${req.url} request`);
|
|
349
|
-
res.status(200).json(_apimessages.connectionSuccessResponse);
|
|
350
|
-
});
|
|
351
|
-
app.get("/api/job", async (req, res)=>{
|
|
352
|
-
_nodeconsole.log(`[PORT ${port}] ${req.method.toUpperCase()} ${req.url} request`);
|
|
353
|
-
res.status(200).json(getJobResponse());
|
|
354
|
-
});
|
|
355
|
-
app.post("/api/job", _express.default.json(), async (req, res)=>{
|
|
356
|
-
const { command, action } = req.body;
|
|
357
|
-
_nodeconsole.log(`[PORT ${port}] POST /api/job - command: ${command}, action: ${action}`);
|
|
358
|
-
if (command === "cancel") {
|
|
359
|
-
if (isPrinting) {
|
|
360
|
-
isPrinting = false;
|
|
361
|
-
isPaused = false;
|
|
362
|
-
printProgress = 0;
|
|
363
|
-
currentPrintFile = "";
|
|
364
|
-
_nodeconsole.log(`[PORT ${port}] Print cancelled`);
|
|
365
|
-
}
|
|
366
|
-
return res.status(204).send();
|
|
367
|
-
}
|
|
368
|
-
if (command === "pause") {
|
|
369
|
-
if (action === "pause" && isPrinting && !isPaused) {
|
|
370
|
-
isPaused = true;
|
|
371
|
-
_nodeconsole.log(`[PORT ${port}] Print paused at ${Math.round(printProgress)}%`);
|
|
372
|
-
} else if (action === "resume" && isPrinting && isPaused) {
|
|
373
|
-
isPaused = false;
|
|
374
|
-
const pausedProgress = printProgress;
|
|
375
|
-
printStartTime = Date.now() - pausedProgress / 100 * PRINT_DURATION * 1000;
|
|
376
|
-
_nodeconsole.log(`[PORT ${port}] Print resumed from ${Math.round(pausedProgress)}%`);
|
|
377
|
-
}
|
|
378
|
-
return res.status(204).send();
|
|
379
|
-
}
|
|
380
|
-
res.status(400).json({
|
|
381
|
-
error: "Unknown command"
|
|
382
|
-
});
|
|
383
|
-
});
|
|
384
|
-
app.get("/api/files/local", async (req, res)=>{
|
|
385
|
-
_nodeconsole.log(`[PORT ${port}] ${req.method.toUpperCase()} ${req.url} request`);
|
|
386
|
-
res.status(200).json(_apimessages.filesSuccessResponse);
|
|
387
|
-
});
|
|
388
|
-
app.post("/api/login", async (req, res)=>{
|
|
389
|
-
res.send({
|
|
390
|
-
_is_external_client: true,
|
|
391
|
-
_login_mechanism: "apikey",
|
|
392
|
-
session: "123123abc123123abc123123abc123ab"
|
|
393
|
-
});
|
|
394
|
-
});
|
|
395
|
-
app.post("/api/files/local/:path(*)", _express.default.json(), (req, res)=>{
|
|
396
|
-
const filePath = req.params["path(*)"];
|
|
397
|
-
const { command, print } = req.body;
|
|
398
|
-
_nodeconsole.log(`[PORT ${port}] POST /api/files/local/${filePath} - command: ${command}, print: ${print}`);
|
|
399
|
-
if (command === "select") {
|
|
400
|
-
if (!filePath.endsWith(".gcode") && !filePath.endsWith(".bgcode") && !filePath.endsWith(".3mf")) {
|
|
401
|
-
_nodeconsole.log(`[PORT ${port}] Rejected - invalid file extension: ${filePath}`);
|
|
402
|
-
return res.status(400).json({
|
|
403
|
-
error: "Invalid file extension. Only .gcode, .bgcode, and .3mf files are supported"
|
|
404
|
-
});
|
|
405
|
-
}
|
|
406
|
-
currentPrintFile = filePath;
|
|
407
|
-
_nodeconsole.log(`[PORT ${port}] File selected: ${filePath}`);
|
|
408
|
-
if (print === true) {
|
|
409
|
-
isPrinting = true;
|
|
410
|
-
isPaused = false;
|
|
411
|
-
printStartTime = Date.now();
|
|
412
|
-
printProgress = 0;
|
|
413
|
-
_nodeconsole.log(`[PORT ${port}] Starting print: ${filePath} (${PRINT_DURATION} second duration)`);
|
|
414
|
-
}
|
|
415
|
-
return res.status(204).send();
|
|
416
|
-
}
|
|
417
|
-
if (command === "move") {
|
|
418
|
-
_nodeconsole.log(`[PORT ${port}] Move command received for: ${filePath}`);
|
|
419
|
-
return res.status(204).send();
|
|
420
|
-
}
|
|
421
|
-
res.status(400).json({
|
|
422
|
-
error: "Unknown command"
|
|
423
|
-
});
|
|
424
|
-
});
|
|
425
|
-
app.post("/api/files/local", upload.single("file"), (req, res)=>{
|
|
426
|
-
const { print } = req.body;
|
|
427
|
-
const file = req.file;
|
|
428
|
-
if (!file) {
|
|
429
|
-
return res.status(400).json({
|
|
430
|
-
error: "Missing file"
|
|
431
|
-
});
|
|
432
|
-
}
|
|
433
|
-
_nodeconsole.log(`[PORT ${port}] Received file:`, file.originalname);
|
|
434
|
-
_nodeconsole.log(`[PORT ${port}] File size:`, file.size);
|
|
435
|
-
_nodeconsole.log(`[PORT ${port}] MIME type:`, file.mimetype);
|
|
436
|
-
_nodeconsole.log(`[PORT ${port}] print:`, print, `\n-----`);
|
|
437
|
-
if (print === "true") {
|
|
438
|
-
currentPrintFile = file.originalname;
|
|
439
|
-
isPrinting = true;
|
|
440
|
-
isPaused = false;
|
|
441
|
-
printStartTime = Date.now();
|
|
442
|
-
printProgress = 0;
|
|
443
|
-
_nodeconsole.log(`[PORT ${port}] Starting print: ${file.originalname} (${PRINT_DURATION} second duration)`);
|
|
444
|
-
}
|
|
445
|
-
res.json({
|
|
446
|
-
done: true,
|
|
447
|
-
files: {
|
|
448
|
-
local: {
|
|
449
|
-
name: file.originalname,
|
|
450
|
-
origin: "local",
|
|
451
|
-
refs: {
|
|
452
|
-
resource: `/api/files/local/${file.originalname}`
|
|
453
|
-
}
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
});
|
|
457
|
-
});
|
|
458
|
-
app.use((req, res)=>{
|
|
459
|
-
_nodeconsole.log(`[PORT ${port}] ${req.method.toUpperCase()} ${req.url} Not found`);
|
|
460
|
-
res.status(404).json({
|
|
461
|
-
error: "Not Found"
|
|
462
|
-
});
|
|
463
|
-
});
|
|
464
|
-
server.listen(port, ()=>{
|
|
465
|
-
_nodeconsole.log(`[PORT ${port}] Server is running on http://localhost:${port}`);
|
|
466
|
-
_nodeconsole.log(`[PORT ${port}] WebSocket server is available on ws://localhost:${port}`);
|
|
467
|
-
});
|
|
468
|
-
process.on("SIGINT", ()=>{
|
|
469
|
-
_nodeconsole.log("\n[PORT ${port}] Received SIGINT signal (Ctrl+C). Shutting down gracefully...");
|
|
470
|
-
cleanupUploads();
|
|
471
|
-
server.close(()=>{
|
|
472
|
-
_nodeconsole.log("[PORT ${port}] Server closed");
|
|
473
|
-
process.exit(0);
|
|
474
|
-
});
|
|
475
|
-
});
|
|
476
|
-
process.on("SIGTERM", ()=>{
|
|
477
|
-
_nodeconsole.log("\n[PORT ${port}] Received SIGTERM signal. Shutting down gracefully...");
|
|
478
|
-
cleanupUploads();
|
|
479
|
-
server.close(()=>{
|
|
480
|
-
_nodeconsole.log("[PORT ${port}] Server closed");
|
|
481
|
-
process.exit(0);
|
|
482
|
-
});
|
|
483
|
-
});
|
|
484
|
-
function cleanupUploads() {
|
|
485
|
-
try {
|
|
486
|
-
_nodeconsole.log(`[PORT ${port}] Cleaning up uploads folder...`);
|
|
487
|
-
const files = _nodefs.default.readdirSync(uploadsDir);
|
|
488
|
-
for (const file of files){
|
|
489
|
-
const filePath = _nodepath.default.join(uploadsDir, file);
|
|
490
|
-
_nodefs.default.unlinkSync(filePath);
|
|
491
|
-
_nodeconsole.log(`[PORT ${port}] Deleted: ${filePath}`);
|
|
492
|
-
}
|
|
493
|
-
_nodeconsole.log(`[PORT ${port}] Uploads folder cleanup complete`);
|
|
494
|
-
} catch (error) {
|
|
495
|
-
_nodeconsole.error(`[PORT ${port}] Error cleaning up uploads folder:`, error);
|
|
496
|
-
}
|
|
497
|
-
}
|
|
498
|
-
|
|
499
|
-
//# sourceMappingURL=mock-octoprint.server.js.map
|