on-zero 0.10.7 → 0.11.0
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/cli.native.js.map +1 -1
- package/dist/cjs/combineZeroClients.native.js.map +1 -1
- package/dist/cjs/config.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.connection.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.headless.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/cjs/generate-helpers.native.js.map +1 -1
- package/dist/cjs/generate-helpers.test.native.js.map +1 -1
- package/dist/cjs/generate-layout.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.native.js.map +1 -1
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/helpers/NullToOptional.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.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.test.native.js.map +1 -1
- package/dist/cjs/helpers/ellipsis.native.js.map +1 -1
- package/dist/cjs/helpers/emitter.native.js.map +1 -1
- package/dist/cjs/helpers/ensure.native.js.map +1 -1
- package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -1
- package/dist/cjs/helpers/errors.native.js.map +1 -1
- package/dist/cjs/helpers/getAuth.native.js.map +1 -1
- package/dist/cjs/helpers/getCurrentComponentStack.native.js.map +1 -1
- package/dist/cjs/helpers/globalValue.native.js.map +1 -1
- package/dist/cjs/helpers/hostStorageScope.native.js.map +1 -1
- package/dist/cjs/helpers/mapObject.native.js.map +1 -1
- package/dist/cjs/helpers/mutationLifecycle.native.js.map +1 -1
- package/dist/cjs/helpers/mutationLifecycle.test.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/sleep.native.js.map +1 -1
- package/dist/cjs/helpers/time.native.js.map +1 -1
- package/dist/cjs/helpers/tuple.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/index.cjs +0 -1
- package/dist/cjs/index.native.js +0 -1
- package/dist/cjs/index.native.js.map +1 -1
- 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.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/mutations.test.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/server.native.js.map +1 -1
- package/dist/cjs/server.test.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/streaming.cjs +20 -0
- package/dist/cjs/streaming.native.js +23 -0
- package/dist/cjs/streaming.native.js.map +1 -0
- 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.native.js.map +1 -1
- package/dist/cjs/useQuery.ssr.test.native.js.map +1 -1
- package/dist/cjs/useStreamingField.cjs +39 -7
- package/dist/cjs/useStreamingField.native.js +87 -7
- package/dist/cjs/useStreamingField.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/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +0 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +0 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/streaming.mjs +2 -0
- package/dist/esm/streaming.mjs.map +1 -0
- package/dist/esm/streaming.native.js +2 -0
- package/dist/esm/streaming.native.js.map +1 -0
- package/dist/esm/useStreamingField.mjs +39 -8
- package/dist/esm/useStreamingField.mjs.map +1 -1
- package/dist/esm/useStreamingField.native.js +87 -8
- package/dist/esm/useStreamingField.native.js.map +1 -1
- package/package.json +9 -2
- package/src/index.ts +0 -1
- package/src/streaming.ts +1 -0
- package/src/useStreamingField.ts +112 -23
- package/types/index.d.ts +0 -1
- package/types/index.d.ts.map +1 -1
- package/types/streaming.d.ts +2 -0
- package/types/streaming.d.ts.map +1 -0
- package/types/useStreamingField.d.ts +9 -5
- package/types/useStreamingField.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","zeroRunner_exports","getAmbientRunner","getRunner","setRunner","module","exports","import_mutatorContext","require","runner","r","instance","isInZeroMutation","q","o","mutatorContext","tx","run","Error"],"sources":["zeroRunner.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar zeroRunner_exports = {};\n__export(zeroRunner_exports, {\n getAmbientRunner: () => getAmbientRunner,\n getRunner: () => getRunner,\n setRunner: () => setRunner\n});\nmodule.exports = __toCommonJS(zeroRunner_exports);\nvar import_mutatorContext = require(\"./helpers/mutatorContext\");\nvar runner = null;\nfunction setRunner(r) {\n runner = r;\n}\nfunction getRunner(instance) {\n if ((0, import_mutatorContext.isInZeroMutation)()) {\n return function(q, o) {\n return (0, import_mutatorContext.mutatorContext)().tx.run(q, o);\n };\n }\n return getAmbientRunner(instance);\n}\nfunction getAmbientRunner(instance) {\n if (instance === null || instance === void 0 ? void 0 : instance.runner) {\n return instance.runner;\n }\n if (!runner) {\n throw new Error(\"Zero runner not initialized. Ensure ProvideZero is mounted, connectHeadless() was called, or server bindings are active.\");\n }\n return runner;\n}\n//# sourceMappingURL=zeroRunner.js.map\n"],"mappings":"AAAA,YAAY;;AACZ,IAAIA,SAAS,GAAGC,MAAM,CAACC,cAAc;AACrC,IAAIC,gBAAgB,GAAGF,MAAM,CAACG,wBAAwB;AACtD,IAAIC,iBAAiB,GAAGJ,MAAM,CAACK,mBAAmB;AAClD,IAAIC,YAAY,GAAGN,MAAM,CAACO,SAAS,CAACC,cAAc;AAClD,IAAIC,QAAQ,GAAGA,CAACC,MAAM,EAAEC,GAAG,KAAK;EAC9B,KAAK,IAAIC,IAAI,IAAID,GAAG,EAClBZ,SAAS,CAACW,MAAM,EAAEE,IAAI,EAAE;IAAEC,GAAG,EAAEF,GAAG,CAACC,IAAI,CAAC;IAAEE,UAAU,EAAE;EAAK,CAAC,CAAC;AACjE,CAAC;AACD,IAAIC,WAAW,GAAGA,CAACC,EAAE,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,KAAK;EAC5C,IAAIF,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;IAClE,KAAK,IAAIG,GAAG,IAAIhB,iBAAiB,CAACa,IAAI,CAAC,EACrC,IAAI,CAACX,YAAY,CAACe,IAAI,CAACL,EAAE,EAAEI,GAAG,CAAC,IAAIA,GAAG,KAAKF,MAAM,EAC/CnB,SAAS,CAACiB,EAAE,EAAEI,GAAG,EAAE;MAAEP,GAAG,EAAEA,CAAA,KAAMI,IAAI,CAACG,GAAG,CAAC;MAAEN,UAAU,EAAE,EAAEK,IAAI,GAAGjB,gBAAgB,CAACe,IAAI,EAAEG,GAAG,CAAC,CAAC,IAAID,IAAI,CAACL;IAAW,CAAC,CAAC;EACxH;EACA,OAAOE,EAAE;AACX,CAAC;AACD,IAAIM,YAAY,GAAIC,GAAG,IAAKR,WAAW,CAAChB,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE;EAAEyB,KAAK,EAAE;AAAK,CAAC,CAAC,EAAED,GAAG,CAAC;AAC1F,IAAIE,kBAAkB,GAAG,CAAC,CAAC;AAC3BhB,QAAQ,CAACgB,kBAAkB,EAAE;EAC3BC,gBAAgB,EAAEA,CAAA,KAAMA,gBAAgB;EACxCC,SAAS,EAAEA,CAAA,KAAMA,SAAS;EAC1BC,SAAS,EAAEA,CAAA,KAAMA;AACnB,CAAC,CAAC;AACFC,MAAM,CAACC,OAAO,GAAGR,YAAY,CAACG,kBAAkB,CAAC;AACjD,IAAIM,qBAAqB,GAAGC,OAAO,CAAC,oCAA0B,CAAC;AAC/D,IAAIC,MAAM,GAAG,IAAI;AACjB,SAASL,SAASA,CAACM,CAAC,EAAE;EACpBD,MAAM,GAAGC,CAAC;AACZ;AACA,SAASP,SAASA,CAACQ,QAAQ,EAAE;EAC3B,IAAI,CAAC,CAAC,EAAEJ,qBAAqB,CAACK,gBAAgB,EAAE,CAAC,EAAE;IACjD,OAAO,UAASC,CAAC,EAAEC,CAAC,EAAE;MACpB,OAAO,CAAC,CAAC,EAAEP,qBAAqB,CAACQ,cAAc,EAAE,CAAC,CAACC,EAAE,CAACC,GAAG,CAACJ,CAAC,EAAEC,CAAC,CAAC;IACjE,CAAC;EACH;EACA,OAAOZ,gBAAgB,CAACS,QAAQ,CAAC;AACnC;AACA,SAAST,gBAAgBA,CAACS,QAAQ,EAAE;EAClC,IAAIA,QAAQ,KAAK,IAAI,IAAIA,QAAQ,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,QAAQ,CAACF,MAAM,EAAE;IACvE,OAAOE,QAAQ,CAACF,MAAM;EACxB;EACA,IAAI,CAACA,MAAM,EAAE;IACX,MAAM,IAAIS,KAAK,CAAC,0HAA0H,CAAC;EAC7I;EACA,OAAOT,MAAM;AACf","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","zql_exports","zql","module","exports","import_state","require","Proxy","_target","prop","b","getZQL"],"sources":["zql.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar zql_exports = {};\n__export(zql_exports, {\n zql: () => zql\n});\nmodule.exports = __toCommonJS(zql_exports);\nvar import_state = require(\"./state\");\nvar zql = new Proxy({}, {\n get(_target, prop) {\n var b = (0, import_state.getZQL)();\n return b[prop];\n }\n});\n//# sourceMappingURL=zql.js.map\n"],"mappings":"AAAA,YAAY;;AACZ,IAAIA,SAAS,GAAGC,MAAM,CAACC,cAAc;AACrC,IAAIC,gBAAgB,GAAGF,MAAM,CAACG,wBAAwB;AACtD,IAAIC,iBAAiB,GAAGJ,MAAM,CAACK,mBAAmB;AAClD,IAAIC,YAAY,GAAGN,MAAM,CAACO,SAAS,CAACC,cAAc;AAClD,IAAIC,QAAQ,GAAGA,CAACC,MAAM,EAAEC,GAAG,KAAK;EAC9B,KAAK,IAAIC,IAAI,IAAID,GAAG,EAClBZ,SAAS,CAACW,MAAM,EAAEE,IAAI,EAAE;IAAEC,GAAG,EAAEF,GAAG,CAACC,IAAI,CAAC;IAAEE,UAAU,EAAE;EAAK,CAAC,CAAC;AACjE,CAAC;AACD,IAAIC,WAAW,GAAGA,CAACC,EAAE,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,KAAK;EAC5C,IAAIF,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;IAClE,KAAK,IAAIG,GAAG,IAAIhB,iBAAiB,CAACa,IAAI,CAAC,EACrC,IAAI,CAACX,YAAY,CAACe,IAAI,CAACL,EAAE,EAAEI,GAAG,CAAC,IAAIA,GAAG,KAAKF,MAAM,EAC/CnB,SAAS,CAACiB,EAAE,EAAEI,GAAG,EAAE;MAAEP,GAAG,EAAEA,CAAA,KAAMI,IAAI,CAACG,GAAG,CAAC;MAAEN,UAAU,EAAE,EAAEK,IAAI,GAAGjB,gBAAgB,CAACe,IAAI,EAAEG,GAAG,CAAC,CAAC,IAAID,IAAI,CAACL;IAAW,CAAC,CAAC;EACxH;EACA,OAAOE,EAAE;AACX,CAAC;AACD,IAAIM,YAAY,GAAIC,GAAG,IAAKR,WAAW,CAAChB,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE;EAAEyB,KAAK,EAAE;AAAK,CAAC,CAAC,EAAED,GAAG,CAAC;AAC1F,IAAIE,WAAW,GAAG,CAAC,CAAC;AACpBhB,QAAQ,CAACgB,WAAW,EAAE;EACpBC,GAAG,EAAEA,CAAA,KAAMA;AACb,CAAC,CAAC;AACFC,MAAM,CAACC,OAAO,GAAGN,YAAY,CAACG,WAAW,CAAC;AAC1C,IAAII,YAAY,GAAGC,OAAO,CAAC,mBAAS,CAAC;AACrC,IAAIJ,GAAG,GAAG,IAAIK,KAAK,CAAC,CAAC,CAAC,EAAE;EACtBlB,GAAGA,CAACmB,OAAO,EAAEC,IAAI,EAAE;IACjB,IAAIC,CAAC,GAAG,CAAC,CAAC,EAAEL,YAAY,CAACM,MAAM,EAAE,CAAC;IAClC,OAAOD,CAAC,CAACD,IAAI,CAAC;EAChB;AACF,CAAC,CAAC","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
|
@@ -9,7 +9,6 @@ import { ensureAuth, getAuth } from "./helpers/getAuth.mjs";
|
|
|
9
9
|
import { setAuthData, setEnvironment } from "./state.mjs";
|
|
10
10
|
import { createZeroClient } from "./createZeroClient.mjs";
|
|
11
11
|
export * from "./createUseQuery.mjs";
|
|
12
|
-
export * from "./useStreamingField.mjs";
|
|
13
12
|
export * from "./resolveQuery.mjs";
|
|
14
13
|
export * from "./run.mjs";
|
|
15
14
|
import { setRunner } from "./zeroRunner.mjs";
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","createZeroClient","setRunner","defineConfig","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError","classifyZeroRecoveryLog","makeZeroRecovery","composeRecoveryLogSink","isRecoverableZeroStalePokeMessage","isStaleGenerationError","mutationErrorMessage","MutationResultError","MutationTimeoutError","StaleGenerationError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,SACEC,gBAAA,QAMK;AACP,cAAc;AACd,cAAc;AACd,cAAc;AACd,
|
|
1
|
+
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","createZeroClient","setRunner","defineConfig","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError","classifyZeroRecoveryLog","makeZeroRecovery","composeRecoveryLogSink","isRecoverableZeroStalePokeMessage","isStaleGenerationError","mutationErrorMessage","MutationResultError","MutationTimeoutError","StaleGenerationError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,SACEC,gBAAA,QAMK;AACP,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,YAAA,QAA8D;AACvE,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SACEC,mBAAA,QAEK;AACP,SACEC,uBAAA,EACAC,yBAAA,QAGK;AACP,SACEC,uBAAA,EACAC,gBAAA,EACAC,sBAAA,EACAC,iCAAA,QAMK;AAEP,SACEC,sBAAA,EACAC,oBAAA,EACAC,mBAAA,EACAC,oBAAA,EACAC,oBAAA,QAIK","ignoreList":[]}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -9,7 +9,6 @@ import { ensureAuth, getAuth } from "./helpers/getAuth.mjs";
|
|
|
9
9
|
import { setAuthData, setEnvironment } from "./state.mjs";
|
|
10
10
|
import { createZeroClient } from "./createZeroClient.mjs";
|
|
11
11
|
export * from "./createUseQuery.mjs";
|
|
12
|
-
export * from "./useStreamingField.mjs";
|
|
13
12
|
export * from "./resolveQuery.mjs";
|
|
14
13
|
export * from "./run.mjs";
|
|
15
14
|
import { setRunner } from "./zeroRunner.mjs";
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","createZeroClient","setRunner","defineConfig","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError","classifyZeroRecoveryLog","makeZeroRecovery","composeRecoveryLogSink","isRecoverableZeroStalePokeMessage","isStaleGenerationError","mutationErrorMessage","MutationResultError","MutationTimeoutError","StaleGenerationError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,SACEC,gBAAA,QAMK;AACP,cAAc;AACd,cAAc;AACd,cAAc;AACd,
|
|
1
|
+
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","createZeroClient","setRunner","defineConfig","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError","classifyZeroRecoveryLog","makeZeroRecovery","composeRecoveryLogSink","isRecoverableZeroStalePokeMessage","isStaleGenerationError","mutationErrorMessage","MutationResultError","MutationTimeoutError","StaleGenerationError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,SACEC,gBAAA,QAMK;AACP,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,YAAA,QAA8D;AACvE,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SACEC,mBAAA,QAEK;AACP,SACEC,uBAAA,EACAC,yBAAA,QAGK;AACP,SACEC,uBAAA,EACAC,gBAAA,EACAC,sBAAA,EACAC,iCAAA,QAMK;AAEP,SACEC,sBAAA,EACAC,oBAAA,EACAC,mBAAA,EACAC,oBAAA,EACAC,oBAAA,QAIK","ignoreList":[]}
|
package/dist/esm/index.native.js
CHANGED
|
@@ -9,7 +9,6 @@ import { ensureAuth, getAuth } from "./helpers/getAuth.native.js";
|
|
|
9
9
|
import { setAuthData, setEnvironment } from "./state.native.js";
|
|
10
10
|
import { createZeroClient } from "./createZeroClient.native.js";
|
|
11
11
|
export * from "./createUseQuery.native.js";
|
|
12
|
-
export * from "./useStreamingField.native.js";
|
|
13
12
|
export * from "./resolveQuery.native.js";
|
|
14
13
|
export * from "./run.native.js";
|
|
15
14
|
import { setRunner } from "./zeroRunner.native.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","createZeroClient","setRunner","defineConfig","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError","classifyZeroRecoveryLog","makeZeroRecovery","composeRecoveryLogSink","isRecoverableZeroStalePokeMessage","isStaleGenerationError","mutationErrorMessage","MutationResultError","MutationTimeoutError","StaleGenerationError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,SAAAC,gBAAA;AAAA,cACE;AAAA,cAMK;AACP,cAAc;AACd,
|
|
1
|
+
{"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","createZeroClient","setRunner","defineConfig","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError","classifyZeroRecoveryLog","makeZeroRecovery","composeRecoveryLogSink","isRecoverableZeroStalePokeMessage","isStaleGenerationError","mutationErrorMessage","MutationResultError","MutationTimeoutError","StaleGenerationError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,SAAAC,gBAAA;AAAA,cACE;AAAA,cAMK;AACP,cAAc;AACd,SAAAC,SAAc;AACd,cAAc;AACd,cAAS;AACT,cAAc;AACd,cAAc;AACd,SAAAC,YAAc;AACd,SAAAC,WAAc,EAAAC,aAAA;AACd,SAASC,mBAAA,QAA8D;AACvE,SAASC,uBAAa,EAAAC,yBAAqB;AAQ3C,SAAAC,uBAAA,EAAAC,gBAAA,EAAAC,sBAAA,EAAAC,iCAAA;AAAA,SACEC,sBAAA,EAAAC,oBAAA,EAAAC,mBAAA,EAAAC,oBAAA,EAAAC,oBAAA;AAAA,SAGFF,mBAAA,EACEC,oBAAA,EACAC,oBAAA,EAAAR,uBAGK,EACPH,mBAAA,EACEK,sBAAA,EACAV,gBAAA,EACAE,YAAA,EACAE,aAAA,EAAAD,WAMK,EAEPP,UAAA,EACEC,OAAA,EACAc,iCAAA,EACAC,sBAAA,EACAH,gBAAA,EACAI,oBAAA,EAAAN,yBAIK,E","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/streaming.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/streaming.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
|
|
@@ -1,17 +1,48 @@
|
|
|
1
1
|
import { canonicalTopic } from "orez-lite/realtime";
|
|
2
|
-
import { useCallback, useSyncExternalStore } from "react";
|
|
2
|
+
import { useCallback, useMemo, useSyncExternalStore } from "react";
|
|
3
3
|
function createUseStreamingField(getStore) {
|
|
4
4
|
return function useStreamingField(handle, base) {
|
|
5
5
|
const store = getStore();
|
|
6
|
-
const id = canonicalTopic(handle.spec.primaryKey, handle.topic);
|
|
6
|
+
const id = handle ? canonicalTopic(handle.spec.primaryKey, handle.topic) : "";
|
|
7
|
+
const subscribe = useCallback(onChange => {
|
|
8
|
+
if (!store || !handle) return () => {};
|
|
9
|
+
return store.subscribe(handle, onChange);
|
|
10
|
+
}, [store, id]);
|
|
11
|
+
const getSnapshot = useCallback(() => {
|
|
12
|
+
if (!store || !handle) return durableOnly(base);
|
|
13
|
+
return store.read(handle, base);
|
|
14
|
+
}, [store, id, base]);
|
|
15
|
+
return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function createUseStreamingFields(getStore) {
|
|
19
|
+
return function useStreamingFields(requests) {
|
|
20
|
+
const store = getStore();
|
|
21
|
+
const topicsKey = useMemo(() => requests.map(request => `${request.key}=${canonicalTopic(request.handle.spec.primaryKey, request.handle.topic)}`).join("\n"), [requests]);
|
|
7
22
|
const subscribe = useCallback(onChange => {
|
|
8
23
|
if (!store) return () => {};
|
|
9
|
-
|
|
10
|
-
|
|
24
|
+
const releases = requests.map(request => store.subscribe(request.handle, onChange));
|
|
25
|
+
return () => {
|
|
26
|
+
for (const release of releases) release();
|
|
27
|
+
};
|
|
28
|
+
}, [store, topicsKey]);
|
|
29
|
+
const cache = useMemo(() => ({
|
|
30
|
+
value: {}
|
|
31
|
+
}), [store, topicsKey]);
|
|
11
32
|
const getSnapshot = useCallback(() => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
33
|
+
const next = {};
|
|
34
|
+
let changed = false;
|
|
35
|
+
for (const request of requests) {
|
|
36
|
+
const state = store ? store.read(request.handle, request.base) : durableOnly(request.base);
|
|
37
|
+
next[request.key] = state;
|
|
38
|
+
if (cache.value[request.key] !== state) changed = true;
|
|
39
|
+
}
|
|
40
|
+
if (!changed && Object.keys(cache.value).length === Object.keys(next).length) {
|
|
41
|
+
return cache.value;
|
|
42
|
+
}
|
|
43
|
+
cache.value = next;
|
|
44
|
+
return next;
|
|
45
|
+
}, [store, topicsKey, cache, requests]);
|
|
15
46
|
return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
16
47
|
};
|
|
17
48
|
}
|
|
@@ -41,5 +72,5 @@ function durableOnly(base) {
|
|
|
41
72
|
};
|
|
42
73
|
return lastPrimitiveState;
|
|
43
74
|
}
|
|
44
|
-
export { createUseStreamingField };
|
|
75
|
+
export { createUseStreamingField, createUseStreamingFields };
|
|
45
76
|
//# sourceMappingURL=useStreamingField.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["canonicalTopic","useCallback","useSyncExternalStore","createUseStreamingField","getStore","useStreamingField","handle","base","store","id","spec","primaryKey","topic","subscribe","onChange","getSnapshot","durableOnly","read","
|
|
1
|
+
{"version":3,"names":["canonicalTopic","useCallback","useMemo","useSyncExternalStore","createUseStreamingField","getStore","useStreamingField","handle","base","store","id","spec","primaryKey","topic","subscribe","onChange","getSnapshot","durableOnly","read","createUseStreamingFields","useStreamingFields","requests","topicsKey","map","request","key","join","releases","release","cache","value","next","changed","state","Object","keys","length","DURABLE_CACHE","WeakMap","lastPrimitiveBase","lastPrimitiveState","cached","get","phase","streamID","set","is"],"sources":["../../src/useStreamingField.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { canonicalTopic } from "orez-lite/realtime";
|
|
2
|
-
import { useCallback, useSyncExternalStore } from "react";
|
|
2
|
+
import { useCallback, useMemo, useSyncExternalStore } from "react";
|
|
3
3
|
function _type_of(obj) {
|
|
4
4
|
"@swc/helpers - typeof";
|
|
5
5
|
|
|
@@ -8,15 +8,94 @@ function _type_of(obj) {
|
|
|
8
8
|
function createUseStreamingField(getStore) {
|
|
9
9
|
return function useStreamingField(handle, base) {
|
|
10
10
|
var store = getStore();
|
|
11
|
-
var id = canonicalTopic(handle.spec.primaryKey, handle.topic);
|
|
11
|
+
var id = handle ? canonicalTopic(handle.spec.primaryKey, handle.topic) : "";
|
|
12
|
+
var subscribe = useCallback(function (onChange) {
|
|
13
|
+
if (!store || !handle) return function () {};
|
|
14
|
+
return store.subscribe(handle, onChange);
|
|
15
|
+
}, [store, id]);
|
|
16
|
+
var getSnapshot = useCallback(function () {
|
|
17
|
+
if (!store || !handle) return durableOnly(base);
|
|
18
|
+
return store.read(handle, base);
|
|
19
|
+
}, [store, id, base]);
|
|
20
|
+
return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function createUseStreamingFields(getStore) {
|
|
24
|
+
return function useStreamingFields(requests) {
|
|
25
|
+
var store = getStore();
|
|
26
|
+
var topicsKey = useMemo(function () {
|
|
27
|
+
return requests.map(function (request) {
|
|
28
|
+
return `${request.key}=${canonicalTopic(request.handle.spec.primaryKey, request.handle.topic)}`;
|
|
29
|
+
}).join("\n");
|
|
30
|
+
}, [requests]);
|
|
12
31
|
var subscribe = useCallback(function (onChange) {
|
|
13
32
|
if (!store) return function () {};
|
|
14
|
-
|
|
15
|
-
|
|
33
|
+
var releases = requests.map(function (request) {
|
|
34
|
+
return store.subscribe(request.handle, onChange);
|
|
35
|
+
});
|
|
36
|
+
return function () {
|
|
37
|
+
var _iteratorNormalCompletion = true,
|
|
38
|
+
_didIteratorError = false,
|
|
39
|
+
_iteratorError = void 0;
|
|
40
|
+
try {
|
|
41
|
+
for (var _iterator = releases[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
42
|
+
var release = _step.value;
|
|
43
|
+
release();
|
|
44
|
+
}
|
|
45
|
+
} catch (err) {
|
|
46
|
+
_didIteratorError = true;
|
|
47
|
+
_iteratorError = err;
|
|
48
|
+
} finally {
|
|
49
|
+
try {
|
|
50
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
51
|
+
_iterator.return();
|
|
52
|
+
}
|
|
53
|
+
} finally {
|
|
54
|
+
if (_didIteratorError) {
|
|
55
|
+
throw _iteratorError;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}, [store, topicsKey]);
|
|
61
|
+
var cache = useMemo(function () {
|
|
62
|
+
return {
|
|
63
|
+
value: {}
|
|
64
|
+
};
|
|
65
|
+
}, [store, topicsKey]);
|
|
16
66
|
var getSnapshot = useCallback(function () {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
67
|
+
var next = {};
|
|
68
|
+
var changed = false;
|
|
69
|
+
var _iteratorNormalCompletion = true,
|
|
70
|
+
_didIteratorError = false,
|
|
71
|
+
_iteratorError = void 0;
|
|
72
|
+
try {
|
|
73
|
+
for (var _iterator = requests[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
74
|
+
var request = _step.value;
|
|
75
|
+
var state = store ? store.read(request.handle, request.base) : durableOnly(request.base);
|
|
76
|
+
next[request.key] = state;
|
|
77
|
+
if (cache.value[request.key] !== state) changed = true;
|
|
78
|
+
}
|
|
79
|
+
} catch (err) {
|
|
80
|
+
_didIteratorError = true;
|
|
81
|
+
_iteratorError = err;
|
|
82
|
+
} finally {
|
|
83
|
+
try {
|
|
84
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
85
|
+
_iterator.return();
|
|
86
|
+
}
|
|
87
|
+
} finally {
|
|
88
|
+
if (_didIteratorError) {
|
|
89
|
+
throw _iteratorError;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (!changed && Object.keys(cache.value).length === Object.keys(next).length) {
|
|
94
|
+
return cache.value;
|
|
95
|
+
}
|
|
96
|
+
cache.value = next;
|
|
97
|
+
return next;
|
|
98
|
+
}, [store, topicsKey, cache, requests]);
|
|
20
99
|
return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
21
100
|
};
|
|
22
101
|
}
|
|
@@ -46,5 +125,5 @@ function durableOnly(base) {
|
|
|
46
125
|
};
|
|
47
126
|
return lastPrimitiveState;
|
|
48
127
|
}
|
|
49
|
-
export { createUseStreamingField };
|
|
128
|
+
export { createUseStreamingField, createUseStreamingFields };
|
|
50
129
|
//# sourceMappingURL=useStreamingField.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["canonicalTopic","useCallback","useSyncExternalStore","_type_of","obj","Symbol","constructor","createUseStreamingField","getStore","useStreamingField","handle","base","store","id","spec","primaryKey","topic","subscribe","onChange","getSnapshot","durableOnly","read","
|
|
1
|
+
{"version":3,"names":["canonicalTopic","useCallback","useMemo","useSyncExternalStore","_type_of","obj","Symbol","constructor","createUseStreamingField","getStore","useStreamingField","handle","base","store","id","spec","primaryKey","topic","subscribe","onChange","getSnapshot","durableOnly","read","createUseStreamingFields","useStreamingFields","requests","topicsKey","map","request","key","join","releases","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","release","value","err","return","cache","changed"],"sources":["../../src/useStreamingField.ts"],"sourcesContent":[null],"mappings":"AAmBA,SAASA,cAAA,QAAsB;AAC/B,SAASC,WAAA,EAAaC,OAAA,EAASC,oBAAA,QAA4B;AAqCpD,SAASC,SAAAC,GAAA;EAGd,uBAAgB;;EAId,OAAAA,GAAM,WAAQC,MAAS,oBAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AAGvB;AAEA,SAAAG,uBAAkBA,CAAAC,QAAA;EAAA,OACf,SAAAC,iBAAyBA,CAAAC,MAAA,EAAAC,IAAA;IACxB,IAAAC,KAAK,GAAAJ,QAAU;IAAqB,IAACK,EAAA,GAAAH,MAAA,GAAAX,cAAA,CAAAW,MAAA,CAAAI,IAAA,CAAAC,UAAA,EAAAL,MAAA,CAAAM,KAAA;IACrC,IAAAC,SAAO,GAAAjB,WAAgB,WAAQkB,QAAQ;MACzC,KAAAN,KAAA,KAAAF,MAAA,sBACA,CAAC;MACH,OAAAE,KAAA,CAAAK,SAAA,CAAAP,MAAA,EAAAQ,QAAA;IAMA,IACEN,KAAK,EACLC,EAAA,CACF;IAEA,IAAAM,WAAO,GAAAnB,WAAqB,aAAW;MACzC,KAAAY,KAAA,KAAAF,MAAA,SAAAU,WAAA,CAAAT,IAAA;MACF,OAAAC,KAAA,CAAAS,IAAA,CAAAX,MAAA,EAAAC,IAAA;IASO,IAGLC,KAAO,EAGLC,EAAA,EAIAF,IAAM,CAAY,CAChB;IAEK,OACET,oBACI,CAAQe,SAAO,EAAAE,WAAe,EAAAA,WAAQ;EAA6C;AAEhF;AACL,SACXG,yBAAAd,QAAA;EAEA,gBAAMe,kBAAYA,CAAAC,QAAA;IAAA,IACfZ,KAAA,GAAAJ,QAAyB;IACxB,IAAAiB,SAAK,GAAOxB,OAAO,aAAM;MAAA,OAACuB,QAAA,CAAAE,GAAA,WAAAC,OAAA;QAC1B,OAAM,GAAAA,OAAW,CAAAC,GAAA,IAAA7B,cAAS,CAAA4B,OAAA,CAAAjB,MAAA,CAAAI,IAAA,CAAAC,UAAA,EAAAY,OAAA,CAAAjB,MAAA,CAAAM,KAAA;MAAA,GAAAa,IAAK;IACW,IAE1CL,QAAA,CACE;IAAwC,IAC1CP,SAAA,GAAAjB,WAAA,WAAAkB,QAAA;MACF,KAAAN,KAAA,sBACA,CAAC;MACH,IAAAkB,QAAA,GAAAN,QAAA,CAAAE,GAAA,WAAAC,OAAA;QAKA,OAAMf,KAAQ,CAAAK,SAAA,CAAAU,OAAA,CAAAjB,MAAA,EAAAQ,QAAA;MACZ;MACA,OAAC,YAAgB;QACnB,IAAAa,yBAAA;UAAAC,iBAAA;UAAAC,cAAA;QAEA,IAAM;UACJ,KAAM,IAAmDC,SAAC,GAAAJ,QAAA,CAAAzB,MAAA,CAAA8B,QAAA,KAAAC,KAAA,IAAAL,yBAAA,IAAAK,KAAA,GAAAF,SAAA,CAAAG,IAAA,IAAAC,IAAA,GAAAP,yBAAA;YACtD,IAAAQ,OAAU,GAAAH,KAAA,CAAAI,KAAA;YACdD,OAAW;UACT;QAGA,SAAKE,GAAA,EAAQ;UACbT,iBAAgB,OAAQ;UAC1BC,cAAA,GAAAQ,GAAA;QACA,UAAK;UACH;YACF,KAAAV,yBAAA,IAAAG,SAAA,CAAAQ,MAAA;cACMR,SAAQ,CAAAQ,MAAA;YACd;UACE,UAAO;YAEJ,IAAAV,iBAAqB;cAC9B,MAAAC,cAAA;YACF;UAEM;QACF;MACA;IAGJ,IACMrB,KAAA,EACFa,SAAM,CACN;IACA,IAAAkB,KAAM,GAAA1C,OAAU,aAAa;MAC7B;QACAuC,KAAO;MACT;IACA,GAAI,CACF5B,KAAO,EACTa,SAAA,CACA;IACA,IAAAN,WAAA,GAAAnB,WAA8B,aAAa;MAC3C,IAAOqC,IAAA;MACT,IAAAO,OAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "on-zero",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"files": [
|
|
@@ -77,6 +77,13 @@
|
|
|
77
77
|
"import": "./dist/esm/multi.mjs",
|
|
78
78
|
"require": "./dist/cjs/multi.cjs"
|
|
79
79
|
},
|
|
80
|
+
"./streaming": {
|
|
81
|
+
"react-native": "./dist/esm/streaming.native.js",
|
|
82
|
+
"types": "./types/streaming.d.ts",
|
|
83
|
+
"import": "./dist/esm/streaming.mjs",
|
|
84
|
+
"require": "./dist/cjs/streaming.cjs",
|
|
85
|
+
"default": "./dist/esm/streaming.mjs"
|
|
86
|
+
},
|
|
80
87
|
"./drizzle": {
|
|
81
88
|
"types": "./types/createSchemaFromDrizzle.d.ts",
|
|
82
89
|
"import": "./dist/esm/createSchemaFromDrizzle.mjs",
|
|
@@ -98,7 +105,7 @@
|
|
|
98
105
|
"chokidar": "^4.0.3",
|
|
99
106
|
"citty": "^0.1.6",
|
|
100
107
|
"dequal": "^2.0.3",
|
|
101
|
-
"orez-lite": "0.
|
|
108
|
+
"orez-lite": "0.11.0",
|
|
102
109
|
"valibot": "^1.1.0"
|
|
103
110
|
},
|
|
104
111
|
"peerDependencies": {
|
package/src/index.ts
CHANGED
|
@@ -17,7 +17,6 @@ export {
|
|
|
17
17
|
type ZeroProviderTransport,
|
|
18
18
|
} from './createZeroClient'
|
|
19
19
|
export * from './createUseQuery'
|
|
20
|
-
export * from './useStreamingField'
|
|
21
20
|
export * from './resolveQuery'
|
|
22
21
|
export * from './run'
|
|
23
22
|
export { setRunner, type ZeroRunner } from './zeroRunner'
|
package/src/streaming.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useStreamingField'
|
package/src/useStreamingField.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// React
|
|
1
|
+
// React bindings for streaming fields.
|
|
2
2
|
//
|
|
3
3
|
// The base value is passed in explicitly rather than the hook reaching into the
|
|
4
4
|
// Zero query result. Two reasons: Zero query results are not mutated behind the
|
|
@@ -9,51 +9,70 @@
|
|
|
9
9
|
// const content = useStreamingField(streaming.message.content({ id }), message.content)
|
|
10
10
|
// return <Markdown>{content.value}</Markdown>
|
|
11
11
|
//
|
|
12
|
-
// Mounting
|
|
13
|
-
//
|
|
12
|
+
// Mounting a hook is what subscribes. A component that renders the row without
|
|
13
|
+
// one receives no field traffic at all.
|
|
14
|
+
//
|
|
15
|
+
// Both hooks are selector-isolated: a subscription covers exactly one row's one
|
|
16
|
+
// field, so a value arriving for another row cannot wake this component. That
|
|
17
|
+
// is the property an app hand-rolls otherwise, usually as a global emitter plus
|
|
18
|
+
// a deep-equal projection to undo the over-broadcasting.
|
|
14
19
|
|
|
15
20
|
import { canonicalTopic } from 'orez-lite/realtime'
|
|
16
|
-
import { useCallback, useSyncExternalStore } from 'react'
|
|
21
|
+
import { useCallback, useMemo, useSyncExternalStore } from 'react'
|
|
17
22
|
|
|
18
23
|
import type {
|
|
19
24
|
RealtimeStore,
|
|
20
|
-
|
|
21
|
-
StreamingFieldSpec,
|
|
25
|
+
StreamingFieldHandle,
|
|
22
26
|
StreamingFieldState,
|
|
23
27
|
} from 'orez-lite/realtime'
|
|
24
28
|
|
|
25
|
-
//
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
readonly spec: StreamingFieldSpec
|
|
30
|
-
}
|
|
29
|
+
// `streaming.message.content({ id })` returns a StreamingFieldHandle: the row's
|
|
30
|
+
// topic plus the manifest spec for that column, so a hook needs no lookup and
|
|
31
|
+
// cannot be handed a field the manifest does not declare.
|
|
32
|
+
export type { StreamingFieldHandle }
|
|
31
33
|
|
|
34
|
+
// `handle` may be null so a component can subscribe conditionally while still
|
|
35
|
+
// calling the hook unconditionally, which is the common React shape: a row that
|
|
36
|
+
// is not streaming, or whose id is not known yet, has nothing to subscribe to.
|
|
32
37
|
export type UseStreamingField = <Value>(
|
|
33
|
-
handle: StreamingFieldHandle,
|
|
38
|
+
handle: StreamingFieldHandle | null | undefined,
|
|
34
39
|
base: Value
|
|
35
40
|
) => StreamingFieldState<Value>
|
|
36
41
|
|
|
37
|
-
//
|
|
38
|
-
//
|
|
42
|
+
// One row's field, keyed by whatever the caller already uses to identify the
|
|
43
|
+
// row (a message id, usually), so results can be looked up without rebuilding
|
|
44
|
+
// a canonical topic at the call site.
|
|
45
|
+
export type StreamingFieldRequest<Value = unknown> = {
|
|
46
|
+
readonly key: string
|
|
47
|
+
readonly handle: StreamingFieldHandle
|
|
48
|
+
readonly base: Value
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export type UseStreamingFields = <Value>(
|
|
52
|
+
requests: readonly StreamingFieldRequest<Value>[]
|
|
53
|
+
) => Readonly<Record<string, StreamingFieldState<Value>>>
|
|
54
|
+
|
|
55
|
+
// The store lives on the transport (or on a local realtime), so the hooks are
|
|
56
|
+
// created against whichever store the application installed rather than
|
|
57
|
+
// reaching for a module-level singleton.
|
|
39
58
|
export function createUseStreamingField(
|
|
40
59
|
getStore: () => RealtimeStore | undefined
|
|
41
60
|
): UseStreamingField {
|
|
42
61
|
return function useStreamingField<Value>(
|
|
43
|
-
handle: StreamingFieldHandle,
|
|
62
|
+
handle: StreamingFieldHandle | null | undefined,
|
|
44
63
|
base: Value
|
|
45
64
|
): StreamingFieldState<Value> {
|
|
46
65
|
const store = getStore()
|
|
47
66
|
// the canonical topic, not object identity: a caller that rebuilds `{id}`
|
|
48
67
|
// inline on every render must not churn its subscription
|
|
49
|
-
const id = canonicalTopic(handle.spec.primaryKey, handle.topic)
|
|
68
|
+
const id = handle ? canonicalTopic(handle.spec.primaryKey, handle.topic) : ''
|
|
50
69
|
|
|
51
70
|
const subscribe = useCallback(
|
|
52
71
|
(onChange: () => void) => {
|
|
53
|
-
if (!store) return () => {}
|
|
54
|
-
return store.subscribe(handle
|
|
72
|
+
if (!store || !handle) return () => {}
|
|
73
|
+
return store.subscribe(handle, onChange)
|
|
55
74
|
},
|
|
56
|
-
[store,
|
|
75
|
+
[store, id]
|
|
57
76
|
)
|
|
58
77
|
|
|
59
78
|
// `store.read` returns a reference-stable state: useSyncExternalStore
|
|
@@ -61,9 +80,79 @@ export function createUseStreamingField(
|
|
|
61
80
|
// a fresh object each time. `base` participates because a new durable value
|
|
62
81
|
// from Zero is what ends the committing phase.
|
|
63
82
|
const getSnapshot = useCallback(() => {
|
|
64
|
-
if (!store) return durableOnly(base)
|
|
65
|
-
return store.read(handle
|
|
66
|
-
}, [store,
|
|
83
|
+
if (!store || !handle) return durableOnly(base)
|
|
84
|
+
return store.read(handle, base)
|
|
85
|
+
}, [store, id, base])
|
|
86
|
+
|
|
87
|
+
return useSyncExternalStore(subscribe, getSnapshot, getSnapshot)
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Many rows' fields at once, for a list that has to merge live values before it
|
|
92
|
+
// renders (grouping consecutive tool parts, interleaving by timestamp, and so
|
|
93
|
+
// on) and therefore cannot push the subscription down into each row.
|
|
94
|
+
//
|
|
95
|
+
// Scoping is structural: this component subscribes to exactly the topics in
|
|
96
|
+
// `requests`, so a value for a row outside the list cannot wake it. There is no
|
|
97
|
+
// projection to write and no deep-equal comparator to get right.
|
|
98
|
+
export function createUseStreamingFields(
|
|
99
|
+
getStore: () => RealtimeStore | undefined
|
|
100
|
+
): UseStreamingFields {
|
|
101
|
+
return function useStreamingFields<Value>(
|
|
102
|
+
requests: readonly StreamingFieldRequest<Value>[]
|
|
103
|
+
): Readonly<Record<string, StreamingFieldState<Value>>> {
|
|
104
|
+
const store = getStore()
|
|
105
|
+
|
|
106
|
+
// identity of the subscription SET, so adding or removing a row
|
|
107
|
+
// resubscribes but a changing base value does not
|
|
108
|
+
const topicsKey = useMemo(
|
|
109
|
+
() =>
|
|
110
|
+
requests
|
|
111
|
+
.map(
|
|
112
|
+
(request) =>
|
|
113
|
+
`${request.key}=${canonicalTopic(request.handle.spec.primaryKey, request.handle.topic)}`
|
|
114
|
+
)
|
|
115
|
+
.join('\n'),
|
|
116
|
+
[requests]
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
const subscribe = useCallback(
|
|
120
|
+
(onChange: () => void) => {
|
|
121
|
+
if (!store) return () => {}
|
|
122
|
+
const releases = requests.map((request) =>
|
|
123
|
+
store.subscribe(request.handle, onChange)
|
|
124
|
+
)
|
|
125
|
+
return () => {
|
|
126
|
+
for (const release of releases) release()
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
[store, topicsKey]
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
// Reference-stable across renders where nothing observable changed, both
|
|
133
|
+
// for useSyncExternalStore's contract and so a consuming useMemo (soot
|
|
134
|
+
// merges these into its transcript) is not invalidated every render.
|
|
135
|
+
const cache = useMemo(
|
|
136
|
+
() => ({ value: {} as Record<string, StreamingFieldState<Value>> }),
|
|
137
|
+
[store, topicsKey]
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
const getSnapshot = useCallback(() => {
|
|
141
|
+
const next: Record<string, StreamingFieldState<Value>> = {}
|
|
142
|
+
let changed = false
|
|
143
|
+
for (const request of requests) {
|
|
144
|
+
const state = store
|
|
145
|
+
? store.read(request.handle, request.base)
|
|
146
|
+
: durableOnly(request.base)
|
|
147
|
+
next[request.key] = state
|
|
148
|
+
if (cache.value[request.key] !== state) changed = true
|
|
149
|
+
}
|
|
150
|
+
if (!changed && Object.keys(cache.value).length === Object.keys(next).length) {
|
|
151
|
+
return cache.value
|
|
152
|
+
}
|
|
153
|
+
cache.value = next
|
|
154
|
+
return next
|
|
155
|
+
}, [store, topicsKey, cache, requests])
|
|
67
156
|
|
|
68
157
|
return useSyncExternalStore(subscribe, getSnapshot, getSnapshot)
|
|
69
158
|
}
|
package/types/index.d.ts
CHANGED
|
@@ -9,7 +9,6 @@ export { ensureAuth, getAuth } from './helpers/getAuth';
|
|
|
9
9
|
export { setAuthData, setEnvironment } from './state';
|
|
10
10
|
export { createZeroClient, type CreateZeroClientOptions, type GroupedQueries, type PermissionStrategy, type WaitForZeroOptions, type ZeroProviderTransport, } from './createZeroClient';
|
|
11
11
|
export * from './createUseQuery';
|
|
12
|
-
export * from './useStreamingField';
|
|
13
12
|
export * from './resolveQuery';
|
|
14
13
|
export * from './run';
|
|
15
14
|
export { setRunner, type ZeroRunner } from './zeroRunner';
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAErD,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAErD,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,OAAO,CAAA;AACrB,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AACzD,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,OAAO,CAAA;AACrB,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAM3D,mBAAmB,SAAS,CAAA;AAE5B,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,GACzB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,iCAAiC,EACjC,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,cAAc,GACpB,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,6BAA6B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import type { RealtimeStore,
|
|
2
|
-
export type StreamingFieldHandle
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import type { RealtimeStore, StreamingFieldHandle, StreamingFieldState } from 'orez-lite/realtime';
|
|
2
|
+
export type { StreamingFieldHandle };
|
|
3
|
+
export type UseStreamingField = <Value>(handle: StreamingFieldHandle | null | undefined, base: Value) => StreamingFieldState<Value>;
|
|
4
|
+
export type StreamingFieldRequest<Value = unknown> = {
|
|
5
|
+
readonly key: string;
|
|
6
|
+
readonly handle: StreamingFieldHandle;
|
|
7
|
+
readonly base: Value;
|
|
5
8
|
};
|
|
6
|
-
export type
|
|
9
|
+
export type UseStreamingFields = <Value>(requests: readonly StreamingFieldRequest<Value>[]) => Readonly<Record<string, StreamingFieldState<Value>>>;
|
|
7
10
|
export declare function createUseStreamingField(getStore: () => RealtimeStore | undefined): UseStreamingField;
|
|
11
|
+
export declare function createUseStreamingFields(getStore: () => RealtimeStore | undefined): UseStreamingFields;
|
|
8
12
|
//# sourceMappingURL=useStreamingField.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStreamingField.d.ts","sourceRoot":"","sources":["../src/useStreamingField.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useStreamingField.d.ts","sourceRoot":"","sources":["../src/useStreamingField.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,oBAAoB,CAAA;AAK3B,YAAY,EAAE,oBAAoB,EAAE,CAAA;AAKpC,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EACpC,MAAM,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,EAC/C,IAAI,EAAE,KAAK,KACR,mBAAmB,CAAC,KAAK,CAAC,CAAA;AAK/B,MAAM,MAAM,qBAAqB,CAAC,KAAK,GAAG,OAAO,IAAI;IACnD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAA;IACrC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EACrC,QAAQ,EAAE,SAAS,qBAAqB,CAAC,KAAK,CAAC,EAAE,KAC9C,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAKzD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,aAAa,GAAG,SAAS,GACxC,iBAAiB,CA6BnB;AASD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,aAAa,GAAG,SAAS,GACxC,kBAAkB,CA2DpB"}
|