@cubicweb/client 1.0.4 → 1.1.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/Errors.d.ts +0 -3
- package/lib/Errors.d.ts.map +1 -1
- package/lib/Errors.js +1 -8
- package/lib/Errors.js.map +1 -1
- package/lib/api/Api.d.ts +6 -5
- package/lib/api/Api.d.ts.map +1 -1
- package/lib/api/Api.js +26 -15
- package/lib/api/Api.js.map +1 -1
- package/lib/api/Client.d.ts +2 -1
- package/lib/api/Client.d.ts.map +1 -1
- package/lib/api/Client.js +5 -0
- package/lib/api/Client.js.map +1 -1
- package/lib/api/Transaction.d.ts.map +1 -1
- package/lib/api/Transaction.js +1 -3
- package/lib/api/Transaction.js.map +1 -1
- package/lib/schema/Schema.d.ts +12 -34
- package/lib/schema/Schema.d.ts.map +1 -1
- package/lib/schema/Schema.js +21 -50
- package/lib/schema/Schema.js.map +1 -1
- package/package.json +1 -1
- package/src/Errors.ts +0 -13
- package/src/api/Api.ts +33 -23
- package/src/api/Client.ts +5 -1
- package/src/api/Transaction.ts +1 -3
- package/src/schema/Schema.ts +25 -87
package/lib/Errors.d.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
export declare class InconsistentSchemaError extends Error {
|
|
2
2
|
constructor(message: string);
|
|
3
3
|
}
|
|
4
|
-
export declare class RelationNotFoundError extends Error {
|
|
5
|
-
constructor(relationType: string, role: "object" | "subject", entityType: string);
|
|
6
|
-
}
|
|
7
4
|
export declare class TransactionClosedError extends Error {
|
|
8
5
|
constructor();
|
|
9
6
|
}
|
package/lib/Errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Errors.d.ts","sourceRoot":"","sources":["../src/Errors.ts"],"names":[],"mappings":"AAAA,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,
|
|
1
|
+
{"version":3,"file":"Errors.d.ts","sourceRoot":"","sources":["../src/Errors.ts"],"names":[],"mappings":"AAAA,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,sBAAuB,SAAQ,KAAK;;CAKhD"}
|
package/lib/Errors.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TransactionClosedError = exports.
|
|
3
|
+
exports.TransactionClosedError = exports.InconsistentSchemaError = void 0;
|
|
4
4
|
class InconsistentSchemaError extends Error {
|
|
5
5
|
constructor(message) {
|
|
6
6
|
super(`Inconsistent schema: ${message}`);
|
|
@@ -8,13 +8,6 @@ class InconsistentSchemaError extends Error {
|
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
exports.InconsistentSchemaError = InconsistentSchemaError;
|
|
11
|
-
class RelationNotFoundError extends Error {
|
|
12
|
-
constructor(relationType, role, entityType) {
|
|
13
|
-
super(`Relation Not Found: relation type ${relationType} with entity type ${entityType} as ${role} is not declared`);
|
|
14
|
-
Object.setPrototypeOf(this, new.target.prototype);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.RelationNotFoundError = RelationNotFoundError;
|
|
18
11
|
class TransactionClosedError extends Error {
|
|
19
12
|
constructor() {
|
|
20
13
|
super("Trying to use a closed transaction");
|
package/lib/Errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Errors.js","sourceRoot":"","sources":["../src/Errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;QACzC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AALD,0DAKC;AAED,MAAa,
|
|
1
|
+
{"version":3,"file":"Errors.js","sourceRoot":"","sources":["../src/Errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;QACzC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AALD,0DAKC;AAED,MAAa,sBAAuB,SAAQ,KAAK;IAC/C;QACE,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC5C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AALD,wDAKC"}
|
package/lib/api/Api.d.ts
CHANGED
|
@@ -17,11 +17,12 @@ export default class Api {
|
|
|
17
17
|
private transactionApiUrl;
|
|
18
18
|
constructor(apiUrl: string);
|
|
19
19
|
execute(query: string, params: RQLParams): Promise<ResultSet>;
|
|
20
|
-
schema(): Promise<RawSchema
|
|
21
|
-
|
|
20
|
+
schema(): Promise<RawSchema<import("../schema/SchemaJSON").EntityRawSchemaArray, import("../schema/SchemaJSON").RelationDefinitionRawSchemaArray<import("../schema/SchemaJSON").EntityRawSchemaArray>>>;
|
|
21
|
+
login(login: string, password: string): Promise<boolean>;
|
|
22
|
+
transactionBegin(): Promise<string>;
|
|
22
23
|
transactionExecute(uuid: string, query: string, params: RQLParams): Promise<ResultSet>;
|
|
23
|
-
transactionCommit(uuid: string): Promise<
|
|
24
|
-
transactionRollback(uuid: string): Promise<
|
|
24
|
+
transactionCommit(uuid: string): Promise<null>;
|
|
25
|
+
transactionRollback(uuid: string): Promise<null>;
|
|
25
26
|
}
|
|
26
|
-
export declare const fetchApi: (input: RequestInfo, init?: RequestInit | undefined) => Promise<
|
|
27
|
+
export declare const fetchApi: <R = unknown>(input: RequestInfo, init?: RequestInit | undefined) => Promise<R>;
|
|
27
28
|
//# sourceMappingURL=Api.d.ts.map
|
package/lib/api/Api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Api.d.ts","sourceRoot":"","sources":["../../src/api/Api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,oBAAY,QAAQ,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAE3C,MAAM,WAAW,SAAS;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CAChC;AAED,oBAAY,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;AAC7D,oBAAY,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AACtC,oBAAY,QAAQ,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1D,oBAAY,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,QAAQ,CAAC;AAEb,MAAM,CAAC,OAAO,OAAO,GAAG;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,MAAM,EAAE,MAAM;IAKpB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS;IAQxC,MAAM,
|
|
1
|
+
{"version":3,"file":"Api.d.ts","sourceRoot":"","sources":["../../src/api/Api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,oBAAY,QAAQ,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAE3C,MAAM,WAAW,SAAS;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CAChC;AAED,oBAAY,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;AAC7D,oBAAY,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AACtC,oBAAY,QAAQ,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1D,oBAAY,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,QAAQ,CAAC;AAEb,MAAM,CAAC,OAAO,OAAO,GAAG;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,MAAM,EAAE,MAAM;IAKpB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS;IAQxC,MAAM;IAON,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAarC,gBAAgB;IAQhB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS;IAQjE,iBAAiB,CAAC,IAAI,EAAE,MAAM;IAQ9B,mBAAmB,CAAC,IAAI,EAAE,MAAM;CAOvC;AAED,eAAO,MAAM,QAAQ,uBACZ,WAAW,+CAoBnB,CAAC"}
|
package/lib/api/Api.js
CHANGED
|
@@ -26,47 +26,58 @@ class Api {
|
|
|
26
26
|
}
|
|
27
27
|
schema() {
|
|
28
28
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
return (0, exports.fetchApi)(`${this.apiUrl}/schema`, {
|
|
30
|
+
method: "GET",
|
|
31
|
+
credentials: "include",
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
login(login, password) {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
return (0, exports.fetchApi)(`${this.apiUrl}/login`, {
|
|
38
|
+
method: "POST",
|
|
39
|
+
body: JSON.stringify({
|
|
40
|
+
login,
|
|
41
|
+
password,
|
|
42
|
+
}),
|
|
43
|
+
credentials: "include",
|
|
44
|
+
})
|
|
45
|
+
.then(() => true)
|
|
46
|
+
.catch(() => false);
|
|
32
47
|
});
|
|
33
48
|
}
|
|
34
49
|
transactionBegin() {
|
|
35
50
|
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
|
|
37
|
-
return yield fetch(this.transactionApiUrl, {
|
|
51
|
+
return (0, exports.fetchApi)(this.transactionApiUrl, {
|
|
38
52
|
method: "POST",
|
|
39
|
-
body,
|
|
53
|
+
body: JSON.stringify({ action: "begin" }),
|
|
40
54
|
credentials: "include",
|
|
41
55
|
});
|
|
42
56
|
});
|
|
43
57
|
}
|
|
44
58
|
transactionExecute(uuid, query, params) {
|
|
45
59
|
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
-
const body = JSON.stringify({ action: "execute", uuid, query, params });
|
|
47
60
|
return (0, exports.fetchApi)(this.transactionApiUrl, {
|
|
48
61
|
method: "POST",
|
|
49
|
-
body,
|
|
62
|
+
body: JSON.stringify({ action: "execute", uuid, query, params }),
|
|
50
63
|
credentials: "include",
|
|
51
64
|
});
|
|
52
65
|
});
|
|
53
66
|
}
|
|
54
67
|
transactionCommit(uuid) {
|
|
55
68
|
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
-
|
|
57
|
-
return yield fetch(this.transactionApiUrl, {
|
|
69
|
+
return (0, exports.fetchApi)(this.transactionApiUrl, {
|
|
58
70
|
method: "POST",
|
|
59
|
-
body,
|
|
71
|
+
body: JSON.stringify({ action: "commit", uuid }),
|
|
60
72
|
credentials: "include",
|
|
61
73
|
});
|
|
62
74
|
});
|
|
63
75
|
}
|
|
64
76
|
transactionRollback(uuid) {
|
|
65
77
|
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
-
|
|
67
|
-
return yield fetch(this.transactionApiUrl, {
|
|
78
|
+
return (0, exports.fetchApi)(this.transactionApiUrl, {
|
|
68
79
|
method: "POST",
|
|
69
|
-
body,
|
|
80
|
+
body: JSON.stringify({ action: "commit", uuid }),
|
|
70
81
|
credentials: "include",
|
|
71
82
|
});
|
|
72
83
|
});
|
|
@@ -76,7 +87,7 @@ exports.default = Api;
|
|
|
76
87
|
const fetchApi = (input, init) => {
|
|
77
88
|
return new Promise((resolve, reject) => fetch(input, init).then((response) => {
|
|
78
89
|
const status = response.status;
|
|
79
|
-
if (status
|
|
90
|
+
if (status >= 200 && status < 300) {
|
|
80
91
|
response.json().then(resolve);
|
|
81
92
|
}
|
|
82
93
|
else {
|
package/lib/api/Api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Api.js","sourceRoot":"","sources":["../../src/api/Api.ts"],"names":[],"mappings":";;;;;;;;;;;;AAeA,MAAqB,GAAG;IAItB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,GAAG,IAAI,CAAC,MAAM,cAAc,CAAC;IACxD,CAAC;IAEK,OAAO,CAAC,KAAa,EAAE,MAAiB;;YAC5C,OAAO,IAAA,gBAAQ,
|
|
1
|
+
{"version":3,"file":"Api.js","sourceRoot":"","sources":["../../src/api/Api.ts"],"names":[],"mappings":"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"}
|
package/lib/api/Client.d.ts
CHANGED
|
@@ -5,7 +5,8 @@ export default class Client {
|
|
|
5
5
|
private api;
|
|
6
6
|
constructor(apiUrl: string);
|
|
7
7
|
execute(query: string, params?: RQLParams): Promise<import("./Api").ResultSet>;
|
|
8
|
-
schema(): Promise<Schema
|
|
8
|
+
schema(): Promise<Schema<import("..").EntityRawSchemaArray, import("..").RelationDefinitionRawSchemaArray<import("..").EntityRawSchemaArray>>>;
|
|
9
|
+
login(login: string, password: string): Promise<boolean>;
|
|
9
10
|
transaction<T>(callback: (tr: Transaction) => Promise<T>): Promise<T>;
|
|
10
11
|
}
|
|
11
12
|
//# sourceMappingURL=Client.d.ts.map
|
package/lib/api/Client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../src/api/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,OAAO,CAAC,GAAG,CAAM;gBAEL,MAAM,EAAE,MAAM;IAIpB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,SAAc;IAI7C,MAAM,
|
|
1
|
+
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../src/api/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,OAAO,CAAC,GAAG,CAAM;gBAEL,MAAM,EAAE,MAAM;IAIpB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,SAAc;IAI7C,MAAM;IAKN,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAIrC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAS5E"}
|
package/lib/api/Client.js
CHANGED
|
@@ -30,6 +30,11 @@ class Client {
|
|
|
30
30
|
return new Schema_1.Schema(schema);
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
|
+
login(login, password) {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
return yield this.api.login(login, password);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
33
38
|
transaction(callback) {
|
|
34
39
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35
40
|
const transaction = new Transaction_1.default(this.api);
|
package/lib/api/Client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../src/api/Client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,6CAA0C;AAC1C,gDAAuC;AACvC,gEAAwC;AAExC,MAAqB,MAAM;IAGzB,YAAY,MAAc;QACxB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAEK,OAAO,CAAC,KAAa,EAAE,SAAoB,EAAE;;YACjD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;KAAA;IAEK,MAAM;;YACV,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACvC,OAAO,IAAI,eAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;KAAA;IAEK,WAAW,CAAI,QAAyC;;YAC5D,MAAM,WAAW,GAAG,IAAI,qBAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE;gBAC3B,WAAW,CAAC,MAAM,EAAE,CAAC;aACtB;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;CACF;
|
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../src/api/Client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,6CAA0C;AAC1C,gDAAuC;AACvC,gEAAwC;AAExC,MAAqB,MAAM;IAGzB,YAAY,MAAc;QACxB,IAAI,CAAC,GAAG,GAAG,IAAI,aAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAEK,OAAO,CAAC,KAAa,EAAE,SAAoB,EAAE;;YACjD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;KAAA;IAEK,MAAM;;YACV,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACvC,OAAO,IAAI,eAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;KAAA;IAEK,KAAK,CAAC,KAAa,EAAE,QAAgB;;YACzC,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;KAAA;IAEK,WAAW,CAAI,QAAyC;;YAC5D,MAAM,WAAW,GAAG,IAAI,qBAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE;gBAC3B,WAAW,CAAC,MAAM,EAAE,CAAC;aACtB;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;CACF;AA7BD,yBA6BC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../src/api/Transaction.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,WAAW;IAIlB,OAAO,CAAC,GAAG;IAHvB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,OAAO,CAAS;gBAEJ,GAAG,EAAE,GAAG;IAE5B,QAAQ;IAIR,IAAI,IAAI,kBAEP;IAEK,KAAK;
|
|
1
|
+
{"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../src/api/Transaction.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,WAAW;IAIlB,OAAO,CAAC,GAAG;IAHvB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,OAAO,CAAS;gBAEJ,GAAG,EAAE,GAAG;IAE5B,QAAQ;IAIR,IAAI,IAAI,kBAEP;IAEK,KAAK;IAKL,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,SAAc;IAK7C,MAAM;IAMN,QAAQ;IAMd,OAAO,CAAC,oBAAoB;CAK7B"}
|
package/lib/api/Transaction.js
CHANGED
|
@@ -25,9 +25,7 @@ class Transaction {
|
|
|
25
25
|
begin() {
|
|
26
26
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27
27
|
this._closed = false;
|
|
28
|
-
|
|
29
|
-
const json = yield response.json();
|
|
30
|
-
this._uuid = json;
|
|
28
|
+
this._uuid = yield this.api.transactionBegin();
|
|
31
29
|
});
|
|
32
30
|
}
|
|
33
31
|
execute(query, params = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../src/api/Transaction.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAmD;AAGnD,MAAqB,WAAW;IAI9B,YAAoB,GAAQ;QAAR,QAAG,GAAH,GAAG,CAAK;QAHpB,UAAK,GAAkB,IAAI,CAAC;QAC5B,YAAO,GAAG,KAAK,CAAC;IAEO,CAAC;IAEhC,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEK,KAAK;;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,
|
|
1
|
+
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../src/api/Transaction.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAmD;AAGnD,MAAqB,WAAW;IAI9B,YAAoB,GAAQ;QAAR,QAAG,GAAH,GAAG,CAAK;QAHpB,UAAK,GAAkB,IAAI,CAAC;QAC5B,YAAO,GAAG,KAAK,CAAC;IAEO,CAAC;IAEhC,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEK,KAAK;;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACjD,CAAC;KAAA;IAEK,OAAO,CAAC,KAAa,EAAE,SAAoB,EAAE;;YACjD,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;KAAA;IAEK,MAAM;;YACV,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;KAAA;IAEK,QAAQ;;YACZ,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;KAAA;IAEO,oBAAoB;QAC1B,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,MAAM,IAAI,+BAAsB,EAAE,CAAC;SACpC;IACH,CAAC;CACF;AAzCD,8BAyCC"}
|
package/lib/schema/Schema.d.ts
CHANGED
|
@@ -71,47 +71,18 @@ ERawSchema extends E[number] = E[number]> {
|
|
|
71
71
|
object: ERawSchema["type"];
|
|
72
72
|
}>>[];
|
|
73
73
|
/**
|
|
74
|
-
* Finds
|
|
74
|
+
* Finds relations in the Schema matching the partial relation given
|
|
75
75
|
*
|
|
76
|
-
* @param
|
|
77
|
-
* @
|
|
78
|
-
* @returns The found relation
|
|
76
|
+
* @param matcher Partial relation definition to match against
|
|
77
|
+
* @returns Matched relation schema classes
|
|
79
78
|
*/
|
|
80
|
-
|
|
81
|
-
subject: ERawSchema["type"];
|
|
82
|
-
}>["type"]>(relationType: RelationType): RelationDefinitionSchema<E, R, MatchedRelationDefinition<E, R, {
|
|
79
|
+
matchRelationDefinitions<M extends RelationDefinitionMatcher<E>>(matcher: M): RelationDefinitionSchema<E, R, MatchedRelationDefinition<E, R, {
|
|
83
80
|
subject: ERawSchema["type"];
|
|
84
|
-
|
|
85
|
-
}>>;
|
|
86
|
-
/**
|
|
87
|
-
* Finds the first relation of the given type with this entity as object
|
|
88
|
-
*
|
|
89
|
-
* @param relationType The relation type to find
|
|
90
|
-
* @throws RelationNotFoundError if the current entity is not an object of the given relation
|
|
91
|
-
* @returns The found relation
|
|
92
|
-
*/
|
|
93
|
-
getObjectRelationDefinition<RelationType extends MatchedRelationDefinition<E, R, {
|
|
94
|
-
object: ERawSchema["type"];
|
|
95
|
-
}>["type"]>(relationType: RelationType): RelationDefinitionSchema<E, R, MatchedRelationDefinition<E, R, {
|
|
96
|
-
object: ERawSchema["type"];
|
|
97
|
-
type: RelationType;
|
|
98
|
-
}>>;
|
|
81
|
+
}>>[];
|
|
99
82
|
/**
|
|
100
83
|
* Gets the list of attributes names for this entity
|
|
101
84
|
*/
|
|
102
85
|
get attributes(): RelationDefinitionSchema<E, R, R[number]>[];
|
|
103
|
-
/**
|
|
104
|
-
* Checks whether the current entity is required for the given relation and role
|
|
105
|
-
*
|
|
106
|
-
* @param relationType The relation to check
|
|
107
|
-
* @param role The role for this entity in the given relation
|
|
108
|
-
* @returns True if this entity is required in the relation for the given role
|
|
109
|
-
*/
|
|
110
|
-
isRelationRequired<RelationType extends MatchedRelationDefinition<E, R, {
|
|
111
|
-
subject: ERawSchema["type"];
|
|
112
|
-
} | {
|
|
113
|
-
object: ERawSchema["type"];
|
|
114
|
-
}>["type"]>(relationType: RelationType, role: "subject" | "object"): boolean;
|
|
115
86
|
}
|
|
116
87
|
/**
|
|
117
88
|
* Wrapper around raw relation definitions from the Schema
|
|
@@ -162,6 +133,13 @@ RDef extends R[number] = R[number]> {
|
|
|
162
133
|
* @throws InconsistentSchemaError if the relation's object is not a valid entity
|
|
163
134
|
*/
|
|
164
135
|
get object(): IsLooseSchema<E> extends true ? EntitySchema<E, R, E[number]> : EntitySchema<E, R, EntityRawSchemaByType<E, RDef["object"]>>;
|
|
136
|
+
/**
|
|
137
|
+
* Checks if the relation is required when using the subject or object pointof view
|
|
138
|
+
*
|
|
139
|
+
* @param role The point of view to use
|
|
140
|
+
* @returns
|
|
141
|
+
*/
|
|
142
|
+
isRequired(role: "subject" | "object"): boolean;
|
|
165
143
|
}
|
|
166
144
|
export declare type RelationDefinitionMatcher<E extends EntityRawSchemaArray> = Partial<RelationDefinitionRawSchema<E>>;
|
|
167
145
|
export declare type MatchedRelationDefinition<E extends EntityRawSchemaArray, R extends RelationDefinitionRawSchemaArray<EntityRawSchemaArray>, M extends RelationDefinitionMatcher<E>> = R[number] extends infer RDef ? (RDef extends M ? RDef : never) : never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/schema/Schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/schema/Schema.ts"],"names":[],"mappings":"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"}
|
package/lib/schema/Schema.js
CHANGED
|
@@ -113,38 +113,13 @@ class EntitySchema {
|
|
|
113
113
|
});
|
|
114
114
|
}
|
|
115
115
|
/**
|
|
116
|
-
* Finds
|
|
117
|
-
*
|
|
118
|
-
* @param relationType The relation type to find
|
|
119
|
-
* @throws RelationNotFoundError if the current entity is not a subject of the given relation
|
|
120
|
-
* @returns The found relation
|
|
121
|
-
*/
|
|
122
|
-
getSubjectRelationDefinition(relationType) {
|
|
123
|
-
const resultArray = this.schema.matchRelationDefinitions({
|
|
124
|
-
subject: this.type,
|
|
125
|
-
type: relationType,
|
|
126
|
-
});
|
|
127
|
-
if (resultArray.length > 0) {
|
|
128
|
-
return resultArray[0];
|
|
129
|
-
}
|
|
130
|
-
throw new Errors_1.RelationNotFoundError(relationType, "subject", this.type);
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Finds the first relation of the given type with this entity as object
|
|
116
|
+
* Finds relations in the Schema matching the partial relation given
|
|
134
117
|
*
|
|
135
|
-
* @param
|
|
136
|
-
* @
|
|
137
|
-
* @returns The found relation
|
|
118
|
+
* @param matcher Partial relation definition to match against
|
|
119
|
+
* @returns Matched relation schema classes
|
|
138
120
|
*/
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
object: this.type,
|
|
142
|
-
type: relationType,
|
|
143
|
-
});
|
|
144
|
-
if (resultArray.length > 0) {
|
|
145
|
-
return resultArray[0];
|
|
146
|
-
}
|
|
147
|
-
throw new Errors_1.RelationNotFoundError(relationType, "object", this.type);
|
|
121
|
+
matchRelationDefinitions(matcher) {
|
|
122
|
+
return this.schema.matchRelationDefinitions(matcher);
|
|
148
123
|
}
|
|
149
124
|
/**
|
|
150
125
|
* Gets the list of attributes names for this entity
|
|
@@ -155,26 +130,6 @@ class EntitySchema {
|
|
|
155
130
|
subject: this.type,
|
|
156
131
|
});
|
|
157
132
|
}
|
|
158
|
-
/**
|
|
159
|
-
* Checks whether the current entity is required for the given relation and role
|
|
160
|
-
*
|
|
161
|
-
* @param relationType The relation to check
|
|
162
|
-
* @param role The role for this entity in the given relation
|
|
163
|
-
* @returns True if this entity is required in the relation for the given role
|
|
164
|
-
*/
|
|
165
|
-
isRelationRequired(relationType, role) {
|
|
166
|
-
let relation;
|
|
167
|
-
let cardinality;
|
|
168
|
-
if (role === "subject") {
|
|
169
|
-
relation = this.getSubjectRelationDefinition(relationType);
|
|
170
|
-
cardinality = relation.cardinality[0];
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
relation = this.getObjectRelationDefinition(relationType);
|
|
174
|
-
cardinality = relation.cardinality[1];
|
|
175
|
-
}
|
|
176
|
-
return cardinalityRequired(cardinality);
|
|
177
|
-
}
|
|
178
133
|
}
|
|
179
134
|
exports.EntitySchema = EntitySchema;
|
|
180
135
|
/**
|
|
@@ -255,6 +210,22 @@ class RelationDefinitionSchema {
|
|
|
255
210
|
// @ts-ignore
|
|
256
211
|
return objectSchema;
|
|
257
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Checks if the relation is required when using the subject or object pointof view
|
|
215
|
+
*
|
|
216
|
+
* @param role The point of view to use
|
|
217
|
+
* @returns
|
|
218
|
+
*/
|
|
219
|
+
isRequired(role) {
|
|
220
|
+
let cardinality;
|
|
221
|
+
if (role === "subject") {
|
|
222
|
+
cardinality = this.cardinality[0];
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
cardinality = this.cardinality[1];
|
|
226
|
+
}
|
|
227
|
+
return cardinalityRequired(cardinality);
|
|
228
|
+
}
|
|
258
229
|
}
|
|
259
230
|
exports.RelationDefinitionSchema = RelationDefinitionSchema;
|
|
260
231
|
/**
|
package/lib/schema/Schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../src/schema/Schema.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../src/schema/Schema.ts"],"names":[],"mappings":";;;AACA,sCAAoD;AAWpD,MAAM,YAAY,GAAkB,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAEvE;;;;;;GAMG;AACI,MAAM,cAAc,GAAG,CAI5B,MAAoB,EACpB,EAAE;IACF,OAAO,MAGN,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,cAAc,kBAUzB;AAEF;;GAEG;AACH,MAAa,MAAM;IAMjB,YAAY,SAA0B;QACpC,IAAI,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IACjC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,CACpC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAC7C,CAAC;IACJ,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,GAAG,CACjD,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC,CAC/D,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,CACP,UAAiB;QAMjB,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CACxD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CACzC,CAAC,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,eAAe,EAAE;YACpB,yDAAyD;YACzD,qDAAqD;YACrD,0CAA0C;YAC1C,6DAA6D;YAC7D,aAAa;YACb,OAAO,IAAI,CAAC;SACb;QACD,6DAA6D;QAC7D,aAAa;QACb,OAAO,IAAI,YAAY,CACrB,IAAI,EACJ,eAAkD,CACnD,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,wBAAwB,CACtB,OAAU;QAMV,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAChE,CAAC,MAAM,EAAE,EAAE;YACT,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAC3B,OAAO,CACoC,EAAE;gBAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE;oBAChC,OAAO,KAAK,CAAC;iBACd;aACF;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAKA,CAAC;QACJ,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;CACF;AAvFD,wBAuFC;AAED;;GAEG;AACH,MAAa,YAAY;IAKvB,YACU,MAAoB,EACpB,eAA2B;QAD3B,WAAM,GAAN,MAAM,CAAc;QACpB,oBAAe,GAAf,eAAe,CAAY;IAClC,CAAC;IAEJ;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,IAAI,0BAA0B;QAK5B,OAAO,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI,0BAA0B;QAK5B,OAAO,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC;YAC1C,MAAM,EAAE,IAAI,CAAC,IAAI;YACjB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,wBAAwB,CACtB,OAAU;QAMV,OAAO,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC;YAC1C,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,IAAI,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;CACF;AApFD,oCAoFC;AAED;;GAEG;AACH,MAAa,wBAAwB;IAKnC,YAAoB,MAAoB,EAAU,MAAY;QAA1C,WAAM,GAAN,MAAM,CAAc;QAAU,WAAM,GAAN,MAAM,CAAM;IAAG,CAAC;IAElE;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,IAAI,OAAO;QAGT,OAAO,CACL,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAChD,CAAC;IACf,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACjC,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAgB,CAAC;IACnD,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAgB,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,IAAI,OAAO;QAGT,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,aAAa,KAAK,IAAI,EAAE;YAC1B,MAAM,IAAI,gCAAuB,CAC/B,eAAe,IAAI,CAAC,MAAM,CAAC,OAAO,gCAAgC,IAAI,CAAC,IAAI,kBAAkB,CAC9F,CAAC;SACH;QACD,6DAA6D;QAC7D,aAAa;QACb,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,IAAI,MAAM;QAGR,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,YAAY,KAAK,IAAI,EAAE;YACzB,MAAM,IAAI,gCAAuB,CAC/B,eAAe,IAAI,CAAC,MAAM,CAAC,MAAM,+BAA+B,IAAI,CAAC,IAAI,kBAAkB,CAC5F,CAAC;SACH;QACD,6DAA6D;QAC7D,aAAa;QACb,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,IAA0B;QACnC,IAAI,WAAwB,CAAC;QAC7B,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAgB,CAAC;SAClD;aAAM;YACL,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAgB,CAAC;SAClD;QACD,OAAO,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;CACF;AAlHD,4DAkHC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,WAAwB;IACnD,OAAO,WAAW,KAAK,GAAG,IAAI,WAAW,KAAK,GAAG,CAAC;AACpD,CAAC"}
|
package/package.json
CHANGED
package/src/Errors.ts
CHANGED
|
@@ -5,19 +5,6 @@ export class InconsistentSchemaError extends Error {
|
|
|
5
5
|
}
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
export class RelationNotFoundError extends Error {
|
|
9
|
-
constructor(
|
|
10
|
-
relationType: string,
|
|
11
|
-
role: "object" | "subject",
|
|
12
|
-
entityType: string
|
|
13
|
-
) {
|
|
14
|
-
super(
|
|
15
|
-
`Relation Not Found: relation type ${relationType} with entity type ${entityType} as ${role} is not declared`
|
|
16
|
-
);
|
|
17
|
-
Object.setPrototypeOf(this, new.target.prototype);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
8
|
export class TransactionClosedError extends Error {
|
|
22
9
|
constructor() {
|
|
23
10
|
super("Trying to use a closed transaction");
|
package/src/api/Api.ts
CHANGED
|
@@ -23,65 +23,75 @@ export default class Api {
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
async execute(query: string, params: RQLParams) {
|
|
26
|
-
return fetchApi(`${this.apiUrl}/rql`, {
|
|
26
|
+
return fetchApi<ResultSet>(`${this.apiUrl}/rql`, {
|
|
27
27
|
method: "POST",
|
|
28
28
|
body: JSON.stringify({ query, params }),
|
|
29
29
|
credentials: "include", // FIXME is it secure?
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
async schema()
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
async schema() {
|
|
34
|
+
return fetchApi<RawSchema>(`${this.apiUrl}/schema`, {
|
|
35
|
+
method: "GET",
|
|
36
|
+
credentials: "include",
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
async login(login: string, password: string) {
|
|
41
|
+
return fetchApi<boolean>(`${this.apiUrl}/login`, {
|
|
42
|
+
method: "POST",
|
|
43
|
+
body: JSON.stringify({
|
|
44
|
+
login,
|
|
45
|
+
password,
|
|
46
|
+
}),
|
|
47
|
+
credentials: "include",
|
|
48
|
+
})
|
|
49
|
+
.then(() => true)
|
|
50
|
+
.catch(() => false);
|
|
37
51
|
}
|
|
38
52
|
|
|
39
53
|
async transactionBegin() {
|
|
40
|
-
|
|
41
|
-
return await fetch(this.transactionApiUrl, {
|
|
54
|
+
return fetchApi<string>(this.transactionApiUrl, {
|
|
42
55
|
method: "POST",
|
|
43
|
-
body,
|
|
56
|
+
body: JSON.stringify({ action: "begin" }),
|
|
44
57
|
credentials: "include",
|
|
45
58
|
});
|
|
46
59
|
}
|
|
47
60
|
|
|
48
61
|
async transactionExecute(uuid: string, query: string, params: RQLParams) {
|
|
49
|
-
|
|
50
|
-
return fetchApi(this.transactionApiUrl, {
|
|
62
|
+
return fetchApi<ResultSet>(this.transactionApiUrl, {
|
|
51
63
|
method: "POST",
|
|
52
|
-
body,
|
|
64
|
+
body: JSON.stringify({ action: "execute", uuid, query, params }),
|
|
53
65
|
credentials: "include",
|
|
54
66
|
});
|
|
55
67
|
}
|
|
56
68
|
|
|
57
69
|
async transactionCommit(uuid: string) {
|
|
58
|
-
|
|
59
|
-
return await fetch(this.transactionApiUrl, {
|
|
70
|
+
return fetchApi<null>(this.transactionApiUrl, {
|
|
60
71
|
method: "POST",
|
|
61
|
-
body,
|
|
72
|
+
body: JSON.stringify({ action: "commit", uuid }),
|
|
62
73
|
credentials: "include",
|
|
63
74
|
});
|
|
64
75
|
}
|
|
65
76
|
|
|
66
77
|
async transactionRollback(uuid: string) {
|
|
67
|
-
|
|
68
|
-
return await fetch(this.transactionApiUrl, {
|
|
78
|
+
return fetchApi<null>(this.transactionApiUrl, {
|
|
69
79
|
method: "POST",
|
|
70
|
-
body,
|
|
80
|
+
body: JSON.stringify({ action: "commit", uuid }),
|
|
71
81
|
credentials: "include",
|
|
72
82
|
});
|
|
73
83
|
}
|
|
74
84
|
}
|
|
75
85
|
|
|
76
|
-
export const fetchApi =
|
|
86
|
+
export const fetchApi = <R = unknown>(
|
|
87
|
+
input: RequestInfo,
|
|
88
|
+
init?: RequestInit
|
|
89
|
+
) => {
|
|
77
90
|
return new Promise(
|
|
78
|
-
(
|
|
79
|
-
resolve: (value: ResultSet) => void,
|
|
80
|
-
reject: (reason: ApiErrorResponse) => void
|
|
81
|
-
) =>
|
|
91
|
+
(resolve: (value: R) => void, reject: (reason: ApiErrorResponse) => void) =>
|
|
82
92
|
fetch(input, init).then((response) => {
|
|
83
93
|
const status = response.status;
|
|
84
|
-
if (status
|
|
94
|
+
if (status >= 200 && status < 300) {
|
|
85
95
|
response.json().then(resolve);
|
|
86
96
|
} else {
|
|
87
97
|
response.json().then((data: ApiError) => {
|
package/src/api/Client.ts
CHANGED
|
@@ -13,11 +13,15 @@ export default class Client {
|
|
|
13
13
|
return await this.api.execute(query, params);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
async schema()
|
|
16
|
+
async schema() {
|
|
17
17
|
const schema = await this.api.schema();
|
|
18
18
|
return new Schema(schema);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
async login(login: string, password: string) {
|
|
22
|
+
return await this.api.login(login, password);
|
|
23
|
+
}
|
|
24
|
+
|
|
21
25
|
async transaction<T>(callback: (tr: Transaction) => Promise<T>): Promise<T> {
|
|
22
26
|
const transaction = new Transaction(this.api);
|
|
23
27
|
await transaction.begin();
|
package/src/api/Transaction.ts
CHANGED
|
@@ -17,9 +17,7 @@ export default class Transaction {
|
|
|
17
17
|
|
|
18
18
|
async begin() {
|
|
19
19
|
this._closed = false;
|
|
20
|
-
|
|
21
|
-
const json = await response.json();
|
|
22
|
-
this._uuid = json;
|
|
20
|
+
this._uuid = await this.api.transactionBegin();
|
|
23
21
|
}
|
|
24
22
|
|
|
25
23
|
async execute(query: string, params: RQLParams = {}) {
|
package/src/schema/Schema.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Cardinality } from "..";
|
|
2
|
-
import { InconsistentSchemaError
|
|
2
|
+
import { InconsistentSchemaError } from "../Errors";
|
|
3
3
|
import {
|
|
4
4
|
RawSchema,
|
|
5
5
|
RelationDefinitionRawSchema,
|
|
@@ -186,71 +186,19 @@ export class EntitySchema<
|
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
/**
|
|
189
|
-
* Finds
|
|
190
|
-
*
|
|
191
|
-
* @param relationType The relation type to find
|
|
192
|
-
* @throws RelationNotFoundError if the current entity is not a subject of the given relation
|
|
193
|
-
* @returns The found relation
|
|
194
|
-
*/
|
|
195
|
-
getSubjectRelationDefinition<
|
|
196
|
-
RelationType extends MatchedRelationDefinition<
|
|
197
|
-
E,
|
|
198
|
-
R,
|
|
199
|
-
{ subject: ERawSchema["type"] }
|
|
200
|
-
>["type"]
|
|
201
|
-
>(
|
|
202
|
-
relationType: RelationType
|
|
203
|
-
): RelationDefinitionSchema<
|
|
204
|
-
E,
|
|
205
|
-
R,
|
|
206
|
-
MatchedRelationDefinition<
|
|
207
|
-
E,
|
|
208
|
-
R,
|
|
209
|
-
{ subject: ERawSchema["type"]; type: RelationType }
|
|
210
|
-
>
|
|
211
|
-
> {
|
|
212
|
-
const resultArray = this.schema.matchRelationDefinitions({
|
|
213
|
-
subject: this.type,
|
|
214
|
-
type: relationType,
|
|
215
|
-
});
|
|
216
|
-
if (resultArray.length > 0) {
|
|
217
|
-
return resultArray[0];
|
|
218
|
-
}
|
|
219
|
-
throw new RelationNotFoundError(relationType, "subject", this.type);
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* Finds the first relation of the given type with this entity as object
|
|
189
|
+
* Finds relations in the Schema matching the partial relation given
|
|
224
190
|
*
|
|
225
|
-
* @param
|
|
226
|
-
* @
|
|
227
|
-
* @returns The found relation
|
|
191
|
+
* @param matcher Partial relation definition to match against
|
|
192
|
+
* @returns Matched relation schema classes
|
|
228
193
|
*/
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
E,
|
|
232
|
-
R,
|
|
233
|
-
{ object: ERawSchema["type"] }
|
|
234
|
-
>["type"]
|
|
235
|
-
>(
|
|
236
|
-
relationType: RelationType
|
|
194
|
+
matchRelationDefinitions<M extends RelationDefinitionMatcher<E>>(
|
|
195
|
+
matcher: M
|
|
237
196
|
): RelationDefinitionSchema<
|
|
238
197
|
E,
|
|
239
198
|
R,
|
|
240
|
-
MatchedRelationDefinition<
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
{ object: ERawSchema["type"]; type: RelationType }
|
|
244
|
-
>
|
|
245
|
-
> {
|
|
246
|
-
const resultArray = this.schema.matchRelationDefinitions({
|
|
247
|
-
object: this.type,
|
|
248
|
-
type: relationType,
|
|
249
|
-
});
|
|
250
|
-
if (resultArray.length > 0) {
|
|
251
|
-
return resultArray[0];
|
|
252
|
-
}
|
|
253
|
-
throw new RelationNotFoundError(relationType, "object", this.type);
|
|
199
|
+
MatchedRelationDefinition<E, R, { subject: ERawSchema["type"] }>
|
|
200
|
+
>[] {
|
|
201
|
+
return this.schema.matchRelationDefinitions(matcher);
|
|
254
202
|
}
|
|
255
203
|
|
|
256
204
|
/**
|
|
@@ -262,32 +210,6 @@ export class EntitySchema<
|
|
|
262
210
|
subject: this.type,
|
|
263
211
|
});
|
|
264
212
|
}
|
|
265
|
-
|
|
266
|
-
/**
|
|
267
|
-
* Checks whether the current entity is required for the given relation and role
|
|
268
|
-
*
|
|
269
|
-
* @param relationType The relation to check
|
|
270
|
-
* @param role The role for this entity in the given relation
|
|
271
|
-
* @returns True if this entity is required in the relation for the given role
|
|
272
|
-
*/
|
|
273
|
-
isRelationRequired<
|
|
274
|
-
RelationType extends MatchedRelationDefinition<
|
|
275
|
-
E,
|
|
276
|
-
R,
|
|
277
|
-
{ subject: ERawSchema["type"] } | { object: ERawSchema["type"] }
|
|
278
|
-
>["type"]
|
|
279
|
-
>(relationType: RelationType, role: "subject" | "object"): boolean {
|
|
280
|
-
let relation;
|
|
281
|
-
let cardinality: Cardinality;
|
|
282
|
-
if (role === "subject") {
|
|
283
|
-
relation = this.getSubjectRelationDefinition(relationType);
|
|
284
|
-
cardinality = relation.cardinality[0];
|
|
285
|
-
} else {
|
|
286
|
-
relation = this.getObjectRelationDefinition(relationType);
|
|
287
|
-
cardinality = relation.cardinality[1];
|
|
288
|
-
}
|
|
289
|
-
return cardinalityRequired(cardinality);
|
|
290
|
-
}
|
|
291
213
|
}
|
|
292
214
|
|
|
293
215
|
/**
|
|
@@ -391,6 +313,22 @@ export class RelationDefinitionSchema<
|
|
|
391
313
|
// @ts-ignore
|
|
392
314
|
return objectSchema;
|
|
393
315
|
}
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* Checks if the relation is required when using the subject or object pointof view
|
|
319
|
+
*
|
|
320
|
+
* @param role The point of view to use
|
|
321
|
+
* @returns
|
|
322
|
+
*/
|
|
323
|
+
isRequired(role: "subject" | "object") {
|
|
324
|
+
let cardinality: Cardinality;
|
|
325
|
+
if (role === "subject") {
|
|
326
|
+
cardinality = this.cardinality[0] as Cardinality;
|
|
327
|
+
} else {
|
|
328
|
+
cardinality = this.cardinality[1] as Cardinality;
|
|
329
|
+
}
|
|
330
|
+
return cardinalityRequired(cardinality);
|
|
331
|
+
}
|
|
394
332
|
}
|
|
395
333
|
|
|
396
334
|
/**
|