@futdevpro/fsm-dynamo 1.10.25 → 1.10.27

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.
@@ -15,6 +15,7 @@ export declare class DyFM_DataModel_Settings<T extends DyFM_Metadata> extends Dy
15
15
  export type DyFM_Data_P<T> = DyFM_DataModel_Params<T>;
16
16
  export type DyFM_Data_Params<T> = DyFM_DataModel_Params<T>;
17
17
  export declare class DyFM_DataModel_Params<T extends DyFM_Metadata> extends DyFM_DataModel_Settings<T> {
18
+ readonly stackLocation: string;
18
19
  constructor(set: DyFM_DataModel_Settings<T>);
19
20
  constructed?(): boolean;
20
21
  setKeysForSubObjectParams?(property: DyFM_DataProperty_Params<any>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"data-model-params.control-model.d.ts","sourceRoot":"","sources":["../../../src/_models/control-models/data-model-params.control-model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAErG,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,uBAAuB,CAAC,CAAC,CAAC,CAAC;AACxD,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,uBAAuB,CAAC,CAAC,CAAC,CAAC;AAC/D,qBAAa,uBAAuB,CAAC,CAAC,SAAS,aAAa,CAAE,SAAQ,aAAa;IACjF;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACtD,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC3D,qBAAa,qBAAqB,CAAC,CAAC,SAAS,aAAa,CAAE,SAAQ,uBAAuB,CAAC,CAAC,CAAC;gBAK1F,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAuEjC,WAAW,CAAC,IAAI,OAAO;IAIvB,yBAAyB,CAAC,CAAC,QAAQ,EAAE,wBAAwB,CAAC,GAAG,CAAC,GAAG,IAAI;CAkB1E"}
1
+ {"version":3,"file":"data-model-params.control-model.d.ts","sourceRoot":"","sources":["../../../src/_models/control-models/data-model-params.control-model.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAErG,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,uBAAuB,CAAC,CAAC,CAAC,CAAC;AACxD,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,uBAAuB,CAAC,CAAC,CAAC,CAAC;AAC/D,qBAAa,uBAAuB,CAAC,CAAC,SAAS,aAAa,CAAE,SAAQ,aAAa;IACjF;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC;AACtD,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC3D,qBAAa,qBAAqB,CAAC,CAAC,SAAS,aAAa,CAAE,SAAQ,uBAAuB,CAAC,CAAC,CAAC;IAG5F,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;gBAG7B,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAiJjC,WAAW,CAAC,IAAI,OAAO;IAIvB,yBAAyB,CAAC,CAAC,QAAQ,EAAE,wBAAwB,CAAC,GAAG,CAAC,GAAG,IAAI;CAmB1E"}
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DyFM_DataModel_Params = exports.DyFM_DataModel_Settings = void 0;
4
4
  const log_util_1 = require("../../_collections/utils/log.util");
5
+ const stack_util_1 = require("../../_collections/utils/stack.util");
6
+ const basic_property_type_enum_1 = require("../../_enums/basic-property-type.enum");
5
7
  const data_model_type_enum_1 = require("../../_enums/data-model-type.enum");
6
8
  const metadata_data_model_1 = require("../data-models/metadata.data-model");
7
9
  class DyFM_DataModel_Settings extends metadata_data_model_1.DyFM_Metadata {
@@ -16,24 +18,76 @@ class DyFM_DataModel_Settings extends metadata_data_model_1.DyFM_Metadata {
16
18
  exports.DyFM_DataModel_Settings = DyFM_DataModel_Settings;
17
19
  class DyFM_DataModel_Params extends DyFM_DataModel_Settings {
18
20
  /* override properties?: DyFM_DataProperties<T>; */
21
+ stackLocation;
19
22
  constructor(set) {
20
23
  super(set);
21
24
  if (set) {
22
25
  Object.assign(this, set);
23
26
  }
27
+ this.stackLocation = (0, stack_util_1.DyFM_getStackLocation)();
24
28
  if (!this.properties || typeof this.properties !== 'object') {
25
29
  log_util_1.DyFM_Log.error('DyFM_DataModel_Params.constructor: ' +
26
- `Properties are missing in "${this.dataName}" model.`);
30
+ `Properties are missing in "${this.dataName}" model.` +
31
+ `\nstackLocation: ${this.stackLocation}`);
27
32
  this.properties = {};
28
33
  }
29
- Object.keys(this.properties).forEach((key) => {
34
+ const keys = Object.keys(this.properties);
35
+ keys.forEach((key) => {
30
36
  if (!key) {
31
37
  log_util_1.DyFM_Log.error('DyFM_DataModel_Params.constructor: ' +
32
- `A property key is missing in "${this.dataName}" model.`);
38
+ `A property key is missing in "${this.dataName}" model.` +
39
+ `\nstackLocation: ${this.stackLocation}`);
33
40
  }
34
- this.properties[key].key = key;
35
- if (this.properties[key].subObjectParams) {
36
- this.setKeysForSubObjectParams(this.properties[key]);
41
+ const property = this.properties[key];
42
+ property.key = key;
43
+ if (property.subObjectParams) {
44
+ this.setKeysForSubObjectParams(property);
45
+ }
46
+ });
47
+ keys.forEach((key) => {
48
+ const property = this.properties[key];
49
+ /* if (property.vectorizeTo) {
50
+ if (!this.properties[property.vectorizeTo]) {
51
+ throw new Error(
52
+ `Vectorize to property "${property.vectorizeTo}" is not found in ` +
53
+ `"${this.dataName}" model.`
54
+ );
55
+ }
56
+
57
+ this.properties[property.vectorizeTo].vectorizeFrom ??= key;
58
+ } */
59
+ if (property.vectorizedFrom) {
60
+ if (!this.properties[property.vectorizedFrom]) {
61
+ throw new Error(`Vectorized from property "${property.vectorizedFrom}" is not found in ` +
62
+ `"${this.dataName}" model.` +
63
+ `\nstackLocation: ${this.stackLocation}`);
64
+ }
65
+ /* this.properties[property.vectorizedFrom].vectorizeTo ??= key; */
66
+ if (property.type !== 'number[]') {
67
+ throw new Error(`Vectorized from property "${property.vectorizedFrom}" is not a number[] property in ` +
68
+ `"${this.dataName}" model.` +
69
+ `\nstackLocation: ${this.stackLocation}`);
70
+ }
71
+ if (this.properties[property.vectorizedFrom].type !== basic_property_type_enum_1.DyFM_BasicProperty_Type.string) {
72
+ throw new Error(`Vectorized from property "${property.vectorizedFrom}" is not a string property in ` +
73
+ `"${this.dataName}" model.` +
74
+ `\nstackLocation: ${this.stackLocation}`);
75
+ }
76
+ if (!property.vectorizeUseIndex) {
77
+ throw new Error('vectorizeUseIndex is required if vectorizedFrom is set. ' +
78
+ `"${this.dataName}" model.` +
79
+ `\nstackLocation: ${this.stackLocation}`);
80
+ }
81
+ if (!this.properties[property.vectorizeUseIndex]) {
82
+ throw new Error(`vectorizeUseIndex property "${property.vectorizeUseIndex}" is not found in ` +
83
+ `"${this.dataName}" model.` +
84
+ `\nstackLocation: ${this.stackLocation}`);
85
+ }
86
+ if (!this.properties[property.vectorizeUseIndex].index) {
87
+ throw new Error(`vectorizeUseIndex property "${property.vectorizeUseIndex}" is not an ` +
88
+ `index property in "${this.dataName}" model.` +
89
+ `\nstackLocation: ${this.stackLocation}`);
90
+ }
37
91
  }
38
92
  });
39
93
  if (!this?.modelType || this?.modelType == data_model_type_enum_1.DyFM_DataModel_Type.data) {
@@ -59,12 +113,14 @@ class DyFM_DataModel_Params extends DyFM_DataModel_Settings {
59
113
  if (RegExp(/[A-Z]/).exec(this.dataName)) {
60
114
  log_util_1.DyFM_Log.warn('DyFM_DataModel_Params.constructor: ' +
61
115
  `dbName should be in snake_case in "${this.dataName}" model.` +
62
- 'For future compatibility.');
116
+ 'For future compatibility.' +
117
+ `\nstackLocation: ${this.stackLocation}`);
63
118
  }
64
119
  if (this.dataName.includes('-')) {
65
120
  log_util_1.DyFM_Log.warn('DyFM_DataModel_Params.constructor: ' +
66
121
  `dataName should be in snake_case in "${this.dataName}" model.` +
67
- 'For future compatibility.');
122
+ 'For future compatibility.' +
123
+ `\nstackLocation: ${this.stackLocation}`);
68
124
  }
69
125
  }
70
126
  constructed() {
@@ -75,7 +131,8 @@ class DyFM_DataModel_Params extends DyFM_DataModel_Settings {
75
131
  Object.keys(property.subObjectParams).forEach((key) => {
76
132
  if (!key) {
77
133
  log_util_1.DyFM_Log.error('DyFM_DataModel_Params.setKeysForSubObjectParams: ' +
78
- `A subObjectParams key is missing in "${this.dataName}" model.`);
134
+ `A subObjectParams key is missing in "${this.dataName}" model.` +
135
+ `\nstackLocation: ${this.stackLocation}`);
79
136
  }
80
137
  property.subObjectParams[key].key = key;
81
138
  if (property.subObjectParams[key].subObjectParams) {
@@ -1 +1 @@
1
- {"version":3,"file":"data-model-params.control-model.js","sourceRoot":"","sources":["../../../src/_models/control-models/data-model-params.control-model.ts"],"names":[],"mappings":";;;AAAA,gEAA6D;AAC7D,4EAAwE;AACxE,4EAAmE;AAKnE,MAAa,uBAAiD,SAAQ,mCAAa;IACjF;;OAEG;IACH,QAAQ,CAAS;IACjB,SAAS,CAAuB;IAChC,UAAU,CAAW;IACrB,UAAU,CAAyB;CACpC;AARD,0DAQC;AAID,MAAa,qBAA+C,SAAQ,uBAA0B;IAE5F,mDAAmD;IAEnD,YACE,GAA+B;QAE/B,KAAK,CAAC,GAAG,CAAC,CAAC;QAEX,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC5D,mBAAQ,CAAC,KAAK,CACZ,qCAAqC;gBACrC,8BAA8B,IAAI,CAAC,QAAQ,UAAU,CACtD,CAAC;YAEF,IAAI,CAAC,UAAU,GAAG,EAA4B,CAAC;QACjD,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAQ,EAAE;YACzD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,mBAAQ,CAAC,KAAK,CACZ,qCAAqC;oBACrC,iCAAiC,IAAI,CAAC,QAAQ,UAAU,CACzD,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;YAE/B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC;gBACzC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI,EAAE,SAAS,IAAI,0CAAmB,CAAC,IAAI,EAAE,CAAC;YACpE,IAAI,CAAC,SAAS,GAAG,0CAAmB,CAAC,IAAI,CAAC;QAC5C,CAAC;QAED;;;;;;;;;;;;;;;YAeI;QAEJ,4CAA4C;QAC5C,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,mBAAQ,CAAC,IAAI,CACX,qCAAqC;gBACrC,sCAAsC,IAAI,CAAC,QAAQ,UAAU;gBAC7D,2BAA2B,CAC5B,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,mBAAQ,CAAC,IAAI,CACX,qCAAqC;gBACrC,wCAAwC,IAAI,CAAC,QAAQ,UAAU;gBAC/D,2BAA2B,CAC5B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yBAAyB,CAAE,QAAuC;QAChE,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAQ,EAAE;gBAClE,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,mBAAQ,CAAC,KAAK,CACZ,mDAAmD;wBACnD,wCAAwC,IAAI,CAAC,QAAQ,UAAU,CAChE,CAAC;gBACJ,CAAC;gBAED,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;gBAExC,IAAI,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC;oBAClD,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAlGD,sDAkGC"}
1
+ {"version":3,"file":"data-model-params.control-model.js","sourceRoot":"","sources":["../../../src/_models/control-models/data-model-params.control-model.ts"],"names":[],"mappings":"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"}
@@ -23,14 +23,16 @@ describe('DyFM_DataModel_Params', () => {
23
23
  spyOn(log_util_1.DyFM_Log, 'error');
24
24
  mockSettings.properties = null;
25
25
  const params = new data_model_params_control_model_1.DyFM_DataModel_Params(mockSettings);
26
- expect(log_util_1.DyFM_Log.error).toHaveBeenCalledWith('DyFM_DataModel_Params.constructor: Properties are missing in "test_model" model.');
26
+ expect(log_util_1.DyFM_Log.error).toHaveBeenCalledWith('DyFM_DataModel_Params.constructor: Properties are missing in "test_model" model.' +
27
+ `\nstackLocation: ${params.stackLocation}`);
27
28
  expect(params.properties).toEqual({});
28
29
  });
29
30
  it('should log an error if a property key is missing', () => {
30
31
  spyOn(log_util_1.DyFM_Log, 'error');
31
32
  mockSettings.properties = { '': { key: '' } };
32
- new data_model_params_control_model_1.DyFM_DataModel_Params(mockSettings);
33
- expect(log_util_1.DyFM_Log.error).toHaveBeenCalledWith('DyFM_DataModel_Params.constructor: A property key is missing in "test_model" model.');
33
+ const params = new data_model_params_control_model_1.DyFM_DataModel_Params(mockSettings);
34
+ expect(log_util_1.DyFM_Log.error).toHaveBeenCalledWith('DyFM_DataModel_Params.constructor: A property key is missing in "test_model" model.' +
35
+ `\nstackLocation: ${params.stackLocation}`);
34
36
  });
35
37
  it('should set modelType to data if not provided or is data', () => {
36
38
  const params = new data_model_params_control_model_1.DyFM_DataModel_Params(mockSettings);
@@ -1 +1 @@
1
- {"version":3,"file":"data-model-params.control-model.spec.js","sourceRoot":"","sources":["../../../src/_models/control-models/data-model-params.control-model.spec.ts"],"names":[],"mappings":";;AAAA,gEAA6D;AAC7D,4EAAwE;AACxE,4EAAmE;AACnE,uFAAmG;AAGnG,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,MAAM,YAAa,SAAQ,mCAAa;KAEvC;IAED,IAAI,YAAmD,CAAC;IAExD,UAAU,CAAC,GAAG,EAAE;QACd,YAAY,GAAG;YACb,QAAQ,EAAE,YAAY;YACtB,UAAU,EAAE,EAAuC;SACpD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,MAAM,GAAG,IAAI,uDAAqB,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,KAAK,CAAC,mBAAQ,EAAE,OAAO,CAAC,CAAC;QACzB,YAAY,CAAC,UAAU,GAAG,IAAW,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,uDAAqB,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,CAAC,mBAAQ,CAAC,KAAK,CAAC,CAAC,oBAAoB,CACzC,kFAAkF,CACnF,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,KAAK,CAAC,mBAAQ,EAAE,OAAO,CAAC,CAAC;QACzB,YAAY,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAS,CAAC;QACrD,IAAI,uDAAqB,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,CAAC,mBAAQ,CAAC,KAAK,CAAC,CAAC,oBAAoB,CACzC,qFAAqF,CACtF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,MAAM,GAAG,IAAI,uDAAqB,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,0CAAmB,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG,IAAI,uDAAqB,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"data-model-params.control-model.spec.js","sourceRoot":"","sources":["../../../src/_models/control-models/data-model-params.control-model.spec.ts"],"names":[],"mappings":";;AAAA,gEAA6D;AAC7D,4EAAwE;AACxE,4EAAmE;AACnE,uFAAmG;AAGnG,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,MAAM,YAAa,SAAQ,mCAAa;KAEvC;IAED,IAAI,YAAmD,CAAC;IAExD,UAAU,CAAC,GAAG,EAAE;QACd,YAAY,GAAG;YACb,QAAQ,EAAE,YAAY;YACtB,UAAU,EAAE,EAAuC;SACpD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,MAAM,GAAG,IAAI,uDAAqB,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,KAAK,CAAC,mBAAQ,EAAE,OAAO,CAAC,CAAC;QACzB,YAAY,CAAC,UAAU,GAAG,IAAW,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,uDAAqB,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,CAAC,mBAAQ,CAAC,KAAK,CAAC,CAAC,oBAAoB,CACzC,kFAAkF;YAClF,oBAAoB,MAAM,CAAC,aAAa,EAAE,CAC3C,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,KAAK,CAAC,mBAAQ,EAAE,OAAO,CAAC,CAAC;QACzB,YAAY,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAS,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,uDAAqB,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,CAAC,mBAAQ,CAAC,KAAK,CAAC,CAAC,oBAAoB,CACzC,qFAAqF;YACrF,oBAAoB,MAAM,CAAC,aAAa,EAAE,CAC3C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,MAAM,GAAG,IAAI,uDAAqB,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,0CAAmB,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG,IAAI,uDAAqB,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { DyFM_BasicProperty_Type } from '../../_enums/basic-property-type.enum';
2
+ import { DyFM_OpenAIModel } from '../../_modules/open-ai/_enums/open-ai-model.enum';
2
3
  export type DyFM_DataProperties<T> = {
3
4
  [K in keyof T]: DyFM_DataProperty_Params<T[K]>;
4
5
  };
@@ -22,6 +23,13 @@ export declare class DyFM_DataProperty_Settings<T> {
22
23
  dependencyDataName?: string;
23
24
  archiveable?: boolean;
24
25
  archiveListAfter?: number;
26
+ vectorizedFrom?: string;
27
+ embeddingModel?: DyFM_OpenAIModel;
28
+ /**
29
+ * If true, the property will be vectorized always, even if the property is already vectorized.
30
+ */
31
+ vectorizeAlways?: boolean;
32
+ vectorizeUseIndex?: string;
25
33
  minlength?: number;
26
34
  maxlength?: number;
27
35
  subObjectParams?: DyFM_DataProperties<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"data-property-params.control-model.d.ts","sourceRoot":"","sources":["../../../src/_models/control-models/data-property-params.control-model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAEhF,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;KAClC,CAAC,IAAI,MAAM,CAAC,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/C,CAAA;AAED,MAAM,MAAM,yBAAyB,CAAC,CAAC,GAAG,GAAG,IAAI,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAE/E,qBAAa,0BAA0B,CAAC,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,uBAAuB,GAAG,MAAM,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAGhB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,eAAe,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE3C,oBAAoB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,KAAiB,IAAI,CAAC,EAAE,CAAC;CAC5D;AAGD,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACrE,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAC1D;;;GAGG;AACH,qBAAa,wBAAwB,CAAC,CAAC,CAAE,SAAQ,0BAA0B,CAAC,CAAC,CAAC;IAKnE,oBAAoB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,EAAE,CAAM;gBAG3D,GAAG,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAqCpC,WAAW,CAAC,IAAI,OAAO;IAKvB,SAAS,CAAC,IAAI,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;CAyBhF"}
1
+ {"version":3,"file":"data-property-params.control-model.d.ts","sourceRoot":"","sources":["../../../src/_models/control-models/data-property-params.control-model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AAEpF,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;KAClC,CAAC,IAAI,MAAM,CAAC,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/C,CAAA;AAED,MAAM,MAAM,yBAAyB,CAAC,CAAC,GAAG,GAAG,IAAI,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAE/E,qBAAa,0BAA0B,CAAC,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,uBAAuB,GAAG,MAAM,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAGhB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,eAAe,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE3C,oBAAoB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,KAAiB,IAAI,CAAC,EAAE,CAAC;CAC5D;AAGD,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACrE,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAC1D;;;GAGG;AACH,qBAAa,wBAAwB,CAAC,CAAC,CAAE,SAAQ,0BAA0B,CAAC,CAAC,CAAC;IAKnE,oBAAoB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,EAAE,CAAM;gBAG3D,GAAG,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAuDpC,WAAW,CAAC,IAAI,OAAO;IAKvB,SAAS,CAAC,IAAI,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;CAyBhF"}
@@ -23,6 +23,14 @@ class DyFM_DataProperty_Settings {
23
23
  dependencyDataName;
24
24
  archiveable;
25
25
  archiveListAfter;
26
+ vectorizedFrom;
27
+ /* vectorizeTo?: string; */
28
+ embeddingModel;
29
+ /**
30
+ * If true, the property will be vectorized always, even if the property is already vectorized.
31
+ */
32
+ vectorizeAlways;
33
+ vectorizeUseIndex;
26
34
  minlength;
27
35
  maxlength;
28
36
  subObjectParams;
@@ -53,6 +61,17 @@ class DyFM_DataProperty_Params extends DyFM_DataProperty_Settings {
53
61
  set.required = true;
54
62
  }
55
63
  }
64
+ if (set.vectorizedFrom) {
65
+ if (set.index) {
66
+ log_util_1.DyFM_Log.warn('DYNAMO WARNING: ', '\n vectorizedFrom and index are not recommended to be set at the same time. ' +
67
+ `It will be set to false by while you are not setting it.`);
68
+ set.index = false;
69
+ }
70
+ if (!set.vectorizeUseIndex) {
71
+ throw new Error('vectorizeUseIndex is required if vectorizedFrom is set. ' +
72
+ `"${this.key}" property.`);
73
+ }
74
+ }
56
75
  Object.assign(this, set);
57
76
  }
58
77
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"data-property-params.control-model.js","sourceRoot":"","sources":["../../../src/_models/control-models/data-property-params.control-model.ts"],"names":[],"mappings":";;;AAAA,gEAA6D;AAC7D,oFAAgF;AAQhF,MAAa,0BAA0B;IACrC,GAAG,CAAU;IACb,IAAI,CAAmC;IACvC,OAAO,CAAK;IAEZ,MAAM,CAAW;IACjB,QAAQ,CAAW;IACnB,QAAQ,CAAW;IACnB,KAAK,CAAW;IAEhB,iCAAiC;IACjC;;;;;;;OAOG;IACH,kBAAkB,CAAU;IAC5B,WAAW,CAAW;IACtB,gBAAgB,CAAU;IAE1B,SAAS,CAAU;IACnB,SAAS,CAAU;IAEnB,eAAe,CAA4B;IAE3C,oBAAoB,CAAuC;CAC5D;AA7BD,gEA6BC;AAKD;;;GAGG;AACH,MAAa,wBAA4B,SAAQ,0BAA6B;IAE5E,mEAAmE;IACnE,0DAA0D;IAEjD,oBAAoB,GAA6B,EAAE,CAAC;IAE7D,YACE,GAAkC;QAElC,KAAK,EAAE,CAAC;QAER,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACd,mBAAQ,CAAC,KAAK,CACZ,gBAAgB,EAChB,oDAAoD,CACrD,CAAC;YACJ,CAAC;YAED,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;gBAC3B,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;oBAC3B,mBAAQ,CAAC,IAAI,CACX,kBAAkB,EAClB,iEAAiE,CAClE,CAAC;gBACJ,CAAC;qBAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACtC,mBAAQ,CAAC,IAAI,CACX,kBAAkB,EAClB,6DAA6D;wBAC7D,yDAAyD,CAC1D,CAAC;oBACF,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACtB,CAAC;YACH,CAAC;YAED,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,mBAAQ,CAAC,KAAK,CACZ,gBAAgB,EAChB,wDAAwD,CACzD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sCAAsC;IACtC,SAAS;QACP,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,kDAAuB,CAAC,MAAM;gBACjC,OAAO,MAAM,CAAC;YAEhB,KAAK,kDAAuB,CAAC,MAAM;gBACjC,OAAO,MAAM,CAAC;YAEhB,KAAK,kDAAuB,CAAC,OAAO;gBAClC,OAAO,OAAO,CAAC;YAEjB,KAAK,kDAAuB,CAAC,IAAI;gBAC/B,OAAO,IAAI,CAAC;YAEd,KAAK,kDAAuB,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,OAAO,KAAK,CAAC;gBACf,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACxE,OAAO,QAAQ,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,OAAO,MAAM,CAAC;gBAChB,CAAC;QACL,CAAC;IACH,CAAC;CACF;AA3ED,4DA2EC"}
1
+ {"version":3,"file":"data-property-params.control-model.js","sourceRoot":"","sources":["../../../src/_models/control-models/data-property-params.control-model.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/fsm-dynamo",
3
- "version": "01.10.25",
3
+ "version": "01.10.27",
4
4
  "description": "Full Stack Model Collection for Dynamic (NodeJS-Typescript) Framework called Dynamo, by Future Development Ltd.",
5
5
  "scripts": {
6
6
  "prep": "npm i pnpm -g && npm i rimraf nodemon -g",
@@ -29,7 +29,8 @@ describe('DyFM_DataModel_Params', () => {
29
29
  mockSettings.properties = null as any;
30
30
  const params = new DyFM_DataModel_Params(mockSettings);
31
31
  expect(DyFM_Log.error).toHaveBeenCalledWith(
32
- 'DyFM_DataModel_Params.constructor: Properties are missing in "test_model" model.'
32
+ 'DyFM_DataModel_Params.constructor: Properties are missing in "test_model" model.' +
33
+ `\nstackLocation: ${params.stackLocation}`
33
34
  );
34
35
  expect(params.properties).toEqual({});
35
36
  });
@@ -37,9 +38,10 @@ describe('DyFM_DataModel_Params', () => {
37
38
  it('should log an error if a property key is missing', () => {
38
39
  spyOn(DyFM_Log, 'error');
39
40
  mockSettings.properties = { '': { key: '' } } as any;
40
- new DyFM_DataModel_Params(mockSettings);
41
+ const params = new DyFM_DataModel_Params(mockSettings);
41
42
  expect(DyFM_Log.error).toHaveBeenCalledWith(
42
- 'DyFM_DataModel_Params.constructor: A property key is missing in "test_model" model.'
43
+ 'DyFM_DataModel_Params.constructor: A property key is missing in "test_model" model.' +
44
+ `\nstackLocation: ${params.stackLocation}`
43
45
  );
44
46
  });
45
47
 
@@ -1,4 +1,6 @@
1
1
  import { DyFM_Log } from '../../_collections/utils/log.util';
2
+ import { DyFM_getStackLocation } from '../../_collections/utils/stack.util';
3
+ import { DyFM_BasicProperty_Type } from '../../_enums/basic-property-type.enum';
2
4
  import { DyFM_DataModel_Type } from '../../_enums/data-model-type.enum';
3
5
  import { DyFM_Metadata } from '../data-models/metadata.data-model';
4
6
  import { DyFM_DataProperties, DyFM_DataProperty_Params } from './data-property-params.control-model';
@@ -20,6 +22,7 @@ export type DyFM_Data_Params<T> = DyFM_DataModel_Params<T>;
20
22
  export class DyFM_DataModel_Params<T extends DyFM_Metadata> extends DyFM_DataModel_Settings<T> {
21
23
 
22
24
  /* override properties?: DyFM_DataProperties<T>; */
25
+ readonly stackLocation: string;
23
26
 
24
27
  constructor(
25
28
  set: DyFM_DataModel_Settings<T>
@@ -30,27 +33,99 @@ export class DyFM_DataModel_Params<T extends DyFM_Metadata> extends DyFM_DataMod
30
33
  Object.assign(this, set);
31
34
  }
32
35
 
36
+ this.stackLocation = DyFM_getStackLocation();
37
+
33
38
  if (!this.properties || typeof this.properties !== 'object') {
34
39
  DyFM_Log.error(
35
40
  'DyFM_DataModel_Params.constructor: ' +
36
- `Properties are missing in "${this.dataName}" model.`
41
+ `Properties are missing in "${this.dataName}" model.` +
42
+ `\nstackLocation: ${this.stackLocation}`
37
43
  );
38
44
 
39
45
  this.properties = {} as DyFM_DataProperties<T>;
40
46
  }
41
47
 
42
- Object.keys(this.properties).forEach((key: string): void => {
48
+ const keys: string[] = Object.keys(this.properties);
49
+ keys.forEach((key: string): void => {
43
50
  if (!key) {
44
51
  DyFM_Log.error(
45
52
  'DyFM_DataModel_Params.constructor: ' +
46
- `A property key is missing in "${this.dataName}" model.`
53
+ `A property key is missing in "${this.dataName}" model.` +
54
+ `\nstackLocation: ${this.stackLocation}`
47
55
  );
48
56
  }
49
57
 
50
- this.properties[key].key = key;
58
+ const property: DyFM_DataProperty_Params<any> = this.properties[key];
59
+ property.key = key;
60
+
61
+ if (property.subObjectParams) {
62
+ this.setKeysForSubObjectParams(property);
63
+ }
64
+ });
65
+
66
+ keys.forEach((key: string): void => {
67
+ const property: DyFM_DataProperty_Params<any> = this.properties[key];
68
+ /* if (property.vectorizeTo) {
69
+ if (!this.properties[property.vectorizeTo]) {
70
+ throw new Error(
71
+ `Vectorize to property "${property.vectorizeTo}" is not found in ` +
72
+ `"${this.dataName}" model.`
73
+ );
74
+ }
75
+
76
+ this.properties[property.vectorizeTo].vectorizeFrom ??= key;
77
+ } */
78
+
79
+ if (property.vectorizedFrom) {
80
+ if (!this.properties[property.vectorizedFrom]) {
81
+ throw new Error(
82
+ `Vectorized from property "${property.vectorizedFrom}" is not found in ` +
83
+ `"${this.dataName}" model.` +
84
+ `\nstackLocation: ${this.stackLocation}`
85
+ );
86
+ }
87
+
88
+ /* this.properties[property.vectorizedFrom].vectorizeTo ??= key; */
89
+
90
+ if (property.type !== 'number[]') {
91
+ throw new Error(
92
+ `Vectorized from property "${property.vectorizedFrom}" is not a number[] property in ` +
93
+ `"${this.dataName}" model.` +
94
+ `\nstackLocation: ${this.stackLocation}`
95
+ );
96
+ }
51
97
 
52
- if (this.properties[key].subObjectParams) {
53
- this.setKeysForSubObjectParams(this.properties[key]);
98
+ if ((this.properties[property.vectorizedFrom] as DyFM_DataProperty_Params<any>).type !== DyFM_BasicProperty_Type.string) {
99
+ throw new Error(
100
+ `Vectorized from property "${property.vectorizedFrom}" is not a string property in ` +
101
+ `"${this.dataName}" model.` +
102
+ `\nstackLocation: ${this.stackLocation}`
103
+ );
104
+ }
105
+
106
+ if (!property.vectorizeUseIndex) {
107
+ throw new Error(
108
+ 'vectorizeUseIndex is required if vectorizedFrom is set. ' +
109
+ `"${this.dataName}" model.` +
110
+ `\nstackLocation: ${this.stackLocation}`
111
+ );
112
+ }
113
+
114
+ if (!this.properties[property.vectorizeUseIndex]) {
115
+ throw new Error(
116
+ `vectorizeUseIndex property "${property.vectorizeUseIndex}" is not found in ` +
117
+ `"${this.dataName}" model.` +
118
+ `\nstackLocation: ${this.stackLocation}`
119
+ );
120
+ }
121
+
122
+ if (!(this.properties[property.vectorizeUseIndex] as DyFM_DataProperty_Params<any>).index) {
123
+ throw new Error(
124
+ `vectorizeUseIndex property "${property.vectorizeUseIndex}" is not an ` +
125
+ `index property in "${this.dataName}" model.` +
126
+ `\nstackLocation: ${this.stackLocation}`
127
+ );
128
+ }
54
129
  }
55
130
  });
56
131
 
@@ -80,7 +155,8 @@ export class DyFM_DataModel_Params<T extends DyFM_Metadata> extends DyFM_DataMod
80
155
  DyFM_Log.warn(
81
156
  'DyFM_DataModel_Params.constructor: ' +
82
157
  `dbName should be in snake_case in "${this.dataName}" model.` +
83
- 'For future compatibility.'
158
+ 'For future compatibility.' +
159
+ `\nstackLocation: ${this.stackLocation}`
84
160
  );
85
161
  }
86
162
 
@@ -88,7 +164,8 @@ export class DyFM_DataModel_Params<T extends DyFM_Metadata> extends DyFM_DataMod
88
164
  DyFM_Log.warn(
89
165
  'DyFM_DataModel_Params.constructor: ' +
90
166
  `dataName should be in snake_case in "${this.dataName}" model.` +
91
- 'For future compatibility.'
167
+ 'For future compatibility.' +
168
+ `\nstackLocation: ${this.stackLocation}`
92
169
  );
93
170
  }
94
171
  }
@@ -103,7 +180,8 @@ export class DyFM_DataModel_Params<T extends DyFM_Metadata> extends DyFM_DataMod
103
180
  if (!key) {
104
181
  DyFM_Log.error(
105
182
  'DyFM_DataModel_Params.setKeysForSubObjectParams: ' +
106
- `A subObjectParams key is missing in "${this.dataName}" model.`
183
+ `A subObjectParams key is missing in "${this.dataName}" model.` +
184
+ `\nstackLocation: ${this.stackLocation}`
107
185
  );
108
186
  }
109
187
 
@@ -1,5 +1,6 @@
1
1
  import { DyFM_Log } from '../../_collections/utils/log.util';
2
2
  import { DyFM_BasicProperty_Type } from '../../_enums/basic-property-type.enum';
3
+ import { DyFM_OpenAIModel } from '../../_modules/open-ai/_enums/open-ai-model.enum';
3
4
 
4
5
  export type DyFM_DataProperties<T> = {
5
6
  [K in keyof T]: DyFM_DataProperty_Params<T[K]>;
@@ -30,6 +31,15 @@ export class DyFM_DataProperty_Settings<T>{
30
31
  archiveable?: boolean;
31
32
  archiveListAfter?: number;
32
33
 
34
+ vectorizedFrom?: string;
35
+ /* vectorizeTo?: string; */
36
+ embeddingModel?: DyFM_OpenAIModel;
37
+ /**
38
+ * If true, the property will be vectorized always, even if the property is already vectorized.
39
+ */
40
+ vectorizeAlways?: boolean;
41
+ vectorizeUseIndex?: string;
42
+
33
43
  minlength?: number;
34
44
  maxlength?: number;
35
45
 
@@ -80,6 +90,24 @@ export class DyFM_DataProperty_Params<T> extends DyFM_DataProperty_Settings<T> {
80
90
  set.required = true;
81
91
  }
82
92
  }
93
+
94
+ if (set.vectorizedFrom) {
95
+ if (set.index) {
96
+ DyFM_Log.warn(
97
+ 'DYNAMO WARNING: ',
98
+ '\n vectorizedFrom and index are not recommended to be set at the same time. ' +
99
+ `It will be set to false by while you are not setting it.`
100
+ );
101
+ set.index = false;
102
+ }
103
+
104
+ if (!set.vectorizeUseIndex) {
105
+ throw new Error(
106
+ 'vectorizeUseIndex is required if vectorizedFrom is set. ' +
107
+ `"${this.key}" property.`
108
+ );
109
+ }
110
+ }
83
111
 
84
112
  Object.assign(this, set);
85
113
  } else {
Binary file