convex-zen 0.0.1 → 1.1.0
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/dist/cli/generate.d.ts.map +1 -1
- package/dist/cli/generate.js +263 -62
- package/dist/cli/generate.js.map +1 -1
- package/dist/cli/index.js +12 -13
- package/dist/cli/index.js.map +1 -1
- package/dist/client/auth-runtime.d.ts +84 -0
- package/dist/client/auth-runtime.d.ts.map +1 -0
- package/dist/client/auth-runtime.js +434 -0
- package/dist/client/auth-runtime.js.map +1 -0
- package/dist/client/auth-token-manager.d.ts +34 -0
- package/dist/client/auth-token-manager.d.ts.map +1 -0
- package/dist/client/auth-token-manager.js +114 -0
- package/dist/client/auth-token-manager.js.map +1 -0
- package/dist/client/index.d.ts +87 -38
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +157 -47
- package/dist/client/index.js.map +1 -1
- package/dist/client/plugins/admin.d.ts +29 -27
- package/dist/client/plugins/admin.d.ts.map +1 -1
- package/dist/client/plugins/admin.js +45 -75
- package/dist/client/plugins/admin.js.map +1 -1
- package/dist/client/providers.d.ts +2 -0
- package/dist/client/providers.d.ts.map +1 -1
- package/dist/client/providers.js +10 -2
- package/dist/client/providers.js.map +1 -1
- package/dist/client/tanstack-start-client-plugins.d.ts +1 -0
- package/dist/client/tanstack-start-client-plugins.d.ts.map +1 -1
- package/dist/client/tanstack-start-client-plugins.js +2 -1
- package/dist/client/tanstack-start-client-plugins.js.map +1 -1
- package/dist/client/tanstack-start-client.d.ts +170 -5
- package/dist/client/tanstack-start-client.d.ts.map +1 -1
- package/dist/client/tanstack-start-client.js +489 -8
- package/dist/client/tanstack-start-client.js.map +1 -1
- package/dist/client/tanstack-start-identity-jwt.d.ts +42 -0
- package/dist/client/tanstack-start-identity-jwt.d.ts.map +1 -0
- package/dist/client/tanstack-start-identity-jwt.js +203 -0
- package/dist/client/tanstack-start-identity-jwt.js.map +1 -0
- package/dist/client/tanstack-start-plugin-meta.d.ts +9 -0
- package/dist/client/tanstack-start-plugin-meta.d.ts.map +1 -0
- package/dist/client/tanstack-start-plugin-meta.js +8 -0
- package/dist/client/tanstack-start-plugin-meta.js.map +1 -0
- package/dist/client/tanstack-start-plugins.d.ts +45 -11
- package/dist/client/tanstack-start-plugins.d.ts.map +1 -1
- package/dist/client/tanstack-start-plugins.js +318 -55
- package/dist/client/tanstack-start-plugins.js.map +1 -1
- package/dist/client/tanstack-start.d.ts +74 -14
- package/dist/client/tanstack-start.d.ts.map +1 -1
- package/dist/client/tanstack-start.js +371 -32
- package/dist/client/tanstack-start.js.map +1 -1
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +18 -3
- package/src/cli/generate.ts +341 -65
- package/src/cli/index.ts +16 -14
- package/src/client/auth-runtime.ts +594 -0
- package/src/client/auth-token-manager.ts +196 -0
- package/src/client/index.ts +836 -648
- package/src/client/plugins/admin.ts +147 -89
- package/src/client/providers.ts +12 -2
- package/src/client/tanstack-start-client-plugins.ts +3 -1
- package/src/client/tanstack-start-client.ts +1126 -14
- package/src/client/tanstack-start-identity-jwt.ts +287 -0
- package/src/client/tanstack-start-plugin-meta.ts +21 -0
- package/src/client/tanstack-start-plugins.ts +506 -77
- package/src/client/tanstack-start.ts +574 -43
- package/src/component/_generated/component.ts +48 -21
- package/src/component/core/sessions.ts +221 -152
- package/src/component/core/users.ts +209 -121
- package/src/component/core/verifications.ts +124 -99
- package/src/component/gateway.ts +198 -162
- package/src/component/lib/crypto.ts +90 -0
- package/src/component/lib/internalApi.ts +6 -6
- package/src/component/lib/rateLimit.ts +88 -72
- package/src/component/lib/validators.ts +1 -0
- package/src/component/plugins/admin.ts +157 -107
- package/src/component/providers/emailPassword.ts +289 -276
- package/src/component/providers/oauth.ts +308 -200
- package/src/types.ts +26 -0
- package/dist/component/_generated/api.d.ts +0 -50
- package/dist/component/_generated/api.d.ts.map +0 -1
- package/dist/component/_generated/api.js +0 -31
- package/dist/component/_generated/api.js.map +0 -1
- package/dist/component/_generated/component.d.ts +0 -92
- package/dist/component/_generated/component.d.ts.map +0 -1
- package/dist/component/_generated/component.js +0 -11
- package/dist/component/_generated/component.js.map +0 -1
- package/dist/component/_generated/dataModel.d.ts +0 -46
- package/dist/component/_generated/dataModel.d.ts.map +0 -1
- package/dist/component/_generated/dataModel.js +0 -11
- package/dist/component/_generated/dataModel.js.map +0 -1
- package/dist/component/_generated/server.d.ts +0 -121
- package/dist/component/_generated/server.d.ts.map +0 -1
- package/dist/component/_generated/server.js +0 -78
- package/dist/component/_generated/server.js.map +0 -1
- package/dist/component/core/sessions.d.ts +0 -33
- package/dist/component/core/sessions.d.ts.map +0 -1
- package/dist/component/core/sessions.js +0 -186
- package/dist/component/core/sessions.js.map +0 -1
- package/dist/component/core/users.d.ts +0 -19
- package/dist/component/core/users.d.ts.map +0 -1
- package/dist/component/core/users.js +0 -154
- package/dist/component/core/users.js.map +0 -1
- package/dist/component/core/verifications.d.ts +0 -34
- package/dist/component/core/verifications.d.ts.map +0 -1
- package/dist/component/core/verifications.js +0 -135
- package/dist/component/core/verifications.js.map +0 -1
- package/dist/component/gateway.d.ts +0 -16
- package/dist/component/gateway.d.ts.map +0 -1
- package/dist/component/gateway.js +0 -229
- package/dist/component/gateway.js.map +0 -1
- package/dist/component/lib/crypto.d.ts +0 -24
- package/dist/component/lib/crypto.d.ts.map +0 -1
- package/dist/component/lib/crypto.js +0 -57
- package/dist/component/lib/crypto.js.map +0 -1
- package/dist/component/lib/rateLimit.d.ts +0 -26
- package/dist/component/lib/rateLimit.d.ts.map +0 -1
- package/dist/component/lib/rateLimit.js +0 -96
- package/dist/component/lib/rateLimit.js.map +0 -1
- package/dist/component/lib/validators.d.ts +0 -19
- package/dist/component/lib/validators.d.ts.map +0 -1
- package/dist/component/lib/validators.js +0 -12
- package/dist/component/lib/validators.js.map +0 -1
- package/dist/component/plugins/admin.d.ts +0 -72
- package/dist/component/plugins/admin.d.ts.map +0 -1
- package/dist/component/plugins/admin.js +0 -152
- package/dist/component/plugins/admin.js.map +0 -1
- package/dist/component/providers/emailPassword.d.ts +0 -49
- package/dist/component/providers/emailPassword.d.ts.map +0 -1
- package/dist/component/providers/emailPassword.js +0 -316
- package/dist/component/providers/emailPassword.js.map +0 -1
- package/dist/component/providers/oauth.d.ts +0 -33
- package/dist/component/providers/oauth.d.ts.map +0 -1
- package/dist/component/providers/oauth.js +0 -256
- package/dist/component/providers/oauth.js.map +0 -1
- package/dist/component/schema.d.ts +0 -132
- package/dist/component/schema.d.ts.map +0 -1
- package/dist/component/schema.js +0 -82
- package/dist/component/schema.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/cli/generate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/cli/generate.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA2cD,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CA+IzB"}
|
package/dist/cli/generate.js
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import { access, mkdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
1
|
+
import { access, mkdir, readFile, readdir, rm, writeFile, } from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
const GENERATED_MARKER = "// @generated by convex-zen generate. DO NOT EDIT.";
|
|
4
|
+
const RESERVED_CORE_FUNCTION_NAMES = new Set([
|
|
5
|
+
"getSession",
|
|
6
|
+
"signIn",
|
|
7
|
+
"signOut",
|
|
8
|
+
"plugin",
|
|
9
|
+
"core",
|
|
10
|
+
]);
|
|
4
11
|
function normalizeContent(content) {
|
|
5
12
|
return content.endsWith("\n") ? content : `${content}\n`;
|
|
6
13
|
}
|
|
@@ -16,20 +23,99 @@ async function fileExists(filePath) {
|
|
|
16
23
|
function isGeneratedFile(content) {
|
|
17
24
|
return content.startsWith(GENERATED_MARKER);
|
|
18
25
|
}
|
|
19
|
-
function
|
|
26
|
+
async function resolveAuthSource(cwd) {
|
|
27
|
+
const zenConfigPath = path.join(cwd, "convex", "zen.config.ts");
|
|
28
|
+
if (await fileExists(zenConfigPath)) {
|
|
29
|
+
return {
|
|
30
|
+
absolutePath: zenConfigPath,
|
|
31
|
+
relativePath: path.join("convex", "zen.config.ts"),
|
|
32
|
+
layout: "zen",
|
|
33
|
+
coreAuthImportPath: "../zen.config",
|
|
34
|
+
pluginAuthImportPath: "../../zen.config",
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const zenPath = path.join(cwd, "convex", "zenConvex.ts");
|
|
38
|
+
if (await fileExists(zenPath)) {
|
|
39
|
+
return {
|
|
40
|
+
absolutePath: zenPath,
|
|
41
|
+
relativePath: path.join("convex", "zenConvex.ts"),
|
|
42
|
+
layout: "zen",
|
|
43
|
+
coreAuthImportPath: "../zenConvex",
|
|
44
|
+
pluginAuthImportPath: "../../zenConvex",
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const rootPath = path.join(cwd, "convex", "auth.ts");
|
|
48
|
+
if (await fileExists(rootPath)) {
|
|
49
|
+
return {
|
|
50
|
+
absolutePath: rootPath,
|
|
51
|
+
relativePath: path.join("convex", "auth.ts"),
|
|
52
|
+
layout: "root",
|
|
53
|
+
coreAuthImportPath: "../auth",
|
|
54
|
+
pluginAuthImportPath: "../../auth",
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
const indexPath = path.join(cwd, "convex", "auth", "index.ts");
|
|
58
|
+
if (await fileExists(indexPath)) {
|
|
59
|
+
return {
|
|
60
|
+
absolutePath: indexPath,
|
|
61
|
+
relativePath: path.join("convex", "auth", "index.ts"),
|
|
62
|
+
layout: "index",
|
|
63
|
+
coreAuthImportPath: ".",
|
|
64
|
+
pluginAuthImportPath: "..",
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
function detectEnabledPlugins(authSource) {
|
|
20
70
|
const plugins = new Set();
|
|
21
|
-
if (/adminPlugin\s*\(/.test(
|
|
71
|
+
if (/adminPlugin\s*\(/.test(authSource)) {
|
|
22
72
|
plugins.add("admin");
|
|
23
73
|
}
|
|
24
74
|
return plugins;
|
|
25
75
|
}
|
|
26
|
-
function
|
|
76
|
+
function hasOAuthProviders(authSource) {
|
|
77
|
+
return (/\bproviders\s*:\s*\[/.test(authSource) ||
|
|
78
|
+
/\bgoogleProvider\s*\(/.test(authSource) ||
|
|
79
|
+
/\bgithubProvider\s*\(/.test(authSource));
|
|
80
|
+
}
|
|
81
|
+
function renderCoreFile(options) {
|
|
82
|
+
const serverImports = options.includeOAuth
|
|
83
|
+
? "action, mutation, query"
|
|
84
|
+
: "mutation, query";
|
|
85
|
+
const authImportPath = options.authImportPath;
|
|
86
|
+
const oauthExports = options.includeOAuth
|
|
87
|
+
? `
|
|
88
|
+
export const getOAuthUrl = action({
|
|
89
|
+
args: {
|
|
90
|
+
providerId: v.string(),
|
|
91
|
+
redirectUrl: v.optional(v.string()),
|
|
92
|
+
},
|
|
93
|
+
handler: async (ctx, args) => {
|
|
94
|
+
return auth.getOAuthUrl(ctx, args.providerId, args.redirectUrl);
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
export const handleOAuthCallback = action({
|
|
99
|
+
args: {
|
|
100
|
+
providerId: v.string(),
|
|
101
|
+
code: v.string(),
|
|
102
|
+
state: v.string(),
|
|
103
|
+
redirectUrl: v.optional(v.string()),
|
|
104
|
+
ipAddress: v.optional(v.string()),
|
|
105
|
+
userAgent: v.optional(v.string()),
|
|
106
|
+
},
|
|
107
|
+
handler: async (ctx, args) => {
|
|
108
|
+
return auth.handleCallback(ctx, args);
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
`
|
|
112
|
+
: "";
|
|
27
113
|
return normalizeContent(`${GENERATED_MARKER}
|
|
28
114
|
import { v } from "convex/values";
|
|
29
|
-
import {
|
|
30
|
-
import { auth } from "
|
|
115
|
+
import { ${serverImports} } from "../_generated/server";
|
|
116
|
+
import { auth } from "${authImportPath}";
|
|
31
117
|
|
|
32
|
-
export const signUp =
|
|
118
|
+
export const signUp = mutation({
|
|
33
119
|
args: {
|
|
34
120
|
email: v.string(),
|
|
35
121
|
password: v.string(),
|
|
@@ -41,7 +127,7 @@ export const signUp = action({
|
|
|
41
127
|
},
|
|
42
128
|
});
|
|
43
129
|
|
|
44
|
-
export const signInWithEmail =
|
|
130
|
+
export const signInWithEmail = mutation({
|
|
45
131
|
args: {
|
|
46
132
|
email: v.string(),
|
|
47
133
|
password: v.string(),
|
|
@@ -53,7 +139,7 @@ export const signInWithEmail = action({
|
|
|
53
139
|
},
|
|
54
140
|
});
|
|
55
141
|
|
|
56
|
-
export const verifyEmail =
|
|
142
|
+
export const verifyEmail = mutation({
|
|
57
143
|
args: {
|
|
58
144
|
email: v.string(),
|
|
59
145
|
code: v.string(),
|
|
@@ -63,7 +149,7 @@ export const verifyEmail = action({
|
|
|
63
149
|
},
|
|
64
150
|
});
|
|
65
151
|
|
|
66
|
-
export const requestPasswordReset =
|
|
152
|
+
export const requestPasswordReset = mutation({
|
|
67
153
|
args: {
|
|
68
154
|
email: v.string(),
|
|
69
155
|
ipAddress: v.optional(v.string()),
|
|
@@ -73,7 +159,7 @@ export const requestPasswordReset = action({
|
|
|
73
159
|
},
|
|
74
160
|
});
|
|
75
161
|
|
|
76
|
-
export const resetPassword =
|
|
162
|
+
export const resetPassword = mutation({
|
|
77
163
|
args: {
|
|
78
164
|
email: v.string(),
|
|
79
165
|
code: v.string(),
|
|
@@ -84,7 +170,7 @@ export const resetPassword = action({
|
|
|
84
170
|
},
|
|
85
171
|
});
|
|
86
172
|
|
|
87
|
-
export const
|
|
173
|
+
export const invalidateSession = mutation({
|
|
88
174
|
args: {
|
|
89
175
|
token: v.string(),
|
|
90
176
|
},
|
|
@@ -93,7 +179,7 @@ export const signOut = action({
|
|
|
93
179
|
},
|
|
94
180
|
});
|
|
95
181
|
|
|
96
|
-
export const validateSession =
|
|
182
|
+
export const validateSession = mutation({
|
|
97
183
|
args: {
|
|
98
184
|
token: v.string(),
|
|
99
185
|
},
|
|
@@ -102,7 +188,7 @@ export const validateSession = action({
|
|
|
102
188
|
},
|
|
103
189
|
});
|
|
104
190
|
|
|
105
|
-
export const currentUser =
|
|
191
|
+
export const currentUser = query({
|
|
106
192
|
args: {
|
|
107
193
|
token: v.optional(v.string()),
|
|
108
194
|
},
|
|
@@ -111,40 +197,28 @@ export const currentUser = action({
|
|
|
111
197
|
},
|
|
112
198
|
});
|
|
113
199
|
|
|
114
|
-
|
|
115
|
-
args: {
|
|
116
|
-
providerId: v.string(),
|
|
117
|
-
redirectUrl: v.optional(v.string()),
|
|
118
|
-
},
|
|
119
|
-
handler: async (ctx, args) => {
|
|
120
|
-
return auth.getOAuthUrl(ctx, args.providerId, args.redirectUrl);
|
|
121
|
-
},
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
export const handleOAuthCallback = action({
|
|
125
|
-
args: {
|
|
126
|
-
providerId: v.string(),
|
|
127
|
-
code: v.string(),
|
|
128
|
-
state: v.string(),
|
|
129
|
-
redirectUrl: v.optional(v.string()),
|
|
130
|
-
ipAddress: v.optional(v.string()),
|
|
131
|
-
userAgent: v.optional(v.string()),
|
|
132
|
-
},
|
|
133
|
-
handler: async (ctx, args) => {
|
|
134
|
-
return auth.handleCallback(ctx, args);
|
|
135
|
-
},
|
|
136
|
-
});
|
|
200
|
+
${oauthExports}
|
|
137
201
|
`);
|
|
138
202
|
}
|
|
139
|
-
function
|
|
203
|
+
function renderAdminPluginFile(options) {
|
|
204
|
+
const authImportPath = options.authImportPath;
|
|
140
205
|
return normalizeContent(`${GENERATED_MARKER}
|
|
141
206
|
import { v } from "convex/values";
|
|
142
|
-
import {
|
|
143
|
-
import { auth } from "
|
|
207
|
+
import { mutation, query } from "../../_generated/server";
|
|
208
|
+
import { auth } from "${authImportPath}";
|
|
209
|
+
|
|
210
|
+
export const isAdmin = query({
|
|
211
|
+
args: {},
|
|
212
|
+
handler: async (ctx) => {
|
|
213
|
+
if (!auth.admin) {
|
|
214
|
+
throw new Error("Admin plugin is not enabled");
|
|
215
|
+
}
|
|
216
|
+
return auth.admin.isAdmin(ctx);
|
|
217
|
+
},
|
|
218
|
+
});
|
|
144
219
|
|
|
145
|
-
export const listUsers =
|
|
220
|
+
export const listUsers = query({
|
|
146
221
|
args: {
|
|
147
|
-
token: v.optional(v.string()),
|
|
148
222
|
limit: v.optional(v.number()),
|
|
149
223
|
cursor: v.optional(v.string()),
|
|
150
224
|
},
|
|
@@ -156,9 +230,8 @@ export const listUsers = action({
|
|
|
156
230
|
},
|
|
157
231
|
});
|
|
158
232
|
|
|
159
|
-
export const banUser =
|
|
233
|
+
export const banUser = mutation({
|
|
160
234
|
args: {
|
|
161
|
-
token: v.optional(v.string()),
|
|
162
235
|
userId: v.string(),
|
|
163
236
|
reason: v.optional(v.string()),
|
|
164
237
|
expiresAt: v.optional(v.number()),
|
|
@@ -171,9 +244,8 @@ export const banUser = action({
|
|
|
171
244
|
},
|
|
172
245
|
});
|
|
173
246
|
|
|
174
|
-
export const unbanUser =
|
|
247
|
+
export const unbanUser = mutation({
|
|
175
248
|
args: {
|
|
176
|
-
token: v.optional(v.string()),
|
|
177
249
|
userId: v.string(),
|
|
178
250
|
},
|
|
179
251
|
handler: async (ctx, args) => {
|
|
@@ -184,9 +256,8 @@ export const unbanUser = action({
|
|
|
184
256
|
},
|
|
185
257
|
});
|
|
186
258
|
|
|
187
|
-
export const setRole =
|
|
259
|
+
export const setRole = mutation({
|
|
188
260
|
args: {
|
|
189
|
-
token: v.optional(v.string()),
|
|
190
261
|
userId: v.string(),
|
|
191
262
|
role: v.string(),
|
|
192
263
|
},
|
|
@@ -198,9 +269,8 @@ export const setRole = action({
|
|
|
198
269
|
},
|
|
199
270
|
});
|
|
200
271
|
|
|
201
|
-
export const deleteUser =
|
|
272
|
+
export const deleteUser = mutation({
|
|
202
273
|
args: {
|
|
203
|
-
token: v.optional(v.string()),
|
|
204
274
|
userId: v.string(),
|
|
205
275
|
},
|
|
206
276
|
handler: async (ctx, args) => {
|
|
@@ -212,6 +282,75 @@ export const deleteUser = action({
|
|
|
212
282
|
});
|
|
213
283
|
`);
|
|
214
284
|
}
|
|
285
|
+
function parseFunctionKinds(source) {
|
|
286
|
+
const result = {};
|
|
287
|
+
const pattern = /export\s+const\s+([A-Za-z0-9_]+)\s*=\s*(query|mutation|action)\s*\(/g;
|
|
288
|
+
let match = pattern.exec(source);
|
|
289
|
+
while (match) {
|
|
290
|
+
const functionName = match[1];
|
|
291
|
+
const functionKind = match[2];
|
|
292
|
+
if (functionName) {
|
|
293
|
+
result[functionName] = functionKind;
|
|
294
|
+
}
|
|
295
|
+
match = pattern.exec(source);
|
|
296
|
+
}
|
|
297
|
+
return result;
|
|
298
|
+
}
|
|
299
|
+
function parseExportedFunctionNames(source) {
|
|
300
|
+
const names = new Set();
|
|
301
|
+
const pattern = /export\s+const\s+([A-Za-z0-9_]+)\s*=/g;
|
|
302
|
+
let match = pattern.exec(source);
|
|
303
|
+
while (match) {
|
|
304
|
+
if (match[1]) {
|
|
305
|
+
names.add(match[1]);
|
|
306
|
+
}
|
|
307
|
+
match = pattern.exec(source);
|
|
308
|
+
}
|
|
309
|
+
return names;
|
|
310
|
+
}
|
|
311
|
+
function assertNoReservedCoreFunctionNames(source) {
|
|
312
|
+
const exportedNames = parseExportedFunctionNames(source);
|
|
313
|
+
const conflicts = [];
|
|
314
|
+
for (const reservedName of RESERVED_CORE_FUNCTION_NAMES) {
|
|
315
|
+
if (exportedNames.has(reservedName)) {
|
|
316
|
+
conflicts.push(reservedName);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
if (conflicts.length === 0) {
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
throw new Error(`Generated core wrappers include reserved auth-client names: ${conflicts.join(", ")}. ` +
|
|
323
|
+
"Rename core wrappers to non-reserved names.");
|
|
324
|
+
}
|
|
325
|
+
function renderAuthMetaFile(coreMeta, pluginMeta) {
|
|
326
|
+
const normalizedCore = Object.fromEntries(Object.entries(coreMeta).sort(([a], [b]) => a.localeCompare(b)));
|
|
327
|
+
const normalizedPluginEntries = Object.entries(pluginMeta)
|
|
328
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
329
|
+
.map(([pluginName, functions]) => {
|
|
330
|
+
const sortedFunctions = Object.fromEntries(Object.entries(functions).sort(([a], [b]) => a.localeCompare(b)));
|
|
331
|
+
return [pluginName, sortedFunctions];
|
|
332
|
+
});
|
|
333
|
+
const normalizedPlugin = Object.fromEntries(normalizedPluginEntries);
|
|
334
|
+
return normalizeContent(`${GENERATED_MARKER}
|
|
335
|
+
export const authMeta = ${JSON.stringify({
|
|
336
|
+
core: normalizedCore,
|
|
337
|
+
plugin: normalizedPlugin,
|
|
338
|
+
}, null, 2)} as const;
|
|
339
|
+
|
|
340
|
+
export const authCoreMeta = authMeta.core;
|
|
341
|
+
export const authPluginMeta = authMeta.plugin;
|
|
342
|
+
|
|
343
|
+
export type AuthMeta = typeof authMeta;
|
|
344
|
+
export type AuthCoreMeta = typeof authCoreMeta;
|
|
345
|
+
export type AuthPluginMeta = typeof authPluginMeta;
|
|
346
|
+
`);
|
|
347
|
+
}
|
|
348
|
+
function renderPluginMetaCompatFile() {
|
|
349
|
+
return normalizeContent(`${GENERATED_MARKER}
|
|
350
|
+
export { authPluginMeta } from "../metaGenerated";
|
|
351
|
+
export type { AuthPluginMeta } from "../metaGenerated";
|
|
352
|
+
`);
|
|
353
|
+
}
|
|
215
354
|
async function upsertGeneratedFile(file, options, result) {
|
|
216
355
|
const exists = await fileExists(file.absolutePath);
|
|
217
356
|
if (!exists) {
|
|
@@ -263,35 +402,97 @@ export async function generateAuthFunctions(options) {
|
|
|
263
402
|
warnings: [],
|
|
264
403
|
};
|
|
265
404
|
const authDir = path.join(options.cwd, "convex", "auth");
|
|
266
|
-
const
|
|
267
|
-
|
|
268
|
-
|
|
405
|
+
const pluginDir = path.join(authDir, "plugin");
|
|
406
|
+
const authSource = await resolveAuthSource(options.cwd);
|
|
407
|
+
if (!authSource) {
|
|
408
|
+
throw new Error(`Missing auth source file. Expected one of: ${path.join("convex", "zen.config.ts")}, ${path.join("convex", "zenConvex.ts")}`);
|
|
409
|
+
}
|
|
410
|
+
if (authSource.layout !== "zen") {
|
|
411
|
+
result.warnings.push(`Legacy auth source detected (${authSource.relativePath}). Move to ${path.join("convex", "zen.config.ts")}.`);
|
|
269
412
|
}
|
|
270
|
-
const
|
|
271
|
-
const enabledPlugins = detectEnabledPlugins(
|
|
272
|
-
|
|
273
|
-
|
|
413
|
+
const authSourceContents = await readFile(authSource.absolutePath, "utf8");
|
|
414
|
+
const enabledPlugins = detectEnabledPlugins(authSourceContents);
|
|
415
|
+
const includeOAuth = hasOAuthProviders(authSourceContents);
|
|
416
|
+
const coreAuthImportPath = authSource.coreAuthImportPath;
|
|
417
|
+
const pluginAuthImportPath = authSource.pluginAuthImportPath;
|
|
418
|
+
if (!/export\s+const\s+authOptions\s*=/.test(authSourceContents)) {
|
|
419
|
+
result.warnings.push(`authOptions export was not found in ${authSource.relativePath} (recommended for generator compatibility).`);
|
|
274
420
|
}
|
|
421
|
+
const coreContent = renderCoreFile({
|
|
422
|
+
includeOAuth,
|
|
423
|
+
authImportPath: coreAuthImportPath,
|
|
424
|
+
});
|
|
425
|
+
assertNoReservedCoreFunctionNames(coreContent);
|
|
275
426
|
const filesToGenerate = [
|
|
276
427
|
{
|
|
277
428
|
absolutePath: path.join(authDir, "core.ts"),
|
|
278
429
|
relativePath: path.join("convex", "auth", "core.ts"),
|
|
279
|
-
content:
|
|
430
|
+
content: coreContent,
|
|
280
431
|
},
|
|
281
432
|
];
|
|
433
|
+
const generatedPluginSources = new Map();
|
|
434
|
+
const coreMeta = parseFunctionKinds(coreContent);
|
|
282
435
|
if (enabledPlugins.has("admin")) {
|
|
436
|
+
const adminContent = renderAdminPluginFile({
|
|
437
|
+
authImportPath: pluginAuthImportPath,
|
|
438
|
+
});
|
|
283
439
|
filesToGenerate.push({
|
|
284
|
-
absolutePath: path.join(
|
|
285
|
-
relativePath: path.join("convex", "auth", "admin.ts"),
|
|
286
|
-
content:
|
|
440
|
+
absolutePath: path.join(pluginDir, "admin.ts"),
|
|
441
|
+
relativePath: path.join("convex", "auth", "plugin", "admin.ts"),
|
|
442
|
+
content: adminContent,
|
|
287
443
|
});
|
|
444
|
+
generatedPluginSources.set("admin", adminContent);
|
|
288
445
|
}
|
|
289
446
|
for (const file of filesToGenerate) {
|
|
290
447
|
await upsertGeneratedFile(file, options, result);
|
|
291
448
|
}
|
|
449
|
+
await deleteGeneratedFileIfExists(path.join(authDir, "admin.ts"), path.join("convex", "auth", "admin.ts"), options, result);
|
|
292
450
|
if (!enabledPlugins.has("admin")) {
|
|
293
|
-
await deleteGeneratedFileIfExists(path.join(
|
|
451
|
+
await deleteGeneratedFileIfExists(path.join(pluginDir, "admin.ts"), path.join("convex", "auth", "plugin", "admin.ts"), options, result);
|
|
452
|
+
}
|
|
453
|
+
const pluginMeta = {};
|
|
454
|
+
for (const [pluginName, source] of generatedPluginSources) {
|
|
455
|
+
const kinds = parseFunctionKinds(source);
|
|
456
|
+
if (Object.keys(kinds).length > 0) {
|
|
457
|
+
pluginMeta[pluginName] = kinds;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
if (await fileExists(pluginDir)) {
|
|
461
|
+
const entries = await readdir(pluginDir, { withFileTypes: true });
|
|
462
|
+
for (const entry of entries) {
|
|
463
|
+
if (!entry.isFile() || !entry.name.endsWith(".ts")) {
|
|
464
|
+
continue;
|
|
465
|
+
}
|
|
466
|
+
if (entry.name === "metaGenerated.ts") {
|
|
467
|
+
continue;
|
|
468
|
+
}
|
|
469
|
+
const pluginName = entry.name.slice(0, -3);
|
|
470
|
+
if (generatedPluginSources.has(pluginName)) {
|
|
471
|
+
continue;
|
|
472
|
+
}
|
|
473
|
+
const absolutePath = path.join(pluginDir, entry.name);
|
|
474
|
+
const source = await readFile(absolutePath, "utf8");
|
|
475
|
+
if (pluginName === "admin" &&
|
|
476
|
+
!enabledPlugins.has("admin") &&
|
|
477
|
+
isGeneratedFile(source)) {
|
|
478
|
+
continue;
|
|
479
|
+
}
|
|
480
|
+
const kinds = parseFunctionKinds(source);
|
|
481
|
+
if (Object.keys(kinds).length > 0) {
|
|
482
|
+
pluginMeta[pluginName] = kinds;
|
|
483
|
+
}
|
|
484
|
+
}
|
|
294
485
|
}
|
|
486
|
+
await upsertGeneratedFile({
|
|
487
|
+
absolutePath: path.join(authDir, "metaGenerated.ts"),
|
|
488
|
+
relativePath: path.join("convex", "auth", "metaGenerated.ts"),
|
|
489
|
+
content: renderAuthMetaFile(coreMeta, pluginMeta),
|
|
490
|
+
}, options, result);
|
|
491
|
+
await upsertGeneratedFile({
|
|
492
|
+
absolutePath: path.join(pluginDir, "metaGenerated.ts"),
|
|
493
|
+
relativePath: path.join("convex", "auth", "plugin", "metaGenerated.ts"),
|
|
494
|
+
content: renderPluginMetaCompatFile(),
|
|
495
|
+
}, options, result);
|
|
295
496
|
return result;
|
|
296
497
|
}
|
|
297
498
|
//# sourceMappingURL=generate.js.map
|
package/dist/cli/generate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/cli/generate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/cli/generate.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -6,7 +6,7 @@ function printHelp() {
|
|
|
6
6
|
console.log(`convex-zen CLI
|
|
7
7
|
|
|
8
8
|
Usage:
|
|
9
|
-
convex-zen generate [--cwd <path>] [--check]
|
|
9
|
+
convex-zen generate [--cwd <path>] [--check]
|
|
10
10
|
|
|
11
11
|
Commands:
|
|
12
12
|
generate Generate Convex auth function wrappers in convex/auth/
|
|
@@ -14,7 +14,6 @@ Commands:
|
|
|
14
14
|
Flags:
|
|
15
15
|
--cwd Workspace root (default: current working directory)
|
|
16
16
|
--check Check for drift without writing files
|
|
17
|
-
--verbose Print additional details
|
|
18
17
|
-h, --help Show this help message
|
|
19
18
|
`);
|
|
20
19
|
}
|
|
@@ -68,6 +67,17 @@ function printSummary(result) {
|
|
|
68
67
|
if (totalChanges === 0) {
|
|
69
68
|
console.log(" status: up-to-date");
|
|
70
69
|
}
|
|
70
|
+
const orderedGroups = [
|
|
71
|
+
{ status: "created", files: result.created },
|
|
72
|
+
{ status: "updated", files: result.updated },
|
|
73
|
+
{ status: "deleted", files: result.deleted },
|
|
74
|
+
{ status: "unchanged", files: result.unchanged },
|
|
75
|
+
];
|
|
76
|
+
for (const group of orderedGroups) {
|
|
77
|
+
for (const file of group.files) {
|
|
78
|
+
console.log(` ${group.status}: ${file}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
71
81
|
for (const warning of result.warnings) {
|
|
72
82
|
console.warn(`warning: ${warning}`);
|
|
73
83
|
}
|
|
@@ -83,17 +93,6 @@ async function main() {
|
|
|
83
93
|
}
|
|
84
94
|
const result = await generateAuthFunctions(options);
|
|
85
95
|
printSummary(result);
|
|
86
|
-
if (options.verbose) {
|
|
87
|
-
for (const file of result.created) {
|
|
88
|
-
console.log(`created: ${file}`);
|
|
89
|
-
}
|
|
90
|
-
for (const file of result.updated) {
|
|
91
|
-
console.log(`updated: ${file}`);
|
|
92
|
-
}
|
|
93
|
-
for (const file of result.deleted) {
|
|
94
|
-
console.log(`deleted: ${file}`);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
96
|
if (options.check) {
|
|
98
97
|
const hasDrift = result.created.length > 0 ||
|
|
99
98
|
result.updated.length > 0 ||
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EACL,qBAAqB,GAGtB,MAAM,eAAe,CAAC;AAEvB,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { type AuthTokenPayload } from "./auth-token-manager";
|
|
2
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
3
|
+
export interface ConvexAuthClientLike {
|
|
4
|
+
setAuth: (fetchAccessToken: () => Promise<string | null>, onChange?: (isAuthenticated: boolean) => void) => void;
|
|
5
|
+
clearAuth: () => void;
|
|
6
|
+
}
|
|
7
|
+
export type AuthStatus = "anonymous" | "authenticating" | "authenticated" | "refreshing" | "stale";
|
|
8
|
+
export interface AuthRuntimeState {
|
|
9
|
+
status: AuthStatus;
|
|
10
|
+
token: string | null;
|
|
11
|
+
issuedAtMs?: number;
|
|
12
|
+
expiresAtMs?: number;
|
|
13
|
+
lastRefreshAtMs?: number;
|
|
14
|
+
lastError?: Error;
|
|
15
|
+
}
|
|
16
|
+
export type AuthRuntimeEvent = {
|
|
17
|
+
type: "state";
|
|
18
|
+
state: AuthRuntimeState;
|
|
19
|
+
} | {
|
|
20
|
+
type: "token";
|
|
21
|
+
payload: AuthTokenPayload;
|
|
22
|
+
} | {
|
|
23
|
+
type: "signed-in";
|
|
24
|
+
} | {
|
|
25
|
+
type: "signed-out";
|
|
26
|
+
} | {
|
|
27
|
+
type: "invalidated";
|
|
28
|
+
reason?: string;
|
|
29
|
+
} | {
|
|
30
|
+
type: "error";
|
|
31
|
+
error: Error;
|
|
32
|
+
};
|
|
33
|
+
export interface AuthRuntimeStorage {
|
|
34
|
+
get: () => MaybePromise<AuthTokenPayload | null>;
|
|
35
|
+
set: (payload: AuthTokenPayload | null) => MaybePromise<void>;
|
|
36
|
+
clear: () => MaybePromise<void>;
|
|
37
|
+
}
|
|
38
|
+
export type AuthSyncSignal = "token-invalidated" | "token-cleared" | "signed-in" | "signed-out";
|
|
39
|
+
export interface AuthRuntimeSync {
|
|
40
|
+
publish: (signal: AuthSyncSignal) => void;
|
|
41
|
+
subscribe: (listener: (signal: AuthSyncSignal) => void) => () => void;
|
|
42
|
+
}
|
|
43
|
+
export interface AuthRuntimeTokenProvider {
|
|
44
|
+
getToken: (options?: {
|
|
45
|
+
forceRefresh?: boolean;
|
|
46
|
+
}) => Promise<AuthTokenPayload>;
|
|
47
|
+
}
|
|
48
|
+
export interface AuthRuntimeOptions {
|
|
49
|
+
tokenProvider: AuthRuntimeTokenProvider;
|
|
50
|
+
storage?: AuthRuntimeStorage;
|
|
51
|
+
sync?: AuthRuntimeSync;
|
|
52
|
+
now?: () => number;
|
|
53
|
+
refreshSkewMs?: number;
|
|
54
|
+
maxUnauthorizedRefreshRetries?: number;
|
|
55
|
+
debug?: boolean;
|
|
56
|
+
}
|
|
57
|
+
export interface AuthRuntime {
|
|
58
|
+
getState: () => AuthRuntimeState;
|
|
59
|
+
subscribe: (listener: (event: AuthRuntimeEvent) => void) => () => void;
|
|
60
|
+
getToken: (options?: {
|
|
61
|
+
forceRefresh?: boolean;
|
|
62
|
+
}) => Promise<string | null>;
|
|
63
|
+
getTokenPayload: (options?: {
|
|
64
|
+
forceRefresh?: boolean;
|
|
65
|
+
}) => Promise<AuthTokenPayload>;
|
|
66
|
+
onSignedIn: () => Promise<void>;
|
|
67
|
+
onSignedOut: () => Promise<void>;
|
|
68
|
+
invalidate: (reason?: string) => Promise<void>;
|
|
69
|
+
clear: () => Promise<void>;
|
|
70
|
+
onUnauthorized: (error?: unknown) => Promise<void>;
|
|
71
|
+
mountConvex: (client: ConvexAuthClientLike) => () => void;
|
|
72
|
+
}
|
|
73
|
+
export interface LocalStorageAuthStorageOptions {
|
|
74
|
+
key?: string;
|
|
75
|
+
}
|
|
76
|
+
export interface BroadcastAuthSyncOptions {
|
|
77
|
+
channelName?: string;
|
|
78
|
+
}
|
|
79
|
+
export declare function createMemoryAuthStorage(): AuthRuntimeStorage;
|
|
80
|
+
export declare function createLocalStorageAuthStorage(options?: LocalStorageAuthStorageOptions): AuthRuntimeStorage;
|
|
81
|
+
export declare function createBroadcastAuthSync(options?: BroadcastAuthSyncOptions): AuthRuntimeSync;
|
|
82
|
+
export declare function createAuthRuntime(options: AuthRuntimeOptions): AuthRuntime;
|
|
83
|
+
export {};
|
|
84
|
+
//# sourceMappingURL=auth-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-runtime.d.ts","sourceRoot":"","sources":["../../src/client/auth-runtime.ts"],"names":[],"mappings":"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"}
|