@etohq/modules-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/definitions.d.ts +7 -0
  2. package/dist/definitions.d.ts.map +1 -0
  3. package/dist/definitions.js +290 -0
  4. package/dist/definitions.js.map +1 -0
  5. package/dist/eto-app.d.ts +79 -0
  6. package/dist/eto-app.d.ts.map +1 -0
  7. package/dist/eto-app.js +382 -0
  8. package/dist/eto-app.js.map +1 -0
  9. package/dist/eto-module.d.ts +136 -0
  10. package/dist/eto-module.d.ts.map +1 -0
  11. package/dist/eto-module.js +496 -0
  12. package/dist/eto-module.js.map +1 -0
  13. package/dist/index.d.ts +9 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +25 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/link.d.ts +53 -0
  18. package/dist/link.d.ts.map +1 -0
  19. package/dist/link.js +320 -0
  20. package/dist/link.js.map +1 -0
  21. package/dist/loaders/index.d.ts +4 -0
  22. package/dist/loaders/index.d.ts.map +1 -0
  23. package/dist/loaders/index.js +20 -0
  24. package/dist/loaders/index.js.map +1 -0
  25. package/dist/loaders/module-loader.d.ts +9 -0
  26. package/dist/loaders/module-loader.d.ts.map +1 -0
  27. package/dist/loaders/module-loader.js +53 -0
  28. package/dist/loaders/module-loader.js.map +1 -0
  29. package/dist/loaders/module-provider-loader.d.ts +8 -0
  30. package/dist/loaders/module-provider-loader.d.ts.map +1 -0
  31. package/dist/loaders/module-provider-loader.js +53 -0
  32. package/dist/loaders/module-provider-loader.js.map +1 -0
  33. package/dist/loaders/register-modules.d.ts +4 -0
  34. package/dist/loaders/register-modules.d.ts.map +1 -0
  35. package/dist/loaders/register-modules.js +102 -0
  36. package/dist/loaders/register-modules.js.map +1 -0
  37. package/dist/loaders/utils/index.d.ts +2 -0
  38. package/dist/loaders/utils/index.d.ts.map +1 -0
  39. package/dist/loaders/utils/index.js +18 -0
  40. package/dist/loaders/utils/index.js.map +1 -0
  41. package/dist/loaders/utils/load-internal.d.ts +44 -0
  42. package/dist/loaders/utils/load-internal.d.ts.map +1 -0
  43. package/dist/loaders/utils/load-internal.js +488 -0
  44. package/dist/loaders/utils/load-internal.js.map +1 -0
  45. package/dist/remote-query/index.d.ts +3 -0
  46. package/dist/remote-query/index.d.ts.map +1 -0
  47. package/dist/remote-query/index.js +19 -0
  48. package/dist/remote-query/index.js.map +1 -0
  49. package/dist/remote-query/parse-filters.d.ts +15 -0
  50. package/dist/remote-query/parse-filters.d.ts.map +1 -0
  51. package/dist/remote-query/parse-filters.js +178 -0
  52. package/dist/remote-query/parse-filters.js.map +1 -0
  53. package/dist/remote-query/query.d.ts +42 -0
  54. package/dist/remote-query/query.d.ts.map +1 -0
  55. package/dist/remote-query/query.js +115 -0
  56. package/dist/remote-query/query.js.map +1 -0
  57. package/dist/remote-query/remote-query.d.ts +41 -0
  58. package/dist/remote-query/remote-query.d.ts.map +1 -0
  59. package/dist/remote-query/remote-query.js +175 -0
  60. package/dist/remote-query/remote-query.js.map +1 -0
  61. package/dist/remote-query/to-remote-query.d.ts +27 -0
  62. package/dist/remote-query/to-remote-query.d.ts.map +1 -0
  63. package/dist/remote-query/to-remote-query.js +96 -0
  64. package/dist/remote-query/to-remote-query.js.map +1 -0
  65. package/dist/tsconfig.tsbuildinfo +1 -0
  66. package/dist/types/index.d.ts +5 -0
  67. package/dist/types/index.d.ts.map +1 -0
  68. package/dist/types/index.js +9 -0
  69. package/dist/types/index.js.map +1 -0
  70. package/dist/utils/convert-data-to-link-definition.d.ts +3 -0
  71. package/dist/utils/convert-data-to-link-definition.d.ts.map +1 -0
  72. package/dist/utils/convert-data-to-link-definition.js +28 -0
  73. package/dist/utils/convert-data-to-link-definition.js.map +1 -0
  74. package/dist/utils/index.d.ts +3 -0
  75. package/dist/utils/index.d.ts.map +1 -0
  76. package/dist/utils/index.js +19 -0
  77. package/dist/utils/index.js.map +1 -0
  78. package/dist/utils/linking-error.d.ts +14 -0
  79. package/dist/utils/linking-error.d.ts.map +1 -0
  80. package/dist/utils/linking-error.js +18 -0
  81. package/dist/utils/linking-error.js.map +1 -0
  82. package/package.json +63 -0
@@ -0,0 +1,496 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EtoModule = void 0;
4
+ const utils_1 = require("@etohq/utils");
5
+ const awilix_1 = require("awilix");
6
+ const os_1 = require("os");
7
+ const loaders_1 = require("./loaders");
8
+ const utils_2 = require("./loaders/utils");
9
+ const types_1 = require("./types");
10
+ const logger = {
11
+ log: (a) => console.log(a),
12
+ info: (a) => console.log(a),
13
+ warn: (a) => console.warn(a),
14
+ error: (a) => console.error(a),
15
+ };
16
+ class EtoModule {
17
+ static getLoadedModules(aliases) {
18
+ return [...EtoModule.modules_.entries()].map(([key]) => {
19
+ if (aliases?.has(key)) {
20
+ return EtoModule.getModuleInstance(key, aliases.get(key));
21
+ }
22
+ return EtoModule.getModuleInstance(key);
23
+ });
24
+ }
25
+ static onApplicationStart(onApplicationStartCb) {
26
+ for (const instances of EtoModule.instances_.values()) {
27
+ for (const instance of Object.values(instances)) {
28
+ if (instance?.__hooks) {
29
+ instance.__hooks?.onApplicationStart
30
+ ?.bind(instance)()
31
+ .then(() => {
32
+ onApplicationStartCb?.();
33
+ })
34
+ .catch(() => {
35
+ // The module should handle this and log it
36
+ return void 0;
37
+ });
38
+ }
39
+ }
40
+ }
41
+ }
42
+ static async onApplicationShutdown() {
43
+ await (0, utils_1.promiseAll)([...EtoModule.instances_.values()]
44
+ .map((instances) => {
45
+ return Object.values(instances).map((instance) => {
46
+ return instance.__hooks?.onApplicationShutdown
47
+ ?.bind(instance)()
48
+ .catch(() => {
49
+ // The module should handle this and log it
50
+ return void 0;
51
+ });
52
+ });
53
+ })
54
+ .flat());
55
+ }
56
+ static async onApplicationPrepareShutdown() {
57
+ await (0, utils_1.promiseAll)([...EtoModule.instances_.values()]
58
+ .map((instances) => {
59
+ return Object.values(instances).map((instance) => {
60
+ return instance.__hooks?.onApplicationPrepareShutdown
61
+ ?.bind(instance)()
62
+ .catch(() => {
63
+ // The module should handle this and log it
64
+ return void 0;
65
+ });
66
+ });
67
+ })
68
+ .flat());
69
+ }
70
+ static clearInstances() {
71
+ EtoModule.instances_.clear();
72
+ EtoModule.modules_.clear();
73
+ EtoModule.joinerConfig_.clear();
74
+ EtoModule.moduleResolutions_.clear();
75
+ EtoModule.customLinks_.length = 0;
76
+ }
77
+ static isInstalled(moduleKey, alias) {
78
+ if (alias) {
79
+ return (EtoModule.modules_.has(moduleKey) &&
80
+ EtoModule.modules_.get(moduleKey).some((m) => m.alias === alias));
81
+ }
82
+ return EtoModule.modules_.has(moduleKey);
83
+ }
84
+ static getJoinerConfig(moduleKey) {
85
+ return EtoModule.joinerConfig_.get(moduleKey);
86
+ }
87
+ static getAllJoinerConfigs() {
88
+ return [...EtoModule.joinerConfig_.values()];
89
+ }
90
+ static getModuleResolutions(moduleKey) {
91
+ return EtoModule.moduleResolutions_.get(moduleKey);
92
+ }
93
+ static getAllModuleResolutions() {
94
+ return [...EtoModule.moduleResolutions_.values()];
95
+ }
96
+ static setModuleResolution(moduleKey, resolution) {
97
+ EtoModule.moduleResolutions_.set(moduleKey, resolution);
98
+ return resolution;
99
+ }
100
+ static setJoinerConfig(moduleKey, config) {
101
+ EtoModule.joinerConfig_.set(moduleKey, config);
102
+ return config;
103
+ }
104
+ static setCustomLink(config) {
105
+ EtoModule.customLinks_.push(config);
106
+ }
107
+ static getCustomLinks() {
108
+ return EtoModule.customLinks_;
109
+ }
110
+ static getModuleInstance(moduleKey, alias) {
111
+ if (!EtoModule.modules_.has(moduleKey)) {
112
+ return;
113
+ }
114
+ let mod;
115
+ const modules = EtoModule.modules_.get(moduleKey);
116
+ if (alias) {
117
+ mod = modules.find((m) => m.alias === alias);
118
+ return EtoModule.instances_.get(mod?.hash);
119
+ }
120
+ mod = modules.find((m) => m.main) ?? modules[0];
121
+ return EtoModule.instances_.get(mod?.hash);
122
+ }
123
+ static registerModule(moduleKey, loadedModule) {
124
+ if (!EtoModule.modules_.has(moduleKey)) {
125
+ EtoModule.modules_.set(moduleKey, []);
126
+ }
127
+ const modules = EtoModule.modules_.get(moduleKey);
128
+ if (modules.some((m) => m.alias === loadedModule.alias)) {
129
+ throw new Error(`Module ${moduleKey} already registed as '${loadedModule.alias}'. Please choose a different alias.`);
130
+ }
131
+ if (loadedModule.main) {
132
+ if (modules.some((m) => m.main)) {
133
+ throw new Error(`Module ${moduleKey} already have a 'main' registered.`);
134
+ }
135
+ }
136
+ modules.push(loadedModule);
137
+ EtoModule.modules_.set(moduleKey, modules);
138
+ }
139
+ /**
140
+ * Load all modules and resolve them once they are loaded
141
+ * @param modulesOptions
142
+ * @param migrationOnly
143
+ * @param loaderOnly
144
+ * @param workerMode
145
+ */
146
+ static async bootstrapAll(modulesOptions, { migrationOnly, loaderOnly, workerMode, }) {
147
+ return await EtoModule.bootstrap_(modulesOptions, {
148
+ migrationOnly,
149
+ loaderOnly,
150
+ workerMode,
151
+ });
152
+ }
153
+ /**
154
+ * Load a single module and resolve it once it is loaded
155
+ * @param moduleKey
156
+ * @param defaultPath
157
+ * @param declaration
158
+ * @param moduleExports
159
+ * @param sharedContainer
160
+ * @param moduleDefinition
161
+ * @param injectedDependencies
162
+ * @param migrationOnly
163
+ * @param loaderOnly
164
+ * @param workerMode
165
+ */
166
+ static async bootstrap({ moduleKey, defaultPath, declaration, moduleExports, sharedContainer, moduleDefinition, injectedDependencies, migrationOnly, loaderOnly, workerMode, }) {
167
+ const [service] = await EtoModule.bootstrap_([
168
+ {
169
+ moduleKey,
170
+ defaultPath,
171
+ declaration,
172
+ moduleExports,
173
+ sharedContainer,
174
+ moduleDefinition,
175
+ injectedDependencies,
176
+ },
177
+ ], {
178
+ migrationOnly,
179
+ loaderOnly,
180
+ workerMode,
181
+ });
182
+ return service;
183
+ }
184
+ /**
185
+ * Load all modules and then resolve them once they are loaded
186
+ *
187
+ * @param modulesOptions
188
+ * @param migrationOnly
189
+ * @param loaderOnly
190
+ * @param workerMode
191
+ * @protected
192
+ */
193
+ static async bootstrap_(modulesOptions, { migrationOnly, loaderOnly, workerMode, }) {
194
+ let loadedModules = [];
195
+ const services = [];
196
+ for (const moduleOptions of modulesOptions) {
197
+ const { moduleKey, defaultPath, declaration, moduleExports, sharedContainer, moduleDefinition, injectedDependencies, } = moduleOptions;
198
+ const hashKey = (0, utils_1.simpleHash)((0, utils_1.stringifyCircular)({ moduleKey, defaultPath, declaration }));
199
+ let finishLoading;
200
+ let errorLoading;
201
+ const loadingPromise = new Promise((resolve, reject) => {
202
+ finishLoading = resolve;
203
+ errorLoading = reject;
204
+ });
205
+ if (!loaderOnly && EtoModule.instances_.has(hashKey)) {
206
+ services.push(EtoModule.instances_.get(hashKey));
207
+ continue;
208
+ }
209
+ if (!loaderOnly && EtoModule.loading_.has(hashKey)) {
210
+ services.push(await EtoModule.loading_.get(hashKey));
211
+ continue;
212
+ }
213
+ if (!loaderOnly) {
214
+ EtoModule.loading_.set(hashKey, loadingPromise);
215
+ }
216
+ let modDeclaration = declaration ??
217
+ {};
218
+ if (declaration?.scope !== types_1.MODULE_SCOPE.EXTERNAL) {
219
+ modDeclaration = {
220
+ scope: declaration?.scope || types_1.MODULE_SCOPE.INTERNAL,
221
+ resolve: defaultPath,
222
+ options: declaration?.options ?? declaration,
223
+ dependencies: declaration?.dependencies ?? [],
224
+ alias: declaration?.alias,
225
+ main: declaration?.main,
226
+ worker_mode: workerMode,
227
+ };
228
+ }
229
+ const container = sharedContainer ?? (0, utils_1.createEtoContainer)();
230
+ if (injectedDependencies) {
231
+ for (const service in injectedDependencies) {
232
+ container.register(service, (0, awilix_1.asValue)(injectedDependencies[service]));
233
+ if (!container.hasRegistration(service)) {
234
+ container.register(service, (0, awilix_1.asValue)(injectedDependencies[service]));
235
+ }
236
+ }
237
+ }
238
+ const moduleResolutions = (0, loaders_1.registerEtoModule)(moduleKey, modDeclaration, moduleExports, moduleDefinition);
239
+ const logger_ = container.resolve(utils_1.ContainerRegistrationKeys.LOGGER, {
240
+ allowUnregistered: true,
241
+ }) ?? logger;
242
+ try {
243
+ await (0, loaders_1.moduleLoader)({
244
+ container,
245
+ moduleResolutions,
246
+ logger: logger_,
247
+ migrationOnly,
248
+ loaderOnly,
249
+ });
250
+ }
251
+ catch (err) {
252
+ errorLoading(err);
253
+ throw err;
254
+ }
255
+ loadedModules.push({
256
+ hashKey,
257
+ modDeclaration,
258
+ moduleResolutions,
259
+ container,
260
+ finishLoading,
261
+ });
262
+ }
263
+ if (loaderOnly) {
264
+ loadedModules.forEach(({ finishLoading }) => finishLoading({}));
265
+ return [{}];
266
+ }
267
+ for (const { hashKey, modDeclaration, moduleResolutions, container, finishLoading, } of loadedModules) {
268
+ const service = await EtoModule.resolveLoadedModule({
269
+ hashKey,
270
+ modDeclaration,
271
+ moduleResolutions,
272
+ container,
273
+ });
274
+ EtoModule.instances_.set(hashKey, service);
275
+ finishLoading(service);
276
+ EtoModule.loading_.delete(hashKey);
277
+ services.push(service);
278
+ }
279
+ return services;
280
+ }
281
+ /**
282
+ * Resolve all the modules once they all have been loaded through the bootstrap
283
+ * and store their references in the instances_ map and return them
284
+ *
285
+ * @param hashKey
286
+ * @param modDeclaration
287
+ * @param moduleResolutions
288
+ * @param container
289
+ * @private
290
+ */
291
+ static async resolveLoadedModule({ hashKey, modDeclaration, moduleResolutions, container, }) {
292
+ const logger_ = container.resolve(utils_1.ContainerRegistrationKeys.LOGGER, {
293
+ allowUnregistered: true,
294
+ }) ?? logger;
295
+ const services = {};
296
+ for (const resolution of Object.values(moduleResolutions)) {
297
+ const keyName = resolution.definition.key;
298
+ services[keyName] = container.resolve(keyName);
299
+ services[keyName].__definition = resolution.definition;
300
+ services[keyName].__definition.resolvePath =
301
+ "resolve" in modDeclaration &&
302
+ typeof modDeclaration.resolve === "string"
303
+ ? modDeclaration.resolve
304
+ : undefined;
305
+ if (resolution.definition.isQueryable) {
306
+ let joinerConfig;
307
+ try {
308
+ // TODO: rework that to store on a separate property
309
+ joinerConfig = await services[keyName].__joinerConfig?.();
310
+ }
311
+ catch {
312
+ // noop
313
+ }
314
+ if (!joinerConfig) {
315
+ throw new Error(`Your module is missing a joiner config: ${keyName}. If this module is not queryable, please set { definition: { isQueryable: false } } in your module configuration.`);
316
+ }
317
+ if (!joinerConfig.primaryKeys) {
318
+ logger_.warn(`Primary keys are not defined by the module ${keyName}. Setting default primary key to 'id'${os_1.EOL}`);
319
+ joinerConfig.primaryKeys = ["id"];
320
+ }
321
+ services[keyName].__joinerConfig = joinerConfig;
322
+ EtoModule.setJoinerConfig(keyName, joinerConfig);
323
+ }
324
+ EtoModule.setModuleResolution(keyName, resolution);
325
+ EtoModule.registerModule(keyName, {
326
+ key: keyName,
327
+ hash: hashKey,
328
+ alias: modDeclaration.alias ?? hashKey,
329
+ main: !!modDeclaration.main,
330
+ isLink: false,
331
+ });
332
+ }
333
+ return services;
334
+ }
335
+ static async bootstrapLink({ definition, declaration, moduleExports, injectedDependencies, }) {
336
+ const moduleKey = definition.key;
337
+ const hashKey = (0, utils_1.simpleHash)((0, utils_1.stringifyCircular)({ moduleKey, declaration }));
338
+ if (EtoModule.instances_.has(hashKey)) {
339
+ return { [moduleKey]: EtoModule.instances_.get(hashKey) };
340
+ }
341
+ if (EtoModule.loading_.has(hashKey)) {
342
+ return await EtoModule.loading_.get(hashKey);
343
+ }
344
+ let finishLoading;
345
+ let errorLoading;
346
+ EtoModule.loading_.set(hashKey, new Promise((resolve, reject) => {
347
+ finishLoading = resolve;
348
+ errorLoading = reject;
349
+ }));
350
+ let modDeclaration = declaration ?? {};
351
+ const moduleDefinition = {
352
+ key: definition.key,
353
+ dependencies: definition.dependencies,
354
+ defaultPackage: "",
355
+ label: definition.label,
356
+ isRequired: false,
357
+ isQueryable: true,
358
+ defaultModuleDeclaration: definition.defaultModuleDeclaration,
359
+ };
360
+ modDeclaration = {
361
+ resolve: "",
362
+ options: declaration,
363
+ alias: declaration?.alias,
364
+ main: declaration?.main,
365
+ };
366
+ const container = (0, utils_1.createEtoContainer)();
367
+ if (injectedDependencies) {
368
+ for (const service in injectedDependencies) {
369
+ container.register(service, (0, awilix_1.asValue)(injectedDependencies[service]));
370
+ }
371
+ }
372
+ const moduleResolutions = (0, loaders_1.registerEtoLinkModule)(moduleDefinition, modDeclaration, moduleExports);
373
+ const logger_ = container.resolve(utils_1.ContainerRegistrationKeys.LOGGER, {
374
+ allowUnregistered: true,
375
+ }) ?? logger;
376
+ try {
377
+ await (0, loaders_1.moduleLoader)({
378
+ container,
379
+ moduleResolutions,
380
+ logger: logger_,
381
+ });
382
+ }
383
+ catch (err) {
384
+ errorLoading(err);
385
+ throw err;
386
+ }
387
+ const services = {};
388
+ for (const resolution of Object.values(moduleResolutions)) {
389
+ const keyName = resolution.definition.key;
390
+ services[keyName] = container.resolve(keyName);
391
+ services[keyName].__definition = resolution.definition;
392
+ if (resolution.definition.isQueryable) {
393
+ let joinerConfig;
394
+ try {
395
+ joinerConfig = await services[keyName].__joinerConfig?.();
396
+ }
397
+ catch {
398
+ // noop
399
+ }
400
+ if (!joinerConfig) {
401
+ throw new Error(`Your module is missing a joiner config: ${keyName}. If this module is not queryable, please set { definition: { isQueryable: false } } in your module configuration.`);
402
+ }
403
+ services[keyName].__joinerConfig = joinerConfig;
404
+ EtoModule.setJoinerConfig(keyName, joinerConfig);
405
+ if (!joinerConfig.isLink) {
406
+ throw new Error("EtoModule.bootstrapLink must be used only for Link Modules");
407
+ }
408
+ }
409
+ EtoModule.setModuleResolution(keyName, resolution);
410
+ EtoModule.registerModule(keyName, {
411
+ key: keyName,
412
+ hash: hashKey,
413
+ alias: modDeclaration.alias ?? hashKey,
414
+ main: !!modDeclaration.main,
415
+ isLink: true,
416
+ });
417
+ }
418
+ EtoModule.instances_.set(hashKey, services);
419
+ finishLoading(services);
420
+ EtoModule.loading_.delete(hashKey);
421
+ return services;
422
+ }
423
+ static async migrateGenerate({ options, container, moduleExports, moduleKey, modulePath, }) {
424
+ const moduleResolutions = (0, loaders_1.registerEtoModule)(moduleKey, {
425
+ scope: types_1.MODULE_SCOPE.INTERNAL,
426
+ resolve: modulePath,
427
+ options,
428
+ });
429
+ const logger_ = container?.resolve(utils_1.ContainerRegistrationKeys.LOGGER, {
430
+ allowUnregistered: true,
431
+ }) ?? logger;
432
+ container ??= (0, utils_1.createEtoContainer)();
433
+ for (const mod in moduleResolutions) {
434
+ const { generateMigration } = await (0, utils_2.loadModuleMigrations)(moduleResolutions[mod], moduleExports);
435
+ if (typeof generateMigration === "function") {
436
+ await generateMigration({
437
+ options,
438
+ container: container,
439
+ logger: logger_,
440
+ });
441
+ }
442
+ }
443
+ }
444
+ static async migrateUp({ options, container, moduleExports, moduleKey, modulePath, }) {
445
+ const moduleResolutions = (0, loaders_1.registerEtoModule)(moduleKey, {
446
+ scope: types_1.MODULE_SCOPE.INTERNAL,
447
+ resolve: modulePath,
448
+ options,
449
+ });
450
+ const logger_ = container?.resolve(utils_1.ContainerRegistrationKeys.LOGGER, {
451
+ allowUnregistered: true,
452
+ }) ?? logger;
453
+ container ??= (0, utils_1.createEtoContainer)();
454
+ for (const mod in moduleResolutions) {
455
+ const { runMigrations } = await (0, utils_2.loadModuleMigrations)(moduleResolutions[mod], moduleExports);
456
+ if (typeof runMigrations === "function") {
457
+ await runMigrations({
458
+ options,
459
+ container: container,
460
+ logger: logger_,
461
+ });
462
+ }
463
+ }
464
+ }
465
+ static async migrateDown({ options, container, moduleExports, moduleKey, modulePath, }) {
466
+ const moduleResolutions = (0, loaders_1.registerEtoModule)(moduleKey, {
467
+ scope: types_1.MODULE_SCOPE.INTERNAL,
468
+ resolve: modulePath,
469
+ options,
470
+ });
471
+ const logger_ = container?.resolve(utils_1.ContainerRegistrationKeys.LOGGER, {
472
+ allowUnregistered: true,
473
+ }) ?? logger;
474
+ container ??= (0, utils_1.createEtoContainer)();
475
+ for (const mod in moduleResolutions) {
476
+ const { revertMigration } = await (0, utils_2.loadModuleMigrations)(moduleResolutions[mod], moduleExports);
477
+ if (typeof revertMigration === "function") {
478
+ await revertMigration({
479
+ options,
480
+ container: container,
481
+ logger: logger_,
482
+ });
483
+ }
484
+ }
485
+ }
486
+ }
487
+ EtoModule.instances_ = new Map();
488
+ EtoModule.modules_ = new Map();
489
+ EtoModule.customLinks_ = [];
490
+ EtoModule.loading_ = new Map();
491
+ EtoModule.joinerConfig_ = new Map();
492
+ EtoModule.moduleResolutions_ = new Map();
493
+ global.EtoModule ??= EtoModule;
494
+ const GlobalEtoModule = global.EtoModule;
495
+ exports.EtoModule = GlobalEtoModule;
496
+ //# sourceMappingURL=eto-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eto-module.js","sourceRoot":"","sources":["../src/eto-module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export * from "./definitions";
2
+ export * from "./loaders";
3
+ export * from "./eto-app";
4
+ export * from "./eto-module";
5
+ export * from "./link";
6
+ export * from "./remote-query";
7
+ export * from "./types";
8
+ export * from "./utils";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,25 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./definitions"), exports);
18
+ __exportStar(require("./loaders"), exports);
19
+ __exportStar(require("./eto-app"), exports);
20
+ __exportStar(require("./eto-module"), exports);
21
+ __exportStar(require("./link"), exports);
22
+ __exportStar(require("./remote-query"), exports);
23
+ __exportStar(require("./types"), exports);
24
+ __exportStar(require("./utils"), exports);
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA6B;AAC7B,4CAAyB;AACzB,4CAAyB;AACzB,+CAA4B;AAC5B,yCAAsB;AACtB,iDAA8B;AAC9B,0CAAuB;AACvB,0CAAuB"}
package/dist/link.d.ts ADDED
@@ -0,0 +1,53 @@
1
+ import { ILinkModule, LinkDefinition, LoadedModule, ModuleJoinerRelationship } from "@etohq/types";
2
+ import { Modules } from "@etohq/utils";
3
+ /**
4
+ * The details of a data model's record whose linked records should be deleted. Usually used after the
5
+ * data model's record is deleted.
6
+ *
7
+ * The key is the data model's name. Its value is an object that has the ID of the data model's record.
8
+ */
9
+ export type DeleteEntityInput = {
10
+ [moduleName: string | Modules]: Record<string, string | string[]>;
11
+ };
12
+ export type RestoreEntityInput = DeleteEntityInput;
13
+ type RemoteRelationship = ModuleJoinerRelationship & {
14
+ isPrimary: boolean;
15
+ isForeign: boolean;
16
+ };
17
+ type LoadedLinkModule = LoadedModule & ILinkModule;
18
+ type DeleteEntities = {
19
+ [key: string]: string[];
20
+ };
21
+ type RemovedIds = {
22
+ [serviceName: string]: DeleteEntities;
23
+ };
24
+ type RestoredIds = RemovedIds;
25
+ type CascadeError = {
26
+ serviceName: string;
27
+ method: String;
28
+ args: any;
29
+ error: Error;
30
+ };
31
+ export declare class Link {
32
+ private modulesMap;
33
+ private relationsPairs;
34
+ private relations;
35
+ constructor(modulesLoaded?: LoadedModule[]);
36
+ addModule(mod: LoadedModule): void;
37
+ private addRelationship;
38
+ getLinkModule(moduleA: string, moduleAKey: string, moduleB: string, moduleBKey: string): LoadedLinkModule | undefined;
39
+ getRelationships(): Map<string, Map<string, RemoteRelationship[]>>;
40
+ private getLinkableKeys;
41
+ private executeCascade;
42
+ private getLinkModuleOrThrow;
43
+ private getLinkDataConfig;
44
+ create(link: LinkDefinition | LinkDefinition[]): Promise<unknown[]>;
45
+ dismiss(link: LinkDefinition | LinkDefinition[]): Promise<unknown[]>;
46
+ delete(removedServices: DeleteEntityInput): Promise<[CascadeError[] | null, RemovedIds]>;
47
+ restore(removedServices: DeleteEntityInput): Promise<[CascadeError[] | null, RestoredIds]>;
48
+ list(link: LinkDefinition | LinkDefinition[], options?: {
49
+ asLinkDefinition?: boolean;
50
+ }): Promise<(object | LinkDefinition)[]>;
51
+ }
52
+ export {};
53
+ //# sourceMappingURL=link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,cAAc,EACd,YAAY,EACZ,wBAAwB,EACzB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAY,OAAO,EAA4B,MAAM,cAAc,CAAA;AAK1E;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;CAClE,CAAA;AACD,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAA;AAElD,KAAK,kBAAkB,GAAG,wBAAwB,GAAG;IACnD,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,KAAK,gBAAgB,GAAG,YAAY,GAAG,WAAW,CAAA;AAClD,KAAK,cAAc,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,CAAA;AACjD,KAAK,UAAU,GAAG;IAChB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAAA;CACtC,CAAA;AACD,KAAK,WAAW,GAAG,UAAU,CAAA;AAE7B,KAAK,YAAY,GAAG;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,GAAG,CAAA;IACT,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAUD,qBAAa,IAAI;IACf,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,cAAc,CAA2C;IACjE,OAAO,CAAC,SAAS,CAA4D;gBAEjE,aAAa,CAAC,EAAE,YAAY,EAAE;IAYnC,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;IAwDzC,OAAO,CAAC,eAAe;IAmBvB,aAAa,CACX,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM;IAMpB,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAIlE,OAAO,CAAC,eAAe;YAST,cAAc;IA2K5B,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,iBAAiB;IAgBnB,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAyCnE,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAkCpE,MAAM,CACV,eAAe,EAAE,iBAAiB,GACjC,OAAO,CAAC,CAAC,YAAY,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC;IAIzC,OAAO,CACX,eAAe,EAAE,iBAAiB,GACjC,OAAO,CAAC,CAAC,YAAY,EAAE,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC;IAI1C,IAAI,CACR,IAAI,EAAE,cAAc,GAAG,cAAc,EAAE,EACvC,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,GACvC,OAAO,CAAC,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC;CAoCxC"}