@forestadmin/datasource-sequelize 1.0.0-beta.3 → 1.0.0-beta.30

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 ADDED
@@ -0,0 +1,334 @@
1
+ # @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)
2
+
3
+
4
+
5
+
6
+
7
+ ### Dependencies
8
+
9
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.25
10
+
11
+ # @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)
12
+
13
+
14
+
15
+
16
+
17
+ ### Dependencies
18
+
19
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.24
20
+
21
+ # @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)
22
+
23
+
24
+
25
+
26
+
27
+ ### Dependencies
28
+
29
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.23
30
+
31
+ # @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)
32
+
33
+
34
+
35
+
36
+
37
+ ### Dependencies
38
+
39
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.22
40
+
41
+ # @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)
42
+
43
+
44
+
45
+
46
+
47
+ ### Dependencies
48
+
49
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.21
50
+
51
+ # @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)
52
+
53
+
54
+ ### Features
55
+
56
+ * make count an optional feature ([#327](https://github.com/ForestAdmin/agent-nodejs/issues/327)) ([b6f688c](https://github.com/ForestAdmin/agent-nodejs/commit/b6f688ca5f84aa29740761ff848c4beca5ee61d6))
57
+
58
+
59
+
60
+
61
+
62
+ ### Dependencies
63
+
64
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.20
65
+
66
+ # @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)
67
+
68
+
69
+ ### Features
70
+
71
+ * **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))
72
+
73
+
74
+
75
+
76
+
77
+ ### Dependencies
78
+
79
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.19
80
+
81
+ # @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)
82
+
83
+
84
+
85
+
86
+
87
+ ### Dependencies
88
+
89
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.18
90
+
91
+ # @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)
92
+
93
+
94
+
95
+
96
+
97
+ ### Dependencies
98
+
99
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.17
100
+
101
+ # @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)
102
+
103
+
104
+ ### Features
105
+
106
+ * autocomplete on field names ([#263](https://github.com/ForestAdmin/agent-nodejs/issues/263)) ([e2025d5](https://github.com/ForestAdmin/agent-nodejs/commit/e2025d57d930edf6d326bd0c6d7fffcd4aad728d))
107
+
108
+
109
+
110
+
111
+
112
+ ### Dependencies
113
+
114
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.16
115
+
116
+ # @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)
117
+
118
+
119
+
120
+
121
+
122
+ ### Dependencies
123
+
124
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.15
125
+
126
+ # @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)
127
+
128
+
129
+
130
+
131
+
132
+ ### Dependencies
133
+
134
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.14
135
+
136
+ # @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)
137
+
138
+
139
+
140
+
141
+
142
+ ### Dependencies
143
+
144
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.13
145
+
146
+ # @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)
147
+
148
+
149
+ ### Bug Fixes
150
+
151
+ * datasource naming consistency ([#292](https://github.com/ForestAdmin/agent-nodejs/issues/292)) ([ff50a1f](https://github.com/ForestAdmin/agent-nodejs/commit/ff50a1f02aa65b3d99824c2bc9fb19d729a4e465))
152
+
153
+
154
+
155
+
156
+
157
+ ### Dependencies
158
+
159
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.12
160
+
161
+ # @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)
162
+
163
+
164
+
165
+
166
+
167
+ ### Dependencies
168
+
169
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.11
170
+
171
+ # @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)
172
+
173
+
174
+
175
+
176
+
177
+ ### Dependencies
178
+
179
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.10
180
+
181
+ # @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)
182
+
183
+
184
+
185
+
186
+
187
+ ### Dependencies
188
+
189
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.9
190
+
191
+ # @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)
192
+
193
+
194
+
195
+
196
+
197
+ ### Dependencies
198
+
199
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.8
200
+
201
+ # @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)
202
+
203
+
204
+ ### Bug Fixes
205
+
206
+ * **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))
207
+
208
+ # @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)
209
+
210
+
211
+ ### Features
212
+
213
+ * 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))
214
+
215
+
216
+
217
+
218
+
219
+ ### Dependencies
220
+
221
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.7
222
+
223
+ # @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)
224
+
225
+
226
+ ### Bug Fixes
227
+
228
+ * **datasource sequelize:** all field are sortable ([#262](https://github.com/ForestAdmin/agent-nodejs/issues/262)) ([8d85346](https://github.com/ForestAdmin/agent-nodejs/commit/8d8534662bc058466901095a0c0d82e06d2f13b0))
229
+
230
+ # @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)
231
+
232
+
233
+ ### Bug Fixes
234
+
235
+ * import packages from js ([#260](https://github.com/ForestAdmin/agent-nodejs/issues/260)) ([de00886](https://github.com/ForestAdmin/agent-nodejs/commit/de008862971ea5d3559e5a4c3136b0dd2161d760))
236
+
237
+ # @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)
238
+
239
+
240
+ ### Features
241
+
242
+ * 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))
243
+
244
+
245
+
246
+
247
+
248
+ ### Dependencies
249
+
250
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.6
251
+
252
+ # @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)
253
+
254
+
255
+ ### Bug Fixes
256
+
257
+ * **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))
258
+
259
+ # @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)
260
+
261
+
262
+
263
+
264
+
265
+ ### Dependencies
266
+
267
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.5
268
+
269
+ # @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)
270
+
271
+
272
+ ### Bug Fixes
273
+
274
+ * **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))
275
+
276
+ # @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)
277
+
278
+
279
+
280
+
281
+
282
+ ### Dependencies
283
+
284
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.4
285
+
286
+ # @forestadmin/datasource-sequelize [1.0.0-beta.3](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.2...@forestadmin/datasource-sequelize@1.0.0-beta.3) (2022-04-15)
287
+
288
+
289
+ ### Bug Fixes
290
+
291
+ * correct versions in package.json of all datasources ([540d395](https://github.com/ForestAdmin/agent-nodejs/commit/540d395bc5e42bdd7edb3dce5806ade8554f3d7a))
292
+
293
+ # @forestadmin/datasource-sequelize [1.0.0-beta.2](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/datasource-sequelize@1.0.0-beta.1...@forestadmin/datasource-sequelize@1.0.0-beta.2) (2022-04-15)
294
+
295
+
296
+
297
+
298
+
299
+ ### Dependencies
300
+
301
+ * **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.3
302
+
303
+ # @forestadmin/datasource-sequelize 1.0.0-beta.1 (2022-04-15)
304
+
305
+
306
+ ### Bug Fixes
307
+
308
+ * **datasource sequelize:** compute where correctly ([#239](https://github.com/ForestAdmin/agent-nodejs/issues/239)) ([ee770ba](https://github.com/ForestAdmin/agent-nodejs/commit/ee770bafe8b6a8ebe542bac3e664a47b4d0c7151))
309
+ * **datasource sequelize:** enable date filter ([#166](https://github.com/ForestAdmin/agent-nodejs/issues/166)) ([5f0e349](https://github.com/ForestAdmin/agent-nodejs/commit/5f0e3494dbb254ef5351e0c85061ce196d8c2f9b))
310
+ * **datasource sequelize:** search like operators is now insensitive ([#175](https://github.com/ForestAdmin/agent-nodejs/issues/175)) ([4660c13](https://github.com/ForestAdmin/agent-nodejs/commit/4660c131e398a151fc2a98c8f7e4e817fd427e63))
311
+ * **datasource,sequelize:** only keep grouped field in order clause for aggregate ([#102](https://github.com/ForestAdmin/agent-nodejs/issues/102)) ([6f0d1dd](https://github.com/ForestAdmin/agent-nodejs/commit/6f0d1dd4df4dc94739c40271afb55aa6928eca1b))
312
+ * **datasource,sequelize:** properly handle array operators ([#100](https://github.com/ForestAdmin/agent-nodejs/issues/100)) ([dd061df](https://github.com/ForestAdmin/agent-nodejs/commit/dd061df90bb35b130cd6e98f8de8e321f1a53964))
313
+ * **datasource:** properly set column FilterOperator values ([#117](https://github.com/ForestAdmin/agent-nodejs/issues/117)) ([92174a5](https://github.com/ForestAdmin/agent-nodejs/commit/92174a5f9016e8e54bed854979b0d7c408f11cae))
314
+ * enable npm, git and github distribution ([bd91825](https://github.com/ForestAdmin/agent-nodejs/commit/bd91825f4d185874a259da28b0f7a6c7f557196d))
315
+ * error when count or list does not match any records ([#223](https://github.com/ForestAdmin/agent-nodejs/issues/223)) ([e51dad6](https://github.com/ForestAdmin/agent-nodejs/commit/e51dad6f9fce502405fbd95300f27f7d25945de5))
316
+ * fix semantic release ([3a2fa73](https://github.com/ForestAdmin/agent-nodejs/commit/3a2fa738af84a50b9563db6ac039c922b77f55cc))
317
+ * handle json type and default value ([#237](https://github.com/ForestAdmin/agent-nodejs/issues/237)) ([1e20364](https://github.com/ForestAdmin/agent-nodejs/commit/1e2036455ce9a5376bbe1102d9bbb05f034962f5))
318
+ * select-all when delete-all action is triggered ([#220](https://github.com/ForestAdmin/agent-nodejs/issues/220)) ([23ef123](https://github.com/ForestAdmin/agent-nodejs/commit/23ef1232d56bc250a3a18257de8ed74bdbdf920b))
319
+ * tests were not compiled ([#7](https://github.com/ForestAdmin/agent-nodejs/issues/7)) ([9f2525d](https://github.com/ForestAdmin/agent-nodejs/commit/9f2525dfe6753471b13296899038df27ca1f28be))
320
+
321
+
322
+ ### Features
323
+
324
+ * add action routes and decorator ([#149](https://github.com/ForestAdmin/agent-nodejs/issues/149)) ([ebf27ff](https://github.com/ForestAdmin/agent-nodejs/commit/ebf27ffb439f5f2c983fe8873a515fe2802a9a17))
325
+ * bootstrap agent package ([#12](https://github.com/ForestAdmin/agent-nodejs/issues/12)) ([182c858](https://github.com/ForestAdmin/agent-nodejs/commit/182c858b6d912dba37fe821cc6baaad75b80c59d))
326
+ * **condition-tree:** implement user filters and better emulation ([#76](https://github.com/ForestAdmin/agent-nodejs/issues/76)) ([e425704](https://github.com/ForestAdmin/agent-nodejs/commit/e4257046853b2b165f4190daa0d953d7f79ed837))
327
+ * **datasource sequelize:** handle date aggregation ([#133](https://github.com/ForestAdmin/agent-nodejs/issues/133)) ([09158a5](https://github.com/ForestAdmin/agent-nodejs/commit/09158a54da2114276d2c7edc9957ea396f700fa0))
328
+ * **datasource sequelize:** handle enum field type ([#193](https://github.com/ForestAdmin/agent-nodejs/issues/193)) ([04cc0f5](https://github.com/ForestAdmin/agent-nodejs/commit/04cc0f528b10f298b08d78e89e8f553b5e1a08e1))
329
+ * **datasource sequelize:** handle isReadOnly property based on autoIncrement ([#194](https://github.com/ForestAdmin/agent-nodejs/issues/194)) ([28b8e69](https://github.com/ForestAdmin/agent-nodejs/commit/28b8e69b363c125bff5f58a199209bda6bf16557))
330
+ * **datasource,live:** initial version for Live DataSource ([#67](https://github.com/ForestAdmin/agent-nodejs/issues/67)) ([e4ffa52](https://github.com/ForestAdmin/agent-nodejs/commit/e4ffa52c0f2146b73522ed705003018b3d4da758))
331
+ * **datasource,sequelize:** handle array types from Sequelize ([#104](https://github.com/ForestAdmin/agent-nodejs/issues/104)) ([58fc4dd](https://github.com/ForestAdmin/agent-nodejs/commit/58fc4dd661d112ce6462357374cc2380a3059292))
332
+ * **datasource,sequelize:** initial version for Sequelize DataSource ([#63](https://github.com/ForestAdmin/agent-nodejs/issues/63)) ([66ba46e](https://github.com/ForestAdmin/agent-nodejs/commit/66ba46e66b73a2611061125a7e14c88283c3489d))
333
+ * **example,live:** update example package to use Live DataSource ([#69](https://github.com/ForestAdmin/agent-nodejs/issues/69)) ([340d2a0](https://github.com/ForestAdmin/agent-nodejs/commit/340d2a08ea945169dd8c7547a5995bb7dd531fc5))
334
+ * implement relations using any unique key ([#159](https://github.com/ForestAdmin/agent-nodejs/issues/159)) ([b6be495](https://github.com/ForestAdmin/agent-nodejs/commit/b6be495d93ae03a67c6dc9b4ffbb0ae9f4cbc0bc))
@@ -1,13 +1,14 @@
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
5
  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[]>;
6
+ private queryConverter;
7
+ constructor(name: string, datasource: DataSource, model: ModelDefined<any, any>, logger?: Logger);
8
+ create(caller: Caller, data: RecordData[]): Promise<RecordData[]>;
9
+ list(caller: Caller, filter: PaginatedFilter, projection: Projection): Promise<RecordData[]>;
10
+ update(caller: Caller, filter: Filter, patch: RecordData): Promise<void>;
11
+ delete(caller: Caller, filter: Filter): Promise<void>;
12
+ aggregate(caller: Caller, filter: Filter, aggregation: Aggregation, limit?: number): Promise<AggregateResult[]>;
12
13
  }
13
14
  //# sourceMappingURL=collection.d.ts.map
@@ -9,50 +9,56 @@ const aggregation_1 = __importDefault(require("./utils/aggregation"));
9
9
  const model_to_collection_schema_converter_1 = __importDefault(require("./utils/model-to-collection-schema-converter"));
10
10
  const query_converter_1 = __importDefault(require("./utils/query-converter"));
11
11
  class SequelizeCollection extends datasource_toolkit_1.BaseCollection {
12
+ constructor(name, datasource,
12
13
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
- constructor(name, datasource, model) {
14
+ model, logger) {
14
15
  super(name, datasource);
15
16
  if (!model)
16
17
  throw new Error('Invalid (null) model instance.');
17
18
  this.model = model;
18
19
  this.aggregationUtils = new aggregation_1.default(this.model);
19
- const modelSchema = model_to_collection_schema_converter_1.default.convert(this.model);
20
+ this.queryConverter = new query_converter_1.default(this.model);
21
+ const modelSchema = model_to_collection_schema_converter_1.default.convert(this.model, logger);
22
+ this.enableCount();
20
23
  this.addFields(modelSchema.fields);
21
24
  this.addSegments(modelSchema.segments);
22
25
  }
23
- async create(data) {
26
+ async create(caller, data) {
24
27
  const records = await this.model.bulkCreate(data);
25
28
  return records.map(record => record.get({ plain: true }));
26
29
  }
27
- async list(filter, projection) {
28
- let include = query_converter_1.default.getIncludeWithAttributesFromProjection(projection);
30
+ async list(caller, filter, projection) {
31
+ let include = this.queryConverter.getIncludeWithAttributesFromProjection(projection);
29
32
  if (filter.conditionTree) {
30
- include = include.concat(query_converter_1.default.getIncludeFromProjection(filter.conditionTree.projection));
33
+ include = include.concat(this.queryConverter.getIncludeFromProjection(filter.conditionTree.projection));
34
+ }
35
+ if (filter.sort) {
36
+ include = include.concat(this.queryConverter.getIncludeFromProjection(filter.sort.projection));
31
37
  }
32
38
  const query = {
33
39
  attributes: projection.columns,
34
- where: query_converter_1.default.getWhereFromConditionTree(this.model, filter.conditionTree),
40
+ where: this.queryConverter.getWhereFromConditionTree(filter.conditionTree),
35
41
  include,
36
42
  limit: filter.page?.limit,
37
43
  offset: filter.page?.skip,
38
- order: query_converter_1.default.getOrderFromSort(filter.sort),
44
+ order: this.queryConverter.getOrderFromSort(filter.sort),
39
45
  subQuery: false,
40
46
  };
41
47
  const records = await this.model.findAll(query);
42
48
  return records.map(record => record.get({ plain: true }));
43
49
  }
44
- async update(filter, patch) {
50
+ async update(caller, filter, patch) {
45
51
  await this.model.update(patch, {
46
- where: query_converter_1.default.getWhereFromConditionTree(this.model, filter.conditionTree),
52
+ where: await this.queryConverter.getWhereFromConditionTreeToByPassInclude(filter.conditionTree),
47
53
  fields: Object.keys(patch),
48
54
  });
49
55
  }
50
- async delete(filter) {
56
+ async delete(caller, filter) {
51
57
  await this.model.destroy({
52
- where: query_converter_1.default.getWhereFromConditionTree(this.model, filter.conditionTree),
58
+ where: await this.queryConverter.getWhereFromConditionTreeToByPassInclude(filter.conditionTree),
53
59
  });
54
60
  }
55
- async aggregate(filter, aggregation, limit) {
61
+ async aggregate(caller, filter, aggregation, limit) {
56
62
  let aggregationField = aggregation.field;
57
63
  if (aggregation.operation === 'Count' || !aggregationField) {
58
64
  aggregationField = '*';
@@ -66,15 +72,15 @@ class SequelizeCollection extends datasource_toolkit_1.BaseCollection {
66
72
  this.aggregationUtils.aggregateFieldName,
67
73
  ];
68
74
  const { groups, attributes: groupAttributes } = this.aggregationUtils.getGroupAndAttributesFromAggregation(aggregation.groups);
69
- let include = query_converter_1.default.getIncludeFromProjection(aggregation.projection);
75
+ let include = this.queryConverter.getIncludeFromProjection(aggregation.projection);
70
76
  if (filter.conditionTree) {
71
- include = include.concat(query_converter_1.default.getIncludeFromProjection(filter.conditionTree.projection));
77
+ include = include.concat(this.queryConverter.getIncludeFromProjection(filter.conditionTree.projection));
72
78
  }
73
79
  const order = this.aggregationUtils.getOrder(aggregationFunction);
74
80
  const query = {
75
81
  attributes: [...groupAttributes, aggregationAttribute],
76
82
  group: groups,
77
- where: query_converter_1.default.getWhereFromConditionTree(this.model, filter.conditionTree),
83
+ where: this.queryConverter.getWhereFromConditionTree(filter.conditionTree),
78
84
  include,
79
85
  limit,
80
86
  order: [order],
@@ -86,4 +92,4 @@ class SequelizeCollection extends datasource_toolkit_1.BaseCollection {
86
92
  }
87
93
  }
88
94
  exports.default = SequelizeCollection;
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUNBQWdGO0FBRWhGLHdFQVN5QztBQUV6QyxzRUFBbUQ7QUFDbkQsd0hBQTBFO0FBQzFFLDhFQUFxRDtBQUVyRCxNQUFxQixtQkFBb0IsU0FBUSxtQ0FBYztJQUs3RCw4REFBOEQ7SUFDOUQsWUFBWSxJQUFZLEVBQUUsVUFBc0IsRUFBRSxLQUE2QjtRQUM3RSxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxLQUFLO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHFCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6RCxNQUFNLFdBQVcsR0FBRyw4Q0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBa0I7UUFDN0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxN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
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUNBQWdGO0FBRWhGLHdFQVd5QztBQUV6QyxzRUFBbUQ7QUFDbkQsd0hBQTBFO0FBQzFFLDhFQUFxRDtBQUVyRCxNQUFxQixtQkFBb0IsU0FBUSxtQ0FBYztJQU03RCxZQUNFLElBQVksRUFDWixVQUFzQjtJQUN0Qiw4REFBOEQ7SUFDOUQsS0FBNkIsRUFDN0IsTUFBZTtRQUVmLEtBQUssQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLEtBQUs7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFFOUQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUkscUJBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSx5QkFBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyRCxNQUFNLFdBQVcsR0FBRyw4Q0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFjLEVBQUUsSUFBa0I7UUFDN0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FDUixNQUFjLEVBQ2QsTUFBdUIsRUFDdkIsVUFBc0I7UUFFdEIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQ0FBc0MsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVyRixJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUU7WUFDeEIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FDOUUsQ0FBQztTQUNIO1FBRUQsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ2YsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDckUsQ0FBQztTQUNIO1FBRUQsTUFBTSxLQUFLLEdBQWdCO1lBQ3pCLFVBQVUsRUFBRSxVQUFVLENBQUMsT0FBTztZQUM5QixLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1lBQzFFLE9BQU87WUFDUCxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLO1lBQ3pCLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUk7WUFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUN4RCxRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDO1FBRUYsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVoRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFjLEVBQUUsTUFBYyxFQUFFLEtBQWlCO1FBQzVELE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQzdCLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsd0NBQXdDLENBQ3ZFLE1BQU0sQ0FBQyxhQUFhLENBQ3JCO1lBQ0QsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQWMsRUFBRSxNQUFjO1FBQ3pDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDdkIsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyx3Q0FBd0MsQ0FDdkUsTUFBTSxDQUFDLGFBQWEsQ0FDckI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVMsQ0FDYixNQUFjLEVBQ2QsTUFBYyxFQUNkLFdBQXdCLEVBQ3hCLEtBQWM7UUFFZCxJQUFJLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFFekMsSUFBSSxXQUFXLENBQUMsU0FBUyxLQUFLLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzFELGdCQUFnQixHQUFHLEdBQUcsQ0FBQztTQUN4QjthQUFNO1lBQ0wsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzVFO1FBRUQsTUFBTSxtQkFBbUIsR0FBRyxJQUFBLGNBQUUsRUFBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUEsZUFBRyxFQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUMzRixNQUFNLG9CQUFvQixHQUFvQjtZQUM1QyxtQkFBbUI7WUFDbkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQjtTQUN6QyxDQUFDO1FBRUYsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLEdBQzNDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQ0FBb0MsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakYsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkYsSUFBSSxNQUFNLENBQUMsYUFBYSxFQUFFO1lBQ3hCLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQzlFLENBQUM7U0FDSDtRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVsRSxNQUFNLEtBQUssR0FBZ0I7WUFDekIsVUFBVSxFQUFFLENBQUMsR0FBRyxlQUFlLEVBQUUsb0JBQW9CLENBQUM7WUFDdEQsS0FBSyxFQUFFLE1BQU07WUFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1lBQzFFLE9BQU87WUFDUCxLQUFLO1lBQ0wsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2QsUUFBUSxFQUFFLEtBQUs7WUFDZixHQUFHLEVBQUUsSUFBSTtTQUNWLENBQUM7UUFFRixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7Q0FDRjtBQXJJRCxzQ0FxSUMifQ==
@@ -1,9 +1,9 @@
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
5
  protected sequelize: Sequelize;
6
- constructor(sequelize: Sequelize);
7
- protected createCollections(models: Sequelize['models']): void;
6
+ constructor(sequelize: Sequelize, logger?: Logger);
7
+ protected createCollections(models: Sequelize['models'], logger?: Logger): void;
8
8
  }
9
9
  //# sourceMappingURL=datasource.d.ts.map
@@ -6,23 +6,23 @@ 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
11
  this.sequelize = null;
12
12
  if (!sequelize)
13
13
  throw new Error('Invalid (null) Sequelize instance.');
14
14
  this.sequelize = sequelize;
15
- this.createCollections(this.sequelize.models);
15
+ this.createCollections(this.sequelize.models, logger);
16
16
  }
17
- createCollections(models) {
17
+ createCollections(models, logger) {
18
18
  Object.values(models)
19
19
  // avoid schema reordering
20
20
  .sort((modelA, modelB) => (modelA.name > modelB.name ? 1 : -1))
21
21
  .forEach(model => {
22
- const collection = new collection_1.default(model.name, this, model);
22
+ const collection = new collection_1.default(model.name, this, model, logger);
23
23
  this.addCollection(collection);
24
24
  });
25
25
  }
26
26
  }
27
27
  exports.default = SequelizeDataSource;
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsd0VBQWlFO0FBRWpFLDhEQUErQztBQUUvQyxNQUFxQixtQkFBb0IsU0FBUSxtQ0FBbUM7SUFHbEYsWUFBWSxTQUFvQjtRQUM5QixLQUFLLEVBQUUsQ0FBQztRQUhBLGNBQVMsR0FBYyxJQUFJLENBQUM7UUFLcEMsSUFBSSxDQUFDLFNBQVM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFFM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVTLGlCQUFpQixDQUFDLE1BQTJCO1FBQ3JELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ25CLDBCQUEwQjthQUN6QixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlELE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNmLE1BQU0sVUFBVSxHQUFHLElBQUksb0JBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDRjtBQXRCRCxzQ0FzQkMifQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsd0VBQXlFO0FBR3pFLDhEQUErQztBQUUvQyxNQUFxQixtQkFBb0IsU0FBUSxtQ0FBbUM7SUFHbEYsWUFBWSxTQUFvQixFQUFFLE1BQWU7UUFDL0MsS0FBSyxFQUFFLENBQUM7UUFIQSxjQUFTLEdBQWMsSUFBSSxDQUFDO1FBS3BDLElBQUksQ0FBQyxTQUFTO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBRXRFLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBRTNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRVMsaUJBQWlCLENBQUMsTUFBMkIsRUFBRSxNQUFlO1FBQ3RFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ25CLDBCQUEwQjthQUN6QixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlELE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNmLE1BQU0sVUFBVSxHQUFHLElBQUksb0JBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVFLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0Y7QUF0QkQsc0NBc0JDIn0=
package/dist/index.d.ts CHANGED
@@ -1,4 +1,7 @@
1
+ import { DataSourceFactory } from '@forestadmin/datasource-toolkit';
2
+ import { Sequelize } from 'sequelize/types';
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,6 +1,6 @@
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;
@@ -8,11 +8,11 @@ export default class AggregationUtils {
8
8
  constructor(model: ModelDefined<any, any>);
9
9
  getGroupFieldName(groupField: string): string;
10
10
  unAmbigousField(field: string): string;
11
- getGroupAndAttributesFromAggregation(aggregationQueryGroup: AggregationGroup[]): {
11
+ getGroupAndAttributesFromAggregation(aggregationQueryGroup: Aggregation['groups']): {
12
12
  groups: GroupOption;
13
13
  attributes: ProjectionAlias[];
14
14
  };
15
15
  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[];
16
+ computeResult(rows: Model<any, any>[], aggregationQueryGroup: Aggregation['groups']): AggregateResult[];
17
17
  }
18
18
  //# sourceMappingURL=aggregation.d.ts.map
@@ -3,8 +3,8 @@ 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");
7
+ const sequelize_1 = require("sequelize");
8
8
  const date_aggregation_converter_1 = __importDefault(require("./date-aggregation-converter"));
9
9
  class AggregationUtils {
10
10
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -89,4 +89,4 @@ class AggregationUtils {
89
89
  }
90
90
  }
91
91
  exports.default = AggregationUtils;
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvYWdncmVnYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5Q0FRbUI7QUFHbkIsd0VBSXlDO0FBRXpDLDhGQUFvRTtBQUVwRSxNQUFxQixnQkFBZ0I7SUFPbkMsOERBQThEO0lBQzlELFlBQVksS0FBNkI7UUFIaEMsdUJBQWtCLEdBQUcsZUFBZSxDQUFDO1FBSTVDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFhLENBQUM7SUFDOUQsQ0FBQztJQUVELGlCQUFpQixDQUFDLFVBQWtCO1FBQ2xDLE9BQU8sR0FBRyxVQUFVLGFBQWEsQ0FBQztJQUNwQyxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxTQUFpQixDQUFDO1FBQ3RCLElBQUksU0FBaUIsQ0FBQztRQUV0QixJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBRTdELElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2hCLE1BQU0sSUFBSSxvQ0FBZSxDQUN2QixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxxQ0FBcUMsZUFBZSxJQUFJLENBQzNFLENBQUM7YUFDSDtZQUVELE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUV6RSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3JC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
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvYWdncmVnYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFBZ0c7QUFDaEcseUNBUW1CO0FBR25CLDhGQUFvRTtBQUVwRSxNQUFxQixnQkFBZ0I7SUFPbkMsOERBQThEO0lBQzlELFlBQVksS0FBNkI7UUFIaEMsdUJBQWtCLEdBQUcsZUFBZSxDQUFDO1FBSTVDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFhLENBQUM7SUFDOUQsQ0FBQztJQUVELGlCQUFpQixDQUFDLFVBQWtCO1FBQ2xDLE9BQU8sR0FBRyxVQUFVLGFBQWEsQ0FBQztJQUNwQyxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxTQUFpQixDQUFDO1FBQ3RCLElBQUksU0FBaUIsQ0FBQztRQUV0QixJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBRTdELElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2hCLE1BQU0sSUFBSSxvQ0FBZSxDQUN2QixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxxQ0FBcUMsZUFBZSxJQUFJLENBQzNFLENBQUM7YUFDSDtZQUVELE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUV6RSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3JC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
@@ -1,10 +1,10 @@
1
1
  import { ModelDefined } from 'sequelize';
2
- import { CollectionSchema } from '@forestadmin/datasource-toolkit';
2
+ import { CollectionSchema, Logger } from '@forestadmin/datasource-toolkit';
3
3
  export default class ModelToCollectionSchemaConverter {
4
4
  private static convertAssociation;
5
5
  private static convertAssociations;
6
6
  private static convertAttribute;
7
7
  private static convertAttributes;
8
- static convert(model: ModelDefined<any, any>): CollectionSchema;
8
+ static convert(model: ModelDefined<any, any>, logger: Logger): CollectionSchema;
9
9
  }
10
10
  //# sourceMappingURL=model-to-collection-schema-converter.d.ts.map
@@ -45,11 +45,16 @@ class ModelToCollectionSchemaConverter {
45
45
  throw new Error(`Unsupported association: "${association.associationType}".`);
46
46
  }
47
47
  }
48
- static convertAssociations(associations) {
48
+ static convertAssociations(modelName, associations, logger) {
49
49
  const schemaAssociations = {};
50
50
  if (associations) {
51
- Object.entries(associations).forEach(([key, association]) => {
52
- schemaAssociations[key] = this.convertAssociation(association);
51
+ Object.entries(associations).forEach(([name, association]) => {
52
+ try {
53
+ schemaAssociations[name] = this.convertAssociation(association);
54
+ }
55
+ catch (error) {
56
+ logger?.('Warn', `Skipping association '${modelName}.${name}' (${error.message})`);
57
+ }
53
58
  });
54
59
  }
55
60
  return schemaAssociations;
@@ -57,13 +62,14 @@ class ModelToCollectionSchemaConverter {
57
62
  static convertAttribute(attribute) {
58
63
  const sequelizeColumnType = attribute.type;
59
64
  const columnType = type_converter_1.default.fromDataType(sequelizeColumnType);
60
- const filterOperators = type_converter_1.default.operatorsForDataType(sequelizeColumnType);
65
+ const filterOperators = type_converter_1.default.operatorsForColumnType(columnType);
61
66
  const column = {
62
67
  columnType,
63
68
  filterOperators,
64
69
  type: 'Column',
65
70
  validation: [],
66
71
  isReadOnly: attribute.autoIncrement,
72
+ isSortable: true,
67
73
  };
68
74
  if (attribute.allowNull === false &&
69
75
  !column.isReadOnly &&
@@ -84,22 +90,28 @@ class ModelToCollectionSchemaConverter {
84
90
  }
85
91
  return column;
86
92
  }
87
- static convertAttributes(attributes) {
93
+ static convertAttributes(modelName, attributes, logger) {
88
94
  const fields = {};
89
95
  Object.entries(attributes).forEach(([name, attribute]) => {
90
- fields[name] = this.convertAttribute(attribute);
96
+ try {
97
+ fields[name] = this.convertAttribute(attribute);
98
+ }
99
+ catch (error) {
100
+ logger?.('Warn', `Skipping column '${modelName}.${name}' (${error.message})`);
101
+ }
91
102
  });
92
103
  return fields;
93
104
  }
94
105
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
95
- static convert(model) {
106
+ static convert(model, logger) {
96
107
  if (!model)
97
108
  throw new Error('Invalid (null) model.');
98
109
  return {
99
110
  actions: {},
111
+ countable: true,
100
112
  fields: {
101
- ...this.convertAttributes(model.getAttributes()),
102
- ...this.convertAssociations(model.associations),
113
+ ...this.convertAttributes(model.name, model.getAttributes(), logger),
114
+ ...this.convertAssociations(model.name, model.associations, logger),
103
115
  },
104
116
  searchable: false,
105
117
  segments: [],
@@ -107,4 +119,4 @@ class ModelToCollectionSchemaConverter {
107
119
  }
108
120
  }
109
121
  exports.default = ModelToCollectionSchemaConverter;
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdG8tY29sbGVjdGlvbi1zY2hlbWEtY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL21vZGVsLXRvLWNvbGxlY3Rpb24tc2NoZW1hLWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlDQVdtQjtBQVNuQixzRUFBNkM7QUFFN0MsTUFBcUIsZ0NBQWdDO0lBQzNDLE1BQU0sQ0FBQyxrQkFBa0I7SUFDL0IsOERBQThEO0lBQzlELFdBQTBEO1FBRTFELFFBQVEsV0FBVyxDQUFDLGVBQWUsRUFBRTtZQUNuQyxLQUFLLHFCQUFTLENBQUMsSUFBSTtnQkFDakIsT0FBTztvQkFDTCxpQkFBaUIsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUk7b0JBQzFDLFVBQVUsRUFBRSxXQUFXLENBQUMsVUFBVTtvQkFDbEMsZ0JBQWdCLEVBQUcsV0FBZ0QsQ0FBQyxTQUFTO29CQUM3RSxJQUFJLEVBQUUsV0FBVztpQkFDbEIsQ0FBQztZQUNKLEtBQUsseUJBQWEsQ0FBQyxJQUFJO2dCQUNyQixPQUFPO29CQUNMLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSTtvQkFDMUMsaUJBQWlCLEVBQUcsV0FBNkIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUk7b0JBQ3BFLFNBQVMsRUFBRyxXQUE2QixDQUFDLFVBQVU7b0JBQ3BELGVBQWUsRUFBRyxXQUE2QixDQUFDLFNBQVM7b0JBQ3pELFVBQVUsRUFBRyxXQUE2QixDQUFDLFFBQVE7b0JBQ25ELGdCQUFnQixFQUFHLFdBQTZCLENBQUMsU0FBUztvQkFDMUQsSUFBSSxFQUFFLFlBQVk7aUJBQ25CLENBQUM7WUFDSixLQUFLLG1CQUFPLENBQUMsSUFBSTtnQkFDZixPQUFPO29CQUNMLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSTtvQkFDMUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxVQUFVO29C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
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdG8tY29sbGVjdGlvbi1zY2hlbWEtY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL21vZGVsLXRvLWNvbGxlY3Rpb24tc2NoZW1hLWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlDQVVtQjtBQVVuQixzRUFBNkM7QUFFN0MsTUFBcUIsZ0NBQWdDO0lBQzNDLE1BQU0sQ0FBQyxrQkFBa0I7SUFDL0IsOERBQThEO0lBQzlELFdBQTBEO1FBRTFELFFBQVEsV0FBVyxDQUFDLGVBQWUsRUFBRTtZQUNuQyxLQUFLLHFCQUFTLENBQUMsSUFBSTtnQkFDakIsT0FBTztvQkFDTCxpQkFBaUIsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUk7b0JBQzFDLFVBQVUsRUFBRSxXQUFXLENBQUMsVUFBVTtvQkFDbEMsZ0JBQWdCLEVBQUcsV0FBZ0QsQ0FBQyxTQUFTO29CQUM3RSxJQUFJLEVBQUUsV0FBVztpQkFDbEIsQ0FBQztZQUNKLEtBQUsseUJBQWEsQ0FBQyxJQUFJO2dCQUNyQixPQUFPO29CQUNMLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSTtvQkFDMUMsaUJBQWlCLEVBQUcsV0FBNkIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUk7b0JBQ3BFLFNBQVMsRUFBRyxXQUE2QixDQUFDLFVBQVU7b0JBQ3BELGVBQWUsRUFBRyxXQUE2QixDQUFDLFNBQVM7b0JBQ3pELFVBQVUsRUFBRyxXQUE2QixDQUFDLFFBQVE7b0JBQ25ELGdCQUFnQixFQUFHLFdBQTZCLENBQUMsU0FBUztvQkFDMUQsSUFBSSxFQUFFLFlBQVk7aUJBQ25CLENBQUM7WUFDSixLQUFLLG1CQUFPLENBQUMsSUFBSTtnQkFDZixPQUFPO29CQUNMLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSTtvQkFDMUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxVQUFVO29C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
@@ -1,12 +1,16 @@
1
1
  import { ConditionTree, Projection, Sort } from '@forestadmin/datasource-toolkit';
2
2
  import { IncludeOptions, ModelDefined, OrderItem, WhereOptions } from 'sequelize';
3
3
  export default class QueryConverter {
4
- private static asArray;
5
- private static makeWhereClause;
6
- static getWhereFromConditionTree(model: ModelDefined<any, any>, conditionTree?: ConditionTree): WhereOptions;
7
- private static computeIncludeFromProjection;
8
- static getIncludeFromProjection(projection: Projection): IncludeOptions[];
9
- static getIncludeWithAttributesFromProjection(projection: Projection): IncludeOptions[];
10
- static getOrderFromSort(sort: Sort): OrderItem[];
4
+ private model;
5
+ private dialect;
6
+ constructor(model: ModelDefined<unknown, unknown>);
7
+ private asArray;
8
+ private makeWhereClause;
9
+ getWhereFromConditionTreeToByPassInclude(conditionTree?: ConditionTree): Promise<WhereOptions>;
10
+ getWhereFromConditionTree(conditionTree?: ConditionTree): WhereOptions;
11
+ private computeIncludeFromProjection;
12
+ getIncludeFromProjection(projection: Projection): IncludeOptions[];
13
+ getIncludeWithAttributesFromProjection(projection: Projection): IncludeOptions[];
14
+ getOrderFromSort(sort: Sort): OrderItem[];
11
15
  }
12
16
  //# sourceMappingURL=query-converter.d.ts.map
@@ -1,13 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
3
4
  const sequelize_1 = require("sequelize");
4
5
  class QueryConverter {
5
- static asArray(value) {
6
+ constructor(model) {
7
+ this.model = model;
8
+ this.dialect = this.model.sequelize.getDialect();
9
+ }
10
+ asArray(value) {
6
11
  if (!Array.isArray(value))
7
12
  return [value];
8
13
  return value;
9
14
  }
10
- static makeWhereClause(operator, field,
15
+ makeWhereClause(field, operator,
11
16
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
17
  value) {
13
18
  if (operator === null)
@@ -15,12 +20,24 @@ class QueryConverter {
15
20
  switch (operator) {
16
21
  case 'Blank':
17
22
  return {
18
- [sequelize_1.Op.or]: [this.makeWhereClause('Missing', field), { [sequelize_1.Op.eq]: '' }],
23
+ [sequelize_1.Op.or]: [this.makeWhereClause(field, 'Missing'), { [sequelize_1.Op.eq]: '' }],
24
+ };
25
+ case 'Like':
26
+ if (this.dialect === 'sqlite')
27
+ return (0, sequelize_1.where)((0, sequelize_1.col)(field), 'GLOB', value.replace(/%/g, '*').replace(/_/g, '?'));
28
+ if (this.dialect === 'mysql' || this.dialect === 'mariadb')
29
+ return (0, sequelize_1.where)((0, sequelize_1.fn)('BINARY', (0, sequelize_1.col)(field)), 'LIKE', value);
30
+ return { [sequelize_1.Op.like]: value };
31
+ case 'ILike':
32
+ if (this.dialect === 'postgres')
33
+ return { [sequelize_1.Op.iLike]: value };
34
+ if (this.dialect === 'mysql' || this.dialect === 'mariadb' || this.dialect === 'sqlite')
35
+ return { [sequelize_1.Op.like]: value };
36
+ return (0, sequelize_1.where)((0, sequelize_1.fn)('LOWER', (0, sequelize_1.col)(field)), 'LIKE', value.toLocaleLowerCase());
37
+ case 'NotContains':
38
+ return {
39
+ [sequelize_1.Op.not]: this.makeWhereClause(field, 'Like', `%${value}%`),
19
40
  };
20
- case 'Contains':
21
- return (0, sequelize_1.where)((0, sequelize_1.fn)('LOWER', (0, sequelize_1.col)(field)), 'LIKE', `%${value.toLocaleLowerCase()}%`);
22
- case 'EndsWith':
23
- return (0, sequelize_1.where)((0, sequelize_1.fn)('LOWER', (0, sequelize_1.col)(field)), 'LIKE', `%${value.toLocaleLowerCase()}`);
24
41
  case 'Equal':
25
42
  return { [sequelize_1.Op.eq]: value };
26
43
  case 'GreaterThan':
@@ -33,23 +50,36 @@ class QueryConverter {
33
50
  return { [sequelize_1.Op.lt]: value };
34
51
  case 'Missing':
35
52
  return { [sequelize_1.Op.is]: null };
36
- case 'NotContains':
37
- return (0, sequelize_1.where)((0, sequelize_1.fn)('LOWER', (0, sequelize_1.col)(field)), 'NOT LIKE', `%${value.toLocaleLowerCase()}%`);
38
53
  case 'NotEqual':
39
54
  return { [sequelize_1.Op.ne]: value };
40
55
  case 'NotIn':
41
56
  return { [sequelize_1.Op.notIn]: this.asArray(value) };
42
57
  case 'Present':
43
58
  return { [sequelize_1.Op.ne]: null };
44
- case 'StartsWith':
45
- return (0, sequelize_1.where)((0, sequelize_1.fn)('LOWER', (0, sequelize_1.col)(field)), 'LIKE', `${value.toLocaleLowerCase()}%`);
46
59
  default:
47
60
  throw new Error(`Unsupported operator: "${operator}".`);
48
61
  }
49
62
  }
50
- static getWhereFromConditionTree(
51
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
52
- model, conditionTree) {
63
+ /*
64
+ * Delete and update sequelize methods does not provide the include options.
65
+ * This method is developed to by pass this problem.
66
+ */
67
+ async getWhereFromConditionTreeToByPassInclude(conditionTree) {
68
+ const include = conditionTree ? this.getIncludeFromProjection(conditionTree.projection) : [];
69
+ const whereOptions = this.getWhereFromConditionTree(conditionTree);
70
+ if (include.length === 0) {
71
+ return whereOptions;
72
+ }
73
+ const keys = [...this.model.primaryKeyAttributes];
74
+ const records = await this.model.findAll({ attributes: keys, where: whereOptions, include });
75
+ const conditions = records.map(record => {
76
+ const equals = keys.map(pk => new datasource_toolkit_1.ConditionTreeLeaf(pk, 'Equal', record.get(pk)));
77
+ return datasource_toolkit_1.ConditionTreeFactory.intersect(...equals);
78
+ });
79
+ const union = datasource_toolkit_1.ConditionTreeFactory.union(...conditions);
80
+ return this.getWhereFromConditionTree(union);
81
+ }
82
+ getWhereFromConditionTree(conditionTree) {
53
83
  if (!conditionTree)
54
84
  return {};
55
85
  const sequelizeWhereClause = {};
@@ -62,7 +92,7 @@ class QueryConverter {
62
92
  if (!Array.isArray(conditions)) {
63
93
  throw new Error('Conditions must be an array.');
64
94
  }
65
- sequelizeWhereClause[sequelizeOperator] = conditions.map(condition => this.getWhereFromConditionTree(model, condition));
95
+ sequelizeWhereClause[sequelizeOperator] = conditions.map(condition => this.getWhereFromConditionTree(condition));
66
96
  }
67
97
  else if (conditionTree.operator !== undefined) {
68
98
  const { field, operator, value } = conditionTree;
@@ -72,21 +102,21 @@ class QueryConverter {
72
102
  const paths = field.split(':');
73
103
  const fieldName = paths.pop();
74
104
  const safeFieldName = paths
75
- .reduce((acc, path) => acc.associations[path].target, model)
105
+ .reduce((acc, path) => acc.associations[path].target, this.model)
76
106
  .getAttributes()[fieldName].field;
77
107
  safeField = `${paths.join('.')}.${safeFieldName}`;
78
108
  }
79
109
  else {
80
- safeField = model.getAttributes()[field].field;
110
+ safeField = this.model.getAttributes()[field].field;
81
111
  }
82
- sequelizeWhereClause[isRelation ? `$${safeField}$` : safeField] = this.makeWhereClause(operator, safeField, value);
112
+ sequelizeWhereClause[isRelation ? `$${safeField}$` : safeField] = this.makeWhereClause(safeField, operator, value);
83
113
  }
84
114
  else {
85
115
  throw new Error('Invalid ConditionTree.');
86
116
  }
87
117
  return sequelizeWhereClause;
88
118
  }
89
- static computeIncludeFromProjection(projection, withAttributes = true) {
119
+ computeIncludeFromProjection(projection, withAttributes = true) {
90
120
  return Object.entries(projection.relations).map(([relationName, relationProjection]) => {
91
121
  return {
92
122
  association: relationName,
@@ -95,13 +125,13 @@ class QueryConverter {
95
125
  };
96
126
  });
97
127
  }
98
- static getIncludeFromProjection(projection) {
128
+ getIncludeFromProjection(projection) {
99
129
  return this.computeIncludeFromProjection(projection, false);
100
130
  }
101
- static getIncludeWithAttributesFromProjection(projection) {
131
+ getIncludeWithAttributesFromProjection(projection) {
102
132
  return this.computeIncludeFromProjection(projection);
103
133
  }
104
- static getOrderFromSort(sort) {
134
+ getOrderFromSort(sort) {
105
135
  return (sort ?? []).map(({ field, ascending }) => {
106
136
  const path = field.split(':');
107
137
  return [...path, ascending ? 'ASC' : 'DESC'];
@@ -109,4 +139,4 @@ class QueryConverter {
109
139
  }
110
140
  }
111
141
  exports.default = QueryConverter;
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3F1ZXJ5LWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFBLHlDQVdtQjtBQUduQixNQUFxQixjQUFjO0lBQ3pCLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBYztRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sTUFBTSxDQUFDLGVBQWUsQ0FDNUIsUUFBa0IsRUFDbEIsS0FBYTtJQUNiLDhEQUE4RDtJQUM5RCxLQUFXO1FBRVgsSUFBSSxRQUFRLEtBQUssSUFBSTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUVuRSxRQUFRLFFBQVEsRUFBRTtZQUNoQixLQUFLLE9BQU87Z0JBQ1YsT0FBTztvQkFDTCxDQUFDLGNBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBZSxFQUFFLEVBQUUsQ0FBQyxjQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7aUJBQ2pGLENBQUM7WUFDSixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxJQUFBLGlCQUFLLEVBQUMsSUFBQSxjQUFFLEVBQUMsT0FBTyxFQUFFLElBQUEsZUFBRyxFQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2xGLEtBQUssVUFBVTtnQkFDYixPQUFPLElBQUEsaUJBQUssRUFBQyxJQUFBLGNBQUUsRUFBQyxPQUFPLEVBQUUsSUFBQSxlQUFHLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxL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
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3F1ZXJ5LWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHdFQVF5QztBQUN6Qyx5Q0FZbUI7QUFHbkIsTUFBcUIsY0FBYztJQUlqQyxZQUFZLEtBQXFDO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFhLENBQUM7SUFDOUQsQ0FBQztJQUVPLE9BQU8sQ0FBQyxLQUFjO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxlQUFlLENBQ3JCLEtBQWEsRUFDYixRQUFrQjtJQUNsQiw4REFBOEQ7SUFDOUQsS0FBVztRQUVYLElBQUksUUFBUSxLQUFLLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFbkUsUUFBUSxRQUFRLEVBQUU7WUFDaEIsS0FBSyxPQUFPO2dCQUNWLE9BQU87b0JBQ0wsQ0FBQyxjQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQWUsRUFBRSxFQUFFLENBQUMsY0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO2lCQUNqRixDQUFDO1lBRUosS0FBSyxNQUFNO2dCQUNULElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRO29CQUMzQixPQUFPLElBQUEsaUJBQUssRUFBQyxJQUFBLGVBQUcsRUFBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVB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
@@ -1,11 +1,11 @@
1
- import { AbstractDataTypeConstructor, ArrayDataType } from 'sequelize';
1
+ import { AbstractDataTypeConstructor, DataType } from 'sequelize';
2
2
  import { ColumnType, Operator, PrimitiveTypes } from '@forestadmin/datasource-toolkit';
3
3
  export default class TypeConverter {
4
4
  private static readonly columnTypeToDataType;
5
5
  static fromColumnType(columnType: PrimitiveTypes): AbstractDataTypeConstructor;
6
- private static readonly dataTypeToColumnType;
7
- static fromDataType(dataType: AbstractDataTypeConstructor | ArrayDataType<AbstractDataTypeConstructor>): ColumnType;
6
+ private static getColumnTypeFromDataType;
7
+ static fromDataType(dataType: DataType): ColumnType;
8
8
  private static readonly baseOperators;
9
- static operatorsForDataType(dataType: AbstractDataTypeConstructor | ArrayDataType<AbstractDataTypeConstructor>): Set<Operator>;
9
+ static operatorsForColumnType(columnType: ColumnType): Set<Operator>;
10
10
  }
11
11
  //# sourceMappingURL=type-converter.d.ts.map
@@ -9,83 +9,94 @@ class TypeConverter {
9
9
  throw new Error(`Unsupported column type: "${columnType}".`);
10
10
  return dataType;
11
11
  }
12
+ static getColumnTypeFromDataType(dataType) {
13
+ switch (true) {
14
+ case dataType instanceof sequelize_1.DataTypes.BOOLEAN:
15
+ return 'Boolean';
16
+ case dataType instanceof sequelize_1.DataTypes.DATE:
17
+ case dataType instanceof sequelize_1.DataTypes.NOW:
18
+ return 'Date';
19
+ case dataType instanceof sequelize_1.DataTypes.DATEONLY:
20
+ return 'Dateonly';
21
+ case dataType instanceof sequelize_1.DataTypes.ENUM:
22
+ return 'Enum';
23
+ case dataType instanceof sequelize_1.DataTypes.JSON:
24
+ case dataType instanceof sequelize_1.DataTypes.JSONB:
25
+ return 'Json';
26
+ case dataType instanceof sequelize_1.DataTypes.BIGINT:
27
+ case dataType instanceof sequelize_1.DataTypes.DECIMAL:
28
+ case dataType instanceof sequelize_1.DataTypes.DOUBLE:
29
+ case dataType instanceof sequelize_1.DataTypes.FLOAT:
30
+ case dataType instanceof sequelize_1.DataTypes.INTEGER:
31
+ case dataType instanceof sequelize_1.DataTypes.MEDIUMINT:
32
+ case dataType instanceof sequelize_1.DataTypes.NUMBER:
33
+ case dataType instanceof sequelize_1.DataTypes.REAL:
34
+ case dataType instanceof sequelize_1.DataTypes.SMALLINT:
35
+ case dataType instanceof sequelize_1.DataTypes.TINYINT:
36
+ return 'Number';
37
+ case dataType instanceof sequelize_1.DataTypes.CHAR:
38
+ case dataType instanceof sequelize_1.DataTypes.CITEXT:
39
+ case dataType instanceof sequelize_1.DataTypes.STRING:
40
+ case dataType instanceof sequelize_1.DataTypes.TEXT:
41
+ return 'String';
42
+ case dataType instanceof sequelize_1.DataTypes.TIME:
43
+ return 'Timeonly';
44
+ case dataType instanceof sequelize_1.DataTypes.UUID:
45
+ case dataType instanceof sequelize_1.DataTypes.UUIDV1:
46
+ case dataType instanceof sequelize_1.DataTypes.UUIDV4:
47
+ return 'Uuid';
48
+ default:
49
+ throw new Error(`Unsupported data type: "${dataType}"`);
50
+ }
51
+ }
12
52
  static fromDataType(dataType) {
13
- const dataTypeName = dataType.key;
14
- if (dataTypeName === 'ARRAY') {
53
+ if (dataType instanceof sequelize_1.DataTypes.ARRAY) {
15
54
  const arrayDataType = dataType;
16
- return [this.fromDataType(arrayDataType.options.type)];
55
+ return [TypeConverter.fromDataType(arrayDataType.type)];
17
56
  }
18
- const columnType = TypeConverter.dataTypeToColumnType[dataTypeName];
19
- if (!columnType)
20
- throw new Error(`Unsupported data type: "${dataType}".`);
21
- return columnType;
57
+ return TypeConverter.getColumnTypeFromDataType(dataType);
22
58
  }
23
- static operatorsForDataType(dataType) {
24
- const dataTypeName = dataType?.key;
25
- if (dataTypeName === 'ARRAY') {
26
- return new Set([...this.baseOperators, 'In', 'IncludesAll', 'NotIn']);
59
+ static operatorsForColumnType(columnType) {
60
+ if (Array.isArray(columnType)) {
61
+ return new Set([...TypeConverter.baseOperators, 'In', 'IncludesAll', 'NotIn']);
27
62
  }
28
- switch (dataTypeName) {
29
- case 'BOOLEAN':
30
- return new Set([...this.baseOperators]);
31
- case 'UUID':
32
- case 'UUIDV1':
33
- case 'UUIDV4':
63
+ switch (columnType) {
64
+ case 'Boolean':
65
+ return new Set([...TypeConverter.baseOperators]);
66
+ case 'Uuid':
34
67
  return new Set([
35
- ...this.baseOperators,
68
+ ...TypeConverter.baseOperators,
36
69
  'Contains',
37
70
  'EndsWith',
38
71
  'Like',
39
72
  'StartsWith',
40
73
  ]);
41
- case 'BIGINT':
42
- case 'DECIMAL':
43
- case 'DOUBLE':
44
- case 'FLOAT':
45
- case 'INTEGER':
46
- case 'MEDIUMINT':
47
- case 'NUMBER':
48
- case 'REAL':
49
- case 'SMALLINT':
50
- case 'TINYINT':
51
- return new Set([...this.baseOperators, 'GreaterThan', 'In', 'LessThan', 'NotIn']);
52
- case 'CHAR':
53
- case 'CITEXT':
54
- case 'STRING':
55
- case 'TEXT':
74
+ case 'Number':
56
75
  return new Set([
57
- ...this.baseOperators,
58
- 'Contains',
59
- 'EndsWith',
76
+ ...TypeConverter.baseOperators,
77
+ 'GreaterThan',
78
+ 'In',
79
+ 'LessThan',
80
+ 'NotIn',
81
+ ]);
82
+ case 'String':
83
+ return new Set([
84
+ ...TypeConverter.baseOperators,
60
85
  'In',
61
86
  'Like',
87
+ 'ILike',
62
88
  'LongerThan',
63
89
  'NotContains',
64
90
  'NotIn',
65
91
  'ShorterThan',
66
- 'StartsWith',
67
92
  ]);
68
- case 'DATE':
69
- case 'DATEONLY':
70
- case 'NOW':
71
- case 'TIME':
72
- return new Set([...this.baseOperators, 'GreaterThan', 'LessThan']);
73
- case 'ENUM':
74
- return new Set([...this.baseOperators, 'In', 'NotIn']);
75
- case 'JSON':
76
- case 'JSONB':
77
- return new Set([...this.baseOperators]);
78
- // Unsupported types.
79
- case 'BLOB':
80
- case 'CIDR':
81
- case 'GEOGRAPHY':
82
- case 'GEOMETRY':
83
- case 'HSTORE':
84
- case 'INET':
85
- case 'MACADDR':
86
- case 'RANGE':
87
- case 'TSVECTOR':
88
- case 'VIRTUAL':
93
+ case 'Date':
94
+ case 'Dateonly':
95
+ return new Set([...TypeConverter.baseOperators, 'GreaterThan', 'LessThan']);
96
+ case 'Enum':
97
+ return new Set([...TypeConverter.baseOperators, 'In', 'NotIn']);
98
+ case 'Json':
99
+ return new Set([...TypeConverter.baseOperators]);
89
100
  default:
90
101
  return new Set();
91
102
  }
@@ -105,44 +116,6 @@ TypeConverter.columnTypeToDataType = {
105
116
  Timeonly: sequelize_1.DataTypes.TIME,
106
117
  Uuid: sequelize_1.DataTypes.UUID,
107
118
  };
108
- TypeConverter.dataTypeToColumnType = {
109
- BIGINT: 'Number',
110
- BLOB: null,
111
- BOOLEAN: 'Boolean',
112
- CHAR: 'String',
113
- CIDR: null,
114
- CITEXT: 'String',
115
- DATE: 'Date',
116
- DATEONLY: 'Dateonly',
117
- DECIMAL: 'Number',
118
- DOUBLE: 'Number',
119
- ENUM: 'Enum',
120
- FLOAT: 'Number',
121
- GEOGRAPHY: null,
122
- GEOMETRY: null,
123
- HSTORE: null,
124
- INET: null,
125
- INTEGER: 'Number',
126
- JSON: 'Json',
127
- JSONB: 'Json',
128
- JSONTYPE: null,
129
- MACADDR: null,
130
- MEDIUMINT: 'Number',
131
- NOW: 'Date',
132
- NUMBER: 'Number',
133
- RANGE: null,
134
- REAL: 'Number',
135
- SMALLINT: 'Number',
136
- STRING: 'String',
137
- TEXT: 'String',
138
- TIME: 'Timeonly',
139
- TINYINT: 'Number',
140
- TSVECTOR: null,
141
- UUID: 'Uuid',
142
- UUIDV1: 'Uuid',
143
- UUIDV4: 'Uuid',
144
- VIRTUAL: null,
145
- };
146
119
  TypeConverter.baseOperators = [
147
120
  'Blank',
148
121
  'Equal',
@@ -150,4 +123,4 @@ TypeConverter.baseOperators = [
150
123
  'NotEqual',
151
124
  'Present',
152
125
  ];
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdHlwZS1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBb0c7QUFJcEcsTUFBcUIsYUFBYTtJQWtCaEMseURBQXlEO0lBQ2xELE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBMEI7UUFDckQsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsVUFBVSxJQUFJLENBQUMsQ0FBQztRQUU1RSxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBeUNNLE1BQU0sQ0FBQyxZQUFZLENBQ3hCLFFBQWtGO1FBRWxGLE1BQU0sWUFBWSxHQUFJLFFBQTZCLENBQUMsR0FBRyxDQUFDO1FBRXhELElBQUksWUFBWSxLQUFLLE9BQU8sRUFBRTtZQUM1QixNQUFNLGFBQWEsR0FBRyxRQUFzRCxDQUFDO1lBRTdFLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUN4RDtRQUVELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVwRSxJQUFJLENBQUMsVUFBVTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLFFBQVEsSUFBSSxDQUFDLENBQUM7UUFFMUUsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQVVNLE1BQU0sQ0FBQyxvQkFBb0IsQ0FDaEMsUUFBa0Y7UUFFbEYsTUFBTSxZQUFZLEdBQUcsUUFBUSxFQUFFLEdBQUcsQ0FBQztRQUVuQyxJQUFJLFlBQVksS0FBSyxPQUFPLEVBQUU7WUFDNUIsT0FBTyxJQUFJLEdBQUcsQ0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFD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
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdHlwZS1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBNEY7QUFJNUYsTUFBcUIsYUFBYTtJQWtCaEMseURBQXlEO0lBQ2xELE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBMEI7UUFDckQsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsVUFBVSxJQUFJLENBQUMsQ0FBQztRQUU1RSxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU8sTUFBTSxDQUFDLHlCQUF5QixDQUFDLFFBQWtCO1FBQ3pELFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxRQUFRLFlBQVkscUJBQVMsQ0FBQyxPQUFPO2dCQUN4QyxPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFFBQVEsWUFBWSxxQkFBUyxDQUFDLElBQUksQ0FBQztZQUN4QyxLQUFLLFFBQVEsWUFBWSxxQkFBUyxDQUFDLEdBQUc7Z0JBQ3BDLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssUUFBUSxZQUFZLHFCQUFTLENBQUMsUUFBUTtnQkFDekMsT0FBTyxVQUFVLENBQUM7WUFDcEIsS0FBSyxRQUFRLFlBQVkscUJBQVMsQ0FBQyxJQUFJO2dCQUNyQyxPQUFPLE1BQU0sQ0FBQztZQUNoQixLQUFLLFFBQVEsWUFBWSxxQkFBUyxDQUFDLElBQUksQ0FBQztZQUN4QyxLQUFLLFFBQVEsWUFBWSxxQkFBUyxDQUFDLEtBQUs7Z0JBQ3RDLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssUUFBUSxZQUFZLHFCQUFTLENBQUMsTUFBTSxDQUFDO1lBQzFDLEtBQUssUUFBUSxZQUFZLHFCQUFTLENBQUMsT0FBTyxDQUFDO1lBQzNDLEtBQUssUUFBUSxZ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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forestadmin/datasource-sequelize",
3
- "version": "1.0.0-beta.3",
3
+ "version": "1.0.0-beta.30",
4
4
  "main": "dist/index.js",
5
5
  "license": "GPL-3.0",
6
6
  "publishConfig": {
@@ -12,7 +12,7 @@
12
12
  "directory": "packages/datasource-sequelize"
13
13
  },
14
14
  "dependencies": {
15
- "@forestadmin/datasource-toolkit": "1.0.0-beta.3"
15
+ "@forestadmin/datasource-toolkit": "1.0.0-beta.25"
16
16
  },
17
17
  "files": [
18
18
  "dist/**/*.js",