@decaf-ts/decorator-validation 1.11.11 → 1.11.12

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 (80) hide show
  1. package/README.md +1 -1
  2. package/dist/decorator-validation.cjs +1 -1
  3. package/dist/decorator-validation.cjs.map +1 -1
  4. package/dist/decorator-validation.js +1 -1
  5. package/dist/decorator-validation.js.map +1 -1
  6. package/lib/esm/index.d.ts +1 -1
  7. package/lib/esm/index.js +1 -1
  8. package/lib/esm/model/Model.d.ts +0 -103
  9. package/lib/esm/model/Model.js +11 -250
  10. package/lib/esm/model/Model.js.map +1 -1
  11. package/lib/esm/model/ModelRegistry.d.ts +181 -0
  12. package/lib/esm/model/ModelRegistry.js +291 -0
  13. package/lib/esm/model/ModelRegistry.js.map +1 -0
  14. package/lib/esm/model/index.d.ts +1 -0
  15. package/lib/esm/model/index.js +1 -0
  16. package/lib/esm/model/index.js.map +1 -1
  17. package/lib/esm/model/validation.d.ts +1 -1
  18. package/lib/esm/model/validation.js +5 -5
  19. package/lib/esm/model/validation.js.map +1 -1
  20. package/lib/esm/overrides/Metadata.d.ts +4 -1
  21. package/lib/esm/overrides/overrides.js +49 -0
  22. package/lib/esm/overrides/overrides.js.map +1 -1
  23. package/lib/esm/overrides/types.d.ts +1 -1
  24. package/lib/esm/utils/constants.d.ts +1 -0
  25. package/lib/esm/utils/constants.js +1 -0
  26. package/lib/esm/utils/constants.js.map +1 -1
  27. package/lib/esm/utils/index.d.ts +1 -0
  28. package/lib/esm/utils/index.js +1 -0
  29. package/lib/esm/utils/index.js.map +1 -1
  30. package/lib/esm/utils/serialization.d.ts +0 -41
  31. package/lib/esm/utils/serialization.js +1 -72
  32. package/lib/esm/utils/serialization.js.map +1 -1
  33. package/lib/esm/utils/serializers.d.ts +41 -0
  34. package/lib/esm/utils/serializers.js +73 -0
  35. package/lib/esm/utils/serializers.js.map +1 -0
  36. package/lib/esm/validation/Validation.js +1 -1
  37. package/lib/esm/validation/Validation.js.map +1 -1
  38. package/lib/esm/validation/Validators/constants.d.ts +1 -0
  39. package/lib/esm/validation/Validators/constants.js +1 -0
  40. package/lib/esm/validation/Validators/constants.js.map +1 -1
  41. package/lib/esm/validation/Validators/utils.js +1 -1
  42. package/lib/esm/validation/Validators/utils.js.map +1 -1
  43. package/lib/index.cjs +1 -1
  44. package/lib/index.d.ts +1 -1
  45. package/lib/model/Model.cjs +14 -255
  46. package/lib/model/Model.d.ts +0 -103
  47. package/lib/model/Model.js.map +1 -1
  48. package/lib/model/ModelRegistry.cjs +296 -0
  49. package/lib/model/ModelRegistry.d.ts +181 -0
  50. package/lib/model/ModelRegistry.js.map +1 -0
  51. package/lib/model/index.cjs +1 -0
  52. package/lib/model/index.d.ts +1 -0
  53. package/lib/model/index.js.map +1 -1
  54. package/lib/model/validation.cjs +5 -5
  55. package/lib/model/validation.d.ts +1 -1
  56. package/lib/model/validation.js.map +1 -1
  57. package/lib/overrides/Metadata.d.ts +4 -1
  58. package/lib/overrides/overrides.cjs +49 -0
  59. package/lib/overrides/overrides.js.map +1 -1
  60. package/lib/overrides/types.d.ts +1 -1
  61. package/lib/utils/constants.cjs +2 -1
  62. package/lib/utils/constants.d.ts +1 -0
  63. package/lib/utils/constants.js.map +1 -1
  64. package/lib/utils/index.cjs +1 -0
  65. package/lib/utils/index.d.ts +1 -0
  66. package/lib/utils/index.js.map +1 -1
  67. package/lib/utils/serialization.cjs +2 -74
  68. package/lib/utils/serialization.d.ts +0 -41
  69. package/lib/utils/serialization.js.map +1 -1
  70. package/lib/utils/serializers.cjs +77 -0
  71. package/lib/utils/serializers.d.ts +41 -0
  72. package/lib/utils/serializers.js.map +1 -0
  73. package/lib/validation/Validation.cjs +4 -4
  74. package/lib/validation/Validation.js.map +1 -1
  75. package/lib/validation/Validators/constants.cjs +1 -0
  76. package/lib/validation/Validators/constants.d.ts +1 -0
  77. package/lib/validation/Validators/constants.js.map +1 -1
  78. package/lib/validation/Validators/utils.cjs +6 -6
  79. package/lib/validation/Validators/utils.js.map +1 -1
  80. package/package.json +1 -1
@@ -0,0 +1,291 @@
1
+ import { Metadata } from "@decaf-ts/decoration";
2
+ import { jsTypes, ReservedModels } from "./constants.js";
3
+ import { ValidationKeys } from "./../validation/index.js";
4
+ let modelBuilderFunction;
5
+ let actingModelRegistry;
6
+ /**
7
+ * @description Registry manager for model constructors that enables serialization and rebuilding
8
+ * @summary The ModelRegistryManager implements the ModelRegistry interface and provides
9
+ * functionality for registering, retrieving, and building model instances. It maintains
10
+ * a cache of model constructors indexed by name, allowing for efficient lookup and instantiation.
11
+ * This class is essential for the serialization and deserialization of model objects.
12
+ *
13
+ * @param {function(Record<string, any>): boolean} [testFunction] - Function to test if an object is a model, defaults to {@link Model#isModel}
14
+ *
15
+ * @class ModelRegistryManager
16
+ * @template M Type of model that can be registered, must extend Model
17
+ * @implements ModelRegistry<M>
18
+ * @category Model
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * // Create a model registry
23
+ * const registry = new ModelRegistryManager();
24
+ *
25
+ * // Register a model class
26
+ * registry.register(User);
27
+ *
28
+ * // Retrieve a model constructor by name
29
+ * const UserClass = registry.get("User");
30
+ *
31
+ * // Build a model instance from a plain object
32
+ * const userData = { name: "John", age: 30 };
33
+ * const user = registry.build(userData, "User");
34
+ * ```
35
+ *
36
+ * @mermaid
37
+ * sequenceDiagram
38
+ * participant C as Client
39
+ * participant R as ModelRegistryManager
40
+ * participant M as Model Class
41
+ *
42
+ * C->>R: new ModelRegistryManager(testFunction)
43
+ * C->>R: register(ModelClass)
44
+ * R->>R: Store in cache
45
+ * C->>R: get("ModelName")
46
+ * R-->>C: ModelClass constructor
47
+ * C->>R: build(data, "ModelName")
48
+ * R->>R: Get constructor from cache
49
+ * R->>M: new ModelClass(data)
50
+ * M-->>R: Model instance
51
+ * R-->>C: Model instance
52
+ */
53
+ export class ModelRegistryManager {
54
+ constructor(testFunction = Metadata.isModel) {
55
+ this.cache = {};
56
+ this.testFunction = testFunction;
57
+ }
58
+ /**
59
+ * @description Registers a model constructor with the registry
60
+ * @summary Adds a model constructor to the registry cache, making it available for
61
+ * later retrieval and instantiation. If no name is provided, the constructor's name
62
+ * property is used as the key in the registry.
63
+ *
64
+ * @param {ModelConstructor<M>} constructor - The model constructor to register
65
+ * @param {string} [name] - Optional name to register the constructor under, defaults to constructor.name
66
+ * @return {void}
67
+ * @throws {Error} If the constructor is not a function
68
+ */
69
+ register(constructor, name) {
70
+ if (typeof constructor !== "function")
71
+ throw new Error("Model registering failed. Missing Class name or constructor");
72
+ name = name || constructor.name;
73
+ this.cache[name] = constructor;
74
+ }
75
+ /**
76
+ * @summary Gets a registered Model {@link ModelConstructor}
77
+ * @param {string} name
78
+ */
79
+ get(name) {
80
+ try {
81
+ return this.cache[name];
82
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
83
+ }
84
+ catch (e) {
85
+ return undefined;
86
+ }
87
+ }
88
+ /**
89
+ * @param {Record<string, any>} obj
90
+ * @param {string} [clazz] when provided, it will attempt to find the matching constructor
91
+ *
92
+ * @throws Error If clazz is not found, or obj is not a {@link Model} meaning it has no {@link ModelKeys.ANCHOR} property
93
+ */
94
+ build(obj = {}, clazz) {
95
+ if (!clazz && !this.testFunction(obj))
96
+ throw new Error("Provided obj is not a Model object");
97
+ const name = clazz || Metadata.modelName(obj.constructor);
98
+ if (!(name in this.cache))
99
+ throw new Error(`Provided class ${name} is not a registered Model object`);
100
+ return new this.cache[name](obj);
101
+ }
102
+ /**
103
+ * @description Configures the global model builder function
104
+ * @summary Sets the Global {@link ModelBuilderFunction} used for building model instances
105
+ *
106
+ * @param {ModelBuilderFunction} [builder] - The builder function to set as the global builder
107
+ * @return {void}
108
+ */
109
+ static setBuilder(builder) {
110
+ modelBuilderFunction = builder;
111
+ }
112
+ /**
113
+ * @description Retrieves the currently configured global model builder function
114
+ * @summary Returns the current global {@link ModelBuilderFunction} used for building model instances
115
+ *
116
+ * @return {ModelBuilderFunction | undefined} - The current global builder function or undefined if not set
117
+ */
118
+ static getBuilder() {
119
+ return modelBuilderFunction || ModelRegistryManager.fromModel;
120
+ }
121
+ /**
122
+ * @description Copies and rebuilds properties from a source object to a model instance, handling nested models
123
+ * @summary Repopulates the instance with properties from the new Model Object, recursively rebuilding nested models
124
+ *
125
+ * @template T
126
+ * @param {T} self - The target model instance to update
127
+ * @param {T | Record<string, any>} [obj] - The source object containing properties to copy
128
+ * @return {T} - The updated model instance with rebuilt nested models
129
+ *
130
+ * @mermaid
131
+ * sequenceDiagram
132
+ * participant C as Client
133
+ * participant M as Model.fromModel
134
+ * participant B as Model.build
135
+ * participant R as Reflection
136
+ *
137
+ * C->>M: fromModel(self, obj)
138
+ * M->>M: Get attributes from self
139
+ * loop For each property
140
+ * M->>M: Copy property from obj to self
141
+ * alt Property is a model
142
+ * M->>M: Check if property is a model
143
+ * M->>B: build(property, modelType)
144
+ * B-->>M: Return built model
145
+ * else Property is a complex type
146
+ * M->>R: Get property decorators
147
+ * R-->>M: Return decorators
148
+ * M->>M: Filter type decorators
149
+ * alt Property is Array/Set with list decorator
150
+ * M->>M: Process each item in collection
151
+ * loop For each item
152
+ * M->>B: build(item, itemModelType)
153
+ * B-->>M: Return built model
154
+ * end
155
+ * else Property is another model type
156
+ * M->>B: build(property, propertyType)
157
+ * B-->>M: Return built model
158
+ * end
159
+ * end
160
+ * end
161
+ * M-->>C: Return updated self
162
+ */
163
+ static fromModel(self, obj) {
164
+ if (!obj)
165
+ obj = {};
166
+ let decorators;
167
+ const props = Metadata.getAttributes(self);
168
+ const proto = Object.getPrototypeOf(self);
169
+ let descriptor;
170
+ for (const prop of props) {
171
+ try {
172
+ self[prop] =
173
+ obj[prop] ??
174
+ self[prop] ??
175
+ undefined;
176
+ }
177
+ catch (e) {
178
+ descriptor = Object.getOwnPropertyDescriptor(proto, prop);
179
+ if (!descriptor || descriptor.writable)
180
+ throw new Error(`Unable to write property ${prop} to model: ${e}`);
181
+ }
182
+ if (typeof self[prop] !== "object")
183
+ continue;
184
+ const propM = Metadata.isPropertyModel(self, prop);
185
+ if (propM) {
186
+ try {
187
+ self[prop] =
188
+ ModelRegistryManager.getRegistry().build(self[prop], typeof propM === "string" ? propM : undefined);
189
+ }
190
+ catch (e) {
191
+ console.log(e);
192
+ }
193
+ continue;
194
+ }
195
+ decorators = Metadata.allowedTypes(self.constructor, prop);
196
+ if (!decorators || !decorators.length)
197
+ throw new Error(`failed to find decorators for property ${prop}`);
198
+ const clazz = decorators.map((t) => typeof t === "function" && !t.name ? t() : t);
199
+ const reserved = Object.values(ReservedModels);
200
+ clazz.forEach((c) => {
201
+ if (!reserved.includes(c))
202
+ try {
203
+ switch (c.name) {
204
+ case "Array":
205
+ case "Set": {
206
+ const validation = Metadata.validationFor(self.constructor, prop);
207
+ if (!validation || !validation[ValidationKeys.LIST])
208
+ break;
209
+ const listDec = validation[ValidationKeys.LIST];
210
+ const clazzName = listDec.clazz
211
+ .map((t) => typeof t === "function" && !t.name
212
+ ? t()
213
+ : t)
214
+ .find((t) => !jsTypes.includes(t.name));
215
+ if (c.name === "Array")
216
+ self[prop] = self[prop].map((el) => {
217
+ return ["object", "function"].includes(typeof el) &&
218
+ clazzName
219
+ ? ModelRegistryManager.getRegistry().build(el, clazzName.name)
220
+ : el;
221
+ });
222
+ if (c.name === "Set") {
223
+ const s = new Set();
224
+ for (const v of self[prop]) {
225
+ if (["object", "function"].includes(typeof v) &&
226
+ clazzName) {
227
+ s.add(ModelRegistryManager.getRegistry().build(v, clazzName.name));
228
+ }
229
+ else {
230
+ s.add(v);
231
+ }
232
+ }
233
+ self[prop] = s;
234
+ }
235
+ break;
236
+ }
237
+ default:
238
+ if (typeof self[prop] !== "undefined" &&
239
+ ModelRegistryManager.getRegistry().get(c.name))
240
+ self[prop] =
241
+ ModelRegistryManager.getRegistry().build(self[prop], c.name);
242
+ }
243
+ }
244
+ catch (e) {
245
+ console.log(e);
246
+ // do nothing. we have no registry of this class
247
+ }
248
+ });
249
+ }
250
+ return self;
251
+ }
252
+ /**
253
+ * @description Provides access to the current model registry
254
+ * @summary Returns the current {@link ModelRegistryManager} instance, creating one if it doesn't exist
255
+ *
256
+ * @return {ModelRegistry<any>} - The current model registry, defaults to a new {@link ModelRegistryManager} if not set
257
+ * @private
258
+ */
259
+ static getRegistry() {
260
+ if (!actingModelRegistry)
261
+ actingModelRegistry = new ModelRegistryManager();
262
+ return actingModelRegistry;
263
+ }
264
+ /**
265
+ * @description Configures the model registry to be used by the Model system
266
+ * @summary Sets the current model registry to a custom implementation
267
+ *
268
+ * @param {BuilderRegistry<any>} modelRegistry - The new implementation of Registry to use
269
+ * @return {void}
270
+ */
271
+ static setRegistry(modelRegistry) {
272
+ actingModelRegistry = modelRegistry;
273
+ }
274
+ }
275
+ /**
276
+ * @summary Bulk Registers Models
277
+ * @description Useful when using bundlers that might not evaluate all the code at once
278
+ *
279
+ * @template M extends Model
280
+ * @param {Array<Constructor<M>> | Array<{name: string, constructor: Constructor<M>}>} [models]
281
+ *
282
+ * @memberOf module:decorator-validation
283
+ * @category Model
284
+ */
285
+ export function bulkModelRegister(...models) {
286
+ models.forEach((m) => {
287
+ const constructor = (m.constructor ? m.constructor : m);
288
+ ModelRegistryManager.getRegistry().register(constructor, m.name);
289
+ });
290
+ }
291
+ //# sourceMappingURL=ModelRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelRegistry.js","sourceRoot":"","sources":["../../../src/model/ModelRegistry.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export * from "./constants";
2
2
  export * from "./construction";
3
3
  export * from "./decorators";
4
+ export * from "./ModelRegistry";
4
5
  export * from "./Model";
5
6
  export * from "./ModelErrorDefinition";
6
7
  export * from "./Builder";
@@ -1,6 +1,7 @@
1
1
  export * from "./constants.js";
2
2
  export * from "./construction.js";
3
3
  export * from "./decorators.js";
4
+ export * from "./ModelRegistry.js"; // registry before model on purpose
4
5
  export * from "./Model.js";
5
6
  export * from "./ModelErrorDefinition.js";
6
7
  export * from "./Builder.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/index.ts"],"names":[],"mappings":"AAAA,+BAA4B;AAC5B,kCAA+B;AAC/B,gCAA6B;AAC7B,2BAAwB;AACxB,0CAAuC;AACvC,6BAA0B;AAC1B,2BAAwB;AACxB,gCAA6B;AAC7B,2BAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/index.ts"],"names":[],"mappings":"AAAA,+BAA4B;AAC5B,kCAA+B;AAC/B,gCAA6B;AAC7B,mCAAgC,CAAC,mCAAmC;AACpE,2BAAwB;AACxB,0CAAuC;AACvC,6BAA0B;AAC1B,2BAAwB;AACxB,gCAA6B;AAC7B,2BAAwB"}
@@ -1,5 +1,5 @@
1
1
  import { ModelErrorDefinition } from "./ModelErrorDefinition";
2
- import { Model } from "./Model";
2
+ import type { Model } from "./Model";
3
3
  import { ConditionalAsync } from "../types";
4
4
  export declare function validateChildValue<M extends Model>(prop: string, childValue: any, parentModel: M, allowedTypes: string[], async: boolean, ...propsToIgnore: string[]): string | undefined | ModelErrorDefinition | Promise<string | undefined | ModelErrorDefinition>;
5
5
  /**
@@ -1,12 +1,12 @@
1
1
  import { ModelErrorDefinition } from "./ModelErrorDefinition.js";
2
2
  import { ModelKeys } from "./../utils/constants.js";
3
- import { Model } from "./Model.js";
4
3
  import { Validation } from "./../validation/Validation.js";
5
4
  import { ValidationKeys } from "./../validation/Validators/constants.js";
6
5
  import { PathProxyEngine } from "./../utils/PathProxy.js";
7
6
  import { ASYNC_META_KEY, VALIDATION_PARENT_KEY } from "./../constants/index.js";
8
7
  import { toConditionalPromise } from "./utils.js";
9
8
  import { Metadata } from "@decaf-ts/decoration";
9
+ import { ModelRegistryManager } from "./ModelRegistry.js";
10
10
  /**
11
11
  * Safely sets temporary metadata on an object
12
12
  */
@@ -44,7 +44,7 @@ export function validateChildValue(prop, childValue, parentModel, allowedTypes,
44
44
  let err = undefined;
45
45
  let atLeastOneMatched = false;
46
46
  for (const allowedType of allowedTypes) {
47
- const Constr = Model.get(allowedType);
47
+ const Constr = ModelRegistryManager.getRegistry().get(allowedType);
48
48
  if (!Constr) {
49
49
  err = new ModelErrorDefinition({
50
50
  [prop]: {
@@ -155,7 +155,7 @@ export function validateDecorators(model, prop, value, decorators, async, ...pro
155
155
  // const reserved = Object.values(ReservedModels).map((v) => v.toLowerCase()) as string[];
156
156
  const errs = values.map((childValue) => {
157
157
  // if (Model.isModel(v) && !reserved.includes(v) {
158
- if (Model.isModel(childValue)) {
158
+ if (Metadata.isModel(childValue)) {
159
159
  const nestedPropsToIgnore = getChildNestedPropsToIgnore(prop, ...propsToIgnore);
160
160
  return validateChildValue(prop, childValue, model, types.flat(), !!async, ...nestedPropsToIgnore);
161
161
  // return getNestedValidationErrors(childValue, model, async);
@@ -280,13 +280,13 @@ export function validate(model, async, ...propsToIgnore) {
280
280
  const propErrors = validateDecorators(model, propKey, propValue, decorators, async, ...propsToIgnore) || {};
281
281
  // Check for nested properties.
282
282
  // To prevent unnecessary processing, "propValue" must be defined
283
- const isConstr = Model.isPropertyModel(model, propKey);
283
+ const isConstr = Metadata.isPropertyModel(model, propKey);
284
284
  const hasPropValue = propValue !== null && propValue !== undefined;
285
285
  if (isConstr && hasPropValue) {
286
286
  // If property comes from a relation and has populate flag set to false, this will have the value of the id of that relation, instead of a model.
287
287
  // We need to capture that and excempt it from throwing an error. This is being handled in the core Metadata.validationExceptions.
288
288
  const Constr = designTypes
289
- .map((d) => Model.get(d.name || d))
289
+ .map((d) => ModelRegistryManager.getRegistry().get(d.name || d))
290
290
  .find((d) => !!d);
291
291
  const designTypeNames = designTypes.map((d) => {
292
292
  if (typeof d === "function")
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/model/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/model/validation.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { Model } from "../model/Model";
2
2
  import "@decaf-ts/decoration";
3
3
  import { Constructor } from "@decaf-ts/decoration";
4
4
  import { designTypeReturn, ExtendedMetadata } from "./types";
5
- import { ValidationMetadata } from "../validation/index";
5
+ import { ValidationMetadata } from "../validation/types";
6
6
  declare module "@decaf-ts/decoration" {
7
7
  namespace Metadata {
8
8
  /**
@@ -125,5 +125,8 @@ declare module "@decaf-ts/decoration" {
125
125
  * const { designTypes, designType } = Metadata.getPropDesignTypes(User.constructor, 'name');
126
126
  */
127
127
  function getPropDesignTypes<M>(model: Constructor<M>, property: keyof M): designTypeReturn;
128
+ function isModel(target: Record<string, any>): boolean;
129
+ function isPropertyModel<M extends Model>(target: M, attribute: string): boolean | string | undefined;
130
+ function getAttributes<V extends Model>(model: Constructor<V> | V): string[];
128
131
  }
129
132
  }
@@ -3,6 +3,7 @@ import { Metadata } from "@decaf-ts/decoration";
3
3
  import { Model } from "./../model/Model.js";
4
4
  import { DEFAULT_ERROR_MESSAGES, ValidationKeys, } from "./../validation/Validators/constants.js";
5
5
  import { ReservedModels } from "./../model/constants.js";
6
+ import { ModelRegistryManager } from "./../model/ModelRegistry.js";
6
7
  Metadata.validationFor = function (model, property, key) {
7
8
  const meta = Metadata.get(model);
8
9
  if (!meta)
@@ -76,4 +77,52 @@ Metadata.getPropDesignTypes = function (model, prop) {
76
77
  const designTypes = (Array.isArray(designType) ? designType : [designType]).map((e) => (e = typeof e === "function" && !e.name ? e() : e));
77
78
  return { designTypes, designType };
78
79
  }.bind(Metadata);
80
+ Metadata.isModel = function isModel(target) {
81
+ try {
82
+ if (target instanceof Model)
83
+ return true;
84
+ const constr = Metadata.constr(target);
85
+ if (!constr || constr === target)
86
+ return false;
87
+ return !!Metadata.modelName(constr);
88
+ //
89
+ // // return target instanceof Model || !!Metadata.modelName(target as any);
90
+ // const modelName = Metadata.modelName(target as any);
91
+ // return target instanceof Model || !!Model.get(modelName);
92
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
93
+ }
94
+ catch (e) {
95
+ return false;
96
+ }
97
+ }.bind(Metadata);
98
+ Metadata.isPropertyModel = function isPropertyModel(target, attribute) {
99
+ const isModel = Metadata.isModel(target[attribute]);
100
+ if (isModel)
101
+ return true;
102
+ const metadata = Metadata.type(target.constructor, attribute);
103
+ if (!metadata)
104
+ return undefined;
105
+ return ModelRegistryManager.getRegistry().get(metadata.name)
106
+ ? metadata.name
107
+ : undefined;
108
+ }.bind(Metadata);
109
+ Metadata.getAttributes = function getAttributes(model) {
110
+ const constructor = model instanceof Model ? model.constructor : model;
111
+ const seen = new Set();
112
+ const collect = (current) => {
113
+ if (!current)
114
+ return [];
115
+ const parent = Object.getPrototypeOf(current);
116
+ const attributes = collect(parent);
117
+ const props = Metadata.properties(current) ?? [];
118
+ for (const prop of props) {
119
+ if (!seen.has(prop)) {
120
+ seen.add(prop);
121
+ attributes.push(prop);
122
+ }
123
+ }
124
+ return attributes;
125
+ };
126
+ return collect(constructor);
127
+ }.bind(Metadata);
79
128
  //# sourceMappingURL=overrides.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../src/overrides/overrides.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../src/overrides/overrides.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { BasicMetadata } from "@decaf-ts/decoration";
2
- import { ValidatorOptions } from "../validation/index";
2
+ import { ValidatorOptions } from "../validation/types";
3
3
  export type ExtendedMetadata<M> = BasicMetadata<M> & {
4
4
  validation: Record<keyof M, ValidatorOptions>;
5
5
  };
@@ -29,3 +29,4 @@ export declare enum ModelKeys {
29
29
  DECORATORS = "decorators",
30
30
  CONSTRUCTOR = "__original"
31
31
  }
32
+ export declare const DefaultSerializationMethod = "json";
@@ -31,4 +31,5 @@ export var ModelKeys;
31
31
  ModelKeys["DECORATORS"] = "decorators";
32
32
  ModelKeys["CONSTRUCTOR"] = "__original";
33
33
  })(ModelKeys || (ModelKeys = {}));
34
+ export const DefaultSerializationMethod = "json";
34
35
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAN,IAAY,SAWX;AAXD,WAAY,SAAS;IACnB,wCAA6C,CAAA;IAC7C,iCAAsC,CAAA;IACtC,4BAAe,CAAA;IACf,+BAAkB,CAAA;IAClB,4CAA+B,CAAA;IAC/B,uCAA0B,CAAA;IAC1B,gCAAmB,CAAA;IACnB,4CAA+B,CAAA;IAC/B,sCAAyB,CAAA;IACzB,uCAA6C,CAAA;AAC/C,CAAC,EAXW,SAAS,KAAT,SAAS,QAWpB"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAN,IAAY,SAWX;AAXD,WAAY,SAAS;IACnB,wCAA6C,CAAA;IAC7C,iCAAsC,CAAA;IACtC,4BAAe,CAAA;IACf,+BAAkB,CAAA;IAClB,4CAA+B,CAAA;IAC/B,uCAA0B,CAAA;IAC1B,gCAAmB,CAAA;IACnB,4CAA+B,CAAA;IAC/B,sCAAyB,CAAA;IACzB,uCAA6C,CAAA;AAC/C,CAAC,EAXW,SAAS,KAAT,SAAS,QAWpB;AACD,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC"}
@@ -4,6 +4,7 @@ export * from "./equality";
4
4
  export * from "./hashing";
5
5
  export * from "./PathProxy";
6
6
  export * from "./registry";
7
+ export * from "./serializers";
7
8
  export * from "./serialization";
8
9
  export * from "./strings";
9
10
  export * from "./types";
@@ -4,6 +4,7 @@ export * from "./equality.js";
4
4
  export * from "./hashing.js";
5
5
  export * from "./PathProxy.js";
6
6
  export * from "./registry.js";
7
+ export * from "./serializers.js"; // before serialization on purpose
7
8
  export * from "./serialization.js";
8
9
  export * from "./strings.js";
9
10
  export * from "./types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,+BAA4B;AAC5B,2BAAwB;AACxB,8BAA2B;AAC3B,6BAA0B;AAC1B,+BAA4B;AAC5B,8BAA2B;AAC3B,mCAAgC;AAChC,6BAA0B;AAC1B,2BAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,+BAA4B;AAC5B,2BAAwB;AACxB,8BAA2B;AAC3B,6BAA0B;AAC1B,+BAA4B;AAC5B,8BAA2B;AAC3B,iCAA8B,CAAC,kCAAkC;AACjE,mCAAgC;AAChC,6BAA0B;AAC1B,2BAAwB"}
@@ -1,46 +1,5 @@
1
1
  import { Constructor } from "@decaf-ts/decoration";
2
2
  import { Serializer } from "./types";
3
- import { Model } from "../model/Model";
4
- export declare const DefaultSerializationMethod = "json";
5
- /**
6
- * @summary Concrete implementation of a {@link Serializer} in JSON format
7
- * @description JS's native JSON.stringify (used here) is not deterministic
8
- * and therefore should not be used for hashing purposes
9
- *
10
- * To keep dependencies low, we will not implement this, but we recommend
11
- * implementing a similar {@link JSONSerializer} using 'deterministic-json' libraries
12
- *
13
- * @class JSONSerializer
14
- * @implements Serializer
15
- *
16
- * @category Model
17
- */
18
- export declare class JSONSerializer<T extends Model<boolean>> implements Serializer<T> {
19
- constructor();
20
- /**
21
- * @summary prepares the model for serialization
22
- * @description returns a shallow copy of the object, containing an enumerable {@link ModelKeys#ANCHOR} property
23
- * so the object can be recognized upon deserialization
24
- *
25
- * @param {T} model
26
- * @protected
27
- */
28
- protected preSerialize(model: T, ...args: any[]): Record<string, any>;
29
- /**
30
- * @summary Rebuilds a model from a serialization
31
- * @param {string} str
32
- *
33
- * @throws {Error} If it fails to parse the string, or to build the model
34
- */
35
- deserialize(str: string, ...args: any[]): T;
36
- /**
37
- * @summary Serializes a model
38
- * @param {T} model
39
- *
40
- * @throws {Error} if fails to serialize
41
- */
42
- serialize(model: T, ...args: any[]): string;
43
- }
44
3
  export declare class Serialization {
45
4
  private static current;
46
5
  private static cache;