jinaga-server 2.4.1 → 2.4.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/dist/authorization/authorization-keystore.js +6 -6
- package/dist/authorization/authorization-keystore.js.map +1 -1
- package/dist/authorization/distributed-fact-cache.js +2 -1
- package/dist/authorization/distributed-fact-cache.js.map +1 -1
- package/package.json +2 -2
- package/scripts/release.sh +14 -0
- package/src/authorization/authorization-keystore.ts +6 -6
- package/src/authorization/distributed-fact-cache.ts +2 -1
|
@@ -47,8 +47,8 @@ class AuthorizationKeystore {
|
|
|
47
47
|
// Break the specification into feeds and check distribution.
|
|
48
48
|
const feeds = (0, jinaga_1.buildFeeds)(specification);
|
|
49
49
|
const canDistribute = yield this.distributionEngine.canDistributeToAll(feeds, start, userReference);
|
|
50
|
-
if (
|
|
51
|
-
throw new jinaga_1.Forbidden(
|
|
50
|
+
if (canDistribute.type === "failure") {
|
|
51
|
+
throw new jinaga_1.Forbidden(canDistribute.reason);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
return yield this.store.read(start, specification);
|
|
@@ -61,8 +61,8 @@ class AuthorizationKeystore {
|
|
|
61
61
|
? yield this.keystore.getUserFact(userIdentity)
|
|
62
62
|
: null;
|
|
63
63
|
const canDistribute = yield this.distributionEngine.canDistributeToAll([feed], start, userReference);
|
|
64
|
-
if (
|
|
65
|
-
throw new jinaga_1.Forbidden(
|
|
64
|
+
if (canDistribute.type === "failure") {
|
|
65
|
+
throw new jinaga_1.Forbidden(canDistribute.reason);
|
|
66
66
|
}
|
|
67
67
|
const factFeed = yield this.store.feed(feed, start, bookmark);
|
|
68
68
|
const factReferences = factFeed.tuples
|
|
@@ -118,8 +118,8 @@ class AuthorizationKeystore {
|
|
|
118
118
|
? yield this.keystore.getUserFact(userIdentity)
|
|
119
119
|
: null;
|
|
120
120
|
const canDistribute = yield this.distributionEngine.canDistributeToAll(feeds, start, userReference);
|
|
121
|
-
if (
|
|
122
|
-
throw new jinaga_1.Forbidden(
|
|
121
|
+
if (canDistribute.type === "failure") {
|
|
122
|
+
throw new jinaga_1.Forbidden(canDistribute.reason);
|
|
123
123
|
}
|
|
124
124
|
});
|
|
125
125
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization-keystore.js","sourceRoot":"","sources":["../../src/authorization/authorization-keystore.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAkBgB;AAIhB,qEAAgE;AAEhE,MAAa,qBAAqB;IAK9B,YACY,KAAc,EACd,QAAkB,EAC1B,kBAA6C,EAC7C,iBAA2C;QAHnC,UAAK,GAAL,KAAK,CAAS;QACd,aAAQ,GAAR,QAAQ,CAAU;QAJtB,qBAAgB,GAAyB,IAAI,6CAAoB,EAAE,CAAC;QAQxE,IAAI,CAAC,mBAAmB,GAAG,kBAAkB;YACzC,IAAI,4BAAmB,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,kBAAkB,GAAG,iBAAiB;YACvC,IAAI,2BAAkB,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAEK,mBAAmB,CAAC,YAA0B;;YAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG;gBACA;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE;iBACjB;aACJ,CAAC;YACF,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;IAED,KAAK,CAAC,YAAiC,EAAE,KAAoB,EAAE,KAAY;QACvE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEK,IAAI,CAAC,YAAiC,EAAE,KAAsB,EAAE,aAA4B;;YAC9F,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,MAAM,aAAa,GAAyB,YAAY;oBACpD,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC;oBAC/C,CAAC,CAAC,IAAI,CAAC;gBACX,6DAA6D;gBAC7D,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,aAAa,CAAC,CAAC;gBACxC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;gBACpG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"authorization-keystore.js","sourceRoot":"","sources":["../../src/authorization/authorization-keystore.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,9 +15,10 @@ class DistributedFactCache {
|
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
17
|
includesAll(references, userFact) {
|
|
18
|
+
const isUser = userFact === null ? () => false : (0, jinaga_1.factReferenceEquals)(userFact);
|
|
18
19
|
this.removeOldBatches();
|
|
19
20
|
return references.every(reference => this.batches.some(batch => batch.factReferences.some((0, jinaga_1.factReferenceEquals)(reference)) &&
|
|
20
|
-
(batch.userReference === null || batch.userReference
|
|
21
|
+
(batch.userReference === null || isUser(batch.userReference))));
|
|
21
22
|
}
|
|
22
23
|
removeOldBatches() {
|
|
23
24
|
const cutoff = new Date().getTime() - 1000 * 60 * 5;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distributed-fact-cache.js","sourceRoot":"","sources":["../../src/authorization/distributed-fact-cache.ts"],"names":[],"mappings":";;;AAAA,mCAA4D;AAQ5D,MAAa,oBAAoB;IAAjC;QACU,YAAO,GAAY,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"distributed-fact-cache.js","sourceRoot":"","sources":["../../src/authorization/distributed-fact-cache.ts"],"names":[],"mappings":";;;AAAA,mCAA4D;AAQ5D,MAAa,oBAAoB;IAAjC;QACU,YAAO,GAAY,EAAE,CAAC;IAyBhC,CAAC;IAvBC,GAAG,CAAC,cAA+B,EAAE,aAAmC;QACtE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAChB,cAAc;YACd,aAAa;YACb,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,UAA2B,EAAE,QAA8B;QACrE,MAAM,MAAM,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,4BAAmB,EAAC,QAAQ,CAAC,CAAC;QAC/E,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACxB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAA,4BAAmB,EAAC,SAAS,CAAC,CAAC;YACzD,CAAC,KAAK,CAAC,aAAa,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,gBAAgB;QACd,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACzC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;IACxC,CAAC;CACF;AA1BD,oDA0BC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jinaga-server",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.2",
|
|
4
4
|
"description": "Data management for web and mobile applications.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"express": "^4.18.2",
|
|
51
|
-
"jinaga": "^5.4.
|
|
51
|
+
"jinaga": "^5.4.3",
|
|
52
52
|
"node-forge": "^1.3.1",
|
|
53
53
|
"passport": "^0.6.0",
|
|
54
54
|
"pg": "^8.11.0"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
|
|
4
|
+
# The parameter must be patch, minor or major
|
|
5
|
+
if [ "$1" != "patch" ] && [ "$1" != "minor" ] && [ "$1" != "major" ]; then
|
|
6
|
+
echo "Usage: $0 [patch|minor|major]"
|
|
7
|
+
exit 1
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
git c main
|
|
11
|
+
git pull
|
|
12
|
+
npm version $1
|
|
13
|
+
git push --follow-tags
|
|
14
|
+
gh release create v$(node -p "require('./package.json').version") --generate-notes --verify-tag
|
|
@@ -63,8 +63,8 @@ export class AuthorizationKeystore implements Authorization {
|
|
|
63
63
|
// Break the specification into feeds and check distribution.
|
|
64
64
|
const feeds = buildFeeds(specification);
|
|
65
65
|
const canDistribute = await this.distributionEngine.canDistributeToAll(feeds, start, userReference);
|
|
66
|
-
if (
|
|
67
|
-
throw new Forbidden(
|
|
66
|
+
if (canDistribute.type === "failure") {
|
|
67
|
+
throw new Forbidden(canDistribute.reason);
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
return await this.store.read(start, specification);
|
|
@@ -76,8 +76,8 @@ export class AuthorizationKeystore implements Authorization {
|
|
|
76
76
|
? await this.keystore.getUserFact(userIdentity)
|
|
77
77
|
: null;
|
|
78
78
|
const canDistribute = await this.distributionEngine.canDistributeToAll([feed], start, userReference);
|
|
79
|
-
if (
|
|
80
|
-
throw new Forbidden(
|
|
79
|
+
if (canDistribute.type === "failure") {
|
|
80
|
+
throw new Forbidden(canDistribute.reason);
|
|
81
81
|
}
|
|
82
82
|
const factFeed = await this.store.feed(feed, start, bookmark);
|
|
83
83
|
const factReferences = factFeed.tuples
|
|
@@ -132,8 +132,8 @@ export class AuthorizationKeystore implements Authorization {
|
|
|
132
132
|
? await this.keystore.getUserFact(userIdentity)
|
|
133
133
|
: null;
|
|
134
134
|
const canDistribute = await this.distributionEngine.canDistributeToAll(feeds, start, userReference);
|
|
135
|
-
if (
|
|
136
|
-
throw new Forbidden(
|
|
135
|
+
if (canDistribute.type === "failure") {
|
|
136
|
+
throw new Forbidden(canDistribute.reason);
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
}
|
|
@@ -19,11 +19,12 @@ export class DistributedFactCache {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
includesAll(references: FactReference[], userFact: FactReference | null): boolean {
|
|
22
|
+
const isUser = userFact === null ? () => false : factReferenceEquals(userFact);
|
|
22
23
|
this.removeOldBatches();
|
|
23
24
|
return references.every(reference =>
|
|
24
25
|
this.batches.some(batch =>
|
|
25
26
|
batch.factReferences.some(factReferenceEquals(reference)) &&
|
|
26
|
-
(batch.userReference === null || batch.userReference
|
|
27
|
+
(batch.userReference === null || isUser(batch.userReference))));
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
removeOldBatches() {
|