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.
Files changed (138) hide show
  1. package/dist/cli/generate.d.ts.map +1 -1
  2. package/dist/cli/generate.js +263 -62
  3. package/dist/cli/generate.js.map +1 -1
  4. package/dist/cli/index.js +12 -13
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/client/auth-runtime.d.ts +84 -0
  7. package/dist/client/auth-runtime.d.ts.map +1 -0
  8. package/dist/client/auth-runtime.js +434 -0
  9. package/dist/client/auth-runtime.js.map +1 -0
  10. package/dist/client/auth-token-manager.d.ts +34 -0
  11. package/dist/client/auth-token-manager.d.ts.map +1 -0
  12. package/dist/client/auth-token-manager.js +114 -0
  13. package/dist/client/auth-token-manager.js.map +1 -0
  14. package/dist/client/index.d.ts +87 -38
  15. package/dist/client/index.d.ts.map +1 -1
  16. package/dist/client/index.js +157 -47
  17. package/dist/client/index.js.map +1 -1
  18. package/dist/client/plugins/admin.d.ts +29 -27
  19. package/dist/client/plugins/admin.d.ts.map +1 -1
  20. package/dist/client/plugins/admin.js +45 -75
  21. package/dist/client/plugins/admin.js.map +1 -1
  22. package/dist/client/providers.d.ts +2 -0
  23. package/dist/client/providers.d.ts.map +1 -1
  24. package/dist/client/providers.js +10 -2
  25. package/dist/client/providers.js.map +1 -1
  26. package/dist/client/tanstack-start-client-plugins.d.ts +1 -0
  27. package/dist/client/tanstack-start-client-plugins.d.ts.map +1 -1
  28. package/dist/client/tanstack-start-client-plugins.js +2 -1
  29. package/dist/client/tanstack-start-client-plugins.js.map +1 -1
  30. package/dist/client/tanstack-start-client.d.ts +170 -5
  31. package/dist/client/tanstack-start-client.d.ts.map +1 -1
  32. package/dist/client/tanstack-start-client.js +489 -8
  33. package/dist/client/tanstack-start-client.js.map +1 -1
  34. package/dist/client/tanstack-start-identity-jwt.d.ts +42 -0
  35. package/dist/client/tanstack-start-identity-jwt.d.ts.map +1 -0
  36. package/dist/client/tanstack-start-identity-jwt.js +203 -0
  37. package/dist/client/tanstack-start-identity-jwt.js.map +1 -0
  38. package/dist/client/tanstack-start-plugin-meta.d.ts +9 -0
  39. package/dist/client/tanstack-start-plugin-meta.d.ts.map +1 -0
  40. package/dist/client/tanstack-start-plugin-meta.js +8 -0
  41. package/dist/client/tanstack-start-plugin-meta.js.map +1 -0
  42. package/dist/client/tanstack-start-plugins.d.ts +45 -11
  43. package/dist/client/tanstack-start-plugins.d.ts.map +1 -1
  44. package/dist/client/tanstack-start-plugins.js +318 -55
  45. package/dist/client/tanstack-start-plugins.js.map +1 -1
  46. package/dist/client/tanstack-start.d.ts +74 -14
  47. package/dist/client/tanstack-start.d.ts.map +1 -1
  48. package/dist/client/tanstack-start.js +371 -32
  49. package/dist/client/tanstack-start.js.map +1 -1
  50. package/dist/types.d.ts +22 -0
  51. package/dist/types.d.ts.map +1 -1
  52. package/package.json +18 -3
  53. package/src/cli/generate.ts +341 -65
  54. package/src/cli/index.ts +16 -14
  55. package/src/client/auth-runtime.ts +594 -0
  56. package/src/client/auth-token-manager.ts +196 -0
  57. package/src/client/index.ts +836 -648
  58. package/src/client/plugins/admin.ts +147 -89
  59. package/src/client/providers.ts +12 -2
  60. package/src/client/tanstack-start-client-plugins.ts +3 -1
  61. package/src/client/tanstack-start-client.ts +1126 -14
  62. package/src/client/tanstack-start-identity-jwt.ts +287 -0
  63. package/src/client/tanstack-start-plugin-meta.ts +21 -0
  64. package/src/client/tanstack-start-plugins.ts +506 -77
  65. package/src/client/tanstack-start.ts +574 -43
  66. package/src/component/_generated/component.ts +48 -21
  67. package/src/component/core/sessions.ts +221 -152
  68. package/src/component/core/users.ts +209 -121
  69. package/src/component/core/verifications.ts +124 -99
  70. package/src/component/gateway.ts +198 -162
  71. package/src/component/lib/crypto.ts +90 -0
  72. package/src/component/lib/internalApi.ts +6 -6
  73. package/src/component/lib/rateLimit.ts +88 -72
  74. package/src/component/lib/validators.ts +1 -0
  75. package/src/component/plugins/admin.ts +157 -107
  76. package/src/component/providers/emailPassword.ts +289 -276
  77. package/src/component/providers/oauth.ts +308 -200
  78. package/src/types.ts +26 -0
  79. package/dist/component/_generated/api.d.ts +0 -50
  80. package/dist/component/_generated/api.d.ts.map +0 -1
  81. package/dist/component/_generated/api.js +0 -31
  82. package/dist/component/_generated/api.js.map +0 -1
  83. package/dist/component/_generated/component.d.ts +0 -92
  84. package/dist/component/_generated/component.d.ts.map +0 -1
  85. package/dist/component/_generated/component.js +0 -11
  86. package/dist/component/_generated/component.js.map +0 -1
  87. package/dist/component/_generated/dataModel.d.ts +0 -46
  88. package/dist/component/_generated/dataModel.d.ts.map +0 -1
  89. package/dist/component/_generated/dataModel.js +0 -11
  90. package/dist/component/_generated/dataModel.js.map +0 -1
  91. package/dist/component/_generated/server.d.ts +0 -121
  92. package/dist/component/_generated/server.d.ts.map +0 -1
  93. package/dist/component/_generated/server.js +0 -78
  94. package/dist/component/_generated/server.js.map +0 -1
  95. package/dist/component/core/sessions.d.ts +0 -33
  96. package/dist/component/core/sessions.d.ts.map +0 -1
  97. package/dist/component/core/sessions.js +0 -186
  98. package/dist/component/core/sessions.js.map +0 -1
  99. package/dist/component/core/users.d.ts +0 -19
  100. package/dist/component/core/users.d.ts.map +0 -1
  101. package/dist/component/core/users.js +0 -154
  102. package/dist/component/core/users.js.map +0 -1
  103. package/dist/component/core/verifications.d.ts +0 -34
  104. package/dist/component/core/verifications.d.ts.map +0 -1
  105. package/dist/component/core/verifications.js +0 -135
  106. package/dist/component/core/verifications.js.map +0 -1
  107. package/dist/component/gateway.d.ts +0 -16
  108. package/dist/component/gateway.d.ts.map +0 -1
  109. package/dist/component/gateway.js +0 -229
  110. package/dist/component/gateway.js.map +0 -1
  111. package/dist/component/lib/crypto.d.ts +0 -24
  112. package/dist/component/lib/crypto.d.ts.map +0 -1
  113. package/dist/component/lib/crypto.js +0 -57
  114. package/dist/component/lib/crypto.js.map +0 -1
  115. package/dist/component/lib/rateLimit.d.ts +0 -26
  116. package/dist/component/lib/rateLimit.d.ts.map +0 -1
  117. package/dist/component/lib/rateLimit.js +0 -96
  118. package/dist/component/lib/rateLimit.js.map +0 -1
  119. package/dist/component/lib/validators.d.ts +0 -19
  120. package/dist/component/lib/validators.d.ts.map +0 -1
  121. package/dist/component/lib/validators.js +0 -12
  122. package/dist/component/lib/validators.js.map +0 -1
  123. package/dist/component/plugins/admin.d.ts +0 -72
  124. package/dist/component/plugins/admin.d.ts.map +0 -1
  125. package/dist/component/plugins/admin.js +0 -152
  126. package/dist/component/plugins/admin.js.map +0 -1
  127. package/dist/component/providers/emailPassword.d.ts +0 -49
  128. package/dist/component/providers/emailPassword.d.ts.map +0 -1
  129. package/dist/component/providers/emailPassword.js +0 -316
  130. package/dist/component/providers/emailPassword.js.map +0 -1
  131. package/dist/component/providers/oauth.d.ts +0 -33
  132. package/dist/component/providers/oauth.d.ts.map +0 -1
  133. package/dist/component/providers/oauth.js +0 -256
  134. package/dist/component/providers/oauth.js.map +0 -1
  135. package/dist/component/schema.d.ts +0 -132
  136. package/dist/component/schema.d.ts.map +0 -1
  137. package/dist/component/schema.js +0 -82
  138. 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":"AAKA,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;AA2RD,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAyDzB"}
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"}
@@ -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 detectEnabledPlugins(indexSource) {
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(indexSource)) {
71
+ if (/adminPlugin\s*\(/.test(authSource)) {
22
72
  plugins.add("admin");
23
73
  }
24
74
  return plugins;
25
75
  }
26
- function renderCoreFile() {
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 { action } from "../_generated/server";
30
- import { auth } from "./index";
115
+ import { ${serverImports} } from "../_generated/server";
116
+ import { auth } from "${authImportPath}";
31
117
 
32
- export const signUp = action({
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 = action({
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 = action({
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 = action({
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 = action({
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 signOut = action({
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 = action({
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 = action({
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
- export const getOAuthUrl = action({
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 renderAdminFile() {
203
+ function renderAdminPluginFile(options) {
204
+ const authImportPath = options.authImportPath;
140
205
  return normalizeContent(`${GENERATED_MARKER}
141
206
  import { v } from "convex/values";
142
- import { action } from "../_generated/server";
143
- import { auth } from "./index";
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 = action({
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 = action({
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 = action({
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 = action({
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 = action({
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 indexPath = path.join(authDir, "index.ts");
267
- if (!(await fileExists(indexPath))) {
268
- throw new Error(`Missing auth source file at ${path.relative(options.cwd, indexPath)}`);
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 indexSource = await readFile(indexPath, "utf8");
271
- const enabledPlugins = detectEnabledPlugins(indexSource);
272
- if (!/export\s+const\s+authOptions\s*=/.test(indexSource)) {
273
- result.warnings.push("authOptions export was not found in convex/auth/index.ts (recommended for generator compatibility).");
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: renderCoreFile(),
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(authDir, "admin.ts"),
285
- relativePath: path.join("convex", "auth", "admin.ts"),
286
- content: renderAdminFile(),
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(authDir, "admin.ts"), path.join("convex", "auth", "admin.ts"), options, result);
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
@@ -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] [--verbose]
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 ||
@@ -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;;;;;;;;;;;;;CAab,CAAC,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAI/B,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,MAAM,OAAO,GAAoB;QAC/B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO,GAAG,GAAG,CAAC;YACd,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACvB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,CAAC;YACD,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,YAAY,CAAC,MAAsB;IAC1C,MAAM,YAAY,GAChB,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;IAExE,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,SAAS,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACpD,YAAY,CAAC,MAAM,CAAC,CAAC;IAErB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,QAAQ,GACZ,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACzB,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACzB,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5B,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,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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"}