@depup/vercel 50.32.5-depup.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 (96) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +38 -0
  3. package/changes.json +38 -0
  4. package/dist/chunks/chunk-2DLBVZWU.js +197 -0
  5. package/dist/chunks/chunk-2HSQ7YUK.js +93 -0
  6. package/dist/chunks/chunk-2IQTNMUG.js +86 -0
  7. package/dist/chunks/chunk-3FRG2XGZ.js +466 -0
  8. package/dist/chunks/chunk-3KMKI2FP.js +34 -0
  9. package/dist/chunks/chunk-3XFFP2BA.js +110 -0
  10. package/dist/chunks/chunk-4S3Y3ATR.js +5383 -0
  11. package/dist/chunks/chunk-7EHTK7LP.js +359 -0
  12. package/dist/chunks/chunk-7YHZDJ4G.js +116 -0
  13. package/dist/chunks/chunk-A3NYPUKZ.js +17 -0
  14. package/dist/chunks/chunk-AA7QEJFB.js +5204 -0
  15. package/dist/chunks/chunk-AHU7WNL2.js +24 -0
  16. package/dist/chunks/chunk-AKQZ7KG3.js +4172 -0
  17. package/dist/chunks/chunk-AQLVWVEN.js +39155 -0
  18. package/dist/chunks/chunk-BQ3DXZNT.js +968 -0
  19. package/dist/chunks/chunk-E65JE2CC.js +102 -0
  20. package/dist/chunks/chunk-EKPSCRJZ.js +26 -0
  21. package/dist/chunks/chunk-EOZFDJSY.js +18 -0
  22. package/dist/chunks/chunk-FDJURQMQ.js +4676 -0
  23. package/dist/chunks/chunk-FLKHKWZV.js +1854 -0
  24. package/dist/chunks/chunk-G6BUEBF5.js +192 -0
  25. package/dist/chunks/chunk-GBNIO3KP.js +771 -0
  26. package/dist/chunks/chunk-GGP5R3FU.js +129 -0
  27. package/dist/chunks/chunk-H5XJSH37.js +91 -0
  28. package/dist/chunks/chunk-IB5L4LKZ.js +1082 -0
  29. package/dist/chunks/chunk-IE7MNZ56.js +149 -0
  30. package/dist/chunks/chunk-IK7DLK2T.js +16112 -0
  31. package/dist/chunks/chunk-IUGPWINM.js +104 -0
  32. package/dist/chunks/chunk-J7HDA5GH.js +54 -0
  33. package/dist/chunks/chunk-JLYZNGYY.js +293 -0
  34. package/dist/chunks/chunk-JQ4NA5MX.js +250 -0
  35. package/dist/chunks/chunk-LL26LVRR.js +81 -0
  36. package/dist/chunks/chunk-LW5ZNGW7.js +127 -0
  37. package/dist/chunks/chunk-LWBSOTJP.js +1772 -0
  38. package/dist/chunks/chunk-MBGJBHYD.js +388 -0
  39. package/dist/chunks/chunk-NUKAG3YM.js +168 -0
  40. package/dist/chunks/chunk-O7I4ZOCC.js +58 -0
  41. package/dist/chunks/chunk-OWR3XNE3.js +48 -0
  42. package/dist/chunks/chunk-P3SKP5WM.js +27 -0
  43. package/dist/chunks/chunk-P4I4DMEU.js +342 -0
  44. package/dist/chunks/chunk-P5Q6F5IA.js +107 -0
  45. package/dist/chunks/chunk-PMSMUMUO.js +30 -0
  46. package/dist/chunks/chunk-QXRJ52T4.js +2977 -0
  47. package/dist/chunks/chunk-RQXPRFRM.js +90 -0
  48. package/dist/chunks/chunk-S7KYDPEM.js +1564 -0
  49. package/dist/chunks/chunk-SGGLJFUZ.js +68 -0
  50. package/dist/chunks/chunk-SOTR4CXR.js +34 -0
  51. package/dist/chunks/chunk-TEVP63TU.js +1717 -0
  52. package/dist/chunks/chunk-TNBMKNET.js +323 -0
  53. package/dist/chunks/chunk-TZ2YI2VH.js +87 -0
  54. package/dist/chunks/chunk-U6XOC6E4.js +903 -0
  55. package/dist/chunks/chunk-V5P25P7F.js +22 -0
  56. package/dist/chunks/chunk-WQ5CUZWR.js +333 -0
  57. package/dist/chunks/chunk-WU2BPWRP.js +12237 -0
  58. package/dist/chunks/chunk-XPKWKPWA.js +44 -0
  59. package/dist/chunks/chunk-XR53KVJD.js +33 -0
  60. package/dist/chunks/chunk-Y4JJYHUG.js +16 -0
  61. package/dist/chunks/chunk-YPQSDAEW.js +29 -0
  62. package/dist/chunks/chunk-ZB2UO4V2.js +135 -0
  63. package/dist/chunks/chunk-ZLCMHY2G.js +1528 -0
  64. package/dist/chunks/compile-vercel-config-XU3YY2CZ.js +32 -0
  65. package/dist/chunks/delete-EJ2V7KQO.js +144 -0
  66. package/dist/chunks/disable-BKRFMX4U.js +122 -0
  67. package/dist/chunks/discard-4WF34DXK.js +118 -0
  68. package/dist/chunks/edit-FQE7JGU3.js +509 -0
  69. package/dist/chunks/emit-flags-datafiles-QYKPNWPX.js +17 -0
  70. package/dist/chunks/enable-VCNMX63U.js +122 -0
  71. package/dist/chunks/export-3KNVJCQR.js +133 -0
  72. package/dist/chunks/list-43XQCGKH.js +382 -0
  73. package/dist/chunks/list-DUL6PHUR.js +394 -0
  74. package/dist/chunks/publish-CF7GVZK3.js +128 -0
  75. package/dist/chunks/query-KWKO7VWO.js +954 -0
  76. package/dist/chunks/reorder-GU65YMIN.js +259 -0
  77. package/dist/chunks/restore-Q7ENGWVJ.js +158 -0
  78. package/dist/chunks/routes-Q5CWG44T.js +20 -0
  79. package/dist/chunks/schema-PJKLO2K2.js +176 -0
  80. package/dist/chunks/stamp-RTPE2EBB.js +15 -0
  81. package/dist/chunks/types-563KUQRV.js +108 -0
  82. package/dist/chunks/update-route-version-E3V47KNI.js +13 -0
  83. package/dist/commands/build/index.js +1597 -0
  84. package/dist/commands/deploy/index.js +1711 -0
  85. package/dist/commands/dev/builder-worker.cjs +95 -0
  86. package/dist/commands/dev/index.js +20810 -0
  87. package/dist/commands/env/index.js +2154 -0
  88. package/dist/commands/link/index.js +225 -0
  89. package/dist/commands/list/index.js +528 -0
  90. package/dist/commands-bulk.js +29627 -0
  91. package/dist/get-latest-worker.cjs +272 -0
  92. package/dist/help.js +14 -0
  93. package/dist/index.js +24274 -0
  94. package/dist/vc.js +36 -0
  95. package/dist/version.mjs +1 -0
  96. package/package.json +254 -0
@@ -0,0 +1,509 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import {
8
+ editRoute
9
+ } from "./chunk-P3SKP5WM.js";
10
+ import {
11
+ applyFlagMutations,
12
+ cloneRoute,
13
+ convertRouteToCurrentRoute,
14
+ generateRoute,
15
+ generatedRouteToAddInput,
16
+ hasAnyTransformFlags,
17
+ populateRouteEnv,
18
+ printGeneratedRoutePreview,
19
+ printRouteConfig,
20
+ routingRuleToCurrentRoute,
21
+ runInteractiveEditLoop
22
+ } from "./chunk-TEVP63TU.js";
23
+ import {
24
+ getRouteVersions
25
+ } from "./chunk-AHU7WNL2.js";
26
+ import {
27
+ ensureProjectLink,
28
+ getRoutes,
29
+ offerAutoPromote,
30
+ parseSubcommandArgs,
31
+ resolveRoute
32
+ } from "./chunk-TNBMKNET.js";
33
+ import {
34
+ editSubcommand
35
+ } from "./chunk-U6XOC6E4.js";
36
+ import "./chunk-AQLVWVEN.js";
37
+ import "./chunk-P4I4DMEU.js";
38
+ import {
39
+ stamp_default
40
+ } from "./chunk-SOTR4CXR.js";
41
+ import "./chunk-7EHTK7LP.js";
42
+ import "./chunk-GGP5R3FU.js";
43
+ import {
44
+ getCommandName
45
+ } from "./chunk-ZLCMHY2G.js";
46
+ import "./chunk-3XFFP2BA.js";
47
+ import {
48
+ output_manager_default
49
+ } from "./chunk-FDJURQMQ.js";
50
+ import {
51
+ require_source
52
+ } from "./chunk-S7KYDPEM.js";
53
+ import {
54
+ __toESM
55
+ } from "./chunk-TZ2YI2VH.js";
56
+
57
+ // src/commands/routes/edit.ts
58
+ var import_chalk = __toESM(require_source(), 1);
59
+ async function edit(client, argv) {
60
+ const parsed = await parseSubcommandArgs(argv, editSubcommand);
61
+ if (typeof parsed === "number")
62
+ return parsed;
63
+ const link = await ensureProjectLink(client);
64
+ if (typeof link === "number")
65
+ return link;
66
+ const { project, org } = link;
67
+ const teamId = org.type === "team" ? org.id : void 0;
68
+ const { args, flags } = parsed;
69
+ const skipConfirmation = flags["--yes"];
70
+ const identifier = args[0];
71
+ const { RoutesEditTelemetryClient } = await import("./routes-Q5CWG44T.js");
72
+ const telemetry = new RoutesEditTelemetryClient({
73
+ opts: { store: client.telemetryEventStore }
74
+ });
75
+ telemetry.trackCliArgumentNameOrId(identifier);
76
+ telemetry.trackCliFlagYes(skipConfirmation);
77
+ telemetry.trackCliOptionName(flags["--name"]);
78
+ telemetry.trackCliOptionDescription(
79
+ flags["--description"]
80
+ );
81
+ telemetry.trackCliOptionSrc(flags["--src"]);
82
+ telemetry.trackCliOptionSrcSyntax(
83
+ flags["--src-syntax"]
84
+ );
85
+ telemetry.trackCliOptionAction(flags["--action"]);
86
+ telemetry.trackCliOptionDest(flags["--dest"]);
87
+ telemetry.trackCliOptionStatus(flags["--status"]);
88
+ telemetry.trackCliFlagNoDest(flags["--no-dest"]);
89
+ telemetry.trackCliFlagNoStatus(flags["--no-status"]);
90
+ telemetry.trackCliFlagClearConditions(
91
+ flags["--clear-conditions"]
92
+ );
93
+ telemetry.trackCliFlagClearHeaders(
94
+ flags["--clear-headers"]
95
+ );
96
+ telemetry.trackCliFlagClearTransforms(
97
+ flags["--clear-transforms"]
98
+ );
99
+ telemetry.trackCliOptionSetResponseHeader(
100
+ flags["--set-response-header"]
101
+ );
102
+ telemetry.trackCliOptionAppendResponseHeader(
103
+ flags["--append-response-header"]
104
+ );
105
+ telemetry.trackCliOptionDeleteResponseHeader(
106
+ flags["--delete-response-header"]
107
+ );
108
+ telemetry.trackCliOptionSetRequestHeader(
109
+ flags["--set-request-header"]
110
+ );
111
+ telemetry.trackCliOptionAppendRequestHeader(
112
+ flags["--append-request-header"]
113
+ );
114
+ telemetry.trackCliOptionDeleteRequestHeader(
115
+ flags["--delete-request-header"]
116
+ );
117
+ telemetry.trackCliOptionSetRequestQuery(
118
+ flags["--set-request-query"]
119
+ );
120
+ telemetry.trackCliOptionAppendRequestQuery(
121
+ flags["--append-request-query"]
122
+ );
123
+ telemetry.trackCliOptionDeleteRequestQuery(
124
+ flags["--delete-request-query"]
125
+ );
126
+ telemetry.trackCliOptionHas(flags["--has"]);
127
+ telemetry.trackCliOptionMissing(flags["--missing"]);
128
+ telemetry.trackCliOptionAi(flags["--ai"]);
129
+ if (!identifier) {
130
+ output_manager_default.error(
131
+ `Route name or ID is required. Usage: ${getCommandName("routes edit <name-or-id>")}`
132
+ );
133
+ return 1;
134
+ }
135
+ const { versions } = await getRouteVersions(client, project.id, { teamId });
136
+ const existingStagingVersion = versions.find((v) => v.isStaging);
137
+ output_manager_default.spinner("Fetching routes");
138
+ const { routes } = await getRoutes(client, project.id, { teamId });
139
+ output_manager_default.stopSpinner();
140
+ if (routes.length === 0) {
141
+ output_manager_default.error("No routes found in this project.");
142
+ return 1;
143
+ }
144
+ const originalRoute = await resolveRoute(client, routes, identifier);
145
+ if (!originalRoute) {
146
+ output_manager_default.error(
147
+ `No route found matching "${identifier}". Run ${import_chalk.default.cyan(
148
+ getCommandName("routes list")
149
+ )} to see all routes.`
150
+ );
151
+ return 1;
152
+ }
153
+ const aiPrompt = flags["--ai"];
154
+ if (aiPrompt) {
155
+ const conflictingFlags = [
156
+ "--name",
157
+ "--description",
158
+ "--src",
159
+ "--src-syntax",
160
+ "--action",
161
+ "--dest",
162
+ "--status",
163
+ "--no-dest",
164
+ "--no-status",
165
+ "--has",
166
+ "--missing",
167
+ "--set-response-header",
168
+ "--append-response-header",
169
+ "--delete-response-header",
170
+ "--set-request-header",
171
+ "--append-request-header",
172
+ "--delete-request-header",
173
+ "--set-request-query",
174
+ "--append-request-query",
175
+ "--delete-request-query",
176
+ "--clear-conditions",
177
+ "--clear-headers",
178
+ "--clear-transforms"
179
+ ];
180
+ const usedConflicts = conflictingFlags.filter((f) => flags[f] !== void 0);
181
+ if (usedConflicts.length > 0) {
182
+ output_manager_default.error(
183
+ `Cannot use --ai with ${usedConflicts.join(", ")}. Use --ai alone to describe changes.`
184
+ );
185
+ return 1;
186
+ }
187
+ return await handleAIEdit(
188
+ client,
189
+ project.id,
190
+ teamId,
191
+ originalRoute,
192
+ aiPrompt,
193
+ skipConfirmation,
194
+ existingStagingVersion
195
+ );
196
+ }
197
+ const route = cloneRoute(originalRoute);
198
+ const hasEditFlags = flags["--name"] !== void 0 || flags["--description"] !== void 0 || flags["--src"] !== void 0 || flags["--src-syntax"] !== void 0 || flags["--action"] !== void 0 || flags["--dest"] !== void 0 || flags["--status"] !== void 0 || flags["--no-dest"] !== void 0 || flags["--no-status"] !== void 0 || flags["--has"] !== void 0 || flags["--missing"] !== void 0 || flags["--clear-conditions"] !== void 0 || flags["--clear-headers"] !== void 0 || flags["--clear-transforms"] !== void 0 || hasAnyTransformFlags(flags);
199
+ if (hasEditFlags) {
200
+ const error = applyFlagMutations(route, flags);
201
+ if (error) {
202
+ output_manager_default.error(error);
203
+ return 1;
204
+ }
205
+ } else {
206
+ if (!client.stdin.isTTY) {
207
+ output_manager_default.error(
208
+ `No edit flags provided. When running non-interactively, use flags like --name, --dest, --src, etc. Run ${getCommandName("routes edit --help")} for all options.`
209
+ );
210
+ return 1;
211
+ }
212
+ output_manager_default.log(`
213
+ Editing route "${originalRoute.name}"`);
214
+ printRouteConfig(route);
215
+ const editMode = await client.input.select({
216
+ message: "How would you like to edit this route?",
217
+ choices: [
218
+ { name: "Describe changes (AI-powered)", value: "ai" },
219
+ { name: "Edit manually (field by field)", value: "manual" }
220
+ ]
221
+ });
222
+ if (editMode === "ai") {
223
+ telemetry.trackCliOptionAi("interactive");
224
+ return await handleAIEdit(
225
+ client,
226
+ project.id,
227
+ teamId,
228
+ originalRoute,
229
+ void 0,
230
+ skipConfirmation,
231
+ existingStagingVersion
232
+ );
233
+ }
234
+ await runInteractiveEditLoop(client, route);
235
+ }
236
+ populateRouteEnv(route.route);
237
+ if (JSON.stringify(route) === JSON.stringify(originalRoute)) {
238
+ output_manager_default.log("No changes made.");
239
+ return 0;
240
+ }
241
+ const editStamp = stamp_default();
242
+ output_manager_default.spinner(`Updating route "${route.name}"`);
243
+ try {
244
+ const { version } = await editRoute(
245
+ client,
246
+ project.id,
247
+ originalRoute.id,
248
+ {
249
+ route: {
250
+ name: route.name,
251
+ description: route.description,
252
+ enabled: route.enabled,
253
+ srcSyntax: route.srcSyntax,
254
+ route: route.route
255
+ }
256
+ },
257
+ { teamId }
258
+ );
259
+ output_manager_default.log(
260
+ `${import_chalk.default.cyan("Updated")} route "${route.name}" ${import_chalk.default.gray(editStamp())}`
261
+ );
262
+ await offerAutoPromote(
263
+ client,
264
+ project.id,
265
+ version,
266
+ !!existingStagingVersion,
267
+ { teamId, skipPrompts: skipConfirmation }
268
+ );
269
+ return 0;
270
+ } catch (e) {
271
+ const error = e;
272
+ output_manager_default.error(error.message || "Failed to update route");
273
+ return 1;
274
+ }
275
+ }
276
+ async function handleAIEdit(client, projectId, teamId, originalRoute, aiPrompt, skipConfirmation, existingStagingVersion) {
277
+ const currentRoute = routingRuleToCurrentRoute(originalRoute);
278
+ let prompt = aiPrompt;
279
+ let currentGenerated;
280
+ for (; ; ) {
281
+ if (!prompt) {
282
+ prompt = await client.input.text({
283
+ message: "Describe what you'd like to change:",
284
+ validate: (val) => {
285
+ if (!val)
286
+ return "A description is required";
287
+ if (val.length > 2e3)
288
+ return "Description must be 2000 characters or less";
289
+ return true;
290
+ }
291
+ });
292
+ }
293
+ output_manager_default.spinner("Generating updated route...");
294
+ let errorMessage;
295
+ try {
296
+ const result = await generateRoute(
297
+ client,
298
+ projectId,
299
+ { prompt, currentRoute },
300
+ { teamId }
301
+ );
302
+ if (result.error) {
303
+ errorMessage = result.error;
304
+ } else if (!result.route) {
305
+ errorMessage = "Could not apply changes. Try rephrasing.";
306
+ } else {
307
+ currentGenerated = result.route;
308
+ }
309
+ } catch (e) {
310
+ const error = e;
311
+ errorMessage = error.message || "Failed to generate updated route";
312
+ }
313
+ if (currentGenerated) {
314
+ break;
315
+ }
316
+ output_manager_default.error(errorMessage);
317
+ if (skipConfirmation || !client.stdin.isTTY) {
318
+ return 1;
319
+ }
320
+ const retry = await client.input.select({
321
+ message: "What would you like to do?",
322
+ choices: [
323
+ { name: "Try again with a different description", value: "retry" },
324
+ { name: "Cancel", value: "cancel" }
325
+ ]
326
+ });
327
+ if (retry === "cancel") {
328
+ output_manager_default.log("No changes made.");
329
+ return 0;
330
+ }
331
+ prompt = void 0;
332
+ }
333
+ printGeneratedRoutePreview(currentGenerated);
334
+ if (skipConfirmation) {
335
+ return await applyAIEdit(
336
+ client,
337
+ projectId,
338
+ teamId,
339
+ originalRoute,
340
+ currentGenerated,
341
+ existingStagingVersion,
342
+ skipConfirmation
343
+ );
344
+ }
345
+ if (!client.stdin.isTTY) {
346
+ output_manager_default.error(
347
+ `Cannot interactively confirm route changes in a non-TTY environment. Use ${getCommandName('routes edit <name-or-id> --ai "..." --yes')} to skip confirmation.`
348
+ );
349
+ return 1;
350
+ }
351
+ for (; ; ) {
352
+ const choice = await client.input.select({
353
+ message: "What would you like to do?",
354
+ choices: [
355
+ { name: "Confirm changes", value: "confirm" },
356
+ { name: "Edit again with AI", value: "ai-edit" },
357
+ { name: "Edit manually", value: "manual" },
358
+ { name: "Discard", value: "discard" }
359
+ ],
360
+ pageSize: 4,
361
+ loop: false
362
+ });
363
+ if (choice === "confirm") {
364
+ return await applyAIEdit(
365
+ client,
366
+ projectId,
367
+ teamId,
368
+ originalRoute,
369
+ currentGenerated,
370
+ existingStagingVersion,
371
+ skipConfirmation
372
+ );
373
+ }
374
+ if (choice === "ai-edit") {
375
+ const editPrompt = await client.input.text({
376
+ message: "Describe what you'd like to change:",
377
+ validate: (val) => {
378
+ if (!val)
379
+ return "A description is required";
380
+ if (val.length > 2e3)
381
+ return "Description must be 2000 characters or less";
382
+ return true;
383
+ }
384
+ });
385
+ output_manager_default.spinner("Updating route...");
386
+ try {
387
+ const editResult = await generateRoute(
388
+ client,
389
+ projectId,
390
+ {
391
+ prompt: editPrompt,
392
+ currentRoute: convertRouteToCurrentRoute(currentGenerated)
393
+ },
394
+ { teamId }
395
+ );
396
+ if (editResult.error) {
397
+ output_manager_default.error(editResult.error);
398
+ output_manager_default.log("Keeping previous route:");
399
+ printGeneratedRoutePreview(currentGenerated);
400
+ continue;
401
+ }
402
+ if (!editResult.route) {
403
+ output_manager_default.error("Could not apply changes. Try rephrasing.");
404
+ output_manager_default.log("Keeping previous route:");
405
+ printGeneratedRoutePreview(currentGenerated);
406
+ continue;
407
+ }
408
+ currentGenerated = editResult.route;
409
+ printGeneratedRoutePreview(currentGenerated);
410
+ } catch (e) {
411
+ const error = e;
412
+ output_manager_default.error(error.message || "Failed to update route");
413
+ output_manager_default.log("Keeping previous route:");
414
+ printGeneratedRoutePreview(currentGenerated);
415
+ }
416
+ continue;
417
+ }
418
+ if (choice === "manual") {
419
+ const routeInput = generatedRouteToAddInput(currentGenerated);
420
+ const manualRoute = cloneRoute(originalRoute);
421
+ manualRoute.name = routeInput.name;
422
+ manualRoute.description = routeInput.description;
423
+ manualRoute.srcSyntax = routeInput.srcSyntax;
424
+ manualRoute.route = routeInput.route;
425
+ await runInteractiveEditLoop(client, manualRoute);
426
+ populateRouteEnv(manualRoute.route);
427
+ const editStamp = stamp_default();
428
+ output_manager_default.spinner(`Updating route "${manualRoute.name}"`);
429
+ try {
430
+ const { version } = await editRoute(
431
+ client,
432
+ projectId,
433
+ originalRoute.id,
434
+ {
435
+ route: {
436
+ name: manualRoute.name,
437
+ description: manualRoute.description,
438
+ enabled: manualRoute.enabled,
439
+ srcSyntax: manualRoute.srcSyntax,
440
+ route: manualRoute.route
441
+ }
442
+ },
443
+ { teamId }
444
+ );
445
+ output_manager_default.log(
446
+ `${import_chalk.default.cyan("Updated")} route "${manualRoute.name}" ${import_chalk.default.gray(editStamp())}`
447
+ );
448
+ await offerAutoPromote(
449
+ client,
450
+ projectId,
451
+ version,
452
+ !!existingStagingVersion,
453
+ { teamId, skipPrompts: skipConfirmation }
454
+ );
455
+ return 0;
456
+ } catch (e) {
457
+ const error = e;
458
+ output_manager_default.error(error.message || "Failed to update route");
459
+ return 1;
460
+ }
461
+ }
462
+ output_manager_default.log("No changes made.");
463
+ return 0;
464
+ }
465
+ }
466
+ async function applyAIEdit(client, projectId, teamId, originalRoute, generated, existingStagingVersion, skipConfirmation) {
467
+ const routeInput = generatedRouteToAddInput(generated);
468
+ populateRouteEnv(routeInput.route);
469
+ const editStamp = stamp_default();
470
+ output_manager_default.spinner(`Updating route "${routeInput.name}"`);
471
+ try {
472
+ const { version } = await editRoute(
473
+ client,
474
+ projectId,
475
+ originalRoute.id,
476
+ {
477
+ route: {
478
+ name: routeInput.name,
479
+ description: routeInput.description,
480
+ enabled: originalRoute.enabled,
481
+ srcSyntax: routeInput.srcSyntax,
482
+ route: routeInput.route
483
+ }
484
+ },
485
+ { teamId }
486
+ );
487
+ output_manager_default.log(
488
+ `${import_chalk.default.cyan("Updated")} route "${routeInput.name}" ${import_chalk.default.gray(editStamp())}`
489
+ );
490
+ await offerAutoPromote(
491
+ client,
492
+ projectId,
493
+ version,
494
+ !!existingStagingVersion,
495
+ {
496
+ teamId,
497
+ skipPrompts: skipConfirmation
498
+ }
499
+ );
500
+ return 0;
501
+ } catch (e) {
502
+ const error = e;
503
+ output_manager_default.error(error.message || "Failed to update route");
504
+ return 1;
505
+ }
506
+ }
507
+ export {
508
+ edit as default
509
+ };
@@ -0,0 +1,17 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import {
8
+ emitFlagsDatafiles
9
+ } from "./chunk-NUKAG3YM.js";
10
+ import "./chunk-QXRJ52T4.js";
11
+ import "./chunk-3XFFP2BA.js";
12
+ import "./chunk-FDJURQMQ.js";
13
+ import "./chunk-S7KYDPEM.js";
14
+ import "./chunk-TZ2YI2VH.js";
15
+ export {
16
+ emitFlagsDatafiles
17
+ };
@@ -0,0 +1,122 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import {
8
+ editRoute
9
+ } from "./chunk-P3SKP5WM.js";
10
+ import {
11
+ getRouteVersions
12
+ } from "./chunk-AHU7WNL2.js";
13
+ import {
14
+ ensureProjectLink,
15
+ getRoutes,
16
+ offerAutoPromote,
17
+ parseSubcommandArgs,
18
+ resolveRoute
19
+ } from "./chunk-TNBMKNET.js";
20
+ import {
21
+ enableSubcommand
22
+ } from "./chunk-U6XOC6E4.js";
23
+ import "./chunk-AQLVWVEN.js";
24
+ import "./chunk-P4I4DMEU.js";
25
+ import {
26
+ stamp_default
27
+ } from "./chunk-SOTR4CXR.js";
28
+ import "./chunk-7EHTK7LP.js";
29
+ import "./chunk-GGP5R3FU.js";
30
+ import {
31
+ getCommandName
32
+ } from "./chunk-ZLCMHY2G.js";
33
+ import "./chunk-3XFFP2BA.js";
34
+ import {
35
+ output_manager_default
36
+ } from "./chunk-FDJURQMQ.js";
37
+ import {
38
+ require_source
39
+ } from "./chunk-S7KYDPEM.js";
40
+ import {
41
+ __toESM
42
+ } from "./chunk-TZ2YI2VH.js";
43
+
44
+ // src/commands/routes/enable.ts
45
+ var import_chalk = __toESM(require_source(), 1);
46
+ async function enable(client, argv) {
47
+ const parsed = await parseSubcommandArgs(argv, enableSubcommand);
48
+ if (typeof parsed === "number")
49
+ return parsed;
50
+ const link = await ensureProjectLink(client);
51
+ if (typeof link === "number")
52
+ return link;
53
+ const { project, org } = link;
54
+ const teamId = org.type === "team" ? org.id : void 0;
55
+ const { args } = parsed;
56
+ const identifier = args[0];
57
+ if (!identifier) {
58
+ output_manager_default.error(
59
+ `Route name or ID is required. Usage: ${getCommandName("routes enable <name-or-id>")}`
60
+ );
61
+ return 1;
62
+ }
63
+ const { versions } = await getRouteVersions(client, project.id, { teamId });
64
+ const existingStagingVersion = versions.find((v) => v.isStaging);
65
+ output_manager_default.spinner("Fetching routes");
66
+ const { routes } = await getRoutes(client, project.id, { teamId });
67
+ output_manager_default.stopSpinner();
68
+ if (routes.length === 0) {
69
+ output_manager_default.error("No routes found in this project.");
70
+ return 1;
71
+ }
72
+ const route = await resolveRoute(client, routes, identifier);
73
+ if (!route) {
74
+ output_manager_default.error(
75
+ `No route found matching "${identifier}". Run ${import_chalk.default.cyan(
76
+ getCommandName("routes list")
77
+ )} to see all routes.`
78
+ );
79
+ return 1;
80
+ }
81
+ if (route.enabled !== false) {
82
+ output_manager_default.log(`Route "${route.name}" is already enabled.`);
83
+ return 0;
84
+ }
85
+ const enableStamp = stamp_default();
86
+ output_manager_default.spinner(`Enabling route "${route.name}"`);
87
+ try {
88
+ const { version } = await editRoute(
89
+ client,
90
+ project.id,
91
+ route.id,
92
+ {
93
+ route: {
94
+ name: route.name,
95
+ description: route.description,
96
+ enabled: true,
97
+ srcSyntax: route.srcSyntax,
98
+ route: route.route
99
+ }
100
+ },
101
+ { teamId }
102
+ );
103
+ output_manager_default.log(
104
+ `${import_chalk.default.cyan("Enabled")} route "${route.name}" ${import_chalk.default.gray(enableStamp())}`
105
+ );
106
+ await offerAutoPromote(
107
+ client,
108
+ project.id,
109
+ version,
110
+ !!existingStagingVersion,
111
+ { teamId }
112
+ );
113
+ return 0;
114
+ } catch (e) {
115
+ const error = e;
116
+ output_manager_default.error(error.message || "Failed to enable route");
117
+ return 1;
118
+ }
119
+ }
120
+ export {
121
+ enable as default
122
+ };