@stratasync/react 0.2.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/README.md +91 -0
- package/dist/context.d.ts +21 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +27 -0
- package/dist/context.js.map +1 -0
- package/dist/hooks/use-connection-state.d.ts +55 -0
- package/dist/hooks/use-connection-state.d.ts.map +1 -0
- package/dist/hooks/use-connection-state.js +90 -0
- package/dist/hooks/use-connection-state.js.map +1 -0
- package/dist/hooks/use-model.d.ts +22 -0
- package/dist/hooks/use-model.d.ts.map +1 -0
- package/dist/hooks/use-model.js +162 -0
- package/dist/hooks/use-model.js.map +1 -0
- package/dist/hooks/use-query.d.ts +35 -0
- package/dist/hooks/use-query.d.ts.map +1 -0
- package/dist/hooks/use-query.js +302 -0
- package/dist/hooks/use-query.js.map +1 -0
- package/dist/hooks/use-sync-client.d.ts +25 -0
- package/dist/hooks/use-sync-client.d.ts.map +1 -0
- package/dist/hooks/use-sync-client.js +49 -0
- package/dist/hooks/use-sync-client.js.map +1 -0
- package/dist/hooks/use-yjs-document.d.ts +108 -0
- package/dist/hooks/use-yjs-document.d.ts.map +1 -0
- package/dist/hooks/use-yjs-document.js +202 -0
- package/dist/hooks/use-yjs-document.js.map +1 -0
- package/dist/hooks/use-yjs-presence.d.ts +62 -0
- package/dist/hooks/use-yjs-presence.d.ts.map +1 -0
- package/dist/hooks/use-yjs-presence.js +230 -0
- package/dist/hooks/use-yjs-presence.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/provider.d.ts +7 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +117 -0
- package/dist/provider.js.map +1 -0
- package/dist/types.d.ts +107 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +53 -0
package/dist/provider.js
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
+
import { SyncBacklogContext, SyncClientContext, SyncContext, SyncStatusContext, } from "./context.js";
|
|
4
|
+
/**
|
|
5
|
+
* Provider component for the sync client
|
|
6
|
+
*/
|
|
7
|
+
export const SyncProvider = ({ client, children, autoStart = true, autoStop = true, }) => {
|
|
8
|
+
const [state, setState] = useState(client.state);
|
|
9
|
+
const [connectionState, setConnectionState] = useState(client.connectionState);
|
|
10
|
+
const lastSyncIdRef = useRef(client.lastSyncId);
|
|
11
|
+
const [backlog, setBacklog] = useState(0);
|
|
12
|
+
const [error, setError] = useState(client.lastError ?? null);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
let mounted = true;
|
|
15
|
+
// Subscribe to state changes
|
|
16
|
+
const unsubState = client.onStateChange((nextState) => {
|
|
17
|
+
if (mounted) {
|
|
18
|
+
setState(nextState);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
const unsubConnection = client.onConnectionStateChange((nextState) => {
|
|
22
|
+
if (mounted) {
|
|
23
|
+
setConnectionState(nextState);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
const unsubEvents = client.onEvent((event) => {
|
|
27
|
+
if (!mounted) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
switch (event.type) {
|
|
31
|
+
case "syncComplete": {
|
|
32
|
+
lastSyncIdRef.current = event.lastSyncId;
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
case "stateChange": {
|
|
36
|
+
if (event.state !== "error") {
|
|
37
|
+
setError(null);
|
|
38
|
+
}
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
case "syncError": {
|
|
42
|
+
setError(event.error);
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
case "outboxChange": {
|
|
46
|
+
setBacklog(event.pendingCount);
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
default: {
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
// Sync initial state
|
|
55
|
+
setState(client.state);
|
|
56
|
+
setConnectionState(client.connectionState);
|
|
57
|
+
lastSyncIdRef.current = client.lastSyncId;
|
|
58
|
+
setError(client.lastError ?? null);
|
|
59
|
+
(async () => {
|
|
60
|
+
try {
|
|
61
|
+
const count = await client.getPendingCount();
|
|
62
|
+
if (mounted) {
|
|
63
|
+
setBacklog(count);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
// Storage may not be open yet; backlog will update via outboxChange event
|
|
68
|
+
}
|
|
69
|
+
})();
|
|
70
|
+
if (autoStart) {
|
|
71
|
+
const startClient = async () => {
|
|
72
|
+
try {
|
|
73
|
+
await client.start();
|
|
74
|
+
}
|
|
75
|
+
catch (startError) {
|
|
76
|
+
if (mounted) {
|
|
77
|
+
setError(startError instanceof Error
|
|
78
|
+
? startError
|
|
79
|
+
: new Error(String(startError)));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
startClient();
|
|
84
|
+
}
|
|
85
|
+
return () => {
|
|
86
|
+
mounted = false;
|
|
87
|
+
unsubState();
|
|
88
|
+
unsubConnection();
|
|
89
|
+
unsubEvents();
|
|
90
|
+
if (autoStop) {
|
|
91
|
+
// oxlint-disable-next-line prefer-await-to-then -- fire-and-forget pattern
|
|
92
|
+
client.stop().catch(() => {
|
|
93
|
+
/* noop */
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
}, [client, autoStart, autoStop]);
|
|
98
|
+
const statusValue = useMemo(() => ({
|
|
99
|
+
clientId: client.clientId,
|
|
100
|
+
connectionState,
|
|
101
|
+
error,
|
|
102
|
+
isOffline: connectionState === "disconnected",
|
|
103
|
+
isReady: state === "syncing",
|
|
104
|
+
isSyncing: state === "syncing" || state === "bootstrapping",
|
|
105
|
+
get lastSyncId() {
|
|
106
|
+
return lastSyncIdRef.current;
|
|
107
|
+
},
|
|
108
|
+
state,
|
|
109
|
+
}), [state, connectionState, error, client.clientId]);
|
|
110
|
+
const value = useMemo(() => ({
|
|
111
|
+
backlog,
|
|
112
|
+
client,
|
|
113
|
+
...statusValue,
|
|
114
|
+
}), [client, backlog, statusValue]);
|
|
115
|
+
return (_jsx(SyncClientContext.Provider, { value: client, children: _jsx(SyncStatusContext.Provider, { value: statusValue, children: _jsx(SyncBacklogContext.Provider, { value: backlog, children: _jsx(SyncContext.Provider, { value: value, children: children }) }) }) }));
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type { QueryOptions, SyncClient } from "@stratasync/client";
|
|
2
|
+
import type { ConnectionState, SyncClientState, SyncId } from "@stratasync/core";
|
|
3
|
+
/**
|
|
4
|
+
* Sync provider props
|
|
5
|
+
*/
|
|
6
|
+
export interface SyncProviderProps {
|
|
7
|
+
/** Sync client instance */
|
|
8
|
+
client: SyncClient;
|
|
9
|
+
/** Children to render */
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
/** Automatically start the client */
|
|
12
|
+
autoStart?: boolean;
|
|
13
|
+
/** Automatically stop the client on unmount */
|
|
14
|
+
autoStop?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Sync status context value (excluding pending backlog)
|
|
18
|
+
*/
|
|
19
|
+
export interface SyncStatusContextValue {
|
|
20
|
+
/** Current sync state */
|
|
21
|
+
state: SyncClientState;
|
|
22
|
+
/** Current connection state */
|
|
23
|
+
connectionState: ConnectionState;
|
|
24
|
+
/** Last sync ID received */
|
|
25
|
+
lastSyncId: SyncId;
|
|
26
|
+
/** Last sync error */
|
|
27
|
+
error: Error | null;
|
|
28
|
+
/** Whether the client is ready */
|
|
29
|
+
isReady: boolean;
|
|
30
|
+
/** Whether the client is syncing */
|
|
31
|
+
isSyncing: boolean;
|
|
32
|
+
/** Whether the client is offline */
|
|
33
|
+
isOffline: boolean;
|
|
34
|
+
/** Client ID */
|
|
35
|
+
clientId: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Full sync context value
|
|
39
|
+
*/
|
|
40
|
+
export interface SyncContextValue extends SyncStatusContextValue {
|
|
41
|
+
/** Sync client instance */
|
|
42
|
+
client: SyncClient;
|
|
43
|
+
/** Count of pending transactions */
|
|
44
|
+
backlog: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Use model hook result
|
|
48
|
+
*/
|
|
49
|
+
export interface UseModelResult<T> {
|
|
50
|
+
/** Model data */
|
|
51
|
+
data: T | null;
|
|
52
|
+
/** Whether the model is loading */
|
|
53
|
+
isLoading: boolean;
|
|
54
|
+
/** Whether the model was found */
|
|
55
|
+
isFound: boolean;
|
|
56
|
+
/** Any error that occurred */
|
|
57
|
+
error: Error | null;
|
|
58
|
+
/** Refresh the model */
|
|
59
|
+
refresh: () => Promise<void>;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Use query hook options
|
|
63
|
+
*/
|
|
64
|
+
export interface UseQueryOptions<T> extends QueryOptions<T> {
|
|
65
|
+
/** Skip the query (useful for conditional fetching) */
|
|
66
|
+
skip?: boolean;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Use query hook result
|
|
70
|
+
*/
|
|
71
|
+
export interface UseQueryResult<T> {
|
|
72
|
+
/** Query results */
|
|
73
|
+
data: T[];
|
|
74
|
+
/** Whether the query is loading */
|
|
75
|
+
isLoading: boolean;
|
|
76
|
+
/** Any error that occurred */
|
|
77
|
+
error: Error | null;
|
|
78
|
+
/** Total count (if available) */
|
|
79
|
+
totalCount?: number;
|
|
80
|
+
/** Whether more results are available */
|
|
81
|
+
hasMore: boolean;
|
|
82
|
+
/** Refresh the query */
|
|
83
|
+
refresh: () => Promise<void>;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Use connection state hook result
|
|
87
|
+
*/
|
|
88
|
+
export interface UseConnectionStateResult {
|
|
89
|
+
/** Current sync status */
|
|
90
|
+
status: SyncClientState;
|
|
91
|
+
/** Last sync ID received */
|
|
92
|
+
lastSyncId: SyncId;
|
|
93
|
+
/** Pending outbox count */
|
|
94
|
+
backlog: number;
|
|
95
|
+
/** Last sync error */
|
|
96
|
+
error: Error | null;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Use pending count hook result
|
|
100
|
+
*/
|
|
101
|
+
export interface UsePendingCountResult {
|
|
102
|
+
/** Number of pending transactions */
|
|
103
|
+
count: number;
|
|
104
|
+
/** Whether there are pending transactions */
|
|
105
|
+
hasPending: boolean;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,MAAM,EACP,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,2BAA2B;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,yBAAyB;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,yBAAyB;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,+BAA+B;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,sBAAsB;IAC9D,2BAA2B;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,iBAAiB;IACjB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,wBAAwB;IACxB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,CAAE,SAAQ,YAAY,CAAC,CAAC,CAAC;IACzD,uDAAuD;IACvD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,oBAAoB;IACpB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,wBAAwB;IACxB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,0BAA0B;IAC1B,MAAM,EAAE,eAAe,CAAC;IACxB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,UAAU,EAAE,OAAO,CAAC;CACrB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@stratasync/react",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"files": [
|
|
5
|
+
"dist"
|
|
6
|
+
],
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"import": "./dist/index.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "tsc -p tsconfig.build.json",
|
|
21
|
+
"dev": "tsc --watch -p tsconfig.build.json",
|
|
22
|
+
"lint": "oxlint .",
|
|
23
|
+
"lint:fix": "oxlint --fix .",
|
|
24
|
+
"format": "oxfmt --write .",
|
|
25
|
+
"format:check": "oxfmt --check .",
|
|
26
|
+
"check-types": "tsc --noEmit",
|
|
27
|
+
"test": "vitest"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"@stratasync/client": "*",
|
|
31
|
+
"@stratasync/core": "*"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@testing-library/react": "^16.3.2",
|
|
35
|
+
"@types/react": "^19.2.14",
|
|
36
|
+
"@types/react-dom": "^19.2.3",
|
|
37
|
+
"jsdom": "^29.0.0",
|
|
38
|
+
"lefthook": "^2.1.4",
|
|
39
|
+
"mobx": "^6.15.0",
|
|
40
|
+
"mobx-react-lite": "^4.1.1",
|
|
41
|
+
"oxfmt": "^0.41.0",
|
|
42
|
+
"oxlint": "^1.56.0",
|
|
43
|
+
"react": "^19.2.4",
|
|
44
|
+
"react-dom": "^19.2.4",
|
|
45
|
+
"typescript": "^5.9.3",
|
|
46
|
+
"ultracite": "^7.3.2",
|
|
47
|
+
"vitest": "^4.1.0"
|
|
48
|
+
},
|
|
49
|
+
"peerDependencies": {
|
|
50
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
51
|
+
"yjs": "^13.6.0"
|
|
52
|
+
}
|
|
53
|
+
}
|