@digitaldefiance/suite-core-lib 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -182,22 +182,29 @@ const userSchema = new mongoose.Schema<IBackendUser<'en'>>({
182
182
 
183
183
  ## 🔧 Advanced Configuration
184
184
 
185
- ### Custom Model Extensions
185
+ ### Custom Model Extensions & Dynamic Registration
186
186
 
187
- ```typescript
188
- import { BaseModelName, ExtendedModelName } from '@digitaldefiance/suite-core-lib';
187
+ > **Note:** The static `ModelName` and `BaseModelName` enums are deprecated. For extensibility, use dynamic model registration (see `ModelRegistry` in `node-express-suite`).
189
188
 
190
- // Extend the base models for your application
191
- enum CustomModels {
192
- Organization = 'Organization',
193
- Subscription = 'Subscription',
194
- AuditLog = 'AuditLog'
195
- }
189
+ You can now register and extend models dynamically:
190
+
191
+ ```typescript
192
+ import { ModelRegistry } from '@digitaldefiance/node-express-suite';
193
+
194
+ // Register a custom model (e.g., Organization)
195
+ ModelRegistry.instance.register({
196
+ modelName: 'Organization',
197
+ schema: organizationSchema,
198
+ model: OrganizationModel,
199
+ collection: 'organizations',
200
+ });
196
201
 
197
- type AppModelName = ExtendedModelName<typeof CustomModels>;
198
- // Includes: User, Role, EmailToken, Mnemonic, UserRole, Organization, Subscription, AuditLog
202
+ // Retrieve a model anywhere in your app
203
+ const orgModel = ModelRegistry.instance.get('Organization')?.model;
199
204
  ```
200
205
 
206
+ This approach allows other libraries and apps to extend or override models at runtime, supporting advanced use cases like multi-tenancy and plugin architectures.
207
+
201
208
  ### Email Token Types
202
209
 
203
210
  ```typescript
@@ -1,5 +1,5 @@
1
- import { DeepPartial } from './interfaces/deep-partial';
2
1
  import { IConstants } from './interfaces/constants';
2
+ import { DeepPartial } from './interfaces/deep-partial';
3
3
  export type ConfigurationKey = string | symbol;
4
4
  export declare function createSuiteCoreRuntimeConfiguration(siteDomain?: string, overrides?: DeepPartial<IConstants>): IConstants;
5
5
  export declare function registerSuiteCoreRuntimeConfiguration(key?: ConfigurationKey, siteDomain?: string, overrides?: DeepPartial<IConstants>): IConstants;
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAC;AAwC/C,wBAAgB,mCAAmC,CACjD,UAAU,GAAE,MAAoB,EAChC,SAAS,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,GAClC,UAAU,CAGZ;AAED,wBAAgB,qCAAqC,CACnD,GAAG,GAAE,gBAA4C,EACjD,UAAU,GAAE,MAAoB,EAChC,SAAS,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,GAClC,UAAU,CAIZ;AAED,wBAAgB,gCAAgC,CAC9C,GAAG,GAAE,gBAA4C,GAChD,UAAU,CAKZ"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,CAAC;AA2C/C,wBAAgB,mCAAmC,CACjD,UAAU,GAAE,MAAoB,EAChC,SAAS,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,GAClC,UAAU,CAGZ;AAED,wBAAgB,qCAAqC,CACnD,GAAG,GAAE,gBAA4C,EACjD,UAAU,GAAE,MAAoB,EAChC,SAAS,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,GAClC,UAAU,CAIZ;AAED,wBAAgB,gCAAgC,CAC9C,GAAG,GAAE,gBAA4C,GAChD,UAAU,CAKZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"email-token.d.ts","sourceRoot":"","sources":["../../../src/interfaces/bases/email-token.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,eAAe,CAC9B,CAAC,EACD,CAAC,SAAS,IAAI,GAAG,MAAM,EACvB,CAAC,SAAS,cAAc,GAAG,MAAM,CACjC,SAAQ,MAAM,CAAC,CAAC,CAAC,EACf,cAAc,CAAC,CAAC,CAAC;IACnB;;OAEG;IACH,MAAM,EAAE,CAAC,CAAC;IACV;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC;IACR;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb;;OAEG;IACH,SAAS,EAAE,CAAC,CAAC;CACd"}
1
+ {"version":3,"file":"email-token.d.ts","sourceRoot":"","sources":["../../../src/interfaces/bases/email-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,eAAe,CAC9B,CAAC,EACD,CAAC,SAAS,IAAI,GAAG,MAAM,EACvB,CAAC,SAAS,cAAc,GAAG,MAAM,CACjC,SAAQ,MAAM,CAAC,CAAC,CAAC,EACf,cAAc,CAAC,CAAC,CAAC;IACnB;;OAEG;IACH,MAAM,EAAE,CAAC,CAAC;IACV;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC;IACR;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb;;OAEG;IACH,SAAS,EAAE,CAAC,CAAC;CACd"}
@@ -1 +1 @@
1
- {"version":3,"file":"token-role.d.ts","sourceRoot":"","sources":["../../../src/interfaces/bases/token-role.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,WAAW,UAAU,CACzB,CAAC,EACD,CAAC,SAAS,IAAI,GAAG,MAAM,GAAG,IAAI,CAC9B,SAAQ,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IACvB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"token-role.d.ts","sourceRoot":"","sources":["../../../src/interfaces/bases/token-role.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,WAAW,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,GAAG,MAAM,GAAG,IAAI,CAC3D,SAAQ,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IACvB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"has-soft-deleter.d.ts","sourceRoot":"","sources":["../../src/interfaces/has-soft-deleter.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC;CACf"}
1
+ {"version":3,"file":"has-soft-deleter.d.ts","sourceRoot":"","sources":["../../src/interfaces/has-soft-deleter.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC;CACf"}
@@ -1 +1 @@
1
- {"version":3,"file":"email-token.d.ts","sourceRoot":"","sources":["../../../src/interfaces/models/email-token.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"email-token.d.ts","sourceRoot":"","sources":["../../../src/interfaces/models/email-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digitaldefiance/suite-core-lib",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Generic user system and document system common core for applications",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -16,9 +16,9 @@
16
16
  "publish:public": "npm publish --access public"
17
17
  },
18
18
  "dependencies": {
19
- "@digitaldefiance/ecies-lib": "1.0.26-b",
20
- "@digitaldefiance/i18n-lib": "1.1.2",
21
- "@digitaldefiance/node-ecies-lib": "1.0.8"
19
+ "@digitaldefiance/ecies-lib": "1.0.27",
20
+ "@digitaldefiance/i18n-lib": "1.1.5",
21
+ "@digitaldefiance/node-ecies-lib": "1.0.9"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@babel/core": "^7.28.4",