@automerge/react 2.0.0-beta.2

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 ADDED
@@ -0,0 +1,70 @@
1
+ # @automerge/react
2
+
3
+ A minimalist React package for Automerge Repo; does nothing but re-export other packages for your convenience.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @automerge/react
9
+ # or
10
+ yarn add @automerge/react
11
+ # or
12
+ pnpm add @automerge/react
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ ```tsx
18
+ import { createRepo, useDocument } from "@automerge/react"
19
+
20
+ // Create a pre-configured repo instance
21
+ const repo = createRepo({
22
+ websocketUrl: "ws://localhost:8080", // optional
23
+ enableStorage: true, // optional, defaults to true
24
+ enableMessageChannel: true, // optional, defaults to true
25
+ })
26
+
27
+ // Use in your React components
28
+ function MyComponent() {
29
+ const doc = useDocument(repo, "my-doc-id")
30
+
31
+ if (!doc) return <div>Loading...</div>
32
+
33
+ return <div>{doc.content}</div>
34
+ }
35
+ ```
36
+
37
+ ## Features
38
+
39
+ - Pre-configured Automerge Repo setup with common adapters
40
+ - Re-exports all React hooks from `@automerge/automerge-repo-react-hooks`
41
+ - TypeScript support
42
+ - Minimalist API surface
43
+
44
+ ## API
45
+
46
+ ### `createRepo(options?: CreateRepoOptions)`
47
+
48
+ Creates a pre-configured Automerge Repo instance with common adapters.
49
+
50
+ Options:
51
+
52
+ - `websocketUrl?: string` - The URL of the WebSocket server to connect to
53
+ - `enableStorage?: boolean` - Whether to enable IndexedDB storage (default: true)
54
+ - `enableMessageChannel?: boolean` - Whether to enable MessageChannel network adapter (default: true)
55
+
56
+ ### Hooks
57
+
58
+ All hooks from `@automerge/automerge-repo-react-hooks` are re-exported:
59
+
60
+ - `useRepo`
61
+ - `useDocument`
62
+ - `useHandle`
63
+ - `useLocalAwareness`
64
+ - `useRemoteAwareness`
65
+ - `useBootstrap`
66
+ - `useSyncState`
67
+
68
+ ## License
69
+
70
+ MIT
@@ -0,0 +1,7 @@
1
+ export * from "@automerge/automerge-repo";
2
+ export * from "@automerge/automerge-repo-react-hooks";
3
+ export { MessageChannelNetworkAdapter } from "@automerge/automerge-repo-network-messagechannel";
4
+ export { BroadcastChannelNetworkAdapter } from "@automerge/automerge-repo-network-broadcastchannel";
5
+ export { WebSocketClientAdapter } from "@automerge/automerge-repo-network-websocket";
6
+ export { IndexedDBStorageAdapter } from "@automerge/automerge-repo-storage-indexeddb";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,uCAAuC,CAAA;AAErD,OAAO,EAAE,4BAA4B,EAAE,MAAM,kDAAkD,CAAA;AAC/F,OAAO,EAAE,8BAA8B,EAAE,MAAM,oDAAoD,CAAA;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAA;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ export * from "@automerge/automerge-repo";
2
+ export * from "@automerge/automerge-repo-react-hooks";
3
+ export { MessageChannelNetworkAdapter } from "@automerge/automerge-repo-network-messagechannel";
4
+ export { BroadcastChannelNetworkAdapter } from "@automerge/automerge-repo-network-broadcastchannel";
5
+ export { WebSocketClientAdapter } from "@automerge/automerge-repo-network-websocket";
6
+ export { IndexedDBStorageAdapter } from "@automerge/automerge-repo-storage-indexeddb";
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@automerge/react",
3
+ "version": "2.0.0-beta.2",
4
+ "description": "A quick-import React package for Automerge Repo",
5
+ "repository": "https://github.com/automerge/automerge-repo/tree/master/packages/automerge-react",
6
+ "author": "Peter van Hardenberg <pvh@pvh.ca>",
7
+ "license": "MIT",
8
+ "type": "module",
9
+ "main": "dist/index.js",
10
+ "types": "dist/index.d.ts",
11
+ "scripts": {
12
+ "build": "tsc",
13
+ "watch": "npm-watch build",
14
+ "test": "vitest",
15
+ "test:watch": "npm-watch test"
16
+ },
17
+ "dependencies": {
18
+ "@automerge/automerge-repo": "workspace:*",
19
+ "@automerge/automerge-repo-network-broadcastchannel": "workspace:*",
20
+ "@automerge/automerge-repo-network-messagechannel": "workspace:*",
21
+ "@automerge/automerge-repo-network-websocket": "workspace:*",
22
+ "@automerge/automerge-repo-storage-indexeddb": "workspace:*",
23
+ "@automerge/automerge-repo-react-hooks": "workspace:*",
24
+ "react": "^18.0.0"
25
+ },
26
+ "peerDependencies": {
27
+ "react": "^18.0.0"
28
+ },
29
+ "devDependencies": {
30
+ "@types/react": "^18.0.0",
31
+ "typescript": "^5.0.0",
32
+ "vitest": "^1.0.0"
33
+ },
34
+ "exports": {
35
+ ".": "./dist/index.js"
36
+ },
37
+ "watch": {
38
+ "build": {
39
+ "patterns": "./src/**/*",
40
+ "extensions": [
41
+ ".ts"
42
+ ]
43
+ },
44
+ "test": {
45
+ "quiet": true,
46
+ "patterns": [
47
+ "./src/**/*",
48
+ "./test/**/*"
49
+ ],
50
+ "extensions": [
51
+ ".ts"
52
+ ]
53
+ }
54
+ },
55
+ "publishConfig": {
56
+ "access": "public"
57
+ }
58
+ }
package/src/index.ts ADDED
@@ -0,0 +1,7 @@
1
+ export * from "@automerge/automerge-repo"
2
+ export * from "@automerge/automerge-repo-react-hooks"
3
+
4
+ export { MessageChannelNetworkAdapter } from "@automerge/automerge-repo-network-messagechannel"
5
+ export { BroadcastChannelNetworkAdapter } from "@automerge/automerge-repo-network-broadcastchannel"
6
+ export { WebSocketClientAdapter } from "@automerge/automerge-repo-network-websocket"
7
+ export { IndexedDBStorageAdapter } from "@automerge/automerge-repo-storage-indexeddb"
package/tsconfig.json ADDED
@@ -0,0 +1,18 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ESNext",
4
+ "jsx": "react",
5
+ "module": "NodeNext",
6
+ "moduleResolution": "nodenext",
7
+ "declaration": true,
8
+ "declarationMap": true,
9
+ "outDir": "./dist",
10
+ "esModuleInterop": true,
11
+ "forceConsistentCasingInFileNames": true,
12
+ "strict": true,
13
+ "strictNullChecks": true,
14
+ "skipLibCheck": true
15
+ },
16
+ "include": ["src/**/*.ts"],
17
+ "exclude": ["dist"]
18
+ }