jinaga-server 2.4.2 → 2.6.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/dist/authorization/authorization-keystore.d.ts +5 -4
- package/dist/authorization/authorization-keystore.js +16 -13
- package/dist/authorization/authorization-keystore.js.map +1 -1
- package/dist/http/router.d.ts +5 -3
- package/dist/http/router.js +125 -52
- package/dist/http/router.js.map +1 -1
- package/dist/http/stream.d.ts +10 -0
- package/dist/http/stream.js +35 -0
- package/dist/http/stream.js.map +1 -0
- package/dist/index.d.ts +2 -3
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/jinaga-server.js +7 -8
- package/dist/jinaga-server.js.map +1 -1
- package/dist/postgres/connection.js +1 -3
- package/dist/postgres/connection.js.map +1 -1
- package/dist/postgres/postgres-store.d.ts +4 -4
- package/dist/postgres/postgres-store.js +2 -2
- package/dist/postgres/postgres-store.js.map +1 -1
- package/dist/postgres/query-description.d.ts +75 -0
- package/dist/postgres/query-description.js +283 -0
- package/dist/postgres/query-description.js.map +1 -0
- package/dist/postgres/specification-result-sql.d.ts +2 -2
- package/dist/postgres/specification-result-sql.js +39 -324
- package/dist/postgres/specification-result-sql.js.map +1 -1
- package/dist/postgres/specification-sql.d.ts +2 -2
- package/dist/postgres/specification-sql.js +60 -163
- package/dist/postgres/specification-sql.js.map +1 -1
- package/http/sans-auth/.env.local +1 -0
- package/http/sans-auth/Create post sans auth.http +27 -0
- package/http/sans-auth/Create site sans auth.http +11 -0
- package/http/sans-auth/Feed sites.http +1 -0
- package/http/sans-auth/Feeds sites.http +12 -0
- package/http/sans-auth/Get posts sans auth.http +35 -0
- package/http/sans-auth/Get sites sans auth.http +12 -0
- package/http/sans-auth/stream.sh +2 -0
- package/integration-test/jinaga-test/Dockerfile +1 -1
- package/integration-test/jinaga-test/package-lock.json +917 -748
- package/integration-test/jinaga-test/package.json +3 -3
- package/package.json +2 -2
- package/replicator/package-lock.json +16 -16
- package/replicator/package.json +1 -1
- package/src/authorization/authorization-keystore.ts +23 -14
- package/src/http/router.ts +154 -64
- package/src/http/stream.ts +32 -0
- package/src/index.ts +3 -4
- package/src/jinaga-server.ts +8 -8
- package/src/postgres/connection.ts +1 -3
- package/src/postgres/postgres-store.ts +5 -8
- package/src/postgres/query-description.ts +435 -0
- package/src/postgres/specification-result-sql.ts +56 -489
- package/src/postgres/specification-sql.ts +71 -232
- package/test/authorization/authorizationSpec.ts +12 -2
- package/test/postgres/postgresSpecificationSpec.ts +15 -15
- package/dist/http/feed-cache.d.ts +0 -12
- package/dist/http/feed-cache.js +0 -3
- package/dist/http/feed-cache.js.map +0 -1
- package/dist/memory/memory-feed-cache.d.ts +0 -6
- package/dist/memory/memory-feed-cache.js +0 -17
- package/dist/memory/memory-feed-cache.js.map +0 -1
- package/src/http/feed-cache.ts +0 -14
- package/src/memory/memory-feed-cache.ts +0 -14
|
@@ -2,50 +2,42 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.sqlFromFeed = exports.sqlFromSpecification = void 0;
|
|
4
4
|
const jinaga_1 = require("jinaga");
|
|
5
|
-
const
|
|
5
|
+
const query_description_1 = require("./query-description");
|
|
6
6
|
;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
parameters: [...this.parameters, bookmarkValue, limit],
|
|
42
|
-
labels: this.outputs.map(output => ({
|
|
43
|
-
type: output.type,
|
|
44
|
-
index: output.factIndex
|
|
45
|
-
})),
|
|
46
|
-
bookmark: "[]"
|
|
47
|
-
};
|
|
48
|
-
}
|
|
7
|
+
function generateSqlQuery(queryDescription, schema, bookmark, limit) {
|
|
8
|
+
const hashes = queryDescription.outputs
|
|
9
|
+
.map(output => `f${output.factIndex}.hash as hash${output.factIndex}`)
|
|
10
|
+
.join(", ");
|
|
11
|
+
const factIds = queryDescription.outputs
|
|
12
|
+
.map(output => `f${output.factIndex}.fact_id`)
|
|
13
|
+
.join(", ");
|
|
14
|
+
const firstEdge = queryDescription.edges[0];
|
|
15
|
+
const predecessorFact = queryDescription.inputs.find(i => i.factIndex === firstEdge.predecessorFactIndex);
|
|
16
|
+
const successorFact = queryDescription.inputs.find(i => i.factIndex === firstEdge.successorFactIndex);
|
|
17
|
+
const firstFactIndex = predecessorFact ? predecessorFact.factIndex : successorFact.factIndex;
|
|
18
|
+
const writtenFactIndexes = new Set().add(firstFactIndex);
|
|
19
|
+
const joins = generateJoins(schema, queryDescription.edges, writtenFactIndexes);
|
|
20
|
+
const inputWhereClauses = queryDescription.inputs
|
|
21
|
+
.filter(input => input.factTypeParameter !== 0)
|
|
22
|
+
.map(input => `f${input.factIndex}.fact_type_id = $${input.factTypeParameter} AND f${input.factIndex}.hash = $${input.factHashParameter}`)
|
|
23
|
+
.join(" AND ");
|
|
24
|
+
const notExistsWhereClauses = (queryDescription.existentialConditions
|
|
25
|
+
.filter(c => c.exists === false))
|
|
26
|
+
.map(notExistsWhereClause => ` AND NOT EXISTS (${generateNotExistsWhereClause(schema, notExistsWhereClause, writtenFactIndexes)})`)
|
|
27
|
+
.join("");
|
|
28
|
+
const bookmarkParameter = queryDescription.parameters.length + 1;
|
|
29
|
+
const limitParameter = bookmarkParameter + 1;
|
|
30
|
+
const sql = `SELECT ${hashes}, sort(array[${factIds}], 'desc') as bookmark FROM ${schema}.fact f${firstFactIndex}${joins.join("")} WHERE ${inputWhereClauses}${notExistsWhereClauses} AND sort(array[${factIds}], 'desc') > $${bookmarkParameter} ORDER BY bookmark ASC LIMIT $${limitParameter}`;
|
|
31
|
+
const bookmarkValue = parseBookmark(bookmark);
|
|
32
|
+
return {
|
|
33
|
+
sql,
|
|
34
|
+
parameters: [...queryDescription.parameters, bookmarkValue, limit],
|
|
35
|
+
labels: queryDescription.outputs.map(output => ({
|
|
36
|
+
type: output.type,
|
|
37
|
+
index: output.factIndex
|
|
38
|
+
})),
|
|
39
|
+
bookmark: "[]"
|
|
40
|
+
};
|
|
49
41
|
}
|
|
50
42
|
function generateJoins(schema, edges, writtenFactIndexes) {
|
|
51
43
|
const joins = [];
|
|
@@ -131,140 +123,45 @@ function parseBookmark(bookmark) {
|
|
|
131
123
|
return parsed;
|
|
132
124
|
}
|
|
133
125
|
}
|
|
134
|
-
class DescriptionBuilder {
|
|
135
|
-
constructor(factTypes, roleMap) {
|
|
136
|
-
this.factTypes = factTypes;
|
|
137
|
-
this.roleMap = roleMap;
|
|
138
|
-
}
|
|
139
|
-
isSatisfiable(feed, edges) {
|
|
140
|
-
for (const edge of edges) {
|
|
141
|
-
const successor = feed.facts.find(f => f.factIndex === edge.successorFactIndex);
|
|
142
|
-
if (!successor) {
|
|
143
|
-
return false;
|
|
144
|
-
}
|
|
145
|
-
const predecessor = feed.facts.find(f => f.factIndex === edge.predecessorFactIndex);
|
|
146
|
-
if (!predecessor) {
|
|
147
|
-
return false;
|
|
148
|
-
}
|
|
149
|
-
const successorFactTypeId = (0, maps_1.getFactTypeId)(this.factTypes, successor.factType);
|
|
150
|
-
if (!successorFactTypeId) {
|
|
151
|
-
return false;
|
|
152
|
-
}
|
|
153
|
-
if (!(0, maps_1.getRoleId)(this.roleMap, successorFactTypeId, edge.roleName)) {
|
|
154
|
-
return false;
|
|
155
|
-
}
|
|
156
|
-
const predecessorFactTypeId = (0, maps_1.getFactTypeId)(this.factTypes, predecessor.factType);
|
|
157
|
-
if (!predecessorFactTypeId) {
|
|
158
|
-
return false;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
return true;
|
|
162
|
-
}
|
|
163
|
-
buildDescription(feed, start) {
|
|
164
|
-
const parameters = [];
|
|
165
|
-
function addParameter(value) {
|
|
166
|
-
parameters.push(value);
|
|
167
|
-
return parameters.length;
|
|
168
|
-
}
|
|
169
|
-
// Allocate parameters for the inputs.
|
|
170
|
-
const inputs = feed.inputs.map(input => this.buildInputDescription(feed, input, start, addParameter));
|
|
171
|
-
// Allocate parameters for the edge roles.
|
|
172
|
-
const edges = feed.edges.map(edge => this.buildEdgeDescription(feed, edge, addParameter));
|
|
173
|
-
// Allocate parameters for the conditional roles.
|
|
174
|
-
const satisfiableNotExistsConditions = feed.notExistsConditions.filter(condition => this.isSatisfiable(feed, condition.edges));
|
|
175
|
-
const notExistsConditions = satisfiableNotExistsConditions.map(condition => this.buildNotExistsConditionDescription(feed, condition, addParameter));
|
|
176
|
-
const outputs = feed.outputs.map(output => this.buildOutputDescription(feed, output));
|
|
177
|
-
return new QueryDescription(inputs, parameters, outputs, edges, notExistsConditions);
|
|
178
|
-
}
|
|
179
|
-
buildInputDescription(feed, input, start, addParameter) {
|
|
180
|
-
const fact = feed.facts.find(f => f.factIndex === input.factIndex);
|
|
181
|
-
if (!fact) {
|
|
182
|
-
throw new Error(`Fact not found: ${input.factIndex}`);
|
|
183
|
-
}
|
|
184
|
-
const factTypeId = (0, maps_1.getFactTypeId)(this.factTypes, fact.factType);
|
|
185
|
-
if (!factTypeId) {
|
|
186
|
-
throw new Error(`Fact type not found: ${fact.factType}`);
|
|
187
|
-
}
|
|
188
|
-
const factTypeParameter = addParameter(factTypeId);
|
|
189
|
-
const factHashParameter = addParameter(start[input.inputIndex].hash);
|
|
190
|
-
return {
|
|
191
|
-
factIndex: input.factIndex,
|
|
192
|
-
factTypeParameter,
|
|
193
|
-
factHashParameter
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
buildEdgeDescription(feed, edge, addParameter) {
|
|
197
|
-
const fact = feed.facts.find(f => f.factIndex === edge.successorFactIndex);
|
|
198
|
-
if (!fact) {
|
|
199
|
-
throw new Error(`Fact not found: ${edge.successorFactIndex}`);
|
|
200
|
-
}
|
|
201
|
-
const factTypeId = (0, maps_1.getFactTypeId)(this.factTypes, fact.factType);
|
|
202
|
-
if (!factTypeId) {
|
|
203
|
-
throw new Error(`Fact type not found: ${fact.factType}`);
|
|
204
|
-
}
|
|
205
|
-
const roleId = (0, maps_1.getRoleId)(this.roleMap, factTypeId, edge.roleName);
|
|
206
|
-
if (!roleId) {
|
|
207
|
-
throw new Error(`Role not found: ${fact.factType}.${edge.roleName}`);
|
|
208
|
-
}
|
|
209
|
-
const roleParameter = addParameter(roleId);
|
|
210
|
-
return {
|
|
211
|
-
edgeIndex: edge.edgeIndex,
|
|
212
|
-
predecessorFactIndex: edge.predecessorFactIndex,
|
|
213
|
-
successorFactIndex: edge.successorFactIndex,
|
|
214
|
-
roleParameter
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
buildOutputDescription(feed, output) {
|
|
218
|
-
const fact = feed.facts.find(f => f.factIndex === output.factIndex);
|
|
219
|
-
if (!fact) {
|
|
220
|
-
throw new Error(`Fact not found: ${output.factIndex}`);
|
|
221
|
-
}
|
|
222
|
-
return {
|
|
223
|
-
factIndex: output.factIndex,
|
|
224
|
-
type: fact.factType
|
|
225
|
-
};
|
|
226
|
-
}
|
|
227
|
-
buildNotExistsConditionDescription(feed, condition, addParameter) {
|
|
228
|
-
const edges = condition.edges.map(edge => this.buildEdgeDescription(feed, edge, addParameter));
|
|
229
|
-
return {
|
|
230
|
-
edges
|
|
231
|
-
};
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
126
|
function sqlFromSpecification(start, schema, bookmarks, limit, specification, factTypes, roleMap) {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
}
|
|
244
|
-
}
|
|
127
|
+
(0, jinaga_1.validateGiven)(start, specification);
|
|
128
|
+
const labeledStart = start.map((s, index) => ({
|
|
129
|
+
name: specification.given[index].name,
|
|
130
|
+
reference: s
|
|
131
|
+
})).reduce((map, s) => {
|
|
132
|
+
map.set(s.name, s.reference);
|
|
133
|
+
return map;
|
|
134
|
+
}, new Map());
|
|
245
135
|
const feeds = (0, jinaga_1.buildFeeds)(specification);
|
|
246
|
-
const
|
|
136
|
+
const queryDescriptionBuilder = new query_description_1.QueryDescriptionBuider(factTypes, roleMap);
|
|
247
137
|
const feedAndBookmark = feeds.map((feed, index) => ({
|
|
248
138
|
feed,
|
|
249
139
|
bookmark: bookmarks[index]
|
|
250
140
|
}));
|
|
251
|
-
const
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
141
|
+
const queryDescriptionsAndBookmarks = feedAndBookmark.map(fb => {
|
|
142
|
+
const feedStart = fb.feed.given.map(s => labeledStart.get(s.name));
|
|
143
|
+
return {
|
|
144
|
+
queryDescription: buildQueryDescription(queryDescriptionBuilder, fb.feed, feedStart),
|
|
145
|
+
bookmark: fb.bookmark
|
|
146
|
+
};
|
|
256
147
|
});
|
|
148
|
+
const satisfiableQueryDescriptionsAndBookmarks = queryDescriptionsAndBookmarks.filter(qb => qb.queryDescription.isSatisfiable());
|
|
149
|
+
const sqlQueries = satisfiableQueryDescriptionsAndBookmarks.map(qdb => generateSqlQuery(qdb.queryDescription, schema, qdb.bookmark, limit));
|
|
257
150
|
return sqlQueries;
|
|
258
151
|
}
|
|
259
152
|
exports.sqlFromSpecification = sqlFromSpecification;
|
|
260
153
|
function sqlFromFeed(feed, start, schema, bookmark, limit, factTypes, roleMap) {
|
|
261
|
-
const
|
|
262
|
-
|
|
154
|
+
const queryDescriptionBuilder = new query_description_1.QueryDescriptionBuider(factTypes, roleMap);
|
|
155
|
+
const queryDescription = buildQueryDescription(queryDescriptionBuilder, feed, start);
|
|
156
|
+
if (!queryDescription.isSatisfiable()) {
|
|
263
157
|
return null;
|
|
264
158
|
}
|
|
265
|
-
const
|
|
266
|
-
const sql = description.generateSqlQuery(schema, bookmark, limit);
|
|
159
|
+
const sql = generateSqlQuery(queryDescription, schema, bookmark, limit);
|
|
267
160
|
return sql;
|
|
268
161
|
}
|
|
269
162
|
exports.sqlFromFeed = sqlFromFeed;
|
|
163
|
+
function buildQueryDescription(queryDescriptionBuilder, specification, start) {
|
|
164
|
+
const { queryDescription } = queryDescriptionBuilder.addEdges(query_description_1.QueryDescription.unsatisfiable, specification.given, start, {}, [], specification.matches);
|
|
165
|
+
return queryDescription;
|
|
166
|
+
}
|
|
270
167
|
//# sourceMappingURL=specification-sql.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specification-sql.js","sourceRoot":"","sources":["../../src/postgres/specification-sql.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"specification-sql.js","sourceRoot":"","sources":["../../src/postgres/specification-sql.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
replicatorUrl=http://localhost:8080/jinaga
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
POST {{replicatorUrl}}/write
|
|
2
|
+
Content-Type: text/plain
|
|
3
|
+
|
|
4
|
+
let creator: Jinaga.User = {
|
|
5
|
+
publicKey: "--- FAKE PUBLIC KEY ---"
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
let site: Blog.Site = {
|
|
9
|
+
creator,
|
|
10
|
+
domain: "michaelperry.net"
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
let post: Blog.Post = {
|
|
14
|
+
createdAt: "2022-08-16T15:23:13.231Z",
|
|
15
|
+
site
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
let title: Blog.Post.Title = {
|
|
19
|
+
post,
|
|
20
|
+
value: "Introducing Jinaga Replicator",
|
|
21
|
+
prior: []
|
|
22
|
+
}
|
|
23
|
+
let title2: Blog.Post.Title = {
|
|
24
|
+
post,
|
|
25
|
+
value: "Introduction to the Jinaga Replicator",
|
|
26
|
+
prior: [ title ]
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
GET {{replicatorUrl}}/feeds/8tObENmhwUfn7R0KwkCtUkMDgMN5HKLyLXNq0O__x1LQvxXLJABh6uuwXcETA23mUonsq5bBHFMdaeh5HT8-RA
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
POST {{replicatorUrl}}/read
|
|
2
|
+
Content-Type: text/plain
|
|
3
|
+
|
|
4
|
+
let creator: Jinaga.User = {
|
|
5
|
+
publicKey: "--- FAKE PUBLIC KEY ---"
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
let site: Blog.Site = {
|
|
9
|
+
creator,
|
|
10
|
+
domain: "michaelperry.net"
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
(site: Blog.Site) {
|
|
14
|
+
post: Blog.Post [
|
|
15
|
+
post->site: Blog.Site = site
|
|
16
|
+
!E {
|
|
17
|
+
deleted: Blog.Post.Deleted [
|
|
18
|
+
deleted->post: Blog.Post = post
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
} => {
|
|
23
|
+
id = #post
|
|
24
|
+
createdAt = post.createdAt
|
|
25
|
+
titles = {
|
|
26
|
+
title: Blog.Post.Title [
|
|
27
|
+
title->post: Blog.Post = post
|
|
28
|
+
!E {
|
|
29
|
+
next: Blog.Post.Title [
|
|
30
|
+
next->prior: Blog.Post.Title = title
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
} => title.value
|
|
35
|
+
}
|