@livestore/livestore 0.4.0-dev.21 → 0.4.0-dev.23
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 +0 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/QueryCache.js +1 -1
- package/dist/QueryCache.js.map +1 -1
- package/dist/SqliteDbWrapper.d.ts +5 -5
- package/dist/SqliteDbWrapper.d.ts.map +1 -1
- package/dist/SqliteDbWrapper.js +8 -8
- package/dist/SqliteDbWrapper.js.map +1 -1
- package/dist/SqliteDbWrapper.test.js +2 -2
- package/dist/SqliteDbWrapper.test.js.map +1 -1
- package/dist/effect/LiveStore.d.ts +130 -2
- package/dist/effect/LiveStore.d.ts.map +1 -1
- package/dist/effect/LiveStore.js +185 -6
- package/dist/effect/LiveStore.js.map +1 -1
- package/dist/effect/LiveStore.test.d.ts +2 -0
- package/dist/effect/LiveStore.test.d.ts.map +1 -0
- package/dist/effect/LiveStore.test.js +42 -0
- package/dist/effect/LiveStore.test.js.map +1 -0
- package/dist/effect/mod.d.ts +1 -1
- package/dist/effect/mod.d.ts.map +1 -1
- package/dist/effect/mod.js +3 -1
- package/dist/effect/mod.js.map +1 -1
- package/dist/live-queries/base-class.d.ts +3 -3
- package/dist/live-queries/base-class.d.ts.map +1 -1
- package/dist/live-queries/base-class.js +2 -2
- package/dist/live-queries/base-class.js.map +1 -1
- package/dist/live-queries/client-document-get-query.d.ts +1 -1
- package/dist/live-queries/client-document-get-query.d.ts.map +1 -1
- package/dist/live-queries/client-document-get-query.js +1 -1
- package/dist/live-queries/client-document-get-query.js.map +1 -1
- package/dist/live-queries/computed.d.ts.map +1 -1
- package/dist/live-queries/computed.js +2 -2
- package/dist/live-queries/computed.js.map +1 -1
- package/dist/live-queries/db-query.js +14 -14
- package/dist/live-queries/db-query.js.map +1 -1
- package/dist/live-queries/db-query.test.js +2 -2
- package/dist/live-queries/db-query.test.js.map +1 -1
- package/dist/live-queries/signal.test.js +2 -2
- package/dist/live-queries/signal.test.js.map +1 -1
- package/dist/mod.d.ts +2 -1
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +1 -0
- package/dist/mod.js.map +1 -1
- package/dist/reactive.d.ts +9 -9
- package/dist/reactive.d.ts.map +1 -1
- package/dist/reactive.js +9 -26
- package/dist/reactive.js.map +1 -1
- package/dist/reactive.test.js +2 -2
- package/dist/reactive.test.js.map +1 -1
- package/dist/store/StoreRegistry.d.ts +215 -0
- package/dist/store/StoreRegistry.d.ts.map +1 -0
- package/dist/store/StoreRegistry.js +267 -0
- package/dist/store/StoreRegistry.js.map +1 -0
- package/dist/store/StoreRegistry.test.d.ts +2 -0
- package/dist/store/StoreRegistry.test.d.ts.map +1 -0
- package/dist/store/StoreRegistry.test.js +381 -0
- package/dist/store/StoreRegistry.test.js.map +1 -0
- package/dist/store/create-store.d.ts +56 -6
- package/dist/store/create-store.d.ts.map +1 -1
- package/dist/store/create-store.js +32 -7
- package/dist/store/create-store.js.map +1 -1
- package/dist/store/devtools.d.ts +1 -1
- package/dist/store/devtools.d.ts.map +1 -1
- package/dist/store/devtools.js +16 -3
- package/dist/store/devtools.js.map +1 -1
- package/dist/store/store-eventstream.test.js +2 -2
- package/dist/store/store-eventstream.test.js.map +1 -1
- package/dist/store/store-types.d.ts +59 -9
- package/dist/store/store-types.d.ts.map +1 -1
- package/dist/store/store-types.js.map +1 -1
- package/dist/store/store-types.test.js +1 -1
- package/dist/store/store-types.test.js.map +1 -1
- package/dist/store/store.d.ts +102 -6
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +148 -47
- package/dist/store/store.js.map +1 -1
- package/dist/utils/dev.js.map +1 -1
- package/dist/utils/stack-info.js +2 -2
- package/dist/utils/stack-info.js.map +1 -1
- package/dist/utils/tests/fixture.d.ts +1 -1
- package/dist/utils/tests/fixture.d.ts.map +1 -1
- package/dist/utils/tests/fixture.js.map +1 -1
- package/dist/utils/tests/otel.d.ts.map +1 -1
- package/dist/utils/tests/otel.js +5 -5
- package/dist/utils/tests/otel.js.map +1 -1
- package/package.json +59 -18
- package/src/QueryCache.ts +1 -1
- package/src/SqliteDbWrapper.test.ts +4 -2
- package/src/SqliteDbWrapper.ts +12 -11
- package/src/ambient.d.ts +0 -7
- package/src/effect/LiveStore.test.ts +61 -0
- package/src/effect/LiveStore.ts +381 -8
- package/src/effect/mod.ts +13 -1
- package/src/live-queries/__snapshots__/db-query.test.ts.snap +336 -231
- package/src/live-queries/base-class.ts +7 -6
- package/src/live-queries/client-document-get-query.ts +4 -2
- package/src/live-queries/computed.ts +3 -2
- package/src/live-queries/db-query.test.ts +3 -2
- package/src/live-queries/db-query.ts +15 -15
- package/src/live-queries/signal.test.ts +3 -2
- package/src/mod.ts +2 -0
- package/src/reactive.test.ts +3 -2
- package/src/reactive.ts +22 -23
- package/src/store/StoreRegistry.test.ts +540 -0
- package/src/store/StoreRegistry.ts +418 -0
- package/src/store/create-store.ts +76 -15
- package/src/store/devtools.ts +20 -6
- package/src/store/store-eventstream.test.ts +4 -2
- package/src/store/store-types.test.ts +3 -1
- package/src/store/store-types.ts +64 -13
- package/src/store/store.ts +197 -60
- package/src/utils/dev.ts +2 -2
- package/src/utils/stack-info.ts +2 -2
- package/src/utils/tests/fixture.ts +2 -1
- package/src/utils/tests/otel.ts +8 -7
- package/docs/api/index.md +0 -3
- package/docs/building-with-livestore/complex-ui-state/index.md +0 -5
- package/docs/building-with-livestore/crud/index.md +0 -5
- package/docs/building-with-livestore/data-modeling/index.md +0 -1
- package/docs/building-with-livestore/debugging/index.md +0 -17
- package/docs/building-with-livestore/devtools/index.md +0 -79
- package/docs/building-with-livestore/events/index.md +0 -355
- package/docs/building-with-livestore/examples/ai-agent/index.md +0 -5
- package/docs/building-with-livestore/examples/index.md +0 -30
- package/docs/building-with-livestore/examples/todo-workspaces/index.md +0 -891
- package/docs/building-with-livestore/examples/turnbased-game/index.md +0 -7
- package/docs/building-with-livestore/opentelemetry/index.md +0 -208
- package/docs/building-with-livestore/production-checklist/index.md +0 -5
- package/docs/building-with-livestore/reactivity-system/index.md +0 -202
- package/docs/building-with-livestore/rules-for-ai-agents/index.md +0 -9
- package/docs/building-with-livestore/state/materializers/index.md +0 -300
- package/docs/building-with-livestore/state/sql-queries/index.md +0 -72
- package/docs/building-with-livestore/state/sqlite/index.md +0 -45
- package/docs/building-with-livestore/state/sqlite-schema/index.md +0 -306
- package/docs/building-with-livestore/state/sqlite-schema-effect/index.md +0 -300
- package/docs/building-with-livestore/store/index.md +0 -281
- package/docs/building-with-livestore/syncing/index.md +0 -136
- package/docs/building-with-livestore/tools/cli/index.md +0 -177
- package/docs/building-with-livestore/tools/mcp/index.md +0 -187
- package/docs/examples/cloudflare-adapter/index.md +0 -44
- package/docs/examples/expo-adapter/index.md +0 -44
- package/docs/examples/index.md +0 -55
- package/docs/examples/node-adapter/index.md +0 -44
- package/docs/examples/web-adapter/index.md +0 -52
- package/docs/framework-integrations/custom-elements/index.md +0 -142
- package/docs/framework-integrations/react-integration/index.md +0 -918
- package/docs/framework-integrations/solid-integration/index.md +0 -293
- package/docs/framework-integrations/svelte-integration/index.md +0 -42
- package/docs/framework-integrations/vue-integration/index.md +0 -294
- package/docs/getting-started/expo/index.md +0 -736
- package/docs/getting-started/node/index.md +0 -115
- package/docs/getting-started/react-web/index.md +0 -573
- package/docs/getting-started/solid/index.md +0 -3
- package/docs/getting-started/vue/index.md +0 -471
- package/docs/index.md +0 -209
- package/docs/llms.txt +0 -147
- package/docs/misc/CODE_OF_CONDUCT/index.md +0 -133
- package/docs/misc/FAQ/index.md +0 -37
- package/docs/misc/community/index.md +0 -88
- package/docs/misc/credits/index.md +0 -14
- package/docs/misc/design-partners/index.md +0 -13
- package/docs/misc/package-management/index.md +0 -21
- package/docs/misc/performance/index.md +0 -25
- package/docs/misc/resources/index.md +0 -46
- package/docs/misc/state-of-the-project/index.md +0 -37
- package/docs/misc/troubleshooting/index.md +0 -82
- package/docs/overview/concepts/index.md +0 -78
- package/docs/overview/how-livestore-works/index.md +0 -56
- package/docs/overview/introduction/index.md +0 -5
- package/docs/overview/technology-comparison/index.md +0 -40
- package/docs/overview/when-livestore/index.md +0 -81
- package/docs/overview/why-livestore/index.md +0 -5
- package/docs/patterns/ai/index.md +0 -15
- package/docs/patterns/anonymous-user-transition/index.md +0 -10
- package/docs/patterns/app-evolution/index.md +0 -72
- package/docs/patterns/auth/index.md +0 -226
- package/docs/patterns/effect/index.md +0 -1495
- package/docs/patterns/encryption/index.md +0 -6
- package/docs/patterns/external-data/index.md +0 -5
- package/docs/patterns/file-management/index.md +0 -11
- package/docs/patterns/file-structure/index.md +0 -14
- package/docs/patterns/list-ordering/index.md +0 -369
- package/docs/patterns/offline/index.md +0 -32
- package/docs/patterns/orm/index.md +0 -18
- package/docs/patterns/presence/index.md +0 -11
- package/docs/patterns/rich-text-editing/index.md +0 -11
- package/docs/patterns/server-side-clients/index.md +0 -97
- package/docs/patterns/side-effects/index.md +0 -11
- package/docs/patterns/state-machines/index.md +0 -11
- package/docs/patterns/storybook/index.md +0 -192
- package/docs/patterns/undo-redo/index.md +0 -9
- package/docs/patterns/version-control/index.md +0 -8
- package/docs/platform-adapters/cloudflare-durable-object-adapter/index.md +0 -453
- package/docs/platform-adapters/electron-adapter/index.md +0 -15
- package/docs/platform-adapters/expo-adapter/index.md +0 -245
- package/docs/platform-adapters/node-adapter/index.md +0 -160
- package/docs/platform-adapters/tauri-adapter/index.md +0 -15
- package/docs/platform-adapters/web-adapter/index.md +0 -218
- package/docs/sustainable-open-source/contributing/docs/index.md +0 -94
- package/docs/sustainable-open-source/contributing/info/index.md +0 -63
- package/docs/sustainable-open-source/contributing/monorepo/index.md +0 -195
- package/docs/sustainable-open-source/sponsoring/index.md +0 -104
- package/docs/sync-providers/cloudflare/index.md +0 -773
- package/docs/sync-providers/custom/index.md +0 -65
- package/docs/sync-providers/electricsql/index.md +0 -159
- package/docs/sync-providers/s2/index.md +0 -230
- package/docs/tutorial/0-welcome/index.md +0 -48
- package/docs/tutorial/1-setup-starter-project/index.md +0 -105
- package/docs/tutorial/2-deploy-to-cloudflare/index.md +0 -195
- package/docs/tutorial/3-read-and-write-todos-via-livestore/index.md +0 -511
- package/docs/tutorial/4-sync-data-via-cloudflare/index.md +0 -210
- package/docs/tutorial/5-expand-business-logic/index.md +0 -174
- package/docs/tutorial/6-persist-ui-state/index.md +0 -453
- package/docs/tutorial/7-next-steps/index.md +0 -22
- package/docs/understanding-livestore/design-decisions/index.md +0 -33
- package/docs/understanding-livestore/event-sourcing/index.md +0 -40
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
# 2. Deploy to Cloudflare Workers
|
|
2
|
-
|
|
3
|
-
In this tutorial, you're going to use Cloudflare for deployment.
|
|
4
|
-
|
|
5
|
-
:::note[Skip if you don't care about deployment]
|
|
6
|
-
If you're only interested in learning about concepts of LiveStore and don't care about deployment, you can skip this step and move to the next chapter.
|
|
7
|
-
|
|
8
|
-
**That being said, we recommend that you deploy the app so that you can experience first-hand the power of _syncing data across devices_ later in the tutorial.**
|
|
9
|
-
:::
|
|
10
|
-
|
|
11
|
-
## Configure the Vite plugin for Cloudflare
|
|
12
|
-
|
|
13
|
-
First, you're going to install [Cloudflare's Vite plugin](https://developers.cloudflare.com/workers/vite-plugin/):
|
|
14
|
-
|
|
15
|
-
<Tabs syncKey="package-manager">
|
|
16
|
-
|
|
17
|
-
<TabItem label="bun">
|
|
18
|
-
|
|
19
|
-
<Code code={`bun add -d @cloudflare/vite-plugin`} lang="sh" />
|
|
20
|
-
|
|
21
|
-
</TabItem>
|
|
22
|
-
|
|
23
|
-
<TabItem label="pnpm">
|
|
24
|
-
|
|
25
|
-
<Code code={`pnpm add -D @cloudflare/vite-plugin`} lang="sh" />
|
|
26
|
-
|
|
27
|
-
</TabItem>
|
|
28
|
-
|
|
29
|
-
</Tabs>
|
|
30
|
-
|
|
31
|
-
Now, add it to your `vite.config.ts`:
|
|
32
|
-
|
|
33
|
-
```diff title="vite.config.ts" lang="ts"
|
|
34
|
-
|
|
35
|
-
+import { cloudflare } from '@cloudflare/vite-plugin'
|
|
36
|
-
|
|
37
|
-
export default defineConfig({
|
|
38
|
-
plugins: [
|
|
39
|
-
react(),
|
|
40
|
-
tailwindcss(),
|
|
41
|
-
+ cloudflare(),
|
|
42
|
-
],
|
|
43
|
-
})
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Configure Wrangler
|
|
47
|
-
|
|
48
|
-
Cloudflare deployments can be managed via [Wrangler](https://developers.cloudflare.com/workers/wrangler/), so you'll first need to install the Wrangler CLI:
|
|
49
|
-
|
|
50
|
-
<Tabs syncKey="package-manager">
|
|
51
|
-
|
|
52
|
-
<TabItem label="bun">
|
|
53
|
-
|
|
54
|
-
<Code code={`bun add -d wrangler`} lang="sh" />
|
|
55
|
-
|
|
56
|
-
</TabItem>
|
|
57
|
-
|
|
58
|
-
<TabItem label="pnpm">
|
|
59
|
-
|
|
60
|
-
<Code code={`pnpm add wrangler -D`} lang="sh" />
|
|
61
|
-
|
|
62
|
-
</TabItem>
|
|
63
|
-
|
|
64
|
-
</Tabs>
|
|
65
|
-
|
|
66
|
-
Now, create a `wrangler.toml`:
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
touch wrangler.toml
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
Add the following contents to it:
|
|
73
|
-
|
|
74
|
-
```toml title="wrangler.toml"
|
|
75
|
-
name = "livestore-todo-app"
|
|
76
|
-
compatibility_date = "2024-10-28"
|
|
77
|
-
|
|
78
|
-
[observability]
|
|
79
|
-
enabled = true
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
## Configure `deploy` script
|
|
83
|
-
|
|
84
|
-
In your `package.json`, add a new script called `deploy` that looks as follows:
|
|
85
|
-
|
|
86
|
-
<Tabs syncKey="package-manager">
|
|
87
|
-
|
|
88
|
-
<TabItem label="package.json (bun)">
|
|
89
|
-
|
|
90
|
-
<Code code={`// ... other properties
|
|
91
|
-
"scripts": {
|
|
92
|
-
"dev": "vite",
|
|
93
|
-
"build": "tsc -b && vite build",
|
|
94
|
-
"lint": "eslint .",
|
|
95
|
-
"preview": "vite preview",
|
|
96
|
-
"deploy": "bun run build && wrangler deploy"
|
|
97
|
-
},
|
|
98
|
-
// ... other properties`} lang="js" />
|
|
99
|
-
|
|
100
|
-
</TabItem>
|
|
101
|
-
|
|
102
|
-
<TabItem label="pnpm">
|
|
103
|
-
|
|
104
|
-
<Code code={`// ... other properties
|
|
105
|
-
"scripts": {
|
|
106
|
-
"dev": "vite",
|
|
107
|
-
"build": "tsc -b && vite build",
|
|
108
|
-
"lint": "eslint .",
|
|
109
|
-
"preview": "vite preview",
|
|
110
|
-
"deploy": "pnpm run build && wrangler deploy"
|
|
111
|
-
},
|
|
112
|
-
// ... other properties`} lang="js" />
|
|
113
|
-
|
|
114
|
-
</TabItem>
|
|
115
|
-
|
|
116
|
-
</Tabs>
|
|
117
|
-
|
|
118
|
-
## Deploy the app
|
|
119
|
-
|
|
120
|
-
Deploy the app by running the `deploy` script:
|
|
121
|
-
|
|
122
|
-
<Tabs syncKey="package-manager">
|
|
123
|
-
|
|
124
|
-
<TabItem label="bun">
|
|
125
|
-
|
|
126
|
-
<Code code={`bun run deploy`} lang="sh" />
|
|
127
|
-
|
|
128
|
-
</TabItem>
|
|
129
|
-
|
|
130
|
-
<TabItem label="pnpm">
|
|
131
|
-
|
|
132
|
-
<Code code={`pnpm run deploy`} lang="sh" />
|
|
133
|
-
|
|
134
|
-
</TabItem>
|
|
135
|
-
|
|
136
|
-
</Tabs>
|
|
137
|
-
|
|
138
|
-
<details>
|
|
139
|
-
<summary>Expand to view the expected command output</summary>
|
|
140
|
-
|
|
141
|
-
Here's the expected output:
|
|
142
|
-
|
|
143
|
-
```
|
|
144
|
-
➜ livestore-todo-app git:(main) ✗ pnpm run deploy
|
|
145
|
-
|
|
146
|
-
> livestore-todo-app@0.0.0 deploy /Users/nikolasburk/Projects/LiveStore/plain-react-tutorial/livestore-todo-app
|
|
147
|
-
> pnpm run build && wrangler deploy
|
|
148
|
-
|
|
149
|
-
> livestore-todo-app@0.0.0 build /Users/nikolasburk/Projects/LiveStore/plain-react-tutorial/livestore-todo-app
|
|
150
|
-
> tsc -b && vite build
|
|
151
|
-
|
|
152
|
-
vite v7.1.12 building for production...
|
|
153
|
-
✓ 29 modules transformed.
|
|
154
|
-
dist/.assetsignore 0.02 kB
|
|
155
|
-
dist/index.html 0.47 kB │ gzip: 0.30 kB
|
|
156
|
-
dist/wrangler.json 1.15 kB │ gzip: 0.56 kB
|
|
157
|
-
dist/assets/index-DEkdisv2.css 9.64 kB │ gzip: 2.74 kB
|
|
158
|
-
dist/assets/index-COIOT0yp.js 196.04 kB │ gzip: 61.45 kB
|
|
159
|
-
✓ built in 319ms
|
|
160
|
-
|
|
161
|
-
⛅️ wrangler 4.45.1
|
|
162
|
-
───────────────────
|
|
163
|
-
Using redirected Wrangler configuration.
|
|
164
|
-
- Configuration being used: "dist/wrangler.json"
|
|
165
|
-
- Original user's configuration: "wrangler.toml"
|
|
166
|
-
- Deploy configuration file: ".wrangler/deploy/config.json"
|
|
167
|
-
🌀 Building list of assets...
|
|
168
|
-
✨ Read 7 files from the assets directory /Users/nikolasburk/Projects/LiveStore/plain-react-tutorial/livestore-todo-app/dist
|
|
169
|
-
🌀 Starting asset upload...
|
|
170
|
-
🌀 Found 4 new or modified static assets to upload. Proceeding with upload...
|
|
171
|
-
+ /index.html
|
|
172
|
-
+ /assets/index-COIOT0yp.js
|
|
173
|
-
+ /livestore.svg
|
|
174
|
-
+ /assets/index-DEkdisv2.css
|
|
175
|
-
Uploaded 1 of 4 assets
|
|
176
|
-
Uploaded 2 of 4 assets
|
|
177
|
-
Uploaded 4 of 4 assets
|
|
178
|
-
✨ Success! Uploaded 4 files (2.67 sec)
|
|
179
|
-
|
|
180
|
-
Total Upload: 0.34 KiB / gzip: 0.23 KiB
|
|
181
|
-
Uploaded livestore-todo-app (13.40 sec)
|
|
182
|
-
Deployed livestore-todo-app triggers (4.40 sec)
|
|
183
|
-
https://livestore-todo-app.nikolas-burk.workers.dev
|
|
184
|
-
Current Version ID: 37ce16a4-0bfd-4ecb-829e-a2737c84d9cf
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
</details>
|
|
188
|
-
|
|
189
|
-
If everything worked as expected, your app is now running at: `https://livestore-todo-app.USERNAME.workers.dev`
|
|
190
|
-
|
|
191
|
-
Find your specific URL in the terminal output or navigate to the **Workers & Pages** section in your [Cloudflare Dashboard](https://dash.cloudflare.com/) to find the project and the URL.
|
|
192
|
-
|
|
193
|
-
The app should look and behave exactly like the local version from the previous step:
|
|
194
|
-
|
|
195
|
-

|