@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.
Files changed (77) 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 +4 -15
  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 +3 -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 +18 -21
  16. package/dist-cjs/lib/ConfigManager.js.map +1 -1
  17. package/dist-cjs/lib/Exceptions.js +8 -1
  18. package/dist-cjs/lib/Exceptions.js.map +1 -1
  19. package/dist-cjs/lib/Logger.js +138 -65
  20. package/dist-cjs/lib/Logger.js.map +1 -1
  21. package/dist-cjs/models/AppModel.js +17 -3
  22. package/dist-cjs/models/AppModel.js.map +1 -1
  23. package/dist-cjs/models/Application.js +51 -12
  24. package/dist-cjs/models/Application.js.map +1 -1
  25. package/dist-cjs/models/BaseModel.js.map +1 -1
  26. package/dist-cjs/models/BuiltinModel.js +8 -0
  27. package/dist-cjs/models/BuiltinModel.js.map +1 -0
  28. package/dist-cjs/models/User.js +12 -3
  29. package/dist-cjs/models/User.js.map +1 -1
  30. package/dist-esm/common/BuiltinSchemas.js +23 -4
  31. package/dist-esm/common/BuiltinSchemas.js.map +1 -1
  32. package/dist-esm/common/FilterQuery.js +5 -16
  33. package/dist-esm/common/FilterQuery.js.map +1 -1
  34. package/dist-esm/common/InferModel.js +2 -0
  35. package/dist-esm/common/InferModel.js.map +1 -0
  36. package/dist-esm/common/JsonPatch.js +44 -227
  37. package/dist-esm/common/JsonPatch.js.map +1 -1
  38. package/dist-esm/common/SchemaValidator.js +100 -29
  39. package/dist-esm/common/SchemaValidator.js.map +1 -1
  40. package/dist-esm/index.js +3 -0
  41. package/dist-esm/index.js.map +1 -1
  42. package/dist-esm/lib/BaseService.js +8 -8
  43. package/dist-esm/lib/BaseService.js.map +1 -1
  44. package/dist-esm/lib/ConfigManager.js +18 -21
  45. package/dist-esm/lib/ConfigManager.js.map +1 -1
  46. package/dist-esm/lib/Exceptions.js +6 -0
  47. package/dist-esm/lib/Exceptions.js.map +1 -1
  48. package/dist-esm/lib/Logger.js +139 -66
  49. package/dist-esm/lib/Logger.js.map +1 -1
  50. package/dist-esm/models/AppModel.js +17 -3
  51. package/dist-esm/models/AppModel.js.map +1 -1
  52. package/dist-esm/models/Application.js +52 -13
  53. package/dist-esm/models/Application.js.map +1 -1
  54. package/dist-esm/models/BaseModel.js.map +1 -1
  55. package/dist-esm/models/BuiltinModel.js +4 -0
  56. package/dist-esm/models/BuiltinModel.js.map +1 -0
  57. package/dist-esm/models/User.js +11 -2
  58. package/dist-esm/models/User.js.map +1 -1
  59. package/dist-types/common/BuiltinSchemas.d.ts +59 -5
  60. package/dist-types/common/FilterQuery.d.ts +3 -11
  61. package/dist-types/common/InferModel.d.ts +29 -0
  62. package/dist-types/common/JsonPatch.d.ts +4 -45
  63. package/dist-types/common/ModelTypes.d.ts +1 -0
  64. package/dist-types/common/QueuePayloads.d.ts +48 -26
  65. package/dist-types/common/SchemaValidator.d.ts +42 -2
  66. package/dist-types/index.d.ts +3 -0
  67. package/dist-types/lib/BaseService.d.ts +8 -1
  68. package/dist-types/lib/ConfigManager.d.ts +6 -12
  69. package/dist-types/lib/Exceptions.d.ts +4 -0
  70. package/dist-types/lib/Logger.d.ts +84 -14
  71. package/dist-types/models/AppModel.d.ts +31 -5
  72. package/dist-types/models/Application.d.ts +36 -8
  73. package/dist-types/models/BaseModel.d.ts +14 -12
  74. package/dist-types/models/BuiltinModel.d.ts +3 -0
  75. package/dist-types/models/User.d.ts +15 -13
  76. package/package.json +4 -4
  77. 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(confFile) {
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(), confFile ?? NexxusConfigManager.CONF_FILE_NAME)));
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
- this.addCliArgsToSpec(NxxSvc.cliArgConfig());
43
- this.addEnvVarsToSpec(NxxSvc.envVarConfig());
44
- this.addJsonSchemaDef(NxxSvc.schema());
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 source: "${collectedNames.get(arg.name)}" and now by source: "${spec.source}"`);
61
+ Defined first by class "${collectedNames.get(arg.name)}" and now by class "${spec.className}"`);
65
62
  }
66
- collectedNames.set(arg.name, spec.source);
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, parsed[arg.name]);
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}_${envVar.name}".
91
- Defined first by source: "${collectedNames.get(envVar.name)}" and now by source: "${spec.source}"`);
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, value);
92
+ Dot.setProperty(this.data, `${spec.configRootKey}.${envVar.location}`, value);
96
93
  }
97
- collectedNames.set(envVar.name, spec.source);
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":"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"}
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;AAsClC,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAC,cAAc,GAAsB,kBAAkB,CAAC;IAE9D,UAAU,CAAc;IACxB,YAAY,GAA0C,EAAE,CAAC;IACzD,YAAY,GAA0C,EAAE,CAAC;IACzD,IAAI,GAAiB,EAAE,CAAC;IAExB,eAAe,GAAkC,EAAE,CAAC;IACpD,eAAe,GAAkC,EAAE,CAAC;IAE5D,YAAY,cAAwB;QAClC,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,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,IAAI,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACxI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,2BAA2B,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,0BAA0B,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,KAAK,CAAC,gBAAgB,CAAC,IAAsC;QAClE,KAAI,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;YAC9B,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC;YAEtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YACnF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YACnF,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,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,sBAAsB,CAAC,iCAAiC,GAAG,CAAC,IAAI;sCAC9C,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACpG,CAAC;gBAED,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAE7C,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,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxF,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,2BAA2B,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,sBAAsB,CAAC,uBAAuB,MAAM,GAAG,MAAM,CAAC,IAAI;sCAChD,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACvG,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,GAAG,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;gBAChF,CAAC;gBAED,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAClD,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,SAAS,CAAC,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,GAAG,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,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,mBAAmB,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"}
@@ -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,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,KAAhB,gBAAgB,QAQ3B;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,yBAA0B,SAAQ,eAAe;IAC5D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;CACF"}
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"}
@@ -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 "node:path";
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
- debug(message, label) {
20
- this.log("debug", message, label);
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
- info(message, label) {
23
- this.log("info", message, label);
50
+ debug(message, attributesOrLabel, label) {
51
+ this.dispatch("debug", message, attributesOrLabel, label);
24
52
  }
25
- warn(message, label) {
26
- this.log("warn", message, label);
53
+ info(message, attributesOrLabel, label) {
54
+ this.dispatch("info", message, attributesOrLabel, label);
27
55
  }
28
- error(message, label) {
29
- this.log("error", message, label);
56
+ warn(message, attributesOrLabel, label) {
57
+ this.dispatch("warn", message, attributesOrLabel, label);
30
58
  }
31
- critical(message, label) {
32
- this.log("crit", message, label);
59
+ error(message, attributesOrLabel, label) {
60
+ this.dispatch("error", message, attributesOrLabel, label);
33
61
  }
34
- alert(message, label) {
35
- this.log("alert", message, label);
62
+ critical(message, attributesOrLabel, label) {
63
+ this.dispatch("crit", message, attributesOrLabel, label);
36
64
  }
37
- emerg(message, label) {
38
- this.log("emerg", message, label);
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
- source: this.name,
46
- specs: [
47
- {
48
- name: "LOG_LEVEL",
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.json({
62
- circularValue: '[circular]'
63
- });
64
- format = Winston.format.combine(Winston.format.printf(info => {
65
- const msg = info.message;
66
- if (msg.startsWith("{") || msg.startsWith("[")) {
67
- try {
68
- info.message = JSON.parse(msg);
69
- }
70
- catch (e) {
71
- if (e.message.includes("Unexpected")) {
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
- info.label = info.label || "default-label";
80
- return JSON.stringify(info);
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
- let result = '';
89
- if (info.message === undefined) {
90
- const isMetadataEmpty = Object.keys(info.metadata).length === 0;
91
- info.message = isMetadataEmpty ? 'undefined' : JSON.stringify(info.metadata);
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
- info.label = info.label || "default-label";
94
- if (info.timestamp) {
95
- result += `[${info.timestamp}] `;
118
+ const lines = [header];
119
+ for (const [k, v] of Object.entries(attrs)) {
120
+ lines.push(` ${k}: ${WinstonNexxusLogger.safeStringify(v)}`);
96
121
  }
97
- return result + `${info.level.toLocaleUpperCase()} [${info.label}]: ${info.message}`;
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
- log(level, message, label) {
116
- if (typeof message === 'object' || Array.isArray(message)) {
117
- message = JSON.stringify(message);
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
- message = String(message);
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
- this.winston.log(level, message, { label });
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":"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"}
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 appId');
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":"AAAA,OAAO,EAAE,eAAe,EAAoB,MAAM,aAAa,CAAC;AAQhE,MAAM,OAAO,cAAe,SAAQ,eAAmC;IACrE,YAAY,KAAyB;QACnC,KAAK,CAAC,KAAK,CAAC,CAAC;QAGb,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF"}
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 { NexxusBaseModel, MODEL_REGISTRY } from "./BaseModel";
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 NexxusBaseModel {
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.authEnabled === undefined || typeof data.authEnabled !== 'boolean') {
16
- throw new Error("Application 'authEnabled' is required and must be a boolean");
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
- if (data.authEnabled) {
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
- this.data.allowMultipleLogin = data.allowMultipleLogin || true;
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":"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"}
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;AAYxC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,MAAM;CACJ,CAAC;AAKX,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"}
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,4 @@
1
+ import { NexxusBaseModel } from "./BaseModel";
2
+ export class NexxusBuiltinModel extends NexxusBaseModel {
3
+ }
4
+ //# sourceMappingURL=BuiltinModel.js.map
@@ -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"}