@syncular/testkit 0.0.6-96 → 0.1.1
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/dist/audit.d.ts +22 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +40 -0
- package/dist/audit.js.map +1 -0
- package/dist/client-bridge.d.ts +77 -0
- package/dist/client-bridge.d.ts.map +1 -0
- package/dist/client-bridge.js +540 -0
- package/dist/client-bridge.js.map +1 -0
- package/dist/deterministic.js.map +1 -1
- package/dist/disposable.js.map +1 -1
- package/dist/faults.d.ts +14 -2
- package/dist/faults.d.ts.map +1 -1
- package/dist/faults.js +104 -42
- package/dist/faults.js.map +1 -1
- package/dist/hono-node-server.js +1 -1
- package/dist/hono-node-server.js.map +1 -1
- package/dist/http-fixtures.d.ts +1 -30
- package/dist/http-fixtures.d.ts.map +1 -1
- package/dist/http-fixtures.js +5 -65
- package/dist/http-fixtures.js.map +1 -1
- package/dist/index.d.ts +2 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/dist/project-scoped-tasks.d.ts.map +1 -1
- package/dist/project-scoped-tasks.js +6 -4
- package/dist/project-scoped-tasks.js.map +1 -1
- package/dist/realtime-ws.js.map +1 -1
- package/dist/runtime-process.js.map +1 -1
- package/dist/sync-builders.d.ts +5 -3
- package/dist/sync-builders.d.ts.map +1 -1
- package/dist/sync-builders.js +9 -3
- package/dist/sync-builders.js.map +1 -1
- package/dist/sync-http.js.map +1 -1
- package/dist/sync-parse.js.map +1 -1
- package/dist/sync-response.d.ts +3 -4
- package/dist/sync-response.d.ts.map +1 -1
- package/dist/sync-response.js.map +1 -1
- package/package.json +14 -15
- package/src/audit.ts +74 -0
- package/src/client-bridge.ts +841 -0
- package/src/faults.ts +178 -55
- package/src/hono-node-server.ts +1 -1
- package/src/http-fixtures.ts +6 -127
- package/src/index.ts +2 -4
- package/src/project-scoped-tasks.ts +6 -4
- package/src/sync-builders.ts +14 -6
- package/src/sync-response.ts +3 -5
- package/dist/assertions.d.ts +0 -61
- package/dist/assertions.d.ts.map +0 -1
- package/dist/assertions.js +0 -239
- package/dist/assertions.js.map +0 -1
- package/dist/fixtures.d.ts +0 -104
- package/dist/fixtures.d.ts.map +0 -1
- package/dist/fixtures.js +0 -558
- package/dist/fixtures.js.map +0 -1
- package/dist/resources.d.ts +0 -25
- package/dist/resources.d.ts.map +0 -1
- package/dist/resources.js +0 -64
- package/dist/resources.js.map +0 -1
- package/dist/scenario-flow.d.ts +0 -39
- package/dist/scenario-flow.d.ts.map +0 -1
- package/dist/scenario-flow.js +0 -41
- package/dist/scenario-flow.js.map +0 -1
- package/src/assertions.ts +0 -432
- package/src/fixtures.ts +0 -867
- package/src/resources.ts +0 -186
- package/src/scenario-flow.ts +0 -143
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-process.js","sourceRoot":"","sources":["../src/runtime-process.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,6BAA6B,EAE7B,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAOtB,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAqB,EACrB,OAAO,GAA2B,EAAE
|
|
1
|
+
{"version":3,"file":"runtime-process.js","sourceRoot":"","sources":["../src/runtime-process.ts"],"names":[],"mappings":"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"}
|
package/dist/sync-builders.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SyncCombinedRequest, SyncOperation, SyncPullRequest,
|
|
1
|
+
import type { SyncCombinedRequest, SyncOperation, SyncPullRequest, SyncPushBatchRequest, SyncSubscriptionRequest } from '@syncular/core';
|
|
2
2
|
export interface CreateSyncUpsertOperationOptions {
|
|
3
3
|
table: string;
|
|
4
4
|
rowId: string;
|
|
@@ -19,6 +19,7 @@ export interface CreateSyncSubscriptionOptions {
|
|
|
19
19
|
params?: SyncSubscriptionRequest['params'];
|
|
20
20
|
cursor?: number;
|
|
21
21
|
bootstrapState?: SyncSubscriptionRequest['bootstrapState'];
|
|
22
|
+
crdtStateVectors?: SyncSubscriptionRequest['crdtStateVectors'];
|
|
22
23
|
}
|
|
23
24
|
export declare function createSyncSubscription(options: CreateSyncSubscriptionOptions): SyncSubscriptionRequest;
|
|
24
25
|
export interface CreateSyncPushRequestOptions {
|
|
@@ -27,9 +28,10 @@ export interface CreateSyncPushRequestOptions {
|
|
|
27
28
|
operations: SyncOperation[];
|
|
28
29
|
schemaVersion?: number;
|
|
29
30
|
}
|
|
30
|
-
export declare function createSyncPushRequest(options: CreateSyncPushRequestOptions):
|
|
31
|
+
export declare function createSyncPushRequest(options: CreateSyncPushRequestOptions): SyncPushBatchRequest;
|
|
31
32
|
export interface CreateSyncPullRequestOptions {
|
|
32
33
|
clientId: string;
|
|
34
|
+
schemaVersion?: number;
|
|
33
35
|
subscriptions: SyncSubscriptionRequest[];
|
|
34
36
|
limitCommits?: number;
|
|
35
37
|
limitSnapshotRows?: number;
|
|
@@ -39,7 +41,7 @@ export interface CreateSyncPullRequestOptions {
|
|
|
39
41
|
export declare function createSyncPullRequest(options: CreateSyncPullRequestOptions): SyncPullRequest;
|
|
40
42
|
export interface CreateSyncCombinedRequestOptions {
|
|
41
43
|
clientId: string;
|
|
42
|
-
push?: Omit<
|
|
44
|
+
push?: Omit<SyncPushBatchRequest, 'clientId'>;
|
|
43
45
|
pull?: Omit<SyncPullRequest, 'clientId'>;
|
|
44
46
|
}
|
|
45
47
|
export declare function createSyncCombinedRequest(options: CreateSyncCombinedRequestOptions): SyncCombinedRequest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-builders.d.ts","sourceRoot":"","sources":["../src/sync-builders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"sync-builders.d.ts","sourceRoot":"","sources":["../src/sync-builders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,gCAAgC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gCAAgC,GACxC,aAAa,CAQf;AAED,MAAM,WAAW,gCAAgC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gCAAgC,GACxC,aAAa,CAQf;AAED,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAC3D,gBAAgB,CAAC,EAAE,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;CAChE;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,6BAA6B,GACrC,uBAAuB,CAUzB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,4BAA4B,GACpC,oBAAoB,CAWtB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,uBAAuB,EAAE,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,4BAA4B,GACpC,eAAe,CAgBjB;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;CAC1C;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gCAAgC,GACxC,mBAAmB,CAMrB"}
|
package/dist/sync-builders.js
CHANGED
|
@@ -24,19 +24,25 @@ export function createSyncSubscription(options) {
|
|
|
24
24
|
...(options.params ? { params: options.params } : {}),
|
|
25
25
|
cursor: options.cursor ?? 0,
|
|
26
26
|
bootstrapState: options.bootstrapState ?? null,
|
|
27
|
+
crdtStateVectors: options.crdtStateVectors ?? [],
|
|
27
28
|
};
|
|
28
29
|
}
|
|
29
30
|
export function createSyncPushRequest(options) {
|
|
30
31
|
return {
|
|
31
32
|
clientId: options.clientId,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
commits: [
|
|
34
|
+
{
|
|
35
|
+
clientCommitId: options.clientCommitId,
|
|
36
|
+
operations: options.operations,
|
|
37
|
+
schemaVersion: options.schemaVersion ?? 1,
|
|
38
|
+
},
|
|
39
|
+
],
|
|
35
40
|
};
|
|
36
41
|
}
|
|
37
42
|
export function createSyncPullRequest(options) {
|
|
38
43
|
return {
|
|
39
44
|
clientId: options.clientId,
|
|
45
|
+
schemaVersion: options.schemaVersion ?? 1,
|
|
40
46
|
subscriptions: options.subscriptions,
|
|
41
47
|
limitCommits: options.limitCommits ?? 50,
|
|
42
48
|
...(options.limitSnapshotRows !== undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-builders.js","sourceRoot":"","sources":["../src/sync-builders.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,yBAAyB,CACvC,OAAyC
|
|
1
|
+
{"version":3,"file":"sync-builders.js","sourceRoot":"","sources":["../src/sync-builders.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,yBAAyB,CACvC,OAAyC;IAEzC,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,KAAK;QACrB,EAAE,EAAE,QAAQ;QACZ,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;KAC1C,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,yBAAyB,CACvC,OAAyC;IAEzC,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,KAAK;QACrB,EAAE,EAAE,QAAQ;QACZ,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;KAC1C,CAAC;AACJ,CAAC;AAYD,MAAM,UAAU,sBAAsB,CACpC,OAAsC;IAEtC,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC;QAC3B,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;QAC9C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,EAAE;KACjD,CAAC;AACJ,CAAC;AASD,MAAM,UAAU,qBAAqB,CACnC,OAAqC;IAErC,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE;YACP;gBACE,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,CAAC;aAC1C;SACF;KACF,CAAC;AACJ,CAAC;AAYD,MAAM,UAAU,qBAAqB,CACnC,OAAqC;IAErC,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,CAAC;QACzC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE;QACxC,GAAG,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS;YACzC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE;YAChD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;YAClC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;YACpC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,yBAAyB,CACvC,OAAyC;IAEzC,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC;AACJ,CAAC"}
|
package/dist/sync-http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-http.js","sourceRoot":"","sources":["../src/sync-http.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAQtB,MAAM,UAAU,sBAAsB,CACpC,OAAgC
|
|
1
|
+
{"version":3,"file":"sync-http.js","sourceRoot":"","sources":["../src/sync-http.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAQtB,MAAM,UAAU,sBAAsB,CACpC,OAAgC;IAEhC,OAAO;QACL,cAAc,EAAE,kBAAkB;QAClC,CAAC,OAAO,CAAC,WAAW,IAAI,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO;QACtD,GAAG,OAAO,CAAC,YAAY;KACxB,CAAC;AACJ,CAAC;AAgBD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAwC;IAExC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAChD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,sBAAsB,CAAC;YAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAC;QACF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;KACnC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAc,CAAC;IAClD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAuC;IAEvC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAA+B,OAAO,CAAC,CAAC;IAC9E,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,IAAI,CAAC;KAC7C,CAAC;AACJ,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAmC;IAEnC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAA2B,OAAO,CAAC,CAAC;IAC1E,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC;KACzC,CAAC;AACJ,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAmC;IAEnC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAA2B,OAAO,CAAC,CAAC;IAC1E,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC;KACzC,CAAC;AACJ,CAAC"}
|
package/dist/sync-parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-parse.js","sourceRoot":"","sources":["../src/sync-parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,0BAA0B,EAE1B,sBAAsB,EAEtB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAWxB,SAAS,WAAW,CAAC,KAAiB
|
|
1
|
+
{"version":3,"file":"sync-parse.js","sourceRoot":"","sources":["../src/sync-parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,0BAA0B,EAE1B,sBAAsB,EAEtB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAWxB,SAAS,WAAW,CAAC,KAAiB;IACpC,MAAM,IAAI,GACR,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QACnB,CAAC,CAAC,KAAK,CAAC,IAAI;aACP,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACf,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CACnE;aACA,IAAI,CAAC,GAAG,CAAC;QACd,CAAC,CAAC,MAAM,CAAC;IACb,OAAO,GAAG,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;AACrC,CAAC;AAED,SAAS,YAAY,CAAC,MAAiC;IACrD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,YAAY,CACnB,KAAa,EACb,KAAc,EACd,KAAyC;IAEzC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,uBAAuB,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CACnE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAAc;IAEd,OAAO,YAAY,CAAC,sBAAsB,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAC3D,0BAA0B,CAAC,SAAS,CAAC,KAAK,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,YAAY,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACvD,sBAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,CACxC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,YAAY,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACvD,sBAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,CACxC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,QAAkB;IAElB,OAAO,yBAAyB,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAkB;IAElB,OAAO,qBAAqB,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAkB;IAElB,OAAO,qBAAqB,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AACtD,CAAC"}
|
package/dist/sync-response.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type SyncChange, type SyncPullResponse } from '@syncular/core';
|
|
2
|
-
export type SyncChangeRecord = SyncChange;
|
|
3
2
|
export type SyncSubscriptionRecord = Pick<SyncPullResponse['subscriptions'][number], 'id' | 'commits'>;
|
|
4
|
-
export declare function subscriptionChanges(subscriptions: SyncSubscriptionRecord[] | undefined, subscriptionId: string):
|
|
5
|
-
export declare function findSubscriptionChange(subscriptions: SyncSubscriptionRecord[] | undefined, subscriptionId: string, rowId: string):
|
|
6
|
-
export declare function subscriptionChangeRow(change:
|
|
3
|
+
export declare function subscriptionChanges(subscriptions: SyncSubscriptionRecord[] | undefined, subscriptionId: string): SyncChange[];
|
|
4
|
+
export declare function findSubscriptionChange(subscriptions: SyncSubscriptionRecord[] | undefined, subscriptionId: string, rowId: string): SyncChange | undefined;
|
|
5
|
+
export declare function subscriptionChangeRow(change: SyncChange | undefined): Record<string, unknown> | undefined;
|
|
7
6
|
//# sourceMappingURL=sync-response.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-response.d.ts","sourceRoot":"","sources":["../src/sync-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"sync-response.d.ts","sourceRoot":"","sources":["../src/sync-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,gBAAgB,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,EACzC,IAAI,GAAG,SAAS,CACjB,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,sBAAsB,EAAE,GAAG,SAAS,EACnD,cAAc,EAAE,MAAM,GACrB,UAAU,EAAE,CASd;AAED,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,sBAAsB,EAAE,GAAG,SAAS,EACnD,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,GACZ,UAAU,GAAG,SAAS,CAGxB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,GAAG,SAAS,GAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAMrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-response.js","sourceRoot":"","sources":["../src/sync-response.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,GAGT,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-response.js","sourceRoot":"","sources":["../src/sync-response.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,GAGT,MAAM,gBAAgB,CAAC;AAOxB,MAAM,UAAU,mBAAmB,CACjC,aAAmD,EACnD,cAAsB;IAEtB,MAAM,YAAY,GAAG,aAAa,EAAE,IAAI,CACtC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,cAAc,CACrC,CAAC;IACF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,aAAmD,EACnD,cAAsB,EACtB,KAAa;IAEb,MAAM,OAAO,GAAG,mBAAmB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACnE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,MAA8B;IAE9B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@syncular/testkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Testing fixtures and utilities for Syncular",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Benjamin Kniffler",
|
|
@@ -38,21 +38,13 @@
|
|
|
38
38
|
"test": "bun test --pass-with-no-tests",
|
|
39
39
|
"tsgo": "tsgo --noEmit",
|
|
40
40
|
"build": "tsgo",
|
|
41
|
-
"release": "
|
|
41
|
+
"release": "syncular-publish"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@syncular/client": "0.
|
|
45
|
-
"@syncular/core": "0.
|
|
46
|
-
"@syncular/
|
|
47
|
-
"
|
|
48
|
-
"@syncular/dialect-pglite": "0.0.6-96",
|
|
49
|
-
"@syncular/dialect-sqlite3": "0.0.6-96",
|
|
50
|
-
"@syncular/server": "0.0.6-96",
|
|
51
|
-
"@syncular/server-dialect-postgres": "0.0.6-96",
|
|
52
|
-
"@syncular/server-dialect-sqlite": "0.0.6-96",
|
|
53
|
-
"@syncular/server-hono": "0.0.6-96",
|
|
54
|
-
"@syncular/transport-http": "0.0.6-96",
|
|
55
|
-
"hono": "^4.12.3"
|
|
44
|
+
"@syncular/client": "0.1.1",
|
|
45
|
+
"@syncular/core": "0.1.1",
|
|
46
|
+
"@syncular/server": "0.1.1",
|
|
47
|
+
"hono": "^4.12.15"
|
|
56
48
|
},
|
|
57
49
|
"devDependencies": {
|
|
58
50
|
"@syncular/config": "0.0.0",
|
|
@@ -60,6 +52,13 @@
|
|
|
60
52
|
},
|
|
61
53
|
"files": [
|
|
62
54
|
"dist",
|
|
63
|
-
"src"
|
|
55
|
+
"src",
|
|
56
|
+
"!src/**/*.test.ts",
|
|
57
|
+
"!src/**/*.test.tsx",
|
|
58
|
+
"!src/**/__tests__/**",
|
|
59
|
+
"!dist/**/*.test.*",
|
|
60
|
+
"!dist/**/__tests__/**",
|
|
61
|
+
"!test/**",
|
|
62
|
+
"!tests/**"
|
|
64
63
|
]
|
|
65
64
|
}
|
package/src/audit.ts
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { isDeepStrictEqual } from 'node:util';
|
|
2
|
+
|
|
3
|
+
export interface RedactedAuditChange {
|
|
4
|
+
redaction?: {
|
|
5
|
+
payload?: unknown;
|
|
6
|
+
reason?: unknown;
|
|
7
|
+
};
|
|
8
|
+
rowJson?: unknown;
|
|
9
|
+
scopes?: unknown;
|
|
10
|
+
[key: string]: unknown;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface RedactedAuditDebugExport {
|
|
14
|
+
commits?: Array<{
|
|
15
|
+
changes?: RedactedAuditChange[];
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
}>;
|
|
18
|
+
[key: string]: unknown;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function assertAuditChangeRedacted(
|
|
22
|
+
change: RedactedAuditChange,
|
|
23
|
+
message = 'Expected audit change to be redacted'
|
|
24
|
+
): void {
|
|
25
|
+
if ('rowJson' in change) {
|
|
26
|
+
throw new Error(`${message}: rowJson must be omitted`);
|
|
27
|
+
}
|
|
28
|
+
if ('scopes' in change) {
|
|
29
|
+
throw new Error(`${message}: raw scopes must be omitted`);
|
|
30
|
+
}
|
|
31
|
+
if (
|
|
32
|
+
!isDeepStrictEqual(change.redaction, {
|
|
33
|
+
payload: 'omitted',
|
|
34
|
+
reason: 'audit_redacted_by_default',
|
|
35
|
+
})
|
|
36
|
+
) {
|
|
37
|
+
throw new Error(`${message}: missing canonical redaction marker`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function assertAuditJsonExcludes(
|
|
42
|
+
value: unknown,
|
|
43
|
+
forbiddenNeedles: readonly string[],
|
|
44
|
+
message = 'Audit JSON leaked forbidden content'
|
|
45
|
+
): void {
|
|
46
|
+
const serialized = JSON.stringify(value);
|
|
47
|
+
for (const needle of forbiddenNeedles) {
|
|
48
|
+
if (!needle) continue;
|
|
49
|
+
if (serialized.includes(needle)) {
|
|
50
|
+
throw new Error(`${message}: ${needle}`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function assertAuditDebugExportRedacted(
|
|
56
|
+
value: RedactedAuditDebugExport,
|
|
57
|
+
forbiddenNeedles: readonly string[] = [],
|
|
58
|
+
message = 'Expected audit debug export to be redacted'
|
|
59
|
+
): void {
|
|
60
|
+
for (const commit of value.commits ?? []) {
|
|
61
|
+
for (const change of commit.changes ?? []) {
|
|
62
|
+
assertAuditChangeRedacted(change, message);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
assertAuditJsonExcludes(value, forbiddenNeedles, message);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export async function readJsonResponse<T>(response: Response): Promise<T> {
|
|
69
|
+
return (await response.json()) as T;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export async function readTextResponse(response: Response): Promise<string> {
|
|
73
|
+
return await response.text();
|
|
74
|
+
}
|