@mayhem93/nexxus-core-lib 0.0.1 → 0.0.2
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/dist-cjs/common/BuiltinSchemas.js +24 -5
- package/dist-cjs/common/BuiltinSchemas.js.map +1 -1
- package/dist-cjs/common/FilterQuery.js +4 -15
- package/dist-cjs/common/FilterQuery.js.map +1 -1
- package/dist-cjs/common/InferModel.js +3 -0
- package/dist-cjs/common/InferModel.js.map +1 -0
- package/dist-cjs/common/JsonPatch.js +42 -225
- package/dist-cjs/common/JsonPatch.js.map +1 -1
- package/dist-cjs/common/SchemaValidator.js +100 -29
- package/dist-cjs/common/SchemaValidator.js.map +1 -1
- package/dist-cjs/index.js +3 -0
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/lib/BaseService.js +6 -6
- package/dist-cjs/lib/BaseService.js.map +1 -1
- package/dist-cjs/lib/ConfigManager.js +18 -21
- package/dist-cjs/lib/ConfigManager.js.map +1 -1
- package/dist-cjs/lib/Exceptions.js +8 -1
- package/dist-cjs/lib/Exceptions.js.map +1 -1
- package/dist-cjs/lib/Logger.js +138 -65
- package/dist-cjs/lib/Logger.js.map +1 -1
- package/dist-cjs/models/AppModel.js +17 -3
- package/dist-cjs/models/AppModel.js.map +1 -1
- package/dist-cjs/models/Application.js +51 -12
- package/dist-cjs/models/Application.js.map +1 -1
- package/dist-cjs/models/BaseModel.js.map +1 -1
- package/dist-cjs/models/BuiltinModel.js +8 -0
- package/dist-cjs/models/BuiltinModel.js.map +1 -0
- package/dist-cjs/models/User.js +12 -3
- package/dist-cjs/models/User.js.map +1 -1
- package/dist-esm/common/BuiltinSchemas.js +23 -4
- package/dist-esm/common/BuiltinSchemas.js.map +1 -1
- package/dist-esm/common/FilterQuery.js +5 -16
- package/dist-esm/common/FilterQuery.js.map +1 -1
- package/dist-esm/common/InferModel.js +2 -0
- package/dist-esm/common/InferModel.js.map +1 -0
- package/dist-esm/common/JsonPatch.js +44 -227
- package/dist-esm/common/JsonPatch.js.map +1 -1
- package/dist-esm/common/SchemaValidator.js +100 -29
- package/dist-esm/common/SchemaValidator.js.map +1 -1
- package/dist-esm/index.js +3 -0
- package/dist-esm/index.js.map +1 -1
- package/dist-esm/lib/BaseService.js +8 -8
- package/dist-esm/lib/BaseService.js.map +1 -1
- package/dist-esm/lib/ConfigManager.js +18 -21
- package/dist-esm/lib/ConfigManager.js.map +1 -1
- package/dist-esm/lib/Exceptions.js +6 -0
- package/dist-esm/lib/Exceptions.js.map +1 -1
- package/dist-esm/lib/Logger.js +139 -66
- package/dist-esm/lib/Logger.js.map +1 -1
- package/dist-esm/models/AppModel.js +17 -3
- package/dist-esm/models/AppModel.js.map +1 -1
- package/dist-esm/models/Application.js +52 -13
- package/dist-esm/models/Application.js.map +1 -1
- package/dist-esm/models/BaseModel.js.map +1 -1
- package/dist-esm/models/BuiltinModel.js +4 -0
- package/dist-esm/models/BuiltinModel.js.map +1 -0
- package/dist-esm/models/User.js +11 -2
- package/dist-esm/models/User.js.map +1 -1
- package/dist-types/common/BuiltinSchemas.d.ts +59 -5
- package/dist-types/common/FilterQuery.d.ts +3 -11
- package/dist-types/common/InferModel.d.ts +29 -0
- package/dist-types/common/JsonPatch.d.ts +4 -45
- package/dist-types/common/ModelTypes.d.ts +1 -0
- package/dist-types/common/QueuePayloads.d.ts +48 -26
- package/dist-types/common/SchemaValidator.d.ts +42 -2
- package/dist-types/index.d.ts +3 -0
- package/dist-types/lib/BaseService.d.ts +8 -1
- package/dist-types/lib/ConfigManager.d.ts +6 -12
- package/dist-types/lib/Exceptions.d.ts +4 -0
- package/dist-types/lib/Logger.d.ts +84 -14
- package/dist-types/models/AppModel.d.ts +31 -5
- package/dist-types/models/Application.d.ts +36 -8
- package/dist-types/models/BaseModel.d.ts +14 -12
- package/dist-types/models/BuiltinModel.d.ts +3 -0
- package/dist-types/models/User.d.ts +15 -13
- package/package.json +4 -4
- package/src/schemas/winston-logger.schema.json +51 -6
|
@@ -13,10 +13,10 @@ export class NexxusConfigManager {
|
|
|
13
13
|
data = {};
|
|
14
14
|
configProviders = [];
|
|
15
15
|
customProviders = [];
|
|
16
|
-
constructor(
|
|
16
|
+
constructor(configFileName) {
|
|
17
17
|
const schemaPath = path.join(__dirname, "../../src/schemas/root.schema.json");
|
|
18
18
|
this.jsonSchema = JSON.parse(fs.readFileSync(schemaPath, 'utf-8'));
|
|
19
|
-
this.configProviders.push(new NexxusFileConfigProvider(path.join(process.cwd(),
|
|
19
|
+
this.configProviders.push(new NexxusFileConfigProvider(path.join(process.cwd(), configFileName ?? NexxusConfigManager.CONF_FILE_NAME)));
|
|
20
20
|
this.configProviders.push(new NexxusEnvVarsConfigProvider());
|
|
21
21
|
this.configProviders.push(new NexxusCliArgConfigProvider());
|
|
22
22
|
}
|
|
@@ -37,19 +37,16 @@ export class NexxusConfigManager {
|
|
|
37
37
|
this.jsonSchema.required.push(def.where);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
validateServices(svcs) {
|
|
40
|
+
async validateServices(svcs) {
|
|
41
41
|
for (const NxxSvc of svcs) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
const schemaDef = NxxSvc.schema();
|
|
43
|
+
const className = NxxSvc.name;
|
|
44
|
+
const configRootKey = schemaDef.where;
|
|
45
|
+
this.cliArgsSpecs.push({ className, configRootKey, specs: NxxSvc.cliArgConfig() });
|
|
46
|
+
this.envVarsSpecs.push({ className, configRootKey, specs: NxxSvc.envVarConfig() });
|
|
47
|
+
this.addJsonSchemaDef(schemaDef);
|
|
45
48
|
}
|
|
46
|
-
this.validate();
|
|
47
|
-
}
|
|
48
|
-
addCliArgsToSpec(cliArgSpec) {
|
|
49
|
-
this.cliArgsSpecs.push(cliArgSpec);
|
|
50
|
-
}
|
|
51
|
-
addEnvVarsToSpec(envVarSpec) {
|
|
52
|
-
this.envVarsSpecs.push(envVarSpec);
|
|
49
|
+
await this.validate();
|
|
53
50
|
}
|
|
54
51
|
populateFromCliArgs() {
|
|
55
52
|
if (this.cliArgsSpecs.length === 0) {
|
|
@@ -61,9 +58,9 @@ export class NexxusConfigManager {
|
|
|
61
58
|
spec.specs.forEach((arg) => {
|
|
62
59
|
if (collectedNames.has(arg.name)) {
|
|
63
60
|
throw new InvalidConfigException(`Duplicate CLI argument name: "${arg.name}".
|
|
64
|
-
Defined first by
|
|
61
|
+
Defined first by class "${collectedNames.get(arg.name)}" and now by class "${spec.className}"`);
|
|
65
62
|
}
|
|
66
|
-
collectedNames.set(arg.name, spec.
|
|
63
|
+
collectedNames.set(arg.name, spec.className);
|
|
67
64
|
cliArgProvider.addArgument(arg.name, arg.type);
|
|
68
65
|
});
|
|
69
66
|
});
|
|
@@ -71,7 +68,7 @@ export class NexxusConfigManager {
|
|
|
71
68
|
this.cliArgsSpecs.forEach(spec => {
|
|
72
69
|
spec.specs.forEach(arg => {
|
|
73
70
|
if (parsed[arg.name] !== undefined && parsed[arg.name] !== null) {
|
|
74
|
-
Dot.setProperty(this.data, arg.location
|
|
71
|
+
Dot.setProperty(this.data, `${spec.configRootKey}.${arg.location}`, parsed[arg.name]);
|
|
75
72
|
}
|
|
76
73
|
});
|
|
77
74
|
});
|
|
@@ -87,14 +84,14 @@ export class NexxusConfigManager {
|
|
|
87
84
|
this.envVarsSpecs.forEach(spec => {
|
|
88
85
|
spec.specs.forEach(envVar => {
|
|
89
86
|
if (collectedNames.has(envVar.name)) {
|
|
90
|
-
throw new InvalidConfigException(`Duplicate Env var: "${prefix}
|
|
91
|
-
Defined first by
|
|
87
|
+
throw new InvalidConfigException(`Duplicate Env var: "${prefix}${envVar.name}".
|
|
88
|
+
Defined first by class "${collectedNames.get(envVar.name)}" and now by class "${spec.className}"`);
|
|
92
89
|
}
|
|
93
90
|
const value = envResult?.[`${prefix}${envVar.name}`];
|
|
94
91
|
if (value !== undefined) {
|
|
95
|
-
Dot.setProperty(this.data, envVar.location
|
|
92
|
+
Dot.setProperty(this.data, `${spec.configRootKey}.${envVar.location}`, value);
|
|
96
93
|
}
|
|
97
|
-
collectedNames.set(envVar.name, spec.
|
|
94
|
+
collectedNames.set(envVar.name, spec.className);
|
|
98
95
|
});
|
|
99
96
|
});
|
|
100
97
|
}
|
|
@@ -115,7 +112,7 @@ export class NexxusConfigManager {
|
|
|
115
112
|
await this.populateFromCustomProviders();
|
|
116
113
|
this.populateFromCliArgs();
|
|
117
114
|
this.populateFromEnvVars();
|
|
118
|
-
const ajv = new Ajv();
|
|
115
|
+
const ajv = new Ajv({ useDefaults: true });
|
|
119
116
|
const validator = ajv.compile(this.jsonSchema);
|
|
120
117
|
const result = validator(this.data);
|
|
121
118
|
if (!result) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/lib/ConfigManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EAIL,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAe,MAAM,KAAK,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,SAAS,MAAM,WAAW,CAAC;AAGlC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/lib/ConfigManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ export var NexxusExceptions;
|
|
|
6
6
|
NexxusExceptions["INVALID_CONFIG"] = "InvalidConfigException";
|
|
7
7
|
NexxusExceptions["INVALID_JSON_PATCH"] = "InvalidJsonPatchException";
|
|
8
8
|
NexxusExceptions["INVALID_QUERY_FILTER"] = "InvalidQueryFilterException";
|
|
9
|
+
NexxusExceptions["INVALID_SCHEMA_DATA"] = "InvalidSchemaDataException";
|
|
9
10
|
NexxusExceptions["INVALID_USER_MODEL"] = "InvalidUserModelException";
|
|
10
11
|
})(NexxusExceptions || (NexxusExceptions = {}));
|
|
11
12
|
;
|
|
@@ -45,6 +46,11 @@ export class InvalidQueryFilterException extends NexxusException {
|
|
|
45
46
|
super(NexxusExceptions.INVALID_QUERY_FILTER, message);
|
|
46
47
|
}
|
|
47
48
|
}
|
|
49
|
+
export class InvalidSchemaDataException extends NexxusException {
|
|
50
|
+
constructor(message) {
|
|
51
|
+
super(NexxusExceptions.INVALID_SCHEMA_DATA, message);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
48
54
|
export class InvalidUserModelException extends NexxusException {
|
|
49
55
|
constructor(message) {
|
|
50
56
|
super(NexxusExceptions.INVALID_USER_MODEL, message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Exceptions.js","sourceRoot":"","sources":["../../src/lib/Exceptions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"Exceptions.js","sourceRoot":"","sources":["../../src/lib/Exceptions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,gBASX;AATD,WAAY,gBAAgB;IAC1B,uDAAmC,CAAA;IACnC,uDAAmC,CAAA;IACnC,iEAA6C,CAAA;IAC7C,6DAAyC,CAAA;IACzC,oEAAgD,CAAA;IAChD,wEAAoD,CAAA;IACpD,sEAAkD,CAAA;IAClD,oEAAgD,CAAA;AAClD,CAAC,EATW,gBAAgB,KAAhB,gBAAgB,QAS3B;AAAA,CAAC;AAEF,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,eAAe;IACzD,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,eAAe;IAC5D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,eAAe;IAC9D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,eAAe;IAC7D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,eAAe;IAC5D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;CACF"}
|
package/dist-esm/lib/Logger.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { NexxusBaseService } from './BaseService';
|
|
2
|
+
import { InvalidConfigException } from './Exceptions';
|
|
2
3
|
import * as Winston from 'winston';
|
|
3
|
-
import * as path from
|
|
4
|
+
import * as path from 'node:path';
|
|
4
5
|
export var NexxusLoggerLevels;
|
|
5
6
|
(function (NexxusLoggerLevels) {
|
|
6
7
|
NexxusLoggerLevels["EMERGENCY"] = "emerg";
|
|
@@ -13,90 +14,113 @@ export var NexxusLoggerLevels;
|
|
|
13
14
|
NexxusLoggerLevels["DEBUG"] = "debug";
|
|
14
15
|
})(NexxusLoggerLevels || (NexxusLoggerLevels = {}));
|
|
15
16
|
export class NexxusBaseLogger extends NexxusBaseService {
|
|
17
|
+
static configRootKey = "logger";
|
|
16
18
|
constructor(services) {
|
|
17
19
|
super(services.configManager.getConfig('logger'));
|
|
18
20
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
static serializeError(err) {
|
|
22
|
+
const out = {
|
|
23
|
+
name: err.name,
|
|
24
|
+
message: err.message,
|
|
25
|
+
stack: err.stack,
|
|
26
|
+
};
|
|
27
|
+
if (err.cause !== undefined) {
|
|
28
|
+
out.cause = err.cause;
|
|
29
|
+
}
|
|
30
|
+
return out;
|
|
31
|
+
}
|
|
32
|
+
static makeSafeReplacer() {
|
|
33
|
+
const seen = new WeakSet();
|
|
34
|
+
return (_key, value) => {
|
|
35
|
+
if (value instanceof Error) {
|
|
36
|
+
return NexxusBaseLogger.serializeError(value);
|
|
37
|
+
}
|
|
38
|
+
if (value !== null && typeof value === 'object') {
|
|
39
|
+
if (seen.has(value)) {
|
|
40
|
+
return '[circular]';
|
|
41
|
+
}
|
|
42
|
+
seen.add(value);
|
|
43
|
+
}
|
|
44
|
+
return value;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
static safeStringify(value) {
|
|
48
|
+
return JSON.stringify(value, NexxusBaseLogger.makeSafeReplacer());
|
|
21
49
|
}
|
|
22
|
-
|
|
23
|
-
this.
|
|
50
|
+
debug(message, attributesOrLabel, label) {
|
|
51
|
+
this.dispatch("debug", message, attributesOrLabel, label);
|
|
24
52
|
}
|
|
25
|
-
|
|
26
|
-
this.
|
|
53
|
+
info(message, attributesOrLabel, label) {
|
|
54
|
+
this.dispatch("info", message, attributesOrLabel, label);
|
|
27
55
|
}
|
|
28
|
-
|
|
29
|
-
this.
|
|
56
|
+
warn(message, attributesOrLabel, label) {
|
|
57
|
+
this.dispatch("warn", message, attributesOrLabel, label);
|
|
30
58
|
}
|
|
31
|
-
|
|
32
|
-
this.
|
|
59
|
+
error(message, attributesOrLabel, label) {
|
|
60
|
+
this.dispatch("error", message, attributesOrLabel, label);
|
|
33
61
|
}
|
|
34
|
-
|
|
35
|
-
this.
|
|
62
|
+
critical(message, attributesOrLabel, label) {
|
|
63
|
+
this.dispatch("crit", message, attributesOrLabel, label);
|
|
36
64
|
}
|
|
37
|
-
|
|
38
|
-
this.
|
|
65
|
+
alert(message, attributesOrLabel, label) {
|
|
66
|
+
this.dispatch("alert", message, attributesOrLabel, label);
|
|
67
|
+
}
|
|
68
|
+
emerg(message, attributesOrLabel, label) {
|
|
69
|
+
this.dispatch("emerg", message, attributesOrLabel, label);
|
|
70
|
+
}
|
|
71
|
+
dispatch(level, message, attributesOrLabel, label) {
|
|
72
|
+
if (typeof attributesOrLabel === 'string') {
|
|
73
|
+
this.log(level, message, undefined, attributesOrLabel);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
this.log(level, message, attributesOrLabel, label);
|
|
77
|
+
}
|
|
39
78
|
}
|
|
40
79
|
}
|
|
41
80
|
export class WinstonNexxusLogger extends NexxusBaseLogger {
|
|
42
81
|
winston;
|
|
43
82
|
static schemaPath = path.join(__dirname, "../../src/schemas/winston-logger.schema.json");
|
|
44
|
-
static envVars =
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
location: "logger.level"
|
|
50
|
-
}
|
|
51
|
-
]
|
|
52
|
-
};
|
|
53
|
-
static cliArgs = {
|
|
54
|
-
source: this.name,
|
|
55
|
-
specs: []
|
|
56
|
-
};
|
|
57
|
-
constructor(services) {
|
|
83
|
+
static envVars = [
|
|
84
|
+
{ name: "LOG_LEVEL", location: "level" }
|
|
85
|
+
];
|
|
86
|
+
static cliArgs = [];
|
|
87
|
+
constructor(services, resolvedTransports) {
|
|
58
88
|
super(services);
|
|
59
89
|
let format;
|
|
60
90
|
if (this.config.logType === "json") {
|
|
61
|
-
format = Winston.format.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
info.message = msg;
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
throw e;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
91
|
+
format = Winston.format.printf(info => {
|
|
92
|
+
const record = {};
|
|
93
|
+
if (info.timestamp) {
|
|
94
|
+
record.time = info.timestamp;
|
|
95
|
+
}
|
|
96
|
+
record.level = info.level;
|
|
97
|
+
record.label = info.label ?? "default-label";
|
|
98
|
+
record.msg = info.message;
|
|
99
|
+
const attrs = info.attrs;
|
|
100
|
+
if (attrs && typeof attrs === 'object' && Object.keys(attrs).length > 0) {
|
|
101
|
+
record.attrs = attrs;
|
|
78
102
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}), format);
|
|
103
|
+
return WinstonNexxusLogger.safeStringify(record);
|
|
104
|
+
});
|
|
82
105
|
if (this.config.timestamps) {
|
|
83
106
|
format = Winston.format.combine(Winston.format.timestamp(), format);
|
|
84
107
|
}
|
|
85
108
|
}
|
|
86
109
|
else {
|
|
87
110
|
format = Winston.format.printf(info => {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
111
|
+
const label = info.label ?? "default-label";
|
|
112
|
+
const timestampPrefix = info.timestamp ? `[${info.timestamp}] ` : '';
|
|
113
|
+
const header = `${timestampPrefix}${info.level.toLocaleUpperCase()} [${label}]: ${info.message}`;
|
|
114
|
+
const attrs = info.attrs;
|
|
115
|
+
if (!attrs || typeof attrs !== 'object' || Object.keys(attrs).length === 0) {
|
|
116
|
+
return header;
|
|
92
117
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
118
|
+
const lines = [header];
|
|
119
|
+
for (const [k, v] of Object.entries(attrs)) {
|
|
120
|
+
lines.push(` ${k}: ${WinstonNexxusLogger.safeStringify(v)}`);
|
|
96
121
|
}
|
|
97
|
-
return
|
|
122
|
+
return lines.join('\n');
|
|
98
123
|
});
|
|
99
|
-
format = Winston.format.combine(Winston.format.metadata({ fillExcept: ['message', 'level', 'timestamp', 'label'] }), format);
|
|
100
124
|
if (this.config.timestamps) {
|
|
101
125
|
format = Winston.format.combine(Winston.format.timestamp(), format);
|
|
102
126
|
}
|
|
@@ -107,19 +131,68 @@ export class WinstonNexxusLogger extends NexxusBaseLogger {
|
|
|
107
131
|
this.winston = Winston.createLogger({
|
|
108
132
|
level: this.config.level,
|
|
109
133
|
format,
|
|
110
|
-
transports:
|
|
111
|
-
new Winston.transports.Console()
|
|
112
|
-
]
|
|
134
|
+
transports: resolvedTransports
|
|
113
135
|
});
|
|
114
136
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
137
|
+
static async create(services) {
|
|
138
|
+
const config = services.configManager.getConfig('logger');
|
|
139
|
+
const resolvedTransports = await WinstonNexxusLogger.resolveTransports(config);
|
|
140
|
+
return new WinstonNexxusLogger(services, resolvedTransports);
|
|
141
|
+
}
|
|
142
|
+
static async resolveTransports(config) {
|
|
143
|
+
const entries = config.transports?.length
|
|
144
|
+
? config.transports
|
|
145
|
+
: [{ type: 'stdout' }];
|
|
146
|
+
const resolved = [];
|
|
147
|
+
for (const entry of entries) {
|
|
148
|
+
switch (entry.type) {
|
|
149
|
+
case 'stdout':
|
|
150
|
+
resolved.push(new Winston.transports.Console());
|
|
151
|
+
break;
|
|
152
|
+
case 'file': {
|
|
153
|
+
const fileEntry = entry;
|
|
154
|
+
resolved.push(new Winston.transports.File({
|
|
155
|
+
filename: fileEntry.filename,
|
|
156
|
+
maxsize: fileEntry.maxSize || 10485760,
|
|
157
|
+
maxFiles: fileEntry.maxFiles || 5,
|
|
158
|
+
zippedArchive: true
|
|
159
|
+
}));
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
default:
|
|
163
|
+
resolved.push(await WinstonNexxusLogger.loadCustomTransport(entry));
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return resolved;
|
|
167
|
+
}
|
|
168
|
+
static async loadCustomTransport(transport) {
|
|
169
|
+
let mod;
|
|
170
|
+
try {
|
|
171
|
+
mod = await import(transport.type);
|
|
172
|
+
}
|
|
173
|
+
catch (e) {
|
|
174
|
+
throw new InvalidConfigException(`Transport package "${transport.type}" could not be loaded — make sure it's installed in your deployment. Underlying error: ${e.message}`);
|
|
175
|
+
}
|
|
176
|
+
let TransportCtor;
|
|
177
|
+
if (transport.export) {
|
|
178
|
+
TransportCtor = mod[transport.export];
|
|
179
|
+
if (typeof TransportCtor !== 'function') {
|
|
180
|
+
throw new InvalidConfigException(`Transport package "${transport.type}" has no export named "${transport.export}" (or it isn't a class/function)`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
else if (typeof mod.default === 'function') {
|
|
184
|
+
TransportCtor = mod.default;
|
|
185
|
+
}
|
|
186
|
+
else if (typeof mod === 'function') {
|
|
187
|
+
TransportCtor = mod;
|
|
118
188
|
}
|
|
119
189
|
else {
|
|
120
|
-
|
|
190
|
+
throw new InvalidConfigException(`Could not find a transport class in package "${transport.type}". Specify "export" in the transport config to name the class.`);
|
|
121
191
|
}
|
|
122
|
-
|
|
192
|
+
return new TransportCtor(transport.options ?? {});
|
|
193
|
+
}
|
|
194
|
+
log(level, message, attributes, label) {
|
|
195
|
+
this.winston.log(level, message, { label, attrs: attributes });
|
|
123
196
|
}
|
|
124
197
|
}
|
|
125
198
|
//# sourceMappingURL=Logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/lib/Logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAuB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/lib/Logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
import { NexxusBaseModel } from "./BaseModel";
|
|
2
|
+
import { NexxusSchemaValidator } from "../common/SchemaValidator";
|
|
3
|
+
import { InvalidSchemaDataException } from "../lib/Exceptions";
|
|
2
4
|
export class NexxusAppModel extends NexxusBaseModel {
|
|
3
|
-
constructor(props) {
|
|
4
|
-
super(props);
|
|
5
|
+
constructor(props, appSchema) {
|
|
5
6
|
if (!props.appId) {
|
|
6
|
-
throw new Error('AppModel requires
|
|
7
|
+
throw new Error('AppModel requires AppId');
|
|
7
8
|
}
|
|
9
|
+
if (appSchema === null) {
|
|
10
|
+
super(props);
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const modelDef = appSchema[props.type];
|
|
14
|
+
if (!modelDef) {
|
|
15
|
+
throw new InvalidSchemaDataException(`Unknown app model type "${props.type}" for app "${props.appId}"`);
|
|
16
|
+
}
|
|
17
|
+
const normalized = NexxusSchemaValidator.validateAgainstSchema(props, modelDef);
|
|
18
|
+
super(normalized);
|
|
19
|
+
}
|
|
20
|
+
static fromStorage(props) {
|
|
21
|
+
return new NexxusAppModel(props, null);
|
|
8
22
|
}
|
|
9
23
|
}
|
|
10
24
|
//# sourceMappingURL=AppModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppModel.js","sourceRoot":"","sources":["../../src/models/AppModel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AppModel.js","sourceRoot":"","sources":["../../src/models/AppModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAoB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAiB/D,MAAM,OAAO,cAAe,SAAQ,eAAgC;IAUlE,YAAY,KAAsB,EAAE,SAAyC;QAC3E,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAGvB,KAAK,CAAC,KAAK,CAAC,CAAC;YAEb,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,0BAA0B,CAAC,2BAA2B,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QAC1G,CAAC;QAMD,MAAM,UAAU,GAAG,qBAAqB,CAAC,qBAAqB,CAC5D,KAAgC,EAChC,QAAQ,CACT,CAAC;QAEF,KAAK,CAAC,UAA6B,CAAC,CAAC;IACvC,CAAC;IAQM,MAAM,CAAC,WAAW,CAAC,KAAsB;QAC9C,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -1,46 +1,85 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MODEL_REGISTRY } from "./BaseModel";
|
|
2
|
+
import { NexxusBuiltinModel } from "./BuiltinModel";
|
|
3
|
+
import { NEXXUS_BUILTIN_MODEL_SCHEMAS, NEXXUS_RESERVED_FIELD_NAMES } from "../common/BuiltinSchemas";
|
|
2
4
|
import * as Dot from 'dot-prop';
|
|
3
|
-
export class NexxusApplication extends
|
|
5
|
+
export class NexxusApplication extends NexxusBuiltinModel {
|
|
4
6
|
constructor(data) {
|
|
5
7
|
super({ ...data, type: MODEL_REGISTRY.application });
|
|
6
8
|
if (Object.keys(data.schema).length === 0) {
|
|
7
9
|
throw new Error("Application schema cannot be empty");
|
|
8
10
|
}
|
|
11
|
+
for (const [modelName, modelDef] of Object.entries(data.schema)) {
|
|
12
|
+
for (const fieldName of Object.keys(modelDef)) {
|
|
13
|
+
if (NEXXUS_RESERVED_FIELD_NAMES.has(fieldName)) {
|
|
14
|
+
throw new Error(`Application schema: model "${modelName}" declares a field "${fieldName}", ` +
|
|
15
|
+
`which is a Nexxus-reserved name. Reserved: ${[...NEXXUS_RESERVED_FIELD_NAMES].join(', ')}.`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
9
19
|
if (data.description !== undefined && typeof data.description !== 'string') {
|
|
10
20
|
throw new Error("Application 'description' must be a string if provided");
|
|
11
21
|
}
|
|
12
22
|
if (data.name === undefined || typeof data.name !== 'string') {
|
|
13
23
|
throw new Error("Application 'name' is required and must be a string");
|
|
14
24
|
}
|
|
15
|
-
if (data.
|
|
16
|
-
throw new Error("Application '
|
|
25
|
+
if (data.defaultLimit !== undefined && (typeof data.defaultLimit !== 'number' || data.defaultLimit <= 10)) {
|
|
26
|
+
throw new Error("Application 'defaultLimit' must be a greater than 10 if provided");
|
|
27
|
+
}
|
|
28
|
+
data.defaultLimit = data.defaultLimit ?? 10;
|
|
29
|
+
if (data.maxLimit !== undefined && (typeof data.maxLimit !== 'number' || data.maxLimit <= 0 || data.maxLimit < data.defaultLimit)) {
|
|
30
|
+
throw new Error("Application 'maxLimit' must be a positive number if provided and must be greater than or equal to 'defaultLimit'");
|
|
17
31
|
}
|
|
18
|
-
|
|
32
|
+
data.maxLimit = data.maxLimit ?? 100;
|
|
33
|
+
if (data.auth) {
|
|
19
34
|
if (!data.userDetailSchema || typeof data.userDetailSchema !== 'object') {
|
|
20
35
|
throw new Error("Application 'userSchema' must be provided when 'authEnabled' is enabled");
|
|
21
36
|
}
|
|
22
|
-
if (typeof data.allowMultipleLogin !== 'boolean' && data.allowMultipleLogin !== undefined) {
|
|
23
|
-
throw new Error("Application 'allowMultipleLogin' must be a boolean when 'authEnabled' is enabled");
|
|
24
|
-
}
|
|
25
37
|
if (data.userTypes !== undefined && typeof data.userTypes !== 'object') {
|
|
26
38
|
throw new Error("Application 'userTypes' must be an object when 'authEnabled' is enabled");
|
|
27
39
|
}
|
|
28
|
-
|
|
40
|
+
if (!data.auth || typeof data.auth !== 'object') {
|
|
41
|
+
throw new Error("Application 'auth' must be provided when 'authEnabled' is enabled");
|
|
42
|
+
}
|
|
43
|
+
if (typeof data.auth.jwtSecret !== 'string' || data.auth.jwtSecret.length === 0) {
|
|
44
|
+
throw new Error("Application 'auth.jwtSecret' is required and must be a non-empty string when 'authEnabled' is enabled");
|
|
45
|
+
}
|
|
46
|
+
if (data.auth.jwtExpiresIn !== undefined && typeof data.auth.jwtExpiresIn !== 'string') {
|
|
47
|
+
throw new Error("Application 'auth.jwtExpiresIn' must be a string if provided");
|
|
48
|
+
}
|
|
49
|
+
if (!data.auth.strategies
|
|
50
|
+
|| typeof data.auth.strategies !== 'object'
|
|
51
|
+
|| Object.keys(data.auth.strategies).length === 0) {
|
|
52
|
+
throw new Error("Application 'auth.strategies' must be a non-empty object when 'authEnabled' is enabled");
|
|
53
|
+
}
|
|
29
54
|
this.data.userTypes = data.userTypes ? { ...data.userTypes, ...{ default: {} } } : { default: {} };
|
|
30
55
|
}
|
|
31
|
-
else {
|
|
32
|
-
this.data.allowMultipleLogin = null;
|
|
33
|
-
}
|
|
34
56
|
}
|
|
35
57
|
getSchema() {
|
|
36
58
|
return this.data.schema;
|
|
37
59
|
}
|
|
38
60
|
getUserDetailSchema(userType = 'default') {
|
|
39
|
-
if (!this.data.userDetailSchema) {
|
|
61
|
+
if (!this.hasAuthEnabled() || !this.data.userDetailSchema) {
|
|
40
62
|
return null;
|
|
41
63
|
}
|
|
42
64
|
return this.data.userDetailSchema[userType];
|
|
43
65
|
}
|
|
66
|
+
hasAuthEnabled() {
|
|
67
|
+
return !!this.data.auth;
|
|
68
|
+
}
|
|
69
|
+
getAppModelSchema(modelType) {
|
|
70
|
+
const appModelDef = this.data.schema[modelType];
|
|
71
|
+
if (!appModelDef) {
|
|
72
|
+
throw new Error(`Unknown app model type: ${modelType}`);
|
|
73
|
+
}
|
|
74
|
+
const appModelSchema = structuredClone(appModelDef);
|
|
75
|
+
if (this.hasAuthEnabled()) {
|
|
76
|
+
appModelSchema.userId = { type: 'string', required: true, filterable: true };
|
|
77
|
+
}
|
|
78
|
+
return appModelSchema;
|
|
79
|
+
}
|
|
80
|
+
static getModelSchema() {
|
|
81
|
+
return { ...NEXXUS_BUILTIN_MODEL_SCHEMAS.application };
|
|
82
|
+
}
|
|
44
83
|
getAppModelFieldType(modelType, fieldPath) {
|
|
45
84
|
const appModelFieldType = Dot.getProperty(this.getSchema(), `${modelType}.${fieldPath}.type`);
|
|
46
85
|
return appModelFieldType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Application.js","sourceRoot":"","sources":["../../src/models/Application.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Application.js","sourceRoot":"","sources":["../../src/models/Application.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseModel.js","sourceRoot":"","sources":["../../src/models/BaseModel.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"BaseModel.js","sourceRoot":"","sources":["../../src/models/BaseModel.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,MAAM;CACJ,CAAC;AAYX,MAAM,OAAgB,eAAe;IACzB,IAAI,CAAI;IAEX,MAAM,CAAU,SAAS,CAAqB;IAErD,YAAY,IAAO;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAC,IAAI,CAAC,CAAC;QAExC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QAC5B,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuiltinModel.js","sourceRoot":"","sources":["../../src/models/BuiltinModel.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAGhB,MAAM,aAAa,CAAC;AAErB,MAAM,OAAgB,kBAEpB,SAAQ,eAAkB;CAAG"}
|