convex 1.36.1 → 1.37.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 (219) hide show
  1. package/CHANGELOG.md +47 -25
  2. package/dist/browser.bundle.js +1 -1
  3. package/dist/browser.bundle.js.map +1 -1
  4. package/dist/cjs/cli/codegen_templates/agentsmd.js +8 -2
  5. package/dist/cjs/cli/codegen_templates/agentsmd.js.map +2 -2
  6. package/dist/cjs/cli/codegen_templates/claudemd.js +2 -0
  7. package/dist/cjs/cli/codegen_templates/claudemd.js.map +2 -2
  8. package/dist/cjs/cli/configure.js +0 -8
  9. package/dist/cjs/cli/configure.js.map +2 -2
  10. package/dist/cjs/cli/deployment.js +2 -1
  11. package/dist/cjs/cli/deployment.js.map +2 -2
  12. package/dist/cjs/cli/deploymentToken.js +30 -0
  13. package/dist/cjs/cli/deploymentToken.js.map +7 -0
  14. package/dist/cjs/cli/deploymentTokenCreate.js +109 -0
  15. package/dist/cjs/cli/deploymentTokenCreate.js.map +7 -0
  16. package/dist/cjs/cli/deploymentTokenDelete.js +87 -0
  17. package/dist/cjs/cli/deploymentTokenDelete.js.map +7 -0
  18. package/dist/cjs/cli/envDefault.js +1 -1
  19. package/dist/cjs/cli/envDefault.js.map +1 -1
  20. package/dist/cjs/cli/generatedApi.js.map +1 -1
  21. package/dist/cjs/cli/lib/generatedFunctionLogsApi.js.map +1 -1
  22. package/dist/cjs/cli/lib/usage.js +13 -6
  23. package/dist/cjs/cli/lib/usage.js.map +2 -2
  24. package/dist/cjs/cli/lib/workos/environmentApi.js +6 -12
  25. package/dist/cjs/cli/lib/workos/environmentApi.js.map +3 -3
  26. package/dist/cjs/index.js +1 -1
  27. package/dist/cjs/index.js.map +1 -1
  28. package/dist/cjs/react/client.js +40 -42
  29. package/dist/cjs/react/client.js.map +2 -2
  30. package/dist/cjs/react/index.js +1 -0
  31. package/dist/cjs/react/index.js.map +2 -2
  32. package/dist/cjs/react/use_paginated_query.js +5 -46
  33. package/dist/cjs/react/use_paginated_query.js.map +2 -2
  34. package/dist/cjs/react/use_paginated_query2.js.map +2 -2
  35. package/dist/cjs/server/audit_logging.js +67 -0
  36. package/dist/cjs/server/audit_logging.js.map +7 -0
  37. package/dist/cjs/server/impl/meta_impl.js +27 -3
  38. package/dist/cjs/server/impl/meta_impl.js.map +2 -2
  39. package/dist/cjs/server/impl/registration_impl.js +2 -0
  40. package/dist/cjs/server/impl/registration_impl.js.map +2 -2
  41. package/dist/cjs/server/index.js +2 -0
  42. package/dist/cjs/server/index.js.map +2 -2
  43. package/dist/cjs/server/log.js +30 -0
  44. package/dist/cjs/server/log.js.map +7 -0
  45. package/dist/cjs/server/logVars.js +48 -0
  46. package/dist/cjs/server/logVars.js.map +7 -0
  47. package/dist/cjs/server/meta.js.map +1 -1
  48. package/dist/cjs/server/registration.js.map +1 -1
  49. package/dist/cjs-types/cli/codegen_templates/agentsmd.d.ts.map +1 -1
  50. package/dist/cjs-types/cli/codegen_templates/claudemd.d.ts.map +1 -1
  51. package/dist/cjs-types/cli/configure.d.ts.map +1 -1
  52. package/dist/cjs-types/cli/deployment.d.ts.map +1 -1
  53. package/dist/cjs-types/cli/deploymentToken.d.ts +3 -0
  54. package/dist/cjs-types/cli/deploymentToken.d.ts.map +1 -0
  55. package/dist/cjs-types/cli/deploymentToken.test.d.ts +2 -0
  56. package/dist/cjs-types/cli/deploymentToken.test.d.ts.map +1 -0
  57. package/dist/cjs-types/cli/deploymentTokenCreate.d.ts +13 -0
  58. package/dist/cjs-types/cli/deploymentTokenCreate.d.ts.map +1 -0
  59. package/dist/cjs-types/cli/deploymentTokenDelete.d.ts +11 -0
  60. package/dist/cjs-types/cli/deploymentTokenDelete.d.ts.map +1 -0
  61. package/dist/cjs-types/cli/generatedApi.d.ts +1 -1
  62. package/dist/cjs-types/cli/generatedApi.d.ts.map +1 -1
  63. package/dist/cjs-types/cli/lib/generatedFunctionLogsApi.d.ts +1 -0
  64. package/dist/cjs-types/cli/lib/generatedFunctionLogsApi.d.ts.map +1 -1
  65. package/dist/cjs-types/cli/lib/usage.d.ts.map +1 -1
  66. package/dist/cjs-types/cli/lib/workos/environmentApi.d.ts.map +1 -1
  67. package/dist/cjs-types/cli/lib/workos/environmentApi.test.d.ts +2 -0
  68. package/dist/cjs-types/cli/lib/workos/environmentApi.test.d.ts.map +1 -0
  69. package/dist/cjs-types/index.d.ts +1 -1
  70. package/dist/cjs-types/react/client.d.ts +52 -0
  71. package/dist/cjs-types/react/client.d.ts.map +1 -1
  72. package/dist/cjs-types/react/index.d.ts +2 -2
  73. package/dist/cjs-types/react/index.d.ts.map +1 -1
  74. package/dist/cjs-types/react/use_paginated_query.d.ts.map +1 -1
  75. package/dist/cjs-types/react/use_paginated_query2.d.ts +63 -1
  76. package/dist/cjs-types/react/use_paginated_query2.d.ts.map +1 -1
  77. package/dist/cjs-types/server/api.intersect.test.d.ts +2 -0
  78. package/dist/cjs-types/server/api.intersect.test.d.ts.map +1 -0
  79. package/dist/cjs-types/server/audit_logging.d.ts +19 -0
  80. package/dist/cjs-types/server/audit_logging.d.ts.map +1 -0
  81. package/dist/cjs-types/server/audit_logging.test.d.ts +2 -0
  82. package/dist/cjs-types/server/audit_logging.test.d.ts.map +1 -0
  83. package/dist/cjs-types/server/impl/meta_impl.d.ts.map +1 -1
  84. package/dist/cjs-types/server/impl/registration_impl.d.ts.map +1 -1
  85. package/dist/cjs-types/server/index.d.ts +2 -2
  86. package/dist/cjs-types/server/index.d.ts.map +1 -1
  87. package/dist/cjs-types/server/log.d.ts +2 -0
  88. package/dist/cjs-types/server/log.d.ts.map +1 -0
  89. package/dist/cjs-types/server/logVars.d.ts +20 -0
  90. package/dist/cjs-types/server/logVars.d.ts.map +1 -0
  91. package/dist/cjs-types/server/meta.d.ts +40 -0
  92. package/dist/cjs-types/server/meta.d.ts.map +1 -1
  93. package/dist/cjs-types/server/registration.d.ts +5 -2
  94. package/dist/cjs-types/server/registration.d.ts.map +1 -1
  95. package/dist/cli.bundle.cjs +184 -34
  96. package/dist/cli.bundle.cjs.map +4 -4
  97. package/dist/esm/cli/codegen_templates/agentsmd.js +8 -2
  98. package/dist/esm/cli/codegen_templates/agentsmd.js.map +2 -2
  99. package/dist/esm/cli/codegen_templates/claudemd.js +2 -0
  100. package/dist/esm/cli/codegen_templates/claudemd.js.map +2 -2
  101. package/dist/esm/cli/configure.js +0 -8
  102. package/dist/esm/cli/configure.js.map +2 -2
  103. package/dist/esm/cli/deployment.js +2 -1
  104. package/dist/esm/cli/deployment.js.map +2 -2
  105. package/dist/esm/cli/deploymentToken.js +8 -0
  106. package/dist/esm/cli/deploymentToken.js.map +7 -0
  107. package/dist/esm/cli/deploymentTokenCreate.js +91 -0
  108. package/dist/esm/cli/deploymentTokenCreate.js.map +7 -0
  109. package/dist/esm/cli/deploymentTokenDelete.js +68 -0
  110. package/dist/esm/cli/deploymentTokenDelete.js.map +7 -0
  111. package/dist/esm/cli/envDefault.js +1 -1
  112. package/dist/esm/cli/envDefault.js.map +1 -1
  113. package/dist/esm/cli/lib/usage.js +15 -8
  114. package/dist/esm/cli/lib/usage.js.map +2 -2
  115. package/dist/esm/cli/lib/workos/environmentApi.js +6 -12
  116. package/dist/esm/cli/lib/workos/environmentApi.js.map +3 -3
  117. package/dist/esm/index.js +1 -1
  118. package/dist/esm/index.js.map +1 -1
  119. package/dist/esm/react/client.js +38 -41
  120. package/dist/esm/react/client.js.map +2 -2
  121. package/dist/esm/react/index.js +4 -1
  122. package/dist/esm/react/index.js.map +2 -2
  123. package/dist/esm/react/use_paginated_query.js +5 -46
  124. package/dist/esm/react/use_paginated_query.js.map +2 -2
  125. package/dist/esm/react/use_paginated_query2.js.map +2 -2
  126. package/dist/esm/server/audit_logging.js +44 -0
  127. package/dist/esm/server/audit_logging.js.map +7 -0
  128. package/dist/esm/server/impl/meta_impl.js +27 -3
  129. package/dist/esm/server/impl/meta_impl.js.map +2 -2
  130. package/dist/esm/server/impl/registration_impl.js +2 -0
  131. package/dist/esm/server/impl/registration_impl.js.map +2 -2
  132. package/dist/esm/server/index.js +1 -0
  133. package/dist/esm/server/index.js.map +2 -2
  134. package/dist/esm/server/log.js +8 -0
  135. package/dist/esm/server/log.js.map +7 -0
  136. package/dist/esm/server/logVars.js +25 -0
  137. package/dist/esm/server/logVars.js.map +7 -0
  138. package/dist/esm-types/cli/codegen_templates/agentsmd.d.ts.map +1 -1
  139. package/dist/esm-types/cli/codegen_templates/claudemd.d.ts.map +1 -1
  140. package/dist/esm-types/cli/configure.d.ts.map +1 -1
  141. package/dist/esm-types/cli/deployment.d.ts.map +1 -1
  142. package/dist/esm-types/cli/deploymentToken.d.ts +3 -0
  143. package/dist/esm-types/cli/deploymentToken.d.ts.map +1 -0
  144. package/dist/esm-types/cli/deploymentToken.test.d.ts +2 -0
  145. package/dist/esm-types/cli/deploymentToken.test.d.ts.map +1 -0
  146. package/dist/esm-types/cli/deploymentTokenCreate.d.ts +13 -0
  147. package/dist/esm-types/cli/deploymentTokenCreate.d.ts.map +1 -0
  148. package/dist/esm-types/cli/deploymentTokenDelete.d.ts +11 -0
  149. package/dist/esm-types/cli/deploymentTokenDelete.d.ts.map +1 -0
  150. package/dist/esm-types/cli/generatedApi.d.ts +1 -1
  151. package/dist/esm-types/cli/generatedApi.d.ts.map +1 -1
  152. package/dist/esm-types/cli/lib/generatedFunctionLogsApi.d.ts +1 -0
  153. package/dist/esm-types/cli/lib/generatedFunctionLogsApi.d.ts.map +1 -1
  154. package/dist/esm-types/cli/lib/usage.d.ts.map +1 -1
  155. package/dist/esm-types/cli/lib/workos/environmentApi.d.ts.map +1 -1
  156. package/dist/esm-types/cli/lib/workos/environmentApi.test.d.ts +2 -0
  157. package/dist/esm-types/cli/lib/workos/environmentApi.test.d.ts.map +1 -0
  158. package/dist/esm-types/index.d.ts +1 -1
  159. package/dist/esm-types/react/client.d.ts +52 -0
  160. package/dist/esm-types/react/client.d.ts.map +1 -1
  161. package/dist/esm-types/react/index.d.ts +2 -2
  162. package/dist/esm-types/react/index.d.ts.map +1 -1
  163. package/dist/esm-types/react/use_paginated_query.d.ts.map +1 -1
  164. package/dist/esm-types/react/use_paginated_query2.d.ts +63 -1
  165. package/dist/esm-types/react/use_paginated_query2.d.ts.map +1 -1
  166. package/dist/esm-types/server/api.intersect.test.d.ts +2 -0
  167. package/dist/esm-types/server/api.intersect.test.d.ts.map +1 -0
  168. package/dist/esm-types/server/audit_logging.d.ts +19 -0
  169. package/dist/esm-types/server/audit_logging.d.ts.map +1 -0
  170. package/dist/esm-types/server/audit_logging.test.d.ts +2 -0
  171. package/dist/esm-types/server/audit_logging.test.d.ts.map +1 -0
  172. package/dist/esm-types/server/impl/meta_impl.d.ts.map +1 -1
  173. package/dist/esm-types/server/impl/registration_impl.d.ts.map +1 -1
  174. package/dist/esm-types/server/index.d.ts +2 -2
  175. package/dist/esm-types/server/index.d.ts.map +1 -1
  176. package/dist/esm-types/server/log.d.ts +2 -0
  177. package/dist/esm-types/server/log.d.ts.map +1 -0
  178. package/dist/esm-types/server/logVars.d.ts +20 -0
  179. package/dist/esm-types/server/logVars.d.ts.map +1 -0
  180. package/dist/esm-types/server/meta.d.ts +40 -0
  181. package/dist/esm-types/server/meta.d.ts.map +1 -1
  182. package/dist/esm-types/server/registration.d.ts +5 -2
  183. package/dist/esm-types/server/registration.d.ts.map +1 -1
  184. package/dist/react.bundle.js +45 -88
  185. package/dist/react.bundle.js.map +2 -2
  186. package/package.json +1 -1
  187. package/src/cli/codegen_templates/agentsmd.ts +8 -2
  188. package/src/cli/codegen_templates/claudemd.ts +2 -0
  189. package/src/cli/configure.ts +0 -9
  190. package/src/cli/deployment.ts +3 -1
  191. package/src/cli/deploymentToken.test.ts +372 -0
  192. package/src/cli/deploymentToken.ts +11 -0
  193. package/src/cli/deploymentTokenCreate.ts +113 -0
  194. package/src/cli/deploymentTokenDelete.ts +91 -0
  195. package/src/cli/envDefault.ts +1 -1
  196. package/src/cli/generatedApi.ts +1 -1
  197. package/src/cli/lib/generatedFunctionLogsApi.ts +1 -0
  198. package/src/cli/lib/usage.ts +18 -8
  199. package/src/cli/lib/workos/environmentApi.test.ts +107 -0
  200. package/src/cli/lib/workos/environmentApi.ts +12 -19
  201. package/src/index.ts +1 -1
  202. package/src/react/client.test.tsx +10 -8
  203. package/src/react/client.ts +88 -96
  204. package/src/react/index.ts +6 -1
  205. package/src/react/use_paginated_query.test.tsx +215 -132
  206. package/src/react/use_paginated_query.ts +8 -142
  207. package/src/react/use_paginated_query2.ts +78 -5
  208. package/src/react/use_query_object_options.test.ts +8 -7
  209. package/src/react/use_query_result.test.ts +40 -7
  210. package/src/server/api.intersect.test.ts +109 -0
  211. package/src/server/audit_logging.test.ts +129 -0
  212. package/src/server/audit_logging.ts +75 -0
  213. package/src/server/impl/meta_impl.ts +28 -0
  214. package/src/server/impl/registration_impl.ts +2 -0
  215. package/src/server/index.ts +12 -0
  216. package/src/server/log.ts +16 -0
  217. package/src/server/logVars.ts +34 -0
  218. package/src/server/meta.ts +53 -1
  219. package/src/server/registration.ts +10 -8
@@ -28695,7 +28695,7 @@ var version;
28695
28695
  var init_index = __esm({
28696
28696
  "src/index.ts"() {
28697
28697
  "use strict";
28698
- version = "1.36.1";
28698
+ version = "1.37.0";
28699
28699
  }
28700
28700
  });
28701
28701
 
@@ -62688,13 +62688,10 @@ async function createRedirectURI(ctx, apiKey, uri) {
62688
62688
  }
62689
62689
  );
62690
62690
  if (!response.ok) {
62691
- if (response.status === 422) {
62692
- const errorText2 = await response.text();
62693
- if (errorText2.includes("already exists")) {
62694
- return { modified: false };
62695
- }
62696
- }
62697
62691
  const errorText = await response.text();
62692
+ if (response.status === 422 && errorText.includes("already exists")) {
62693
+ return { modified: false };
62694
+ }
62698
62695
  return await ctx.crash({
62699
62696
  exitCode: 1,
62700
62697
  errorType: "fatal",
@@ -62741,13 +62738,10 @@ async function createCORSOrigin(ctx, apiKey, origin) {
62741
62738
  }
62742
62739
  );
62743
62740
  if (!response.ok) {
62744
- if (response.status === 409) {
62745
- const errorText2 = await response.text();
62746
- if (errorText2.includes("duplicate_cors_origin") || errorText2.includes("already exists")) {
62747
- return { modified: false };
62748
- }
62749
- }
62750
62741
  const errorText = await response.text();
62742
+ if (response.status === 409 && (errorText.includes("duplicate_cors_origin") || errorText.includes("already exists"))) {
62743
+ return { modified: false };
62744
+ }
62751
62745
  return await ctx.crash({
62752
62746
  exitCode: 1,
62753
62747
  errorType: "fatal",
@@ -77820,13 +77814,19 @@ function convexAiMarkdownBody(convexDir) {
77820
77814
  const normalizedConvexDir = convexDir.replaceAll("\\", "/");
77821
77815
  return `This project uses [Convex](https://convex.dev) as its backend.
77822
77816
 
77823
- When working on Convex code, **always read \`${normalizedConvexDir}/_generated/ai/guidelines.md\` first** for important guidelines on how to correctly use Convex APIs and patterns. The file contains rules that override what you may have learned about Convex from training data.
77817
+ When working on Convex code, **always read
77818
+ \`${normalizedConvexDir}/_generated/ai/guidelines.md\` first** for important guidelines on
77819
+ how to correctly use Convex APIs and patterns. The file contains rules that
77820
+ override what you may have learned about Convex from training data.
77824
77821
 
77825
- Convex agent skills for common tasks can be installed by running \`npx convex ai-files install\`.`;
77822
+ Convex agent skills for common tasks can be installed by running
77823
+ \`npx convex ai-files install\`.`;
77826
77824
  }
77827
77825
  function agentsMdConvexSection(convexDir) {
77828
77826
  return `${AGENTS_MD_START_MARKER}
77827
+
77829
77828
  ${convexAiMarkdownBody(convexDir)}
77829
+
77830
77830
  ${AGENTS_MD_END_MARKER}`;
77831
77831
  }
77832
77832
  var AGENTS_MD_START_MARKER, AGENTS_MD_END_MARKER;
@@ -77893,7 +77893,9 @@ var init_agentsmd2 = __esm({
77893
77893
  // src/cli/codegen_templates/claudemd.ts
77894
77894
  function claudeMdConvexSection(convexDir) {
77895
77895
  return `${CLAUDE_MD_START_MARKER}
77896
+
77896
77897
  ${convexAiMarkdownBody(convexDir)}
77898
+
77897
77899
  ${CLAUDE_MD_END_MARKER}`;
77898
77900
  }
77899
77901
  var CLAUDE_MD_START_MARKER, CLAUDE_MD_END_MARKER;
@@ -78784,9 +78786,9 @@ var require_balanced_match = __commonJS({
78784
78786
  }
78785
78787
  });
78786
78788
 
78787
- // ../common/temp/node_modules/.pnpm/brace-expansion@1.1.13/node_modules/brace-expansion/index.js
78789
+ // ../common/temp/node_modules/.pnpm/brace-expansion@1.1.12/node_modules/brace-expansion/index.js
78788
78790
  var require_brace_expansion = __commonJS({
78789
- "../common/temp/node_modules/.pnpm/brace-expansion@1.1.13/node_modules/brace-expansion/index.js"(exports2, module2) {
78791
+ "../common/temp/node_modules/.pnpm/brace-expansion@1.1.12/node_modules/brace-expansion/index.js"(exports2, module2) {
78790
78792
  var concatMap = require_concat_map();
78791
78793
  var balanced = require_balanced_match();
78792
78794
  module2.exports = expandTop;
@@ -78881,7 +78883,7 @@ var require_brace_expansion = __commonJS({
78881
78883
  var x = numeric(n[0]);
78882
78884
  var y = numeric(n[1]);
78883
78885
  var width = Math.max(n[0].length, n[1].length);
78884
- var incr = n.length == 3 ? Math.max(Math.abs(numeric(n[2])), 1) : 1;
78886
+ var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1;
78885
78887
  var test = lte;
78886
78888
  var reverse = y < x;
78887
78889
  if (reverse) {
@@ -133911,14 +133913,6 @@ async function selectExistingProject(ctx, chosenConfiguration, config3) {
133911
133913
  forceDevDeployment: config3.local ? "local" : config3.cloud ? "cloud" : void 0
133912
133914
  });
133913
133915
  logFinishedStep(`Reinitialized project ${chalkStderr.bold(projectSlug)}`);
133914
- const { configPath, projectConfig } = await readProjectConfig(ctx);
133915
- const folder = functionsDir(configPath, projectConfig);
133916
- await attemptSetupAiFiles({
133917
- ctx,
133918
- aiFilesConfig: projectConfig.aiFiles,
133919
- convexDir: import_path31.default.resolve(folder),
133920
- projectDir: import_path31.default.resolve(import_path31.default.dirname(configPath))
133921
- });
133922
133916
  return { teamSlug, projectSlug, devDeployment };
133923
133917
  }
133924
133918
  async function askToConfigure(ctx) {
@@ -134037,7 +134031,7 @@ async function warn(ctx, options) {
134037
134031
  );
134038
134032
  }
134039
134033
  async function teamUsageState(ctx, teamId) {
134040
- const { usageState } = await bigBrainAPI({
134034
+ const { usageState } = await bigBrainAPIMaybeThrows({
134041
134035
  ctx,
134042
134036
  method: "GET",
134043
134037
  path: "dashboard/teams/" + teamId + "/usage/team_usage_state"
@@ -134045,7 +134039,7 @@ async function teamUsageState(ctx, teamId) {
134045
134039
  return usageState;
134046
134040
  }
134047
134041
  async function teamSpendingLimitsState(ctx, teamId) {
134048
- const response = await bigBrainAPI({
134042
+ const response = await bigBrainAPIMaybeThrows({
134049
134043
  ctx,
134050
134044
  method: "GET",
134051
134045
  path: "dashboard/teams/" + teamId + "/get_spending_limits"
@@ -134058,10 +134052,17 @@ async function usageStateWarning(ctx, targetDeployment) {
134058
134052
  return;
134059
134053
  }
134060
134054
  const { teamId, team } = await fetchTeamAndProject(ctx, targetDeployment);
134061
- const [usageState, spendingLimitsState] = await Promise.all([
134062
- teamUsageState(ctx, teamId),
134063
- teamSpendingLimitsState(ctx, teamId)
134064
- ]);
134055
+ let usageState;
134056
+ let spendingLimitsState;
134057
+ try {
134058
+ [usageState, spendingLimitsState] = await Promise.all([
134059
+ teamUsageState(ctx, teamId),
134060
+ teamSpendingLimitsState(ctx, teamId)
134061
+ ]);
134062
+ } catch (err) {
134063
+ logVerbose("Skipping usage state warning:", err);
134064
+ return;
134065
+ }
134065
134066
  if (spendingLimitsState === "Disabled") {
134066
134067
  await warn(ctx, {
134067
134068
  title: "Your projects are disabled because you exceeded your spending limit.",
@@ -136314,7 +136315,7 @@ function addEnvDefaultOptions(cmd) {
136314
136315
  return cmd.addOption(
136315
136316
  new Option(
136316
136317
  "--type <type>",
136317
- "Manage default env vars for the given deployment type instead of inferring from the current deployment."
136318
+ "Manage default env vars for the given deployment type (dev, preview, prod) instead of inferring from the current deployment."
136318
136319
  )
136319
136320
  ).addOption(
136320
136321
  new Option(
@@ -147523,8 +147524,157 @@ function defaultRef(branch, deploymentType) {
147523
147524
  return ref;
147524
147525
  }
147525
147526
 
147527
+ // src/cli/deploymentTokenCreate.ts
147528
+ init_source();
147529
+ init_log();
147530
+ init_api3();
147531
+ init_envvars();
147532
+ init_utils5();
147533
+ var deploymentTokenCreate = new Command("create").summary("Create an access token").description(
147534
+ `Creates a deploy key that, when set as ${chalkStderr.bold(CONVEX_DEPLOY_KEY_ENV_VAR_NAME)}, scopes all commands to the target deployment. Defaults to the current deployment if '--deployment' isn't passed
147535
+
147536
+ Print a new deploy key to stdout: \`npx convex deployment token create my-token\`
147537
+ Save a new deploy key in ${ENV_VAR_FILE_PATH}: \`npx convex deployment token create my-token --save-env\`
147538
+ Save a new deploy key in a custom env file: \`npx convex deployment token create ci-token --save-env .env.production\`
147539
+ Create a key for the project's prod: \`npx convex deployment token create ci-token --deployment prod\`
147540
+ `
147541
+ ).argument("<name>", "Name for the new deploy key").allowExcessArguments(false).option(
147542
+ "--save-env [path]",
147543
+ `Save the new key as ${CONVEX_DEPLOY_KEY_ENV_VAR_NAME} in an env file instead of printing it. Defaults to ${ENV_VAR_FILE_PATH}.`
147544
+ ).addDeploymentSelectionOptions(actionDescription("Create a deploy key for")).showHelpAfterError().action(async (name, options) => {
147545
+ const ctx = await oneoffContext(options);
147546
+ const auth2 = ctx.bigBrainAuth();
147547
+ if (auth2 === null || auth2.kind !== "accessToken") {
147548
+ return await ctx.crash({
147549
+ exitCode: 1,
147550
+ errorType: "fatal",
147551
+ printedMessage: `Creating a deploy key currently requires being logged in with a personal access token. ${process.env[CONVEX_DEPLOY_KEY_ENV_VAR_NAME] ? `Unset ${CONVEX_DEPLOY_KEY_ENV_VAR_NAME}` : `Run ${chalkStderr.bold("npx convex login")}`} and try again.`
147552
+ });
147553
+ }
147554
+ const deploymentSelection = await getDeploymentSelection(ctx, options);
147555
+ const deployment2 = await loadSelectedDeploymentCredentials(
147556
+ ctx,
147557
+ deploymentSelection,
147558
+ { ensureLocalRunning: false }
147559
+ );
147560
+ if (deployment2.deploymentFields === null) {
147561
+ return await ctx.crash({
147562
+ exitCode: 1,
147563
+ errorType: "fatal",
147564
+ printedMessage: "Cannot create a deploy key for a self-hosted deployment."
147565
+ });
147566
+ }
147567
+ const { deploymentName, deploymentType } = deployment2.deploymentFields;
147568
+ if (deploymentType === "local" || deploymentType === "anonymous") {
147569
+ return await ctx.crash({
147570
+ exitCode: 1,
147571
+ errorType: "fatal",
147572
+ printedMessage: `Cannot create a deploy key for a ${deploymentType} deployment.`
147573
+ });
147574
+ }
147575
+ showSpinner(`Creating deploy key for ${deploymentName}...`);
147576
+ const response = await typedPlatformClient(ctx).POST(
147577
+ "/deployments/{deployment_name}/create_deploy_key",
147578
+ {
147579
+ params: { path: { deployment_name: deploymentName } },
147580
+ body: { name }
147581
+ }
147582
+ );
147583
+ const deployKey = response.data.deployKey;
147584
+ if (options.saveEnv === void 0) {
147585
+ logFinishedStep(`Created deploy key "${name}" for ${deploymentName}.`);
147586
+ logOutput(deployKey);
147587
+ return;
147588
+ }
147589
+ const envFile = typeof options.saveEnv === "string" ? options.saveEnv : ENV_VAR_FILE_PATH;
147590
+ const existingFileContent = ctx.fs.exists(envFile) ? ctx.fs.readUtf8File(envFile) : null;
147591
+ const updatedContent = changedEnvVarFile({
147592
+ existingFileContent,
147593
+ envVarName: CONVEX_DEPLOY_KEY_ENV_VAR_NAME,
147594
+ envVarValue: deployKey,
147595
+ commentAfterValue: null,
147596
+ commentOnPreviousLine: null
147597
+ });
147598
+ if (updatedContent === null) {
147599
+ logFinishedStep(
147600
+ `Deploy key for ${deploymentName} already present in ${envFile}; no changes made.`
147601
+ );
147602
+ return;
147603
+ }
147604
+ ctx.fs.writeUtf8File(envFile, updatedContent);
147605
+ logFinishedStep(
147606
+ `Saved deploy key "${name}" for ${deploymentName} as ${CONVEX_DEPLOY_KEY_ENV_VAR_NAME} in ${envFile}.`
147607
+ );
147608
+ });
147609
+
147610
+ // src/cli/deploymentTokenDelete.ts
147611
+ init_source();
147612
+ init_log();
147613
+ init_api3();
147614
+ init_utils5();
147615
+ var deploymentTokenDelete = new Command("delete").summary("Delete an access token").description(
147616
+ "Delete an access token. Currently only deploy keys (deployment-scoped access tokens) are supported.\n\nThe positional `<nameOrToken>` can be the unique name of the deploy key (as passed to `token create`) or the deploy key value itself. The target deployment defaults to the currently-selected one; pass `--deployment` to target a different deployment.\n\n Delete by name: `npx convex deployment token delete my-token`\n Delete by value: `npx convex deployment token delete 'dev:happy-animal-123|ey...'`\n Target prod: `npx convex deployment token delete ci-token --deployment prod`"
147617
+ ).argument(
147618
+ "<nameOrToken>",
147619
+ "The unique name of the deploy key, or the deploy key value itself."
147620
+ ).allowExcessArguments(false).addDeploymentSelectionOptions(actionDescription("Delete a deploy key for")).showHelpAfterError().action(async (nameOrToken, options) => {
147621
+ const ctx = await oneoffContext(options);
147622
+ const auth2 = ctx.bigBrainAuth();
147623
+ if (auth2 === null || auth2.kind !== "accessToken") {
147624
+ return await ctx.crash({
147625
+ exitCode: 1,
147626
+ errorType: "fatal",
147627
+ printedMessage: `Deleting a deploy key requires being logged in with a personal access token. ${auth2 === null ? "Run " : `Unset ${CONVEX_DEPLOY_KEY_ENV_VAR_NAME} and run `}${chalkStderr.bold("npx convex login")} and try again.`
147628
+ });
147629
+ }
147630
+ const deploymentSelection = await getDeploymentSelection(ctx, options);
147631
+ const deployment2 = await loadSelectedDeploymentCredentials(
147632
+ ctx,
147633
+ deploymentSelection,
147634
+ { ensureLocalRunning: false }
147635
+ );
147636
+ if (deployment2.deploymentFields === null) {
147637
+ return await ctx.crash({
147638
+ exitCode: 1,
147639
+ errorType: "fatal",
147640
+ printedMessage: "Cannot delete a deploy key for a self-hosted deployment."
147641
+ });
147642
+ }
147643
+ const { deploymentName, deploymentType } = deployment2.deploymentFields;
147644
+ if (deploymentType === "local" || deploymentType === "anonymous") {
147645
+ return await ctx.crash({
147646
+ exitCode: 1,
147647
+ errorType: "fatal",
147648
+ printedMessage: `Cannot delete a deploy key for a ${deploymentType} deployment.`
147649
+ });
147650
+ }
147651
+ if (/^(dev|prod|preview|local):[^|]*$/.test(nameOrToken)) {
147652
+ return await ctx.crash({
147653
+ exitCode: 1,
147654
+ errorType: "fatal",
147655
+ printedMessage: `"${nameOrToken}" looks like a partial deploy key \u2014 your shell likely consumed the \`|\` and everything after it. Wrap the value in single quotes (e.g. ${chalkStderr.bold(`npx convex deployment token delete '${nameOrToken}|...'`)}) and try again.`
147656
+ });
147657
+ }
147658
+ const pipeIdx = nameOrToken.indexOf("|");
147659
+ const id = pipeIdx >= 0 ? nameOrToken.slice(pipeIdx + 1) : nameOrToken;
147660
+ showSpinner(`Deleting deploy key for ${deploymentName}...`);
147661
+ await typedPlatformClient(ctx).POST(
147662
+ "/deployments/{deployment_name}/delete_deploy_key",
147663
+ {
147664
+ params: { path: { deployment_name: deploymentName } },
147665
+ body: { id }
147666
+ }
147667
+ );
147668
+ logFinishedStep(`Deleted deploy key for ${deploymentName}.`);
147669
+ });
147670
+
147671
+ // src/cli/deploymentToken.ts
147672
+ var deploymentToken = new Command("token").summary("Manage access tokens").description(
147673
+ "Create and delete access tokens. Currently supports deploy keys."
147674
+ ).addCommand(deploymentTokenCreate).addCommand(deploymentTokenDelete);
147675
+
147526
147676
  // src/cli/deployment.ts
147527
- var deployment = new Command("deployment").summary("Manage deployments").description("Manage deployments in your project.").addCommand(deploymentSelect).addCommand(deploymentCreate);
147677
+ var deployment = new Command("deployment").summary("Manage deployments").description("Manage deployments in your project.").addCommand(deploymentSelect).addCommand(deploymentCreate).addCommand(deploymentToken);
147528
147678
 
147529
147679
  // src/cli/aiFiles.ts
147530
147680
  var import_path34 = __toESM(require("path"), 1);