@automerge/vanillajs 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,66 @@
1
+ # @automerge/vanillajs
2
+
3
+ A minimal vanilla JavaScript package for Automerge Repo that provides direct access to core types and adapters.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @automerge/vanillajs
9
+ # or
10
+ yarn add @automerge/vanillajs
11
+ # or
12
+ pnpm add @automerge/vanillajs
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ ```javascript
18
+ import {
19
+ Repo,
20
+ MessageChannelNetworkAdapter,
21
+ IndexedDBStorageAdapter,
22
+ WebSocketClientAdapter,
23
+ } from "@automerge/vanillajs"
24
+
25
+ // Create a repo with your chosen adapters
26
+ const repo = new Repo({
27
+ network: [
28
+ new MessageChannelNetworkAdapter(/* your message channel to another repo here */),
29
+ new IndexedDBStorageAdapter(),
30
+ new WebSocketClientAdapter("wss://sync.automerge.org"),
31
+ ],
32
+ })
33
+
34
+ // Create a new document
35
+ const handle = repo.create()
36
+
37
+ // Load an existing document
38
+ const existingHandle = repo.find(documentId)
39
+
40
+ // Listen for changes
41
+ handle.on("change", () => {
42
+ console.log("Document changed:", handle.docSync())
43
+ })
44
+ ```
45
+
46
+ ## Available Exports
47
+
48
+ ### Core
49
+
50
+ - `Repo` - The main repository class
51
+ - `DocHandle` - Document handle type
52
+ - `DocumentId` - Document ID type
53
+
54
+ ### Network Adapters
55
+
56
+ - `MessageChannelNetworkAdapter` - For communication between browser tabs
57
+ - `BroadcastChannelNetworkAdapter` - For communication between browser contexts
58
+ - `WebSocketClientAdapter` - For client-side WebSocket connections
59
+
60
+ ### Storage Adapters
61
+
62
+ - `IndexedDBStorageAdapter` - For browser storage
63
+
64
+ ## License
65
+
66
+ MIT
@@ -0,0 +1,6 @@
1
+ export * from "@automerge/automerge-repo/slim";
2
+ export { MessageChannelNetworkAdapter } from "@automerge/automerge-repo-network-messagechannel";
3
+ export { BroadcastChannelNetworkAdapter } from "@automerge/automerge-repo-network-broadcastchannel";
4
+ export { WebSocketClientAdapter } from "@automerge/automerge-repo-network-websocket";
5
+ export { IndexedDBStorageAdapter } from "@automerge/automerge-repo-storage-indexeddb";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA;AAE9C,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,5 @@
1
+ export * from "@automerge/automerge-repo/slim";
2
+ export { MessageChannelNetworkAdapter } from "@automerge/automerge-repo-network-messagechannel";
3
+ export { BroadcastChannelNetworkAdapter } from "@automerge/automerge-repo-network-broadcastchannel";
4
+ export { WebSocketClientAdapter } from "@automerge/automerge-repo-network-websocket";
5
+ export { IndexedDBStorageAdapter } from "@automerge/automerge-repo-storage-indexeddb";
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@automerge/vanillajs",
3
+ "version": "2.0.0-beta.2",
4
+ "description": "A quick-import vanilla JS package for Automerge Repo",
5
+ "repository": "https://github.com/automerge/automerge-repo/tree/master/packages/automerge-vanillajs",
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
+ },
24
+ "devDependencies": {
25
+ "typescript": "^5.0.0",
26
+ "vitest": "^1.0.0"
27
+ },
28
+ "exports": {
29
+ ".": "./dist/index.js"
30
+ },
31
+ "watch": {
32
+ "build": {
33
+ "patterns": "./src/**/*",
34
+ "extensions": [
35
+ ".ts"
36
+ ]
37
+ },
38
+ "test": {
39
+ "quiet": true,
40
+ "patterns": [
41
+ "./src/**/*",
42
+ "./test/**/*"
43
+ ],
44
+ "extensions": [
45
+ ".ts"
46
+ ]
47
+ }
48
+ },
49
+ "publishConfig": {
50
+ "access": "public"
51
+ }
52
+ }
package/src/index.ts ADDED
@@ -0,0 +1,6 @@
1
+ export * from "@automerge/automerge-repo/slim"
2
+
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/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
+ }