@forestadmin/datasource-sequelize 1.0.0-beta.4 → 1.0.0-beta.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,363 @@
1
+ # @forestadmin/datasource-sequelize [1.0.0-beta.40](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.39...@forestadmin/datasource-sequelize@1.0.0-beta.40) (2022-09-07)
2
+
3
+
4
+
5
+
6
+
7
+ ### Dependencies
8
+
9
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.30
10
+
11
+ # @forestadmin/datasource-sequelize [1.0.0-beta.39](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.38...@forestadmin/datasource-sequelize@1.0.0-beta.39) (2022-09-07)
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * inverted keys in sequelize belongs to many ([#409](https://github.com/ForestAdmin/agent-nodejs/issues/409)) ([4adb3a2](https://github.com/ForestAdmin/agent-nodejs/commit/4adb3a244efb0842c475fcbdf4a5f38552a6b7df))
17
+
18
+ # @forestadmin/datasource-sequelize [1.0.0-beta.38](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.37...@forestadmin/datasource-sequelize@1.0.0-beta.38) (2022-09-05)
19
+
20
+
21
+
22
+
23
+
24
+ ### Dependencies
25
+
26
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.29
27
+
28
+ # @forestadmin/datasource-sequelize [1.0.0-beta.37](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.36...@forestadmin/datasource-sequelize@1.0.0-beta.37) (2022-09-05)
29
+
30
+
31
+
32
+
33
+
34
+ ### Dependencies
35
+
36
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.28
37
+
38
+ # @forestadmin/datasource-sequelize [1.0.0-beta.36](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.35...@forestadmin/datasource-sequelize@1.0.0-beta.36) (2022-08-23)
39
+
40
+
41
+
42
+
43
+
44
+ ### Dependencies
45
+
46
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.27
47
+
48
+ # @forestadmin/datasource-sequelize [1.0.0-beta.35](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.34...@forestadmin/datasource-sequelize@1.0.0-beta.35) (2022-08-23)
49
+
50
+
51
+ ### Features
52
+
53
+ * **sequelize:** improve constraints error handling ([#390](https://github.com/ForestAdmin/agent-nodejs/issues/390)) ([c03e342](https://github.com/ForestAdmin/agent-nodejs/commit/c03e342adb07eb502d5b061db48ef0d783d64cba))
54
+
55
+ # @forestadmin/datasource-sequelize [1.0.0-beta.34](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.33...@forestadmin/datasource-sequelize@1.0.0-beta.34) (2022-07-25)
56
+
57
+
58
+ ### Bug Fixes
59
+
60
+ * update code and sequelize version to avoid crash ([#374](https://github.com/ForestAdmin/agent-nodejs/issues/374)) ([e003416](https://github.com/ForestAdmin/agent-nodejs/commit/e0034166b86e48781ea099086fd93aa7c68dba03))
61
+
62
+ # @forestadmin/datasource-sequelize [1.0.0-beta.33](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.32...@forestadmin/datasource-sequelize@1.0.0-beta.33) (2022-06-27)
63
+
64
+
65
+ ### Bug Fixes
66
+
67
+ * **datasource sequelize:** aggregation get correctly nested relation ([#349](https://github.com/ForestAdmin/agent-nodejs/issues/349)) ([f9f89cd](https://github.com/ForestAdmin/agent-nodejs/commit/f9f89cd9d21d2cc8195d3aa04c33a6c2b76986e4))
68
+
69
+ # @forestadmin/datasource-sequelize [1.0.0-beta.32](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.31...@forestadmin/datasource-sequelize@1.0.0-beta.32) (2022-06-16)
70
+
71
+
72
+ ### Bug Fixes
73
+
74
+ * **datasource-sequelize:** serialize record to transform date to iso string ([#331](https://github.com/ForestAdmin/agent-nodejs/issues/331)) ([70216bb](https://github.com/ForestAdmin/agent-nodejs/commit/70216bb7fc5307e458ee5651e9f16c90b61ff49a))
75
+
76
+ # @forestadmin/datasource-sequelize [1.0.0-beta.31](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.30...@forestadmin/datasource-sequelize@1.0.0-beta.31) (2022-06-15)
77
+
78
+
79
+
80
+
81
+
82
+ ### Dependencies
83
+
84
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.26
85
+
86
+ # @forestadmin/datasource-sequelize [1.0.0-beta.30](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.29...@forestadmin/datasource-sequelize@1.0.0-beta.30) (2022-06-15)
87
+
88
+
89
+
90
+
91
+
92
+ ### Dependencies
93
+
94
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.25
95
+
96
+ # @forestadmin/datasource-sequelize [1.0.0-beta.29](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.28...@forestadmin/datasource-sequelize@1.0.0-beta.29) (2022-06-14)
97
+
98
+
99
+
100
+
101
+
102
+ ### Dependencies
103
+
104
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.24
105
+
106
+ # @forestadmin/datasource-sequelize [1.0.0-beta.28](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.27...@forestadmin/datasource-sequelize@1.0.0-beta.28) (2022-06-14)
107
+
108
+
109
+
110
+
111
+
112
+ ### Dependencies
113
+
114
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.23
115
+
116
+ # @forestadmin/datasource-sequelize [1.0.0-beta.27](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.26...@forestadmin/datasource-sequelize@1.0.0-beta.27) (2022-06-09)
117
+
118
+
119
+
120
+
121
+
122
+ ### Dependencies
123
+
124
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.22
125
+
126
+ # @forestadmin/datasource-sequelize [1.0.0-beta.26](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.25...@forestadmin/datasource-sequelize@1.0.0-beta.26) (2022-06-01)
127
+
128
+
129
+
130
+
131
+
132
+ ### Dependencies
133
+
134
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.21
135
+
136
+ # @forestadmin/datasource-sequelize [1.0.0-beta.25](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.24...@forestadmin/datasource-sequelize@1.0.0-beta.25) (2022-05-31)
137
+
138
+
139
+ ### Features
140
+
141
+ * make count an optional feature ([#327](https://github.com/ForestAdmin/agent-nodejs/issues/327)) ([b6f688c](https://github.com/ForestAdmin/agent-nodejs/commit/b6f688ca5f84aa29740761ff848c4beca5ee61d6))
142
+
143
+
144
+
145
+
146
+
147
+ ### Dependencies
148
+
149
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.20
150
+
151
+ # @forestadmin/datasource-sequelize [1.0.0-beta.24](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.23...@forestadmin/datasource-sequelize@1.0.0-beta.24) (2022-05-25)
152
+
153
+
154
+ ### Features
155
+
156
+ * **search:** add support for case sensitive/insensitive search ([#315](https://github.com/ForestAdmin/agent-nodejs/issues/315)) ([b6fe544](https://github.com/ForestAdmin/agent-nodejs/commit/b6fe544cf546724f62386f4df661982e62cf714e))
157
+
158
+
159
+
160
+
161
+
162
+ ### Dependencies
163
+
164
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.19
165
+
166
+ # @forestadmin/datasource-sequelize [1.0.0-beta.23](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.22...@forestadmin/datasource-sequelize@1.0.0-beta.23) (2022-05-24)
167
+
168
+
169
+
170
+
171
+
172
+ ### Dependencies
173
+
174
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.18
175
+
176
+ # @forestadmin/datasource-sequelize [1.0.0-beta.22](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.21...@forestadmin/datasource-sequelize@1.0.0-beta.22) (2022-05-24)
177
+
178
+
179
+
180
+
181
+
182
+ ### Dependencies
183
+
184
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.17
185
+
186
+ # @forestadmin/datasource-sequelize [1.0.0-beta.21](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.20...@forestadmin/datasource-sequelize@1.0.0-beta.21) (2022-05-16)
187
+
188
+
189
+ ### Features
190
+
191
+ * autocomplete on field names ([#263](https://github.com/ForestAdmin/agent-nodejs/issues/263)) ([e2025d5](https://github.com/ForestAdmin/agent-nodejs/commit/e2025d57d930edf6d326bd0c6d7fffcd4aad728d))
192
+
193
+
194
+
195
+
196
+
197
+ ### Dependencies
198
+
199
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.16
200
+
201
+ # @forestadmin/datasource-sequelize [1.0.0-beta.20](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.19...@forestadmin/datasource-sequelize@1.0.0-beta.20) (2022-05-12)
202
+
203
+
204
+
205
+
206
+
207
+ ### Dependencies
208
+
209
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.15
210
+
211
+ # @forestadmin/datasource-sequelize [1.0.0-beta.19](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.18...@forestadmin/datasource-sequelize@1.0.0-beta.19) (2022-05-09)
212
+
213
+
214
+
215
+
216
+
217
+ ### Dependencies
218
+
219
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.14
220
+
221
+ # @forestadmin/datasource-sequelize [1.0.0-beta.18](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.17...@forestadmin/datasource-sequelize@1.0.0-beta.18) (2022-05-09)
222
+
223
+
224
+
225
+
226
+
227
+ ### Dependencies
228
+
229
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.13
230
+
231
+ # @forestadmin/datasource-sequelize [1.0.0-beta.17](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.16...@forestadmin/datasource-sequelize@1.0.0-beta.17) (2022-05-09)
232
+
233
+
234
+ ### Bug Fixes
235
+
236
+ * datasource naming consistency ([#292](https://github.com/ForestAdmin/agent-nodejs/issues/292)) ([ff50a1f](https://github.com/ForestAdmin/agent-nodejs/commit/ff50a1f02aa65b3d99824c2bc9fb19d729a4e465))
237
+
238
+
239
+
240
+
241
+
242
+ ### Dependencies
243
+
244
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.12
245
+
246
+ # @forestadmin/datasource-sequelize [1.0.0-beta.16](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.15...@forestadmin/datasource-sequelize@1.0.0-beta.16) (2022-05-04)
247
+
248
+
249
+
250
+
251
+
252
+ ### Dependencies
253
+
254
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.11
255
+
256
+ # @forestadmin/datasource-sequelize [1.0.0-beta.15](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.14...@forestadmin/datasource-sequelize@1.0.0-beta.15) (2022-04-29)
257
+
258
+
259
+
260
+
261
+
262
+ ### Dependencies
263
+
264
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.10
265
+
266
+ # @forestadmin/datasource-sequelize [1.0.0-beta.14](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.13...@forestadmin/datasource-sequelize@1.0.0-beta.14) (2022-04-29)
267
+
268
+
269
+
270
+
271
+
272
+ ### Dependencies
273
+
274
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.9
275
+
276
+ # @forestadmin/datasource-sequelize [1.0.0-beta.13](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.12...@forestadmin/datasource-sequelize@1.0.0-beta.13) (2022-04-28)
277
+
278
+
279
+
280
+
281
+
282
+ ### Dependencies
283
+
284
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.8
285
+
286
+ # @forestadmin/datasource-sequelize [1.0.0-beta.12](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.11...@forestadmin/datasource-sequelize@1.0.0-beta.12) (2022-04-26)
287
+
288
+
289
+ ### Bug Fixes
290
+
291
+ * **datasource sequelize:** build a correct where clause when there is relation on delete and update ([#242](https://github.com/ForestAdmin/agent-nodejs/issues/242)) ([75061d4](https://github.com/ForestAdmin/agent-nodejs/commit/75061d447878cd8f32f1fd5bcc245a2791ba0b0a))
292
+
293
+ # @forestadmin/datasource-sequelize [1.0.0-beta.11](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.10...@forestadmin/datasource-sequelize@1.0.0-beta.11) (2022-04-26)
294
+
295
+
296
+ ### Features
297
+
298
+ * give access to logged in user to customization context ([#253](https://github.com/ForestAdmin/agent-nodejs/issues/253)) ([be97812](https://github.com/ForestAdmin/agent-nodejs/commit/be978121e47ab06c7a50cc6dec0cdb9284ea9d96))
299
+
300
+
301
+
302
+
303
+
304
+ ### Dependencies
305
+
306
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.7
307
+
308
+ # @forestadmin/datasource-sequelize [1.0.0-beta.10](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.9...@forestadmin/datasource-sequelize@1.0.0-beta.10) (2022-04-25)
309
+
310
+
311
+ ### Bug Fixes
312
+
313
+ * **datasource sequelize:** all field are sortable ([#262](https://github.com/ForestAdmin/agent-nodejs/issues/262)) ([8d85346](https://github.com/ForestAdmin/agent-nodejs/commit/8d8534662bc058466901095a0c0d82e06d2f13b0))
314
+
315
+ # @forestadmin/datasource-sequelize [1.0.0-beta.9](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.8...@forestadmin/datasource-sequelize@1.0.0-beta.9) (2022-04-25)
316
+
317
+
318
+ ### Bug Fixes
319
+
320
+ * import packages from js ([#260](https://github.com/ForestAdmin/agent-nodejs/issues/260)) ([de00886](https://github.com/ForestAdmin/agent-nodejs/commit/de008862971ea5d3559e5a4c3136b0dd2161d760))
321
+
322
+ # @forestadmin/datasource-sequelize [1.0.0-beta.8](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.7...@forestadmin/datasource-sequelize@1.0.0-beta.8) (2022-04-21)
323
+
324
+
325
+ ### Features
326
+
327
+ * harmonize datasource creation and pass logger to it ([#257](https://github.com/ForestAdmin/agent-nodejs/issues/257)) ([82cb4ea](https://github.com/ForestAdmin/agent-nodejs/commit/82cb4ea37ac0a9fe83423d917226dfd8fad7d0a6))
328
+
329
+
330
+
331
+
332
+
333
+ ### Dependencies
334
+
335
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.6
336
+
337
+ # @forestadmin/datasource-sequelize [1.0.0-beta.7](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.6...@forestadmin/datasource-sequelize@1.0.0-beta.7) (2022-04-20)
338
+
339
+
340
+ ### Bug Fixes
341
+
342
+ * **datasource sequelize:** add include from sort relation for list ([#243](https://github.com/ForestAdmin/agent-nodejs/issues/243)) ([5a81bc0](https://github.com/ForestAdmin/agent-nodejs/commit/5a81bc04e969442dd38d251be0a48c7bce2dc43e))
343
+
344
+ # @forestadmin/datasource-sequelize [1.0.0-beta.6](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.5...@forestadmin/datasource-sequelize@1.0.0-beta.6) (2022-04-19)
345
+
346
+
347
+
348
+
349
+
350
+ ### Dependencies
351
+
352
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.5
353
+
354
+ # @forestadmin/datasource-sequelize [1.0.0-beta.5](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.4...@forestadmin/datasource-sequelize@1.0.0-beta.5) (2022-04-19)
355
+
356
+
357
+ ### Bug Fixes
358
+
359
+ * **datasource sequelize:** type converter compute correctly type from sequelize DataTypes ([#246](https://github.com/ForestAdmin/agent-nodejs/issues/246)) ([92fc238](https://github.com/ForestAdmin/agent-nodejs/commit/92fc23841c25c502f44fd90c5e68f864ecc6727b))
360
+
1
361
  # @forestadmin/datasource-sequelize [1.0.0-beta.4](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.3...@forestadmin/datasource-sequelize@1.0.0-beta.4) (2022-04-15)
2
362
 
3
363
 
@@ -1,13 +1,16 @@
1
1
  import { ModelDefined } from 'sequelize';
2
- import { AggregateResult, Aggregation, BaseCollection, DataSource, Filter, PaginatedFilter, Projection, RecordData } from '@forestadmin/datasource-toolkit';
2
+ import { AggregateResult, Aggregation, BaseCollection, Caller, DataSource, Filter, Logger, PaginatedFilter, Projection, RecordData } from '@forestadmin/datasource-toolkit';
3
3
  export default class SequelizeCollection extends BaseCollection {
4
4
  protected model: ModelDefined<any, any>;
5
+ private col;
6
+ private fn;
5
7
  private aggregationUtils;
6
- constructor(name: string, datasource: DataSource, model: ModelDefined<any, any>);
7
- create(data: RecordData[]): Promise<RecordData[]>;
8
- list(filter: PaginatedFilter, projection: Projection): Promise<RecordData[]>;
9
- update(filter: Filter, patch: RecordData): Promise<void>;
10
- delete(filter: Filter): Promise<void>;
11
- aggregate(filter: Filter, aggregation: Aggregation, limit?: number): Promise<AggregateResult[]>;
8
+ private queryConverter;
9
+ constructor(name: string, datasource: DataSource, model: ModelDefined<any, any>, logger?: Logger);
10
+ create(caller: Caller, data: RecordData[]): Promise<RecordData[]>;
11
+ list(caller: Caller, filter: PaginatedFilter, projection: Projection): Promise<RecordData[]>;
12
+ update(caller: Caller, filter: Filter, patch: RecordData): Promise<void>;
13
+ delete(caller: Caller, filter: Filter): Promise<void>;
14
+ aggregate(caller: Caller, filter: Filter, aggregation: Aggregation, limit?: number): Promise<AggregateResult[]>;
12
15
  }
13
16
  //# sourceMappingURL=collection.d.ts.map
@@ -3,78 +3,89 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const sequelize_1 = require("sequelize");
7
6
  const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
8
7
  const aggregation_1 = __importDefault(require("./utils/aggregation"));
9
8
  const model_to_collection_schema_converter_1 = __importDefault(require("./utils/model-to-collection-schema-converter"));
10
9
  const query_converter_1 = __importDefault(require("./utils/query-converter"));
10
+ const serializer_1 = __importDefault(require("./utils/serializer"));
11
+ const error_handler_1 = __importDefault(require("./utils/error-handler"));
11
12
  class SequelizeCollection extends datasource_toolkit_1.BaseCollection {
13
+ constructor(name, datasource,
12
14
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
- constructor(name, datasource, model) {
15
+ model, logger) {
14
16
  super(name, datasource);
15
17
  if (!model)
16
18
  throw new Error('Invalid (null) model instance.');
17
19
  this.model = model;
20
+ this.col = this.model.sequelize.col;
21
+ this.fn = this.model.sequelize.fn;
18
22
  this.aggregationUtils = new aggregation_1.default(this.model);
19
- const modelSchema = model_to_collection_schema_converter_1.default.convert(this.model);
23
+ this.queryConverter = new query_converter_1.default(this.model);
24
+ const modelSchema = model_to_collection_schema_converter_1.default.convert(this.model, logger);
25
+ this.enableCount();
20
26
  this.addFields(modelSchema.fields);
21
27
  this.addSegments(modelSchema.segments);
22
28
  }
23
- async create(data) {
24
- const records = await this.model.bulkCreate(data);
25
- return records.map(record => record.get({ plain: true }));
29
+ async create(caller, data) {
30
+ const records = await (0, error_handler_1.default)('create', () => this.model.bulkCreate(data));
31
+ return records.map(record => serializer_1.default.serialize(record.get({ plain: true })));
26
32
  }
27
- async list(filter, projection) {
28
- let include = query_converter_1.default.getIncludeWithAttributesFromProjection(projection);
33
+ async list(caller, filter, projection) {
34
+ let include = this.queryConverter.getIncludeWithAttributesFromProjection(projection);
29
35
  if (filter.conditionTree) {
30
- include = include.concat(query_converter_1.default.getIncludeFromProjection(filter.conditionTree.projection));
36
+ include = include.concat(this.queryConverter.getIncludeFromProjection(filter.conditionTree.projection));
37
+ }
38
+ if (filter.sort) {
39
+ include = include.concat(this.queryConverter.getIncludeFromProjection(filter.sort.projection));
31
40
  }
32
41
  const query = {
33
42
  attributes: projection.columns,
34
- where: query_converter_1.default.getWhereFromConditionTree(this.model, filter.conditionTree),
43
+ where: this.queryConverter.getWhereFromConditionTree(filter.conditionTree),
35
44
  include,
36
45
  limit: filter.page?.limit,
37
46
  offset: filter.page?.skip,
38
- order: query_converter_1.default.getOrderFromSort(filter.sort),
47
+ order: this.queryConverter.getOrderFromSort(filter.sort),
39
48
  subQuery: false,
40
49
  };
41
50
  const records = await this.model.findAll(query);
42
- return records.map(record => record.get({ plain: true }));
51
+ return records.map(record => serializer_1.default.serialize(record.get({ plain: true })));
43
52
  }
44
- async update(filter, patch) {
45
- await this.model.update(patch, {
46
- where: query_converter_1.default.getWhereFromConditionTree(this.model, filter.conditionTree),
53
+ async update(caller, filter, patch) {
54
+ const options = {
55
+ where: await this.queryConverter.getWhereFromConditionTreeToByPassInclude(filter.conditionTree),
47
56
  fields: Object.keys(patch),
48
- });
57
+ };
58
+ await (0, error_handler_1.default)('update', () => this.model.update(patch, options));
49
59
  }
50
- async delete(filter) {
51
- await this.model.destroy({
52
- where: query_converter_1.default.getWhereFromConditionTree(this.model, filter.conditionTree),
53
- });
60
+ async delete(caller, filter) {
61
+ const options = {
62
+ where: await this.queryConverter.getWhereFromConditionTreeToByPassInclude(filter.conditionTree),
63
+ };
64
+ await (0, error_handler_1.default)('delete', () => this.model.destroy(options));
54
65
  }
55
- async aggregate(filter, aggregation, limit) {
66
+ async aggregate(caller, filter, aggregation, limit) {
56
67
  let aggregationField = aggregation.field;
57
68
  if (aggregation.operation === 'Count' || !aggregationField) {
58
69
  aggregationField = '*';
59
70
  }
60
71
  else {
61
- aggregationField = this.aggregationUtils.unAmbigousField(aggregationField);
72
+ aggregationField = this.aggregationUtils.quoteField(aggregationField);
62
73
  }
63
- const aggregationFunction = (0, sequelize_1.fn)(aggregation.operation.toUpperCase(), (0, sequelize_1.col)(aggregationField));
74
+ const aggregationFunction = this.fn(aggregation.operation.toUpperCase(), this.col(aggregationField));
64
75
  const aggregationAttribute = [
65
76
  aggregationFunction,
66
77
  this.aggregationUtils.aggregateFieldName,
67
78
  ];
68
79
  const { groups, attributes: groupAttributes } = this.aggregationUtils.getGroupAndAttributesFromAggregation(aggregation.groups);
69
- let include = query_converter_1.default.getIncludeFromProjection(aggregation.projection);
80
+ let include = this.queryConverter.getIncludeFromProjection(aggregation.projection);
70
81
  if (filter.conditionTree) {
71
- include = include.concat(query_converter_1.default.getIncludeFromProjection(filter.conditionTree.projection));
82
+ include = include.concat(this.queryConverter.getIncludeFromProjection(filter.conditionTree.projection));
72
83
  }
73
84
  const order = this.aggregationUtils.getOrder(aggregationFunction);
74
85
  const query = {
75
86
  attributes: [...groupAttributes, aggregationAttribute],
76
87
  group: groups,
77
- where: query_converter_1.default.getWhereFromConditionTree(this.model, filter.conditionTree),
88
+ where: this.queryConverter.getWhereFromConditionTree(filter.conditionTree),
78
89
  include,
79
90
  limit,
80
91
  order: [order],
@@ -86,4 +97,4 @@ class SequelizeCollection extends datasource_toolkit_1.BaseCollection {
86
97
  }
87
98
  }
88
99
  exports.default = SequelizeCollection;
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUNBQWdGO0FBRWhGLHdFQVN5QztBQUV6QyxzRUFBbUQ7QUFDbkQsd0hBQTBFO0FBQzFFLDhFQUFxRDtBQUVyRCxNQUFxQixtQkFBb0IsU0FBUSxtQ0FBYztJQUs3RCw4REFBOEQ7SUFDOUQsWUFBWSxJQUFZLEVBQUUsVUFBc0IsRUFBRSxLQUE2QjtRQUM3RSxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxLQUFLO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHFCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6RCxNQUFNLFdBQVcsR0FBRyw4Q0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBa0I7UUFDN0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxN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
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsd0VBV3lDO0FBRXpDLHNFQUFtRDtBQUNuRCx3SEFBMEU7QUFDMUUsOEVBQXFEO0FBQ3JELG9FQUE0QztBQUM1QywwRUFBaUQ7QUFFakQsTUFBcUIsbUJBQW9CLFNBQVEsbUNBQWM7SUFTN0QsWUFDRSxJQUFZLEVBQ1osVUFBc0I7SUFDdEIsOERBQThEO0lBQzlELEtBQTZCLEVBQzdCLE1BQWU7UUFFZixLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxLQUFLO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBRWxDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHFCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUkseUJBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFckQsTUFBTSxXQUFXLEdBQUcsOENBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUvRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENB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
@@ -1,9 +1,15 @@
1
+ import { BaseDataSource, Logger } from '@forestadmin/datasource-toolkit';
1
2
  import { Sequelize } from 'sequelize';
2
- import { BaseDataSource } from '@forestadmin/datasource-toolkit';
3
3
  import SequelizeCollection from './collection';
4
4
  export default class SequelizeDataSource extends BaseDataSource<SequelizeCollection> {
5
+ /**
6
+ * We can't directly use the Sequelize version we install in the package.json
7
+ * as the customer's version may be different.
8
+ * To ensure compatibility, we need to only import types from Sequelize,
9
+ * and use the customer sequelize version to deal with the data manipulation.
10
+ */
5
11
  protected sequelize: Sequelize;
6
- constructor(sequelize: Sequelize);
7
- protected createCollections(models: Sequelize['models']): void;
12
+ constructor(sequelize: Sequelize, logger?: Logger);
13
+ protected createCollections(models: Sequelize['models'], logger?: Logger): void;
8
14
  }
9
15
  //# sourceMappingURL=datasource.d.ts.map
@@ -6,23 +6,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
7
7
  const collection_1 = __importDefault(require("./collection"));
8
8
  class SequelizeDataSource extends datasource_toolkit_1.BaseDataSource {
9
- constructor(sequelize) {
9
+ constructor(sequelize, logger) {
10
10
  super();
11
+ /**
12
+ * We can't directly use the Sequelize version we install in the package.json
13
+ * as the customer's version may be different.
14
+ * To ensure compatibility, we need to only import types from Sequelize,
15
+ * and use the customer sequelize version to deal with the data manipulation.
16
+ */
11
17
  this.sequelize = null;
12
18
  if (!sequelize)
13
19
  throw new Error('Invalid (null) Sequelize instance.');
14
20
  this.sequelize = sequelize;
15
- this.createCollections(this.sequelize.models);
21
+ this.createCollections(this.sequelize.models, logger);
16
22
  }
17
- createCollections(models) {
23
+ createCollections(models, logger) {
18
24
  Object.values(models)
19
25
  // avoid schema reordering
20
26
  .sort((modelA, modelB) => (modelA.name > modelB.name ? 1 : -1))
21
27
  .forEach(model => {
22
- const collection = new collection_1.default(model.name, this, model);
28
+ const collection = new collection_1.default(model.name, this, model, logger);
23
29
  this.addCollection(collection);
24
30
  });
25
31
  }
26
32
  }
27
33
  exports.default = SequelizeDataSource;
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsd0VBQWlFO0FBRWpFLDhEQUErQztBQUUvQyxNQUFxQixtQkFBb0IsU0FBUSxtQ0FBbUM7SUFHbEYsWUFBWSxTQUFvQjtRQUM5QixLQUFLLEVBQUUsQ0FBQztRQUhBLGNBQVMsR0FBYyxJQUFJLENBQUM7UUFLcEMsSUFBSSxDQUFDLFNBQVM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFFM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVTLGlCQUFpQixDQUFDLE1BQTJCO1FBQ3JELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ25CLDBCQUEwQjthQUN6QixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlELE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNmLE1BQU0sVUFBVSxHQUFHLElBQUksb0JBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDRjtBQXRCRCxzQ0FzQkMifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsd0VBQXlFO0FBR3pFLDhEQUErQztBQUUvQyxNQUFxQixtQkFBb0IsU0FBUSxtQ0FBbUM7SUFTbEYsWUFBWSxTQUFvQixFQUFFLE1BQWU7UUFDL0MsS0FBSyxFQUFFLENBQUM7UUFUVjs7Ozs7V0FLRztRQUNPLGNBQVMsR0FBYyxJQUFJLENBQUM7UUFLcEMsSUFBSSxDQUFDLFNBQVM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFFM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxNQUEyQixFQUFFLE1BQWU7UUFDdEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDbkIsMEJBQTBCO2FBQ3pCLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDOUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2YsTUFBTSxVQUFVLEdBQUcsSUFBSSxvQkFBbUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDRjtBQTVCRCxzQ0E0QkMifQ==
package/dist/index.d.ts CHANGED
@@ -1,4 +1,7 @@
1
+ import { DataSourceFactory } from '@forestadmin/datasource-toolkit';
2
+ import { Sequelize } from 'sequelize';
1
3
  export { default as SequelizeCollection } from './collection';
2
4
  export { default as SequelizeDataSource } from './datasource';
3
5
  export { default as TypeConverter } from './utils/type-converter';
6
+ export declare function createSequelizeDataSource(connection: Sequelize): DataSourceFactory;
4
7
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -3,11 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TypeConverter = exports.SequelizeDataSource = exports.SequelizeCollection = void 0;
6
+ exports.createSequelizeDataSource = exports.TypeConverter = exports.SequelizeDataSource = exports.SequelizeCollection = void 0;
7
+ const datasource_1 = __importDefault(require("./datasource"));
7
8
  var collection_1 = require("./collection");
8
9
  Object.defineProperty(exports, "SequelizeCollection", { enumerable: true, get: function () { return __importDefault(collection_1).default; } });
9
- var datasource_1 = require("./datasource");
10
- Object.defineProperty(exports, "SequelizeDataSource", { enumerable: true, get: function () { return __importDefault(datasource_1).default; } });
10
+ var datasource_2 = require("./datasource");
11
+ Object.defineProperty(exports, "SequelizeDataSource", { enumerable: true, get: function () { return __importDefault(datasource_2).default; } });
11
12
  var type_converter_1 = require("./utils/type-converter");
12
13
  Object.defineProperty(exports, "TypeConverter", { enumerable: true, get: function () { return __importDefault(type_converter_1).default; } });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkNBQThEO0FBQXJELGtJQUFBLE9BQU8sT0FBdUI7QUFDdkMsMkNBQThEO0FBQXJELGtJQUFBLE9BQU8sT0FBdUI7QUFDdkMseURBQWtFO0FBQXpELGdJQUFBLE9BQU8sT0FBaUIifQ==
14
+ function createSequelizeDataSource(connection) {
15
+ return async (logger) => new datasource_1.default(connection, logger);
16
+ }
17
+ exports.createSequelizeDataSource = createSequelizeDataSource;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0EsOERBQStDO0FBRS9DLDJDQUE4RDtBQUFyRCxrSUFBQSxPQUFPLE9BQXVCO0FBQ3ZDLDJDQUE4RDtBQUFyRCxrSUFBQSxPQUFPLE9BQXVCO0FBQ3ZDLHlEQUFrRTtBQUF6RCxnSUFBQSxPQUFPLE9BQWlCO0FBRWpDLFNBQWdCLHlCQUF5QixDQUFDLFVBQXFCO0lBQzdELE9BQU8sS0FBSyxFQUFFLE1BQWMsRUFBRSxFQUFFLENBQUMsSUFBSSxvQkFBbUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0UsQ0FBQztBQUZELDhEQUVDIn0=
@@ -1,18 +1,20 @@
1
+ import { AggregateResult, Aggregation } from '@forestadmin/datasource-toolkit';
1
2
  import { GroupOption, Model, ModelDefined, ProjectionAlias } from 'sequelize';
2
3
  import { Fn } from 'sequelize/types/utils';
3
- import { AggregateResult, AggregationGroup } from '@forestadmin/datasource-toolkit';
4
4
  export default class AggregationUtils {
5
5
  private model;
6
6
  private dialect;
7
+ private col;
8
+ private dateAggregationConverter;
7
9
  readonly aggregateFieldName = "__aggregate__";
8
10
  constructor(model: ModelDefined<any, any>);
9
- getGroupFieldName(groupField: string): string;
10
- unAmbigousField(field: string): string;
11
- getGroupAndAttributesFromAggregation(aggregationQueryGroup: AggregationGroup[]): {
11
+ private getGroupFieldName;
12
+ quoteField(field: string): string;
13
+ getGroupAndAttributesFromAggregation(aggregationQueryGroup: Aggregation['groups']): {
12
14
  groups: GroupOption;
13
15
  attributes: ProjectionAlias[];
14
16
  };
15
17
  getOrder(aggregationFunction: Fn): [string | Fn | import("sequelize/types/utils").Col | import("sequelize/types/utils").Literal, string];
16
- computeResult(rows: Model<any, any>[], aggregationQueryGroup: AggregationGroup[]): AggregateResult[];
18
+ computeResult(rows: Model<any, any>[], aggregationQueryGroup: Aggregation['groups']): AggregateResult[];
17
19
  }
18
20
  //# sourceMappingURL=aggregation.d.ts.map