@webda/core 1.6.0-beta.3 → 2.0.0-beta.2
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/lib/application.d.ts +355 -195
- package/lib/application.js +188 -682
- package/lib/application.js.map +1 -1
- package/lib/application.spec.js +109 -289
- package/lib/application.spec.js.map +1 -1
- package/lib/core.d.ts +150 -215
- package/lib/core.js +188 -71
- package/lib/core.js.map +1 -1
- package/lib/core.spec.js +103 -42
- package/lib/core.spec.js.map +1 -1
- package/lib/index.d.ts +4 -0
- package/lib/index.js +9 -1
- package/lib/index.js.map +1 -1
- package/lib/models/aclmodel.d.ts +3 -1
- package/lib/models/aclmodel.js +6 -3
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/aclmodel.spec.js +10 -5
- package/lib/models/aclmodel.spec.js.map +1 -1
- package/lib/models/coremodel.d.ts +86 -24
- package/lib/models/coremodel.js +85 -36
- package/lib/models/coremodel.js.map +1 -1
- package/lib/models/coremodel.spec.js +21 -2
- package/lib/models/coremodel.spec.js.map +1 -1
- package/lib/models/ident.d.ts +7 -5
- package/lib/models/ident.js +2 -1
- package/lib/models/ident.js.map +1 -1
- package/lib/models/ident.spec.js +1 -1
- package/lib/models/ident.spec.js.map +1 -1
- package/lib/models/ownermodel.d.ts +18 -4
- package/lib/models/ownermodel.js +24 -4
- package/lib/models/ownermodel.js.map +1 -1
- package/lib/models/ownermodel.spec.js +18 -1
- package/lib/models/ownermodel.spec.js.map +1 -1
- package/lib/models/rolemodel.js.map +1 -1
- package/lib/models/rolemodel.spec.js +5 -2
- package/lib/models/rolemodel.spec.js.map +1 -1
- package/lib/models/user.d.ts +7 -6
- package/lib/models/user.js +2 -1
- package/lib/models/user.js.map +1 -1
- package/lib/models/user.spec.js +1 -1
- package/lib/models/user.spec.js.map +1 -1
- package/lib/queues/filequeue.d.ts +2 -7
- package/lib/queues/filequeue.js +4 -13
- package/lib/queues/filequeue.js.map +1 -1
- package/lib/queues/filequeue.spec.js +2 -3
- package/lib/queues/filequeue.spec.js.map +1 -1
- package/lib/queues/memoryqueue.d.ts +2 -7
- package/lib/queues/memoryqueue.js +1 -11
- package/lib/queues/memoryqueue.js.map +1 -1
- package/lib/queues/memoryqueue.spec.js +1 -1
- package/lib/queues/memoryqueue.spec.js.map +1 -1
- package/lib/queues/queue.spec.d.ts +1 -1
- package/lib/queues/queue.spec.js +12 -10
- package/lib/queues/queue.spec.js.map +1 -1
- package/lib/queues/queueservice.d.ts +1 -1
- package/lib/queues/queueservice.js +1 -1
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/router.d.ts +52 -2
- package/lib/router.js +80 -51
- package/lib/router.js.map +1 -1
- package/lib/router.spec.js +23 -6
- package/lib/router.spec.js.map +1 -1
- package/lib/services/asyncevents.d.ts +1 -0
- package/lib/services/asyncevents.js +4 -3
- package/lib/services/asyncevents.js.map +1 -1
- package/lib/services/asyncevents.spec.js +2 -2
- package/lib/services/asyncevents.spec.js.map +1 -1
- package/lib/services/authentication.d.ts +39 -11
- package/lib/services/authentication.js +60 -55
- package/lib/services/authentication.js.map +1 -1
- package/lib/services/authentication.spec.js +2 -1
- package/lib/services/authentication.spec.js.map +1 -1
- package/lib/services/binary.d.ts +127 -65
- package/lib/services/binary.js +255 -98
- package/lib/services/binary.js.map +1 -1
- package/lib/services/binary.spec.d.ts +2 -1
- package/lib/services/binary.spec.js +101 -30
- package/lib/services/binary.spec.js.map +1 -1
- package/lib/services/cloudbinary.d.ts +67 -0
- package/lib/services/cloudbinary.js +178 -0
- package/lib/services/cloudbinary.js.map +1 -0
- package/lib/services/cloudbinary.spec.d.ts +13 -0
- package/lib/services/cloudbinary.spec.js +212 -0
- package/lib/services/cloudbinary.spec.js.map +1 -0
- package/lib/services/configuration.d.ts +7 -2
- package/lib/services/configuration.js +6 -5
- package/lib/services/configuration.js.map +1 -1
- package/lib/services/configuration.spec.js +3 -2
- package/lib/services/configuration.spec.js.map +1 -1
- package/lib/services/cron.d.ts +5 -6
- package/lib/services/cron.js +5 -12
- package/lib/services/cron.js.map +1 -1
- package/lib/services/cron.spec.js +3 -4
- package/lib/services/cron.spec.js.map +1 -1
- package/lib/services/debugmailer.d.ts +3 -5
- package/lib/services/debugmailer.js +3 -11
- package/lib/services/debugmailer.js.map +1 -1
- package/lib/services/debugmailer.spec.js +1 -1
- package/lib/services/debugmailer.spec.js.map +1 -1
- package/lib/services/echo.d.ts +3 -7
- package/lib/services/echo.js +1 -11
- package/lib/services/echo.js.map +1 -1
- package/lib/services/echo.spec.js +4 -3
- package/lib/services/echo.spec.js.map +1 -1
- package/lib/services/filebinary.d.ts +45 -16
- package/lib/services/filebinary.js +147 -50
- package/lib/services/filebinary.js.map +1 -1
- package/lib/services/filebinary.spec.d.ts +4 -2
- package/lib/services/filebinary.spec.js +50 -12
- package/lib/services/filebinary.spec.js.map +1 -1
- package/lib/services/fileconfiguration.d.ts +1 -5
- package/lib/services/fileconfiguration.js +3 -12
- package/lib/services/fileconfiguration.js.map +1 -1
- package/lib/services/fileconfiguration.spec.js +2 -2
- package/lib/services/fileconfiguration.spec.js.map +1 -1
- package/lib/services/invitationservice.d.ts +28 -4
- package/lib/services/invitationservice.js +9 -6
- package/lib/services/invitationservice.js.map +1 -1
- package/lib/services/invitationservice.spec.js +4 -3
- package/lib/services/invitationservice.spec.js.map +1 -1
- package/lib/services/kubernetesconfiguration.d.ts +3 -5
- package/lib/services/kubernetesconfiguration.js +7 -14
- package/lib/services/kubernetesconfiguration.js.map +1 -1
- package/lib/services/kubernetesconfiguration.spec.js +5 -5
- package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
- package/lib/services/mailer.d.ts +1 -5
- package/lib/services/mailer.js +1 -10
- package/lib/services/mailer.js.map +1 -1
- package/lib/services/mailer.spec.js +3 -3
- package/lib/services/mailer.spec.js.map +1 -1
- package/lib/services/notificationservice.d.ts +2 -0
- package/lib/services/notificationservice.js +2 -0
- package/lib/services/notificationservice.js.map +1 -1
- package/lib/services/notificationservice.spec.js +2 -2
- package/lib/services/notificationservice.spec.js.map +1 -1
- package/lib/services/oauth.d.ts +8 -6
- package/lib/services/oauth.js +30 -14
- package/lib/services/oauth.js.map +1 -1
- package/lib/services/oauth.spec.js +11 -10
- package/lib/services/oauth.spec.js.map +1 -1
- package/lib/services/resource.d.ts +18 -5
- package/lib/services/resource.js +42 -23
- package/lib/services/resource.js.map +1 -1
- package/lib/services/resource.spec.js +4 -4
- package/lib/services/resource.spec.js.map +1 -1
- package/lib/services/service.d.ts +25 -25
- package/lib/services/service.js +21 -25
- package/lib/services/service.js.map +1 -1
- package/lib/services/service.spec.js +2 -2
- package/lib/services/service.spec.js.map +1 -1
- package/lib/services/version.d.ts +2 -5
- package/lib/services/version.js +1 -10
- package/lib/services/version.js.map +1 -1
- package/lib/services/version.spec.js +1 -1
- package/lib/services/version.spec.js.map +1 -1
- package/lib/stores/aggregator.d.ts +3 -5
- package/lib/stores/aggregator.js +3 -10
- package/lib/stores/aggregator.js.map +1 -1
- package/lib/stores/file.d.ts +15 -8
- package/lib/stores/file.js +21 -18
- package/lib/stores/file.js.map +1 -1
- package/lib/stores/file.spec.d.ts +3 -1
- package/lib/stores/file.spec.js +32 -8
- package/lib/stores/file.spec.js.map +1 -1
- package/lib/stores/mapper.d.ts +1 -5
- package/lib/stores/mapper.js +5 -13
- package/lib/stores/mapper.js.map +1 -1
- package/lib/stores/mapper.spec.js +2 -2
- package/lib/stores/mapper.spec.js.map +1 -1
- package/lib/stores/memory.d.ts +5 -9
- package/lib/stores/memory.js +5 -17
- package/lib/stores/memory.js.map +1 -1
- package/lib/stores/memory.spec.d.ts +2 -1
- package/lib/stores/memory.spec.js +36 -4
- package/lib/stores/memory.spec.js.map +1 -1
- package/lib/stores/store.d.ts +142 -29
- package/lib/stores/store.js +451 -82
- package/lib/stores/store.js.map +1 -1
- package/lib/stores/store.spec.d.ts +31 -4
- package/lib/stores/store.spec.js +206 -35
- package/lib/stores/store.spec.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLLexer.d.ts +53 -0
- package/lib/stores/webdaql/WebdaQLLexer.js +290 -0
- package/lib/stores/webdaql/WebdaQLLexer.js.map +1 -0
- package/lib/stores/webdaql/WebdaQLParserLexer.d.ts +53 -0
- package/lib/stores/webdaql/WebdaQLParserLexer.js +290 -0
- package/lib/stores/webdaql/WebdaQLParserLexer.js.map +1 -0
- package/lib/stores/webdaql/WebdaQLParserListener.d.ts +284 -0
- package/lib/stores/webdaql/WebdaQLParserListener.js +4 -0
- package/lib/stores/webdaql/WebdaQLParserListener.js.map +1 -0
- package/lib/stores/webdaql/WebdaQLParserParser.d.ts +301 -0
- package/lib/stores/webdaql/WebdaQLParserParser.js +1781 -0
- package/lib/stores/webdaql/WebdaQLParserParser.js.map +1 -0
- package/lib/stores/webdaql/WebdaQLParserVisitor.d.ts +174 -0
- package/lib/stores/webdaql/WebdaQLParserVisitor.js +4 -0
- package/lib/stores/webdaql/WebdaQLParserVisitor.js.map +1 -0
- package/lib/stores/webdaql/query.d.ts +300 -0
- package/lib/stores/webdaql/query.js +471 -0
- package/lib/stores/webdaql/query.js.map +1 -0
- package/lib/stores/webdaql/query.spec.d.ts +1 -0
- package/lib/stores/webdaql/query.spec.js +136 -0
- package/lib/stores/webdaql/query.spec.js.map +1 -0
- package/lib/test.d.ts +54 -9
- package/lib/test.js +139 -25
- package/lib/test.js.map +1 -1
- package/lib/unpackedapplication.d.ts +66 -0
- package/lib/unpackedapplication.js +219 -0
- package/lib/unpackedapplication.js.map +1 -0
- package/lib/utils/abstractdeployer.spec.js +1 -1
- package/lib/utils/abstractdeployer.spec.js.map +1 -1
- package/lib/utils/context.d.ts +17 -58
- package/lib/utils/context.js +33 -124
- package/lib/utils/context.js.map +1 -1
- package/lib/utils/context.spec.js +52 -28
- package/lib/utils/context.spec.js.map +1 -1
- package/lib/utils/cookie.d.ts +6 -3
- package/lib/utils/cookie.js +9 -5
- package/lib/utils/cookie.js.map +1 -1
- package/lib/utils/cookie.spec.js +5 -5
- package/lib/utils/cookie.spec.js.map +1 -1
- package/lib/utils/httpcontext.d.ts +182 -0
- package/lib/utils/httpcontext.js +325 -0
- package/lib/utils/httpcontext.js.map +1 -0
- package/lib/utils/httpcontext.spec.d.ts +5 -0
- package/lib/utils/httpcontext.spec.js +90 -0
- package/lib/utils/httpcontext.spec.js.map +1 -0
- package/lib/utils/logger.d.ts +18 -5
- package/lib/utils/logger.js +17 -4
- package/lib/utils/logger.js.map +1 -1
- package/lib/utils/logger.spec.js.map +1 -1
- package/lib/utils/serializers.js +5 -1
- package/lib/utils/serializers.js.map +1 -1
- package/lib/utils/serializers.spec.js +3 -3
- package/lib/utils/serializers.spec.js.map +1 -1
- package/lib/utils/waiter.d.ts +1 -1
- package/lib/utils/waiter.js.map +1 -1
- package/lib/utils/waiter.spec.js +2 -2
- package/lib/utils/waiter.spec.js.map +1 -1
- package/package.json +25 -18
- package/test/config-file-no-reload.json +2 -1
- package/test/config-file-reload.json +2 -1
- package/test/config-kube-reload.json +2 -1
- package/test/config-reload.json +1 -1
- package/test/config.json +8 -11
- package/test/config.old.json +1 -1
- package/test/moddas/annotatedservice.js +1 -3
- package/test/moddas/debugmailer.js +2 -7
- package/test/moddas/fakeservice.js +1 -1
- package/test/moddas/voidstore.js +2 -4
- package/test/models/ident.js +1 -1
- package/test/models/task.js +1 -6
- package/webda.module.json +1124 -0
- package/test/config.old-default.json +0 -151
|
@@ -16,11 +16,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
16
16
|
};
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.MemoryStoreTest = void 0;
|
|
19
|
-
const store_spec_1 = require("./store.spec");
|
|
20
|
-
const assert = require("assert");
|
|
21
19
|
const mocha_1 = require("@testdeck/mocha");
|
|
22
|
-
const
|
|
20
|
+
const assert = require("assert");
|
|
21
|
+
const httpcontext_1 = require("../utils/httpcontext");
|
|
23
22
|
const store_1 = require("./store");
|
|
23
|
+
const store_spec_1 = require("./store.spec");
|
|
24
|
+
const query_1 = require("./webdaql/query");
|
|
24
25
|
let MemoryStoreTest = class MemoryStoreTest extends store_spec_1.StoreTest {
|
|
25
26
|
getIdentStore() {
|
|
26
27
|
// Need to slow down the _get
|
|
@@ -50,7 +51,7 @@ let MemoryStoreTest = class MemoryStoreTest extends store_spec_1.StoreTest {
|
|
|
50
51
|
deleteAsyncHttp() {
|
|
51
52
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52
53
|
let executor, ctx;
|
|
53
|
-
ctx = yield this.webda.newContext(new
|
|
54
|
+
ctx = yield this.webda.newContext(new httpcontext_1.HttpContext("test.webda.io", "GET", "/memory/idents/ToDelete"));
|
|
54
55
|
let identStore = this.getIdentStore();
|
|
55
56
|
yield identStore.save({
|
|
56
57
|
uuid: "toDelete",
|
|
@@ -69,6 +70,34 @@ let MemoryStoreTest = class MemoryStoreTest extends store_spec_1.StoreTest {
|
|
|
69
70
|
assert.strictEqual(identStore._getSync("notFound"), null);
|
|
70
71
|
});
|
|
71
72
|
}
|
|
73
|
+
queryAdditional() {
|
|
74
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
75
|
+
let userStore = yield this.fillForQuery();
|
|
76
|
+
// Verify permission issue and half pagination
|
|
77
|
+
userStore.setModel(store_spec_1.PermissionModel);
|
|
78
|
+
// Return undefined as filter to trigger the warning
|
|
79
|
+
let find = userStore.find;
|
|
80
|
+
userStore.find = (query) => __awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
let res = yield find.bind(userStore)({
|
|
82
|
+
filter: new query_1.WebdaQL.AndExpression([]),
|
|
83
|
+
continuationToken: query.continuationToken,
|
|
84
|
+
limit: query.limit
|
|
85
|
+
});
|
|
86
|
+
return Object.assign(Object.assign({}, res), { filter: undefined });
|
|
87
|
+
});
|
|
88
|
+
let context = yield this.newContext();
|
|
89
|
+
// Verify pagination system
|
|
90
|
+
let res, offset;
|
|
91
|
+
let total = 0;
|
|
92
|
+
do {
|
|
93
|
+
res = yield userStore.query(`state = 'CA' LIMIT 100 ${offset ? 'OFFSET "' + offset + '"' : ""}`, context);
|
|
94
|
+
offset = res.continuationToken;
|
|
95
|
+
total += res.results.length;
|
|
96
|
+
} while (offset);
|
|
97
|
+
assert.strictEqual(total, 100);
|
|
98
|
+
return userStore;
|
|
99
|
+
});
|
|
100
|
+
}
|
|
72
101
|
initRoutes() {
|
|
73
102
|
// cov
|
|
74
103
|
let identStore = this.getIdentStore();
|
|
@@ -104,6 +133,9 @@ let MemoryStoreTest = class MemoryStoreTest extends store_spec_1.StoreTest {
|
|
|
104
133
|
__decorate([
|
|
105
134
|
mocha_1.test
|
|
106
135
|
], MemoryStoreTest.prototype, "deleteAsyncHttp", null);
|
|
136
|
+
__decorate([
|
|
137
|
+
mocha_1.test
|
|
138
|
+
], MemoryStoreTest.prototype, "queryAdditional", null);
|
|
107
139
|
__decorate([
|
|
108
140
|
mocha_1.test
|
|
109
141
|
], MemoryStoreTest.prototype, "initRoutes", null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.spec.js","sourceRoot":"","sources":["../../src/stores/memory.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"memory.spec.js","sourceRoot":"","sources":["../../src/stores/memory.spec.ts"],"names":[],"mappings":"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"}
|
package/lib/stores/store.d.ts
CHANGED
|
@@ -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
|
|
167
|
+
export interface EventStoreQuery {
|
|
167
168
|
/**
|
|
168
169
|
* Request sent
|
|
169
170
|
*/
|
|
170
|
-
|
|
171
|
+
query: string;
|
|
171
172
|
/**
|
|
172
173
|
* Emitting store
|
|
173
174
|
*/
|
|
174
175
|
store: Store;
|
|
175
176
|
/**
|
|
176
|
-
*
|
|
177
|
+
* The parsed query by our grammar
|
|
177
178
|
*/
|
|
178
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
*
|
|
@@ -445,7 +560,7 @@ declare abstract class Store<T extends CoreModel = CoreModel, K extends StorePar
|
|
|
445
560
|
*
|
|
446
561
|
* Might want to rename to create
|
|
447
562
|
*/
|
|
448
|
-
save(object: any, ctx?: Context): Promise<
|
|
563
|
+
save(object: any, ctx?: Context): Promise<T>;
|
|
449
564
|
/**
|
|
450
565
|
* Patch an object
|
|
451
566
|
*
|
|
@@ -453,7 +568,7 @@ declare abstract class Store<T extends CoreModel = CoreModel, K extends StorePar
|
|
|
453
568
|
* @param reverseMap
|
|
454
569
|
* @returns
|
|
455
570
|
*/
|
|
456
|
-
patch(object: any, reverseMap?: boolean): Promise<
|
|
571
|
+
patch(object: any, reverseMap?: boolean): Promise<T | undefined>;
|
|
457
572
|
/**
|
|
458
573
|
* Check if an UpdateCondition is met
|
|
459
574
|
* @param model
|
|
@@ -484,11 +599,13 @@ declare abstract class Store<T extends CoreModel = CoreModel, K extends StorePar
|
|
|
484
599
|
/**
|
|
485
600
|
* Update an object
|
|
486
601
|
*
|
|
602
|
+
* If no attribute can be updated then return undefined
|
|
603
|
+
*
|
|
487
604
|
* @param {Object} Object to save
|
|
488
605
|
* @param {Boolean} reverseMap internal use only, for disable map resolution
|
|
489
606
|
* @return {Promise} with saved object
|
|
490
607
|
*/
|
|
491
|
-
update(object: any, reverseMap?: boolean, partial?: boolean): Promise<
|
|
608
|
+
update(object: any, reverseMap?: boolean, partial?: boolean): Promise<T | undefined>;
|
|
492
609
|
/**
|
|
493
610
|
* Remove an attribute from an object
|
|
494
611
|
*
|
|
@@ -504,7 +621,7 @@ declare abstract class Store<T extends CoreModel = CoreModel, K extends StorePar
|
|
|
504
621
|
* @param uuid
|
|
505
622
|
* @returns
|
|
506
623
|
*/
|
|
507
|
-
cascadeDelete(obj: CoreModel,
|
|
624
|
+
cascadeDelete(obj: CoreModel, _uuid: string): Promise<any>;
|
|
508
625
|
/**
|
|
509
626
|
* Delete an object from the store without condition nor async
|
|
510
627
|
* @param uid to delete
|
|
@@ -525,7 +642,7 @@ declare abstract class Store<T extends CoreModel = CoreModel, K extends StorePar
|
|
|
525
642
|
* @param id
|
|
526
643
|
* @param callback
|
|
527
644
|
*/
|
|
528
|
-
canTriggerConfiguration(
|
|
645
|
+
canTriggerConfiguration(_id: string, _callback: () => void): boolean;
|
|
529
646
|
/**
|
|
530
647
|
* Provide a way to store configuration in store
|
|
531
648
|
* @param {string} id
|
|
@@ -553,16 +670,9 @@ declare abstract class Store<T extends CoreModel = CoreModel, K extends StorePar
|
|
|
553
670
|
*/
|
|
554
671
|
setAttribute(uid: string, property: string, value: any): Promise<void>;
|
|
555
672
|
/**
|
|
556
|
-
*
|
|
557
|
-
*
|
|
558
|
-
* Still need to define a good abstraction for it
|
|
559
|
-
*
|
|
560
|
-
* @param request
|
|
561
|
-
* @param offset
|
|
562
|
-
* @param limit
|
|
563
|
-
* @returns
|
|
673
|
+
* @override
|
|
564
674
|
*/
|
|
565
|
-
|
|
675
|
+
protected simulateFind(query: WebdaQL.Query, uuids: string[]): Promise<StoreFindResult<T>>;
|
|
566
676
|
/**
|
|
567
677
|
* Handle POST
|
|
568
678
|
* @param ctx
|
|
@@ -601,7 +711,10 @@ declare abstract class Store<T extends CoreModel = CoreModel, K extends StorePar
|
|
|
601
711
|
* Return the model uuid field
|
|
602
712
|
*/
|
|
603
713
|
getUuidField(): string;
|
|
604
|
-
|
|
714
|
+
/**
|
|
715
|
+
* Search within the store
|
|
716
|
+
*/
|
|
717
|
+
abstract find(query: WebdaQL.Query): Promise<StoreFindResult<T>>;
|
|
605
718
|
/**
|
|
606
719
|
* Check if an object exists
|
|
607
720
|
* @abstract
|