@etohq/index 1.3.0 → 1.5.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/LICENSE +21 -0
- package/dist/migrations/Migration20231019174230.d.ts.map +1 -1
- package/dist/migrations/Migration20231019174230.js +2 -6
- package/dist/migrations/Migration20231019174230.js.map +1 -1
- package/dist/migrations/Migration20250122154720.d.ts +6 -0
- package/dist/migrations/Migration20250122154720.d.ts.map +1 -0
- package/dist/migrations/Migration20250122154720.js +16 -0
- package/dist/migrations/Migration20250122154720.js.map +1 -0
- package/dist/migrations/Migration20250127105159.d.ts +6 -0
- package/dist/migrations/Migration20250127105159.d.ts.map +1 -0
- package/dist/migrations/Migration20250127105159.js +16 -0
- package/dist/migrations/Migration20250127105159.js.map +1 -0
- package/dist/migrations/Migration20250127144442.d.ts +6 -0
- package/dist/migrations/Migration20250127144442.d.ts.map +1 -0
- package/dist/migrations/Migration20250127144442.js +16 -0
- package/dist/migrations/Migration20250127144442.js.map +1 -0
- package/dist/migrations/Migration20250128132404.d.ts +6 -0
- package/dist/migrations/Migration20250128132404.d.ts.map +1 -0
- package/dist/migrations/Migration20250128132404.js +16 -0
- package/dist/migrations/Migration20250128132404.js.map +1 -0
- package/dist/migrations/Migration20250218132404.d.ts +6 -0
- package/dist/migrations/Migration20250218132404.d.ts.map +1 -0
- package/dist/migrations/Migration20250218132404.js +48 -0
- package/dist/migrations/Migration20250218132404.js.map +1 -0
- package/dist/migrations/Migration20250515161913.d.ts +6 -0
- package/dist/migrations/Migration20250515161913.d.ts.map +1 -0
- package/dist/migrations/Migration20250515161913.js +62 -0
- package/dist/migrations/Migration20250515161913.js.map +1 -0
- package/dist/models/index-data.d.ts +1 -2
- package/dist/models/index-data.d.ts.map +1 -1
- package/dist/models/index-data.js +4 -31
- package/dist/models/index-data.js.map +1 -1
- package/dist/models/index-metadata.d.ts +10 -0
- package/dist/models/index-metadata.d.ts.map +1 -0
- package/dist/models/index-metadata.js +23 -0
- package/dist/models/index-metadata.js.map +1 -0
- package/dist/models/index-relation.d.ts +3 -14
- package/dist/models/index-relation.d.ts.map +1 -1
- package/dist/models/index-relation.js +3 -10
- package/dist/models/index-relation.js.map +1 -1
- package/dist/models/index-sync.d.ts +7 -0
- package/dist/models/index-sync.d.ts.map +1 -0
- package/dist/models/index-sync.js +18 -0
- package/dist/models/index-sync.js.map +1 -0
- package/dist/models/index.d.ts +2 -0
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +5 -1
- package/dist/models/index.js.map +1 -1
- package/dist/services/data-synchronizer.d.ts +35 -0
- package/dist/services/data-synchronizer.d.ts.map +1 -0
- package/dist/services/data-synchronizer.js +238 -0
- package/dist/services/data-synchronizer.js.map +1 -0
- package/dist/services/index-data.d.ts +5 -0
- package/dist/services/index-data.d.ts.map +1 -0
- package/dist/services/index-data.js +9 -0
- package/dist/services/index-data.js.map +1 -0
- package/dist/services/index-metadata.d.ts +5 -0
- package/dist/services/index-metadata.d.ts.map +1 -0
- package/dist/services/index-metadata.js +9 -0
- package/dist/services/index-metadata.js.map +1 -0
- package/dist/services/index-module-service.d.ts +14 -3
- package/dist/services/index-module-service.d.ts.map +1 -1
- package/dist/services/index-module-service.js +63 -11
- package/dist/services/index-module-service.js.map +1 -1
- package/dist/services/index-relation.d.ts +5 -0
- package/dist/services/index-relation.d.ts.map +1 -0
- package/dist/services/index-relation.js +9 -0
- package/dist/services/index-relation.js.map +1 -0
- package/dist/services/index-sync.d.ts +5 -0
- package/dist/services/index-sync.d.ts.map +1 -0
- package/dist/services/index-sync.js +9 -0
- package/dist/services/index-sync.js.map +1 -0
- package/dist/services/postgres-provider.d.ts +15 -15
- package/dist/services/postgres-provider.d.ts.map +1 -1
- package/dist/services/postgres-provider.js +155 -129
- package/dist/services/postgres-provider.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/base-graphql-schema.d.ts +2 -0
- package/dist/utils/base-graphql-schema.d.ts.map +1 -0
- package/dist/utils/base-graphql-schema.js +10 -0
- package/dist/utils/base-graphql-schema.js.map +1 -0
- package/dist/utils/build-config.d.ts +6 -2
- package/dist/utils/build-config.d.ts.map +1 -1
- package/dist/utils/build-config.js +497 -140
- package/dist/utils/build-config.js.map +1 -1
- package/dist/utils/create-partitions.d.ts +1 -1
- package/dist/utils/create-partitions.d.ts.map +1 -1
- package/dist/utils/create-partitions.js +55 -6
- package/dist/utils/create-partitions.js.map +1 -1
- package/dist/utils/default-schema.d.ts +1 -1
- package/dist/utils/default-schema.d.ts.map +1 -1
- package/dist/utils/default-schema.js +33 -23
- package/dist/utils/default-schema.js.map +1 -1
- package/dist/utils/gql-to-types.d.ts +2 -1
- package/dist/utils/gql-to-types.d.ts.map +1 -1
- package/dist/utils/gql-to-types.js +3 -6
- package/dist/utils/gql-to-types.js.map +1 -1
- package/dist/utils/index-metadata-status.d.ts +7 -0
- package/dist/utils/index-metadata-status.d.ts.map +1 -0
- package/dist/utils/index-metadata-status.js +11 -0
- package/dist/utils/index-metadata-status.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/normalze-table-name.d.ts +3 -0
- package/dist/utils/normalze-table-name.d.ts.map +1 -0
- package/dist/utils/normalze-table-name.js +13 -0
- package/dist/utils/normalze-table-name.js.map +1 -0
- package/dist/utils/query-builder.d.ts +19 -2
- package/dist/utils/query-builder.d.ts.map +1 -1
- package/dist/utils/query-builder.js +395 -90
- package/dist/utils/query-builder.js.map +1 -1
- package/dist/utils/sync/configuration.d.ts +17 -0
- package/dist/utils/sync/configuration.d.ts.map +1 -0
- package/dist/utils/sync/configuration.js +114 -0
- package/dist/utils/sync/configuration.js.map +1 -0
- package/dist/utils/sync/orchestrator.d.ts +33 -0
- package/dist/utils/sync/orchestrator.d.ts.map +1 -0
- package/dist/utils/sync/orchestrator.js +195 -0
- package/dist/utils/sync/orchestrator.js.map +1 -0
- package/package.json +32 -30
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { IndexTypes } from "@etohq/types";
|
|
2
|
+
export declare class DataSynchronizer {
|
|
3
|
+
#private;
|
|
4
|
+
constructor(container: Record<string, any>);
|
|
5
|
+
onApplicationStart({ schemaObjectRepresentation, storageProvider, }: {
|
|
6
|
+
lockDuration?: number;
|
|
7
|
+
schemaObjectRepresentation: IndexTypes.SchemaObjectRepresentation;
|
|
8
|
+
storageProvider: IndexTypes.StorageProvider;
|
|
9
|
+
}): void;
|
|
10
|
+
syncEntities(entities: {
|
|
11
|
+
entity: string;
|
|
12
|
+
fields: string;
|
|
13
|
+
fields_hash: string;
|
|
14
|
+
}[], lockDuration?: number): Promise<void>;
|
|
15
|
+
removeEntities(entities: string[], staleOnly?: boolean): Promise<void>;
|
|
16
|
+
syncEntity({ entityName, pagination, ack, }: {
|
|
17
|
+
entityName: string;
|
|
18
|
+
pagination?: {
|
|
19
|
+
cursor?: string;
|
|
20
|
+
updated_at?: string | Date;
|
|
21
|
+
limit?: number;
|
|
22
|
+
batchSize?: number;
|
|
23
|
+
};
|
|
24
|
+
ack: (ack: {
|
|
25
|
+
lastCursor: string | null;
|
|
26
|
+
done?: boolean;
|
|
27
|
+
err?: Error;
|
|
28
|
+
}) => Promise<void>;
|
|
29
|
+
}): Promise<{
|
|
30
|
+
lastCursor: string | null;
|
|
31
|
+
done?: boolean;
|
|
32
|
+
err?: Error;
|
|
33
|
+
}>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=data-synchronizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-synchronizer.d.ts","sourceRoot":"","sources":["../../src/services/data-synchronizer.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,UAAU,EAKX,MAAM,cAAc,CAAA;AAGrB,qBAAa,gBAAgB;;gBAsCf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAY1C,kBAAkB,CAAC,EACjB,0BAA0B,EAC1B,eAAe,GAChB,EAAE;QACD,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,0BAA0B,EAAE,UAAU,CAAC,0BAA0B,CAAA;QACjE,eAAe,EAAE,UAAU,CAAC,eAAe,CAAA;KAC5C;IAOK,YAAY,CAChB,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;QACd,WAAW,EAAE,MAAM,CAAA;KACpB,EAAE,EACH,YAAY,GAAE,MAAW;IAWrB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,GAAE,OAAe;IAsH7D,UAAU,CAAC,EACf,UAAU,EACV,UAAe,EACf,GAAG,GACJ,EAAE;QACD,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,CAAC,EAAE;YACX,MAAM,CAAC,EAAE,MAAM,CAAA;YACf,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;YAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;YACd,SAAS,CAAC,EAAE,MAAM,CAAA;SACnB,CAAA;QACD,GAAG,EAAE,CAAC,GAAG,EAAE;YACT,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;YACzB,IAAI,CAAC,EAAE,OAAO,CAAA;YACd,GAAG,CAAC,EAAE,KAAK,CAAA;SACZ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KACpB,GAAG,OAAO,CAAC;QACV,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;QACzB,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,GAAG,CAAC,EAAE,KAAK,CAAA;KACZ,CAAC;CAiHH"}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
+
};
|
|
13
|
+
var _DataSynchronizer_instances, _DataSynchronizer_container, _DataSynchronizer_isReady, _DataSynchronizer_schemaObjectRepresentation, _DataSynchronizer_storageProvider, _DataSynchronizer_orchestrator, _DataSynchronizer_query_get, _DataSynchronizer_locking_get, _DataSynchronizer_indexMetadataService_get, _DataSynchronizer_indexSyncService_get, _DataSynchronizer_indexRelationService_get, _DataSynchronizer_logger_get, _DataSynchronizer_isReadyOrThrow, _DataSynchronizer_updatedStatus, _DataSynchronizer_taskRunner;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.DataSynchronizer = void 0;
|
|
16
|
+
const utils_1 = require("@etohq/framework/utils");
|
|
17
|
+
const _utils_1 = require("../utils");
|
|
18
|
+
const promises_1 = require("timers/promises");
|
|
19
|
+
class DataSynchronizer {
|
|
20
|
+
constructor(container) {
|
|
21
|
+
_DataSynchronizer_instances.add(this);
|
|
22
|
+
_DataSynchronizer_container.set(this, void 0);
|
|
23
|
+
_DataSynchronizer_isReady.set(this, false);
|
|
24
|
+
_DataSynchronizer_schemaObjectRepresentation.set(this, void 0);
|
|
25
|
+
_DataSynchronizer_storageProvider.set(this, void 0);
|
|
26
|
+
_DataSynchronizer_orchestrator.set(this, void 0);
|
|
27
|
+
__classPrivateFieldSet(this, _DataSynchronizer_container, container, "f");
|
|
28
|
+
}
|
|
29
|
+
onApplicationStart({ schemaObjectRepresentation, storageProvider, }) {
|
|
30
|
+
__classPrivateFieldSet(this, _DataSynchronizer_storageProvider, storageProvider, "f");
|
|
31
|
+
__classPrivateFieldSet(this, _DataSynchronizer_schemaObjectRepresentation, schemaObjectRepresentation, "f");
|
|
32
|
+
__classPrivateFieldSet(this, _DataSynchronizer_isReady, true, "f");
|
|
33
|
+
}
|
|
34
|
+
async syncEntities(entities, lockDuration = 60 // 1 minute
|
|
35
|
+
) {
|
|
36
|
+
__classPrivateFieldGet(this, _DataSynchronizer_instances, "m", _DataSynchronizer_isReadyOrThrow).call(this);
|
|
37
|
+
const entitiesToSync = entities.map((entity) => entity.entity);
|
|
38
|
+
__classPrivateFieldSet(this, _DataSynchronizer_orchestrator, new _utils_1.Orchestrator(__classPrivateFieldGet(this, _DataSynchronizer_instances, "a", _DataSynchronizer_locking_get), entitiesToSync, {
|
|
39
|
+
lockDuration,
|
|
40
|
+
logger: __classPrivateFieldGet(this, _DataSynchronizer_instances, "a", _DataSynchronizer_logger_get),
|
|
41
|
+
}), "f");
|
|
42
|
+
await __classPrivateFieldGet(this, _DataSynchronizer_orchestrator, "f").process(__classPrivateFieldGet(this, _DataSynchronizer_instances, "m", _DataSynchronizer_taskRunner).bind(this));
|
|
43
|
+
}
|
|
44
|
+
async removeEntities(entities, staleOnly = false) {
|
|
45
|
+
__classPrivateFieldGet(this, _DataSynchronizer_instances, "m", _DataSynchronizer_isReadyOrThrow).call(this);
|
|
46
|
+
const staleCondition = staleOnly ? "staled_at IS NOT NULL" : "";
|
|
47
|
+
for (const entity of entities) {
|
|
48
|
+
await __classPrivateFieldGet(this, _DataSynchronizer_container, "f").manager.execute(`WITH deleted_data AS (
|
|
49
|
+
DELETE FROM "index_data"
|
|
50
|
+
WHERE "name" = ? ${staleCondition ? `AND ${staleCondition}` : ""}
|
|
51
|
+
RETURNING id
|
|
52
|
+
)
|
|
53
|
+
DELETE FROM "index_relation"
|
|
54
|
+
WHERE ("parent_name" = ? AND "parent_id" IN (SELECT id FROM deleted_data))
|
|
55
|
+
OR ("child_name" = ? AND "child_id" IN (SELECT id FROM deleted_data))`, [entity, entity, entity]);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async syncEntity({ entityName, pagination = {}, ack, }) {
|
|
59
|
+
__classPrivateFieldGet(this, _DataSynchronizer_instances, "m", _DataSynchronizer_isReadyOrThrow).call(this);
|
|
60
|
+
const schemaEntityObjectRepresentation = __classPrivateFieldGet(this, _DataSynchronizer_schemaObjectRepresentation, "f")[entityName];
|
|
61
|
+
const { alias, moduleConfig } = schemaEntityObjectRepresentation;
|
|
62
|
+
const isLink = !!moduleConfig?.isLink;
|
|
63
|
+
if (!alias) {
|
|
64
|
+
__classPrivateFieldGet(this, _DataSynchronizer_instances, "a", _DataSynchronizer_logger_get).info(`[Index engine] Cannot find Entity '${entityName}' alias. Skipping.`);
|
|
65
|
+
const acknoledgement = {
|
|
66
|
+
lastCursor: pagination.cursor ?? null,
|
|
67
|
+
done: true,
|
|
68
|
+
};
|
|
69
|
+
await ack(acknoledgement);
|
|
70
|
+
return acknoledgement;
|
|
71
|
+
}
|
|
72
|
+
const entityPrimaryKey = "id";
|
|
73
|
+
const moduleHasId = !!moduleConfig?.primaryKeys?.includes("id");
|
|
74
|
+
if (!moduleHasId) {
|
|
75
|
+
const acknoledgement = {
|
|
76
|
+
lastCursor: pagination.cursor ?? null,
|
|
77
|
+
err: new Error(`Entity ${entityName} does not have a property 'id'. The 'id' must be provided and must be orderable (e.g ulid)`),
|
|
78
|
+
};
|
|
79
|
+
await ack(acknoledgement);
|
|
80
|
+
return acknoledgement;
|
|
81
|
+
}
|
|
82
|
+
let processed = 0;
|
|
83
|
+
let currentCursor = pagination.cursor;
|
|
84
|
+
const batchSize = Math.min(pagination.batchSize ?? 100, 100);
|
|
85
|
+
const limit = pagination.limit ?? Infinity;
|
|
86
|
+
let error = null;
|
|
87
|
+
while (processed < limit) {
|
|
88
|
+
const filters = {};
|
|
89
|
+
if (currentCursor) {
|
|
90
|
+
filters[entityPrimaryKey] = { $gt: currentCursor };
|
|
91
|
+
}
|
|
92
|
+
if (pagination.updated_at) {
|
|
93
|
+
filters["updated_at"] = { $gt: pagination.updated_at };
|
|
94
|
+
}
|
|
95
|
+
const queryResult = await __classPrivateFieldGet(this, _DataSynchronizer_instances, "a", _DataSynchronizer_query_get).graph({
|
|
96
|
+
entity: alias,
|
|
97
|
+
fields: [entityPrimaryKey],
|
|
98
|
+
filters,
|
|
99
|
+
pagination: {
|
|
100
|
+
order: {
|
|
101
|
+
[entityPrimaryKey]: "asc",
|
|
102
|
+
},
|
|
103
|
+
take: batchSize,
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
if (!queryResult?.data?.length) {
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
const data = queryResult.data;
|
|
110
|
+
const envelop = {
|
|
111
|
+
data,
|
|
112
|
+
name: !isLink
|
|
113
|
+
? `*.${utils_1.CommonEvents.CREATED}`
|
|
114
|
+
: `*.${utils_1.CommonEvents.ATTACHED}`,
|
|
115
|
+
};
|
|
116
|
+
try {
|
|
117
|
+
await __classPrivateFieldGet(this, _DataSynchronizer_storageProvider, "f").consumeEvent(schemaEntityObjectRepresentation)(envelop);
|
|
118
|
+
currentCursor = data[data.length - 1][entityPrimaryKey];
|
|
119
|
+
processed += data.length;
|
|
120
|
+
await ack({ lastCursor: currentCursor });
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
error = err;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
await (0, promises_1.setTimeout)(0, undefined, { ref: false });
|
|
127
|
+
}
|
|
128
|
+
let acknoledgement = {
|
|
129
|
+
lastCursor: currentCursor,
|
|
130
|
+
done: true,
|
|
131
|
+
};
|
|
132
|
+
if (error) {
|
|
133
|
+
acknoledgement = {
|
|
134
|
+
lastCursor: currentCursor,
|
|
135
|
+
err: error,
|
|
136
|
+
};
|
|
137
|
+
await ack(acknoledgement);
|
|
138
|
+
return acknoledgement;
|
|
139
|
+
}
|
|
140
|
+
await ack(acknoledgement);
|
|
141
|
+
return acknoledgement;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
exports.DataSynchronizer = DataSynchronizer;
|
|
145
|
+
_DataSynchronizer_container = new WeakMap(), _DataSynchronizer_isReady = new WeakMap(), _DataSynchronizer_schemaObjectRepresentation = new WeakMap(), _DataSynchronizer_storageProvider = new WeakMap(), _DataSynchronizer_orchestrator = new WeakMap(), _DataSynchronizer_instances = new WeakSet(), _DataSynchronizer_query_get = function _DataSynchronizer_query_get() {
|
|
146
|
+
return __classPrivateFieldGet(this, _DataSynchronizer_container, "f")[utils_1.ContainerRegistrationKeys.QUERY];
|
|
147
|
+
}, _DataSynchronizer_locking_get = function _DataSynchronizer_locking_get() {
|
|
148
|
+
return __classPrivateFieldGet(this, _DataSynchronizer_container, "f")[utils_1.Modules.LOCKING];
|
|
149
|
+
}, _DataSynchronizer_indexMetadataService_get = function _DataSynchronizer_indexMetadataService_get() {
|
|
150
|
+
return __classPrivateFieldGet(this, _DataSynchronizer_container, "f").indexMetadataService;
|
|
151
|
+
}, _DataSynchronizer_indexSyncService_get = function _DataSynchronizer_indexSyncService_get() {
|
|
152
|
+
return __classPrivateFieldGet(this, _DataSynchronizer_container, "f").indexSyncService;
|
|
153
|
+
}, _DataSynchronizer_indexRelationService_get = function _DataSynchronizer_indexRelationService_get() {
|
|
154
|
+
return __classPrivateFieldGet(this, _DataSynchronizer_container, "f").indexRelationService;
|
|
155
|
+
}, _DataSynchronizer_logger_get = function _DataSynchronizer_logger_get() {
|
|
156
|
+
try {
|
|
157
|
+
return __classPrivateFieldGet(this, _DataSynchronizer_container, "f").logger;
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
return console;
|
|
161
|
+
}
|
|
162
|
+
}, _DataSynchronizer_isReadyOrThrow = function _DataSynchronizer_isReadyOrThrow() {
|
|
163
|
+
if (!__classPrivateFieldGet(this, _DataSynchronizer_isReady, "f")) {
|
|
164
|
+
throw new Error("DataSynchronizer is not ready. Call onApplicationStart first.");
|
|
165
|
+
}
|
|
166
|
+
}, _DataSynchronizer_updatedStatus = async function _DataSynchronizer_updatedStatus(entity, status) {
|
|
167
|
+
await __classPrivateFieldGet(this, _DataSynchronizer_instances, "a", _DataSynchronizer_indexMetadataService_get).update({
|
|
168
|
+
data: {
|
|
169
|
+
status,
|
|
170
|
+
},
|
|
171
|
+
selector: {
|
|
172
|
+
entity,
|
|
173
|
+
},
|
|
174
|
+
});
|
|
175
|
+
}, _DataSynchronizer_taskRunner = async function _DataSynchronizer_taskRunner(entity) {
|
|
176
|
+
__classPrivateFieldGet(this, _DataSynchronizer_instances, "a", _DataSynchronizer_logger_get).info(`[Index engine] syncing entity '${entity}'`);
|
|
177
|
+
const [[lastCursor]] = await (0, utils_1.promiseAll)([
|
|
178
|
+
__classPrivateFieldGet(this, _DataSynchronizer_instances, "a", _DataSynchronizer_indexSyncService_get).list({
|
|
179
|
+
entity,
|
|
180
|
+
}, {
|
|
181
|
+
select: ["last_key"],
|
|
182
|
+
}),
|
|
183
|
+
__classPrivateFieldGet(this, _DataSynchronizer_instances, "m", _DataSynchronizer_updatedStatus).call(this, entity, _utils_1.IndexMetadataStatus.PROCESSING),
|
|
184
|
+
__classPrivateFieldGet(this, _DataSynchronizer_container, "f").manager.execute(`UPDATE "index_data" SET "staled_at" = NOW() WHERE "name" = ?`, [entity]),
|
|
185
|
+
]);
|
|
186
|
+
let startTime = performance.now();
|
|
187
|
+
let chunkStartTime = startTime;
|
|
188
|
+
const finalAcknoledgement = await this.syncEntity({
|
|
189
|
+
entityName: entity,
|
|
190
|
+
pagination: {
|
|
191
|
+
cursor: lastCursor?.last_key,
|
|
192
|
+
},
|
|
193
|
+
ack: async (ack) => {
|
|
194
|
+
const endTime = performance.now();
|
|
195
|
+
const chunkElapsedTime = (endTime - chunkStartTime).toFixed(2);
|
|
196
|
+
if (ack.lastCursor) {
|
|
197
|
+
__classPrivateFieldGet(this, _DataSynchronizer_instances, "a", _DataSynchronizer_logger_get).debug(`[Index engine] syncing entity '${entity}' updating last cursor to ${ack.lastCursor} (+${chunkElapsedTime}ms)`);
|
|
198
|
+
await __classPrivateFieldGet(this, _DataSynchronizer_instances, "a", _DataSynchronizer_indexSyncService_get).update({
|
|
199
|
+
data: {
|
|
200
|
+
last_key: ack.lastCursor,
|
|
201
|
+
},
|
|
202
|
+
selector: {
|
|
203
|
+
entity,
|
|
204
|
+
},
|
|
205
|
+
});
|
|
206
|
+
if (!ack.done && !ack.err) {
|
|
207
|
+
await __classPrivateFieldGet(this, _DataSynchronizer_orchestrator, "f").renewLock(entity);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
if (ack.err) {
|
|
211
|
+
__classPrivateFieldGet(this, _DataSynchronizer_instances, "a", _DataSynchronizer_logger_get).error(`[Index engine] syncing entity '${entity}' failed with error (+${chunkElapsedTime}ms):\n${ack.err.message}`);
|
|
212
|
+
}
|
|
213
|
+
if (ack.done) {
|
|
214
|
+
const elapsedTime = (endTime - startTime).toFixed(2);
|
|
215
|
+
__classPrivateFieldGet(this, _DataSynchronizer_instances, "a", _DataSynchronizer_logger_get).info(`[Index engine] syncing entity '${entity}' done (+${elapsedTime}ms)`);
|
|
216
|
+
}
|
|
217
|
+
chunkStartTime = performance.now();
|
|
218
|
+
},
|
|
219
|
+
});
|
|
220
|
+
if (finalAcknoledgement.done) {
|
|
221
|
+
await (0, utils_1.promiseAll)([
|
|
222
|
+
__classPrivateFieldGet(this, _DataSynchronizer_instances, "m", _DataSynchronizer_updatedStatus).call(this, entity, _utils_1.IndexMetadataStatus.DONE),
|
|
223
|
+
__classPrivateFieldGet(this, _DataSynchronizer_instances, "a", _DataSynchronizer_indexSyncService_get).update({
|
|
224
|
+
data: {
|
|
225
|
+
last_key: finalAcknoledgement.lastCursor,
|
|
226
|
+
},
|
|
227
|
+
selector: {
|
|
228
|
+
entity,
|
|
229
|
+
},
|
|
230
|
+
}),
|
|
231
|
+
this.removeEntities([entity], true),
|
|
232
|
+
]);
|
|
233
|
+
}
|
|
234
|
+
if (finalAcknoledgement.err) {
|
|
235
|
+
await __classPrivateFieldGet(this, _DataSynchronizer_instances, "m", _DataSynchronizer_updatedStatus).call(this, entity, _utils_1.IndexMetadataStatus.ERROR);
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
//# sourceMappingURL=data-synchronizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-synchronizer.js","sourceRoot":"","sources":["../../src/services/data-synchronizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-data.d.ts","sourceRoot":"","sources":["../../src/services/index-data.ts"],"names":[],"mappings":";AAGA,qBAAa,gBAAiB,SAAQ,qBAA6B;CAAG"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IndexDataService = void 0;
|
|
4
|
+
const utils_1 = require("@etohq/framework/utils");
|
|
5
|
+
const _models_1 = require("../models");
|
|
6
|
+
class IndexDataService extends (0, utils_1.EtoInternalService)(_models_1.IndexData) {
|
|
7
|
+
}
|
|
8
|
+
exports.IndexDataService = IndexDataService;
|
|
9
|
+
//# sourceMappingURL=index-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-data.js","sourceRoot":"","sources":["../../src/services/index-data.ts"],"names":[],"mappings":";;;AAAA,kDAA2D;AAC3D,qCAAmC;AAEnC,MAAa,gBAAiB,SAAQ,IAAA,0BAAkB,EAAC,mBAAS,CAAC;CAAG;AAAtE,4CAAsE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-metadata.d.ts","sourceRoot":"","sources":["../../src/services/index-metadata.ts"],"names":[],"mappings":";AAGA,qBAAa,oBAAqB,SAAQ,yBAEzC;CAAG"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IndexMetadataService = void 0;
|
|
4
|
+
const utils_1 = require("@etohq/framework/utils");
|
|
5
|
+
const _models_1 = require("../models");
|
|
6
|
+
class IndexMetadataService extends (0, utils_1.EtoInternalService)(_models_1.IndexMetadata) {
|
|
7
|
+
}
|
|
8
|
+
exports.IndexMetadataService = IndexMetadataService;
|
|
9
|
+
//# sourceMappingURL=index-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-metadata.js","sourceRoot":"","sources":["../../src/services/index-metadata.ts"],"names":[],"mappings":";;;AAAA,kDAA2D;AAC3D,qCAAuC;AAEvC,MAAa,oBAAqB,SAAQ,IAAA,0BAAkB,EAC1D,uBAAa,CACd;CAAG;AAFJ,oDAEI"}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
import { Constructor, IEventBusModuleService, IndexTypes, InternalModuleDeclaration, RemoteQueryFunction } from "@etohq/framework/types";
|
|
2
|
-
import {
|
|
1
|
+
import { Constructor, IEventBusModuleService, IndexTypes, InternalModuleDeclaration, Logger, ModulesSdkTypes, RemoteQueryFunction } from "@etohq/framework/types";
|
|
2
|
+
import { MikroOrmBaseRepository as BaseRepository, ContainerRegistrationKeys, Modules, ModulesSdkUtils } from "@etohq/framework/utils";
|
|
3
|
+
import { DataSynchronizer } from "./data-synchronizer";
|
|
3
4
|
type InjectedDependencies = {
|
|
5
|
+
logger: Logger;
|
|
4
6
|
[Modules.EVENT_BUS]: IEventBusModuleService;
|
|
5
7
|
storageProviderCtr: Constructor<IndexTypes.StorageProvider>;
|
|
6
8
|
[ContainerRegistrationKeys.QUERY]: RemoteQueryFunction;
|
|
7
9
|
storageProviderCtrOptions: unknown;
|
|
8
10
|
baseRepository: BaseRepository;
|
|
11
|
+
indexMetadataService: ModulesSdkTypes.IEtoInternalService<any>;
|
|
12
|
+
indexSyncService: ModulesSdkTypes.IEtoInternalService<any>;
|
|
13
|
+
dataSynchronizer: DataSynchronizer;
|
|
9
14
|
};
|
|
10
|
-
|
|
15
|
+
declare const IndexModuleService_base: ModulesSdkUtils.EtoServiceReturnType<ModulesSdkUtils.ModelConfigurationsToConfigTemplate<{}>>;
|
|
16
|
+
export default class IndexModuleService extends IndexModuleService_base implements IndexTypes.IIndexService {
|
|
17
|
+
#private;
|
|
11
18
|
protected readonly moduleDeclaration: InternalModuleDeclaration;
|
|
12
19
|
private readonly container_;
|
|
13
20
|
private readonly moduleOptions_;
|
|
@@ -17,6 +24,10 @@ export default class IndexModuleService implements IndexTypes.IIndexService {
|
|
|
17
24
|
protected readonly storageProviderCtr_: Constructor<IndexTypes.StorageProvider>;
|
|
18
25
|
protected readonly storageProviderCtrOptions_: unknown;
|
|
19
26
|
protected storageProvider_: IndexTypes.StorageProvider;
|
|
27
|
+
private get indexMetadataService_();
|
|
28
|
+
private get indexSyncService_();
|
|
29
|
+
private get dataSynchronizer_();
|
|
30
|
+
private get logger_();
|
|
20
31
|
constructor(container: InjectedDependencies, moduleDeclaration: InternalModuleDeclaration);
|
|
21
32
|
__hooks: {
|
|
22
33
|
onApplicationStart(this: IndexModuleService): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-module-service.d.ts","sourceRoot":"","sources":["../../src/services/index-module-service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,UAAU,EACV,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index-module-service.d.ts","sourceRoot":"","sources":["../../src/services/index-module-service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,UAAU,EACV,yBAAyB,EACzB,MAAM,EACN,eAAe,EACf,mBAAmB,EACpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,sBAAsB,IAAI,cAAc,EACxC,yBAAyB,EAEzB,OAAO,EACP,eAAe,EAChB,MAAM,wBAAwB,CAAA;AAS/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,KAAK,oBAAoB,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAA;IAC3C,kBAAkB,EAAE,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;IAC3D,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAA;IACtD,yBAAyB,EAAE,OAAO,CAAA;IAClC,cAAc,EAAE,cAAc,CAAA;IAC9B,oBAAoB,EAAE,eAAe,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC9D,gBAAgB,EAAE,eAAe,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC1D,gBAAgB,EAAE,gBAAgB,CAAA;CACnC,CAAA;;AAED,MAAM,CAAC,OAAO,OAAO,kBACnB,SAAQ,uBACR,YAAW,UAAU,CAAC,aAAa;;IAuCjC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB;IAnCjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAE9D,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAA;IAEjE,SAAS,CAAC,2BAA2B,EAAE,UAAU,CAAC,0BAA0B,CAAA;IAC5E,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAEjD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;IAC/E,SAAS,CAAC,QAAQ,CAAC,0BAA0B,EAAE,OAAO,CAAA;IAEtD,SAAS,CAAC,gBAAgB,EAAE,UAAU,CAAC,eAAe,CAAA;IAEtD,OAAO,KAAK,qBAAqB,GAEhC;IAED,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,KAAK,OAAO,GAMlB;gBAGC,SAAS,EAAE,oBAAoB,EACZ,iBAAiB,EAAE,yBAAyB;IA0BjE,OAAO;iCACoB,kBAAkB;MAG5C;cAEe,mBAAmB;IAkD7B,KAAK,CAAC,KAAK,CAAC,MAAM,SAAS,MAAM,EACrC,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAC1C,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAI7C,SAAS,CAAC,iBAAiB;IAsB3B,OAAO,CAAC,gCAAgC;CAiBzC"}
|
|
@@ -1,13 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _IndexModuleService_isWorkerMode;
|
|
2
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
15
|
const utils_1 = require("@etohq/framework/utils");
|
|
4
16
|
const _types_1 = require("../types");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
17
|
+
const _utils_1 = require("../utils");
|
|
18
|
+
const base_graphql_schema_1 = require("../utils/base-graphql-schema");
|
|
19
|
+
class IndexModuleService extends utils_1.ModulesSdkUtils.EtoService({}) {
|
|
20
|
+
get indexMetadataService_() {
|
|
21
|
+
return this.container_.indexMetadataService;
|
|
22
|
+
}
|
|
23
|
+
get indexSyncService_() {
|
|
24
|
+
return this.container_.indexSyncService;
|
|
25
|
+
}
|
|
26
|
+
get dataSynchronizer_() {
|
|
27
|
+
return this.container_.dataSynchronizer;
|
|
28
|
+
}
|
|
29
|
+
get logger_() {
|
|
30
|
+
try {
|
|
31
|
+
return this.container_.logger;
|
|
32
|
+
}
|
|
33
|
+
catch (e) {
|
|
34
|
+
return console;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
9
37
|
constructor(container, moduleDeclaration) {
|
|
38
|
+
super(...arguments);
|
|
10
39
|
this.moduleDeclaration = moduleDeclaration;
|
|
40
|
+
_IndexModuleService_isWorkerMode.set(this, false);
|
|
11
41
|
this.__hooks = {
|
|
12
42
|
onApplicationStart() {
|
|
13
43
|
return this.onApplicationStart_();
|
|
@@ -16,6 +46,7 @@ class IndexModuleService {
|
|
|
16
46
|
this.container_ = container;
|
|
17
47
|
this.moduleOptions_ = (moduleDeclaration.options ??
|
|
18
48
|
moduleDeclaration);
|
|
49
|
+
__classPrivateFieldSet(this, _IndexModuleService_isWorkerMode, moduleDeclaration.worker_mode !== "server", "f");
|
|
19
50
|
const { [utils_1.Modules.EVENT_BUS]: eventBusModuleService, storageProviderCtr, storageProviderCtrOptions, } = container;
|
|
20
51
|
this.eventBusModuleService_ = eventBusModuleService;
|
|
21
52
|
this.storageProviderCtr_ = storageProviderCtr;
|
|
@@ -26,7 +57,7 @@ class IndexModuleService {
|
|
|
26
57
|
}
|
|
27
58
|
async onApplicationStart_() {
|
|
28
59
|
try {
|
|
29
|
-
this.buildSchemaObjectRepresentation_();
|
|
60
|
+
const executableSchema = this.buildSchemaObjectRepresentation_();
|
|
30
61
|
this.storageProvider_ = new this.storageProviderCtr_(this.container_, Object.assign(this.storageProviderCtrOptions_ ?? {}, {
|
|
31
62
|
schemaObjectRepresentation: this.schemaObjectRepresentation_,
|
|
32
63
|
entityMap: this.schemaEntitiesMap_,
|
|
@@ -35,10 +66,30 @@ class IndexModuleService {
|
|
|
35
66
|
if (this.storageProvider_.onApplicationStart) {
|
|
36
67
|
await this.storageProvider_.onApplicationStart();
|
|
37
68
|
}
|
|
38
|
-
await (0,
|
|
69
|
+
await (0, _utils_1.gqlSchemaToTypes)(executableSchema);
|
|
70
|
+
/**
|
|
71
|
+
* Only run the data synchronization in worker mode
|
|
72
|
+
*/
|
|
73
|
+
if (__classPrivateFieldGet(this, _IndexModuleService_isWorkerMode, "f")) {
|
|
74
|
+
this.dataSynchronizer_.onApplicationStart({
|
|
75
|
+
schemaObjectRepresentation: this.schemaObjectRepresentation_,
|
|
76
|
+
storageProvider: this.storageProvider_,
|
|
77
|
+
});
|
|
78
|
+
const configurationChecker = new _utils_1.Configuration({
|
|
79
|
+
logger: this.logger_,
|
|
80
|
+
schemaObjectRepresentation: this.schemaObjectRepresentation_,
|
|
81
|
+
indexMetadataService: this.indexMetadataService_,
|
|
82
|
+
indexSyncService: this.indexSyncService_,
|
|
83
|
+
dataSynchronizer: this.dataSynchronizer_,
|
|
84
|
+
});
|
|
85
|
+
const entitiesMetadataChanged = await configurationChecker.checkChanges();
|
|
86
|
+
if (entitiesMetadataChanged.length) {
|
|
87
|
+
await this.dataSynchronizer_.syncEntities(entitiesMetadataChanged);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
39
90
|
}
|
|
40
91
|
catch (e) {
|
|
41
|
-
|
|
92
|
+
this.logger_.error(e);
|
|
42
93
|
}
|
|
43
94
|
}
|
|
44
95
|
async query(config) {
|
|
@@ -59,13 +110,14 @@ class IndexModuleService {
|
|
|
59
110
|
}
|
|
60
111
|
buildSchemaObjectRepresentation_() {
|
|
61
112
|
if (this.schemaObjectRepresentation_) {
|
|
62
|
-
return
|
|
113
|
+
return;
|
|
63
114
|
}
|
|
64
|
-
const
|
|
115
|
+
const { objectRepresentation, entitiesMap, executableSchema } = (0, _utils_1.buildSchemaObjectRepresentation)(base_graphql_schema_1.baseGraphqlSchema + (this.moduleOptions_.schema ?? _utils_1.defaultSchema));
|
|
65
116
|
this.schemaObjectRepresentation_ = objectRepresentation;
|
|
66
|
-
this.schemaEntitiesMap_ =
|
|
67
|
-
return
|
|
117
|
+
this.schemaEntitiesMap_ = entitiesMap;
|
|
118
|
+
return executableSchema;
|
|
68
119
|
}
|
|
69
120
|
}
|
|
121
|
+
_IndexModuleService_isWorkerMode = new WeakMap();
|
|
70
122
|
exports.default = IndexModuleService;
|
|
71
123
|
//# sourceMappingURL=index-module-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-module-service.js","sourceRoot":"","sources":["../../src/services/index-module-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index-module-service.js","sourceRoot":"","sources":["../../src/services/index-module-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-relation.d.ts","sourceRoot":"","sources":["../../src/services/index-relation.ts"],"names":[],"mappings":";AAGA,qBAAa,oBAAqB,SAAQ,yBAEzC;CAAG"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IndexRelationService = void 0;
|
|
4
|
+
const utils_1 = require("@etohq/framework/utils");
|
|
5
|
+
const _models_1 = require("../models");
|
|
6
|
+
class IndexRelationService extends (0, utils_1.EtoInternalService)(_models_1.IndexRelation) {
|
|
7
|
+
}
|
|
8
|
+
exports.IndexRelationService = IndexRelationService;
|
|
9
|
+
//# sourceMappingURL=index-relation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-relation.js","sourceRoot":"","sources":["../../src/services/index-relation.ts"],"names":[],"mappings":";;;AAAA,kDAA2D;AAC3D,qCAAuC;AAEvC,MAAa,oBAAqB,SAAQ,IAAA,0BAAkB,EAC1D,uBAAa,CACd;CAAG;AAFJ,oDAEI"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-sync.d.ts","sourceRoot":"","sources":["../../src/services/index-sync.ts"],"names":[],"mappings":";AAGA,qBAAa,gBAAiB,SAAQ,qBAA6B;CAAG"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IndexSyncService = void 0;
|
|
4
|
+
const utils_1 = require("@etohq/framework/utils");
|
|
5
|
+
const _models_1 = require("../models");
|
|
6
|
+
class IndexSyncService extends (0, utils_1.EtoInternalService)(_models_1.IndexSync) {
|
|
7
|
+
}
|
|
8
|
+
exports.IndexSyncService = IndexSyncService;
|
|
9
|
+
//# sourceMappingURL=index-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-sync.js","sourceRoot":"","sources":["../../src/services/index-sync.ts"],"names":[],"mappings":";;;AAAA,kDAA2D;AAC3D,qCAAmC;AAEnC,MAAa,gBAAiB,SAAQ,IAAA,0BAAkB,EAAC,mBAAS,CAAC;CAAG;AAAtE,4CAAsE"}
|