on-zero 0.4.44 → 0.4.46
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/createUseQueryDirect.cjs +2 -1
- package/dist/cjs/createUseQueryDirect.native.js +2 -1
- package/dist/cjs/createUseQueryDirect.native.js.map +1 -1
- package/dist/cjs/createZeroClient.cjs +18 -21
- package/dist/cjs/createZeroClient.native.js +28 -24
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/httpPullTransport.cjs +3 -1
- package/dist/cjs/httpPullTransport.native.js +3 -2
- package/dist/cjs/httpPullTransport.native.js.map +1 -1
- package/dist/cjs/provideZero.hydration.test.cjs +87 -0
- package/dist/cjs/provideZero.hydration.test.native.js +94 -0
- package/dist/cjs/provideZero.hydration.test.native.js.map +1 -0
- package/dist/esm/createUseQueryDirect.mjs +2 -1
- package/dist/esm/createUseQueryDirect.mjs.map +1 -1
- package/dist/esm/createUseQueryDirect.native.js +2 -1
- package/dist/esm/createUseQueryDirect.native.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +18 -21
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +28 -24
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/httpPullTransport.mjs +3 -1
- package/dist/esm/httpPullTransport.mjs.map +1 -1
- package/dist/esm/httpPullTransport.native.js +3 -2
- package/dist/esm/httpPullTransport.native.js.map +1 -1
- package/dist/esm/provideZero.hydration.test.mjs +88 -0
- package/dist/esm/provideZero.hydration.test.mjs.map +1 -0
- package/dist/esm/provideZero.hydration.test.native.js +92 -0
- package/dist/esm/provideZero.hydration.test.native.js.map +1 -0
- package/package.json +2 -2
- package/src/createUseQueryDirect.tsx +14 -1
- package/src/createZeroClient.tsx +69 -36
- package/src/httpPullTransport.ts +9 -1
- package/src/provideZero.hydration.test.tsx +104 -0
- package/types/createUseQueryDirect.d.ts.map +1 -1
- package/types/createZeroClient.d.ts +2 -2
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/provideZero.hydration.test.d.ts +2 -0
- package/types/provideZero.hydration.test.d.ts.map +1 -0
|
@@ -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","installHttpPullTransport","opts","_class","previousWebSocket","globalThis","WebSocket","_opts_fetch","fetchImpl","fetch","Error","state","origin","URL","originString","trimTrailingSlash","nativeWebSocket","sockets","Set","pullIntervalMs","nextPokeID","Shim","_class2","url","protocols","shouldIntercept","ZeroHttpSocket","String","pull","Promise","all","map","socket","connections","size","uninstall","transportsByOrigin","ensureHttpPullTransport","existing","transport","ZeroHttpSocket2","_decoded_initConnectionMessage","CONNECTING","OPEN","CLOSING","CLOSED","readyState","listeners","open","message","close","error","pendingGotQueriesPatch","pullAfterCurrent","pushChain","resolve","nextLocalCookieID","connectURL","toHttpURL","_this_connectURL_searchParams_get","clientID","searchParams","_this_connectURL_searchParams_get1","clientGroupID","_this_connectURL_searchParams_get2","wsid","Date","now","baseCookie","cookie","decoded","decodeSecProtocol","authToken","queueDesiredQueries","initConnectionMessage","add","openTimer","setTimeout","addEventListener","type","listener","_this_listeners_type","removeEventListener","delete","dispatchEvent","event","emit","send","data","JSON","parse","requestPullAfterCurrent","auth","enqueuePush","emitMessage","run","answerMutationRecoveryPull","code","reason","clearTimeout","pullTimer","clearInterval","wasClean","pullInFlight","fetchPull","then","response","unchanged","emitGotQueriesPatch","emitPoke","catch","fail","finally","pullAgain","timestamp","setInterval","body","desiredQueriesPatch","Array","isArray","gotQueriesPatch","postJSON","filterMutationResultsToClient","pushResponse","nextPush","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","installHttpPullTransport","opts","_class","previousWebSocket","globalThis","WebSocket","_opts_fetch","fetchImpl","fetch","Error","state","origin","URL","originString","trimTrailingSlash","nativeWebSocket","sockets","Set","pullIntervalMs","nextPokeID","Shim","_class2","url","protocols","shouldIntercept","ZeroHttpSocket","String","pull","Promise","all","map","socket","connections","size","uninstall","transportsByOrigin","ensureHttpPullTransport","existing","transport","ZeroHttpSocket2","_this_cookie","_decoded_initConnectionMessage","CONNECTING","OPEN","CLOSING","CLOSED","readyState","listeners","open","message","close","error","pendingGotQueriesPatch","pullAfterCurrent","pushChain","resolve","connectURL","toHttpURL","_this_connectURL_searchParams_get","clientID","searchParams","_this_connectURL_searchParams_get1","clientGroupID","_this_connectURL_searchParams_get2","wsid","Date","now","baseCookie","cookie","suffixMatch","match","nextLocalCookieID","Number","decoded","decodeSecProtocol","authToken","queueDesiredQueries","initConnectionMessage","add","openTimer","setTimeout","addEventListener","type","listener","_this_listeners_type","removeEventListener","delete","dispatchEvent","event","emit","send","data","JSON","parse","requestPullAfterCurrent","auth","enqueuePush","emitMessage","run","answerMutationRecoveryPull","code","reason","clearTimeout","pullTimer","clearInterval","wasClean","pullInFlight","fetchPull","then","response","unchanged","emitGotQueriesPatch","emitPoke","catch","fail","finally","pullAgain","timestamp","setInterval","body","desiredQueriesPatch","Array","isArray","gotQueriesPatch","postJSON","filterMutationResultsToClient","pushResponse","nextPush","toWebSocketCookie","_ref","requestID","lastMutationIDChanges"],"sources":["../../src/httpPullTransport.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { createSchema, string, table } from "@rocicorp/zero";
|
|
2
|
+
import { useId } from "react";
|
|
3
|
+
import { renderToString } from "react-dom/server";
|
|
4
|
+
import { expect, test } from "vitest";
|
|
5
|
+
import { createZeroClient } from "./createZeroClient.mjs";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
const todoTable = table("todo").columns({
|
|
8
|
+
id: string(),
|
|
9
|
+
title: string()
|
|
10
|
+
}).primaryKey("id");
|
|
11
|
+
const schema = createSchema({
|
|
12
|
+
tables: [todoTable]
|
|
13
|
+
});
|
|
14
|
+
const client = createZeroClient({
|
|
15
|
+
schema,
|
|
16
|
+
models: {},
|
|
17
|
+
groupedQueries: {},
|
|
18
|
+
instanceName: "provider-shape-test"
|
|
19
|
+
});
|
|
20
|
+
function IdProbe({
|
|
21
|
+
name
|
|
22
|
+
}) {
|
|
23
|
+
const id = useId();
|
|
24
|
+
return /* @__PURE__ */jsx("span", {
|
|
25
|
+
"data-name": name,
|
|
26
|
+
"data-probe-id": id
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function Tree({
|
|
30
|
+
children,
|
|
31
|
+
disable
|
|
32
|
+
}) {
|
|
33
|
+
return /* @__PURE__ */jsxs(client.ProvideZero, {
|
|
34
|
+
authData: {},
|
|
35
|
+
userID: "anon",
|
|
36
|
+
disable,
|
|
37
|
+
children: [/* @__PURE__ */jsx(IdProbe, {
|
|
38
|
+
name: "a"
|
|
39
|
+
}), /* @__PURE__ */jsx("div", {
|
|
40
|
+
children: /* @__PURE__ */jsx(IdProbe, {
|
|
41
|
+
name: "b"
|
|
42
|
+
})
|
|
43
|
+
}), /* @__PURE__ */jsx("section", {
|
|
44
|
+
children: /* @__PURE__ */jsx("p", {
|
|
45
|
+
children: /* @__PURE__ */jsx(IdProbe, {
|
|
46
|
+
name: "c"
|
|
47
|
+
})
|
|
48
|
+
})
|
|
49
|
+
}), children]
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
function readIds(html) {
|
|
53
|
+
const out = {};
|
|
54
|
+
const re = /data-name="([^"]+)" data-probe-id="([^"]+)"/g;
|
|
55
|
+
let m;
|
|
56
|
+
while (m = re.exec(html)) out[m[1]] = m[2];
|
|
57
|
+
return out;
|
|
58
|
+
}
|
|
59
|
+
test("useId is stable across active vs disabled ProvideZero renders", () => {
|
|
60
|
+
const active = readIds(renderToString(/* @__PURE__ */jsx(Tree, {})));
|
|
61
|
+
const disabled = readIds(renderToString(/* @__PURE__ */jsx(Tree, {
|
|
62
|
+
disable: true
|
|
63
|
+
})));
|
|
64
|
+
expect(Object.keys(active).length).toBe(3);
|
|
65
|
+
expect(disabled).toEqual(active);
|
|
66
|
+
});
|
|
67
|
+
test("rendered DOM structure matches between active and disabled (probe ids stripped)", () => {
|
|
68
|
+
const strip = s => s.replace(/ data-probe-id="[^"]+"/g, "");
|
|
69
|
+
const active = strip(renderToString(/* @__PURE__ */jsx(Tree, {})));
|
|
70
|
+
const disabled = strip(renderToString(/* @__PURE__ */jsx(Tree, {
|
|
71
|
+
disable: true
|
|
72
|
+
})));
|
|
73
|
+
expect(disabled).toBe(active);
|
|
74
|
+
});
|
|
75
|
+
test("client-side hook count is stable across disable=true \u2194 false", () => {
|
|
76
|
+
const r1 = readIds(renderToString(/* @__PURE__ */jsx(Tree, {
|
|
77
|
+
disable: true
|
|
78
|
+
})));
|
|
79
|
+
const r2 = readIds(renderToString(/* @__PURE__ */jsx(Tree, {})));
|
|
80
|
+
const r3 = readIds(renderToString(/* @__PURE__ */jsx(Tree, {
|
|
81
|
+
disable: true
|
|
82
|
+
})));
|
|
83
|
+
const r4 = readIds(renderToString(/* @__PURE__ */jsx(Tree, {})));
|
|
84
|
+
expect(r2).toEqual(r1);
|
|
85
|
+
expect(r3).toEqual(r1);
|
|
86
|
+
expect(r4).toEqual(r1);
|
|
87
|
+
});
|
|
88
|
+
//# sourceMappingURL=provideZero.hydration.test.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createSchema","string","table","useId","renderToString","expect","test","createZeroClient","jsx","jsxs","todoTable","columns","id","title","primaryKey","schema","tables","client","models","groupedQueries","instanceName","IdProbe","name","Tree","children","disable","ProvideZero","authData","userID","readIds","html","out","re","m","exec","active","disabled","Object","keys","length","toBe","toEqual","strip","s","replace","r1","r2","r3","r4"],"sources":["../../src/provideZero.hydration.test.tsx"],"sourcesContent":[null],"mappings":"AAkBA,SAASA,YAAA,EAAcC,MAAA,EAAQC,KAAA,QAAa;AAC5C,SAASC,KAAA,QAA6B;AACtC,SAASC,cAAA,QAAsB;AAC/B,SAASC,MAAA,EAAQC,IAAA,QAAY;AAE7B,SAASC,gBAAA,QAAwB;AAcxB,SAAAC,GAAA,EAWLC,IAAA,QAXK;AAZT,MAAMC,SAAA,GAAYR,KAAA,CAAM,MAAM,EAAES,OAAA,CAAQ;EAAEC,EAAA,EAAIX,MAAA,CAAO;EAAGY,KAAA,EAAOZ,MAAA,CAAO;AAAE,CAAC,EAAEa,UAAA,CAAW,IAAI;AAC1F,MAAMC,MAAA,GAASf,YAAA,CAAa;EAAEgB,MAAA,EAAQ,CAACN,SAAS;AAAE,CAAC;AAEnD,MAAMO,MAAA,GAASV,gBAAA,CAAiB;EAC9BQ,MAAA;EACAG,MAAA,EAAQ,CAAC;EACTC,cAAA,EAAgB,CAAC;EACjBC,YAAA,EAAc;AAChB,CAAC;AAED,SAASC,QAAQ;EAAEC;AAAK,GAAqB;EAC3C,MAAMV,EAAA,GAAKT,KAAA,CAAM;EACjB,OAAO,eAAAK,GAAA,CAAC;IAAK,aAAWc,IAAA;IAAM,iBAAeV;EAAA,CAAI;AACnD;AAEA,SAASW,KAAK;EACZC,QAAA;EACAC;AACF,GAGG;EACD,OACE,eAAAhB,IAAA,CAACQ,MAAA,CAAOS,WAAA,EAAP;IAAmBC,QAAA,EAAU,CAAC;IAAGC,MAAA,EAAO;IAAOH,OAAA;IAC9CD,QAAA,kBAAAhB,GAAA,CAACa,OAAA;MAAQC,IAAA,EAAK;IAAA,CAAI,GAClB,eAAAd,GAAA,CAAC;MACCgB,QAAA,iBAAAhB,GAAA,CAACa,OAAA;QAAQC,IAAA,EAAK;MAAA,CAAI;IAAA,CACpB,GACA,eAAAd,GAAA,CAAC;MACCgB,QAAA,iBAAAhB,GAAA,CAAC;QACCgB,QAAA,iBAAAhB,GAAA,CAACa,OAAA;UAAQC,IAAA,EAAK;QAAA,CAAI;MAAA,CACpB;IAAA,CACF,GACCE,QAAA;EAAA,CACH;AAEJ;AAEA,SAASK,QAAQC,IAAA,EAAsC;EACrD,MAAMC,GAAA,GAA8B,CAAC;EACrC,MAAMC,EAAA,GAAK;EACX,IAAIC,CAAA;EACJ,OAAQA,CAAA,GAAID,EAAA,CAAGE,IAAA,CAAKJ,IAAI,GAAIC,GAAA,CAAIE,CAAA,CAAE,CAAC,CAAE,IAAIA,CAAA,CAAE,CAAC;EAC5C,OAAOF,GAAA;AACT;AAEAzB,IAAA,CAAK,iEAAiE,MAAM;EAC1E,MAAM6B,MAAA,GAASN,OAAA,CAAQzB,cAAA,CAAe,eAAAI,GAAA,CAACe,IAAA,IAAK,CAAE,CAAC;EAC/C,MAAMa,QAAA,GAAWP,OAAA,CAAQzB,cAAA,CAAe,eAAAI,GAAA,CAACe,IAAA;IAAKE,OAAA,EAAO;EAAA,CAAC,CAAE,CAAC;EACzDpB,MAAA,CAAOgC,MAAA,CAAOC,IAAA,CAAKH,MAAM,EAAEI,MAAM,EAAEC,IAAA,CAAK,CAAC;EACzCnC,MAAA,CAAO+B,QAAQ,EAAEK,OAAA,CAAQN,MAAM;AACjC,CAAC;AAED7B,IAAA,CAAK,mFAAmF,MAAM;EAC5F,MAAMoC,KAAA,GAASC,CAAA,IAAcA,CAAA,CAAEC,OAAA,CAAQ,2BAA2B,EAAE;EACpE,MAAMT,MAAA,GAASO,KAAA,CAAMtC,cAAA,CAAe,eAAAI,GAAA,CAACe,IAAA,IAAK,CAAE,CAAC;EAC7C,MAAMa,QAAA,GAAWM,KAAA,CAAMtC,cAAA,CAAe,eAAAI,GAAA,CAACe,IAAA;IAAKE,OAAA,EAAO;EAAA,CAAC,CAAE,CAAC;EACvDpB,MAAA,CAAO+B,QAAQ,EAAEI,IAAA,CAAKL,MAAM;AAC9B,CAAC;AAUD7B,IAAA,CAAK,qEAAgE,MAAM;EAGzE,MAAMuC,EAAA,GAAKhB,OAAA,CAAQzB,cAAA,CAAe,eAAAI,GAAA,CAACe,IAAA;IAAKE,OAAA,EAAO;EAAA,CAAC,CAAE,CAAC;EACnD,MAAMqB,EAAA,GAAKjB,OAAA,CAAQzB,cAAA,CAAe,eAAAI,GAAA,CAACe,IAAA,IAAK,CAAE,CAAC;EAC3C,MAAMwB,EAAA,GAAKlB,OAAA,CAAQzB,cAAA,CAAe,eAAAI,GAAA,CAACe,IAAA;IAAKE,OAAA,EAAO;EAAA,CAAC,CAAE,CAAC;EACnD,MAAMuB,EAAA,GAAKnB,OAAA,CAAQzB,cAAA,CAAe,eAAAI,GAAA,CAACe,IAAA,IAAK,CAAE,CAAC;EAC3ClB,MAAA,CAAOyC,EAAE,EAAEL,OAAA,CAAQI,EAAE;EACrBxC,MAAA,CAAO0C,EAAE,EAAEN,OAAA,CAAQI,EAAE;EACrBxC,MAAA,CAAO2C,EAAE,EAAEP,OAAA,CAAQI,EAAE;AACvB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { createSchema, string, table } from "@rocicorp/zero";
|
|
3
|
+
import { useId } from "react";
|
|
4
|
+
import { renderToString } from "react-dom/server";
|
|
5
|
+
import { expect, test } from "vitest";
|
|
6
|
+
import { createZeroClient } from "./createZeroClient.native.js";
|
|
7
|
+
var todoTable = table("todo").columns({
|
|
8
|
+
id: string(),
|
|
9
|
+
title: string()
|
|
10
|
+
}).primaryKey("id");
|
|
11
|
+
var schema = createSchema({
|
|
12
|
+
tables: [todoTable]
|
|
13
|
+
});
|
|
14
|
+
var client = createZeroClient({
|
|
15
|
+
schema,
|
|
16
|
+
models: {},
|
|
17
|
+
groupedQueries: {},
|
|
18
|
+
instanceName: "provider-shape-test"
|
|
19
|
+
});
|
|
20
|
+
function IdProbe(param) {
|
|
21
|
+
var {
|
|
22
|
+
name
|
|
23
|
+
} = param;
|
|
24
|
+
var id = useId();
|
|
25
|
+
return /* @__PURE__ */_jsx("span", {
|
|
26
|
+
"data-name": name,
|
|
27
|
+
"data-probe-id": id
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function Tree(param) {
|
|
31
|
+
var {
|
|
32
|
+
children,
|
|
33
|
+
disable
|
|
34
|
+
} = param;
|
|
35
|
+
return /* @__PURE__ */_jsxs(client.ProvideZero, {
|
|
36
|
+
authData: {},
|
|
37
|
+
userID: "anon",
|
|
38
|
+
disable,
|
|
39
|
+
children: [/* @__PURE__ */_jsx(IdProbe, {
|
|
40
|
+
name: "a"
|
|
41
|
+
}), /* @__PURE__ */_jsx("div", {
|
|
42
|
+
children: /* @__PURE__ */_jsx(IdProbe, {
|
|
43
|
+
name: "b"
|
|
44
|
+
})
|
|
45
|
+
}), /* @__PURE__ */_jsx("section", {
|
|
46
|
+
children: /* @__PURE__ */_jsx("p", {
|
|
47
|
+
children: /* @__PURE__ */_jsx(IdProbe, {
|
|
48
|
+
name: "c"
|
|
49
|
+
})
|
|
50
|
+
})
|
|
51
|
+
}), children]
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function readIds(html) {
|
|
55
|
+
var out = {};
|
|
56
|
+
var re = /data-name="([^"]+)" data-probe-id="([^"]+)"/g;
|
|
57
|
+
var m;
|
|
58
|
+
while (m = re.exec(html)) out[m[1]] = m[2];
|
|
59
|
+
return out;
|
|
60
|
+
}
|
|
61
|
+
test("useId is stable across active vs disabled ProvideZero renders", function () {
|
|
62
|
+
var active = readIds(renderToString(/* @__PURE__ */_jsx(Tree, {})));
|
|
63
|
+
var disabled = readIds(renderToString(/* @__PURE__ */_jsx(Tree, {
|
|
64
|
+
disable: true
|
|
65
|
+
})));
|
|
66
|
+
expect(Object.keys(active).length).toBe(3);
|
|
67
|
+
expect(disabled).toEqual(active);
|
|
68
|
+
});
|
|
69
|
+
test("rendered DOM structure matches between active and disabled (probe ids stripped)", function () {
|
|
70
|
+
var strip = function (s) {
|
|
71
|
+
return s.replace(/ data-probe-id="[^"]+"/g, "");
|
|
72
|
+
};
|
|
73
|
+
var active = strip(renderToString(/* @__PURE__ */_jsx(Tree, {})));
|
|
74
|
+
var disabled = strip(renderToString(/* @__PURE__ */_jsx(Tree, {
|
|
75
|
+
disable: true
|
|
76
|
+
})));
|
|
77
|
+
expect(disabled).toBe(active);
|
|
78
|
+
});
|
|
79
|
+
test("client-side hook count is stable across disable=true \u2194 false", function () {
|
|
80
|
+
var r1 = readIds(renderToString(/* @__PURE__ */_jsx(Tree, {
|
|
81
|
+
disable: true
|
|
82
|
+
})));
|
|
83
|
+
var r2 = readIds(renderToString(/* @__PURE__ */_jsx(Tree, {})));
|
|
84
|
+
var r3 = readIds(renderToString(/* @__PURE__ */_jsx(Tree, {
|
|
85
|
+
disable: true
|
|
86
|
+
})));
|
|
87
|
+
var r4 = readIds(renderToString(/* @__PURE__ */_jsx(Tree, {})));
|
|
88
|
+
expect(r2).toEqual(r1);
|
|
89
|
+
expect(r3).toEqual(r1);
|
|
90
|
+
expect(r4).toEqual(r1);
|
|
91
|
+
});
|
|
92
|
+
//# sourceMappingURL=provideZero.hydration.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","createSchema","string","table","useId","renderToString","expect","test","createZeroClient","todoTable","columns","id","title","primaryKey","schema","tables","client","models","groupedQueries","instanceName","IdProbe","param","name","Tree","children","disable","ProvideZero","authData","userID","readIds","html","out"],"sources":["../../src/provideZero.hydration.test.tsx"],"sourcesContent":[null],"mappings":"AAkBA,SAASA,GAAA,IAAAC,IAAA,EAAAC,IAAc,IAAAC,KAAQ,2BAAa;AAC5C,SAASC,YAAA,EAA6BC,MAAA,EAAAC,KAAA;AACtC,SAASC,KAAA;AACT,SAASC,cAAQ,QAAY;AAE7B,SAASC,MAAA,EAAAC,IAAA,gBAAwB;AAcxB,SAAAC,gBAWL,QAXK;AAZT,IAAAC,SAAM,GAAAN,KAAY,OAAM,EAAMO,OAAE;EAChCC,EAAA,EAAMT,MAAA;EAENU,KAAM,EAAAV,MAAS;AAAiB,EAC9B,CAAAW,UAAA;AAAA,IACAC,MAAQ,GAACb,YAAA;EACTc,MAAA,GACAN,SAAA;AAGF;AACE,IAAAO,MAAM,GAAKR,gBAAM;EACjBM,MAAA;EACFG,MAAA;EAEAC,cAAc;EACZC,YAAA;AAAA,EACA;AACF,SAGGC,QAAAC,KAAA;EACD;IAAAC;EACE,IAAAD,KAAA;EACE,IAAAV,EAAA,GAAAP,KAAA;EAAkB,OAClB,eAACN,IAAA,OACC;IAEF,aAAAwB,IAAA;IAKC,iBAAAX;EAAA;AAGP;AAEA,SAASY,KAAAF,KAAQ;EACf;IAAMG,QAA+B;IAAAC;EAAA,IAAAJ,KAAA;EACrC,OAAM,eAAKrB,KAAA,CAAAgB,MAAA,CAAAU,WAAA;IACXC,QAAI;IACJC,MAAQ,QAAO;IACfH,OAAO;IACTD,QAAA,GAEK,eAAA1B,IAAA,CAAAsB,OAAA;MACGE,IAAA;IACN,EAAM,EACN,eAAmBxB,IAAA,CAAM,KAAE;MAC3B0B,QAAO,EAAQ,eAAgB1B,IAAA,CAAAsB,OAAA;QAChCE,IAAA;MAEI;IACH,EAAM,EACN,eAAexB,IAAM,YAAe;MAC9B0B,QAAA,iBAAiB1B,IAAA,IAAe;QAC/B0B,QAAQ,EAAE,eAAW1B,IAAA,CAAAsB,OAAA;UAC7BE,IAAA;QAUI;MAGG;IACN,EAAM,EACNE,QAAW;EAEX;AACA;AACA,SAAOK,OAAIA,CAAAC,IAAQ,EAAE;EACtB,IAAAC,GAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "on-zero",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.46",
|
|
4
4
|
"description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
}
|
|
84
84
|
},
|
|
85
85
|
"dependencies": {
|
|
86
|
-
"@take-out/helpers": "
|
|
86
|
+
"@take-out/helpers": "workspace:*",
|
|
87
87
|
"chokidar": "^4.0.3",
|
|
88
88
|
"citty": "^0.1.6",
|
|
89
89
|
"valibot": "^1.1.0"
|
|
@@ -308,7 +308,20 @@ export function createUseQueryDirect<Schema extends ZeroSchema>({
|
|
|
308
308
|
const view = useMemo((): DirectView | null => {
|
|
309
309
|
const zero = getZero()
|
|
310
310
|
if (!zero) return null
|
|
311
|
-
|
|
311
|
+
// when ProvideZero renders with disable=true (or pre-instance), the
|
|
312
|
+
// ZeroContext.value is the inert stub which has no `.materialize` —
|
|
313
|
+
// calling it throws "this[#zero].materialize is not a function". detect
|
|
314
|
+
// the stub and short-circuit to the disabled snapshot via enabled=false
|
|
315
|
+
// (mirroring the wrapper-useQuery path at createUseQuery.tsx).
|
|
316
|
+
// DisabledContext is not a reliable signal here: it flips 'empty' →
|
|
317
|
+
// false within one render once the active instance is created, which
|
|
318
|
+
// would re-key the useMemo and re-materialize the view — that breaks
|
|
319
|
+
// the "subscribers share one materialized view" invariant.
|
|
320
|
+
const effectiveEnabled =
|
|
321
|
+
typeof (zero as { materialize?: unknown }).materialize === 'function'
|
|
322
|
+
? enabled
|
|
323
|
+
: false
|
|
324
|
+
return directViewStore.getView(zero, queryRequest, effectiveEnabled, ttl)
|
|
312
325
|
// version re-materializes on a new zero
|
|
313
326
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
314
327
|
}, [queryRequest, enabled, ttl, version])
|
package/src/createZeroClient.tsx
CHANGED
|
@@ -425,22 +425,54 @@ export function createZeroClientInternal<
|
|
|
425
425
|
beforeReload?: () => Promise<void>
|
|
426
426
|
}
|
|
427
427
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
428
|
+
// ProvideZero is ONE component (no inner ProvideZeroActive wrapper). a
|
|
429
|
+
// single component shape on both SSR and client means React's useId() —
|
|
430
|
+
// which keys on the consuming fiber's tree position — produces identical
|
|
431
|
+
// ids on both sides for every descendant. an extra wrapper fiber (the
|
|
432
|
+
// previous shape: SSR returned the 3 providers directly while the client
|
|
433
|
+
// wrapped them in a ProvideZeroActive intermediate) shifted every
|
|
434
|
+
// descendant's tree id by a step and broke hydration on every useId
|
|
435
|
+
// consumer (SVG ids, form ids, etc).
|
|
436
|
+
//
|
|
437
|
+
// SSR path: EARLY-RETURN before any hook call. on-zero's hooks
|
|
438
|
+
// (useRef/useState/useEffect) call through a React copy whose hook
|
|
439
|
+
// dispatcher is null on the SSG runtime (because react isn't deduplicated
|
|
440
|
+
// across the build's bundle for on-zero's slot), so any hook call here
|
|
441
|
+
// throws "Cannot read properties of null (reading 'useRef')". the SSR
|
|
442
|
+
// shell renders the same 3-provider 3-child shape as the client.
|
|
443
|
+
//
|
|
444
|
+
// CLIENT path: hooks ALWAYS run, regardless of `disable`. only the
|
|
445
|
+
// returned JSX changes when `disable` flips — so a caller can toggle
|
|
446
|
+
// active ↔ inert at runtime without violating rules-of-hooks (no
|
|
447
|
+
// remount, no key-rotation needed). this is the structural guarantee
|
|
448
|
+
// consumers like soot's ProjectZeroGate depend on to flip from
|
|
449
|
+
// disable=true (anon-ssr hydration first render) to disable=false
|
|
450
|
+
// (active project mounted) without re-parenting children — children
|
|
451
|
+
// stay at the same fiber position whether the wrapper is inert or
|
|
452
|
+
// active.
|
|
453
|
+
const ProvideZero = ({
|
|
454
|
+
children,
|
|
455
|
+
authData: authDataIn,
|
|
456
|
+
transport,
|
|
457
|
+
pullIntervalMs = 30_000,
|
|
458
|
+
beforeReload,
|
|
459
|
+
disable,
|
|
460
|
+
...props
|
|
461
|
+
}: ProvideZeroProps) => {
|
|
462
|
+
if (typeof window === 'undefined') {
|
|
440
463
|
return (
|
|
441
|
-
<AuthDataContext.Provider value={(
|
|
464
|
+
<AuthDataContext.Provider value={(authDataIn ?? {}) as AuthData}>
|
|
442
465
|
<DisabledContext.Provider value="empty">
|
|
443
466
|
<ZeroContext.Provider value={DISABLED_ZERO_STUB as any}>
|
|
467
|
+
{/* match the active path's 3-child layout EXACTLY so descendant
|
|
468
|
+
useId() lands at the same fiber index in both branches. the
|
|
469
|
+
two leading nulls reserve the SetZeroInstance + ConnectionMonitor
|
|
470
|
+
slots; the active path puts those components there only once
|
|
471
|
+
an instance exists. without these placeholder slots, children
|
|
472
|
+
would sit at child index 0 here but index 2 in the active
|
|
473
|
+
path, shifting every descendant useId. */}
|
|
474
|
+
{null}
|
|
475
|
+
{null}
|
|
444
476
|
{children}
|
|
445
477
|
</ZeroContext.Provider>
|
|
446
478
|
</DisabledContext.Provider>
|
|
@@ -448,17 +480,6 @@ export function createZeroClientInternal<
|
|
|
448
480
|
)
|
|
449
481
|
}
|
|
450
482
|
|
|
451
|
-
return <ProvideZeroActive {...props}>{children}</ProvideZeroActive>
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
const ProvideZeroActive = ({
|
|
455
|
-
children,
|
|
456
|
-
authData: authDataIn,
|
|
457
|
-
transport,
|
|
458
|
-
pullIntervalMs = 30_000,
|
|
459
|
-
beforeReload,
|
|
460
|
-
...props
|
|
461
|
-
}: Omit<ProvideZeroProps, 'disable'>) => {
|
|
462
483
|
// resolve the auth token first: a real logout (token gone) must clear
|
|
463
484
|
// authData so client mutators don't keep running as the old user, while a
|
|
464
485
|
// transient authData blip with the token still present (session refresh, tab
|
|
@@ -518,6 +539,14 @@ export function createZeroClientInternal<
|
|
|
518
539
|
// boot orchestration observes.
|
|
519
540
|
const [instance, setInstance] = useState<ZeroInstance | undefined>()
|
|
520
541
|
useEffect(() => {
|
|
542
|
+
// disable=true: do not create / rotate any instance. consumers can
|
|
543
|
+
// toggle disable on/off mid-mount without violating rules-of-hooks
|
|
544
|
+
// because every hook still runs every render — only the effect body
|
|
545
|
+
// (and the returned JSX, below) varies with disable.
|
|
546
|
+
if (disable) {
|
|
547
|
+
if (instance !== undefined) setInstance(undefined)
|
|
548
|
+
return
|
|
549
|
+
}
|
|
521
550
|
let cached = cachedZero
|
|
522
551
|
if (cached?.key !== instanceKey) {
|
|
523
552
|
cached?.instance.close()
|
|
@@ -571,9 +600,10 @@ export function createZeroClientInternal<
|
|
|
571
600
|
}
|
|
572
601
|
setInstance(cached.instance)
|
|
573
602
|
// identity is fully captured by instanceKey; function props are bound
|
|
574
|
-
// at construction by design.
|
|
603
|
+
// at construction by design. `disable` is a dep so a true → false
|
|
604
|
+
// transition runs the effect and mints the instance.
|
|
575
605
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
576
|
-
}, [instanceKey])
|
|
606
|
+
}, [instanceKey, disable])
|
|
577
607
|
|
|
578
608
|
// a changed token on the same identity refreshes auth in place — zero
|
|
579
609
|
// sends an auth update over the live connection instead of reconnecting
|
|
@@ -593,18 +623,21 @@ export function createZeroClientInternal<
|
|
|
593
623
|
}
|
|
594
624
|
}, [instance, auth])
|
|
595
625
|
|
|
596
|
-
// Always render the same shell shape, with or without an instance
|
|
597
|
-
//
|
|
598
|
-
//
|
|
599
|
-
//
|
|
600
|
-
//
|
|
601
|
-
//
|
|
626
|
+
// Always render the same shell shape, with or without an instance, and
|
|
627
|
+
// whether disable is true or false. While the instance is being
|
|
628
|
+
// constructed (first effect tick) — OR while disable=true — we hand
|
|
629
|
+
// descendants the stub Zero plus DisabledContext='empty' so
|
|
630
|
+
// useZero/useQuery short-circuit instead of throwing. SetZeroInstance +
|
|
631
|
+
// ConnectionMonitor only mount once an active instance exists, as
|
|
632
|
+
// siblings of children — they NEVER wrap children, so toggling them
|
|
633
|
+
// never re-parents.
|
|
634
|
+
const liveInstance = disable ? undefined : instance
|
|
602
635
|
return (
|
|
603
636
|
<AuthDataContext.Provider value={authData}>
|
|
604
|
-
<DisabledContext.Provider value={
|
|
605
|
-
<ZeroContext.Provider value={
|
|
606
|
-
{
|
|
607
|
-
{
|
|
637
|
+
<DisabledContext.Provider value={liveInstance ? false : 'empty'}>
|
|
638
|
+
<ZeroContext.Provider value={liveInstance ?? (DISABLED_ZERO_STUB as any)}>
|
|
639
|
+
{liveInstance ? <SetZeroInstance /> : null}
|
|
640
|
+
{liveInstance ? <ConnectionMonitor zeroEvents={zeroEvents} /> : null}
|
|
608
641
|
{children}
|
|
609
642
|
</ZeroContext.Provider>
|
|
610
643
|
</DisabledContext.Provider>
|
package/src/httpPullTransport.ts
CHANGED
|
@@ -160,7 +160,7 @@ class ZeroHttpSocket {
|
|
|
160
160
|
private pullInFlight: Promise<void> | undefined
|
|
161
161
|
private pullAfterCurrent = false
|
|
162
162
|
private pushChain: Promise<void> = Promise.resolve()
|
|
163
|
-
private nextLocalCookieID
|
|
163
|
+
private nextLocalCookieID: number
|
|
164
164
|
private openTimer: ReturnType<typeof setTimeout> | undefined
|
|
165
165
|
private pullTimer: ReturnType<typeof setInterval> | undefined
|
|
166
166
|
|
|
@@ -176,6 +176,14 @@ class ZeroHttpSocket {
|
|
|
176
176
|
this.wsid = this.connectURL.searchParams.get('wsid') ?? `zero-http-${Date.now()}`
|
|
177
177
|
const baseCookie = this.connectURL.searchParams.get('baseCookie')
|
|
178
178
|
this.cookie = baseCookie ? baseCookie : null
|
|
179
|
+
// the local cookie ID is encoded into the suffix of any cookie we
|
|
180
|
+
// already advanced past (toLocalWebSocketCookie). reconnects rehydrate
|
|
181
|
+
// this.cookie from the URL baseCookie param replicache persisted, so we
|
|
182
|
+
// must resume the counter from its suffix — otherwise the first poke on
|
|
183
|
+
// the new socket re-emits an identical suffix and replicache trips
|
|
184
|
+
// "cookie did not change, but patch is not empty" and drops the patch.
|
|
185
|
+
const suffixMatch = this.cookie?.match(/#(\d+)$/)
|
|
186
|
+
this.nextLocalCookieID = suffixMatch ? Number(suffixMatch[1]) : 0
|
|
179
187
|
|
|
180
188
|
const decoded = decodeSecProtocol(protocols)
|
|
181
189
|
this.authToken = decoded.authToken
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// @vitest-environment jsdom
|
|
2
|
+
//
|
|
3
|
+
// hydration-fiber-shape integration test: ProvideZero must produce the SAME
|
|
4
|
+
// fiber tree shape on SSR and on the client, so React's useId() (which keys
|
|
5
|
+
// on the consuming fiber's tree position) returns identical ids on both
|
|
6
|
+
// sides and hydration is clean.
|
|
7
|
+
//
|
|
8
|
+
// regression: before this guarantee was enforced, ProvideZero returned the
|
|
9
|
+
// 3 context providers DIRECTLY on SSR but wrapped them in ProvideZeroActive
|
|
10
|
+
// on the client. that extra wrapper fiber shifted every descendant's tree
|
|
11
|
+
// id by a step → hydration mismatch on every useId consumer (SVG ids,
|
|
12
|
+
// form-input ids, etc).
|
|
13
|
+
//
|
|
14
|
+
// fix: ProvideZero is now ONE component with an early-return for SSG/disable
|
|
15
|
+
// before any hook call. both branches render the SAME 3-provider shell with
|
|
16
|
+
// the SAME number of child slots inside ZeroContext.Provider — child index
|
|
17
|
+
// stability is what keeps useId stable.
|
|
18
|
+
|
|
19
|
+
import { createSchema, string, table } from '@rocicorp/zero'
|
|
20
|
+
import { useId, type ReactNode } from 'react'
|
|
21
|
+
import { renderToString } from 'react-dom/server'
|
|
22
|
+
import { expect, test } from 'vitest'
|
|
23
|
+
|
|
24
|
+
import { createZeroClient } from './createZeroClient'
|
|
25
|
+
|
|
26
|
+
const todoTable = table('todo').columns({ id: string(), title: string() }).primaryKey('id')
|
|
27
|
+
const schema = createSchema({ tables: [todoTable] })
|
|
28
|
+
|
|
29
|
+
const client = createZeroClient({
|
|
30
|
+
schema,
|
|
31
|
+
models: {},
|
|
32
|
+
groupedQueries: {},
|
|
33
|
+
instanceName: 'provider-shape-test',
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
function IdProbe({ name }: { name: string }) {
|
|
37
|
+
const id = useId()
|
|
38
|
+
return <span data-name={name} data-probe-id={id} />
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function Tree({
|
|
42
|
+
children,
|
|
43
|
+
disable,
|
|
44
|
+
}: {
|
|
45
|
+
children?: ReactNode
|
|
46
|
+
disable?: boolean
|
|
47
|
+
}) {
|
|
48
|
+
return (
|
|
49
|
+
<client.ProvideZero authData={{}} userID="anon" disable={disable}>
|
|
50
|
+
<IdProbe name="a" />
|
|
51
|
+
<div>
|
|
52
|
+
<IdProbe name="b" />
|
|
53
|
+
</div>
|
|
54
|
+
<section>
|
|
55
|
+
<p>
|
|
56
|
+
<IdProbe name="c" />
|
|
57
|
+
</p>
|
|
58
|
+
</section>
|
|
59
|
+
{children}
|
|
60
|
+
</client.ProvideZero>
|
|
61
|
+
)
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function readIds(html: string): Record<string, string> {
|
|
65
|
+
const out: Record<string, string> = {}
|
|
66
|
+
const re = /data-name="([^"]+)" data-probe-id="([^"]+)"/g
|
|
67
|
+
let m: RegExpExecArray | null
|
|
68
|
+
while ((m = re.exec(html))) out[m[1]!] = m[2]!
|
|
69
|
+
return out
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
test('useId is stable across active vs disabled ProvideZero renders', () => {
|
|
73
|
+
const active = readIds(renderToString(<Tree />))
|
|
74
|
+
const disabled = readIds(renderToString(<Tree disable />))
|
|
75
|
+
expect(Object.keys(active).length).toBe(3)
|
|
76
|
+
expect(disabled).toEqual(active)
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
test('rendered DOM structure matches between active and disabled (probe ids stripped)', () => {
|
|
80
|
+
const strip = (s: string) => s.replace(/ data-probe-id="[^"]+"/g, '')
|
|
81
|
+
const active = strip(renderToString(<Tree />))
|
|
82
|
+
const disabled = strip(renderToString(<Tree disable />))
|
|
83
|
+
expect(disabled).toBe(active)
|
|
84
|
+
})
|
|
85
|
+
|
|
86
|
+
// regression for the soot ProjectZeroGate residual re-parenting: the consumer
|
|
87
|
+
// pattern toggles disable=true → disable=false in place once user.id resolves
|
|
88
|
+
// from the SSR placeholder ('anon-ssr') to the minted client anon id. that
|
|
89
|
+
// MUST NOT change the hook-call count of ProvideZero (would violate
|
|
90
|
+
// rules-of-hooks) or shift descendant useId (would re-fire hydration
|
|
91
|
+
// mismatches). every render of ProvideZero on the client runs the SAME
|
|
92
|
+
// hook set; only the returned JSX and the instance-creation effect body
|
|
93
|
+
// vary with disable.
|
|
94
|
+
test('client-side hook count is stable across disable=true ↔ false', () => {
|
|
95
|
+
// proxy: render both states twice and confirm useId values are identical
|
|
96
|
+
// each time (a hook-count flip would mis-allocate the useId slots).
|
|
97
|
+
const r1 = readIds(renderToString(<Tree disable />))
|
|
98
|
+
const r2 = readIds(renderToString(<Tree />))
|
|
99
|
+
const r3 = readIds(renderToString(<Tree disable />))
|
|
100
|
+
const r4 = readIds(renderToString(<Tree />))
|
|
101
|
+
expect(r2).toEqual(r1)
|
|
102
|
+
expect(r3).toEqual(r1)
|
|
103
|
+
expect(r4).toEqual(r1)
|
|
104
|
+
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createUseQueryDirect.d.ts","sourceRoot":"","sources":["../src/createUseQueryDirect.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAqD,KAAK,OAAO,EAAE,MAAM,OAAO,CAAA;AAEvF,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EACV,gBAAgB,EAEhB,MAAM,IAAI,UAAU,EACrB,MAAM,gBAAgB,CAAA;AAkBvB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,CACT,KAAK,EAAE,GAAG,EACV,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,GACtB;QACD,WAAW,CACT,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,gBAAgB,KAAK,IAAI,GACpE,IAAI,CAAA;QACP,OAAO,IAAI,IAAI,CAAA;QACf,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAA;KAC1B,CAAA;CACF,CAAA;AAED,MAAM,MAAM,oBAAoB,CAAC,MAAM,SAAS,UAAU,IAAI,CAAC,KAAK,EAAE;IACpE,eAAe,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC1C,aAAa,EAAE,gBAAgB,CAAA;IAC/B,OAAO,EAAE,MAAM,kBAAkB,GAAG,IAAI,CAAA;IACxC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CAC7B,KAAK,YAAY,CAAC,MAAM,CAAC,CAAA;AAG1B,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,KAAK,GAAG,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AA2LD,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,UAAU,EAAE,EAC9D,eAAe,EACf,aAAa,EACb,OAAO,EACP,WAAW,GACZ,EAAE,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"createUseQueryDirect.d.ts","sourceRoot":"","sources":["../src/createUseQueryDirect.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAqD,KAAK,OAAO,EAAE,MAAM,OAAO,CAAA;AAEvF,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EACV,gBAAgB,EAEhB,MAAM,IAAI,UAAU,EACrB,MAAM,gBAAgB,CAAA;AAkBvB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,CACT,KAAK,EAAE,GAAG,EACV,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,GACtB;QACD,WAAW,CACT,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,gBAAgB,KAAK,IAAI,GACpE,IAAI,CAAA;QACP,OAAO,IAAI,IAAI,CAAA;QACf,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAA;KAC1B,CAAA;CACF,CAAA;AAED,MAAM,MAAM,oBAAoB,CAAC,MAAM,SAAS,UAAU,IAAI,CAAC,KAAK,EAAE;IACpE,eAAe,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC1C,aAAa,EAAE,gBAAgB,CAAA;IAC/B,OAAO,EAAE,MAAM,kBAAkB,GAAG,IAAI,CAAA;IACxC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CAC7B,KAAK,YAAY,CAAC,MAAM,CAAC,CAAA;AAG1B,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,KAAK,GAAG,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AA2LD,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,UAAU,EAAE,EAC9D,eAAe,EACf,aAAa,EACb,OAAO,EACP,WAAW,GACZ,EAAE,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAyFpE"}
|
|
@@ -26,7 +26,7 @@ export type DirectQueryAdapter<Schema extends ZeroSchema> = (props: {
|
|
|
26
26
|
export declare function createZeroClient<Schema extends ZeroSchema, Models extends GenericModels>(options: CreateZeroClientOptions<Schema, Models>): {
|
|
27
27
|
instanceName: string;
|
|
28
28
|
zeroEvents: Emitter<ZeroEvent | null>;
|
|
29
|
-
ProvideZero: ({ children, ...props }: Omit<ZeroOptions<Schema, GetZeroMutators<Models>>, "schema" | "mutators"> & {
|
|
29
|
+
ProvideZero: ({ children, authData: authDataIn, transport, pullIntervalMs, beforeReload, disable, ...props }: Omit<ZeroOptions<Schema, GetZeroMutators<Models>>, "schema" | "mutators"> & {
|
|
30
30
|
children: ReactNode;
|
|
31
31
|
authData?: {} | null | undefined;
|
|
32
32
|
disable?: boolean;
|
|
@@ -64,7 +64,7 @@ export declare function createZeroClientInternal<Schema extends ZeroSchema, Mode
|
|
|
64
64
|
}): {
|
|
65
65
|
instanceName: string;
|
|
66
66
|
zeroEvents: Emitter<ZeroEvent | null>;
|
|
67
|
-
ProvideZero: ({ children, ...props }: Omit<ZeroOptions<Schema, GetZeroMutators<Models>>, "schema" | "mutators"> & {
|
|
67
|
+
ProvideZero: ({ children, authData: authDataIn, transport, pullIntervalMs, beforeReload, disable, ...props }: Omit<ZeroOptions<Schema, GetZeroMutators<Models>>, "schema" | "mutators"> & {
|
|
68
68
|
children: ReactNode;
|
|
69
69
|
authData?: AuthData | null;
|
|
70
70
|
disable?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA8B,IAAI,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAO/E,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAQL,KAAK,OAAO,EACZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAId,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAA;AAWzB,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAOhE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAClF,OAAO,KAAK,EACV,gBAAgB,EAChB,KAAK,EACL,GAAG,EAEH,WAAW,EACX,MAAM,IAAI,UAAU,EACrB,MAAM,gBAAgB,CAAA;AAEvB,KAAK,cAAc,GAAG;IAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,CAAA;AAEvE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;AAMpF,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,CAAA;AAEtF,MAAM,MAAM,uBAAuB,CACjC,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,IAC1B;IACF,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,cAAc,CAAA;IAC9B,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IAIvC,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,MAAM,SAAS,UAAU,IAAI,CAAC,KAAK,EAAE;IAClE,eAAe,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC1C,aAAa,EAAE,gBAAgB,CAAA;IAC/B,OAAO,EAAE,MAAM,GAAG,CAAA;IAClB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CAC7B,KAAK,YAAY,CAAC,MAAM,CAAC,CAAA;AA+B1B,wBAAgB,gBAAgB,CAAC,MAAM,SAAS,UAAU,EAAE,MAAM,SAAS,aAAa,EACtF,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC;;;;kBAiSpC,SAAS;;kBAUT,OAAO;oBAIL,WAAW;yBAGN,MAAM;8BAGF,OAAO,CAAC,IAAI,CAAC;;;
|
|
1
|
+
{"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"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"}
|