Compare commits

...

1633 Commits

Author SHA1 Message Date
Trisha Lim
b4e31657a0 Fix typo 2024-11-18 12:36:39 +00:00
Trisha Lim
5bb1ad4c42 Move vue up the nav 2024-11-18 12:05:45 +00:00
Trisha Lim
3ed74b6b1d Write intro in react guide 2024-11-18 12:00:34 +00:00
Trisha Lim
823a343fe1 Rewrite docs intro page 2024-11-18 11:56:29 +00:00
Guido D'Orsi
6610aea708 Merge pull request #761 from gardencmp/changeset-release/main
Version Packages
2024-11-15 20:30:51 +01:00
github-actions[bot]
f6b6c01852 Version Packages 2024-11-15 18:40:37 +00:00
Trisha Lim
63f9aa6b97 fix: active route styling on docs 2024-11-15 18:39:20 +00:00
pax-k
822eb22da6 fix(docs): fix github URL reference 2024-11-15 20:22:46 +02:00
Anselm Eickhoff
fdf3c6e93d Merge pull request #742 from gardencmp/vue-docs
Vue docs
2024-11-15 18:06:41 +00:00
Guido D'Orsi
de38161023 Merge pull request #770 from gardencmp/gudorsi-jazz-492
fix(useAcceptInvite): trigger the onAccept callback on hashchange
2024-11-15 18:50:15 +01:00
Guido D'Orsi
59cc64d697 fix(useAcceptInvite): trigger the onAccept callback on hashchange 2024-11-15 18:33:27 +01:00
pax-k
55c249834a chore(docs): cleanup 2024-11-15 19:26:16 +02:00
pax-k
dd189abd4a chore: pnpm lock 2024-11-15 19:16:32 +02:00
pax-k
df1a8e9c99 feat: vue docs 2024-11-15 19:13:19 +02:00
pax-k
259467ac3f Merge branch 'main' into vue-docs 2024-11-15 19:09:34 +02:00
Anselm Eickhoff
9a93ab2476 Merge pull request #767 from gardencmp/aeplay-jazz-447
Implement dynamic tables of content
2024-11-15 17:02:39 +00:00
Anselm
337272bbdc Merge branch 'main' into aeplay-jazz-447 2024-11-15 16:56:36 +00:00
pax-k
464ef7d9c3 chore: cleanup 2024-11-15 18:50:27 +02:00
pax-k
8727089654 Merge branch 'aeplay-jazz-447' of https://github.com/gardencmp/jazz into aeplay-jazz-447 2024-11-15 18:45:57 +02:00
pax-k
753bceddb3 fix: SSG for docs 2024-11-15 18:44:47 +02:00
Trisha Lim
8202996108 fix: TOC grows too wide if text is long 2024-11-15 16:31:21 +00:00
Trisha Lim
1385c8a66f Remove custom IDs on headings in mdx files 2024-11-15 15:48:02 +00:00
Anselm
2a72942f8e Implement dynamic ToCs 2024-11-15 15:34:35 +00:00
Anselm Eickhoff
e16836becc Merge pull request #765 from gardencmp/trishalim-jazz-480
Move examples page outside of docs
2024-11-15 15:21:06 +00:00
Trisha Lim
134a101a52 Center align book app thumbnail 2024-11-15 14:11:12 +00:00
Trisha Lim
3fc6030776 Update music player thumbnail 2024-11-15 14:08:40 +00:00
Anselm Eickhoff
8aebe61bf9 Merge pull request #762 from gardencmp/trishalim-jazz-440
Put social icons back to nav
2024-11-15 13:58:08 +00:00
Trisha Lim
8c9e807c19 Move examples page outside of docs 2024-11-15 12:07:42 +00:00
Trisha Lim
e25e4080c7 Reduce large prose font size 2024-11-15 12:04:17 +00:00
Trisha Lim
70a8353fe6 Remove roadmap link from footer 2024-11-15 11:53:54 +00:00
Trisha Lim
185b0d866a Replace Twitter with X 2024-11-15 11:53:41 +00:00
Trisha Lim
717667ac4c Fix color of garden logo 2024-11-15 11:51:24 +00:00
Trisha Lim
a0151caf02 Put social icons back to nav 2024-11-15 11:48:19 +00:00
Guido D'Orsi
c259331f57 Merge pull request #752 from gardencmp/reuse-crypto
fix: reuse the crypto instance when creating the browser context
2024-11-15 12:33:35 +01:00
Guido D'Orsi
f6bc8afa06 chore: changeset 2024-11-15 12:21:47 +01:00
Anselm Eickhoff
cee0aea5e6 Merge pull request #713 from gardencmp/trishalim-jazz-440
Redesign main nav on desktop
2024-11-15 11:20:28 +00:00
Anselm Eickhoff
c0e11f543d Merge pull request #741 from gardencmp/marina-onboarding-example
Onboarding example
2024-11-15 10:57:51 +00:00
pax
df359ab6dd Update selfish-wolves-shout.md 2024-11-14 17:01:28 +02:00
Anselm Eickhoff
d89da07d42 Merge pull request #753 from gardencmp/bensleveritt-patch-1
Fix mesh reference
2024-11-14 11:37:46 +00:00
pax
94098c1f1f Merge pull request #755 from gardencmp/JAZZ-485-docs-pin-react-native-deps
Updated react-native docs and removed babel config section
2024-11-14 12:07:25 +02:00
pax-k
e71e83a217 Merge branch 'main' into JAZZ-485-docs-pin-react-native-deps 2024-11-14 11:58:30 +02:00
pax-k
df0b21caed chore: pnpm lock 2024-11-14 11:58:06 +02:00
Anselm Eickhoff
6921e621d7 Merge pull request #749 from gardencmp/changeset-release/main
Version Packages
2024-11-14 09:41:28 +00:00
pax-k
ec9e03c266 fix: updated react-native docs and removed babel config section 2024-11-14 11:40:27 +02:00
github-actions[bot]
1b0ef401fb Version Packages 2024-11-14 09:29:38 +00:00
pax
1833983b8d Merge pull request #754 from gardencmp/jazz-tools-ts-target
Change jazz-tools TS target to ES2021
2024-11-14 11:28:21 +02:00
pax-k
149ca97c48 chore: changeset 2024-11-14 11:15:25 +02:00
pax-k
f01a7621b0 fix: change jazz-tools TS target to ES2021 2024-11-14 11:13:13 +02:00
Benjamin S. Leveritt
e6a1e2f169 Fix mesh reference 2024-11-14 06:32:10 +00:00
Guido D'Orsi
6413059709 fix: assign a unique name to the IndexedDB storage peer 2024-11-13 20:14:22 +01:00
Guido D'Orsi
3c6fd37aba fix: reuse the crypto instance when creating the browser context 2024-11-13 18:39:49 +01:00
Marina Orlova
8dc90a3554 Fixed Jazz workspace versions 2024-11-13 18:26:15 +01:00
Marina Orlova
51b1818de6 Fix group creation 2024-11-13 16:19:48 +01:00
Anselm Eickhoff
ec7c416097 Merge pull request #744 from gardencmp/better-known-state
fix: dispatch more updates to knownState
2024-11-13 14:16:50 +00:00
Guido D'Orsi
0f30eeaec6 chore: changeset 2024-11-13 15:12:18 +01:00
Guido D'Orsi
5a3cf04ba7 fix: dispatch more updates to knownState 2024-11-13 12:32:24 +01:00
pax-k
1fe74be8af fix(jazz-vue): useCoState accepts id as either a ref or a plain value 2024-11-13 12:47:05 +02:00
pax-k
376032f54c chore: cleanup 2024-11-13 11:39:23 +02:00
Anselm Eickhoff
d6e744d948 Merge pull request #738 from gardencmp/changeset-release/main 2024-11-12 22:11:31 +00:00
github-actions[bot]
23b3acb58c Version Packages 2024-11-12 22:10:32 +00:00
Anselm Eickhoff
f32d0c1fad Merge pull request #743 from gardencmp/fix/react-provider-multiple-storage
fix: fixes the react provider intialization when multiple storage options are provided
2024-11-12 22:09:16 +00:00
Guido D'Orsi
a69ed0b7cd chore: changeset 2024-11-12 22:43:19 +01:00
Guido D'Orsi
b4d7024b98 fix: fixes the react provider intialization when multiple storage options are provided 2024-11-12 22:42:27 +01:00
Marina Orlova
222a2ce2e6 Fixed test 2024-11-12 20:41:26 +01:00
Marina Orlova
34a50a9173 Adds the app into Playwright Tests job 2024-11-12 20:28:15 +01:00
Marina Orlova
72c6198ef7 Adds tests 2024-11-12 20:28:15 +01:00
Marina Orlova
e4df1048c8 pnpm-lock 2024-11-12 20:28:15 +01:00
Marina Orlova
e8abd06406 Fix schema 2024-11-12 20:28:15 +01:00
Marina Orlova
968c2bd699 Onboarding app: Make tests run 2024-11-12 20:28:15 +01:00
Marina Orlova
12b6a3b291 Add path alias 2024-11-12 20:28:15 +01:00
Marina Orlova
c9f89e9c32 Adds onboarding example 2024-11-12 20:28:15 +01:00
pax-k
d27cff5c67 feat(docs): added VueJS docs 2024-11-12 20:41:53 +02:00
pax-k
a734530cc3 chore: added changeset 2024-11-12 19:55:58 +02:00
pax-k
cc51926d14 chore: biome fix 2024-11-12 19:53:52 +02:00
Guido D'Orsi
c0395dd0a3 Merge pull request #723 from gardencmp/feature/typescript-as-dev
fix: set up typescript as dev dependency
2024-11-12 18:48:28 +01:00
Guido D'Orsi
51d7ca09d9 Merge remote-tracking branch 'origin/main' into feature/typescript-as-dev 2024-11-12 18:41:56 +01:00
pax-k
fce808cc48 fix(chat-vue): pass computed(id) to useCoState 2024-11-12 19:37:49 +02:00
pax-k
4a9217eb25 fix(jazz-vue): useCoState reactive to id 2024-11-12 19:36:46 +02:00
pax-k
69df98f4fa feat(todo-vue): implemented a Todo demo app for jazz-vue 2024-11-12 19:35:59 +02:00
Anselm Eickhoff
cf0a38d6bf Merge pull request #739 from gardencmp/fix/autologin
Move auto login check to useEffect
2024-11-12 10:56:35 +00:00
Trisha Lim
dd9b13fbaa Add changeset 2024-11-11 20:37:22 +00:00
Trisha Lim
6a982a29cb Move auto login check to useEffect 2024-11-11 20:35:41 +00:00
Anselm Eickhoff
ebc1b03158 Merge pull request #737 from gardencmp/feat/demo-auth-user-prop 2024-11-11 19:41:24 +00:00
Trisha Lim
adaf01f7fa Add bg blur effect on popover 2024-11-11 19:37:41 +00:00
Trisha Lim
c048f4eda9 Increase spacing in popover 2024-11-11 19:37:41 +00:00
Trisha Lim
b06272ff17 Layout fix 2024-11-11 19:37:40 +00:00
Trisha Lim
ac37bfab2d Close popover on click of link 2024-11-11 19:37:40 +00:00
Trisha Lim
d8e50824cb Add description and icon to mega menu items 2024-11-11 19:37:40 +00:00
Trisha Lim
29b27291a3 Links placement in desktop nav 2024-11-11 19:37:40 +00:00
Trisha Lim
efa1b60585 Add mobile nav 2024-11-11 19:37:39 +00:00
Trisha Lim
9d0b39c5cb Add popover menu to main nav using headless 2024-11-11 19:37:18 +00:00
Trisha Lim
2a02a5b212 Remove unused shadcn configs 2024-11-11 19:37:18 +00:00
Trisha Lim
c6931b82a0 Add changeset 2024-11-11 18:58:22 +00:00
Anselm Eickhoff
279e2202ba Merge pull request #710 from gardencmp/trishalim-jazz-455 2024-11-11 18:40:32 +00:00
Anselm Eickhoff
ec2324519e Merge pull request #735 from gardencmp/feat/demo-auth-user-prop 2024-11-11 18:38:46 +00:00
Anselm Eickhoff
5932f50c68 Merge pull request #699 from gardencmp/trishalim-jazz-458 2024-11-11 18:36:30 +00:00
Anselm Eickhoff
00906e5d08 Merge pull request #732 from gardencmp/fix/todo-demo-link 2024-11-11 18:35:59 +00:00
Trisha Lim
7bc5fca440 Add user prop to demo auth to skip login on demos 2024-11-11 16:35:55 +00:00
Trisha Lim
e30eb224ae Update demo links 2024-11-11 16:20:09 +00:00
Trisha Lim
983ea7cf03 Fix link to demo for pets example 2024-11-11 16:15:12 +00:00
Trisha Lim
ad2d453e33 Thumbnail fixes for mobile/tablet 2024-11-11 16:13:40 +00:00
Trisha Lim
15d711f6de Formatting fixes 2024-11-11 16:13:40 +00:00
Trisha Lim
7441a7d3d8 Formatting fixes 2024-11-11 16:13:40 +00:00
Trisha Lim
0d756209e9 Layout for mobile 2024-11-11 16:13:40 +00:00
Trisha Lim
b20c2ca173 Add images, description to examples 2024-11-11 16:13:40 +00:00
Trisha Lim
987a186db3 Add tech and features to example apps 2024-11-11 16:13:40 +00:00
Trisha Lim
f4e0b59fa1 Indicate active page on side nav 2024-11-11 16:13:31 +00:00
Trisha Lim
0d2112d8d0 Fix link to demo for todo example 2024-11-11 12:40:31 +00:00
Anselm Eickhoff
6fdab780a9 Merge pull request #730 from gardencmp/changeset-release/main
Version Packages
2024-11-10 13:17:22 +00:00
github-actions[bot]
159e2eb7f6 Version Packages 2024-11-10 13:16:08 +00:00
Anselm Eickhoff
9daa50dd7d Merge pull request #729 from gardencmp/aeplay-jazz-479
Set a CoValue as errored per peer after first error
2024-11-10 13:14:49 +00:00
Anselm
9c2aadb7d5 Add changeset 2024-11-10 13:09:57 +00:00
Anselm
7d0d81b16e Set a CoValue as errored per peer after first error 2024-11-10 13:09:36 +00:00
Guido D'Orsi
760a1c10c5 chore(sync): add a comment about syncing after sending an ack 2024-11-08 16:46:29 +00:00
Anselm Eickhoff
fac73f0e44 Merge pull request #726 from gardencmp/changeset-release/main
Version Packages
2024-11-08 16:42:11 +00:00
github-actions[bot]
80b04e78c9 Version Packages 2024-11-08 16:39:19 +00:00
Anselm Eickhoff
b23c0d75fe Merge pull request #725 from gardencmp/aeplay-jazz-477
Immediately ack new content before syncing it upstream
2024-11-08 16:38:03 +00:00
Anselm
d4319d8a0e Add changeset 2024-11-08 16:32:29 +00:00
Anselm
52cd4a9a0f Immediately ack new content before syncing it upstream 2024-11-08 16:31:52 +00:00
Guido D'Orsi
3ef3ff3db9 chore: changeset 2024-11-08 12:22:34 +00:00
Guido D'Orsi
549ec2047f fix: set up typescript as dev dependency 2024-11-08 12:21:50 +00:00
Anselm Eickhoff
ac241981f6 Merge pull request #722 from gardencmp/changeset-release/main
Version Packages
2024-11-08 12:09:49 +00:00
github-actions[bot]
b3504dce9c Version Packages 2024-11-08 12:07:47 +00:00
Anselm Eickhoff
f859d9f1c5 Merge pull request #711 from gardencmp/feature/non-optimistic-sync-state
feat: add a sync state subscription manager
2024-11-08 12:06:34 +00:00
Guido D'Orsi
d433cf473f chore: changeset 2024-11-08 12:03:25 +00:00
Guido D'Orsi
c6cd6cba20 Merge remote-tracking branch 'origin/main' into feature/non-optimistic-sync-state 2024-11-08 12:01:05 +00:00
Guido D'Orsi
9c7333d4f0 fix(createWorkerAccount): use the new sync wait API 2024-11-08 12:00:55 +00:00
Anselm Eickhoff
970f870245 Merge pull request #720 from gardencmp/aeplay-jazz-475
Less noisy logs if clients send empty WebSocket messages
2024-11-08 11:42:30 +00:00
Anselm
a2dbaf86d2 Fix unused var 2024-11-08 11:38:24 +00:00
Anselm
b6162f0fc4 Add changeset 2024-11-08 11:34:52 +00:00
Anselm
91cfa6aa8f Less noisy logs if clients send empty WebSocket messages 2024-11-08 11:34:28 +00:00
Anselm Eickhoff
cd152b83ae Merge pull request #697 from gardencmp/changeset-release/main
Version Packages
2024-11-08 10:36:27 +00:00
github-actions[bot]
bac3ddddf5 Version Packages 2024-11-08 10:30:47 +00:00
Anselm
b934fab89e Add changeset 2024-11-08 10:29:18 +00:00
Anselm
dc4ea86819 More graceful handling of potentially multiple agents 2024-11-08 10:28:43 +00:00
Guido D'Orsi
4fd6bbd41d Merge remote-tracking branch 'origin/main' into feature/non-optimistic-sync-state 2024-11-08 09:57:46 +00:00
Anselm Eickhoff
e4c1f0eefd Merge pull request #717 from gardencmp/feature/git-hooks-and-build-optimizations 2024-11-08 07:49:00 +00:00
Guido D'Orsi
e8a509e41c Merge remote-tracking branch 'origin/main' into feature/git-hooks-and-build-optimizations 2024-11-07 23:14:56 +00:00
Guido D'Orsi
53560b7ce1 Merge pull request #718 from gardencmp/feature/improve-jazz-run-tests
fix: add a timeout on the create account command
2024-11-07 23:10:03 +00:00
Guido D'Orsi
2aa2304d4d chore: removed console.log 2024-11-07 23:09:31 +00:00
Guido D'Orsi
d4c8443c4a chore: changeset 2024-11-07 23:08:18 +00:00
Guido D'Orsi
f9faf719d4 chore: improve the createWorkerAccount tests to let them fail earlier when the cloud is stuck 2024-11-07 22:36:16 +00:00
Guido D'Orsi
1a32e0c73f chore: add git hooks for formatting and linting fixes 2024-11-07 22:24:26 +00:00
Guido D'Orsi
0ea3ef31ac chore(PeerState): explain the difference between knownState and optimisticKnownState 2024-11-07 10:11:32 +00:00
Guido D'Orsi
d02613e2ec chore: add jazz-tools.json to the biome ignore 2024-11-07 09:21:42 +00:00
Guido D'Orsi
8ff036e5ff test: cover the content acknowledgment flow 2024-11-07 09:15:09 +00:00
Guido D'Orsi
d0733e2a3b chore: revert jazz-run changes 2024-11-07 00:25:31 +00:00
Guido D'Orsi
ad4f1b74f6 chore: fix type error 2024-11-07 00:20:26 +00:00
Guido D'Orsi
04d97e4a2d chore: format 2024-11-07 00:17:03 +00:00
Guido D'Orsi
3f9e749122 Merge remote-tracking branch 'origin/main' into feature/non-optimistic-sync-state 2024-11-07 00:12:56 +00:00
Guido D'Orsi
aa1dd3e10a feat: add a sync state subscription manager 2024-11-07 00:06:30 +00:00
Anselm Eickhoff
9f0deeb31c Merge pull request #701 from gardencmp/home/e2e-styling
Make background more visible in e2e section on mobile
2024-11-06 16:46:49 +00:00
Anselm Eickhoff
4f21ba9a5f Merge pull request #708 from gardencmp/docs/small-copy-changes
Docs: minor copy changes
2024-11-06 16:46:29 +00:00
Anselm Eickhoff
bdc541e35f Merge pull request #707 from gardencmp/benjamin-jazz-438
Fix coList header docs
2024-11-06 16:45:50 +00:00
Trisha Lim
7350915006 Docs: minor copy changes 2024-11-06 16:44:01 +00:00
Benjamin S. Leveritt
d678ddbe11 Fix coList header docs 2024-11-06 16:39:34 +00:00
Anselm Eickhoff
7e92f85117 Merge pull request #704 from gardencmp/benjamin-jazz-461
Nix dev environment + Node version spec
2024-11-06 16:29:39 +00:00
Anselm
ffbeb0af43 Merge branch 'main' into benjamin-jazz-461 2024-11-06 16:29:08 +00:00
Anselm Eickhoff
1eba2a66af Merge pull request #706 from gardencmp/benjamin-jazz-470
Add folders to git ignore (and Biome)
2024-11-06 16:27:42 +00:00
Benjamin S. Leveritt
854ade8c06 Add folders to git ignore (and Biome)
- .next/
- dist/
- test-results/

Resolves #705
2024-11-06 16:25:51 +00:00
Anselm Eickhoff
ccb060262f Fix vue changeset 2024-11-06 16:16:49 +00:00
Trisha Lim
981ad88fa1 Make background more visible in e2e section on mobile 2024-11-06 16:09:32 +00:00
Anselm Eickhoff
8caaca1267 Merge pull request #698 from tobiaslins/implement-multi-storage-forwarding-react
Allow to define multiple storage options
2024-11-06 16:07:49 +00:00
Anselm
2af107c676 Add changeset 2024-11-06 15:52:12 +00:00
Anselm
751a7394ff Apply formatting 2024-11-06 15:51:48 +00:00
Anselm
b1c0937bd2 Merge branch 'main' into implement-multi-storage-forwarding-react 2024-11-06 15:50:29 +00:00
Anselm Eickhoff
d5f9c57ed3 Merge pull request #694 from gardencmp/benjamin-jazz-405
Enforce coding standards
2024-11-06 15:40:49 +00:00
Benjamin S. Leveritt
f689a5871b Update readme tagline 2024-11-06 11:14:00 +00:00
Benjamin S. Leveritt
092359f37f Update readme with contribution guide link
Resolves #360
2024-11-06 10:33:38 +00:00
Benjamin S. Leveritt
0fb71c1938 Add tool versions to contribution guide 2024-11-06 10:26:14 +00:00
Benjamin S. Leveritt
60d150c8d0 Add nix flake for dev env
Resolves #684
2024-11-06 10:20:00 +00:00
Benjamin S. Leveritt
2dbfaf3ee0 Add git-blame-ignore 2024-11-06 09:43:03 +00:00
Benjamin S. Leveritt
a48f357928 Remove root format script 2024-11-06 09:36:56 +00:00
Benjamin S. Leveritt
a6e264d37b Remove monorepo-linting github action 2024-11-06 09:36:56 +00:00
Benjamin S. Leveritt
be0a09a222 Format workspace
Fix formatting on packages/jazz-run

Fix formatting on packages/jazz-react-native-media-images

Fix formatting on packages/jazz-react-native

Fix formatting on packages/jazz-react-auth-clerk

Fix formatting on packages/jazz-react

Fix formatting on packages/jazz-node

Fix formatting on packages/jazz-browser-media-images

Fix formatting on packages/jazz-browser-auth-clerk

Fix formatting on packages/jazz-browser

Fix formatting on packages/hash-slash

Fix formatting on packages/cojson-transport-ws

Fix formatting on packages/cojson-storage-sqlite

Fix formatting on packages/cojson-storage-indexeddb

Fix formatting on packages/cojson

Fix formatting on e2e/CoValues

Fix formatting in e2e/BinaryCoStream

Fix imports across workspace

Exclude homepage from formatting for now

Chore: Update pnpm lock

Fix formatting on workspace root files

Format examples

Fix formatting on examples/chat

Fix formatting on examples/chat-clerk

Fix formatting on examples/chat-rn

Fix formatting on examples/chat-rn-clerk

Fix formatting on examples/inspector

Fix formatting on examples/music-player

Fix formatting on examples/password-manager

Fix formatting on examples/pets

Fix formatting on examples/todo

Remove prettier from workspace deps

Include examples in formatting

Fix formatting in homepage/design-system

Fix formatting in homepage/gcmp

Fix formatting in homepage/homepage

Organise imports across workspace

Fix formatting for examples/chat-vue

Fix formatting for jazz-vue

Include homepage/* for formatting checks

Fix build script for jazz-vue
2024-11-06 09:36:56 +00:00
Benjamin S. Leveritt
4230cbf957 Rename github action 2024-11-06 09:32:09 +00:00
Tobias Lins
12ae46d10a Pull out logic into function and add tests 2024-11-05 21:11:37 +01:00
Tobias Lins
4e6a65de9d Allow to define multiple storage options 2024-11-05 19:51:33 +01:00
Anselm Eickhoff
4006544d11 Merge pull request #578 from gardencmp/jazz-vue
Support for Vue
2024-11-05 14:41:06 +00:00
pax-k
67c311b458 Merge branch 'main' into jazz-vue 2024-11-05 14:06:56 +02:00
pax-k
e796a6f2ba fix(vue): fixed logout and context re-creation 2024-11-05 14:06:10 +02:00
Benjamin S. Leveritt
f6cecfaaf9 Disable import sorting and linting for now 2024-11-05 11:47:44 +00:00
Benjamin S. Leveritt
572007139b Add github action for enforcing biome
Excluding examples for now
2024-11-05 11:26:06 +00:00
Benjamin S. Leveritt
47f3b72977 Fixed turbo commands for Biome 2024-11-05 11:08:51 +00:00
Anselm Eickhoff
4d9c5331d8 Merge pull request #671 from gardencmp/home/features-section
Rearrange feature sections
2024-11-05 09:58:16 +00:00
Anselm Eickhoff
d5482a32db Fix permission examples 2024-11-05 09:47:45 +00:00
Anselm Eickhoff
61b346a948 Merge pull request #691 from gardencmp/changeset-release/main
Version Packages
2024-11-05 09:38:34 +00:00
github-actions[bot]
c2dfe6a0dd Version Packages 2024-11-05 09:35:46 +00:00
Anselm Eickhoff
81e8910519 Merge pull request #676 from gardencmp/benjamin-jazz-452
Store clerk authentication locally
2024-11-05 09:34:29 +00:00
Anselm Eickhoff
577d5c2066 More specific testimonial credit 2024-11-05 09:33:18 +00:00
Benjamin S. Leveritt
cce679b031 Split changesets 2024-11-05 09:32:29 +00:00
Anselm Eickhoff
c2dbf45f26 Merge pull request #689 from gardencmp/changeset-release/main 2024-11-05 09:13:32 +00:00
Benjamin S. Leveritt
d9036bc47b Add editorconfig 2024-11-05 09:11:34 +00:00
github-actions[bot]
04d3a8c677 Version Packages 2024-11-05 09:05:45 +00:00
Anselm Eickhoff
91019f3f85 Merge pull request #687 from gardencmp/optimize-account-load-2
perf: optimize _loadedAs in CoList and CoValueBase
2024-11-05 09:04:20 +00:00
Benjamin S. Leveritt
4f61da553e Add root biome config 2024-11-05 09:02:35 +00:00
Benjamin S. Leveritt
ae11cbfded Add Biome dep 2024-11-05 15:19:22 +00:00
Benjamin S. Leveritt
06278c3d97 Update saveCredentials mock 2024-11-05 06:53:32 +00:00
Guido D'Orsi
36273b3114 chore: changeset 2024-11-04 23:09:34 +01:00
Guido D'Orsi
51a0a9f23f perf: optimize _loadedAs in CoList and CoValueBase 2024-11-04 23:07:51 +01:00
Anselm Eickhoff
fc24a65264 Merge pull request #685 from gardencmp/changeset-release/main
Version Packages
2024-11-04 20:10:10 +00:00
github-actions[bot]
fa0b9003dc Version Packages 2024-11-04 20:05:27 +00:00
Anselm Eickhoff
8a0da655e8 Merge pull request #686 from gardencmp/optimize-account-loadas
perf: cache the account refs resolution
2024-11-04 20:04:15 +00:00
Guido D'Orsi
fff11daca7 test: add tests for cache 2024-11-04 20:41:36 +01:00
pax-k
ef83947eb5 Merge branch 'main' into jazz-vue 2024-11-04 21:30:40 +02:00
pax-k
750cfa1b82 chore: cleanup 2024-11-04 21:29:43 +02:00
Guido D'Orsi
fd011d76f4 chore: changeset 2024-11-04 20:21:32 +01:00
Guido D'Orsi
0681a8301e perf: cache the account refs resolution 2024-11-04 20:09:34 +01:00
Benjamin S. Leveritt
221c58f1f7 Add changeset 2024-11-04 18:51:03 +00:00
pax-k
244e5ee582 chore: changeset 2024-11-04 20:48:44 +02:00
Benjamin S. Leveritt
ebca75bf70 Add check for existance and await 2024-11-04 18:43:01 +00:00
Trisha Lim
ea5bd59528 Make e2e icon smaller 2024-11-04 18:25:07 +00:00
Trisha Lim
5977fa3244 Copy changes 2024-11-04 17:56:21 +00:00
Trisha Lim
81179a4c34 Change e2e icon 2024-11-04 17:46:13 +00:00
Benjamin S. Leveritt
b5e516f974 Add tests
Particularly covering log out and checking for storing creds
2024-11-04 17:37:47 +00:00
Benjamin S. Leveritt
8fc5a49ca8 Refactor setItem into fn 2024-11-04 17:37:40 +00:00
Benjamin S. Leveritt
00054aa9a5 Export Credential type from jazz-tools 2024-11-04 17:11:05 +00:00
Benjamin S. Leveritt
6f3c98f704 Make saveCredentials optional 2024-11-04 17:00:28 +00:00
Anselm Eickhoff
8823957c6e Merge pull request #677 from gardencmp/feature/websocker-unique-name
feat(browser): refactor the WebSocket reconnection to assign the peer as id
2024-11-04 16:58:17 +00:00
Benjamin S. Leveritt
47ec0cd8fe Rename type 2024-11-04 16:53:42 +00:00
Benjamin S. Leveritt
685031c39c Remove check for user before passing to BrowserClerkAuth 2024-11-04 16:53:22 +00:00
Benjamin S. Leveritt
e4fd89dbbb Add saveCredentials to existing Clerk accounts authentications 2024-11-04 16:32:37 +00:00
pax-k
4968e194dc chore: sherif deps 2024-11-04 16:54:36 +02:00
pax-k
36e53ee462 chore: pnpm lock 2024-11-04 16:49:15 +02:00
pax-k
7e2e89be6d fix(vue): toRaw 2024-11-04 16:48:45 +02:00
pax-k
232801efdc fix(vue): Progressive image + DemoAuth UI 2024-11-04 16:47:21 +02:00
Guido D'Orsi
e0dd0065fb chore: changeset 2024-11-04 15:06:33 +01:00
Guido D'Orsi
98d7d402eb feat(browser): refactor the WebSocket reconnection to assign the peer as id 2024-11-04 14:28:11 +01:00
Trisha Lim
ba5dfd34f2 Dark mode for server workers illustration 2024-11-04 11:45:36 +00:00
Trisha Lim
2701cd7e4c 4-col layout for local-first section 2024-11-04 11:33:36 +00:00
Trisha Lim
5429590797 Mobile view for e2e 2024-11-04 11:04:06 +00:00
Trisha Lim
c1dfda1321 Dark mode styling 2024-11-04 10:51:15 +00:00
Benjamin S. Leveritt
57deec451a Check for local credentials before Clerk checks 2024-11-04 10:47:42 +00:00
Trisha Lim
a7f38c946d Fix build 2024-11-04 10:42:38 +00:00
Trisha Lim
8a4204e262 Clean up features section 2024-11-04 10:26:19 +00:00
Trisha Lim
77090f4368 Remove "coming soon" badges under coming soon section 2024-11-04 10:13:29 +00:00
Trisha Lim
d655bb5638 Move home page sections to separate components 2024-11-04 10:09:24 +00:00
Benjamin S. Leveritt
bc8ea23e6d Store clerk authentication locally
Introduce LocallyStoredCredentials for storing and validating local storage values
2024-11-04 09:39:46 +00:00
Trisha Lim
0a30b719f1 Move encryption letters around 2024-11-01 20:17:58 +00:00
Trisha Lim
82c7b5ff85 Delete datastructure section, move rich text to "coming soon" section 2024-11-01 20:15:38 +00:00
Trisha Lim
faab6c02df Delete unused mdx files 2024-11-01 20:12:40 +00:00
Trisha Lim
de7631c5b3 Update heading 2024-11-01 20:00:37 +00:00
Trisha Lim
3cdf823f74 Add testimonial from SA1 2024-11-01 18:43:43 +00:00
Trisha Lim
ec91b6b3c2 Add "offline-first" feature and redesign layout for local-first section 2024-11-01 18:43:34 +00:00
Trisha Lim
a725119e0f Refactor random chars 2024-11-01 17:12:22 +00:00
Trisha Lim
520a8e736f Use random letters for illustration in e2e section 2024-11-01 16:54:04 +00:00
Trisha Lim
a1a0b203f0 Fix duplicate h3 2024-11-01 15:33:36 +00:00
Trisha Lim
7059196ca2 Add illustration for server worker feature 2024-11-01 15:21:17 +00:00
Anselm
d2ad2db930 Fix anselm's bluesky 2024-11-01 15:17:55 +00:00
Trisha Lim
b53d40dad8 Make e2ee section HUGE 2024-11-01 15:12:09 +00:00
Trisha Lim
84ca2f7af1 Explain e2ee 2024-11-01 15:04:15 +00:00
Trisha Lim
61655d3b53 Replace state management with server workers 2024-11-01 14:51:42 +00:00
Trisha Lim
b1263b85e9 Make e2e more prominent 2024-11-01 14:00:25 +00:00
Trisha Lim
49a7fa2d9a Illustration for auth feature 2024-11-01 13:38:11 +00:00
Trisha Lim
f1b0abc377 Illustration for "image loading" feature 2024-11-01 13:20:18 +00:00
Trisha Lim
a62f0bf852 Illustration for "file uploads" feature 2024-11-01 13:05:38 +00:00
Trisha Lim
17165523f4 Illustration placeholders 2024-11-01 12:51:16 +00:00
Trisha Lim
5395f0bb69 Mobile layout for features section 2024-11-01 11:06:48 +00:00
Trisha Lim
3bb5421a37 Fix build error 2024-11-01 11:02:02 +00:00
Trisha Lim
dd48e52a75 Add margin between heading and content 2024-11-01 10:57:50 +00:00
Trisha Lim
e18537eb67 Styling for Jazz Cloud section 2024-11-01 10:44:25 +00:00
pax-k
82d81975d3 Merge branch 'main' into jazz-vue 2024-11-01 12:27:31 +02:00
Anselm Eickhoff
44497fd058 Merge pull request #668 from gardencmp/changeset-release/main
Version Packages
2024-11-01 10:20:07 +00:00
Trisha Lim
ff2b5ce0a0 Styling for collaboration section 2024-11-01 10:11:52 +00:00
github-actions[bot]
a18c187818 Version Packages 2024-11-01 10:04:27 +00:00
Anselm Eickhoff
f49949cc25 Merge pull request #653 from gardencmp/feature/react-provider-dev-mode
fix: ensure that the react provider doesn't run twice on dev
2024-11-01 10:03:09 +00:00
Trisha Lim
cbc723f129 Add kicker to collaboration section 2024-11-01 09:56:24 +00:00
Anselm
3cc6aee7e6 Add changeset 2024-11-01 09:54:11 +00:00
Trisha Lim
624442b1c1 Move e2e to collaboration section 2024-11-01 09:52:24 +00:00
Trisha Lim
74e672b38b Remove old sections 2024-11-01 09:50:55 +00:00
Trisha Lim
a0d169fea8 Divide features into 3 sections: local-first, collaboration, everything else 2024-11-01 09:50:40 +00:00
Anselm Eickhoff
c80763100e Merge pull request #651 from gardencmp/gudorsi-jazz-248-storage-peer
feat: introduce the storage peer role
2024-11-01 09:50:14 +00:00
Anselm
6ed75ebb35 Add changeset 2024-11-01 09:49:30 +00:00
Anselm Eickhoff
30d7734124 Merge pull request #663 from gardencmp/trishalim-jazz-443
Close mobile nav after clicking a link
2024-11-01 09:41:10 +00:00
Anselm Eickhoff
bca8b44189 Merge pull request #664 from gardencmp/trishalim-jazz-445
Docs: create separate pages for nextjs and react native
2024-11-01 09:31:11 +00:00
Anselm Eickhoff
36a069c90f Merge pull request #666 from gardencmp/feature/jazz-run-integration-test
chore(jazz-run): extract commands business logic and add tests
2024-11-01 09:29:12 +00:00
Guido D'Orsi
757b37e8ed feat: introduce the storage peer role 2024-10-31 23:18:47 +01:00
Guido D'Orsi
46b1163058 chore(jazz-run): split commands and core logic and add tests 2024-10-31 23:09:42 +01:00
Trisha Lim
8c261b0409 Create separate pages for nextjs and react native 2024-10-31 19:36:19 +00:00
Trisha Lim
fdacde57dd Lint fix 2024-10-31 19:10:38 +00:00
Trisha Lim
817dd7dde1 Close mobile nav after clicking a link 2024-10-31 19:07:11 +00:00
Anselm Eickhoff
6279dd1467 Merge pull request #662 from gardencmp/trishalim-jazz-446
Add yellow dot as legend for docs that are WIP
2024-10-31 17:30:18 +00:00
Trisha Lim
abd4b94392 Add legend in side nav to indicate WIP docs 2024-10-31 17:24:03 +00:00
Trisha Lim
68c6ee77c0 Remove % progress in docs, add '/coming-soon' page 2024-10-31 17:18:33 +00:00
Anselm Eickhoff
d2b2812428 Merge pull request #658 from gardencmp/fix/sticky-nav
Fix nav is not sticking to top
2024-10-31 16:29:52 +00:00
Anselm Eickhoff
fe214cc3c2 Merge pull request #657 from gardencmp/fix/h4-style
Fix styling for h4 in prose
2024-10-31 16:29:39 +00:00
Anselm Eickhoff
2cca9506ad Merge pull request #656 from gardencmp/react-native-docs
React native docs
2024-10-31 16:29:06 +00:00
Trisha Lim
17e69aff8f Add space between main content and footer 2024-10-31 14:22:33 +00:00
Trisha Lim
c45331e645 Fix nav is not sticking to top 2024-10-31 14:21:13 +00:00
Trisha Lim
4337001526 Fix styling for h4 in prose 2024-10-31 13:52:23 +00:00
pax-k
9eef1ec031 fix(docs): layout centering 2024-10-31 15:33:54 +02:00
pax-k
9d31bbc3aa chore(docs): added react native docs 2024-10-31 15:20:01 +02:00
Guido D'Orsi
911add3dea fix: ensure that the react provider doesn't run twice on dev 2024-10-31 11:19:48 +01:00
Anselm Eickhoff
eed9ad99d8 Merge pull request #652 from gardencmp/changeset-release/main 2024-10-30 20:20:51 +00:00
github-actions[bot]
a1d0793e95 Version Packages 2024-10-30 20:06:28 +00:00
Anselm Eickhoff
ac9aad2ff5 Merge pull request #646 from gardencmp/gudorsi-jazz-248
Improve the jazz-run create command and make it possible to subscribe to the peer sync state
2024-10-30 20:05:19 +00:00
Guido D'Orsi
1ed4ab5a8e chore: changeset 2024-10-30 19:50:24 +01:00
Anselm Eickhoff
b03aed69b6 Merge pull request #558 from gardencmp/trishalim-jazz-388
Docs outline, move guide pages to right side nav
2024-10-30 17:53:28 +00:00
Anselm
1120d84c89 Merge branch 'main' into trishalim-jazz-388 2024-10-30 17:32:03 +00:00
Anselm Eickhoff
4e4671cba2 Merge pull request #623 from gardencmp/aeplay-jazz-146 2024-10-30 16:40:29 +00:00
Anselm
cdca330f1e Remove Roadmap 2024-10-30 15:15:55 +00:00
Anselm
bf8840cfbc Write introduction 2024-10-30 15:15:23 +00:00
Anselm
89d4da8d50 Make unfinshed docs unclickable & fix mobile docs nav 2024-10-30 14:42:35 +00:00
Anselm Eickhoff
74e441d233 Merge pull request #645 from gardencmp/trishalim-jazz-358
Add dark/light theme toggler
2024-10-30 13:36:50 +00:00
Anselm Eickhoff
58e5682e3d Merge pull request #634 from gardencmp/trishalim-jazz-430
Redesign diagrams section
2024-10-30 13:34:47 +00:00
Trisha Lim
4915422646 Don't set border colors 2024-10-30 11:32:17 +00:00
Trisha Lim
2337d66ec5 Fix nav disappears 2024-10-30 11:31:05 +00:00
Trisha Lim
e2c73d3c3d Rename localSrc to localsrc due to react error 2024-10-30 11:11:15 +00:00
Trisha Lim
e4c0314368 Redesign problem section 2024-10-30 11:08:13 +00:00
Trisha Lim
228cd42b23 Fix console errors 2024-10-30 10:53:57 +00:00
Trisha Lim
1c80492482 Theme toggle button styling 2024-10-30 10:51:38 +00:00
Guido D'Orsi
bfbd5c514b chore(ci): fix the jazz-tools action 2024-10-29 22:34:30 +01:00
Anselm
520bcfd72a Public shaming for missing docs 2024-10-29 21:26:26 +00:00
Guido D'Orsi
566fde6ecc chore(jazz-run): chore extract the accountCreate command 2024-10-29 21:56:03 +01:00
Guido D'Orsi
c44b5db09a test: add a github action to test account create 2024-10-29 21:52:43 +01:00
Guido D'Orsi
477d0aa899 fix(jazz-run): replace the sleep with a sync status check on create account 2024-10-29 21:42:28 +01:00
Guido D'Orsi
60171b477f feat: move all the optimisticKnownStates update operation inside PeerKnownStates 2024-10-29 21:40:26 +01:00
Trisha Lim
9d4fb4d32b Layout fix 2024-10-29 19:24:44 +00:00
Trisha Lim
d5b9544f6b Move next-themes installation to design system 2024-10-29 19:14:10 +00:00
Trisha Lim
357e6ba59f Add theme toggle to footer for gcmp 2024-10-29 19:09:42 +00:00
Trisha Lim
0aca58af1e Move theme toggle to footer 2024-10-29 19:09:41 +00:00
Trisha Lim
790caf6f0d Delete themeProvider 2024-10-29 19:09:07 +00:00
Trisha Lim
d4fbae2bf3 Add dark/light theme toggler 2024-10-29 19:09:07 +00:00
Guido D'Orsi
da3bc74fe5 Merge pull request #620 from gardencmp/feature/sync-state-resume-repro
test: add an E2E test to test the sync resumability
2024-10-29 19:15:25 +01:00
Anselm Eickhoff
a1bd53100b Merge pull request #643 from gardencmp/trishalim-jazz-437
Set default border color for dark mode
2024-10-29 17:36:52 +00:00
Trisha Lim
46d8b19918 Fix bold text color 2024-10-29 16:44:25 +00:00
Trisha Lim
8ed31452b9 Fix heading font sizes in home page 2024-10-29 16:37:01 +00:00
Trisha Lim
dfb8c3f329 Remove unnecessary border color styling 2024-10-29 16:28:26 +00:00
Trisha Lim
de0045e2ee Set default border color for dark mode 2024-10-29 15:48:59 +00:00
Anselm Eickhoff
7dfb485558 Merge pull request #641 from gardencmp/trishalim-jazz-435
Typography: styling, refactor defaults
2024-10-29 15:02:17 +00:00
Anselm Eickhoff
81ac9d0dfd Merge pull request #595 from gardencmp/trishalim-jazz-415
Add team members to team page
2024-10-29 15:02:06 +00:00
Anselm Eickhoff
1430ef6158 Merge pull request #640 from gardencmp/changeset-release/main
Version Packages
2024-10-29 14:53:58 +00:00
Trisha Lim
8759bccc02 Increase h2 font size 2024-10-29 14:40:33 +00:00
Trisha Lim
5dd0e31e2a Add text-reset util for resetting link styles 2024-10-29 14:32:50 +00:00
Trisha Lim
a2c1586d26 Use prose in hero description 2024-10-29 14:27:49 +00:00
Trisha Lim
7000698629 Move strong styling to tailwind config 2024-10-29 14:09:37 +00:00
Trisha Lim
f52511721e Use prose to style bold text 2024-10-29 13:57:57 +00:00
Trisha Lim
94e84dd5bd Dark mode styling for prose 2024-10-29 13:49:16 +00:00
Trisha Lim
ee0b1695fd Move CodeGroup component to design system 2024-10-29 12:14:42 +00:00
Trisha Lim
e338e9005b Move prose text styling into tailwind config 2024-10-29 12:08:34 +00:00
github-actions[bot]
00f2dea6ab Version Packages 2024-10-29 12:06:41 +00:00
Anselm
4fe3ae89da No-frozen-lockfile after versioning 2024-10-29 12:05:28 +00:00
Anselm
195d703e1f Use proper changeset-version script 2024-10-29 12:01:57 +00:00
Anselm
a49e3492ec Reinstall after changeset version 2024-10-29 11:57:18 +00:00
Anselm
a81846241c Add changeset for account create fix 2024-10-29 11:49:42 +00:00
Anselm
e0d62096af Add corepack to release action 2024-10-29 11:47:46 +00:00
Anselm
77ee9bc529 Add changesets release action 2024-10-29 11:46:45 +00:00
Trisha Lim
e20c4a2d76 Update Anselm's links 2024-10-29 11:18:41 +00:00
Anselm
675e72aec3 Tiny code sample fix 2024-10-29 11:12:46 +00:00
Anselm Eickhoff
8a45e6d642 Merge pull request #631 from gardencmp/feature/fix-account-create
fix(jazz-run): fix error on account create
2024-10-29 11:07:50 +00:00
Anselm Eickhoff
171565a88c Merge pull request #635 from gardencmp/trishalim-jazz-433
Change "jazz" to "Jazz"
2024-10-29 11:02:13 +00:00
Guido D'Orsi
f8945e99a9 test: add an E2E test to test the sync resumability 2024-10-28 21:52:39 +01:00
Trisha Lim
830a007a08 Add Marina's links, photos 2024-10-28 19:57:40 +00:00
Trisha Lim
3072072c60 Update home page title 2024-10-28 17:04:47 +00:00
Trisha Lim
2bb672ea20 Change "jazz" to "Jazz" 2024-10-28 16:52:29 +00:00
Trisha Lim
b6f7c61445 Add placeholder for empty image 2024-10-28 16:08:54 +00:00
Guido D'Orsi
a9af4fa0ff fix(jazz-run): fix error on account create 2024-10-28 00:04:41 +01:00
Anselm
e37369027e Fix prose 2024-10-25 13:20:55 -07:00
Anselm
47eedc4433 Merge branch 'main' into aeplay-jazz-146 2024-10-25 13:20:06 -07:00
Anselm Eickhoff
3d4c151260 Merge pull request #629 from gardencmp/hero-cleanup
pixel-level adjustments
2024-10-25 13:07:09 -07:00
Anselm
eadbb2b8e5 pixel-level adjustments 2024-10-25 13:06:22 -07:00
Anselm Eickhoff
12ab0b9ac1 Merge pull request #628 from gardencmp/hero-cleanup
Hero cleanup
2024-10-25 12:50:54 -07:00
Anselm
a723ad5e92 Better hero heading breaking 2024-10-25 12:26:22 -07:00
Anselm
a459193bbd Better hero breaking 2024-10-25 12:24:52 -07:00
Anselm
65c0eecc62 Less extreme negative margin on after diagram on mobile 2024-10-25 12:23:23 -07:00
Anselm
7f63675ee5 Fix horizontal overscroll on mobile 2024-10-25 12:20:54 -07:00
Anselm
35f236f17e Copy improvements 2024-10-25 12:07:38 -07:00
Anselm
4131754c32 Changes to hero diagram 2024-10-25 11:19:04 -07:00
Anselm Eickhoff
8ead3a7ce5 Merge pull request #625 from gardencmp/home/diagrams
Redesign diagrams
2024-10-25 08:27:54 -07:00
Trisha Lim
2aa055e164 Move "hard things.." to separate component 2024-10-25 11:48:12 +01:00
Trisha Lim
2e2e0b8dce New diagram for right side 2024-10-25 11:43:35 +01:00
Trisha Lim
42897dc211 Dark mode styling 2024-10-24 17:07:58 +01:00
Trisha Lim
d80a8f35ec Remove unused file 2024-10-24 12:48:41 +01:00
Trisha Lim
7a6dcc28b2 Redesign diagrams section 2024-10-24 12:26:06 +01:00
Anselm
3f78c011df Start sketching out CoValue schema section 2024-10-23 22:36:05 +01:00
Anselm Eickhoff
55aa159b56 Merge pull request #626 from gardencmp/home/features
Quick fix for features section being squished
2024-10-23 21:48:38 +01:00
Trisha Lim
6225427363 Rename "Sync" to "Real-time sync" 2024-10-23 21:24:45 +01:00
Trisha Lim
81d922d490 Rename "E2EE" to "E2E encryption" 2024-10-23 21:24:24 +01:00
Trisha Lim
0ba357dab7 Move auth into features section 2024-10-23 21:23:46 +01:00
Anselm Eickhoff
03b4c3cd12 new slogan 2024-10-23 21:14:10 +01:00
Anselm Eickhoff
265b2aaf83 Merge pull request #622 from gardencmp/copy/local-first-hero
Rewrite hero copy
2024-10-23 20:09:46 +01:00
Anselm
fbb22f1e9d Small fixes 2024-10-23 19:55:00 +01:00
Anselm
280e1e25e3 Minimal server-side explanation 2024-10-23 19:52:15 +01:00
Anselm
c7306a0c57 React & Next setup section (with TODOs) 2024-10-23 19:21:16 +01:00
Trisha Lim
4af29dd034 Address feedback 2024-10-23 18:37:19 +01:00
Trisha Lim
4d70862344 Address feedback 2024-10-23 18:13:15 +01:00
Anselm
d40ef934e8 Add sync-and-storage page 2024-10-23 16:52:39 +01:00
Trisha Lim
7af0b2b938 Rewrite hero copy 2024-10-23 12:15:51 +01:00
Anselm Eickhoff
49ee543b5e Merge pull request #613 from gardencmp/bsl-branch-2
Community Contribution Docs
2024-10-22 14:46:38 +01:00
Benjamin S. Leveritt
f68be96d86 Add contact address 2024-10-22 13:26:39 +01:00
Anselm Eickhoff
99721a2e56 Merge pull request #612 from gardencmp/trishalim-jazz-421
Move code samples from hero section to its own section
2024-10-22 11:22:12 +01:00
Trisha Lim
e4b6678538 Mobile adjustments, address feedback 2024-10-22 10:24:45 +01:00
Trisha Lim
bb443269c3 Remove handwritten font 2024-10-22 09:56:31 +01:00
Anselm Eickhoff
2e97deb894 Merge pull request #615 from gardencmp/gcmp/favicon
Update favicon for gcmp
2024-10-22 09:25:48 +01:00
Guido D'Orsi
cabec79dde Merge pull request #604 from gardencmp/feature/music-player-tests
test: add E2E tests on the Music Player example
2024-10-21 22:06:52 +02:00
Trisha Lim
6f9afdc2d3 Update favicon for gcmp 2024-10-21 21:00:02 +01:00
Trisha Lim
3e8d4fdd53 Update team members info 2024-10-21 20:54:11 +01:00
Trisha Lim
35d5e4b39e Add jazz cloud step 2024-10-21 18:07:25 +01:00
Benjamin S. Leveritt
aeb521e6d9 Add note about code standard tools 2024-10-21 17:45:07 +01:00
Trisha Lim
5228dc43c9 Move testimonial to design system 2024-10-21 17:16:41 +01:00
Benjamin S. Leveritt
4ba7731dce Add code of conduct 2024-10-21 17:16:25 +01:00
Trisha Lim
1afe45d2f2 Mobile view 2024-10-21 17:11:06 +01:00
Benjamin S. Leveritt
7e574191eb Add contributing guide 2024-10-21 17:08:26 +01:00
Anselm
4ac35b5b6d Hide test post 2024-10-21 17:03:16 +01:00
Trisha Lim
88a6cc132f Redesign testimonial 2024-10-21 16:42:16 +01:00
Trisha Lim
574509e83a Increase padding on diagram 2024-10-21 16:30:47 +01:00
Trisha Lim
f9ce03113e Decrease font size under "hard things.." 2024-10-21 16:20:25 +01:00
Trisha Lim
b0eda8350a Add step descriptions, testimonial 2024-10-21 15:53:39 +01:00
Trisha Lim
9cb5ea332a Move code samples to a separate section 2024-10-21 14:27:39 +01:00
Anselm Eickhoff
1f409493de Merge pull request #608 from hamirmahal/fix/usage-of-a-deprecated-nodejs-version-in-unit-test
fix: usage of `a deprecated Node.js version` in CI
2024-10-21 11:53:09 +01:00
Hamir Mahal
5ac310ff9f fix: usage of a deprecated Node.js version in CI 2024-10-20 09:44:05 -07:00
Anselm Eickhoff
9a96203f8d Merge pull request #602 from gardencmp/trishalim-jazz-419
Add blog to gcmp
2024-10-20 15:58:02 +01:00
Guido D'Orsi
5239a05734 chore: extract MusicTrackTitleInput component 2024-10-18 23:04:13 +02:00
Guido D'Orsi
4bed591002 test: add E2E tests on the Music Player example 2024-10-18 22:39:45 +02:00
Trisha Lim
aede27f986 Move meta into mdx file 2024-10-18 19:22:59 +01:00
Trisha Lim
8aeb89e878 Add jsonld to blog post 2024-10-18 19:09:31 +01:00
Trisha Lim
31cec1986b Add blog posts feed 2024-10-18 19:09:31 +01:00
Trisha Lim
d7ae755ce4 Blog post page styling 2024-10-18 19:09:31 +01:00
Trisha Lim
d425c18b9a Add blog to gcmp 2024-10-18 19:09:31 +01:00
Anselm Eickhoff
91d94abaf2 Merge pull request #599 from gardencmp/styling/input
Add Input component and prettier to design system
2024-10-18 13:15:01 +01:00
Trisha Lim
5730c933ee Add prettier to design-system project 2024-10-18 11:09:50 +01:00
Trisha Lim
68be1274bf Add input component to design system 2024-10-18 11:06:39 +01:00
Trisha Lim
e4180308ea Dark mode 2024-10-18 10:41:13 +01:00
Anselm Eickhoff
14fec451ec Merge pull request #596 from gardencmp/feature/covalue-state
chore: refactor CoValueState to manage the availability logic
2024-10-18 10:15:37 +01:00
Guido D'Orsi
916073ee2a chore: refactor CoValueState to manage the availability logic 2024-10-18 00:28:44 +02:00
Trisha Lim
2b48954693 Add team members to team page 2024-10-17 21:17:11 +01:00
Anselm Eickhoff
d789ee031f Merge pull request #594 from gardencmp/trishalim-jazz-416 2024-10-17 19:09:09 +01:00
Trisha Lim
a58a73b9f2 Fix env var possibly undefined 2024-10-17 18:16:54 +01:00
Trisha Lim
4172e9f160 Add social image 2024-10-17 18:14:53 +01:00
Trisha Lim
04baa537b9 Add newsletter subscription form using Resend 2024-10-17 18:08:14 +01:00
Anselm
4a2649c2d1 Fix homepages workspace 2024-10-17 16:10:46 +01:00
Anselm Eickhoff
0845853e42 Merge pull request #593 from gardencmp/trishalim-jazz-414
Add gcmp project
2024-10-17 15:42:58 +01:00
Trisha Lim
933be40123 Dark mode styling 2024-10-17 14:37:13 +01:00
Trisha Lim
c385b9a501 Delete files 2024-10-17 14:33:17 +01:00
Trisha Lim
2c1774dc46 Add content for blog and team pages 2024-10-17 14:27:49 +01:00
Trisha Lim
77d7b4b99d Add navigation 2024-10-17 14:20:02 +01:00
Trisha Lim
3c6dca4779 Add home page content 2024-10-17 14:01:02 +01:00
Trisha Lim
1eba3a3e92 Initialize gcmp project 2024-10-17 13:34:33 +01:00
Trisha Lim
ef30e47b4b Move logos to design system 2024-10-17 12:59:20 +01:00
Trisha Lim
384e6dd3be Move Button component to design system 2024-10-17 12:52:09 +01:00
Anselm Eickhoff
5b61efc2cc Merge pull request #587 from gardencmp/trishalim-jazz-412
Add links to live demo in readme
2024-10-17 12:14:34 +01:00
Anselm Eickhoff
2623fa465c Merge pull request #584 from gardencmp/refactor/illustration
Convert hero illustration to code instead of image
2024-10-17 11:25:54 +01:00
Anselm Eickhoff
b5c8ea8e1c Merge pull request #575 from gardencmp/Rename-Jazz-Mesh-to-Jazz-Cloud
Rename Jazz Mesh to Jazz Cloud
2024-10-17 11:24:08 +01:00
Trisha Lim
352026e8ab Move highlight to another line 2024-10-17 10:17:57 +01:00
Trisha Lim
4a56365495 Add links to live demo in readme 2024-10-17 10:13:09 +01:00
Benjamin S. Leveritt
dfed6883f8 Fix leftovers 2024-10-17 07:50:44 +01:00
Trisha Lim
4473463f4a Change "Jazz Mesh" to "Jazz Cloud" in diagram 2024-10-17 07:47:00 +01:00
Benjamin S. Leveritt
b79619dcb3 Rename Global Cloud -> Jazz Cloud 2024-10-17 07:46:21 +01:00
Benjamin S. Leveritt
fe54274ac1 Update cojson docs 2024-10-17 07:46:21 +01:00
Benjamin S. Leveritt
61c1a38ba4 Update homepage cloud section 2024-10-17 07:46:18 +01:00
Benjamin S. Leveritt
76c1341549 Update homepage urls 2024-10-17 07:45:32 +01:00
Benjamin S. Leveritt
9d1bd08b77 Rename mesh page -> cloud page 2024-10-17 07:45:29 +01:00
Benjamin S. Leveritt
6cf7b974c1 Update job templates 2024-10-17 07:44:56 +01:00
Benjamin S. Leveritt
edb030e348 Update cloud blocks in mesh docs 2024-10-17 07:44:52 +01:00
Benjamin S. Leveritt
f644fc6610 Update example readmes 2024-10-17 07:28:40 +01:00
Benjamin S. Leveritt
8c7b721903 Update wss:// urls to cloud.jazz.tools 2024-10-17 07:28:40 +01:00
Trisha Lim
6b16f7a0c3 Highlight important lines 2024-10-16 21:47:20 +01:00
Trisha Lim
f3a6c752b4 Add description 2024-10-16 21:18:48 +01:00
Trisha Lim
0e053b2d47 Install handwritten font Sriracha 2024-10-16 21:04:59 +01:00
Trisha Lim
f462139327 Convert illustration to code 2024-10-16 21:01:07 +01:00
Anselm
8e32fd8688 Release 2024-10-16 19:30:35 +01:00
Anselm Eickhoff
2066543754 Merge pull request #583 from gardencmp/aeplay-jazz-410
Fix internal imports in jazz-nodejs
2024-10-16 19:29:18 +01:00
Anselm
a251aaabea Add changeset 2024-10-16 19:23:09 +01:00
Anselm
da95d6de08 Fix internal imports in jazz-nodejs 2024-10-16 19:21:17 +01:00
Anselm Eickhoff
cb367c38c8 Merge pull request #579 from gardencmp/styling/secondary-button
Styling for secondary button
2024-10-16 16:14:37 +01:00
Anselm Eickhoff
4acefe350c Merge pull request #580 from gardencmp/trishalim-jazz-349
Set meta title, description, and image
2024-10-16 16:13:34 +01:00
Trisha Lim
db8fa169d9 Set meta title, description, and image 2024-10-16 14:09:21 +01:00
pax-k
d998fdf6f6 fix: lint 2024-10-16 15:33:23 +03:00
pax-k
6cdedd63d9 fix(vue): reactivity 2024-10-16 15:30:58 +03:00
Trisha Lim
1703bc6c74 Styling for secondary button 2024-10-16 13:29:58 +01:00
Anselm
49d8287b24 Anselm's proposed structure 2024-10-16 11:41:22 +01:00
Trisha Lim
b6af85c91e Add simple public sharing 2024-10-16 11:28:34 +01:00
Trisha Lim
308ab80736 Rearrange outline 2024-10-16 11:27:51 +01:00
pax-k
73630b4d94 Merge branch 'main' into jazz-vue 2024-10-16 13:22:08 +03:00
pax-k
cb8dfcadbc feat: jazz-vue and chat-vue implementation (wip) 2024-10-16 13:21:36 +03:00
Trisha Lim
b759f29ab8 Increase docs body width 2024-10-16 11:09:22 +01:00
Trisha Lim
b826adabbf Show proposed outline 2024-10-16 11:00:52 +01:00
Anselm Eickhoff
7dd3d57800 Merge pull request #532 from gardencmp/anselm-jazz-378
Simplify pricing
2024-10-16 10:44:15 +01:00
Anselm
e0670a8742 Move CTA texts back under the button 2024-10-16 10:39:23 +01:00
Anselm
61f62660ca Address Trisha's feedback 2024-10-16 10:25:09 +01:00
Anselm Eickhoff
acca37fc4b Merge pull request #538 from gardencmp/trishalim-jazz-379
Redesign landing page hero
2024-10-16 10:11:15 +01:00
Anselm
88b01a14a6 Format 2024-10-16 10:09:03 +01:00
Anselm
30917c9b2e Wider gaps for tier logos 2024-10-16 10:08:50 +01:00
Anselm
4c22c75b45 Fix lockfile 2024-10-16 09:55:40 +01:00
Anselm
e9baca6781 Apply feedback 2024-10-16 09:46:39 +01:00
Anselm
46983ca49b Add missing icon 2024-10-15 17:40:49 +01:00
Anselm
c3e9790436 New iteration 2024-10-15 17:35:54 +01:00
Trisha Lim
2b4e839926 Remove empty pages from nav 2024-10-15 09:44:41 +01:00
Trisha Lim
c7aae14e03 Fix layout 2024-10-15 09:37:43 +01:00
Anselm Eickhoff
2444344929 Merge pull request #561 from gardencmp/fix-docs-typo 2024-10-15 09:21:11 +01:00
Anselm Eickhoff
d247183892 Merge pull request #472 from gardencmp/feature/react-adapter 2024-10-15 09:19:37 +01:00
pax-k
a81fe66e8f chore: docs 2024-10-14 23:28:13 +03:00
pax-k
6d43977b12 chore: docs 2024-10-14 23:24:38 +03:00
pax-k
14c00e5dd4 chore: react-native docs 2024-10-14 23:21:21 +03:00
Guido D'Orsi
be492a8184 chore(music-player): add the react-compiler linting rule 2024-10-14 22:12:50 +02:00
Guido D'Orsi
90149ac411 test: add subscribe tests 2024-10-14 20:40:08 +02:00
Guido D'Orsi
7bae6e43b7 fix(password-manager): fix infinite loop on the shared folder loading 2024-10-14 20:40:08 +02:00
Guido D'Orsi
32c2435cb1 fix(subscription): renew root value identity at each update 2024-10-14 20:40:08 +02:00
Guido D'Orsi
64feacd2c1 feat(react): migrate to useSyncExternalStore 2024-10-14 20:40:08 +02:00
Trisha Lim
263fe7a4b3 Increase container width 2024-10-14 18:44:12 +01:00
Trisha Lim
8049f1d972 Lint fix 2024-10-14 18:26:48 +01:00
Trisha Lim
f3263e60ff Add table of contents to left hand side 2024-10-14 18:24:48 +01:00
Benjamin S. Leveritt
79dd3eecb6 Fix typo, improve copy 2024-10-14 17:47:21 +01:00
Anselm
62bbe9a09b Release 2024-10-14 17:32:12 +01:00
Anselm Eickhoff
4dd80a65da Merge pull request #559 from gardencmp/expo-secure-store-for-jazz-react-native
Expo secure store for jazz react native
2024-10-14 17:30:15 +01:00
pax-k
52dd1d37ab fix(react-native): set ExpoSecureStoreAdapter values accessible AFTER_FIRST_UNLOCK 2024-10-14 19:26:05 +03:00
pax-k
b75df6fa5c chore: revert jazz-react-native-media-images bump 2024-10-14 19:03:37 +03:00
pax-k
b7639cffd3 chore: changeset 2024-10-14 19:02:52 +03:00
pax-k
21575f2e79 feat(react-native): replaced react-native-mmkv with expo-secure-store and initialize it by default as kvStore in createJazzRNApp() (BREAKING) 2024-10-14 19:00:36 +03:00
Trisha Lim
6d6849707e Move guide down 2024-10-14 16:24:58 +01:00
Trisha Lim
11ac24e3f4 Update lock file 2024-10-14 16:13:55 +01:00
Trisha Lim
7a30f3c025 Set docs intro as /docs 2024-10-14 16:13:12 +01:00
Trisha Lim
c84f96c436 Fix guide URLs 2024-10-14 16:13:12 +01:00
Trisha Lim
0ecf666c9f Refactor components 2024-10-14 16:13:12 +01:00
Trisha Lim
42e4969f92 Define new outline 2024-10-14 16:13:12 +01:00
pax-k
35587aaacc chore: bump jazz-react-native-media-images 2024-10-14 17:34:26 +03:00
Anselm
2398dedbae FIx lockfile 2024-10-14 15:30:42 +01:00
Anselm
d545a3b8d6 Release 2024-10-14 15:27:53 +01:00
Anselm Eickhoff
dce673ff7a Merge pull request #546 from gardencmp/feat/client-batching
feat: enable batching on client peers
2024-10-14 15:27:20 +01:00
pax
d18f6bf371 Merge pull request #557 from gardencmp/fix-native-peer-dependencies
Weaker native peer dependencies
2024-10-14 17:25:42 +03:00
pax-k
32b05b69a3 chore: changeset 2024-10-14 17:25:01 +03:00
pax-k
c1a5c3cad7 fix(react-native): weaker peer dependencies 2024-10-14 17:23:43 +03:00
Anselm
e9abaee255 Release 2024-10-14 14:57:36 +01:00
Anselm
ba998255c8 Fix lockfile 2024-10-14 14:56:21 +01:00
Anselm Eickhoff
d7c1ce70e2 Merge pull request #549 from gardencmp/changeset/batching
chore: add changeset for batching
2024-10-14 14:55:30 +01:00
Guido D'Orsi
e82cf3dd71 chore: add changeset 2024-10-14 14:56:34 +02:00
Guido D'Orsi
5542fdbbcb chore: add changeset for batching 2024-10-14 14:51:57 +02:00
Guido D'Orsi
c715587a54 feat: enable batching on client peers 2024-10-14 14:31:54 +02:00
Anselm Eickhoff
d9ac4d8dc6 Merge pull request #540 from gardencmp/feature/improve-pets-invitation
fix(pets): improve invitation flow
2024-10-14 09:30:06 +01:00
Anselm Eickhoff
f35a2cca8a Merge pull request #543 from gardencmp/fix-typo-in-browser-session
Fix typo in browserLockSession
2024-10-14 09:28:35 +01:00
Benjamin S. Leveritt
6dd6e225c9 Fix typo in browserLockSession 2024-10-14 09:08:50 +01:00
Guido D'Orsi
b84b682a4e test(pets): add a sleep after the share link creation and use a low res image 2024-10-12 12:50:09 +02:00
Guido D'Orsi
3f3c0da7e3 fix(pets): improve invitation flow 2024-10-11 22:05:18 +02:00
Trisha Lim
1ad823b52e Fix duplicate code 2024-10-11 16:49:09 +01:00
Trisha Lim
7dd958e920 Icon styling for dark mode 2024-10-11 16:38:44 +01:00
Trisha Lim
41d977d3b0 Illustration for dark mode 2024-10-11 16:36:58 +01:00
Trisha Lim
a9a3ad6e67 Mobile view 2024-10-11 16:17:12 +01:00
Trisha Lim
ca2bde4748 Illustration changes 2024-10-11 15:59:57 +01:00
Trisha Lim
9c3945b82a Add code samples to hero 2024-10-11 14:58:25 +01:00
Trisha Lim
55d95f9469 Add chat clerk example to docs 2024-10-11 13:34:43 +01:00
Trisha Lim
dbdb5820d6 Add book shelf example to docs 2024-10-11 13:34:43 +01:00
Anselm Eickhoff
bd9dc51744 Merge pull request #537 from gardencmp/JAZZ-380/implement-jazz-react-native-media-images
feat: implemented jazz-react-native-media-images
2024-10-11 11:58:11 +01:00
pax-k
984cd34822 chore: cleanup 2024-10-11 13:46:16 +03:00
pax-k
e7b8c95e21 Merge branch 'main' into JAZZ-380/implement-jazz-react-native-media-images 2024-10-11 13:34:51 +03:00
pax-k
2fbebfb60f feat: implemented jazz-react-native-media-images 2024-10-11 13:32:22 +03:00
Trisha Lim
86b2d98ba8 Add code snippet to the right of hero 2024-10-11 11:07:31 +01:00
Trisha Lim
bd8efcdb4d Redesign landing page hero 2024-10-11 10:27:57 +01:00
Anselm Eickhoff
77b25e55c6 Merge pull request #530 from gardencmp/trishalim-jazz-374
Redesign supported environments section, add logos
2024-10-11 09:30:29 +01:00
pax
9df131fd8d Merge pull request #534 from gardencmp/fix-books-demo-profile-url
fix(books-demo): added window.location.origin to profile url
2024-10-10 23:58:07 +03:00
pax-k
2aca9bee03 fix(books-demo): added window.location.origin to profile url 2024-10-10 23:57:28 +03:00
Trisha Lim
fe279ea94c Update copy 2024-10-10 19:42:51 +01:00
Trisha Lim
8481b3bf16 Styling for pricing section (#533) 2024-10-10 18:35:52 +01:00
Trisha Lim
301334c1ff Redesign supported environments section, add logos 2024-10-10 17:54:43 +01:00
Anselm
3311828432 Address some wording feedback 2024-10-10 17:37:28 +01:00
Anselm Eickhoff
480d9edb6a Merge pull request #511 from gardencmp/gudorsi-jazz-274
feat(transport-ws): add messages batching
2024-10-10 17:08:33 +01:00
Guido D'Orsi
07b62cc292 feat(websocket): buffering based on the bytes size 2024-10-10 17:54:41 +02:00
Anselm
f03f8dfeaa Better CTA subtext 2024-10-10 16:35:43 +01:00
Anselm
05e0b3d795 Less cringe CTA 2024-10-10 16:33:24 +01:00
Anselm
7ce08753f1 Simplify pricing 2024-10-10 16:27:33 +01:00
Trisha Lim
01e9255d3b Copy changes
Co-authored-by: Anselm Eickhoff <anselm.eickhoff@gmail.com>
2024-10-10 15:06:05 +01:00
Trisha Lim
0e918f60e3 Add showcase page 2024-10-10 15:06:05 +01:00
Trisha Lim
b08c5ec1d2 Add CTA to become an early adopter (#522) 2024-10-10 15:04:38 +01:00
Anselm Eickhoff
87f24fa985 Merge pull request #521 from gardencmp/feature/local-test-runner
chore(dx): configure vitest to run in watch mode on the local machine
2024-10-10 14:46:55 +01:00
Anselm Eickhoff
86df2f0132 Merge pull request #514 from gardencmp/JAZZ-314/react-native-proof-of-concept-continued
react-native chat demo with Clerk auth
2024-10-10 11:56:24 +01:00
pax-k
0e1654a474 chore: pnpm lock 2024-10-10 12:39:07 +03:00
pax-k
05f447baae Merge branch 'main' into JAZZ-314/react-native-proof-of-concept-continued 2024-10-10 12:35:54 +03:00
Guido D'Orsi
85e2bb230e chore(dx): configure vitest to run in watch mode on the local machine 2024-10-10 01:45:53 +02:00
Guido D'Orsi
e21f87f920 chore: revert change on ping type 2024-10-10 01:39:10 +02:00
Guido D'Orsi
052041d134 Merge remote-tracking branch 'origin/main' into gudorsi-jazz-274 2024-10-10 01:32:07 +02:00
Guido D'Orsi
d0e6ff8d72 fix(BinaryCoSteam): switch to Demo auth 2024-10-10 01:30:32 +02:00
Guido D'Orsi
bf8ab931ad fix: add a try/catch on the JSON.parse 2024-10-10 01:30:14 +02:00
Guido D'Orsi
5532271f14 fix: correct the batching activation 2024-10-10 00:11:56 +02:00
Guido D'Orsi
123a57169a Merge pull request #520 from gardencmp/fix/radix-react-version
fix: add react to the pnpm overrides because some examples are experiencing version mismatch
2024-10-09 23:56:20 +02:00
Guido D'Orsi
7d84191693 fix: add react to the pnpm overrides because some examples are experiencing version mismatch 2024-10-09 23:54:27 +02:00
Guido D'Orsi
b0101f8157 fix: add react to the pnpm overrides because some examples are experiencing version mismatch 2024-10-09 23:52:13 +02:00
Guido D'Orsi
8865450d28 chore: disable batching until the changes are released to the mesh 2024-10-09 22:49:08 +02:00
Guido D'Orsi
0fb12fc437 test(createWebSocketPeer): add more tests for the batching 2024-10-09 22:46:56 +02:00
Guido D'Orsi
b462a380af Merge remote-tracking branch 'origin/main' into gudorsi-jazz-274 2024-10-09 22:07:49 +02:00
pax-k
1e94004364 chore(react-native): chat demo bundle id 2024-10-09 22:19:36 +03:00
pax-k
76e7a81eef chore(react-native): DRY platform exports 2024-10-09 22:01:54 +03:00
pax-k
1445e4ab80 chore: cleanup 2024-10-09 19:55:36 +03:00
pax-k
6c8534a709 chore: cleanup 2024-10-09 19:51:29 +03:00
Anselm
99565ed03a Release 2024-10-09 17:34:10 +01:00
Anselm Eickhoff
1d3b9f9152 Merge pull request #469 from gardencmp/trishalim-jazz-342
Add book shelf example
2024-10-09 17:30:41 +01:00
Anselm
c3f4e6baec Add changeset for package export order changes 2024-10-09 17:30:10 +01:00
Anselm Eickhoff
7f0d24b113 Merge pull request #516 from gardencmp/anselm-jazz-371
Make feature copy more succinct
2024-10-09 17:26:36 +01:00
Anselm
52a649a352 Revert 2nd paragraph in local-first storage 2024-10-09 17:25:51 +01:00
Anselm
d4a89c4328 Shorten and clean up feature section 2024-10-09 17:06:04 +01:00
pax-k
508720745f chore: cleanup 2024-10-09 17:58:13 +03:00
pax-k
2fde6a47aa chore: cleanup 2024-10-09 17:49:19 +03:00
pax-k
22709e6fe0 chore: pnpm lock 2024-10-09 17:46:30 +03:00
pax-k
4ee3f7229c Merge branch 'main' into JAZZ-314/react-native-proof-of-concept-continued 2024-10-09 17:46:00 +03:00
pax-k
09e0e17559 feat(react-native): demo chat with clerk auth 2024-10-09 17:44:09 +03:00
pax-k
7b6656e99e feat(react-native): clerk auth (wip) 2024-10-09 14:36:10 +03:00
Trisha Lim
b15a295a73 Update lock file, fix error "Default condition should be last one" 2024-10-09 12:12:13 +01:00
Trisha Lim
fe384dfff6 Add book shelf example 2024-10-09 11:48:59 +01:00
Guido D'Orsi
943baffcf8 test: update the ws peer test with batching 2024-10-09 12:27:06 +02:00
Guido D'Orsi
2fb83514cc feat(transport-ws): add messages batching 2024-10-09 12:27:06 +02:00
Anselm Eickhoff
863eb73ad1 Merge pull request #484 from gardencmp/feature/chat-e2e
test: add basic e2e tests for the chat app
2024-10-09 10:55:09 +01:00
Anselm Eickhoff
5a41a9e7b9 Merge pull request #464 from gardencmp/feature/music-remake
feat: ui refresh for the music player
2024-10-09 10:50:52 +01:00
Anselm Eickhoff
f89e2772bc Fix expected Sign up button label 2024-10-09 10:49:09 +01:00
Anselm Eickhoff
7ca45c4a24 Merge pull request #494 from gardencmp/turbo-config-changes
Add build task as dependency for dev and test
2024-10-09 10:45:12 +01:00
Anselm Eickhoff
b4449b92bb Merge branch 'main' into feature/chat-e2e 2024-10-09 10:41:42 +01:00
Guido D'Orsi
10738a7c3d chore: update pkg 2024-10-09 11:41:17 +02:00
Anselm Eickhoff
08fdb0316a Merge pull request #492 from gardencmp/feature/co-json-types
fix(co.json): allow interface types as generic argument
2024-10-09 10:41:06 +01:00
Guido D'Orsi
6ebc5967f4 Merge remote-tracking branch 'origin/main' into feature/music-remake 2024-10-09 11:40:26 +02:00
Anselm
11a3da61e1 Fix jazz-run dev dep in chat example 2024-10-09 10:39:18 +01:00
Anselm Eickhoff
ef1592dbee Merge pull request #513 from gardencmp/test/pets-with-local-sync
test(pets): run tests using local sync
2024-10-09 10:35:44 +01:00
Anselm
d9152ed556 Add changeset 2024-10-09 10:31:38 +01:00
Anselm
509c8fad3f Merge branch 'main' into feature/co-json-types 2024-10-09 10:30:28 +01:00
Anselm Eickhoff
19b4f6d21d Merge pull request #510 from gardencmp/trishalim-jazz-370
Rename mesh to "Jazz Mesh", move section higher in the home page
2024-10-09 10:26:47 +01:00
Anselm
d705ef7e14 Release jazz-run 2024-10-09 10:19:36 +01:00
Guido D'Orsi
b99cc2a665 test(pets): run tests using local sync 2024-10-09 11:01:13 +02:00
Anselm Eickhoff
4e6e87aadd Merge pull request #512 from gardencmp/fix/jazz-run 2024-10-09 08:44:35 +01:00
Guido D'Orsi
561924f18f fix(jazz-run): fix broken import 2024-10-09 09:40:53 +02:00
Trisha Lim
80d5c32405 Update Jazz Mesh subheading 2024-10-08 18:04:12 +01:00
Trisha Lim
4b33a13758 Move Jazz Mesh section up the home page 2024-10-08 18:01:18 +01:00
Trisha Lim
8878c1eebd Fix home page spacing 2024-10-08 17:55:55 +01:00
Trisha Lim
c10ad968f9 Change "ours" to "Jazz Mesh" in diagram 2024-10-08 17:53:42 +01:00
Trisha Lim
a19b817818 Rename "Sync & Storage Mesh" to "Jazz Mesh" 2024-10-08 17:53:26 +01:00
Anselm Eickhoff
7192b142a3 Merge pull request #509 from gardencmp/fix/feature-section-layout 2024-10-08 17:19:09 +01:00
Trisha Lim
fc34a18934 Fix layout in homepage feature section 2024-10-08 17:08:40 +01:00
Anselm Eickhoff
d7ce6fa254 Merge branch 'main' into feature/co-json-types 2024-10-08 17:01:00 +01:00
Anselm Eickhoff
ed94e2ca2c Merge pull request #453 from gardencmp/trishalim-jazz-336
Fix scroll issue on chat example app if there are many users
2024-10-08 16:46:08 +01:00
Anselm Eickhoff
0c6e05e7ab Merge pull request #483 from gardencmp/trishalim-jazz-354
Make example code in package API reference readable
2024-10-08 16:44:21 +01:00
Anselm Eickhoff
a6e966438b Merge branch 'main' into trishalim-jazz-354 2024-10-08 16:39:07 +01:00
Anselm Eickhoff
f668bc05f2 Merge pull request #476 from davidvasandani/patch-1
fix: path issues
2024-10-08 16:37:31 +01:00
Anselm Eickhoff
4d95f8ea8e Merge pull request #477 from gardencmp/trishalim-jazz-348
Add copy button for code snippets
2024-10-08 16:37:05 +01:00
Anselm Eickhoff
9172558481 Merge pull request #508 from gardencmp/remove-top-cta
Remove top-level CTA buttons
2024-10-08 16:36:25 +01:00
Trisha Lim
fbdf091dd8 Remove top-level CTA buttons 2024-10-08 16:32:02 +01:00
Anselm Eickhoff
16c4fad514 Merge pull request #449 from gardencmp/trishalim-jazz-287
Homepage: redesign hero, add diagrams
2024-10-08 16:27:25 +01:00
Anselm
6e7591ab38 Last copy changes 2024-10-08 16:21:05 +01:00
Anselm
a85875bc53 Fix lint issues 2024-10-08 15:15:58 +01:00
Anselm
e1b25750b9 New feature copy 2024-10-08 15:06:17 +01:00
Anselm Eickhoff
eae6c27566 Merge pull request #497 from gardencmp/467-create-codate-shortcut
Add co.Date and update test
2024-10-08 14:31:22 +01:00
Anselm
f66079ea22 Fix lockfile 2024-10-08 12:18:49 +01:00
Anselm Eickhoff
2a35761401 Merge pull request #503 from gardencmp/fix/chat-height
Wrap text in chat message
2024-10-08 13:17:41 +02:00
Anselm
103a82075d Parent-frame friendlier navigation 2024-10-08 12:16:08 +01:00
Anselm
e85ab79026 Manually trigger hashchange event for now 2024-10-08 12:06:57 +01:00
Anselm
5f3680e749 Manually trigger hashchange for now 2024-10-08 12:06:27 +01:00
Trisha Lim
5956217b41 Revert "Fix: can't find input box in mobile til scrolling down"
This reverts commit 7295abeac5.
2024-10-08 12:02:41 +01:00
Anselm
03c0d81ca1 Stop chat example from creating history entries 2024-10-08 12:00:44 +01:00
Trisha Lim
0d53f378a0 Wrap text in chat app 2024-10-08 11:46:54 +01:00
Anselm
428ec8c170 Limit number of messages and scroll to bottom 2024-10-08 11:31:50 +01:00
Anselm Eickhoff
4cc442babc Merge pull request #500 from gardencmp/trishalim-jazz-365
Set 2048 character limit per message to chat app
2024-10-08 12:13:29 +02:00
Anselm Eickhoff
1f9b94c0c7 Apply suggestions from code review
Let's clamp to 10 lines
2024-10-08 11:11:27 +01:00
Trisha Lim
4c9d2b5a41 Limit chat messages to display 20 lines max 2024-10-08 11:08:11 +01:00
Trisha Lim
183e384819 Center align loading text in chat app 2024-10-08 11:08:11 +01:00
Trisha Lim
7295abeac5 Fix: can't find input box in mobile til scrolling down 2024-10-08 11:08:11 +01:00
Trisha Lim
77f1351000 Set 2048 character limit per message to chat app 2024-10-08 11:00:15 +01:00
Anselm Eickhoff
ba3e09a2a0 Merge pull request #501 from gardencmp/fix/chat-crash
fix(localNode): do not crash the app when we fail to resolve the account agent
2024-10-08 11:59:38 +02:00
Guido D'Orsi
21890eb99d fix(localNode): do not crash the app when we fail to resolve the account agent 2024-10-08 11:55:15 +02:00
Guido D'Orsi
489de02696 chore: update lockfile 2024-10-08 11:54:38 +02:00
Guido D'Orsi
4c3be94376 chore: update lockfile 2024-10-07 19:30:47 +02:00
Benjamin S. Leveritt
37180974a8 chore: update pnpm lock 2024-10-07 17:43:35 +01:00
Benjamin S. Leveritt
8cf1aa5ac4 Add co.Date and update test 2024-10-07 17:30:26 +01:00
Guido D'Orsi
7aee91eb83 fix(co.json): accept optional types 2024-10-07 16:38:55 +02:00
Guido D'Orsi
8890c84d39 fix(co.json): accept types with optional parameters 2024-10-07 16:38:55 +02:00
Guido D'Orsi
2b301c723b chore(jsonValue): fix typo in a comment 2024-10-07 16:38:55 +02:00
Guido D'Orsi
6e7f4facbd fix(co.json): allow nested interface types 2024-10-07 16:38:55 +02:00
Guido D'Orsi
a2ec72eab2 fix(co.json): disallow functions and Regexp 2024-10-07 16:38:55 +02:00
Guido D'Orsi
7ac660820f fix(co.json): allow interface types as generic argument 2024-10-07 16:38:55 +02:00
Anselm
a8d33d14c8 Release 2024-10-07 15:20:11 +01:00
Benjamin S. Leveritt
72c33640f6 Add build task as dependency for dev and test 2024-10-07 15:16:06 +01:00
Anselm Eickhoff
fd21db18fc Merge pull request #471 from gardencmp/JAZZ-314/react-native-proof-of-concept
React Native Support
2024-10-07 16:08:33 +02:00
Trisha Lim
92e9ea50d4 Fix scroll issue on chat example app if there are many users 2024-10-07 14:55:18 +01:00
Trisha Lim
d1c4f16df0 Change "Sign up as new account" to "Sign up" 2024-10-07 14:44:41 +01:00
pax-k
738940a634 fix: sherif lint - pin dependencies versions 2024-10-07 16:35:11 +03:00
pax-k
a0d3dcafdc chore: lint issues 2024-10-07 16:22:05 +03:00
pax-k
9bae5569de chore: pnpm lock 2024-10-07 16:18:44 +03:00
pax-k
6f6fcf25e7 Merge branch 'main' into JAZZ-314/react-native-proof-of-concept 2024-10-07 16:17:27 +03:00
pax-k
430cf732a6 fix: temporary skipErrorChecking for jazz-react in genDocs 2024-10-07 16:15:43 +03:00
pax-k
9851227258 chore: use the same typescript version across packages 2024-10-07 16:00:16 +03:00
pax-k
3c302cb675 fix(react-native): handle duplicate usernames by appending incremental suffix 2024-10-07 15:47:25 +03:00
pax-k
0fb11b4f98 fix(react-native): native chat UI 2024-10-07 15:46:28 +03:00
pax-k
cee3750f2e fix(react-native): polyfils 2024-10-07 15:46:00 +03:00
pax-k
140c5fc928 fix(react-native): polyfils 2024-10-07 15:45:42 +03:00
pax
fd331a5692 Merge pull request #488 from tobiaslins/improve-chat-ui-rn
First iteration of improved chat ui
2024-10-07 12:21:51 +03:00
Tobias Lins
7c12a16ad4 First iteration of chat ui 2024-10-06 21:18:16 +02:00
Guido D'Orsi
079963fb47 chore(chat): add a sr-only label to the message box 2024-10-06 11:35:39 +02:00
Guido D'Orsi
82f0ebaf6f test: add basic e2e tests for the chat app 2024-10-04 19:28:22 +02:00
Trisha Lim
3772ef9645 Don't wrap code in the middle of paragraph 2024-10-04 17:18:24 +01:00
Trisha Lim
0e67bdccfc Fix spacing in mobile menu hamburger icon 2024-10-04 17:13:42 +01:00
Trisha Lim
39e33f4fac Make example code in package API reference readable 2024-10-04 17:13:42 +01:00
pax-k
358dec2e09 feat(react-native): chat demo to handle invite links (wip) 2024-10-03 22:46:23 +03:00
pax-k
b76b9aa267 feat(react-native): added support for handling invite deep links 2024-10-03 22:45:49 +03:00
Trisha Lim
f2f10c58d7 Add copy button for code snippets 2024-10-02 20:43:05 +01:00
David Vasandani
3d77fff140 fix: path issues 2024-10-02 09:50:11 -07:00
pax-k
9cb111373b fix(react-native): added native kv storage support 2024-10-02 17:46:13 +03:00
pax-k
e07fb36c26 fix(react-native): implement network connectivity logic 2024-10-02 14:58:29 +03:00
Anselm Eickhoff
79bb915b43 Merge pull request #473 from gardencmp/trishalim-jazz-321
Remove empty space in code example tab
2024-10-02 09:38:40 +01:00
Trisha Lim
9926c485e7 Remove empty space in code example tab 2024-10-01 21:03:08 +01:00
Guido D'Orsi
abbda85c16 feat: clean up unused files and optimize subscriptions 2024-10-01 19:42:38 +02:00
pax-k
d77fb9db0c chore(react-native): cleanup 2024-10-01 20:10:09 +03:00
pax-k
595b1c71b4 feat(rn-poc): implementing react-native support 2024-10-01 19:30:13 +03:00
Guido D'Orsi
625ddd5db9 feat: ui refresh for the music player 2024-10-01 16:30:05 +02:00
Trisha Lim
9e1fa1adc6 Update illustration copy to be lowercase 2024-10-01 11:33:10 +01:00
Anselm
d87c081055 Fix lockfile 2024-10-01 10:40:25 +01:00
Anselm
f224b2b4ea Release 2024-10-01 10:11:26 +01:00
Anselm Eickhoff
f70d34fb0b Merge pull request #462 from gardencmp/gudorsi-jazz-173
changeset for the cursor fix
2024-10-01 10:09:49 +01:00
Guido D'Orsi
a075f90890 changeset 2024-10-01 11:08:36 +02:00
Anselm Eickhoff
66686e4f71 Merge pull request #461 from gardencmp/gudorsi-jazz-173
fix(jazz-react): fix cursor reset on text input updates
2024-10-01 10:07:34 +01:00
Anselm Eickhoff
e8a6f9d123 Merge pull request #460 from gardencmp/feature/text-cursor-position-test
test(CoMap): add a failing test to check the cursor position while editing text inputs
2024-10-01 10:06:44 +01:00
Trisha Lim
9246c009b8 Add example apps to docs (#456)
* Add example apps to docs
2024-10-01 09:58:25 +01:00
Guido D'Orsi
afa43dc248 fix(jazz-react): fix cursor reset on text input updates 2024-09-30 19:27:54 +02:00
Guido D'Orsi
effa15082e test(CoMap): add a failing test to check the cursor position while editing text inputs 2024-09-30 19:27:27 +02:00
pax-k
958f534a16 Merge branch 'main' into JAZZ-314/react-native-proof-of-concept 2024-09-30 16:56:02 +03:00
Anselm Eickhoff
2a648a620c Merge pull request #459 from gardencmp/fix-tests
Fix tests
2024-09-30 14:52:52 +01:00
pax-k
f10d13be3b fix: tests 2024-09-30 16:49:31 +03:00
Anselm Eickhoff
e8f7e90220 Merge pull request #454 from gardencmp/trishalim-jazz-334
Add api-reference page listing packages and descriptions
2024-09-30 11:23:03 +01:00
Trisha Lim
6bf16fd52c Add api-reference page listing packages and descriptions 2024-09-27 14:41:54 +01:00
Trisha Lim
f290f7716e Fix logo not center aligned 2024-09-27 12:48:11 +01:00
Trisha Lim
3a83fdf005 Button hover styles 2024-09-26 19:06:42 +01:00
Trisha Lim
88ca9fe406 Make arrow more subtle 2024-09-26 19:06:42 +01:00
Trisha Lim
00e5847fbe Add CTA buttons to bottom of home page 2024-09-26 19:06:42 +01:00
Trisha Lim
7d54bc8cdd Add button component 2024-09-26 19:06:42 +01:00
Trisha Lim
b684ca1fd6 Add diagram for light mode 2024-09-26 19:06:42 +01:00
Trisha Lim
3c934e97ac Add diagram to homepage, rewrite copy 2024-09-26 19:06:42 +01:00
Anselm Eickhoff
f143a4aa4d Merge pull request #451 from gardencmp/trishalim-jazz-337
Set blue (primary) color palette
2024-09-26 10:50:09 -07:00
Trisha Lim
0c07fcee1c Set blue (primary) color palette 2024-09-26 18:01:06 +01:00
Anselm Eickhoff
eca9698bbc Merge pull request #448 from gardencmp/trishalim-jazz-320
Improve styling for code snippets
2024-09-25 08:46:40 -07:00
Trisha Lim
de66d90b85 Styling for removed line in code snippet 2024-09-25 16:16:55 +01:00
Trisha Lim
4bc815a576 Improve styling for code snippets 2024-09-25 14:30:19 +01:00
Anselm Eickhoff
0bd4fea0dd Merge pull request #444 from gardencmp/trishalim-jazz-307
Emphasize invite link to join chat in chat example
2024-09-24 13:01:57 -07:00
Trisha Lim
35c310dc47 Add "copy url to invite" button 2024-09-24 19:53:04 +01:00
Trisha Lim
f80442793a Switch to url field 2024-09-24 19:17:44 +01:00
Anselm Eickhoff
98be05f697 Merge pull request #441 from gardencmp/anselm-jazz-332
Finish Guide
2024-09-24 11:13:39 -07:00
Trisha Lim
0b6e9e6c4d Dark mode styling for homepage chat example 2024-09-24 18:59:49 +01:00
Trisha Lim
45046f571f Mobile view for homepage chat example 2024-09-24 18:36:11 +01:00
Trisha Lim
4ccad8ac0b Add invite link 2024-09-24 18:17:46 +01:00
Anselm
e4d68bb56b Heading structure for Groups & Permissions 2024-09-24 10:02:27 -07:00
Anselm
ab7c560fbb Merge branch 'main' into anselm-jazz-332 2024-09-24 09:48:55 -07:00
Anselm Eickhoff
32c820be56 Merge pull request #440 from gardencmp/trishalim-jazz-322
Redesign UI of docs side nav
2024-09-24 09:43:30 -07:00
Anselm
f5d7c9fd6b Fix details marker on Safari 2024-09-24 09:36:59 -07:00
Anselm
6b90c6048b New intro 2024-09-24 09:29:52 -07:00
Trisha Lim
80bb793e3a Scroll chat body only, not whole screen 2024-09-24 15:56:09 +01:00
Trisha Lim
b275ffbe01 Redesign code example section 2024-09-24 15:43:37 +01:00
Trisha Lim
49f60bda67 Minimal UI improvements to chat example 2024-09-24 15:19:03 +01:00
Trisha Lim
8b52f180af Get design system app running 2024-09-24 13:47:33 +01:00
Trisha Lim
46365a35fe Redesign UI of docs side nav 2024-09-24 13:46:53 +01:00
Anselm
f3232b5361 Fix lockfile 2024-09-23 14:20:14 -07:00
Anselm
2b8f5ed3ca Release 2024-09-23 14:17:35 -07:00
Anselm
fcf0baee2e Fix jazz-run 2024-09-23 14:16:54 -07:00
Anselm Eickhoff
07183ffe5b Merge pull request #443 from gardencmp/trishalim-jazz-333
Spacing improvements on landing pages (home and mesh)
2024-09-23 13:46:05 -07:00
Anselm
ac9dab0b3b Group explanation and half of invitation flow 2024-09-23 12:30:56 -07:00
Trisha Lim
11c36460ac Allow horizontal scroll on tabs 2024-09-23 20:28:51 +01:00
Trisha Lim
e0d7b266e7 Spacing improvements on mesh landing page 2024-09-23 20:27:02 +01:00
Trisha Lim
3706360ffc Make borders on dark mode more subtle 2024-09-23 20:22:03 +01:00
Trisha Lim
3d7a20ca64 Spacing improvements on homepage 2024-09-23 20:20:09 +01:00
Anselm
9b1227915e Comment out TODOs 2024-09-23 11:34:38 -07:00
Anselm
dbb024e4da Reshuffle headings 2024-09-23 11:34:18 -07:00
Anselm Eickhoff
381ecaaf96 Merge pull request #438 from gardencmp/trishalim-jazz-331
Fix scroll issue on chat example
2024-09-23 09:30:14 -07:00
Anselm Eickhoff
25435ba597 Merge pull request #434 from gardencmp/trishalim-jazz-323
Make package name on side bar clickable
2024-09-23 09:29:03 -07:00
Trisha Lim
c56fd81bff Switch auth button copy to sentence case 2024-09-23 16:54:22 +01:00
Trisha Lim
707bf332d0 Fix scroll issue on chat example 2024-09-23 16:51:57 +01:00
Anselm Eickhoff
40225635f1 Merge pull request #436 from gardencmp/trishalim-jazz-326
Fix text colors in dark mode
2024-09-23 07:36:03 -07:00
Trisha Lim
e4ff701488 Fix text colors in dark mode 2024-09-23 15:25:06 +01:00
Anselm Eickhoff
314cdee815 Merge pull request #435 from gardencmp/trishalim-jazz-326 2024-09-23 07:07:30 -07:00
Trisha Lim
fa549f49b7 Fix heading colors in dark mode 2024-09-23 14:14:54 +01:00
Trisha Lim
c38460afd2 Fix inconsistent container width 2024-09-23 13:48:06 +01:00
Trisha Lim
7657c8469e Fix heading structure in docs 2024-09-23 13:11:28 +01:00
Trisha Lim
97abe86d7e Run pnpm format 2024-09-23 13:05:44 +01:00
Trisha Lim
a339dfaeb0 Make package name on side bar clickable 2024-09-23 13:05:25 +01:00
pax-k
15356960e9 chore: react-native scaffolding (wip) 2024-09-23 12:52:48 +03:00
Anselm Eickhoff
3710776d09 Merge pull request #433 from gardencmp/anselm-jazz-330
Clean up chat example
2024-09-22 18:06:42 -07:00
Anselm
dffc2ee2fe Mention lines of code again 2024-09-22 18:01:15 -07:00
Anselm
cd47928252 Fix issues 2024-09-22 17:53:11 -07:00
Anselm
4b84ede0b5 Use two spaces for the chat examples 2024-09-22 17:46:27 -07:00
Anselm
0de4d684d8 Fix chat-clerk app.tsx 2024-09-22 17:36:33 -07:00
Anselm
d78a5364f6 Rename dumb components file 2024-09-22 17:32:52 -07:00
Anselm
228dfa1799 Clean up chat example 2024-09-22 17:25:50 -07:00
Anselm
74a66eaa94 Fix lockfile 2024-09-22 14:31:10 -07:00
Anselm
96670db342 Only build examples, don't deploy them on nomad anymore 2024-09-22 14:29:55 -07:00
Anselm
e4655c3705 Fix example auth components 2024-09-22 14:23:44 -07:00
Anselm
5a5f767b3d Fix versions & lockfile 2024-09-22 14:15:15 -07:00
Anselm
9c8038ffb6 Release 2024-09-22 14:06:04 -07:00
Anselm
a524cd38a1 Don't use peerDeps for internal packages at all 2024-09-22 14:05:16 -07:00
Anselm
70960e917d Manually fix precise workspace dep versions 2024-09-22 13:53:45 -07:00
Anselm
a28d899e5c retroactively create minor changes 2024-09-22 13:43:07 -07:00
Anselm
20ef6474d4 Try forcing correct peerDep bumping 2024-09-22 13:42:11 -07:00
Anselm Eickhoff
6947593414 Merge pull request #326 from gardencmp/anselm-jazz-182
Auth refactor & Clerk integration
2024-09-22 13:11:47 -07:00
Anselm
23369dce80 Pre-release 2024-09-22 13:03:21 -07:00
Anselm
a7cd61ce75 Fix guide 2024-09-22 13:02:09 -07:00
Anselm
c702d632a2 Fix some auth state handling with logout and jazz-react 2024-09-22 12:14:06 -07:00
Anselm
9b90ae195c Add logout functionality to jazz-react (and example apps) 2024-09-22 11:50:05 -07:00
Anselm
7820232282 Add logOut to auth methods again 2024-09-22 11:37:35 -07:00
Anselm
32d588451a Mostly fix pet example 2024-09-22 11:04:13 -07:00
Anselm
ae56765efa Make password manager buildable 2024-09-22 10:18:44 -07:00
Anselm
467decfcce Fix e2e test issues with new context API 2024-09-22 10:12:19 -07:00
Anselm
2ab17d0569 Fix sherif lints 2024-09-22 09:54:07 -07:00
Anselm
543517f80a Some more merge work 2024-09-22 09:52:20 -07:00
Anselm
9ef0be665e Merge branch 'main' into anselm-jazz-182 2024-09-22 09:37:10 -07:00
Anselm
87ef6d5064 Pre-release 2024-09-22 09:06:01 -07:00
Anselm
e2ec51d3db Merge branch 'trishalim-jazz-311' 2024-09-22 08:50:17 -07:00
Anselm Eickhoff
566be392da Merge pull request #412 from gardencmp/trishalim-jazz-312
Fix footer overlaps side nav in docs
2024-09-22 08:47:08 -07:00
Anselm
7497ed2a7c Clean up nav related components and fix footer after botched merge 2024-09-22 07:16:36 -07:00
Anselm
13b0dfc38f Merge branch 'main' into trishalim-jazz-312 2024-09-22 07:09:52 -07:00
Anselm Eickhoff
1debe44cf1 Merge pull request #424 from gardencmp/feature/binarycostream-reconnection-test
test(BinaryCoStream): add a reconnection e2e test
2024-09-22 06:53:07 -07:00
Anselm Eickhoff
b737e14069 Merge pull request #411 from gardencmp/trishalim-jazz-311
Create separate pages for each section in the docs
2024-09-20 11:45:55 -07:00
Anselm
82fd148370 Add static params for packages 2024-09-20 10:58:12 -07:00
Guido D'Orsi
d0fc6dbc13 test(BinaryCoStrea): add a reconnection e2e test 2024-09-20 18:35:01 +02:00
Trisha Lim
f588c3f265 Move packages documentation to separate routes 2024-09-20 17:26:43 +01:00
Anselm Eickhoff
659e80bbf4 Merge pull request #356 from gardencmp/anselm-jazz-284
Design system setup
2024-09-20 16:15:50 +01:00
Anselm
3585e2acde Fix lint and dep errors 2024-09-20 07:44:13 -07:00
Anselm
98554523c8 Kind of start using components on the docs/guide page 2024-09-20 14:45:04 +01:00
Anselm
dbeaa35110 Use/extract components for mesh page 2024-09-20 14:30:11 +01:00
Anselm
61c719c728 Merge branch 'main' into anselm-jazz-284 2024-09-20 14:05:07 +01:00
Anselm Eickhoff
48fddecd30 Merge pull request #420 from gardencmp/trishalim-jazz-313 2024-09-20 10:57:49 +01:00
Trisha Lim
f5779077df Fix horizontal overflow on tablet in docs 2024-09-19 18:43:26 +01:00
Trisha Lim
5149fb6fbf Fix horizontal overflow on tablet in docs 2024-09-19 17:51:16 +01:00
Trisha Lim
dcc6134180 Clip text that is too long 2024-09-19 16:28:17 +01:00
Trisha Lim
ecb336829d Fix footer overlaps side nav in docs 2024-09-19 16:28:17 +01:00
Trisha Lim
2778f919a6 Use dynamic route for packages 2024-09-19 16:05:25 +01:00
Trisha Lim
ab6fcc7a7a Add metadata to each package page 2024-09-19 12:29:37 +01:00
Trisha Lim
aa284802ab Use Link instead of anchor tag 2024-09-19 11:40:15 +01:00
Trisha Lim
a6af56bc2e Add section for "Simple Public Sharing" 2024-09-19 11:36:29 +01:00
Anselm Eickhoff
751f0b4d10 Merge pull request #410 from gardencmp/feature/fix-playlist-invitation-add 2024-09-19 08:30:03 +01:00
Trisha Lim
a233eb6396 Remove sections that don't exist 2024-09-18 21:01:52 +01:00
Trisha Lim
c91d9b99be Move packages documentation to separate routes 2024-09-18 20:52:58 +01:00
Guido D'Orsi
a5b798a257 fix(musicPlayer): fix the playlist check on invitation 2024-09-18 21:48:44 +02:00
Anselm Eickhoff
18b71442ca Merge pull request #394 from gardencmp/gudorsi-jazz-300
fix(BinaryCoStream): set the stream content message as low priority in the WS outgoing channel
2024-09-18 17:36:52 +01:00
Guido D'Orsi
f350e902a8 changeset 2024-09-18 18:35:39 +02:00
Guido D'Orsi
38a6447887 fix(priority): group detection and only set binary costream as low 2024-09-18 18:29:27 +02:00
Anselm Eickhoff
39da70558b Merge pull request #408 from gardencmp/trishalim-jazz-310
Separate chat code example to 2 tabs
2024-09-18 16:50:34 +01:00
Anselm Eickhoff
73f62966ed Merge pull request #405 from gardencmp/trishalim-jazz-309
Change mono font to Commit Mono
2024-09-18 16:47:35 +01:00
Trisha Lim
c41e035b67 Change mono font to Commit Mono 2024-09-18 16:43:05 +01:00
Trisha Lim
f4c466ea30 Change mono font to IBM Plex Mono 2024-09-18 16:43:05 +01:00
Trisha Lim
91e9a267f0 Match accent color with Jazz logo 2024-09-18 16:33:53 +01:00
Trisha Lim
d1ec24a05b Dark mode styling 2024-09-18 16:28:38 +01:00
Guido D'Orsi
657159e034 chore(PeerState): sort attributes declaration 2024-09-18 17:20:41 +02:00
Guido D'Orsi
0327913e53 chore: comments 2024-09-18 17:19:06 +02:00
Trisha Lim
5ad9d652be Fix build, rewrite ChatCodeExample to CodeExampleTabs 2024-09-18 16:16:02 +01:00
Guido D'Orsi
3cde94a94b chore: fix sync.test.ts type errors 2024-09-18 16:59:20 +02:00
Guido D'Orsi
a7f036c71f Merge remote-tracking branch 'origin/main' into gudorsi-jazz-300 2024-09-18 16:58:21 +02:00
Guido D'Orsi
20b47ad8af feat: simpler priority system and extract content priority from headers 2024-09-18 16:55:05 +02:00
Trisha Lim
6f2eac383d Styling code area 2024-09-18 15:43:27 +01:00
Trisha Lim
5d40e83297 Design tabs for chat code example 2024-09-18 14:19:57 +01:00
Anselm Eickhoff
7721ccffaf Merge pull request #403 from gardencmp/JAZZ-308/check-example-app-urls
fix(examples): updated URLs for example apps
2024-09-17 14:24:56 +01:00
pax-k
aa7edc8e3f fix(examples): updated URLs for example apps 2024-09-17 16:23:33 +03:00
Anselm Eickhoff
bba1728988 Merge pull request #399 from gardencmp/JAZZ-305/integrate-test-coverage
feat: added test coverage
2024-09-17 09:16:24 +01:00
Guido D'Orsi
f1dff3e3fd test: fix sync.test.ts tests 2024-09-16 23:47:48 +02:00
Guido D'Orsi
d5604b9eb5 chore: generalize PriorityBasedMessageQueue 2024-09-16 23:40:16 +02:00
Guido D'Orsi
3acf61e2c3 feat: move the priority management from the websocket peer to the peer state 2024-09-16 23:37:57 +02:00
Guido D'Orsi
3a0d25d048 feat: extract PeerState and refactor it into a class 2024-09-16 23:37:57 +02:00
Guido D'Orsi
28720043a4 chore(cojson-transport-ws): add tests and split code 2024-09-16 23:37:57 +02:00
Guido D'Orsi
79491353da fix: fixes errors in sync due the extra push param 2024-09-16 23:37:57 +02:00
Guido D'Orsi
35eb8829ea feat(cojson-transport-ws): interleaved weighed round robin 2024-09-16 23:37:57 +02:00
Guido D'Orsi
5cd38d5974 fix(BinaryCoStream): set the stream content message as low priority in the WS outgoing stream 2024-09-16 23:37:57 +02:00
pax-k
30f1fa1557 feat: added test coverage 2024-09-16 20:48:18 +03:00
Anselm Eickhoff
fe035c3b3f Merge pull request #392 from gardencmp/feature/BinaryCoStream-e2e-ci+
chore: run e2e/BinaryCoStream tests on CI
2024-09-16 16:31:02 +01:00
Guido D'Orsi
1efe8ee6c7 chore: run e2e/BinaryCoStream tests on CI 2024-09-12 18:36:15 +02:00
Guido D'Orsi
f410a8540b fix: in the BinaryCoStream e2e test retry failed subscribes 2024-09-12 18:35:37 +02:00
Anselm Eickhoff
acb6249292 Merge pull request #385 from gardencmp/feature/sync-duration-test 2024-09-11 09:46:01 +01:00
Guido D'Orsi
77c38a1c4b chore(ci): remove BinaryCoStream from the CI tests 2024-09-10 18:14:11 +02:00
Guido D'Orsi
6e1d56a9b0 feat: add more size choices and reduce the default to 1KB 2024-09-10 18:14:11 +02:00
Guido D'Orsi
d10a7b9c76 test: e2e tests for the BinaryCoStream sync 2024-09-10 18:14:11 +02:00
Anselm Eickhoff
209f295399 Merge pull request #388 from gardencmp/feature/auth-laoding 2024-09-09 18:39:10 +01:00
Guido D'Orsi
cac2ec9aa1 changeset 2024-09-09 19:06:43 +02:00
Guido D'Orsi
30a9e7a94f fix(jazz-react): mark the auth as loading when authState is not ready 2024-09-09 19:05:52 +02:00
Anselm Eickhoff
af5adc37ca Merge pull request #386 from gardencmp/fix/music-player-example 2024-09-09 11:51:04 +01:00
Guido D'Orsi
af12226998 fix(musicPlayer): move the upload of example data outside of the initial migration 2024-09-09 12:24:27 +02:00
Anselm
6a147c2d28 Pre-release 2024-09-06 20:39:14 +01:00
Anselm Eickhoff
b8bf440f84 Merge pull request #384 from gardencmp/fix-lockfile 2024-09-06 17:31:58 +01:00
Anselm
c2b62a0fee Pre-release 2024-09-06 16:49:42 +01:00
Anselm
301458e713 Make anonymous auth work better 2024-09-06 16:48:22 +01:00
Guido D'Orsi
5198a249d1 fix: align deps 2024-09-06 16:51:46 +02:00
Guido D'Orsi
918322bc4a fix lockfile 2024-09-06 16:50:30 +02:00
Anselm Eickhoff
b66791d81a Merge pull request #383 from gardencmp/feature/monorepo-improvements
test(deepLoading): fix skipped test
2024-09-06 15:47:04 +01:00
Anselm Eickhoff
a2fbd9ed22 Merge pull request #334 from gardencmp/feature/music-player-example
feat(example): add a music player example
2024-09-06 15:34:17 +01:00
Guido D'Orsi
89111c5bf3 test(deepLoading): fix skipped test 2024-09-06 16:05:41 +02:00
Anselm
1a979b64b3 Implement guest auth 2024-09-05 18:37:24 +01:00
Anselm Eickhoff
d4a358d0f9 Merge pull request #382 from gardencmp/feature/monorepo-improvements 2024-09-05 16:53:43 +01:00
Guido D'Orsi
daf24d65f6 chore: fix or skip failing tests 2024-09-05 17:44:50 +02:00
Guido D'Orsi
9517cef183 chore: fix monorepo linting action 2024-09-05 17:38:17 +02:00
Guido D'Orsi
f70950cc82 feat(ci): run unit tests on PR 2024-09-05 17:17:53 +02:00
Guido D'Orsi
ec3dffa3e4 feat: add sherif to check monorepo dependencies 2024-09-05 17:17:35 +02:00
Guido D'Orsi
207bea3c1c tiny typo 2024-09-04 23:55:33 +02:00
Guido D'Orsi
fcae20d77c feat(musicPlayer): walkthrough until 3_actions 2024-09-04 23:54:22 +02:00
Guido D'Orsi
0a542941ad feat: add docs on the schema file 2024-09-04 23:54:06 +02:00
Guido D'Orsi
5dceef8c03 fix: avoid adding duplicate playlists when accepting 2024-09-04 23:54:06 +02:00
Guido D'Orsi
fb01eb42f1 fix: remove the example audio auto-delete 2024-09-04 23:54:06 +02:00
Guido D'Orsi
e1e3a8352e docs: update the README.md and cleanup the changelog 2024-09-04 23:54:06 +02:00
Guido D'Orsi
09678c4277 chore: merge jazz and main 2024-09-04 23:54:06 +02:00
Guido D'Orsi
5b83669368 feat: other UI improvements 2024-09-04 23:54:06 +02:00
Guido D'Orsi
30c8c922a3 feat: improve the click areas and add the Space keybinding 2024-09-04 23:54:06 +02:00
Guido D'Orsi
e05b327eb5 feat: player controls, example audio and ui fixes 2024-09-04 23:54:06 +02:00
Guido D'Orsi
06665cbbf7 feat: improve the add to playlist section nand invitation flow 2024-09-04 23:54:06 +02:00
Guido D'Orsi
c0425df2ee fix: make the playlist invite work 2024-09-04 23:54:06 +02:00
Guido D'Orsi
42cbef8063 feat(music-player): implement playlist page and sharing 2024-09-04 23:54:06 +02:00
Guido D'Orsi
d1abf06621 feat: improve the playing stability and clean up the code 2024-09-04 23:54:06 +02:00
Guido D'Orsi
1c00020859 feat: implement the basic interactions with the player (upload and play) 2024-09-04 23:54:06 +02:00
Guido D'Orsi
00dd9cea99 feat: setup the boilerplate for the musicPlayer example 2024-09-04 23:54:04 +02:00
Anselm Eickhoff
607cd0ab97 Merge pull request #367 from gardencmp/gudorsi-jazz-141 2024-09-04 21:06:05 +01:00
Anselm Eickhoff
9f65e56b21 Update forty-plants-kiss.md 2024-09-04 21:05:13 +01:00
Anselm Eickhoff
82c5d1bf5c Merge pull request #376 from gardencmp/JAZZ-295/implement-password-manager-demo 2024-09-04 16:49:49 +01:00
pax-k
deda3e571f fix(password-manager): tsconfig 2024-09-04 18:03:43 +03:00
Anselm Eickhoff
2d4039c5d2 Merge pull request #378 from gardencmp/JAZZ-296/data-in-inspector-flashes-into-view-then-disappears
fix(inspector): subscribe to latent covalues instead of loading them immediately
2024-09-04 14:24:52 +01:00
pax-k
63dd9190a2 chore: format 2024-09-04 16:16:33 +03:00
pax-k
3dfa630923 chore: cleanup 2024-09-04 16:08:08 +03:00
pax-k
63daf6af09 chore: changeset 2024-09-04 16:00:42 +03:00
pax-k
c85ccd96aa fix(inspector): subscribe to latent covalues instead of loading them immediately 2024-09-04 15:58:48 +03:00
Anselm
8b7b57fe2c Move newRandomSessionID to CryptoProvider 2024-09-04 11:41:02 +01:00
Guido D'Orsi
403b430ee4 chore: changeset 2024-09-03 18:34:04 +02:00
pax-k
f58845ef74 fix(password-manager): correct main script reference 2024-09-03 17:19:23 +03:00
pax-k
38fad35945 chore: password manager demo cleanup 2024-09-03 15:58:40 +03:00
pax-k
2533740a7c feat: password manager demo (wip) 2024-09-03 13:21:20 +03:00
Guido D'Orsi
109a7d6128 chore: use Effect.never to keep the server up, remove LocalNode comment 2024-09-03 11:45:10 +02:00
Anselm Eickhoff
ec1906e262 Merge pull request #368 from gardencmp/JAZZ-278/investigate-bug-when-assigning-null-values-to-corefs-in-applydiff 2024-09-03 09:24:46 +01:00
Anselm
ad40b883eb Pre-release 2024-09-02 17:29:47 +01:00
Anselm
1c64ae1bba First sketch of creating and finding unique CoMaps 2024-09-02 17:28:03 +01:00
pax-k
6f8028253d chore: changeset 2024-09-02 17:50:54 +03:00
pax-k
0704a76006 fix: handle null values for co.refs 2024-09-02 16:49:53 +03:00
Anselm Eickhoff
ab93a0b679 Fix #353 2024-09-02 12:11:24 +01:00
Guido D'Orsi
ed85560547 feat: rename command and add persistence 2024-09-02 11:36:52 +02:00
Guido D'Orsi
a242adf3b3 docs: update cojson-simple-sync command 2024-09-01 17:12:53 +02:00
Guido D'Orsi
1a9c7ecefd feat(jazz-run): add a command to spin a local sync server 2024-09-01 17:10:29 +02:00
Anselm Eickhoff
aded528a27 Merge pull request #357 from gardencmp/gudorsi-jazz-281 2024-08-31 17:50:00 +01:00
Guido D'Orsi
152ae9865e chore(ci): debug error with artifacts 2024-08-31 18:21:24 +02:00
Guido D'Orsi
8bd92b44f5 chore(ci): increase expect timeout to 15000 on CI 2024-08-31 17:06:11 +02:00
Guido D'Orsi
8d15e04fd0 chore(ci): fix Install Playwright Browsers 2024-08-30 19:41:07 +02:00
Guido D'Orsi
b7f3ece0f1 chore: fix action indentation 2024-08-30 19:38:32 +02:00
Guido D'Orsi
4c94ae3da2 test(pets): test incoming reaction 2024-08-30 19:34:14 +02:00
Guido D'Orsi
cd23ce0a51 feat: github action for playwright tests 2024-08-30 19:19:07 +02:00
Guido D'Orsi
8538036af7 test(pets): use pom 2024-08-30 19:13:35 +02:00
Anselm
6ee7133924 Homepage mostly extracted 2024-08-30 16:23:28 +01:00
Anselm
4fa19ece52 Pull nav into design system 2024-08-29 19:22:21 +01:00
Anselm
875ac4b84f An attempt to pull out copy and make the landign page tsx again 2024-08-29 19:09:53 +01:00
Anselm
346e797447 Pull out more stuff 2024-08-29 18:51:17 +01:00
Anselm
6ce20517bc Pre-release 2024-08-29 14:38:27 +01:00
Anselm
9509ceb975 Make me context optional 2024-08-29 14:37:52 +01:00
Anselm
bcec3be423 Pre-release 2024-08-29 14:23:07 +01:00
Anselm
e3958d1609 Rest of clerk & auth implementation + some fixes and patches 2024-08-29 14:21:22 +01:00
Anselm
7f6d778301 First extraction 🏗️ 2024-08-29 11:20:17 +01:00
Guido D'Orsi
40287a5682 feat(pets): add an e2e test suite 2024-08-29 02:26:28 +02:00
Anselm
bcfe4b794e Basic connection to design system 2024-08-28 19:03:51 +01:00
Anselm
7a27193ceb Include design system in homepage pnpm workspace 2024-08-28 18:36:36 +01:00
Anselm
6db14cefa0 Merge remote-tracking branch 'sammii-design-system/main' into anselm-jazz-284 2024-08-28 18:33:32 +01:00
Anselm
b57e1a64ac Move into subfolders in preparation of move into monorepo 2024-08-28 18:29:38 +01:00
Sammii
a1b83cceea whipping up a design system 2024-08-28 17:59:39 +01:00
Anselm
0fc7291178 Make it mostly work 2024-08-28 17:39:48 +01:00
Sammii
cd29438304 create next app 2024-08-28 15:01:15 +01:00
Samantha Haylock
7695a817ca first commit 2024-08-27 10:41:32 +01:00
Anselm
51d1cc677b Refactor all browser auth methods to new API 2024-08-23 15:56:09 +01:00
Anselm
0cf7a7aa85 Merge branch 'main' into anselm-jazz-182 2024-08-23 11:20:49 +01:00
Anselm Eickhoff
2ddce1a2de Merge pull request #327 from gardencmp/gudorsi-jazz-254 2024-08-22 19:36:30 +01:00
Guido D'Orsi
49a8b54a8a Add changesets 2024-08-22 20:33:51 +02:00
Anselm Eickhoff
04b15c7d4a Merge pull request #345 from gardencmp/gudorsi-jazz-261 2024-08-22 18:37:37 +01:00
Guido D'Orsi
5909e7e894 fix(pets): set the ownership of reactions to the write group 2024-08-22 19:25:30 +02:00
Anselm Eickhoff
7a3d519970 Merge pull request #337 from gardencmp/feat/jazz-255-loadasblob
fix(BinaryCoStream): resolve the loadAsBlob call only when the stream id ended
2024-08-22 15:00:13 +01:00
Anselm
35bbcd94e6 Add changesets 2024-08-22 14:59:40 +01:00
Anselm Eickhoff
f6629b2b58 Merge pull request #336 from gardencmp/anselm-jazz-264
Adopt neverthrow throughout cojson
2024-08-22 14:34:45 +01:00
Anselm
b4891db9fa Release 2024-08-22 14:31:02 +01:00
Anselm
4e16575f97 Hotifx release 2024-08-22 14:29:31 +01:00
Anselm
12ab20ecd9 Use queueable fork 2024-08-22 14:29:03 +01:00
Anselm
2c3a40c94b Hotfix release 2024-08-22 14:06:35 +01:00
Anselm
0d8175ba1c Use fork of queueable 2024-08-22 14:06:08 +01:00
Anselm Eickhoff
311ed74709 Delete oldExamples directory 2024-08-22 13:45:57 +01:00
Anselm Eickhoff
c86301fcfd Delete oldPackages/jazz-browser-auth0 directory 2024-08-22 13:45:47 +01:00
Anselm
032f69f692 Fix jazz-run deps even more 2024-08-22 12:49:34 +01:00
Anselm
6dc52b2a6d Fix jazz-run dependencies 2024-08-22 12:47:35 +01:00
Anselm
1232c0240a Hotifx release 2024-08-22 12:03:33 +01:00
Anselm
55fa74f44a Hack to make jazz-run create account work 2024-08-22 12:02:50 +01:00
Guido D'Orsi
627e04151d fix(CoMapInit): type validation on falsy values for required refs 2024-08-22 02:35:58 +02:00
Anselm
5d91f9f8dc Hotifx release 2024-08-21 16:20:55 +01:00
Anselm
08f1f77834 Stop using tryAddTransactionsAsync 2024-08-21 16:20:35 +01:00
Anselm
ea882aba63 Hotfix release 2024-08-21 15:59:16 +01:00
Anselm
513a78ab9b Better logging for failed transactions 2024-08-21 15:58:38 +01:00
Anselm
406ab9b0da Hotfix release 2024-08-21 15:24:27 +01:00
Anselm
140f6616cb Remove WS buffer filling log message 2024-08-21 15:23:41 +01:00
Anselm
b09589b15e Hotfix release 2024-08-21 11:39:18 +01:00
Anselm
00638897f4 only one async transaction per covalue again 2024-08-21 11:36:47 +01:00
Anselm Eickhoff
4cd68c1930 minimal inspector readme 2024-08-21 11:20:39 +01:00
Guido D'Orsi
f1f3607e28 test(BinaryCoStream): add tests for loadAsBlob 2024-08-20 19:46:13 +02:00
Guido D'Orsi
7b9f503b9e test(coStream): add tests for isBinaryStreamEnded 2024-08-20 19:35:11 +02:00
Guido D'Orsi
a18f44399c fix(BinaryCoStream): resolve the loadAsBlob call only when the stream is ended 2024-08-20 19:20:36 +02:00
Anselm
5094e6d536 Hotfix release 2024-08-20 18:03:01 +01:00
Anselm
39242e7f68 Start introducing neverthrow, make tryAddNewTransactionsAsync and handleNewContent less throwy 2024-08-20 18:02:26 +01:00
Anselm Eickhoff
be7e208b1c Merge pull request #333 from gardencmp/anselm-jazz-265
Make sure errors in storage peer completely crash jazz context instead of failing silently
2024-08-20 14:09:19 +01:00
Anselm
c3bffbf4de Release 2024-08-20 14:02:53 +01:00
Anselm
d46467f318 Hotfix release 2024-08-20 12:58:09 +01:00
Anselm
6d21400803 Get rid of simulated errors 2024-08-20 12:57:50 +01:00
Anselm
db53161296 Hotfix release 2024-08-20 12:46:15 +01:00
Anselm
cb4a116cec Make simulated errors even more likely 2024-08-20 12:45:34 +01:00
Anselm
013199b9b2 Increase chance of simulated storage bug 2024-08-20 11:43:28 +01:00
Anselm
a8b74ff703 Hotfix release 2024-08-20 11:43:20 +01:00
Anselm
b1985a9161 Throw properly on peer that should crash on close 2024-08-20 11:42:53 +01:00
Anselm
3bf512719f Hotfix release 2024-08-20 11:22:44 +01:00
Anselm
d83ed69d41 Allow crashing whole local node on peer errors 2024-08-20 11:20:20 +01:00
Anselm
fdde8db664 Hotfix release 2024-08-19 17:19:40 +01:00
Anselm
dd5581ba2d Handle ws closing while buffering 2024-08-19 17:19:01 +01:00
Anselm
07fe2b9dcf Release 2024-08-19 16:45:35 +01:00
Anselm
b297c93b80 Release fixes 2024-08-19 15:08:08 +01:00
Anselm
d2e62e5b44 Reduce log level on loading message 2024-08-19 14:50:26 +01:00
Anselm
fe73ce7514 Make failed transaction log message leaner 2024-08-19 14:48:57 +01:00
Anselm Eickhoff
0fed16cea4 Merge pull request #323 from gardencmp/callumflack-jazz-240
fix: chat example URL
2024-08-19 11:15:39 +01:00
Anselm
0503479fcf Auth refactor and clerk WIP 2024-08-19 10:48:01 +01:00
Callum Flack
08804ad435 fix: chat example URL 2024-08-19 11:03:33 +10:00
Anselm
79fa7724ad Release 2024-08-15 19:35:11 +01:00
Anselm
4604c2184a Adapt type of applyDiff to make CoMaps fully subclassable again 2024-08-15 19:34:47 +01:00
Anselm
11bac697fb Release 2024-08-15 19:23:19 +01:00
Anselm
96cec27f89 Close both ends of the peer on gracefulShutdown 2024-08-15 19:22:59 +01:00
Anselm
bcd412b8f9 Properly close connecting websockets 2024-08-15 19:22:19 +01:00
Anselm
6b456e2841 Properly close and delete peer on incoming disconnect/timeout 2024-08-15 19:10:22 +01:00
Anselm
1df72b3dc8 Reintroduce nomad example deploy, but only on main 2024-08-15 19:08:42 +01:00
Anselm
402d692739 Don't deploy examples to Nomad anymore 2024-08-15 17:02:40 +01:00
Anselm
fad46b2fb5 Release 2024-08-15 16:37:47 +01:00
Anselm
0153c80cf2 Immediately resolve an already-open websocket 2024-08-15 16:37:23 +01:00
Anselm
4f75dc8d97 Release 2024-08-15 16:17:31 +01:00
Anselm
e2c79cccb5 Remove noisy log 2024-08-15 16:17:03 +01:00
Anselm
c14a0e05be Release 2024-08-15 15:30:22 +01:00
Anselm
016dd3a5dd Fix ignoring server peers 2024-08-15 15:30:00 +01:00
Anselm
5c4ca9103c Release 2024-08-15 13:36:33 +01:00
Anselm
b4aad92907 Option to not expect pings 2024-08-15 13:36:08 +01:00
Anselm
56d1e095a1 Release 2024-08-15 13:02:39 +01:00
Anselm Eickhoff
6dee9aae49 Merge pull request #281 from gardencmp/anselm-jazz-190
Remove effect from jazz
2024-08-15 11:51:53 +01:00
Anselm Eickhoff
a10bff981e Merge pull request #284 from gardencmp/anselm-jazz-227
Remove effect from peer communication
2024-08-15 11:51:10 +01:00
Anselm Eickhoff
e333f7884a Merge pull request #313 from gardencmp/anselm-jazz-246
Remove effect from jazz-tools and dependent packages
2024-08-15 11:50:44 +01:00
Anselm
8ea7bf237b Remove effect from storage implementation 2024-08-15 11:13:10 +01:00
Anselm
5e8409fa08 Remove rest of effect use 2024-08-14 17:51:10 +01:00
Anselm
23354c1767 Progress on removing effect 2024-08-14 15:24:20 +01:00
Anselm Eickhoff
0efb69d0db Merge pull request #312 from pax-k/JAZZ-252/make-sure-castas-preserves-subscriptionscope
fix: preserve subscriptionScope for castAs in CoList and CoMap
2024-08-14 14:51:54 +01:00
pax-k
0462c4e41b fix: preserve subscriptionScope for castAs in CoList and CoMap 2024-08-14 16:50:12 +03:00
Anselm
70a5673197 More progress 2024-08-13 12:25:15 +01:00
Anselm Eickhoff
9ec3203485 Merge pull request #285 from gdorsi/main
docs: fix the get started links position
2024-08-12 17:46:41 +01:00
Guido D'Orsi
1a46f9b2e1 docs: fix the get started links position 2024-08-10 16:17:18 +02:00
Anselm
77bb26a8d7 Only use queable in cojson, rework tests 2024-08-09 16:44:50 +01:00
Anselm
2a36dcf592 WIP switch to queueable 2024-08-09 13:59:26 +01:00
Anselm
fc2bcadbe2 Remove effect schema from jazz schema 2024-08-08 18:18:17 +01:00
Anselm
46b0cc1adb Release 2024-08-08 14:44:00 +01:00
Anselm Eickhoff
d75d1c6a3f Merge pull request #279 from pax-k/JAZZ-219/implement-applydiff-on-comap-to-only-update-changed-fields
feat: Implement applyDiff on CoMap to only update changed fields
2024-08-08 13:50:17 +01:00
pax-k
13b236aeed feat: Implement applyDiff on CoMap to only update changed fields 2024-08-08 11:03:08 +03:00
Anselm Eickhoff
1c0a61b0b2 Merge pull request #271 from pax-k/document-max-recommended-tx-size
chore: document MAX_RECOMMENDED_TX_SIZE
2024-08-07 16:32:07 +01:00
Anselm
ceb92438f4 Release 2024-08-07 14:23:03 +01:00
Anselm Eickhoff
9bdd62ed4c Merge pull request #244 from gardencmp/anselm-jazz-187
Remove effectful API for loading/subscribing
2024-08-07 14:20:42 +01:00
pax-k
3f5ef7e799 chore: formatting 2024-08-06 19:35:14 +03:00
pax-k
e7a573fa94 chore: document MAX_RECOMMENDED_TX_SIZE 2024-08-06 19:22:41 +03:00
Anselm Eickhoff
364060eaa7 Merge pull request #249 from Schniz/schniz/allow-optional-encoder-to-be-empty-upon-creation 2024-08-03 19:59:09 +01:00
Gal Schlezinger
a3ddc3d5e0 allow co.optional.encoded to be empty on creation 2024-08-03 21:53:13 +03:00
Anselm Eickhoff
185f747adb Merge pull request #248 from timolins/new-explorer-ux 2024-08-03 13:51:47 +01:00
Timo Lins
895d281088 Remove legacy inspector to resolve TS errors 2024-08-03 13:09:27 +02:00
Timo Lins
b44e4354f7 Merge branch 'new-explorer-ux' of https://github.com/timolins/jazz into new-explorer-ux 2024-08-03 12:59:18 +02:00
Timo Lins
3fcb0665ec Fix TS errors 2024-08-03 12:59:14 +02:00
Tobias Lins
be49d33ce5 Update co-stream-view.tsx 2024-08-03 12:24:30 +02:00
Timo Lins
c7dae1608b Add new entry point 2024-08-03 10:49:29 +02:00
Timo Lins
b020c5868b Move app to legacy app 2024-08-03 10:48:06 +02:00
Timo Lins
eae42d3afe Revert app.tsx changes 2024-08-03 10:47:51 +02:00
Anselm
a816e2436e Remove effectful API for loading/subscribing 2024-07-31 16:21:26 +01:00
Anselm
b09e35e372 release 2024-07-29 10:40:10 +01:00
Anselm
d2c8121c9c Fix storage option in jazz-react 2024-07-29 10:34:39 +01:00
Anselm
380bb88ffa Mostly complete OPFS implementation (single-tab only) 2024-07-29 10:33:18 +01:00
Timo Lins
e0e3726b3c Update title 2024-07-28 18:02:06 +02:00
Timo Lins
c2253a7979 Improve styling of blob page 2024-07-28 17:40:23 +02:00
Timo Lins
9d244226ec Redesign root page, add group support & costream pages
Co-authored-by: Tobias Lins <me@tobi.sh>
2024-07-28 17:26:34 +02:00
Timo Lins
71df5e3a59 Fix native browser controls 2024-07-28 14:53:26 +02:00
Timo Lins
3a738dad88 Persists path in url 2024-07-28 13:53:39 +02:00
Timo Lins
56d301cfde Refactor the new viewer 2024-07-27 23:16:37 +02:00
Timo Lins
5efec6d5ea Move to a table view 2024-07-27 20:58:55 +02:00
Timo Lins
32769b24f1 Add new inspector 2024-07-27 20:10:24 +02:00
Anselm
6ab53c263d Release 2024-07-26 17:23:02 +01:00
Anselm
e7f3e4e242 Increase disconnect timeout for now 2024-07-26 17:21:06 +01:00
Anselm Eickhoff
8bb5201647 Merge pull request #236 from timolins/patch-1
[Homepage] Make current year dynamic in footer
2024-07-22 15:55:16 +01:00
Timo Lins
a9fc94f53d Make current year dynamic in footer 2024-07-22 10:06:48 +02:00
Anselm Eickhoff
ca7c0510d1 Merge pull request #234 from Schniz/schniz/co-optional 2024-07-21 10:14:41 +01:00
Gal Schlezinger
1bf16f0859 add co.optional syntax 2024-07-21 09:10:44 +03:00
Anselm Eickhoff
21b503c188 Merge pull request #224 from datner/datner/give-it-a-try
cojson-transport-ws: reuse runtime and use fibers instead of setTimeout
2024-07-15 14:35:18 +01:00
Anselm
0053e9796c Release 2024-07-15 11:01:31 +01:00
Anselm
e84941b1b1 Fix another bug in CoMap 'has' proxy trap 2024-07-15 10:59:14 +01:00
Anselm
57f6f8d67e Release 2024-07-14 17:55:47 +01:00
Anselm
5b8e69d973 Fix bug in CoMap 'has' trap 2024-07-14 17:55:05 +01:00
Anselm
7213b1bfa3 Release 2024-07-13 13:32:50 +01:00
Anselm Eickhoff
11f0770f08 Merge pull request #230 from tobiaslins/add-support-for-in
Add support for property existence
2024-07-13 13:30:15 +01:00
Tobias Lins
44e6dc3ae8 Remove useless check 2024-07-13 13:57:37 +02:00
Tobias Lins
b5d20d2488 Better implementation 2024-07-13 13:26:28 +02:00
Tobias Lins
0185545838 Add support for property existence 2024-07-13 12:26:10 +02:00
Yuval Datner
8c8f85859c style: prettier 2024-07-12 15:42:52 +03:00
Yuval Datner
104384409e refactor: change to yieldable error 2024-07-12 15:42:27 +03:00
Yuval Datner
179827ae56 small refactor for readability 2024-07-12 15:13:25 +03:00
Yuval Datner
6645829876 do stream stuff 2024-07-12 15:13:23 +03:00
Gal Schlezinger
68cb302722 store jazzPings on global 2024-07-12 15:13:22 +03:00
Gal Schlezinger
8dc33f2790 fix bugs because I misindented things 2024-07-12 15:13:21 +03:00
Gal Schlezinger
5f64ba326c jazzPings 2024-07-12 15:13:20 +03:00
Gal Schlezinger
7ccb15107c cojson-transport-ws: reuse runtime and use fibers instead of setTimeout
when calling Effect.runFork we don't propagate layers
and using fibers can allow us to interrupt ongoing requests
when the pings fail
2024-07-12 15:13:16 +03:00
Anselm
b102964743 Get rid of husky for now 2024-07-12 11:56:54 +01:00
Anselm
216d50a09c Remove old homepage build 2024-07-12 11:55:44 +01:00
Anselm
07ea59fdcb Release 2024-07-12 11:14:15 +01:00
Anselm
932a84a47f Update to Effect 3.5.2 2024-07-12 11:13:41 +01:00
Anselm
34dda7bdbd Release 2024-07-05 11:18:53 +01:00
Anselm
49fa153581 Merge branch 'fix-fs' 2024-07-05 11:17:54 +01:00
Anselm
c80b827775 Release 2024-06-30 16:28:53 +01:00
Anselm Eickhoff
a2bf9f988a Merge pull request #218 from Schniz/fix-mutating-nullable-field 2024-06-30 08:31:57 +01:00
Gal Schlezinger
ac27b2d5c2 jazz-tools: allow to mutate nullable fields into null
when having a co.encoded(Schema.NullOr(Schema.String)), construction
with null works well, but mutating a value into null throws.
This commit fixes it and adds a test that verifies it actually works.
2024-06-30 09:49:15 +03:00
Anselm
c813518fdc Release 2024-06-28 16:27:15 +01:00
Anselm
d5034ed5c3 Provide current res in ProgressiveImg 2024-06-28 16:26:03 +01:00
Anselm
cf2c29a365 Use verce lanalytics & speed insights 2024-06-28 14:54:58 +01:00
Anselm
d948823db6 Add package manager to package.json 2024-06-28 12:08:23 +01:00
Anselm
060ad4630d Resurrect inspector 2024-06-27 16:54:23 +01:00
Anselm
0ddceac4c0 Fix FS bugs 2024-06-26 13:45:09 +01:00
Anselm
a862cb8819 Release 2024-06-25 15:13:55 +01:00
Anselm Eickhoff
4246aed7db Merge pull request #214 from gardencmp/effect-streams-for-peers
Effect streams for peers
2024-06-25 15:12:56 +01:00
Anselm
41554e0e0b Release 2024-06-25 13:57:24 +01:00
Anselm
93c4d8155e Fix CoList.toJSON() 2024-06-25 13:56:20 +01:00
Anselm
24eefd49f1 Release 2024-06-25 13:46:54 +01:00
Anselm
e712f1e8ef Fix circular toJSON bug #215 2024-06-25 13:46:14 +01:00
Anselm
33db0fd654 Keep old hompage lockfile (unrelated) 2024-06-13 22:17:00 +01:00
Anselm
478ded93de Merge branch 'main' into effect-streams-for-peers 2024-06-13 22:12:33 +01:00
Anselm
89ad1fb79d Fix remaining tests by introducing even more special cases 2024-06-13 22:11:25 +01:00
Anselm Eickhoff
1ba40806ec Merge pull request #213 from tobiaslins/fix-demo-auth-nextjs
Fix DemoAuth for Next.js
2024-06-13 17:43:11 +01:00
Tobias Lins
73ae281e4a Fix demoAuth for next.js 2024-06-13 18:41:29 +02:00
Anselm
a35353c987 Use Effect streams 2024-06-13 15:58:21 +01:00
Anselm
1cb91003cc Release 2024-06-12 15:12:00 +01:00
Anselm
d850022491 Fix #210 2024-06-12 15:10:22 +01:00
Anselm
93792ab6f6 Remove lofi conf badge 2024-06-06 12:02:31 +01:00
Anselm
95dfe7af6a Guide fix 2024-06-04 17:56:34 +01:00
Anselm
734258eb17 Release 2024-06-04 12:14:59 +01:00
Anselm
f3bcf96fad Also cache agent ID in RawControlledAccount 2024-06-04 12:13:54 +01:00
Anselm
5cf0bc1911 Release 2024-06-04 12:09:35 +01:00
Anselm
d32a6b275f Formatting 2024-06-04 12:09:16 +01:00
Anselm
6caba9f8e7 Cache currentAgentID in RawAccount 2024-06-04 12:06:13 +01:00
Anselm
641f1dbfbe Release 2024-06-03 17:33:59 +01:00
Anselm
58d9a104d6 Fix CoMaps not initialising properly when passing too many init options 2024-06-03 17:33:24 +01:00
Anselm
7b9d24c8ef Release 2024-06-01 17:25:06 +02:00
Anselm Eickhoff
4225fdd537 Merge pull request #200 from gdorsi/main
fix: improve compatibility with React compiler and concurrent features
2024-06-01 17:24:17 +02:00
Anselm
9fdc91c6de Add changeset 2024-06-01 17:23:18 +02:00
Anselm
93d8c85e5c Formatting 2024-06-01 17:22:38 +02:00
Anselm
929cddc3c3 Release 2024-06-01 17:13:02 +02:00
Anselm
e0bc63f016 Provide way to create accounts as another account 2024-06-01 17:12:42 +02:00
Anselm
b29ac306ea Release 2024-06-01 14:00:50 +02:00
Anselm
e8e883f4d6 Ability to add seed accounts to DemoAuth 2024-06-01 14:00:26 +02:00
Guido D'Orsi
3325ff1cd6 fix: make Jazz react compiler ready 2024-05-31 10:19:33 +02:00
Anselm
4fe14f03b4 Formatting fixes 2024-05-31 09:13:25 +02:00
Anselm
90e2a661e4 Very last fix 2024-05-31 09:00:56 +02:00
Anselm
6ed53ecb79 Last fixes 2024-05-31 08:59:41 +02:00
Anselm
c18775766c More fixes 2024-05-31 08:56:11 +02:00
Anselm
4bb3a6209a Doc fixes 2024-05-31 08:44:45 +02:00
Anselm
0f44a547a4 Lots more guide progress 2024-05-28 17:10:59 +01:00
Anselm
1e2f6d8f14 Release 2024-05-26 20:44:05 +01:00
Anselm Eickhoff
7e5b176930 Merge pull request #199 from tobiaslins/implement-loading-ui
Implement basic `loading` component that is rendered when migrations …
2024-05-26 20:40:00 +01:00
Anselm
b420eab503 Fix type for Provider 2024-05-26 20:37:55 +01:00
Tobias Lins
b370e2e14e Merge branch 'main' into implement-loading-ui 2024-05-26 20:48:38 +02:00
Tobias Lins
1fabee297d Implement basic loading component that is rendered when migrations are running or jazz not ready yet 2024-05-26 20:46:52 +02:00
Anselm
484dc460c5 Lots of doc progress 2024-05-26 17:39:16 +01:00
Anselm
0cb8756124 Fix lint error 2024-05-26 16:16:25 +01:00
Anselm
95d0f0221b Release 2024-05-26 16:15:18 +01:00
Anselm
0c9c0fcd60 Clean up loading & subscription API 2024-05-26 16:14:01 +01:00
Anselm
8be0dd133c Doc improvements 2024-05-26 16:13:25 +01:00
Anselm
e68e0ada0d Chage hero grid 2024-05-25 21:27:20 +01:00
Anselm
49a7349e4d Update copyright year 2024-05-25 21:27:11 +01:00
Anselm
979c7241a4 Guide progress, licenses 2024-05-25 20:54:53 +01:00
Anselm
e011e4a049 Add local-first conf badge 2024-05-25 19:46:36 +01:00
Anselm
92bccf5974 Release 2024-05-25 17:08:37 +01:00
Anselm
2c1d6dcb8f Fix type signature / depth of useCoState 2024-05-25 17:07:41 +01:00
Anselm Eickhoff
75f45ec0b2 Merge pull request #163 from gardencmp/jazz-schema
New unified API
2024-05-25 16:35:54 +01:00
Anselm
c0ebcadda9 Push tags on publish 2024-05-25 16:28:52 +01:00
Anselm
109e9b6a5b Use changeset for publishing, format 2024-05-25 16:28:10 +01:00
Anselm
d0c3d08e42 Add static homepage build output to standalone server 2024-05-25 16:15:05 +01:00
Anselm
7514830edb Increase homepage memory 2024-05-25 16:06:02 +01:00
Anselm
6f27128b87 Fix homepage port 2024-05-25 15:47:10 +01:00
Anselm
376518d4ef Provide correct nomad template 2024-05-25 15:27:58 +01:00
Anselm
272fc85c13 Fix homepage build 2024-05-25 15:21:57 +01:00
Anselm
579e4f93ee Fix homepage build some more 2024-05-25 15:20:29 +01:00
Anselm
a9accdc3a8 Fix homepage build 2024-05-25 15:19:32 +01:00
Anselm
b403db51d4 Remove typedoc output again 2024-05-25 15:03:45 +01:00
Anselm
108cae037f Homepage build 2024-05-25 14:46:00 +01:00
Anselm
c51897ab9e Release 2024-05-25 14:43:57 +01:00
Anselm
67171cb07a Add runtime option for optional refs 2024-05-25 14:42:33 +01:00
Anselm
6ae3bf6ac9 Release 0.7.0 2024-05-25 11:58:43 +01:00
Anselm
b64b15877a Homepage fixes 2024-05-25 11:53:01 +01:00
Anselm
19f52b7361 Alpha release 2024-05-25 10:32:57 +01:00
Anselm
9dcd15dbc8 Fixed bug with newRandomSessionID being called before crypto was ready 2024-05-25 10:32:33 +01:00
Anselm
a423eeea3b Alpha release 2024-05-24 22:52:34 +01:00
Anselm Eickhoff
99be6a3566 Merge pull request #193 from markmelville/ws_close
ignore error on ws close, fixing "Invalid state: Controller is already closed"
2024-05-24 22:51:33 +01:00
Anselm
e97f730c0f Alpha release 2024-05-24 22:37:22 +01:00
Anselm
f5642335ff Fix useAccount 2024-05-24 22:36:53 +01:00
Anselm
bf0f8ec824 Alpha release 2024-05-24 22:28:50 +01:00
Anselm
fb9ef4ea20 Fix noble curves dep 2024-05-24 22:28:13 +01:00
Anselm
86363197cd Alpha release 2024-05-24 22:11:47 +01:00
Anselm
e93187c971 Homepage improvements 2024-05-24 22:11:32 +01:00
Anselm
1a86e13cf1 Implement deep loading, simplify API 2024-05-24 22:10:46 +01:00
Anselm
b863c1d20a Deep loading based on removing nulls 2024-05-23 17:32:04 +01:00
Anselm
4c8d658c25 Only load each image resolution once 2024-05-21 16:48:14 +01:00
Anselm
69d37437ef Fix infinite recursion in subscriptionScope 2024-05-21 16:47:27 +01:00
Anselm
220bdbae62 Fix type of init param for CoMap.create 2024-05-21 16:46:44 +01:00
Anselm
b23b556b79 Fix readme typo 2024-05-21 14:14:47 +01:00
Anselm
ce721cf3d1 Update main readme 2024-05-21 13:47:48 +01:00
Anselm
41363415fe Add lint-staged 2024-05-21 13:44:26 +01:00
Anselm
b91d0769d5 Add husky pre-commit hook 2024-05-21 13:27:45 +01:00
Anselm
ad16690826 Add minimal package READMEs 2024-05-21 13:24:54 +01:00
Anselm
ca7b81c36a Add eslint to the homepage 2024-05-21 13:09:37 +01:00
Anselm
a632ce1477 Apply prettier and make everything testable from root 2024-05-21 12:10:06 +01:00
Anselm
ca7011e9af Apply eslint to all repos 2024-05-21 10:31:48 +01:00
Anselm
34df432ee8 Apply eslint & prettier to cojson-storage-indexeddb 2024-05-21 09:59:29 +01:00
Anselm
dfa7178041 Set up prettier for cojson 2024-05-21 08:27:09 +01:00
Anselm
a3e9a3b686 Extend eslint rules for cojson 2024-05-21 08:22:17 +01:00
Anselm
599db049f2 Remove dotenv 2024-05-21 07:55:48 +01:00
Anselm
7cba6dd690 Factor out crypto impl and provide pure js one 2024-05-20 20:37:43 +01:00
Anselm
2d406c9d58 Fix minor errors 2024-05-18 16:55:14 +01:00
Anselm
d8fe2b10f1 Alpha release 2024-05-18 16:51:28 +01:00
Anselm
c8343626ba Expose experimental OPFS storage 2024-05-18 14:38:59 +01:00
Anselm
5b188ec093 Alpha release 2024-05-16 18:29:44 +01:00
Anselm
7ebbd80049 Ensure accounts are synced after creation 2024-05-16 18:29:13 +01:00
Anselm
74c9e5d36d More LSM/OPFS progress 2024-05-16 18:16:44 +01:00
Anselm
1a3530747f Add changesets 2024-05-16 10:29:13 +01:00
Anselm
79899b9b18 Update lockfile 2024-05-16 10:29:04 +01:00
Anselm
6ef6a2f507 Implement first devtools formatters 2024-05-16 10:28:50 +01:00
Anselm
ab6d15c9f7 Use fresh subscribe context for useProgressiveImg 2024-05-16 10:28:09 +01:00
Anselm
a0dc9139a2 Add ability to declare minimum required data in subscribe & Improve property access tracing 2024-05-16 10:27:27 +01:00
Anselm
220fa319d5 Use lsm storage from cojson & update effect 2024-05-16 10:25:22 +01:00
Anselm
183d505a5e Remove old cojson-storage-lsm module 2024-05-16 10:24:43 +01:00
Anselm
f960e7e736 Optimizations for incoming sync messages 2024-05-16 10:24:20 +01:00
Anselm
d68ac84e03 WIP working-ish version of LSM storage 2024-05-16 10:22:52 +01:00
Mark Melville
30fbe2b6d7 ignore error on ws close 2024-05-14 15:27:34 -06:00
Anselm
e3a00570e1 Refactor 2024-05-13 15:46:23 +01:00
Anselm
499e02685a Merge branch 'lsm-storage' into jazz-schema 2024-05-13 14:32:37 +01:00
Anselm
6b0418f772 Fix image resolution loading 2024-05-13 14:06:15 +01:00
Anselm
1200aae47d Alpha release 2024-05-12 17:27:56 +01:00
Anselm
20fdb09b33 New cache for covalue proxies 2024-05-12 17:27:08 +01:00
Anselm
522b12dc42 CoJSON performance improvement 2024-05-12 17:24:53 +01:00
Anselm
a7cd0dcce5 Pricing update 2024-05-12 17:24:24 +01:00
Anselm
fd86c11336 Alpha release 2024-05-10 21:02:39 +01:00
Anselm
4fc414d744 Extract jazz cli into jazz-run package 2024-05-10 21:00:20 +01:00
Anselm
6d49e9b06c Alpha release 2024-05-10 17:37:40 +01:00
Anselm
8b866e288b Lots more doc improvements 2024-05-10 17:37:00 +01:00
Anselm
bf22588b0e Small homepage fixes 2024-05-10 14:41:24 +01:00
Anselm
60d5ca2811 Alpha release 2024-05-10 14:21:03 +01:00
Anselm
9e5dcdfa69 Update examples 2024-05-10 14:20:50 +01:00
Anselm
3cc39dd5ed Introduce jazz-tools CLI 2024-05-10 14:20:24 +01:00
Anselm
6878060346 Simplify jazz-nodejs 2024-05-10 14:19:57 +01:00
Anselm
9840061137 Clean up exports 2024-05-10 14:19:35 +01:00
Anselm
6f84e00463 homepage/docs improvements 2024-05-10 14:18:48 +01:00
Anselm
1e82d0d34e Allow fall-through of routes 2024-05-10 14:17:46 +01:00
Anselm
f35bc468b3 Separate pnpm workspace for homepage 2024-05-09 11:44:27 +01:00
Anselm
719071c286 Docs & guide progress 2024-05-09 10:46:33 +01:00
Anselm
c4b439e2e6 Lots of doc improvements 2024-05-07 13:16:27 +01:00
Anselm
77c2b56ceb Alpha release 2024-05-03 15:55:58 +01:00
Anselm
0b17b7ad5a Get rid of self generics, new create syntax 2024-05-03 15:55:32 +01:00
Anselm
db3011a1c9 Homepage improvements 2024-05-03 14:27:07 +01:00
Anselm
b47c695b97 Refactor cojson tests 2024-05-03 13:39:04 +01:00
Anselm
55c1c893ba Homepage improvements 2024-05-02 17:37:02 +01:00
Anselm
bde684fe30 Alpha release 2024-05-02 09:24:42 +01:00
Anselm
89b6c9004b CoValue casting & auto-subbing _owner 2024-05-02 09:23:49 +01:00
Anselm Eickhoff
97cdfbddaf Merge pull request #184 from tobiaslins/addmember-chaining 2024-05-02 07:20:44 +01:00
Tobias Lins
584ee2d136 Return this 2024-05-02 07:54:01 +02:00
Anselm
21771c4725 Alpha release 2024-05-01 21:36:51 +01:00
Anselm
7e8f1bed15 Merge branch 'main' into jazz-schema 2024-05-01 21:35:31 +01:00
Anselm
226ae03603 Better variable naming in test 2024-05-01 15:49:14 +01:00
Anselm
96c494f5ee Alpha release 2024-05-01 15:43:04 +01:00
Anselm
23ba00422f Implement group-based profiles & migrations 2024-05-01 15:42:14 +01:00
Anselm
52675c9c68 Alpha release 2024-05-01 10:36:39 +01:00
Anselm
1b113e0114 Fix CoList.splice / RawCoList.append 2024-05-01 10:36:04 +01:00
Anselm
0a930f5eeb Fix Costream[...].all 2024-05-01 10:35:38 +01:00
Anselm
84f5a83648 Homepage improvements 2024-05-01 10:35:11 +01:00
Anselm
5fa277c254 Alpha release 2024-04-29 13:56:11 +01:00
Anselm
d49c7f2dd4 Fix CoMap.Record.toJSON() 2024-04-29 13:55:23 +01:00
Anselm
a78f1688d9 Alpha release 2024-04-29 13:29:45 +01:00
Anselm
cd37a846d8 Make Account -> Profile a lazy ref schema 2024-04-29 13:28:38 +01:00
Anselm
63374ccb6d Alpha release 2024-04-28 17:27:47 +01:00
Anselm
efe2d91fb3 Make sure delete on CoMaps deletes keys 2024-04-28 17:26:47 +01:00
Anselm
234b2a019b Force cojson tests to pass... 2024-04-28 17:12:12 +01:00
Anselm
4bbcd366bc Relax types of CoMap._schema 2024-04-28 16:59:29 +01:00
Anselm
5724f8747a Fix schema of Account & Group 2024-04-28 16:23:17 +01:00
Anselm
38d44103d1 Alpha release 2024-04-27 18:22:11 +01:00
Anselm
96a7ff68e7 Homepage improvements 2024-04-27 18:20:12 +01:00
Anselm
fb78a55f76 Fix getOwnPropertyDescriptor in _refs proxy 2024-04-27 18:19:57 +01:00
Anselm
fdc7fc7bcf Introduce CoMap.Record 2024-04-27 18:13:48 +01:00
Anselm
ed5643aaf1 Alpha release 2024-04-25 09:35:02 +01:00
Anselm
ac431ef9ef Fix CoMap _refs for co.items 2024-04-25 09:34:08 +01:00
Anselm
0940508637 Homepage improvements 2024-04-25 09:33:21 +01:00
Anselm
704af7d04c Alpha release 2024-04-24 14:07:42 +01:00
Anselm
e4e476a834 Add maxWidth option for loading images 2024-04-24 14:07:18 +01:00
Anselm
ece35b3c6f Alpha release 2024-04-24 13:50:50 +01:00
Anselm
b26eab50b3 Include fast-check as dependency to help dev time resolution 2024-04-24 13:50:00 +01:00
Anselm
b42313a285 Fix subscription to account in useAccount 2024-04-24 13:49:15 +01:00
Anselm
129e2c1668 Alpha release 2024-04-23 21:45:30 +01:00
Anselm
87ddb81562 More precise imports from @effect/schema 2024-04-23 21:45:08 +01:00
Anselm
daee49cd9d Alpha release 2024-04-23 21:25:26 +01:00
Anselm
3aaf773b0a Add missing @scure/bip39 dep 2024-04-23 21:24:31 +01:00
Anselm
460478fc65 Alpha release 2024-04-23 21:17:36 +01:00
Anselm
fe8b5f45b9 Use effect 3.0 2024-04-23 21:17:02 +01:00
Anselm
01ac646c8e Alpha release 2024-04-23 21:10:53 +01:00
Anselm
d4b9fbcc60 Make CoMaps even more subclassable 2024-04-23 21:10:35 +01:00
Anselm
1cfa279543 Alpha release 2024-04-23 20:52:08 +01:00
Anselm
e35be73bcc More superclass-compatible CoMaps 2024-04-23 20:51:36 +01:00
Anselm
f8a5c46e18 Alpha release 2024-04-23 20:27:41 +01:00
Anselm
1c7d85ce76 Fix CoStream types 2024-04-23 20:27:18 +01:00
Anselm
19004b4c36 Alpha release 2024-04-23 20:23:50 +01:00
Anselm
930fa689a7 Add .all to CoStreamEntry 2024-04-23 20:22:50 +01:00
Anselm
18a7b2d6b4 Making progress with docs 2024-04-23 15:16:32 +01:00
Anselm
d2e03ff9d3 Alpha release 2024-04-22 19:30:02 +01:00
Anselm
77a9c8395e Fix variance of ID.__type 2024-04-22 19:29:21 +01:00
Anselm
c4151fcb95 Alpha release 2024-04-22 16:16:37 +01:00
Anselm
4c5c21bba2 Work with stricter TS lints 2024-04-22 16:16:02 +01:00
Anselm
f0f6f1b71c Alpha release 2024-04-22 16:02:21 +01:00
Anselm
a9d6d5a1db Reintroduce jazz-nodejs 2024-04-22 15:58:50 +01:00
Anselm
7849ce6de7 Clean up API even more 2024-04-22 15:47:50 +01:00
Anselm
354bdcdbfb Alpha release 2024-04-19 16:40:18 +01:00
Anselm
8ecd3e88c8 Even friendlier for subclassing CoMap 2024-04-19 16:39:51 +01:00
Anselm
85d2b627f1 Alpha release 2024-04-19 16:28:47 +01:00
Anselm
88fd92e4dc More subclass-friendly types in CoMap 2024-04-19 16:27:48 +01:00
Anselm
952982e7ea Alpha release 2024-04-19 15:28:03 +01:00
Anselm
22e7c27af7 Consistent proxy based API 2024-04-19 15:25:05 +01:00
Anselm
59c18c34de Alpha release 2024-04-17 13:26:56 +01:00
Anselm
6acbaede44 Fix keys 2024-04-17 13:26:23 +01:00
Anselm
1a44f875b3 Alpha release 2024-04-17 13:24:09 +01:00
Anselm
9d935fe1d0 Refactors & homepage improvements 2024-04-17 13:23:31 +01:00
Anselm
e5eed5b9b7 Alpha release 2024-04-16 14:01:57 +01:00
Anselm
05a549f04f Makre refs on list more precise 2024-04-16 14:01:32 +01:00
Anselm
a5e68a4fae Alpha release 2024-04-16 13:58:35 +01:00
Anselm
016a9e342a Move unported packages & make refs type more precise 2024-04-16 13:57:41 +01:00
Anselm
627d8950ae Alpha release 2024-04-16 13:21:46 +01:00
Anselm
770ce08c10 Get rid of Co namespace 2024-04-16 13:17:09 +01:00
Anselm
69ac514b3b New alpha 2024-04-15 16:54:39 +01:00
Anselm
b1481748f9 Boom! 2024-04-15 16:50:14 +01:00
Anselm
49944e323f Just before circular references... 2024-04-08 15:42:47 +01:00
Anselm
15310db389 Fix image loading and CoMap proxy issues 2024-04-05 17:22:46 +01:00
Anselm
ea5c5a2604 Rename jazz-js to jazz-tools 2024-04-05 15:43:23 +01:00
Anselm
e461dd1355 Fix test 2024-04-05 15:32:44 +01:00
Anselm
e299c3e9d8 Alpha 0 prerelease 2024-04-05 15:30:49 +01:00
Anselm
406c47271f Finesse types and fix auth impls 2024-04-05 14:54:03 +01:00
Anselm
05c7efea85 More feature parity for demo apps 2024-04-05 11:45:33 +01:00
Anselm
ce7ddf7055 More stuff to make chat app work 2024-04-04 15:19:50 +01:00
Anselm
beb40b5db6 Mostly make chat example work 2024-03-27 18:21:41 +00:00
Anselm
2def752cc4 Flatten CoValue metadata and add edits for CoList 2024-03-26 15:21:28 +00:00
Anselm
bacf3ae86a Change order of Self generic argument again 2024-03-26 10:52:33 +00:00
Anselm
0fef382f2e Docs & homepage improvements 2024-03-25 14:38:39 +00:00
Anselm
95523d8538 Doc organization & type improvements 2024-03-25 12:20:55 +00:00
Anselm
71f7220bfd Start adding doc comments 2024-03-22 15:25:55 +00:00
Anselm
2212c6deac Fix lots of type issues, implement Account & Group 2024-03-22 14:50:41 +00:00
Anselm
fb3efe4cfd Implement tests for BinaryCoStream 2024-03-21 17:33:15 +00:00
Anselm
e66ac6a7d0 Apply strict mode to tests, finish tests for CoStream 2024-03-21 12:06:05 +00:00
Anselm
7ab3908848 Type cleanup, more CoStream implementation 2024-03-19 17:41:36 +00:00
Anselm
921f1fbfe8 Starting test for CoStream 2024-03-18 11:51:01 +00:00
Anselm
2ac455f8b5 Sketch out more in bindings etc 2024-03-18 11:25:18 +00:00
Anselm
1ce881aed2 jazz-js-efs becomes jazz-js 2024-03-15 14:35:51 +00:00
Anselm
b1b5140951 Sketch out coStream interfaces 2024-03-15 14:34:38 +00:00
Anselm
b109c23233 Change "meta" to "co" 2024-03-15 13:58:49 +00:00
Anselm
a7a34a0b6e Tests for CoList subscription and auto-resolution 2024-03-15 10:44:03 +00:00
Anselm
4bf63934e1 Simple CoList resolution 2024-03-14 16:42:41 +00:00
Anselm
16f572282f Kind of implement splice 2024-03-14 16:15:07 +00:00
Anselm
44380c3700 Implement CoList with primitive items 2024-03-14 15:57:31 +00:00
Anselm
dc46cb1386 Move tests to vitest, fix some 2024-03-14 15:38:27 +00:00
Anselm
3ccb1e8ad7 Sketch imageDef 2024-03-13 14:56:17 +00:00
Anselm
d973c5f48b Pull out common constructor methods 2024-03-13 14:30:46 +00:00
Anselm
f4af78c834 Mostly make index signatures work 2024-03-13 14:16:38 +00:00
Anselm
e6d323fd30 Use correct subclasses at runtime, tests passing 2024-03-12 11:39:25 +00:00
Anselm
e6ab56aeb5 Solve lots of type issues 2024-03-12 11:13:43 +00:00
Anselm
779765b649 Fix a bunch of type issues 2024-03-08 14:45:51 +00:00
Anselm
6da730779a Better CoMapInit 2024-03-08 10:16:00 +00:00
Anselm
a3e77edc57 Support optional references 2024-03-07 16:24:22 +00:00
Anselm
ed00308986 Make CoMap subscription work 2024-03-07 12:29:52 +01:00
Anselm
89e9092e0f Make loading work 2024-03-01 14:27:11 +00:00
Anselm
f8b11754c8 Sketch ValueRefs and loading 2024-02-29 17:39:06 +00:00
Anselm
4b38d0793c Test encoding on assignment 2024-02-29 11:29:16 +00:00
Anselm
b2156f8154 Test with more complicated schema in key 2024-02-29 11:25:17 +00:00
Anselm
3a5422e635 Make CoMaps work with effect schema 2024-02-29 11:23:31 +00:00
Anselm
54d3d76868 move pre-effect-schema implementation of jazz-js away 2024-02-29 11:20:34 +00:00
Anselm Eickhoff
f4dc0ec1b7 Merge pull request #177 from tobiaslins/main 2024-02-27 22:51:51 +00:00
Tobias Lins
f500db2dd3 Implement tree view with nested resolving 2024-02-27 21:56:25 +01:00
Anselm
95f64f9934 Actually deploy inspector 2024-02-27 14:45:54 +00:00
Anselm
cccb0e1a21 First draft of inspector 2024-02-27 14:43:08 +00:00
Anselm
b434a4227f Off by 10x 2024-02-27 11:55:40 +00:00
Anselm
6ba4dc1f04 New pricing 2024-02-27 11:49:49 +00:00
Anselm
2fe4c81d1e Start of EffectTS schema based jazz-js 2024-02-27 11:42:41 +00:00
Anselm
5c00264184 test for enumarting props in CoMap 2024-02-24 11:47:35 +01:00
Anselm
c744849c9b Pull out constructor types from schemas 2024-02-23 14:37:25 +01:00
Anselm
f59b278f00 Make simple coValue resolution in extra keys work 2024-02-22 17:45:36 +01:00
Anselm
b26c155d5f Fix effect types and others 2024-02-22 16:35:43 +01:00
Anselm
6da79b8745 Move owner of coValue to first param of constructor 2024-02-22 16:14:51 +01:00
Anselm
0b92591b17 Sketch first test for comap resolution in extra keys 2024-02-22 15:55:58 +01:00
Anselm
974456db54 Support for primitive extra keys in CoMaps 2024-02-22 14:58:27 +01:00
Anselm
a1326a80fe Completely get rid of immutable map for now 2024-02-21 14:45:19 +01:00
Anselm
00d6946b24 Release 2024-02-14 15:41:37 +00:00
Anselm
c4ffde93c0 Simple reconnect logic for jazz-nodejs 2024-02-13 20:19:51 +00:00
Anselm
37bfe967ea Refactor coValue files into parts 2024-02-09 18:16:44 +00:00
Anselm
9abbbfd6fb Release 2024-02-09 11:16:25 +00:00
Anselm
155cd08e39 Mute most annoying log messages 2024-02-09 11:13:18 +00:00
Anselm
e2e6bdf3bd Sketch for new ImageDefinition 2024-02-09 11:09:26 +00:00
Anselm
810c42c743 Implement BinaryCoStream subscription 2024-02-08 17:04:12 +00:00
Anselm
99e4c1301e Lots of fixes to subscription logic and CoValues 2024-02-08 15:54:03 +00:00
Anselm
8c86a831fc Move coValues into their own folder 2024-02-07 10:02:41 +00:00
Anselm
5e976416a4 Implement and test basic CoStream functionality #171 2024-02-06 16:52:11 +00:00
Anselm
0339e14260 Implementation of CoStreams (WIP) 2024-02-04 17:05:10 +00:00
Anselm
4b94fcebf1 Split up tests 2024-01-18 10:56:25 +00:00
Anselm
ddd2a79f37 Subscription & auto-resolution for CoLists 2024-01-18 10:46:00 +00:00
Anselm
01a8f2dab3 Make nested subscriptions work incl edge cases 2024-01-12 22:14:17 +00:00
Anselm
801629d2c1 Fix type errors 2024-01-09 14:43:33 +00:00
Anselm
87d62c941f Nested coValue loading & introduce EffectTS 2024-01-09 14:37:18 +00:00
Anselm
7e6e0fdcc5 Lots of doc improvements 2024-01-05 16:25:27 +00:00
Anselm
a73b07424c Lots of docs improvements 2024-01-04 17:40:57 +00:00
Anselm
0f9b983132 Very first basic tests 2024-01-04 16:48:51 +00:00
Anselm
43e25902d3 Merge branch 'main' into jazz-schema 2024-01-04 14:37:09 +00:00
Anselm
2c27c8517f Add own lockfile to homepage 2024-01-04 13:45:28 +00:00
Anselm Eickhoff
b496058a0e Merge pull request #154 from gardencmp/pnpm-and-turbo
Move to pnpm and turborepo (deploy)
2024-01-04 13:27:05 +00:00
Anselm Eickhoff
4313663bd1 Merge branch 'main' into pnpm-and-turbo 2024-01-04 13:26:52 +00:00
Anselm Eickhoff
dbdbfbd07a Merge pull request #156 from mirshko/patch-1
Fix loading prop always being false
2024-01-04 13:24:14 +00:00
Anselm
184b23d61f Publish 2024-01-03 11:03:57 +00:00
Anselm
5c03b4f668 Parametrize BrowserImage for maxWidth 2024-01-03 11:01:07 +00:00
Anselm
bdbe777d68 Fix ordering bugs with IndexedDB 2024-01-03 10:59:36 +00:00
Anselm
a838a18647 Publish 2024-01-02 18:37:41 +00:00
Anselm
dd8dba63ea Fix migration changes being lost on loaded account 2024-01-02 18:36:18 +00:00
Jeff Reiner
3f5a664ee7 Fix loading prop always being false 2023-12-22 17:37:38 +01:00
Anselm Eickhoff
707292e1ff Merge pull request #152 from tobiaslins/pnpm-and-turbo
Move to pnpm & turborepo
2023-12-21 16:08:49 +00:00
Anselm
9a81b63943 Use pnpm install 2023-12-21 15:51:25 +00:00
Anselm
30216b7b80 Try GITHUB_TOKEN again 2023-12-21 15:49:47 +00:00
Anselm
b2fc91c2ce Use personal access token for ghcr push 2023-12-21 15:42:10 +00:00
Anselm
ef0328833c Try edited event for PRs 2023-12-21 15:30:35 +00:00
Anselm
6a93f17a4a Try to allow ghcr pushes from contributor PRs 2023-12-21 15:24:56 +00:00
Anselm
01bd07ac66 Use pnpm ci 2023-12-21 14:56:58 +00:00
Anselm
88859cfeca Actually add pnpm to CI 2023-12-21 10:23:58 +00:00
Anselm
dfe563e2bc Use pnpm & turbo for CI build 2023-12-21 10:21:53 +00:00
Anselm
7fc0ff981d Update instructions on "ejecting" examples 2023-12-21 10:15:37 +00:00
Anselm
1a9132102d Get rid of lerna 2023-12-21 09:32:08 +00:00
Anselm Eickhoff
d39638282f Merge branch 'main' into pnpm-and-turbo 2023-12-21 09:21:55 +00:00
Anselm Eickhoff
219071654d Merge pull request #153 from tobiaslins/move-to-localStorage 2023-12-21 07:43:36 +00:00
Tobias Lins
7c415db7bd Move to auth to use localStorage instead of sessionStorage 2023-12-21 08:28:03 +01:00
Tobias Lins
4354c340fc Add more dev exmaples 2023-12-21 08:20:43 +01:00
Anselm
a4b484fa36 Publish 2023-12-20 21:49:54 +00:00
Anselm
3757d12dc4 Fix loading of accounts 2023-12-20 21:48:01 +00:00
Anselm
c3a97b29a9 First test skeleton 2023-12-20 21:15:21 +00:00
Tobias Lins
b65e30ec70 Add changeset & publish commands 2023-12-20 22:04:21 +01:00
Tobias Lins
23a1e0266a Everything is building again 2023-12-20 21:49:31 +01:00
Tobias Lins
76acecfe50 further fixes 2023-12-20 21:18:27 +01:00
Tobias Lins
5031c77afb Update index.tsx 2023-12-20 21:05:33 +01:00
Tobias Lins
af90b8c989 Update vite.config.ts 2023-12-20 21:04:20 +01:00
Tobias Lins
d06b4adad0 Missing dependencies 2023-12-20 21:02:43 +01:00
Tobias Lins
b961cde946 Revert changed files 2023-12-20 20:54:06 +01:00
Tobias Lins
8cbbe2f312 Move to pnpm & turborepo 2023-12-20 20:44:01 +01:00
Anselm
c15a49d82d Merge branch 'main' into jazz-schema 2023-12-20 11:36:09 +00:00
Anselm
fc5b670c73 Publish 2023-12-20 11:33:39 +00:00
Anselm
c8adcc4c47 Fix unused var 2023-12-20 11:32:40 +00:00
Anselm
41a755fe41 publish 2023-12-20 11:17:25 +00:00
Anselm
8def1bb29e IndexedDB & timer perf improvements 2023-12-20 11:04:45 +00:00
Anselm
d379b04e33 Publish 2023-12-18 15:15:27 +00:00
Anselm
17a30e054e Add passphrase based auth + example 2023-12-18 15:13:37 +00:00
Anselm
93809911de more WIP 2023-12-16 16:45:46 +00:00
Anselm
edeb2ca9f4 More WIP 2023-12-13 16:47:56 +00:00
Anselm
01662fc3b8 Merge branch 'main' into jazz-schema 2023-12-06 11:51:28 +00:00
Anselm
7d8f4b4c00 Publish jazz-browser-auth0 2023-12-05 19:12:16 +00:00
Anselm
e2a3896bf0 v0.0.0 2023-12-05 19:11:00 +00:00
Anselm
446de8e0ff Fix for not receiving user_metadata 2023-12-05 19:10:15 +00:00
Anselm
5ae6c95878 Use authorization params everywhere 2023-12-05 17:07:18 +00:00
Anselm
7cde349a50 Actually deploy auth0 example 2023-12-05 16:45:41 +00:00
Anselm
61e640f574 Fix auth0 example dependencies 2023-12-05 16:43:18 +00:00
Anselm
ed122d9d8e Publish 2023-12-05 16:41:12 +00:00
Anselm
34817f4536 Auth0 integration and example 2023-12-05 16:38:37 +00:00
Anselm
134d2f0fda work in progress 2023-12-05 12:06:39 +00:00
Anselm
142973827c Merge branch 'main' into jazz-schema 2023-11-28 08:32:52 +00:00
Anselm
0998a0eabf Correct homepage path 2023-11-24 17:09:34 +00:00
Anselm
a96108478b Homepage updates 2023-11-24 17:04:03 +00:00
Anselm
47444888c3 more progress 2023-11-24 16:54:12 +00:00
Anselm
a4769058f4 Merge branch 'main' into jazz-schema 2023-11-08 11:42:49 +00:00
Anselm
a4cf4c40d4 publish 2023-11-08 11:42:36 +00:00
Anselm Eickhoff
934fe4d29b Merge pull request #127 from KyleAMathews/main
fix(jazz-nodejs): also set peersToLoadFrom on newly created accounts
2023-11-07 17:18:02 +00:00
Anselm Eickhoff
408012f2e5 remove redundant peer add 2023-11-07 17:17:41 +00:00
Kyle Mathews
d0078b830e fix(jazz-nodejs): also set peersToLoadFrom on newly created accounts 2023-11-03 14:58:43 -07:00
Anselm
f7f091e18c Simplify CoValue cards 2023-11-02 14:14:58 +00:00
Anselm
a969430247 move homepage to new folder 2023-11-02 12:13:15 +00:00
Anselm Eickhoff
e52948b2b7 Merge pull request #125 from gardencmp/jazz-nodejs
jazz-nodejs MVP
2023-11-02 12:11:56 +00:00
Anselm
53bb1b230b Fix interpolation 2023-11-02 11:53:19 +00:00
Anselm
54e83aeaaa use NOMAD_ADDR secret 2023-11-02 11:43:32 +00:00
Anselm
aa3129cab5 Provide localNode to AccountMigrations 2023-10-27 14:48:36 +01:00
Anselm
90520dddd7 Make addMember and removeMember take loaded Accounts instead of just IDs 2023-10-27 14:30:55 +01:00
Anselm
03eb77070a Allow account migrations to be async 2023-10-27 11:18:41 +01:00
Anselm
4ba5c255b6 Fewer assumptions in jazz-nodejs 2023-10-27 11:00:19 +01:00
Anselm
01817db873 Add docs for jazz-nodejs 2023-10-25 14:31:27 +01:00
Anselm
46fcbd6c01 Implement first version of jazz-nodejs 2023-10-25 14:27:55 +01:00
Anselm
aa3e3de09e Update docs 2023-10-20 11:09:19 +01:00
Anselm
af3d48764d Reset allTweets 2023-10-20 10:50:29 +01:00
Anselm
091f36b736 Update all tweets 2023-10-20 10:38:56 +01:00
Anselm
7107f79f42 Update all tweets 2023-10-20 10:32:30 +01:00
Anselm
9922db2336 Cosmetic fixes 2023-10-20 10:23:40 +01:00
Anselm
75db570198 Use DemoAuth in Twit example 2023-10-20 10:18:14 +01:00
Anselm
28a09f377b Fix weird TypeScript error 2023-10-20 10:11:31 +01:00
Anselm
fd2e0855bb Deploy twit and chat 2023-10-20 09:56:09 +01:00
Anselm
82e1d57bd6 Fix new accounts not synced 2023-10-20 09:51:12 +01:00
Anselm
a2fbb0b0c8 new allTweets list 2023-10-19 13:38:55 +01:00
Anselm
8feddf9932 Fix sqlite type dependency 2023-10-19 13:38:43 +01:00
Anselm Eickhoff
feed34b1cf Merge pull request #122 from gardencmp/react-advanced
Performance improvements & Twit example improvements
2023-10-19 10:57:37 +01:00
Anselm
662c980cf2 First changeset 2023-10-19 00:52:47 +01:00
Anselm
f5ae530890 Add and use mapDefered to ResolvedCoList 2023-10-19 00:38:35 +01:00
Anselm
46bf7dd3ce A ton of performance and twit example improvements 2023-10-18 23:16:39 +01:00
Anselm
5d4eb38204 A bunch of perf improvements and sync fixes 2023-10-18 00:37:41 +01:00
Anselm
66da658075 Twit example improvements & initial stress test 2023-10-17 21:22:04 +01:00
Anselm
3477b74573 Lots of sync improvements, basic peer priority 2023-10-17 21:21:39 +01:00
Anselm
f3de4906b7 Prepare stress test and fix #83 2023-10-17 16:34:17 +01:00
Anselm
caded3f189 Fix unknown signer bug for incoming transactions 2023-10-17 14:39:13 +01:00
Anselm
5196395495 Wording 2023-10-17 12:03:48 +01:00
Anselm
8089a7ed9f Add report to parent frame again 2023-10-17 11:51:41 +01:00
Anselm
99230d31d2 Add plausible script 2023-10-17 11:49:30 +01:00
Anselm Eickhoff
94bca03f59 Merge pull request #121 from gardencmp/new-hp
New homepage PR 2
2023-10-17 11:39:04 +01:00
Anselm
49719b6e6d Fix example deploy 2023-10-17 11:28:10 +01:00
Anselm
1bdb781452 Fix iframe and metadata 2023-10-17 11:19:00 +01:00
Anselm
c336f69a6b Build and deploy homepage 2023-10-17 11:03:59 +01:00
Anselm
c8cb1ce208 Rename font 2023-10-17 09:55:45 +01:00
Anselm
814a6a80cd Lots of homepage improvements 2023-10-16 23:47:51 +01:00
Anselm Eickhoff
5fdfe18b32 Merge pull request #119 from gardencmp/new-hp
Chat demo & start of new homepage
2023-10-13 11:44:40 +01:00
Anselm
7b7a74778b Reduce number of chat example deployments 2023-10-13 11:40:36 +01:00
Anselm
39dbd46556 Publish
- jazz-example-chat@0.0.45
 - jazz-example-file-drop@0.0.62
 - jazz-example-pets@0.0.62
 - jazz-example-todo@0.0.62
 - jazz-example-twit@0.0.62
 - hash-slash@0.1.3
 - jazz-browser@0.4.15
 - jazz-browser-auth-local@0.4.15
 - jazz-browser-media-images@0.4.15
 - jazz-react@0.4.15
 - jazz-react-auth-local@0.4.15
2023-10-13 11:36:13 +01:00
Anselm
1db4a14be4 Update docs 2023-10-13 11:35:53 +01:00
Anselm
4a4ea4e196 Fix issues with packages 2023-10-13 11:35:35 +01:00
Anselm
e0724441eb Deploy chat example 2023-10-13 11:28:08 +01:00
Anselm
5d47895515 Rename hashroute to hash-slash 2023-10-13 11:25:46 +01:00
Anselm
c1dfac7260 Publish
- jazz-example-chat@0.0.44
 - jazz-example-file-drop@0.0.61
 - jazz-example-pets@0.0.61
 - jazz-example-todo@0.0.61
 - jazz-example-twit@0.0.61
 - hashroute@0.1.2
 - jazz-browser@0.4.14
 - jazz-browser-auth-local@0.4.14
 - jazz-browser-media-images@0.4.14
 - jazz-react@0.4.14
 - jazz-react-auth-local@0.4.14
2023-10-13 11:20:40 +01:00
Anselm
bf29cb3bae Make stuff mergeable 2023-10-13 11:20:07 +01:00
Anselm
a0a9b3f851 Merge branch 'main' into new-hp 2023-10-13 11:15:24 +01:00
Anselm
4c4deb22c9 Publish
- jazz-example-chat@0.0.43
 - jazz-example-pets@0.0.19
 - jazz-example-todo@0.0.43
 - jazz-example-twit@0.0.6
 - hashroute@0.1.1
 - jazz-browser@0.4.6
 - jazz-browser-auth-local@0.4.6
 - jazz-browser-media-images@0.4.7
 - jazz-react@0.4.6
 - jazz-react-auth-local@0.4.6
2023-10-13 11:13:24 +01:00
Anselm
a42c497055 Small imrovements to chat example 2023-10-13 11:12:32 +01:00
Anselm
f1dcdb20bc lots of new hp improvements 2023-10-13 11:11:37 +01:00
Anselm Eickhoff
46330ae201 Merge pull request #117 from gardencmp:data-throughput
Improve data throughput of BinaryCoStreams
2023-10-09 11:26:56 +01:00
Anselm
bfe3595b4c Fix errors in file-drop example 2023-10-09 11:23:15 +01:00
Anselm
34c39e6a55 Scale down other examples and add file-drop 2023-10-09 11:12:17 +01:00
Anselm
5a85501919 Publish
- jazz-example-file-drop@0.0.60
 - jazz-example-pets@0.0.60
 - jazz-example-todo@0.0.60
 - jazz-example-twit@0.0.60
 - cojson@0.4.13
 - cojson-simple-sync@0.4.13
 - cojson-storage-indexeddb@0.4.13
 - cojson-storage-sqlite@0.4.13
 - jazz-autosub@0.4.13
 - jazz-browser@0.4.13
 - jazz-browser-auth-local@0.4.13
 - jazz-browser-media-images@0.4.13
 - jazz-react@0.4.13
 - jazz-react-auth-local@0.4.13
2023-10-06 17:31:14 +01:00
Anselm
97a4282e5e Merge branch 'backend-support' into data-throughput 2023-10-06 17:23:13 +01:00
Anselm
39c13b50a3 Update docs 2023-10-06 17:18:30 +01:00
Anselm
ad304e321b Lots of improvements for BinaryCoStreams & file-drop example 2023-10-06 17:09:58 +01:00
Anselm
8c0b2da461 Start custom solution with nextjs & shiki-twoslash 2023-10-06 09:43:16 +01:00
Anselm
72fce45b2b Publish
- jazz-example-pets@0.0.21
 - jazz-example-todo@0.0.45
 - jazz-example-twit@0.0.8
 - cojson@0.4.8
 - cojson-simple-sync@0.4.8
 - cojson-storage-indexeddb@0.4.8
 - cojson-storage-sqlite@0.4.8
 - jazz-autosub@0.4.8
 - jazz-browser@0.4.8
 - jazz-browser-auth-local@0.4.8
 - jazz-browser-media-images@0.4.9
 - jazz-react@0.4.8
 - jazz-react-auth-local@0.4.8
2023-10-04 22:01:28 +01:00
Anselm
1f49d7fda6 Actually fix circular issues for esbuild/vite 2023-10-04 22:00:38 +01:00
Anselm
eec8ee7027 Publish
- jazz-example-pets@0.0.20
 - jazz-example-todo@0.0.44
 - jazz-example-twit@0.0.7
 - cojson@0.4.7
 - cojson-simple-sync@0.4.7
 - cojson-storage-indexeddb@0.4.7
 - cojson-storage-sqlite@0.4.7
 - jazz-autosub@0.4.7
 - jazz-browser@0.4.7
 - jazz-browser-auth-local@0.4.7
 - jazz-browser-media-images@0.4.8
 - jazz-react@0.4.7
 - jazz-react-auth-local@0.4.7
2023-10-04 21:23:52 +01:00
Anselm
188eb2e1e3 Update docs 2023-10-04 21:23:28 +01:00
Anselm
62867b32d9 Get rid of more cyclic imports 2023-10-04 21:22:52 +01:00
Anselm
ccebd2447d Publish
- jazz-example-pets@0.0.19
 - jazz-example-todo@0.0.43
 - jazz-example-twit@0.0.6
 - cojson@0.4.6
 - cojson-simple-sync@0.4.6
 - cojson-storage-indexeddb@0.4.6
 - cojson-storage-sqlite@0.4.6
 - jazz-autosub@0.4.6
 - jazz-browser@0.4.6
 - jazz-browser-auth-local@0.4.6
 - jazz-browser-media-images@0.4.7
 - jazz-react@0.4.6
 - jazz-react-auth-local@0.4.6
2023-10-04 21:01:44 +01:00
Anselm
08dca75789 Address some circular deps in cojson typescript 2023-10-04 21:00:59 +01:00
Anselm
16b3e1381b Sketch of new homepage with nextra + chat example 2023-10-04 19:59:32 +01:00
Anselm
f1cd639a09 Add project list to todo example 2023-10-03 13:59:00 +01:00
Anselm Eickhoff
be18e4de14 Merge pull request #111 from gardencmp/autosub-api
Autosub API
2023-10-01 13:18:40 +01:00
Anselm
7e62c91d44 Publish
- jazz-example-pets@0.0.18
 - jazz-example-twit@0.0.5
 - jazz-browser-media-images@0.4.6
2023-10-01 12:27:10 +01:00
Anselm
b2d5a103b5 move image-blob-reduce types to proper deps 2023-10-01 12:26:53 +01:00
Anselm
4ee2cad39e Publish
- jazz-example-pets@0.0.17
 - jazz-example-todo@0.0.42
 - jazz-example-twit@0.0.4
 - cojson@0.4.5
 - cojson-simple-sync@0.4.5
 - cojson-storage-indexeddb@0.4.5
 - cojson-storage-sqlite@0.4.5
 - jazz-autosub@0.4.5
 - jazz-browser@0.4.5
 - jazz-browser-auth-local@0.4.5
 - jazz-browser-media-images@0.4.5
 - jazz-react@0.4.5
 - jazz-react-auth-local@0.4.5
2023-10-01 12:18:35 +01:00
Anselm
b7c8a0038b Rename syncedQueries -> autosub and clean up a lot of APIs 2023-10-01 12:16:56 +01:00
Anselm
8c27e8c379 doc fixes 2023-09-28 23:05:59 +01:00
Anselm Eickhoff
0133aa47ff Merge pull request #105 from gardencmp/example-twit
Twitter example
2023-09-28 11:51:38 +01:00
Anselm
5659c925a2 Change Twit html title 2023-09-28 11:44:44 +01:00
Anselm
27779ac792 Publish
- jazz-example-pets@0.0.16
 - jazz-example-todo@0.0.41
 - jazz-example-twit@0.0.3
 - cojson@0.4.1
 - cojson-simple-sync@0.4.1
 - cojson-storage-indexeddb@0.4.1
 - cojson-storage-sqlite@0.4.1
 - jazz-browser@0.4.1
 - jazz-browser-auth-local@0.4.1
 - jazz-browser-media-images@0.4.1
 - jazz-react@0.4.1
 - jazz-react-auth-local@0.4.1
2023-09-28 11:25:36 +01:00
Anselm
3f1bfa4629 Improve twit example 2023-09-28 11:25:09 +01:00
Anselm
15a693c3ed Simplify QueriedCoStream 2023-09-28 11:23:23 +01:00
Anselm
b1d620e145 Update docs 2023-09-28 11:23:06 +01:00
Anselm
478fbd0aa9 Bigger inputs on mobile 2023-09-27 22:21:19 +01:00
Anselm
ee906b7351 Add QR code to own profile 2023-09-27 22:13:55 +01:00
Anselm
dd15f21ccb Fix follow button 2023-09-27 21:51:20 +01:00
Anselm
d7cd5fda7c Actually deploy twit example 2023-09-27 21:43:07 +01:00
Anselm
174300b00f Deploy twit example 2023-09-27 21:39:30 +01:00
Anselm
b2c8d8c855 Publish
- jazz-example-pets@0.0.15
 - jazz-example-todo@0.0.40
 - jazz-example-twit@0.0.2
 - cojson@0.4.0
 - cojson-simple-sync@0.4.0
 - cojson-storage-indexeddb@0.4.0
 - cojson-storage-sqlite@0.4.0
 - jazz-browser@0.4.0
 - jazz-browser-auth-local@0.4.0
 - jazz-browser-media-images@0.4.0
 - jazz-react@0.4.0
 - jazz-react-auth-local@0.4.0
2023-09-27 21:37:56 +01:00
Anselm
2bad2b6bfe Update docs 2023-09-27 21:37:22 +01:00
Anselm
880d0ff855 Fix last lint issues 2023-09-27 21:37:04 +01:00
Anselm
e66cbee6cd Implement Twitter example 2023-09-27 21:27:49 +01:00
Anselm
03e470721e AAAAAAAAAA 2023-09-27 15:08:09 +01:00
Anselm
ecf73bcfa7 Basic account initialization, fixes #103 2023-09-26 18:07:14 +01:00
Anselm
2c3a500286 Add root to queried group 2023-09-26 17:47:31 +01:00
Anselm
8b83061cf4 Update docs 2023-09-26 17:42:48 +01:00
Anselm
e75c3207d6 Make Groups and Accounts behave like proper CoValues, fixes #101 2023-09-26 17:42:28 +01:00
Anselm
41d4b5ba0b Ability to add/remove the public as readers & writers #99 2023-09-26 11:19:39 +01:00
Anselm
21fa1b168b First sketch of twit example 2023-09-26 09:50:08 +01:00
Anselm
91e5e7f2ab v0.3.7 2023-09-24 20:25:23 +01:00
Anselm
e3f7e2f1bd Actually use delayOnerror 2023-09-24 20:24:58 +01:00
Anselm
084cf80c60 v0.3.6 2023-09-24 20:16:25 +01:00
Anselm
632e3bbb08 Add option for delay on error when handling peer messages 2023-09-24 20:15:10 +01:00
Anselm
17d17833b2 Publish
- jazz-example-pets@0.0.14
 - jazz-example-todo@0.0.39
 - cojson@0.3.5
 - cojson-simple-sync@0.3.7
 - cojson-storage-indexeddb@0.3.5
 - cojson-storage-sqlite@0.3.7
 - jazz-browser@0.3.5
 - jazz-browser-auth-local@0.3.5
 - jazz-browser-media-images@0.3.5
 - jazz-react@0.3.5
 - jazz-react-auth-local@0.3.5
 - jazz-react-media-images@0.3.5
2023-09-22 15:18:21 +01:00
Anselm
8e22bd9c1e Lint fix 2023-09-22 15:17:44 +01:00
Anselm
98213743f3 deploy bump 2023-09-22 15:15:09 +01:00
Anselm
bb855ed83d Publish
- jazz-example-pets@0.0.13
 - jazz-example-todo@0.0.38
 - cojson@0.3.4
 - cojson-simple-sync@0.3.6
 - cojson-storage-indexeddb@0.3.4
 - cojson-storage-sqlite@0.3.6
 - jazz-browser@0.3.4
 - jazz-browser-auth-local@0.3.4
 - jazz-browser-media-images@0.3.4
 - jazz-react@0.3.4
 - jazz-react-auth-local@0.3.4
 - jazz-react-media-images@0.3.4
2023-09-22 14:33:25 +01:00
Anselm
a8ef49e228 Small lint fixes 2023-09-22 14:32:41 +01:00
Anselm
e0ad32dbd2 Implement exponential falloff, fixes #69 2023-09-22 14:30:55 +01:00
Anselm
62bf769cad Publish
- cojson-simple-sync@0.3.5
 - cojson-storage-sqlite@0.3.5
2023-09-22 10:36:17 +01:00
Anselm
7488ff25b2 Missed one bit of JSON parsing to make more robust 2023-09-22 10:36:02 +01:00
Anselm
b69c9da983 Publish
- cojson-simple-sync@0.3.4
 - cojson-storage-sqlite@0.3.4
2023-09-22 10:25:25 +01:00
Anselm
d30fdef8aa More JSON.parse resiliency in cojson-storage-sqlite 2023-09-22 10:25:08 +01:00
Anselm
9c5a6b9833 Publish
- jazz-example-pets@0.0.12
 - jazz-example-todo@0.0.37
 - cojson@0.3.3
 - cojson-simple-sync@0.3.3
 - cojson-storage-indexeddb@0.3.3
 - cojson-storage-sqlite@0.3.3
 - jazz-browser@0.3.3
 - jazz-browser-auth-local@0.3.3
 - jazz-browser-media-images@0.3.3
 - jazz-react@0.3.3
 - jazz-react-auth-local@0.3.3
 - jazz-react-media-images@0.3.3
2023-09-22 10:09:04 +01:00
Anselm
d300d265c4 manually update cojson 2023-09-22 10:07:55 +01:00
Anselm
1d72ce587f Update version 2023-09-22 09:53:25 +01:00
Anselm
3fdb41dcb9 More resilience against invalid JSON 2023-09-22 09:51:07 +01:00
Anselm
f20de2f04a v0.3.1 2023-09-22 09:36:32 +01:00
Anselm
31b31f111b Shorter logs on failed transactions 2023-09-22 09:34:54 +01:00
Anselm Eickhoff
2ae9fb9778 Fix example comment 2023-09-21 18:00:28 +01:00
Anselm Eickhoff
cd0da0f6bf Merge pull request #94 from gardencmp/ergonomic-covalues
Implement queries
2023-09-21 17:31:31 +01:00
Anselm
cd9bfbb9fa Publish
- jazz-example-pets@0.0.11
 - jazz-example-todo@0.0.36
 - cojson@0.3.0
 - cojson-simple-sync@0.3.0
 - cojson-storage-indexeddb@0.3.0
 - cojson-storage-sqlite@0.3.0
 - jazz-browser@0.3.0
 - jazz-browser-auth-local@0.3.0
 - jazz-browser-media-images@0.3.0
 - jazz-react@0.3.0
 - jazz-react-auth-local@0.3.0
 - jazz-react-media-images@0.3.0
2023-09-21 17:29:23 +01:00
Anselm
ed0428bf97 Pre-release fixes 2023-09-21 17:12:10 +01:00
Anselm
c038a02051 Publish
- jazz-example-pets@0.0.10
 - jazz-example-todo@0.0.35
 - cojson@0.3.0-alpha.0
 - cojson-simple-sync@0.3.0-alpha.0
 - cojson-storage-indexeddb@0.3.0-alpha.0
 - cojson-storage-sqlite@0.3.0-alpha.0
 - jazz-browser@0.3.0-alpha.0
 - jazz-browser-auth-local@0.3.0-alpha.0
 - jazz-browser-media-images@0.3.0-alpha.0
 - jazz-react@0.3.0-alpha.0
 - jazz-react-auth-local@0.3.0-alpha.0
 - jazz-react-media-images@0.3.0-alpha.0
2023-09-21 17:07:06 +01:00
Anselm
31abcfeef4 Walkthrough and doc improvements 2023-09-21 17:02:34 +01:00
Anselm
5f32d9ccf5 Support external routers & more doc improvements 2023-09-21 16:35:13 +01:00
Anselm
0510600104 Lots of doc improvements, cleaner Queried's 2023-09-20 17:48:07 +01:00
Anselm
7f30fbf3c5 move stuff to "co" property in queries 2023-09-20 11:52:57 +01:00
Anselm
3d56260ca4 Lots more consistency and API improvements 2023-09-19 13:17:31 +01:00
Anselm
1137775da9 Publish
- jazz-example-pets@0.0.9
 - jazz-example-todo@0.0.34
 - cojson@0.2.3
 - cojson-simple-sync@0.2.6
 - cojson-storage-sqlite@0.2.6
 - jazz-browser@0.2.5
 - jazz-browser-auth-local@0.2.5
 - jazz-browser-media-images@0.2.5
 - jazz-react@0.2.5
 - jazz-react-auth-local@0.2.5
 - jazz-react-media-images@0.2.5
 - jazz-storage-indexeddb@0.2.5
2023-09-15 16:40:47 +01:00
Anselm
3951fdc938 Implement queries & use in examples 2023-09-15 16:36:48 +01:00
Anselm
5779e357dd Allow CoValues directly where ids would be expected 2023-09-13 17:48:04 +01:00
Anselm
2842d80f26 Improve docs for new packages 2023-09-12 16:55:58 +01:00
Anselm Eickhoff
96387d8023 Merge pull request #89 from gardencmp:stream-txs
Stream transactions
2023-09-12 16:26:09 +01:00
Anselm
6720c19233 Publish
- jazz-example-pets@0.0.8
 - jazz-example-todo@0.0.33
 - cojson-simple-sync@0.2.5
 - cojson-storage-sqlite@0.2.5
 - jazz-browser@0.2.4
 - jazz-browser-auth-local@0.2.4
 - jazz-browser-media-images@0.2.4
 - jazz-react@0.2.4
 - jazz-react-auth-local@0.2.4
 - jazz-react-media-images@0.2.4
 - jazz-storage-indexeddb@0.2.4
2023-09-12 16:17:09 +01:00
Anselm
ef732b4700 Implement saving signatures and streaming txs for SQLite 2023-09-12 16:16:40 +01:00
Anselm
ee7e3ee5a7 Publish
- jazz-example-pets@0.0.7
 - jazz-example-todo@0.0.32
 - cojson@0.2.2
 - cojson-simple-sync@0.2.4
 - cojson-storage-sqlite@0.2.4
 - jazz-browser@0.2.3
 - jazz-browser-auth-local@0.2.3
 - jazz-browser-media-images@0.2.3
 - jazz-react@0.2.3
 - jazz-react-auth-local@0.2.3
 - jazz-react-media-images@0.2.3
 - jazz-storage-indexeddb@0.2.3
2023-09-12 15:26:43 +01:00
Anselm
ceeed88fa5 Less verbose error output 2023-09-12 15:26:22 +01:00
Anselm
79353a1d97 Publish
- cojson-simple-sync@0.2.3
 - cojson-storage-sqlite@0.2.3
2023-09-12 15:22:01 +01:00
Anselm
7fdc42c62f Fix migration 2023-09-12 15:21:45 +01:00
Anselm
3a2e854a88 Publish
- cojson-simple-sync@0.2.2
 - cojson-storage-sqlite@0.2.2
2023-09-12 15:19:12 +01:00
Anselm
661a2d023a Fixes #90 for SQLite 2023-09-12 15:18:53 +01:00
Anselm
6ef5b6b2ab Publish
- jazz-example-pets@0.0.6
 - jazz-example-todo@0.0.31
 - jazz-browser@0.2.2
 - jazz-browser-auth-local@0.2.2
 - jazz-browser-media-images@0.2.2
 - jazz-react@0.2.2
 - jazz-react-auth-local@0.2.2
 - jazz-react-media-images@0.2.2
 - jazz-storage-indexeddb@0.2.2
2023-09-12 14:56:31 +01:00
Anselm
1384ebed84 Fix migration 2023-09-12 14:55:57 +01:00
Anselm
17e53f9998 Publish
- jazz-example-pets@0.0.5
 - jazz-example-todo@0.0.30
 - cojson@0.2.1
 - cojson-simple-sync@0.2.1
 - cojson-storage-sqlite@0.2.1
 - jazz-browser@0.2.1
 - jazz-browser-auth-local@0.2.1
 - jazz-browser-media-images@0.2.1
 - jazz-react@0.2.1
 - jazz-react-auth-local@0.2.1
 - jazz-react-media-images@0.2.1
 - jazz-storage-indexeddb@0.2.1
2023-09-12 14:47:50 +01:00
Anselm
cfb1f39efe update docs 2023-09-12 14:47:17 +01:00
Anselm
2234276dcf Implement extra signatures & fix #90 for IndexedDB 2023-09-12 14:42:47 +01:00
Anselm
bb0a6a0600 yield microtask between incoming messages 2023-09-12 11:22:44 +01:00
Anselm
0a6eb0c10a Lots of fixes around streaming 2023-09-12 11:13:19 +01:00
Anselm
88b67d89e0 First implementation of streaming transactions, also fixes #80 2023-09-11 19:29:52 +01:00
Anselm Eickhoff
1a65d826b2 Update pets README.md 2023-09-11 17:24:01 +01:00
Anselm Eickhoff
6c65ec2b46 Merge pull request #81 from gardencmp/publish-pet-example
Publish pet example
2023-09-11 17:21:16 +01:00
Anselm
5b578a832d Fix job name and missing amtrix 2023-09-11 17:13:16 +01:00
Anselm
042afc52d7 Fix interpolation 2023-09-11 17:10:12 +01:00
Anselm
1b83493964 Use matrix and add pets example 2023-09-11 17:09:14 +01:00
Anselm
3b50da1a74 Remove redundant yarn build step 2023-09-11 17:04:42 +01:00
Anselm
8e0fc74d9f Switch to buildx 2023-09-11 17:03:18 +01:00
Anselm Eickhoff
e28326f32c Merge pull request #79 from gardencmp/anselm-gar-155
Make payload of trusting transactions JSON string instead of immediately-parsed JSON
2023-09-11 16:32:30 +01:00
Anselm
d7e8b0b9da Publish
- jazz-example-pets@0.0.4
 - jazz-example-todo@0.0.29
 - cojson@0.2.0
 - cojson-simple-sync@0.2.0
 - cojson-storage-sqlite@0.2.0
 - jazz-browser@0.2.0
 - jazz-browser-auth-local@0.2.0
 - jazz-browser-media-images@0.2.0
 - jazz-react@0.2.0
 - jazz-react-auth-local@0.2.0
 - jazz-react-media-images@0.2.0
 - jazz-storage-indexeddb@0.2.0
2023-09-11 16:19:44 +01:00
Anselm
c46a1f6b0a Update docs 2023-09-11 16:18:39 +01:00
Anselm
7947918278 lint pet example 2023-09-11 16:11:26 +01:00
Anselm
50c36e7255 Make tx.changes stringified 2023-09-11 16:11:17 +01:00
Anselm
c39a7ed1b7 Implement jazz-browser-media-images 2023-09-11 11:44:55 +01:00
Anselm
83762dbb0f Fix getLastItemsPerAccount 2023-09-10 15:36:41 +01:00
Anselm
7c82e12508 Fix filenames in pets example 2023-09-10 15:20:12 +01:00
Anselm
6db149be36 Complete most of the pets example 2023-09-10 15:15:23 +01:00
Anselm
909a101f99 Publish
- jazz-example-pets@0.0.3
 - jazz-example-todo@0.0.28
 - cojson@0.1.12
 - cojson-simple-sync@0.1.13
 - cojson-storage-sqlite@0.1.10
 - jazz-browser@0.1.12
 - jazz-browser-auth-local@0.1.12
 - jazz-react@0.1.14
 - jazz-react-auth-local@0.1.14
 - jazz-storage-indexeddb@0.1.12
2023-09-08 17:29:07 +01:00
Anselm
df0b6fe138 Update docs 2023-09-08 17:28:53 +01:00
Anselm
0543756016 More optimizations and first support for streaming hashing 2023-09-08 17:28:33 +01:00
Anselm
92eae0e180 Publish
- jazz-example-pets@0.0.2
 - jazz-example-todo@0.0.27
 - cojson@0.1.11
 - cojson-simple-sync@0.1.12
 - cojson-storage-sqlite@0.1.9
 - jazz-browser@0.1.11
 - jazz-browser-auth-local@0.1.11
 - jazz-react@0.1.13
 - jazz-react-auth-local@0.1.13
 - jazz-storage-indexeddb@0.1.11
2023-09-08 10:23:44 +01:00
Anselm
9ccc97fcd3 Update docs 2023-09-08 10:23:26 +01:00
Anselm
120ba57274 Beginning of new rate-my-pet example 2023-09-08 10:22:56 +01:00
Anselm
0679a64002 cojson performance optimizations 2023-09-08 10:22:46 +01:00
Anselm
e9d561adbd Fix dangling promises 2023-09-07 19:44:16 +01:00
Anselm
bb5fd24f6a Publish
- jazz-example-todo@0.0.26
 - cojson@0.1.10
 - cojson-simple-sync@0.1.11
 - cojson-storage-sqlite@0.1.8
 - jazz-browser@0.1.10
 - jazz-browser-auth-local@0.1.10
 - jazz-react@0.1.12
 - jazz-react-auth-local@0.1.12
 - jazz-storage-indexeddb@0.1.10
2023-09-07 19:40:12 +01:00
Anselm
18d5b9146f API for CoStream & BinaryCoStream 2023-09-07 18:49:36 +01:00
Anselm Eickhoff
39850d465f Merge pull request #64 from gardencmp:anselm-gar-137
Basic Documentation
2023-09-07 14:09:55 +01:00
Anselm
27e0d6df46 Fix example 2023-09-07 13:29:11 +01:00
Anselm
6d0c820724 Hide internal again 2023-09-07 13:28:07 +01:00
Anselm
78a1d5a614 Fix refactor issues 2023-09-07 13:16:07 +01:00
946 changed files with 106942 additions and 33014 deletions

8
.changeset/README.md Normal file
View File

@@ -0,0 +1,8 @@
# Changesets
Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)
We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)

30
.changeset/config.json Normal file
View File

@@ -0,0 +1,30 @@
{
"$schema": "https://unpkg.com/@changesets/config@2.3.1/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"linked": [
[
"cojson",
"jazz-tools",
"jazz-browser",
"jazz-browser-media-images",
"jazz-browser-auth-clerk",
"jazz-react-auth-clerk",
"jazz-react",
"jazz-react-native",
"jazz-nodejs",
"jazz-run",
"cojson-transport-ws",
"cojson-storage-indexeddb",
"cojson-storage-sqlite"
]
],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": [],
"___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
"onlyUpdatePeerDependentsWhenOutOfRange": true
}
}

11
.editorconfig Normal file
View File

@@ -0,0 +1,11 @@
# EditorConfig is awesome: https://editorconfig.org
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2

1
.envrc Normal file
View File

@@ -0,0 +1 @@
use flake

2
.git-blame-ignore-revs Normal file
View File

@@ -0,0 +1,2 @@
# Formatted workspace with biome
be0a09a22295cd5d2ee3ef323e2d999da8a14110

View File

@@ -1,77 +0,0 @@
name: Build and Deploy
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: true
- uses: actions/setup-node@v3
with:
node-version: 18
cache: 'yarn'
cache-dependency-path: yarn.lock
- name: Nuke Workspace
run: |
rm package.json yarn.lock;
- name: Yarn Build
run: |
yarn install --frozen-lockfile;
yarn build;
working-directory: ./examples/todo
- uses: satackey/action-docker-layer-caching@v0.0.11
continue-on-error: true
with:
key: docker-layer-caching-${{ github.workflow }}-{hash}
restore-keys: |
docker-layer-caching-${{ github.workflow }}-
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: gardencmp
password: ${{ secrets.GITHUB_TOKEN }}
- name: Docker Build & Push
run: |
export DOCKER_TAG=ghcr.io/gardencmp/jazz-example-todo:${{github.head_ref || github.ref_name}}-${{github.sha}}-$(date +%s) ;
docker build . --file Dockerfile --tag $DOCKER_TAG;
docker push $DOCKER_TAG;
echo "DOCKER_TAG=$DOCKER_TAG" >> $GITHUB_ENV
working-directory: ./examples/todo
- uses: gacts/install-nomad@v1
- name: Tailscale
uses: tailscale/github-action@v1
with:
authkey: ${{ secrets.TAILSCALE_AUTHKEY }}
- name: Deploy on Nomad
run: |
if [ "${{github.ref_name}}" == "main" ]; then
export BRANCH_SUFFIX="";
export BRANCH_SUBDOMAIN="";
else
export BRANCH_SUFFIX=-${{github.head_ref || github.ref_name}};
export BRANCH_SUBDOMAIN=${{github.head_ref || github.ref_name}}.;
fi
export DOCKER_USER=gardencmp;
export DOCKER_PASSWORD=${{ secrets.DOCKER_PULL_PAT }};
export DOCKER_TAG=${{ env.DOCKER_TAG }};
envsubst '${DOCKER_USER} ${DOCKER_PASSWORD} ${DOCKER_TAG} ${BRANCH_SUFFIX} ${BRANCH_SUBDOMAIN}' < job-template.nomad > job-instance.nomad;
cat job-instance.nomad;
NOMAD_ADDR='http://control1v2-london:4646' nomad job run job-instance.nomad;
working-directory: ./examples/todo

59
.github/workflows/build-examples.yaml vendored Normal file
View File

@@ -0,0 +1,59 @@
name: Build Examples
on:
push:
branches: [ "main" ]
jobs:
build-examples:
runs-on: ubuntu-latest
strategy:
matrix:
example: [
"chat",
"chat-clerk",
"inspector",
"music-player",
"password-manager",
"pets",
"todo",
"onboarding",
]
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Enable corepack
run: corepack enable
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Pnpm Build
run: |
pnpm install
pnpm turbo build;
working-directory: ./examples/${{ matrix.example }}

18
.github/workflows/code-quality.yml vendored Normal file
View File

@@ -0,0 +1,18 @@
name: Code quality
on:
push:
pull_request:
jobs:
quality:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Biome
uses: biomejs/setup-biome@v2
with:
version: latest
- name: Run Biome
run: biome ci .

51
.github/workflows/jazz-run.yml vendored Normal file
View File

@@ -0,0 +1,51 @@
name: Jazz Run Tests
on:
push:
branches: ["main"]
pull_request:
types: [opened, synchronize, reopened]
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Enable corepack
run: corepack enable
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build jazz-run
run: pnpm exec turbo build && chmod +x dist/index.js;
working-directory: ./packages/jazz-run
- name: Run create account
run: ./dist/index.js account create --name "Jazz Run CI test"
working-directory: ./packages/jazz-run

69
.github/workflows/playwright.yml vendored Normal file
View File

@@ -0,0 +1,69 @@
name: Playwright Tests
on:
push:
branches: ["main"]
pull_request:
types: [opened, synchronize, reopened]
jobs:
test:
timeout-minutes: 60
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
project: ["e2e/BinaryCoStream", "e2e/CoValues", "examples/chat", "examples/music-player", "examples/pets", "examples/onboarding"]
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Enable corepack
run: corepack enable
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Pnpm Build
run: pnpm turbo build
working-directory: ./${{ matrix.project }}
- name: Build jazz-run
run: pnpm exec turbo build && chmod +x dist/index.js;
working-directory: ./packages/jazz-run
- name: Install Playwright Browsers
run: pnpm exec playwright install --with-deps
working-directory: ./${{ matrix.project }}
- name: Run Playwright tests
run: pnpm exec playwright test
working-directory: ./${{ matrix.project }}
- uses: actions/upload-artifact@v4
if: failure()
with:
name: ${{ hashFiles(format('{0}/package.json', matrix.project)) }}-playwright-report
path: ./${{ matrix.project }}/playwright-report/
retention-days: 30

51
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,51 @@
name: Release
on:
push:
branches:
- main
concurrency: ${{ github.workflow }}-${{ github.ref }}
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v3
- name: Enable corepack
run: corepack enable
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Create Release Pull Request or Publish to npm
id: changesets
uses: changesets/action@v1
with:
version: pnpm changeset-version
publish: pnpm release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

47
.github/workflows/unit-test.yml vendored Normal file
View File

@@ -0,0 +1,47 @@
name: Unit Tests
on:
pull_request:
types: [opened, synchronize, reopened]
push:
branches:
- 'main'
jobs:
unit-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Enable corepack
run: corepack enable
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.node-version'
cache: 'pnpm'
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Pnpm Build
run: pnpm turbo build
- name: Unit Tests
run: pnpm test:ci

16
.gitignore vendored
View File

@@ -1,4 +1,18 @@
node_modules
yarn-error.log
lerna-debug.log
docsTmp
docsTmp
.DS_Store
.turbo
coverage
# Next.js
**/.next
# Vite output
**/dist
# Playwright
test-results
.husky

1
.node-version Normal file
View File

@@ -0,0 +1 @@
20

1
.npmrc Normal file
View File

@@ -0,0 +1 @@
node-linker=hoisted

View File

@@ -1,3 +1,3 @@
{
"typescript.tsdk": "node_modules/typescript/lib"
}
"editor.defaultFormatter": "biomejs.biome"
}

131
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,131 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
- Focusing on what is best not just for us as individuals, but for the overall
community
Examples of unacceptable behavior include:
- The use of sexualized language or imagery, and sexual attention or advances of
any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email address,
without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official email address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to [the community leaders responsible for enforcement](mailto:hello@gcmp.io).
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series of
actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the
community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

81
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,81 @@
# Contribution Guide
Thank you for considering contributing to Jazz! Jazz is an open-source framework for building local-first apps. We value your time and effort and are excited to collaborate with you. This guide will help you get started with contributing.
## How to Contribute
### 1. Reporting Bugs
If you find a bug, please [open an issue with as much detail as possible](https://github.com/gardencmp/jazz/issues). Include:
- A clear and descriptive title.
- Steps to reproduce the issue.
- What you expected to happen.
- What actually happened.
### 2. Suggesting Enhancements
We welcome all ideas! If you have suggestions, feel free to open an issue marked with the "enhancement" label. Please provide context on why the enhancement would be beneficial and how it could be implemented.
### 3. Pull Requests
1. **Fork the repository** and create your feature branch (see [GitHub's guide on forking a repository](https://docs.github.com/en/get-started/quickstart/fork-a-repo) if you're unfamiliar with the process):
2. **Make your changes**, ensuring that you follow our coding standards (`pnpm format` (prettier) and `pnpm lint` (eslint) will automatically let you know there are issues).
3. **Commit your changes** with a descriptive commit message.
4. **Push to your fork** and submit a pull request.
5. **Describe your pull request**, explaining the problem it solves or the enhancement it adds.
### 4. Code Style Guidelines
- We use [Prettier](https://prettier.io/) for formatting. Please ensure your code is formatted before submitting.
- Write descriptive comments where necessary.
### 5. Local Setup
You'll need Node.js 20.x or 22.x installed (we're working on support for 23.x), and pnpm 9.x installed. If you're using nix, run `nix develop` to get a shell with the correct versions of everything installed.
1. **Clone the repository**:
```bash
git clone https://github.com/gardencmp/jazz.git
```
2. **Install dependencies**:
```bash
pnpm install
```
3. **Run tests** to verify everything is working:
```bash
pnpm test
```
### 6. Testing
Please write tests for any new features or bug fixes. We use Vitest for unit tests, and Playwright for e2e tests. Make sure all tests pass before submitting a pull request.
```bash
pnpm test
```
NB: You'll need to run `pnpm exec playwright install` to install the Playwright browsers before first run.
### 7. Communication
- If you're unsure about anything, feel free to ask questions by opening a discussion, reaching out via issues, or on our [Discord](https://discord.gg/utDMjHYg42).
- Be respectful and constructive, this is a welcoming community for everyone.
- Please be mindful of GitHubs [Community Guidelines](https://docs.github.com/en/site-policy/github-terms/github-community-guidelines), which include being kind, avoiding disruptive behavior, and respecting others.
## Code of Conduct
Please read and adhere to our [Code of Conduct](./CODE_OF_CONDUCT.md) to ensure a positive experience for all contributors.
---
Thank you again for your interest in contributing to Jazz. Your help makes this project better for everyone!
If you have any questions, don't hesitate to reach out. Let's make something great together!

2320
DOCS.md

File diff suppressed because it is too large Load Diff

19
LICENSE.txt Normal file
View File

@@ -0,0 +1,19 @@
Copyright 2024, Garden Computing, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,82 +1,20 @@
# Jazz - instant sync
# Jazz - Build local-first apps
Homepage: [jazz.tools](https://jazz.tools) &mdash; [Discord](https://discord.gg/utDMjHYg42)
**Jazz is an open-source toolkit for building apps with *distributed state.***
Jazz is an open-source toolkit for *secure telepathic data.*
## Getting started
- Ship faster & simplify your frontend and backend
- Get cross-device sync, real-time collaboration & offline support for free
We recommend reading the [homepage](https://jazz.tools) and [docs](https://jazz.tools/docs) to get an overview of what Jazz is and how it works.
[Jazz Global Mesh](https://jazz.tools/mesh) is serverless sync & storage for Jazz apps. (currently free!)
If you're interested in contributing, please read [CONTRIBUTING.md](./CONTRIBUTING.md).
For community and support, please join our [Discord](https://discord.gg/utDMjHYg42).
---
## What is Secure Telepathic Data?
- Homepage: [jazz.tools](https://jazz.tools)
- Docs: [jazz.tools/docs](https://jazz.tools/docs)
- Community & support: [Discord](https://discord.gg/utDMjHYg42)
- Updates: [X](https://x.com/jazz_tools) & [Email](https://gcmp.io/news)
**Telepathic** means:
- **Read and write data as if it was local,** from anywhere in your app.
- **Always have that data synced, instantly.** Across devices of the same user &mdash; or to other users (coming soon: to your backend, workers, etc.)
**Secure** means:
- **Fine-grained, role-based permissions are *baked into* your data.**
- **Permissions are enforced everywhere, locally.** (using cryptography instead of through an API)
- Roles can be changed dynamically, supporting changing teams, invite links and more.
## How to build an app with Jazz?
### Building a new app, completely with Jazz
It's still a bit early, but these are the rough steps:
1. Define your data model with [CoJSON Values](#cojson).
2. Implement permission logic using [CoJSON Groups](#group).
3. Hook up a user interface with [jazz-react](#jazz-react).
The best example is currently the [Todo List app](#example-app-todo-list).
### Gradually adding Jazz to an existing app
Coming soon: Jazz will support gradual adoption by integrating with your existing UI, auth and database.
## Example App: Todo List
The best example of Jazz is currently the Todo List app.
- Live version: https://example-todo.jazz.tools
- Source code: [`./examples/todo`](./examples/todo). See the README there for a walk-through and running instructions.
# Documentation
Note: Since it's early days, this is the only source of documentation so far.
If you want to build something with Jazz, [join the Jazz Discord](https://discord.gg/utDMjHYg42) for encouragement and help!
## Overview: Main Packages
**`cojson`** → [DOCS](./DOCS.md#cojson)
A library implementing abstractions and protocols for "Collaborative JSON". This will soon be standardized and forms the basis of secure telepathic data.
**`jazz-react`** → [DOCS](./DOCS.md#jazz-react)
Provides you with everything you need to build react apps around CoJSON, including reactive hooks for telepathic data, local IndexedDB persistence, support for different auth providers and helpers for simple invite links for CoJSON groups.
### Supporting packages
<small>
**`cojson-simple-sync`**
A generic CoJSON sync server you can run locally if you don't want to use Jazz Global Mesh (the default sync backend, at `wss://sync.jazz.tools`)
**`jazz-browser`** → [DOCS](./DOCS.md#jazz-browser)
framework-agnostic primitives that allow you to use CoJSON in the browser. Used to implement `jazz-react`, will be used to implement bindings for other frameworks in the future.
**`jazz-react-auth-local`** (and `jazz-browser-auth-local`): A simple auth provider that stores cryptographic keys on user devices using WebAuthentication/Passkeys. Lets you build Jazz apps completely without a backend, with end-to-end encryption by default.
**`jazz-storage-indexeddb`**
Provides local, offline-capable persistence. Included and enabled in `jazz-react` by default.
</small>
Copyright 2024 &mdash; Garden Computing, Inc.

25
biome.json Normal file
View File

@@ -0,0 +1,25 @@
{
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"files": {
"ignoreUnknown": false,
"ignore": ["jazz-tools.json", "**/ios/**", "**/android/**"]
},
"formatter": {
"enabled": true,
"indentStyle": "space"
},
"organizeImports": {
"enabled": true
},
"linter": {
"enabled": false,
"rules": {
"recommended": true
}
}
}

30
e2e/BinaryCoStream/.gitignore vendored Normal file
View File

@@ -0,0 +1,30 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
sync-db/
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/

View File

@@ -0,0 +1,162 @@
# @jazz-e2e/binarycostream
## 0.0.100
### Patch Changes
- Updated dependencies [59cc64d]
- jazz-react@0.8.22
## 0.0.99
### Patch Changes
- Updated dependencies [0f30eea]
- Updated dependencies [149ca97]
- cojson@0.8.21
- jazz-tools@0.8.21
- jazz-react@0.8.21
## 0.0.98
### Patch Changes
- Updated dependencies [dd9b13f]
- Updated dependencies [a69ed0b]
- Updated dependencies [3ef3ff3]
- Updated dependencies [c6931b8]
- jazz-react@0.8.20
## 0.0.97
### Patch Changes
- Updated dependencies [9c2aadb]
- cojson@0.8.19
- jazz-react@0.8.19
- jazz-tools@0.8.19
## 0.0.96
### Patch Changes
- Updated dependencies [d4319d8]
- cojson@0.8.18
- jazz-react@0.8.18
- jazz-tools@0.8.18
## 0.0.95
### Patch Changes
- Updated dependencies [d433cf4]
- cojson@0.8.17
- jazz-react@0.8.17
- jazz-tools@0.8.17
## 0.0.94
### Patch Changes
- Updated dependencies [2af107c]
- Updated dependencies [b934fab]
- jazz-react@0.8.16
- cojson@0.8.16
- jazz-tools@0.8.16
## 0.0.93
### Patch Changes
- Updated dependencies [cce679b]
- jazz-tools@0.8.15
- jazz-react@0.8.15
## 0.0.92
### Patch Changes
- Updated dependencies [36273b3]
- jazz-tools@0.8.14
- jazz-react@0.8.14
## 0.0.91
### Patch Changes
- Updated dependencies [fd011d7]
- jazz-tools@0.8.13
- jazz-react@0.8.13
## 0.0.90
### Patch Changes
- Updated dependencies [6ed75eb]
- Updated dependencies [3cc6aee]
- cojson@0.8.12
- jazz-react@0.8.12
- jazz-tools@0.8.12
## 0.0.89
### Patch Changes
- Updated dependencies [1ed4ab5]
- cojson@0.8.11
- jazz-react@0.8.11
- jazz-tools@0.8.11
## 0.0.88
### Patch Changes
- jazz-react@0.8.7
## 0.0.87
### Patch Changes
- jazz-react@0.8.6
## 0.0.86
### Patch Changes
- Updated dependencies [c3f4e6b]
- Updated dependencies [d9152ed]
- jazz-tools@0.8.5
- cojson@0.8.5
- jazz-react@0.8.5
## 0.0.85
### Patch Changes
- Updated dependencies
- hash-slash@0.2.1
## 0.0.84
### Patch Changes
- Updated dependencies
- cojson@0.8.3
- jazz-react@0.8.3
- jazz-tools@0.8.3
## 0.0.83
### Patch Changes
- Updated dependencies [a075f90]
- jazz-tools@0.8.2
- jazz-react@0.8.2
## 0.0.82
### Patch Changes
- Updated dependencies
- jazz-tools@0.8.1
- jazz-react@0.8.1

View File

@@ -0,0 +1,14 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/png" href="/jazz-logo.png" />
<link rel="stylesheet" href="/src/index.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Jazz BinaryCoStream Tests</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/app.tsx"></script>
</body>
</html>

View File

@@ -0,0 +1,33 @@
{
"name": "@jazz-e2e/binarycostream",
"private": true,
"version": "0.0.100",
"type": "module",
"scripts": {
"dev": "vite",
"format-and-lint": "biome check .",
"format-and-lint:fix": "biome check . --write",
"build": "tsc && vite build",
"preview": "vite preview",
"test": "playwright test",
"test:ui": "playwright test --ui"
},
"dependencies": {
"cojson": "workspace:0.8.21",
"hash-slash": "workspace:0.2.1",
"is-ci": "^3.0.1",
"jazz-react": "workspace:0.8.22",
"jazz-tools": "workspace:0.8.21",
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
"devDependencies": {
"@playwright/test": "^1.46.1",
"@types/node": "^22.5.1",
"@types/react": "^18.2.19",
"@types/react-dom": "^18.2.7",
"@vitejs/plugin-react-swc": "^3.3.2",
"typescript": "^5.3.3",
"vite": "^5.0.10"
}
}

View File

@@ -0,0 +1,53 @@
import { defineConfig, devices } from "@playwright/test";
import isCI from "is-ci";
/**
* Read environment variables from file.
* https://github.com/motdotla/dotenv
*/
// import dotenv from 'dotenv';
// dotenv.config({ path: path.resolve(__dirname, '.env') });
/**
* See https://playwright.dev/docs/test-configuration.
*/
export default defineConfig({
testDir: "./tests",
/* Run tests in files in parallel */
fullyParallel: true,
/* Fail the build on CI if you accidentally left test.only in the source code. */
forbidOnly: isCI,
/* Retry on CI only */
retries: isCI ? 2 : 0,
/* Opt out of parallel tests on CI. */
workers: isCI ? 1 : undefined,
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
reporter: "html",
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: {
/* Base URL to use in actions like `await page.goto('/')`. */
baseURL: "http://localhost:5173/",
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
trace: "on-first-retry",
permissions: ["clipboard-read", "clipboard-write"],
},
/* Configure projects for major browsers */
projects: [
{
name: "chromium",
use: { ...devices["Desktop Chrome"] },
},
],
/* Run your local dev server before starting the tests */
webServer: [
{
command: "pnpm preview --port 5173",
url: "http://localhost:5173/",
reuseExistingServer: !isCI,
},
],
});

View File

@@ -0,0 +1,46 @@
import { Account, BinaryCoStream, ID } from "jazz-tools";
import { useEffect } from "react";
import { useAccount, useCoState } from "./jazz";
import { waitForCoValue } from "./lib/waitForCoValue";
import { UploadedFile } from "./schema";
async function getUploadedFile(me: Account, uploadedFileId: ID<UploadedFile>) {
const uploadedFile = await waitForCoValue(
UploadedFile,
uploadedFileId,
me,
Boolean,
{},
);
uploadedFile.coMapDownloaded = true;
await BinaryCoStream.loadAsBlob(uploadedFile._refs.file.id, me);
return uploadedFile;
}
export function DownloaderPeer(props: { testCoMapId: ID<UploadedFile> }) {
const account = useAccount();
const testCoMap = useCoState(UploadedFile, props.testCoMapId, {});
useEffect(() => {
getUploadedFile(account.me, props.testCoMapId).then((value) => {
value.syncCompleted = true;
});
}, []);
return (
<>
<h1>Downloader Peer</h1>
<div>Fetching: {props.testCoMapId}</div>
<div data-testid="result">
Covalue: {Boolean(testCoMap?.id) ? "Downloaded" : "Not Downloaded"}
</div>
<div data-testid="result">
File:{" "}
{Boolean(testCoMap?.syncCompleted) ? "Downloaded" : "Not Downloaded"}
</div>
</>
);
}

View File

@@ -0,0 +1,82 @@
import { ID } from "jazz-tools";
import { useEffect, useState } from "react";
import { useAccount, useCoState } from "./jazz";
import { BytesRadioGroup } from "./lib/BytesRadioGroup";
import { createCredentiallessIframe } from "./lib/createCredentiallessIframe";
import { generateTestFile } from "./lib/generateTestFile";
import { getDownloaderPeerUrl } from "./lib/getDownloaderPeerUrl";
import { getDefaultFileSize, getIsAutoUpload } from "./lib/searchParams";
import { waitForCoValue } from "./lib/waitForCoValue";
import { UploadedFile } from "./schema";
export function UploaderPeer() {
const account = useAccount();
const [uploadedFileId, setUploadedFileId] = useState<
ID<UploadedFile> | undefined
>(undefined);
const [syncDuration, setSyncDuration] = useState<number | null>(null);
const [bytes, setBytes] = useState(getDefaultFileSize);
const testFile = useCoState(UploadedFile, uploadedFileId, {});
async function uploadTestFile() {
if (!account) return;
// Mark the sync start
performance.mark("sync-start");
const file = await generateTestFile(account.me, bytes);
// Create a credential-less iframe to spawn the downloader peer
const iframe = createCredentiallessIframe(getDownloaderPeerUrl(file));
document.body.appendChild(iframe);
setSyncDuration(null);
setUploadedFileId(file.id);
// The downloader peer will set the syncCompleted to true when the download is complete.
// We use this to measure the sync duration.
await waitForCoValue(
UploadedFile,
file.id,
account.me,
(value) => value.syncCompleted,
{},
);
iframe.remove();
// Calculate the sync duration
performance.mark("sync-end");
const measure = performance.measure("sync", "sync-start", "sync-end");
setSyncDuration(measure.duration);
}
useEffect(() => {
if (getIsAutoUpload()) {
uploadTestFile();
}
}, []);
return (
<>
<BytesRadioGroup selectedValue={bytes} onChange={setBytes} />
<button onClick={uploadTestFile}>Upload Test File</button>
{uploadedFileId && <div>{uploadedFileId}</div>}
{syncDuration && (
<div data-testid="sync-duration">
Sync Duration: {syncDuration.toFixed(2)}ms
</div>
)}
{uploadedFileId && (
<div data-testid="result">
Sync Completed: {String(Boolean(syncDuration))}
</div>
)}
{testFile?.coMapDownloaded && (
<div data-testid="co-map-downloaded">CoMap synced!</div>
)}
</>
);
}

View File

@@ -0,0 +1,24 @@
import React from "react";
import ReactDOM from "react-dom/client";
import { DownloaderPeer } from "./DownloaderPeer";
import { UploaderPeer } from "./UploaderPeer";
import { AuthAndJazz } from "./jazz";
import { getValueId } from "./lib/searchParams";
function Main() {
const valueId = getValueId();
if (valueId) {
return <DownloaderPeer testCoMapId={valueId} />;
}
return <UploaderPeer />;
}
ReactDOM.createRoot(document.getElementById("root")!).render(
<React.StrictMode>
<AuthAndJazz>
<Main />
</AuthAndJazz>
</React.StrictMode>,
);

View File

@@ -0,0 +1,39 @@
import { createJazzReactApp, useDemoAuth } from "jazz-react";
import { useEffect, useRef } from "react";
import { getValueId } from "./lib/searchParams";
const key = getValueId()
? `downloader-e2e@jazz.tools`
: `uploader-e2e@jazz.tools`;
const localSync = new URLSearchParams(location.search).has("localSync");
const Jazz = createJazzReactApp();
export const { useAccount, useCoState } = Jazz;
export function AuthAndJazz({ children }: { children: React.ReactNode }) {
const [auth, state] = useDemoAuth();
const signedUp = useRef(false);
useEffect(() => {
if (state.state === "ready" && !signedUp.current) {
state.signUp("Mister X");
signedUp.current = true;
}
}, [state.state]);
return (
<Jazz.Provider
auth={auth}
peer={
localSync
? `ws://localhost:4200?key=${key}`
: `wss://cloud.jazz.tools/?key=${key}`
}
>
{children}
</Jazz.Provider>
);
}

View File

@@ -0,0 +1,76 @@
export function BytesRadioGroup(props: {
selectedValue: number;
onChange: (value: number) => void;
}) {
return (
<p>
<BytesRadioInput
label="1KB"
value={1e3}
selectedValue={props.selectedValue}
onChange={props.onChange}
/>
<BytesRadioInput
label="10KB"
value={1e4}
selectedValue={props.selectedValue}
onChange={props.onChange}
/>
<BytesRadioInput
label="100KB"
value={1e5}
selectedValue={props.selectedValue}
onChange={props.onChange}
/>
<BytesRadioInput
label="150KB"
value={1e5 + 5e4}
selectedValue={props.selectedValue}
onChange={props.onChange}
/>
<BytesRadioInput
label="200KB"
value={2e6}
selectedValue={props.selectedValue}
onChange={props.onChange}
/>
<BytesRadioInput
label="500KB"
value={5e6}
selectedValue={props.selectedValue}
onChange={props.onChange}
/>
<BytesRadioInput
label="1MB"
value={1e6}
selectedValue={props.selectedValue}
onChange={props.onChange}
/>
<BytesRadioInput
label="10MB"
value={1e7}
selectedValue={props.selectedValue}
onChange={props.onChange}
/>
</p>
);
}
function BytesRadioInput(props: {
label: string;
value: number;
selectedValue: number;
onChange: (value: number) => void;
}) {
return (
<label>
<input
type="radio"
name="bytes"
value={props.value}
checked={props.value === props.selectedValue}
onChange={() => props.onChange(props.value)}
/>
{props.label}
</label>
);
}

View File

@@ -0,0 +1,21 @@
/**
* Creates a credentialess iframe that can be used to test the sync
* in an isolated environment. (no storage sharing)
*
* see: https://developer.mozilla.org/en-US/docs/Web/Security/IFrame_credentialless
*/
export function createCredentiallessIframe(url: string) {
const iframe = document.createElement("iframe");
// @ts-ignore
iframe.credentialless = true;
iframe.src = url;
iframe.style.width = "300px";
iframe.style.height = "300px";
iframe.style.border = "1px solid black";
iframe.style.position = "absolute";
iframe.style.top = "0";
iframe.style.right = "0";
iframe.setAttribute("data-testid", "downloader-peer");
return iframe;
}

View File

@@ -0,0 +1,26 @@
import { Account, BinaryCoStream, Group } from "jazz-tools";
import { UploadedFile } from "../schema";
export async function generateTestFile(me: Account, bytes: number) {
const group = Group.create({ owner: me });
group.addMember("everyone", "writer");
const ownership = { owner: group };
const testFile = UploadedFile.create(
{
file: await BinaryCoStream.createFromBlob(
new Blob(["1".repeat(bytes)], { type: "image/png" }),
ownership,
),
syncCompleted: false,
coMapDownloaded: false,
},
ownership,
);
const url = new URL(window.location.href);
url.searchParams.set("valueId", testFile.id);
return testFile;
}

View File

@@ -0,0 +1,7 @@
import { UploadedFile } from "src/schema";
export function getDownloaderPeerUrl(value: UploadedFile) {
const url = new URL(window.location.href);
url.searchParams.set("valueId", value.id);
return url.toString();
}

View File

@@ -0,0 +1,20 @@
import { ID } from "jazz-tools";
import { UploadedFile } from "../schema";
export function getValueId() {
return (
(new URLSearchParams(location.search).get("valueId") as
| ID<UploadedFile>
| undefined) ?? undefined
);
}
export function getIsAutoUpload() {
return new URLSearchParams(location.search).has("auto");
}
export function getDefaultFileSize() {
return parseInt(
new URLSearchParams(location.search).get("fileSize") ?? (1e3).toString(),
);
}

View File

@@ -0,0 +1,39 @@
import {
Account,
CoValue,
CoValueClass,
DepthsIn,
ID,
subscribeToCoValue,
} from "jazz-tools";
export function waitForCoValue<T extends CoValue>(
coMap: CoValueClass<T>,
valueId: ID<T>,
account: Account,
predicate: (value: T) => boolean,
depth: DepthsIn<T>,
) {
return new Promise<T>((resolve) => {
function subscribe() {
const unsubscribe = subscribeToCoValue(
coMap,
valueId,
account,
depth,
(value) => {
if (predicate(value)) {
resolve(value);
unsubscribe();
}
},
() => {
unsubscribe();
setTimeout(subscribe, 100);
},
);
}
subscribe();
});
}

View File

@@ -0,0 +1,7 @@
import { BinaryCoStream, CoMap, co } from "jazz-tools";
export class UploadedFile extends CoMap {
file = co.ref(BinaryCoStream);
syncCompleted = co.boolean;
coMapDownloaded = co.boolean;
}

1
e2e/BinaryCoStream/src/vite-env.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
/// <reference types="vite/client" />

View File

@@ -0,0 +1,36 @@
import { setTimeout } from "node:timers/promises";
import { expect, test } from "@playwright/test";
test.describe("BinaryCoStream - Sync", () => {
test("should sync a file between the two peers", async ({ page }) => {
await page.goto("/");
await page.getByRole("button", { name: "Upload Test File" }).click();
await page.getByTestId("sync-duration").waitFor();
await expect(page.getByTestId("result")).toHaveText("Sync Completed: true");
});
test("should handle reconnections", async ({ page, browser }) => {
const context = browser.contexts()[0];
await page.goto("/?fileSize=" + 1e6); // 1MB file
await page.getByRole("button", { name: "Upload Test File" }).click();
// Wait for the coMapDonwloaded signal to ensure that the iframe is loaded
await page.getByTestId("co-map-downloaded").waitFor();
await context.setOffline(true);
// Wait for the ping system to detect the offline state
await setTimeout(10000);
await context.setOffline(false);
// Wait for the sync to complete
await page.getByTestId("sync-duration").waitFor();
await expect(page.getByTestId("result")).toHaveText("Sync Completed: true");
});
});

View File

@@ -0,0 +1,25 @@
{
"compilerOptions": {
"target": "ES2020",
"useDefineForClassFields": true,
"lib": ["ES2023", "DOM", "DOM.Iterable"],
"module": "ESNext",
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx",
/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
"baseUrl": "."
},
"include": ["src"]
}

View File

@@ -0,0 +1,10 @@
import react from "@vitejs/plugin-react-swc";
import { defineConfig } from "vite";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()],
build: {
minify: false,
},
});

30
e2e/CoValues/.gitignore vendored Normal file
View File

@@ -0,0 +1,30 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
sync-db/
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/

154
e2e/CoValues/CHANGELOG.md Normal file
View File

@@ -0,0 +1,154 @@
# @jazz-e2e/covalues
## 0.0.99
### Patch Changes
- Updated dependencies [59cc64d]
- jazz-react@0.8.22
## 0.0.98
### Patch Changes
- Updated dependencies [0f30eea]
- Updated dependencies [149ca97]
- cojson@0.8.21
- jazz-tools@0.8.21
- jazz-react@0.8.21
## 0.0.97
### Patch Changes
- Updated dependencies [dd9b13f]
- Updated dependencies [a69ed0b]
- Updated dependencies [3ef3ff3]
- Updated dependencies [c6931b8]
- jazz-react@0.8.20
## 0.0.96
### Patch Changes
- Updated dependencies [9c2aadb]
- cojson@0.8.19
- jazz-react@0.8.19
- jazz-tools@0.8.19
## 0.0.95
### Patch Changes
- Updated dependencies [d4319d8]
- cojson@0.8.18
- jazz-react@0.8.18
- jazz-tools@0.8.18
## 0.0.94
### Patch Changes
- Updated dependencies [d433cf4]
- cojson@0.8.17
- jazz-react@0.8.17
- jazz-tools@0.8.17
## 0.0.93
### Patch Changes
- Updated dependencies [2af107c]
- Updated dependencies [b934fab]
- jazz-react@0.8.16
- cojson@0.8.16
- jazz-tools@0.8.16
## 0.0.92
### Patch Changes
- Updated dependencies [cce679b]
- jazz-tools@0.8.15
- jazz-react@0.8.15
## 0.0.91
### Patch Changes
- Updated dependencies [36273b3]
- jazz-tools@0.8.14
- jazz-react@0.8.14
## 0.0.90
### Patch Changes
- Updated dependencies [fd011d7]
- jazz-tools@0.8.13
- jazz-react@0.8.13
## 0.0.89
### Patch Changes
- Updated dependencies [6ed75eb]
- Updated dependencies [3cc6aee]
- cojson@0.8.12
- jazz-react@0.8.12
- jazz-tools@0.8.12
## 0.0.88
### Patch Changes
- Updated dependencies [1ed4ab5]
- cojson@0.8.11
- jazz-react@0.8.11
- jazz-tools@0.8.11
## 0.0.87
### Patch Changes
- jazz-react@0.8.7
## 0.0.86
### Patch Changes
- jazz-react@0.8.6
## 0.0.85
### Patch Changes
- Updated dependencies [c3f4e6b]
- Updated dependencies [d9152ed]
- jazz-tools@0.8.5
- cojson@0.8.5
- jazz-react@0.8.5
## 0.0.84
### Patch Changes
- Updated dependencies
- hash-slash@0.2.1
## 0.0.83
### Patch Changes
- Updated dependencies
- cojson@0.8.3
- jazz-react@0.8.3
- jazz-tools@0.8.3
## 0.0.82
### Patch Changes
- Updated dependencies [a075f90]
- jazz-tools@0.8.2
- jazz-react@0.8.2

14
e2e/CoValues/index.html Normal file
View File

@@ -0,0 +1,14 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/png" href="/jazz-logo.png" />
<link rel="stylesheet" href="/src/index.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Jazz CoValues tests</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/app.tsx"></script>
</body>
</html>

36
e2e/CoValues/package.json Normal file
View File

@@ -0,0 +1,36 @@
{
"name": "@jazz-e2e/covalues",
"private": true,
"version": "0.0.99",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"preview": "vite preview",
"format-and-lint": "biome check .",
"format-and-lint:fix": "biome check . --write",
"test": "playwright test",
"test:ui": "playwright test --ui"
},
"dependencies": {
"cojson": "workspace:*",
"hash-slash": "workspace:*",
"is-ci": "^3.0.1",
"jazz-react": "workspace:*",
"jazz-tools": "workspace:*",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router": "^6.16.0",
"react-router-dom": "^6.16.0"
},
"devDependencies": {
"@playwright/test": "^1.46.1",
"@types/node": "^22.5.1",
"@types/react": "^18.2.19",
"@types/react-dom": "^18.2.7",
"@vitejs/plugin-react-swc": "^3.3.2",
"jstat": "^1.9.6",
"typescript": "^5.3.3",
"vite": "^5.0.10"
}
}

View File

@@ -0,0 +1,53 @@
import { defineConfig, devices } from "@playwright/test";
import isCI from "is-ci";
/**
* Read environment variables from file.
* https://github.com/motdotla/dotenv
*/
// import dotenv from 'dotenv';
// dotenv.config({ path: path.resolve(__dirname, '.env') });
/**
* See https://playwright.dev/docs/test-configuration.
*/
export default defineConfig({
testDir: "./tests",
/* Run tests in files in parallel */
fullyParallel: true,
/* Fail the build on CI if you accidentally left test.only in the source code. */
forbidOnly: isCI,
/* Retry on CI only */
retries: isCI ? 2 : 0,
/* Opt out of parallel tests on CI. */
workers: isCI ? 1 : undefined,
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
reporter: "html",
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: {
/* Base URL to use in actions like `await page.goto('/')`. */
baseURL: "http://localhost:5173/",
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
trace: "on-first-retry",
permissions: ["clipboard-read", "clipboard-write"],
},
/* Configure projects for major browsers */
projects: [
{
name: "chromium",
use: { ...devices["Desktop Chrome"] },
},
],
/* Run your local dev server before starting the tests */
webServer: [
{
command: "pnpm preview --port 5173",
url: "http://localhost:5173/",
reuseExistingServer: !isCI,
},
],
});

29
e2e/CoValues/src/app.tsx Normal file
View File

@@ -0,0 +1,29 @@
import React from "react";
import ReactDOM from "react-dom/client";
import { RouterProvider, createBrowserRouter } from "react-router-dom";
import { AuthAndJazz } from "./jazz";
import { ResumeSyncState } from "./pages/ResumeSyncState";
import { TestInput } from "./pages/TestInput";
const router = createBrowserRouter([
{
path: "/test-input",
element: <TestInput />,
},
{
path: "/resume-sync",
element: <ResumeSyncState />,
},
{
path: "/",
element: <TestInput />,
},
]);
ReactDOM.createRoot(document.getElementById("root")!).render(
<React.StrictMode>
<AuthAndJazz>
<RouterProvider router={router} />
</AuthAndJazz>
</React.StrictMode>,
);

43
e2e/CoValues/src/jazz.tsx Normal file
View File

@@ -0,0 +1,43 @@
import { createJazzReactApp, useDemoAuth } from "jazz-react";
import { useEffect, useRef } from "react";
const key = `test-comap@jazz.tools`;
const url = new URL(window.location.href);
const peer =
(url.searchParams.get("peer") as `ws://${string}`) ??
`wss://cloud.jazz.tools/`;
const Jazz = createJazzReactApp();
export const { useAccount, useCoState } = Jazz;
function getUserInfo() {
return url.searchParams.get("userName") ?? "Mister X";
}
export function AuthAndJazz({ children }: { children: React.ReactNode }) {
const [auth, state] = useDemoAuth();
const signedUp = useRef(false);
useEffect(() => {
if (state.state === "ready" && !signedUp.current) {
const userName = getUserInfo();
if (state.existingUsers.includes(userName)) {
state.logInAs(userName);
} else {
state.signUp(userName);
}
signedUp.current = true;
}
}, [state.state]);
return (
<Jazz.Provider auth={auth} peer={`${peer}?key=${key}`}>
{children}
</Jazz.Provider>
);
}

View File

@@ -0,0 +1,53 @@
import { CoMap, Group, ID, co } from "jazz-tools";
import { useEffect, useState } from "react";
import { useAccount, useCoState } from "../jazz";
export class ResumeSyncCoMap extends CoMap {
value = co.string;
}
function getIdParam() {
const url = new URL(window.location.href);
return (url.searchParams.get("id") as ID<ResumeSyncCoMap>) ?? undefined;
}
export function ResumeSyncState() {
const [id, setId] = useState(getIdParam);
const coMap = useCoState(ResumeSyncCoMap, id);
const { me } = useAccount();
useEffect(() => {
if (id) {
const url = new URL(window.location.href);
url.searchParams.set("id", id);
history.pushState({}, "", url.toString());
}
}, [id]);
useEffect(() => {
if (!me || id) return;
const group = Group.create({ owner: me });
group.addMember("everyone", "writer");
setId(ResumeSyncCoMap.create({ value: "" }, { owner: group }).id);
}, [me]);
if (!coMap) return null;
return (
<div>
<h1>Resume Sync State</h1>
<p data-testid="id">{coMap.id}</p>
<label htmlFor="value">Value</label>
<input
id="value"
value={coMap.value ?? ""}
onChange={(e) => {
coMap.value = e.target.value;
}}
/>
</div>
);
}

View File

@@ -0,0 +1,35 @@
import { CoMap, Group, ID, co } from "jazz-tools";
import { useEffect, useState } from "react";
import { useAccount, useCoState } from "../jazz";
export class InputTestCoMap extends CoMap {
title = co.string;
}
export function TestInput() {
const [id, setId] = useState<ID<InputTestCoMap> | undefined>(undefined);
const coMap = useCoState(InputTestCoMap, id);
const { me } = useAccount();
useEffect(() => {
if (!me || id) return;
const group = Group.create({ owner: me });
group.addMember("everyone", "writer");
setId(InputTestCoMap.create({ title: "" }, { owner: group }).id);
}, [me]);
if (!coMap) return null;
return (
<input
value={coMap?.title ?? ""}
onChange={(e) => {
if (!coMap) return;
coMap.title = e.target.value;
}}
/>
);
}

1
e2e/CoValues/src/vite-env.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
/// <reference types="vite/client" />

View File

@@ -0,0 +1,52 @@
import { setTimeout } from "node:timers/promises";
import { expect, test } from "@playwright/test";
test.describe("ResumeSyncState", () => {
test.skip("should resume the sync even after a page reload", async ({
page,
browser,
}) => {
const context = page.context();
await page.goto("/resume-sync?userName=SuperMario");
const id = await page.getByTestId("id").textContent();
// Sync an initial value
await page.getByRole("textbox", { name: "Value" }).fill("Let's go!");
await setTimeout(1000);
await context.setOffline(true);
// Change the value while offline
await page.getByRole("textbox", { name: "Value" }).fill("Mammamia!");
// Navigate away from the page
await page.goto(`about:blank`);
await setTimeout(1000);
await context.setOffline(false);
// Reload the page but without loading the coValue
// await page.goto(`/resume-sync?userName=SuperMario`);
await page.goto(`/resume-sync?userName=SuperMario`);
await setTimeout(1000);
await expect(page.getByTestId("id")).toBeInViewport();
// Create a new incognito instance and try to load the coValue
const newUserPage = await (await browser.newContext()).newPage();
await newUserPage.goto(`/resume-sync?userName=Luigi&id=${id}`);
await expect(newUserPage.getByTestId("id")).toBeInViewport();
// The initial user should have synced the value even if the coValue was not loaded
// when the user is back online
await expect(
newUserPage.getByRole("textbox", { name: "Value" }),
).toHaveValue("Mammamia!", {
timeout: 20_000,
});
});
});

View File

@@ -0,0 +1,14 @@
import { expect, test } from "@playwright/test";
test.describe("CoMap - TestInput", () => {
test("should keep the cursor position when typing", async ({ page }) => {
await page.goto("/test-input");
await page.getByRole("textbox").fill("xx");
await page.getByRole("textbox").press("ArrowLeft");
await page.getByRole("textbox").press("y");
await page.getByRole("textbox").press("y");
await expect(page.getByRole("textbox")).toHaveValue("xyyx");
});
});

View File

@@ -0,0 +1,25 @@
{
"compilerOptions": {
"target": "ES2020",
"useDefineForClassFields": true,
"lib": ["ES2023", "DOM", "DOM.Iterable"],
"module": "ESNext",
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx",
/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
"baseUrl": "."
},
"include": ["src"]
}

View File

@@ -0,0 +1,10 @@
import react from "@vitejs/plugin-react-swc";
import { defineConfig } from "vite";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()],
build: {
minify: false,
},
});

36
examples/book-shelf/.gitignore vendored Normal file
View File

@@ -0,0 +1,36 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
.yarn/install-state.gz
# testing
/coverage
# next.js
/.next/
/out/
# production
/build
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# local env files
.env*.local
# vercel
.vercel
# typescript
*.tsbuildinfo
next-env.d.ts

View File

@@ -0,0 +1,130 @@
# jazz-example-book-shelf
## 0.1.15
### Patch Changes
- Updated dependencies [59cc64d]
- jazz-react@0.8.22
- jazz-browser-media-images@0.8.22
## 0.1.14
### Patch Changes
- Updated dependencies [149ca97]
- jazz-tools@0.8.21
- jazz-react@0.8.21
- jazz-browser-media-images@0.8.21
## 0.1.13
### Patch Changes
- Updated dependencies [dd9b13f]
- Updated dependencies [a69ed0b]
- Updated dependencies [3ef3ff3]
- Updated dependencies [c6931b8]
- jazz-react@0.8.20
- jazz-browser-media-images@0.8.20
## 0.1.12
### Patch Changes
- jazz-react@0.8.19
- jazz-tools@0.8.19
- jazz-browser-media-images@0.8.19
## 0.1.11
### Patch Changes
- jazz-react@0.8.18
- jazz-tools@0.8.18
- jazz-browser-media-images@0.8.18
## 0.1.10
### Patch Changes
- jazz-react@0.8.17
- jazz-tools@0.8.17
- jazz-browser-media-images@0.8.17
## 0.1.9
### Patch Changes
- Updated dependencies [2af107c]
- jazz-react@0.8.16
- jazz-browser-media-images@0.8.16
- jazz-tools@0.8.16
## 0.1.8
### Patch Changes
- Updated dependencies [cce679b]
- jazz-tools@0.8.15
- jazz-browser-media-images@0.8.15
- jazz-react@0.8.15
## 0.1.7
### Patch Changes
- Updated dependencies [36273b3]
- jazz-tools@0.8.14
- jazz-browser-media-images@0.8.14
- jazz-react@0.8.14
## 0.1.6
### Patch Changes
- Updated dependencies [fd011d7]
- jazz-tools@0.8.13
- jazz-browser-media-images@0.8.13
- jazz-react@0.8.13
## 0.1.5
### Patch Changes
- Updated dependencies [3cc6aee]
- jazz-react@0.8.12
- jazz-tools@0.8.12
- jazz-browser-media-images@0.8.12
## 0.1.4
### Patch Changes
- jazz-react@0.8.11
- jazz-tools@0.8.11
- jazz-browser-media-images@0.8.11
## 0.1.3
### Patch Changes
- jazz-browser-media-images@0.8.7
- jazz-react@0.8.7
## 0.1.2
### Patch Changes
- jazz-browser-media-images@0.8.6
- jazz-react@0.8.6
## 0.1.1
### Patch Changes
- Updated dependencies [c3f4e6b]
- Updated dependencies [d9152ed]
- jazz-tools@0.8.5
- jazz-browser-media-images@0.8.5
- jazz-react@0.8.5

View File

@@ -0,0 +1,4 @@
FROM caddy:2.7.3-alpine
LABEL org.opencontainers.image.source="https://github.com/gardencmp/jazz"
COPY ./dist /usr/share/caddy/

View File

@@ -0,0 +1,43 @@
# Jazz Book Shelf Example
Live version: [https://books-demo.jazz.tools](https://books-demo.jazz.tools)
## Installing & running the example locally
(this requires `pnpm` to be installed, see [https://pnpm.io/installation](https://pnpm.io/installation))
Start by checking out `jazz`
Install dependencies:
```bash
pnpm install
```
Go to the `examples/book-shelf` directory.
```bash
cd examples/book-shelf
```
Install dependencies:
```bash
pnpm install
```
Start the dev server:
```bash
pnpm dev
```
## Questions / problems / feedback
If you have feedback, let us know on [Discord](https://discord.gg/utDMjHYg42) or open an issue or PR to fix something that seems wrong.
## Configuration: sync server
By default, the example app uses [Jazz Cloud](https://jazz.tools/cloud) (`wss://cloud.jazz.tools`) - so cross-device use, invites and collaboration should just work.
You can also run a local sync server by running `npx jazz-run sync` and adding the query param `?sync=ws://localhost:4200` to the URL of the example app (for example: `http://localhost:5173/?peer=ws://localhost:4200`), or by setting the `sync` parameter of the `<Jazz.Provider>` provider component in [./src/components/JazzAndAuth.tsx](./src/2_main.tsx).

View File

@@ -0,0 +1,56 @@
job "example-bookShelf$BRANCH_SUFFIX" {
region = "global"
datacenters = ["*"]
group "static" {
count = 4
network {
port "http" {
to = 80
}
}
constraint {
attribute = "${node.class}"
operator = "="
value = "cloud"
}
spread {
attribute = "${node.datacenter}"
weight = 100
}
constraint {
distinct_hosts = true
}
task "server" {
driver = "docker"
config {
image = "$DOCKER_TAG"
ports = ["http"]
auth = {
username = "$DOCKER_USER"
password = "$DOCKER_PASSWORD"
}
}
service {
tags = ["public"]
name = "example-bookShelf$BRANCH_SUFFIX"
port = "http"
provider = "consul"
}
resources {
cpu = 50 # MHz
memory = 50 # MB
}
}
}
}
# deploy bump 4

5
examples/book-shelf/next-env.d.ts vendored Normal file
View File

@@ -0,0 +1,5 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.

View File

@@ -0,0 +1,4 @@
/** @type {import('next').NextConfig} */
const nextConfig = {};
export default nextConfig;

View File

@@ -0,0 +1,29 @@
{
"name": "jazz-example-book-shelf",
"version": "0.1.15",
"private": true,
"scripts": {
"dev": "next dev",
"format-and-lint": "biome check .",
"format-and-lint:fix": "biome check . --write",
"build": "next build",
"start": "next start"
},
"dependencies": {
"clsx": "^2.0.0",
"jazz-browser-media-images": "workspace:0.8.22",
"jazz-react": "workspace:0.8.22",
"jazz-tools": "workspace:0.8.21",
"next": "14.2.5",
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
"devDependencies": {
"@types/node": "^22.5.1",
"@types/react": "^18.2.19",
"@types/react-dom": "^18.2.7",
"postcss": "^8.4.27",
"tailwindcss": "3.3.2",
"typescript": "^5.3.3"
}
}

View File

@@ -0,0 +1,8 @@
/** @type {import('postcss-load-config').Config} */
const config = {
plugins: {
tailwindcss: {},
},
};
export default config;

View File

@@ -0,0 +1,139 @@
"use client";
import { Button } from "@/components/Button";
import { Container } from "@/components/Container";
import { useAccount } from "@/components/JazzAndAuth";
import RatingInput from "@/components/RatingInput";
import { BookReview, ListOfBookReviews } from "@/schema";
import { createImage } from "jazz-browser-media-images";
import { Group, ImageDefinition } from "jazz-tools";
import { useRouter } from "next/navigation";
import { ChangeEvent, useState } from "react";
export default function AddBookReview() {
const { me } = useAccount();
const [title, setTitle] = useState("");
const [author, setAuthor] = useState("");
const [review, setReview] = useState("");
const [rating, setRating] = useState(0);
const [dateRead, setDateRead] = useState(
new Date().toISOString().split("T")[0],
);
const [coverImage, setCoverImage] = useState<ImageDefinition | undefined>();
const router = useRouter();
const onDateChange = (event: ChangeEvent<HTMLInputElement>) => {
const date = new Date(event.currentTarget.value)
.toISOString()
.split("T")[0];
setDateRead(date);
};
const onImageChange = (event: ChangeEvent<HTMLInputElement>) => {
const file = event.currentTarget.files?.[0];
const group = Group.create({ owner: me });
group.addMember("everyone", "reader");
if (file) {
createImage(file, { owner: group }).then((image) => {
setCoverImage(image);
});
}
};
const onSubmit = (event: React.FormEvent<HTMLFormElement>) => {
event.preventDefault();
if (!me?.profile) return;
const bookReview = BookReview.create(
{
title,
author,
review,
rating,
dateRead: new Date(dateRead),
cover: coverImage,
},
{
owner: me.profile._owner,
},
);
if (!me.profile.bookReviews) {
me.profile.bookReviews = ListOfBookReviews.create([], {
owner: me.profile._owner,
});
}
me.profile.bookReviews.push(bookReview);
router.push("/");
};
return (
<Container className="grid max-w-lg gap-8 py-8">
<h1 className="text-lg font-semibold text-black">Add book review</h1>
<form action="" className="grid gap-4" onSubmit={onSubmit}>
<label className="grid gap-1 text-sm text-gray-600">
Cover
<input type="file" onChange={onImageChange} />
</label>
<label className="grid gap-1 text-sm text-gray-600">
Title
<input
className="rounded border border-gray-300 px-2 py-1 shadow-sm"
type="text"
value={title}
required
onChange={(e) => setTitle(e.target.value)}
></input>
</label>
<label className="grid gap-1 text-sm text-gray-600">
Author
<input
className="rounded border border-gray-300 px-2 py-1 shadow-sm"
type="text"
value={author}
required
onChange={(e) => setAuthor(e.target.value)}
></input>
</label>
<label className="grid gap-1 text-sm text-gray-600">
Date read
<input
className="rounded border border-gray-300 px-2 py-1 shadow-sm"
type="date"
value={dateRead}
required
onChange={onDateChange}
/>
</label>
<div className="grid gap-1 text-sm text-gray-600">
Rating
<RatingInput
value={rating}
onChange={(rating) => setRating(rating)}
/>
</div>
<label className="grid gap-1 text-sm text-gray-600">
Review
<textarea
className="rounded border border-gray-300 px-2 py-1 shadow-sm"
value={review}
onChange={(e) => setReview(e.target.value)}
></textarea>
</label>
<Button variant="primary" type="submit">
Add
</Button>
</form>
</Container>
);
}

View File

@@ -0,0 +1,172 @@
"use client";
import { BookCover } from "@/components/BookCover";
import { Container } from "@/components/Container";
import { useCoState } from "@/components/JazzAndAuth";
import Rating from "@/components/Rating";
import RatingInput from "@/components/RatingInput";
import { BookReview } from "@/schema";
import clsx from "clsx";
import { Group, ID } from "jazz-tools";
const BookReviewTitle = ({
bookReview,
readOnly,
}: {
bookReview: BookReview;
readOnly: boolean;
}) => {
const className = "font-serif text-2xl font-bold lg:text-4xl";
if (readOnly) {
return <h1 className={className}>{bookReview.title}</h1>;
}
return (
<input
value={bookReview.title}
placeholder="Book title"
className={clsx(
className,
"w-full rounded border border-transparent px-2 py-1 hover:border-gray-300 hover:shadow-sm",
)}
onChange={(e) => (bookReview.title = e.target.value)}
></input>
);
};
const BookReviewAuthor = ({
bookReview,
readOnly,
}: {
bookReview: BookReview;
readOnly: boolean;
}) => {
const className = "text-gray-700";
if (readOnly) {
return <p className={className}>by {bookReview.author}</p>;
}
return (
<input
value={bookReview.author}
placeholder="Author"
className={clsx(
className,
"w-full rounded border border-transparent px-2 py-1 hover:border-gray-300 hover:shadow-sm",
)}
onChange={(e) => (bookReview.author = e.target.value)}
></input>
);
};
const BookReviewDateRead = ({
bookReview,
readOnly,
}: {
bookReview: BookReview;
readOnly: boolean;
}) => {
const className = "text-gray-700 max-w-[10rem]";
if (readOnly) {
return (
bookReview.dateRead && (
<p className={className}>{bookReview.dateRead.toLocaleDateString()}</p>
)
);
}
return (
<input
type="date"
value={bookReview.dateRead?.toISOString().split("T")[0]}
placeholder="Date read"
className={clsx(
className,
"w-full rounded border border-transparent px-2 py-1 hover:border-gray-300 hover:shadow-sm",
)}
onChange={(e) => {
const date = new Date(e.target.value);
bookReview.dateRead = date;
}}
></input>
);
};
const BookReviewReview = ({
bookReview,
readOnly,
}: {
bookReview: BookReview;
readOnly: boolean;
}) => {
const className = "text-sm leading-relaxed text-gray-600";
if (readOnly) {
if (bookReview.review) {
return <p className={className}>{bookReview.review}</p>;
}
}
return (
<textarea
value={bookReview.review}
placeholder="Write your review here..."
className={clsx(
className,
"w-full rounded border border-transparent px-2 py-1 hover:border-gray-300 hover:shadow-sm",
)}
onChange={(e) => (bookReview.review = e.target.value)}
></textarea>
);
};
const BookReviewRating = ({
bookReview,
readOnly,
}: {
bookReview: BookReview;
readOnly: boolean;
}) => {
const className = "text-2xl sm:mx-0";
if (readOnly) {
return <Rating className={className} rating={bookReview.rating} />;
}
return (
<RatingInput
className={clsx(className, "p-2")}
onChange={(rating) => (bookReview.rating = rating)}
value={bookReview.rating}
/>
);
};
export default function Page({ params }: { params: { slug: string } }) {
const bookReview = useCoState(BookReview, params.slug as ID<BookReview>);
if (!bookReview) return <></>;
const readOnly = !(bookReview._owner.castAs(Group).myRole() === "admin");
return (
<Container className="grid gap-12 py-8">
<div className="flex flex-col gap-6 sm:flex-row md:gap-10">
<div className="w-[180px]">
<BookCover bookReview={bookReview} readOnly={readOnly} />
</div>
<div className="-mx-2 grid max-w-lg flex-1 gap-3 sm:mx-0">
<BookReviewTitle bookReview={bookReview} readOnly={readOnly} />
<BookReviewAuthor bookReview={bookReview} readOnly={readOnly} />
<BookReviewDateRead bookReview={bookReview} readOnly={readOnly} />
<BookReviewRating bookReview={bookReview} readOnly={readOnly} />
<BookReviewReview bookReview={bookReview} readOnly={readOnly} />
</div>
</div>
</Container>
);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -0,0 +1,13 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
:focus {
@apply outline-none;
}
:focus-visible {
@apply ring-2 ring-purple-600/75 dark:ring-2 dark:ring-white/75;
}
}

View File

@@ -0,0 +1,39 @@
import type { Metadata } from "next";
import { Inter } from "next/font/google";
import "./globals.css";
import { JazzAndAuth } from "@/components/JazzAndAuth";
import { Nav } from "@/components/Nav";
import clsx from "clsx";
import { Fraunces } from "next/font/google";
const fraunces = Fraunces({
subsets: ["latin"],
display: "swap",
variable: "--font-fraunces",
});
const inter = Inter({ subsets: ["latin"] });
export const metadata: Metadata = {
title: "Jazz Book Shelf",
description: "Jazz Book Shelf",
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en">
<body className={clsx(inter.className, fraunces.variable)}>
<JazzAndAuth>
<header>
<Nav />
</header>
<main>{children}</main>
</JazzAndAuth>
</body>
</html>
);
}

View File

@@ -0,0 +1,27 @@
"use client";
import { Container } from "@/components/Container";
import { useAccount } from "@/components/JazzAndAuth";
import UserProfile from "@/components/UserProfile";
import { JazzAccount } from "@/schema";
import { ID } from "jazz-tools";
export default function Home() {
const { me } = useAccount();
return (
<Container className="grid gap-12 py-8">
<UserProfile id={me?.id as ID<JazzAccount>} />
<label className="flex flex-wrap items-center gap-3">
Share your profile:
<input
type="text"
className="w-full rounded border p-1"
value={`${window.location.origin}/user/${me?.id}`}
readOnly
/>
</label>
</Container>
);
}

View File

@@ -0,0 +1,14 @@
import { Container } from "@/components/Container";
import UserProfile from "@/components/UserProfile";
import { JazzAccount } from "@/schema";
import { ID } from "jazz-tools";
export default function Page({ params }: { params: { slug: string } }) {
const { slug } = params;
return (
<Container className="py-8">
<UserProfile id={slug as ID<JazzAccount>} />
</Container>
);
}

View File

@@ -0,0 +1,134 @@
import { Button } from "@/components/Button";
import { useAccount } from "@/components/JazzAndAuth";
import PlusIcon from "@/components/icons/PlusIcon";
import { BookReview } from "@/schema";
import clsx from "clsx";
import { createImage } from "jazz-browser-media-images";
import { ProgressiveImg } from "jazz-react";
import { Group, ImageDefinition } from "jazz-tools";
import { ChangeEvent, useRef, useState } from "react";
const BookCoverContainer = ({
children,
className = "",
}: {
children: React.ReactNode;
className?: string;
}) => {
return (
<div className={clsx("h-[240px] lg:h-[260px]", className)}>{children}</div>
);
};
const MockCover = ({ bookReview }: { bookReview: BookReview }) => {
return (
<div className="flex h-full flex-col items-center justify-center gap-3 rounded-l-sm rounded-r-md bg-gray-100 px-3 text-center shadow-lg">
<p className="font-medium">{bookReview.title}</p>
<p className="text-xs">{bookReview.author}</p>
</div>
);
};
export function BookCoverReadOnly({
bookReview,
className,
}: {
bookReview: BookReview;
className?: string;
}) {
if (bookReview.cover) {
return (
<BookCoverContainer className={className}>
<ProgressiveImg image={bookReview.cover}>
{({ src }) => (
<img
className="max-h-full max-w-full rounded-l-sm rounded-r-md shadow-lg"
src={src}
/>
)}
</ProgressiveImg>
</BookCoverContainer>
);
}
return (
<BookCoverContainer className={className}>
<MockCover bookReview={bookReview} />
</BookCoverContainer>
);
}
export function BookCoverInput({ bookReview }: { bookReview: BookReview }) {
const { me } = useAccount();
const inputRef = useRef<HTMLInputElement>(null);
const onImageChange = (event: ChangeEvent<HTMLInputElement>) => {
if (!me?.profile) return;
const file = event.currentTarget.files?.[0];
if (file) {
createImage(file, { owner: me.profile._owner }).then((image) => {
bookReview.cover = image;
});
}
};
const onUploadClick = () => {
inputRef.current?.click();
};
const remove = () => {
bookReview.cover = null;
};
if (bookReview.cover) {
return (
<div className="group relative inline-block">
<BookCoverReadOnly
className="transition-opacity group-hover:opacity-40"
bookReview={bookReview}
/>
<div className="absolute left-0 top-0 hidden h-full w-full items-center justify-center rounded-l-sm rounded-r-md group-hover:flex">
<Button
variant="tertiary"
type="button"
className="shadow"
onClick={remove}
>
Remove
</Button>
</div>
</div>
);
}
return (
<BookCoverContainer className="flex w-[180px] flex-col justify-center rounded-l-sm rounded-r-md bg-gray-100 p-3 shadow-lg">
<button
className="flex h-full w-full flex-col items-center justify-center gap-3 text-gray-500 transition-colors hover:text-gray-600"
type="button"
onClick={onUploadClick}
>
<PlusIcon className="h-10 w-10" />
Upload book cover
</button>
<label className="sr-only">
Cover
<input ref={inputRef} type="file" onChange={onImageChange} />
</label>
</BookCoverContainer>
);
}
export function BookCover({
bookReview,
readOnly,
}: {
bookReview: BookReview;
readOnly?: boolean;
}) {
if (readOnly) return <BookCoverReadOnly bookReview={bookReview} />;
return <BookCoverInput bookReview={bookReview} />;
}

View File

@@ -0,0 +1,30 @@
import { BookCover } from "@/components/BookCover";
import Rating from "@/components/Rating";
import RatingInput from "@/components/RatingInput";
import { BookReview } from "@/schema";
import { Group } from "jazz-tools";
export function BookReviewHeader({ bookReview }: { bookReview: BookReview }) {
const { title, author, rating, review, dateRead } = bookReview;
return (
<div className="grid gap-5">
<div>
<h1 className="mb-1 font-serif text-2xl font-bold md:mb-3 lg:text-4xl">
{title}
</h1>
<p className="text-gray-500">by {author}</p>
</div>
{bookReview._owner.castAs(Group).myRole() === "admin" ? (
<RatingInput
onChange={(rating) => (bookReview.rating = rating)}
value={rating}
/>
) : (
<Rating className="mx-auto text-2xl sm:mx-0" rating={rating} />
)}
</div>
);
}

View File

@@ -0,0 +1,35 @@
"use client";
import { BookCover, BookCoverReadOnly } from "@/components/BookCover";
import { useCoState } from "@/components/JazzAndAuth";
import StarIcon from "@/components/icons/StarIcon";
import { ID } from "jazz-tools";
import Link from "next/link";
import { BookReview } from "../schema";
export function BookReviewThumbnail({ id }: { id: ID<BookReview> }) {
const bookReview = useCoState(BookReview, id);
if (!bookReview) return <></>;
return (
<div className="inline-flex shrink-0 gap-4 rounded border p-4 sm:block sm:space-y-6 sm:border-0 sm:p-0 md:w-[200px]">
<Link href={`/book/${bookReview.id}`} className="sm:block sm:flex-1">
<BookCoverReadOnly bookReview={bookReview} />
</Link>
<div className="flex-1">
<Link href={`/book/${bookReview.id}`}>
<h2 className="mb-1 text-sm font-medium">{bookReview.title}</h2>
</Link>
<div className="mb-2 flex flex-col gap-2 text-sm text-gray-500 sm:flex-row sm:items-center">
<p>{bookReview.author}</p>
<div className="flex items-center gap-0.5 text-xs font-semibold leading-none">
<StarIcon className="-mt-px text-base text-yellow-400" />
{bookReview.rating}
</div>
</div>
</div>
</div>
);
}

View File

@@ -0,0 +1,65 @@
import clsx from "clsx";
import Link from "next/link";
import type { ComponentProps } from "react";
interface Props {
variant?: "primary" | "secondary" | "tertiary";
className?: string;
size?: "sm" | "md" | "lg";
}
interface AnchorProps
extends Props,
React.AnchorHTMLAttributes<HTMLAnchorElement> {
href: string;
}
type ButtonProps = ComponentProps<"button"> & Props;
export function Button(props: AnchorProps | ButtonProps) {
const {
className: customClassName = "",
variant = "primary",
children,
size = "md",
} = props;
const variantClassNames = {
base: "inline-flex gap-2 items-center justify-center rounded-full overflow-hidden transition-colors",
primary:
"bg-purple-300 font-medium text-purple-950 px-4 py-2 rounded-full hover:bg-purple-200",
secondary:
"rounded-full bg-slate-100 font-medium text-slate-600 hover:bg-slate-200",
tertiary: "rounded-full bg-white text-purple-950 font-medium",
};
const sizeClassNames = {
sm: "py-1.5 px-3 text-sm",
md: "py-2 px-5",
lg: "py-2 md:py-2.5 px-6 md:text-lg",
};
const className = clsx(
customClassName,
variantClassNames.base,
variantClassNames[variant],
sizeClassNames[size],
);
if (!!(props as AnchorProps).href) {
const anchorProps = props as AnchorProps;
return (
<Link href={anchorProps.href} className={className}>
{children}
</Link>
);
}
const buttonProps = props as ButtonProps;
return (
<button {...buttonProps} className={className}>
{children}
</button>
);
}

View File

@@ -0,0 +1,13 @@
import clsx from "clsx";
export function Container({
children,
className,
}: {
children: React.ReactNode;
className?: string;
}) {
return (
<div className={clsx("mx-auto max-w-4xl px-4", className)}>{children}</div>
);
}

View File

@@ -0,0 +1,29 @@
"use client";
import { JazzAccount } from "@/schema";
import { DemoAuthBasicUI, createJazzReactApp, useDemoAuth } from "jazz-react";
const Jazz = createJazzReactApp({
AccountSchema: JazzAccount,
});
export const { useAccount, useCoState } = Jazz;
export function JazzAndAuth({ children }: { children: React.ReactNode }) {
const [auth, authState] = useDemoAuth();
return (
<>
<Jazz.Provider
auth={auth}
// replace `you@example.com` with your email as a temporary API key
peer="wss://cloud.jazz.tools/?key=you@example.com"
>
{children}
</Jazz.Provider>
{authState.state !== "signedIn" && (
<DemoAuthBasicUI appName="Jazz Book Shelf" state={authState} />
)}
</>
);
}

View File

@@ -0,0 +1,26 @@
"use client";
import { Button } from "@/components/Button";
import { Container } from "@/components/Container";
import { useAccount } from "@/components/JazzAndAuth";
import Link from "next/link";
export function Nav() {
const { me, logOut } = useAccount();
return (
<nav className="border-b py-3">
<Container className="flex items-center justify-between gap-12 text-sm">
<Link href="/" className="font-serif text-lg font-semibold">
Jazz Book Shelf
</Link>
<div className="flex items-center gap-4 text-sm">
<p>{me?.profile?.name}</p>
<Button variant="secondary" onClick={logOut}>
Log out
</Button>
</div>
</Container>
</nav>
);
}

View File

@@ -0,0 +1,21 @@
import StarIcon from "@/components/icons/StarIcon";
import StarOutlineIcon from "@/components/icons/StarOutlineIcon";
export default function Rating({
rating,
className = "",
}: {
rating?: number;
className?: string;
}) {
const max = 5;
const outline = max - (rating || 0);
return (
<div className={`inline-flex gap-0.5 text-yellow-400 ${className}`}>
{rating ? [...Array(rating)].map((x, i) => <StarIcon key={i} />) : <></>}
{[...Array(outline)].map((x, i) => (
<StarOutlineIcon key={i} />
))}
</div>
);
}

View File

@@ -0,0 +1,47 @@
"use client";
import StarIcon from "@/components/icons/StarIcon";
import StarOutlineIcon from "@/components/icons/StarOutlineIcon";
import clsx from "clsx";
interface RatingInputProps {
value?: number;
onChange: (value: number) => void;
className?: string;
}
export default function RatingInput({
value = 0,
onChange,
className,
}: RatingInputProps) {
const handleChange = (newRating: number) => {
onChange(newRating > 5 ? 5 : newRating);
};
return (
<div className={clsx(className, "flex gap-0.5 text-2xl text-yellow-400")}>
{[...Array(5)].map((_, i) => {
return i < value ? (
<button
type="button"
className="focus:outline-none"
onClick={() => handleChange(i + 1)}
key={i}
>
<StarIcon />
</button>
) : (
<button
type="button"
className="focus:outline-none"
onClick={() => handleChange(i + 1)}
key={i}
>
<StarOutlineIcon />
</button>
);
})}
</div>
);
}

View File

@@ -0,0 +1,39 @@
"use client";
import { BookReviewThumbnail } from "@/components/BookReviewThumbnail";
import { Button } from "@/components/Button";
import { useCoState } from "@/components/JazzAndAuth";
import { JazzAccount, JazzProfile, ListOfBookReviews } from "@/schema";
import { Group, ID } from "jazz-tools";
export default function UserProfile({ id }: { id: ID<JazzAccount> }) {
const user = useCoState(JazzAccount, id);
const profile = useCoState(JazzProfile, user?.profile?.id);
const bookReviews = useCoState(
ListOfBookReviews,
user?.profile?._refs.bookReviews?.id,
[{}],
);
return (
<div className="grid gap-4">
<div className="flex items-center justify-between">
<h1 className="font-serif text-lg font-medium sm:text-2xl">
{profile?.name}&apos;s book shelf
</h1>
{profile?._owner.castAs(Group).myRole() === "admin" && (
<Button href="/add" variant="primary">
Add book
</Button>
)}
</div>
<div className="grid gap-4 md:grid-cols-4">
{bookReviews?.map((bookReview) => (
<BookReviewThumbnail key={bookReview.id} id={bookReview.id} />
))}
</div>
</div>
);
}

View File

@@ -0,0 +1,20 @@
export default function PlusIcon({ className }: { className?: string }) {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
strokeWidth={1.5}
stroke="currentColor"
className={className}
width="1em"
height="1em"
>
<path
strokeLinecap="round"
strokeLinejoin="round"
d="M12 4.5v15m7.5-7.5h-15"
/>
</svg>
);
}

View File

@@ -0,0 +1,18 @@
export default function StarIcon({ className }: { className?: string }) {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="currentColor"
className={className}
width="1em"
height="1em"
>
<path
fillRule="evenodd"
d="M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.006 5.404.434c1.164.093 1.636 1.545.749 2.305l-4.117 3.527 1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354 7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.434 2.082-5.005Z"
clipRule="evenodd"
/>
</svg>
);
}

View File

@@ -0,0 +1,20 @@
export default function StarOutlineIcon({ className }: { className?: string }) {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
strokeWidth={1.5}
stroke="currentColor"
className={className}
width="1em"
height="1em"
>
<path
strokeLinecap="round"
strokeLinejoin="round"
d="M11.48 3.499a.562.562 0 0 1 1.04 0l2.125 5.111a.563.563 0 0 0 .475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 0 0-.182.557l1.285 5.385a.562.562 0 0 1-.84.61l-4.725-2.885a.562.562 0 0 0-.586 0L6.982 20.54a.562.562 0 0 1-.84-.61l1.285-5.386a.562.562 0 0 0-.182-.557l-4.204-3.602a.562.562 0 0 1 .321-.988l5.518-.442a.563.563 0 0 0 .475-.345L11.48 3.5Z"
/>
</svg>
);
}

View File

@@ -0,0 +1,37 @@
import {
Account,
CoList,
CoMap,
Encoders,
ImageDefinition,
Profile,
co,
} from "jazz-tools";
export class BookReview extends CoMap {
title = co.string;
author = co.string;
rating = co.number;
dateRead? = co.encoded(Encoders.Date);
review? = co.string;
cover? = co.ref(ImageDefinition, { optional: true });
}
export class ListOfBookReviews extends CoList.Of(co.ref(BookReview)) {}
/** The profile is an app-specific per-user public `CoMap`
* where you can store top-level objects for that user */
export class JazzProfile extends Profile {
bookReviews = co.ref(ListOfBookReviews);
}
export class JazzAccount extends Account {
profile = co.ref(JazzProfile);
/** The account migration is run on account creation and on every log-in.
* You can use it to set up the account root and any other initial CoValues you need.
*/
migrate(this: JazzAccount, creationProps?: { name: string }) {
super.migrate(creationProps);
}
}

View File

@@ -0,0 +1,25 @@
import type { Config } from "tailwindcss";
const colors = require("tailwindcss/colors");
const config: Config = {
content: [
"./src/pages/**/*.{js,ts,jsx,tsx,mdx}",
"./src/components/**/*.{js,ts,jsx,tsx,mdx}",
"./src/app/**/*.{js,ts,jsx,tsx,mdx}",
],
theme: {
extend: {
fontFamily: {
serif: ["var(--font-fraunces)"],
},
colors: {
purple: {
...colors.purple,
950: "#211f5a",
},
},
},
},
plugins: [],
};
export default config;

View File

@@ -0,0 +1,28 @@
{
"compilerOptions": {
"target": "ES2020",
"useDefineForClassFields": true,
"lib": ["ES2023", "DOM", "DOM.Iterable"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./src/*"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
}

1
examples/chat-clerk/.env Normal file
View File

@@ -0,0 +1 @@
VITE_CLERK_PUBLISHABLE_KEY=pk_test_ZXZpZGVudC1kYW5lLTg5LmNsZXJrLmFjY291bnRzLmRldiQ

26
examples/chat-clerk/.gitignore vendored Normal file
View File

@@ -0,0 +1,26 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
sync-db/

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
FROM caddy:2.7.3-alpine
LABEL org.opencontainers.image.source="https://github.com/gardencmp/jazz"
COPY ./dist /usr/share/caddy/

View File

@@ -0,0 +1,42 @@
# Jazz Chat Example (with Clerk auth)
Live version: [https://chat-clerk-demo.jazz.tools](https://chat-clerk-demo.jazz.tools)
## Installing & running the example locally
(this requires `pnpm` to be installed, see [https://pnpm.io/installation](https://pnpm.io/installation))
Start by checking out `jazz`
```bash
git clone https://github.com/gardencmp/jazz.git
cd jazz/examples/chat-clerk
pnpm pack --pack-destination /tmp
mkdir -p ~/jazz-examples/chat-clerk # or any other directory
tar -xf /tmp/jazz-example-chat-* --strip-components 1 -C ~/jazz-examples/chat-clerk
cd ~/jazz-examples/chat-clerk
```
This ensures that you have the example app without git history and independent of the Jazz multi-package monorepo.
Install dependencies:
```bash
pnpm install
```
Start the dev server:
```bash
pnpm dev
```
## Questions / problems / feedback
If you have feedback, let us know on [Discord](https://discord.gg/utDMjHYg42) or open an issue or PR to fix something that seems wrong.
## Configuration: sync server
By default, the example app uses [Jazz Cloud](https://jazz.tools/cloud) (`wss://cloud.jazz.tools`) - so cross-device use, invites and collaboration should just work.
You can also run a local sync server by running `npx jazz-run sync` and adding the query param `?sync=ws://localhost:4200` to the URL of the example app (for example: `http://localhost:5173/?peer=ws://localhost:4200`), or by setting the `sync` parameter of the `<Jazz.Provider>` provider component in [./src/2_main.tsx](./src/2_main.tsx).

View File

@@ -0,0 +1,14 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/png" href="/jazz-logo.png" />
<link rel="stylesheet" href="/src/index.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Jazz Chat Example</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/app.tsx"></script>
</body>
</html>

View File

@@ -0,0 +1,56 @@
job "chat$BRANCH_SUFFIX" {
region = "global"
datacenters = ["*"]
group "static" {
count = 4
network {
port "http" {
to = 80
}
}
constraint {
attribute = "${node.class}"
operator = "="
value = "cloud"
}
spread {
attribute = "${node.datacenter}"
weight = 100
}
constraint {
distinct_hosts = true
}
task "server" {
driver = "docker"
config {
image = "$DOCKER_TAG"
ports = ["http"]
auth = {
username = "$DOCKER_USER"
password = "$DOCKER_PASSWORD"
}
}
service {
tags = ["public"]
name = "chat$BRANCH_SUFFIX"
port = "http"
provider = "consul"
}
resources {
cpu = 50 # MHz
memory = 50 # MB
}
}
}
}
# deploy bump 4

View File

@@ -0,0 +1,47 @@
{
"name": "jazz-example-chat-clerk",
"private": true,
"version": "0.0.99",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"format-and-lint": "biome check .",
"format-and-lint:fix": "biome check . --write",
"preview": "vite preview"
},
"dependencies": {
"@clerk/clerk-react": "^5.4.1",
"@radix-ui/react-checkbox": "^1.0.4",
"@radix-ui/react-slot": "^1.0.2",
"@radix-ui/react-toast": "^1.1.4",
"class-variance-authority": "^0.7.0",
"clsx": "^2.0.0",
"cojson": "workspace:0.8.21",
"hash-slash": "workspace:0.2.1",
"jazz-react": "workspace:0.8.22",
"jazz-react-auth-clerk": "workspace:0.8.22",
"jazz-tools": "workspace:0.8.21",
"lucide-react": "^0.274.0",
"qrcode": "^1.5.3",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router": "^6.16.0",
"react-router-dom": "^6.16.0",
"react-use": "^17.4.0",
"tailwind-merge": "^1.14.0",
"tailwindcss-animate": "^1.0.7",
"uniqolor": "^1.1.0"
},
"devDependencies": {
"@types/qrcode": "^1.5.1",
"@types/react": "^18.2.19",
"@types/react-dom": "^18.2.7",
"@vitejs/plugin-react-swc": "^3.3.2",
"autoprefixer": "^10.4.14",
"postcss": "^8.4.27",
"tailwindcss": "3.3.2",
"typescript": "^5.3.3",
"vite": "^5.0.10"
}
}

View File

@@ -0,0 +1,6 @@
export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

@@ -0,0 +1,31 @@
import { useIframeHashRouter } from "hash-slash";
import { Group, ID } from "jazz-tools";
import { ChatScreen } from "./chatScreen.tsx";
import { useAccount } from "./main.tsx";
import { Chat } from "./schema.ts";
import { AppContainer, TopBar } from "./ui.tsx";
export function App() {
const { me, logOut } = useAccount();
const router = useIframeHashRouter();
const createChat = () => {
if (!me) return;
const group = Group.create({ owner: me });
group.addMember("everyone", "writer");
const chat = Chat.create([], { owner: group });
router.navigate("/#/chat/" + chat.id);
};
return (
<AppContainer>
<TopBar>
{me?.profile?.name} · <button onClick={logOut}>Log out</button>
</TopBar>
{router.route({
"/": () => createChat() as never,
"/chat/:id": (id) => <ChatScreen chatID={id as ID<Chat>} />,
})}
</AppContainer>
);
}

View File

@@ -0,0 +1,43 @@
import { ID } from "jazz-tools";
import { useCoState } from "./main.tsx";
import { Chat, Message } from "./schema.ts";
import {
BubbleBody,
BubbleContainer,
BubbleInfo,
ChatContainer,
ChatInput,
EmptyChatMessage,
} from "./ui.tsx";
export function ChatScreen(props: { chatID: ID<Chat> }) {
const chat = useCoState(Chat, props.chatID, [{}]);
return chat ? (
<ChatContainer>
{chat.length > 0 ? (
chat.map((msg) => <ChatBubble msg={msg} key={msg.id} />)
) : (
<EmptyChatMessage />
)}
<ChatInput
onSubmit={(text) => {
chat.push(Message.create({ text }, { owner: chat._owner }));
}}
/>
</ChatContainer>
) : (
<div>Loading...</div>
);
}
function ChatBubble(props: { msg: Message }) {
const lastEdit = props.msg._edits.text;
return (
<BubbleContainer fromMe={lastEdit.by?.isMe}>
<BubbleBody>{props.msg.text}</BubbleBody>
<BubbleInfo by={lastEdit.by?.profile?.name} madeAt={lastEdit.madeAt} />
</BubbleContainer>
);
}

Some files were not shown because too many files have changed in this diff Show More