functional-models 3.9.5 → 3.11.0

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 (84) hide show
  1. package/cjs/errors.cjs +38 -0
  2. package/cjs/errors.cjs.map +7 -0
  3. package/cjs/index.cjs +2426 -0
  4. package/cjs/index.cjs.map +7 -0
  5. package/cjs/lib.cjs +431 -0
  6. package/cjs/lib.cjs.map +7 -0
  7. package/cjs/models.cjs +571 -0
  8. package/cjs/models.cjs.map +7 -0
  9. package/cjs/orm/index.cjs +1765 -0
  10. package/cjs/orm/index.cjs.map +7 -0
  11. package/cjs/orm/internal-libs.cjs +136 -0
  12. package/cjs/orm/internal-libs.cjs.map +7 -0
  13. package/cjs/orm/libs.cjs +88 -0
  14. package/cjs/orm/libs.cjs.map +7 -0
  15. package/cjs/orm/models.cjs +1027 -0
  16. package/cjs/orm/models.cjs.map +7 -0
  17. package/cjs/orm/properties.cjs +989 -0
  18. package/cjs/orm/properties.cjs.map +7 -0
  19. package/cjs/orm/query.cjs +376 -0
  20. package/cjs/orm/query.cjs.map +7 -0
  21. package/cjs/orm/types.cjs +59 -0
  22. package/cjs/orm/types.cjs.map +7 -0
  23. package/cjs/orm/validation.cjs +301 -0
  24. package/cjs/orm/validation.cjs.map +7 -0
  25. package/cjs/properties.cjs +998 -0
  26. package/cjs/properties.cjs.map +7 -0
  27. package/cjs/serialization.cjs +75 -0
  28. package/cjs/serialization.cjs.map +7 -0
  29. package/cjs/types.cjs +65 -0
  30. package/cjs/types.cjs.map +7 -0
  31. package/cjs/utils.cjs +187 -0
  32. package/cjs/utils.cjs.map +7 -0
  33. package/cjs/validation.cjs +431 -0
  34. package/cjs/validation.cjs.map +7 -0
  35. package/errors.js +3 -4
  36. package/errors.js.map +1 -1
  37. package/index.d.ts +13 -13
  38. package/index.js +13 -52
  39. package/index.js.map +1 -1
  40. package/lib.d.ts +5 -5
  41. package/lib.js +45 -65
  42. package/lib.js.map +1 -1
  43. package/models.d.ts +1 -1
  44. package/models.js +22 -30
  45. package/models.js.map +1 -1
  46. package/orm/index.d.ts +9 -9
  47. package/orm/index.js +9 -48
  48. package/orm/index.js.map +1 -1
  49. package/orm/internal-libs.js +7 -11
  50. package/orm/internal-libs.js.map +1 -1
  51. package/orm/libs.d.ts +1 -1
  52. package/orm/libs.js +8 -16
  53. package/orm/libs.js.map +1 -1
  54. package/orm/models.d.ts +2 -2
  55. package/orm/models.js +20 -26
  56. package/orm/models.js.map +1 -1
  57. package/orm/properties.d.ts +28 -28
  58. package/orm/properties.js +28 -36
  59. package/orm/properties.js.map +1 -1
  60. package/orm/query.d.ts +1 -1
  61. package/orm/query.js +31 -52
  62. package/orm/query.js.map +1 -1
  63. package/orm/types.d.ts +2 -2
  64. package/orm/types.js +7 -10
  65. package/orm/types.js.map +1 -1
  66. package/orm/validation.d.ts +2 -2
  67. package/orm/validation.js +5 -13
  68. package/orm/validation.js.map +1 -1
  69. package/package.json +50 -65
  70. package/properties.d.ts +133 -133
  71. package/properties.js +66 -94
  72. package/properties.js.map +1 -1
  73. package/serialization.d.ts +1 -1
  74. package/serialization.js +3 -9
  75. package/serialization.js.map +1 -1
  76. package/types.d.ts +6 -1
  77. package/types.js +4 -6
  78. package/types.js.map +1 -1
  79. package/utils.d.ts +2 -1
  80. package/utils.js +8 -23
  81. package/utils.js.map +1 -1
  82. package/validation.d.ts +1 -1
  83. package/validation.js +19 -50
  84. package/validation.js.map +1 -1
package/properties.js CHANGED
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
2
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
3
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -8,18 +7,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
8
  });
10
9
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.NaturalIdProperty = exports.DenormalizedIntegerProperty = exports.DenormalizedNumberProperty = exports.DenormalizedTextProperty = exports.DenormalizedProperty = exports.AdvancedModelReferenceProperty = exports.ModelReferenceProperty = exports.UuidProperty = exports.PrimaryKeyUuidProperty = exports.BooleanProperty = exports.EmailProperty = exports.ConstantValueProperty = exports.NumberProperty = exports.YearProperty = exports.IntegerProperty = exports.BigTextProperty = exports.TextProperty = exports.ObjectProperty = exports.SingleTypeArrayProperty = exports.ArrayProperty = exports.DatetimeProperty = exports.DateProperty = exports.Property = void 0;
16
- const merge_1 = __importDefault(require("lodash/merge"));
17
- const get_1 = __importDefault(require("lodash/get"));
18
- const uuid_1 = require("uuid");
19
- const validation_1 = require("./validation");
20
- const utils_1 = require("./utils");
21
- const types_1 = require("./types");
22
- const lib_1 = require("./lib");
10
+ import merge from 'lodash/merge.js';
11
+ import get from 'lodash/get.js';
12
+ import { v4 as uuidv4 } from 'uuid';
13
+ import { arrayType, createPropertyValidator, isType, isValidUuid, maxNumber, meetsRegex, minNumber, optionalValidator, referenceTypeMatch, } from './validation.js';
14
+ import { createHeadAndTail, memoizeAsync, memoizeSync } from './utils.js';
15
+ import { PropertyType, } from './types.js';
16
+ import { getValueForModelInstance, getValueForReferencedModel, isReferencedProperty, getCommonTextValidators, getCommonNumberValidators, mergeValidators, isModelInstance, createZodForProperty, } from './lib.js';
23
17
  const MAX_YEAR = 3000;
24
18
  const EMAIL_REGEX = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/u;
25
19
  /**
@@ -32,7 +26,7 @@ const EMAIL_REGEX = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-
32
26
  * @typeParam TModelExtensions - Any additional model extensions
33
27
  * @typeParam TModelInstanceExtensions - Any additional model instance extensions
34
28
  */
35
- const Property = (propertyType, config = {}, additionalMetadata = {}) => {
29
+ export const Property = (propertyType, config = {}, additionalMetadata = {}) => {
36
30
  if (!propertyType && !(config === null || config === void 0 ? void 0 : config.typeOverride)) {
37
31
  throw new Error(`Property type must be provided.`);
38
32
  }
@@ -62,11 +56,11 @@ const Property = (propertyType, config = {}, additionalMetadata = {}) => {
62
56
  const method = lazyLoadMethod
63
57
  ? lazyLoadMethod
64
58
  : config.lazyLoadMethodAtomic
65
- ? (0, utils_1.memoizeAsync)(config.lazyLoadMethodAtomic)
59
+ ? memoizeAsync(config.lazyLoadMethodAtomic)
66
60
  : typeof instanceValue === 'function'
67
61
  ? instanceValue
68
62
  : () => instanceValue;
69
- const valueGetter = (0, utils_1.memoizeSync)(() => {
63
+ const valueGetter = memoizeSync(() => {
70
64
  // @ts-ignore
71
65
  const result = method(instanceValue, modelData,
72
66
  // @ts-ignore
@@ -76,7 +70,7 @@ const Property = (propertyType, config = {}, additionalMetadata = {}) => {
76
70
  return valueGetter;
77
71
  };
78
72
  const getValidator = (valueGetter) => {
79
- const validator = (0, validation_1.createPropertyValidator)(valueGetter, config);
73
+ const validator = createPropertyValidator(valueGetter, config);
80
74
  const _propertyValidatorWrapper = (model, instanceData, propertyConfiguration) => __awaiter(void 0, void 0, void 0, function* () {
81
75
  return validator(model, instanceData, propertyConfiguration);
82
76
  });
@@ -89,7 +83,7 @@ const Property = (propertyType, config = {}, additionalMetadata = {}) => {
89
83
  if (provided) {
90
84
  return provided;
91
85
  }
92
- return (0, lib_1.createZodForProperty)(propertyType, config)();
86
+ return createZodForProperty(propertyType, config)();
93
87
  };
94
88
  const propertyInstance = Object.assign(Object.assign({}, additionalMetadata), { getConfig: () => config || {}, getChoices,
95
89
  getDefaultValue,
@@ -98,7 +92,6 @@ const Property = (propertyType, config = {}, additionalMetadata = {}) => {
98
92
  getValidator });
99
93
  return propertyInstance;
100
94
  };
101
- exports.Property = Property;
102
95
  /**
103
96
  * Determines if the value is a Date object.
104
97
  * @param value Any value
@@ -115,7 +108,7 @@ const isDate = (value) => {
115
108
  * @param config - A configuration that enables overriding of date formatting
116
109
  * @param additionalMetadata
117
110
  */
118
- const DateProperty = (config = {}, additionalMetadata = {}) => (0, exports.Property)(types_1.PropertyType.Date, (0, merge_1.default)({
111
+ export const DateProperty = (config = {}, additionalMetadata = {}) => Property(PropertyType.Date, merge({
119
112
  lazyLoadMethod: (value) => {
120
113
  if (isDate(value)) {
121
114
  if (config.formatFunction) {
@@ -133,13 +126,12 @@ const DateProperty = (config = {}, additionalMetadata = {}) => (0, exports.Prope
133
126
  return value;
134
127
  },
135
128
  }, config), additionalMetadata);
136
- exports.DateProperty = DateProperty;
137
129
  /**
138
130
  * A property for Date AND Times. Supports both strings and Date Objects.
139
131
  * @param config - A configuration that enables overriding of date and time formatting
140
132
  * @param additionalMetadata
141
133
  */
142
- const DatetimeProperty = (config = {}, additionalMetadata = {}) => (0, exports.Property)(types_1.PropertyType.Datetime, (0, merge_1.default)({
134
+ export const DatetimeProperty = (config = {}, additionalMetadata = {}) => Property(PropertyType.Datetime, merge({
143
135
  lazyLoadMethod: (value) => {
144
136
  if (isDate(value)) {
145
137
  if (config.formatFunction) {
@@ -157,84 +149,76 @@ const DatetimeProperty = (config = {}, additionalMetadata = {}) => (0, exports.P
157
149
  return value;
158
150
  },
159
151
  }, config), additionalMetadata);
160
- exports.DatetimeProperty = DatetimeProperty;
161
152
  /**
162
153
  * A property that has an array of sub values.
163
154
  * @param config
164
155
  * @param additionalMetadata
165
156
  */
166
- const ArrayProperty = (config = {}, additionalMetadata = {}) => (0, exports.Property)(types_1.PropertyType.Array, Object.assign(Object.assign({ defaultValue: [] }, config), { isArray: true }), additionalMetadata);
167
- exports.ArrayProperty = ArrayProperty;
157
+ export const ArrayProperty = (config = {}, additionalMetadata = {}) => Property(PropertyType.Array, Object.assign(Object.assign({ defaultValue: [] }, config), { isArray: true }), additionalMetadata);
168
158
  /**
169
159
  * A property that is an array, but only of a single value type. This is an {@link ArrayProperty} but with a validator for the type.
170
160
  * @param valueType - The type. (Only supports primitive data types, no objects)
171
161
  * @param config
172
162
  * @param additionalMetadata
173
163
  */
174
- const SingleTypeArrayProperty = (valueType, config = {}, additionalMetadata = {}) => (0, exports.Property)(types_1.PropertyType.Array, Object.assign(Object.assign({ defaultValue: [] }, config), { isArray: true, validators: (0, lib_1.mergeValidators)(config,
164
+ export const SingleTypeArrayProperty = (valueType, config = {}, additionalMetadata = {}) => Property(PropertyType.Array, Object.assign(Object.assign({ defaultValue: [] }, config), { isArray: true, validators: mergeValidators(config,
175
165
  // @ts-ignore
176
- (0, validation_1.arrayType)(valueType)) }), additionalMetadata);
177
- exports.SingleTypeArrayProperty = SingleTypeArrayProperty;
166
+ arrayType(valueType)) }), additionalMetadata);
178
167
  /**
179
168
  * A property that has simple objects. These must be JSON compliant. These are validated.
180
169
  * @param config
181
170
  * @param additionalMetadata
182
171
  */
183
- const ObjectProperty = (config = {}, additionalMetadata = {}) => (0, exports.Property)(types_1.PropertyType.Object, (0, merge_1.default)(config, {
184
- validators: (0, lib_1.mergeValidators)(config, (0, validation_1.isType)('object')),
172
+ export const ObjectProperty = (config = {}, additionalMetadata = {}) => Property(PropertyType.Object, merge(config, {
173
+ validators: mergeValidators(config, isType('object')),
185
174
  }), additionalMetadata);
186
- exports.ObjectProperty = ObjectProperty;
187
175
  /**
188
176
  * A simple text property. If it's possible to put ALOT of text in this field consider using the {@link BigTextProperty}
189
177
  * @param config - Additional Configurations
190
178
  * @param additionalMetadata - Additional Metadata
191
179
  */
192
- const TextProperty = (config = {}, additionalMetadata = {}) => (0, exports.Property)(types_1.PropertyType.Text, (0, merge_1.default)(config, {
180
+ export const TextProperty = (config = {}, additionalMetadata = {}) => Property(PropertyType.Text, merge(config, {
193
181
  isString: true,
194
- validators: (0, lib_1.mergeValidators)(config, ...(0, lib_1.getCommonTextValidators)(config)),
182
+ // @ts-ignore
183
+ validators: mergeValidators(config, ...getCommonTextValidators(config)),
195
184
  }), additionalMetadata);
196
- exports.TextProperty = TextProperty;
197
185
  /**
198
186
  * A property for large blocks of strings.
199
187
  * @param config - Additional configurations
200
188
  * @param additionalMetadata - Additional metadata
201
189
  */
202
- const BigTextProperty = (config = {}, additionalMetadata = {}) => (0, exports.Property)(types_1.PropertyType.BigText, (0, merge_1.default)(config, {
190
+ export const BigTextProperty = (config = {}, additionalMetadata = {}) => Property(PropertyType.BigText, merge(config, {
203
191
  isString: true,
204
- validators: (0, lib_1.mergeValidators)(config, ...(0, lib_1.getCommonTextValidators)(config)),
192
+ validators: mergeValidators(config, ...getCommonTextValidators(config)),
205
193
  }), additionalMetadata);
206
- exports.BigTextProperty = BigTextProperty;
207
194
  /**
208
195
  * A property that houses integers. No floats allowed.
209
196
  * @param config
210
197
  * @param additionalMetadata
211
198
  */
212
- const IntegerProperty = (config = {}, additionalMetadata = {}) => (0, exports.Property)(types_1.PropertyType.Integer, (0, merge_1.default)(config, {
199
+ export const IntegerProperty = (config = {}, additionalMetadata = {}) => Property(PropertyType.Integer, merge(config, {
213
200
  isInteger: true,
214
- validators: (0, lib_1.mergeValidators)(config, ...(0, lib_1.getCommonNumberValidators)(config)),
201
+ validators: mergeValidators(config, ...getCommonNumberValidators(config)),
215
202
  }), additionalMetadata);
216
- exports.IntegerProperty = IntegerProperty;
217
203
  /**
218
204
  * An integer property that represents a year. NOTE: This is exclusively focused on a year in a modern context.
219
205
  * Validates from 0 to 3000
220
206
  * @param config
221
207
  * @param additionalMetadata
222
208
  */
223
- const YearProperty = (config = {}, additionalMetadata = {}) => (0, exports.Property)(types_1.PropertyType.Integer, (0, merge_1.default)(config, {
209
+ export const YearProperty = (config = {}, additionalMetadata = {}) => Property(PropertyType.Integer, merge(config, {
224
210
  isInteger: true,
225
- validators: (0, lib_1.mergeValidators)(config, ...(0, lib_1.getCommonNumberValidators)(config), (0, validation_1.minNumber)(0), (0, validation_1.maxNumber)(MAX_YEAR)),
211
+ validators: mergeValidators(config, ...getCommonNumberValidators(config), minNumber(0), maxNumber(MAX_YEAR)),
226
212
  }), additionalMetadata);
227
- exports.YearProperty = YearProperty;
228
213
  /**
229
214
  * A property for numbers. This could be integers or float values.
230
215
  * @param config
231
216
  * @param additionalMetadata
232
217
  */
233
- const NumberProperty = (config = {}, additionalMetadata = {}) => (0, exports.Property)(types_1.PropertyType.Number, (0, merge_1.default)(config, {
218
+ export const NumberProperty = (config = {}, additionalMetadata = {}) => Property(PropertyType.Number, merge(config, {
234
219
  isNumber: true,
235
- validators: (0, lib_1.mergeValidators)(config, ...(0, lib_1.getCommonNumberValidators)(config)),
220
+ validators: mergeValidators(config, ...getCommonNumberValidators(config)),
236
221
  }), additionalMetadata);
237
- exports.NumberProperty = NumberProperty;
238
222
  /**
239
223
  * A property that has a fixed value that can never be changed. Can be useful for things like embedding the name of a model into JSONified objects.
240
224
  * @param valueType - The value type for this property.
@@ -242,47 +226,43 @@ exports.NumberProperty = NumberProperty;
242
226
  * @param config
243
227
  * @param additionalMetadata
244
228
  */
245
- const ConstantValueProperty = (valueType, value, config = {}, additionalMetadata = {}) => (0, exports.Property)(valueType, (0, merge_1.default)(config, {
229
+ export const ConstantValueProperty = (valueType, value, config = {}, additionalMetadata = {}) => Property(valueType, merge(config, {
246
230
  value,
247
231
  }), additionalMetadata);
248
- exports.ConstantValueProperty = ConstantValueProperty;
249
232
  /**
250
233
  * A property that encapsulates email addresses. Provides validation for making sure an email is valid.
251
234
  * @param config
252
235
  * @param additionalMetadata
253
236
  */
254
- const EmailProperty = (config = {}, additionalMetadata = {}) => (0, exports.TextProperty)((0, merge_1.default)(config, {
255
- type: types_1.PropertyType.Email,
256
- validators: (0, lib_1.mergeValidators)(config, (0, validation_1.meetsRegex)(EMAIL_REGEX)),
237
+ export const EmailProperty = (config = {}, additionalMetadata = {}) => TextProperty(merge(config, {
238
+ type: PropertyType.Email,
239
+ validators: mergeValidators(config, meetsRegex(EMAIL_REGEX)),
257
240
  }), additionalMetadata);
258
- exports.EmailProperty = EmailProperty;
259
241
  /**
260
242
  * A property that has a true or false value.
261
243
  * @param config
262
244
  * @param additionalMetadata
263
245
  */
264
- const BooleanProperty = (config = {}, additionalMetadata = {}) => (0, exports.Property)(types_1.PropertyType.Boolean, (0, merge_1.default)(config, {
246
+ export const BooleanProperty = (config = {}, additionalMetadata = {}) => Property(PropertyType.Boolean, merge(config, {
265
247
  isBoolean: true,
266
248
  }), additionalMetadata);
267
- exports.BooleanProperty = BooleanProperty;
268
249
  /**
269
250
  * A property that is used for Primary Keys. If no value is provided a UUID is automatically created.
270
251
  * This property has required on it.
271
252
  * @param config - Additional configurations. NOTE: required is ALWAYS true.
272
253
  * @param additionalMetadata - Any additional metadata.
273
254
  */
274
- const PrimaryKeyUuidProperty = (config = {}, additionalMetadata = {}) => (0, exports.Property)(types_1.PropertyType.UniqueId, (0, merge_1.default)(config, {
255
+ export const PrimaryKeyUuidProperty = (config = {}, additionalMetadata = {}) => Property(PropertyType.UniqueId, merge(config, {
275
256
  required: true,
276
257
  isString: true,
277
- validators: (0, lib_1.mergeValidators)(config, validation_1.isValidUuid),
258
+ validators: mergeValidators(config, isValidUuid),
278
259
  lazyLoadMethod: (value) => {
279
260
  if (!value) {
280
- return (0, uuid_1.v4)();
261
+ return uuidv4();
281
262
  }
282
263
  return value;
283
264
  },
284
265
  }), additionalMetadata);
285
- exports.PrimaryKeyUuidProperty = PrimaryKeyUuidProperty;
286
266
  /**
287
267
  * A property that has a uuid.
288
268
  * This property has required on it.
@@ -290,19 +270,18 @@ exports.PrimaryKeyUuidProperty = PrimaryKeyUuidProperty;
290
270
  * @param config - Additional configurations.
291
271
  * @param additionalMetadata - Any additional metadata.
292
272
  */
293
- const UuidProperty = (config = {}, additionalMetadata = {}) => (0, exports.Property)(types_1.PropertyType.UniqueId, (0, merge_1.default)(config, {
273
+ export const UuidProperty = (config = {}, additionalMetadata = {}) => Property(PropertyType.UniqueId, merge(config, {
294
274
  isString: true,
295
- validators: (0, lib_1.mergeValidators)(config, config.required ? validation_1.isValidUuid : (0, validation_1.optionalValidator)(validation_1.isValidUuid)),
275
+ validators: mergeValidators(config, config.required ? isValidUuid : optionalValidator(isValidUuid)),
296
276
  lazyLoadMethod: (value) => {
297
277
  if (!value) {
298
278
  if (config.autoNow) {
299
- return (0, uuid_1.v4)();
279
+ return uuidv4();
300
280
  }
301
281
  }
302
282
  return value;
303
283
  },
304
284
  }), additionalMetadata);
305
- exports.UuidProperty = UuidProperty;
306
285
  /**
307
286
  * A property that has a reference to another model instance. A "Foreign Key" if you will.
308
287
  * For full functionality a {@link ModelInstanceFetcher} must be provided in the config.
@@ -320,8 +299,7 @@ exports.UuidProperty = UuidProperty;
320
299
  * @param config
321
300
  * @param additionalMetadata
322
301
  */
323
- const ModelReferenceProperty = (model, config = {}, additionalMetadata = {}) => (0, exports.AdvancedModelReferenceProperty)(model, config, additionalMetadata);
324
- exports.ModelReferenceProperty = ModelReferenceProperty;
302
+ export const ModelReferenceProperty = (model, config = {}, additionalMetadata = {}) => AdvancedModelReferenceProperty(model, config, additionalMetadata);
325
303
  /**
326
304
  * The full implementation of a ModelReference, useful for typing certain extended functionalities.
327
305
  * For a full description see {@link ModelReferenceProperty}
@@ -329,7 +307,7 @@ exports.ModelReferenceProperty = ModelReferenceProperty;
329
307
  * @param config
330
308
  * @param additionalMetadata
331
309
  */
332
- const AdvancedModelReferenceProperty = (model, config = {}, additionalMetadata = {}) => {
310
+ export const AdvancedModelReferenceProperty = (model, config = {}, additionalMetadata = {}) => {
333
311
  if (!model) {
334
312
  throw new Error('Must include the referenced model');
335
313
  }
@@ -340,8 +318,8 @@ const AdvancedModelReferenceProperty = (model, config = {}, additionalMetadata =
340
318
  return model;
341
319
  };
342
320
  // @ts-ignore
343
- const validator = (0, validation_1.referenceTypeMatch)(model);
344
- const validators = (0, lib_1.mergeValidators)(config, validator);
321
+ const validator = referenceTypeMatch(model);
322
+ const validators = mergeValidators(config, validator);
345
323
  const _getId = (instanceValues) => () => {
346
324
  if (!instanceValues) {
347
325
  return undefined;
@@ -361,17 +339,17 @@ const AdvancedModelReferenceProperty = (model, config = {}, additionalMetadata =
361
339
  return instanceValues[primaryKey];
362
340
  };
363
341
  const lazyLoadMethodAtomic = (instanceValues) => __awaiter(void 0, void 0, void 0, function* () {
364
- const valueIsModelInstance = (0, lib_1.isModelInstance)(instanceValues);
342
+ const valueIsModelInstance = isModelInstance(instanceValues);
365
343
  const _getInstanceReturn = (objToUse) => {
366
344
  // We need to determine if the object we just got is an actual model instance to determine if we need to make one.
367
- const objIsModelInstance = (0, lib_1.isModelInstance)(objToUse);
345
+ const objIsModelInstance = isModelInstance(objToUse);
368
346
  const instance = objIsModelInstance
369
347
  ? objToUse
370
348
  : // @ts-ignore
371
349
  _getModel().create(objToUse);
372
350
  // We are replacing the toObj function, because the reference type in the end should be the primary key when serialized.
373
- return (0, merge_1.default)({}, instance, {
374
- toObj: (0, utils_1.memoizeAsync)(_getId(instanceValues)),
351
+ return merge({}, instance, {
352
+ toObj: memoizeAsync(_getId(instanceValues)),
375
353
  });
376
354
  };
377
355
  // @ts-ignore
@@ -381,7 +359,7 @@ const AdvancedModelReferenceProperty = (model, config = {}, additionalMetadata =
381
359
  // TypedJson?
382
360
  const theModel = _getModel();
383
361
  const primaryKey = theModel.getModelDefinition().primaryKeyName;
384
- if ((0, get_1.default)(instanceValues, primaryKey)) {
362
+ if (get(instanceValues, primaryKey)) {
385
363
  return _getInstanceReturn(instanceValues);
386
364
  }
387
365
  if (config === null || config === void 0 ? void 0 : config.fetcher) {
@@ -395,7 +373,7 @@ const AdvancedModelReferenceProperty = (model, config = {}, additionalMetadata =
395
373
  }
396
374
  return _getId(instanceValues)();
397
375
  });
398
- const p = (0, merge_1.default)((0, exports.Property)(types_1.PropertyType.ModelReference, (0, merge_1.default)({}, config, {
376
+ const p = merge(Property(PropertyType.ModelReference, merge({}, config, {
399
377
  validators,
400
378
  lazyLoadMethodAtomic,
401
379
  }), additionalMetadata), {
@@ -404,7 +382,6 @@ const AdvancedModelReferenceProperty = (model, config = {}, additionalMetadata =
404
382
  });
405
383
  return p;
406
384
  };
407
- exports.AdvancedModelReferenceProperty = AdvancedModelReferenceProperty;
408
385
  /**
409
386
  * A property for Denormalizing. This represents a complex value that has been simplified for ease of use.
410
387
  * One common use is for creating "Display Values" in a GUI. This process can be extremely expensive, such as having to
@@ -418,8 +395,8 @@ exports.AdvancedModelReferenceProperty = AdvancedModelReferenceProperty;
418
395
  * @param config - A Config
419
396
  * @param additionalMetadata _ Any additional metadata.
420
397
  */
421
- const DenormalizedProperty = (propertyType, calculate, config = {}, additionalMetadata = {}) => {
422
- const property = (0, exports.Property)(propertyType, (0, merge_1.default)(config, {
398
+ export const DenormalizedProperty = (propertyType, calculate, config = {}, additionalMetadata = {}) => {
399
+ const property = Property(propertyType, merge(config, {
423
400
  isDenormalized: true,
424
401
  lazyLoadMethodAtomic: (value, modelData, modelInstance) => __awaiter(void 0, void 0, void 0, function* () {
425
402
  if (value !== undefined) {
@@ -428,44 +405,40 @@ const DenormalizedProperty = (propertyType, calculate, config = {}, additionalMe
428
405
  return calculate(modelData, modelInstance);
429
406
  }),
430
407
  }), additionalMetadata);
431
- return (0, merge_1.default)(property, {
408
+ return merge(property, {
432
409
  calculate,
433
410
  });
434
411
  };
435
- exports.DenormalizedProperty = DenormalizedProperty;
436
412
  /**
437
413
  * A Denormalized Property that is for text.
438
414
  * @param calculate - A function that can get a string
439
415
  * @param config - Any configs
440
416
  * @param additionalMetadata - Optional Metadata
441
417
  */
442
- const DenormalizedTextProperty = (calculate, config = {}, additionalMetadata = {}) => (0, exports.DenormalizedProperty)(types_1.PropertyType.Text, calculate, (0, merge_1.default)(config, {
418
+ export const DenormalizedTextProperty = (calculate, config = {}, additionalMetadata = {}) => DenormalizedProperty(PropertyType.Text, calculate, merge(config, {
443
419
  isString: true,
444
- validators: (0, lib_1.mergeValidators)(config, ...(0, lib_1.getCommonTextValidators)(config)),
420
+ validators: mergeValidators(config, ...getCommonTextValidators(config)),
445
421
  }), additionalMetadata);
446
- exports.DenormalizedTextProperty = DenormalizedTextProperty;
447
422
  /**
448
423
  * A Denormalized Property that is for numbers.
449
424
  * @param calculate - A function that can get a string
450
425
  * @param config - Any configs
451
426
  * @param additionalMetadata - Optional Metadata
452
427
  */
453
- const DenormalizedNumberProperty = (calculate, config = {}, additionalMetadata = {}) => (0, exports.DenormalizedProperty)(types_1.PropertyType.Number, calculate, (0, merge_1.default)(config, {
428
+ export const DenormalizedNumberProperty = (calculate, config = {}, additionalMetadata = {}) => DenormalizedProperty(PropertyType.Number, calculate, merge(config, {
454
429
  isNumber: true,
455
- validators: (0, lib_1.mergeValidators)(config, ...(0, lib_1.getCommonNumberValidators)(config)),
430
+ validators: mergeValidators(config, ...getCommonNumberValidators(config)),
456
431
  }), additionalMetadata);
457
- exports.DenormalizedNumberProperty = DenormalizedNumberProperty;
458
432
  /**
459
433
  * A Denormalized Property that is for integers.
460
434
  * @param calculate - A function that can get a string
461
435
  * @param config - Any configs
462
436
  * @param additionalMetadata - Optional Metadata
463
437
  */
464
- const DenormalizedIntegerProperty = (calculate, config = {}, additionalMetadata = {}) => (0, exports.DenormalizedProperty)(types_1.PropertyType.Integer, calculate, (0, merge_1.default)(config, {
438
+ export const DenormalizedIntegerProperty = (calculate, config = {}, additionalMetadata = {}) => DenormalizedProperty(PropertyType.Integer, calculate, merge(config, {
465
439
  isInteger: true,
466
- validators: (0, lib_1.mergeValidators)(config, ...(0, lib_1.getCommonNumberValidators)(config)),
440
+ validators: mergeValidators(config, ...getCommonNumberValidators(config)),
467
441
  }), additionalMetadata);
468
- exports.DenormalizedIntegerProperty = DenormalizedIntegerProperty;
469
442
  /**
470
443
  * An id that is naturally formed by other properties within a model.
471
444
  * Instead of having a "globally unique" id the model is unique because the composition of values of properties.
@@ -480,16 +453,16 @@ exports.DenormalizedIntegerProperty = DenormalizedIntegerProperty;
480
453
  * @param config
481
454
  * @param additionalMetadata
482
455
  */
483
- const NaturalIdProperty = (propertyKeys, joiner, config = {}, additionalMetadata = {}) => (0, exports.Property)(types_1.PropertyType.Text, (0, merge_1.default)(config, {
456
+ export const NaturalIdProperty = (propertyKeys, joiner, config = {}, additionalMetadata = {}) => Property(PropertyType.Text, merge(config, {
484
457
  isString: true,
485
- validators: (0, lib_1.mergeValidators)(config, ...(0, lib_1.getCommonTextValidators)(config)),
458
+ validators: mergeValidators(config, ...getCommonTextValidators(config)),
486
459
  lazyLoadMethodAtomic: (value, model, modelInstance) => __awaiter(void 0, void 0, void 0, function* () {
487
460
  const data = yield propertyKeys.reduce((accP, key) => __awaiter(void 0, void 0, void 0, function* () {
488
461
  const acc = yield accP;
489
- const [head] = (0, utils_1.createHeadAndTail)(key.split('.'), '.');
490
- const value = yield ((0, lib_1.isReferencedProperty)(modelInstance, head)
491
- ? (0, lib_1.getValueForReferencedModel)(modelInstance, key)
492
- : (0, lib_1.getValueForModelInstance)(modelInstance, key));
462
+ const [head] = createHeadAndTail(key.split('.'), '.');
463
+ const value = yield (isReferencedProperty(modelInstance, head)
464
+ ? getValueForReferencedModel(modelInstance, key)
465
+ : getValueForModelInstance(modelInstance, key));
493
466
  return acc.concat(value);
494
467
  }), Promise.resolve([]));
495
468
  // If any of these values are not set, we do not want to have a value at all.
@@ -499,5 +472,4 @@ const NaturalIdProperty = (propertyKeys, joiner, config = {}, additionalMetadata
499
472
  return data.join(joiner);
500
473
  }),
501
474
  }), additionalMetadata);
502
- exports.NaturalIdProperty = NaturalIdProperty;
503
475
  //# sourceMappingURL=properties.js.map
package/properties.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"properties.js","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { PropertyGetters, ToObjectFunction, DataDescription } from './types';
1
+ import { PropertyGetters, ToObjectFunction, DataDescription } from './types.js';
2
2
  declare const toJsonAble: <T extends DataDescription>(keyToFunc: PropertyGetters<T>) => ToObjectFunction<T>;
3
3
  export { toJsonAble };
package/serialization.js CHANGED
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
2
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
3
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -8,12 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
8
  });
10
9
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.toJsonAble = void 0;
16
- const merge_1 = __importDefault(require("lodash/merge"));
10
+ import merge from 'lodash/merge.js';
17
11
  const isModelInstance = (obj) => {
18
12
  return Boolean(obj.toObj);
19
13
  };
@@ -47,8 +41,8 @@ const toJsonAble = (keyToFunc) => () => {
47
41
  if (trueValue === undefined) {
48
42
  return realAcc;
49
43
  }
50
- return (0, merge_1.default)(realAcc, { [key]: trueValue });
44
+ return merge(realAcc, { [key]: trueValue });
51
45
  }), Promise.resolve({}));
52
46
  };
53
- exports.toJsonAble = toJsonAble;
47
+ export { toJsonAble };
54
48
  //# sourceMappingURL=serialization.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serialization.js","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yDAAgC;AAWhC,MAAM,eAAe,GAAG,CAAC,GAAQ,EAA6B,EAAE;IAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAAO,KAAU,EAA4B,EAAE;IAC/D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,KAAK,CAAA;IACzB,MAAM,UAAU,GAAG,KAAgC,CAAA;IACnD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC,MAAM,UAAU,EAAE,CAAC,CAAA;IACtC,CAAC;IACD,gBAAgB;IAChB,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;IACvC,CAAC;IACD,QAAQ;IACR,MAAM,MAAM,GAAG,KAAa,CAAA;IAC5B,IAAI,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;IACxC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA,CAAA;AAED,MAAM,UAAU,GACd,CACE,SAA6B,EACR,EAAE,CACzB,GAEE,EAAE;IACF,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,YAA0B,EAAE,mDAArB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,GAAG,CAAA;QACzB,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,MAAM,KAAK,CAAC,CAAA;QAC9C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,OAAO,IAAA,eAAK,EAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAA,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAA+B,CAAA;AACvD,CAAC,CAAA;AAEM,gCAAU"}
1
+ {"version":3,"file":"serialization.js","sourceRoot":"","sources":["../src/serialization.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,iBAAiB,CAAA;AAWnC,MAAM,eAAe,GAAG,CAAC,GAAQ,EAA6B,EAAE;IAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAAO,KAAU,EAA4B,EAAE;IAC/D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,KAAK,CAAA;IACzB,MAAM,UAAU,GAAG,KAAgC,CAAA;IACnD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC,MAAM,UAAU,EAAE,CAAC,CAAA;IACtC,CAAC;IACD,gBAAgB;IAChB,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;IACvC,CAAC;IACD,QAAQ;IACR,MAAM,MAAM,GAAG,KAAa,CAAA;IAC5B,IAAI,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;IACxC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA,CAAA;AAED,MAAM,UAAU,GACd,CACE,SAA6B,EACR,EAAE,CACzB,GAEE,EAAE;IACF,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,YAA0B,EAAE,mDAArB,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,GAAG,CAAA;QACzB,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,MAAM,KAAK,CAAC,CAAA;QAC9C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,OAAO,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAA,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAA+B,CAAA;AACvD,CAAC,CAAA;AAEH,OAAO,EAAE,UAAU,EAAE,CAAA"}
package/types.d.ts CHANGED
@@ -1,5 +1,9 @@
1
1
  import * as openapi from 'openapi-types';
2
2
  import { ZodObject, ZodType } from 'zod';
3
+ export type Without<T, U> = {
4
+ [P in Exclude<keyof T, keyof U>]?: never;
5
+ };
6
+ export type XOR<T, U> = T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
3
7
  /**
4
8
  * A function that returns the value, or just the value
5
9
  */
@@ -79,6 +83,7 @@ type PropertyGetters<TData extends DataDescription> = {
79
83
  type DataDescription = Readonly<{
80
84
  [s: string]: Promise<PrimaryKeyType> | Arrayable<number> | Arrayable<string> | Arrayable<boolean> | Arrayable<null> | Arrayable<DataDescription> | Arrayable<Date> | Arrayable<undefined> | ModelReferenceType<any> | Arrayable<JsonAble>;
81
85
  }>;
86
+ export type CanBeNullableType<T extends DataValue> = XOR<T | undefined | null, T>;
82
87
  /**
83
88
  * These are the allowable types for setting a property of data to.
84
89
  */
@@ -667,7 +672,7 @@ type ModelFactoryOptions<TData extends DataDescription, TModelFactoryOptionsExte
667
672
  * @param modelData - The model's data as it was passed into the create() function.
668
673
  * @param modelInstance - The instance that the model corresponds with
669
674
  */
670
- type CalculateDenormalization<TValue extends DataValue, TData extends DataDescription, TModelExtensions extends object = object, TModelInstanceExtensions extends object = object> = (modelData: CreateParams<TData>, modelInstance: ModelInstance<TData, TModelExtensions, TModelInstanceExtensions>) => MaybePromise<TValue | undefined>;
675
+ type CalculateDenormalization<TValue extends CanBeNullableType<DataValue>, TData extends DataDescription, TModelExtensions extends object = object, TModelInstanceExtensions extends object = object> = (modelData: CreateParams<TData>, modelInstance: ModelInstance<TData, TModelExtensions, TModelInstanceExtensions>) => MaybePromise<TValue | undefined>;
671
676
  /**
672
677
  * Higher level value types that describe what the value of a property is.
673
678
  * These values can be used to generate expressive APIs as well as GUI elements.
package/types.js CHANGED
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApiMethod = exports.PropertyType = exports.PrimitiveValueType = void 0;
4
1
  /**
5
2
  * Higher Level Methods associated with a model based API. CRUDS
6
3
  */
@@ -11,7 +8,7 @@ var ApiMethod;
11
8
  ApiMethod["update"] = "update";
12
9
  ApiMethod["delete"] = "delete";
13
10
  ApiMethod["search"] = "search";
14
- })(ApiMethod || (exports.ApiMethod = ApiMethod = {}));
11
+ })(ApiMethod || (ApiMethod = {}));
15
12
  /**
16
13
  * Higher level value types that describe what the value of a property is.
17
14
  * These values can be used to generate expressive APIs as well as GUI elements.
@@ -30,7 +27,7 @@ var PropertyType;
30
27
  PropertyType["Object"] = "Object";
31
28
  PropertyType["Email"] = "Email";
32
29
  PropertyType["Boolean"] = "Boolean";
33
- })(PropertyType || (exports.PropertyType = PropertyType = {}));
30
+ })(PropertyType || (PropertyType = {}));
34
31
  /**
35
32
  * The most primitive data types that can be used.
36
33
  */
@@ -41,5 +38,6 @@ var PrimitiveValueType;
41
38
  PrimitiveValueType["object"] = "object";
42
39
  PrimitiveValueType["number"] = "number";
43
40
  PrimitiveValueType["integer"] = "integer";
44
- })(PrimitiveValueType || (exports.PrimitiveValueType = PrimitiveValueType = {}));
41
+ })(PrimitiveValueType || (PrimitiveValueType = {}));
42
+ export { PrimitiveValueType, PropertyType, ApiMethod, };
45
43
  //# sourceMappingURL=types.js.map
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAsmBA;;GAEG;AACH,IAAK,SAMJ;AAND,WAAK,SAAS;IACZ,8BAAiB,CAAA;IACjB,kCAAqB,CAAA;IACrB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;AACnB,CAAC,EANI,SAAS,yBAAT,SAAS,QAMb;AAoTD;;;GAGG;AACH,IAAK,YAaJ;AAbD,WAAK,YAAY;IACf,qCAAqB,CAAA;IACrB,6BAAa,CAAA;IACb,qCAAqB,CAAA;IACrB,+BAAe,CAAA;IACf,iDAAiC,CAAA;IACjC,mCAAmB,CAAA;IACnB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,+BAAe,CAAA;IACf,mCAAmB,CAAA;AACrB,CAAC,EAbI,YAAY,4BAAZ,YAAY,QAahB;AAED;;GAEG;AACH,IAAK,kBAMJ;AAND,WAAK,kBAAkB;IACrB,yCAAmB,CAAA;IACnB,uCAAiB,CAAA;IACjB,uCAAiB,CAAA;IACjB,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;AACrB,CAAC,EANI,kBAAkB,kCAAlB,kBAAkB,QAMtB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAinBA;;GAEG;AACH,IAAK,SAMJ;AAND,WAAK,SAAS;IACZ,8BAAiB,CAAA;IACjB,kCAAqB,CAAA;IACrB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;AACnB,CAAC,EANI,SAAS,KAAT,SAAS,QAMb;AAoTD;;;GAGG;AACH,IAAK,YAaJ;AAbD,WAAK,YAAY;IACf,qCAAqB,CAAA;IACrB,6BAAa,CAAA;IACb,qCAAqB,CAAA;IACrB,+BAAe,CAAA;IACf,iDAAiC,CAAA;IACjC,mCAAmB,CAAA;IACnB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,+BAAe,CAAA;IACf,mCAAmB,CAAA;AACrB,CAAC,EAbI,YAAY,KAAZ,YAAY,QAahB;AAED;;GAEG;AACH,IAAK,kBAMJ;AAND,WAAK,kBAAkB;IACrB,yCAAmB,CAAA;IACnB,uCAAiB,CAAA;IACjB,uCAAiB,CAAA;IACjB,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;AACrB,CAAC,EANI,kBAAkB,KAAlB,kBAAkB,QAMtB;AAsBD,OAAO,EACL,kBAAkB,EAClB,YAAY,EAiDZ,SAAS,GAOV,CAAA"}