on-zero 0.6.2 → 0.6.4
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/createZeroClient.cjs +91 -12
- package/dist/cjs/createZeroClient.connection.test.cjs +163 -0
- package/dist/cjs/createZeroClient.connection.test.native.js +242 -0
- package/dist/cjs/createZeroClient.connection.test.native.js.map +1 -0
- package/dist/cjs/createZeroClient.native.js +99 -12
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroClient.recovery.test.cjs +52 -0
- package/dist/cjs/createZeroClient.recovery.test.native.js +52 -0
- package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.cjs +197 -14
- package/dist/cjs/helpers/recoverZeroClient.native.js +220 -24
- package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.test.cjs +241 -0
- package/dist/cjs/helpers/recoverZeroClient.test.native.js +269 -0
- package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.native.js +2 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/multi.cjs +13 -0
- package/dist/cjs/multi.native.js +35 -0
- package/dist/cjs/multi.native.js.map +1 -1
- package/dist/cjs/multiPartition.test.cjs +42 -0
- package/dist/cjs/multiPartition.test.native.js +51 -0
- package/dist/cjs/multiPartition.test.native.js.map +1 -0
- package/dist/esm/createZeroClient.connection.test.mjs +164 -0
- package/dist/esm/createZeroClient.connection.test.mjs.map +1 -0
- package/dist/esm/createZeroClient.connection.test.native.js +240 -0
- package/dist/esm/createZeroClient.connection.test.native.js.map +1 -0
- package/dist/esm/createZeroClient.mjs +92 -13
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +100 -13
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroClient.recovery.test.mjs +52 -0
- package/dist/esm/createZeroClient.recovery.test.mjs.map +1 -1
- package/dist/esm/createZeroClient.recovery.test.native.js +52 -0
- package/dist/esm/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.mjs +196 -15
- package/dist/esm/helpers/recoverZeroClient.mjs.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.native.js +219 -25
- package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.mjs +242 -1
- package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.native.js +270 -1
- package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/multi.mjs +13 -1
- package/dist/esm/multi.mjs.map +1 -1
- package/dist/esm/multi.native.js +35 -1
- package/dist/esm/multi.native.js.map +1 -1
- package/dist/esm/multiPartition.test.mjs +43 -0
- package/dist/esm/multiPartition.test.mjs.map +1 -0
- package/dist/esm/multiPartition.test.native.js +49 -0
- package/dist/esm/multiPartition.test.native.js.map +1 -0
- package/lint/ssr-guards.js +164 -0
- package/package.json +2 -2
- package/readme.md +126 -0
- package/src/createZeroClient.connection.test.tsx +162 -0
- package/src/createZeroClient.recovery.test.tsx +68 -0
- package/src/createZeroClient.tsx +159 -13
- package/src/helpers/recoverZeroClient.test.ts +270 -1
- package/src/helpers/recoverZeroClient.ts +347 -50
- package/src/index.ts +6 -0
- package/src/multi.ts +33 -0
- package/src/multiPartition.test.ts +38 -0
- package/types/createZeroClient.connection.test.d.ts +5 -0
- package/types/createZeroClient.connection.test.d.ts.map +1 -0
- package/types/createZeroClient.d.ts +17 -0
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/createZeroServer.d.ts +4 -4
- package/types/helpers/recoverZeroClient.d.ts +23 -1
- package/types/helpers/recoverZeroClient.d.ts.map +1 -1
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/multi.d.ts +1 -0
- package/types/multi.d.ts.map +1 -1
- package/types/multiPartition.test.d.ts +2 -0
- package/types/multiPartition.test.d.ts.map +1 -0
|
@@ -90,7 +90,7 @@ export declare function createZeroServer<Schema extends ZeroSchema, Models exten
|
|
|
90
90
|
error: "app";
|
|
91
91
|
} | {
|
|
92
92
|
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
93
|
-
error: "
|
|
93
|
+
error: "oooMutation" | "alreadyProcessed";
|
|
94
94
|
};
|
|
95
95
|
}[];
|
|
96
96
|
} | {
|
|
@@ -102,7 +102,7 @@ export declare function createZeroServer<Schema extends ZeroSchema, Models exten
|
|
|
102
102
|
clientID: string;
|
|
103
103
|
}[];
|
|
104
104
|
origin: "server";
|
|
105
|
-
reason: "parse" | "
|
|
105
|
+
reason: "parse" | "oooMutation" | "database" | "internal" | "unsupportedPushVersion";
|
|
106
106
|
} | {
|
|
107
107
|
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
108
108
|
bodyPreview?: string | undefined;
|
|
@@ -139,7 +139,7 @@ export declare function createZeroServer<Schema extends ZeroSchema, Models exten
|
|
|
139
139
|
error: "app";
|
|
140
140
|
} | {
|
|
141
141
|
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
142
|
-
error: "
|
|
142
|
+
error: "oooMutation" | "alreadyProcessed";
|
|
143
143
|
};
|
|
144
144
|
}[];
|
|
145
145
|
} | {
|
|
@@ -178,7 +178,7 @@ export declare function createZeroServer<Schema extends ZeroSchema, Models exten
|
|
|
178
178
|
clientID: string;
|
|
179
179
|
}[];
|
|
180
180
|
origin: "server";
|
|
181
|
-
reason: "parse" | "
|
|
181
|
+
reason: "parse" | "oooMutation" | "database" | "internal" | "unsupportedPushVersion";
|
|
182
182
|
} | {
|
|
183
183
|
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
184
184
|
bodyPreview?: string | undefined;
|
|
@@ -1,17 +1,39 @@
|
|
|
1
1
|
import type { Emitter } from '@take-out/helpers';
|
|
2
2
|
import type { ZeroEvent } from '../types';
|
|
3
3
|
import type { UpdateNeededReason } from '@rocicorp/zero';
|
|
4
|
-
import type { LogSink } from '@rocicorp/logger';
|
|
4
|
+
import type { LogLevel, LogSink } from '@rocicorp/logger';
|
|
5
|
+
export type ZeroRecoveryLogReason = 'indexeddb-not-found' | 'sqlite-statement-finalized' | 'store-closed-repeat' | 'mutation-desync' | 'connection-cookie-invalid' | 'client-not-found' | 'connection-userid-mismatch';
|
|
6
|
+
export type ZeroRecoveryLogClassification = {
|
|
7
|
+
reason: ZeroRecoveryLogReason;
|
|
8
|
+
reasonKey: string;
|
|
9
|
+
message: string;
|
|
10
|
+
dropLocalState: boolean;
|
|
11
|
+
};
|
|
12
|
+
export type RecoveryGuardStorage = {
|
|
13
|
+
getItem: (key: string) => string | null;
|
|
14
|
+
setItem: (key: string, value: string) => void;
|
|
15
|
+
};
|
|
16
|
+
export type ScheduleReloadContext = {
|
|
17
|
+
reason: string;
|
|
18
|
+
reasonKey: string;
|
|
19
|
+
dropLocalState: boolean;
|
|
20
|
+
performReload: () => Promise<void>;
|
|
21
|
+
};
|
|
5
22
|
export type ZeroRecoveryDeps = {
|
|
6
23
|
deleteLocalState: () => Promise<unknown>;
|
|
7
24
|
zeroEvents: Emitter<ZeroEvent | null>;
|
|
8
25
|
beforeReload?: () => Promise<void>;
|
|
26
|
+
scheduleReload?: (ctx: ScheduleReloadContext) => void;
|
|
27
|
+
guardStorage?: RecoveryGuardStorage;
|
|
28
|
+
benignLogFilter?: (message: string) => boolean;
|
|
9
29
|
reload?: () => void;
|
|
10
30
|
};
|
|
11
31
|
export declare function makeZeroRecovery(deps: ZeroRecoveryDeps): {
|
|
12
32
|
onUpdateNeeded(reason: UpdateNeededReason): void;
|
|
13
33
|
onClientStateNotFound(): void;
|
|
14
34
|
};
|
|
35
|
+
export declare function classifyZeroRecoveryLog(level: LogLevel | string, args: readonly unknown[], nowMs?: number): ZeroRecoveryLogClassification | undefined;
|
|
15
36
|
export declare function composeRecoveryLogSink(deps: ZeroRecoveryDeps, consumerLogSink?: LogSink): LogSink;
|
|
37
|
+
export declare function isRecoverableZeroStalePokeMessage(message: string): boolean;
|
|
16
38
|
export declare function resetRecoveryStateForTests(): void;
|
|
17
39
|
//# sourceMappingURL=recoverZeroClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recoverZeroClient.d.ts","sourceRoot":"","sources":["../../src/helpers/recoverZeroClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"recoverZeroClient.d.ts","sourceRoot":"","sources":["../../src/helpers/recoverZeroClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,KAAK,EAAW,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAuBlE,MAAM,MAAM,qBAAqB,GAC7B,qBAAqB,GACrB,4BAA4B,GAC5B,qBAAqB,GACrB,iBAAiB,GACjB,2BAA2B,GAC3B,kBAAkB,GAClB,4BAA4B,CAAA;AAEhC,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,qBAAqB,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,OAAO,CAAA;CACxB,CAAA;AAMD,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;IACvC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9C,CAAA;AAKD,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IAGvB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAI7B,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAExC,UAAU,EAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAGrC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAIlC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,IAAI,CAAA;IAGrD,YAAY,CAAC,EAAE,oBAAoB,CAAA;IAGnC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAA;IAE9C,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAmKD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB;2BAE5B,kBAAkB;;EAsB5C;AAuGD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,QAAQ,GAAG,MAAM,EACxB,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,KAAK,SAAa,GACjB,6BAA6B,GAAG,SAAS,CAwC3C;AAOD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,gBAAgB,EACtB,eAAe,CAAC,EAAE,OAAO,GACxB,OAAO,CAkBT;AAKD,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAO1E;AAMD,wBAAgB,0BAA0B,SAUzC"}
|
package/types/index.d.ts
CHANGED
|
@@ -21,5 +21,5 @@ export { defineQuery, defineQueries } from '@rocicorp/zero';
|
|
|
21
21
|
export type * from './types';
|
|
22
22
|
export { clearZeroClientData, type ClearZeroClientDataOptions, } from './helpers/clearZeroClientData';
|
|
23
23
|
export { showZeroClientErrorOnce, resetShownZeroClientError, type ShowZeroClientErrorOptions, type ZeroClientErrorInfo, } from './helpers/showZeroClientError';
|
|
24
|
-
export { makeZeroRecovery, composeRecoveryLogSink, type ZeroRecoveryDeps, } from './helpers/recoverZeroClient';
|
|
24
|
+
export { classifyZeroRecoveryLog, makeZeroRecovery, composeRecoveryLogSink, isRecoverableZeroStalePokeMessage, type ZeroRecoveryLogClassification, type ZeroRecoveryLogReason, type ZeroRecoveryDeps, type ScheduleReloadContext, type RecoveryGuardStorage, } from './helpers/recoverZeroClient';
|
|
25
25
|
//# sourceMappingURL=index.d.ts.map
|
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,GACxB,MAAM,oBAAoB,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AACnC,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,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,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,gBAAgB,
|
|
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,GACxB,MAAM,oBAAoB,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AACnC,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,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,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,6BAA6B,CAAA"}
|
package/types/multi.d.ts
CHANGED
|
@@ -3,4 +3,5 @@ import type { GenericModels } from './types';
|
|
|
3
3
|
import type { Schema as ZeroSchema } from '@rocicorp/zero';
|
|
4
4
|
export * from './combineZeroClients';
|
|
5
5
|
export declare function createZeroClientWithDirectQueries<Schema extends ZeroSchema, Models extends GenericModels>(options: CreateZeroClientOptions<Schema, Models>): ReturnType<typeof createZeroClientInternal<Schema, Models>>;
|
|
6
|
+
export declare function assertZeroInstancePartition(kind: string, entries: Record<string, unknown>, partitions: Record<string, Record<string, unknown>>): void;
|
|
6
7
|
//# sourceMappingURL=multi.d.ts.map
|
package/types/multi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../src/multi.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAExB,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAA;AAG3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE1D,cAAc,sBAAsB,CAAA;AAEpC,wBAAgB,iCAAiC,CAC/C,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAE5B,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/C,UAAU,CAAC,OAAO,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAM7D"}
|
|
1
|
+
{"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../src/multi.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAExB,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAA;AAG3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE1D,cAAc,sBAAsB,CAAA;AAEpC,wBAAgB,iCAAiC,CAC/C,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAE5B,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/C,UAAU,CAAC,OAAO,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAM7D;AAYD,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAClD,IAAI,CAiBN"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiPartition.test.d.ts","sourceRoot":"","sources":["../src/multiPartition.test.ts"],"names":[],"mappings":""}
|