@powersync/service-module-mssql 0.0.0-dev-20260225160713 → 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 (76) hide show
  1. package/CHANGELOG.md +113 -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 +200 -103
  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 +271 -128
  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 +10 -8
  68. package/test/src/CDCStreamTestContext.ts +32 -12
  69. package/test/src/CDCStream_resumable_snapshot.test.ts +14 -12
  70. package/test/src/LSN.test.ts +1 -1
  71. package/test/src/env.ts +1 -1
  72. package/test/src/mssql-to-sqlite.test.ts +25 -17
  73. package/test/src/schema-changes.test.ts +474 -0
  74. package/test/src/util.ts +81 -18
  75. package/test/tsconfig.json +0 -1
  76. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MSSQLConnectionManager.js","sourceRoot":"","sources":["../../src/replication/MSSQLConnectionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MSSQLConnectionManager.js","sourceRoot":"","sources":["../../src/replication/MSSQLConnectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,GAAG,MAAM,OAAO,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC;AAMpC,MAAM,OAAO,sBAAuB,SAAQ,YAA4C;IAI7E;IAHQ,IAAI,CAAqB;IAE1C,YACS,OAAwC,EAC/C,WAAyC;QAEzC,KAAK,EAAE,CAAC;QAHD,YAAO,GAAP,OAAO,CAAiC;QAI/C,2EAA2E;QAC3E,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC;YACjC,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,IAAI,EAAE,OAAO,CAAC,QAAQ;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,QAAQ;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,OAAO,EAAE,aAAa,iBAAiB,EAAE;gBACzC,OAAO,EAAE,IAAI,EAAE,qBAAqB;gBACpC,sBAAsB,EAAE,OAAO,CAAC,gBAAgB,CAAC,sBAAsB;aACxE;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IAC1B,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAa,EAAE,UAA6B;QACtD,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7B,KAAK,IAAI,KAAK,GAAG,CAAC,GAAI,KAAK,EAAE,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,CAAC,KAAK,CAAC,oBAAoB,KAAK,EAAE,CAAC,CAAC;gBAC1C,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBAC/C,CAAC;gBACD,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;oBACf,MAAM,CAAC,CAAC;gBACV,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,UAA6B;QAC5D,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7B,KAAK,IAAI,KAAK,GAAG,CAAC,GAAI,KAAK,EAAE,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,CAAC,KAAK,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;gBAClD,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAI,UAAU,EAAE,CAAC;oBACf,IAAI,UAAU,EAAE,CAAC;wBACf,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;gBACD,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;oBACf,MAAM,CAAC,CAAC;gBACV,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,qCAAqC,SAAS,cAAc,EAAE,CAAC,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,kFAAkF;gBAClF,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YAClE,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACjC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBACvB,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
+ import sql from 'mssql';
1
2
  import { ResolvedMSSQLConnectionConfig } from '../types/types.js';
2
3
  import { MSSQLConnectionManager } from './MSSQLConnectionManager.js';
3
- import sql from 'mssql';
4
4
  export declare class MSSQLConnectionManagerFactory {
5
5
  private readonly connectionManagers;
6
6
  readonly connectionConfig: ResolvedMSSQLConnectionConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"MSSQLConnectionManagerFactory.js","sourceRoot":"","sources":["../../src/replication/MSSQLConnectionManagerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,MAAM,OAAO,6BAA6B;IACvB,kBAAkB,CAA8B;IACjD,gBAAgB,CAAgC;IAEhE,YAAY,gBAA+C;QACzD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,WAAyC;QAC9C,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAC/E,OAAO,CAAC,gBAAgB,CAAC;YACvB,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1D,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;YACvD,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;QACtB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAC/D,CAAC;CACF"}
1
+ {"version":3,"file":"MSSQLConnectionManagerFactory.js","sourceRoot":"","sources":["../../src/replication/MSSQLConnectionManagerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,OAAO,6BAA6B;IACvB,kBAAkB,CAA8B;IACjD,gBAAgB,CAAgC;IAEhE,YAAY,gBAA+C;QACzD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,WAAyC;QAC9C,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAC/E,OAAO,CAAC,gBAAgB,CAAC;YACvB,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1D,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;YACvD,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;QACtB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAC/D,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import { SourceTable } from '@powersync/service-core';
2
- import { MSSQLBaseType } from '../types/mssql-data-types.js';
3
2
  import sql from 'mssql';
4
3
  import { MSSQLSourceTable } from '../common/MSSQLSourceTable.js';
4
+ import { MSSQLBaseType } from '../types/mssql-data-types.js';
5
5
  export interface MSSQLSnapshotQuery {
6
6
  initialize(): Promise<void>;
7
7
  /**
@@ -1,8 +1,8 @@
1
- import { bson } from '@powersync/service-core';
2
1
  import { ServiceAssertionError } from '@powersync/lib-services-framework';
2
+ import { bson } from '@powersync/service-core';
3
+ import { MSSQLSourceTable } from '../common/MSSQLSourceTable.js';
3
4
  import { MSSQLBaseType } from '../types/mssql-data-types.js';
4
5
  import { escapeIdentifier } from '../utils/mssql.js';
5
- import { MSSQLSourceTable } from '../common/MSSQLSourceTable.js';
6
6
  /**
7
7
  * Snapshot query using a plain SELECT * FROM table
8
8
  *
@@ -1 +1 @@
1
- {"version":3,"file":"MSSQLSnapshotQuery.js","sourceRoot":"","sources":["../../src/replication/MSSQLSnapshotQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MSSQLSnapshotQuery.js","sourceRoot":"","sources":["../../src/replication/MSSQLSnapshotQuery.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,8 @@
1
1
  import { LookupFunction } from 'node:net';
2
2
  import * as t from 'ts-codec';
3
+ export declare const DEFAULT_POLLING_BATCH_SIZE = 10;
4
+ export declare const DEFAULT_POLLING_INTERVAL_MS = 1000;
3
5
  export declare const MSSQL_CONNECTION_TYPE: "mssql";
4
- export declare const AzureActiveDirectoryPasswordAuthentication: t.ObjectCodec<{
5
- type: t.LiteralCodec<"azure-active-directory-password">;
6
- options: t.ObjectCodec<{
7
- /**
8
- * A user need to provide `userName` associate to their account.
9
- */
10
- userName: t.IdentityCodec<t.CodecType.String>;
11
- /**
12
- * A user need to provide `password` associate to their account.
13
- */
14
- password: t.IdentityCodec<t.CodecType.String>;
15
- /**
16
- * A client id to use.
17
- */
18
- clientId: t.IdentityCodec<t.CodecType.String>;
19
- /**
20
- * Azure tenant ID
21
- */
22
- tenantId: t.IdentityCodec<t.CodecType.String>;
23
- }>;
24
- }>;
25
- export type AzureActiveDirectoryPasswordAuthentication = t.Decoded<typeof AzureActiveDirectoryPasswordAuthentication>;
26
6
  export declare const AzureActiveDirectoryServicePrincipalSecret: t.ObjectCodec<{
27
7
  type: t.LiteralCodec<"azure-active-directory-service-principal-secret">;
28
8
  options: t.ObjectCodec<{
@@ -56,28 +36,12 @@ export declare const DefaultAuthentication: t.ObjectCodec<{
56
36
  }>;
57
37
  export type DefaultAuthentication = t.Decoded<typeof DefaultAuthentication>;
58
38
  export declare const Authentication: t.Union<t.Codec<{
59
- type: "azure-active-directory-password";
60
- options: {
61
- userName: string;
62
- password: string;
63
- clientId: string;
64
- tenantId: string;
65
- };
66
- } | {
67
39
  type: "default";
68
40
  options: {
69
41
  userName: string;
70
42
  password: string;
71
43
  };
72
44
  }, {
73
- type: "azure-active-directory-password";
74
- options: {
75
- userName: string;
76
- password: string;
77
- clientId: string;
78
- tenantId: string;
79
- };
80
- } | {
81
45
  type: "default";
82
46
  options: {
83
47
  userName: string;
@@ -164,19 +128,11 @@ export declare const MSSQLConnectionConfig: t.Intersection<t.Codec<{
164
128
  hostname: t.OptionalCodec<t.Codec<string, string, string, t.CodecProps>>;
165
129
  port: t.OptionalCodec<t.Codec<number, string | number, string, t.CodecProps>>;
166
130
  authentication: t.OptionalCodec<t.Codec<{
167
- type: "azure-active-directory-password";
168
- options: {
169
- userName: string;
170
- password: string;
171
- clientId: string;
172
- tenantId: string;
173
- };
174
- } | {
175
131
  type: "azure-active-directory-service-principal-secret";
176
132
  options: {
177
133
  clientId: string;
178
- tenantId: string;
179
134
  clientSecret: string;
135
+ tenantId: string;
180
136
  };
181
137
  } | {
182
138
  type: "default";
@@ -185,19 +141,11 @@ export declare const MSSQLConnectionConfig: t.Intersection<t.Codec<{
185
141
  password: string;
186
142
  };
187
143
  }, {
188
- type: "azure-active-directory-password";
189
- options: {
190
- userName: string;
191
- password: string;
192
- clientId: string;
193
- tenantId: string;
194
- };
195
- } | {
196
144
  type: "azure-active-directory-service-principal-secret";
197
145
  options: {
198
146
  clientId: string;
199
- tenantId: string;
200
147
  clientSecret: string;
148
+ tenantId: string;
201
149
  };
202
150
  } | {
203
151
  type: "default";
@@ -2,28 +2,9 @@ import { ErrorCode, makeHostnameLookupFunction, ServiceError } from '@powersync/
2
2
  import * as service_types from '@powersync/service-types';
3
3
  import * as t from 'ts-codec';
4
4
  import * as urijs from 'uri-js';
5
+ export const DEFAULT_POLLING_BATCH_SIZE = 10;
6
+ export const DEFAULT_POLLING_INTERVAL_MS = 1000;
5
7
  export const MSSQL_CONNECTION_TYPE = 'mssql';
6
- export const AzureActiveDirectoryPasswordAuthentication = t.object({
7
- type: t.literal('azure-active-directory-password'),
8
- options: t.object({
9
- /**
10
- * A user need to provide `userName` associate to their account.
11
- */
12
- userName: t.string,
13
- /**
14
- * A user need to provide `password` associate to their account.
15
- */
16
- password: t.string,
17
- /**
18
- * A client id to use.
19
- */
20
- clientId: t.string,
21
- /**
22
- * Azure tenant ID
23
- */
24
- tenantId: t.string
25
- })
26
- });
27
8
  export const AzureActiveDirectoryServicePrincipalSecret = t.object({
28
9
  type: t.literal('azure-active-directory-service-principal-secret'),
29
10
  options: t.object({
@@ -54,7 +35,7 @@ export const DefaultAuthentication = t.object({
54
35
  password: t.string
55
36
  })
56
37
  });
57
- export const Authentication = DefaultAuthentication.or(AzureActiveDirectoryPasswordAuthentication).or(AzureActiveDirectoryServicePrincipalSecret);
38
+ export const Authentication = DefaultAuthentication.or(AzureActiveDirectoryServicePrincipalSecret);
58
39
  export const AdditionalConfig = t.object({
59
40
  /**
60
41
  * Interval in milliseconds to wait between polling cycles. Defaults to 1000 milliseconds.
@@ -129,8 +110,8 @@ export function normalizeConnectionConfig(options) {
129
110
  lookup,
130
111
  authentication: options.authentication,
131
112
  additionalConfig: {
132
- pollingIntervalMs: options.additionalConfig?.pollingIntervalMs ?? 1000,
133
- pollingBatchSize: options.additionalConfig?.pollingBatchSize ?? 10,
113
+ pollingIntervalMs: options.additionalConfig?.pollingIntervalMs ?? DEFAULT_POLLING_INTERVAL_MS,
114
+ pollingBatchSize: options.additionalConfig?.pollingBatchSize ?? DEFAULT_POLLING_BATCH_SIZE,
134
115
  trustServerCertificate: options.additionalConfig?.trustServerCertificate ?? false
135
116
  }
136
117
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACxG,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAE1D,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAEhC,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAC7C,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAgB,CAAC;AAEtD,MAAM,CAAC,MAAM,0CAA0C,GAAG,CAAC,CAAC,MAAM,CAAC;IACjE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,iDAAiD,CAAC;IAClE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB;;WAEG;QACH,QAAQ,EAAE,CAAC,CAAC,MAAM;QAClB;;WAEG;QACH,YAAY,EAAE,CAAC,CAAC,MAAM;QACtB;;WAEG;QACH,QAAQ,EAAE,CAAC,CAAC,MAAM;KACnB,CAAC;CACH,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB;;WAEG;QACH,QAAQ,EAAE,CAAC,CAAC,MAAM;QAClB;;WAEG;QACH,QAAQ,EAAE,CAAC,CAAC,MAAM;KACnB,CAAC;CACH,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,cAAc,GAAG,qBAAqB,CAAC,EAAE,CAAC,0CAA0C,CAAC,CAAC;AAGnG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC;;OAEG;IACH,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;IACtC;;OAEG;IACH,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;IAErC;;;OAGG;IACH,sBAAsB,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAoCH,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAChF,CAAC,CAAC,MAAM,CAAC;IACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC;IACtC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;IACxB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE;IAEnD,cAAc,EAAE,cAAc,CAAC,QAAQ,EAAE;IAEzC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;IAC9C,gBAAgB,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CAC9C,CAAC,CACH,CAAC;AAYF;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAA8B;IACtE,IAAI,GAAwB,CAAC;IAC7B,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,YAAY,CACpB,SAAS,CAAC,WAAW,EACrB,6CAA6C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAC1E,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAElE,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAErE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,YAAY,IAAI,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,YAAY,IAAI,EAAE,CAAC;IAExD,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC,WAAW,EAAE,qCAAqC,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,QAAQ,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC9C,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC,WAAW,EAAE,iEAAiE,CAAC,CAAC;IACnH,CAAC;IAED,IAAI,QAAQ,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC9C,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC,WAAW,EAAE,iEAAiE,CAAC,CAAC;IACnH,CAAC;IAED,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC,WAAW,EAAE,qCAAqC,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,MAAM,GAAG,0BAA0B,CAAC,QAAQ,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAC,CAAC;IAE1G,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,SAAS;QAC3B,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,SAAS;QAE7B,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,QAAQ;QAER,MAAM;QACN,cAAc,EAAE,OAAO,CAAC,cAAc;QAEtC,gBAAgB,EAAE;YAChB,iBAAiB,EAAE,OAAO,CAAC,gBAAgB,EAAE,iBAAiB,IAAI,2BAA2B;YAC7F,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,IAAI,0BAA0B;YAC1F,sBAAsB,EAAE,OAAO,CAAC,gBAAgB,EAAE,sBAAsB,IAAI,KAAK;SAClF;KACwC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,MAAqC;IAC3D,OAAO,WAAW,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;AACxE,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Retries the given async function if it fails with a SQL Server deadlock error (1205).
3
+ * Deadlocks, while uncommon, can occur when CDC altering functions are being called whilst actively replicating
4
+ * using CDC functions.
5
+ *
6
+ * If the error is not a deadlock or all retries are exhausted, the error is re-thrown.
7
+ */
8
+ export declare function retryOnDeadlock<T>(fn: () => Promise<T>, operationName: string): Promise<T>;
9
+ export declare function isDeadlockError(error: unknown): boolean;
@@ -0,0 +1,40 @@
1
+ import { logger } from '@powersync/lib-services-framework';
2
+ import timers from 'timers/promises';
3
+ const MSSQL_DEADLOCK_RETRIES = 5;
4
+ const MSSQL_DEADLOCK_BACKOFF_FACTOR = 2;
5
+ const MSSQL_DEADLOCK_RETRY_DELAY_MS = 200;
6
+ /**
7
+ * Retries the given async function if it fails with a SQL Server deadlock error (1205).
8
+ * Deadlocks, while uncommon, can occur when CDC altering functions are being called whilst actively replicating
9
+ * using CDC functions.
10
+ *
11
+ * If the error is not a deadlock or all retries are exhausted, the error is re-thrown.
12
+ */
13
+ export async function retryOnDeadlock(fn, operationName) {
14
+ let lastError = null;
15
+ for (let attempt = 0; attempt <= MSSQL_DEADLOCK_RETRIES; attempt++) {
16
+ try {
17
+ return await fn();
18
+ }
19
+ catch (error) {
20
+ lastError = error;
21
+ if (!isDeadlockError(error) || attempt === MSSQL_DEADLOCK_RETRIES) {
22
+ throw error;
23
+ }
24
+ const delay = MSSQL_DEADLOCK_RETRY_DELAY_MS * Math.pow(MSSQL_DEADLOCK_BACKOFF_FACTOR, attempt);
25
+ logger.warn(`Deadlock detected during ${operationName} (attempt ${attempt + 1}/${MSSQL_DEADLOCK_RETRIES}). Retrying in ${delay}ms...`);
26
+ await timers.setTimeout(delay);
27
+ }
28
+ }
29
+ throw lastError;
30
+ }
31
+ export function isDeadlockError(error) {
32
+ if (error != null && typeof error === 'object' && 'number' in error) {
33
+ // SQL Server deadlock victim error number.
34
+ // When SQL Server detects a deadlock, it chooses one of the participating transactions
35
+ // as the "deadlock victim" and terminates it with error 1205.
36
+ return error.number === 1205;
37
+ }
38
+ return false;
39
+ }
40
+ //# sourceMappingURL=deadlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deadlock.js","sourceRoot":"","sources":["../../src/utils/deadlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AACxC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAI,EAAoB,EAAE,aAAqB;IAClF,IAAI,SAAS,GAAiB,IAAI,CAAC;IACnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,sBAAsB,EAAE,OAAO,EAAE,EAAE,CAAC;QACnE,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,sBAAsB,EAAE,CAAC;gBAClE,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,KAAK,GAAG,6BAA6B,GAAG,IAAI,CAAC,GAAG,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;YAC/F,MAAM,CAAC,IAAI,CACT,4BAA4B,aAAa,aAAa,OAAO,GAAG,CAAC,IAAI,sBAAsB,kBAAkB,KAAK,OAAO,CAC1H,CAAC;YACF,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QACpE,2CAA2C;QAC3C,uFAAuF;QACvF,8DAA8D;QAC9D,OAAQ,KAA6B,CAAC,MAAM,KAAK,IAAI,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,16 +1,17 @@
1
+ import { SqlSyncRules, TablePattern } from '@powersync/service-sync-rules';
2
+ import * as service_types from '@powersync/service-types';
1
3
  import sql from 'mssql';
2
- import { MSSQLConnectionManager } from '../replication/MSSQLConnectionManager.js';
4
+ import { CaptureInstance } from '../common/CaptureInstance.js';
3
5
  import { LSN } from '../common/LSN.js';
4
- import { CaptureInstance, MSSQLSourceTable } from '../common/MSSQLSourceTable.js';
6
+ import { MSSQLSourceTable } from '../common/MSSQLSourceTable.js';
7
+ import { MSSQLConnectionManager } from '../replication/MSSQLConnectionManager.js';
5
8
  import { MSSQLParameter } from '../types/mssql-data-types.js';
6
- import { SqlSyncRules, TablePattern } from '@powersync/service-sync-rules';
7
9
  import { ResolvedTable } from './schema.js';
8
- import * as service_types from '@powersync/service-types';
9
10
  export declare const POWERSYNC_CHECKPOINTS_TABLE = "_powersync_checkpoints";
10
11
  export declare const SUPPORTED_ENGINE_EDITIONS: Map<number, string>;
11
12
  export declare const MINIMUM_SUPPORTED_VERSION = "15.0";
12
13
  export declare function checkSourceConfiguration(connectionManager: MSSQLConnectionManager): Promise<string[]>;
13
- export declare function ensurePowerSyncCheckpointsTable(connectionManager: MSSQLConnectionManager): Promise<string[]>;
14
+ export declare function checkPowerSyncCheckpointsTable(connectionManager: MSSQLConnectionManager): Promise<string[]>;
14
15
  export declare function createCheckpoint(connectionManager: MSSQLConnectionManager): Promise<void>;
15
16
  export interface IsTableEnabledForCDCOptions {
16
17
  connectionManager: MSSQLConnectionManager;
@@ -22,11 +23,6 @@ export interface IsTableEnabledForCDCOptions {
22
23
  * @param options
23
24
  */
24
25
  export declare function isTableEnabledForCDC(options: IsTableEnabledForCDCOptions): Promise<boolean>;
25
- export interface EnableCDCForTableOptions {
26
- connectionManager: MSSQLConnectionManager;
27
- table: string;
28
- }
29
- export declare function enableCDCForTable(options: EnableCDCForTableOptions): Promise<void>;
30
26
  /**
31
27
  * Check if the supplied version is newer or equal to the target version.
32
28
  * @param version
@@ -39,20 +35,14 @@ export interface IsWithinRetentionThresholdOptions {
39
35
  connectionManager: MSSQLConnectionManager;
40
36
  }
41
37
  /**
42
- * Checks that CDC the specified checkpoint LSN is within the retention threshold for all specified tables.
38
+ * Checks that the given checkpoint LSN is still within the retention threshold of the source table capture instances.
43
39
  * CDC periodically cleans up old data up to the retention threshold. If replication has been stopped for too long it is
44
40
  * possible for the checkpoint LSN to be older than the minimum LSN in the CDC tables. In such a case we need to perform a new snapshot.
45
41
  * @param options
46
42
  */
47
- export declare function isWithinRetentionThreshold(options: IsWithinRetentionThresholdOptions): Promise<boolean>;
43
+ export declare function checkRetentionThresholds(options: IsWithinRetentionThresholdOptions): Promise<MSSQLSourceTable[]>;
48
44
  export declare function getMinLSN(connectionManager: MSSQLConnectionManager, captureInstance: string): Promise<LSN>;
49
45
  export declare function incrementLSN(lsn: LSN, connectionManager: MSSQLConnectionManager): Promise<LSN>;
50
- export interface GetCaptureInstanceOptions {
51
- connectionManager: MSSQLConnectionManager;
52
- tableName: string;
53
- schema: string;
54
- }
55
- export declare function getCaptureInstance(options: GetCaptureInstanceOptions): Promise<CaptureInstance | null>;
56
46
  /**
57
47
  * Return the LSN of the latest transaction recorded in the transaction log
58
48
  * @param connectionManager
@@ -78,3 +68,31 @@ export interface GetDebugTableInfoOptions {
78
68
  syncRules: SqlSyncRules;
79
69
  }
80
70
  export declare function getDebugTableInfo(options: GetDebugTableInfoOptions): Promise<service_types.TableInfo>;
71
+ export interface CaptureInstanceDetails {
72
+ sourceTable: {
73
+ schema: string;
74
+ name: string;
75
+ objectId: number;
76
+ };
77
+ /**
78
+ * The capture instances for the source table.
79
+ * The instances are sorted by create date in descending order.
80
+ */
81
+ instances: CaptureInstance[];
82
+ }
83
+ export interface GetCaptureInstancesOptions {
84
+ connectionManager: MSSQLConnectionManager;
85
+ table?: {
86
+ schema: string;
87
+ name: string;
88
+ };
89
+ }
90
+ export declare function getCaptureInstances(options: GetCaptureInstancesOptions): Promise<Map<number, CaptureInstanceDetails>>;
91
+ export interface GetCaptureInstanceOptions {
92
+ connectionManager: MSSQLConnectionManager;
93
+ table: {
94
+ schema: string;
95
+ name: string;
96
+ };
97
+ }
98
+ export declare function getCaptureInstance(options: GetCaptureInstanceOptions): Promise<CaptureInstanceDetails | null>;