@ceramicnetwork/indexing 1.1.0-rc.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/README.md +31 -0
- package/lib/__tests__/chunks.util.d.ts +2 -0
- package/lib/__tests__/chunks.util.d.ts.map +1 -0
- package/lib/__tests__/chunks.util.js +8 -0
- package/lib/__tests__/chunks.util.js.map +1 -0
- package/lib/__tests__/read-csv-fixture.util.d.ts +5 -0
- package/lib/__tests__/read-csv-fixture.util.d.ts.map +1 -0
- package/lib/__tests__/read-csv-fixture.util.js +35 -0
- package/lib/__tests__/read-csv-fixture.util.js.map +1 -0
- package/lib/as-table-name.util.d.ts +3 -0
- package/lib/as-table-name.util.d.ts.map +1 -0
- package/lib/as-table-name.util.js +4 -0
- package/lib/as-table-name.util.js.map +1 -0
- package/lib/build-indexing.d.ts +13 -0
- package/lib/build-indexing.d.ts.map +1 -0
- package/lib/build-indexing.js +55 -0
- package/lib/build-indexing.js.map +1 -0
- package/lib/column-name.util.d.ts +2 -0
- package/lib/column-name.util.d.ts.map +1 -0
- package/lib/column-name.util.js +5 -0
- package/lib/column-name.util.js.map +1 -0
- package/lib/config.d.ts +2 -0
- package/lib/config.d.ts.map +1 -0
- package/lib/config.js +2 -0
- package/lib/config.js.map +1 -0
- package/lib/database-index-api.d.ts +94 -0
- package/lib/database-index-api.d.ts.map +1 -0
- package/lib/database-index-api.js +228 -0
- package/lib/database-index-api.js.map +1 -0
- package/lib/history-sync/interfaces.d.ts +52 -0
- package/lib/history-sync/interfaces.d.ts.map +1 -0
- package/lib/history-sync/interfaces.js +11 -0
- package/lib/history-sync/interfaces.js.map +1 -0
- package/lib/history-sync/sync-api.d.ts +82 -0
- package/lib/history-sync/sync-api.d.ts.map +1 -0
- package/lib/history-sync/sync-api.js +276 -0
- package/lib/history-sync/sync-api.js.map +1 -0
- package/lib/history-sync/utils.d.ts +15 -0
- package/lib/history-sync/utils.d.ts.map +1 -0
- package/lib/history-sync/utils.js +23 -0
- package/lib/history-sync/utils.js.map +1 -0
- package/lib/history-sync/workers/rebuild-anchor.d.ts +15 -0
- package/lib/history-sync/workers/rebuild-anchor.d.ts.map +1 -0
- package/lib/history-sync/workers/rebuild-anchor.js +96 -0
- package/lib/history-sync/workers/rebuild-anchor.js.map +1 -0
- package/lib/history-sync/workers/sync.d.ts +24 -0
- package/lib/history-sync/workers/sync.d.ts.map +1 -0
- package/lib/history-sync/workers/sync.js +77 -0
- package/lib/history-sync/workers/sync.js.map +1 -0
- package/lib/index-query-not-available.error.d.ts +5 -0
- package/lib/index-query-not-available.error.d.ts.map +1 -0
- package/lib/index-query-not-available.error.js +6 -0
- package/lib/index-query-not-available.error.js.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +6 -0
- package/lib/index.js.map +1 -0
- package/lib/insertion-order.d.ts +15 -0
- package/lib/insertion-order.d.ts.map +1 -0
- package/lib/insertion-order.js +180 -0
- package/lib/insertion-order.js.map +1 -0
- package/lib/local-index-api.d.ts +30 -0
- package/lib/local-index-api.d.ts.map +1 -0
- package/lib/local-index-api.js +118 -0
- package/lib/local-index-api.js.map +1 -0
- package/lib/make-index-api.d.ts +9 -0
- package/lib/make-index-api.d.ts.map +1 -0
- package/lib/make-index-api.js +27 -0
- package/lib/make-index-api.js.map +1 -0
- package/lib/migrations/1-create-model-table.d.ts +34 -0
- package/lib/migrations/1-create-model-table.d.ts.map +1 -0
- package/lib/migrations/1-create-model-table.js +243 -0
- package/lib/migrations/1-create-model-table.js.map +1 -0
- package/lib/migrations/cdb-schema-verification.d.ts +15 -0
- package/lib/migrations/cdb-schema-verification.d.ts.map +1 -0
- package/lib/migrations/cdb-schema-verification.js +272 -0
- package/lib/migrations/cdb-schema-verification.js.map +1 -0
- package/lib/parse-pagination.d.ts +18 -0
- package/lib/parse-pagination.d.ts.map +1 -0
- package/lib/parse-pagination.js +23 -0
- package/lib/parse-pagination.js.map +1 -0
- package/lib/query-filter-converter.d.ts +12 -0
- package/lib/query-filter-converter.d.ts.map +1 -0
- package/lib/query-filter-converter.js +231 -0
- package/lib/query-filter-converter.js.map +1 -0
- package/lib/query-filter-parser.d.ts +63 -0
- package/lib/query-filter-parser.d.ts.map +1 -0
- package/lib/query-filter-parser.js +178 -0
- package/lib/query-filter-parser.js.map +1 -0
- package/lib/tables-manager.d.ts +44 -0
- package/lib/tables-manager.d.ts.map +1 -0
- package/lib/tables-manager.js +218 -0
- package/lib/tables-manager.js.map +1 -0
- package/lib/unsupported-ordering-error.d.ts +4 -0
- package/lib/unsupported-ordering-error.d.ts.map +1 -0
- package/lib/unsupported-ordering-error.js +6 -0
- package/lib/unsupported-ordering-error.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { DatabaseType, ColumnType, createConfigTable, createPostgresModelTable, createSqliteModelTable, defaultIndices, createSqliteIndices, createPostgresIndices, migrateConfigTable, } from './migrations/1-create-model-table.js';
|
|
2
|
+
import { asTableName } from './as-table-name.util.js';
|
|
3
|
+
import { Model } from '@ceramicnetwork/stream-model';
|
|
4
|
+
import { INDEXED_MODEL_CONFIG_TABLE_NAME, fieldsIndexName, } from './database-index-api.js';
|
|
5
|
+
import { STRUCTURES } from './migrations/cdb-schema-verification.js';
|
|
6
|
+
import { CONFIG_TABLE_NAME } from './config.js';
|
|
7
|
+
import { addColumnPrefix } from './column-name.util.js';
|
|
8
|
+
function relationsDefinitionsToColumnInfo(relations) {
|
|
9
|
+
if (!relations) {
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
12
|
+
return Object.keys(relations).map((keyName) => {
|
|
13
|
+
return { name: addColumnPrefix(keyName), type: ColumnType.STRING };
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
export class TablesManager {
|
|
17
|
+
constructor(dbType, dataSource, logger) {
|
|
18
|
+
this.dbType = dbType;
|
|
19
|
+
this.dataSource = dataSource;
|
|
20
|
+
this.logger = logger;
|
|
21
|
+
}
|
|
22
|
+
async listMidTables() {
|
|
23
|
+
throw new Error('Must be implemented in extending class');
|
|
24
|
+
}
|
|
25
|
+
async initMidTables(_modelsToIndex) {
|
|
26
|
+
throw new Error('Must be implemented in extending class');
|
|
27
|
+
}
|
|
28
|
+
async hasMidIndices(_tableName, _args) {
|
|
29
|
+
throw new Error('Must be implemented in extending class');
|
|
30
|
+
}
|
|
31
|
+
hasJsonBSupport() {
|
|
32
|
+
throw new Error('Must be implemented in extending class');
|
|
33
|
+
}
|
|
34
|
+
listConfigTables() {
|
|
35
|
+
return [
|
|
36
|
+
{
|
|
37
|
+
tableName: INDEXED_MODEL_CONFIG_TABLE_NAME,
|
|
38
|
+
validSchema: STRUCTURES[this.dbType].CONFIG_TABLE_MODEL_INDEX,
|
|
39
|
+
},
|
|
40
|
+
{ tableName: CONFIG_TABLE_NAME, validSchema: STRUCTURES[this.dbType].CONFIG_TABLE },
|
|
41
|
+
];
|
|
42
|
+
}
|
|
43
|
+
async initConfigTables(network) {
|
|
44
|
+
const configTables = this.listConfigTables();
|
|
45
|
+
await Promise.all(configTables.map(async (table) => {
|
|
46
|
+
await this.initConfigTable(table, network);
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
async initConfigTable(table, network) {
|
|
50
|
+
const exists = await this.dataSource.schema.hasTable(table.tableName);
|
|
51
|
+
if (!exists) {
|
|
52
|
+
this.logger.imp(`Creating ComposeDB config table: ${table.tableName}`);
|
|
53
|
+
await createConfigTable(this.dataSource, table.tableName, network, this.hasJsonBSupport());
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
await migrateConfigTable(this.dataSource, table.tableName, this.hasJsonBSupport());
|
|
57
|
+
if (table.tableName === CONFIG_TABLE_NAME) {
|
|
58
|
+
const config = await this.dataSource
|
|
59
|
+
.from(table.tableName)
|
|
60
|
+
.where('option', 'network')
|
|
61
|
+
.first('value');
|
|
62
|
+
if (config.value !== network) {
|
|
63
|
+
throw new Error(`Initialization failed for config table: ${table.tableName}. The database is configured to use the network ${config.value} but the current network is ${network}.`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
async _verifyConfigTables() {
|
|
69
|
+
const configTables = this.listConfigTables();
|
|
70
|
+
await Promise.all(configTables.map(async (configTable) => {
|
|
71
|
+
await this._verifyConfigTable(configTable);
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
async _verifyConfigTable(table) {
|
|
75
|
+
const columns = await this.dataSource.table(table.tableName).columnInfo();
|
|
76
|
+
const validSchema = JSON.stringify(table.validSchema);
|
|
77
|
+
const actualSchema = JSON.stringify(columns);
|
|
78
|
+
if (validSchema != actualSchema) {
|
|
79
|
+
throw new Error(`Schema verification failed for config table: ${table.tableName}. Please make sure node has been setup correctly.`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
async _verifyMidTables(modelsToIndex) {
|
|
83
|
+
const tableNames = await this.listMidTables();
|
|
84
|
+
await Promise.all(tableNames.map(async (tableName) => {
|
|
85
|
+
await this._verifyMidTable(tableName, modelsToIndex);
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
async _verifyMidTable(tableName, modelsToIndex) {
|
|
89
|
+
const modelIndexArgs = modelsToIndex.find((model) => tableName == asTableName(model.model));
|
|
90
|
+
if (!modelIndexArgs) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const expectedTableStructure = Object.assign({}, STRUCTURES[this.dbType].COMMON_TABLE);
|
|
94
|
+
if (modelIndexArgs.relations) {
|
|
95
|
+
for (const relation of Object.keys(modelIndexArgs.relations)) {
|
|
96
|
+
expectedTableStructure[addColumnPrefix(relation)] = STRUCTURES[this.dbType].RELATION_COLUMN;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const validSchema = JSON.stringify(expectedTableStructure);
|
|
100
|
+
const columns = await this.dataSource.table(tableName).columnInfo();
|
|
101
|
+
const actualSchema = JSON.stringify(columns);
|
|
102
|
+
if (validSchema != actualSchema) {
|
|
103
|
+
throw new Error(`Schema verification failed for index: ${tableName}. Please make sure latest migrations have been applied.`);
|
|
104
|
+
}
|
|
105
|
+
if (!(await this.hasMidIndices(tableName, modelIndexArgs))) {
|
|
106
|
+
throw new Error(`Schema verification failed for index: ${tableName}. Please make sure latest migrations have been applied.`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
async verifyTables(modelsToIndex) {
|
|
110
|
+
await Promise.all([this._verifyConfigTables(), this._verifyMidTables(modelsToIndex)]);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
export class PostgresTablesManager extends TablesManager {
|
|
114
|
+
constructor(dataSource, logger) {
|
|
115
|
+
super(DatabaseType.POSTGRES, dataSource, logger);
|
|
116
|
+
}
|
|
117
|
+
async listMidTables() {
|
|
118
|
+
const result = await this.dataSource
|
|
119
|
+
.select('tablename')
|
|
120
|
+
.from('pg_tables')
|
|
121
|
+
.andWhere((q) => q.whereLike('tablename', 'kjz%').orWhere('tablename', Model.MODEL.toString()));
|
|
122
|
+
return result.map((value) => value.tablename);
|
|
123
|
+
}
|
|
124
|
+
async initMidTables(modelsToIndex) {
|
|
125
|
+
await Promise.all(modelsToIndex.map(async (modelIndexArgs) => {
|
|
126
|
+
await this.initMidTable(modelIndexArgs);
|
|
127
|
+
}));
|
|
128
|
+
}
|
|
129
|
+
async initMidTable(modelIndexArgs) {
|
|
130
|
+
const tableName = asTableName(modelIndexArgs.model);
|
|
131
|
+
if (tableName.length > 63) {
|
|
132
|
+
const errStr = `Cannot index model ${modelIndexArgs.model.toString()}. Table name is too long: ${tableName}`;
|
|
133
|
+
this.logger.err(errStr);
|
|
134
|
+
throw new Error(errStr);
|
|
135
|
+
}
|
|
136
|
+
const exists = await this.dataSource.schema.hasTable(tableName);
|
|
137
|
+
if (!exists) {
|
|
138
|
+
this.logger.imp(`Creating ComposeDB Indexing table for model: ${tableName}`);
|
|
139
|
+
const relationColumns = relationsDefinitionsToColumnInfo(modelIndexArgs.relations);
|
|
140
|
+
await createPostgresModelTable(this.dataSource, tableName, relationColumns);
|
|
141
|
+
if (modelIndexArgs.indices) {
|
|
142
|
+
await createPostgresIndices(this.dataSource, tableName, modelIndexArgs.indices);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
async hasMidIndices(tableName, args) {
|
|
147
|
+
const expectedIndices = defaultIndices(tableName).indices.flatMap((index) => index.name);
|
|
148
|
+
if (args && args.indices) {
|
|
149
|
+
for (const index of args.indices) {
|
|
150
|
+
expectedIndices.push(fieldsIndexName(index, tableName));
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
const sqlIndices = expectedIndices.map((s) => `'${s}'`);
|
|
154
|
+
const actualIndices = await this.dataSource.raw(`
|
|
155
|
+
select *
|
|
156
|
+
from pg_indexes
|
|
157
|
+
where tablename like '${tableName}'
|
|
158
|
+
and indexname in (${sqlIndices});
|
|
159
|
+
`);
|
|
160
|
+
return expectedIndices.length == actualIndices.rowCount;
|
|
161
|
+
}
|
|
162
|
+
hasJsonBSupport() {
|
|
163
|
+
return true;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
export class SqliteTablesManager extends TablesManager {
|
|
167
|
+
constructor(dataSource, logger) {
|
|
168
|
+
super(DatabaseType.SQLITE, dataSource, logger);
|
|
169
|
+
}
|
|
170
|
+
async listMidTables() {
|
|
171
|
+
const result = await this.dataSource
|
|
172
|
+
.from('sqlite_schema')
|
|
173
|
+
.select('name')
|
|
174
|
+
.whereIn('type', ['table'])
|
|
175
|
+
.andWhere((q) => q.whereLike('name', 'kjz%').orWhere('name', Model.MODEL.toString()));
|
|
176
|
+
return result.map((r) => r.name);
|
|
177
|
+
}
|
|
178
|
+
async initMidTables(modelsToIndex) {
|
|
179
|
+
const existingTables = await this.listMidTables();
|
|
180
|
+
await Promise.all(modelsToIndex.map(async (modelIndexArgs) => {
|
|
181
|
+
await this.initMidTable(modelIndexArgs, existingTables);
|
|
182
|
+
}));
|
|
183
|
+
}
|
|
184
|
+
async initMidTable(modelIndexArgs, existingTables) {
|
|
185
|
+
const tableName = asTableName(modelIndexArgs.model);
|
|
186
|
+
if (existingTables.includes(tableName)) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
this.logger.imp(`Creating ComposeDB Indexing table for model: ${tableName}`);
|
|
190
|
+
const relationColumns = relationsDefinitionsToColumnInfo(modelIndexArgs.relations);
|
|
191
|
+
await createSqliteModelTable(this.dataSource, tableName, relationColumns);
|
|
192
|
+
if (modelIndexArgs.indices) {
|
|
193
|
+
await createSqliteIndices(this.dataSource, tableName, modelIndexArgs.indices);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
async hasMidIndices(tableName, args) {
|
|
197
|
+
const expectedIndices = defaultIndices(tableName).indices.flatMap((index) => index.name);
|
|
198
|
+
if (args && args.indices) {
|
|
199
|
+
for (const index of args.indices) {
|
|
200
|
+
expectedIndices.push(fieldsIndexName(index, tableName));
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
const sqlIndices = expectedIndices.map((s) => `'${s}'`);
|
|
204
|
+
const actualIndices = await this.dataSource.raw(`
|
|
205
|
+
select name, tbl_name
|
|
206
|
+
FROM sqlite_master
|
|
207
|
+
WHERE type='index'
|
|
208
|
+
and tbl_name like '${tableName}'
|
|
209
|
+
and name in (${sqlIndices})
|
|
210
|
+
;
|
|
211
|
+
`);
|
|
212
|
+
return expectedIndices.length == actualIndices.length;
|
|
213
|
+
}
|
|
214
|
+
hasJsonBSupport() {
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=tables-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tables-manager.js","sourceRoot":"","sources":["../src/tables-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsupported-ordering-error.d.ts","sourceRoot":"","sources":["../src/unsupported-ordering-error.ts"],"names":[],"mappings":"AAKA,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,QAAQ,EAAE,KAAK;CAG5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsupported-ordering-error.js","sourceRoot":"","sources":["../src/unsupported-ordering-error.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD,YAAY,QAAe;QACzB,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAA;IAC5C,CAAC;CACF"}
|
package/package.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ceramicnetwork/indexing",
|
|
3
|
+
"version": "1.1.0-rc.0",
|
|
4
|
+
"description": "Ceramic indexing and querying logic",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"ceramic",
|
|
7
|
+
"indexing"
|
|
8
|
+
],
|
|
9
|
+
"main": "./lib/index.js",
|
|
10
|
+
"types": "./lib/index.d.ts",
|
|
11
|
+
"type": "module",
|
|
12
|
+
"files": [
|
|
13
|
+
"lib"
|
|
14
|
+
],
|
|
15
|
+
"directories": {
|
|
16
|
+
"lib": "./lib"
|
|
17
|
+
},
|
|
18
|
+
"sideEffects": false,
|
|
19
|
+
"exports": {
|
|
20
|
+
".": "./lib/index.js"
|
|
21
|
+
},
|
|
22
|
+
"scripts": {
|
|
23
|
+
"test": "NODE_OPTIONS=--experimental-vm-modules npx jest --silent --coverage --runInBand --forceExit",
|
|
24
|
+
"build": "npx tsc --project tsconfig.json",
|
|
25
|
+
"prepublishOnly": "npm run build",
|
|
26
|
+
"prebuild": "npm run clean",
|
|
27
|
+
"lint": "npx eslint ./src --ext .js,.jsx,.ts,.tsx",
|
|
28
|
+
"clean": "npx rimraf ./lib"
|
|
29
|
+
},
|
|
30
|
+
"author": "3Box Labs",
|
|
31
|
+
"license": "(Apache-2.0 OR MIT)",
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"@ceramicnetwork/anchor-listener": "^1.20.0-rc.0",
|
|
34
|
+
"@ceramicnetwork/anchor-utils": "^1.18.0-rc.0",
|
|
35
|
+
"@ceramicnetwork/common": "^2.35.0-rc.0",
|
|
36
|
+
"@ceramicnetwork/job-queue": "^1.2.0-rc.0",
|
|
37
|
+
"@ceramicnetwork/stream-model": "^1.17.0-rc.0",
|
|
38
|
+
"@ceramicnetwork/streamid": "^2.17.0",
|
|
39
|
+
"@ethersproject/providers": "^5.5.1",
|
|
40
|
+
"knex": "^2.5.1",
|
|
41
|
+
"lodash.clonedeep": "^4.5.0",
|
|
42
|
+
"multiformats": "^12.1.0",
|
|
43
|
+
"p-queue": "^7.4.0",
|
|
44
|
+
"pg-boss": "^8.2.0",
|
|
45
|
+
"rxjs": "^7.8.1",
|
|
46
|
+
"uint8arrays": "^4.0.6"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@ceramicnetwork/3id-did-resolver": "^2.28.0-rc.0",
|
|
50
|
+
"@ceramicnetwork/ipfs-daemon": "^2.28.0-rc.0",
|
|
51
|
+
"@ceramicnetwork/stream-model-instance": "^1.17.0-rc.0",
|
|
52
|
+
"@ceramicnetwork/stream-tile": "^2.31.0-rc.0",
|
|
53
|
+
"@stablelib/sha256": "^1.0.1",
|
|
54
|
+
"did-resolver": "^4.0.1",
|
|
55
|
+
"dids": "^4.0.0",
|
|
56
|
+
"key-did-provider-ed25519": "^3.0.2",
|
|
57
|
+
"key-did-resolver": "^3.0.0",
|
|
58
|
+
"tmp-promise": "^3.0.3"
|
|
59
|
+
},
|
|
60
|
+
"publishConfig": {
|
|
61
|
+
"access": "public"
|
|
62
|
+
},
|
|
63
|
+
"gitHead": "c82819e027980cc596eecd0fcc7ebed1ea4fff8f"
|
|
64
|
+
}
|