@webda/core 1.6.0-beta.2 → 2.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/lib/application.d.ts +351 -195
  2. package/lib/application.js +188 -682
  3. package/lib/application.js.map +1 -1
  4. package/lib/application.spec.js +109 -289
  5. package/lib/application.spec.js.map +1 -1
  6. package/lib/core.d.ts +108 -214
  7. package/lib/core.js +169 -71
  8. package/lib/core.js.map +1 -1
  9. package/lib/core.spec.js +103 -42
  10. package/lib/core.spec.js.map +1 -1
  11. package/lib/index.d.ts +4 -0
  12. package/lib/index.js +9 -1
  13. package/lib/index.js.map +1 -1
  14. package/lib/models/aclmodel.d.ts +3 -1
  15. package/lib/models/aclmodel.js +6 -3
  16. package/lib/models/aclmodel.js.map +1 -1
  17. package/lib/models/aclmodel.spec.js +10 -5
  18. package/lib/models/aclmodel.spec.js.map +1 -1
  19. package/lib/models/coremodel.d.ts +11 -18
  20. package/lib/models/coremodel.js +36 -36
  21. package/lib/models/coremodel.js.map +1 -1
  22. package/lib/models/coremodel.spec.js +2 -2
  23. package/lib/models/coremodel.spec.js.map +1 -1
  24. package/lib/models/ident.d.ts +3 -3
  25. package/lib/models/ident.js +2 -1
  26. package/lib/models/ident.js.map +1 -1
  27. package/lib/models/ident.spec.js +1 -1
  28. package/lib/models/ident.spec.js.map +1 -1
  29. package/lib/models/ownermodel.d.ts +8 -4
  30. package/lib/models/ownermodel.js +9 -4
  31. package/lib/models/ownermodel.js.map +1 -1
  32. package/lib/models/ownermodel.spec.js +1 -1
  33. package/lib/models/ownermodel.spec.js.map +1 -1
  34. package/lib/models/rolemodel.js.map +1 -1
  35. package/lib/models/rolemodel.spec.js +5 -2
  36. package/lib/models/rolemodel.spec.js.map +1 -1
  37. package/lib/models/user.d.ts +4 -3
  38. package/lib/models/user.js +2 -1
  39. package/lib/models/user.js.map +1 -1
  40. package/lib/models/user.spec.js +1 -1
  41. package/lib/models/user.spec.js.map +1 -1
  42. package/lib/queues/filequeue.d.ts +2 -7
  43. package/lib/queues/filequeue.js +4 -13
  44. package/lib/queues/filequeue.js.map +1 -1
  45. package/lib/queues/filequeue.spec.js +2 -3
  46. package/lib/queues/filequeue.spec.js.map +1 -1
  47. package/lib/queues/memoryqueue.d.ts +2 -7
  48. package/lib/queues/memoryqueue.js +1 -11
  49. package/lib/queues/memoryqueue.js.map +1 -1
  50. package/lib/queues/memoryqueue.spec.js +1 -1
  51. package/lib/queues/memoryqueue.spec.js.map +1 -1
  52. package/lib/queues/queue.spec.d.ts +1 -1
  53. package/lib/queues/queue.spec.js +12 -10
  54. package/lib/queues/queue.spec.js.map +1 -1
  55. package/lib/queues/queueservice.d.ts +1 -1
  56. package/lib/queues/queueservice.js +1 -1
  57. package/lib/queues/queueservice.js.map +1 -1
  58. package/lib/router.d.ts +48 -2
  59. package/lib/router.js +78 -51
  60. package/lib/router.js.map +1 -1
  61. package/lib/router.spec.js +23 -6
  62. package/lib/router.spec.js.map +1 -1
  63. package/lib/services/asyncevents.d.ts +1 -0
  64. package/lib/services/asyncevents.js +4 -3
  65. package/lib/services/asyncevents.js.map +1 -1
  66. package/lib/services/asyncevents.spec.js +2 -2
  67. package/lib/services/asyncevents.spec.js.map +1 -1
  68. package/lib/services/authentication.d.ts +39 -11
  69. package/lib/services/authentication.js +60 -55
  70. package/lib/services/authentication.js.map +1 -1
  71. package/lib/services/authentication.spec.js +2 -1
  72. package/lib/services/authentication.spec.js.map +1 -1
  73. package/lib/services/binary.d.ts +127 -65
  74. package/lib/services/binary.js +255 -98
  75. package/lib/services/binary.js.map +1 -1
  76. package/lib/services/binary.spec.d.ts +2 -1
  77. package/lib/services/binary.spec.js +101 -30
  78. package/lib/services/binary.spec.js.map +1 -1
  79. package/lib/services/cloudbinary.d.ts +67 -0
  80. package/lib/services/cloudbinary.js +178 -0
  81. package/lib/services/cloudbinary.js.map +1 -0
  82. package/lib/services/cloudbinary.spec.d.ts +13 -0
  83. package/lib/services/cloudbinary.spec.js +212 -0
  84. package/lib/services/cloudbinary.spec.js.map +1 -0
  85. package/lib/services/configuration.d.ts +7 -2
  86. package/lib/services/configuration.js +6 -5
  87. package/lib/services/configuration.js.map +1 -1
  88. package/lib/services/configuration.spec.js +3 -2
  89. package/lib/services/configuration.spec.js.map +1 -1
  90. package/lib/services/cron.d.ts +5 -6
  91. package/lib/services/cron.js +5 -12
  92. package/lib/services/cron.js.map +1 -1
  93. package/lib/services/cron.spec.js +3 -4
  94. package/lib/services/cron.spec.js.map +1 -1
  95. package/lib/services/debugmailer.d.ts +3 -5
  96. package/lib/services/debugmailer.js +3 -11
  97. package/lib/services/debugmailer.js.map +1 -1
  98. package/lib/services/debugmailer.spec.js +1 -1
  99. package/lib/services/debugmailer.spec.js.map +1 -1
  100. package/lib/services/echo.d.ts +3 -7
  101. package/lib/services/echo.js +1 -11
  102. package/lib/services/echo.js.map +1 -1
  103. package/lib/services/echo.spec.js +4 -3
  104. package/lib/services/echo.spec.js.map +1 -1
  105. package/lib/services/filebinary.d.ts +40 -16
  106. package/lib/services/filebinary.js +142 -50
  107. package/lib/services/filebinary.js.map +1 -1
  108. package/lib/services/filebinary.spec.d.ts +4 -2
  109. package/lib/services/filebinary.spec.js +50 -12
  110. package/lib/services/filebinary.spec.js.map +1 -1
  111. package/lib/services/fileconfiguration.d.ts +1 -5
  112. package/lib/services/fileconfiguration.js +3 -12
  113. package/lib/services/fileconfiguration.js.map +1 -1
  114. package/lib/services/fileconfiguration.spec.js +2 -2
  115. package/lib/services/fileconfiguration.spec.js.map +1 -1
  116. package/lib/services/invitationservice.d.ts +28 -4
  117. package/lib/services/invitationservice.js +9 -6
  118. package/lib/services/invitationservice.js.map +1 -1
  119. package/lib/services/invitationservice.spec.js +4 -3
  120. package/lib/services/invitationservice.spec.js.map +1 -1
  121. package/lib/services/kubernetesconfiguration.d.ts +3 -5
  122. package/lib/services/kubernetesconfiguration.js +7 -14
  123. package/lib/services/kubernetesconfiguration.js.map +1 -1
  124. package/lib/services/kubernetesconfiguration.spec.js +5 -5
  125. package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
  126. package/lib/services/mailer.d.ts +1 -5
  127. package/lib/services/mailer.js +1 -10
  128. package/lib/services/mailer.js.map +1 -1
  129. package/lib/services/mailer.spec.js +3 -3
  130. package/lib/services/mailer.spec.js.map +1 -1
  131. package/lib/services/notificationservice.d.ts +2 -0
  132. package/lib/services/notificationservice.js +2 -0
  133. package/lib/services/notificationservice.js.map +1 -1
  134. package/lib/services/notificationservice.spec.js +2 -2
  135. package/lib/services/notificationservice.spec.js.map +1 -1
  136. package/lib/services/oauth.d.ts +8 -6
  137. package/lib/services/oauth.js +30 -14
  138. package/lib/services/oauth.js.map +1 -1
  139. package/lib/services/oauth.spec.js +10 -10
  140. package/lib/services/oauth.spec.js.map +1 -1
  141. package/lib/services/resource.d.ts +18 -5
  142. package/lib/services/resource.js +42 -23
  143. package/lib/services/resource.js.map +1 -1
  144. package/lib/services/resource.spec.js +4 -4
  145. package/lib/services/resource.spec.js.map +1 -1
  146. package/lib/services/service.d.ts +22 -25
  147. package/lib/services/service.js +16 -22
  148. package/lib/services/service.js.map +1 -1
  149. package/lib/services/service.spec.js +2 -2
  150. package/lib/services/service.spec.js.map +1 -1
  151. package/lib/services/version.d.ts +2 -5
  152. package/lib/services/version.js +1 -10
  153. package/lib/services/version.js.map +1 -1
  154. package/lib/services/version.spec.js +1 -1
  155. package/lib/services/version.spec.js.map +1 -1
  156. package/lib/stores/aggregator.d.ts +3 -5
  157. package/lib/stores/aggregator.js +3 -10
  158. package/lib/stores/aggregator.js.map +1 -1
  159. package/lib/stores/file.d.ts +15 -8
  160. package/lib/stores/file.js +21 -18
  161. package/lib/stores/file.js.map +1 -1
  162. package/lib/stores/file.spec.d.ts +3 -1
  163. package/lib/stores/file.spec.js +32 -8
  164. package/lib/stores/file.spec.js.map +1 -1
  165. package/lib/stores/mapper.d.ts +1 -5
  166. package/lib/stores/mapper.js +4 -13
  167. package/lib/stores/mapper.js.map +1 -1
  168. package/lib/stores/mapper.spec.js +2 -2
  169. package/lib/stores/mapper.spec.js.map +1 -1
  170. package/lib/stores/memory.d.ts +5 -9
  171. package/lib/stores/memory.js +5 -17
  172. package/lib/stores/memory.js.map +1 -1
  173. package/lib/stores/memory.spec.d.ts +2 -1
  174. package/lib/stores/memory.spec.js +36 -4
  175. package/lib/stores/memory.spec.js.map +1 -1
  176. package/lib/stores/store.d.ts +137 -26
  177. package/lib/stores/store.js +431 -75
  178. package/lib/stores/store.js.map +1 -1
  179. package/lib/stores/store.spec.d.ts +31 -4
  180. package/lib/stores/store.spec.js +206 -35
  181. package/lib/stores/store.spec.js.map +1 -1
  182. package/lib/stores/webdaql/WebdaQLLexer.d.ts +53 -0
  183. package/lib/stores/webdaql/WebdaQLLexer.js +290 -0
  184. package/lib/stores/webdaql/WebdaQLLexer.js.map +1 -0
  185. package/lib/stores/webdaql/WebdaQLParserLexer.d.ts +53 -0
  186. package/lib/stores/webdaql/WebdaQLParserLexer.js +290 -0
  187. package/lib/stores/webdaql/WebdaQLParserLexer.js.map +1 -0
  188. package/lib/stores/webdaql/WebdaQLParserListener.d.ts +284 -0
  189. package/lib/stores/webdaql/WebdaQLParserListener.js +4 -0
  190. package/lib/stores/webdaql/WebdaQLParserListener.js.map +1 -0
  191. package/lib/stores/webdaql/WebdaQLParserParser.d.ts +301 -0
  192. package/lib/stores/webdaql/WebdaQLParserParser.js +1781 -0
  193. package/lib/stores/webdaql/WebdaQLParserParser.js.map +1 -0
  194. package/lib/stores/webdaql/WebdaQLParserVisitor.d.ts +174 -0
  195. package/lib/stores/webdaql/WebdaQLParserVisitor.js +4 -0
  196. package/lib/stores/webdaql/WebdaQLParserVisitor.js.map +1 -0
  197. package/lib/stores/webdaql/query.d.ts +300 -0
  198. package/lib/stores/webdaql/query.js +471 -0
  199. package/lib/stores/webdaql/query.js.map +1 -0
  200. package/lib/stores/webdaql/query.spec.d.ts +1 -0
  201. package/lib/stores/webdaql/query.spec.js +136 -0
  202. package/lib/stores/webdaql/query.spec.js.map +1 -0
  203. package/lib/test.d.ts +54 -9
  204. package/lib/test.js +139 -25
  205. package/lib/test.js.map +1 -1
  206. package/lib/unpackedapplication.d.ts +66 -0
  207. package/lib/unpackedapplication.js +219 -0
  208. package/lib/unpackedapplication.js.map +1 -0
  209. package/lib/utils/abstractdeployer.spec.js +1 -1
  210. package/lib/utils/abstractdeployer.spec.js.map +1 -1
  211. package/lib/utils/context.d.ts +17 -58
  212. package/lib/utils/context.js +33 -124
  213. package/lib/utils/context.js.map +1 -1
  214. package/lib/utils/context.spec.js +49 -28
  215. package/lib/utils/context.spec.js.map +1 -1
  216. package/lib/utils/cookie.d.ts +6 -3
  217. package/lib/utils/cookie.js +9 -5
  218. package/lib/utils/cookie.js.map +1 -1
  219. package/lib/utils/cookie.spec.js +5 -5
  220. package/lib/utils/cookie.spec.js.map +1 -1
  221. package/lib/utils/httpcontext.d.ts +157 -0
  222. package/lib/utils/httpcontext.js +279 -0
  223. package/lib/utils/httpcontext.js.map +1 -0
  224. package/lib/utils/httpcontext.spec.d.ts +5 -0
  225. package/lib/utils/httpcontext.spec.js +82 -0
  226. package/lib/utils/httpcontext.spec.js.map +1 -0
  227. package/lib/utils/logger.d.ts +18 -5
  228. package/lib/utils/logger.js +17 -4
  229. package/lib/utils/logger.js.map +1 -1
  230. package/lib/utils/logger.spec.js.map +1 -1
  231. package/lib/utils/serializers.js +5 -1
  232. package/lib/utils/serializers.js.map +1 -1
  233. package/lib/utils/serializers.spec.js +3 -3
  234. package/lib/utils/serializers.spec.js.map +1 -1
  235. package/lib/utils/waiter.d.ts +1 -1
  236. package/lib/utils/waiter.js.map +1 -1
  237. package/lib/utils/waiter.spec.js +2 -2
  238. package/lib/utils/waiter.spec.js.map +1 -1
  239. package/package.json +25 -18
  240. package/test/config-file-no-reload.json +2 -1
  241. package/test/config-file-reload.json +2 -1
  242. package/test/config-kube-reload.json +2 -1
  243. package/test/config-reload.json +1 -1
  244. package/test/config.json +8 -11
  245. package/test/config.old.json +1 -1
  246. package/test/moddas/annotatedservice.js +1 -3
  247. package/test/moddas/debugmailer.js +2 -7
  248. package/test/moddas/fakeservice.js +1 -1
  249. package/test/moddas/voidstore.js +2 -4
  250. package/test/models/ident.js +1 -1
  251. package/test/models/task.js +1 -6
  252. package/webda.module.json +1124 -0
  253. package/test/config.old-default.json +0 -151
@@ -3,6 +3,7 @@ import { ConfigurationProvider } from "../index";
3
3
  import { CoreModel, CoreModelDefinition } from "../models/coremodel";
4
4
  import { Service, ServiceParameters } from "../services/service";
5
5
  import { Context } from "../utils/context";
6
+ import { WebdaQL } from "./webdaql/query";
6
7
  export declare class StoreNotFoundError extends WebdaError {
7
8
  constructor(uuid: string, storeName: string);
8
9
  }
@@ -163,32 +164,32 @@ export interface EventStorePartialUpdated {
163
164
  /**
164
165
  * Event sent when a query on the store is emitted
165
166
  */
166
- export interface EventStoreFind {
167
+ export interface EventStoreQuery {
167
168
  /**
168
169
  * Request sent
169
170
  */
170
- request: any;
171
+ query: string;
171
172
  /**
172
173
  * Emitting store
173
174
  */
174
175
  store: Store;
175
176
  /**
176
- * Offset on the results
177
+ * The parsed query by our grammar
177
178
  */
178
- offset: number;
179
- /**
180
- * Max number of results
181
- */
182
- limit: number;
179
+ parsedQuery: WebdaQL.Query;
183
180
  }
184
181
  /**
185
182
  * Event sent when query is resolved
186
183
  */
187
- export interface EventStoreFound extends EventStoreFind {
184
+ export interface EventStoreQueried extends EventStoreQuery {
188
185
  /**
189
186
  * Results from the query
190
187
  */
191
188
  results: CoreModel[];
189
+ /**
190
+ * The next continuation token
191
+ */
192
+ continuationToken: string;
192
193
  }
193
194
  /**
194
195
  * Event sent when object is created via POST request
@@ -296,8 +297,40 @@ export declare type ExposeParameters = {
296
297
  * Do not expose the DELETE
297
298
  */
298
299
  delete?: boolean;
300
+ /**
301
+ * Do not expose the query endpoint
302
+ */
303
+ query?: boolean;
299
304
  };
305
+ /**
306
+ * For confidentiality sometimes you might prefer to expose query through PUT
307
+ * To avoid GET logging
308
+ *
309
+ * @default "GET"
310
+ */
311
+ queryMethod?: "PUT" | "GET";
300
312
  };
313
+ /**
314
+ * Represent a query result on the Store
315
+ */
316
+ export interface StoreFindResult<T> {
317
+ /**
318
+ * Current result objects
319
+ */
320
+ results: T[];
321
+ /**
322
+ * Continuation Token if more results are available
323
+ */
324
+ continuationToken?: string;
325
+ /**
326
+ * Remaining filtering to do as current store cannot filter
327
+ *
328
+ * If `true`, no more filtering is required apart from permissions
329
+ * If `filter === undefined`, a full postquery filtering will happen
330
+ * Otherwise filter.eval while be used on every results
331
+ */
332
+ filter?: WebdaQL.Expression | true;
333
+ }
301
334
  /**
302
335
  * Store parameter
303
336
  */
@@ -315,16 +348,42 @@ export declare class StoreParameters extends ServiceParameters {
315
348
  /**
316
349
  * Expose the service to an urls
317
350
  */
318
- expose?: ExposeParameters | boolean | string;
351
+ expose?: ExposeParameters;
319
352
  /**
320
353
  * Allow to load object that does not have the type data
321
354
  *
322
- * @deprecated 2.0
323
355
  * @default true
324
356
  */
325
357
  strict?: boolean;
358
+ /**
359
+ * Slow query threshold
360
+ *
361
+ * @default 30000
362
+ */
363
+ slowQueryThreshold: number;
326
364
  constructor(params: any, service: Service<any>);
327
365
  }
366
+ export declare type StoreEvents = {
367
+ "Store.PartialUpdated": EventStorePartialUpdated;
368
+ "Store.Save": EventStoreSave;
369
+ "Store.Saved": EventStoreSaved;
370
+ "Store.PatchUpdate": EventStorePatchUpdate;
371
+ "Store.PatchUpdated": EventStorePatchUpdated;
372
+ "Store.Update": EventStoreUpdate;
373
+ "Store.Updated": EventStoreUpdated;
374
+ "Store.Delete": EventStoreDelete;
375
+ "Store.Deleted": EventStoreDeleted;
376
+ "Store.Get": EventStoreGet;
377
+ "Store.Query": EventStoreQuery;
378
+ "Store.Queried": EventStoreQueried;
379
+ "Store.WebCreate": EventStoreWebCreate;
380
+ "Store.Action": EventStoreAction;
381
+ "Store.Actioned": EventStoreActioned;
382
+ "Store.WebUpdate": EventStoreWebUpdate;
383
+ "Store.WebGetNotFound": EventStoreWebGetNotFound;
384
+ "Store.WebGet": EventStoreWebGet;
385
+ "Store.WebDelete": EventStoreWebDelete;
386
+ };
328
387
  /**
329
388
  * A mapping service allow to link two object together
330
389
  *
@@ -367,7 +426,11 @@ export interface MappingService<T = any> {
367
426
  * }
368
427
  * @category CoreServices
369
428
  */
370
- declare abstract class Store<T extends CoreModel = CoreModel, K extends StoreParameters = StoreParameters> extends Service<K> implements ConfigurationProvider, MappingService<T> {
429
+ declare abstract class Store<T extends CoreModel = CoreModel, K extends StoreParameters = StoreParameters, E extends StoreEvents = StoreEvents> extends Service<K, E> implements ConfigurationProvider, MappingService<T> {
430
+ /**
431
+ * Cache store
432
+ */
433
+ _cacheStore: Store<T>;
371
434
  /**
372
435
  * Contain the reverse map
373
436
  */
@@ -391,6 +454,23 @@ declare abstract class Store<T extends CoreModel = CoreModel, K extends StorePar
391
454
  * Contain the model uuid field
392
455
  */
393
456
  protected _uuidField: string;
457
+ /**
458
+ * Add metrics counter
459
+ */
460
+ metrics: {
461
+ save: number;
462
+ update: number;
463
+ partialUpdate: number;
464
+ get: number;
465
+ increment: number;
466
+ delete: number;
467
+ collectionUpsert: number;
468
+ collectionDelete: number;
469
+ attributeDelete: number;
470
+ query: number;
471
+ queryDuration: number;
472
+ slowQueries: number;
473
+ };
394
474
  /**
395
475
  * Load the parameters for a service
396
476
  */
@@ -401,21 +481,43 @@ declare abstract class Store<T extends CoreModel = CoreModel, K extends StorePar
401
481
  * @throws Error if model is not found
402
482
  */
403
483
  computeParameters(): void;
484
+ logSlowQuery(_query: string, _reason: string, _time: number): void;
404
485
  /**
405
486
  * Return Store current model
406
487
  * @returns
407
488
  */
408
489
  getModel(): CoreModelDefinition;
409
490
  getLastUpdateField(): string;
410
- getObject(uid: string): Promise<CoreModel>;
491
+ /**
492
+ * Get From Cache or main
493
+ * @param uid
494
+ * @param raiseIfNotFound
495
+ * @returns
496
+ */
497
+ _getFromCache(uid: string, raiseIfNotFound?: boolean): Promise<T>;
498
+ /**
499
+ * Get object from store
500
+ * @param uid
501
+ * @returns
502
+ */
503
+ getObject(uid: string): Promise<T>;
411
504
  /**
412
505
  * @inheritdoc
413
506
  */
414
507
  initRoutes(): void;
508
+ /**
509
+ * OVerwrite the model
510
+ * Used mainly in test
511
+ */
512
+ setModel(model: CoreModelDefinition): void;
415
513
  /**
416
514
  * Get the url where the store is exposed
417
515
  */
418
516
  getUrl(): string;
517
+ /**
518
+ * We should ignore exception from the store
519
+ */
520
+ cacheStorePatchException(): void;
419
521
  /**
420
522
  * Init a model from the current stored data
421
523
  *
@@ -433,9 +535,22 @@ declare abstract class Store<T extends CoreModel = CoreModel, K extends StorePar
433
535
  * @param store
434
536
  */
435
537
  addReverseMap(prop: string, store: MappingService): void;
436
- incrementAttribute(uid: string, prop: string, value: number): any;
538
+ incrementAttribute(uid: string, prop: string, value: number): Promise<void | any[]>;
437
539
  upsertItemToCollection(uid: string, prop: string, item: any, index?: number, itemWriteCondition?: any, itemWriteConditionField?: string): Promise<void>;
438
540
  deleteItemFromCollection(uid: string, prop: string, index: number, itemWriteCondition: any, itemWriteConditionField?: string): Promise<void>;
541
+ /**
542
+ * Query store with WebdaQL
543
+ * @param query
544
+ * @param context to apply permission
545
+ */
546
+ query(query: string, context?: Context): Promise<{
547
+ results: T[];
548
+ continuationToken?: string;
549
+ }>;
550
+ /**
551
+ * Expose query to http
552
+ */
553
+ protected httpQuery(ctx: Context): Promise<void>;
439
554
  /**
440
555
  * Save an object
441
556
  *
@@ -504,7 +619,7 @@ declare abstract class Store<T extends CoreModel = CoreModel, K extends StorePar
504
619
  * @param uuid
505
620
  * @returns
506
621
  */
507
- cascadeDelete(obj: CoreModel, uuid: string): Promise<any>;
622
+ cascadeDelete(obj: CoreModel, _uuid: string): Promise<any>;
508
623
  /**
509
624
  * Delete an object from the store without condition nor async
510
625
  * @param uid to delete
@@ -525,7 +640,7 @@ declare abstract class Store<T extends CoreModel = CoreModel, K extends StorePar
525
640
  * @param id
526
641
  * @param callback
527
642
  */
528
- canTriggerConfiguration(id: string, callback: () => void): boolean;
643
+ canTriggerConfiguration(_id: string, _callback: () => void): boolean;
529
644
  /**
530
645
  * Provide a way to store configuration in store
531
646
  * @param {string} id
@@ -553,16 +668,9 @@ declare abstract class Store<T extends CoreModel = CoreModel, K extends StorePar
553
668
  */
554
669
  setAttribute(uid: string, property: string, value: any): Promise<void>;
555
670
  /**
556
- * Search inside the store
557
- *
558
- * Still need to define a good abstraction for it
559
- *
560
- * @param request
561
- * @param offset
562
- * @param limit
563
- * @returns
671
+ * @override
564
672
  */
565
- find(request?: any, offset?: number, limit?: number): Promise<any>;
673
+ protected simulateFind(query: WebdaQL.Query, uuids: string[]): Promise<StoreFindResult<T>>;
566
674
  /**
567
675
  * Handle POST
568
676
  * @param ctx
@@ -601,7 +709,10 @@ declare abstract class Store<T extends CoreModel = CoreModel, K extends StorePar
601
709
  * Return the model uuid field
602
710
  */
603
711
  getUuidField(): string;
604
- abstract _find(request: any, offset: any, limit: any): Promise<CoreModel[]>;
712
+ /**
713
+ * Search within the store
714
+ */
715
+ abstract find(query: WebdaQL.Query): Promise<StoreFindResult<T>>;
605
716
  /**
606
717
  * Check if an object exists
607
718
  * @abstract