@powersync/service-core 1.18.1 → 1.18.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @powersync/service-core
2
2
 
3
+ ## 1.18.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 8fdbf8d: - Rework dynamic module loading, fixing startup issues for migration and compact jobs in 1.18.0 / 1.18.1
8
+ - Updated dependencies [bdfd287]
9
+ - @powersync/service-sync-rules@0.29.10
10
+ - @powersync/lib-services-framework@0.7.14
11
+ - @powersync/service-rsocket-router@0.2.11
12
+
3
13
  ## 1.18.1
4
14
 
5
15
  ### Patch Changes
@@ -1,11 +1,14 @@
1
1
  import * as system from '../system/system-index.js';
2
2
  import { AbstractModule, TearDownOptions } from './AbstractModule.js';
3
+ import { ModuleLoaders } from './loader.js';
3
4
  /**
4
5
  * The module manager keeps track of activated modules
5
6
  */
6
7
  export declare class ModuleManager {
7
8
  private readonly modules;
9
+ private moduleLoaders;
8
10
  register(modules: AbstractModule[]): void;
11
+ registerDynamicModules(moduleLoaders: ModuleLoaders): void;
9
12
  initialize(serviceContext: system.ServiceContextContainer): Promise<void>;
10
13
  tearDown(options: TearDownOptions): Promise<void>;
11
14
  }
@@ -1,9 +1,11 @@
1
1
  import { logger } from '@powersync/lib-services-framework';
2
+ import { loadModules } from './loader.js';
2
3
  /**
3
4
  * The module manager keeps track of activated modules
4
5
  */
5
6
  export class ModuleManager {
6
7
  modules = new Map();
8
+ moduleLoaders;
7
9
  register(modules) {
8
10
  for (const module of modules) {
9
11
  if (this.modules.has(module.name)) {
@@ -14,7 +16,16 @@ export class ModuleManager {
14
16
  logger.info(`Successfully registered Module ${module.name}.`);
15
17
  }
16
18
  }
19
+ registerDynamicModules(moduleLoaders) {
20
+ this.moduleLoaders = moduleLoaders;
21
+ }
17
22
  async initialize(serviceContext) {
23
+ logger.info(`Loading dynamic modules...`);
24
+ if (this.moduleLoaders) {
25
+ const dynamicModules = await loadModules(serviceContext.configuration, this.moduleLoaders);
26
+ this.register(dynamicModules);
27
+ }
28
+ logger.info(`Successfully loaded dynamic modules.`);
18
29
  logger.info(`Initializing modules...`);
19
30
  for (const module of this.modules.values()) {
20
31
  await module.initialize(serviceContext);
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleManager.js","sourceRoot":"","sources":["../../src/modules/ModuleManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAG3D;;GAEG;AACH,MAAM,OAAO,aAAa;IACP,OAAO,GAAgC,IAAI,GAAG,EAAE,CAAC;IAE3D,QAAQ,CAAC,OAAyB;QACvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,IAAI,gCAAgC,CAAC,CAAC;gBACnE,SAAS;YACX,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,kCAAkC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,cAA8C;QAC7D,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACvC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,MAAM,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAwB;QACrC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"ModuleManager.js","sourceRoot":"","sources":["../../src/modules/ModuleManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAiB,MAAM,aAAa,CAAC;AACzD;;GAEG;AACH,MAAM,OAAO,aAAa;IACP,OAAO,GAAgC,IAAI,GAAG,EAAE,CAAC;IAC1D,aAAa,CAA4B;IAE1C,QAAQ,CAAC,OAAyB;QACvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,IAAI,gCAAgC,CAAC,CAAC;gBACnE,SAAS;YACX,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,kCAAkC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAEM,sBAAsB,CAAC,aAA4B;QACxD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,cAA8C;QAC7D,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3F,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QAEpD,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACvC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,MAAM,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAwB;QACrC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
- "version": "1.18.1",
8
+ "version": "1.18.2",
9
9
  "main": "dist/index.js",
10
10
  "license": "FSL-1.1-ALv2",
11
11
  "type": "module",
@@ -33,10 +33,10 @@
33
33
  "uuid": "^11.1.0",
34
34
  "winston": "^3.13.0",
35
35
  "yaml": "^2.3.2",
36
- "@powersync/lib-services-framework": "0.7.13",
36
+ "@powersync/lib-services-framework": "0.7.14",
37
37
  "@powersync/service-jsonbig": "0.17.12",
38
- "@powersync/service-rsocket-router": "0.2.10",
39
- "@powersync/service-sync-rules": "0.29.9",
38
+ "@powersync/service-rsocket-router": "0.2.11",
39
+ "@powersync/service-sync-rules": "0.29.10",
40
40
  "@powersync/service-types": "0.13.3"
41
41
  },
42
42
  "devDependencies": {
@@ -1,11 +1,13 @@
1
1
  import { logger } from '@powersync/lib-services-framework';
2
2
  import * as system from '../system/system-index.js';
3
3
  import { AbstractModule, TearDownOptions } from './AbstractModule.js';
4
+ import { loadModules, ModuleLoaders } from './loader.js';
4
5
  /**
5
6
  * The module manager keeps track of activated modules
6
7
  */
7
8
  export class ModuleManager {
8
9
  private readonly modules: Map<string, AbstractModule> = new Map();
10
+ private moduleLoaders: ModuleLoaders | undefined;
9
11
 
10
12
  public register(modules: AbstractModule[]) {
11
13
  for (const module of modules) {
@@ -18,7 +20,18 @@ export class ModuleManager {
18
20
  }
19
21
  }
20
22
 
23
+ public registerDynamicModules(moduleLoaders: ModuleLoaders) {
24
+ this.moduleLoaders = moduleLoaders;
25
+ }
26
+
21
27
  async initialize(serviceContext: system.ServiceContextContainer) {
28
+ logger.info(`Loading dynamic modules...`);
29
+ if (this.moduleLoaders) {
30
+ const dynamicModules = await loadModules(serviceContext.configuration, this.moduleLoaders);
31
+ this.register(dynamicModules);
32
+ }
33
+ logger.info(`Successfully loaded dynamic modules.`);
34
+
22
35
  logger.info(`Initializing modules...`);
23
36
  for (const module of this.modules.values()) {
24
37
  await module.initialize(serviceContext);