@mayhem93/nexxus-core-lib 0.0.1 → 0.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.
Files changed (87) hide show
  1. package/dist-cjs/common/BuiltinSchemas.js +24 -5
  2. package/dist-cjs/common/BuiltinSchemas.js.map +1 -1
  3. package/dist-cjs/common/FilterQuery.js +5 -18
  4. package/dist-cjs/common/FilterQuery.js.map +1 -1
  5. package/dist-cjs/common/InferModel.js +3 -0
  6. package/dist-cjs/common/InferModel.js.map +1 -0
  7. package/dist-cjs/common/JsonPatch.js +42 -225
  8. package/dist-cjs/common/JsonPatch.js.map +1 -1
  9. package/dist-cjs/common/SchemaValidator.js +100 -29
  10. package/dist-cjs/common/SchemaValidator.js.map +1 -1
  11. package/dist-cjs/index.js +4 -0
  12. package/dist-cjs/index.js.map +1 -1
  13. package/dist-cjs/lib/BaseService.js +6 -6
  14. package/dist-cjs/lib/BaseService.js.map +1 -1
  15. package/dist-cjs/lib/ConfigManager.js +56 -25
  16. package/dist-cjs/lib/ConfigManager.js.map +1 -1
  17. package/dist-cjs/lib/ConfigProvider.js +14 -1
  18. package/dist-cjs/lib/ConfigProvider.js.map +1 -1
  19. package/dist-cjs/lib/Exceptions.js +22 -4
  20. package/dist-cjs/lib/Exceptions.js.map +1 -1
  21. package/dist-cjs/lib/Logger.js +138 -65
  22. package/dist-cjs/lib/Logger.js.map +1 -1
  23. package/dist-cjs/lib/ServiceResolver.js +57 -0
  24. package/dist-cjs/lib/ServiceResolver.js.map +1 -0
  25. package/dist-cjs/models/AppModel.js +17 -3
  26. package/dist-cjs/models/AppModel.js.map +1 -1
  27. package/dist-cjs/models/Application.js +51 -12
  28. package/dist-cjs/models/Application.js.map +1 -1
  29. package/dist-cjs/models/BaseModel.js.map +1 -1
  30. package/dist-cjs/models/BuiltinModel.js +8 -0
  31. package/dist-cjs/models/BuiltinModel.js.map +1 -0
  32. package/dist-cjs/models/User.js +12 -3
  33. package/dist-cjs/models/User.js.map +1 -1
  34. package/dist-esm/common/BuiltinSchemas.js +23 -4
  35. package/dist-esm/common/BuiltinSchemas.js.map +1 -1
  36. package/dist-esm/common/FilterQuery.js +6 -19
  37. package/dist-esm/common/FilterQuery.js.map +1 -1
  38. package/dist-esm/common/InferModel.js +2 -0
  39. package/dist-esm/common/InferModel.js.map +1 -0
  40. package/dist-esm/common/JsonPatch.js +44 -227
  41. package/dist-esm/common/JsonPatch.js.map +1 -1
  42. package/dist-esm/common/SchemaValidator.js +100 -29
  43. package/dist-esm/common/SchemaValidator.js.map +1 -1
  44. package/dist-esm/index.js +4 -0
  45. package/dist-esm/index.js.map +1 -1
  46. package/dist-esm/lib/BaseService.js +8 -8
  47. package/dist-esm/lib/BaseService.js.map +1 -1
  48. package/dist-esm/lib/ConfigManager.js +56 -25
  49. package/dist-esm/lib/ConfigManager.js.map +1 -1
  50. package/dist-esm/lib/ConfigProvider.js +14 -1
  51. package/dist-esm/lib/ConfigProvider.js.map +1 -1
  52. package/dist-esm/lib/Exceptions.js +20 -3
  53. package/dist-esm/lib/Exceptions.js.map +1 -1
  54. package/dist-esm/lib/Logger.js +139 -66
  55. package/dist-esm/lib/Logger.js.map +1 -1
  56. package/dist-esm/lib/ServiceResolver.js +52 -0
  57. package/dist-esm/lib/ServiceResolver.js.map +1 -0
  58. package/dist-esm/models/AppModel.js +17 -3
  59. package/dist-esm/models/AppModel.js.map +1 -1
  60. package/dist-esm/models/Application.js +52 -13
  61. package/dist-esm/models/Application.js.map +1 -1
  62. package/dist-esm/models/BaseModel.js.map +1 -1
  63. package/dist-esm/models/BuiltinModel.js +4 -0
  64. package/dist-esm/models/BuiltinModel.js.map +1 -0
  65. package/dist-esm/models/User.js +11 -2
  66. package/dist-esm/models/User.js.map +1 -1
  67. package/dist-types/common/BuiltinSchemas.d.ts +59 -5
  68. package/dist-types/common/FilterQuery.d.ts +3 -11
  69. package/dist-types/common/InferModel.d.ts +29 -0
  70. package/dist-types/common/JsonPatch.d.ts +4 -45
  71. package/dist-types/common/ModelTypes.d.ts +1 -0
  72. package/dist-types/common/QueuePayloads.d.ts +48 -26
  73. package/dist-types/common/SchemaValidator.d.ts +42 -2
  74. package/dist-types/index.d.ts +4 -0
  75. package/dist-types/lib/BaseService.d.ts +51 -1
  76. package/dist-types/lib/ConfigManager.d.ts +50 -13
  77. package/dist-types/lib/ConfigProvider.d.ts +6 -0
  78. package/dist-types/lib/Exceptions.d.ts +15 -2
  79. package/dist-types/lib/Logger.d.ts +84 -14
  80. package/dist-types/lib/ServiceResolver.d.ts +23 -0
  81. package/dist-types/models/AppModel.d.ts +31 -5
  82. package/dist-types/models/Application.d.ts +36 -8
  83. package/dist-types/models/BaseModel.d.ts +14 -12
  84. package/dist-types/models/BuiltinModel.d.ts +3 -0
  85. package/dist-types/models/User.d.ts +15 -13
  86. package/package.json +4 -4
  87. package/src/schemas/winston-logger.schema.json +51 -6
@@ -1,40 +1,111 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NexxusSchemaValidator = void 0;
4
+ const Exceptions_1 = require("../lib/Exceptions");
4
5
  class NexxusSchemaValidator {
5
- static validateUserDetails(partialDetails, userDetailSchema) {
6
- for (const field in partialDetails) {
7
- const fieldDef = userDetailSchema[field];
8
- const fieldValue = partialDetails[field];
6
+ static validateAgainstSchema(data, modelDef) {
7
+ if (!data || typeof data !== 'object' || Array.isArray(data)) {
8
+ throw new Exceptions_1.InvalidSchemaDataException(`Schema validation: input must be a non-null object`);
9
+ }
10
+ const result = { ...data };
11
+ for (const [fieldName, value] of Object.entries(data)) {
12
+ if (fieldName === 'version') {
13
+ throw new Exceptions_1.InvalidSchemaDataException(`Field "version" is a system-managed Nexxus field and cannot be set by user input`);
14
+ }
15
+ const fieldDef = modelDef[fieldName];
9
16
  if (!fieldDef) {
10
- return false;
17
+ continue;
11
18
  }
12
- switch (fieldDef.type) {
13
- case 'string':
14
- if (typeof fieldValue !== 'string')
15
- return false;
16
- break;
17
- case 'number':
18
- if (typeof fieldValue !== 'number')
19
- return false;
20
- break;
21
- case 'boolean':
22
- if (typeof fieldValue !== 'boolean')
23
- return false;
24
- break;
25
- case 'object':
26
- if (typeof fieldValue !== 'object' || Array.isArray(fieldValue))
27
- return false;
28
- break;
29
- case 'array':
30
- if (!Array.isArray(fieldValue))
31
- return false;
32
- break;
33
- default:
34
- return false;
19
+ result[fieldName] = NexxusSchemaValidator.validateValue(value, fieldDef, fieldName);
20
+ }
21
+ return result;
22
+ }
23
+ static validateValue(value, fieldDef, path) {
24
+ switch (fieldDef.type) {
25
+ case 'string':
26
+ return NexxusSchemaValidator.validateString(value, path);
27
+ case 'number':
28
+ return NexxusSchemaValidator.validateNumber(value, path);
29
+ case 'boolean':
30
+ return NexxusSchemaValidator.validateBoolean(value, path);
31
+ case 'date':
32
+ return NexxusSchemaValidator.validateDate(value, path);
33
+ case 'object':
34
+ return NexxusSchemaValidator.validateObject(value, fieldDef, path);
35
+ case 'array':
36
+ return NexxusSchemaValidator.validateArray(value, fieldDef, path);
37
+ default:
38
+ throw new Exceptions_1.InvalidSchemaDataException(`Unknown field type at path "${path}"`);
39
+ }
40
+ }
41
+ static validateString(value, path) {
42
+ if (typeof value !== 'string') {
43
+ throw new Exceptions_1.InvalidSchemaDataException(`Expected string at path "${path}", got ${typeof value}`);
44
+ }
45
+ return value;
46
+ }
47
+ static validateNumber(value, path) {
48
+ if (typeof value !== 'number' || !Number.isFinite(value)) {
49
+ throw new Exceptions_1.InvalidSchemaDataException(`Expected number at path "${path}", got ${typeof value}`);
50
+ }
51
+ return value;
52
+ }
53
+ static validateBoolean(value, path) {
54
+ if (typeof value !== 'boolean') {
55
+ throw new Exceptions_1.InvalidSchemaDataException(`Expected boolean at path "${path}", got ${typeof value}`);
56
+ }
57
+ return value;
58
+ }
59
+ static validateDate(value, path) {
60
+ if (typeof value === 'number' && Number.isFinite(value)) {
61
+ return value;
62
+ }
63
+ if (typeof value === 'string') {
64
+ const asNum = Number(value);
65
+ if (Number.isFinite(asNum)) {
66
+ return asNum;
67
+ }
68
+ const ts = new Date(value).getTime();
69
+ if (Number.isFinite(ts)) {
70
+ return Math.floor(ts);
71
+ }
72
+ }
73
+ throw new Exceptions_1.InvalidSchemaDataException(`Expected valid date at path "${path}", got "${String(value)}"`);
74
+ }
75
+ static validateObject(value, fieldDef, path) {
76
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
77
+ throw new Exceptions_1.InvalidSchemaDataException(`Expected object at path "${path}"`);
78
+ }
79
+ const input = value;
80
+ const result = { ...input };
81
+ for (const [key, propDef] of Object.entries(fieldDef.properties)) {
82
+ if (key in input) {
83
+ result[key] = NexxusSchemaValidator.validateValue(input[key], propDef, `${path}.${key}`);
35
84
  }
36
85
  }
37
- return true;
86
+ return result;
87
+ }
88
+ static validateArray(value, fieldDef, path) {
89
+ if (!Array.isArray(value)) {
90
+ throw new Exceptions_1.InvalidSchemaDataException(`Expected array at path "${path}"`);
91
+ }
92
+ return value.map((element, index) => {
93
+ const elementPath = `${path}[${index}]`;
94
+ if (fieldDef.arrayType === 'object') {
95
+ if (!fieldDef.properties) {
96
+ throw new Exceptions_1.InvalidSchemaDataException(`Array of objects at "${path}" is missing properties definition`);
97
+ }
98
+ const objFieldDef = {
99
+ type: 'object',
100
+ properties: fieldDef.properties,
101
+ };
102
+ return NexxusSchemaValidator.validateObject(element, objFieldDef, elementPath);
103
+ }
104
+ const primitiveFieldDef = {
105
+ type: fieldDef.arrayType,
106
+ };
107
+ return NexxusSchemaValidator.validateValue(element, primitiveFieldDef, elementPath);
108
+ });
38
109
  }
39
110
  }
40
111
  exports.NexxusSchemaValidator = NexxusSchemaValidator;
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaValidator.js","sourceRoot":"","sources":["../../src/common/SchemaValidator.ts"],"names":[],"mappings":";;;AAEA,MAAa,qBAAqB;IACzB,MAAM,CAAC,mBAAmB,CAAC,cAAmC,EAAE,gBAAwC;QAC7G,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YAEzC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,KAAK,CAAC;YACf,CAAC;YAED,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACtB,KAAK,QAAQ;oBACX,IAAI,OAAO,UAAU,KAAK,QAAQ;wBAAE,OAAO,KAAK,CAAC;oBACjD,MAAM;gBACR,KAAK,QAAQ;oBACX,IAAI,OAAO,UAAU,KAAK,QAAQ;wBAAE,OAAO,KAAK,CAAC;oBACjD,MAAM;gBACR,KAAK,SAAS;oBACZ,IAAI,OAAO,UAAU,KAAK,SAAS;wBACjC,OAAO,KAAK,CAAC;oBACf,MAAM;gBACR,KAAK,QAAQ;oBACX,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAC9E,MAAM;gBACR,KAAK,OAAO;oBACV,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAC7C,MAAM;gBACR;oBACE,OAAO,KAAK,CAAC;YACjB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAlCD,sDAkCC"}
1
+ {"version":3,"file":"SchemaValidator.js","sourceRoot":"","sources":["../../src/common/SchemaValidator.ts"],"names":[],"mappings":"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"}
package/dist-cjs/index.js CHANGED
@@ -7,10 +7,14 @@ tslib_1.__exportStar(require("./lib/ConfigProvider"), exports);
7
7
  tslib_1.__exportStar(require("./lib/ConfigManager"), exports);
8
8
  tslib_1.__exportStar(require("./lib/BaseService"), exports);
9
9
  tslib_1.__exportStar(require("./lib/Logger"), exports);
10
+ tslib_1.__exportStar(require("./lib/ServiceResolver"), exports);
10
11
  tslib_1.__exportStar(require("./common/QueuePayloads"), exports);
11
12
  tslib_1.__exportStar(require("./common/JsonPatch"), exports);
12
13
  tslib_1.__exportStar(require("./common/FilterQuery"), exports);
14
+ tslib_1.__exportStar(require("./common/InferModel"), exports);
15
+ tslib_1.__exportStar(require("./common/SchemaValidator"), exports);
13
16
  tslib_1.__exportStar(require("./models/BaseModel"), exports);
17
+ tslib_1.__exportStar(require("./models/BuiltinModel"), exports);
14
18
  tslib_1.__exportStar(require("./common/BuiltinSchemas"), exports);
15
19
  tslib_1.__exportStar(require("./models/AppModel"), exports);
16
20
  tslib_1.__exportStar(require("./models/Application"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,2DAAiC;AACjC,+DAAqC;AACrC,8DAAoC;AACpC,4DAAkC;AAClC,uDAA6B;AAE7B,iEAAuC;AACvC,6DAAmC;AACnC,+DAAqC;AACrC,6DAAmC;AACnC,kEAAwC;AACxC,4DAAkC;AAClC,+DAAqC;AACrC,wDAA8B;AAEjB,QAAA,gBAAgB,GAAG,KAAK,CAAC;AACzB,QAAA,gBAAgB,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,2DAAiC;AACjC,+DAAqC;AACrC,8DAAoC;AACpC,4DAAkC;AAClC,uDAA6B;AAC7B,gEAAsC;AAEtC,iEAAuC;AACvC,6DAAmC;AACnC,+DAAqC;AACrC,8DAAoC;AACpC,mEAAyC;AACzC,6DAAmC;AACnC,gEAAsC;AACtC,kEAAwC;AACxC,4DAAkC;AAClC,+DAAqC;AACrC,wDAA8B;AAEjB,QAAA,gBAAgB,GAAG,KAAK,CAAC;AACzB,QAAA,gBAAgB,GAAG,KAAK,CAAC"}
@@ -37,6 +37,7 @@ class NexxusBaseService extends TypedEventEmitter {
37
37
  config;
38
38
  static envVars;
39
39
  static cliArgs;
40
+ static configRootKey;
40
41
  static schemaPath;
41
42
  static schemaContents;
42
43
  constructor(config) {
@@ -59,18 +60,17 @@ class NexxusBaseService extends TypedEventEmitter {
59
60
  if (!this.schemaPath) {
60
61
  throw new Exceptions_1.FatalErrorException(`Schema path not set for ${this.name} class.`);
61
62
  }
63
+ if (!this.configRootKey) {
64
+ throw new Exceptions_1.FatalErrorException(`configRootKey not set for ${this.name} class. ` +
65
+ 'This static must declare the top-level key under which this service\'s config sits in the merged root config.');
66
+ }
62
67
  if (!this.schemaContents) {
63
68
  this.schemaContents = fs.readFileSync(this.schemaPath, 'utf-8');
64
69
  }
65
70
  const definition = JSON.parse(this.schemaContents);
66
- if (!definition.$comment) {
67
- throw new Exceptions_1.FatalErrorException(`Schema for ${this.name} is missing $comment field. ` +
68
- 'This field is required to specify where in the main config this specific configuration ' +
69
- 'should be placed.');
70
- }
71
71
  return {
72
72
  name: this.name,
73
- where: definition.$comment,
73
+ where: this.configRootKey,
74
74
  definition,
75
75
  required: true
76
76
  };
@@ -1 +1 @@
1
- {"version":3,"file":"BaseService.js","sourceRoot":"","sources":["../../src/lib/BaseService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseService.js","sourceRoot":"","sources":["../../src/lib/BaseService.ts"],"names":[],"mappings":"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"}
@@ -10,17 +10,22 @@ const deepmerge_1 = tslib_1.__importDefault(require("deepmerge"));
10
10
  const fs = tslib_1.__importStar(require("node:fs"));
11
11
  const path = tslib_1.__importStar(require("node:path"));
12
12
  class NexxusConfigManager {
13
- static CONF_FILE_NAME = "nexxus.conf.json";
13
+ static CONF_FILE_NAME = 'nexxus.conf.json';
14
+ static DEFAULT_CONF_PATH = '/etc/nexxus';
14
15
  jsonSchema;
15
16
  envVarsSpecs = [];
16
17
  cliArgsSpecs = [];
17
18
  data = {};
18
19
  configProviders = [];
19
20
  customProviders = [];
20
- constructor(confFile) {
21
+ registeredServices = new Set();
22
+ dataInitialized = false;
23
+ hasNewRegistrations = false;
24
+ constructor(configFilePath) {
21
25
  const schemaPath = path.join(__dirname, "../../src/schemas/root.schema.json");
26
+ const resolvedConfPath = path.resolve(configFilePath || process.env.NXX_CONF_PATH || path.join(NexxusConfigManager.DEFAULT_CONF_PATH, NexxusConfigManager.CONF_FILE_NAME));
22
27
  this.jsonSchema = JSON.parse(fs.readFileSync(schemaPath, 'utf-8'));
23
- this.configProviders.push(new ConfigProvider_1.NexxusFileConfigProvider(path.join(process.cwd(), confFile ?? NexxusConfigManager.CONF_FILE_NAME)));
28
+ this.configProviders.push(new ConfigProvider_1.NexxusFileConfigProvider(resolvedConfPath));
24
29
  this.configProviders.push(new ConfigProvider_1.NexxusEnvVarsConfigProvider());
25
30
  this.configProviders.push(new ConfigProvider_1.NexxusCliArgConfigProvider());
26
31
  }
@@ -41,19 +46,30 @@ class NexxusConfigManager {
41
46
  this.jsonSchema.required.push(def.where);
42
47
  }
43
48
  }
44
- validateServices(svcs) {
45
- for (const NxxSvc of svcs) {
46
- this.addCliArgsToSpec(NxxSvc.cliArgConfig());
47
- this.addEnvVarsToSpec(NxxSvc.envVarConfig());
48
- this.addJsonSchemaDef(NxxSvc.schema());
49
+ registerService(svc) {
50
+ if (this.registeredServices.has(svc.name)) {
51
+ return;
49
52
  }
50
- this.validate();
51
- }
52
- addCliArgsToSpec(cliArgSpec) {
53
- this.cliArgsSpecs.push(cliArgSpec);
53
+ const schemaDef = svc.schema();
54
+ const className = svc.name;
55
+ const configRootKey = schemaDef.where;
56
+ this.cliArgsSpecs.push({ className, configRootKey, specs: svc.cliArgConfig() });
57
+ this.envVarsSpecs.push({ className, configRootKey, specs: svc.envVarConfig() });
58
+ this.addJsonSchemaDef(schemaDef);
59
+ this.registeredServices.add(className);
60
+ this.hasNewRegistrations = true;
54
61
  }
55
- addEnvVarsToSpec(envVarSpec) {
56
- this.envVarsSpecs.push(envVarSpec);
62
+ async validateServices(svcs) {
63
+ if (svcs) {
64
+ for (const svc of svcs) {
65
+ this.registerService(svc);
66
+ }
67
+ }
68
+ if (!this.hasNewRegistrations) {
69
+ return;
70
+ }
71
+ await this.validate();
72
+ this.hasNewRegistrations = false;
57
73
  }
58
74
  populateFromCliArgs() {
59
75
  if (this.cliArgsSpecs.length === 0) {
@@ -65,9 +81,9 @@ class NexxusConfigManager {
65
81
  spec.specs.forEach((arg) => {
66
82
  if (collectedNames.has(arg.name)) {
67
83
  throw new Exceptions_1.InvalidConfigException(`Duplicate CLI argument name: "${arg.name}".
68
- Defined first by source: "${collectedNames.get(arg.name)}" and now by source: "${spec.source}"`);
84
+ Defined first by class "${collectedNames.get(arg.name)}" and now by class "${spec.className}"`);
69
85
  }
70
- collectedNames.set(arg.name, spec.source);
86
+ collectedNames.set(arg.name, spec.className);
71
87
  cliArgProvider.addArgument(arg.name, arg.type);
72
88
  });
73
89
  });
@@ -75,7 +91,7 @@ class NexxusConfigManager {
75
91
  this.cliArgsSpecs.forEach(spec => {
76
92
  spec.specs.forEach(arg => {
77
93
  if (parsed[arg.name] !== undefined && parsed[arg.name] !== null) {
78
- Dot.setProperty(this.data, arg.location, parsed[arg.name]);
94
+ Dot.setProperty(this.data, `${spec.configRootKey}.${arg.location}`, parsed[arg.name]);
79
95
  }
80
96
  });
81
97
  });
@@ -91,14 +107,14 @@ class NexxusConfigManager {
91
107
  this.envVarsSpecs.forEach(spec => {
92
108
  spec.specs.forEach(envVar => {
93
109
  if (collectedNames.has(envVar.name)) {
94
- throw new Exceptions_1.InvalidConfigException(`Duplicate Env var: "${prefix}_${envVar.name}".
95
- Defined first by source: "${collectedNames.get(envVar.name)}" and now by source: "${spec.source}"`);
110
+ throw new Exceptions_1.InvalidConfigException(`Duplicate Env var: "${prefix}${envVar.name}".
111
+ Defined first by class "${collectedNames.get(envVar.name)}" and now by class "${spec.className}"`);
96
112
  }
97
113
  const value = envResult?.[`${prefix}${envVar.name}`];
98
114
  if (value !== undefined) {
99
- Dot.setProperty(this.data, envVar.location, value);
115
+ Dot.setProperty(this.data, `${spec.configRootKey}.${envVar.location}`, value);
100
116
  }
101
- collectedNames.set(envVar.name, spec.source);
117
+ collectedNames.set(envVar.name, spec.className);
102
118
  });
103
119
  });
104
120
  }
@@ -114,12 +130,27 @@ class NexxusConfigManager {
114
130
  }).join('\n');
115
131
  }
116
132
  async validate() {
117
- const fileConfigProvider = this.configProviders[0];
118
- this.data = fileConfigProvider.getConfig();
119
- await this.populateFromCustomProviders();
133
+ if (!this.dataInitialized) {
134
+ const fileConfigProvider = this.configProviders[0];
135
+ try {
136
+ this.data = fileConfigProvider.getConfig();
137
+ }
138
+ catch (e) {
139
+ if (e instanceof Exceptions_1.FatalErrorException) {
140
+ if (e.subcode === Exceptions_1.FatalErrorException.SUBCODES.CONFIG_FILE_NOT_FOUND) {
141
+ this.data = {};
142
+ }
143
+ else {
144
+ throw e;
145
+ }
146
+ }
147
+ }
148
+ await this.populateFromCustomProviders();
149
+ this.dataInitialized = true;
150
+ }
120
151
  this.populateFromCliArgs();
121
152
  this.populateFromEnvVars();
122
- const ajv = new ajv_1.Ajv();
153
+ const ajv = new ajv_1.Ajv({ useDefaults: true });
123
154
  const validator = ajv.compile(this.jsonSchema);
124
155
  const result = validator(this.data);
125
156
  if (!result) {
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/lib/ConfigManager.ts"],"names":[],"mappings":";;;;AAAA,6CAA2E;AAE3E,qDAO0B;AAE1B,6BAAuC;AACvC,sDAAgC;AAChC,kEAAkC;AAGlC,oDAA8B;AAC9B,wDAAkC;AAgClC,MAAa,mBAAmB;IACtB,MAAM,CAAC,cAAc,GAAsB,kBAAkB,CAAC;IAE9D,UAAU,CAAc;IACxB,YAAY,GAAyB,EAAE,CAAC;IACxC,YAAY,GAAyB,EAAE,CAAC;IACxC,IAAI,GAAiB,EAAE,CAAC;IAExB,eAAe,GAAkC,EAAE,CAAC;IACpD,eAAe,GAAkC,EAAE,CAAC;IAE5D,YAAY,QAAkB;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oCAAoC,CAAC,CAAC;QAE9E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,yCAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,IAAI,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAClI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,4CAA2B,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,2CAA0B,EAAE,CAAC,CAAC;IAC9D,CAAC;IAEM,iBAAiB,CAAC,QAA+B;QACtD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAEO,gBAAgB,CAAC,GAA4B;QAGnD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAA;QAClD,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,GAAG,CAAC,IAAI,EAAE,EAA2B,CAAC;QACrG,CAAC;QAED,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;YAChC,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAEM,gBAAgB,CAAC,IAAsC;QAC5D,KAAI,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAEO,gBAAgB,CAAC,UAAyB;QAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAEO,gBAAgB,CAAC,UAAyB;QAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAyB,IAAI,GAAG,EAAE,CAAC;QACvD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAA+B,CAAC;QAEjF,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACzB,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,MAAM,IAAI,mCAAsB,CAAC,iCAAiC,GAAG,CAAC,IAAI;wCAC5C,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBACrG,CAAC;gBAED,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAE1C,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC;QAE1C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACvB,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBAChE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;QACtD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAgC,CAAC;QAClF,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,4CAA2B,CAAC,cAAc,CAAC;QAE1D,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC1B,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,MAAM,IAAI,mCAAsB,CAAC,uBAAuB,MAAM,IAAI,MAAM,CAAC,IAAI;wCAC/C,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBACxG,CAAC;gBAED,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAErD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACrD,CAAC;gBAED,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,2BAA2B;QACvC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC;YAE1C,IAAI,CAAC,IAAI,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,MAAyB;QAC/C,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACtB,OAAO,KAAK,GAAG,CAAC,YAAY,IAAI,OAAO,QAAQ,GAAG,CAAC,OAAO,IAAI,CAAC;QACjE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAA6B,CAAC;QAE/E,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,SAAS,EAAE,CAAC;QAE3C,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACzC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,MAAM,GAAG,GAAG,IAAI,SAAG,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAa,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAA2B,CAAC,CAAC;YAErF,MAAM,IAAI,gCAAmB,CAAC,kCAAkC,GAAG,gBAAgB,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAEM,SAAS,CAAC,KAAc;QAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;;AAlKH,kDAmKC"}
1
+ {"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/lib/ConfigManager.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,15 @@ class NexxusFileConfigProvider extends NexxusConfigProvider {
22
22
  fs.accessSync(this.filePath);
23
23
  }
24
24
  catch (e) {
25
- throw new Exceptions_1.FatalErrorException(`Cannot access config file "${this.filePath}": ${e.message}`);
25
+ if (e.code === 'ENOENT') {
26
+ throw new Exceptions_1.FatalErrorException(`Cannot access config file "${this.filePath}": ${e.message}`, Exceptions_1.FatalErrorException.SUBCODES.CONFIG_FILE_NOT_FOUND);
27
+ }
28
+ else if (e.code === 'EACCES') {
29
+ throw new Exceptions_1.FatalErrorException(`Cannot access config file "${this.filePath}": ${e.message}`, Exceptions_1.FatalErrorException.SUBCODES.CONFIG_FILE_UNREADABLE);
30
+ }
31
+ else {
32
+ throw new Exceptions_1.FatalErrorException(`Failed reading config file "${this.filePath}": ${e.message}`);
33
+ }
26
34
  }
27
35
  return JSON.parse(fs.readFileSync(this.filePath, 'utf-8'));
28
36
  }
@@ -44,6 +52,7 @@ exports.NexxusEnvVarsConfigProvider = NexxusEnvVarsConfigProvider;
44
52
  class NexxusCliArgConfigProvider extends NexxusConfigProvider {
45
53
  argParser;
46
54
  originalExit;
55
+ addedArgs = new Set();
47
56
  constructor() {
48
57
  super();
49
58
  this.argParser = new argparse_1.ArgumentParser({ add_help: false, usage: argparse_1.SUPPRESS });
@@ -55,7 +64,11 @@ class NexxusCliArgConfigProvider extends NexxusConfigProvider {
55
64
  };
56
65
  }
57
66
  addArgument(name, type) {
67
+ if (this.addedArgs.has(name)) {
68
+ return;
69
+ }
58
70
  this.argParser.add_argument(`--${name}`, { type: type, dest: name, required: false });
71
+ this.addedArgs.add(name);
59
72
  }
60
73
  getConfig() {
61
74
  return this.argParser.parse_args();
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigProvider.js","sourceRoot":"","sources":["../../src/lib/ConfigProvider.ts"],"names":[],"mappings":";;;;AAAA,6CAAmD;AAEnD,+CAAyB;AAEzB,uCAAoD;AASpD,MAAsB,oBAAoB;CAEzC;AAFD,oDAEC;AAED,MAAsB,yBAAyB;CAE9C;AAFD,8DAEC;AAED,MAAa,wBAAyB,SAAQ,oBAAoB;IAC5C;IAApB,YAAoB,QAAgB;QAClC,KAAK,EAAE,CAAC;QADU,aAAQ,GAAR,QAAQ,CAAQ;IAEpC,CAAC;IAEM,SAAS;QACd,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,gCAAmB,CAAC,8BAA8B,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9F,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAiB,CAAC;IAC7E,CAAC;CACF;AAdD,4DAcC;AAED,MAAa,2BAA4B,SAAQ,oBAAoB;IACnE,MAAM,CAAC,cAAc,GAAsB,MAAM,CAAC;IAE3C,SAAS;QACd,MAAM,MAAM,GAAkB,EAAE,CAAC;QAEjC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACrC,IAAI,GAAG,CAAC,UAAU,CAAC,2BAA2B,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC/D,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAW,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;;AAbH,kEAcC;AAED,MAAa,0BAA2B,SAAQ,oBAAoB;IAC1D,SAAS,CAAiB;IAC1B,YAAY,CAA4C;IAEhE;QACE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,SAAS,GAAG,IAAI,yBAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAQ,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,MAAc,EAAE,OAAe,EAAE,EAAE;YACxD,IAAI,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACrC,CAAC;QACH,CAAC,CAAA;IACH,CAAC;IAEM,WAAW,CAAC,IAAY,EAAE,IAAgB;QAC/C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACxF,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;CACF;AAvBD,gEAuBC"}
1
+ {"version":3,"file":"ConfigProvider.js","sourceRoot":"","sources":["../../src/lib/ConfigProvider.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InvalidUserModelException = exports.InvalidQueryFilterException = exports.InvalidJsonPatchException = exports.InvalidConfigException = exports.ConnectionException = exports.BadRequestException = exports.FatalErrorException = exports.NexxusException = exports.NexxusExceptions = void 0;
3
+ exports.InvalidUserModelException = exports.InvalidSchemaDataException = exports.InvalidQueryFilterException = exports.InvalidJsonPatchException = exports.InvalidConfigException = exports.ConnectionException = exports.BadRequestException = exports.FatalErrorException = exports.NexxusException = exports.NexxusExceptions = void 0;
4
4
  var NexxusExceptions;
5
5
  (function (NexxusExceptions) {
6
6
  NexxusExceptions["FATAL_ERROR"] = "FatalErrorException";
@@ -9,19 +9,31 @@ var NexxusExceptions;
9
9
  NexxusExceptions["INVALID_CONFIG"] = "InvalidConfigException";
10
10
  NexxusExceptions["INVALID_JSON_PATCH"] = "InvalidJsonPatchException";
11
11
  NexxusExceptions["INVALID_QUERY_FILTER"] = "InvalidQueryFilterException";
12
+ NexxusExceptions["INVALID_SCHEMA_DATA"] = "InvalidSchemaDataException";
12
13
  NexxusExceptions["INVALID_USER_MODEL"] = "InvalidUserModelException";
13
14
  })(NexxusExceptions || (exports.NexxusExceptions = NexxusExceptions = {}));
14
15
  ;
15
16
  class NexxusException extends Error {
16
- constructor(type, message) {
17
+ subcode;
18
+ constructor(type, message, subcode) {
17
19
  super(message);
18
20
  this.name = type;
21
+ this.subcode = subcode;
19
22
  }
20
23
  }
21
24
  exports.NexxusException = NexxusException;
25
+ var FatalErrorSubcodes;
26
+ (function (FatalErrorSubcodes) {
27
+ FatalErrorSubcodes["CONFIG_FILE_NOT_FOUND"] = "CONFIG_FILE_NOT_FOUND";
28
+ FatalErrorSubcodes["CONFIG_FILE_INVALID_JSON"] = "CONFIG_FILE_INVALID_JSON";
29
+ FatalErrorSubcodes["CONFIG_FILE_INVALID_SCHEMA"] = "CONFIG_FILE_INVALID_SCHEMA";
30
+ FatalErrorSubcodes["CONFIG_FILE_UNREADABLE"] = "CONFIG_FILE_UNREADABLE";
31
+ })(FatalErrorSubcodes || (FatalErrorSubcodes = {}));
32
+ ;
22
33
  class FatalErrorException extends NexxusException {
23
- constructor(message) {
24
- super(NexxusExceptions.FATAL_ERROR, message);
34
+ static SUBCODES = FatalErrorSubcodes;
35
+ constructor(message, subcode) {
36
+ super(NexxusExceptions.FATAL_ERROR, message, subcode);
25
37
  }
26
38
  }
27
39
  exports.FatalErrorException = FatalErrorException;
@@ -55,6 +67,12 @@ class InvalidQueryFilterException extends NexxusException {
55
67
  }
56
68
  }
57
69
  exports.InvalidQueryFilterException = InvalidQueryFilterException;
70
+ class InvalidSchemaDataException extends NexxusException {
71
+ constructor(message) {
72
+ super(NexxusExceptions.INVALID_SCHEMA_DATA, message);
73
+ }
74
+ }
75
+ exports.InvalidSchemaDataException = InvalidSchemaDataException;
58
76
  class InvalidUserModelException extends NexxusException {
59
77
  constructor(message) {
60
78
  super(NexxusExceptions.INVALID_USER_MODEL, message);
@@ -1 +1 @@
1
- {"version":3,"file":"Exceptions.js","sourceRoot":"","sources":["../../src/lib/Exceptions.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAQX;AARD,WAAY,gBAAgB;IAC1B,uDAAmC,CAAA;IACnC,uDAAmC,CAAA;IACnC,iEAA6C,CAAA;IAC7C,6DAAyC,CAAA;IACzC,oEAAgD,CAAA;IAChD,wEAAoD,CAAA;IACpD,oEAAgD,CAAA;AAClD,CAAC,EARW,gBAAgB,gCAAhB,gBAAgB,QAQ3B;AAAA,CAAC;AAEF,MAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AALD,0CAKC;AAED,MAAa,mBAAoB,SAAQ,eAAe;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF;AAJD,kDAIC;AAED,MAAa,mBAAoB,SAAQ,eAAe;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF;AAJD,kDAIC;AAED,MAAa,mBAAoB,SAAQ,eAAe;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;CACF;AAJD,kDAIC;AAED,MAAa,sBAAuB,SAAQ,eAAe;IACzD,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;CACF;AAJD,wDAIC;AAED,MAAa,yBAA0B,SAAQ,eAAe;IAC5D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;CACF;AAJD,8DAIC;AAED,MAAa,2BAA4B,SAAQ,eAAe;IAC9D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;CACF;AAJD,kEAIC;AAED,MAAa,yBAA0B,SAAQ,eAAe;IAC5D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;CACF;AAJD,8DAIC"}
1
+ {"version":3,"file":"Exceptions.js","sourceRoot":"","sources":["../../src/lib/Exceptions.ts"],"names":[],"mappings":";;;AAAA,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,gCAAhB,gBAAgB,QAS3B;AAAA,CAAC;AAEF,MAAa,eAAgB,SAAQ,KAAK;IACxB,OAAO,CAAU;IAEjC,YAAY,IAAY,EAAE,OAAe,EAAE,OAAgB;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AARD,0CAQC;AAED,IAAK,kBAKJ;AALD,WAAK,kBAAkB;IACrB,qEAA+C,CAAA;IAC/C,2EAAqD,CAAA;IACrD,+EAAyD,CAAA;IACzD,uEAAiD,CAAA;AACnD,CAAC,EALI,kBAAkB,KAAlB,kBAAkB,QAKtB;AAAA,CAAC;AAEF,MAAa,mBAAoB,SAAQ,eAAe;IAC/C,MAAM,CAAC,QAAQ,GAAyC,kBAAkB,CAAC;IAElF,YAAY,OAAe,EAAE,OAA4B;QACvD,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;;AALH,kDAMC;AAED,MAAa,mBAAoB,SAAQ,eAAe;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF;AAJD,kDAIC;AAED,MAAa,mBAAoB,SAAQ,eAAe;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;CACF;AAJD,kDAIC;AAED,MAAa,sBAAuB,SAAQ,eAAe;IACzD,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;CACF;AAJD,wDAIC;AAED,MAAa,yBAA0B,SAAQ,eAAe;IAC5D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;CACF;AAJD,8DAIC;AAED,MAAa,2BAA4B,SAAQ,eAAe;IAC9D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;CACF;AAJD,kEAIC;AAED,MAAa,0BAA2B,SAAQ,eAAe;IAC7D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;CACF;AAJD,gEAIC;AAED,MAAa,yBAA0B,SAAQ,eAAe;IAC5D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;CACF;AAJD,8DAIC"}