@powersync/service-module-mssql 0.0.0-dev-20260313100403 → 0.0.0-dev-20260511080634

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 (75) hide show
  1. package/CHANGELOG.md +77 -6
  2. package/dist/api/MSSQLRouteAPIAdapter.d.ts +2 -2
  3. package/dist/api/MSSQLRouteAPIAdapter.js +3 -3
  4. package/dist/api/MSSQLRouteAPIAdapter.js.map +1 -1
  5. package/dist/common/CaptureInstance.d.ts +14 -0
  6. package/dist/common/CaptureInstance.js +2 -0
  7. package/dist/common/CaptureInstance.js.map +1 -0
  8. package/dist/common/MSSQLSourceTable.d.ts +16 -14
  9. package/dist/common/MSSQLSourceTable.js +35 -16
  10. package/dist/common/MSSQLSourceTable.js.map +1 -1
  11. package/dist/common/MSSQLSourceTableCache.js.map +1 -1
  12. package/dist/common/mssqls-to-sqlite.d.ts +1 -1
  13. package/dist/common/mssqls-to-sqlite.js +1 -1
  14. package/dist/common/mssqls-to-sqlite.js.map +1 -1
  15. package/dist/module/MSSQLModule.js +4 -4
  16. package/dist/module/MSSQLModule.js.map +1 -1
  17. package/dist/replication/CDCPoller.d.ts +45 -23
  18. package/dist/replication/CDCPoller.js +201 -61
  19. package/dist/replication/CDCPoller.js.map +1 -1
  20. package/dist/replication/CDCReplicationJob.d.ts +2 -2
  21. package/dist/replication/CDCReplicationJob.js +12 -4
  22. package/dist/replication/CDCReplicationJob.js.map +1 -1
  23. package/dist/replication/CDCReplicator.d.ts +2 -3
  24. package/dist/replication/CDCReplicator.js +1 -24
  25. package/dist/replication/CDCReplicator.js.map +1 -1
  26. package/dist/replication/CDCStream.d.ts +39 -16
  27. package/dist/replication/CDCStream.js +195 -102
  28. package/dist/replication/CDCStream.js.map +1 -1
  29. package/dist/replication/MSSQLConnectionManager.d.ts +1 -1
  30. package/dist/replication/MSSQLConnectionManager.js +17 -6
  31. package/dist/replication/MSSQLConnectionManager.js.map +1 -1
  32. package/dist/replication/MSSQLConnectionManagerFactory.d.ts +1 -1
  33. package/dist/replication/MSSQLConnectionManagerFactory.js.map +1 -1
  34. package/dist/replication/MSSQLSnapshotQuery.d.ts +1 -1
  35. package/dist/replication/MSSQLSnapshotQuery.js +2 -2
  36. package/dist/replication/MSSQLSnapshotQuery.js.map +1 -1
  37. package/dist/types/types.d.ts +4 -56
  38. package/dist/types/types.js +5 -24
  39. package/dist/types/types.js.map +1 -1
  40. package/dist/utils/deadlock.d.ts +9 -0
  41. package/dist/utils/deadlock.js +40 -0
  42. package/dist/utils/deadlock.js.map +1 -0
  43. package/dist/utils/mssql.d.ts +36 -18
  44. package/dist/utils/mssql.js +102 -100
  45. package/dist/utils/mssql.js.map +1 -1
  46. package/dist/utils/schema.d.ts +9 -0
  47. package/dist/utils/schema.js +34 -0
  48. package/dist/utils/schema.js.map +1 -1
  49. package/package.json +14 -14
  50. package/src/api/MSSQLRouteAPIAdapter.ts +4 -4
  51. package/src/common/CaptureInstance.ts +15 -0
  52. package/src/common/MSSQLSourceTable.ts +33 -24
  53. package/src/common/MSSQLSourceTableCache.ts +1 -1
  54. package/src/common/mssqls-to-sqlite.ts +1 -1
  55. package/src/module/MSSQLModule.ts +4 -4
  56. package/src/replication/CDCPoller.ts +275 -75
  57. package/src/replication/CDCReplicationJob.ts +13 -6
  58. package/src/replication/CDCReplicator.ts +2 -28
  59. package/src/replication/CDCStream.ts +265 -124
  60. package/src/replication/MSSQLConnectionManager.ts +17 -7
  61. package/src/replication/MSSQLConnectionManagerFactory.ts +1 -1
  62. package/src/replication/MSSQLSnapshotQuery.ts +3 -3
  63. package/src/types/types.ts +5 -28
  64. package/src/utils/deadlock.ts +44 -0
  65. package/src/utils/mssql.ts +163 -128
  66. package/src/utils/schema.ts +44 -1
  67. package/test/src/CDCStream.test.ts +7 -7
  68. package/test/src/CDCStreamTestContext.ts +14 -8
  69. package/test/src/CDCStream_resumable_snapshot.test.ts +6 -6
  70. package/test/src/LSN.test.ts +1 -1
  71. package/test/src/mssql-to-sqlite.test.ts +25 -17
  72. package/test/src/schema-changes.test.ts +474 -0
  73. package/test/src/util.ts +79 -22
  74. package/test/tsconfig.json +0 -1
  75. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -1,21 +1,92 @@
1
1
  # @powersync/service-module-mssql
2
2
 
3
- ## 0.0.0-dev-20260313100403
3
+ ## 0.0.0-dev-20260511080634
4
4
 
5
5
  ### Patch Changes
6
6
 
7
+ - 040fffd: Improve consistency of logs and error messages
8
+ - 2b19fc3: Update first-party uuid dependencies to v14.
9
+ - Updated dependencies [f20f318]
10
+ - Updated dependencies [9add445]
11
+ - Updated dependencies [17503d1]
12
+ - Updated dependencies [01c29c3]
13
+ - Updated dependencies [cdb8993]
14
+ - Updated dependencies [7c7b525]
15
+ - Updated dependencies [824e229]
16
+ - Updated dependencies [040fffd]
17
+ - Updated dependencies [9e474d3]
18
+ - Updated dependencies [75174c4]
19
+ - Updated dependencies [423822c]
20
+ - Updated dependencies [2b19fc3]
21
+ - @powersync/service-core@0.0.0-dev-20260511080634
22
+ - @powersync/service-sync-rules@0.0.0-dev-20260511080634
23
+ - @powersync/lib-services-framework@0.0.0-dev-20260511080634
24
+ - @powersync/service-errors@0.0.0-dev-20260511080634
25
+ - @powersync/service-jsonbig@0.0.0-dev-20260511080634
26
+ - @powersync/service-types@0.0.0-dev-20260511080634
27
+
28
+ ## 0.6.3
29
+
30
+ ### Patch Changes
31
+
32
+ - Updated dependencies [41875f7]
33
+ - Updated dependencies [afc9890]
34
+ - Updated dependencies [2b72c2a]
35
+ - Updated dependencies [4611a49]
36
+ - Updated dependencies [b6a7896]
37
+ - Updated dependencies [2b72c2a]
38
+ - Updated dependencies [756746c]
39
+ - @powersync/service-types@0.15.1
40
+ - @powersync/service-core@1.20.5
41
+ - @powersync/service-errors@0.4.2
42
+ - @powersync/lib-services-framework@0.9.3
43
+ - @powersync/service-sync-rules@0.35.0
44
+
45
+ ## 0.6.2
46
+
47
+ ### Patch Changes
48
+
49
+ - df451c6: Node 24.14.0 and other dependency upgrades.
50
+ - 11b4deb: Restructure `powersync_replication_lag_seconds` metric.
51
+ - Updated dependencies [df451c6]
52
+ - Updated dependencies [dea1e00]
53
+ - Updated dependencies [ada86f2]
54
+ - Updated dependencies [11b4deb]
55
+ - @powersync/service-core@1.20.4
56
+ - @powersync/service-sync-rules@0.34.1
57
+ - @powersync/lib-services-framework@0.9.2
58
+
59
+ ## 0.6.1
60
+
61
+ ### Patch Changes
62
+
63
+ - @powersync/service-core@1.20.3
64
+
65
+ ## 0.6.0
66
+
67
+ ### Minor Changes
68
+
69
+ - 8d5d7ee: Added schema change detection and handling for the SQL Server adapter
70
+
71
+ ### Patch Changes
72
+
73
+ - Updated dependencies [224c35e]
7
74
  - Updated dependencies [acf1486]
8
75
  - Updated dependencies [391c5ef]
76
+ - Updated dependencies [7ee87d4]
9
77
  - Updated dependencies [99de8be]
78
+ - Updated dependencies [8d5d7ee]
10
79
  - Updated dependencies [9daf965]
11
80
  - Updated dependencies [4c92c24]
81
+ - Updated dependencies [3d230c2]
82
+ - Updated dependencies [206633f]
12
83
  - Updated dependencies [3a0627e]
13
84
  - Updated dependencies [275fd5f]
14
- - Updated dependencies [03b9a3b]
15
- - @powersync/service-sync-rules@0.0.0-dev-20260313100403
16
- - @powersync/service-core@0.0.0-dev-20260313100403
17
- - @powersync/service-types@0.0.0-dev-20260313100403
18
- - @powersync/lib-services-framework@0.0.0-dev-20260313100403
85
+ - Updated dependencies [7ce1b8e]
86
+ - @powersync/service-sync-rules@0.34.0
87
+ - @powersync/service-core@1.20.2
88
+ - @powersync/service-errors@0.4.1
89
+ - @powersync/lib-services-framework@0.9.1
19
90
 
20
91
  ## 0.5.0
21
92
 
@@ -1,9 +1,9 @@
1
1
  import { api, ParseSyncRulesOptions, PatternResult, ReplicationHeadCallback, ReplicationLagOptions } from '@powersync/service-core';
2
- import * as service_types from '@powersync/service-types';
3
2
  import { SqlSyncRules, TablePattern } from '@powersync/service-sync-rules';
4
- import * as types from '../types/types.js';
3
+ import * as service_types from '@powersync/service-types';
5
4
  import { ExecuteSqlResponse } from '@powersync/service-types/dist/routes.js';
6
5
  import { MSSQLConnectionManager } from '../replication/MSSQLConnectionManager.js';
6
+ import * as types from '../types/types.js';
7
7
  export declare class MSSQLRouteAPIAdapter implements api.RouteAPI {
8
8
  protected config: types.ResolvedMSSQLConnectionConfig;
9
9
  protected connectionManager: MSSQLConnectionManager;
@@ -1,10 +1,10 @@
1
1
  import * as service_types from '@powersync/service-types';
2
- import * as types from '../types/types.js';
2
+ import sql from 'mssql';
3
+ import { toExpressionTypeFromMSSQLType } from '../common/mssqls-to-sqlite.js';
3
4
  import { MSSQLConnectionManager } from '../replication/MSSQLConnectionManager.js';
5
+ import * as types from '../types/types.js';
4
6
  import { checkSourceConfiguration, createCheckpoint, getDebugTableInfo, getLatestLSN, POWERSYNC_CHECKPOINTS_TABLE } from '../utils/mssql.js';
5
7
  import { getTablesFromPattern } from '../utils/schema.js';
6
- import { toExpressionTypeFromMSSQLType } from '../common/mssqls-to-sqlite.js';
7
- import sql from 'mssql';
8
8
  export class MSSQLRouteAPIAdapter {
9
9
  config;
10
10
  connectionManager;
@@ -1 +1 @@
1
- {"version":3,"file":"MSSQLRouteAPIAdapter.js","sourceRoot":"","sources":["../../src/api/MSSQLRouteAPIAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MSSQLRouteAPIAdapter.js","sourceRoot":"","sources":["../../src/api/MSSQLRouteAPIAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { LSN } from './LSN.js';
2
+ export interface CaptureInstance {
3
+ name: string;
4
+ /**
5
+ * Object ID for the capture instance table
6
+ */
7
+ objectId: number;
8
+ minLSN: LSN;
9
+ createDate: Date;
10
+ /**
11
+ * DDL commands that have been applied to the source table but are not reflected in the capture instance.
12
+ */
13
+ pendingSchemaChanges: string[];
14
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CaptureInstance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CaptureInstance.js","sourceRoot":"","sources":["../../src/common/CaptureInstance.ts"],"names":[],"mappings":""}
@@ -1,25 +1,27 @@
1
1
  import { SourceTable } from '@powersync/service-core';
2
- export interface CaptureInstance {
3
- name: string;
4
- schema: string;
5
- }
6
- export interface MSSQLSourceTableOptions {
2
+ import { CaptureInstance } from './CaptureInstance.js';
3
+ /**
4
+ * The cdc schema in SQL Server is reserved and created when enabling CDC on a database.
5
+ */
6
+ export declare const CDC_SCHEMA = "cdc";
7
+ export declare class MSSQLSourceTable {
7
8
  sourceTable: SourceTable;
8
9
  /**
9
10
  * The unique name of the CDC capture instance for this table
10
11
  */
11
- captureInstance: CaptureInstance;
12
- }
13
- export declare class MSSQLSourceTable {
14
- private options;
15
- constructor(options: MSSQLSourceTableOptions);
16
- get sourceTable(): SourceTable;
12
+ captureInstance: CaptureInstance | null;
13
+ constructor(sourceTable: SourceTable);
17
14
  updateSourceTable(updated: SourceTable): void;
18
- get captureInstance(): string;
19
- get cdcSchema(): string;
20
- get CTTable(): string;
15
+ enabledForCDC(): boolean;
16
+ setCaptureInstance(captureInstance: CaptureInstance): void;
17
+ clearCaptureInstance(): void;
21
18
  get allChangesFunction(): string;
22
19
  get netChangesFunction(): string;
20
+ /**
21
+ * Return the object ID of the source table.
22
+ * Object IDs in SQL Server are always numbers.
23
+ */
24
+ get objectId(): number;
23
25
  /**
24
26
  * Escapes this source table's name and schema for use in MSSQL queries.
25
27
  */
@@ -1,29 +1,48 @@
1
- import { escapeIdentifier, toQualifiedTableName } from '../utils/mssql.js';
1
+ import { ServiceAssertionError } from '@powersync/service-errors';
2
+ import { toQualifiedTableName } from '../utils/mssql.js';
3
+ /**
4
+ * The cdc schema in SQL Server is reserved and created when enabling CDC on a database.
5
+ */
6
+ export const CDC_SCHEMA = 'cdc';
2
7
  export class MSSQLSourceTable {
3
- options;
4
- constructor(options) {
5
- this.options = options;
6
- }
7
- get sourceTable() {
8
- return this.options.sourceTable;
8
+ sourceTable;
9
+ /**
10
+ * The unique name of the CDC capture instance for this table
11
+ */
12
+ captureInstance = null;
13
+ constructor(sourceTable) {
14
+ this.sourceTable = sourceTable;
9
15
  }
10
16
  updateSourceTable(updated) {
11
- this.options.sourceTable = updated;
17
+ this.sourceTable = updated;
12
18
  }
13
- get captureInstance() {
14
- return this.options.captureInstance.name;
19
+ enabledForCDC() {
20
+ return this.captureInstance !== null;
15
21
  }
16
- get cdcSchema() {
17
- return this.options.captureInstance.schema;
22
+ setCaptureInstance(captureInstance) {
23
+ this.captureInstance = captureInstance;
18
24
  }
19
- get CTTable() {
20
- return `${escapeIdentifier(this.cdcSchema)}.${this.captureInstance}_CT`;
25
+ clearCaptureInstance() {
26
+ this.captureInstance = null;
21
27
  }
22
28
  get allChangesFunction() {
23
- return `${escapeIdentifier(this.cdcSchema)}.fn_cdc_get_all_changes_${this.captureInstance}`;
29
+ if (!this.captureInstance) {
30
+ throw new ServiceAssertionError(`No capture instance set for table: ${this.sourceTable.name}`);
31
+ }
32
+ return `${CDC_SCHEMA}.fn_cdc_get_all_changes_${this.captureInstance.name}`;
24
33
  }
25
34
  get netChangesFunction() {
26
- return `${escapeIdentifier(this.cdcSchema)}.fn_cdc_get_net_changes_${this.captureInstance}`;
35
+ if (!this.captureInstance) {
36
+ throw new ServiceAssertionError(`No capture instance set for table: ${this.sourceTable.name}`);
37
+ }
38
+ return `${CDC_SCHEMA}.fn_cdc_get_net_changes_${this.captureInstance.name}`;
39
+ }
40
+ /**
41
+ * Return the object ID of the source table.
42
+ * Object IDs in SQL Server are always numbers.
43
+ */
44
+ get objectId() {
45
+ return this.sourceTable.objectId;
27
46
  }
28
47
  /**
29
48
  * Escapes this source table's name and schema for use in MSSQL queries.
@@ -1 +1 @@
1
- {"version":3,"file":"MSSQLSourceTable.js","sourceRoot":"","sources":["../../src/common/MSSQLSourceTable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAe3E,MAAM,OAAO,gBAAgB;IACP;IAApB,YAAoB,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;IAAG,CAAC;IAExD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IAClC,CAAC;IAED,iBAAiB,CAAC,OAAoB;QACpC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC;IACrC,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;IAC7C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC;IAC1E,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,2BAA2B,IAAI,CAAC,eAAe,EAAE,CAAC;IAC9F,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,2BAA2B,IAAI,CAAC,eAAe,EAAE,CAAC;IAC9F,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;CACF"}
1
+ {"version":3,"file":"MSSQLSourceTable.js","sourceRoot":"","sources":["../../src/common/MSSQLSourceTable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGzD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC;AAEhC,MAAM,OAAO,gBAAgB;IAMR;IALnB;;OAEG;IACI,eAAe,GAA2B,IAAI,CAAC;IAEtD,YAAmB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IAE/C,iBAAiB,CAAC,OAAoB;QACpC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC;IACvC,CAAC;IAED,kBAAkB,CAAC,eAAgC;QACjD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,IAAI,kBAAkB;QACpB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,IAAI,qBAAqB,CAAC,sCAAsC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,GAAG,UAAU,2BAA2B,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IAC7E,CAAC;IAED,IAAI,kBAAkB;QACpB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,IAAI,qBAAqB,CAAC,sCAAsC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,GAAG,UAAU,2BAA2B,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IAC7E,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,WAAW,CAAC,QAAkB,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"MSSQLSourceTableCache.js","sourceRoot":"","sources":["../../src/common/MSSQLSourceTableCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,OAAO,qBAAqB;IACxB,KAAK,GAAG,IAAI,GAAG,EAAqC,CAAC;IAE7D,GAAG,CAAC,KAAuB;QACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,QAAS,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,YAAyB;QACzC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,QAAS,CAAC,CAAC;QAE7D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,qBAAqB,CAAC,8DAA8D,CAAC,CAAC;QAClG,CAAC;QACD,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,OAAe;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"MSSQLSourceTableCache.js","sourceRoot":"","sources":["../../src/common/MSSQLSourceTableCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,MAAM,OAAO,qBAAqB;IACxB,KAAK,GAAG,IAAI,GAAG,EAAqC,CAAC;IAE7D,GAAG,CAAC,KAAuB;QACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,QAAS,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,YAAyB;QACzC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,QAAS,CAAC,CAAC;QAE7D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,qBAAqB,CAAC,8DAA8D,CAAC,CAAC;QAClG,CAAC;QACD,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,OAAe;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
- import sql from 'mssql';
2
1
  import { ExpressionType, SqliteInputRow } from '@powersync/service-sync-rules';
2
+ import sql from 'mssql';
3
3
  export declare function toSqliteInputRow(row: any, columns: sql.IColumnMetadata): SqliteInputRow;
4
4
  /**
5
5
  * Converts MSSQL type names to SQLite ExpressionType
@@ -1,5 +1,5 @@
1
- import sql from 'mssql';
2
1
  import { DateTimeValue, ExpressionType, SQLITE_FALSE, SQLITE_TRUE, TimeValue, TimeValuePrecision, toSyncRulesRow } from '@powersync/service-sync-rules';
2
+ import sql from 'mssql';
3
3
  import { MSSQLUserDefinedType } from '../types/mssql-data-types.js';
4
4
  export function toSqliteInputRow(row, columns) {
5
5
  let result = {};
@@ -1 +1 @@
1
- {"version":3,"file":"mssqls-to-sqlite.js","sourceRoot":"","sources":["../../src/common/mssqls-to-sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mssqls-to-sqlite.js","sourceRoot":"","sources":["../../src/common/mssqls-to-sqlite.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { ConfigurationFileSyncRulesProvider, replication } from '@powersync/service-core';
2
- import { MSSQLConnectionManagerFactory } from '../replication/MSSQLConnectionManagerFactory.js';
3
- import * as types from '../types/types.js';
2
+ import { MSSQLRouteAPIAdapter } from '../api/MSSQLRouteAPIAdapter.js';
4
3
  import { CDCReplicator } from '../replication/CDCReplicator.js';
5
4
  import { MSSQLConnectionManager } from '../replication/MSSQLConnectionManager.js';
6
- import { checkSourceConfiguration } from '../utils/mssql.js';
5
+ import { MSSQLConnectionManagerFactory } from '../replication/MSSQLConnectionManagerFactory.js';
7
6
  import { MSSQLErrorRateLimiter } from '../replication/MSSQLErrorRateLimiter.js';
8
- import { MSSQLRouteAPIAdapter } from '../api/MSSQLRouteAPIAdapter.js';
7
+ import * as types from '../types/types.js';
8
+ import { checkSourceConfiguration } from '../utils/mssql.js';
9
9
  export class MSSQLModule extends replication.ReplicationModule {
10
10
  constructor() {
11
11
  super({
@@ -1 +1 @@
1
- {"version":3,"file":"MSSQLModule.js","sourceRoot":"","sources":["../../src/module/MSSQLModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MSSQLModule.js","sourceRoot":"","sources":["../../src/module/MSSQLModule.ts"],"names":[],"mappings":"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"}
@@ -1,47 +1,58 @@
1
1
  import { Logger } from '@powersync/lib-services-framework';
2
- import { MSSQLConnectionManager } from './MSSQLConnectionManager.js';
3
- import { MSSQLSourceTable } from '../common/MSSQLSourceTable.js';
4
- import { LSN } from '../common/LSN.js';
2
+ import { SourceEntityDescriptor } from '@powersync/service-core';
3
+ import { TablePattern } from '@powersync/service-sync-rules';
5
4
  import sql from 'mssql';
5
+ import { CaptureInstance } from '../common/CaptureInstance.js';
6
+ import { LSN } from '../common/LSN.js';
7
+ import { MSSQLSourceTable } from '../common/MSSQLSourceTable.js';
6
8
  import { AdditionalConfig } from '../types/types.js';
7
- /**
8
- * Schema changes that are detectable by inspecting query events.
9
- * Create table statements are not included here, since new tables are automatically detected when row events
10
- * are received for them.
11
- */
9
+ import { MSSQLConnectionManager } from './MSSQLConnectionManager.js';
12
10
  export declare enum SchemaChangeType {
13
- RENAME_TABLE = "Rename Table",
14
- DROP_TABLE = "Drop Table",
15
- TRUNCATE_TABLE = "Truncate Table",
16
- ALTER_TABLE_COLUMN = "Alter Table Column",
17
- REPLICATION_IDENTITY = "Alter Replication Identity"
11
+ TABLE_RENAME = "table_rename",
12
+ TABLE_DROP = "table_drop",
13
+ TABLE_CREATE = "table_create",
14
+ TABLE_COLUMN_CHANGES = "table_column_changes",
15
+ NEW_CAPTURE_INSTANCE = "new_capture_instance",
16
+ MISSING_CAPTURE_INSTANCE = "missing_capture_instance"
18
17
  }
19
18
  export interface SchemaChange {
20
19
  type: SchemaChangeType;
21
20
  /**
22
- * The table that the schema change applies to.
21
+ * The table that the schema change applies to. Populated for table drops, renames, new capture instances, and DDL changes.
23
22
  */
24
- table: string;
25
- schema: string;
23
+ table?: MSSQLSourceTable;
26
24
  /**
27
- * Populated for table renames if the newTable was matched by the DatabaseFilter
25
+ * Populated for new tables or renames, but only if the new table matches a sync config source table.
28
26
  */
29
- newTable?: string;
27
+ newTable?: Omit<SourceEntityDescriptor, 'replicaIdColumns'>;
28
+ newCaptureInstance?: CaptureInstance;
30
29
  }
31
30
  export interface CDCEventHandler {
32
- onInsert: (row: any, table: MSSQLSourceTable, collumns: sql.IColumnMetadata) => Promise<void>;
33
- onUpdate: (rowAfter: any, rowBefore: any, table: MSSQLSourceTable, collumns: sql.IColumnMetadata) => Promise<void>;
34
- onDelete: (row: any, table: MSSQLSourceTable, collumns: sql.IColumnMetadata) => Promise<void>;
31
+ onInsert: (row: any, table: MSSQLSourceTable, columns: sql.IColumnMetadata) => Promise<void>;
32
+ onUpdate: (rowAfter: any, rowBefore: any, table: MSSQLSourceTable, columns: sql.IColumnMetadata) => Promise<void>;
33
+ onDelete: (row: any, table: MSSQLSourceTable, columns: sql.IColumnMetadata) => Promise<void>;
35
34
  onCommit: (lsn: string, transactionCount: number) => Promise<void>;
36
35
  onSchemaChange: (change: SchemaChange) => Promise<void>;
37
36
  }
37
+ export declare const DEFAULT_SCHEMA_CHECK_INTERVAL_MS = 60000;
38
38
  export interface CDCPollerOptions {
39
39
  connectionManager: MSSQLConnectionManager;
40
40
  eventHandler: CDCEventHandler;
41
- sourceTables: MSSQLSourceTable[];
41
+ /** CDC enabled source tables from the sync config to replicate */
42
+ getReplicatedTables: () => MSSQLSourceTable[];
43
+ /** All table patterns from the sync config. Can contain tables that need to be replicated
44
+ * but do not yet have CDC enabled
45
+ */
46
+ sourceTables: TablePattern[];
42
47
  startLSN: LSN;
43
48
  logger?: Logger;
44
49
  additionalConfig: AdditionalConfig;
50
+ /**
51
+ * Interval in milliseconds between schema change checks.
52
+ * Schema checks also run immediately after a recoverable error during polling
53
+ * (e.g. a dropped capture instance).
54
+ */
55
+ schemaCheckIntervalMs?: number;
45
56
  }
46
57
  /**
47
58
  *
@@ -53,15 +64,26 @@ export declare class CDCPoller {
53
64
  private currentLSN;
54
65
  private logger;
55
66
  private listenerError;
67
+ private captureInstances;
56
68
  private isStopped;
57
69
  private isStopping;
58
70
  private isPolling;
71
+ private lastSchemaCheckTime;
59
72
  constructor(options: CDCPollerOptions);
60
73
  private get pollingBatchSize();
61
74
  private get pollingIntervalMs();
62
- private get sourceTables();
75
+ private get schemaCheckIntervalMs();
76
+ private get replicatedTables();
63
77
  stop(): Promise<void>;
64
78
  replicateUntilStopped(): Promise<void>;
65
79
  private poll;
66
80
  private pollTable;
81
+ private shouldCheckSchema;
82
+ /**
83
+ * Checks the given table for pending schema changes that can lead to inconsistencies in the replicated data if not handled.
84
+ * Returns the SchemaChange if any are found, null otherwise.
85
+ */
86
+ private checkForSchemaChanges;
87
+ private checkForNewTables;
88
+ private tableMatchesSyncRules;
67
89
  }