@fdm-monster/server 2.0.0 → 2.0.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.
- package/.env.template +2 -0
- package/.yarn/install-state.gz +0 -0
- package/README.md +22 -3
- package/RELEASE_NOTES.MD +38 -0
- package/dist/constants/authorization.constants.js +12 -3
- package/dist/constants/authorization.constants.js.map +1 -1
- package/dist/constants/server-settings.constants.js +4 -2
- package/dist/constants/server-settings.constants.js.map +1 -1
- package/dist/container.js +2 -0
- package/dist/container.js.map +1 -1
- package/dist/container.tokens.js +1 -0
- package/dist/container.tokens.js.map +1 -1
- package/dist/controllers/file-storage.controller.js +90 -19
- package/dist/controllers/file-storage.controller.js.map +1 -1
- package/dist/controllers/printer-maintenance-log.controller.js +174 -0
- package/dist/controllers/printer-maintenance-log.controller.js.map +1 -0
- package/dist/controllers/settings.controller.js +70 -2
- package/dist/controllers/settings.controller.js.map +1 -1
- package/dist/controllers/slicer-compat.controller.js +4 -0
- package/dist/controllers/slicer-compat.controller.js.map +1 -1
- package/dist/data-source.js +8 -8
- package/dist/data-source.js.map +1 -1
- package/dist/entities/index.js +4 -0
- package/dist/entities/index.js.map +1 -1
- package/dist/entities/print-job.entity.js +5 -1
- package/dist/entities/print-job.entity.js.map +1 -1
- package/dist/entities/printer-maintenance-log.entity.js +142 -0
- package/dist/entities/printer-maintenance-log.entity.js.map +1 -0
- package/dist/entities/printer.entity.js +2 -1
- package/dist/entities/printer.entity.js.map +1 -1
- package/dist/entities/settings.entity.js.map +1 -1
- package/dist/handlers/logging/file-logging.transport.js +2 -2
- package/dist/handlers/logging/file-logging.transport.js.map +1 -1
- package/dist/index.js +11 -5
- package/dist/index.js.map +1 -1
- package/dist/middleware/slicer-api-key.middleware.js +29 -0
- package/dist/middleware/slicer-api-key.middleware.js.map +1 -0
- package/dist/migrations/1767909428129-AddPrinterMaintenanceLog.js +52 -0
- package/dist/migrations/1767909428129-AddPrinterMaintenanceLog.js.map +1 -0
- package/dist/server.constants.js +13 -9
- package/dist/server.constants.js.map +1 -1
- package/dist/server.core.js +7 -4
- package/dist/server.core.js.map +1 -1
- package/dist/server.env.js +13 -32
- package/dist/server.env.js.map +1 -1
- package/dist/server.host.js +1 -1
- package/dist/server.host.js.map +1 -1
- package/dist/services/bambu/bambu-ftp.adapter.js +1 -1
- package/dist/services/bambu/bambu-ftp.adapter.js.map +1 -1
- package/dist/services/core/client-bundle.service.js +10 -11
- package/dist/services/core/client-bundle.service.js.map +1 -1
- package/dist/services/core/config.service.js +3 -5
- package/dist/services/core/config.service.js.map +1 -1
- package/dist/services/core/logs-manager.service.js +9 -10
- package/dist/services/core/logs-manager.service.js.map +1 -1
- package/dist/services/core/multer.service.js +2 -2
- package/dist/services/core/multer.service.js.map +1 -1
- package/dist/services/core/yaml.service.js +23 -3
- package/dist/services/core/yaml.service.js.map +1 -1
- package/dist/services/file-storage.service.js +4 -3
- package/dist/services/file-storage.service.js.map +1 -1
- package/dist/services/interfaces/printer-maintenance-log.dto.js +6 -0
- package/dist/services/interfaces/printer-maintenance-log.dto.js.map +1 -0
- package/dist/services/interfaces/printer.dto.js.map +1 -1
- package/dist/services/orm/printer-maintenance-log.service.js +151 -0
- package/dist/services/orm/printer-maintenance-log.service.js.map +1 -0
- package/dist/services/orm/printer.service.js +8 -2
- package/dist/services/orm/printer.service.js.map +1 -1
- package/dist/services/orm/settings.service.js +9 -2
- package/dist/services/orm/settings.service.js.map +1 -1
- package/dist/services/typeorm/typeorm.service.js +5 -5
- package/dist/services/typeorm/typeorm.service.js.map +1 -1
- package/dist/services/validators/printer-maintenance-log.validation.js +41 -0
- package/dist/services/validators/printer-maintenance-log.validation.js.map +1 -0
- package/dist/services/validators/printer-service.validation.js +2 -3
- package/dist/services/validators/printer-service.validation.js.map +1 -1
- package/dist/services/validators/settings-service.validation.js +23 -4
- package/dist/services/validators/settings-service.validation.js.map +1 -1
- package/dist/services/validators/yaml-service.validation.js +2 -0
- package/dist/services/validators/yaml-service.validation.js.map +1 -1
- package/dist/shared/runtime-settings.migration.js +10 -0
- package/dist/shared/runtime-settings.migration.js.map +1 -1
- package/dist/state/settings.store.js +38 -5
- package/dist/state/settings.store.js.map +1 -1
- package/dist/utils/env.utils.js +5 -4
- package/dist/utils/env.utils.js.map +1 -1
- package/dist/utils/fs.utils.js +37 -11
- package/dist/utils/fs.utils.js.map +1 -1
- package/dist/utils/swagger/swagger.js +1 -1
- package/dist/utils/swagger/swagger.js.map +1 -1
- package/install.sh +559 -0
- package/package.json +6 -6
|
@@ -48,8 +48,8 @@ class SettingsService extends (0, _baseservice.BaseService)(_entities.Settings,
|
|
|
48
48
|
await this.update(entity.id, entity);
|
|
49
49
|
return entity;
|
|
50
50
|
}
|
|
51
|
-
async
|
|
52
|
-
const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.
|
|
51
|
+
async updateCoreCredentialSettings(update) {
|
|
52
|
+
const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.credentialCoreSettingUpdateSchema);
|
|
53
53
|
const entity = await this.getOrCreate();
|
|
54
54
|
entity[_serversettingsconstants.credentialSettingsKey].refreshTokenExpiry = validatedInput.refreshTokenExpiry;
|
|
55
55
|
entity[_serversettingsconstants.credentialSettingsKey].refreshTokenAttempts = validatedInput.refreshTokenAttempts;
|
|
@@ -57,6 +57,13 @@ class SettingsService extends (0, _baseservice.BaseService)(_entities.Settings,
|
|
|
57
57
|
await this.update(entity.id, entity);
|
|
58
58
|
return entity;
|
|
59
59
|
}
|
|
60
|
+
async updateSlicerApiKey(update) {
|
|
61
|
+
const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.slicerApiKeyUpdateSchema);
|
|
62
|
+
const entity = await this.getOrCreate();
|
|
63
|
+
entity[_serversettingsconstants.credentialSettingsKey].slicerApiKey = validatedInput.slicerApiKey;
|
|
64
|
+
await this.update(entity.id, entity);
|
|
65
|
+
return entity;
|
|
66
|
+
}
|
|
60
67
|
async updateFrontendSettings(update) {
|
|
61
68
|
const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.frontendSettingsUpdateSchema);
|
|
62
69
|
const entity = await this.getOrCreate();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/orm/settings.service.ts"],"names":["SettingsService","BaseService","Settings","SettingsDto","toDto","entity","serverSettingsKey","frontendSettingKey","wizardSettingKey","timeoutSettingKey","getOrCreate","settings","getOptional","migrateSettingsRuntime","settingsId","id","update","create","getDefaultSettings","updateServerSettings","validatedInput","validateInput","serverSettingsUpdateSchema","updateJwtSecretCredentialSetting","jwtSecretCredentialSettingUpdateSchema","credentialSettingsKey","jwtSecret","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/orm/settings.service.ts"],"names":["SettingsService","BaseService","Settings","SettingsDto","toDto","entity","serverSettingsKey","frontendSettingKey","wizardSettingKey","timeoutSettingKey","getOrCreate","settings","getOptional","migrateSettingsRuntime","settingsId","id","update","create","getDefaultSettings","updateServerSettings","validatedInput","validateInput","serverSettingsUpdateSchema","updateJwtSecretCredentialSetting","jwtSecretCredentialSettingUpdateSchema","credentialSettingsKey","jwtSecret","updateCoreCredentialSettings","credentialCoreSettingUpdateSchema","refreshTokenExpiry","refreshTokenAttempts","jwtExpiresIn","updateSlicerApiKey","slicerApiKeyUpdateSchema","slicerApiKey","updateFrontendSettings","frontendSettingsUpdateSchema","updateTimeoutSettings","timeoutSettingsUpdateSchema","updateWizardSettings","wizardUpdateSchema","settingsList","repository","find","take","length"],"mappings":"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"}
|
|
@@ -28,14 +28,14 @@ class TypeormService {
|
|
|
28
28
|
}
|
|
29
29
|
async createConnection() {
|
|
30
30
|
const dataSource = this.loadDataSources();
|
|
31
|
-
if (
|
|
31
|
+
if (dataSource.isInitialized) {
|
|
32
|
+
this.logger.log("Typeorm connection already initialized, skipping");
|
|
33
|
+
} else {
|
|
32
34
|
const connection = await dataSource.initialize();
|
|
33
|
-
await connection.runMigrations({
|
|
35
|
+
const migrations = await connection.runMigrations({
|
|
34
36
|
transaction: "all"
|
|
35
37
|
});
|
|
36
|
-
this.logger.log(
|
|
37
|
-
} else {
|
|
38
|
-
this.logger.log("Typeorm connection already initialized, skipping");
|
|
38
|
+
this.logger.log(`Typeorm connection initialized - ${migrations.length} migrations executed`);
|
|
39
39
|
}
|
|
40
40
|
this.loaded = true;
|
|
41
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/typeorm/typeorm.service.ts"],"names":["TypeormService","loaded","dataSource","logger","LoggerService","name","hasConnected","loadDataSources","isInitialized","getDataSource","createConnection","connection","initialize","runMigrations","transaction","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/typeorm/typeorm.service.ts"],"names":["TypeormService","loaded","dataSource","logger","LoggerService","name","hasConnected","loadDataSources","isInitialized","getDataSource","createConnection","log","connection","initialize","migrations","runMigrations","transaction","length","AppDataSource"],"mappings":";;;;+BAIaA;;;eAAAA;;;wBAHiB;4BACA;AAEvB,MAAMA;IACXC,SAAS,MAAM;IACPC,WAAwB;IACfC,SAAS,IAAIC,qBAAa,CAACJ,eAAeK,IAAI,EAAE;IAE1DC,eAAe;QACpB,IAAI,CAAC,IAAI,CAACJ,UAAU,EAAE;YACpB,IAAI,CAACK,eAAe;QACtB;QAEA,OAAO,IAAI,CAACL,UAAU,CAAEM,aAAa,GAAG,IAAI;IAC9C;IAEOC,gBAAgB;QACrB,IAAI,CAAC,IAAI,CAACP,UAAU,EAAE;YACpB,IAAI,CAACK,eAAe;QACtB;QAEA,OAAO,IAAI,CAACL,UAAU;IACxB;IAEA,MAAaQ,mBAAmB;QAC9B,MAAMR,aAAa,IAAI,CAACK,eAAe;QACvC,IAAIL,WAAWM,aAAa,EAAE;YAC5B,IAAI,CAACL,MAAM,CAACQ,GAAG,CAAC;QAClB,OAAO;YACL,MAAMC,aAAa,MAAMV,WAAWW,UAAU;YAC9C,MAAMC,aAAa,MAAMF,WAAWG,aAAa,CAAC;gBAAEC,aAAa;YAAM;YACvE,IAAI,CAACb,MAAM,CAACQ,GAAG,CAAC,CAAC,iCAAiC,EAAEG,WAAWG,MAAM,CAAC,oBAAoB,CAAC;QAC7F;QACA,IAAI,CAAChB,MAAM,GAAG;IAChB;IAEQM,kBAAkB;QACxB,IAAI,CAACL,UAAU,GAAGgB,yBAAa;QAC/B,OAAO,IAAI,CAAChB,UAAU;IACxB;AACF"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get completeMaintenanceLogSchema () {
|
|
13
|
+
return completeMaintenanceLogSchema;
|
|
14
|
+
},
|
|
15
|
+
get createMaintenanceLogSchema () {
|
|
16
|
+
return createMaintenanceLogSchema;
|
|
17
|
+
},
|
|
18
|
+
get getMaintenanceLogsQuerySchema () {
|
|
19
|
+
return getMaintenanceLogsQuerySchema;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
const _zod = require("zod");
|
|
23
|
+
const createMaintenanceLogSchema = _zod.z.object({
|
|
24
|
+
printerId: _zod.z.number().int().positive(),
|
|
25
|
+
metadata: _zod.z.object({
|
|
26
|
+
partsInvolved: _zod.z.array(_zod.z.string()).optional(),
|
|
27
|
+
cause: _zod.z.string().optional(),
|
|
28
|
+
notes: _zod.z.string().optional()
|
|
29
|
+
})
|
|
30
|
+
});
|
|
31
|
+
const completeMaintenanceLogSchema = _zod.z.object({
|
|
32
|
+
completionNotes: _zod.z.string().optional()
|
|
33
|
+
});
|
|
34
|
+
const getMaintenanceLogsQuerySchema = _zod.z.object({
|
|
35
|
+
printerId: _zod.z.coerce.number().int().positive().optional(),
|
|
36
|
+
completed: _zod.z.coerce.boolean().optional(),
|
|
37
|
+
page: _zod.z.coerce.number().int().positive().default(1),
|
|
38
|
+
pageSize: _zod.z.coerce.number().int().positive().max(100).default(20)
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=printer-maintenance-log.validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/validators/printer-maintenance-log.validation.ts"],"names":["completeMaintenanceLogSchema","createMaintenanceLogSchema","getMaintenanceLogsQuerySchema","z","object","printerId","number","int","positive","metadata","partsInvolved","array","string","optional","cause","notes","completionNotes","coerce","completed","boolean","page","default","pageSize","max"],"mappings":";;;;;;;;;;;QAWaA;eAAAA;;QATAC;eAAAA;;QAaAC;eAAAA;;;qBAfK;AAEX,MAAMD,6BAA6BE,MAAC,CAACC,MAAM,CAAC;IACjDC,WAAWF,MAAC,CAACG,MAAM,GAAGC,GAAG,GAAGC,QAAQ;IACpCC,UAAUN,MAAC,CAACC,MAAM,CAAC;QACjBM,eAAeP,MAAC,CAACQ,KAAK,CAACR,MAAC,CAACS,MAAM,IAAIC,QAAQ;QAC3CC,OAAOX,MAAC,CAACS,MAAM,GAAGC,QAAQ;QAC1BE,OAAOZ,MAAC,CAACS,MAAM,GAAGC,QAAQ;IAC5B;AACF;AAEO,MAAMb,+BAA+BG,MAAC,CAACC,MAAM,CAAC;IACnDY,iBAAiBb,MAAC,CAACS,MAAM,GAAGC,QAAQ;AACtC;AAEO,MAAMX,gCAAgCC,MAAC,CAACC,MAAM,CAAC;IACpDC,WAAWF,MAAC,CAACc,MAAM,CAACX,MAAM,GAAGC,GAAG,GAAGC,QAAQ,GAAGK,QAAQ;IACtDK,WAAWf,MAAC,CAACc,MAAM,CAACE,OAAO,GAAGN,QAAQ;IACtCO,MAAMjB,MAAC,CAACc,MAAM,CAACX,MAAM,GAAGC,GAAG,GAAGC,QAAQ,GAAGa,OAAO,CAAC;IACjDC,UAAUnB,MAAC,CAACc,MAAM,CAACX,MAAM,GAAGC,GAAG,GAAGC,QAAQ,GAAGe,GAAG,CAAC,KAAKF,OAAO,CAAC;AAChE"}
|
|
@@ -58,7 +58,7 @@ const printerNameValidator = _zod.z.string();
|
|
|
58
58
|
const printerUsernameValidator = _zod.z.string();
|
|
59
59
|
const printerPasswordValidator = _zod.z.string();
|
|
60
60
|
const printerEnabledValidator = _zod.z.boolean();
|
|
61
|
-
const printerDisabledReasonValidator = _zod.z.string().
|
|
61
|
+
const printerDisabledReasonValidator = _zod.z.string().nullable();
|
|
62
62
|
const printerUrlValidator = _zod.z.string().url();
|
|
63
63
|
const printerTypeValidator = _zod.z.nativeEnum(_printerapiinterface.PrinterTypesEnum);
|
|
64
64
|
const printerDateAddedValidator = _zod.z.number().optional();
|
|
@@ -126,8 +126,7 @@ const updatePrinterEnabledSchema = _zod.z.object({
|
|
|
126
126
|
enabled: printerEnabledValidator
|
|
127
127
|
});
|
|
128
128
|
const updatePrinterDisabledReasonSchema = _zod.z.object({
|
|
129
|
-
disabledReason: printerDisabledReasonValidator
|
|
130
|
-
enabled: printerEnabledValidator.optional()
|
|
129
|
+
disabledReason: printerDisabledReasonValidator
|
|
131
130
|
});
|
|
132
131
|
|
|
133
132
|
//# sourceMappingURL=printer-service.validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/validators/printer-service.validation.ts"],"names":["createPrinterSchema","printerApiKeyValidator","printerDateAddedValidator","printerDisabledReasonValidator","printerEnabledValidator","printerNameValidator","printerPasswordValidator","printerTypeValidator","printerUrlValidator","printerUsernameValidator","refineApiKeyValidator","updatePrinterDisabledReasonSchema","updatePrinterEnabledSchema","octoPrintApiKeySchema","z","string","min","apiKeyLengthMinDefault","max","apiKeyLengthMaxDefault","regex","optional","boolean","url","nativeEnum","PrinterTypesEnum","number","prusaLinkAuthSchema","object","username","password","basePrinterSchema","dateAdded","printerURL","printerType","apiKey","enabled","name","strip","apiKeyPrinterTypeSchema","data","ctx","OctoprintType","result","safeParse","success","error","issues","forEach","issue","addIssue","path","PrusaLinkType","BambuType","superRefine","disabledReason"],"mappings":";;;;;;;;;;;QAkFaA;eAAAA;;QAxEAC;eAAAA;;QAQAC;eAAAA;;QAHAC;eAAAA;;QADAC;eAAAA;;QAHAC;eAAAA;;QAEAC;eAAAA;;QAIAC;eAAAA;;QADAC;eAAAA;;QAJAC;eAAAA;;QAmCAC;eAAAA;;QAyCAC;eAAAA;;QAJAC;eAAAA;;;kCApFkD;qCACW;qBACzC;AAEjC,MAAMC,wBAAwBC,MAAC,CAC5BC,MAAM,GACNC,GAAG,CAACC,wCAAsB,EAC1BC,GAAG,CAACC,wCAAsB,EAC1BC,KAAK,CAAC,oBAAoB;AAEtB,MAAMnB,yBAAyBa,MAAC,CAACC,MAAM,GAAGM,QAAQ;AAClD,MAAMhB,uBAAuBS,MAAC,CAACC,MAAM;AACrC,MAAMN,2BAA2BK,MAAC,CAACC,MAAM;AACzC,MAAMT,2BAA2BQ,MAAC,CAACC,MAAM;AACzC,MAAMX,0BAA0BU,MAAC,CAACQ,OAAO;AACzC,MAAMnB,iCAAiCW,MAAC,CAACC,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../../src/services/validators/printer-service.validation.ts"],"names":["createPrinterSchema","printerApiKeyValidator","printerDateAddedValidator","printerDisabledReasonValidator","printerEnabledValidator","printerNameValidator","printerPasswordValidator","printerTypeValidator","printerUrlValidator","printerUsernameValidator","refineApiKeyValidator","updatePrinterDisabledReasonSchema","updatePrinterEnabledSchema","octoPrintApiKeySchema","z","string","min","apiKeyLengthMinDefault","max","apiKeyLengthMaxDefault","regex","optional","boolean","nullable","url","nativeEnum","PrinterTypesEnum","number","prusaLinkAuthSchema","object","username","password","basePrinterSchema","dateAdded","printerURL","printerType","apiKey","enabled","name","strip","apiKeyPrinterTypeSchema","data","ctx","OctoprintType","result","safeParse","success","error","issues","forEach","issue","addIssue","path","PrusaLinkType","BambuType","superRefine","disabledReason"],"mappings":"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"}
|
|
@@ -12,8 +12,11 @@ _export(exports, {
|
|
|
12
12
|
get bambuSupportSchema () {
|
|
13
13
|
return bambuSupportSchema;
|
|
14
14
|
},
|
|
15
|
-
get
|
|
16
|
-
return
|
|
15
|
+
get credentialCoreSettingUpdateSchema () {
|
|
16
|
+
return credentialCoreSettingUpdateSchema;
|
|
17
|
+
},
|
|
18
|
+
get credentialSettingSchema () {
|
|
19
|
+
return credentialSettingSchema;
|
|
17
20
|
},
|
|
18
21
|
get frontendSettingsUpdateSchema () {
|
|
19
22
|
return frontendSettingsUpdateSchema;
|
|
@@ -33,6 +36,9 @@ _export(exports, {
|
|
|
33
36
|
get serverSettingsUpdateSchema () {
|
|
34
37
|
return serverSettingsUpdateSchema;
|
|
35
38
|
},
|
|
39
|
+
get slicerApiKeyUpdateSchema () {
|
|
40
|
+
return slicerApiKeyUpdateSchema;
|
|
41
|
+
},
|
|
36
42
|
get timeoutSettingsUpdateSchema () {
|
|
37
43
|
return timeoutSettingsUpdateSchema;
|
|
38
44
|
},
|
|
@@ -58,16 +64,29 @@ const frontendSettingsUpdateSchema = _zod.z.object({
|
|
|
58
64
|
gridCols: _zod.z.number().int().min(1),
|
|
59
65
|
gridRows: _zod.z.number().int().min(1),
|
|
60
66
|
largeTiles: _zod.z.boolean(),
|
|
61
|
-
tilePreferCancelOverQuickStop: _zod.z.boolean()
|
|
67
|
+
tilePreferCancelOverQuickStop: _zod.z.boolean(),
|
|
68
|
+
gridNameSortDirection: _zod.z.enum([
|
|
69
|
+
'horizontal',
|
|
70
|
+
'vertical'
|
|
71
|
+
]).optional()
|
|
62
72
|
});
|
|
63
73
|
const jwtSecretCredentialSettingUpdateSchema = _zod.z.object({
|
|
64
74
|
jwtSecret: _zod.z.string().min(10)
|
|
65
75
|
});
|
|
66
|
-
const
|
|
76
|
+
const credentialSettingSchema = _zod.z.object({
|
|
77
|
+
jwtExpiresIn: _zod.z.number().int().min((0, _envutils.isProductionEnvironment)() ? 120 : 0).max((0, _envutils.isProductionEnvironment)() ? 7200 : Infinity),
|
|
78
|
+
refreshTokenAttempts: _zod.z.number().int().min(-1),
|
|
79
|
+
refreshTokenExpiry: _zod.z.number().int().min((0, _envutils.isProductionEnvironment)() ? 240 : 0),
|
|
80
|
+
slicerApiKey: _zod.z.string().nullable()
|
|
81
|
+
});
|
|
82
|
+
const credentialCoreSettingUpdateSchema = _zod.z.object({
|
|
67
83
|
jwtExpiresIn: _zod.z.number().int().min((0, _envutils.isProductionEnvironment)() ? 120 : 0).max((0, _envutils.isProductionEnvironment)() ? 7200 : Infinity),
|
|
68
84
|
refreshTokenAttempts: _zod.z.number().int().min(-1),
|
|
69
85
|
refreshTokenExpiry: _zod.z.number().int().min((0, _envutils.isProductionEnvironment)() ? 240 : 0)
|
|
70
86
|
});
|
|
87
|
+
const slicerApiKeyUpdateSchema = _zod.z.object({
|
|
88
|
+
slicerApiKey: _zod.z.string().nullable()
|
|
89
|
+
});
|
|
71
90
|
const wizardUpdateSchema = _zod.z.object({
|
|
72
91
|
wizardCompleted: _zod.z.boolean(),
|
|
73
92
|
wizardCompletedAt: _zod.z.date().nullable(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/validators/settings-service.validation.ts"],"names":["bambuSupportSchema","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/validators/settings-service.validation.ts"],"names":["bambuSupportSchema","credentialCoreSettingUpdateSchema","credentialSettingSchema","frontendSettingsUpdateSchema","jwtSecretCredentialSettingUpdateSchema","moonrakerSupportSchema","prusaLinkSupportSchema","sentryDiagnosticsEnabledSchema","serverSettingsUpdateSchema","slicerApiKeyUpdateSchema","timeoutSettingsUpdateSchema","wizardUpdateSchema","z","object","registration","boolean","loginRequired","experimentalMoonrakerSupport","experimentalBambuSupport","experimentalPrusaLinkSupport","sentryDiagnosticsEnabled","apiTimeout","number","int","min","apiUploadTimeout","gridCols","gridRows","largeTiles","tilePreferCancelOverQuickStop","gridNameSortDirection","enum","optional","jwtSecret","string","jwtExpiresIn","isProductionEnvironment","max","Infinity","refreshTokenAttempts","refreshTokenExpiry","slicerApiKey","nullable","wizardCompleted","wizardCompletedAt","date","wizardVersion","enabled"],"mappings":"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"}
|
|
@@ -92,6 +92,8 @@ const importPrintersFloorsYamlSchema = _zod.z.object({
|
|
|
92
92
|
printerURL: _printerservicevalidation.printerUrlValidator,
|
|
93
93
|
printerType: _printerservicevalidation.printerTypeValidator,
|
|
94
94
|
apiKey: _printerservicevalidation.printerApiKeyValidator,
|
|
95
|
+
username: _printerservicevalidation.printerUsernameValidator.optional(),
|
|
96
|
+
password: _printerservicevalidation.printerPasswordValidator.optional(),
|
|
95
97
|
enabled: _printerservicevalidation.printerEnabledValidator,
|
|
96
98
|
name: _printerservicevalidation.printerNameValidator,
|
|
97
99
|
printerName: _zod.z.string().optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/validators/yaml-service.validation.ts"],"names":["exportPrintersFloorsYamlSchema","importPrinterPositionsSchema","importPrintersFloorsYamlSchema","numberOrStringIdValidator","printerPositionsSchema","z","object","exportPrinters","boolean","exportFloorGrid","exportFloors","exportTags","exportGroups","optional","exportSettings","default","exportUsers","printerComparisonStrategiesByPriority","array","string","refine","val","includes","min","floorComparisonStrategiesByPriority","notes","union","number","printerId","floorId","x","xValidator","y","yValidator","printers","version","exportedAt","date","databaseType","enum","config","id","printerURL","printerUrlValidator","printerType","printerTypeValidator","apiKey","printerApiKeyValidator","enabled","printerEnabledValidator","name","printerNameValidator","printerName","settingsAppearance","floors","order","floorOrderValidator","floor","floorNameValidator","tags","color","settings","any","users","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/validators/yaml-service.validation.ts"],"names":["exportPrintersFloorsYamlSchema","importPrinterPositionsSchema","importPrintersFloorsYamlSchema","numberOrStringIdValidator","printerPositionsSchema","z","object","exportPrinters","boolean","exportFloorGrid","exportFloors","exportTags","exportGroups","optional","exportSettings","default","exportUsers","printerComparisonStrategiesByPriority","array","string","refine","val","includes","min","floorComparisonStrategiesByPriority","notes","union","number","printerId","floorId","x","xValidator","y","yValidator","printers","version","exportedAt","date","databaseType","enum","config","id","printerURL","printerUrlValidator","printerType","printerTypeValidator","apiKey","printerApiKeyValidator","username","printerUsernameValidator","password","printerPasswordValidator","enabled","printerEnabledValidator","name","printerNameValidator","printerName","settingsAppearance","floors","order","floorOrderValidator","floor","floorNameValidator","tags","color","settings","any","users","isDemoUser","isRootUser","isVerified","needsPasswordChange","passwordHash","createdAt","roles"],"mappings":"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"}
|
|
@@ -27,6 +27,16 @@ function migrateSettingsRuntime(knownSettings) {
|
|
|
27
27
|
...(0, _serversettingsconstants.getDefaultCredentialSettings)(),
|
|
28
28
|
jwtSecret: (0, _uuid.v4)()
|
|
29
29
|
};
|
|
30
|
+
if (entity[_serversettingsconstants.frontendSettingKey]) {
|
|
31
|
+
const defaultFrontendSettings = (0, _serversettingsconstants.getDefaultFrontendSettings)();
|
|
32
|
+
entity[_serversettingsconstants.frontendSettingKey] = {
|
|
33
|
+
gridCols: entity[_serversettingsconstants.frontendSettingKey].gridCols ?? defaultFrontendSettings.gridCols,
|
|
34
|
+
gridRows: entity[_serversettingsconstants.frontendSettingKey].gridRows ?? defaultFrontendSettings.gridRows,
|
|
35
|
+
largeTiles: entity[_serversettingsconstants.frontendSettingKey].largeTiles ?? defaultFrontendSettings.largeTiles,
|
|
36
|
+
tilePreferCancelOverQuickStop: entity[_serversettingsconstants.frontendSettingKey].tilePreferCancelOverQuickStop ?? defaultFrontendSettings.tilePreferCancelOverQuickStop,
|
|
37
|
+
gridNameSortDirection: entity[_serversettingsconstants.frontendSettingKey].gridNameSortDirection ?? defaultFrontendSettings.gridNameSortDirection
|
|
38
|
+
};
|
|
39
|
+
}
|
|
30
40
|
if (entity[_serversettingsconstants.serverSettingsKey]) {
|
|
31
41
|
const defaultServerSettings = (0, _serversettingsconstants.getDefaultServerSettings)();
|
|
32
42
|
entity[_serversettingsconstants.serverSettingsKey] = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/shared/runtime-settings.migration.ts"],"names":["migrateSettingsRuntime","knownSettings","entity","wizardSettingKey","getDefaultWizardSettings","timeoutSettingKey","getDefaultTimeout","defaultTimeoutSettings","apiTimeout","apiUploadTimeout","serverSettingsKey","getDefaultServerSettings","frontendSettingKey","getDefaultFrontendSettings","credentialSettingsKey","getDefaultCredentialSettings","jwtSecret","uuidv4","defaultServerSettings","loginRequired","registration","experimentalMoonrakerSupport","experimentalPrusaLinkSupport","experimentalBambuSupport","sentryDiagnosticsEnabled"],"mappings":";;;;+BAegBA;;;eAAAA;;;yCAJT;sBACsB;AAGtB,SAASA,uBAAuBC,aAAgC;IACrE,MAAMC,SAASD;IAEfC,MAAM,CAACC,yCAAgB,CAAC,KAAKC,IAAAA,iDAAwB;IACrDF,MAAM,CAACG,0CAAiB,CAAC,KAAKC,IAAAA,0CAAiB;IAE/C,IAAIJ,MAAM,CAACG,0CAAiB,CAAC,EAAE;QAC7B,MAAME,yBAAyBD,IAAAA,0CAAiB;QAChDJ,MAAM,CAACG,0CAAiB,CAAC,GAAG;YAC1BG,YAAYN,MAAM,CAACG,0CAAiB,CAAC,CAACG,UAAU,IAAID,uBAAuBC,UAAU;YACrFC,kBAAkBP,MAAM,CAACG,0CAAiB,CAAC,CAACI,gBAAgB,IAAIF,uBAAuBE,gBAAgB;QACzG;IACF;IAEAP,MAAM,CAACQ,0CAAiB,CAAC,KAAKC,IAAAA,iDAAwB;IACtDT,MAAM,CAACU,2CAAkB,CAAC,KAAKC,IAAAA,mDAA0B;IACzDX,MAAM,CAACY,8CAAqB,CAAC,KAAK;QAChC,GAAGC,IAAAA,qDAA4B,GAAE;QAEjCC,WAAWC,IAAAA,QAAM;IACnB;IAEA,IAAIf,MAAM,CAACQ,0CAAiB,CAAC,EAAE;QAC7B,
|
|
1
|
+
{"version":3,"sources":["../../src/shared/runtime-settings.migration.ts"],"names":["migrateSettingsRuntime","knownSettings","entity","wizardSettingKey","getDefaultWizardSettings","timeoutSettingKey","getDefaultTimeout","defaultTimeoutSettings","apiTimeout","apiUploadTimeout","serverSettingsKey","getDefaultServerSettings","frontendSettingKey","getDefaultFrontendSettings","credentialSettingsKey","getDefaultCredentialSettings","jwtSecret","uuidv4","defaultFrontendSettings","gridCols","gridRows","largeTiles","tilePreferCancelOverQuickStop","gridNameSortDirection","defaultServerSettings","loginRequired","registration","experimentalMoonrakerSupport","experimentalPrusaLinkSupport","experimentalBambuSupport","sentryDiagnosticsEnabled"],"mappings":";;;;+BAegBA;;;eAAAA;;;yCAJT;sBACsB;AAGtB,SAASA,uBAAuBC,aAAgC;IACrE,MAAMC,SAASD;IAEfC,MAAM,CAACC,yCAAgB,CAAC,KAAKC,IAAAA,iDAAwB;IACrDF,MAAM,CAACG,0CAAiB,CAAC,KAAKC,IAAAA,0CAAiB;IAE/C,IAAIJ,MAAM,CAACG,0CAAiB,CAAC,EAAE;QAC7B,MAAME,yBAAyBD,IAAAA,0CAAiB;QAChDJ,MAAM,CAACG,0CAAiB,CAAC,GAAG;YAC1BG,YAAYN,MAAM,CAACG,0CAAiB,CAAC,CAACG,UAAU,IAAID,uBAAuBC,UAAU;YACrFC,kBAAkBP,MAAM,CAACG,0CAAiB,CAAC,CAACI,gBAAgB,IAAIF,uBAAuBE,gBAAgB;QACzG;IACF;IAEAP,MAAM,CAACQ,0CAAiB,CAAC,KAAKC,IAAAA,iDAAwB;IACtDT,MAAM,CAACU,2CAAkB,CAAC,KAAKC,IAAAA,mDAA0B;IACzDX,MAAM,CAACY,8CAAqB,CAAC,KAAK;QAChC,GAAGC,IAAAA,qDAA4B,GAAE;QAEjCC,WAAWC,IAAAA,QAAM;IACnB;IAEA,IAAIf,MAAM,CAACU,2CAAkB,CAAC,EAAE;QAC9B,MAAMM,0BAA0BL,IAAAA,mDAA0B;QAG1DX,MAAM,CAACU,2CAAkB,CAAC,GAAG;YAC3BO,UAAUjB,MAAM,CAACU,2CAAkB,CAAC,CAACO,QAAQ,IAAID,wBAAwBC,QAAQ;YACjFC,UAAUlB,MAAM,CAACU,2CAAkB,CAAC,CAACQ,QAAQ,IAAIF,wBAAwBE,QAAQ;YACjFC,YAAYnB,MAAM,CAACU,2CAAkB,CAAC,CAACS,UAAU,IAAIH,wBAAwBG,UAAU;YACvFC,+BAA+BpB,MAAM,CAACU,2CAAkB,CAAC,CAACU,6BAA6B,IAAIJ,wBAAwBI,6BAA6B;YAChJC,uBAAuBrB,MAAM,CAACU,2CAAkB,CAAC,CAACW,qBAAqB,IAAIL,wBAAwBK,qBAAqB;QAC1H;IACF;IAEA,IAAIrB,MAAM,CAACQ,0CAAiB,CAAC,EAAE;QAC7B,MAAMc,wBAAwBb,IAAAA,iDAAwB;QAGtDT,MAAM,CAACQ,0CAAiB,CAAC,GAAG;YAC1Be,eAAevB,MAAM,CAACQ,0CAAiB,CAAC,CAACe,aAAa,IAAID,sBAAsBC,aAAa;YAC7FC,cAAcxB,MAAM,CAACQ,0CAAiB,CAAC,CAACgB,YAAY,IAAIF,sBAAsBE,YAAY;YAC1FC,8BACEzB,MAAM,CAACQ,0CAAiB,CAAC,CAACiB,4BAA4B,IAAIH,sBAAsBG,4BAA4B;YAC9GC,8BACE1B,MAAM,CAACQ,0CAAiB,CAAC,CAACkB,4BAA4B,IAAIJ,sBAAsBI,4BAA4B;YAC9GC,0BACE3B,MAAM,CAACQ,0CAAiB,CAAC,CAACmB,wBAAwB,IAAIL,sBAAsBK,wBAAwB;YACtGC,0BACE5B,MAAM,CAACQ,0CAAiB,CAAC,CAACoB,wBAAwB,IAAIN,sBAAsBM,wBAAwB;QACxG;IACF;IAEA,OAAO5B;AACT"}
|
|
@@ -13,6 +13,7 @@ const _serversettingsconstants = require("../constants/server-settings.constants
|
|
|
13
13
|
const _node = require("@sentry/node");
|
|
14
14
|
const _envutils = require("../utils/env.utils");
|
|
15
15
|
const _serverconstants = require("../server.constants");
|
|
16
|
+
const _uuid = require("uuid");
|
|
16
17
|
class SettingsStore {
|
|
17
18
|
settingsService;
|
|
18
19
|
logger;
|
|
@@ -45,9 +46,13 @@ class SettingsStore {
|
|
|
45
46
|
[_serversettingsconstants.credentialSettingsKey]: {
|
|
46
47
|
jwtExpiresIn: settings[_serversettingsconstants.credentialSettingsKey].jwtExpiresIn,
|
|
47
48
|
refreshTokenAttempts: settings[_serversettingsconstants.credentialSettingsKey].refreshTokenAttempts,
|
|
48
|
-
refreshTokenExpiry: settings[_serversettingsconstants.credentialSettingsKey].refreshTokenExpiry
|
|
49
|
+
refreshTokenExpiry: settings[_serversettingsconstants.credentialSettingsKey].refreshTokenExpiry,
|
|
50
|
+
slicerApiKey: settings[_serversettingsconstants.credentialSettingsKey].slicerApiKey
|
|
49
51
|
},
|
|
50
52
|
[_serversettingsconstants.serverSettingsKey]: {
|
|
53
|
+
loginRequired: settings[_serversettingsconstants.serverSettingsKey].loginRequired,
|
|
54
|
+
registration: settings[_serversettingsconstants.serverSettingsKey].registration,
|
|
55
|
+
sentryDiagnosticsEnabled: settings[_serversettingsconstants.serverSettingsKey].sentryDiagnosticsEnabled,
|
|
51
56
|
experimentalMoonrakerSupport: settings[_serversettingsconstants.serverSettingsKey].experimentalMoonrakerSupport,
|
|
52
57
|
experimentalPrusaLinkSupport: settings[_serversettingsconstants.serverSettingsKey].experimentalPrusaLinkSupport,
|
|
53
58
|
experimentalBambuSupport: settings[_serversettingsconstants.serverSettingsKey].experimentalBambuSupport
|
|
@@ -75,7 +80,7 @@ class SettingsStore {
|
|
|
75
80
|
});
|
|
76
81
|
}
|
|
77
82
|
if (overrideJwtExpiresIn?.length) {
|
|
78
|
-
await this.
|
|
83
|
+
await this.updateCoreCredentialSettings({
|
|
79
84
|
refreshTokenExpiry: credentialSettings.refreshTokenExpiry,
|
|
80
85
|
refreshTokenAttempts: credentialSettings.refreshTokenAttempts,
|
|
81
86
|
jwtExpiresIn: Number.parseInt(overrideJwtExpiresIn)
|
|
@@ -142,14 +147,14 @@ class SettingsStore {
|
|
|
142
147
|
this.settings = await this.settingsService.updateTimeoutSettings(timeoutSettings);
|
|
143
148
|
return this.getSettings();
|
|
144
149
|
}
|
|
145
|
-
async
|
|
146
|
-
this.settings = await this.settingsService.
|
|
150
|
+
async updateCoreCredentialSettings(credentialSettings) {
|
|
151
|
+
this.settings = await this.settingsService.updateCoreCredentialSettings(credentialSettings);
|
|
147
152
|
}
|
|
148
153
|
async setRefreshTokenSettings({ refreshTokenAttempts, refreshTokenExpiry }) {
|
|
149
154
|
this.throwIfSettingsUnset();
|
|
150
155
|
this.settings[_serversettingsconstants.credentialSettingsKey].refreshTokenAttempts = refreshTokenAttempts;
|
|
151
156
|
this.settings[_serversettingsconstants.credentialSettingsKey].refreshTokenExpiry = refreshTokenExpiry;
|
|
152
|
-
await this.
|
|
157
|
+
await this.updateCoreCredentialSettings(this.settings[_serversettingsconstants.credentialSettingsKey]);
|
|
153
158
|
}
|
|
154
159
|
async setSentryDiagnosticsEnabled(sentryDiagnosticsEnabled) {
|
|
155
160
|
this.throwIfSettingsUnset();
|
|
@@ -180,6 +185,34 @@ class SettingsStore {
|
|
|
180
185
|
this.settings = await this.settingsService.updateFrontendSettings(frontendSettings);
|
|
181
186
|
return this.getSettings();
|
|
182
187
|
}
|
|
188
|
+
getSlicerApiKey() {
|
|
189
|
+
this.throwIfSettingsUnset();
|
|
190
|
+
return this.settings[_serversettingsconstants.credentialSettingsKey].slicerApiKey;
|
|
191
|
+
}
|
|
192
|
+
async generateSlicerApiKey() {
|
|
193
|
+
const newApiKey = (0, _uuid.v4)();
|
|
194
|
+
return this.setSlicerApiKey(newApiKey);
|
|
195
|
+
}
|
|
196
|
+
async setSlicerApiKey(apiKey) {
|
|
197
|
+
this.throwIfSettingsUnset();
|
|
198
|
+
this.settings = await this.settingsService.updateSlicerApiKey({
|
|
199
|
+
slicerApiKey: apiKey
|
|
200
|
+
});
|
|
201
|
+
return apiKey;
|
|
202
|
+
}
|
|
203
|
+
async deleteSlicerApiKey() {
|
|
204
|
+
this.throwIfSettingsUnset();
|
|
205
|
+
this.settings = await this.settingsService.updateSlicerApiKey({
|
|
206
|
+
slicerApiKey: null
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
validateSlicerApiKey(apiKey) {
|
|
210
|
+
const storedKey = this.getSlicerApiKey();
|
|
211
|
+
if (!storedKey) {
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
return storedKey === apiKey;
|
|
215
|
+
}
|
|
183
216
|
throwIfSettingsUnset() {
|
|
184
217
|
if (!this.settings) throw new _runtimeexceptions.InternalServerException("Could not check server settings (server settings not loaded)");
|
|
185
218
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/state/settings.store.ts"],"names":["SettingsStore","logger","settings","loggerFactory","settingsService","name","getSettings","throwIfSettingsUnset","Object","freeze","serverSettingsKey","loginRequired","registration","sentryDiagnosticsEnabled","experimentalMoonrakerSupport","experimentalPrusaLinkSupport","experimentalBambuSupport","wizardSettingKey","frontendSettingKey","timeoutSettingKey","getSettingsSensitive","credentialSettingsKey","jwtExpiresIn","refreshTokenAttempts","refreshTokenExpiry","loadSettings","getOrCreate","processSentryEnabled","getCredentialSettings","getAnonymousDiagnosticsEnabled","persistOptionalCredentialSettings","overrideJwtSecret","overrideJwtExpiresIn","credentialSettings","length","updateJwtSecretCredentialSetting","jwtSecret","
|
|
1
|
+
{"version":3,"sources":["../../src/state/settings.store.ts"],"names":["SettingsStore","logger","settings","loggerFactory","settingsService","name","getSettings","throwIfSettingsUnset","Object","freeze","serverSettingsKey","loginRequired","registration","sentryDiagnosticsEnabled","experimentalMoonrakerSupport","experimentalPrusaLinkSupport","experimentalBambuSupport","wizardSettingKey","frontendSettingKey","timeoutSettingKey","getSettingsSensitive","credentialSettingsKey","jwtExpiresIn","refreshTokenAttempts","refreshTokenExpiry","slicerApiKey","loadSettings","getOrCreate","processSentryEnabled","getCredentialSettings","getAnonymousDiagnosticsEnabled","persistOptionalCredentialSettings","overrideJwtSecret","overrideJwtExpiresIn","credentialSettings","length","updateJwtSecretCredentialSetting","jwtSecret","updateCoreCredentialSettings","Number","parseInt","getWizardState","wizardCompleted","wizardVersion","latestWizardVersion","AppConstants","currentWizardVersion","isWizardCompleted","getWizardSettings","isRegistrationEnabled","getServerSettings","getTimeoutSettings","setWizardCompleted","version","updateWizardSettings","wizardCompletedAt","Date","getLoginRequired","setLoginRequired","updateServerSettings","setRegistrationEnabled","serverSettings","updateTimeoutSettings","timeoutSettings","setRefreshTokenSettings","setSentryDiagnosticsEnabled","setExperimentalMoonrakerSupport","setExperimentalPrusaLinkSupport","setExperimentalBambuSupport","updateFrontendSettings","frontendSettings","getSlicerApiKey","generateSlicerApiKey","newApiKey","uuidv4","setSlicerApiKey","apiKey","updateSlicerApiKey","deleteSlicerApiKey","validateSlicerApiKey","storedKey","InternalServerException","sentryEnabled","log","isTestEnvironment","client","getClient","warn","getOptions","enabled"],"mappings":"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"}
|
package/dist/utils/env.utils.js
CHANGED
|
@@ -26,10 +26,11 @@ _export(exports, {
|
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
28
|
const _serverconstants = require("../server.constants");
|
|
29
|
-
function getEnvOrDefault(key,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
function getEnvOrDefault(key, defaultValue) {
|
|
30
|
+
if (!Object.keys(process.env).includes(key) || !process.env[key]?.length) {
|
|
31
|
+
return defaultValue;
|
|
32
|
+
}
|
|
33
|
+
return process.env[key];
|
|
33
34
|
}
|
|
34
35
|
function isDevelopmentEnvironment() {
|
|
35
36
|
return process.env.NODE_ENV === _serverconstants.AppConstants.defaultDevelopmentEnv;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/env.utils.ts"],"names":["getEnvOrDefault","isDevelopmentEnvironment","isNode","isProductionEnvironment","isTestEnvironment","key","
|
|
1
|
+
{"version":3,"sources":["../../src/utils/env.utils.ts"],"names":["getEnvOrDefault","isDevelopmentEnvironment","isNode","isProductionEnvironment","isTestEnvironment","key","defaultValue","Object","keys","process","env","includes","length","NODE_ENV","AppConstants","defaultDevelopmentEnv","defaultTestEnv","defaultProductionEnv"],"mappings":";;;;;;;;;;;QAEgBA;eAAAA;;QAOAC;eAAAA;;QAYAC;eAAAA;;QAJAC;eAAAA;;QAJAC;eAAAA;;;iCAba;AAEtB,SAASJ,gBAAmBK,GAAW,EAAEC,YAAe;IAC7D,IAAI,CAACC,OAAOC,IAAI,CAACC,QAAQC,GAAG,EAAEC,QAAQ,CAACN,QAAQ,CAACI,QAAQC,GAAG,CAACL,IAAI,EAAEO,QAAQ;QACxE,OAAON;IACT;IACA,OAAOG,QAAQC,GAAG,CAACL,IAAI;AACzB;AAEO,SAASJ;IACd,OAAOQ,QAAQC,GAAG,CAACG,QAAQ,KAAKC,6BAAY,CAACC,qBAAqB;AACpE;AAEO,SAASX;IACd,OAAOK,QAAQC,GAAG,CAACG,QAAQ,KAAKC,6BAAY,CAACE,cAAc;AAC7D;AAEO,SAASb;IACd,OAAOM,QAAQC,GAAG,CAACG,QAAQ,KAAKC,6BAAY,CAACG,oBAAoB;AACnE;AAEO,SAASf;IACd,OAAO,UAAUO,QAAQC,GAAG;AAC9B"}
|
package/dist/utils/fs.utils.js
CHANGED
|
@@ -12,27 +12,53 @@ _export(exports, {
|
|
|
12
12
|
get ensureDirExists () {
|
|
13
13
|
return ensureDirExists;
|
|
14
14
|
},
|
|
15
|
-
get
|
|
16
|
-
return
|
|
15
|
+
get getDatabaseFilePath () {
|
|
16
|
+
return getDatabaseFilePath;
|
|
17
|
+
},
|
|
18
|
+
get getDatabaseFolder () {
|
|
19
|
+
return getDatabaseFolder;
|
|
20
|
+
},
|
|
21
|
+
get getMediaPath () {
|
|
22
|
+
return getMediaPath;
|
|
23
|
+
},
|
|
24
|
+
get packageJsonPath () {
|
|
25
|
+
return packageJsonPath;
|
|
17
26
|
},
|
|
18
27
|
get superRootPath () {
|
|
19
28
|
return superRootPath;
|
|
20
29
|
}
|
|
21
30
|
});
|
|
22
31
|
const _nodefs = require("node:fs");
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
32
|
+
const _nodepath = require("node:path");
|
|
33
|
+
const _serverconstants = require("../server.constants");
|
|
34
|
+
const _envutils = require("./env.utils");
|
|
35
|
+
function getDatabaseFilePath() {
|
|
36
|
+
const dbFile = (0, _envutils.getEnvOrDefault)(_serverconstants.AppConstants.DATABASE_FILE, _serverconstants.AppConstants.defaultDatabaseFile);
|
|
37
|
+
if (dbFile === ":memory:") {
|
|
38
|
+
return dbFile;
|
|
39
|
+
}
|
|
40
|
+
const dbFolder = getDatabaseFolder();
|
|
41
|
+
return (0, _nodepath.join)(dbFolder, dbFile);
|
|
26
42
|
}
|
|
27
|
-
function
|
|
28
|
-
return (0,
|
|
43
|
+
function getDatabaseFolder() {
|
|
44
|
+
return (0, _envutils.getEnvOrDefault)(_serverconstants.AppConstants.DATABASE_PATH, (0, _nodepath.join)(superRootPath(), _serverconstants.AppConstants.defaultDatabasePath));
|
|
45
|
+
}
|
|
46
|
+
function getMediaPath() {
|
|
47
|
+
return (0, _envutils.getEnvOrDefault)(_serverconstants.AppConstants.MEDIA_PATH, (0, _nodepath.join)(superRootPath(), _serverconstants.AppConstants.defaultBaseMediaPath));
|
|
48
|
+
}
|
|
49
|
+
function packageJsonPath() {
|
|
50
|
+
return (0, _nodepath.join)(superRootPath(), "./package.json");
|
|
29
51
|
}
|
|
30
52
|
function ensureDirExists(dir) {
|
|
31
|
-
if (
|
|
32
|
-
|
|
33
|
-
recursive: true
|
|
34
|
-
});
|
|
53
|
+
if ((0, _nodefs.existsSync)(dir)) {
|
|
54
|
+
return;
|
|
35
55
|
}
|
|
56
|
+
(0, _nodefs.mkdirSync)(dir, {
|
|
57
|
+
recursive: true
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
function superRootPath() {
|
|
61
|
+
return (0, _nodepath.join)(__dirname, "../..");
|
|
36
62
|
}
|
|
37
63
|
|
|
38
64
|
//# sourceMappingURL=fs.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/fs.utils.ts"],"names":["ensureDirExists","
|
|
1
|
+
{"version":3,"sources":["../../src/utils/fs.utils.ts"],"names":["ensureDirExists","getDatabaseFilePath","getDatabaseFolder","getMediaPath","packageJsonPath","superRootPath","dbFile","getEnvOrDefault","AppConstants","DATABASE_FILE","defaultDatabaseFile","dbFolder","join","DATABASE_PATH","defaultDatabasePath","MEDIA_PATH","defaultBaseMediaPath","dir","existsSync","mkdirSync","recursive","__dirname"],"mappings":";;;;;;;;;;;QA2BgBA;eAAAA;;QAtBAC;eAAAA;;QAUAC;eAAAA;;QAIAC;eAAAA;;QAIAC;eAAAA;;QAeAC;eAAAA;;;wBAtCsB;0BACjB;iCACQ;0BACG;AAEzB,SAASJ;IACd,MAAMK,SAASC,IAAAA,yBAAe,EAACC,6BAAY,CAACC,aAAa,EAAED,6BAAY,CAACE,mBAAmB;IAC3F,IAAIJ,WAAW,YAAY;QACzB,OAAOA;IACT;IAEA,MAAMK,WAAWT;IACjB,OAAOU,IAAAA,cAAI,EAACD,UAAUL;AACxB;AAEO,SAASJ;IACd,OAAOK,IAAAA,yBAAe,EAACC,6BAAY,CAACK,aAAa,EAAED,IAAAA,cAAI,EAACP,iBAAiBG,6BAAY,CAACM,mBAAmB;AAC3G;AAEO,SAASX;IACd,OAAOI,IAAAA,yBAAe,EAACC,6BAAY,CAACO,UAAU,EAAEH,IAAAA,cAAI,EAACP,iBAAiBG,6BAAY,CAACQ,oBAAoB;AACzG;AAEO,SAASZ;IACd,OAAOQ,IAAAA,cAAI,EAACP,iBAAiB;AAC/B;AAEO,SAASL,gBAAgBiB,GAAW;IACzC,IAAIC,IAAAA,kBAAU,EAACD,MAAM;QACnB;IACF;IAEAE,IAAAA,iBAAS,EAACF,KAAK;QAAEG,WAAW;IAAK;AACnC;AAKO,SAASf;IACd,OAAOO,IAAAA,cAAI,EAACS,WAAW;AACzB"}
|
|
@@ -67,7 +67,7 @@ async function setupSwagger(app, logger) {
|
|
|
67
67
|
const generateJsonFile = process.env[_serverconstants.AppConstants.GENERATE_SWAGGER_JSON] === "true";
|
|
68
68
|
if (generateJsonFile) {
|
|
69
69
|
try {
|
|
70
|
-
const mediaPath = (0,
|
|
70
|
+
const mediaPath = (0, _fsutils.getMediaPath)();
|
|
71
71
|
(0, _fsutils.ensureDirExists)(mediaPath);
|
|
72
72
|
const swaggerJsonPath = (0, _nodepath.join)(mediaPath, "swagger.json");
|
|
73
73
|
const jsonContent = JSON.stringify(specification, null, 2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/swagger/swagger.ts"],"names":["setupSwagger","getSwaggerUiDistPath","dirname","require","resolve","join","process","cwd","generateSwaggerHTML","trim","app","logger","generator","SwaggerGenerator","specification","generate","generateJsonFile","env","AppConstants","GENERATE_SWAGGER_JSON","mediaPath","
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/swagger/swagger.ts"],"names":["setupSwagger","getSwaggerUiDistPath","dirname","require","resolve","join","process","cwd","generateSwaggerHTML","trim","app","logger","generator","SwaggerGenerator","specification","generate","generateJsonFile","env","AppConstants","GENERATE_SWAGGER_JSON","mediaPath","getMediaPath","ensureDirExists","swaggerJsonPath","jsonContent","JSON","stringify","writeFile","log","error","swaggerUiPath","use","expressStatic","get","_req","res","setHeader","send"],"mappings":";;;;+BA6DsBA;;;eAAAA;;;2BA7DW;yBACoB;0BACvB;iCACD;yBACiB;0BAEpB;AAG1B,SAASC;IACP,IAAI;QAEF,OAAOC,IAAAA,iBAAO,EAACC,QAAQC,OAAO,CAAC;IACjC,EAAE,OAAM;QAEN,OAAOC,IAAAA,cAAI,EAACC,QAAQC,GAAG,IAAI,gBAAgB;IAC7C;AACF;AAGA,SAASC;IACP,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCR,CAAC,CAACC,IAAI;AACR;AAEO,eAAeT,aAAaU,GAAgB,EAAEC,MAAqB;IACxE,MAAMC,YAAY,IAAIC,2BAAgB,CAACF;IACvC,MAAMG,gBAAgB,MAAMF,UAAUG,QAAQ;IAG9C,MAAMC,mBAAmBV,QAAQW,GAAG,CAACC,6BAAY,CAACC,qBAAqB,CAAC,KAAK;IAE7E,IAAIH,kBAAkB;QACpB,IAAI;YACF,MAAMI,YAAYC,IAAAA,qBAAY;YAC9BC,IAAAA,wBAAe,EAACF;YAEhB,MAAMG,kBAAkBlB,IAAAA,cAAI,EAACe,WAAW;YACxC,MAAMI,cAAcC,KAAKC,SAAS,CAACZ,eAAe,MAAM;YAExD,MAAMa,IAAAA,mBAAS,EAACJ,iBAAiBC,aAAa;YAC9Cb,OAAOiB,GAAG,CAAC,CAAC,gCAAgC,EAAEL,iBAAiB;QACjE,EAAE,OAAOM,OAAO;YACdlB,OAAOkB,KAAK,CAAC,wCAAwCA;QACvD;IACF;IAGA,MAAMC,gBAAgB7B;IACtBS,IAAIqB,GAAG,CAAC,oBAAoBC,IAAAA,eAAa,EAACF;IAG1CpB,IAAIuB,GAAG,CAAC,0BAA0B,CAACC,MAAMC;QACvCA,IAAIC,SAAS,CAAC,gBAAgB;QAC9BD,IAAIE,IAAI,CAACvB;IACX;IAGAJ,IAAIuB,GAAG,CAAC,aAAa,CAACC,MAAMC;QAC1BA,IAAIC,SAAS,CAAC,gBAAgB;QAC9BD,IAAIE,IAAI,CAAC7B;IACX;IAEA,OAAOM;AACT"}
|