on-zero 0.6.7 → 0.6.9
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/cjs/combineZeroClients.native.js.map +1 -1
- package/dist/cjs/createPermissions.native.js.map +1 -1
- package/dist/cjs/createSchemaFromDrizzle.native.js.map +1 -1
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createUseQueryDirect.native.js.map +1 -1
- package/dist/cjs/createZeroClient.authData.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.cjs +6 -8
- package/dist/cjs/createZeroClient.connection.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.native.js +11 -8
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/cjs/createZeroServer.native.js.map +1 -1
- package/dist/cjs/createZeroServer.test.native.js.map +1 -1
- package/dist/cjs/generate-helpers.native.js.map +1 -1
- package/dist/cjs/generate-lite.native.js.map +1 -1
- package/dist/cjs/generate-lite.test.native.js.map +1 -1
- package/dist/cjs/generate.cjs +6 -0
- package/dist/cjs/generate.native.js +11 -2
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/helpers/batchQuery.native.js.map +1 -1
- package/dist/cjs/helpers/clearZeroClientData.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.cjs +7 -2
- package/dist/cjs/helpers/createMutators.native.js +7 -2
- package/dist/cjs/helpers/createMutators.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.test.cjs +43 -0
- package/dist/cjs/helpers/createMutators.test.native.js +46 -0
- package/dist/cjs/helpers/createMutators.test.native.js.map +1 -0
- package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +1 -1
- package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -1
- package/dist/cjs/helpers/getAuth.native.js.map +1 -1
- package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/cjs/helpers/queryContext.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/cjs/helpers/showZeroClientError.native.js.map +1 -1
- package/dist/cjs/helpers/useMutation.native.js.map +1 -1
- package/dist/cjs/helpers/useMutation.test.native.js.map +1 -1
- package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/cjs/httpPull/auth.test.native.js.map +1 -1
- package/dist/cjs/httpPull/churn.test.native.js.map +1 -1
- package/dist/cjs/httpPull/completeAck.test.cjs +69 -0
- package/dist/cjs/httpPull/completeAck.test.native.js +76 -0
- package/dist/cjs/httpPull/completeAck.test.native.js.map +1 -0
- package/dist/cjs/httpPull/fixtureSchema.native.js.map +1 -1
- package/dist/cjs/httpPull/fixtureServer.native.js.map +1 -1
- package/dist/cjs/httpPull/integration.test.native.js.map +1 -1
- package/dist/cjs/httpPull/rebase.test.native.js.map +1 -1
- package/dist/cjs/httpPull/relations.test.native.js.map +1 -1
- package/dist/cjs/httpPull/testHarness.native.js.map +1 -1
- package/dist/cjs/httpPull/transport.test.cjs +177 -1
- package/dist/cjs/httpPull/transport.test.native.js +192 -0
- package/dist/cjs/httpPull/transport.test.native.js.map +1 -1
- package/dist/cjs/httpPullTransport.cjs +138 -12
- package/dist/cjs/httpPullTransport.native.js +173 -13
- package/dist/cjs/httpPullTransport.native.js.map +1 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/instanceRegistry.cjs +18 -1
- package/dist/cjs/instanceRegistry.native.js +71 -12
- package/dist/cjs/instanceRegistry.native.js.map +1 -1
- package/dist/cjs/modelRegistry.native.js.map +1 -1
- package/dist/cjs/multi.native.js.map +1 -1
- package/dist/cjs/multiInstance.test.cjs +6 -6
- package/dist/cjs/multiInstance.test.native.js +7 -7
- package/dist/cjs/multiInstance.test.native.js.map +1 -1
- package/dist/cjs/multiInstanceNested.test.native.js.map +1 -1
- package/dist/cjs/multiPartition.test.native.js.map +1 -1
- package/dist/cjs/mutations.native.js.map +1 -1
- package/dist/cjs/provideZero.hydration.test.native.js.map +1 -1
- package/dist/cjs/queryRegistry.native.js.map +1 -1
- package/dist/cjs/resolveQuery.native.js.map +1 -1
- package/dist/cjs/run.native.js.map +1 -1
- package/dist/cjs/serverWhere.native.js.map +1 -1
- package/dist/cjs/serverWhere.test.native.js.map +1 -1
- package/dist/cjs/state.native.js.map +1 -1
- package/dist/cjs/testSetup.native.js.map +1 -1
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/usePermission.test.native.js.map +1 -1
- package/dist/cjs/useQuery.empty.test.cjs +10 -3
- package/dist/cjs/useQuery.empty.test.native.js +12 -3
- package/dist/cjs/useQuery.empty.test.native.js.map +1 -1
- package/dist/cjs/useQuery.ssr.test.native.js.map +1 -1
- package/dist/cjs/vite-plugin.native.js.map +1 -1
- package/dist/cjs/where.native.js.map +1 -1
- package/dist/cjs/zeroRunner.native.js.map +1 -1
- package/dist/cjs/zql.native.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +6 -8
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +11 -8
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/generate.mjs +6 -0
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +11 -2
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/helpers/createMutators.mjs +7 -2
- package/dist/esm/helpers/createMutators.mjs.map +1 -1
- package/dist/esm/helpers/createMutators.native.js +7 -2
- package/dist/esm/helpers/createMutators.native.js.map +1 -1
- package/dist/esm/helpers/createMutators.test.mjs +44 -0
- package/dist/esm/helpers/createMutators.test.mjs.map +1 -0
- package/dist/esm/helpers/createMutators.test.native.js +44 -0
- package/dist/esm/helpers/createMutators.test.native.js.map +1 -0
- package/dist/esm/httpPull/completeAck.test.mjs +70 -0
- package/dist/esm/httpPull/completeAck.test.mjs.map +1 -0
- package/dist/esm/httpPull/completeAck.test.native.js +74 -0
- package/dist/esm/httpPull/completeAck.test.native.js.map +1 -0
- package/dist/esm/httpPull/transport.test.mjs +176 -0
- package/dist/esm/httpPull/transport.test.mjs.map +1 -1
- package/dist/esm/httpPull/transport.test.native.js +192 -0
- package/dist/esm/httpPull/transport.test.native.js.map +1 -1
- package/dist/esm/httpPullTransport.mjs +138 -12
- package/dist/esm/httpPullTransport.mjs.map +1 -1
- package/dist/esm/httpPullTransport.native.js +173 -13
- package/dist/esm/httpPullTransport.native.js.map +1 -1
- package/dist/esm/instanceRegistry.mjs +18 -1
- package/dist/esm/instanceRegistry.mjs.map +1 -1
- package/dist/esm/instanceRegistry.native.js +71 -12
- package/dist/esm/instanceRegistry.native.js.map +1 -1
- package/dist/esm/multiInstance.test.mjs +7 -7
- package/dist/esm/multiInstance.test.mjs.map +1 -1
- package/dist/esm/multiInstance.test.native.js +8 -8
- package/dist/esm/multiInstance.test.native.js.map +1 -1
- package/dist/esm/useQuery.empty.test.mjs +7 -0
- package/dist/esm/useQuery.empty.test.mjs.map +1 -1
- package/dist/esm/useQuery.empty.test.native.js +9 -0
- package/dist/esm/useQuery.empty.test.native.js.map +1 -1
- package/package.json +2 -2
- package/src/createZeroClient.tsx +7 -6
- package/src/generate.ts +10 -1
- package/src/helpers/createMutators.test.ts +51 -0
- package/src/helpers/createMutators.ts +7 -2
- package/src/httpPull/completeAck.test.ts +80 -0
- package/src/httpPull/transport.test.ts +134 -0
- package/src/httpPullTransport.ts +198 -13
- package/src/instanceRegistry.ts +27 -2
- package/src/multiInstance.test.tsx +11 -9
- package/src/useQuery.empty.test.tsx +8 -0
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/generate.d.ts.map +1 -1
- package/types/helpers/createMutators.d.ts.map +1 -1
- package/types/helpers/createMutators.test.d.ts +2 -0
- package/types/helpers/createMutators.test.d.ts.map +1 -0
- package/types/httpPull/completeAck.test.d.ts +2 -0
- package/types/httpPull/completeAck.test.d.ts.map +1 -0
- package/types/httpPullTransport.d.ts +4 -0
- package/types/httpPullTransport.d.ts.map +1 -1
- package/types/instanceRegistry.d.ts +2 -1
- package/types/instanceRegistry.d.ts.map +1 -1
- package/types/useQuery.empty.test.d.ts.map +1 -1
|
@@ -641,4 +641,180 @@ function defer() {
|
|
|
641
641
|
resolve,
|
|
642
642
|
reject
|
|
643
643
|
};
|
|
644
|
-
}
|
|
644
|
+
}
|
|
645
|
+
function installWithQueries(fetch, queryTransform) {
|
|
646
|
+
const transport = (0, import_httpPullTransport.installHttpPullTransport)({
|
|
647
|
+
origin: ORIGIN,
|
|
648
|
+
fetch,
|
|
649
|
+
queryTransform
|
|
650
|
+
});
|
|
651
|
+
transports.push(transport);
|
|
652
|
+
return transport;
|
|
653
|
+
}
|
|
654
|
+
(0, import_vitest.describe)("zero-http query-aware extension", () => {
|
|
655
|
+
(0, import_vitest.test)("ships desired queries with pull state (transformed AST) and emits server got-query ack", async () => {
|
|
656
|
+
const requests = [];
|
|
657
|
+
const fetch = import_vitest.vi.fn(async (input, init) => {
|
|
658
|
+
const request = recordRequest(input, init);
|
|
659
|
+
requests.push(request);
|
|
660
|
+
return jsonResponse({
|
|
661
|
+
cookie: 1,
|
|
662
|
+
lastMutationIDChanges: {},
|
|
663
|
+
rowsPatch: [{
|
|
664
|
+
op: "clear"
|
|
665
|
+
}],
|
|
666
|
+
gotQueries: {
|
|
667
|
+
version: 1,
|
|
668
|
+
patch: [{
|
|
669
|
+
op: "put",
|
|
670
|
+
hash: "h1"
|
|
671
|
+
}]
|
|
672
|
+
}
|
|
673
|
+
});
|
|
674
|
+
});
|
|
675
|
+
installWithQueries(fetch, (name, args) => ({
|
|
676
|
+
resolved: name,
|
|
677
|
+
args
|
|
678
|
+
}));
|
|
679
|
+
const {
|
|
680
|
+
messages
|
|
681
|
+
} = openRawSocketWithMessages({
|
|
682
|
+
desiredQueriesPatch: [{
|
|
683
|
+
op: "put",
|
|
684
|
+
hash: "h1",
|
|
685
|
+
name: "byOwner",
|
|
686
|
+
args: [{
|
|
687
|
+
ownerId: "u1"
|
|
688
|
+
}]
|
|
689
|
+
}]
|
|
690
|
+
});
|
|
691
|
+
await eventually(() => (0, import_vitest.expect)(requests.length).toBeGreaterThan(0));
|
|
692
|
+
(0, import_vitest.expect)(requests[0].body.queries).toEqual({
|
|
693
|
+
version: 1,
|
|
694
|
+
patch: [{
|
|
695
|
+
op: "put",
|
|
696
|
+
hash: "h1",
|
|
697
|
+
ast: {
|
|
698
|
+
resolved: "byOwner",
|
|
699
|
+
args: [{
|
|
700
|
+
ownerId: "u1"
|
|
701
|
+
}]
|
|
702
|
+
}
|
|
703
|
+
}]
|
|
704
|
+
});
|
|
705
|
+
await eventually(() => {
|
|
706
|
+
const poke = messages.find(m => m[0] === "pokePart" && Array.isArray(m[1].gotQueriesPatch));
|
|
707
|
+
(0, import_vitest.expect)(poke?.[1].gotQueriesPatch).toEqual([{
|
|
708
|
+
op: "put",
|
|
709
|
+
hash: "h1"
|
|
710
|
+
}]);
|
|
711
|
+
});
|
|
712
|
+
});
|
|
713
|
+
(0, import_vitest.test)("an ad-hoc put with an inline ast ships that ast unchanged", async () => {
|
|
714
|
+
const requests = [];
|
|
715
|
+
const fetch = import_vitest.vi.fn(async (input, init) => {
|
|
716
|
+
requests.push(recordRequest(input, init));
|
|
717
|
+
return jsonResponse({
|
|
718
|
+
cookie: 1,
|
|
719
|
+
unchanged: true
|
|
720
|
+
});
|
|
721
|
+
});
|
|
722
|
+
installWithQueries(fetch, () => {
|
|
723
|
+
throw new Error("transform should not run for an inline ast");
|
|
724
|
+
});
|
|
725
|
+
openRawSocketWithMessages({
|
|
726
|
+
desiredQueriesPatch: [{
|
|
727
|
+
op: "put",
|
|
728
|
+
hash: "h2",
|
|
729
|
+
ast: {
|
|
730
|
+
inline: true
|
|
731
|
+
}
|
|
732
|
+
}]
|
|
733
|
+
});
|
|
734
|
+
await eventually(() => (0, import_vitest.expect)(requests.length).toBeGreaterThan(0));
|
|
735
|
+
(0, import_vitest.expect)(requests[0].body.queries.patch).toEqual([{
|
|
736
|
+
op: "put",
|
|
737
|
+
hash: "h2",
|
|
738
|
+
ast: {
|
|
739
|
+
inline: true
|
|
740
|
+
}
|
|
741
|
+
}]);
|
|
742
|
+
});
|
|
743
|
+
(0, import_vitest.test)("reconnect re-ships the desired set", async () => {
|
|
744
|
+
const requests = [];
|
|
745
|
+
const fetch = import_vitest.vi.fn(async (input, init) => {
|
|
746
|
+
requests.push(recordRequest(input, init));
|
|
747
|
+
return jsonResponse({
|
|
748
|
+
cookie: 1,
|
|
749
|
+
unchanged: true
|
|
750
|
+
});
|
|
751
|
+
});
|
|
752
|
+
installWithQueries(fetch, name => ({
|
|
753
|
+
resolved: name
|
|
754
|
+
}));
|
|
755
|
+
const desired = [{
|
|
756
|
+
op: "put",
|
|
757
|
+
hash: "h1",
|
|
758
|
+
name: "byOwner",
|
|
759
|
+
args: []
|
|
760
|
+
}];
|
|
761
|
+
const first = openRawSocketWithMessages({
|
|
762
|
+
desiredQueriesPatch: desired
|
|
763
|
+
});
|
|
764
|
+
await eventually(() => (0, import_vitest.expect)(requests.length).toBeGreaterThan(0));
|
|
765
|
+
first.socket.close();
|
|
766
|
+
const before = requests.length;
|
|
767
|
+
openRawSocketWithMessages({
|
|
768
|
+
desiredQueriesPatch: desired
|
|
769
|
+
});
|
|
770
|
+
await eventually(() => (0, import_vitest.expect)(requests.length).toBeGreaterThan(before));
|
|
771
|
+
const replay = requests[requests.length - 1].body.queries;
|
|
772
|
+
(0, import_vitest.expect)(replay.patch).toEqual([{
|
|
773
|
+
op: "put",
|
|
774
|
+
hash: "h1",
|
|
775
|
+
ast: {
|
|
776
|
+
resolved: "byOwner"
|
|
777
|
+
}
|
|
778
|
+
}]);
|
|
779
|
+
});
|
|
780
|
+
(0, import_vitest.test)("queryForward ships name+args for the server to resolve (no client transform)", async () => {
|
|
781
|
+
const requests = [];
|
|
782
|
+
const fetch = import_vitest.vi.fn(async (input, init) => {
|
|
783
|
+
requests.push(recordRequest(input, init));
|
|
784
|
+
return jsonResponse({
|
|
785
|
+
cookie: 1,
|
|
786
|
+
unchanged: true
|
|
787
|
+
});
|
|
788
|
+
});
|
|
789
|
+
const transport = (0, import_httpPullTransport.installHttpPullTransport)({
|
|
790
|
+
origin: ORIGIN,
|
|
791
|
+
fetch,
|
|
792
|
+
queryForward: true
|
|
793
|
+
});
|
|
794
|
+
transports.push(transport);
|
|
795
|
+
openRawSocketWithMessages({
|
|
796
|
+
desiredQueriesPatch: [{
|
|
797
|
+
op: "put",
|
|
798
|
+
hash: "h3",
|
|
799
|
+
name: "byOwner",
|
|
800
|
+
args: [{
|
|
801
|
+
ownerId: "u1"
|
|
802
|
+
}],
|
|
803
|
+
// Zero may include a locally evaluable AST on a named query put.
|
|
804
|
+
// queryForward must discard it so the server remains authoritative.
|
|
805
|
+
ast: {
|
|
806
|
+
table: "secret"
|
|
807
|
+
}
|
|
808
|
+
}]
|
|
809
|
+
});
|
|
810
|
+
await eventually(() => (0, import_vitest.expect)(requests.length).toBeGreaterThan(0));
|
|
811
|
+
(0, import_vitest.expect)(requests[0].body.queries.patch).toEqual([{
|
|
812
|
+
op: "put",
|
|
813
|
+
hash: "h3",
|
|
814
|
+
name: "byOwner",
|
|
815
|
+
args: [{
|
|
816
|
+
ownerId: "u1"
|
|
817
|
+
}]
|
|
818
|
+
}]);
|
|
819
|
+
});
|
|
820
|
+
});
|
|
@@ -734,4 +734,196 @@ function defer() {
|
|
|
734
734
|
reject
|
|
735
735
|
};
|
|
736
736
|
}
|
|
737
|
+
function installWithQueries(fetch, queryTransform) {
|
|
738
|
+
var transport = (0, import_httpPullTransport.installHttpPullTransport)({
|
|
739
|
+
origin: ORIGIN,
|
|
740
|
+
fetch,
|
|
741
|
+
queryTransform
|
|
742
|
+
});
|
|
743
|
+
transports.push(transport);
|
|
744
|
+
return transport;
|
|
745
|
+
}
|
|
746
|
+
(0, import_vitest.describe)("zero-http query-aware extension", function () {
|
|
747
|
+
(0, import_vitest.test)("ships desired queries with pull state (transformed AST) and emits server got-query ack", async function () {
|
|
748
|
+
var requests = [];
|
|
749
|
+
var fetch = import_vitest.vi.fn(async function (input, init) {
|
|
750
|
+
var request = recordRequest(input, init);
|
|
751
|
+
requests.push(request);
|
|
752
|
+
return jsonResponse({
|
|
753
|
+
cookie: 1,
|
|
754
|
+
lastMutationIDChanges: {},
|
|
755
|
+
rowsPatch: [{
|
|
756
|
+
op: "clear"
|
|
757
|
+
}],
|
|
758
|
+
gotQueries: {
|
|
759
|
+
version: 1,
|
|
760
|
+
patch: [{
|
|
761
|
+
op: "put",
|
|
762
|
+
hash: "h1"
|
|
763
|
+
}]
|
|
764
|
+
}
|
|
765
|
+
});
|
|
766
|
+
});
|
|
767
|
+
installWithQueries(fetch, function (name, args) {
|
|
768
|
+
return {
|
|
769
|
+
resolved: name,
|
|
770
|
+
args
|
|
771
|
+
};
|
|
772
|
+
});
|
|
773
|
+
var {
|
|
774
|
+
messages
|
|
775
|
+
} = openRawSocketWithMessages({
|
|
776
|
+
desiredQueriesPatch: [{
|
|
777
|
+
op: "put",
|
|
778
|
+
hash: "h1",
|
|
779
|
+
name: "byOwner",
|
|
780
|
+
args: [{
|
|
781
|
+
ownerId: "u1"
|
|
782
|
+
}]
|
|
783
|
+
}]
|
|
784
|
+
});
|
|
785
|
+
await eventually(function () {
|
|
786
|
+
return (0, import_vitest.expect)(requests.length).toBeGreaterThan(0);
|
|
787
|
+
});
|
|
788
|
+
(0, import_vitest.expect)(requests[0].body.queries).toEqual({
|
|
789
|
+
version: 1,
|
|
790
|
+
patch: [{
|
|
791
|
+
op: "put",
|
|
792
|
+
hash: "h1",
|
|
793
|
+
ast: {
|
|
794
|
+
resolved: "byOwner",
|
|
795
|
+
args: [{
|
|
796
|
+
ownerId: "u1"
|
|
797
|
+
}]
|
|
798
|
+
}
|
|
799
|
+
}]
|
|
800
|
+
});
|
|
801
|
+
await eventually(function () {
|
|
802
|
+
var poke = messages.find(function (m) {
|
|
803
|
+
return m[0] === "pokePart" && Array.isArray(m[1].gotQueriesPatch);
|
|
804
|
+
});
|
|
805
|
+
(0, import_vitest.expect)(poke === null || poke === void 0 ? void 0 : poke[1].gotQueriesPatch).toEqual([{
|
|
806
|
+
op: "put",
|
|
807
|
+
hash: "h1"
|
|
808
|
+
}]);
|
|
809
|
+
});
|
|
810
|
+
});
|
|
811
|
+
(0, import_vitest.test)("an ad-hoc put with an inline ast ships that ast unchanged", async function () {
|
|
812
|
+
var requests = [];
|
|
813
|
+
var fetch = import_vitest.vi.fn(async function (input, init) {
|
|
814
|
+
requests.push(recordRequest(input, init));
|
|
815
|
+
return jsonResponse({
|
|
816
|
+
cookie: 1,
|
|
817
|
+
unchanged: true
|
|
818
|
+
});
|
|
819
|
+
});
|
|
820
|
+
installWithQueries(fetch, function () {
|
|
821
|
+
throw new Error("transform should not run for an inline ast");
|
|
822
|
+
});
|
|
823
|
+
openRawSocketWithMessages({
|
|
824
|
+
desiredQueriesPatch: [{
|
|
825
|
+
op: "put",
|
|
826
|
+
hash: "h2",
|
|
827
|
+
ast: {
|
|
828
|
+
inline: true
|
|
829
|
+
}
|
|
830
|
+
}]
|
|
831
|
+
});
|
|
832
|
+
await eventually(function () {
|
|
833
|
+
return (0, import_vitest.expect)(requests.length).toBeGreaterThan(0);
|
|
834
|
+
});
|
|
835
|
+
(0, import_vitest.expect)(requests[0].body.queries.patch).toEqual([{
|
|
836
|
+
op: "put",
|
|
837
|
+
hash: "h2",
|
|
838
|
+
ast: {
|
|
839
|
+
inline: true
|
|
840
|
+
}
|
|
841
|
+
}]);
|
|
842
|
+
});
|
|
843
|
+
(0, import_vitest.test)("reconnect re-ships the desired set", async function () {
|
|
844
|
+
var requests = [];
|
|
845
|
+
var fetch = import_vitest.vi.fn(async function (input, init) {
|
|
846
|
+
requests.push(recordRequest(input, init));
|
|
847
|
+
return jsonResponse({
|
|
848
|
+
cookie: 1,
|
|
849
|
+
unchanged: true
|
|
850
|
+
});
|
|
851
|
+
});
|
|
852
|
+
installWithQueries(fetch, function (name) {
|
|
853
|
+
return {
|
|
854
|
+
resolved: name
|
|
855
|
+
};
|
|
856
|
+
});
|
|
857
|
+
var desired = [{
|
|
858
|
+
op: "put",
|
|
859
|
+
hash: "h1",
|
|
860
|
+
name: "byOwner",
|
|
861
|
+
args: []
|
|
862
|
+
}];
|
|
863
|
+
var first = openRawSocketWithMessages({
|
|
864
|
+
desiredQueriesPatch: desired
|
|
865
|
+
});
|
|
866
|
+
await eventually(function () {
|
|
867
|
+
return (0, import_vitest.expect)(requests.length).toBeGreaterThan(0);
|
|
868
|
+
});
|
|
869
|
+
first.socket.close();
|
|
870
|
+
var before = requests.length;
|
|
871
|
+
openRawSocketWithMessages({
|
|
872
|
+
desiredQueriesPatch: desired
|
|
873
|
+
});
|
|
874
|
+
await eventually(function () {
|
|
875
|
+
return (0, import_vitest.expect)(requests.length).toBeGreaterThan(before);
|
|
876
|
+
});
|
|
877
|
+
var replay = requests[requests.length - 1].body.queries;
|
|
878
|
+
(0, import_vitest.expect)(replay.patch).toEqual([{
|
|
879
|
+
op: "put",
|
|
880
|
+
hash: "h1",
|
|
881
|
+
ast: {
|
|
882
|
+
resolved: "byOwner"
|
|
883
|
+
}
|
|
884
|
+
}]);
|
|
885
|
+
});
|
|
886
|
+
(0, import_vitest.test)("queryForward ships name+args for the server to resolve (no client transform)", async function () {
|
|
887
|
+
var requests = [];
|
|
888
|
+
var fetch = import_vitest.vi.fn(async function (input, init) {
|
|
889
|
+
requests.push(recordRequest(input, init));
|
|
890
|
+
return jsonResponse({
|
|
891
|
+
cookie: 1,
|
|
892
|
+
unchanged: true
|
|
893
|
+
});
|
|
894
|
+
});
|
|
895
|
+
var transport = (0, import_httpPullTransport.installHttpPullTransport)({
|
|
896
|
+
origin: ORIGIN,
|
|
897
|
+
fetch,
|
|
898
|
+
queryForward: true
|
|
899
|
+
});
|
|
900
|
+
transports.push(transport);
|
|
901
|
+
openRawSocketWithMessages({
|
|
902
|
+
desiredQueriesPatch: [{
|
|
903
|
+
op: "put",
|
|
904
|
+
hash: "h3",
|
|
905
|
+
name: "byOwner",
|
|
906
|
+
args: [{
|
|
907
|
+
ownerId: "u1"
|
|
908
|
+
}],
|
|
909
|
+
// Zero may include a locally evaluable AST on a named query put.
|
|
910
|
+
// queryForward must discard it so the server remains authoritative.
|
|
911
|
+
ast: {
|
|
912
|
+
table: "secret"
|
|
913
|
+
}
|
|
914
|
+
}]
|
|
915
|
+
});
|
|
916
|
+
await eventually(function () {
|
|
917
|
+
return (0, import_vitest.expect)(requests.length).toBeGreaterThan(0);
|
|
918
|
+
});
|
|
919
|
+
(0, import_vitest.expect)(requests[0].body.queries.patch).toEqual([{
|
|
920
|
+
op: "put",
|
|
921
|
+
hash: "h3",
|
|
922
|
+
name: "byOwner",
|
|
923
|
+
args: [{
|
|
924
|
+
ownerId: "u1"
|
|
925
|
+
}]
|
|
926
|
+
}]);
|
|
927
|
+
});
|
|
928
|
+
});
|
|
737
929
|
//# sourceMappingURL=transport.test.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["import_zero","require","import_vitest","import_fixtureSchema","import_httpPullTransport","_class_call_check","instance","Constructor","TypeError","_define_property","obj","key","value","Object","defineProperty","enumerable","configurable","writable","ORIGIN","zeros","transports","storageID","afterEach","_zeros_pop","_transports_pop","length","pop","close","uninstall","vi","useRealTimers","describe","test","requests","cookie","fetch","fn","input","init","request","recordRequest","push","expect","path","toBe","headers","authorization","jsonResponse","lastMutationIDChanges","rowsPatch","op","tableName","id","name","ownerId","projectId","userId","transport","install","zero","createZero","view","query","project","related","materialize","data","waitForComplete","destroy","connections","toEqual","members","body","toBeNull","clientID","any","String","clientGroupID","unchanged","mutation2","mutations","pushResponse","result","eventually","filter","pullsBeforePush","mutation","mutate","create","client","server","find","toMatchObject","pushVersion","requestID","type","args","_requests_at","socket","openRawSocketWithMessages","authToken","send","JSON","stringify","auth","pull","at","firstPushStarted","defer","releaseFirstPush","pushIDs","mutationID","resolve","promise","map","messages","some","message","pushBody","sleep","toHaveLength","responses","deferred","inFlight","maxInFlight","Math","max","response","shift","Error","openRawSocket","findMessage","baseCookie","startsWith","concurrentA","concurrentB","Promise","all","projectView","userView","user","users","pingTimeoutMs","connection","state","current","error","status","emissions","cleanup","addListener","resultType","parse","toBeGreaterThan","flatMap","emission","previous","globalThis","WebSocket","NativeWebSocket","NativeWebSocket2","url","protocols","installHttpPullTransport","origin","toBeInstanceOf","first","ensureHttpPullTransport","second"],"sources":["../../../src/httpPull/transport.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["import_zero","require","import_vitest","import_fixtureSchema","import_httpPullTransport","_class_call_check","instance","Constructor","TypeError","_define_property","obj","key","value","Object","defineProperty","enumerable","configurable","writable","ORIGIN","zeros","transports","storageID","afterEach","_zeros_pop","_transports_pop","length","pop","close","uninstall","vi","useRealTimers","describe","test","requests","cookie","fetch","fn","input","init","request","recordRequest","push","expect","path","toBe","headers","authorization","jsonResponse","lastMutationIDChanges","rowsPatch","op","tableName","id","name","ownerId","projectId","userId","transport","install","zero","createZero","view","query","project","related","materialize","data","waitForComplete","destroy","connections","toEqual","members","body","toBeNull","clientID","any","String","clientGroupID","unchanged","mutation2","mutations","pushResponse","result","eventually","filter","pullsBeforePush","mutation","mutate","create","client","server","find","toMatchObject","pushVersion","requestID","type","args","_requests_at","socket","openRawSocketWithMessages","authToken","send","JSON","stringify","auth","pull","at","firstPushStarted","defer","releaseFirstPush","pushIDs","mutationID","resolve","promise","map","messages","some","message","pushBody","sleep","toHaveLength","responses","deferred","inFlight","maxInFlight","Math","max","response","shift","Error","openRawSocket","findMessage","baseCookie","startsWith","concurrentA","concurrentB","Promise","all","projectView","userView","user","users","pingTimeoutMs","connection","state","current","error","status","emissions","cleanup","addListener","resultType","parse","toBeGreaterThan","flatMap","emission","previous","globalThis","WebSocket","NativeWebSocket","NativeWebSocket2","url","protocols","installHttpPullTransport","origin","toBeInstanceOf","first","ensureHttpPullTransport","second","details","onClientStateNotFound","toHaveBeenCalled","options","arguments","Zero","userID","schema","zeroHttpFixtureSchema","kvStore","storageKey","mutators","zeroHttpFixtureMutators","URL","_init_headers","fromEntries","entries","param","toLowerCase","toString","pathname","_init_status","Response","statusText","reject","timeout","setTimeout","clearTimeout","assertion","started","Date","now","lastError","ms","opts","protocol","searchParams","set","_opts_desiredQueriesPatch","_opts_authToken","encodeSecProtocol","desiredQueriesPatch","addEventListener","event","timestamp","item","toBeDefined","initConnectionMessage","encodeURIComponent","Buffer","from","res","rej","installWithQueries","queryTransform","gotQueries","version","patch","hash","resolved","queries","ast","poke","m","Array","isArray","gotQueriesPatch","inline","desired","before","replay","queryForward","table"],"sources":["transport.test.native.js"],"sourcesContent":["\"use strict\";\nvar import_zero = require(\"@rocicorp/zero\");\nvar import_vitest = require(\"vitest\");\nvar import_fixtureSchema = require(\"./fixtureSchema\");\nvar import_httpPullTransport = require(\"../httpPullTransport\");\nfunction _class_call_check(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nvar ORIGIN = \"https://zero-http.local\";\nvar zeros = [];\nvar transports = [];\nvar storageID = 0;\n(0, import_vitest.afterEach)(async function() {\n var _zeros_pop, _transports_pop;\n while (zeros.length) await ((_zeros_pop = zeros.pop()) === null || _zeros_pop === void 0 ? void 0 : _zeros_pop.close());\n while (transports.length) (_transports_pop = transports.pop()) === null || _transports_pop === void 0 ? void 0 : _transports_pop.uninstall();\n import_vitest.vi.useRealTimers();\n});\n(0, import_vitest.describe)(\"zero-http transport\", function() {\n (0, import_vitest.test)(\"connect + complete hydrates a stock Zero materialized query\", async function() {\n var requests = [];\n var cookie = 0;\n var fetch = import_vitest.vi.fn(async function(input, init) {\n var request = recordRequest(input, init);\n requests.push(request);\n (0, import_vitest.expect)(request.path).toBe(\"/pull\");\n (0, import_vitest.expect)(request.headers.authorization).toBe(\"Bearer token-u1\");\n return jsonResponse({\n cookie: ++cookie,\n lastMutationIDChanges: {},\n rowsPatch: [\n {\n op: \"clear\"\n },\n {\n op: \"put\",\n tableName: \"user\",\n value: {\n id: \"u1\",\n name: \"ada\"\n }\n },\n {\n op: \"put\",\n tableName: \"project\",\n value: {\n id: \"p1\",\n ownerId: \"u1\",\n name: \"control\"\n }\n },\n {\n op: \"put\",\n tableName: \"member\",\n value: {\n id: \"m1\",\n projectId: \"p1\",\n userId: \"u1\"\n }\n }\n ]\n });\n });\n var transport = install(fetch);\n var zero = createZero();\n var view = zero.query.project.related(\"members\").materialize();\n var data = await waitForComplete(view);\n view.destroy();\n (0, import_vitest.expect)(transport.connections).toBe(1);\n (0, import_vitest.expect)(data).toEqual([\n {\n id: \"p1\",\n ownerId: \"u1\",\n name: \"control\",\n members: [\n {\n id: \"m1\",\n projectId: \"p1\",\n userId: \"u1\"\n }\n ]\n }\n ]);\n (0, import_vitest.expect)(requests[0].body.cookie).toBeNull();\n (0, import_vitest.expect)(requests[0].body.clientID).toEqual(import_vitest.expect.any(String));\n (0, import_vitest.expect)(requests[0].body.clientGroupID).toEqual(import_vitest.expect.any(String));\n });\n (0, import_vitest.test)(\"push frames POST to /push, resolve server promises, and schedule a follow-up pull\", async function() {\n var requests = [];\n var fetch = import_vitest.vi.fn(async function(input, init) {\n var request = recordRequest(input, init);\n requests.push(request);\n if (request.path === \"/pull\") {\n return jsonResponse({\n cookie: request.body.cookie,\n unchanged: true\n });\n }\n (0, import_vitest.expect)(request.path).toBe(\"/push\");\n var mutation2 = request.body.mutations[0];\n return jsonResponse({\n pushResponse: {\n mutations: [\n {\n id: {\n clientID: mutation2.clientID,\n id: mutation2.id\n },\n result: {}\n }\n ]\n }\n });\n });\n install(fetch);\n var zero = createZero();\n await eventually(function() {\n return (0, import_vitest.expect)(requests.filter(function(request) {\n return request.path === \"/pull\";\n }).length).toBe(1);\n });\n var pullsBeforePush = requests.filter(function(request) {\n return request.path === \"/pull\";\n }).length;\n var mutation = zero.mutate.project.create({\n id: \"p1\",\n ownerId: \"u1\",\n name: \"created\"\n });\n await mutation.client;\n await mutation.server;\n var push = requests.find(function(request) {\n return request.path === \"/push\";\n });\n (0, import_vitest.expect)(push === null || push === void 0 ? void 0 : push.headers.authorization).toBe(\"Bearer token-u1\");\n (0, import_vitest.expect)(push === null || push === void 0 ? void 0 : push.body).toMatchObject({\n clientGroupID: import_vitest.expect.any(String),\n pushVersion: 1,\n requestID: import_vitest.expect.any(String),\n mutations: [\n {\n type: \"custom\",\n name: \"project|create\",\n id: 1,\n clientID: import_vitest.expect.any(String),\n args: [\n {\n id: \"p1\",\n ownerId: \"u1\",\n name: \"created\"\n }\n ]\n }\n ]\n });\n await eventually(function() {\n return (0, import_vitest.expect)(requests.filter(function(request) {\n return request.path === \"/pull\";\n }).length).toBe(pullsBeforePush + 1);\n });\n });\n (0, import_vitest.test)(\"updateAuth frame updates bearer headers for later requests\", async function() {\n var _requests_at;\n var requests = [];\n var fetch = import_vitest.vi.fn(async function(input, init) {\n var request = recordRequest(input, init);\n requests.push(request);\n (0, import_vitest.expect)(request.path).toBe(\"/pull\");\n return jsonResponse({\n cookie: request.body.cookie,\n unchanged: true\n });\n });\n var transport = install(fetch);\n var { socket } = openRawSocketWithMessages({\n authToken: \"token-old\"\n });\n await eventually(function() {\n return (0, import_vitest.expect)(requests.length).toBe(1);\n });\n (0, import_vitest.expect)(requests[0].headers.authorization).toBe(\"Bearer token-old\");\n socket.send(JSON.stringify([\n \"updateAuth\",\n {\n auth: \"token-new\"\n }\n ]));\n await transport.pull();\n (0, import_vitest.expect)((_requests_at = requests.at(-1)) === null || _requests_at === void 0 ? void 0 : _requests_at.headers.authorization).toBe(\"Bearer token-new\");\n });\n (0, import_vitest.test)(\"push frames are serialized per socket\", async function() {\n var firstPushStarted = defer();\n var releaseFirstPush = defer();\n var pushIDs = [];\n var fetch = import_vitest.vi.fn(async function(input, init) {\n var request = recordRequest(input, init);\n if (request.path === \"/pull\") {\n return jsonResponse({\n cookie: request.body.cookie,\n unchanged: true\n });\n }\n (0, import_vitest.expect)(request.path).toBe(\"/push\");\n var mutationID = request.body.mutations[0].id;\n pushIDs.push(mutationID);\n if (mutationID === 1) {\n firstPushStarted.resolve();\n await releaseFirstPush.promise;\n }\n return jsonResponse({\n pushResponse: {\n mutations: request.body.mutations.map(function(mutation) {\n return {\n id: {\n clientID: mutation.clientID,\n id: mutation.id\n },\n result: {}\n };\n })\n }\n });\n });\n install(fetch);\n var { messages, socket } = openRawSocketWithMessages();\n await eventually(function() {\n return (0, import_vitest.expect)(messages.some(function(message) {\n return message[0] === \"connected\";\n })).toBe(true);\n });\n socket.send(JSON.stringify([\n \"push\",\n pushBody(1)\n ]));\n await firstPushStarted.promise;\n socket.send(JSON.stringify([\n \"push\",\n pushBody(2)\n ]));\n await sleep(25);\n (0, import_vitest.expect)(pushIDs).toEqual([\n 1\n ]);\n releaseFirstPush.resolve();\n await eventually(function() {\n return (0, import_vitest.expect)(pushIDs).toEqual([\n 1,\n 2\n ]);\n });\n await eventually(function() {\n return (0, import_vitest.expect)(messages.filter(function(message) {\n return message[0] === \"pushResponse\";\n })).toHaveLength(2);\n });\n (0, import_vitest.expect)(messages.filter(function(message) {\n return message[0] === \"pushResponse\";\n }).map(function(message) {\n return message[1].mutations[0].id.id;\n })).toEqual([\n 1,\n 2\n ]);\n });\n (0, import_vitest.test)(\"cookie discipline skips unchanged pokes, chains changed pokes, and coalesces concurrent pulls\", async function() {\n var requests = [];\n var responses = [\n {\n cookie: 1,\n lastMutationIDChanges: {},\n rowsPatch: [\n {\n op: \"clear\"\n }\n ]\n },\n {\n cookie: 1,\n unchanged: true\n },\n {\n cookie: 2,\n lastMutationIDChanges: {},\n rowsPatch: [\n {\n op: \"clear\"\n },\n {\n op: \"put\",\n tableName: \"project\",\n value: {\n id: \"p2\",\n ownerId: \"u1\",\n name: \"second\"\n }\n }\n ]\n },\n {\n cookie: 3,\n lastMutationIDChanges: {},\n rowsPatch: [\n {\n op: \"clear\"\n },\n {\n op: \"put\",\n tableName: \"project\",\n value: {\n id: \"p3\",\n ownerId: \"u1\",\n name: \"third\"\n }\n }\n ]\n }\n ];\n var deferred = defer();\n responses.push(deferred.promise);\n var inFlight = 0;\n var maxInFlight = 0;\n var fetch = import_vitest.vi.fn(async function(input, init) {\n inFlight++;\n maxInFlight = Math.max(maxInFlight, inFlight);\n try {\n var request = recordRequest(input, init);\n requests.push(request);\n var response = responses.shift();\n if (!response) throw new Error(\"missing canned response\");\n return jsonResponse(await response);\n } finally {\n inFlight--;\n }\n });\n var transport = install(fetch);\n var messages = openRawSocket();\n await eventually(function() {\n return (0, import_vitest.expect)(messages.some(function(message) {\n return message[0] === \"pokeEnd\";\n })).toBe(true);\n });\n (0, import_vitest.expect)(requests[0].body.cookie).toBeNull();\n (0, import_vitest.expect)(findMessage(messages, \"pokeStart\")[1].baseCookie).toBeNull();\n (0, import_vitest.expect)(findMessage(messages, \"pokeEnd\")[1].cookie).toBe(\"00000000000000000001\");\n messages.length = 0;\n await transport.pull();\n (0, import_vitest.expect)(messages.filter(function(message) {\n return message[0].startsWith(\"poke\");\n })).toEqual([]);\n (0, import_vitest.expect)(requests[1].body.cookie).toBe(1);\n await transport.pull();\n (0, import_vitest.expect)(findMessage(messages, \"pokeStart\")[1].baseCookie).toBe(\"00000000000000000001\");\n (0, import_vitest.expect)(findMessage(messages, \"pokeEnd\")[1].cookie).toBe(\"00000000000000000002\");\n (0, import_vitest.expect)(requests[2].body.cookie).toBe(1);\n messages.length = 0;\n await transport.pull();\n (0, import_vitest.expect)(findMessage(messages, \"pokeStart\")[1].baseCookie).toBe(\"00000000000000000002\");\n (0, import_vitest.expect)(findMessage(messages, \"pokeEnd\")[1].cookie).toBe(\"00000000000000000003\");\n (0, import_vitest.expect)(requests[3].body.cookie).toBe(2);\n messages.length = 0;\n var concurrentA = transport.pull();\n var concurrentB = transport.pull();\n await eventually(function() {\n return (0, import_vitest.expect)(requests.length).toBe(5);\n });\n deferred.resolve({\n cookie: 4,\n lastMutationIDChanges: {},\n rowsPatch: [\n {\n op: \"clear\"\n }\n ]\n });\n await Promise.all([\n concurrentA,\n concurrentB\n ]);\n (0, import_vitest.expect)(requests.length).toBe(5);\n (0, import_vitest.expect)(maxInFlight).toBe(1);\n (0, import_vitest.expect)(findMessage(messages, \"pokeStart\")[1].baseCookie).toBe(\"00000000000000000003\");\n (0, import_vitest.expect)(findMessage(messages, \"pokeEnd\")[1].cookie).toBe(\"00000000000000000004\");\n });\n (0, import_vitest.test)(\"unchanged pull flushes late query registration to complete\", async function() {\n var _requests_at;\n var requests = [];\n var fetch = import_vitest.vi.fn(async function(input, init) {\n var request = recordRequest(input, init);\n requests.push(request);\n (0, import_vitest.expect)(request.path).toBe(\"/pull\");\n if (request.body.cookie === null) {\n return jsonResponse({\n cookie: 1,\n lastMutationIDChanges: {},\n rowsPatch: [\n {\n op: \"clear\"\n },\n {\n op: \"put\",\n tableName: \"user\",\n value: {\n id: \"u1\",\n name: \"ada\"\n }\n },\n {\n op: \"put\",\n tableName: \"project\",\n value: {\n id: \"p1\",\n ownerId: \"u1\",\n name: \"first\"\n }\n }\n ]\n });\n }\n return jsonResponse({\n cookie: request.body.cookie,\n unchanged: true\n });\n });\n install(fetch);\n var zero = createZero();\n var projectView = zero.query.project.materialize();\n await waitForComplete(projectView);\n var userView = zero.query.user.materialize();\n var users = await waitForComplete(userView);\n (0, import_vitest.expect)(users).toEqual([\n {\n id: \"u1\",\n name: \"ada\"\n }\n ]);\n (0, import_vitest.expect)((_requests_at = requests.at(-1)) === null || _requests_at === void 0 ? void 0 : _requests_at.body.cookie).toBe(1);\n projectView.destroy();\n userView.destroy();\n });\n (0, import_vitest.test)(\"ping is answered locally and the stock Zero connection survives idle ping\", async function() {\n var fetch = import_vitest.vi.fn(async function(input, init) {\n var request = recordRequest(input, init);\n (0, import_vitest.expect)(request.path).toBe(\"/pull\");\n return jsonResponse({\n cookie: request.body.cookie,\n unchanged: true\n });\n });\n var transport = install(fetch);\n var zero = createZero({\n pingTimeoutMs: 10\n });\n await eventually(function() {\n return (0, import_vitest.expect)(zero.connection.state.current.name).toBe(\"connected\");\n });\n await sleep(40);\n (0, import_vitest.expect)(zero.connection.state.current.name).toBe(\"connected\");\n (0, import_vitest.expect)(transport.connections).toBe(1);\n });\n (0, import_vitest.test)(\"401 pull failure closes the fake socket without materializing data\", async function() {\n var requests = [];\n var fetch = import_vitest.vi.fn(async function(input, init) {\n var request = recordRequest(input, init);\n requests.push(request);\n (0, import_vitest.expect)(request.path).toBe(\"/pull\");\n return jsonResponse({\n error: \"unauthorized\"\n }, {\n status: 401\n });\n });\n var transport = install(fetch);\n var zero = createZero();\n var view = zero.query.project.materialize();\n var emissions = [];\n var cleanup = view.addListener(function(data, resultType) {\n emissions.push({\n data: JSON.parse(JSON.stringify(data)),\n resultType\n });\n });\n await eventually(function() {\n return (0, import_vitest.expect)(requests.length).toBeGreaterThan(0);\n });\n await eventually(function() {\n return (0, import_vitest.expect)(zero.connection.state.current.name).toBe(\"needs-auth\");\n });\n await sleep(25);\n (0, import_vitest.expect)(transport.connections).toBe(0);\n (0, import_vitest.expect)(emissions.flatMap(function(emission) {\n return emission.data;\n })).toEqual([]);\n (0, import_vitest.expect)(view.data).toEqual([]);\n cleanup();\n view.destroy();\n });\n (0, import_vitest.test)(\"transient pull failures back off reconnect attempts\", async function() {\n var requests = [];\n var fetch = import_vitest.vi.fn(async function(input, init) {\n var request = recordRequest(input, init);\n requests.push(request);\n (0, import_vitest.expect)(request.path).toBe(\"/pull\");\n throw new TypeError(\"Failed to fetch\");\n });\n install(fetch);\n createZero();\n await eventually(function() {\n return (0, import_vitest.expect)(requests.length).toBe(1);\n });\n await sleep(150);\n (0, import_vitest.expect)(requests.length).toBe(1);\n await eventually(function() {\n return (0, import_vitest.expect)(requests.length).toBe(2);\n }, 1500);\n await sleep(150);\n (0, import_vitest.expect)(requests.length).toBe(2);\n });\n (0, import_vitest.test)(\"non-origin WebSockets pass through to the native implementation\", function() {\n var previous = globalThis.WebSocket;\n var NativeWebSocket = function NativeWebSocket2(url, protocols) {\n \"use strict\";\n _class_call_check(this, NativeWebSocket2);\n _define_property(this, \"url\", void 0);\n _define_property(this, \"protocols\", void 0);\n this.url = url;\n this.protocols = protocols;\n };\n _define_property(NativeWebSocket, \"CONNECTING\", 0);\n _define_property(NativeWebSocket, \"OPEN\", 1);\n _define_property(NativeWebSocket, \"CLOSING\", 2);\n _define_property(NativeWebSocket, \"CLOSED\", 3);\n globalThis.WebSocket = NativeWebSocket;\n var transport = (0, import_httpPullTransport.installHttpPullTransport)({\n origin: ORIGIN,\n fetch: import_vitest.vi.fn()\n });\n var socket = new WebSocket(\"wss://elsewhere.local/socket\", \"native\");\n (0, import_vitest.expect)(socket).toBeInstanceOf(NativeWebSocket);\n (0, import_vitest.expect)(socket.url).toBe(\"wss://elsewhere.local/socket\");\n transport.uninstall();\n (0, import_vitest.expect)(globalThis.WebSocket).toBe(NativeWebSocket);\n globalThis.WebSocket = previous;\n });\n (0, import_vitest.test)(\"ensureHttpPullTransport installs once per origin\", function() {\n var origin = \"http://127.0.0.1:65501\";\n var first = (0, import_httpPullTransport.ensureHttpPullTransport)({\n origin,\n fetch: import_vitest.vi.fn()\n });\n var second = (0, import_httpPullTransport.ensureHttpPullTransport)({\n origin,\n fetch: import_vitest.vi.fn()\n });\n (0, import_vitest.expect)(second).toBe(first);\n first.uninstall();\n });\n (0, import_vitest.test)(\"push responses are filtered to this client \\u2014 foreign (recovery) results are dropped\", async function() {\n var fetch = import_vitest.vi.fn(async function(input, init) {\n var request = recordRequest(input, init);\n if (request.path === \"/pull\") {\n return jsonResponse({\n cookie: request.body.cookie,\n unchanged: true\n });\n }\n var mutation2 = request.body.mutations[0];\n return jsonResponse({\n pushResponse: {\n mutations: [\n {\n id: {\n clientID: \"previous-session-client\",\n id: 7\n },\n result: {\n error: \"alreadyProcessed\",\n details: \"recovered mutation already applied\"\n }\n },\n {\n id: {\n clientID: mutation2.clientID,\n id: mutation2.id\n },\n result: {}\n }\n ]\n }\n });\n });\n install(fetch);\n var zero = createZero();\n var mutation = zero.mutate.project.create({\n id: \"p-recovery\",\n ownerId: \"u1\",\n name: \"recovered\"\n });\n await mutation.client;\n await mutation.server;\n });\n (0, import_vitest.test)(\"pull 409 (client cookie ahead of server) resets client state instead of reconnect-looping\", async function() {\n var fetch = import_vitest.vi.fn(async function(input, init) {\n var request = recordRequest(input, init);\n (0, import_vitest.expect)(request.path).toBe(\"/pull\");\n return jsonResponse({\n error: \"future cookie 299 is ahead of server cookie 66\"\n }, {\n status: 409\n });\n });\n install(fetch);\n var onClientStateNotFound = import_vitest.vi.fn();\n createZero({\n onClientStateNotFound\n });\n await eventually(function() {\n return (0, import_vitest.expect)(onClientStateNotFound).toHaveBeenCalled();\n }, 5e3);\n });\n});\nfunction install(fetch) {\n var transport = (0, import_httpPullTransport.installHttpPullTransport)({\n origin: ORIGIN,\n fetch\n });\n transports.push(transport);\n return transport;\n}\nfunction createZero() {\n var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n var zero = new import_zero.Zero({\n server: ORIGIN,\n userID: \"u1\",\n auth: \"token-u1\",\n schema: import_fixtureSchema.zeroHttpFixtureSchema,\n kvStore: \"mem\",\n storageKey: `zero-http-test-${++storageID}`,\n mutators: import_fixtureSchema.zeroHttpFixtureMutators,\n pingTimeoutMs: options.pingTimeoutMs,\n onClientStateNotFound: options.onClientStateNotFound\n });\n zeros.push(zero);\n return zero;\n}\nfunction recordRequest(input, init) {\n var url = new URL(String(input));\n var _init_headers;\n var headers = Object.fromEntries(Object.entries((_init_headers = init === null || init === void 0 ? void 0 : init.headers) !== null && _init_headers !== void 0 ? _init_headers : {}).map(function(param) {\n var [key, value] = param;\n return [\n key.toLowerCase(),\n value\n ];\n }));\n return {\n url: url.toString(),\n path: url.pathname,\n headers,\n body: (init === null || init === void 0 ? void 0 : init.body) ? JSON.parse(String(init.body)) : void 0\n };\n}\nfunction jsonResponse(body, init) {\n var _init_status;\n return new Response(JSON.stringify(body), {\n status: (_init_status = init === null || init === void 0 ? void 0 : init.status) !== null && _init_status !== void 0 ? _init_status : 200,\n statusText: init === null || init === void 0 ? void 0 : init.statusText,\n headers: {\n \"content-type\": \"application/json\",\n ...init === null || init === void 0 ? void 0 : init.headers\n }\n });\n}\nasync function waitForComplete(view) {\n return new Promise(function(resolve, reject) {\n var timeout = setTimeout(function() {\n return reject(new Error(\"timed out waiting for complete query\"));\n }, 5e3);\n var cleanup = function() {\n };\n cleanup = view.addListener(function(data, resultType) {\n if (resultType !== \"complete\") return;\n clearTimeout(timeout);\n cleanup();\n resolve(JSON.parse(JSON.stringify(data)));\n });\n });\n}\nasync function eventually(assertion) {\n var timeout = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1e3;\n var started = Date.now();\n var lastError;\n while (Date.now() - started < timeout) {\n try {\n await assertion();\n return;\n } catch (error) {\n lastError = error;\n await sleep(10);\n }\n }\n throw lastError;\n}\nfunction sleep(ms) {\n return new Promise(function(resolve) {\n return setTimeout(resolve, ms);\n });\n}\nfunction openRawSocket() {\n return openRawSocketWithMessages().messages;\n}\nfunction openRawSocketWithMessages(opts) {\n var url = new URL(`${ORIGIN}/sync/v51/connect`);\n url.protocol = \"wss:\";\n url.searchParams.set(\"clientID\", \"c1\");\n url.searchParams.set(\"clientGroupID\", \"cg1\");\n url.searchParams.set(\"userID\", \"u1\");\n url.searchParams.set(\"baseCookie\", \"\");\n url.searchParams.set(\"lmid\", \"0\");\n url.searchParams.set(\"wsid\", \"ws-test\");\n var messages = [];\n var _opts_desiredQueriesPatch, _opts_authToken;\n var socket = new WebSocket(url, encodeSecProtocol([\n \"initConnection\",\n {\n desiredQueriesPatch: (_opts_desiredQueriesPatch = opts === null || opts === void 0 ? void 0 : opts.desiredQueriesPatch) !== null && _opts_desiredQueriesPatch !== void 0 ? _opts_desiredQueriesPatch : []\n }\n ], (_opts_authToken = opts === null || opts === void 0 ? void 0 : opts.authToken) !== null && _opts_authToken !== void 0 ? _opts_authToken : \"token-u1\"));\n socket.addEventListener(\"message\", function(event) {\n messages.push(JSON.parse(String(event.data)));\n });\n return {\n messages,\n socket\n };\n}\nfunction pushBody(id) {\n return {\n clientGroupID: \"cg1\",\n pushVersion: 1,\n requestID: `push-${id}`,\n timestamp: Date.now(),\n mutations: [\n {\n type: \"custom\",\n name: \"project|create\",\n id,\n clientID: \"c1\",\n args: [\n {\n id: `p${id}`,\n ownerId: \"u1\",\n name: `project ${id}`\n }\n ]\n }\n ]\n };\n}\nfunction findMessage(messages, type) {\n var message = messages.find(function(item) {\n return item[0] === type;\n });\n (0, import_vitest.expect)(message).toBeDefined();\n return message;\n}\nfunction encodeSecProtocol(initConnectionMessage, authToken) {\n return encodeURIComponent(Buffer.from(JSON.stringify({\n initConnectionMessage,\n authToken\n })).toString(\"base64\"));\n}\nfunction defer() {\n var resolve;\n var reject;\n var promise = new Promise(function(res, rej) {\n resolve = res;\n reject = rej;\n });\n return {\n promise,\n resolve,\n reject\n };\n}\nfunction installWithQueries(fetch, queryTransform) {\n var transport = (0, import_httpPullTransport.installHttpPullTransport)({\n origin: ORIGIN,\n fetch,\n queryTransform\n });\n transports.push(transport);\n return transport;\n}\n(0, import_vitest.describe)(\"zero-http query-aware extension\", function() {\n (0, import_vitest.test)(\"ships desired queries with pull state (transformed AST) and emits server got-query ack\", async function() {\n var requests = [];\n var fetch = import_vitest.vi.fn(async function(input, init) {\n var request = recordRequest(input, init);\n requests.push(request);\n return jsonResponse({\n cookie: 1,\n lastMutationIDChanges: {},\n rowsPatch: [\n {\n op: \"clear\"\n }\n ],\n gotQueries: {\n version: 1,\n patch: [\n {\n op: \"put\",\n hash: \"h1\"\n }\n ]\n }\n });\n });\n installWithQueries(fetch, function(name, args) {\n return {\n resolved: name,\n args\n };\n });\n var { messages } = openRawSocketWithMessages({\n desiredQueriesPatch: [\n {\n op: \"put\",\n hash: \"h1\",\n name: \"byOwner\",\n args: [\n {\n ownerId: \"u1\"\n }\n ]\n }\n ]\n });\n await eventually(function() {\n return (0, import_vitest.expect)(requests.length).toBeGreaterThan(0);\n });\n (0, import_vitest.expect)(requests[0].body.queries).toEqual({\n version: 1,\n patch: [\n {\n op: \"put\",\n hash: \"h1\",\n ast: {\n resolved: \"byOwner\",\n args: [\n {\n ownerId: \"u1\"\n }\n ]\n }\n }\n ]\n });\n await eventually(function() {\n var poke = messages.find(function(m) {\n return m[0] === \"pokePart\" && Array.isArray(m[1].gotQueriesPatch);\n });\n (0, import_vitest.expect)(poke === null || poke === void 0 ? void 0 : poke[1].gotQueriesPatch).toEqual([\n {\n op: \"put\",\n hash: \"h1\"\n }\n ]);\n });\n });\n (0, import_vitest.test)(\"an ad-hoc put with an inline ast ships that ast unchanged\", async function() {\n var requests = [];\n var fetch = import_vitest.vi.fn(async function(input, init) {\n requests.push(recordRequest(input, init));\n return jsonResponse({\n cookie: 1,\n unchanged: true\n });\n });\n installWithQueries(fetch, function() {\n throw new Error(\"transform should not run for an inline ast\");\n });\n openRawSocketWithMessages({\n desiredQueriesPatch: [\n {\n op: \"put\",\n hash: \"h2\",\n ast: {\n inline: true\n }\n }\n ]\n });\n await eventually(function() {\n return (0, import_vitest.expect)(requests.length).toBeGreaterThan(0);\n });\n (0, import_vitest.expect)(requests[0].body.queries.patch).toEqual([\n {\n op: \"put\",\n hash: \"h2\",\n ast: {\n inline: true\n }\n }\n ]);\n });\n (0, import_vitest.test)(\"reconnect re-ships the desired set\", async function() {\n var requests = [];\n var fetch = import_vitest.vi.fn(async function(input, init) {\n requests.push(recordRequest(input, init));\n return jsonResponse({\n cookie: 1,\n unchanged: true\n });\n });\n installWithQueries(fetch, function(name) {\n return {\n resolved: name\n };\n });\n var desired = [\n {\n op: \"put\",\n hash: \"h1\",\n name: \"byOwner\",\n args: []\n }\n ];\n var first = openRawSocketWithMessages({\n desiredQueriesPatch: desired\n });\n await eventually(function() {\n return (0, import_vitest.expect)(requests.length).toBeGreaterThan(0);\n });\n first.socket.close();\n var before = requests.length;\n openRawSocketWithMessages({\n desiredQueriesPatch: desired\n });\n await eventually(function() {\n return (0, import_vitest.expect)(requests.length).toBeGreaterThan(before);\n });\n var replay = requests[requests.length - 1].body.queries;\n (0, import_vitest.expect)(replay.patch).toEqual([\n {\n op: \"put\",\n hash: \"h1\",\n ast: {\n resolved: \"byOwner\"\n }\n }\n ]);\n });\n (0, import_vitest.test)(\"queryForward ships name+args for the server to resolve (no client transform)\", async function() {\n var requests = [];\n var fetch = import_vitest.vi.fn(async function(input, init) {\n requests.push(recordRequest(input, init));\n return jsonResponse({\n cookie: 1,\n unchanged: true\n });\n });\n var transport = (0, import_httpPullTransport.installHttpPullTransport)({\n origin: ORIGIN,\n fetch,\n queryForward: true\n });\n transports.push(transport);\n openRawSocketWithMessages({\n desiredQueriesPatch: [\n {\n op: \"put\",\n hash: \"h3\",\n name: \"byOwner\",\n args: [\n {\n ownerId: \"u1\"\n }\n ],\n // Zero may include a locally evaluable AST on a named query put.\n // queryForward must discard it so the server remains authoritative.\n ast: {\n table: \"secret\"\n }\n }\n ]\n });\n await eventually(function() {\n return (0, import_vitest.expect)(requests.length).toBeGreaterThan(0);\n });\n (0, import_vitest.expect)(requests[0].body.queries.patch).toEqual([\n {\n op: \"put\",\n hash: \"h3\",\n name: \"byOwner\",\n args: [\n {\n ownerId: \"u1\"\n }\n ]\n }\n ]);\n });\n});\n//# sourceMappingURL=transport.test.js.map\n"],"mappings":"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","ignoreList":[]}
|