on-zero 0.6.21 → 0.6.22
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/httpPull/transport.test.cjs +30 -9
- package/dist/cjs/httpPull/transport.test.native.js +43 -11
- package/dist/cjs/httpPull/transport.test.native.js.map +1 -1
- package/dist/cjs/httpPullTransport.cjs +63 -8
- package/dist/cjs/httpPullTransport.native.js +70 -10
- package/dist/cjs/httpPullTransport.native.js.map +1 -1
- package/dist/esm/httpPull/transport.test.mjs +30 -9
- package/dist/esm/httpPull/transport.test.mjs.map +1 -1
- package/dist/esm/httpPull/transport.test.native.js +43 -11
- package/dist/esm/httpPull/transport.test.native.js.map +1 -1
- package/dist/esm/httpPullTransport.mjs +63 -8
- package/dist/esm/httpPullTransport.mjs.map +1 -1
- package/dist/esm/httpPullTransport.native.js +70 -10
- package/dist/esm/httpPullTransport.native.js.map +1 -1
- package/package.json +2 -2
- package/src/httpPull/transport.test.ts +31 -10
- package/src/httpPullTransport.ts +97 -11
- package/types/httpPullTransport.d.ts +3 -1
- package/types/httpPullTransport.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["COOKIE_WIDTH","ZERO_CONNECT_TIMEOUT_MS","HTTP_PULL_PAGE_REGISTRY","Symbol","for","isHttpPullPageRegistry","value","pageID","nextTransportGeneration","transportsByOrigin","Map","getHttpPullPageRegistry","existing","Reflect","get","globalThis","registry","Date","now","toString","set","logHttpPullLifecycle","event","process","env","NODE_ENV","console","info","JSON","stringify","installHttpPullTransport","opts","pageRegistry","transportID","previousWebSocket","WebSocket","fetchImpl","fetch","Error","state","origin","URL","originString","trimTrailingSlash","pullOriginString","pullOrigin","pushOriginString","pushOrigin","bind","nativeWebSocket","sockets","Set","pullIntervalMs","wakeEnabled","wake","queryTransform","queryForward","queryAware","nextPokeID","nextSocketGeneration","activeSocketGenerationByClient","activeSocketByClient","lifecycle","Shim","CONNECTING","OPEN","CLOSING","CLOSED","constructor","url","protocols","shouldIntercept","ZeroHttpSocket","String","transport","pull","Promise","all","map","socket","connections","size","uninstall","registered","delete","ensureHttpPullTransport","key","connectURL","toHttpURL","clientID","searchParams","clientGroupID","wsid","generation","zeroInstanceID","connectionAttemptID","socketID","attemptStartedAtParam","attemptStartedAt","Number","isFinite","previousSocket","supersede","emitLifecycle","baseCookie","cookie","suffixMatch","match","nextLocalCookieID","decoded","decodeSecProtocol","authToken","queueDesiredQueries","initConnectionMessage","add","openTimer","setTimeout","open","readyState","listeners","message","close","error","pendingGotQueriesPatch","desiredQueryPatch","queryVersion","sentQueryVersion","sentQueryPatchLen","pullInFlight","pullAfterCurrent","pushChain","resolve","pullTimer","wakeSocket","wakeReconnectTimer","settled","addEventListener","type","listener","removeEventListener","dispatchEvent","emit","send","data","parse","requestPullAfterCurrent","auth","enqueuePush","emitMessage","run","answerMutationRecoveryPull","code","reason","settle","wasClean","fetchPull","then","response","applyServerGotQueries","unchanged","emitGotQueriesPatch","emitPoke","catch","fail","finally","pullAgain","attemptAgeMs","getAttemptAgeMs","Math","round","timestamp","setInterval","openWakeChannel","Native","wsBase","replace","encodeURIComponent","reconnect","onmessage","onclose","onerror","closeWakeChannel","clearTimeout","body","desiredQueriesPatch","Array","isArray","push","gotQueriesPatch","transform","op","hash","inline","ast","name","args","postJSON","filterMutationResultsToClient","pushResponse","nextPush","got","gotQueries","patch","version","splice","toWebSocketCookie","requestID","lastMutationIDChanges","includeQueries","toHttpCookie","length","queries","path","base","method","headers","authorization","ok","ZeroHttpResponseError","status","json","promise","errorMessage","isAuthHTTPError","kind","isStaleClientCookieError","currentServer","nextCookie","toLocalWebSocketCookie","pokeID","schemaVersions","minSupportedVersion","maxSupportedVersion","rowsPatch","serverCookie","handler","call","handleEvent","detail","clearInterval","performance","activeGeneration","candidate","pathname","parsed","protocol","endsWith","slice","decodeURIComponent","TextDecoder","decode","Uint8Array","from","atob","char","charCodeAt","padStart","localID","mutations","filter","m","id"],"sources":["../../src/httpPullTransport.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["COOKIE_WIDTH","MAX_PUSH_BATCH_MUTATIONS","ZERO_CONNECT_TIMEOUT_MS","HTTP_PULL_PAGE_REGISTRY","Symbol","for","isHttpPullPageRegistry","value","pageID","nextTransportGeneration","transportsByOrigin","Map","getHttpPullPageRegistry","existing","Reflect","get","globalThis","registry","Date","now","toString","set","logHttpPullLifecycle","event","process","env","NODE_ENV","console","info","JSON","stringify","installHttpPullTransport","opts","pageRegistry","transportID","previousWebSocket","WebSocket","fetchImpl","fetch","Error","state","origin","URL","originString","trimTrailingSlash","pullOriginString","pullOrigin","pushOriginString","pushOrigin","bind","nativeWebSocket","sockets","Set","pullIntervalMs","wakeEnabled","wake","queryTransform","queryForward","queryAware","nextPokeID","nextSocketGeneration","activeSocketGenerationByClient","activeSocketByClient","lifecycle","Shim","CONNECTING","OPEN","CLOSING","CLOSED","constructor","url","protocols","shouldIntercept","ZeroHttpSocket","String","transport","pull","Promise","all","map","socket","connections","size","uninstall","registered","delete","ensureHttpPullTransport","key","connectURL","toHttpURL","clientID","searchParams","clientGroupID","wsid","generation","zeroInstanceID","connectionAttemptID","socketID","attemptStartedAtParam","attemptStartedAt","Number","isFinite","previousSocket","supersede","emitLifecycle","baseCookie","cookie","suffixMatch","match","nextLocalCookieID","decoded","decodeSecProtocol","authToken","queueDesiredQueries","initConnectionMessage","add","openTimer","setTimeout","open","readyState","listeners","message","close","error","pendingGotQueriesPatch","desiredQueryPatch","queryVersion","sentQueryVersion","sentQueryPatchLen","pullInFlight","pullAfterCurrent","pendingPushes","pushInFlight","pullTimer","wakeSocket","wakeReconnectTimer","settled","addEventListener","type","listener","removeEventListener","dispatchEvent","emit","send","data","parse","requestPullAfterCurrent","auth","enqueuePush","emitMessage","run","answerMutationRecoveryPull","code","reason","settle","wasClean","resolve","fetchPull","then","response","applyServerGotQueries","unchanged","emitGotQueriesPatch","emitPoke","catch","fail","finally","pullAgain","attemptAgeMs","getAttemptAgeMs","Math","round","timestamp","setInterval","openWakeChannel","Native","wsBase","replace","encodeURIComponent","reconnect","onmessage","onclose","onerror","closeWakeChannel","clearTimeout","body","desiredQueriesPatch","Array","isArray","push","gotQueriesPatch","transform","op","hash","inline","ast","name","args","frameCount","mutationCount","postJSON","pushFrameCount","filterMutationResultsToClient","pushResponse","drainPushes","length","takePushBatch","first","shift","firstBody","parsePushBody","mutations","nextBody","areCompatiblePushBodies","got","gotQueries","patch","version","splice","toWebSocketCookie","requestID","lastMutationIDChanges","includeQueries","toHttpCookie","queries","path","base","method","headers","authorization","ok","ZeroHttpResponseError","status","json","promise","errorMessage","isAuthHTTPError","kind","isStaleClientCookieError","currentServer","nextCookie","toLocalWebSocketCookie","pokeID","schemaVersions","minSupportedVersion","maxSupportedVersion","rowsPatch","serverCookie","handler","call","handleEvent","detail","clearInterval","performance","activeGeneration","left","right","pushVersion","schemaVersion","candidate","pathname","parsed","protocol","endsWith","slice","decodeURIComponent","TextDecoder","decode","Uint8Array","from","atob","char","charCodeAt","padStart","localID","filter","m","id"],"sources":["../../src/httpPullTransport.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -137,6 +137,7 @@ function _is_native_reflect_construct() {
|
|
|
137
137
|
})();
|
|
138
138
|
}
|
|
139
139
|
var COOKIE_WIDTH = 20;
|
|
140
|
+
var MAX_PUSH_BATCH_MUTATIONS = 64;
|
|
140
141
|
var ZERO_CONNECT_TIMEOUT_MS = 1e4;
|
|
141
142
|
var HTTP_PULL_PAGE_REGISTRY = /* @__PURE__ */Symbol.for("on-zero.http-pull.page-registry");
|
|
142
143
|
function isHttpPullPageRegistry(value) {
|
|
@@ -265,7 +266,8 @@ var ZeroHttpSocket = /* @__PURE__ */function () {
|
|
|
265
266
|
_define_property(this, "sentQueryPatchLen", void 0);
|
|
266
267
|
_define_property(this, "pullInFlight", void 0);
|
|
267
268
|
_define_property(this, "pullAfterCurrent", void 0);
|
|
268
|
-
_define_property(this, "
|
|
269
|
+
_define_property(this, "pendingPushes", void 0);
|
|
270
|
+
_define_property(this, "pushInFlight", void 0);
|
|
269
271
|
_define_property(this, "nextLocalCookieID", void 0);
|
|
270
272
|
_define_property(this, "openTimer", void 0);
|
|
271
273
|
_define_property(this, "pullTimer", void 0);
|
|
@@ -294,7 +296,8 @@ var ZeroHttpSocket = /* @__PURE__ */function () {
|
|
|
294
296
|
this.queryVersion = 0;
|
|
295
297
|
this.sentQueryPatchLen = 0;
|
|
296
298
|
this.pullAfterCurrent = false;
|
|
297
|
-
this.
|
|
299
|
+
this.pendingPushes = [];
|
|
300
|
+
this.pushInFlight = false;
|
|
298
301
|
this.settled = false;
|
|
299
302
|
this.connectURL = toHttpURL(url);
|
|
300
303
|
this.url = String(url);
|
|
@@ -582,21 +585,70 @@ var ZeroHttpSocket = /* @__PURE__ */function () {
|
|
|
582
585
|
}
|
|
583
586
|
}, {
|
|
584
587
|
key: "push",
|
|
585
|
-
value: async function push(
|
|
588
|
+
value: async function push(param) {
|
|
589
|
+
var {
|
|
590
|
+
body,
|
|
591
|
+
frameCount,
|
|
592
|
+
mutationCount
|
|
593
|
+
} = param;
|
|
586
594
|
var response = await this.postJSON("/push", body);
|
|
595
|
+
this.emitLifecycle("push", {
|
|
596
|
+
pushFrameCount: frameCount,
|
|
597
|
+
mutationCount
|
|
598
|
+
});
|
|
587
599
|
this.emitMessage(["pushResponse", filterMutationResultsToClient(response.pushResponse, this.clientID)]);
|
|
588
600
|
this.requestPullAfterCurrent();
|
|
589
601
|
}
|
|
590
602
|
}, {
|
|
591
603
|
key: "enqueuePush",
|
|
592
604
|
value: function enqueuePush(body) {
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
605
|
+
this.pendingPushes.push(body);
|
|
606
|
+
if (this.pushInFlight) return;
|
|
607
|
+
this.run(this.drainPushes());
|
|
608
|
+
}
|
|
609
|
+
}, {
|
|
610
|
+
key: "drainPushes",
|
|
611
|
+
value: async function drainPushes() {
|
|
612
|
+
this.pushInFlight = true;
|
|
613
|
+
try {
|
|
614
|
+
while (this.readyState !== this.CLOSED && this.pendingPushes.length > 0) {
|
|
615
|
+
await this.push(this.takePushBatch());
|
|
616
|
+
}
|
|
617
|
+
} finally {
|
|
618
|
+
this.pushInFlight = false;
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
}, {
|
|
622
|
+
key: "takePushBatch",
|
|
623
|
+
value: function takePushBatch() {
|
|
624
|
+
var first = this.pendingPushes.shift();
|
|
625
|
+
var firstBody = parsePushBody(first);
|
|
626
|
+
if (!firstBody) {
|
|
627
|
+
return {
|
|
628
|
+
body: first,
|
|
629
|
+
frameCount: 1,
|
|
630
|
+
mutationCount: 0
|
|
631
|
+
};
|
|
632
|
+
}
|
|
633
|
+
var mutations = [...firstBody.mutations];
|
|
634
|
+
var frameCount = 1;
|
|
635
|
+
while (this.pendingPushes.length > 0) {
|
|
636
|
+
var nextBody = parsePushBody(this.pendingPushes[0]);
|
|
637
|
+
if (!nextBody || !areCompatiblePushBodies(firstBody, nextBody) || mutations.length + nextBody.mutations.length > MAX_PUSH_BATCH_MUTATIONS) {
|
|
638
|
+
break;
|
|
639
|
+
}
|
|
640
|
+
this.pendingPushes.shift();
|
|
641
|
+
mutations.push(...nextBody.mutations);
|
|
642
|
+
frameCount++;
|
|
643
|
+
}
|
|
644
|
+
return {
|
|
645
|
+
body: frameCount === 1 ? firstBody : {
|
|
646
|
+
...firstBody,
|
|
647
|
+
mutations
|
|
648
|
+
},
|
|
649
|
+
frameCount,
|
|
650
|
+
mutationCount: mutations.length
|
|
651
|
+
};
|
|
600
652
|
}
|
|
601
653
|
}, {
|
|
602
654
|
key: "requestPullAfterCurrent",
|
|
@@ -871,6 +923,14 @@ var ZeroHttpSocket = /* @__PURE__ */function () {
|
|
|
871
923
|
}]);
|
|
872
924
|
return ZeroHttpSocket2;
|
|
873
925
|
}();
|
|
926
|
+
function parsePushBody(value) {
|
|
927
|
+
if ((typeof value === "undefined" ? "undefined" : _type_of(value)) !== "object" || value === null || Array.isArray(value)) return;
|
|
928
|
+
if (!("mutations" in value) || !Array.isArray(value.mutations)) return;
|
|
929
|
+
return value;
|
|
930
|
+
}
|
|
931
|
+
function areCompatiblePushBodies(left, right) {
|
|
932
|
+
return left.clientGroupID === right.clientGroupID && left.pushVersion === right.pushVersion && left.schemaVersion === right.schemaVersion;
|
|
933
|
+
}
|
|
874
934
|
function shouldIntercept(origin, url) {
|
|
875
935
|
var candidate = toHttpURL(url);
|
|
876
936
|
if (candidate.origin !== origin.origin) return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_assert_this_initialized","self","ReferenceError","_call_super","_this","derived","args","_get_prototype_of","_possible_constructor_return","_is_native_reflect_construct","Reflect","construct","constructor","apply","_class_call_check","instance","Constructor","TypeError","_construct","Parent","Class","Parent2","args2","Class2","a","push","Function","bind","_set_prototype_of","prototype","arguments","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","_define_property","obj","value","o","setPrototypeOf","getPrototypeOf","o2","__proto__","_inherits","subClass","superClass","create","_instanceof","left","right","Symbol","hasInstance","_is_native_function","fn","toString","call","indexOf","_type_of","p","p2","_wrap_native_super","_cache","Map","wrapNativeSuper","has","get","set","Wrapper","result","Boolean","valueOf","_","COOKIE_WIDTH","ZERO_CONNECT_TIMEOUT_MS","HTTP_PULL_PAGE_REGISTRY","for","isHttpPullPageRegistry","pageID","nextTransportGeneration","transportsByOrigin","getHttpPullPageRegistry","existing","globalThis","registry","Date","now","logHttpPullLifecycle","event","process","env","NODE_ENV","console","info","JSON","stringify","installHttpPullTransport","opts","_class","pageRegistry","transportID","previousWebSocket","WebSocket","_opts_fetch","fetchImpl","fetch","Error","_opts_pullOrigin","_opts_pushOrigin","_opts_wake","_opts_lifecycle","state","origin","URL","originString","trimTrailingSlash","pullOriginString","pullOrigin","pushOriginString","pushOrigin","nativeWebSocket","sockets","Set","pullIntervalMs","wakeEnabled","wake","queryTransform","queryForward","queryAware","nextPokeID","nextSocketGeneration","activeSocketGenerationByClient","activeSocketByClient","lifecycle","Shim","_class2","url","protocols","shouldIntercept","ZeroHttpSocket","String","transport","pull","Promise","all","map","socket","connections","size","uninstall","registered","delete","ensureHttpPullTransport","ZeroHttpSocket2","_this_cookie","_decoded_initConnectionMessage","CONNECTING","OPEN","CLOSING","CLOSED","readyState","listeners","open","message","close","error","pendingGotQueriesPatch","desiredQueryPatch","queryVersion","sentQueryPatchLen","pullAfterCurrent","pushChain","resolve","settled","connectURL","toHttpURL","_this_connectURL_searchParams_get","clientID","searchParams","_this_connectURL_searchParams_get1","clientGroupID","_this_connectURL_searchParams_get2","wsid","generation","zeroInstanceID","connectionAttemptID","socketID","attemptStartedAtParam","attemptStartedAt","Number","isFinite","previousSocket","supersede","emitLifecycle","baseCookie","cookie","suffixMatch","match","nextLocalCookieID","decoded","decodeSecProtocol","authToken","queueDesiredQueries","initConnectionMessage","add","openTimer","setTimeout","addEventListener","type","listener","_this_listeners_type","removeEventListener","dispatchEvent","emit","send","data","parse","requestPullAfterCurrent","auth","enqueuePush","emitMessage","run","answerMutationRecoveryPull","code","reason","settle","wasClean","pullInFlight","fetchPull","then","response","applyServerGotQueries","unchanged","emitGotQueriesPatch","emitPoke","catch","fail","finally","pullAgain","attemptAgeMs","getAttemptAgeMs","Math","round","timestamp","pullTimer","setInterval","openWakeChannel","Native","wakeSocket","wsBase","replace","encodeURIComponent","e","reconnect","wakeReconnectTimer","onmessage","onclose","onerror","closeWakeChannel","clearTimeout","body","desiredQueriesPatch","Array","isArray","gotQueriesPatch","transform","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","op","hash","inline","ast","_op_name","name","_op_args","err","return","postJSON","filterMutationResultsToClient","pushResponse","nextPush","got","gotQueries","patch","sentQueryVersion","version","splice","toWebSocketCookie","_ref","requestID","lastMutationIDChanges"],"sources":["../../src/httpPullTransport.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_assert_this_initialized","self","ReferenceError","_call_super","_this","derived","args","_get_prototype_of","_possible_constructor_return","_is_native_reflect_construct","Reflect","construct","constructor","apply","_class_call_check","instance","Constructor","TypeError","_construct","Parent","Class","Parent2","args2","Class2","a","push","Function","bind","_set_prototype_of","prototype","arguments","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","_define_property","obj","value","o","setPrototypeOf","getPrototypeOf","o2","__proto__","_inherits","subClass","superClass","create","_instanceof","left","right","Symbol","hasInstance","_is_native_function","fn","toString","call","indexOf","_type_of","p","p2","_wrap_native_super","_cache","Map","wrapNativeSuper","has","get","set","Wrapper","result","Boolean","valueOf","_","COOKIE_WIDTH","MAX_PUSH_BATCH_MUTATIONS","ZERO_CONNECT_TIMEOUT_MS","HTTP_PULL_PAGE_REGISTRY","for","isHttpPullPageRegistry","pageID","nextTransportGeneration","transportsByOrigin","getHttpPullPageRegistry","existing","globalThis","registry","Date","now","logHttpPullLifecycle","event","process","env","NODE_ENV","console","info","JSON","stringify","installHttpPullTransport","opts","_class","pageRegistry","transportID","previousWebSocket","WebSocket","_opts_fetch","fetchImpl","fetch","Error","_opts_pullOrigin","_opts_pushOrigin","_opts_wake","_opts_lifecycle","state","origin","URL","originString","trimTrailingSlash","pullOriginString","pullOrigin","pushOriginString","pushOrigin","nativeWebSocket","sockets","Set","pullIntervalMs","wakeEnabled","wake","queryTransform","queryForward","queryAware","nextPokeID","nextSocketGeneration","activeSocketGenerationByClient","activeSocketByClient","lifecycle","Shim","_class2","url","protocols","shouldIntercept","ZeroHttpSocket","String","transport","pull","Promise","all","map","socket","connections","size","uninstall","registered","delete","ensureHttpPullTransport","ZeroHttpSocket2","_this_cookie","_decoded_initConnectionMessage","CONNECTING","OPEN","CLOSING","CLOSED","readyState","listeners","open","message","close","error","pendingGotQueriesPatch","desiredQueryPatch","queryVersion","sentQueryPatchLen","pullAfterCurrent","pendingPushes","pushInFlight","settled","connectURL","toHttpURL","_this_connectURL_searchParams_get","clientID","searchParams","_this_connectURL_searchParams_get1","clientGroupID","_this_connectURL_searchParams_get2","wsid","generation","zeroInstanceID","connectionAttemptID","socketID","attemptStartedAtParam","attemptStartedAt","Number","isFinite","previousSocket","supersede","emitLifecycle","baseCookie","cookie","suffixMatch","match","nextLocalCookieID","decoded","decodeSecProtocol","authToken","queueDesiredQueries","initConnectionMessage","add","openTimer","setTimeout","addEventListener","type","listener","_this_listeners_type","removeEventListener","dispatchEvent","emit","send","data","parse","requestPullAfterCurrent","auth","enqueuePush","emitMessage","run","answerMutationRecoveryPull","code","reason","settle","wasClean","resolve","pullInFlight","fetchPull","then","response","applyServerGotQueries","unchanged","emitGotQueriesPatch","emitPoke","catch","fail","finally","pullAgain","attemptAgeMs","getAttemptAgeMs","Math","round","timestamp","pullTimer","setInterval","openWakeChannel","Native","wakeSocket","wsBase","replace","encodeURIComponent","e","reconnect","wakeReconnectTimer","onmessage","onclose","onerror","closeWakeChannel","clearTimeout","body","desiredQueriesPatch","Array","isArray","gotQueriesPatch","transform","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","op","hash","inline","ast","_op_name","name","_op_args","err","return","param","frameCount","mutationCount","postJSON","pushFrameCount","filterMutationResultsToClient","pushResponse","drainPushes","takePushBatch","first","shift","firstBody","parsePushBody","mutations","nextBody","areCompatiblePushBodies","got","gotQueries","patch","sentQueryVersion","version","splice"],"sources":["../../src/httpPullTransport.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "on-zero",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.22",
|
|
4
4
|
"description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
}
|
|
101
101
|
},
|
|
102
102
|
"dependencies": {
|
|
103
|
-
"@take-out/helpers": "0.6.
|
|
103
|
+
"@take-out/helpers": "0.6.22",
|
|
104
104
|
"chokidar": "^4.0.3",
|
|
105
105
|
"citty": "^0.1.6",
|
|
106
106
|
"valibot": "^1.1.0"
|
|
@@ -205,10 +205,11 @@ describe('zero-http transport', () => {
|
|
|
205
205
|
expect(requests.at(-1)?.headers.authorization).toBe('Bearer token-new')
|
|
206
206
|
})
|
|
207
207
|
|
|
208
|
-
test('push frames are serialized per socket', async () => {
|
|
208
|
+
test('push frames are serialized and queued bursts are batched per socket', async () => {
|
|
209
209
|
const firstPushStarted = defer<void>()
|
|
210
210
|
const releaseFirstPush = defer<void>()
|
|
211
|
-
const
|
|
211
|
+
const pushRequests: number[][] = []
|
|
212
|
+
const lifecycle: HttpPullLifecycleEvent[] = []
|
|
212
213
|
const fetch = vi.fn(async (input: RequestInfo | URL, init?: RequestInit) => {
|
|
213
214
|
const request = recordRequest(input, init)
|
|
214
215
|
if (request.path === '/pull') {
|
|
@@ -216,9 +217,9 @@ describe('zero-http transport', () => {
|
|
|
216
217
|
}
|
|
217
218
|
|
|
218
219
|
expect(request.path).toBe('/push')
|
|
219
|
-
const
|
|
220
|
-
|
|
221
|
-
if (
|
|
220
|
+
const mutationIDs = request.body.mutations.map((mutation: any) => mutation.id)
|
|
221
|
+
pushRequests.push(mutationIDs)
|
|
222
|
+
if (mutationIDs[0] === 1) {
|
|
222
223
|
firstPushStarted.resolve()
|
|
223
224
|
await releaseFirstPush.promise
|
|
224
225
|
}
|
|
@@ -231,7 +232,12 @@ describe('zero-http transport', () => {
|
|
|
231
232
|
},
|
|
232
233
|
})
|
|
233
234
|
})
|
|
234
|
-
|
|
235
|
+
const transport = installHttpPullTransport({
|
|
236
|
+
origin: ORIGIN,
|
|
237
|
+
fetch,
|
|
238
|
+
lifecycle: (event) => lifecycle.push(event),
|
|
239
|
+
})
|
|
240
|
+
transports.push(transport)
|
|
235
241
|
const { messages, socket } = openRawSocketWithMessages()
|
|
236
242
|
|
|
237
243
|
await eventually(() =>
|
|
@@ -240,19 +246,34 @@ describe('zero-http transport', () => {
|
|
|
240
246
|
socket.send(JSON.stringify(['push', pushBody(1)]))
|
|
241
247
|
await firstPushStarted.promise
|
|
242
248
|
socket.send(JSON.stringify(['push', pushBody(2)]))
|
|
249
|
+
socket.send(JSON.stringify(['push', pushBody(3)]))
|
|
250
|
+
socket.send(JSON.stringify(['push', pushBody(4)]))
|
|
243
251
|
await sleep(25)
|
|
244
252
|
|
|
245
|
-
expect(
|
|
253
|
+
expect(pushRequests).toEqual([[1]])
|
|
246
254
|
releaseFirstPush.resolve()
|
|
247
|
-
await eventually(() => expect(
|
|
255
|
+
await eventually(() => expect(pushRequests).toEqual([[1], [2, 3, 4]]))
|
|
248
256
|
await eventually(() =>
|
|
249
257
|
expect(messages.filter((message) => message[0] === 'pushResponse')).toHaveLength(2),
|
|
250
258
|
)
|
|
251
259
|
expect(
|
|
252
260
|
messages
|
|
253
261
|
.filter((message) => message[0] === 'pushResponse')
|
|
254
|
-
.
|
|
255
|
-
|
|
262
|
+
.flatMap((message) =>
|
|
263
|
+
message[1].mutations.map((mutation: any) => mutation.id.id),
|
|
264
|
+
),
|
|
265
|
+
).toEqual([1, 2, 3, 4])
|
|
266
|
+
expect(
|
|
267
|
+
lifecycle
|
|
268
|
+
.filter((event) => event.type === 'push')
|
|
269
|
+
.map(({ pushFrameCount, mutationCount }) => ({
|
|
270
|
+
pushFrameCount,
|
|
271
|
+
mutationCount,
|
|
272
|
+
})),
|
|
273
|
+
).toEqual([
|
|
274
|
+
{ pushFrameCount: 1, mutationCount: 1 },
|
|
275
|
+
{ pushFrameCount: 3, mutationCount: 3 },
|
|
276
|
+
])
|
|
256
277
|
})
|
|
257
278
|
|
|
258
279
|
test('cookie discipline skips unchanged pokes, chains changed pokes, and coalesces concurrent pulls', async () => {
|
package/src/httpPullTransport.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// by intercepting its /sync/v51/connect WebSocket with a shim that translates
|
|
3
3
|
// pull responses into v51 pokes. ported from the orez zero-http spike — the
|
|
4
4
|
// wire contract (lexicographic string cookies, gotQueriesPatch poke-part
|
|
5
|
-
// ordering, FIFO push
|
|
5
|
+
// ordering, bounded FIFO push batching, updateAuth, 401→Unauthorized frame,
|
|
6
6
|
// teardown drain) is pinned by the tests in ./httpPull/ and documented in
|
|
7
7
|
// ~/orez/plans/zero-http.md. do not "simplify" any of it without re-running
|
|
8
8
|
// those tests against a stock zero client.
|
|
@@ -57,6 +57,16 @@ type PullResponse =
|
|
|
57
57
|
gotQueries?: ServerGotQueries
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
type PushBody = Record<string, unknown> & {
|
|
61
|
+
mutations: unknown[]
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
type PushBatch = {
|
|
65
|
+
body: unknown
|
|
66
|
+
frameCount: number
|
|
67
|
+
mutationCount: number
|
|
68
|
+
}
|
|
69
|
+
|
|
60
70
|
type TransportState = {
|
|
61
71
|
readonly pageID: string
|
|
62
72
|
readonly transportID: string
|
|
@@ -80,6 +90,11 @@ type TransportState = {
|
|
|
80
90
|
}
|
|
81
91
|
|
|
82
92
|
const COOKIE_WIDTH = 20
|
|
93
|
+
// the stock zero-cache pusher drains queued frames into a single request once
|
|
94
|
+
// its current request completes. keep the same backpressure relief here, but
|
|
95
|
+
// cap the number of mutations so one response cannot monopolize the HTTP
|
|
96
|
+
// transport indefinitely under a sustained producer.
|
|
97
|
+
const MAX_PUSH_BATCH_MUTATIONS = 64
|
|
83
98
|
// @rocicorp/zero 1.6 starts this deadline before its async createSocket work.
|
|
84
99
|
// the connect URL's `ts` is captured at the same attempt boundary.
|
|
85
100
|
const ZERO_CONNECT_TIMEOUT_MS = 10_000
|
|
@@ -122,7 +137,15 @@ export type HttpPullTransportOptions = {
|
|
|
122
137
|
}
|
|
123
138
|
|
|
124
139
|
export type HttpPullLifecycleEvent = {
|
|
125
|
-
type:
|
|
140
|
+
type:
|
|
141
|
+
| 'created'
|
|
142
|
+
| 'listener'
|
|
143
|
+
| 'open'
|
|
144
|
+
| 'close'
|
|
145
|
+
| 'failure'
|
|
146
|
+
| 'superseded'
|
|
147
|
+
| 'aborted'
|
|
148
|
+
| 'push'
|
|
126
149
|
pageID: string
|
|
127
150
|
transportID: string
|
|
128
151
|
zeroInstanceID: string
|
|
@@ -139,6 +162,8 @@ export type HttpPullLifecycleEvent = {
|
|
|
139
162
|
listener?: SocketEventType
|
|
140
163
|
code?: number
|
|
141
164
|
reason?: string
|
|
165
|
+
pushFrameCount?: number
|
|
166
|
+
mutationCount?: number
|
|
142
167
|
}
|
|
143
168
|
|
|
144
169
|
type HttpPullPageRegistry = {
|
|
@@ -307,7 +332,8 @@ class ZeroHttpSocket {
|
|
|
307
332
|
private sentQueryPatchLen = 0
|
|
308
333
|
private pullInFlight: Promise<void> | undefined
|
|
309
334
|
private pullAfterCurrent = false
|
|
310
|
-
private
|
|
335
|
+
private pendingPushes: unknown[] = []
|
|
336
|
+
private pushInFlight = false
|
|
311
337
|
private nextLocalCookieID: number
|
|
312
338
|
private openTimer: ReturnType<typeof setTimeout> | undefined
|
|
313
339
|
private pullTimer: ReturnType<typeof setInterval> | undefined
|
|
@@ -565,10 +591,14 @@ class ZeroHttpSocket {
|
|
|
565
591
|
this.queryVersion++
|
|
566
592
|
}
|
|
567
593
|
|
|
568
|
-
private async push(body:
|
|
594
|
+
private async push({ body, frameCount, mutationCount }: PushBatch) {
|
|
569
595
|
const response = (await this.postJSON('/push', body)) as {
|
|
570
596
|
pushResponse?: unknown
|
|
571
597
|
}
|
|
598
|
+
this.emitLifecycle('push', {
|
|
599
|
+
pushFrameCount: frameCount,
|
|
600
|
+
mutationCount,
|
|
601
|
+
})
|
|
572
602
|
// mutation RECOVERY pushes carry a PREVIOUS client's pending mutations,
|
|
573
603
|
// and the server response echoes that old clientID. zero-cache's pusher
|
|
574
604
|
// groups results by clientID and only delivers a client its OWN results
|
|
@@ -583,12 +613,50 @@ class ZeroHttpSocket {
|
|
|
583
613
|
}
|
|
584
614
|
|
|
585
615
|
private enqueuePush(body: unknown) {
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
616
|
+
this.pendingPushes.push(body)
|
|
617
|
+
if (this.pushInFlight) return
|
|
618
|
+
this.run(this.drainPushes())
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
private async drainPushes() {
|
|
622
|
+
this.pushInFlight = true
|
|
623
|
+
try {
|
|
624
|
+
while (this.readyState !== this.CLOSED && this.pendingPushes.length > 0) {
|
|
625
|
+
await this.push(this.takePushBatch())
|
|
626
|
+
}
|
|
627
|
+
} finally {
|
|
628
|
+
this.pushInFlight = false
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
private takePushBatch(): PushBatch {
|
|
633
|
+
const first = this.pendingPushes.shift()
|
|
634
|
+
const firstBody = parsePushBody(first)
|
|
635
|
+
if (!firstBody) {
|
|
636
|
+
return { body: first, frameCount: 1, mutationCount: 0 }
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
const mutations = [...firstBody.mutations]
|
|
640
|
+
let frameCount = 1
|
|
641
|
+
while (this.pendingPushes.length > 0) {
|
|
642
|
+
const nextBody = parsePushBody(this.pendingPushes[0])
|
|
643
|
+
if (
|
|
644
|
+
!nextBody ||
|
|
645
|
+
!areCompatiblePushBodies(firstBody, nextBody) ||
|
|
646
|
+
mutations.length + nextBody.mutations.length > MAX_PUSH_BATCH_MUTATIONS
|
|
647
|
+
) {
|
|
648
|
+
break
|
|
649
|
+
}
|
|
650
|
+
this.pendingPushes.shift()
|
|
651
|
+
mutations.push(...nextBody.mutations)
|
|
652
|
+
frameCount++
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
return {
|
|
656
|
+
body: frameCount === 1 ? firstBody : { ...firstBody, mutations },
|
|
657
|
+
frameCount,
|
|
658
|
+
mutationCount: mutations.length,
|
|
659
|
+
}
|
|
592
660
|
}
|
|
593
661
|
|
|
594
662
|
private requestPullAfterCurrent() {
|
|
@@ -849,7 +917,10 @@ class ZeroHttpSocket {
|
|
|
849
917
|
|
|
850
918
|
private emitLifecycle(
|
|
851
919
|
type: HttpPullLifecycleEvent['type'],
|
|
852
|
-
detail: Pick<
|
|
920
|
+
detail: Pick<
|
|
921
|
+
HttpPullLifecycleEvent,
|
|
922
|
+
'listener' | 'code' | 'reason' | 'pushFrameCount' | 'mutationCount'
|
|
923
|
+
> = {},
|
|
853
924
|
) {
|
|
854
925
|
this.state.lifecycle?.({
|
|
855
926
|
type,
|
|
@@ -872,6 +943,21 @@ class ZeroHttpSocket {
|
|
|
872
943
|
}
|
|
873
944
|
}
|
|
874
945
|
|
|
946
|
+
function parsePushBody(value: unknown): PushBody | undefined {
|
|
947
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) return
|
|
948
|
+
if (!('mutations' in value) || !Array.isArray(value.mutations)) return
|
|
949
|
+
// the runtime checks above establish the only fields batching reads.
|
|
950
|
+
return value as PushBody
|
|
951
|
+
}
|
|
952
|
+
|
|
953
|
+
function areCompatiblePushBodies(left: PushBody, right: PushBody) {
|
|
954
|
+
return (
|
|
955
|
+
left.clientGroupID === right.clientGroupID &&
|
|
956
|
+
left.pushVersion === right.pushVersion &&
|
|
957
|
+
left.schemaVersion === right.schemaVersion
|
|
958
|
+
)
|
|
959
|
+
}
|
|
960
|
+
|
|
875
961
|
function shouldIntercept(origin: URL, url: string | URL) {
|
|
876
962
|
const candidate = toHttpURL(url)
|
|
877
963
|
if (candidate.origin !== origin.origin) return false
|