@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 +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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"}
@@ -0,0 +1,52 @@
1
+ import { NexxusBaseService } from './BaseService';
2
+ import { InvalidConfigException } from './Exceptions';
3
+ import { createRequire } from 'node:module';
4
+ import { pathToFileURL } from 'node:url';
5
+ import * as path from 'node:path';
6
+ const requireFromApp = createRequire(path.join(process.cwd(), 'package.json'));
7
+ async function loadPackage(configuredName) {
8
+ let resolvedPath;
9
+ try {
10
+ resolvedPath = requireFromApp.resolve(configuredName);
11
+ }
12
+ catch (e) {
13
+ throw new InvalidConfigException(`Service package "${configuredName}" could not be resolved — make sure it's installed in your deployment. Underlying error: ${e.message}`);
14
+ }
15
+ return import(pathToFileURL(resolvedPath).href);
16
+ }
17
+ function assertNexxusService(cls, configuredName) {
18
+ if (typeof cls !== 'function' || !(cls.prototype instanceof NexxusBaseService)) {
19
+ throw new InvalidConfigException(`Class resolved from "${configuredName}" does not extend NexxusBaseService. Make sure the adapter extends NexxusBaseService.`);
20
+ }
21
+ }
22
+ function pickDefaultExport(mod, configuredName) {
23
+ if (typeof mod.default === 'function') {
24
+ return mod.default;
25
+ }
26
+ if (typeof mod === 'function') {
27
+ return mod;
28
+ }
29
+ throw new InvalidConfigException(`Package "${configuredName}" does not default-export a class. Nexxus adapters must default-export the adapter class itself.`);
30
+ }
31
+ export async function resolveConstructableServiceClass(configuredName, builtins) {
32
+ if (configuredName in builtins) {
33
+ return builtins[configuredName];
34
+ }
35
+ const mod = await loadPackage(configuredName);
36
+ const cls = pickDefaultExport(mod, configuredName);
37
+ assertNexxusService(cls, configuredName);
38
+ return cls;
39
+ }
40
+ export async function resolveFactoryServiceClass(configuredName, builtins) {
41
+ if (configuredName in builtins) {
42
+ return builtins[configuredName];
43
+ }
44
+ const mod = await loadPackage(configuredName);
45
+ const cls = pickDefaultExport(mod, configuredName);
46
+ assertNexxusService(cls, configuredName);
47
+ if (typeof cls.create !== 'function') {
48
+ throw new InvalidConfigException(`Class resolved from "${configuredName}" does not expose a static create() method — required for factory-style services.`);
49
+ }
50
+ return cls;
51
+ }
52
+ //# sourceMappingURL=ServiceResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceResolver.js","sourceRoot":"","sources":["../../src/lib/ServiceResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAGlB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AASlC,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;AAQ/E,KAAK,UAAU,WAAW,CAAC,cAAsB;IAC/C,IAAI,YAAoB,CAAC;IAEzB,IAAI,CAAC;QACH,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,sBAAsB,CAC9B,oBAAoB,cAAc,4FAA6F,CAAW,CAAC,OAAO,EAAE,CACrJ,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC;AAOD,SAAS,mBAAmB,CAAC,GAAY,EAAE,cAAsB;IAC/D,IAAI,OAAO,GAAG,KAAK,UAAU,IAAI,CAAC,CAAE,GAA8B,CAAC,SAAS,YAAY,iBAAiB,CAAC,EAAE,CAAC;QAC3G,MAAM,IAAI,sBAAsB,CAC9B,wBAAwB,cAAc,uFAAuF,CAC9H,CAAC;IACJ,CAAC;AACH,CAAC;AASD,SAAS,iBAAiB,CAAC,GAAQ,EAAE,cAAsB;IACzD,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACtC,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,IAAI,sBAAsB,CAC9B,YAAY,cAAc,kGAAkG,CAC7H,CAAC;AACJ,CAAC;AAgBD,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,cAAsB,EACtB,QAAyD;IAEzD,IAAI,cAAc,IAAI,QAAQ,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEnD,mBAAmB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEzC,OAAO,GAAsC,CAAC;AAChD,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,cAAsB,EACtB,QAAmD;IAEnD,IAAI,cAAc,IAAI,QAAQ,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEnD,mBAAmB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEzC,IAAI,OAAQ,GAA4B,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC/D,MAAM,IAAI,sBAAsB,CAC9B,wBAAwB,cAAc,mFAAmF,CAC1H,CAAC;IACJ,CAAC;IAED,OAAO,GAAgC,CAAC;AAC1C,CAAC"}
@@ -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"}
@@ -1,6 +1,15 @@
1
- import { NexxusBaseModel, MODEL_REGISTRY } from "./BaseModel";
1
+ import { MODEL_REGISTRY } from "./BaseModel";
2
+ import { NexxusBuiltinModel } from "./BuiltinModel";
3
+ import { NEXXUS_BUILTIN_MODEL_SCHEMAS } from "../common/BuiltinSchemas";
2
4
  import { InvalidUserModelException } from "../lib/Exceptions";
3
- export class NexxusApplicationUser extends NexxusBaseModel {
5
+ export class NexxusUser extends NexxusBuiltinModel {
6
+ static getModelSchema(userDetails) {
7
+ const base = { ...NEXXUS_BUILTIN_MODEL_SCHEMAS.user };
8
+ if (userDetails) {
9
+ base.details = { type: 'object', required: false, properties: userDetails };
10
+ }
11
+ return base;
12
+ }
4
13
  constructor(data) {
5
14
  super({ ...data, type: MODEL_REGISTRY.user });
6
15
  if (this.data.appId === undefined || typeof this.data.appId !== 'string') {
@@ -1 +1 @@
1
- {"version":3,"file":"User.js","sourceRoot":"","sources":["../../src/models/User.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEf,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAgB9D,MAAM,OAAO,qBAAsB,SAAQ,eAAoC;IAC7E,YAAY,IAAyB;QACnC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACzE,MAAM,IAAI,yBAAyB,CAAC,+CAA+C,CAAC,CAAC;QACvF,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC/E,MAAM,IAAI,yBAAyB,CAAC,kDAAkD,CAAC,CAAC;QAC1F,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAChH,MAAM,IAAI,yBAAyB,CAAC,8CAA8C,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC;YACnJ,MAAM,IAAI,yBAAyB,CAAC,kEAAkE,CAAC,CAAC;QAC1G,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,yBAAyB,CAAC,4CAA4C,CAAC,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC;YAExF,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,yBAAyB,CAAC,4CAA4C,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC3C,MAAM,IAAI,yBAAyB,CAAC,kCAAkC,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC7E,MAAM,IAAI,yBAAyB,CAAC,8CAA8C,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"User.js","sourceRoot":"","sources":["../../src/models/User.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Universal fields present in all models
3
- * Note: 'type' and 'appId' are excluded as they are handled separately in queries
2
+ * Universal fields present in all models (auto-managed by NexxusBaseModel).
3
+ * 'type' and 'appId' are excluded as they are handled separately in queries.
4
4
  */
5
5
  export declare const NEXXUS_UNIVERSAL_FIELDS: {
6
6
  readonly id: {
@@ -17,13 +17,31 @@ export declare const NEXXUS_UNIVERSAL_FIELDS: {
17
17
  };
18
18
  };
19
19
  /**
20
- * Schema definitions for built-in (reserved) models. Only used for
20
+ * Field names reserved by Nexxus across ALL app models. App developers cannot
21
+ * declare a field of these names in their application schemas — the
22
+ * `NexxusApplication` constructor enforces this on schema registration.
23
+ *
24
+ * Most of these are caller-settable at model construction time (e.g. `appId`,
25
+ * `userId`, `type` — set by the API/Worker). `version` is the sole exception:
26
+ * it's set exclusively by the database adapter and rejected from user input
27
+ * (see the inline check in `NexxusSchemaValidator.validateAgainstSchema`).
28
+ */
29
+ export declare const NEXXUS_RESERVED_FIELD_NAMES: ReadonlySet<string>;
30
+ /**
31
+ * Schema definitions for built-in (reserved) models. These are the runtime
32
+ * source of truth for built-in model field shapes; the corresponding TS
33
+ * interfaces (INexxusUser, INexxusApplication) are derived from these.
21
34
  */
22
35
  export declare const NEXXUS_BUILTIN_MODEL_SCHEMAS: {
23
36
  readonly user: {
37
+ readonly appId: {
38
+ readonly type: "string";
39
+ readonly required: true;
40
+ readonly filterable: true;
41
+ };
24
42
  readonly userType: {
25
43
  readonly type: "string";
26
- readonly required: false;
44
+ readonly required: true;
27
45
  readonly filterable: true;
28
46
  };
29
47
  readonly username: {
@@ -33,7 +51,8 @@ export declare const NEXXUS_BUILTIN_MODEL_SCHEMAS: {
33
51
  };
34
52
  readonly password: {
35
53
  readonly type: "string";
36
- readonly required: false;
54
+ readonly required: true;
55
+ readonly nullable: true;
37
56
  };
38
57
  readonly authProviders: {
39
58
  readonly type: "array";
@@ -57,6 +76,41 @@ export declare const NEXXUS_BUILTIN_MODEL_SCHEMAS: {
57
76
  readonly required: true;
58
77
  readonly filterable: true;
59
78
  };
79
+ readonly description: {
80
+ readonly type: "string";
81
+ readonly required: false;
82
+ };
83
+ /**
84
+ * Per-application auth block. When `authEnabled` is true this must be
85
+ * present and contain a non-empty `strategies` map; when false it should
86
+ * be absent or have an empty `strategies`. The conditional rule isn't
87
+ * expressible in the static schema — it's enforced imperatively in the
88
+ * `NexxusApplication` constructor.
89
+ *
90
+ * `strategies` is a free-form map keyed by strategy name (e.g. 'local',
91
+ * 'google'). The shape of each value is validated by that strategy's
92
+ * own JSON Schema, loaded by the `NexxusAuthStrategy` base class.
93
+ */
94
+ readonly auth: {
95
+ readonly type: "object";
96
+ readonly required: false;
97
+ readonly nullable: true;
98
+ readonly properties: {
99
+ readonly jwtSecret: {
100
+ readonly type: "string";
101
+ readonly required: true;
102
+ };
103
+ readonly jwtExpiresIn: {
104
+ readonly type: "string";
105
+ readonly required: false;
106
+ };
107
+ readonly strategies: {
108
+ readonly type: "object";
109
+ readonly required: true;
110
+ readonly properties: {};
111
+ };
112
+ };
113
+ };
60
114
  };
61
115
  };
62
116
  /**
@@ -1,7 +1,5 @@
1
1
  import type { NexxusModelDef } from '../common/ModelTypes';
2
- import { type NexxusBuiltinModelType } from './BuiltinSchemas';
3
- import type { NexxusAppModelType } from '../models/AppModel';
4
- import type { NexxusUserDetailSchema } from '../models/User';
2
+ import type { INexxusAppModel } from '../models/AppModel';
5
3
  export type NexxusComparisonOperator = 'gte' | 'lte' | 'gt' | 'lt' | 'ne' | 'in';
6
4
  export type NexxusLogicalOperator = '$and' | '$or';
7
5
  export type NexxusFieldValue = string | number | boolean;
@@ -30,21 +28,15 @@ type FilterNodeWithContext = FilterNode & {
30
28
  depth: number;
31
29
  parentOperator?: NexxusLogicalOperator;
32
30
  };
33
- export type NexxusFilterQueryConfig = {
34
- appModelDef: NexxusModelDef;
35
- } | {
36
- modelType: NexxusBuiltinModelType;
37
- userDetailsSchema?: NexxusUserDetailSchema;
38
- };
39
31
  export declare class NexxusFilterQuery {
40
32
  private query;
41
33
  private nodes;
42
34
  private modelDef;
43
- constructor(query: NexxusFilterQueryType, config: NexxusFilterQueryConfig);
35
+ constructor(query: NexxusFilterQueryType, schema: NexxusModelDef);
44
36
  getNodes(): FilterNode[];
45
37
  getNormalizedQuery(): NexxusFilterQueryType;
46
38
  [Symbol.iterator](): Generator<FilterNodeWithContext>;
47
- test(object: Partial<NexxusAppModelType>): boolean;
39
+ test(object: Partial<INexxusAppModel>): boolean;
48
40
  private testNode;
49
41
  private validateAndParse;
50
42
  private parseQuery;
@@ -0,0 +1,29 @@
1
+ export type InferFieldDef<D> = D extends {
2
+ type: 'string';
3
+ } ? string : D extends {
4
+ type: 'number';
5
+ } ? number : D extends {
6
+ type: 'boolean';
7
+ } ? boolean : D extends {
8
+ type: 'date';
9
+ } ? number : D extends {
10
+ type: 'array';
11
+ arrayType: infer AT;
12
+ properties?: infer P;
13
+ } ? AT extends 'object' ? P extends Record<string, any> ? Array<InferModel<P>> : never : AT extends 'string' ? string[] : AT extends 'number' ? number[] : AT extends 'boolean' ? boolean[] : AT extends 'date' ? number[] : never : D extends {
14
+ type: 'object';
15
+ properties: infer P;
16
+ } ? P extends Record<string, any> ? InferModel<P> : never : never;
17
+ type ApplyNullable<D, T> = D extends {
18
+ nullable: true;
19
+ } ? T | null : T;
20
+ export type InferModel<S> = {
21
+ -readonly [K in keyof S as S[K] extends {
22
+ required: true;
23
+ } ? K : never]: ApplyNullable<S[K], InferFieldDef<S[K]>>;
24
+ } & {
25
+ -readonly [K in keyof S as S[K] extends {
26
+ required: true;
27
+ } ? never : K]?: ApplyNullable<S[K], InferFieldDef<S[K]>>;
28
+ };
29
+ export {};
@@ -1,8 +1,5 @@
1
- import { NexxusApplicationSchema } from '../models/Application';
2
- import type { NexxusModelFieldType } from '../common/ModelTypes';
3
- import { NexxusAppModelType } from '../models/AppModel';
4
- import { NexxusBuiltinModelType } from './BuiltinSchemas';
5
- import type { NexxusUserDetailSchema } from '../models/User';
1
+ import type { NexxusModelDef, NexxusModelFieldType } from '../common/ModelTypes';
2
+ import { INexxusAppModel } from '../models/AppModel';
6
3
  declare const JSON_OPS: readonly ["replace", "append", "prepend", "incr", "decr"];
7
4
  export type NexxusJsonPatchConstructor = {
8
5
  op: typeof JSON_OPS[number];
@@ -26,12 +23,6 @@ type NexxusJsonPatchMetadataInternal = NexxusJsonPatchMetadata & {
26
23
  pathFieldTypes?: NexxusModelFieldType[];
27
24
  };
28
25
  export type NexxusJsonPatchMetadataConstructor = Omit<NexxusJsonPatchMetadata, 'pathFieldTypes'>;
29
- export type NexxusJsonPatchValidationConfig = {
30
- appSchema: NexxusApplicationSchema;
31
- } | {
32
- modelType: NexxusBuiltinModelType;
33
- userDetailsSchema?: NexxusUserDetailSchema;
34
- };
35
26
  export declare class NexxusJsonPatch {
36
27
  private valid;
37
28
  private fullPatch;
@@ -39,40 +30,8 @@ export declare class NexxusJsonPatch {
39
30
  constructor(fullPatch: NexxusJsonPatchConstructor | NexxusJsonPatchInternal);
40
31
  get(): NexxusJsonPatchInternal;
41
32
  isValid(): boolean;
42
- getPartialModel(): Partial<NexxusAppModelType>;
43
- validate(config: NexxusJsonPatchValidationConfig): void;
44
- private static validateAgainstType;
33
+ getPartialModel(): Partial<INexxusAppModel>;
34
+ validate(schema: NexxusModelDef): void;
45
35
  private static traverseSchema;
46
- private static validateValueType;
47
- /**
48
- * Validate string type
49
- */
50
- private static validateString;
51
- /**
52
- * Validate number type
53
- */
54
- private static validateNumber;
55
- /**
56
- * Validate boolean type
57
- */
58
- private static validateBoolean;
59
- /**
60
- * Validate date type
61
- */
62
- private static validateDate;
63
- /**
64
- * Validate object type (recursively validates properties)
65
- */
66
- private static validateObject;
67
- /**
68
- * Validate array type (recursively validates elements)
69
- */
70
- private static validateArray;
71
- /**
72
- * Helper to validate primitive types (reusable for arrays)
73
- */
74
- private static validatePrimitiveType;
75
- private static isObjectFieldDef;
76
- private static isArrayFieldDef;
77
36
  }
78
37
  export {};
@@ -3,6 +3,7 @@ export type NexxusModelFieldType = NexxusModelPrimitiveType | 'array' | 'object'
3
3
  interface BaseFieldDef {
4
4
  type: NexxusModelFieldType;
5
5
  required?: boolean;
6
+ nullable?: boolean;
6
7
  }
7
8
  export interface PrimitiveFieldDef extends BaseFieldDef {
8
9
  type: NexxusModelPrimitiveType;