tapeworm 0.5.0 → 0.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/CHANGELOG.md +17 -0
- package/LICENSE +22 -22
- package/README.md +332 -332
- package/biome.json +58 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/src/dispatch/dispatch_service.d.ts +8 -0
- package/dist/src/dispatch/dispatch_service.d.ts.map +1 -0
- package/dist/src/dispatch/dispatch_service.js +9 -0
- package/dist/src/dispatch/dispatch_service.js.map +1 -0
- package/dist/src/event.d.ts +10 -0
- package/dist/src/event.d.ts.map +1 -0
- package/dist/src/event.js +12 -0
- package/dist/src/event.js.map +1 -0
- package/dist/src/event_store.d.ts +29 -0
- package/dist/src/event_store.d.ts.map +1 -0
- package/dist/src/event_store.js +71 -0
- package/dist/src/event_store.js.map +1 -0
- package/dist/src/event_store_partition.d.ts +28 -0
- package/dist/src/event_store_partition.d.ts.map +1 -0
- package/dist/src/event_store_partition.js +130 -0
- package/dist/src/event_store_partition.js.map +1 -0
- package/dist/src/event_stream.d.ts +32 -0
- package/dist/src/event_stream.d.ts.map +1 -0
- package/dist/src/event_stream.js +142 -0
- package/dist/src/event_stream.js.map +1 -0
- package/dist/src/persistence/commit.d.ts +4 -0
- package/dist/src/persistence/commit.d.ts.map +1 -0
- package/dist/src/persistence/commit.js +11 -0
- package/dist/src/persistence/commit.js.map +1 -0
- package/dist/src/persistence/concurrency_error.d.ts +6 -0
- package/dist/src/persistence/concurrency_error.d.ts.map +1 -0
- package/dist/src/persistence/concurrency_error.js +13 -0
- package/dist/src/persistence/concurrency_error.js.map +1 -0
- package/dist/src/persistence/duplicate_commit_error.d.ts +6 -0
- package/dist/src/persistence/duplicate_commit_error.d.ts.map +1 -0
- package/dist/src/persistence/duplicate_commit_error.js +13 -0
- package/dist/src/persistence/duplicate_commit_error.js.map +1 -0
- package/dist/src/persistence/inmemory/inmemory_partition.d.ts +23 -0
- package/dist/src/persistence/inmemory/inmemory_partition.d.ts.map +1 -0
- package/dist/src/persistence/inmemory/inmemory_partition.js +138 -0
- package/dist/src/persistence/inmemory/inmemory_partition.js.map +1 -0
- package/dist/src/persistence/inmemory/inmemory_persistence.d.ts +13 -0
- package/dist/src/persistence/inmemory/inmemory_persistence.d.ts.map +1 -0
- package/dist/src/persistence/inmemory/inmemory_persistence.js +26 -0
- package/dist/src/persistence/inmemory/inmemory_persistence.js.map +1 -0
- package/dist/src/persistence/persistence_partition.d.ts +12 -0
- package/dist/src/persistence/persistence_partition.d.ts.map +1 -0
- package/dist/src/persistence/persistence_partition.js +21 -0
- package/dist/src/persistence/persistence_partition.js.map +1 -0
- package/dist/src/persistence/persistence_provider_template.d.ts +10 -0
- package/dist/src/persistence/persistence_provider_template.d.ts.map +1 -0
- package/dist/src/persistence/persistence_provider_template.js +11 -0
- package/dist/src/persistence/persistence_provider_template.js.map +1 -0
- package/dist/src/replication/master_replication_service.d.ts +7 -0
- package/dist/src/replication/master_replication_service.d.ts.map +1 -0
- package/dist/src/replication/master_replication_service.js +9 -0
- package/dist/src/replication/master_replication_service.js.map +1 -0
- package/dist/src/types.d.ts +68 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +3 -0
- package/dist/src/types.js.map +1 -0
- package/index.ts +21 -0
- package/package.json +44 -46
- package/scripts/postbuild.js +27 -0
- package/src/dispatch/dispatch_service.ts +14 -0
- package/src/event.ts +24 -0
- package/src/event_store.ts +82 -0
- package/src/event_store_partition.ts +270 -0
- package/src/event_stream.ts +184 -0
- package/src/persistence/commit.ts +24 -0
- package/src/persistence/concurrency_error.ts +16 -0
- package/src/persistence/duplicate_commit_error.ts +16 -0
- package/src/persistence/inmemory/inmemory_partition.ts +194 -0
- package/src/persistence/inmemory/inmemory_persistence.ts +35 -0
- package/src/persistence/persistence_partition.ts +34 -0
- package/src/persistence/persistence_provider_template.ts +20 -0
- package/src/replication/master_replication_service.ts +12 -0
- package/src/types.ts +128 -0
- package/test/event_partition.ts +151 -0
- package/test/event_store.ts +25 -0
- package/test/event_stream.ts +160 -0
- package/test/persistence/inmemory.ts +139 -0
- package/tsconfig.json +13 -0
- package/vitest.config.ts +13 -0
- package/.eslintrc +0 -4
- package/.travis.yml +0 -4
- package/checkstyle-result.xml +0 -1
- package/index.js +0 -1
- package/lib/dispatch/dispatch_service.js +0 -7
- package/lib/event.js +0 -10
- package/lib/event_store.js +0 -53
- package/lib/event_store_partition.js +0 -148
- package/lib/event_stream.js +0 -150
- package/lib/persistence/commit.js +0 -12
- package/lib/persistence/concurrency_error.js +0 -10
- package/lib/persistence/duplicate_commit_error.js +0 -10
- package/lib/persistence/inmemory/inmemory_partition.js +0 -146
- package/lib/persistence/inmemory/inmemory_persistence.js +0 -25
- package/lib/persistence/persistence_partition.js +0 -23
- package/lib/persistence/persistence_provider_template.js +0 -17
- package/lib/replication/master_replication_service.js +0 -7
- package/test/event_partition.js +0 -232
- package/test/event_store.js +0 -36
- package/test/event_stream.js +0 -214
- package/test/persistence/inmemory.js +0 -162
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../../src/persistence/commit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEpD,QAAA,IAAI,MAAM,EAaM,KAAK,MAAM,SAAS,UAAU,GAAG,UAAU,EACzD,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EAAE,KACb,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var Commit = function (id, partitionId, streamId, commitSequence, events) {
|
|
4
|
+
this.id = id;
|
|
5
|
+
this.partitionId = partitionId;
|
|
6
|
+
this.streamId = streamId;
|
|
7
|
+
this.commitSequence = commitSequence;
|
|
8
|
+
this.events = events;
|
|
9
|
+
};
|
|
10
|
+
exports.default = Commit;
|
|
11
|
+
//# sourceMappingURL=commit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../../src/persistence/commit.ts"],"names":[],"mappings":";;AAEA,IAAI,MAAM,GAAG,UAEX,EAAU,EACV,WAAmB,EACnB,QAAgB,EAChB,cAAsB,EACtB,MAAgB;IAEhB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACzB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB,CAMoB,CAAC;AAErB,kBAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concurrency_error.d.ts","sourceRoot":"","sources":["../../../src/persistence/concurrency_error.ts"],"names":[],"mappings":"AAEA,UAAU,iBAAkB,SAAQ,KAAK;IACvC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,QAAA,IAAI,gBAAgB,EAGJ,KACd,OAAO,EAAE,MAAM,KACZ,iBAAiB,CAAC;AAIvB,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_util_1 = __importDefault(require("node:util"));
|
|
7
|
+
var ConcurrencyError = function (message) {
|
|
8
|
+
Error.call(this);
|
|
9
|
+
this.message = message;
|
|
10
|
+
};
|
|
11
|
+
node_util_1.default.inherits(ConcurrencyError, Error);
|
|
12
|
+
exports.default = ConcurrencyError;
|
|
13
|
+
//# sourceMappingURL=concurrency_error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concurrency_error.js","sourceRoot":"","sources":["../../../src/persistence/concurrency_error.ts"],"names":[],"mappings":";;;;;AAAA,0DAA6B;AAM7B,IAAI,gBAAgB,GAAG,UAAmC,OAAe;IACvE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACzB,CAEsB,CAAC;AAEvB,mBAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAEvC,kBAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duplicate_commit_error.d.ts","sourceRoot":"","sources":["../../../src/persistence/duplicate_commit_error.ts"],"names":[],"mappings":"AAEA,UAAU,qBAAsB,SAAQ,KAAK;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,QAAA,IAAI,oBAAoB,EAGR,KACd,OAAO,EAAE,MAAM,KACZ,qBAAqB,CAAC;AAI3B,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_util_1 = __importDefault(require("node:util"));
|
|
7
|
+
var DuplicateCommitError = function (message) {
|
|
8
|
+
Error.call(this);
|
|
9
|
+
this.message = message;
|
|
10
|
+
};
|
|
11
|
+
node_util_1.default.inherits(DuplicateCommitError, Error);
|
|
12
|
+
exports.default = DuplicateCommitError;
|
|
13
|
+
//# sourceMappingURL=duplicate_commit_error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duplicate_commit_error.js","sourceRoot":"","sources":["../../../src/persistence/duplicate_commit_error.ts"],"names":[],"mappings":";;;;;AAAA,0DAA6B;AAM7B,IAAI,oBAAoB,GAAG,UAAuC,OAAe;IAC/E,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACzB,CAE0B,CAAC;AAE3B,mBAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;AAE3C,kBAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import Promise from "bluebird";
|
|
2
|
+
import type { ICommit, ISnapshot, NodeCallback } from "../../types";
|
|
3
|
+
interface IInMemoryPartition {
|
|
4
|
+
_commits: ICommit[];
|
|
5
|
+
_streamIndex: Record<string, ICommit[]>;
|
|
6
|
+
_commitIds: string[];
|
|
7
|
+
_commitConcurrencyCheck: string[];
|
|
8
|
+
_snapshots: Record<string, ISnapshot>;
|
|
9
|
+
_promisify<T>(value: T, callback?: NodeCallback<T>): Promise<T>;
|
|
10
|
+
truncateStreamFrom(streamId: string, commitSequence: number, remove?: boolean | NodeCallback<void>, callback?: NodeCallback<void>): Promise<void>;
|
|
11
|
+
applyCommitHeader(commitId: string, header: Record<string, unknown>, callback?: NodeCallback<ICommit>): Promise<ICommit>;
|
|
12
|
+
append(commit: ICommit, callback?: NodeCallback<ICommit>): Promise<ICommit>;
|
|
13
|
+
storeSnapshot(streamId: string, snapshot: Record<string, unknown> | undefined, version: number, callback?: NodeCallback<ISnapshot>): Promise<ISnapshot>;
|
|
14
|
+
loadSnapshot(streamId: string, callback?: NodeCallback<ISnapshot | undefined>): Promise<ISnapshot | undefined>;
|
|
15
|
+
markAsDispatched(commit: ICommit, callback?: NodeCallback<ICommit>): Promise<ICommit>;
|
|
16
|
+
getUndispatched(callback?: NodeCallback<ICommit[]>): Promise<ICommit[]>;
|
|
17
|
+
queryAll(callback?: NodeCallback<ICommit[]>): Promise<ICommit[]>;
|
|
18
|
+
getLatestCommit(streamId: string, callback?: NodeCallback<ICommit | undefined>): Promise<ICommit | undefined>;
|
|
19
|
+
queryStream(streamId: string, fromEventSequence?: number | NodeCallback<ICommit[]>, callback?: NodeCallback<ICommit[]>): Promise<ICommit[]>;
|
|
20
|
+
}
|
|
21
|
+
declare var InMemoryPartition: new () => IInMemoryPartition;
|
|
22
|
+
export default InMemoryPartition;
|
|
23
|
+
//# sourceMappingURL=inmemory_partition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inmemory_partition.d.ts","sourceRoot":"","sources":["../../../../src/persistence/inmemory/inmemory_partition.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,UAAU,CAAC;AAE/B,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIpE,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACxC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAChE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClJ,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzH,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5E,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACxJ,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAC/G,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtF,eAAe,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACxE,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAC9G,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CAC7I;AAED,QAAA,IAAI,iBAAiB,EAML,UAAU,kBAAkB,CAAC;AAkK7C,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const bluebird_1 = __importDefault(require("bluebird"));
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
const concurrency_error_1 = __importDefault(require("../concurrency_error"));
|
|
9
|
+
const duplicate_commit_error_1 = __importDefault(require("../duplicate_commit_error"));
|
|
10
|
+
var InMemoryPartition = function () {
|
|
11
|
+
this._commits = [];
|
|
12
|
+
this._streamIndex = {};
|
|
13
|
+
this._commitIds = [];
|
|
14
|
+
this._commitConcurrencyCheck = [];
|
|
15
|
+
this._snapshots = {};
|
|
16
|
+
};
|
|
17
|
+
function getConcurrencyKey(commit) {
|
|
18
|
+
return commit.streamId + "-" + commit.commitSequence;
|
|
19
|
+
}
|
|
20
|
+
InMemoryPartition.prototype._promisify = function (value, callback) {
|
|
21
|
+
return bluebird_1.default.resolve(value).nodeify(callback);
|
|
22
|
+
};
|
|
23
|
+
InMemoryPartition.prototype.truncateStreamFrom = function (streamId, commitSequence, remove, callback) {
|
|
24
|
+
if (typeof remove === "function") {
|
|
25
|
+
callback = remove;
|
|
26
|
+
}
|
|
27
|
+
var self = this;
|
|
28
|
+
var commits = Array.from(this._streamIndex[streamId]);
|
|
29
|
+
for (var i = 0; i < commits.length; i++) {
|
|
30
|
+
var commit = commits[i];
|
|
31
|
+
if (commit.commitSequence >= commitSequence) {
|
|
32
|
+
//remove from commitId
|
|
33
|
+
self._commitIds = lodash_1.default.without(self._commitIds, commit.id);
|
|
34
|
+
self._commitConcurrencyCheck = lodash_1.default.without(self._commitConcurrencyCheck, getConcurrencyKey(commit));
|
|
35
|
+
self._commits = lodash_1.default.without(self._commits, commit);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
commits = commits.slice(0, Math.max(commitSequence, 0));
|
|
39
|
+
this._streamIndex[streamId] = commits;
|
|
40
|
+
return this._promisify(undefined, callback);
|
|
41
|
+
};
|
|
42
|
+
InMemoryPartition.prototype.applyCommitHeader = function (commitId, header, callback) {
|
|
43
|
+
var commit = lodash_1.default.find(this._commits, { id: commitId });
|
|
44
|
+
if (commit) {
|
|
45
|
+
lodash_1.default.assign(commit, header);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
throw new Error("Trying to apply header to missing commit: " + commitId);
|
|
49
|
+
}
|
|
50
|
+
return this._promisify(commit, callback);
|
|
51
|
+
};
|
|
52
|
+
InMemoryPartition.prototype.append = function (commit, callback) {
|
|
53
|
+
commit.isDispatched = false;
|
|
54
|
+
//check for duplicates
|
|
55
|
+
if (lodash_1.default.includes(this._commitIds, commit.id)) {
|
|
56
|
+
throw new duplicate_commit_error_1.default("Duplicate commit of " + commit.id);
|
|
57
|
+
}
|
|
58
|
+
var concurrencyKey = getConcurrencyKey(commit);
|
|
59
|
+
if (lodash_1.default.includes(this._commitConcurrencyCheck, concurrencyKey)) {
|
|
60
|
+
throw new concurrency_error_1.default("Concurrency error on stream " + commit.streamId);
|
|
61
|
+
}
|
|
62
|
+
//check concurrency
|
|
63
|
+
this._commits.push(commit);
|
|
64
|
+
this._commitIds.push(commit.id);
|
|
65
|
+
this._commitConcurrencyCheck.push(concurrencyKey);
|
|
66
|
+
var index = this._streamIndex[commit.streamId];
|
|
67
|
+
if (!index) {
|
|
68
|
+
index = this._streamIndex[commit.streamId] = [];
|
|
69
|
+
}
|
|
70
|
+
index.push(commit);
|
|
71
|
+
return this._promisify(commit, callback);
|
|
72
|
+
};
|
|
73
|
+
InMemoryPartition.prototype.storeSnapshot = function (streamId, snapshot, version, callback) {
|
|
74
|
+
return this._promisify((this._snapshots[streamId] = {
|
|
75
|
+
id: streamId,
|
|
76
|
+
version: version,
|
|
77
|
+
snapshot: snapshot,
|
|
78
|
+
}), callback);
|
|
79
|
+
};
|
|
80
|
+
// Loads the latest snapshot
|
|
81
|
+
InMemoryPartition.prototype.loadSnapshot = function (streamId, callback) {
|
|
82
|
+
return this._promisify(this._snapshots[streamId], callback);
|
|
83
|
+
};
|
|
84
|
+
InMemoryPartition.prototype.markAsDispatched = function (commit, callback) {
|
|
85
|
+
commit.isDispatched = true;
|
|
86
|
+
return this._promisify(commit, callback);
|
|
87
|
+
};
|
|
88
|
+
InMemoryPartition.prototype.getUndispatched = function (callback) {
|
|
89
|
+
var commits = this._commits;
|
|
90
|
+
var undispatched = [];
|
|
91
|
+
for (var i = 0; i < commits.length; i++) {
|
|
92
|
+
if (!commits[i].isDispatched) {
|
|
93
|
+
undispatched.push(commits[i]);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return this._promisify(undispatched, callback);
|
|
97
|
+
};
|
|
98
|
+
InMemoryPartition.prototype.queryAll = function (callback) {
|
|
99
|
+
return this._promisify(this._commits.slice(), callback);
|
|
100
|
+
};
|
|
101
|
+
InMemoryPartition.prototype.getLatestCommit = function (streamId, callback) {
|
|
102
|
+
var result = this._streamIndex[streamId];
|
|
103
|
+
if (result) {
|
|
104
|
+
return this._promisify(result.slice().pop(), callback);
|
|
105
|
+
}
|
|
106
|
+
return this._promisify(undefined, callback);
|
|
107
|
+
};
|
|
108
|
+
InMemoryPartition.prototype.queryStream = function (streamId, fromEventSequence, callback) {
|
|
109
|
+
if (lodash_1.default.isFunction(fromEventSequence)) {
|
|
110
|
+
callback = fromEventSequence;
|
|
111
|
+
fromEventSequence = 0;
|
|
112
|
+
}
|
|
113
|
+
var result = this._streamIndex[streamId];
|
|
114
|
+
if (result) {
|
|
115
|
+
var sliced = result.slice();
|
|
116
|
+
if (fromEventSequence > 0) {
|
|
117
|
+
var startCommitId = 0;
|
|
118
|
+
var foundEvents = 0;
|
|
119
|
+
for (var i = 0; i < sliced.length; i++) {
|
|
120
|
+
foundEvents += sliced[0].events.length;
|
|
121
|
+
startCommitId++;
|
|
122
|
+
if (foundEvents >= fromEventSequence) {
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
var tooMany = foundEvents - fromEventSequence;
|
|
127
|
+
sliced = sliced.slice(startCommitId - (tooMany > 0 ? 1 : 0));
|
|
128
|
+
if (tooMany > 0) {
|
|
129
|
+
sliced[0] = lodash_1.default.clone(sliced[0]); // avoid modifying reference
|
|
130
|
+
sliced[0].events = sliced[0].events.slice(sliced[0].events.length - tooMany);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return this._promisify(sliced, callback);
|
|
134
|
+
}
|
|
135
|
+
return this._promisify(result, callback);
|
|
136
|
+
};
|
|
137
|
+
exports.default = InMemoryPartition;
|
|
138
|
+
//# sourceMappingURL=inmemory_partition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inmemory_partition.js","sourceRoot":"","sources":["../../../../src/persistence/inmemory/inmemory_partition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Promise from "bluebird";
|
|
2
|
+
import type { NodeCallback } from "../../types";
|
|
3
|
+
import Partition from "./inmemory_partition";
|
|
4
|
+
type InMemoryPartitionInstance = InstanceType<typeof Partition>;
|
|
5
|
+
interface IInMemoryPersistence {
|
|
6
|
+
_partitions: Record<string, InMemoryPartitionInstance>;
|
|
7
|
+
_promisify<T>(value: T, callback?: NodeCallback<T>): Promise<T>;
|
|
8
|
+
openPartition(partitionId?: string, callback?: NodeCallback<InMemoryPartitionInstance>): Promise<InMemoryPartitionInstance>;
|
|
9
|
+
_getPartition(partitionId?: string): InMemoryPartitionInstance;
|
|
10
|
+
}
|
|
11
|
+
declare var InMemoryPersistence: new () => IInMemoryPersistence;
|
|
12
|
+
export default InMemoryPersistence;
|
|
13
|
+
//# sourceMappingURL=inmemory_persistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inmemory_persistence.d.ts","sourceRoot":"","sources":["../../../../src/persistence/inmemory/inmemory_persistence.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,KAAK,yBAAyB,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC;AAEhE,UAAU,oBAAoB;IAC5B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IACvD,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAChE,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,yBAAyB,CAAC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC5H,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC;CAChE;AAED,QAAA,IAAI,mBAAmB,EAEP,UAAU,oBAAoB,CAAC;AAmB/C,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const bluebird_1 = __importDefault(require("bluebird"));
|
|
7
|
+
const inmemory_partition_1 = __importDefault(require("./inmemory_partition"));
|
|
8
|
+
var InMemoryPersistence = function InMemoryPersistance() {
|
|
9
|
+
this._partitions = {};
|
|
10
|
+
};
|
|
11
|
+
InMemoryPersistence.prototype._promisify = function (value, callback) {
|
|
12
|
+
return bluebird_1.default.resolve(value).nodeify(callback);
|
|
13
|
+
};
|
|
14
|
+
InMemoryPersistence.prototype.openPartition = function (partitionId, callback) {
|
|
15
|
+
return this._promisify(this._getPartition(partitionId), callback);
|
|
16
|
+
};
|
|
17
|
+
InMemoryPersistence.prototype._getPartition = function (partitionId) {
|
|
18
|
+
var currentPartitionId = partitionId || "master";
|
|
19
|
+
var partition = this._partitions[currentPartitionId];
|
|
20
|
+
if (partition == null) {
|
|
21
|
+
partition = this._partitions[currentPartitionId] = new inmemory_partition_1.default();
|
|
22
|
+
}
|
|
23
|
+
return partition;
|
|
24
|
+
};
|
|
25
|
+
exports.default = InMemoryPersistence;
|
|
26
|
+
//# sourceMappingURL=inmemory_persistence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inmemory_persistence.js","sourceRoot":"","sources":["../../../../src/persistence/inmemory/inmemory_persistence.ts"],"names":[],"mappings":";;;;;AAAA,wDAA+B;AAE/B,8EAA6C;AAW7C,IAAI,mBAAmB,GAAG,SAAS,mBAAmB;IACpD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACxB,CAA8C,CAAC;AAE/C,mBAAmB,CAAC,SAAS,CAAC,UAAU,GAAG,UAAyC,KAAQ,EAAE,QAA0B;IACtH,OAAO,kBAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,mBAAmB,CAAC,SAAS,CAAC,aAAa,GAAG,UAAsC,WAAoB,EAAE,QAAkD;IAC1J,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,mBAAmB,CAAC,SAAS,CAAC,aAAa,GAAG,UAAsC,WAAoB;IACtG,IAAI,kBAAkB,GAAG,WAAW,IAAI,QAAQ,CAAC;IACjD,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACrD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,GAAG,IAAI,4BAAS,EAAE,CAAC;IACrE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,kBAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ICommit, NodeCallback } from "../types";
|
|
2
|
+
interface IPersistencePartitionTemplate {
|
|
3
|
+
append(_commit: ICommit, _callback?: NodeCallback<ICommit>): void;
|
|
4
|
+
getUndispatched(_callback?: NodeCallback<ICommit[]>): void;
|
|
5
|
+
markAsDispatched(_commit: ICommit, _callback?: NodeCallback<void>): void;
|
|
6
|
+
queryAll(_callback?: NodeCallback<ICommit[]>): void;
|
|
7
|
+
queryStream(_streamId: string, _callback?: NodeCallback<ICommit[]>): void;
|
|
8
|
+
}
|
|
9
|
+
/** Abstract template — subclasses must override all methods. */
|
|
10
|
+
declare var PersistencePartition: new () => IPersistencePartitionTemplate;
|
|
11
|
+
export default PersistencePartition;
|
|
12
|
+
//# sourceMappingURL=persistence_partition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence_partition.d.ts","sourceRoot":"","sources":["../../../src/persistence/persistence_partition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEtD,UAAU,6BAA6B;IACrC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAClE,eAAe,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;IAC3D,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACzE,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;IACpD,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;CAC3E;AAED,gEAAgE;AAChE,QAAA,IAAI,oBAAoB,EAAgC,UAAU,6BAA6B,CAAC;AAsBhG,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/** Abstract template — subclasses must override all methods. */
|
|
4
|
+
var PersistencePartition = function () { };
|
|
5
|
+
PersistencePartition.prototype.append = function (_commit, _callback) {
|
|
6
|
+
//add commit
|
|
7
|
+
};
|
|
8
|
+
PersistencePartition.prototype.getUndispatched = function (_callback) {
|
|
9
|
+
//return events which are not dispatched
|
|
10
|
+
};
|
|
11
|
+
PersistencePartition.prototype.markAsDispatched = function (_commit, _callback) {
|
|
12
|
+
//return events which are not dispatched
|
|
13
|
+
};
|
|
14
|
+
PersistencePartition.prototype.queryAll = function (_callback) {
|
|
15
|
+
//return Query
|
|
16
|
+
};
|
|
17
|
+
PersistencePartition.prototype.queryStream = function (_streamId, _callback) {
|
|
18
|
+
//return Query;
|
|
19
|
+
};
|
|
20
|
+
exports.default = PersistencePartition;
|
|
21
|
+
//# sourceMappingURL=persistence_partition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence_partition.js","sourceRoot":"","sources":["../../../src/persistence/persistence_partition.ts"],"names":[],"mappings":";;AAUA,gEAAgE;AAChE,IAAI,oBAAoB,GAAG,cAAa,CAAuD,CAAC;AAEhG,oBAAoB,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,OAAgB,EAAE,SAAiC;IACnG,YAAY;AACd,CAAC,CAAC;AAEF,oBAAoB,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,SAAmC;IAC5F,wCAAwC;AAC1C,CAAC,CAAC;AAEF,oBAAoB,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,OAAgB,EAAE,SAA8B;IAC1G,wCAAwC;AAC1C,CAAC,CAAC;AAEF,oBAAoB,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,SAAmC;IACrF,cAAc;AAChB,CAAC,CAAC;AAEF,oBAAoB,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,SAAiB,EAAE,SAAmC;IAC3G,eAAe;AACjB,CAAC,CAAC;AAEF,kBAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { NodeCallback } from "../types";
|
|
2
|
+
interface IPersistenceProviderTemplate {
|
|
3
|
+
openPartition(_partitionId?: string, _callback?: NodeCallback<unknown>): void;
|
|
4
|
+
deletePartition(_partitionId?: string, _callback?: NodeCallback<void>): void;
|
|
5
|
+
close(_callback?: NodeCallback<void>): void;
|
|
6
|
+
}
|
|
7
|
+
/** Abstract template — subclasses must override all methods. */
|
|
8
|
+
declare var PersistenceProvider: new () => IPersistenceProviderTemplate;
|
|
9
|
+
export default PersistenceProvider;
|
|
10
|
+
//# sourceMappingURL=persistence_provider_template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence_provider_template.d.ts","sourceRoot":"","sources":["../../../src/persistence/persistence_provider_template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,UAAU,4BAA4B;IACpC,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9E,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7E,KAAK,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC7C;AAED,gEAAgE;AAChE,QAAA,IAAI,mBAAmB,EAAgC,UAAU,4BAA4B,CAAC;AAU9F,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/** Abstract template — subclasses must override all methods. */
|
|
4
|
+
var PersistenceProvider = function () { };
|
|
5
|
+
PersistenceProvider.prototype.openPartition = function (_partitionId, _callback) {
|
|
6
|
+
// body...
|
|
7
|
+
};
|
|
8
|
+
PersistenceProvider.prototype.deletePartition = function (_partitionId, _callback) { };
|
|
9
|
+
PersistenceProvider.prototype.close = function (_callback) { };
|
|
10
|
+
exports.default = PersistenceProvider;
|
|
11
|
+
//# sourceMappingURL=persistence_provider_template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence_provider_template.js","sourceRoot":"","sources":["../../../src/persistence/persistence_provider_template.ts"],"names":[],"mappings":";;AAQA,gEAAgE;AAChE,IAAI,mBAAmB,GAAG,cAAa,CAAsD,CAAC;AAE9F,mBAAmB,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,YAAqB,EAAE,SAAiC;IAC9G,UAAU;AACZ,CAAC,CAAC;AAEF,mBAAmB,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,YAAqB,EAAE,SAA8B,IAAG,CAAC,CAAC;AAEpH,mBAAmB,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,SAA8B,IAAG,CAAC,CAAC;AAEnF,kBAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface IMasterReplicationService {
|
|
2
|
+
handle(_first_argument: unknown): void;
|
|
3
|
+
}
|
|
4
|
+
/** Abstract template — subclasses must override handle. */
|
|
5
|
+
declare var MasterReplicatonService: new () => IMasterReplicationService;
|
|
6
|
+
export default MasterReplicatonService;
|
|
7
|
+
//# sourceMappingURL=master_replication_service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"master_replication_service.d.ts","sourceRoot":"","sources":["../../../src/replication/master_replication_service.ts"],"names":[],"mappings":"AAAA,UAAU,yBAAyB;IACjC,MAAM,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;CACxC;AAED,2DAA2D;AAC3D,QAAA,IAAI,uBAAuB,EAAgC,UAAU,yBAAyB,CAAC;AAM/F,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/** Abstract template — subclasses must override handle. */
|
|
4
|
+
var MasterReplicatonService = function () { };
|
|
5
|
+
MasterReplicatonService.prototype.handle = function (_first_argument) {
|
|
6
|
+
// body...
|
|
7
|
+
};
|
|
8
|
+
exports.default = MasterReplicatonService;
|
|
9
|
+
//# sourceMappingURL=master_replication_service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"master_replication_service.js","sourceRoot":"","sources":["../../../src/replication/master_replication_service.ts"],"names":[],"mappings":";;AAIA,2DAA2D;AAC3D,IAAI,uBAAuB,GAAG,cAAa,CAAmD,CAAC;AAE/F,uBAAuB,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,eAAwB;IAC3E,UAAU;AACZ,CAAC,CAAC;AAEF,kBAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type Bluebird from "bluebird";
|
|
2
|
+
/**
|
|
3
|
+
* Node-style error-first callback.
|
|
4
|
+
*/
|
|
5
|
+
export type NodeCallback<T> = (err: Error | null, result?: T) => void;
|
|
6
|
+
/**
|
|
7
|
+
* Minimum event contract that tapeworm requires.
|
|
8
|
+
* Tapeworm reads `type` for delete detection and manages `version` internally.
|
|
9
|
+
* All other fields (payload, aggregateId, etc.) pass through untouched.
|
|
10
|
+
*/
|
|
11
|
+
export interface IBaseEvent {
|
|
12
|
+
id: string;
|
|
13
|
+
type: string;
|
|
14
|
+
version?: number;
|
|
15
|
+
[key: string]: unknown;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* A commit groups one or more events for atomic persistence.
|
|
19
|
+
*/
|
|
20
|
+
export interface ICommit<TEvent extends IBaseEvent = IBaseEvent> {
|
|
21
|
+
id: string;
|
|
22
|
+
partitionId: string;
|
|
23
|
+
streamId: string;
|
|
24
|
+
commitSequence: number;
|
|
25
|
+
events: TEvent[];
|
|
26
|
+
isDispatched?: boolean;
|
|
27
|
+
[key: string]: unknown;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Snapshot of aggregate state at a point in time.
|
|
31
|
+
*/
|
|
32
|
+
export interface ISnapshot {
|
|
33
|
+
id: string;
|
|
34
|
+
version: number;
|
|
35
|
+
snapshot?: Record<string, unknown>;
|
|
36
|
+
storedDateTime?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The persistence partition interface that all store implementations must satisfy.
|
|
40
|
+
* Methods marked optional are only implemented by some stores.
|
|
41
|
+
*/
|
|
42
|
+
export interface IPersistencePartition<TEvent extends IBaseEvent = IBaseEvent> {
|
|
43
|
+
append(commit: ICommit<TEvent>, callback?: NodeCallback<ICommit<TEvent>>): Bluebird<ICommit<TEvent>>;
|
|
44
|
+
queryAll(callback?: NodeCallback<ICommit<TEvent>[]>): Bluebird<ICommit<TEvent>[]>;
|
|
45
|
+
queryStream(streamId: string, fromEventSequence?: number | NodeCallback<ICommit<TEvent>[]>, callback?: NodeCallback<ICommit<TEvent>[]>): Bluebird<ICommit<TEvent>[]>;
|
|
46
|
+
getUndispatched(callback?: NodeCallback<ICommit<TEvent>[]>): Bluebird<ICommit<TEvent>[]>;
|
|
47
|
+
markAsDispatched(commit: ICommit<TEvent>, callback?: NodeCallback<ICommit<TEvent>>): Bluebird<ICommit<TEvent>>;
|
|
48
|
+
storeSnapshot?(streamId: string, snapshot: Record<string, unknown> | undefined, version: number, callback?: NodeCallback<ISnapshot>): Bluebird<ISnapshot>;
|
|
49
|
+
loadSnapshot?(streamId: string, callback?: NodeCallback<ISnapshot | undefined>): Bluebird<ISnapshot | undefined>;
|
|
50
|
+
removeSnapshot?(streamId: string, callback?: NodeCallback<void>): Bluebird<void>;
|
|
51
|
+
removeSnapshots?(streamIds: string[], callback?: NodeCallback<void>): Bluebird<void>;
|
|
52
|
+
getLatestCommit?(streamId: string, callback?: NodeCallback<ICommit<TEvent> | undefined>): Bluebird<ICommit<TEvent> | undefined>;
|
|
53
|
+
truncateStreamFrom?(streamId: string, commitSequence: number, remove?: boolean | NodeCallback<void>, callback?: NodeCallback<void>): Bluebird<void>;
|
|
54
|
+
applyCommitHeader?(commitId: string, header: Record<string, unknown>, callback?: NodeCallback<ICommit<TEvent>>): Bluebird<ICommit<TEvent>>;
|
|
55
|
+
queryStreamWithSnapshot?(streamId: string, callback?: NodeCallback<unknown>): Bluebird<unknown>;
|
|
56
|
+
querySnapshotsByMaxDateTime?(dateTime: string, callback?: NodeCallback<ISnapshot[]>): Bluebird<ISnapshot[]>;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Top-level persistence provider — manages partitions.
|
|
60
|
+
*/
|
|
61
|
+
export interface IPersistenceProvider<TEvent extends IBaseEvent = IBaseEvent> {
|
|
62
|
+
openPartition(partitionId?: string, callback?: NodeCallback<IPersistencePartition<TEvent>>): Bluebird<IPersistencePartition<TEvent>>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Dispatch handler for publishing committed events.
|
|
66
|
+
*/
|
|
67
|
+
export type DispatchHandler<TEvent extends IBaseEvent = IBaseEvent> = (commit: ICommit<TEvent>, done?: () => void) => void;
|
|
68
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
package/index.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import EventStore from "./src/event_store";
|
|
2
|
+
|
|
3
|
+
export {
|
|
4
|
+
Commit,
|
|
5
|
+
ConcurrencyError,
|
|
6
|
+
DuplicateCommitError,
|
|
7
|
+
Event,
|
|
8
|
+
EventStorePartition,
|
|
9
|
+
EventStream,
|
|
10
|
+
} from "./src/event_store";
|
|
11
|
+
// Re-export types for TypeScript consumers
|
|
12
|
+
export type {
|
|
13
|
+
DispatchHandler,
|
|
14
|
+
IBaseEvent,
|
|
15
|
+
ICommit,
|
|
16
|
+
IPersistencePartition,
|
|
17
|
+
IPersistenceProvider,
|
|
18
|
+
ISnapshot,
|
|
19
|
+
NodeCallback,
|
|
20
|
+
} from "./src/types";
|
|
21
|
+
export default EventStore;
|
package/package.json
CHANGED
|
@@ -1,46 +1,44 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "tapeworm",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "",
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"
|
|
12
|
-
"test
|
|
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
|
-
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "tapeworm",
|
|
3
|
+
"version": "0.6.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"directories": {
|
|
8
|
+
"test": "test"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc && node scripts/postbuild.js",
|
|
12
|
+
"test": "vitest run",
|
|
13
|
+
"test:watch": "vitest watch",
|
|
14
|
+
"check": "biome check src test",
|
|
15
|
+
"format": "biome format src test",
|
|
16
|
+
"format:fix": "biome format --write src test",
|
|
17
|
+
"lint": "biome lint src test",
|
|
18
|
+
"lint:fix": "biome lint --write src test"
|
|
19
|
+
},
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "git",
|
|
22
|
+
"url": "https://github.com/surikaterna/tapeworm"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"event sourcing",
|
|
26
|
+
"event",
|
|
27
|
+
"store"
|
|
28
|
+
],
|
|
29
|
+
"author": "",
|
|
30
|
+
"license": "MIT",
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@biomejs/biome": "2.2.4",
|
|
33
|
+
"@types/bluebird": "3.5.42",
|
|
34
|
+
"@types/lodash": "4.17.24",
|
|
35
|
+
"@types/node": "26.5.1",
|
|
36
|
+
"@types/uuid": "8.3.4",
|
|
37
|
+
"vitest": "^5.0.0"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"bluebird": "^2.5.2",
|
|
41
|
+
"lodash": "^4.18.0",
|
|
42
|
+
"uuid": "^11.1.1"
|
|
43
|
+
}
|
|
44
|
+
}
|