mirror of
https://github.com/badlogic/pi-mono.git
synced 2026-11-05 23:37:25 +00:00
Adds experimental session sync (`@earendil-works/pi-durable/sync`). Devices upload and pull a session's commits through a remote, reading them from the Chord store's outbox and applying them with `applyBatch`. If two devices continue the same session, the one that uploads second forks to a new session. I took out the extra sequence indexes from the earlier version of this branch, since the Chord outbox already persists every commit, so this no longer touches storage. --------- Co-authored-by: Armin Ronacher <armin.ronacher@active-4.com>
186 lines
4.7 KiB
JSON
186 lines
4.7 KiB
JSON
{
|
|
"name": "@earendil-works/chord",
|
|
"version": "1.5.0",
|
|
"description": "Object runtime for apps across processes: contracts, documents, a store, links, plugins with hot reload, HTTP, workers, web and terminal clients",
|
|
"type": "module",
|
|
"main": "./dist/index.js",
|
|
"types": "./dist/index.d.ts",
|
|
"exports": {
|
|
".": {
|
|
"source": "./src/index.ts",
|
|
"types": "./dist/index.d.ts",
|
|
"import": "./dist/index.js"
|
|
},
|
|
"./context": {
|
|
"source": "./src/context/index.ts",
|
|
"types": "./dist/context/index.d.ts",
|
|
"import": "./dist/context/index.js"
|
|
},
|
|
"./delta": {
|
|
"source": "./src/delta/index.ts",
|
|
"types": "./dist/delta/index.d.ts",
|
|
"import": "./dist/delta/index.js"
|
|
},
|
|
"./json": {
|
|
"source": "./src/json.ts",
|
|
"types": "./dist/json.d.ts",
|
|
"import": "./dist/json.js"
|
|
},
|
|
"./watch": {
|
|
"source": "./src/watch.ts",
|
|
"types": "./dist/watch.d.ts",
|
|
"import": "./dist/watch.js"
|
|
},
|
|
"./output": {
|
|
"source": "./src/output.ts",
|
|
"types": "./dist/output.d.ts",
|
|
"import": "./dist/output.js"
|
|
},
|
|
"./sqlite": {
|
|
"source": "./src/sqlite/index.ts",
|
|
"types": "./dist/sqlite/index.d.ts",
|
|
"import": "./dist/sqlite/index.js"
|
|
},
|
|
"./sqlite/node": {
|
|
"source": "./src/sqlite/node.ts",
|
|
"types": "./dist/sqlite/node.d.ts",
|
|
"import": "./dist/sqlite/node.js"
|
|
},
|
|
"./sqlite/cloudflare": {
|
|
"source": "./src/sqlite/cloudflare.ts",
|
|
"types": "./dist/sqlite/cloudflare.d.ts",
|
|
"import": "./dist/sqlite/cloudflare.js"
|
|
},
|
|
"./telemetry-sqlite": {
|
|
"source": "./src/telemetry-sqlite/index.ts",
|
|
"types": "./dist/telemetry-sqlite/index.d.ts",
|
|
"import": "./dist/telemetry-sqlite/index.js"
|
|
},
|
|
"./telemetry-sqlite/node": {
|
|
"source": "./src/telemetry-sqlite/node.ts",
|
|
"types": "./dist/telemetry-sqlite/node.d.ts",
|
|
"import": "./dist/telemetry-sqlite/node.js"
|
|
},
|
|
"./http": {
|
|
"source": "./src/node/http/index.ts",
|
|
"types": "./dist/node/http/index.d.ts",
|
|
"import": "./dist/node/http/index.js"
|
|
},
|
|
"./workers": {
|
|
"source": "./src/node/workers/index.ts",
|
|
"types": "./dist/node/workers/index.d.ts",
|
|
"import": "./dist/node/workers/index.js"
|
|
},
|
|
"./workers/child": {
|
|
"source": "./src/node/workers/child.ts",
|
|
"types": "./dist/node/workers/child.d.ts",
|
|
"import": "./dist/node/workers/child.js"
|
|
},
|
|
"./plugins": {
|
|
"source": "./src/node/plugins/index.ts",
|
|
"types": "./dist/node/plugins/index.d.ts",
|
|
"import": "./dist/node/plugins/index.js"
|
|
},
|
|
"./plugins/runtime": {
|
|
"source": "./src/node/plugins/runtime.ts",
|
|
"types": "./dist/node/plugins/runtime.d.ts",
|
|
"import": "./dist/node/plugins/runtime.js"
|
|
},
|
|
"./app": {
|
|
"source": "./src/node/app/index.ts",
|
|
"types": "./dist/node/app/index.d.ts",
|
|
"import": "./dist/node/app/index.js"
|
|
},
|
|
"./web": {
|
|
"source": "./src/web/index.ts",
|
|
"types": "./dist/web/index.d.ts",
|
|
"import": "./dist/web/index.js"
|
|
},
|
|
"./surfaces": {
|
|
"source": "./src/node/surfaces/index.ts",
|
|
"types": "./dist/node/surfaces/index.d.ts",
|
|
"import": "./dist/node/surfaces/index.js"
|
|
},
|
|
"./react": {
|
|
"source": "./src/react/index.ts",
|
|
"types": "./dist/react/index.d.ts",
|
|
"import": "./dist/react/index.js"
|
|
},
|
|
"./tui": {
|
|
"source": "./src/tui/index.ts",
|
|
"types": "./dist/tui/index.d.ts",
|
|
"import": "./dist/tui/index.js"
|
|
},
|
|
"./tui/launcher": {
|
|
"source": "./src/node/tui/index.ts",
|
|
"types": "./dist/node/tui/index.d.ts",
|
|
"import": "./dist/node/tui/index.js"
|
|
},
|
|
"./sync": {
|
|
"source": "./src/sync/index.ts",
|
|
"types": "./dist/sync/index.d.ts",
|
|
"import": "./dist/sync/index.js"
|
|
},
|
|
"./package.json": "./package.json"
|
|
},
|
|
"sideEffects": false,
|
|
"files": [
|
|
"dist",
|
|
"docs",
|
|
"README.md",
|
|
"CHANGELOG.md",
|
|
"src/delta/README.md"
|
|
],
|
|
"scripts": {
|
|
"clean": "node ../../scripts/package-files.mjs clean dist",
|
|
"build": "tsc -p tsconfig.build.json",
|
|
"test": "vitest --run",
|
|
"prepublishOnly": "npm run clean && npm run build"
|
|
},
|
|
"keywords": [
|
|
"application",
|
|
"plugins",
|
|
"rpc",
|
|
"contracts",
|
|
"state"
|
|
],
|
|
"author": "Earendil Works",
|
|
"license": "MIT",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/earendil-works/pi.git",
|
|
"directory": "packages/chord"
|
|
},
|
|
"engines": {
|
|
"node": ">=22.19.0"
|
|
},
|
|
"dependencies": {
|
|
"@earendil-works/pi-schema": "1.5.0",
|
|
"@earendil-works/pi-telemetry": "1.5.0"
|
|
},
|
|
"peerDependencies": {
|
|
"esbuild": "0.28.2",
|
|
"react": "19.3.0",
|
|
"ws": "8.21.0"
|
|
},
|
|
"peerDependenciesMeta": {
|
|
"esbuild": {
|
|
"optional": true
|
|
},
|
|
"react": {
|
|
"optional": true
|
|
},
|
|
"ws": {
|
|
"optional": true
|
|
}
|
|
},
|
|
"devDependencies": {
|
|
"@types/react": "19.2.14",
|
|
"@types/react-dom": "19.2.3",
|
|
"@types/ws": "8.18.2",
|
|
"react": "19.3.0",
|
|
"react-dom": "19.3.0",
|
|
"vitest": "4.1.12",
|
|
"ws": "8.21.0"
|
|
}
|
|
}
|