@belopash/typeorm-store 1.5.0 → 1.6.0-rc.10

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 (57) hide show
  1. package/lib/database.d.ts +66 -9
  2. package/lib/database.d.ts.map +1 -1
  3. package/lib/database.js +214 -27
  4. package/lib/database.js.map +1 -1
  5. package/lib/index.d.ts +2 -2
  6. package/lib/index.d.ts.map +1 -1
  7. package/lib/index.js +6 -18
  8. package/lib/index.js.map +1 -1
  9. package/lib/store.d.ts +127 -72
  10. package/lib/store.d.ts.map +1 -1
  11. package/lib/store.js +240 -415
  12. package/lib/store.js.map +1 -1
  13. package/lib/utils/cacheMap.d.ts +9 -12
  14. package/lib/utils/cacheMap.d.ts.map +1 -1
  15. package/lib/utils/cacheMap.js +16 -18
  16. package/lib/utils/cacheMap.js.map +1 -1
  17. package/lib/utils/commitOrder.d.ts +7 -0
  18. package/lib/utils/commitOrder.d.ts.map +1 -0
  19. package/lib/utils/commitOrder.js +61 -0
  20. package/lib/utils/commitOrder.js.map +1 -0
  21. package/lib/utils/deferList.d.ts +2 -5
  22. package/lib/utils/deferList.d.ts.map +1 -1
  23. package/lib/utils/deferList.js +5 -6
  24. package/lib/utils/deferList.js.map +1 -1
  25. package/lib/utils/misc.d.ts +7 -3
  26. package/lib/utils/misc.d.ts.map +1 -1
  27. package/lib/utils/misc.js +25 -54
  28. package/lib/utils/misc.js.map +1 -1
  29. package/lib/utils/stateManager.d.ts +54 -0
  30. package/lib/utils/stateManager.d.ts.map +1 -0
  31. package/lib/utils/stateManager.js +261 -0
  32. package/lib/utils/stateManager.js.map +1 -0
  33. package/package.json +8 -7
  34. package/src/database.ts +335 -37
  35. package/src/index.ts +10 -2
  36. package/src/store.ts +339 -549
  37. package/src/utils/cacheMap.ts +21 -25
  38. package/src/utils/{relationGraph.ts → commitOrder.ts} +25 -20
  39. package/src/utils/deferList.ts +5 -7
  40. package/src/utils/misc.ts +32 -50
  41. package/src/utils/stateManager.ts +311 -0
  42. package/lib/test/lib/model.d.ts +0 -25
  43. package/lib/test/lib/model.d.ts.map +0 -1
  44. package/lib/test/lib/model.js +0 -107
  45. package/lib/test/lib/model.js.map +0 -1
  46. package/lib/test/store.test.d.ts +0 -6
  47. package/lib/test/store.test.d.ts.map +0 -1
  48. package/lib/test/store.test.js +0 -167
  49. package/lib/test/store.test.js.map +0 -1
  50. package/lib/test/util.d.ts +0 -13
  51. package/lib/test/util.d.ts.map +0 -1
  52. package/lib/test/util.js +0 -57
  53. package/lib/test/util.js.map +0 -1
  54. package/lib/utils/relationGraph.d.ts +0 -3
  55. package/lib/utils/relationGraph.d.ts.map +0 -1
  56. package/lib/utils/relationGraph.js +0 -61
  57. package/lib/utils/relationGraph.js.map +0 -1
package/lib/database.d.ts CHANGED
@@ -1,12 +1,69 @@
1
- import { IsolationLevel, TypeormDatabase, TypeormDatabaseOptions } from '@subsquid/typeorm-store';
2
- import { FinalTxInfo, HotTxInfo, HashAndHeight } from '@subsquid/typeorm-store/lib/interfaces';
3
- import { StoreWithCache } from './store';
4
- export { IsolationLevel, TypeormDatabaseOptions };
5
- export declare class TypeormDatabaseWithCache extends TypeormDatabase {
6
- transact(info: FinalTxInfo, cb: (store: StoreWithCache) => Promise<void>): Promise<void>;
7
- transactHot(info: HotTxInfo, cb: (store: StoreWithCache, block: HashAndHeight) => Promise<void>): Promise<void>;
8
- transactHot2(info: HotTxInfo, cb: (store: StoreWithCache, sliceBeg: number, sliceEnd: number) => Promise<void>): Promise<void>;
1
+ import { TypeormDatabaseOptions as TypeormDatabaseOptions_, IsolationLevel } from '@subsquid/typeorm-store';
2
+ import { DatabaseState, FinalTxInfo, HashAndHeight, HotTxInfo } from '@subsquid/typeorm-store/lib/interfaces';
3
+ import { DataSource } from 'typeorm';
4
+ import { Store } from './store';
5
+ import { StateManager } from './utils/stateManager';
6
+ export { IsolationLevel };
7
+ export interface TypeormDatabaseOptions extends TypeormDatabaseOptions_ {
8
+ /**
9
+ * If true, will batch write operations
10
+ * @default true
11
+ */
12
+ batchWriteOperations?: boolean;
13
+ /**
14
+ * If true, will cache entities on request
15
+ * @default true
16
+ */
17
+ cacheEntities?: boolean;
18
+ /**
19
+ * If true, will sync entities on request
20
+ * @default true
21
+ */
22
+ syncEntities?: boolean;
23
+ /**
24
+ * If true, will reset the state on commit
25
+ * @default true
26
+ */
27
+ resetOnCommit?: boolean;
28
+ /**
29
+ * Batch size for database operations
30
+ * @default 1000
31
+ */
32
+ batchSize?: number;
33
+ /**
34
+ * Enable relation processing optimizations
35
+ * @default true
36
+ */
37
+ optimizeRelations?: boolean;
38
+ }
39
+ declare const StateManagerSymbol: unique symbol;
40
+ export declare class TypeormDatabase {
41
+ protected statusSchema: string;
42
+ protected isolationLevel: IsolationLevel;
43
+ protected batchWriteOperations: boolean;
44
+ protected cacheEntities: boolean;
45
+ protected syncEntities: boolean;
46
+ protected resetOnCommit: boolean;
47
+ protected con?: DataSource & {
48
+ [StateManagerSymbol]?: StateManager;
49
+ };
50
+ protected projectDir: string;
51
+ readonly supportsHotBlocks: boolean;
52
+ constructor(options?: TypeormDatabaseOptions);
53
+ connect(): Promise<DatabaseState>;
54
+ disconnect(): Promise<void>;
55
+ private initTransaction;
56
+ private getState;
57
+ transact(info: FinalTxInfo, cb: (store: Store) => Promise<void>): Promise<void>;
58
+ transactHot(info: HotTxInfo, cb: (store: Store, block: HashAndHeight) => Promise<void>): Promise<void>;
59
+ transactHot2(info: HotTxInfo, cb: (store: Store, sliceBeg: number, sliceEnd: number) => Promise<void>): Promise<void>;
60
+ private deleteHotBlocks;
61
+ private insertHotBlock;
62
+ private updateStatus;
9
63
  private performUpdates;
10
- private getCommitOrder;
64
+ private submit;
65
+ private escapedSchema;
66
+ private getLogger;
67
+ private getStateManager;
11
68
  }
12
69
  //# sourceMappingURL=database.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,eAAe,EAAE,sBAAsB,EAAC,MAAM,yBAAyB,CAAA;AAE/F,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,aAAa,EAAC,MAAM,wCAAwC,CAAA;AAG5F,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AAItC,OAAO,EAAC,cAAc,EAAE,sBAAsB,EAAC,CAAA;AAG/C,qBAAa,wBAAyB,SAAQ,eAAe;IAEzD,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxF,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/G,YAAY,CACR,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACjF,OAAO,CAAC,IAAI,CAAC;YAIF,cAAc;IA2B5B,OAAO,CAAC,cAAc;CAGzB"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,sBAAsB,IAAI,uBAAuB,EACjD,cAAc,EACjB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAC,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAC,MAAM,wCAAwC,CAAA;AAG3G,OAAO,EAAC,UAAU,EAAgB,MAAM,SAAS,CAAA;AACjD,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAA;AAGjD,OAAO,EAAC,cAAc,EAAC,CAAA;AAEvB,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACnE;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAE9B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,QAAA,MAAM,kBAAkB,eAAyB,CAAA;AAEjD,qBAAa,eAAe;IACxB,SAAS,CAAC,YAAY,EAAE,MAAM,CAAA;IAC9B,SAAS,CAAC,cAAc,EAAE,cAAc,CAAA;IACxC,SAAS,CAAC,oBAAoB,EAAE,OAAO,CAAA;IACvC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAA;IAChC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAA;IAC/B,SAAS,CAAC,aAAa,EAAE,OAAO,CAAA;IAChC,SAAS,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG;QACzB,CAAC,kBAAkB,CAAC,CAAC,EAAE,YAAY,CAAA;KACtC,CAAA;IACD,SAAS,CAAC,UAAU,EAAE,MAAM,CAAA;IAE5B,SAAgB,iBAAiB,EAAE,OAAO,CAAA;gBAE9B,OAAO,CAAC,EAAE,sBAAsB;IAWtC,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;IAiBjC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAKnB,eAAe;YA2Cf,QAAQ;IActB,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB/E,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtG,YAAY,CACR,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACxE,OAAO,CAAC,IAAI,CAAC;IAmDhB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,cAAc;YAOR,YAAY;YAeZ,cAAc;YA4Bd,MAAM;IAiBpB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,eAAe;CAa1B"}
package/lib/database.js CHANGED
@@ -12,52 +12,239 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.TypeormDatabaseWithCache = void 0;
16
- const typeorm_store_1 = require("@subsquid/typeorm-store");
15
+ exports.TypeormDatabase = void 0;
16
+ const logger_1 = require("@subsquid/logger");
17
+ const hot_1 = require("@subsquid/typeorm-store/lib/hot");
18
+ const util_internal_1 = require("@subsquid/util-internal");
17
19
  const assert_1 = __importDefault(require("assert"));
20
+ const typeorm_1 = require("typeorm");
18
21
  const store_1 = require("./store");
19
- const util_internal_1 = require("@subsquid/util-internal");
20
- const relationGraph_1 = require("./utils/relationGraph");
21
- // @ts-ignore
22
- class TypeormDatabaseWithCache extends typeorm_store_1.TypeormDatabase {
23
- // @ts-ignore
22
+ const stateManager_1 = require("./utils/stateManager");
23
+ const typeorm_config_1 = require("@subsquid/typeorm-config");
24
+ const StateManagerSymbol = Symbol('StateManager');
25
+ class TypeormDatabase {
26
+ constructor(options) {
27
+ this.statusSchema = options?.stateSchema || 'squid_processor';
28
+ this.isolationLevel = options?.isolationLevel || 'SERIALIZABLE';
29
+ this.batchWriteOperations = options?.batchWriteOperations ?? true;
30
+ this.cacheEntities = options?.cacheEntities ?? true;
31
+ this.syncEntities = options?.syncEntities ?? true;
32
+ this.resetOnCommit = options?.resetOnCommit ?? true;
33
+ this.supportsHotBlocks = options?.supportHotBlocks ?? true;
34
+ this.projectDir = options?.projectDir || process.cwd();
35
+ }
36
+ async connect() {
37
+ (0, assert_1.default)(this.con == null, 'already connected');
38
+ let cfg = (0, typeorm_config_1.createOrmConfig)({ projectDir: this.projectDir });
39
+ this.con = new typeorm_1.DataSource(cfg);
40
+ await this.con.initialize();
41
+ try {
42
+ return await this.con.transaction('SERIALIZABLE', (em) => this.initTransaction(em));
43
+ }
44
+ catch (e) {
45
+ await this.con.destroy().catch(() => { }); // ignore error
46
+ this.con = undefined;
47
+ throw e;
48
+ }
49
+ }
50
+ async disconnect() {
51
+ await this.con?.destroy().catch(() => { }); // ignore error
52
+ this.con = undefined;
53
+ }
54
+ async initTransaction(em) {
55
+ let schema = this.escapedSchema();
56
+ await em.query(`CREATE SCHEMA IF NOT EXISTS ${schema}`);
57
+ await em.query(`CREATE TABLE IF NOT EXISTS ${schema}.status (` +
58
+ `id int4 primary key, ` +
59
+ `height int4 not null, ` +
60
+ `hash text DEFAULT '0x', ` +
61
+ `nonce int4 DEFAULT 0` +
62
+ `)`);
63
+ await em.query(
64
+ // for databases created by prev version of typeorm store
65
+ `ALTER TABLE ${schema}.status ADD COLUMN IF NOT EXISTS hash text DEFAULT '0x'`);
66
+ await em.query(
67
+ // for databases created by prev version of typeorm store
68
+ `ALTER TABLE ${schema}.status ADD COLUMN IF NOT EXISTS nonce int DEFAULT 0`);
69
+ await em.query(`CREATE TABLE IF NOT EXISTS ${schema}.hot_block (height int4 primary key, hash text not null)`);
70
+ await em.query(`CREATE TABLE IF NOT EXISTS ${schema}.hot_change_log (` +
71
+ `block_height int4 not null references ${schema}.hot_block on delete cascade, ` +
72
+ `index int4 not null, ` +
73
+ `change jsonb not null, ` +
74
+ `PRIMARY KEY (block_height, index)` +
75
+ `)`);
76
+ let status = await em.query(`SELECT height, hash, nonce FROM ${schema}.status WHERE id = 0`);
77
+ if (status.length == 0) {
78
+ await em.query(`INSERT INTO ${schema}.status (id, height, hash) VALUES (0, -1, '0x')`);
79
+ status.push({ height: -1, hash: '0x', nonce: 0 });
80
+ }
81
+ let top = await em.query(`SELECT height, hash FROM ${schema}.hot_block ORDER BY height`);
82
+ return assertStateInvariants({ ...status[0], top });
83
+ }
84
+ async getState(em) {
85
+ let schema = this.escapedSchema();
86
+ let status = await em.query(`SELECT height, hash, nonce FROM ${schema}.status WHERE id = 0`);
87
+ (0, assert_1.default)(status.length == 1);
88
+ let top = await em.query(`SELECT hash, height FROM ${schema}.hot_block ORDER BY height`);
89
+ return assertStateInvariants({ ...status[0], top });
90
+ }
24
91
  transact(info, cb) {
25
- return super.transact(info, cb);
92
+ return this.submit(async (em) => {
93
+ let state = await this.getState(em);
94
+ let { prevHead: prev, nextHead: next } = info;
95
+ (0, assert_1.default)(state.hash === info.prevHead.hash, RACE_MSG);
96
+ (0, assert_1.default)(state.height === prev.height);
97
+ (0, assert_1.default)(prev.height < next.height);
98
+ (0, assert_1.default)(prev.hash != next.hash);
99
+ for (let i = state.top.length - 1; i >= 0; i--) {
100
+ let block = state.top[i];
101
+ await (0, hot_1.rollbackBlock)(this.statusSchema, em, block.height);
102
+ }
103
+ await this.performUpdates(cb, em);
104
+ await this.updateStatus(em, state.nonce, next);
105
+ });
26
106
  }
27
- // @ts-ignore
28
107
  transactHot(info, cb) {
29
- return super.transactHot(info, cb);
108
+ return this.transactHot2(info, async (store, sliceBeg, sliceEnd) => {
109
+ for (let i = sliceBeg; i < sliceEnd; i++) {
110
+ await cb(store, info.newBlocks[i]);
111
+ }
112
+ });
30
113
  }
31
- // @ts-ignore
32
114
  transactHot2(info, cb) {
33
- return super.transactHot2(info, cb);
34
- }
35
- async performUpdates(cb, em, changes) {
36
- let running = true;
37
- let store = new store_1.StoreWithCache(() => {
38
- (0, assert_1.default)(running, `too late to perform db updates, make sure you haven't forgot to await on db query`);
39
- return em;
40
- }, {
41
- changeTracker: changes,
42
- commitOrder: this.getCommitOrder(),
115
+ return this.submit(async (em) => {
116
+ let state = await this.getState(em);
117
+ let chain = [state, ...state.top];
118
+ assertChainContinuity(info.baseHead, info.newBlocks);
119
+ (0, assert_1.default)(info.finalizedHead.height <= ((0, util_internal_1.maybeLast)(info.newBlocks) ?? info.baseHead).height);
120
+ (0, assert_1.default)(chain.find((b) => b.hash === info.baseHead.hash), RACE_MSG);
121
+ if (info.newBlocks.length == 0) {
122
+ (0, assert_1.default)((0, util_internal_1.last)(chain).hash === info.baseHead.hash, RACE_MSG);
123
+ }
124
+ (0, assert_1.default)(chain[0].height <= info.finalizedHead.height, RACE_MSG);
125
+ let rollbackPos = info.baseHead.height + 1 - chain[0].height;
126
+ for (let i = chain.length - 1; i >= rollbackPos; i--) {
127
+ await (0, hot_1.rollbackBlock)(this.statusSchema, em, chain[i].height);
128
+ }
129
+ if (info.newBlocks.length) {
130
+ let finalizedEnd = info.finalizedHead.height - info.newBlocks[0].height + 1;
131
+ if (finalizedEnd > 0) {
132
+ await this.performUpdates((store) => cb(store, 0, finalizedEnd), em);
133
+ }
134
+ else {
135
+ finalizedEnd = 0;
136
+ }
137
+ for (let i = finalizedEnd; i < info.newBlocks.length; i++) {
138
+ let b = info.newBlocks[i];
139
+ await this.insertHotBlock(em, b);
140
+ await this.performUpdates((store) => cb(store, i, i + 1), em, new hot_1.ChangeTracker(em, this.statusSchema, b.height));
141
+ }
142
+ }
143
+ chain = chain.slice(0, rollbackPos).concat(info.newBlocks);
144
+ let finalizedHeadPos = info.finalizedHead.height - chain[0].height;
145
+ (0, assert_1.default)(chain[finalizedHeadPos].hash === info.finalizedHead.hash);
146
+ await this.deleteHotBlocks(em, info.finalizedHead.height);
147
+ await this.updateStatus(em, state.nonce, info.finalizedHead);
148
+ });
149
+ }
150
+ deleteHotBlocks(em, finalizedHeight) {
151
+ return em.query(`DELETE FROM ${this.escapedSchema()}.hot_block WHERE height <= $1`, [finalizedHeight]);
152
+ }
153
+ insertHotBlock(em, block) {
154
+ return em.query(`INSERT INTO ${this.escapedSchema()}.hot_block (height, hash) VALUES ($1, $2)`, [
155
+ block.height,
156
+ block.hash,
157
+ ]);
158
+ }
159
+ async updateStatus(em, nonce, next) {
160
+ let schema = this.escapedSchema();
161
+ let result = await em.query(`UPDATE ${schema}.status SET height = $1, hash = $2, nonce = nonce + 1 WHERE id = 0 AND nonce = $3`, [next.height, next.hash, nonce]);
162
+ let rowsChanged = result[1];
163
+ // Will never happen if isolation level is SERIALIZABLE or REPEATABLE_READ,
164
+ // but occasionally people use multiprocessor setups and READ_COMMITTED.
165
+ assert_1.default.strictEqual(rowsChanged, 1, RACE_MSG);
166
+ }
167
+ async performUpdates(cb, em, changeWriter) {
168
+ let store = new store_1.Store({
169
+ em,
170
+ state: this.getStateManager(),
171
+ logger: this.getLogger().child('store'),
172
+ changes: changeWriter,
173
+ batchWriteOperations: this.batchWriteOperations,
174
+ cacheEntities: this.cacheEntities,
175
+ syncEntities: this.syncEntities,
43
176
  });
44
177
  try {
45
178
  await cb(store);
46
- await store.flush();
179
+ if (this.resetOnCommit) {
180
+ await store.flush();
181
+ }
182
+ else {
183
+ await store.sync();
184
+ }
47
185
  }
48
186
  finally {
49
- running = false;
187
+ store['isClosed'] = true;
188
+ }
189
+ }
190
+ async submit(tx) {
191
+ let retries = 3;
192
+ while (true) {
193
+ try {
194
+ let con = this.con;
195
+ (0, assert_1.default)(con != null, 'not connected');
196
+ return await con.transaction(this.isolationLevel, tx);
197
+ }
198
+ catch (e) {
199
+ if (e.code == '40001' && retries) {
200
+ retries -= 1;
201
+ }
202
+ else {
203
+ throw e;
204
+ }
205
+ }
50
206
  }
51
207
  }
52
- getCommitOrder() {
53
- return (0, relationGraph_1.getCommitOrder)(this['con'].entityMetadatas);
208
+ escapedSchema() {
209
+ let con = (0, util_internal_1.assertNotNull)(this.con);
210
+ return con.driver.escape(this.statusSchema);
211
+ }
212
+ getLogger() {
213
+ return (0, logger_1.createLogger)('sqd:db');
214
+ }
215
+ getStateManager() {
216
+ let connection = (0, util_internal_1.assertNotNull)(this.con);
217
+ let stateManager = connection[StateManagerSymbol];
218
+ if (stateManager == null) {
219
+ stateManager = new stateManager_1.StateManager({
220
+ connection,
221
+ logger: this.getLogger().child('state'),
222
+ });
223
+ connection[StateManagerSymbol] = stateManager;
224
+ }
225
+ return stateManager;
54
226
  }
55
227
  }
56
- exports.TypeormDatabaseWithCache = TypeormDatabaseWithCache;
228
+ exports.TypeormDatabase = TypeormDatabase;
57
229
  __decorate([
58
230
  util_internal_1.def,
59
231
  __metadata("design:type", Function),
60
232
  __metadata("design:paramtypes", []),
61
233
  __metadata("design:returntype", void 0)
62
- ], TypeormDatabaseWithCache.prototype, "getCommitOrder", null);
234
+ ], TypeormDatabase.prototype, "getLogger", null);
235
+ const RACE_MSG = 'status table was updated by foreign process, make sure no other processor is running';
236
+ function assertStateInvariants(state) {
237
+ let height = state.height;
238
+ // Sanity check. Who knows what driver will return?
239
+ (0, assert_1.default)(Number.isSafeInteger(height));
240
+ assertChainContinuity(state, state.top);
241
+ return state;
242
+ }
243
+ function assertChainContinuity(base, chain) {
244
+ let prev = base;
245
+ for (let b of chain) {
246
+ (0, assert_1.default)(b.height === prev.height + 1, 'blocks must form a continues chain');
247
+ prev = b;
248
+ }
249
+ }
63
250
  //# sourceMappingURL=database.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2DAA+F;AAG/F,oDAA2B;AAE3B,mCAAsC;AACtC,2DAA2C;AAC3C,yDAAoD;AAIpD,aAAa;AACb,MAAa,wBAAyB,SAAQ,+BAAe;IACzD,aAAa;IACb,QAAQ,CAAC,IAAiB,EAAE,EAA4C;QACpE,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAS,CAAC,CAAA;IAC1C,CAAC;IAED,aAAa;IACb,WAAW,CAAC,IAAe,EAAE,EAAkE;QAC3F,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,EAAS,CAAC,CAAA;IAC7C,CAAC;IAED,aAAa;IACb,YAAY,CACR,IAAe,EACf,EAAgF;QAEhF,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAS,CAAC,CAAA;IAC9C,CAAC;IAEO,KAAK,CAAC,cAAc,CACxB,EAA4C,EAC5C,EAAiB,EACjB,OAAuB;QAEvB,IAAI,OAAO,GAAG,IAAI,CAAA;QAElB,IAAI,KAAK,GAAG,IAAI,sBAAc,CAC1B,GAAG,EAAE;YACD,IAAA,gBAAM,EAAC,OAAO,EAAE,mFAAmF,CAAC,CAAA;YACpG,OAAO,EAAE,CAAA;QACb,CAAC,EACD;YACI,aAAa,EAAE,OAAO;YACtB,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;SACrC,CACJ,CAAA;QAED,IAAI,CAAC;YACD,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;YACf,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;QACvB,CAAC;gBAAS,CAAC;YACP,OAAO,GAAG,KAAK,CAAA;QACnB,CAAC;IACL,CAAC;IAGO,cAAc;QAClB,OAAO,IAAA,8BAAc,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAA;IACtD,CAAC;CACJ;AAjDD,4DAiDC;AAHW;IADP,mBAAG;;;;8DAGH"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export * from './database';
2
- export { EntityClass, Entity, FindManyOptions, FindOneOptions, StoreWithCache } from './store';
1
+ export { TypeormDatabase, TypeormDatabase as TypeormDatabaseWithCache, TypeormDatabaseOptions } from './database';
2
+ export { EntityTarget, EntityLiteral, EntityLiteral as Entity, FindManyOptions, FindOneOptions, Store, Store as StoreWithCache, } from './store';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAC,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,eAAe,IAAI,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,YAAY,CAAA;AAC/G,OAAO,EACH,YAAY,EACZ,aAAa,EACb,aAAa,IAAI,MAAM,EACvB,eAAe,EACf,cAAc,EACd,KAAK,EACL,KAAK,IAAI,cAAc,GAC1B,MAAM,SAAS,CAAA"}
package/lib/index.js CHANGED
@@ -1,22 +1,10 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.StoreWithCache = exports.Entity = void 0;
18
- __exportStar(require("./database"), exports);
3
+ exports.StoreWithCache = exports.Store = exports.TypeormDatabaseWithCache = exports.TypeormDatabase = void 0;
4
+ var database_1 = require("./database");
5
+ Object.defineProperty(exports, "TypeormDatabase", { enumerable: true, get: function () { return database_1.TypeormDatabase; } });
6
+ Object.defineProperty(exports, "TypeormDatabaseWithCache", { enumerable: true, get: function () { return database_1.TypeormDatabase; } });
19
7
  var store_1 = require("./store");
20
- Object.defineProperty(exports, "Entity", { enumerable: true, get: function () { return store_1.Entity; } });
21
- Object.defineProperty(exports, "StoreWithCache", { enumerable: true, get: function () { return store_1.StoreWithCache; } });
8
+ Object.defineProperty(exports, "Store", { enumerable: true, get: function () { return store_1.Store; } });
9
+ Object.defineProperty(exports, "StoreWithCache", { enumerable: true, get: function () { return store_1.Store; } });
22
10
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,iCAA4F;AAAvE,+FAAA,MAAM,OAAA;AAAmC,uGAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAA+G;AAAvG,2GAAA,eAAe,OAAA;AAAE,oHAAA,eAAe,OAA4B;AACpE,iCAQgB;AAFZ,8FAAA,KAAK,OAAA;AACL,uGAAA,KAAK,OAAkB"}