jazz-tools 0.18.4 → 0.18.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +54 -54
- package/CHANGELOG.md +28 -0
- package/dist/better-auth/auth/client.d.ts.map +1 -1
- package/dist/better-auth/auth/client.js +7 -1
- package/dist/better-auth/auth/client.js.map +1 -1
- package/dist/better-auth/auth/react.d.ts +0 -2142
- package/dist/better-auth/auth/react.d.ts.map +1 -1
- package/dist/better-auth/auth/react.js +2 -14
- package/dist/better-auth/auth/react.js.map +1 -1
- package/dist/better-auth/auth/server.d.ts +21 -1
- package/dist/better-auth/auth/server.d.ts.map +1 -1
- package/dist/better-auth/auth/server.js +83 -27
- package/dist/better-auth/auth/server.js.map +1 -1
- package/dist/better-auth/auth/tests/react.test.d.ts +2 -0
- package/dist/better-auth/auth/tests/react.test.d.ts.map +1 -0
- package/dist/browser/createBrowserContext.d.ts.map +1 -1
- package/dist/browser/index.js +7 -0
- package/dist/browser/index.js.map +1 -1
- package/dist/{chunk-LHQQZH7I.js → chunk-45VKEOXG.js} +123 -81
- package/dist/chunk-45VKEOXG.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/inspector/{custom-element-WCY6D3QJ.js → custom-element-IBHKHN27.js} +19 -69
- package/dist/inspector/custom-element-IBHKHN27.js.map +1 -0
- package/dist/inspector/index.d.ts +5 -1
- package/dist/inspector/index.d.ts.map +1 -1
- package/dist/inspector/index.js +18 -17
- package/dist/inspector/index.js.map +1 -1
- package/dist/inspector/register-custom-element.js +1 -1
- package/dist/inspector/viewer/new-app.d.ts +0 -3
- package/dist/inspector/viewer/new-app.d.ts.map +1 -1
- package/dist/react-core/index.js +3 -1
- package/dist/react-core/index.js.map +1 -1
- package/dist/testing.js +2 -2
- package/dist/testing.js.map +1 -1
- package/dist/tools/coValues/inbox.d.ts +5 -5
- package/dist/tools/coValues/inbox.d.ts.map +1 -1
- package/dist/tools/implementation/anonymousJazzAgent.d.ts +1 -1
- package/dist/tools/implementation/anonymousJazzAgent.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/coExport.d.ts +2 -0
- package/dist/tools/implementation/zodSchema/coExport.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/typeConverters/CoFieldSchemaInit.d.ts +4 -0
- package/dist/tools/implementation/zodSchema/typeConverters/CoFieldSchemaInit.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/typeConverters/TypeOfZodSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/unionUtils.d.ts.map +1 -1
- package/dist/worker/index.d.ts +8 -2
- package/dist/worker/index.d.ts.map +1 -1
- package/dist/worker/index.js +7 -3
- package/dist/worker/index.js.map +1 -1
- package/package.json +5 -4
- package/src/better-auth/auth/client.ts +8 -2
- package/src/better-auth/auth/react.tsx +2 -51
- package/src/better-auth/auth/server.ts +132 -31
- package/src/better-auth/auth/tests/client.test.ts +92 -4
- package/src/better-auth/auth/tests/react.test.tsx +43 -0
- package/src/better-auth/auth/tests/server.test.ts +317 -51
- package/src/browser/createBrowserContext.ts +8 -0
- package/src/inspector/custom-element.tsx +1 -1
- package/src/inspector/index.tsx +44 -0
- package/src/inspector/viewer/new-app.tsx +0 -18
- package/src/tools/coValues/inbox.ts +190 -108
- package/src/tools/implementation/anonymousJazzAgent.ts +1 -1
- package/src/tools/implementation/zodSchema/coExport.ts +2 -0
- package/src/tools/implementation/zodSchema/typeConverters/CoFieldSchemaInit.ts +8 -1
- package/src/tools/implementation/zodSchema/typeConverters/TypeOfZodSchema.ts +0 -1
- package/src/tools/implementation/zodSchema/unionUtils.ts +0 -1
- package/src/tools/testing.ts +1 -1
- package/src/tools/tests/coFeed.test.ts +33 -22
- package/src/tools/tests/coList.test-d.ts +17 -0
- package/src/tools/tests/coList.test.ts +6 -4
- package/src/tools/tests/coMap.record.test-d.ts +18 -0
- package/src/tools/tests/coMap.test-d.ts +15 -0
- package/src/tools/tests/coMap.test.ts +13 -5
- package/src/tools/tests/exportImport.test.ts +3 -1
- package/src/tools/tests/groupsAndAccounts.test.ts +56 -44
- package/src/tools/tests/inbox.test.ts +293 -31
- package/src/worker/index.ts +15 -5
- package/tsup.config.ts +1 -1
- package/dist/chunk-LHQQZH7I.js.map +0 -1
- package/dist/inspector/custom-element-WCY6D3QJ.js.map +0 -1
- package/src/inspector/index.ts +0 -23
package/.turbo/turbo-build.log
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
> jazz-tools@0.18.
|
2
|
+
> jazz-tools@0.18.6 build /home/runner/_work/jazz/jazz/packages/jazz-tools
|
3
3
|
> tsup && pnpm types && pnpm build:svelte
|
4
4
|
|
5
5
|
[34mCLI[39m Building entry: {"index":"src/index.ts","testing":"src/testing.ts"}
|
@@ -10,7 +10,7 @@
|
|
10
10
|
[34mCLI[39m Using tsconfig: tsconfig.json
|
11
11
|
[34mCLI[39m Building entry: {"index":"src/expo/index.ts","testing":"src/expo/testing.ts","crypto":"src/expo/crypto.ts"}
|
12
12
|
[34mCLI[39m Using tsconfig: tsconfig.json
|
13
|
-
[34mCLI[39m Building entry: {"index":"src/inspector/index.
|
13
|
+
[34mCLI[39m Building entry: {"index":"src/inspector/index.tsx"}
|
14
14
|
[34mCLI[39m Using tsconfig: tsconfig.json
|
15
15
|
[34mCLI[39m Building entry: {"register-custom-element":"src/inspector/register-custom-element.ts"}
|
16
16
|
[34mCLI[39m Using tsconfig: tsconfig.json
|
@@ -107,93 +107,93 @@
|
|
107
107
|
[34mESM[39m Build start
|
108
108
|
[34mCLI[39m Cleaning output folder
|
109
109
|
[34mESM[39m Build start
|
110
|
-
[32mESM[39m [1mdist/tiptap/index.js [22m[32m564.00 B[39m
|
111
|
-
[32mESM[39m [1mdist/tiptap/index.js.map [22m[32m1.21 KB[39m
|
112
|
-
[32mESM[39m ⚡️ Build success in 23ms
|
113
110
|
[32mESM[39m [1mdist/react/ssr.js [22m[32m688.00 B[39m
|
114
111
|
[32mESM[39m [1mdist/react/ssr.js.map [22m[32m1.12 KB[39m
|
115
|
-
[32mESM[39m ⚡️ Build success in
|
116
|
-
[32mESM[39m [1mdist/
|
117
|
-
[32mESM[39m [1mdist/
|
112
|
+
[32mESM[39m ⚡️ Build success in 19ms
|
113
|
+
[32mESM[39m [1mdist/tiptap/index.js [22m[32m564.00 B[39m
|
114
|
+
[32mESM[39m [1mdist/tiptap/index.js.map [22m[32m1.21 KB[39m
|
115
|
+
[32mESM[39m ⚡️ Build success in 15ms
|
116
|
+
[32mESM[39m [1mdist/worker/index.js [22m[32m2.42 KB[39m
|
117
|
+
[32mESM[39m [1mdist/worker/index.js.map [22m[32m5.08 KB[39m
|
118
|
+
[32mESM[39m ⚡️ Build success in 15ms
|
119
|
+
[32mESM[39m [1mdist/expo/index.js [22m[32m4.68 KB[39m
|
120
|
+
[32mESM[39m [1mdist/expo/crypto.js [22m[32m153.00 B[39m
|
121
|
+
[32mESM[39m [1mdist/expo/testing.js [22m[32m112.00 B[39m
|
122
|
+
[32mESM[39m [1mdist/expo/index.js.map [22m[32m10.23 KB[39m
|
123
|
+
[32mESM[39m [1mdist/expo/crypto.js.map [22m[32m189.00 B[39m
|
124
|
+
[32mESM[39m [1mdist/expo/testing.js.map [22m[32m168.00 B[39m
|
118
125
|
[32mESM[39m ⚡️ Build success in 24ms
|
126
|
+
[32mESM[39m [1mdist/better-auth/auth/client.js [22m[32m4.44 KB[39m
|
127
|
+
[32mESM[39m [1mdist/better-auth/auth/server.js [22m[32m8.18 KB[39m
|
128
|
+
[32mESM[39m [1mdist/better-auth/auth/react.js [22m[32m799.00 B[39m
|
129
|
+
[32mESM[39m [1mdist/better-auth/auth/client.js.map [22m[32m8.24 KB[39m
|
130
|
+
[32mESM[39m [1mdist/better-auth/auth/react.js.map [22m[32m2.04 KB[39m
|
131
|
+
[32mESM[39m [1mdist/better-auth/auth/server.js.map [22m[32m15.03 KB[39m
|
132
|
+
[32mESM[39m ⚡️ Build success in 17ms
|
119
133
|
[32mESM[39m [1mdist/media/index.js [22m[32m236.00 B[39m
|
120
134
|
[32mESM[39m [1mdist/media/index.browser.js [22m[32m2.79 KB[39m
|
121
|
-
[32mESM[39m [1mdist/media/index.native.js [22m[32m2.90 KB[39m
|
122
135
|
[32mESM[39m [1mdist/media/index.server.js [22m[32m2.95 KB[39m
|
123
136
|
[32mESM[39m [1mdist/media/chunk-W3S526L3.js [22m[32m6.47 KB[39m
|
137
|
+
[32mESM[39m [1mdist/media/index.native.js [22m[32m2.90 KB[39m
|
124
138
|
[32mESM[39m [1mdist/media/index.js.map [22m[32m71.00 B[39m
|
125
139
|
[32mESM[39m [1mdist/media/index.browser.js.map [22m[32m6.15 KB[39m
|
126
|
-
[32mESM[39m [1mdist/media/index.native.js.map [22m[32m6.09 KB[39m
|
127
140
|
[32mESM[39m [1mdist/media/index.server.js.map [22m[32m6.37 KB[39m
|
128
141
|
[32mESM[39m [1mdist/media/chunk-W3S526L3.js.map [22m[32m16.57 KB[39m
|
129
|
-
[32mESM[39m
|
130
|
-
[32mESM[39m
|
131
|
-
[32mESM[39m [1mdist/
|
132
|
-
[32mESM[39m [1mdist/
|
133
|
-
[32mESM[39m
|
134
|
-
[32mESM[39m [1mdist/better-auth/auth/server.js.map [22m[32m10.66 KB[39m
|
135
|
-
[32mESM[39m [1mdist/better-auth/auth/client.js.map [22m[32m8.12 KB[39m
|
136
|
-
[32mESM[39m ⚡️ Build success in 24ms
|
142
|
+
[32mESM[39m [1mdist/media/index.native.js.map [22m[32m6.09 KB[39m
|
143
|
+
[32mESM[39m ⚡️ Build success in 36ms
|
144
|
+
[32mESM[39m [1mdist/browser/index.js [22m[32m13.64 KB[39m
|
145
|
+
[32mESM[39m [1mdist/browser/index.js.map [22m[32m29.14 KB[39m
|
146
|
+
[32mESM[39m ⚡️ Build success in 37ms
|
137
147
|
[32mESM[39m [1mdist/react-native/index.js [22m[32m2.53 KB[39m
|
138
148
|
[32mESM[39m [1mdist/react-native/testing.js [22m[32m120.00 B[39m
|
139
149
|
[32mESM[39m [1mdist/react-native/crypto.js [22m[32m161.00 B[39m
|
140
150
|
[32mESM[39m [1mdist/react-native/index.js.map [22m[32m5.68 KB[39m
|
141
151
|
[32mESM[39m [1mdist/react-native/testing.js.map [22m[32m176.00 B[39m
|
142
152
|
[32mESM[39m [1mdist/react-native/crypto.js.map [22m[32m197.00 B[39m
|
143
|
-
[32mESM[39m ⚡️ Build success in
|
144
|
-
[32mESM[39m [1mdist/browser/index.js [22m[32m13.44 KB[39m
|
145
|
-
[32mESM[39m [1mdist/browser/index.js.map [22m[32m28.70 KB[39m
|
146
|
-
[32mESM[39m ⚡️ Build success in 39ms
|
147
|
-
[32mESM[39m [1mdist/expo/index.js [22m[32m4.68 KB[39m
|
148
|
-
[32mESM[39m [1mdist/expo/testing.js [22m[32m112.00 B[39m
|
149
|
-
[32mESM[39m [1mdist/expo/crypto.js [22m[32m153.00 B[39m
|
150
|
-
[32mESM[39m [1mdist/expo/index.js.map [22m[32m10.23 KB[39m
|
151
|
-
[32mESM[39m [1mdist/expo/testing.js.map [22m[32m168.00 B[39m
|
152
|
-
[32mESM[39m [1mdist/expo/crypto.js.map [22m[32m189.00 B[39m
|
153
|
-
[32mESM[39m ⚡️ Build success in 38ms
|
154
|
-
[32mESM[39m [1mdist/react-native-core/testing.js [22m[32m119.00 B[39m
|
153
|
+
[32mESM[39m ⚡️ Build success in 34ms
|
155
154
|
[32mESM[39m [1mdist/react-native-core/index.js [22m[32m17.90 KB[39m
|
155
|
+
[32mESM[39m [1mdist/react-native-core/testing.js [22m[32m119.00 B[39m
|
156
156
|
[32mESM[39m [1mdist/react-native-core/crypto.js [22m[32m2.10 KB[39m
|
157
|
-
[32mESM[39m [1mdist/react-native-core/testing.js.map [22m[32m175.00 B[39m
|
158
157
|
[32mESM[39m [1mdist/react-native-core/index.js.map [22m[32m36.66 KB[39m
|
158
|
+
[32mESM[39m [1mdist/react-native-core/testing.js.map [22m[32m175.00 B[39m
|
159
159
|
[32mESM[39m [1mdist/react-native-core/crypto.js.map [22m[32m4.25 KB[39m
|
160
|
-
[32mESM[39m ⚡️ Build success in
|
161
|
-
[32mESM[39m [1mdist/
|
160
|
+
[32mESM[39m ⚡️ Build success in 38ms
|
161
|
+
[32mESM[39m [1mdist/prosemirror/index.js [22m[32m77.63 KB[39m
|
162
|
+
[32mESM[39m [1mdist/prosemirror/index.js.map [22m[32m306.98 KB[39m
|
163
|
+
[32mESM[39m ⚡️ Build success in 40ms
|
162
164
|
[32mESM[39m [1mdist/react/testing.js [22m[32m122.00 B[39m
|
165
|
+
[32mESM[39m [1mdist/react/index.js [22m[32m24.66 KB[39m
|
163
166
|
[32mESM[39m [1mdist/react/testing.js.map [22m[32m165.00 B[39m
|
164
167
|
[32mESM[39m [1mdist/react/index.js.map [22m[32m53.43 KB[39m
|
165
|
-
[32mESM[39m ⚡️ Build success in
|
166
|
-
[32mESM[39m [1mdist/
|
167
|
-
[32mESM[39m [1mdist/
|
168
|
-
[32mESM[39m ⚡️ Build success in
|
169
|
-
[32mESM[39m [1mdist/inspector/index.js [22m[32m61.52 KB[39m
|
170
|
-
[32mESM[39m [1mdist/inspector/index.js.map [22m[32m109.98 KB[39m
|
171
|
-
[32mESM[39m ⚡️ Build success in 70ms
|
172
|
-
[32mESM[39m [1mdist/testing.js [22m[32m7.17 KB[39m
|
168
|
+
[32mESM[39m ⚡️ Build success in 40ms
|
169
|
+
[32mESM[39m [1mdist/inspector/index.js [22m[32m61.57 KB[39m
|
170
|
+
[32mESM[39m [1mdist/inspector/index.js.map [22m[32m110.11 KB[39m
|
171
|
+
[32mESM[39m ⚡️ Build success in 60ms
|
173
172
|
[32mESM[39m [1mdist/index.js [22m[32m26.13 KB[39m
|
174
|
-
[32mESM[39m [1mdist/chunk-
|
173
|
+
[32mESM[39m [1mdist/chunk-45VKEOXG.js [22m[32m167.19 KB[39m
|
174
|
+
[32mESM[39m [1mdist/testing.js [22m[32m7.17 KB[39m
|
175
175
|
[32mESM[39m [1mdist/testing.js.map [22m[32m14.10 KB[39m
|
176
176
|
[32mESM[39m [1mdist/index.js.map [22m[32m52.92 KB[39m
|
177
|
-
[32mESM[39m [1mdist/chunk-
|
178
|
-
[32mESM[39m ⚡️ Build success in
|
179
|
-
[32mESM[39m [1mdist/react-core/chunk-7DYMJ74I.js [22m[32m279.00 B[39m
|
177
|
+
[32mESM[39m [1mdist/chunk-45VKEOXG.js.map [22m[32m397.84 KB[39m
|
178
|
+
[32mESM[39m ⚡️ Build success in 82ms
|
180
179
|
[32mESM[39m [1mdist/react-core/testing.js [22m[32m1.17 KB[39m
|
181
|
-
[32mESM[39m [1mdist/react-core/
|
182
|
-
[32mESM[39m [1mdist/react-core/
|
180
|
+
[32mESM[39m [1mdist/react-core/chunk-7DYMJ74I.js [22m[32m279.00 B[39m
|
181
|
+
[32mESM[39m [1mdist/react-core/index.js [22m[32m143.64 KB[39m
|
183
182
|
[32mESM[39m [1mdist/react-core/testing.js.map [22m[32m1.82 KB[39m
|
184
|
-
[32mESM[39m [1mdist/react-core/
|
185
|
-
[32mESM[39m
|
183
|
+
[32mESM[39m [1mdist/react-core/chunk-7DYMJ74I.js.map [22m[32m533.00 B[39m
|
184
|
+
[32mESM[39m [1mdist/react-core/index.js.map [22m[32m391.48 KB[39m
|
185
|
+
[32mESM[39m ⚡️ Build success in 79ms
|
186
186
|
[32mESM[39m [1mdist/inspector/register-custom-element.js [22m[32m218.00 B[39m
|
187
187
|
[32mESM[39m [1mdist/inspector/register-custom-element.js.map [22m[32m314.00 B[39m
|
188
|
-
[32mESM[39m [1mdist/inspector/custom-element-
|
189
|
-
[32mESM[39m [1mdist/inspector/custom-element-
|
190
|
-
[32mESM[39m ⚡️ Build success in
|
188
|
+
[32mESM[39m [1mdist/inspector/custom-element-IBHKHN27.js [22m[32m1.53 MB[39m
|
189
|
+
[32mESM[39m [1mdist/inspector/custom-element-IBHKHN27.js.map [22m[32m2.35 MB[39m
|
190
|
+
[32mESM[39m ⚡️ Build success in 117ms
|
191
191
|
|
192
|
-
> jazz-tools@0.18.
|
192
|
+
> jazz-tools@0.18.6 types /home/runner/_work/jazz/jazz/packages/jazz-tools
|
193
193
|
> tsc --outDir dist
|
194
194
|
|
195
195
|
|
196
|
-
> jazz-tools@0.18.
|
196
|
+
> jazz-tools@0.18.6 build:svelte /home/runner/_work/jazz/jazz/packages/jazz-tools
|
197
197
|
> rm -rf dist/svelte && svelte-package -i src/svelte -o dist/svelte --tsconfig tsconfig.svelte.json
|
198
198
|
|
199
199
|
src/svelte -> dist/svelte
|
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,33 @@
|
|
1
1
|
# jazz-tools
|
2
2
|
|
3
|
+
## 0.18.6
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- 975d1c3: Fixed the startWorker type to return a shallowly-loaded worker account.
|
8
|
+
- ccbb795: Add skipInboxLoad option to startWorker
|
9
|
+
- 0dae338: Add concurrency limit on the Inbox subscribe, and simplify the failed messages management
|
10
|
+
- 934679c: feat: Better Auth EmailOTP plugin is now supported
|
11
|
+
- 28defd0: Fix peer role to be client when connecting the test accounts to the test sync server
|
12
|
+
- e0f17ed: Fix the react dependency error when loading the inspector as custom element
|
13
|
+
- 88ef339: fix: removed unwanted browser dependency in order to make better-auth provider works on react-native
|
14
|
+
- Updated dependencies [9e792c7]
|
15
|
+
- cojson@0.18.6
|
16
|
+
- cojson-storage-indexeddb@0.18.6
|
17
|
+
- cojson-transport-ws@0.18.6
|
18
|
+
|
19
|
+
## 0.18.5
|
20
|
+
|
21
|
+
### Patch Changes
|
22
|
+
|
23
|
+
- ff35d8c: fix: accountID property presence on typescript for Better Auth user's shape
|
24
|
+
- f23a7a7: fix: Jazz credentials were not properly retrieved during SSO flows in Better Auth
|
25
|
+
- f5d8424: Fallback to random session when running Jazz in a browser without navigator.lock support
|
26
|
+
- 4e976b8: Added the co.input convenience type, to easily extract the create payload type.
|
27
|
+
- cojson@0.18.5
|
28
|
+
- cojson-storage-indexeddb@0.18.5
|
29
|
+
- cojson-transport-ws@0.18.5
|
30
|
+
|
3
31
|
## 0.18.4
|
4
32
|
|
5
33
|
### Patch Changes
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/better-auth/auth/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EAEjB,OAAO,EACP,eAAe,EAChB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/better-auth/auth/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EAEjB,OAAO,EACP,eAAe,EAChB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAS9C;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB;;wBAmBC,UAAU,CAAC,OAAO,UAAU,CAAC;;;sCAIvB,eAAe,CAAC,OAAO,CAAC;4CAGlB,iBAAiB;;;;;;;;;;;CA4H1D,CAAC"}
|
@@ -1,4 +1,10 @@
|
|
1
1
|
// src/better-auth/auth/client.ts
|
2
|
+
var SIGNUP_URLS = [
|
3
|
+
"/sign-up",
|
4
|
+
"/sign-in/social",
|
5
|
+
"/sign-in/oauth2",
|
6
|
+
"/email-otp/send-verification-otp"
|
7
|
+
];
|
2
8
|
var jazzPluginClient = () => {
|
3
9
|
let jazzContext;
|
4
10
|
let authSecretStorage;
|
@@ -51,7 +57,7 @@ var jazzPluginClient = () => {
|
|
51
57
|
name: "jazz-plugin",
|
52
58
|
hooks: {
|
53
59
|
async onRequest(context) {
|
54
|
-
if (
|
60
|
+
if (SIGNUP_URLS.some((url) => context.url.toString().includes(url))) {
|
55
61
|
const credentials = await authSecretStorage.get();
|
56
62
|
if (!credentials) {
|
57
63
|
throw new Error("Jazz credentials not found");
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/better-auth/auth/client.ts"],"sourcesContent":["import type { BetterAuthClientPlugin } from \"better-auth\";\nimport type {\n AuthSecretStorage,\n AuthSetPayload,\n Account,\n JazzContextType,\n} from \"jazz-tools\";\nimport type { jazzPlugin } from \"./server.js\";\n\n/**\n * @example\n * ```ts\n * const auth = betterAuth({\n * plugins: [jazzPluginClient()],\n * });\n * ```\n */\nexport const jazzPluginClient = () => {\n let jazzContext: JazzContextType<Account>;\n let authSecretStorage: AuthSecretStorage;\n let signOutUnsubscription: () => void;\n\n const authenticateOnJazz = async (jazzAuth: AuthSetPayload) => {\n const parsedJazzAuth = {\n ...jazzAuth,\n secretSeed: jazzAuth.secretSeed\n ? Uint8Array.from(jazzAuth.secretSeed)\n : undefined,\n };\n\n await jazzContext.authenticate(parsedJazzAuth);\n await authSecretStorage.set(parsedJazzAuth);\n };\n\n return {\n id: \"jazz-plugin\",\n $InferServerPlugin: {} as ReturnType<typeof jazzPlugin>,\n getActions: ($fetch, $store) => {\n return {\n jazz: {\n setJazzContext: (context: JazzContextType<Account>) => {\n jazzContext = context;\n },\n setAuthSecretStorage: (storage: AuthSecretStorage) => {\n authSecretStorage = storage;\n if (signOutUnsubscription) signOutUnsubscription();\n\n // This is a workaround to logout from Better Auth when user logs out directly from Jazz\n signOutUnsubscription = authSecretStorage.onUpdate(\n (isAuthenticated) => {\n if (isAuthenticated === false) {\n const session = $store.atoms.session?.get();\n if (!session) return;\n\n // if the user logs out from Better Auth, the get session is immediately called\n // so we must wait the next fetched session to understand if we need to call sign-out\n if (session.isPending || session.isRefetching) {\n // listen once for next session's data\n const unsub = $store.atoms.session?.listen((session) => {\n unsub?.();\n // if the session is null, user has been already logged out from Better Auth\n if (session.data !== null) {\n $fetch(\"/sign-out\", { method: \"POST\" });\n }\n });\n }\n // if the session is not pending, it means user logged out from Jazz only\n // so we call the sign-out api\n else {\n $fetch(\"/sign-out\", { method: \"POST\" });\n }\n }\n },\n );\n },\n },\n };\n },\n fetchPlugins: [\n {\n id: \"jazz-plugin\",\n name: \"jazz-plugin\",\n hooks: {\n async onRequest(context) {\n if (\n
|
1
|
+
{"version":3,"sources":["../../../src/better-auth/auth/client.ts"],"sourcesContent":["import type { BetterAuthClientPlugin } from \"better-auth\";\nimport type {\n AuthSecretStorage,\n AuthSetPayload,\n Account,\n JazzContextType,\n} from \"jazz-tools\";\nimport type { jazzPlugin } from \"./server.js\";\n\nconst SIGNUP_URLS = [\n \"/sign-up\",\n \"/sign-in/social\",\n \"/sign-in/oauth2\",\n \"/email-otp/send-verification-otp\",\n];\n\n/**\n * @example\n * ```ts\n * const auth = betterAuth({\n * plugins: [jazzPluginClient()],\n * });\n * ```\n */\nexport const jazzPluginClient = () => {\n let jazzContext: JazzContextType<Account>;\n let authSecretStorage: AuthSecretStorage;\n let signOutUnsubscription: () => void;\n\n const authenticateOnJazz = async (jazzAuth: AuthSetPayload) => {\n const parsedJazzAuth = {\n ...jazzAuth,\n secretSeed: jazzAuth.secretSeed\n ? Uint8Array.from(jazzAuth.secretSeed)\n : undefined,\n };\n\n await jazzContext.authenticate(parsedJazzAuth);\n await authSecretStorage.set(parsedJazzAuth);\n };\n\n return {\n id: \"jazz-plugin\",\n $InferServerPlugin: {} as ReturnType<typeof jazzPlugin>,\n getActions: ($fetch, $store) => {\n return {\n jazz: {\n setJazzContext: (context: JazzContextType<Account>) => {\n jazzContext = context;\n },\n setAuthSecretStorage: (storage: AuthSecretStorage) => {\n authSecretStorage = storage;\n if (signOutUnsubscription) signOutUnsubscription();\n\n // This is a workaround to logout from Better Auth when user logs out directly from Jazz\n signOutUnsubscription = authSecretStorage.onUpdate(\n (isAuthenticated) => {\n if (isAuthenticated === false) {\n const session = $store.atoms.session?.get();\n if (!session) return;\n\n // if the user logs out from Better Auth, the get session is immediately called\n // so we must wait the next fetched session to understand if we need to call sign-out\n if (session.isPending || session.isRefetching) {\n // listen once for next session's data\n const unsub = $store.atoms.session?.listen((session) => {\n unsub?.();\n // if the session is null, user has been already logged out from Better Auth\n if (session.data !== null) {\n $fetch(\"/sign-out\", { method: \"POST\" });\n }\n });\n }\n // if the session is not pending, it means user logged out from Jazz only\n // so we call the sign-out api\n else {\n $fetch(\"/sign-out\", { method: \"POST\" });\n }\n }\n },\n );\n },\n },\n };\n },\n fetchPlugins: [\n {\n id: \"jazz-plugin\",\n name: \"jazz-plugin\",\n hooks: {\n async onRequest(context) {\n if (\n SIGNUP_URLS.some((url) => context.url.toString().includes(url))\n ) {\n const credentials = await authSecretStorage.get();\n\n if (!credentials) {\n throw new Error(\"Jazz credentials not found\");\n }\n\n context.headers.set(\n \"x-jazz-auth\",\n JSON.stringify({\n accountID: credentials.accountID,\n secretSeed: credentials.secretSeed,\n accountSecret: credentials.accountSecret,\n }),\n );\n }\n },\n async onSuccess(context) {\n if (context.request.url.toString().includes(\"/sign-up\")) {\n await authenticateOnJazz(context.data.jazzAuth);\n return;\n }\n\n if (context.request.url.toString().includes(\"/sign-in/email\")) {\n await authenticateOnJazz(context.data.jazzAuth);\n return;\n }\n\n if (context.request.url.toString().includes(\"/get-session\")) {\n if (context.data === null) {\n if (authSecretStorage.isAuthenticated === true) {\n console.warn(\n \"Jazz is authenticated, but the session is null\",\n );\n }\n return;\n }\n\n if (!context.data?.user) {\n return;\n }\n\n if (authSecretStorage.isAuthenticated === false) {\n console.info(\n \"Jazz is not authenticated, using Better Auth stored credentials\",\n );\n await authenticateOnJazz(context.data.jazzAuth);\n return;\n }\n\n const sessionAccountID = context.data.user.accountID;\n\n const credentials = await authSecretStorage.get();\n\n if (!credentials) {\n throw new Error(\"Jazz credentials not found\");\n }\n\n if (credentials.accountID !== sessionAccountID) {\n console.info(\n \"Jazz credentials mismatch, using Better Auth stored credentials\",\n );\n await authenticateOnJazz(context.data.jazzAuth);\n }\n return;\n }\n\n if (context.request.url.toString().includes(\"/sign-out\")) {\n await jazzContext.logOut();\n return;\n }\n\n if (context.request.url.toString().includes(\"/delete-user\")) {\n await jazzContext.logOut();\n return;\n }\n },\n },\n },\n ],\n } satisfies BetterAuthClientPlugin;\n};\n"],"mappings":"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","names":["session"]}
|