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.
Files changed (62) hide show
  1. package/dist/authorization/authorization-keystore.d.ts +5 -4
  2. package/dist/authorization/authorization-keystore.js +16 -13
  3. package/dist/authorization/authorization-keystore.js.map +1 -1
  4. package/dist/http/router.d.ts +5 -3
  5. package/dist/http/router.js +125 -52
  6. package/dist/http/router.js.map +1 -1
  7. package/dist/http/stream.d.ts +10 -0
  8. package/dist/http/stream.js +35 -0
  9. package/dist/http/stream.js.map +1 -0
  10. package/dist/index.d.ts +2 -3
  11. package/dist/index.js +3 -3
  12. package/dist/index.js.map +1 -1
  13. package/dist/jinaga-server.js +7 -8
  14. package/dist/jinaga-server.js.map +1 -1
  15. package/dist/postgres/connection.js +1 -3
  16. package/dist/postgres/connection.js.map +1 -1
  17. package/dist/postgres/postgres-store.d.ts +4 -4
  18. package/dist/postgres/postgres-store.js +2 -2
  19. package/dist/postgres/postgres-store.js.map +1 -1
  20. package/dist/postgres/query-description.d.ts +75 -0
  21. package/dist/postgres/query-description.js +283 -0
  22. package/dist/postgres/query-description.js.map +1 -0
  23. package/dist/postgres/specification-result-sql.d.ts +2 -2
  24. package/dist/postgres/specification-result-sql.js +39 -324
  25. package/dist/postgres/specification-result-sql.js.map +1 -1
  26. package/dist/postgres/specification-sql.d.ts +2 -2
  27. package/dist/postgres/specification-sql.js +60 -163
  28. package/dist/postgres/specification-sql.js.map +1 -1
  29. package/http/sans-auth/.env.local +1 -0
  30. package/http/sans-auth/Create post sans auth.http +27 -0
  31. package/http/sans-auth/Create site sans auth.http +11 -0
  32. package/http/sans-auth/Feed sites.http +1 -0
  33. package/http/sans-auth/Feeds sites.http +12 -0
  34. package/http/sans-auth/Get posts sans auth.http +35 -0
  35. package/http/sans-auth/Get sites sans auth.http +12 -0
  36. package/http/sans-auth/stream.sh +2 -0
  37. package/integration-test/jinaga-test/Dockerfile +1 -1
  38. package/integration-test/jinaga-test/package-lock.json +917 -748
  39. package/integration-test/jinaga-test/package.json +3 -3
  40. package/package.json +2 -2
  41. package/replicator/package-lock.json +16 -16
  42. package/replicator/package.json +1 -1
  43. package/src/authorization/authorization-keystore.ts +23 -14
  44. package/src/http/router.ts +154 -64
  45. package/src/http/stream.ts +32 -0
  46. package/src/index.ts +3 -4
  47. package/src/jinaga-server.ts +8 -8
  48. package/src/postgres/connection.ts +1 -3
  49. package/src/postgres/postgres-store.ts +5 -8
  50. package/src/postgres/query-description.ts +435 -0
  51. package/src/postgres/specification-result-sql.ts +56 -489
  52. package/src/postgres/specification-sql.ts +71 -232
  53. package/test/authorization/authorizationSpec.ts +12 -2
  54. package/test/postgres/postgresSpecificationSpec.ts +15 -15
  55. package/dist/http/feed-cache.d.ts +0 -12
  56. package/dist/http/feed-cache.js +0 -3
  57. package/dist/http/feed-cache.js.map +0 -1
  58. package/dist/memory/memory-feed-cache.d.ts +0 -6
  59. package/dist/memory/memory-feed-cache.js +0 -17
  60. package/dist/memory/memory-feed-cache.js.map +0 -1
  61. package/src/http/feed-cache.ts +0 -14
  62. package/src/memory/memory-feed-cache.ts +0 -14
@@ -1,17 +1,18 @@
1
- import { Authorization, AuthorizationRules, DistributionRules, FactFeed, FactRecord, FactReference, Feed, Query, Specification, Storage, UserIdentity } from "jinaga";
1
+ import { Authorization, AuthorizationRules, DistributionRules, FactFeed, FactManager, FactRecord, FactReference, Query, ReferencesByName, Specification, Storage, UserIdentity } from "jinaga";
2
2
  import { Keystore } from "../keystore";
3
3
  export declare class AuthorizationKeystore implements Authorization {
4
+ private factManager;
4
5
  private store;
5
6
  private keystore;
6
7
  private authorizationEngine;
7
8
  private distributionEngine;
8
9
  private distributedFacts;
9
- constructor(store: Storage, keystore: Keystore, authorizationRules: AuthorizationRules | null, distributionRules: DistributionRules | null);
10
+ constructor(factManager: FactManager, store: Storage, keystore: Keystore, authorizationRules: AuthorizationRules | null, distributionRules: DistributionRules | null);
10
11
  getOrCreateUserFact(userIdentity: UserIdentity): Promise<FactRecord>;
11
12
  query(userIdentity: UserIdentity | null, start: FactReference, query: Query): Promise<import("jinaga").FactPath[]>;
12
13
  read(userIdentity: UserIdentity | null, start: FactReference[], specification: Specification): Promise<import("jinaga").ProjectedResult[]>;
13
- feed(userIdentity: UserIdentity | null, feed: Feed, start: FactReference[], bookmark: string): Promise<FactFeed>;
14
+ feed(userIdentity: UserIdentity | null, specification: Specification, start: FactReference[], bookmark: string): Promise<FactFeed>;
14
15
  load(userIdentity: UserIdentity, references: FactReference[]): Promise<FactRecord[]>;
15
16
  save(userIdentity: UserIdentity | null, facts: FactRecord[]): Promise<FactRecord[]>;
16
- verifyDistribution(userIdentity: UserIdentity | null, feeds: Feed[], start: FactReference[]): Promise<void>;
17
+ verifyDistribution(userIdentity: UserIdentity | null, feeds: Specification[], namedStart: ReferencesByName): Promise<void>;
17
18
  }
@@ -13,7 +13,8 @@ exports.AuthorizationKeystore = void 0;
13
13
  const jinaga_1 = require("jinaga");
14
14
  const distributed_fact_cache_1 = require("./distributed-fact-cache");
15
15
  class AuthorizationKeystore {
16
- constructor(store, keystore, authorizationRules, distributionRules) {
16
+ constructor(factManager, store, keystore, authorizationRules, distributionRules) {
17
+ this.factManager = factManager;
17
18
  this.store = store;
18
19
  this.keystore = keystore;
19
20
  this.distributedFacts = new distributed_fact_cache_1.DistributedFactCache();
@@ -36,7 +37,7 @@ class AuthorizationKeystore {
36
37
  });
37
38
  }
38
39
  query(userIdentity, start, query) {
39
- return this.store.query(start, query);
40
+ return this.factManager.query(start, query);
40
41
  }
41
42
  read(userIdentity, start, specification) {
42
43
  return __awaiter(this, void 0, void 0, function* () {
@@ -44,27 +45,29 @@ class AuthorizationKeystore {
44
45
  const userReference = userIdentity
45
46
  ? yield this.keystore.getUserFact(userIdentity)
46
47
  : null;
48
+ const namedStart = specification.given.reduce((map, label, index) => (Object.assign(Object.assign({}, map), { [label.name]: start[index] })), {});
47
49
  // Break the specification into feeds and check distribution.
48
50
  const feeds = (0, jinaga_1.buildFeeds)(specification);
49
- const canDistribute = yield this.distributionEngine.canDistributeToAll(feeds, start, userReference);
51
+ const canDistribute = yield this.distributionEngine.canDistributeToAll(feeds, namedStart, userReference);
50
52
  if (canDistribute.type === "failure") {
51
53
  throw new jinaga_1.Forbidden(canDistribute.reason);
52
54
  }
53
55
  }
54
- return yield this.store.read(start, specification);
56
+ return yield this.factManager.read(start, specification);
55
57
  });
56
58
  }
57
- feed(userIdentity, feed, start, bookmark) {
59
+ feed(userIdentity, specification, start, bookmark) {
58
60
  return __awaiter(this, void 0, void 0, function* () {
59
61
  if (this.distributionEngine) {
60
62
  const userReference = userIdentity
61
63
  ? yield this.keystore.getUserFact(userIdentity)
62
64
  : null;
63
- const canDistribute = yield this.distributionEngine.canDistributeToAll([feed], start, userReference);
65
+ const namedStart = specification.given.reduce((map, label, index) => (Object.assign(Object.assign({}, map), { [label.name]: start[index] })), {});
66
+ const canDistribute = yield this.distributionEngine.canDistributeToAll([specification], namedStart, userReference);
64
67
  if (canDistribute.type === "failure") {
65
68
  throw new jinaga_1.Forbidden(canDistribute.reason);
66
69
  }
67
- const factFeed = yield this.store.feed(feed, start, bookmark);
70
+ const factFeed = yield this.store.feed(specification, start, bookmark);
68
71
  const factReferences = factFeed.tuples
69
72
  .flatMap(tuple => tuple.facts)
70
73
  .filter((value, index, self) => self.findIndex((0, jinaga_1.factReferenceEquals)(value)) === index);
@@ -72,7 +75,7 @@ class AuthorizationKeystore {
72
75
  return factFeed;
73
76
  }
74
77
  else {
75
- return yield this.store.feed(feed, start, bookmark);
78
+ return yield this.store.feed(specification, start, bookmark);
76
79
  }
77
80
  });
78
81
  }
@@ -85,13 +88,13 @@ class AuthorizationKeystore {
85
88
  throw new jinaga_1.Forbidden("Unauthorized");
86
89
  }
87
90
  }
88
- return yield this.store.load(references);
91
+ return yield this.factManager.load(references);
89
92
  });
90
93
  }
91
94
  save(userIdentity, facts) {
92
95
  return __awaiter(this, void 0, void 0, function* () {
93
96
  if (!this.authorizationEngine) {
94
- const envelopes = yield this.store.save(facts.map(fact => ({
97
+ const envelopes = yield this.factManager.save(facts.map(fact => ({
95
98
  fact,
96
99
  signatures: []
97
100
  })));
@@ -101,7 +104,7 @@ class AuthorizationKeystore {
101
104
  const authorizedFacts = yield this.authorizationEngine.authorizeFacts(facts, userFact);
102
105
  if (userIdentity) {
103
106
  const signedFacts = yield this.keystore.signFacts(userIdentity, authorizedFacts);
104
- const envelopes = yield this.store.save(signedFacts);
107
+ const envelopes = yield this.factManager.save(signedFacts);
105
108
  return envelopes.map(envelope => envelope.fact);
106
109
  }
107
110
  else {
@@ -109,7 +112,7 @@ class AuthorizationKeystore {
109
112
  }
110
113
  });
111
114
  }
112
- verifyDistribution(userIdentity, feeds, start) {
115
+ verifyDistribution(userIdentity, feeds, namedStart) {
113
116
  return __awaiter(this, void 0, void 0, function* () {
114
117
  if (!this.distributionEngine) {
115
118
  return;
@@ -117,7 +120,7 @@ class AuthorizationKeystore {
117
120
  const userReference = userIdentity
118
121
  ? yield this.keystore.getUserFact(userIdentity)
119
122
  : null;
120
- const canDistribute = yield this.distributionEngine.canDistributeToAll(feeds, start, userReference);
123
+ const canDistribute = yield this.distributionEngine.canDistributeToAll(feeds, namedStart, userReference);
121
124
  if (canDistribute.type === "failure") {
122
125
  throw new jinaga_1.Forbidden(canDistribute.reason);
123
126
  }
@@ -1 +1 @@
1
- {"version":3,"file":"authorization-keystore.js","sourceRoot":"","sources":["../../src/authorization/authorization-keystore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authorization-keystore.js","sourceRoot":"","sources":["../../src/authorization/authorization-keystore.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  import { Handler } from "express";
2
- import { Authorization, ProfileMessage } from "jinaga";
3
- import { FeedCache } from "./feed-cache";
2
+ import { Authorization, FactManager, FeedCache, ProfileMessage } from "jinaga";
4
3
  export interface RequestUser {
5
4
  provider: string;
6
5
  id: string;
7
6
  profile: ProfileMessage;
8
7
  }
9
8
  export declare class HttpRouter {
9
+ private factManager;
10
10
  private authorization;
11
11
  private feedCache;
12
12
  handler: Handler;
13
- constructor(authorization: Authorization, feedCache: FeedCache, backwardCompatible: boolean);
13
+ constructor(factManager: FactManager, authorization: Authorization, feedCache: FeedCache, backwardCompatible: boolean);
14
14
  private login;
15
15
  private query;
16
16
  private load;
@@ -19,6 +19,8 @@ export declare class HttpRouter {
19
19
  private write;
20
20
  private feeds;
21
21
  private feed;
22
+ private streamFeed;
23
+ private streamFeedResponse;
22
24
  private getKnownFacts;
23
25
  private selectStart;
24
26
  }
@@ -12,32 +12,77 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.HttpRouter = void 0;
13
13
  const express_1 = require("express");
14
14
  const jinaga_1 = require("jinaga");
15
- function get(method) {
15
+ const stream_1 = require("./stream");
16
+ function getOrStream(getMethod, streamMethod) {
16
17
  return (req, res, next) => {
17
18
  const user = req.user;
18
- method(user, req.params, req.query)
19
- .then(response => {
20
- if (!response) {
21
- res.sendStatus(404);
19
+ const accept = req.headers["accept"];
20
+ if (accept && accept.indexOf("application/x-jinaga-feed-stream") >= 0) {
21
+ streamMethod(user, req.params, req.query)
22
+ .then(response => {
23
+ if (!response) {
24
+ res.sendStatus(404);
25
+ next();
26
+ }
27
+ else {
28
+ res.type("application/x-jinaga-feed-stream");
29
+ res.set("Connection", "keep-alive");
30
+ res.set("Cache-Control", "no-cache");
31
+ res.set("Access-Control-Allow-Origin", "*");
32
+ res.flushHeaders();
33
+ req.on("close", () => {
34
+ response.close();
35
+ });
36
+ const timeout = setTimeout(() => {
37
+ response.close();
38
+ }, 5 * 60 * 1000);
39
+ response
40
+ .next(data => {
41
+ res.write(JSON.stringify(data) + "\n\n");
42
+ })
43
+ .done(() => {
44
+ clearTimeout(timeout);
45
+ next();
46
+ });
47
+ }
48
+ })
49
+ .catch(error => {
50
+ if (error instanceof jinaga_1.Forbidden) {
51
+ res.type("text");
52
+ res.status(403).send(error.message);
53
+ }
54
+ else {
55
+ jinaga_1.Trace.error(error);
56
+ res.status(500).send(error.message);
57
+ }
22
58
  next();
23
- }
24
- else {
25
- res.type("json");
26
- res.send(JSON.stringify(response));
59
+ });
60
+ }
61
+ else {
62
+ getMethod(user, req.params, req.query)
63
+ .then(response => {
64
+ if (!response) {
65
+ res.sendStatus(404);
66
+ next();
67
+ }
68
+ else {
69
+ res.type("json");
70
+ res.send(JSON.stringify(response));
71
+ next();
72
+ }
73
+ })
74
+ .catch(error => {
75
+ if (error instanceof jinaga_1.Forbidden) {
76
+ res.type("text");
77
+ res.status(403).send(error.message);
78
+ }
79
+ else {
80
+ jinaga_1.Trace.error(error);
81
+ res.status(500).send(error.message);
82
+ }
27
83
  next();
28
- }
29
- })
30
- .catch(error => {
31
- if (error instanceof jinaga_1.Forbidden) {
32
- res.type("text");
33
- res.status(403).send(error.message);
34
- }
35
- else {
36
- jinaga_1.Trace.error(error);
37
- res.status(500).send(error.message);
38
- }
39
- next();
40
- });
84
+ });
85
+ }
41
86
  };
42
87
  }
43
88
  function getAuthenticate(method) {
@@ -193,7 +238,8 @@ function serializeUserIdentity(user) {
193
238
  };
194
239
  }
195
240
  class HttpRouter {
196
- constructor(authorization, feedCache, backwardCompatible) {
241
+ constructor(factManager, authorization, feedCache, backwardCompatible) {
242
+ this.factManager = factManager;
197
243
  this.authorization = authorization;
198
244
  this.feedCache = feedCache;
199
245
  const router = (0, express_1.Router)();
@@ -206,7 +252,7 @@ class HttpRouter {
206
252
  router.post('/read', postString((user, input) => this.read(user, input)));
207
253
  router.post('/write', postStringCreate((user, input) => this.write(user, input)));
208
254
  router.post('/feeds', post(parseString, (user, input) => this.feeds(user, input)));
209
- router.get('/feeds/:hash', get((user, params, query) => this.feed(user, params, query)));
255
+ router.get('/feeds/:hash', getOrStream((user, params, query) => this.feed(user, params, query), (user, params, query) => this.streamFeed(user, params, query)));
210
256
  this.handler = router;
211
257
  }
212
258
  login(user) {
@@ -296,30 +342,14 @@ class HttpRouter {
296
342
  throw new Error(`The type of start fact ${i} (${start[i].type}) does not match the type of input ${i} (${specification.given[i].type})`);
297
343
  }
298
344
  }
345
+ const namedStart = specification.given.reduce((map, label, index) => (Object.assign(Object.assign({}, map), { [label.name]: start[index] })), {});
299
346
  // Verify that I can distribute all feeds to the user.
300
347
  const feeds = (0, jinaga_1.buildFeeds)(specification);
301
348
  const userIdentity = serializeUserIdentity(user);
302
- yield this.authorization.verifyDistribution(userIdentity, feeds, start);
303
- const feedDefinitionsByHash = feeds.map(feed => {
304
- const indexedStart = feed.inputs.map(input => ({
305
- factReference: start[input.inputIndex],
306
- index: input.inputIndex
307
- }));
308
- const feedDefinition = {
309
- start: indexedStart,
310
- feed
311
- };
312
- return {
313
- hash: urlSafeHash(feed),
314
- feedDefinition
315
- };
316
- });
317
- // Store all feeds in the cache.
318
- for (const d of feedDefinitionsByHash) {
319
- yield this.feedCache.storeFeed(d.hash, d.feedDefinition);
320
- }
349
+ yield this.authorization.verifyDistribution(userIdentity, feeds, namedStart);
350
+ const feedHashes = this.feedCache.addFeeds(feeds, namedStart);
321
351
  return {
322
- feeds: feedDefinitionsByHash.map(f => f.hash)
352
+ feeds: feedHashes
323
353
  };
324
354
  });
325
355
  }
@@ -336,10 +366,7 @@ class HttpRouter {
336
366
  }
337
367
  const bookmark = (_a = query["b"]) !== null && _a !== void 0 ? _a : "";
338
368
  const userIdentity = serializeUserIdentity(user);
339
- const start = feedDefinition.start.reduce((start, input) => {
340
- start[input.index] = input.factReference;
341
- return start;
342
- }, []);
369
+ const start = feedDefinition.feed.given.map(label => feedDefinition.namedStart[label.name]);
343
370
  const results = yield this.authorization.feed(userIdentity, feedDefinition.feed, start, bookmark);
344
371
  // Return distinct fact references from all the tuples.
345
372
  const references = results.tuples.flatMap(t => t.facts).filter((value, index, self) => self.findIndex(f => f.hash === value.hash && f.type === value.type) === index);
@@ -350,6 +377,56 @@ class HttpRouter {
350
377
  return response;
351
378
  });
352
379
  }
380
+ streamFeed(user, params, query) {
381
+ var _a;
382
+ return __awaiter(this, void 0, void 0, function* () {
383
+ const feedHash = params["hash"];
384
+ if (!feedHash) {
385
+ return null;
386
+ }
387
+ const feedDefinition = yield this.feedCache.getFeed(feedHash);
388
+ if (!feedDefinition) {
389
+ return null;
390
+ }
391
+ let bookmark = (_a = query["b"]) !== null && _a !== void 0 ? _a : "";
392
+ const userIdentity = serializeUserIdentity(user);
393
+ const start = feedDefinition.feed.given.map(label => feedDefinition.namedStart[label.name]);
394
+ const givenHash = (0, jinaga_1.computeObjectHash)(feedDefinition.namedStart);
395
+ const stream = new stream_1.Stream();
396
+ jinaga_1.Trace.info("Initial response");
397
+ bookmark = yield this.streamFeedResponse(userIdentity, feedDefinition, start, bookmark, stream);
398
+ const inverses = (0, jinaga_1.invertSpecification)(feedDefinition.feed);
399
+ const listeners = inverses.map(inverse => this.factManager.addSpecificationListener(inverse.inverseSpecification, (results) => __awaiter(this, void 0, void 0, function* () {
400
+ // Filter out results that do not match the given.
401
+ const matchingResults = results.filter(pr => givenHash === (0, jinaga_1.computeTupleSubsetHash)(pr.tuple, inverse.givenSubset));
402
+ if (matchingResults.length != 0) {
403
+ bookmark = yield this.streamFeedResponse(userIdentity, feedDefinition, start, bookmark, stream, true);
404
+ }
405
+ })));
406
+ stream.done(() => {
407
+ jinaga_1.Trace.info("Done");
408
+ for (const listener of listeners) {
409
+ this.factManager.removeSpecificationListener(listener);
410
+ }
411
+ });
412
+ return stream;
413
+ });
414
+ }
415
+ streamFeedResponse(userIdentity, feedDefinition, start, bookmark, stream, skipIfEmpty = false) {
416
+ return __awaiter(this, void 0, void 0, function* () {
417
+ const results = yield this.authorization.feed(userIdentity, feedDefinition.feed, start, bookmark);
418
+ // Return distinct fact references from all the tuples.
419
+ const references = results.tuples.flatMap(t => t.facts).filter((value, index, self) => self.findIndex(f => f.hash === value.hash && f.type === value.type) === index);
420
+ if (!skipIfEmpty || references.length > 0) {
421
+ const response = {
422
+ references,
423
+ bookmark: results.bookmark
424
+ };
425
+ stream.feed(response);
426
+ }
427
+ return results.bookmark;
428
+ });
429
+ }
353
430
  getKnownFacts(user) {
354
431
  return __awaiter(this, void 0, void 0, function* () {
355
432
  if (user) {
@@ -393,10 +470,6 @@ function parseString(input) {
393
470
  }
394
471
  return input;
395
472
  }
396
- function urlSafeHash(feed) {
397
- const base64 = (0, jinaga_1.computeObjectHash)(feed);
398
- return base64.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
399
- }
400
473
  function extractResults(obj) {
401
474
  if (Array.isArray(obj)) {
402
475
  const projectedResults = obj;
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare class Stream<T> {
2
+ private queue;
3
+ private handlers;
4
+ private doneHandlers;
5
+ private closed;
6
+ next(handler: (data: T) => void): Stream<T>;
7
+ done(handler: () => void): Stream<T>;
8
+ close(): void;
9
+ feed(data: any): void;
10
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Stream = void 0;
4
+ class Stream {
5
+ constructor() {
6
+ this.queue = [];
7
+ this.handlers = [];
8
+ this.doneHandlers = [];
9
+ this.closed = false;
10
+ }
11
+ next(handler) {
12
+ this.handlers.push(handler);
13
+ this.queue.forEach(data => handler(data));
14
+ return this;
15
+ }
16
+ done(handler) {
17
+ this.doneHandlers.push(handler);
18
+ return this;
19
+ }
20
+ close() {
21
+ this.closed = true;
22
+ this.doneHandlers.forEach(handler => handler());
23
+ this.queue = [];
24
+ this.handlers = [];
25
+ this.doneHandlers = [];
26
+ }
27
+ feed(data) {
28
+ if (!this.closed) {
29
+ this.queue.push(data);
30
+ this.handlers.forEach(handler => handler(data));
31
+ }
32
+ }
33
+ }
34
+ exports.Stream = Stream;
35
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/http/stream.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;IAAnB;QACY,UAAK,GAAQ,EAAE,CAAC;QAChB,aAAQ,GAA0B,EAAE,CAAC;QACrC,iBAAY,GAAmB,EAAE,CAAC;QAClC,WAAM,GAAG,KAAK,CAAC;IA2B3B,CAAC;IAzBG,IAAI,CAAC,OAA0B;QAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,OAAmB;QACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,IAAS;QACV,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;SACnD;IACL,CAAC;CACJ;AA/BD,wBA+BC"}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,10 @@
1
1
  export { AuthenticationDevice } from "./authentication/authentication-device";
2
2
  export { AuthenticationSession } from "./authentication/authentication-session";
3
3
  export { AuthorizationKeystore } from "./authorization/authorization-keystore";
4
- export { Keystore } from "./keystore";
5
- export { FeedCache } from "./http/feed-cache";
4
+ export { DistributedFactCache } from "./authorization/distributed-fact-cache";
6
5
  export { HttpRouter, RequestUser } from "./http/router";
7
6
  export { JinagaServer, JinagaServerConfig, JinagaServerInstance, tracePool } from "./jinaga-server";
8
- export { MemoryFeedCache } from "./memory/memory-feed-cache";
7
+ export { Keystore } from "./keystore";
9
8
  export { MemoryKeystore } from "./memory/memory-keystore";
10
9
  export { PostgresKeystore } from "./postgres/postgres-keystore";
11
10
  export { PostgresStore } from "./postgres/postgres-store";
package/dist/index.js CHANGED
@@ -1,19 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PostgresStore = exports.PostgresKeystore = exports.MemoryKeystore = exports.MemoryFeedCache = exports.tracePool = exports.JinagaServer = exports.HttpRouter = exports.AuthorizationKeystore = exports.AuthenticationSession = exports.AuthenticationDevice = void 0;
3
+ exports.PostgresStore = exports.PostgresKeystore = exports.MemoryKeystore = exports.tracePool = exports.JinagaServer = exports.HttpRouter = exports.DistributedFactCache = exports.AuthorizationKeystore = exports.AuthenticationSession = exports.AuthenticationDevice = void 0;
4
4
  var authentication_device_1 = require("./authentication/authentication-device");
5
5
  Object.defineProperty(exports, "AuthenticationDevice", { enumerable: true, get: function () { return authentication_device_1.AuthenticationDevice; } });
6
6
  var authentication_session_1 = require("./authentication/authentication-session");
7
7
  Object.defineProperty(exports, "AuthenticationSession", { enumerable: true, get: function () { return authentication_session_1.AuthenticationSession; } });
8
8
  var authorization_keystore_1 = require("./authorization/authorization-keystore");
9
9
  Object.defineProperty(exports, "AuthorizationKeystore", { enumerable: true, get: function () { return authorization_keystore_1.AuthorizationKeystore; } });
10
+ var distributed_fact_cache_1 = require("./authorization/distributed-fact-cache");
11
+ Object.defineProperty(exports, "DistributedFactCache", { enumerable: true, get: function () { return distributed_fact_cache_1.DistributedFactCache; } });
10
12
  var router_1 = require("./http/router");
11
13
  Object.defineProperty(exports, "HttpRouter", { enumerable: true, get: function () { return router_1.HttpRouter; } });
12
14
  var jinaga_server_1 = require("./jinaga-server");
13
15
  Object.defineProperty(exports, "JinagaServer", { enumerable: true, get: function () { return jinaga_server_1.JinagaServer; } });
14
16
  Object.defineProperty(exports, "tracePool", { enumerable: true, get: function () { return jinaga_server_1.tracePool; } });
15
- var memory_feed_cache_1 = require("./memory/memory-feed-cache");
16
- Object.defineProperty(exports, "MemoryFeedCache", { enumerable: true, get: function () { return memory_feed_cache_1.MemoryFeedCache; } });
17
17
  var memory_keystore_1 = require("./memory/memory-keystore");
18
18
  Object.defineProperty(exports, "MemoryKeystore", { enumerable: true, get: function () { return memory_keystore_1.MemoryKeystore; } });
19
19
  var postgres_keystore_1 = require("./postgres/postgres-keystore");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,gFAA8E;AAArE,6HAAA,oBAAoB,OAAA;AAC7B,kFAAgF;AAAvE,+HAAA,qBAAqB,OAAA;AAC9B,iFAA+E;AAAtE,+HAAA,qBAAqB,OAAA;AAG9B,wCAAwD;AAA/C,oGAAA,UAAU,OAAA;AACnB,iDAAoG;AAA3F,6GAAA,YAAY,OAAA;AAA4C,0GAAA,SAAS,OAAA;AAC1E,gEAA6D;AAApD,oHAAA,eAAe,OAAA;AACxB,4DAA0D;AAAjD,iHAAA,cAAc,OAAA;AACvB,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,4DAA0D;AAAjD,+GAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,gFAA8E;AAArE,6HAAA,oBAAoB,OAAA;AAC7B,kFAAgF;AAAvE,+HAAA,qBAAqB,OAAA;AAC9B,iFAA+E;AAAtE,+HAAA,qBAAqB,OAAA;AAC9B,iFAA8E;AAArE,8HAAA,oBAAoB,OAAA;AAC7B,wCAAwD;AAA/C,oGAAA,UAAU,OAAA;AACnB,iDAAoG;AAA3F,6GAAA,YAAY,OAAA;AAA4C,0GAAA,SAAS,OAAA;AAE1E,4DAA0D;AAAjD,iHAAA,cAAc,OAAA;AACvB,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,4DAA0D;AAAjD,+GAAA,aAAa,OAAA"}
@@ -16,7 +16,6 @@ const authentication_device_1 = require("./authentication/authentication-device"
16
16
  const authentication_session_1 = require("./authentication/authentication-session");
17
17
  const authorization_keystore_1 = require("./authorization/authorization-keystore");
18
18
  const router_1 = require("./http/router");
19
- const memory_feed_cache_1 = require("./memory/memory-feed-cache");
20
19
  const postgres_keystore_1 = require("./postgres/postgres-keystore");
21
20
  const postgres_store_1 = require("./postgres/postgres-store");
22
21
  const localDeviceIdentity = {
@@ -33,13 +32,13 @@ class JinagaServer {
33
32
  const keystore = createKeystore(config, pools);
34
33
  const authorizationRules = config.authorization ? config.authorization(new jinaga_1.AuthorizationRules(config.model)) : null;
35
34
  const distributionRules = config.distribution ? config.distribution(new jinaga_1.DistributionRules([])) : null;
36
- const authorization = createAuthorization(authorizationRules, distributionRules, store, keystore);
37
- const feedCache = new memory_feed_cache_1.MemoryFeedCache();
38
- // Retain backward compatibility until the user provides distribution rules.
39
- const router = new router_1.HttpRouter(authorization, feedCache, distributionRules === null);
35
+ const feedCache = new jinaga_1.FeedCache();
40
36
  const authentication = createAuthentication(store, keystore, authorizationRules);
41
37
  const network = new jinaga_1.NetworkNoOp();
42
38
  const factManager = new jinaga_1.FactManager(authentication, fork, source, store, network);
39
+ const authorization = createAuthorization(authorizationRules, distributionRules, factManager, store, keystore);
40
+ // Retain backward compatibility until the user provides distribution rules.
41
+ const router = new router_1.HttpRouter(factManager, authorization, feedCache, distributionRules === null);
43
42
  const j = new jinaga_1.Jinaga(factManager, syncStatusNotifier);
44
43
  function close() {
45
44
  return __awaiter(this, void 0, void 0, function* () {
@@ -80,13 +79,13 @@ function createKeystore(config, pools) {
80
79
  return null;
81
80
  }
82
81
  }
83
- function createAuthorization(authorizationRules, distributionRules, store, keystore) {
82
+ function createAuthorization(authorizationRules, distributionRules, factManager, store, keystore) {
84
83
  if (keystore) {
85
- const authorization = new authorization_keystore_1.AuthorizationKeystore(store, keystore, authorizationRules, distributionRules);
84
+ const authorization = new authorization_keystore_1.AuthorizationKeystore(factManager, store, keystore, authorizationRules, distributionRules);
86
85
  return authorization;
87
86
  }
88
87
  else {
89
- return new jinaga_1.AuthorizationNoOp(store);
88
+ return new jinaga_1.AuthorizationNoOp(factManager, store);
90
89
  }
91
90
  }
92
91
  function createAuthentication(store, keystore, authorizationRules) {