jazz-tools 0.19.19 → 0.19.20
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/.svelte-kit/__package__/client.d.ts.map +1 -1
- package/.svelte-kit/__package__/client.js +3 -1
- package/.svelte-kit/__package__/tests/client.test.js +48 -0
- package/.turbo/turbo-build.log +65 -61
- package/dist/better-auth/auth/client.d.ts.map +1 -1
- package/dist/better-auth/auth/client.js +1 -1
- package/dist/better-auth/auth/client.js.map +1 -1
- package/dist/{chunk-PEHQ7TN2.js → chunk-MI24YFCY.js} +31 -4
- package/dist/chunk-MI24YFCY.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/react-core/hooks.d.ts +2 -2
- package/dist/react-core/hooks.d.ts.map +1 -1
- package/dist/react-core/index.js +4 -78
- package/dist/react-core/index.js.map +1 -1
- package/dist/react-native/chunk-DGUM43GV.js +11 -0
- package/dist/react-native/chunk-DGUM43GV.js.map +1 -0
- package/dist/react-native/crypto.js +2 -0
- package/dist/react-native/crypto.js.map +1 -1
- package/dist/react-native/index.js +540 -29
- package/dist/react-native/index.js.map +1 -1
- package/dist/react-native-core/auth/PasskeyAuth.d.ts +123 -0
- package/dist/react-native-core/auth/PasskeyAuth.d.ts.map +1 -0
- package/dist/react-native-core/auth/PasskeyAuthBasicUI.d.ts +34 -0
- package/dist/react-native-core/auth/PasskeyAuthBasicUI.d.ts.map +1 -0
- package/dist/react-native-core/auth/auth.d.ts +3 -0
- package/dist/react-native-core/auth/auth.d.ts.map +1 -1
- package/dist/react-native-core/auth/passkey-utils.d.ts +16 -0
- package/dist/react-native-core/auth/passkey-utils.d.ts.map +1 -0
- package/dist/react-native-core/auth/usePasskeyAuth.d.ts +48 -0
- package/dist/react-native-core/auth/usePasskeyAuth.d.ts.map +1 -0
- package/dist/react-native-core/chunk-DGUM43GV.js +11 -0
- package/dist/react-native-core/chunk-DGUM43GV.js.map +1 -0
- package/dist/react-native-core/crypto.js +2 -0
- package/dist/react-native-core/crypto.js.map +1 -1
- package/dist/react-native-core/index.js +535 -24
- package/dist/react-native-core/index.js.map +1 -1
- package/dist/react-native-core/tests/PasskeyAuth.test.d.ts +2 -0
- package/dist/react-native-core/tests/PasskeyAuth.test.d.ts.map +1 -0
- package/dist/react-native-core/tests/passkey-utils.test.d.ts +2 -0
- package/dist/react-native-core/tests/passkey-utils.test.d.ts.map +1 -0
- package/dist/testing.js +1 -1
- package/dist/tools/coValues/account.d.ts +5 -1
- package/dist/tools/coValues/account.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts +30 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/zodCo.d.ts.map +1 -1
- package/dist/tools/testing.d.ts.map +1 -1
- package/package.json +8 -4
- package/src/better-auth/auth/client.ts +3 -1
- package/src/better-auth/auth/tests/client.test.ts +66 -2
- package/src/react-core/hooks.ts +12 -103
- package/src/react-native-core/auth/PasskeyAuth.ts +316 -0
- package/src/react-native-core/auth/PasskeyAuthBasicUI.tsx +284 -0
- package/src/react-native-core/auth/auth.ts +3 -0
- package/src/react-native-core/auth/passkey-utils.ts +47 -0
- package/src/react-native-core/auth/usePasskeyAuth.tsx +85 -0
- package/src/react-native-core/tests/PasskeyAuth.test.ts +463 -0
- package/src/react-native-core/tests/passkey-utils.test.ts +144 -0
- package/src/tools/coValues/account.ts +11 -3
- package/src/tools/implementation/zodSchema/schemaTypes/AccountSchema.ts +27 -1
- package/src/tools/tests/account.test.ts +2 -1
- package/testSetup.ts +4 -0
- package/vitest.config.ts +1 -0
- package/dist/chunk-PEHQ7TN2.js.map +0 -1
|
@@ -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;;;;;;;;;;;CA+H1D,CAAC"}
|
|
@@ -81,7 +81,9 @@ export const jazzPluginClient = () => {
|
|
|
81
81
|
}
|
|
82
82
|
context.headers.set("x-jazz-auth", JSON.stringify({
|
|
83
83
|
accountID: credentials.accountID,
|
|
84
|
-
secretSeed: credentials.secretSeed
|
|
84
|
+
secretSeed: credentials.secretSeed
|
|
85
|
+
? Array.from(credentials.secretSeed)
|
|
86
|
+
: undefined,
|
|
85
87
|
accountSecret: credentials.accountSecret,
|
|
86
88
|
}));
|
|
87
89
|
}
|
|
@@ -103,6 +103,54 @@ describe("Better-Auth client plugin", () => {
|
|
|
103
103
|
provider: "better-auth",
|
|
104
104
|
});
|
|
105
105
|
});
|
|
106
|
+
it("should preserve secretSeed over signup", async () => {
|
|
107
|
+
const secretSeed = new Uint8Array([1, 2, 3]);
|
|
108
|
+
await authSecretStorage.set({
|
|
109
|
+
accountID: account.$jazz.id,
|
|
110
|
+
secretSeed: secretSeed,
|
|
111
|
+
accountSecret: account.$jazz.localNode.getCurrentAgent().agentSecret,
|
|
112
|
+
provider: "test",
|
|
113
|
+
});
|
|
114
|
+
const credentials = await authSecretStorage.get();
|
|
115
|
+
assert(credentials, "Jazz credentials are not available");
|
|
116
|
+
expect(credentials.secretSeed).toBeInstanceOf(Uint8Array);
|
|
117
|
+
customFetchImpl.mockResolvedValue(new Response(JSON.stringify({
|
|
118
|
+
token: "6diDScDDcLJLl3sxAEestZz63mrw9Azy",
|
|
119
|
+
user: {
|
|
120
|
+
id: "S6SDKApdnh746gUnP3zujzsEY53tjuTm",
|
|
121
|
+
email: "test@jazz.dev",
|
|
122
|
+
name: "Matteo",
|
|
123
|
+
image: null,
|
|
124
|
+
emailVerified: false,
|
|
125
|
+
createdAt: new Date(),
|
|
126
|
+
updatedAt: new Date(),
|
|
127
|
+
},
|
|
128
|
+
jazzAuth: {
|
|
129
|
+
accountID: credentials.accountID,
|
|
130
|
+
secretSeed: credentials.secretSeed,
|
|
131
|
+
accountSecret: credentials.accountSecret,
|
|
132
|
+
},
|
|
133
|
+
})));
|
|
134
|
+
// Sign up
|
|
135
|
+
await authClient.signUp.email({
|
|
136
|
+
email: "test@jazz.dev",
|
|
137
|
+
password: "12345678",
|
|
138
|
+
name: "Matteo",
|
|
139
|
+
});
|
|
140
|
+
expect(customFetchImpl).toHaveBeenCalledTimes(1);
|
|
141
|
+
expect(customFetchImpl.mock.calls[0][0].toString()).toBe("http://localhost:3000/api/auth/sign-up/email");
|
|
142
|
+
// Verify the credentials have been injected in the request body
|
|
143
|
+
expect(customFetchImpl.mock.calls[0][1].headers.get("x-jazz-auth")).toEqual(JSON.stringify({
|
|
144
|
+
accountID: credentials.accountID,
|
|
145
|
+
secretSeed: Array.from(credentials.secretSeed),
|
|
146
|
+
accountSecret: credentials.accountSecret,
|
|
147
|
+
}));
|
|
148
|
+
expect(authSecretStorage.isAuthenticated).toBe(true);
|
|
149
|
+
// Verify the profile name has been updated
|
|
150
|
+
const context = jazzContextManager.getCurrentValue();
|
|
151
|
+
assert(context && "me" in context);
|
|
152
|
+
expect(context.me.$jazz.id).toBe(credentials.accountID);
|
|
153
|
+
});
|
|
106
154
|
it("should logout from Jazz after BetterAuth sign-out", async () => {
|
|
107
155
|
const credentials = await authSecretStorage.get();
|
|
108
156
|
expect(authSecretStorage.isAuthenticated).toBe(false);
|
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> jazz-tools@0.19.
|
|
2
|
+
> jazz-tools@0.19.20 build /home/runner/_work/jazz/jazz/packages/jazz-tools
|
|
3
3
|
> tsup && pnpm types && pnpm build:svelte && pnpm build:better-auth-svelte
|
|
4
4
|
|
|
5
5
|
[34mCLI[39m Building entry: {"index":"src/index.ts","testing":"src/testing.ts","tools/ssr":"src/tools/ssr/index.ts"}
|
|
@@ -109,118 +109,122 @@
|
|
|
109
109
|
[34mESM[39m Build start
|
|
110
110
|
[32mESM[39m [1mdist/tiptap/index.js [22m[32m564.00 B[39m
|
|
111
111
|
[32mESM[39m [1mdist/tiptap/index.js.map [22m[32m1.21 KB[39m
|
|
112
|
-
[32mESM[39m ⚡️ Build success in
|
|
113
|
-
[32mESM[39m [1mdist/worker/edge-wasm.js [22m[32m215.00 B[39m
|
|
112
|
+
[32mESM[39m ⚡️ Build success in 33ms
|
|
114
113
|
[32mESM[39m [1mdist/worker/index.js [22m[32m3.19 KB[39m
|
|
115
114
|
[32mESM[39m [1mdist/worker/napi-crypto.js [22m[32m110.00 B[39m
|
|
116
|
-
[32mESM[39m [1mdist/worker/edge-wasm.js
|
|
115
|
+
[32mESM[39m [1mdist/worker/edge-wasm.js [22m[32m215.00 B[39m
|
|
117
116
|
[32mESM[39m [1mdist/worker/index.js.map [22m[32m6.26 KB[39m
|
|
118
117
|
[32mESM[39m [1mdist/worker/napi-crypto.js.map [22m[32m162.00 B[39m
|
|
119
|
-
[32mESM[39m
|
|
120
|
-
[32mESM[39m
|
|
118
|
+
[32mESM[39m [1mdist/worker/edge-wasm.js.map [22m[32m434.00 B[39m
|
|
119
|
+
[32mESM[39m ⚡️ Build success in 32ms
|
|
120
|
+
[32mESM[39m [1mdist/better-auth/auth/client.js [22m[32m4.54 KB[39m
|
|
121
121
|
[32mESM[39m [1mdist/better-auth/auth/server.js [22m[32m8.36 KB[39m
|
|
122
122
|
[32mESM[39m [1mdist/better-auth/auth/react.js [22m[32m799.00 B[39m
|
|
123
|
-
[32mESM[39m [1mdist/better-auth/auth/client.js.map [22m[32m8.
|
|
124
|
-
[32mESM[39m [1mdist/better-auth/auth/react.js.map [22m[32m2.04 KB[39m
|
|
123
|
+
[32mESM[39m [1mdist/better-auth/auth/client.js.map [22m[32m8.44 KB[39m
|
|
125
124
|
[32mESM[39m [1mdist/better-auth/auth/server.js.map [22m[32m15.31 KB[39m
|
|
126
|
-
[32mESM[39m
|
|
125
|
+
[32mESM[39m [1mdist/better-auth/auth/react.js.map [22m[32m2.04 KB[39m
|
|
126
|
+
[32mESM[39m ⚡️ Build success in 29ms
|
|
127
127
|
[32mESM[39m [1mdist/media/index.js [22m[32m236.00 B[39m
|
|
128
|
-
[32mESM[39m [1mdist/media/index.server.js [22m[32m2.95 KB[39m
|
|
129
|
-
[32mESM[39m [1mdist/media/index.native.js [22m[32m4.01 KB[39m
|
|
130
128
|
[32mESM[39m [1mdist/media/index.browser.js [22m[32m2.79 KB[39m
|
|
129
|
+
[32mESM[39m [1mdist/media/index.native.js [22m[32m4.01 KB[39m
|
|
130
|
+
[32mESM[39m [1mdist/media/index.server.js [22m[32m2.95 KB[39m
|
|
131
131
|
[32mESM[39m [1mdist/media/chunk-3LKBM3G3.js [22m[32m6.69 KB[39m
|
|
132
132
|
[32mESM[39m [1mdist/media/index.js.map [22m[32m71.00 B[39m
|
|
133
|
-
[32mESM[39m [1mdist/media/index.server.js.map [22m[32m6.37 KB[39m
|
|
134
|
-
[32mESM[39m [1mdist/media/index.native.js.map [22m[32m8.10 KB[39m
|
|
135
133
|
[32mESM[39m [1mdist/media/index.browser.js.map [22m[32m6.15 KB[39m
|
|
134
|
+
[32mESM[39m [1mdist/media/index.native.js.map [22m[32m8.10 KB[39m
|
|
135
|
+
[32mESM[39m [1mdist/media/index.server.js.map [22m[32m6.37 KB[39m
|
|
136
136
|
[32mESM[39m [1mdist/media/chunk-3LKBM3G3.js.map [22m[32m16.99 KB[39m
|
|
137
|
-
[32mESM[39m ⚡️ Build success in
|
|
138
|
-
[32mESM[39m [1mdist/react-core/
|
|
139
|
-
[32mESM[39m [1mdist/react-core/index.js [22m[32m17.05 KB[39m
|
|
137
|
+
[32mESM[39m ⚡️ Build success in 37ms
|
|
138
|
+
[32mESM[39m [1mdist/react-core/index.js [22m[32m15.29 KB[39m
|
|
140
139
|
[32mESM[39m [1mdist/react-core/testing.js [22m[32m1.22 KB[39m
|
|
141
|
-
[32mESM[39m [1mdist/react-core/chunk-7DYMJ74I.js
|
|
140
|
+
[32mESM[39m [1mdist/react-core/chunk-7DYMJ74I.js [22m[32m279.00 B[39m
|
|
141
|
+
[32mESM[39m [1mdist/react-core/index.js.map [22m[32m46.65 KB[39m
|
|
142
142
|
[32mESM[39m [1mdist/react-core/testing.js.map [22m[32m1.86 KB[39m
|
|
143
|
-
[32mESM[39m [1mdist/react-core/
|
|
144
|
-
[32mESM[39m ⚡️ Build success in
|
|
145
|
-
[32mESM[39m [1mdist/expo/testing.js [22m[32m112.00 B[39m
|
|
143
|
+
[32mESM[39m [1mdist/react-core/chunk-7DYMJ74I.js.map [22m[32m533.00 B[39m
|
|
144
|
+
[32mESM[39m ⚡️ Build success in 37ms
|
|
146
145
|
[32mESM[39m [1mdist/expo/index.js [22m[32m4.68 KB[39m
|
|
146
|
+
[32mESM[39m [1mdist/expo/testing.js [22m[32m112.00 B[39m
|
|
147
147
|
[32mESM[39m [1mdist/expo/crypto.js [22m[32m153.00 B[39m
|
|
148
148
|
[32mESM[39m [1mdist/expo/polyfills.js [22m[32m858.00 B[39m
|
|
149
|
-
[32mESM[39m [1mdist/expo/testing.js.map [22m[32m168.00 B[39m
|
|
150
149
|
[32mESM[39m [1mdist/expo/index.js.map [22m[32m10.23 KB[39m
|
|
151
|
-
[32mESM[39m [1mdist/expo/
|
|
150
|
+
[32mESM[39m [1mdist/expo/testing.js.map [22m[32m168.00 B[39m
|
|
152
151
|
[32mESM[39m [1mdist/expo/crypto.js.map [22m[32m189.00 B[39m
|
|
153
|
-
[32mESM[39m
|
|
154
|
-
[32mESM[39m
|
|
155
|
-
[32mESM[39m [1mdist/better-auth/database-adapter/index.js.map [22m[32m58.26 KB[39m
|
|
156
|
-
[32mESM[39m ⚡️ Build success in 50ms
|
|
152
|
+
[32mESM[39m [1mdist/expo/polyfills.js.map [22m[32m1.61 KB[39m
|
|
153
|
+
[32mESM[39m ⚡️ Build success in 42ms
|
|
157
154
|
[32mESM[39m [1mdist/browser/index.js [22m[32m16.26 KB[39m
|
|
158
155
|
[32mESM[39m [1mdist/browser/index.js.map [22m[32m34.88 KB[39m
|
|
159
|
-
[32mESM[39m ⚡️ Build success in
|
|
156
|
+
[32mESM[39m ⚡️ Build success in 60ms
|
|
157
|
+
[32mESM[39m [1mdist/better-auth/database-adapter/index.js [22m[32m26.65 KB[39m
|
|
158
|
+
[32mESM[39m [1mdist/better-auth/database-adapter/index.js.map [22m[32m58.26 KB[39m
|
|
159
|
+
[32mESM[39m ⚡️ Build success in 59ms
|
|
160
160
|
[32mESM[39m [1mdist/react/index.js [22m[32m25.96 KB[39m
|
|
161
|
-
[32mESM[39m [1mdist/react/ssr.js [22m[32m697.00 B[39m
|
|
162
161
|
[32mESM[39m [1mdist/react/testing.js [22m[32m122.00 B[39m
|
|
163
|
-
[32mESM[39m [1mdist/react/
|
|
164
|
-
[32mESM[39m [1mdist/react/ssr.js.map [22m[32m1.11 KB[39m
|
|
162
|
+
[32mESM[39m [1mdist/react/ssr.js [22m[32m697.00 B[39m
|
|
165
163
|
[32mESM[39m [1mdist/react/testing.js.map [22m[32m165.00 B[39m
|
|
166
|
-
[32mESM[39m
|
|
164
|
+
[32mESM[39m [1mdist/react/ssr.js.map [22m[32m1.11 KB[39m
|
|
165
|
+
[32mESM[39m [1mdist/react/index.js.map [22m[32m55.44 KB[39m
|
|
166
|
+
[32mESM[39m ⚡️ Build success in 62ms
|
|
167
167
|
[32mESM[39m [1mdist/prosemirror/index.js [22m[32m77.76 KB[39m
|
|
168
168
|
[32mESM[39m [1mdist/prosemirror/index.js.map [22m[32m307.20 KB[39m
|
|
169
|
-
[32mESM[39m ⚡️ Build success in
|
|
170
|
-
[32mESM[39m [1mdist/react-native-core/index.js [22m[
|
|
169
|
+
[32mESM[39m ⚡️ Build success in 71ms
|
|
170
|
+
[32mESM[39m [1mdist/react-native-core/index.js [22m[32m34.07 KB[39m
|
|
171
171
|
[32mESM[39m [1mdist/react-native-core/testing.js [22m[32m119.00 B[39m
|
|
172
|
+
[32mESM[39m [1mdist/react-native-core/chunk-DGUM43GV.js [22m[32m432.00 B[39m
|
|
173
|
+
[32mESM[39m [1mdist/react-native-core/crypto.js [22m[32m2.61 KB[39m
|
|
172
174
|
[32mESM[39m [1mdist/react-native-core/crypto/RNCrypto.js [22m[32m120.00 B[39m
|
|
173
|
-
[32mESM[39m [1mdist/react-native-core/crypto.js [22m[32m2.58 KB[39m
|
|
174
|
-
[32mESM[39m [1mdist/react-native-core/crypto/RNCrypto.js.map [22m[32m178.00 B[39m
|
|
175
|
-
[32mESM[39m [1mdist/react-native-core/index.js.map [22m[32m41.79 KB[39m
|
|
176
|
-
[32mESM[39m [1mdist/react-native-core/crypto.js.map [22m[32m5.25 KB[39m
|
|
177
175
|
[32mESM[39m [1mdist/react-native-core/testing.js.map [22m[32m175.00 B[39m
|
|
178
|
-
[32mESM[39m
|
|
179
|
-
[32mESM[39m [1mdist/react-native/
|
|
180
|
-
[32mESM[39m [1mdist/react-native/
|
|
181
|
-
[32mESM[39m [1mdist/react-native/
|
|
182
|
-
[32mESM[39m
|
|
183
|
-
[32mESM[39m [1mdist/react-native/
|
|
184
|
-
[32mESM[39m [1mdist/react-native/
|
|
185
|
-
[32mESM[39m [1mdist/react-native/
|
|
186
|
-
[32mESM[39m [1mdist/react-native/index.js
|
|
187
|
-
[32mESM[39m
|
|
188
|
-
[32mESM[39m [1mdist/
|
|
176
|
+
[32mESM[39m [1mdist/react-native-core/crypto/RNCrypto.js.map [22m[32m178.00 B[39m
|
|
177
|
+
[32mESM[39m [1mdist/react-native-core/crypto.js.map [22m[32m5.26 KB[39m
|
|
178
|
+
[32mESM[39m [1mdist/react-native-core/chunk-DGUM43GV.js.map [22m[32m71.00 B[39m
|
|
179
|
+
[32mESM[39m [1mdist/react-native-core/index.js.map [22m[32m69.18 KB[39m
|
|
180
|
+
[32mESM[39m ⚡️ Build success in 68ms
|
|
181
|
+
[32mESM[39m [1mdist/react-native/chunk-DGUM43GV.js [22m[32m432.00 B[39m
|
|
182
|
+
[32mESM[39m [1mdist/react-native/testing.js [22m[32m120.00 B[39m
|
|
183
|
+
[32mESM[39m [1mdist/react-native/crypto.js [22m[32m192.00 B[39m
|
|
184
|
+
[32mESM[39m [1mdist/react-native/index.js [22m[32m36.61 KB[39m
|
|
185
|
+
[32mESM[39m [1mdist/react-native/polyfills.js [22m[32m858.00 B[39m
|
|
186
|
+
[32mESM[39m [1mdist/react-native/testing.js.map [22m[32m176.00 B[39m
|
|
187
|
+
[32mESM[39m [1mdist/react-native/chunk-DGUM43GV.js.map [22m[32m71.00 B[39m
|
|
188
|
+
[32mESM[39m [1mdist/react-native/crypto.js.map [22m[32m199.00 B[39m
|
|
189
|
+
[32mESM[39m [1mdist/react-native/index.js.map [22m[32m74.73 KB[39m
|
|
190
|
+
[32mESM[39m [1mdist/react-native/polyfills.js.map [22m[32m1.61 KB[39m
|
|
191
|
+
[32mESM[39m ⚡️ Build success in 71ms
|
|
189
192
|
[32mESM[39m [1mdist/inspector/standalone.js [22m[32m12.61 KB[39m
|
|
190
193
|
[32mESM[39m [1mdist/inspector/chunk-YQNK5Y7B.js [22m[32m127.21 KB[39m
|
|
191
|
-
[32mESM[39m [1mdist/inspector/index.js
|
|
194
|
+
[32mESM[39m [1mdist/inspector/index.js [22m[32m6.29 KB[39m
|
|
192
195
|
[32mESM[39m [1mdist/inspector/standalone.js.map [22m[32m20.11 KB[39m
|
|
196
|
+
[32mESM[39m [1mdist/inspector/index.js.map [22m[32m9.65 KB[39m
|
|
193
197
|
[32mESM[39m [1mdist/inspector/chunk-YQNK5Y7B.js.map [22m[32m221.30 KB[39m
|
|
194
|
-
[32mESM[39m ⚡️ Build success in
|
|
198
|
+
[32mESM[39m ⚡️ Build success in 88ms
|
|
195
199
|
[32mESM[39m [1mdist/index.js [22m[32m30.81 KB[39m
|
|
196
200
|
[32mESM[39m [1mdist/testing.js [22m[32m8.56 KB[39m
|
|
201
|
+
[32mESM[39m [1mdist/tools/ssr.js [22m[32m156.00 B[39m
|
|
197
202
|
[32mESM[39m [1mdist/chunk-M2HGBOXS.js [22m[32m694.00 B[39m
|
|
198
203
|
[32mESM[39m [1mdist/chunk-PZ5AY32C.js [22m[32m233.00 B[39m
|
|
199
|
-
[32mESM[39m [1mdist/
|
|
200
|
-
[32mESM[39m [1mdist/
|
|
201
|
-
[32mESM[39m [1mdist/chunk-M2HGBOXS.js.map [22m[32m1.10 KB[39m
|
|
204
|
+
[32mESM[39m [1mdist/chunk-MI24YFCY.js [22m[32m228.88 KB[39m
|
|
205
|
+
[32mESM[39m [1mdist/index.js.map [22m[32m62.37 KB[39m
|
|
202
206
|
[32mESM[39m [1mdist/testing.js.map [22m[32m16.21 KB[39m
|
|
203
|
-
[32mESM[39m [1mdist/chunk-
|
|
207
|
+
[32mESM[39m [1mdist/chunk-M2HGBOXS.js.map [22m[32m1.10 KB[39m
|
|
204
208
|
[32mESM[39m [1mdist/tools/ssr.js.map [22m[32m71.00 B[39m
|
|
205
|
-
[32mESM[39m [1mdist/
|
|
206
|
-
[32mESM[39m [1mdist/chunk-
|
|
207
|
-
[32mESM[39m ⚡️ Build success in
|
|
209
|
+
[32mESM[39m [1mdist/chunk-PZ5AY32C.js.map [22m[32m71.00 B[39m
|
|
210
|
+
[32mESM[39m [1mdist/chunk-MI24YFCY.js.map [22m[32m536.60 KB[39m
|
|
211
|
+
[32mESM[39m ⚡️ Build success in 104ms
|
|
208
212
|
[32mESM[39m [1mdist/inspector/register-custom-element.js [22m[32m218.00 B[39m
|
|
209
213
|
[32mESM[39m [1mdist/inspector/register-custom-element.js.map [22m[32m314.00 B[39m
|
|
210
214
|
[32mESM[39m [1mdist/inspector/custom-element-KYV64IOC.js [22m[32m1.60 MB[39m
|
|
211
215
|
[32mESM[39m [1mdist/inspector/custom-element-KYV64IOC.js.map [22m[32m2.47 MB[39m
|
|
212
|
-
[32mESM[39m ⚡️ Build success in
|
|
216
|
+
[32mESM[39m ⚡️ Build success in 138ms
|
|
213
217
|
|
|
214
|
-
> jazz-tools@0.19.
|
|
218
|
+
> jazz-tools@0.19.20 types /home/runner/_work/jazz/jazz/packages/jazz-tools
|
|
215
219
|
> tsc --outDir dist
|
|
216
220
|
|
|
217
221
|
|
|
218
|
-
> jazz-tools@0.19.
|
|
222
|
+
> jazz-tools@0.19.20 build:svelte /home/runner/_work/jazz/jazz/packages/jazz-tools
|
|
219
223
|
> rm -rf dist/svelte && svelte-package -i src/svelte -o dist/svelte --tsconfig tsconfig.svelte.json
|
|
220
224
|
|
|
221
225
|
src/svelte -> dist/svelte
|
|
222
226
|
|
|
223
|
-
> jazz-tools@0.19.
|
|
227
|
+
> jazz-tools@0.19.20 build:better-auth-svelte /home/runner/_work/jazz/jazz/packages/jazz-tools
|
|
224
228
|
> mkdir -p dist/better-auth/auth && svelte-package -i src/better-auth/auth -o dist/better-auth/auth-temp --tsconfig tsconfig.svelte.json && cp dist/better-auth/auth-temp/svelte.svelte dist/better-auth/auth/svelte.svelte && cp dist/better-auth/auth-temp/svelte.svelte.d.ts dist/better-auth/auth/svelte.d.ts && rm -rf dist/better-auth/auth-temp
|
|
225
229
|
|
|
226
230
|
src/better-auth/auth -> dist/better-auth/auth-temp
|
|
@@ -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;;;;;;;;;;;CA+H1D,CAAC"}
|
|
@@ -66,7 +66,7 @@ var jazzPluginClient = () => {
|
|
|
66
66
|
"x-jazz-auth",
|
|
67
67
|
JSON.stringify({
|
|
68
68
|
accountID: credentials.accountID,
|
|
69
|
-
secretSeed: credentials.secretSeed,
|
|
69
|
+
secretSeed: credentials.secretSeed ? Array.from(credentials.secretSeed) : void 0,
|
|
70
70
|
accountSecret: credentials.accountSecret
|
|
71
71
|
})
|
|
72
72
|
);
|
|
@@ -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.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":";AASA,IAAM,cAAc;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAUO,IAAM,mBAAmB,MAAM;AACpC,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,QAAM,qBAAqB,OAAO,aAA6B;AAC7D,UAAM,iBAAiB;AAAA,MACrB,GAAG;AAAA,MACH,YAAY,SAAS,aACjB,WAAW,KAAK,SAAS,UAAU,IACnC;AAAA,IACN;AAEA,UAAM,YAAY,aAAa,cAAc;AAC7C,UAAM,kBAAkB,IAAI,cAAc;AAAA,EAC5C;AAEA,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,oBAAoB,CAAC;AAAA,IACrB,YAAY,CAAC,QAAQ,WAAW;AAC9B,aAAO;AAAA,QACL,MAAM;AAAA,UACJ,gBAAgB,CAAC,YAAsC;AACrD,0BAAc;AAAA,UAChB;AAAA,UACA,sBAAsB,CAAC,YAA+B;AACpD,gCAAoB;AACpB,gBAAI,sBAAuB,uBAAsB;AAGjD,oCAAwB,kBAAkB;AAAA,cACxC,CAAC,oBAAoB;AACnB,oBAAI,oBAAoB,OAAO;AAC7B,wBAAM,UAAU,OAAO,MAAM,SAAS,IAAI;AAC1C,sBAAI,CAAC,QAAS;AAId,sBAAI,QAAQ,aAAa,QAAQ,cAAc;AAE7C,0BAAM,QAAQ,OAAO,MAAM,SAAS,OAAO,CAACA,aAAY;AACtD,8BAAQ;AAER,0BAAIA,SAAQ,SAAS,MAAM;AACzB,+BAAO,aAAa,EAAE,QAAQ,OAAO,CAAC;AAAA,sBACxC;AAAA,oBACF,CAAC;AAAA,kBACH,OAGK;AACH,2BAAO,aAAa,EAAE,QAAQ,OAAO,CAAC;AAAA,kBACxC;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,cAAc;AAAA,MACZ;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,UACL,MAAM,UAAU,SAAS;AACvB,gBACE,YAAY,KAAK,CAAC,QAAQ,QAAQ,IAAI,SAAS,EAAE,SAAS,GAAG,CAAC,GAC9D;AACA,oBAAM,cAAc,MAAM,kBAAkB,IAAI;AAEhD,kBAAI,CAAC,aAAa;AAChB,sBAAM,IAAI,MAAM,4BAA4B;AAAA,cAC9C;AAEA,sBAAQ,QAAQ;AAAA,gBACd;AAAA,gBACA,KAAK,UAAU;AAAA,kBACb,WAAW,YAAY;AAAA,kBACvB,YAAY,YAAY;AAAA,
|
|
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 ? Array.from(credentials.secretSeed)\n : undefined,\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"]}
|
|
@@ -2355,8 +2355,11 @@ var _Account = class _Account extends CoValueBase {
|
|
|
2355
2355
|
});
|
|
2356
2356
|
if (!loadedWorker.$isLoaded)
|
|
2357
2357
|
throw new Error("Unable to load the worker account");
|
|
2358
|
-
if (options.onCreate)
|
|
2359
|
-
|
|
2358
|
+
if (options.onCreate)
|
|
2359
|
+
await options.onCreate(account, loadedWorker, credentials);
|
|
2360
|
+
await account.$jazz.waitForAllCoValuesSync({
|
|
2361
|
+
timeout: options.waitForSyncTimeout
|
|
2362
|
+
});
|
|
2360
2363
|
const createdAccount = await this.load(account.$jazz.id, {
|
|
2361
2364
|
loadAs: worker
|
|
2362
2365
|
});
|
|
@@ -6198,7 +6201,31 @@ var AccountSchema = class _AccountSchema {
|
|
|
6198
6201
|
withSchemaResolveQuery(options, this.resolveQuery)
|
|
6199
6202
|
);
|
|
6200
6203
|
}
|
|
6201
|
-
|
|
6204
|
+
/**
|
|
6205
|
+
* Creates a new account as a worker account, useful for generating controlled accounts from a server environment.
|
|
6206
|
+
* This method initializes a new account, applies migrations, invokes the `onCreate` callback, and then shuts down the temporary node to avoid memory leaks.
|
|
6207
|
+
* Returns the created account (loaded on the worker) and its credentials.
|
|
6208
|
+
*
|
|
6209
|
+
* The method internally calls `waitForAllCoValuesSync` on the new account. If many CoValues are created during `onCreate`,
|
|
6210
|
+
* consider adjusting the timeout using the `waitForSyncTimeout` option.
|
|
6211
|
+
*
|
|
6212
|
+
* @param worker - The worker account to create the new account from
|
|
6213
|
+
* @param options.creationProps - The creation properties for the new account
|
|
6214
|
+
* @param options.onCreate - The callback to use to initialize the account after it is created
|
|
6215
|
+
* @param options.waitForSyncTimeout - The timeout for the sync to complete
|
|
6216
|
+
* @returns The credentials and the created account loaded by the worker account
|
|
6217
|
+
*
|
|
6218
|
+
*
|
|
6219
|
+
* @example
|
|
6220
|
+
* ```ts
|
|
6221
|
+
* const { credentials, account } = await AccountSchema.createAs(worker, {
|
|
6222
|
+
* creationProps: { name: "My Account" },
|
|
6223
|
+
* onCreate: async (account, worker, credentials) => {
|
|
6224
|
+
* account.root.$jazz.owner.addMember(worker, "writer");
|
|
6225
|
+
* },
|
|
6226
|
+
* });
|
|
6227
|
+
* ```
|
|
6228
|
+
*/
|
|
6202
6229
|
createAs(worker, options) {
|
|
6203
6230
|
return this.coValueClass.createAs(worker, options);
|
|
6204
6231
|
}
|
|
@@ -7850,4 +7877,4 @@ export {
|
|
|
7850
7877
|
JazzContextManager
|
|
7851
7878
|
};
|
|
7852
7879
|
/* istanbul ignore file -- @preserve */
|
|
7853
|
-
//# sourceMappingURL=chunk-
|
|
7880
|
+
//# sourceMappingURL=chunk-MI24YFCY.js.map
|