jazz-tools 0.18.18 → 0.18.19
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 +53 -53
- package/CHANGELOG.md +11 -0
- package/dist/better-auth/auth/client.d.ts.map +1 -1
- package/dist/better-auth/auth/client.js +3 -2
- package/dist/better-auth/auth/client.js.map +1 -1
- package/dist/{chunk-FHRKDKDY.js → chunk-RN3Y24WX.js} +2 -2
- package/dist/chunk-RN3Y24WX.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/testing.js +1 -1
- package/dist/tools/coValues/coMap.d.ts +2 -2
- package/dist/tools/coValues/coMap.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/better-auth/auth/client.ts +3 -2
- package/src/better-auth/auth/tests/client.test.ts +22 -0
- package/src/tools/coValues/coMap.ts +5 -5
- package/src/tools/subscribe/index.ts +1 -1
- package/src/tools/tests/coMap.test.ts +26 -2
- package/src/tools/tests/subscribe.test.ts +41 -0
- package/dist/chunk-FHRKDKDY.js.map +0 -1
package/.turbo/turbo-build.log
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
> jazz-tools@0.18.
|
2
|
+
> jazz-tools@0.18.19 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"}
|
@@ -114,98 +114,98 @@
|
|
114
114
|
[34mESM[39m Build start
|
115
115
|
[34mCLI[39m Cleaning output folder
|
116
116
|
[34mESM[39m Build start
|
117
|
-
[32mESM[39m [1mdist/react/ssr.js [22m[32m688.00 B[39m
|
118
|
-
[32mESM[39m [1mdist/react/ssr.js.map [22m[32m1.12 KB[39m
|
119
|
-
[32mESM[39m ⚡️ Build success in 28ms
|
120
117
|
[32mESM[39m [1mdist/tiptap/index.js [22m[32m564.00 B[39m
|
121
118
|
[32mESM[39m [1mdist/tiptap/index.js.map [22m[32m1.21 KB[39m
|
122
|
-
[32mESM[39m ⚡️ Build success in
|
119
|
+
[32mESM[39m ⚡️ Build success in 20ms
|
120
|
+
[32mESM[39m [1mdist/react/ssr.js [22m[32m688.00 B[39m
|
121
|
+
[32mESM[39m [1mdist/react/ssr.js.map [22m[32m1.12 KB[39m
|
122
|
+
[32mESM[39m ⚡️ Build success in 24ms
|
123
123
|
[32mESM[39m [1mdist/worker/index.js [22m[32m3.19 KB[39m
|
124
124
|
[32mESM[39m [1mdist/worker/edge-wasm.js [22m[32m215.00 B[39m
|
125
125
|
[32mESM[39m [1mdist/worker/index.js.map [22m[32m6.17 KB[39m
|
126
126
|
[32mESM[39m [1mdist/worker/edge-wasm.js.map [22m[32m434.00 B[39m
|
127
|
-
[32mESM[39m ⚡️ Build success in
|
128
|
-
[32mESM[39m [1mdist/
|
129
|
-
[32mESM[39m [1mdist/
|
127
|
+
[32mESM[39m ⚡️ Build success in 21ms
|
128
|
+
[32mESM[39m [1mdist/react-native/index.js [22m[32m2.53 KB[39m
|
129
|
+
[32mESM[39m [1mdist/react-native/crypto.js [22m[32m161.00 B[39m
|
130
|
+
[32mESM[39m [1mdist/react-native/testing.js [22m[32m120.00 B[39m
|
131
|
+
[32mESM[39m [1mdist/react-native/index.js.map [22m[32m5.68 KB[39m
|
132
|
+
[32mESM[39m [1mdist/react-native/crypto.js.map [22m[32m197.00 B[39m
|
133
|
+
[32mESM[39m [1mdist/react-native/testing.js.map [22m[32m176.00 B[39m
|
134
|
+
[32mESM[39m ⚡️ Build success in 24ms
|
135
|
+
[32mESM[39m [1mdist/better-auth/auth/client.js [22m[32m4.50 KB[39m
|
130
136
|
[32mESM[39m [1mdist/better-auth/auth/react.js [22m[32m799.00 B[39m
|
131
|
-
[32mESM[39m [1mdist/better-auth/auth/
|
132
|
-
[32mESM[39m [1mdist/better-auth/auth/
|
137
|
+
[32mESM[39m [1mdist/better-auth/auth/server.js [22m[32m8.36 KB[39m
|
138
|
+
[32mESM[39m [1mdist/better-auth/auth/client.js.map [22m[32m8.32 KB[39m
|
133
139
|
[32mESM[39m [1mdist/better-auth/auth/react.js.map [22m[32m2.04 KB[39m
|
134
|
-
[32mESM[39m
|
135
|
-
[32mESM[39m
|
136
|
-
[32mESM[39m [1mdist/react-core/testing.js [22m[32m1.22 KB[39m
|
137
|
-
[32mESM[39m [1mdist/react-core/chunk-7DYMJ74I.js [22m[32m279.00 B[39m
|
138
|
-
[32mESM[39m [1mdist/react-core/index.js.map [22m[32m35.67 KB[39m
|
139
|
-
[32mESM[39m [1mdist/react-core/testing.js.map [22m[32m1.86 KB[39m
|
140
|
-
[32mESM[39m [1mdist/react-core/chunk-7DYMJ74I.js.map [22m[32m533.00 B[39m
|
141
|
-
[32mESM[39m ⚡️ Build success in 34ms
|
140
|
+
[32mESM[39m [1mdist/better-auth/auth/server.js.map [22m[32m15.29 KB[39m
|
141
|
+
[32mESM[39m ⚡️ Build success in 23ms
|
142
142
|
[32mESM[39m [1mdist/media/index.js [22m[32m236.00 B[39m
|
143
|
+
[32mESM[39m [1mdist/media/index.browser.js [22m[32m2.79 KB[39m
|
143
144
|
[32mESM[39m [1mdist/media/index.native.js [22m[32m2.90 KB[39m
|
144
|
-
[32mESM[39m [1mdist/media/chunk-W3S526L3.js [22m[32m6.47 KB[39m
|
145
145
|
[32mESM[39m [1mdist/media/index.server.js [22m[32m2.95 KB[39m
|
146
|
-
[32mESM[39m [1mdist/media/
|
146
|
+
[32mESM[39m [1mdist/media/chunk-W3S526L3.js [22m[32m6.47 KB[39m
|
147
147
|
[32mESM[39m [1mdist/media/index.js.map [22m[32m71.00 B[39m
|
148
|
+
[32mESM[39m [1mdist/media/index.browser.js.map [22m[32m6.15 KB[39m
|
148
149
|
[32mESM[39m [1mdist/media/index.native.js.map [22m[32m6.09 KB[39m
|
149
150
|
[32mESM[39m [1mdist/media/index.server.js.map [22m[32m6.37 KB[39m
|
150
151
|
[32mESM[39m [1mdist/media/chunk-W3S526L3.js.map [22m[32m16.57 KB[39m
|
151
|
-
[32mESM[39m
|
152
|
-
[32mESM[39m
|
153
|
-
[32mESM[39m [1mdist/
|
154
|
-
[32mESM[39m
|
155
|
-
[32mESM[39m ⚡️ Build success in 49ms
|
156
|
-
[32mESM[39m [1mdist/react-native/index.js [22m[32m2.53 KB[39m
|
157
|
-
[32mESM[39m [1mdist/react-native/crypto.js [22m[32m161.00 B[39m
|
158
|
-
[32mESM[39m [1mdist/react-native/testing.js [22m[32m120.00 B[39m
|
159
|
-
[32mESM[39m [1mdist/react-native/index.js.map [22m[32m5.68 KB[39m
|
160
|
-
[32mESM[39m [1mdist/react-native/crypto.js.map [22m[32m197.00 B[39m
|
161
|
-
[32mESM[39m [1mdist/react-native/testing.js.map [22m[32m176.00 B[39m
|
162
|
-
[32mESM[39m ⚡️ Build success in 46ms
|
152
|
+
[32mESM[39m ⚡️ Build success in 29ms
|
153
|
+
[32mESM[39m [1mdist/better-auth/database-adapter/index.js [22m[32m26.34 KB[39m
|
154
|
+
[32mESM[39m [1mdist/better-auth/database-adapter/index.js.map [22m[32m57.62 KB[39m
|
155
|
+
[32mESM[39m ⚡️ Build success in 24ms
|
163
156
|
[32mESM[39m [1mdist/expo/index.js [22m[32m4.68 KB[39m
|
164
|
-
[32mESM[39m [1mdist/expo/testing.js [22m[32m112.00 B[39m
|
165
157
|
[32mESM[39m [1mdist/expo/crypto.js [22m[32m153.00 B[39m
|
158
|
+
[32mESM[39m [1mdist/expo/testing.js [22m[32m112.00 B[39m
|
166
159
|
[32mESM[39m [1mdist/expo/index.js.map [22m[32m10.23 KB[39m
|
167
|
-
[32mESM[39m [1mdist/expo/testing.js.map [22m[32m168.00 B[39m
|
168
160
|
[32mESM[39m [1mdist/expo/crypto.js.map [22m[32m189.00 B[39m
|
169
|
-
[32mESM[39m
|
161
|
+
[32mESM[39m [1mdist/expo/testing.js.map [22m[32m168.00 B[39m
|
162
|
+
[32mESM[39m ⚡️ Build success in 36ms
|
163
|
+
[32mESM[39m [1mdist/react/index.js [22m[32m24.93 KB[39m
|
164
|
+
[32mESM[39m [1mdist/react/testing.js [22m[32m122.00 B[39m
|
165
|
+
[32mESM[39m [1mdist/react/index.js.map [22m[32m53.78 KB[39m
|
166
|
+
[32mESM[39m [1mdist/react/testing.js.map [22m[32m165.00 B[39m
|
167
|
+
[32mESM[39m ⚡️ Build success in 34ms
|
168
|
+
[32mESM[39m [1mdist/browser/index.js [22m[32m14.13 KB[39m
|
169
|
+
[32mESM[39m [1mdist/browser/index.js.map [22m[32m30.00 KB[39m
|
170
|
+
[32mESM[39m ⚡️ Build success in 43ms
|
171
|
+
[32mESM[39m [1mdist/react-core/index.js [22m[32m11.07 KB[39m
|
172
|
+
[32mESM[39m [1mdist/react-core/testing.js [22m[32m1.22 KB[39m
|
173
|
+
[32mESM[39m [1mdist/react-core/chunk-7DYMJ74I.js [22m[32m279.00 B[39m
|
174
|
+
[32mESM[39m [1mdist/react-core/index.js.map [22m[32m35.67 KB[39m
|
175
|
+
[32mESM[39m [1mdist/react-core/testing.js.map [22m[32m1.86 KB[39m
|
176
|
+
[32mESM[39m [1mdist/react-core/chunk-7DYMJ74I.js.map [22m[32m533.00 B[39m
|
177
|
+
[32mESM[39m ⚡️ Build success in 38ms
|
170
178
|
[32mESM[39m [1mdist/react-native-core/index.js [22m[32m18.65 KB[39m
|
171
179
|
[32mESM[39m [1mdist/react-native-core/testing.js [22m[32m119.00 B[39m
|
172
180
|
[32mESM[39m [1mdist/react-native-core/crypto.js [22m[32m2.10 KB[39m
|
173
181
|
[32mESM[39m [1mdist/react-native-core/index.js.map [22m[32m37.83 KB[39m
|
174
182
|
[32mESM[39m [1mdist/react-native-core/testing.js.map [22m[32m175.00 B[39m
|
175
183
|
[32mESM[39m [1mdist/react-native-core/crypto.js.map [22m[32m4.25 KB[39m
|
176
|
-
[32mESM[39m ⚡️ Build success in
|
177
|
-
[32mESM[39m [1mdist/better-auth/database-adapter/index.js [22m[32m26.34 KB[39m
|
178
|
-
[32mESM[39m [1mdist/better-auth/database-adapter/index.js.map [22m[32m57.62 KB[39m
|
179
|
-
[32mESM[39m ⚡️ Build success in 51ms
|
180
|
-
[32mESM[39m [1mdist/react/testing.js [22m[32m122.00 B[39m
|
181
|
-
[32mESM[39m [1mdist/react/index.js [22m[32m24.93 KB[39m
|
182
|
-
[32mESM[39m [1mdist/react/testing.js.map [22m[32m165.00 B[39m
|
183
|
-
[32mESM[39m [1mdist/react/index.js.map [22m[32m53.78 KB[39m
|
184
|
-
[32mESM[39m ⚡️ Build success in 55ms
|
184
|
+
[32mESM[39m ⚡️ Build success in 39ms
|
185
185
|
[32mESM[39m [1mdist/prosemirror/index.js [22m[32m77.76 KB[39m
|
186
186
|
[32mESM[39m [1mdist/prosemirror/index.js.map [22m[32m307.20 KB[39m
|
187
|
-
[32mESM[39m ⚡️ Build success in
|
187
|
+
[32mESM[39m ⚡️ Build success in 43ms
|
188
188
|
[32mESM[39m [1mdist/inspector/index.js [22m[32m69.71 KB[39m
|
189
189
|
[32mESM[39m [1mdist/inspector/index.js.map [22m[32m121.38 KB[39m
|
190
|
-
[32mESM[39m ⚡️ Build success in
|
190
|
+
[32mESM[39m ⚡️ Build success in 52ms
|
191
191
|
[32mESM[39m [1mdist/index.js [22m[32m26.13 KB[39m
|
192
|
+
[32mESM[39m [1mdist/chunk-RN3Y24WX.js [22m[32m176.29 KB[39m
|
192
193
|
[32mESM[39m [1mdist/testing.js [22m[32m8.33 KB[39m
|
193
|
-
[32mESM[39m [1mdist/chunk-FHRKDKDY.js [22m[32m176.29 KB[39m
|
194
|
-
[32mESM[39m [1mdist/testing.js.map [22m[32m15.87 KB[39m
|
195
194
|
[32mESM[39m [1mdist/index.js.map [22m[32m52.92 KB[39m
|
196
|
-
[32mESM[39m [1mdist/chunk-
|
197
|
-
[32mESM[39m
|
195
|
+
[32mESM[39m [1mdist/chunk-RN3Y24WX.js.map [22m[32m420.21 KB[39m
|
196
|
+
[32mESM[39m [1mdist/testing.js.map [22m[32m15.87 KB[39m
|
197
|
+
[32mESM[39m ⚡️ Build success in 70ms
|
198
198
|
[32mESM[39m [1mdist/inspector/register-custom-element.js [22m[32m218.00 B[39m
|
199
199
|
[32mESM[39m [1mdist/inspector/register-custom-element.js.map [22m[32m314.00 B[39m
|
200
200
|
[32mESM[39m [1mdist/inspector/custom-element-G6SPZEBR.js [22m[32m1.54 MB[39m
|
201
201
|
[32mESM[39m [1mdist/inspector/custom-element-G6SPZEBR.js.map [22m[32m2.36 MB[39m
|
202
|
-
[32mESM[39m ⚡️ Build success in
|
202
|
+
[32mESM[39m ⚡️ Build success in 113ms
|
203
203
|
|
204
|
-
> jazz-tools@0.18.
|
204
|
+
> jazz-tools@0.18.19 types /home/runner/_work/jazz/jazz/packages/jazz-tools
|
205
205
|
> tsc --outDir dist
|
206
206
|
|
207
207
|
|
208
|
-
> jazz-tools@0.18.
|
208
|
+
> jazz-tools@0.18.19 build:svelte /home/runner/_work/jazz/jazz/packages/jazz-tools
|
209
209
|
> rm -rf dist/svelte && svelte-package -i src/svelte -o dist/svelte --tsconfig tsconfig.svelte.json
|
210
210
|
|
211
211
|
src/svelte -> dist/svelte
|
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
# jazz-tools
|
2
2
|
|
3
|
+
## 0.18.19
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- f88db5f: Ensure subscription scope is cached for each CoValue
|
8
|
+
- 8eac2fc: Fix refs in partially loaded CoMaps being incorrectly marked as optional
|
9
|
+
- 08b6c03: fix: keep sync between Better Auth's session and Jazz's
|
10
|
+
- cojson@0.18.19
|
11
|
+
- cojson-storage-indexeddb@0.18.19
|
12
|
+
- cojson-transport-ws@0.18.19
|
13
|
+
|
3
14
|
## 0.18.18
|
4
15
|
|
5
16
|
### 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,OAAO,EACP,iBAAiB,EAEjB,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;;;;;;;;;;;
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/better-auth/auth/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EAEjB,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;;;;;;;;;;;CA6H1D,CAAC"}
|
@@ -84,9 +84,10 @@ var jazzPluginClient = () => {
|
|
84
84
|
if (context.request.url.toString().includes("/get-session")) {
|
85
85
|
if (context.data === null) {
|
86
86
|
if (authSecretStorage.isAuthenticated === true) {
|
87
|
-
console.
|
88
|
-
"Jazz is authenticated, but the session is null"
|
87
|
+
console.info(
|
88
|
+
"Jazz is authenticated, but the session is null. Logging out"
|
89
89
|
);
|
90
|
+
await jazzContext.logOut();
|
90
91
|
}
|
91
92
|
return;
|
92
93
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/better-auth/auth/client.ts"],"sourcesContent":["import type { BetterAuthClientPlugin } from \"better-auth\";\nimport type {\n Account,\n AuthSecretStorage,\n AuthSetPayload,\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.
|
1
|
+
{"version":3,"sources":["../../../src/better-auth/auth/client.ts"],"sourcesContent":["import type { BetterAuthClientPlugin } from \"better-auth\";\nimport type {\n Account,\n AuthSecretStorage,\n AuthSetPayload,\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.info(\n \"Jazz is authenticated, but the session is null. Logging out\",\n );\n await jazzContext.logOut();\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"]}
|
@@ -4285,7 +4285,7 @@ function getSubscriptionScope(value) {
|
|
4285
4285
|
optional: false
|
4286
4286
|
});
|
4287
4287
|
Object.defineProperty(value.$jazz, "_subscriptionScope", {
|
4288
|
-
value:
|
4288
|
+
value: newSubscriptionScope,
|
4289
4289
|
writable: false,
|
4290
4290
|
enumerable: false,
|
4291
4291
|
configurable: false
|
@@ -6152,4 +6152,4 @@ export {
|
|
6152
6152
|
JazzContextManager
|
6153
6153
|
};
|
6154
6154
|
/* istanbul ignore file -- @preserve */
|
6155
|
-
//# sourceMappingURL=chunk-
|
6155
|
+
//# sourceMappingURL=chunk-RN3Y24WX.js.map
|