@webda/core 2.0.0-beta.1 → 2.0.0
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 +9 -21
- package/lib/application.js +71 -84
- package/lib/application.js.map +1 -1
- package/lib/application.spec.js +121 -140
- package/lib/application.spec.js.map +1 -1
- package/lib/core.d.ts +86 -46
- package/lib/core.js +254 -316
- package/lib/core.js.map +1 -1
- package/lib/core.spec.js +326 -391
- package/lib/core.spec.js.map +1 -1
- package/lib/index.d.ts +49 -45
- package/lib/index.js +54 -67
- package/lib/index.js.map +1 -1
- package/lib/models/aclmodel.d.ts +2 -2
- package/lib/models/aclmodel.js +63 -90
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/aclmodel.spec.js +127 -151
- package/lib/models/aclmodel.spec.js.map +1 -1
- package/lib/models/coremodel.d.ts +84 -11
- package/lib/models/coremodel.js +104 -103
- package/lib/models/coremodel.js.map +1 -1
- package/lib/models/coremodel.spec.js +91 -91
- package/lib/models/coremodel.spec.js.map +1 -1
- package/lib/models/deployment.js +1 -2
- package/lib/models/ident.d.ts +5 -3
- package/lib/models/ident.js +4 -9
- package/lib/models/ident.js.map +1 -1
- package/lib/models/ident.spec.js +9 -11
- package/lib/models/ident.spec.js.map +1 -1
- package/lib/models/ownermodel.d.ts +12 -2
- package/lib/models/ownermodel.js +54 -62
- package/lib/models/ownermodel.js.map +1 -1
- package/lib/models/ownermodel.spec.js +129 -152
- package/lib/models/ownermodel.spec.js.map +1 -1
- package/lib/models/rolemodel.d.ts +2 -2
- package/lib/models/rolemodel.js +24 -40
- package/lib/models/rolemodel.js.map +1 -1
- package/lib/models/rolemodel.spec.js +44 -61
- package/lib/models/rolemodel.spec.js.map +1 -1
- package/lib/models/user.d.ts +5 -5
- package/lib/models/user.js +3 -8
- package/lib/models/user.js.map +1 -1
- package/lib/models/user.spec.js +14 -16
- package/lib/models/user.spec.js.map +1 -1
- package/lib/queues/filequeue.d.ts +2 -2
- package/lib/queues/filequeue.js +72 -93
- package/lib/queues/filequeue.js.map +1 -1
- package/lib/queues/filequeue.spec.js +53 -70
- package/lib/queues/filequeue.spec.js.map +1 -1
- package/lib/queues/memoryqueue.d.ts +2 -2
- package/lib/queues/memoryqueue.js +37 -61
- package/lib/queues/memoryqueue.js.map +1 -1
- package/lib/queues/memoryqueue.spec.js +142 -165
- package/lib/queues/memoryqueue.spec.js.map +1 -1
- package/lib/queues/pubsubservice.d.ts +2 -2
- package/lib/queues/pubsubservice.js +3 -7
- package/lib/queues/pubsubservice.js.map +1 -1
- package/lib/queues/queue.spec.d.ts +1 -1
- package/lib/queues/queue.spec.js +42 -56
- package/lib/queues/queue.spec.js.map +1 -1
- package/lib/queues/queueservice.d.ts +4 -4
- package/lib/queues/queueservice.js +52 -67
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/router.d.ts +7 -3
- package/lib/router.js +49 -48
- package/lib/router.js.map +1 -1
- package/lib/router.spec.js +64 -61
- package/lib/router.spec.js.map +1 -1
- package/lib/services/asyncevents.d.ts +2 -2
- package/lib/services/asyncevents.js +44 -64
- package/lib/services/asyncevents.js.map +1 -1
- package/lib/services/asyncevents.spec.js +81 -98
- package/lib/services/asyncevents.spec.js.map +1 -1
- package/lib/services/authentication.d.ts +28 -19
- package/lib/services/authentication.js +539 -571
- package/lib/services/authentication.js.map +1 -1
- package/lib/services/authentication.spec.js +411 -447
- package/lib/services/authentication.spec.js.map +1 -1
- package/lib/services/binary.d.ts +8 -6
- package/lib/services/binary.js +212 -244
- package/lib/services/binary.js.map +1 -1
- package/lib/services/binary.spec.d.ts +3 -3
- package/lib/services/binary.spec.js +390 -443
- package/lib/services/binary.spec.js.map +1 -1
- package/lib/services/cloudbinary.d.ts +3 -3
- package/lib/services/cloudbinary.js +46 -71
- package/lib/services/cloudbinary.js.map +1 -1
- package/lib/services/cloudbinary.spec.d.ts +3 -3
- package/lib/services/cloudbinary.spec.js +133 -162
- package/lib/services/cloudbinary.spec.js.map +1 -1
- package/lib/services/configuration.d.ts +6 -3
- package/lib/services/configuration.js +78 -103
- package/lib/services/configuration.js.map +1 -1
- package/lib/services/configuration.spec.js +63 -83
- package/lib/services/configuration.spec.js.map +1 -1
- package/lib/services/cron.d.ts +3 -2
- package/lib/services/cron.js +9 -13
- package/lib/services/cron.js.map +1 -1
- package/lib/services/cron.spec.js +18 -21
- package/lib/services/cron.spec.js.map +1 -1
- package/lib/services/cryptoservice.d.ts +258 -0
- package/lib/services/cryptoservice.js +312 -0
- package/lib/services/cryptoservice.js.map +1 -0
- package/lib/services/cryptoservice.spec.d.ts +1 -0
- package/lib/services/cryptoservice.spec.js +137 -0
- package/lib/services/cryptoservice.spec.js.map +1 -0
- package/lib/services/debugmailer.d.ts +1 -1
- package/lib/services/debugmailer.js +13 -34
- package/lib/services/debugmailer.js.map +1 -1
- package/lib/services/debugmailer.spec.js +16 -29
- package/lib/services/debugmailer.spec.js.map +1 -1
- package/lib/services/echo.d.ts +2 -2
- package/lib/services/echo.js +15 -31
- package/lib/services/echo.js.map +1 -1
- package/lib/services/echo.spec.js +27 -40
- package/lib/services/echo.spec.js.map +1 -1
- package/lib/services/filebinary.d.ts +15 -5
- package/lib/services/filebinary.js +171 -200
- package/lib/services/filebinary.js.map +1 -1
- package/lib/services/filebinary.spec.d.ts +2 -1
- package/lib/services/filebinary.spec.js +106 -117
- package/lib/services/filebinary.spec.js.map +1 -1
- package/lib/services/fileconfiguration.d.ts +2 -2
- package/lib/services/fileconfiguration.js +25 -43
- package/lib/services/fileconfiguration.js.map +1 -1
- package/lib/services/fileconfiguration.spec.js +79 -109
- package/lib/services/fileconfiguration.spec.js.map +1 -1
- package/lib/services/invitationservice.d.ts +9 -9
- package/lib/services/invitationservice.js +275 -313
- package/lib/services/invitationservice.js.map +1 -1
- package/lib/services/invitationservice.spec.js +442 -448
- package/lib/services/invitationservice.spec.js.map +1 -1
- package/lib/services/kubernetesconfiguration.d.ts +2 -2
- package/lib/services/kubernetesconfiguration.js +41 -59
- package/lib/services/kubernetesconfiguration.js.map +1 -1
- package/lib/services/kubernetesconfiguration.spec.js +80 -98
- package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
- package/lib/services/mailer.d.ts +4 -4
- package/lib/services/mailer.js +62 -86
- package/lib/services/mailer.js.map +1 -1
- package/lib/services/mailer.spec.js +86 -127
- package/lib/services/mailer.spec.js.map +1 -1
- package/lib/services/notificationservice.d.ts +4 -4
- package/lib/services/notificationservice.js +23 -42
- package/lib/services/notificationservice.js.map +1 -1
- package/lib/services/notificationservice.spec.js +47 -73
- package/lib/services/notificationservice.spec.js.map +1 -1
- package/lib/services/oauth.d.ts +32 -6
- package/lib/services/oauth.js +73 -78
- package/lib/services/oauth.js.map +1 -1
- package/lib/services/oauth.spec.js +128 -147
- package/lib/services/oauth.spec.js.map +1 -1
- package/lib/services/proxy.d.ts +74 -0
- package/lib/services/proxy.js +126 -0
- package/lib/services/proxy.js.map +1 -0
- package/lib/services/proxy.spec.d.ts +1 -0
- package/lib/services/proxy.spec.js +59 -0
- package/lib/services/proxy.spec.js.map +1 -0
- package/lib/services/resource.d.ts +2 -2
- package/lib/services/resource.js +12 -18
- package/lib/services/resource.js.map +1 -1
- package/lib/services/resource.spec.js +67 -99
- package/lib/services/resource.spec.js.map +1 -1
- package/lib/services/service.d.ts +33 -7
- package/lib/services/service.js +74 -42
- package/lib/services/service.js.map +1 -1
- package/lib/services/service.spec.js +62 -67
- package/lib/services/service.spec.js.map +1 -1
- package/lib/services/version.d.ts +1 -1
- package/lib/services/version.js +3 -8
- package/lib/services/version.js.map +1 -1
- package/lib/services/version.spec.js +11 -24
- package/lib/services/version.spec.js.map +1 -1
- package/lib/stores/aggregator.d.ts +3 -3
- package/lib/stores/aggregator.js +37 -57
- package/lib/stores/aggregator.js.map +1 -1
- package/lib/stores/file.d.ts +3 -3
- package/lib/stores/file.js +93 -131
- package/lib/stores/file.js.map +1 -1
- package/lib/stores/file.spec.d.ts +2 -2
- package/lib/stores/file.spec.js +261 -289
- package/lib/stores/file.spec.js.map +1 -1
- package/lib/stores/mapper.d.ts +4 -4
- package/lib/stores/mapper.js +112 -137
- package/lib/stores/mapper.js.map +1 -1
- package/lib/stores/mapper.spec.js +131 -150
- package/lib/stores/mapper.spec.js.map +1 -1
- package/lib/stores/memory.d.ts +67 -6
- package/lib/stores/memory.js +155 -117
- package/lib/stores/memory.js.map +1 -1
- package/lib/stores/memory.spec.d.ts +3 -2
- package/lib/stores/memory.spec.js +127 -105
- package/lib/stores/memory.spec.js.map +1 -1
- package/lib/stores/store.d.ts +35 -15
- package/lib/stores/store.js +839 -821
- package/lib/stores/store.js.map +1 -1
- package/lib/stores/store.spec.d.ts +6 -4
- package/lib/stores/store.spec.js +627 -647
- package/lib/stores/store.spec.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLLexer.d.ts +4 -4
- package/lib/stores/webdaql/WebdaQLLexer.js +9 -13
- package/lib/stores/webdaql/WebdaQLLexer.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserLexer.d.ts +4 -4
- package/lib/stores/webdaql/WebdaQLParserLexer.js +9 -13
- package/lib/stores/webdaql/WebdaQLParserLexer.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserListener.d.ts +2 -2
- package/lib/stores/webdaql/WebdaQLParserListener.js +1 -2
- package/lib/stores/webdaql/WebdaQLParserListener.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserParser.d.ts +10 -10
- package/lib/stores/webdaql/WebdaQLParserParser.js +62 -91
- package/lib/stores/webdaql/WebdaQLParserParser.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserVisitor.d.ts +2 -2
- package/lib/stores/webdaql/WebdaQLParserVisitor.js +1 -2
- package/lib/stores/webdaql/WebdaQLParserVisitor.js.map +1 -1
- package/lib/stores/webdaql/query.d.ts +4 -5
- package/lib/stores/webdaql/query.js +16 -19
- package/lib/stores/webdaql/query.js.map +1 -1
- package/lib/stores/webdaql/query.spec.js +30 -32
- package/lib/stores/webdaql/query.spec.js.map +1 -1
- package/lib/test.d.ts +3 -3
- package/lib/test.js +74 -94
- package/lib/test.js.map +1 -1
- package/lib/unpackedapplication.d.ts +1 -1
- package/lib/unpackedapplication.js +25 -31
- package/lib/unpackedapplication.js.map +1 -1
- package/lib/utils/abstractdeployer.js +1 -5
- package/lib/utils/abstractdeployer.js.map +1 -1
- package/lib/utils/abstractdeployer.spec.js +6 -8
- package/lib/utils/abstractdeployer.spec.js.map +1 -1
- package/lib/utils/context.d.ts +61 -29
- package/lib/utils/context.js +133 -127
- package/lib/utils/context.js.map +1 -1
- package/lib/utils/context.spec.js +147 -153
- package/lib/utils/context.spec.js.map +1 -1
- package/lib/utils/cookie.d.ts +66 -45
- package/lib/utils/cookie.js +69 -158
- package/lib/utils/cookie.js.map +1 -1
- package/lib/utils/cookie.spec.js +220 -238
- package/lib/utils/cookie.spec.js.map +1 -1
- package/lib/utils/esm.d.ts +4 -0
- package/lib/utils/esm.js +10 -0
- package/lib/utils/esm.js.map +1 -0
- package/lib/utils/httpcontext.d.ts +37 -9
- package/lib/utils/httpcontext.js +86 -57
- package/lib/utils/httpcontext.js.map +1 -1
- package/lib/utils/httpcontext.spec.js +37 -48
- package/lib/utils/httpcontext.spec.js.map +1 -1
- package/lib/utils/logger.d.ts +2 -2
- package/lib/utils/logger.js +15 -28
- package/lib/utils/logger.js.map +1 -1
- package/lib/utils/logger.spec.js +9 -11
- package/lib/utils/logger.spec.js.map +1 -1
- package/lib/utils/serializers.js +17 -20
- package/lib/utils/serializers.js.map +1 -1
- package/lib/utils/serializers.spec.js +43 -44
- package/lib/utils/serializers.spec.js.map +1 -1
- package/lib/utils/session.d.ts +120 -0
- package/lib/utils/session.js +155 -0
- package/lib/utils/session.js.map +1 -0
- package/lib/utils/session.spec.d.ts +1 -0
- package/lib/utils/session.spec.js +66 -0
- package/lib/utils/session.spec.js.map +1 -0
- package/lib/utils/waiter.d.ts +1 -1
- package/lib/utils/waiter.js +32 -52
- package/lib/utils/waiter.js.map +1 -1
- package/lib/utils/waiter.spec.js +75 -92
- package/lib/utils/waiter.spec.js.map +1 -1
- package/package.json +22 -14
- package/test/config-invitation.json +1 -3
- package/test/config.json +3 -3
- package/test/config.old.json +1 -2
- package/test/moddas/annotatedservice.js +5 -5
- package/test/moddas/debugmailer.js +2 -3
- package/test/moddas/fakeservice.js +2 -3
- package/test/moddas/voidstore.js +6 -4
- package/test/models/ident.js +2 -6
- package/test/models/task.js +3 -7
- package/test/package.json +2 -1
- package/webda.module.json +956 -188
package/lib/models/coremodel.js
CHANGED
|
@@ -1,33 +1,20 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.CoreModel = exports.NotEnumerable = exports.CoreModelUnattachedError = void 0;
|
|
19
|
-
const uuid_1 = require("uuid");
|
|
20
|
-
const context_1 = require("../utils/context");
|
|
7
|
+
import { v4 as uuidv4 } from "uuid";
|
|
8
|
+
import { Context } from "../utils/context.js";
|
|
21
9
|
/**
|
|
22
10
|
* Sent if action required attached CoreModel is trigger
|
|
23
11
|
*/
|
|
24
|
-
class CoreModelUnattachedError extends Error {
|
|
12
|
+
export class CoreModelUnattachedError extends Error {
|
|
25
13
|
constructor() {
|
|
26
14
|
super("No store linked to this object");
|
|
27
15
|
}
|
|
28
16
|
}
|
|
29
|
-
|
|
30
|
-
function NotEnumerable(target, propertyKey) {
|
|
17
|
+
export function NotEnumerable(target, propertyKey) {
|
|
31
18
|
Object.defineProperty(target, propertyKey, {
|
|
32
19
|
set(value) {
|
|
33
20
|
Object.defineProperty(this, propertyKey, {
|
|
@@ -39,7 +26,6 @@ function NotEnumerable(target, propertyKey) {
|
|
|
39
26
|
configurable: true
|
|
40
27
|
});
|
|
41
28
|
}
|
|
42
|
-
exports.NotEnumerable = NotEnumerable;
|
|
43
29
|
/**
|
|
44
30
|
* Basic Object in Webda
|
|
45
31
|
*
|
|
@@ -69,6 +55,7 @@ class CoreModel {
|
|
|
69
55
|
*/
|
|
70
56
|
setUuid(uuid, target = this) {
|
|
71
57
|
target[this.__class.getUuidField()] = uuid;
|
|
58
|
+
return target;
|
|
72
59
|
}
|
|
73
60
|
/**
|
|
74
61
|
* Get actions callable on an object
|
|
@@ -78,14 +65,21 @@ class CoreModel {
|
|
|
78
65
|
static getActions() {
|
|
79
66
|
return {};
|
|
80
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Return the expressable query for permission
|
|
70
|
+
*
|
|
71
|
+
* @param context of the query
|
|
72
|
+
* @returns
|
|
73
|
+
*/
|
|
74
|
+
static getPermissionQuery(_ctx) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
81
77
|
/**
|
|
82
78
|
* By default nothing is permitted on a CoreModel
|
|
83
79
|
* @returns
|
|
84
80
|
*/
|
|
85
|
-
canAct(_ctx, _action) {
|
|
86
|
-
|
|
87
|
-
throw 403;
|
|
88
|
-
});
|
|
81
|
+
async canAct(_ctx, _action) {
|
|
82
|
+
throw 403;
|
|
89
83
|
}
|
|
90
84
|
/**
|
|
91
85
|
* Get the UUID property
|
|
@@ -105,6 +99,13 @@ class CoreModel {
|
|
|
105
99
|
static getCreationField() {
|
|
106
100
|
return "_creationDate";
|
|
107
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Create an object
|
|
104
|
+
* @returns
|
|
105
|
+
*/
|
|
106
|
+
static factory(model, object, context) {
|
|
107
|
+
return new model().setContext(context).load(object, context === undefined);
|
|
108
|
+
}
|
|
108
109
|
/**
|
|
109
110
|
* Return if an object is attached to its store
|
|
110
111
|
*/
|
|
@@ -116,6 +117,34 @@ class CoreModel {
|
|
|
116
117
|
*/
|
|
117
118
|
attach(store) {
|
|
118
119
|
this.__store = store;
|
|
120
|
+
return this;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Return a unique reference within the application to the object
|
|
124
|
+
*
|
|
125
|
+
* It contains the Store containing it
|
|
126
|
+
* @returns
|
|
127
|
+
*/
|
|
128
|
+
getFullUuid() {
|
|
129
|
+
if (!this.isAttached()) {
|
|
130
|
+
throw new Error("Cannot return full uuid of unattached object");
|
|
131
|
+
}
|
|
132
|
+
return `${this.__store.getName()}$${this.getUuid()}`;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get an object from the full uuid
|
|
136
|
+
* @param core
|
|
137
|
+
* @param fullUuid
|
|
138
|
+
* @param partials
|
|
139
|
+
* @returns
|
|
140
|
+
*/
|
|
141
|
+
static async fromFullUuid(core, fullUuid, partials) {
|
|
142
|
+
const [store, uuid] = fullUuid.split("$");
|
|
143
|
+
let service = core.getService(store);
|
|
144
|
+
if (partials) {
|
|
145
|
+
return service.initModel(partials).setUuid(uuid);
|
|
146
|
+
}
|
|
147
|
+
return service.get(uuid);
|
|
119
148
|
}
|
|
120
149
|
/**
|
|
121
150
|
* Load an object from RAW
|
|
@@ -142,6 +171,7 @@ class CoreModel {
|
|
|
142
171
|
*/
|
|
143
172
|
setContext(ctx) {
|
|
144
173
|
this.__ctx = ctx;
|
|
174
|
+
return this;
|
|
145
175
|
}
|
|
146
176
|
/**
|
|
147
177
|
* Get object context
|
|
@@ -149,7 +179,7 @@ class CoreModel {
|
|
|
149
179
|
* Global object does not belong to a request
|
|
150
180
|
*/
|
|
151
181
|
getContext() {
|
|
152
|
-
return this.__ctx ||
|
|
182
|
+
return this.__ctx || Context.getGlobalContext();
|
|
153
183
|
}
|
|
154
184
|
/**
|
|
155
185
|
* Return the object registered store
|
|
@@ -162,72 +192,59 @@ class CoreModel {
|
|
|
162
192
|
*
|
|
163
193
|
* @throws Error if the object is not coming from a store
|
|
164
194
|
*/
|
|
165
|
-
refresh() {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
195
|
+
async refresh() {
|
|
196
|
+
if (!this.__store) {
|
|
197
|
+
throw new CoreModelUnattachedError();
|
|
198
|
+
}
|
|
199
|
+
let obj = await this.__store.get(this.getUuid());
|
|
200
|
+
if (obj) {
|
|
201
|
+
for (let i in obj) {
|
|
202
|
+
this[i] = obj[i];
|
|
169
203
|
}
|
|
170
|
-
let
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
this[i] =
|
|
174
|
-
}
|
|
175
|
-
for (let i in this) {
|
|
176
|
-
// @ts-ignore
|
|
177
|
-
if (obj[i] !== this[i]) {
|
|
178
|
-
this[i] = undefined;
|
|
179
|
-
}
|
|
204
|
+
for (let i in this) {
|
|
205
|
+
// @ts-ignore
|
|
206
|
+
if (obj[i] !== this[i]) {
|
|
207
|
+
this[i] = undefined;
|
|
180
208
|
}
|
|
181
209
|
}
|
|
182
|
-
|
|
183
|
-
|
|
210
|
+
}
|
|
211
|
+
return this;
|
|
184
212
|
}
|
|
185
213
|
/**
|
|
186
214
|
* Delete this object
|
|
187
215
|
*
|
|
188
216
|
* @throws Error if the object is not coming from a store
|
|
189
217
|
*/
|
|
190
|
-
delete() {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
return this.__store.delete(this.getUuid());
|
|
196
|
-
});
|
|
218
|
+
async delete() {
|
|
219
|
+
if (!this.__store) {
|
|
220
|
+
throw new CoreModelUnattachedError();
|
|
221
|
+
}
|
|
222
|
+
return this.__store.delete(this.getUuid());
|
|
197
223
|
}
|
|
198
224
|
/**
|
|
199
225
|
* Save this object
|
|
200
226
|
*
|
|
201
227
|
* @throws Error if the object is not coming from a store
|
|
202
228
|
*/
|
|
203
|
-
save() {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
for (var i in obj) {
|
|
210
|
-
this[i] = obj[i];
|
|
211
|
-
}
|
|
212
|
-
return this;
|
|
213
|
-
});
|
|
229
|
+
async save() {
|
|
230
|
+
if (!this.__store) {
|
|
231
|
+
throw new CoreModelUnattachedError();
|
|
232
|
+
}
|
|
233
|
+
Object.assign(this, await this.__store.save(this));
|
|
234
|
+
return this;
|
|
214
235
|
}
|
|
215
236
|
/**
|
|
216
237
|
* Update this object
|
|
217
238
|
*
|
|
218
239
|
* @throws Error if the object is not coming from a store
|
|
219
240
|
*/
|
|
220
|
-
update(changes) {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
for (var i in obj) {
|
|
228
|
-
this[i] = obj[i];
|
|
229
|
-
}
|
|
230
|
-
});
|
|
241
|
+
async update(changes) {
|
|
242
|
+
if (!this.__store) {
|
|
243
|
+
throw new CoreModelUnattachedError();
|
|
244
|
+
}
|
|
245
|
+
changes[this.__class.getUuidField()] = this[this.__class.getUuidField()];
|
|
246
|
+
Object.assign(this, await this.__store.patch(changes));
|
|
247
|
+
return this;
|
|
231
248
|
}
|
|
232
249
|
/**
|
|
233
250
|
* Validate objet modification
|
|
@@ -235,11 +252,9 @@ class CoreModel {
|
|
|
235
252
|
* @param ctx
|
|
236
253
|
* @param updates
|
|
237
254
|
*/
|
|
238
|
-
validate(ctx, updates = undefined) {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
return true;
|
|
242
|
-
});
|
|
255
|
+
async validate(ctx, updates = undefined) {
|
|
256
|
+
ctx.getWebda().validateSchema(this, updates);
|
|
257
|
+
return true;
|
|
243
258
|
}
|
|
244
259
|
/**
|
|
245
260
|
* Generate uuid for the object
|
|
@@ -248,7 +263,7 @@ class CoreModel {
|
|
|
248
263
|
* @returns
|
|
249
264
|
*/
|
|
250
265
|
generateUid(_object = undefined) {
|
|
251
|
-
return (
|
|
266
|
+
return uuidv4().toString();
|
|
252
267
|
}
|
|
253
268
|
/**
|
|
254
269
|
* Remove all the attribute starting with __
|
|
@@ -320,60 +335,46 @@ class CoreModel {
|
|
|
320
335
|
/**
|
|
321
336
|
* Called when object is about to be deleted
|
|
322
337
|
*/
|
|
323
|
-
_onDelete() {
|
|
324
|
-
|
|
325
|
-
// Empty to be overriden
|
|
326
|
-
});
|
|
338
|
+
async _onDelete() {
|
|
339
|
+
// Empty to be overriden
|
|
327
340
|
}
|
|
328
341
|
/**
|
|
329
342
|
* Called when object has been deleted
|
|
330
343
|
*/
|
|
331
|
-
_onDeleted() {
|
|
332
|
-
|
|
333
|
-
// Empty to be overriden
|
|
334
|
-
});
|
|
344
|
+
async _onDeleted() {
|
|
345
|
+
// Empty to be overriden
|
|
335
346
|
}
|
|
336
347
|
/**
|
|
337
348
|
* Called when object is retrieved
|
|
338
349
|
*/
|
|
339
|
-
_onGet() {
|
|
340
|
-
|
|
341
|
-
// Empty to be overriden
|
|
342
|
-
});
|
|
350
|
+
async _onGet() {
|
|
351
|
+
// Empty to be overriden
|
|
343
352
|
}
|
|
344
353
|
/**
|
|
345
354
|
* Called when object is about to be saved
|
|
346
355
|
*/
|
|
347
|
-
_onSave() {
|
|
348
|
-
|
|
349
|
-
// Empty to be overriden
|
|
350
|
-
});
|
|
356
|
+
async _onSave() {
|
|
357
|
+
// Empty to be overriden
|
|
351
358
|
}
|
|
352
359
|
/**
|
|
353
360
|
* Called when object is saved
|
|
354
361
|
*/
|
|
355
|
-
_onSaved() {
|
|
356
|
-
|
|
357
|
-
// Empty to be overriden
|
|
358
|
-
});
|
|
362
|
+
async _onSaved() {
|
|
363
|
+
// Empty to be overriden
|
|
359
364
|
}
|
|
360
365
|
/**
|
|
361
366
|
* Called when object is about to be updates
|
|
362
367
|
*
|
|
363
368
|
* @param updates to be send
|
|
364
369
|
*/
|
|
365
|
-
_onUpdate(_updates) {
|
|
366
|
-
|
|
367
|
-
// Empty to be overriden
|
|
368
|
-
});
|
|
370
|
+
async _onUpdate(_updates) {
|
|
371
|
+
// Empty to be overriden
|
|
369
372
|
}
|
|
370
373
|
/**
|
|
371
374
|
* Called when object is updated
|
|
372
375
|
*/
|
|
373
|
-
_onUpdated() {
|
|
374
|
-
|
|
375
|
-
// Empty to be overriden
|
|
376
|
-
});
|
|
376
|
+
async _onUpdated() {
|
|
377
|
+
// Empty to be overriden
|
|
377
378
|
}
|
|
378
379
|
}
|
|
379
380
|
__decorate([
|
|
@@ -385,5 +386,5 @@ __decorate([
|
|
|
385
386
|
__decorate([
|
|
386
387
|
NotEnumerable
|
|
387
388
|
], CoreModel.prototype, "__store", void 0);
|
|
388
|
-
|
|
389
|
+
export { CoreModel };
|
|
389
390
|
//# sourceMappingURL=coremodel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coremodel.js","sourceRoot":"","sources":["../../src/models/coremodel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"coremodel.js","sourceRoot":"","sources":["../../src/models/coremodel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,18 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
const mocha_1 = require("@testdeck/mocha");
|
|
19
|
-
const assert = require("assert");
|
|
20
|
-
const sinon = require("sinon");
|
|
21
|
-
const __1 = require("..");
|
|
22
|
-
const test_1 = require("../test");
|
|
23
|
-
const Task = require("../../test/models/task");
|
|
24
|
-
let CoreModelTest = class CoreModelTest extends test_1.WebdaTest {
|
|
7
|
+
import { suite, test } from "@testdeck/mocha";
|
|
8
|
+
import * as assert from "assert";
|
|
9
|
+
import * as sinon from "sinon";
|
|
10
|
+
import { CoreModel } from "...js";
|
|
11
|
+
import { WebdaTest } from "../test.js";
|
|
12
|
+
import { Task } from "../../test/models/task.js";
|
|
13
|
+
let CoreModelTest = class CoreModelTest extends WebdaTest {
|
|
25
14
|
unsecureLoad() {
|
|
26
|
-
let object = new
|
|
15
|
+
let object = new CoreModel();
|
|
27
16
|
object.load({
|
|
28
17
|
_test: "plop",
|
|
29
18
|
test: "plop"
|
|
@@ -32,7 +21,7 @@ let CoreModelTest = class CoreModelTest extends test_1.WebdaTest {
|
|
|
32
21
|
assert.strictEqual(object.test, "plop");
|
|
33
22
|
}
|
|
34
23
|
secureConstructor() {
|
|
35
|
-
let object = new
|
|
24
|
+
let object = new CoreModel();
|
|
36
25
|
object.load({
|
|
37
26
|
_test: "plop",
|
|
38
27
|
test: "plop",
|
|
@@ -65,97 +54,108 @@ let CoreModelTest = class CoreModelTest extends test_1.WebdaTest {
|
|
|
65
54
|
assert.strictEqual(exported.test, "plop");
|
|
66
55
|
assert.strictEqual(exported._gotContext, undefined);
|
|
67
56
|
}
|
|
68
|
-
withContext() {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
assert.strictEqual(result._gotContext, true);
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
cov() {
|
|
79
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
-
let task = new Task();
|
|
81
|
-
yield assert.rejects(() => new __1.CoreModel().canAct(undefined, "test"), /403/);
|
|
82
|
-
assert.ok(!task.isAttached());
|
|
83
|
-
const unattachedMsg = /No store linked to this object/;
|
|
84
|
-
yield assert.rejects(() => task.refresh(), unattachedMsg);
|
|
85
|
-
yield assert.rejects(() => task.save(), unattachedMsg);
|
|
86
|
-
yield assert.rejects(() => task.delete(), unattachedMsg);
|
|
87
|
-
yield assert.rejects(() => task.update({ change: false }), unattachedMsg);
|
|
88
|
-
assert.throws(() => task.getService("ResourceService"), unattachedMsg);
|
|
89
|
-
let store = {
|
|
90
|
-
getService: this.webda.getService.bind(this.webda),
|
|
91
|
-
delete: () => { },
|
|
92
|
-
patch: () => { }
|
|
93
|
-
};
|
|
94
|
-
// @ts-ignore
|
|
95
|
-
task.attach(store);
|
|
96
|
-
assert.ok(task.isAttached());
|
|
97
|
-
assert.strictEqual(task.getStore(), store);
|
|
98
|
-
assert.notStrictEqual(task.generateUid(), undefined);
|
|
99
|
-
let stub = sinon.stub(Task, "getUuidField").callsFake(() => "bouzouf");
|
|
100
|
-
let deleteSpy = sinon.spy(store, "delete");
|
|
101
|
-
let updateSpy = sinon.stub(store, "patch").callsFake(() => ({ plop: "bouzouf" }));
|
|
102
|
-
try {
|
|
103
|
-
task.setUuid("test");
|
|
104
|
-
assert.strictEqual(task.getUuid(), "test");
|
|
105
|
-
assert.strictEqual(task.bouzouf, "test");
|
|
106
|
-
yield task.delete();
|
|
107
|
-
assert.strictEqual(deleteSpy.callCount, 1);
|
|
108
|
-
yield task.update({ plop: "bouzouf" });
|
|
109
|
-
assert.strictEqual(updateSpy.callCount, 1);
|
|
110
|
-
assert.strictEqual(task.plop, "bouzouf");
|
|
111
|
-
}
|
|
112
|
-
finally {
|
|
113
|
-
stub.restore();
|
|
114
|
-
deleteSpy.restore();
|
|
115
|
-
}
|
|
116
|
-
assert.strictEqual(this.getService("ResourceService"), task.getService("ResourceService"));
|
|
117
|
-
});
|
|
57
|
+
async withContext() {
|
|
58
|
+
let ctx = await this.newContext();
|
|
59
|
+
let task = new Task();
|
|
60
|
+
task.setContext(ctx);
|
|
61
|
+
ctx.write(task);
|
|
62
|
+
let result = JSON.parse(ctx.getResponseBody());
|
|
63
|
+
assert.strictEqual(result._gotContext, true);
|
|
118
64
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
65
|
+
async cov() {
|
|
66
|
+
let task = new Task();
|
|
67
|
+
await assert.rejects(() => new CoreModel().canAct(undefined, "test"), /403/);
|
|
68
|
+
assert.ok(!task.isAttached());
|
|
69
|
+
const unattachedMsg = /No store linked to this object/;
|
|
70
|
+
await assert.rejects(() => task.refresh(), unattachedMsg);
|
|
71
|
+
await assert.rejects(() => task.save(), unattachedMsg);
|
|
72
|
+
await assert.rejects(() => task.delete(), unattachedMsg);
|
|
73
|
+
await assert.rejects(() => task.update({ change: false }), unattachedMsg);
|
|
74
|
+
assert.throws(() => task.getService("ResourceService"), unattachedMsg);
|
|
75
|
+
let store = {
|
|
76
|
+
getService: this.webda.getService.bind(this.webda),
|
|
77
|
+
delete: () => { },
|
|
78
|
+
patch: () => { }
|
|
79
|
+
};
|
|
80
|
+
// @ts-ignore
|
|
81
|
+
task.attach(store);
|
|
82
|
+
assert.ok(task.isAttached());
|
|
83
|
+
assert.strictEqual(task.getStore(), store);
|
|
84
|
+
assert.notStrictEqual(task.generateUid(), undefined);
|
|
85
|
+
let stub = sinon.stub(Task, "getUuidField").callsFake(() => "bouzouf");
|
|
86
|
+
let deleteSpy = sinon.spy(store, "delete");
|
|
87
|
+
let updateSpy = sinon.stub(store, "patch").callsFake(() => ({ plop: "bouzouf" }));
|
|
88
|
+
try {
|
|
89
|
+
task.setUuid("test");
|
|
90
|
+
assert.strictEqual(task.getUuid(), "test");
|
|
91
|
+
assert.strictEqual(task.bouzouf, "test");
|
|
92
|
+
await task.delete();
|
|
93
|
+
assert.strictEqual(deleteSpy.callCount, 1);
|
|
94
|
+
await task.update({ plop: "bouzouf" });
|
|
95
|
+
assert.strictEqual(updateSpy.callCount, 1);
|
|
130
96
|
assert.strictEqual(task.plop, "bouzouf");
|
|
131
|
-
}
|
|
97
|
+
}
|
|
98
|
+
finally {
|
|
99
|
+
stub.restore();
|
|
100
|
+
deleteSpy.restore();
|
|
101
|
+
}
|
|
102
|
+
assert.strictEqual(this.getService("ResourceService"), task.getService("ResourceService"));
|
|
103
|
+
}
|
|
104
|
+
async fullUuid() {
|
|
105
|
+
let task = new Task();
|
|
106
|
+
task.setUuid("task#1");
|
|
107
|
+
assert.throws(() => task.getFullUuid(), /Cannot return full uuid of unattached object/);
|
|
108
|
+
let memoryStore = this.getService("MemoryUsers");
|
|
109
|
+
task = await memoryStore.save({ ...task, test: false });
|
|
110
|
+
assert.strictEqual(task.getFullUuid(), "MemoryUsers$task#1");
|
|
111
|
+
let taskB = await this.webda.getModelObject("MemoryUsers$task#1");
|
|
112
|
+
// @ts-ignore
|
|
113
|
+
assert.strictEqual(taskB.test, false);
|
|
114
|
+
taskB = await this.webda.getModelObject(task.getFullUuid(), { test: true });
|
|
115
|
+
// @ts-ignore
|
|
116
|
+
assert.strictEqual(taskB.test, true);
|
|
117
|
+
}
|
|
118
|
+
async refresh() {
|
|
119
|
+
let task = new Task();
|
|
120
|
+
task.__store = {
|
|
121
|
+
get: () => undefined
|
|
122
|
+
};
|
|
123
|
+
await task.refresh();
|
|
124
|
+
task.__store = {
|
|
125
|
+
get: () => ({ plop: "bouzouf" })
|
|
126
|
+
};
|
|
127
|
+
await task.refresh();
|
|
128
|
+
assert.strictEqual(task.plop, "bouzouf");
|
|
132
129
|
}
|
|
133
130
|
};
|
|
134
131
|
__decorate([
|
|
135
|
-
|
|
132
|
+
test("Verify unsecure loaded")
|
|
136
133
|
], CoreModelTest.prototype, "unsecureLoad", null);
|
|
137
134
|
__decorate([
|
|
138
|
-
|
|
135
|
+
test("Verify secure constructor")
|
|
139
136
|
], CoreModelTest.prototype, "secureConstructor", null);
|
|
140
137
|
__decorate([
|
|
141
|
-
|
|
138
|
+
test("Verify JSON export")
|
|
142
139
|
], CoreModelTest.prototype, "jsonExport", null);
|
|
143
140
|
__decorate([
|
|
144
|
-
|
|
141
|
+
test("Verify JSON stored export")
|
|
145
142
|
], CoreModelTest.prototype, "jsonStoredExport", null);
|
|
146
143
|
__decorate([
|
|
147
|
-
|
|
144
|
+
test("Verify JSON stored export - stringify")
|
|
148
145
|
], CoreModelTest.prototype, "jsonStoredExportStringify", null);
|
|
149
146
|
__decorate([
|
|
150
|
-
|
|
147
|
+
test("Verify Context access within output to server")
|
|
151
148
|
], CoreModelTest.prototype, "withContext", null);
|
|
152
149
|
__decorate([
|
|
153
|
-
|
|
150
|
+
test
|
|
154
151
|
], CoreModelTest.prototype, "cov", null);
|
|
155
152
|
__decorate([
|
|
156
|
-
|
|
153
|
+
test
|
|
154
|
+
], CoreModelTest.prototype, "fullUuid", null);
|
|
155
|
+
__decorate([
|
|
156
|
+
test
|
|
157
157
|
], CoreModelTest.prototype, "refresh", null);
|
|
158
158
|
CoreModelTest = __decorate([
|
|
159
|
-
|
|
159
|
+
suite
|
|
160
160
|
], CoreModelTest);
|
|
161
161
|
//# sourceMappingURL=coremodel.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coremodel.spec.js","sourceRoot":"","sources":["../../src/models/coremodel.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"coremodel.spec.js","sourceRoot":"","sources":["../../src/models/coremodel.spec.ts"],"names":[],"mappings":"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"}
|
package/lib/models/deployment.js
CHANGED