@wix/cli 1.1.94 → 1.1.95

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 (77) hide show
  1. package/build/{DevCommand-2Z74PQ26.js → DevCommand-44BZIWFW.js} +10 -6
  2. package/build/{DevCommand-2Z74PQ26.js.map → DevCommand-44BZIWFW.js.map} +1 -1
  3. package/build/EnvPullCommand-KWDNNN6C.js +30 -0
  4. package/build/{EnvRemoveCommand-DOD4IKNQ.js → EnvRemoveCommand-ZCSNXZPD.js} +2 -2
  5. package/build/{EnvSetCommand-7ZXAJJXY.js → EnvSetCommand-SLMJRVDO.js} +2 -2
  6. package/build/{GenerateCommand-NN35PMBQ.js → GenerateCommand-3K2S53JD.js} +4 -4
  7. package/build/{InstallCommand-6HILIMZ4.js → InstallCommand-P3FQAHRR.js} +3 -3
  8. package/build/{LoginCommand-Q6PHFCSX.js → LoginCommand-QOOPEM5V.js} +2 -2
  9. package/build/{PreviewCommand-7JGGKUNA.js → PreviewCommand-4YKD3QDW.js} +7 -4
  10. package/build/{ReleaseCommand-ND3DAKOU.js → ReleaseCommand-SRCF6OMF.js} +12 -7
  11. package/build/ReleaseCommand-SRCF6OMF.js.map +1 -0
  12. package/build/{UninstallCommand-FSM6ACGS.js → UninstallCommand-5NCUIZVA.js} +3 -3
  13. package/build/{chunk-KLTEP7AZ.js → chunk-AD2AZFMD.js} +19 -7
  14. package/build/chunk-AD2AZFMD.js.map +1 -0
  15. package/build/{chunk-I4IC4BN2.js → chunk-ALISQLWM.js} +2 -2
  16. package/build/{chunk-TDO7IFO6.js → chunk-D4BEWAHG.js} +5 -2
  17. package/build/chunk-D4BEWAHG.js.map +1 -0
  18. package/build/{chunk-7ZSRRYB6.js → chunk-EHF76E7L.js} +7 -4
  19. package/build/chunk-EHF76E7L.js.map +1 -0
  20. package/build/{chunk-2YWQMCYL.js → chunk-KB3L5UL7.js} +2 -2
  21. package/build/{chunk-H6EWS6IF.js → chunk-N6VWO365.js} +2 -2
  22. package/build/{chunk-EMEJMFDS.js → chunk-PM4W3HQH.js} +2 -2
  23. package/build/{EnvPullCommand-RCCSTWOJ.js → chunk-QQ2U7U3U.js} +3 -15
  24. package/build/{EnvPullCommand-RCCSTWOJ.js.map → chunk-QQ2U7U3U.js.map} +1 -1
  25. package/build/{chunk-6F3HZWHI.js → chunk-SFWZS7QK.js} +9 -1
  26. package/build/chunk-SFWZS7QK.js.map +1 -0
  27. package/build/{preview-BFD2GALD.js → chunk-UOQLSOZA.js} +4 -44
  28. package/build/chunk-UOQLSOZA.js.map +1 -0
  29. package/build/{chunk-4L4VX3K6.js → chunk-ZDAEKQCY.js} +2 -2
  30. package/build/{chunk-4L4VX3K6.js.map → chunk-ZDAEKQCY.js.map} +1 -1
  31. package/build/{dev-L7RT7UZD.js → dev-4MGHELTI.js} +8 -8
  32. package/build/env-pull-KXJPQXQ2.js +49 -0
  33. package/build/env-pull-KXJPQXQ2.js.map +1 -0
  34. package/build/index.js +12 -12
  35. package/build/{install-HHYTVORP.js → install-IUDKNYIK.js} +5 -5
  36. package/build/preview-26HRERQR.js +68 -0
  37. package/build/preview-26HRERQR.js.map +1 -0
  38. package/build/{publish-KJZ5VY4N.js → publish-QHNCXJYC.js} +11 -11
  39. package/build/{render-command-ZX5HGLIL.js → render-command-C2BHIBNC.js} +4 -4
  40. package/build/{render-command-KNT6R4TM.js → render-command-LBBL7RXY.js} +2 -2
  41. package/build/{render-command-2XRAAJF6.js → render-command-LBRTN2FK.js} +3 -3
  42. package/build/{src-7PXYBA4T.js → src-B42XR5HG.js} +52 -24
  43. package/build/src-B42XR5HG.js.map +1 -0
  44. package/build/{src-3YCY3A6N.js → src-RRTUVXCL.js} +3 -3
  45. package/build/{src-3CROJOB6.js → src-TGTF3GAK.js} +8 -4
  46. package/build/src-TGTF3GAK.js.map +1 -0
  47. package/build/{src-NHIOKHGM.js → src-TQ5CIG2U.js} +6 -6
  48. package/build/{uninstall-FZQD6AV5.js → uninstall-UGIYRUMG.js} +5 -5
  49. package/package.json +2 -2
  50. package/build/ReleaseCommand-ND3DAKOU.js.map +0 -1
  51. package/build/chunk-6F3HZWHI.js.map +0 -1
  52. package/build/chunk-7ZSRRYB6.js.map +0 -1
  53. package/build/chunk-KLTEP7AZ.js.map +0 -1
  54. package/build/chunk-TDO7IFO6.js.map +0 -1
  55. package/build/preview-BFD2GALD.js.map +0 -1
  56. package/build/src-7PXYBA4T.js.map +0 -1
  57. /package/build/{PreviewCommand-7JGGKUNA.js.map → EnvPullCommand-KWDNNN6C.js.map} +0 -0
  58. /package/build/{EnvRemoveCommand-DOD4IKNQ.js.map → EnvRemoveCommand-ZCSNXZPD.js.map} +0 -0
  59. /package/build/{EnvSetCommand-7ZXAJJXY.js.map → EnvSetCommand-SLMJRVDO.js.map} +0 -0
  60. /package/build/{GenerateCommand-NN35PMBQ.js.map → GenerateCommand-3K2S53JD.js.map} +0 -0
  61. /package/build/{InstallCommand-6HILIMZ4.js.map → InstallCommand-P3FQAHRR.js.map} +0 -0
  62. /package/build/{LoginCommand-Q6PHFCSX.js.map → LoginCommand-QOOPEM5V.js.map} +0 -0
  63. /package/build/{render-command-2XRAAJF6.js.map → PreviewCommand-4YKD3QDW.js.map} +0 -0
  64. /package/build/{UninstallCommand-FSM6ACGS.js.map → UninstallCommand-5NCUIZVA.js.map} +0 -0
  65. /package/build/{chunk-I4IC4BN2.js.map → chunk-ALISQLWM.js.map} +0 -0
  66. /package/build/{chunk-2YWQMCYL.js.map → chunk-KB3L5UL7.js.map} +0 -0
  67. /package/build/{chunk-H6EWS6IF.js.map → chunk-N6VWO365.js.map} +0 -0
  68. /package/build/{chunk-EMEJMFDS.js.map → chunk-PM4W3HQH.js.map} +0 -0
  69. /package/build/{dev-L7RT7UZD.js.map → dev-4MGHELTI.js.map} +0 -0
  70. /package/build/{install-HHYTVORP.js.map → install-IUDKNYIK.js.map} +0 -0
  71. /package/build/{publish-KJZ5VY4N.js.map → publish-QHNCXJYC.js.map} +0 -0
  72. /package/build/{render-command-ZX5HGLIL.js.map → render-command-C2BHIBNC.js.map} +0 -0
  73. /package/build/{render-command-KNT6R4TM.js.map → render-command-LBBL7RXY.js.map} +0 -0
  74. /package/build/{src-3CROJOB6.js.map → render-command-LBRTN2FK.js.map} +0 -0
  75. /package/build/{src-3YCY3A6N.js.map → src-RRTUVXCL.js.map} +0 -0
  76. /package/build/{src-NHIOKHGM.js.map → src-TQ5CIG2U.js.map} +0 -0
  77. /package/build/{uninstall-FZQD6AV5.js.map → uninstall-UGIYRUMG.js.map} +0 -0
@@ -1,9 +1,10 @@
1
1
  import { createRequire as _createRequire } from 'node:module';
2
2
  const require = _createRequire(import.meta.url);
3
3
  import {
4
- renderCommand
5
- } from "./chunk-EMEJMFDS.js";
6
- import "./chunk-TDO7IFO6.js";
4
+ renderCommand,
5
+ runCommand
6
+ } from "./chunk-PM4W3HQH.js";
7
+ import "./chunk-D4BEWAHG.js";
7
8
  import {
8
9
  NO_TTY_JSON_OUTPUT_OPTION
9
10
  } from "./chunk-7ICFZQAL.js";
@@ -51,9 +52,9 @@ var buildCommand = (services, cliVersion) => createCommand("build").description(
51
52
  "Invoke the astro build process, forwarding all command-line arguments."
52
53
  ).allowExcessArguments(true).allowUnknownOption(true).passThroughOptions(true).action(async (_, command) => {
53
54
  const { execa } = await import("./execa-KAGZAUR3.js");
54
- const { getRepoType, createPackageManager } = await import("./src-3CROJOB6.js");
55
- const { runCommand } = await import("./render-command-2XRAAJF6.js");
56
- await runCommand(command, services, cliVersion, async (model) => {
55
+ const { getRepoType, createPackageManager } = await import("./src-TGTF3GAK.js");
56
+ const { runCommand: runCommand2 } = await import("./render-command-LBRTN2FK.js");
57
+ await runCommand2(command, services, cliVersion, async (model) => {
57
58
  const repoType = await getRepoType(model.projectFolder);
58
59
  const packageManager = await createPackageManager(repoType);
59
60
  const { file, args } = packageManager.getRunBinaryCmd(
@@ -75,8 +76,16 @@ var import_react = __toESM(require_react(), 1);
75
76
  var envPullCommand = (services, cliVersion) => {
76
77
  return createCommand("pull").description(
77
78
  "Pulls environment variables and merge them into .env.local file"
79
+ ).addOption(
80
+ new Option(NO_TTY_JSON_OUTPUT_OPTION, "Output in JSON format").hideHelp()
78
81
  ).action(async (opts, command) => {
79
- const { EnvPullCommand } = await import("./EnvPullCommand-RCCSTWOJ.js");
82
+ if (opts.json) {
83
+ return runCommand(command, services, cliVersion, async (model) => {
84
+ const { nonInteractiveEnvPull } = await import("./env-pull-KXJPQXQ2.js");
85
+ return nonInteractiveEnvPull(services, model);
86
+ });
87
+ }
88
+ const { EnvPullCommand } = await import("./EnvPullCommand-KWDNNN6C.js");
80
89
  await renderCommand(command, services, cliVersion, /* @__PURE__ */ import_react.default.createElement(EnvPullCommand, null));
81
90
  });
82
91
  };
@@ -86,7 +95,7 @@ init_esm_shims();
86
95
  var import_react2 = __toESM(require_react(), 1);
87
96
  var envSetCommand = (services, cliVersion) => {
88
97
  return createCommand("set").description("Sets environment variable").requiredOption("--key <key>", "Name of the variable").requiredOption("--value <value>", "Value of the variable").action(async (opts, command) => {
89
- const { EnvSetCommand } = await import("./EnvSetCommand-7ZXAJJXY.js");
98
+ const { EnvSetCommand } = await import("./EnvSetCommand-SLMJRVDO.js");
90
99
  const variable = { key: opts.key, value: opts.value };
91
100
  await renderCommand(
92
101
  command,
@@ -102,7 +111,7 @@ init_esm_shims();
102
111
  var import_react3 = __toESM(require_react(), 1);
103
112
  var envRemoveCommand = (services, cliVersion) => {
104
113
  return createCommand("remove").description("Removes an environment variable").requiredOption("--key <key>", "Name of the variable").action(async (opts, command) => {
105
- const { EnvRemoveCommand } = await import("./EnvRemoveCommand-DOD4IKNQ.js");
114
+ const { EnvRemoveCommand } = await import("./EnvRemoveCommand-ZCSNXZPD.js");
106
115
  await renderCommand(
107
116
  command,
108
117
  services,
@@ -130,6 +139,16 @@ function validateBase(value) {
130
139
  }
131
140
  throw new InvalidArgumentError("Value must be a valid URL");
132
141
  }
142
+ var LABEL_MAX_LENGTH = 200;
143
+ function validateLabel(value) {
144
+ const parsed = z.string().max(LABEL_MAX_LENGTH).safeParse(value);
145
+ if (parsed.success) {
146
+ return parsed.data;
147
+ }
148
+ throw new InvalidArgumentError(
149
+ `Value must be up to ${LABEL_MAX_LENGTH} characters`
150
+ );
151
+ }
133
152
 
134
153
  // ../cli-astro-commands/src/commands/preview.tsx
135
154
  var previewCommand = (services, cliVersion) => {
@@ -137,23 +156,27 @@ var previewCommand = (services, cliVersion) => {
137
156
  "--base-url <url>",
138
157
  "The base url for when static files have been uploaded to an external cdn",
139
158
  validateBase
159
+ ).option(
160
+ "-l, --label <label>",
161
+ "A custom label for this preview",
162
+ validateLabel
140
163
  ).addOption(
141
164
  new Option(NO_TTY_JSON_OUTPUT_OPTION, "Output in JSON format").hideHelp()
142
165
  ).action(async (options, command) => {
143
- const { baseUrl, json } = options;
144
- const { renderCommand: renderCommand2, runCommand } = await import("./render-command-2XRAAJF6.js");
166
+ const { baseUrl, json, label } = options;
167
+ const { renderCommand: renderCommand2, runCommand: runCommand2 } = await import("./render-command-LBRTN2FK.js");
145
168
  if (json) {
146
- return runCommand(command, services, cliVersion, async (model) => {
147
- const { nonInteractivePreview } = await import("./preview-BFD2GALD.js");
148
- return nonInteractivePreview(services, model, { baseUrl });
169
+ return runCommand2(command, services, cliVersion, async (model) => {
170
+ const { nonInteractivePreview } = await import("./preview-26HRERQR.js");
171
+ return nonInteractivePreview(services, model, { baseUrl, label });
149
172
  });
150
173
  }
151
- const { PreviewCommand } = await import("./PreviewCommand-7JGGKUNA.js");
174
+ const { PreviewCommand } = await import("./PreviewCommand-4YKD3QDW.js");
152
175
  await renderCommand2(
153
176
  command,
154
177
  services,
155
178
  cliVersion,
156
- /* @__PURE__ */ import_react4.default.createElement(PreviewCommand, { baseUrl, environment: "preview" })
179
+ /* @__PURE__ */ import_react4.default.createElement(PreviewCommand, { baseUrl, label, environment: "preview" })
157
180
  );
158
181
  });
159
182
  };
@@ -166,14 +189,19 @@ var releaseCommand = (services, cliVersion) => {
166
189
  "--base-url <url>",
167
190
  "The base url for when static files have been uploaded to an external cdn",
168
191
  validateBase
192
+ ).option(
193
+ "-l, --label <label>",
194
+ "A custom label for this release",
195
+ validateLabel
169
196
  ).action(async (options, command) => {
170
- const { renderCommand: renderCommand2 } = await import("./render-command-2XRAAJF6.js");
171
- const { ReleaseCommand } = await import("./ReleaseCommand-ND3DAKOU.js");
197
+ const { renderCommand: renderCommand2 } = await import("./render-command-LBRTN2FK.js");
198
+ const { ReleaseCommand } = await import("./ReleaseCommand-SRCF6OMF.js");
199
+ const { baseUrl, label } = options;
172
200
  await renderCommand2(
173
201
  command,
174
202
  services,
175
203
  cliVersion,
176
- /* @__PURE__ */ import_react5.default.createElement(ReleaseCommand, { baseUrl: options.baseUrl })
204
+ /* @__PURE__ */ import_react5.default.createElement(ReleaseCommand, { baseUrl, label })
177
205
  );
178
206
  });
179
207
  };
@@ -195,8 +223,8 @@ var devCommand = (services, cliVersion) => {
195
223
  "--base-url <baseUrl>",
196
224
  "Base URL to use instead of a localhost when running dev command"
197
225
  ).action(async (options, command) => {
198
- const { DevCommand } = await import("./DevCommand-2Z74PQ26.js");
199
- const { renderCommand: renderCommand2 } = await import("./render-command-2XRAAJF6.js");
226
+ const { DevCommand } = await import("./DevCommand-44BZIWFW.js");
227
+ const { renderCommand: renderCommand2 } = await import("./render-command-LBRTN2FK.js");
200
228
  await renderCommand2(
201
229
  command,
202
230
  services,
@@ -218,8 +246,8 @@ init_esm_shims();
218
246
  var import_react7 = __toESM(require_react(), 1);
219
247
  var generateCommand = (services, cliVersion) => {
220
248
  return createCommand("generate").description("Generate a new extension for your project").action(async (options, command) => {
221
- const { GenerateCommand } = await import("./GenerateCommand-NN35PMBQ.js");
222
- const { renderCommand: renderCommand2 } = await import("./render-command-2XRAAJF6.js");
249
+ const { GenerateCommand } = await import("./GenerateCommand-3K2S53JD.js");
250
+ const { renderCommand: renderCommand2 } = await import("./render-command-LBRTN2FK.js");
223
251
  await renderCommand2(command, services, cliVersion, /* @__PURE__ */ import_react7.default.createElement(GenerateCommand, null));
224
252
  });
225
253
  };
@@ -231,4 +259,4 @@ var getRootCommand = async (services, cliVersion) => {
231
259
  export {
232
260
  getRootCommand
233
261
  };
234
- //# sourceMappingURL=src-7PXYBA4T.js.map
262
+ //# sourceMappingURL=src-B42XR5HG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../cli-astro-commands/src/index.ts","../../cli-astro-commands/src/commands/root-command.ts","../../cli-astro-commands/src/commands/build.ts","../../cli-astro-commands/src/commands/env.ts","../../cli-astro-commands/src/commands/env-pull.tsx","../../cli-astro-commands/src/commands/env-set.tsx","../../cli-astro-commands/src/commands/env-remove.tsx","../../cli-astro-commands/src/commands/preview.tsx","../../cli-astro-commands/src/commands/validations.ts","../../cli-astro-commands/src/commands/release.tsx","../../cli-astro-commands/src/commands/dev.tsx","../../cli-astro-commands/src/commands/generate.tsx"],"sourcesContent":["export { getRootCommand } from './commands/root-command.js';\n","import { createCommand } from '@commander-js/extra-typings';\nimport type {\n CommandServices,\n GetRootCommandFn,\n} from '@wix/cli-command-contract';\n\nimport { buildCommand } from './build.js';\nimport { envCommand } from './env.js';\nimport { previewCommand } from './preview.js';\nimport { releaseCommand } from './release.js';\nimport { devCommand } from './dev.js';\nimport { generateCommand } from './generate.js';\n\nexport const getRootCommand: GetRootCommandFn = async (\n services: CommandServices,\n cliVersion: string\n) => {\n return createCommand('astro')\n .enablePositionalOptions(true)\n .addCommand(buildCommand(services, cliVersion))\n .addCommand(envCommand(services, cliVersion))\n .addCommand(previewCommand(services, cliVersion))\n .addCommand(releaseCommand(services, cliVersion))\n .addCommand(devCommand(services, cliVersion))\n .addCommand(generateCommand(services, cliVersion));\n};\n","import { createCommand } from '@commander-js/extra-typings';\nimport type { CommandServices } from '@wix/cli-command-contract';\n\nexport const buildCommand = (services: CommandServices, cliVersion: string) =>\n createCommand('build')\n .description(\n 'Invoke the astro build process, forwarding all command-line arguments.'\n )\n .allowExcessArguments(true)\n .allowUnknownOption(true)\n .passThroughOptions(true)\n .action(async (_, command) => {\n const { execa } = await import('execa');\n\n const { getRepoType, createPackageManager } = await import(\n '@wix/package-manager'\n );\n\n const { runCommand } = await import('./render-command.js');\n\n await runCommand(command, services, cliVersion, async (model) => {\n const repoType = await getRepoType(model.projectFolder);\n const packageManager = await createPackageManager(repoType);\n\n const { file, args } = packageManager.getRunBinaryCmd(\n ['astro', 'build'].concat(command.args)\n );\n\n await execa(file, args, {\n cwd: model.projectFolder,\n stdio: 'inherit',\n });\n });\n });\n","import { createCommand } from '@commander-js/extra-typings';\nimport type { CommandServices } from '@wix/cli-command-contract';\nimport { envPullCommand } from './env-pull.js';\nimport { envSetCommand } from './env-set.js';\nimport { envRemoveCommand } from './env-remove.js';\n\nexport const envCommand = (services: CommandServices, cliVersion: string) => {\n return createCommand('env')\n .description('Work with environment variables')\n .addCommand(envPullCommand(services, cliVersion))\n .addCommand(envSetCommand(services, cliVersion))\n .addCommand(envRemoveCommand(services, cliVersion));\n};\n","import React from 'react';\nimport { createCommand, Option } from '@commander-js/extra-typings';\nimport { NO_TTY_JSON_OUTPUT_OPTION } from '@wix/cli-command-contract';\nimport type { CommandServices } from '@wix/cli-command-contract';\nimport { renderCommand, runCommand } from './render-command.js';\n\nexport const envPullCommand = (\n services: CommandServices,\n cliVersion: string\n) => {\n return createCommand('pull')\n .description(\n 'Pulls environment variables and merge them into .env.local file'\n )\n .addOption(\n new Option(NO_TTY_JSON_OUTPUT_OPTION, 'Output in JSON format').hideHelp()\n )\n .action(async (opts, command) => {\n if (opts.json) {\n return runCommand(command, services, cliVersion, async (model) => {\n const { nonInteractiveEnvPull } = await import(\n '../non-interactive/env-pull.js'\n );\n return nonInteractiveEnvPull(services, model);\n });\n }\n\n const { EnvPullCommand } = await import(\n '../components/EnvPullCommand/index.js'\n );\n\n await renderCommand(command, services, cliVersion, <EnvPullCommand />);\n });\n};\n","import React from 'react';\nimport { createCommand } from '@commander-js/extra-typings';\nimport type { CommandServices } from '@wix/cli-command-contract';\nimport { renderCommand } from './render-command.js';\n\nexport const envSetCommand = (\n services: CommandServices,\n cliVersion: string\n) => {\n return createCommand('set')\n .description('Sets environment variable')\n .requiredOption('--key <key>', 'Name of the variable')\n .requiredOption('--value <value>', 'Value of the variable')\n .action(async (opts, command) => {\n const { EnvSetCommand } = await import(\n '../components/EnvSetCommand/index.js'\n );\n\n const variable = { key: opts.key, value: opts.value };\n\n await renderCommand(\n command,\n services,\n cliVersion,\n <EnvSetCommand variable={variable} />\n );\n });\n};\n","import React from 'react';\nimport { createCommand } from '@commander-js/extra-typings';\nimport type { CommandServices } from '@wix/cli-command-contract';\nimport { renderCommand } from './render-command.js';\n\nexport const envRemoveCommand = (\n services: CommandServices,\n cliVersion: string\n) => {\n return createCommand('remove')\n .description('Removes an environment variable')\n .requiredOption('--key <key>', 'Name of the variable')\n .action(async (opts, command) => {\n const { EnvRemoveCommand } = await import(\n '../components/EnvRemoveCommand/index.js'\n );\n\n await renderCommand(\n command,\n services,\n cliVersion,\n <EnvRemoveCommand variableKey={opts.key} />\n );\n });\n};\n","import React from 'react';\nimport type { CommandServices } from '@wix/cli-command-contract';\nimport { NO_TTY_JSON_OUTPUT_OPTION } from '@wix/cli-command-contract';\nimport { createCommand, Option } from '@commander-js/extra-typings';\nimport { validateBase, validateLabel } from './validations.js';\n\nexport const previewCommand = (\n services: CommandServices,\n cliVersion: string\n) => {\n return createCommand('preview')\n .option(\n '--base-url <url>',\n 'The base url for when static files have been uploaded to an external cdn',\n validateBase\n )\n .option(\n '-l, --label <label>',\n 'A custom label for this preview',\n validateLabel\n )\n .addOption(\n new Option(NO_TTY_JSON_OUTPUT_OPTION, 'Output in JSON format').hideHelp()\n )\n .action(async (options, command) => {\n const { baseUrl, json, label } = options;\n\n const { renderCommand, runCommand } = await import('./render-command.js');\n\n if (json) {\n return runCommand(command, services, cliVersion, async (model) => {\n const { nonInteractivePreview } = await import(\n '../non-interactive/preview.js'\n );\n return nonInteractivePreview(services, model, { baseUrl, label });\n });\n }\n\n const { PreviewCommand } = await import(\n '../components/PreviewCommand/index.js'\n );\n\n await renderCommand(\n command,\n services,\n cliVersion,\n <PreviewCommand baseUrl={baseUrl} label={label} environment=\"preview\" />\n );\n });\n};\n","import { z } from 'zod';\nimport { InvalidArgumentError } from '@commander-js/extra-typings';\n\nexport function validateBase(value: string) {\n const parsed = z.string().url().safeParse(value);\n\n if (parsed.success) {\n return parsed.data;\n }\n\n throw new InvalidArgumentError('Value must be a valid URL');\n}\n\nconst LABEL_MAX_LENGTH = 200;\n\nexport function validateLabel(value: string) {\n const parsed = z.string().max(LABEL_MAX_LENGTH).safeParse(value);\n\n if (parsed.success) {\n return parsed.data;\n }\n\n throw new InvalidArgumentError(\n `Value must be up to ${LABEL_MAX_LENGTH} characters`\n );\n}\n","import React from 'react';\nimport type { CommandServices } from '@wix/cli-command-contract';\nimport { createCommand } from '@commander-js/extra-typings';\nimport { validateBase, validateLabel } from './validations.js';\n\nexport const releaseCommand = (\n services: CommandServices,\n cliVersion: string\n) => {\n return createCommand('release')\n .description('Release a new version of your application')\n .option(\n '--base-url <url>',\n 'The base url for when static files have been uploaded to an external cdn',\n validateBase\n )\n .option(\n '-l, --label <label>',\n 'A custom label for this release',\n validateLabel\n )\n .action(async (options, command) => {\n const { renderCommand } = await import('./render-command.js');\n const { ReleaseCommand } = await import(\n '../components/ReleaseCommand/index.js'\n );\n\n const { baseUrl, label } = options;\n\n await renderCommand(\n command,\n services,\n cliVersion,\n <ReleaseCommand baseUrl={baseUrl} label={label} />\n );\n });\n};\n","import React from 'react';\nimport type { CommandServices } from '@wix/cli-command-contract';\nimport { createCommand } from '@commander-js/extra-typings';\n\nexport const devCommand = (services: CommandServices, cliVersion: string) => {\n return createCommand('dev')\n .option(\n '--port <port>',\n 'Specify which port to run on. Defaults to 4321.',\n (value) => {\n return parseInt(value, 10);\n }\n )\n .option(\n '--allowed-hosts <allowedHosts>',\n 'Specify a comma-separated list of allowed hosts or allow any hostname.'\n )\n .option(\n '--base-url <baseUrl>',\n 'Base URL to use instead of a localhost when running dev command'\n )\n .action(async (options, command) => {\n const { DevCommand } = await import('../components/DevCommand/index.js');\n const { renderCommand } = await import('./render-command.js');\n\n await renderCommand(\n command,\n services,\n cliVersion,\n <DevCommand\n port={options.port}\n allowedHosts={options.allowedHosts}\n serverExposedUrl={options.baseUrl}\n />\n );\n });\n};\n","import { createCommand } from '@commander-js/extra-typings';\nimport type { CommandServices } from '@wix/cli-command-contract';\nimport React from 'react';\n\nexport const generateCommand = (\n services: CommandServices,\n cliVersion: string\n) => {\n return createCommand('generate')\n .description('Generate a new extension for your project')\n .action(async (options, command) => {\n const { GenerateCommand } = await import(\n '../components/GenerateCommand/index.js'\n );\n const { renderCommand } = await import('./render-command.js');\n await renderCommand(command, services, cliVersion, <GenerateCommand />);\n });\n};\n"],"mappings":"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","names":["runCommand","React","import_react","React","import_react","React","import_react","renderCommand","runCommand","React","import_react","renderCommand","React","import_react","renderCommand","React","import_react","renderCommand","React"]}
@@ -99,7 +99,7 @@ var installCommand = (services, cliVersion) => {
99
99
  const t = createI18nT();
100
100
  return createCommand("install").description(t("site_install_command_def.description")).argument("[package]", t("site_install_command_def.argument.package")).action(async (packageName, _opts, command) => {
101
101
  const { renderCommand } = await import("./render-command-P4VD5BQ2.js");
102
- const { InstallCommand } = await import("./InstallCommand-6HILIMZ4.js");
102
+ const { InstallCommand } = await import("./InstallCommand-P3FQAHRR.js");
103
103
  await renderCommand(
104
104
  command,
105
105
  services,
@@ -116,7 +116,7 @@ var uninstallCommand = (services, cliVersion) => {
116
116
  const t = createI18nT();
117
117
  return createCommand("uninstall").description(t("site_uninstall_command_def.description")).argument("<package>", t("site_uninstall_command_def.argument.package")).action(async (packageName, _opts, command) => {
118
118
  const { renderCommand } = await import("./render-command-P4VD5BQ2.js");
119
- const { UninstallCommand } = await import("./UninstallCommand-FSM6ACGS.js");
119
+ const { UninstallCommand } = await import("./UninstallCommand-5NCUIZVA.js");
120
120
  await renderCommand(
121
121
  command,
122
122
  services,
@@ -133,4 +133,4 @@ var getRootCommand = async function getRootCommand2(services, cliVersion) {
133
133
  export {
134
134
  getRootCommand
135
135
  };
136
- //# sourceMappingURL=src-3YCY3A6N.js.map
136
+ //# sourceMappingURL=src-RRTUVXCL.js.map
@@ -5,11 +5,13 @@ import {
5
5
  RepoType,
6
6
  Yarn,
7
7
  createPackageManager,
8
+ getGitLatestCommitHash,
8
9
  getRepoType,
9
10
  gitClone,
10
11
  gitCommit,
11
- gitInit
12
- } from "./chunk-6F3HZWHI.js";
12
+ gitInit,
13
+ isInsideGitRepo
14
+ } from "./chunk-SFWZS7QK.js";
13
15
  import "./chunk-3OG3PDAA.js";
14
16
  import "./chunk-OJHDGJWP.js";
15
17
  import "./chunk-ZWJZS7BK.js";
@@ -21,9 +23,11 @@ export {
21
23
  RepoType,
22
24
  Yarn,
23
25
  createPackageManager,
26
+ getGitLatestCommitHash,
24
27
  getRepoType,
25
28
  gitClone,
26
29
  gitCommit,
27
- gitInit
30
+ gitInit,
31
+ isInsideGitRepo
28
32
  };
29
- //# sourceMappingURL=src-3CROJOB6.js.map
33
+ //# sourceMappingURL=src-TGTF3GAK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -58,7 +58,7 @@ var devCommand = (services, cliVersion) => {
58
58
  new Option2("--tunnel", t("site_dev_command_def.option.tunnel")).conflicts("https").hideHelp(true)
59
59
  ).description(t("site_dev_command_def.description")).action(async (options, command) => {
60
60
  const { runCommand } = await import("./run-command-OJIGR5M3.js");
61
- const { dev } = await import("./dev-L7RT7UZD.js");
61
+ const { dev } = await import("./dev-4MGHELTI.js");
62
62
  await runCommand(
63
63
  command,
64
64
  services,
@@ -74,7 +74,7 @@ var installCommand = (services, cliVersion) => {
74
74
  const t = createI18nT();
75
75
  return createCommand("install").description(t("site_install_command_def.description")).argument("[package]", t("site_install_command_def.argument.package")).option("--yarn", t("site_install_command_def.option.yarn")).option("--npm", t("site_install_command_def.option.npm")).action(async (packageName, opts, command) => {
76
76
  const { runCommand } = await import("./run-command-OJIGR5M3.js");
77
- const { install } = await import("./install-HHYTVORP.js");
77
+ const { install } = await import("./install-IUDKNYIK.js");
78
78
  await runCommand(
79
79
  command,
80
80
  services,
@@ -95,7 +95,7 @@ var previewCommand = (services, cliVersion) => {
95
95
  t("site_preview_command_def.option.source")
96
96
  ).choices(["local", "remote"])
97
97
  ).action(async (options, command) => {
98
- const { renderCommand } = await import("./render-command-ZX5HGLIL.js");
98
+ const { renderCommand } = await import("./render-command-C2BHIBNC.js");
99
99
  const { PreviewCommand } = await import("./PreviewCommand-Z5GX6ZNV.js");
100
100
  await renderCommand(
101
101
  command,
@@ -120,7 +120,7 @@ var publishCommand = (services, cliVersion) => {
120
120
  t("site_publish_command_def.option.approve_preview")
121
121
  ).option("-f, --force", t("site_publish_command_def.option.force")).action(async (options, command) => {
122
122
  const { runCommand } = await import("./run-command-OJIGR5M3.js");
123
- const { publish } = await import("./publish-KJZ5VY4N.js");
123
+ const { publish } = await import("./publish-QHNCXJYC.js");
124
124
  await runCommand(
125
125
  command,
126
126
  services,
@@ -149,7 +149,7 @@ var uninstallCommand = (services, cliVersion) => {
149
149
  const t = createI18nT();
150
150
  return createCommand("uninstall").description(t("site_uninstall_command_def.description")).argument("<package>", t("site_uninstall_command_def.argument.package")).option("--yarn", t("site_uninstall_command_def.option.yarn")).option("--npm", t("site_uninstall_command_def.option.npm")).action(async (packageName, opts, command) => {
151
151
  const { runCommand } = await import("./run-command-OJIGR5M3.js");
152
- const { uninstall } = await import("./uninstall-FZQD6AV5.js");
152
+ const { uninstall } = await import("./uninstall-UGIYRUMG.js");
153
153
  await runCommand(
154
154
  command,
155
155
  services,
@@ -166,4 +166,4 @@ var getRootCommand = async function getRootCommand2(services, cliVersion) {
166
166
  export {
167
167
  getRootCommand
168
168
  };
169
- //# sourceMappingURL=src-NHIOKHGM.js.map
169
+ //# sourceMappingURL=src-TQ5CIG2U.js.map
@@ -3,10 +3,12 @@ const require = _createRequire(import.meta.url);
3
3
  import {
4
4
  resolveNpmDependencies,
5
5
  resolvePackageManager
6
- } from "./chunk-I4IC4BN2.js";
6
+ } from "./chunk-ALISQLWM.js";
7
+ import "./chunk-K3JR47MS.js";
7
8
  import {
8
9
  createLogger
9
10
  } from "./chunk-O6ZDAZFZ.js";
11
+ import "./chunk-QGNDWQQD.js";
10
12
  import {
11
13
  createI18nT
12
14
  } from "./chunk-PIQXSDTQ.js";
@@ -14,13 +16,11 @@ import {
14
16
  authenticate
15
17
  } from "./chunk-PEYNHLTD.js";
16
18
  import "./chunk-BWQNSFZR.js";
17
- import "./chunk-K3JR47MS.js";
18
- import "./chunk-QGNDWQQD.js";
19
19
  import "./chunk-E4DQ4CV7.js";
20
20
  import "./chunk-J6324FUW.js";
21
21
  import "./chunk-ZZXI3UI4.js";
22
22
  import "./chunk-CNXKF7E3.js";
23
- import "./chunk-6F3HZWHI.js";
23
+ import "./chunk-SFWZS7QK.js";
24
24
  import "./chunk-3OG3PDAA.js";
25
25
  import "./chunk-OJHDGJWP.js";
26
26
  import "./chunk-UTTRVHIB.js";
@@ -85,4 +85,4 @@ async function uninstall(model, services, options, initialPackageName) {
85
85
  export {
86
86
  uninstall
87
87
  };
88
- //# sourceMappingURL=uninstall-FZQD6AV5.js.map
88
+ //# sourceMappingURL=uninstall-UGIYRUMG.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@wix/cli",
3
3
  "description": "CLI tool for building Wix sites and applications",
4
- "version": "1.1.94",
4
+ "version": "1.1.95",
5
5
  "bin": {
6
6
  "wix": "bin/wix.cjs"
7
7
  },
@@ -90,5 +90,5 @@
90
90
  ]
91
91
  }
92
92
  },
93
- "falconPackageHash": "8208551b409e004bc2070eea296cf926c3dbf6b9d098aa522604ff2b"
93
+ "falconPackageHash": "ec60cbf460260e916b2fae1d352433b1afb7f2b88d2c8b9e6bf76fcc"
94
94
  }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../cli-astro-commands/src/components/ReleaseCommand/index.ts","../../cli-astro-commands/src/components/ReleaseCommand/ReleaseCommand.tsx","../../cli-astro-commands/src/components/ReleaseCommand/Release.tsx","../../cli-astro-commands/src/components/ReleaseCommand/Steps/CreatePreview.tsx"],"sourcesContent":["export { ReleaseCommand } from './ReleaseCommand.js';\n","import React from 'react';\nimport type { FC } from 'react';\nimport { match } from 'variant';\nimport { useAsync, Spinner, Text } from '@wix/cli-ui-kit';\nimport { useDevCenterClient } from '@wix/dev-center-client';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport parse from 'semver/functions/parse.js';\nimport { useProjectModel } from '../../model.js';\nimport { assertBuildOutputExists } from '../../files/assert-build-output-exists.js';\nimport { Release } from './Release.js';\n\ninterface ReleaseCommandProps {\n baseUrl?: string;\n}\n\nexport const ReleaseCommand: FC<ReleaseCommandProps> = (props) => {\n const {\n model: {\n projectFolder,\n config: { appId },\n },\n } = useProjectModel();\n\n const { queryAppVersion } = useDevCenterClient();\n\n const { status } = useAsync(async () => {\n await assertBuildOutputExists(projectFolder);\n const { isLocked, isPublished, latestVersion } = await queryAppVersion({\n appId,\n });\n\n if (isLocked) {\n throw new CliError({\n code: CliErrorCode.CannotReleaseLockedApplication(),\n cause: undefined,\n });\n }\n\n const parsedLatestVersion = parse(latestVersion);\n if (!parsedLatestVersion) {\n throw new CliError({\n code: CliErrorCode.FailedToParseLatestVersion({\n version: latestVersion,\n }),\n cause: undefined,\n info: {\n latestVersion,\n },\n });\n }\n\n return { isPublished, latestVersion: parsedLatestVersion };\n }, []);\n\n return match(status, {\n Error: () => null,\n Loading: () => (\n <Spinner text={<Text>Loading application details...</Text>} />\n ),\n Success: ({ result }) => <Release {...props} {...result} />,\n });\n};\n","import React from 'react';\nimport type { FC } from 'react';\nimport { match } from 'variant';\nimport { Box, Text, Alert, Spinner, useAsyncCallback } from '@wix/cli-ui-kit';\nimport { useARMClient } from '@wix/arm-client';\nimport type { SemVer } from 'semver';\nimport { useProjectModel } from '../../model.js';\nimport { CreatePreview } from './Steps/CreatePreview.js';\n\ninterface ReleaseProps {\n baseUrl?: string;\n isPublished: boolean;\n latestVersion: SemVer;\n}\n\nexport const Release: FC<ReleaseProps> = ({ baseUrl }) => {\n const {\n model: {\n config: { appId },\n },\n } = useProjectModel();\n\n const { release } = useARMClient();\n\n const releaseAction = useAsyncCallback(async (_, tag: string) => {\n const baseUrl = await release(appId, tag);\n\n return {\n baseUrl,\n };\n });\n\n function onPreviewCreated({ tag }: { tag: string }) {\n return releaseAction.execute(tag);\n }\n\n return (\n <>\n <CreatePreview\n baseUrl={baseUrl}\n onCreated={({ armTag }) => onPreviewCreated({ tag: armTag })}\n />\n {match(releaseAction.status, {\n NotRequested: () => null,\n Error: () => null,\n Loading: () => <Spinner text={<Text>Releasing...</Text>} />,\n Success: ({ result: { baseUrl } }) => (\n <Box flexDirection=\"column\" gap={1}>\n <Alert type=\"success\">\n <Text bold>Site published on {baseUrl}</Text>\n </Alert>\n </Box>\n ),\n })}\n </>\n );\n};\n","import React from 'react';\nimport type { FC } from 'react';\nimport { Box, Text } from '@wix/cli-ui-kit';\nimport { PreviewCommand } from '../../PreviewCommand/index.js';\n\ninterface CreatePreviewProps {\n baseUrl?: string;\n onCreated: (args: { armTag: string; serverUrl: string }) => void;\n}\n\nexport const CreatePreview: FC<CreatePreviewProps> = (props) => {\n const { baseUrl, onCreated } = props;\n\n return (\n <Box flexDirection=\"column\" gap={1}>\n <Text>\n Before creating a new version, let's create a preview of your app\n </Text>\n <Box flexDirection=\"column\">\n <PreviewCommand\n baseUrl={baseUrl}\n onPreviewCreated={onCreated}\n environment=\"production\"\n />\n </Box>\n </Box>\n );\n};\n"],"mappings":"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","names":["import_react","import_variant","import_react","React","baseUrl","React","parse","React"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../package-manager/src/index.ts","../../package-manager/src/package-manager.ts","../../package-manager/src/adapters/npm.ts","../../package-manager/src/shell/index.ts","../../package-manager/src/shell/shell-client.ts","../../package-manager/src/repo-type.ts","../../package-manager/src/git-service.ts","../../package-manager/src/adapters/yarn.ts"],"sourcesContent":["export { createPackageManager } from './package-manager.js';\nexport { NPM } from './adapters/npm.js';\nexport { Yarn } from './adapters/yarn.js';\nexport type { IPackageManager } from './types.js';\nexport { getRepoType, RepoType } from './repo-type.js';\nexport { gitClone, gitCommit, gitInit } from './git-service.js';\n","import { env } from 'node:process';\nimport { pathExists } from '@wix/cli-fs';\nimport { join } from 'node:path';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { matcher } from 'variant';\nimport { NPM } from './adapters/npm.js';\nimport { Yarn, resolveYarnVersion } from './adapters/yarn.js';\nimport type { IPackageManager, PackageManagerName } from './types.js';\nimport { RepoType } from './repo-type.js';\n\nexport async function createPackageManager(\n repoType: RepoType\n): Promise<IPackageManager> {\n const packageManagerName = await getPackageManagerName(repoType);\n\n switch (packageManagerName) {\n case 'yarn-berry':\n return new Yarn(repoType, 'yarn-berry');\n case 'yarn':\n return new Yarn(repoType, 'yarn');\n case 'npm':\n return new NPM(repoType);\n }\n}\n\nasync function getPackageManagerName(\n repoType: RepoType\n): Promise<PackageManagerName> {\n // In case of an existing repo we first check for relevant package manager files.\n // this is an extra layer of identification that should prevent errors when the\n // user runs create-app using a package manager other than the one used in the project\n\n const getByEnv = (): PackageManagerName => {\n if (env.npm_config_user_agent?.startsWith('yarn/1')) {\n return 'yarn';\n }\n\n // yarn v2+\n if (env.npm_config_user_agent?.startsWith('yarn')) {\n return 'yarn-berry';\n }\n\n if (env.npm_config_user_agent?.startsWith('npm')) {\n return 'npm';\n }\n\n throw new CliError({\n code: CliErrorCode.UnsupportedPackageManager({\n packageManagerName: env.npm_config_user_agent,\n }),\n cause: null,\n });\n };\n\n return matcher(repoType)\n .when(RepoType.None, getByEnv)\n .when(\n [RepoType.Polyrepo, RepoType.Monorepo],\n async ({ rootDir }): Promise<PackageManagerName> => {\n const [hasYarnRc, hasYarnLock, hasPackageLock] = await Promise.all([\n pathExists(join(rootDir, '.yarnrc.yml')),\n pathExists(join(rootDir, 'yarn.lock')),\n pathExists(join(rootDir, 'package-lock.json')),\n ]);\n\n if (hasYarnRc || hasYarnLock) {\n const yarnVersion = await resolveYarnVersion(rootDir);\n return yarnVersion.startsWith('1') ? 'yarn' : 'yarn-berry';\n }\n\n if (hasPackageLock) {\n return 'npm';\n }\n\n return getByEnv();\n }\n )\n .complete();\n}\n","import { CliError, CliErrorCode } from '@wix/cli-error';\nimport { isType } from 'variant';\nimport { runCommand } from '../shell/index.js';\nimport type { IPackageManager } from '../types.js';\nimport { RepoType } from '../repo-type.js';\n\nexport class NPM implements IPackageManager {\n readonly name = 'npm';\n\n constructor(private readonly repoType: RepoType) {}\n\n getUsage(name: string): string {\n return `npm init ${name.replace('create-', '')}`;\n }\n\n getInstallCmd(): string {\n return 'npm install';\n }\n\n getRunCmd(): string {\n return 'npm run';\n }\n\n getRunBinaryCmd(args: string[]): { file: string; args: string[] } {\n return {\n file: 'npx',\n args: ['--no-install'].concat(args),\n };\n }\n\n async setup(_cwd: string): Promise<void> {\n if (isType(this.repoType, RepoType.Monorepo)) {\n throw new CliError({\n code: CliErrorCode.UnsupportedPackageManagerWorkspaces({\n packageManagerName: this.name,\n }),\n cause: null,\n });\n }\n }\n\n async runInstall(cwd: string): Promise<void> {\n try {\n await runCommand(this.getInstallCmd(), { cwd });\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToInstallPackages(),\n info: { packageManager: this.name },\n cause: e,\n });\n }\n }\n\n async runInstallPackage(cwd: string, packageName: string): Promise<void> {\n try {\n await runCommand(`npm install ${packageName}`, { cwd });\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToInstallPackage({ packageName }),\n info: { packageManager: this.name },\n cause: e,\n });\n }\n }\n\n async runUninstallPackage(cwd: string, packageName: string): Promise<void> {\n try {\n await runCommand(`npm uninstall ${packageName}`, { cwd });\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToUninstallPackage({ packageName }),\n info: { packageManager: this.name },\n cause: e,\n });\n }\n }\n}\n","export { runCommand } from './shell-client.js';\n","import { execaCommand } from 'execa';\nimport type { Options } from './types.js';\n\nexport async function runCommand(command: string, opts?: Options) {\n const commandProcess = execaCommand(command, {\n /**\n * DO NOT USE `shell: true`!\n * It's a security risk that leads to injections and should be avoided.\n * ref: https://github.com/sindresorhus/execa/tree/main#shell\n */\n shell: false,\n cwd: opts?.cwd,\n env: opts?.env,\n });\n\n if (opts?.output) {\n commandProcess.stdout?.pipe(opts.output);\n }\n\n const { stdout } = await commandProcess;\n\n return stdout;\n}\n","import { readJson } from '@wix/cli-fs';\nimport { join } from 'node:path';\nimport { variant, fields } from 'variant';\nimport type { VariantOf } from 'variant';\nimport type { PackageJson } from 'type-fest';\nimport { getGitRoot, isInsideGitRepo } from './git-service.js';\n\nexport const RepoType = variant({\n None: {},\n Polyrepo: fields<{ rootDir: string }>(),\n Monorepo: fields<{ rootDir: string }>(),\n});\n\nexport type RepoType = VariantOf<typeof RepoType>;\n\nexport async function getRepoType(\n targetParentFolder: string\n): Promise<RepoType> {\n if (!(await isInsideGitRepo(targetParentFolder))) {\n return RepoType.None();\n }\n\n const rootDir = await getGitRoot(targetParentFolder);\n\n if (await isUsingWorkspaces(rootDir)) {\n return RepoType.Monorepo({\n rootDir,\n });\n }\n\n return RepoType.Polyrepo({\n rootDir,\n });\n}\n\nasync function isUsingWorkspaces(rootDir: string) {\n return readJson(join(rootDir, 'package.json'))\n .then((pkgJson) => Boolean((pkgJson as PackageJson).workspaces))\n .catch(() => false);\n}\n","import { runCommand } from './shell/index.js';\n\nexport function isInsideGitRepo(cwd: string) {\n return runCommand('git rev-parse --is-inside-work-tree', { cwd })\n .then(() => true)\n .catch(() => false);\n}\n\nexport async function getGitRoot(cwd: string) {\n return runCommand('git rev-parse --show-toplevel', { cwd });\n}\n\nexport async function gitInit(cwd: string) {\n await runCommand('git init', { cwd });\n}\n\nexport async function gitCommit(cwd: string) {\n await runCommand('git add -A', { cwd });\n await runCommand(\n `git commit -m Initial\\\\ commit\\\\ from\\\\ Create\\\\ Wix\\\\ App --no-verify`,\n { cwd }\n );\n}\n\nexport async function gitClone(url: string, path: string) {\n await runCommand(`git clone --depth 1 ${url} ${path}`, {\n env: {\n /*\n * This is to prevent git from prompting for credentials.\n * `git clone` uses a subprocess for the authentication, so we can't attach the main process to its stdio.\n * This leads to:\n * - the spinners \"swallow\" its output.\n * - after answering with the username and pressing \"Enter\", the first line of the output is being duplicated.\n * That's why we're disabling the prompt, so user should be pre-authenticated.\n */\n GIT_TERMINAL_PROMPT: '0',\n },\n });\n}\n","import { CliError, CliErrorCode } from '@wix/cli-error';\nimport { readJson, writeJson } from '@wix/cli-fs';\nimport { join, relative } from 'node:path';\nimport { matcher } from 'variant';\nimport { EOL } from 'node:os';\nimport { z } from 'zod';\nimport { writeFile } from 'node:fs/promises';\nimport type { PackageJson } from 'type-fest';\nimport { runCommand } from '../shell/index.js';\nimport type { IPackageManager } from '../types.js';\nimport type { RepoType } from '../repo-type.js';\n\ntype YarnVersion = 'yarn' | 'yarn-berry';\n\nexport async function resolveYarnVersion(cwd: string) {\n const stdout = await runCommand('yarn --version', { cwd });\n return stdout.trim();\n}\n\nexport class Yarn implements IPackageManager {\n constructor(\n private readonly repoType: RepoType,\n readonly name: YarnVersion\n ) {}\n\n getUsage(name: string): string {\n return `yarn create ${name.replace('create-', '')}`;\n }\n\n getInstallCmd(): string {\n return 'yarn install';\n }\n\n getRunCmd(): string {\n return 'yarn';\n }\n\n getRunBinaryCmd(args: string[]): { file: string; args: string[] } {\n return {\n file: 'yarn',\n args: ['run'].concat(args),\n };\n }\n\n async setup(packageFolder: string): Promise<void> {\n return matcher(this.repoType)\n .when(['None', 'Polyrepo'], async () => {\n if (this.name === 'yarn-berry') {\n // if yarn berry encounters a package.json in a parent folder, it\n // complains that our project needs to be part of that parent project.\n // An official way to tell yarn that this is a standalone project is\n // to create an empty lockfile.\n // A similar thing was done in create-astro: https://github.com/withastro/astro/pull/8028\n await writeFile(join(packageFolder, 'yarn.lock'), '');\n }\n })\n .when('Monorepo', async ({ rootDir }) => {\n try {\n await addPackageToWorkspaces({\n rootDir,\n packageFolder,\n yarnVersion: this.name,\n });\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedAddingPackageToWorkspace(),\n cause: error,\n });\n }\n })\n .complete();\n }\n\n async runInstall(cwd: string): Promise<void> {\n try {\n await runCommand(this.getInstallCmd(), { cwd });\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToInstallPackages(),\n info: { packageManager: this.name },\n cause: e,\n });\n }\n }\n\n async runInstallPackage(cwd: string, packageName: string): Promise<void> {\n try {\n await runCommand(`yarn add ${packageName}`, { cwd });\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToInstallPackage({ packageName }),\n info: { packageManager: this.name },\n cause: e,\n });\n }\n }\n\n async runUninstallPackage(cwd: string, packageName: string): Promise<void> {\n try {\n await runCommand(`yarn remove ${packageName}`, { cwd });\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToUninstallPackage({ packageName }),\n info: { packageManager: this.name },\n cause: e,\n });\n }\n }\n}\n\nasync function getPackagesRelativePaths(\n rootDir: string,\n yarnVersion: YarnVersion\n): Promise<string[]> {\n const workspacesSchema = z.array(\n z.object({\n location: z.string(),\n })\n );\n\n if (yarnVersion === 'yarn-berry') {\n const packages = await runCommand('yarn workspaces list --json', {\n cwd: rootDir,\n });\n\n const parsedPackages = workspacesSchema.parse(\n packages\n .split(EOL)\n .filter(Boolean)\n .map((pkg) => JSON.parse(pkg))\n );\n\n return parsedPackages.map((pkg) => pkg.location);\n }\n\n const packages = await runCommand('yarn --json workspaces info', {\n cwd: rootDir,\n });\n\n const parsedPackages = workspacesSchema.parse(\n Object.values(JSON.parse(JSON.parse(packages).data))\n );\n return parsedPackages.map((pkg) => pkg.location);\n}\n\nasync function addPackageToWorkspaces({\n rootDir,\n packageFolder,\n yarnVersion,\n}: {\n rootDir: string;\n packageFolder: string;\n yarnVersion: YarnVersion;\n}) {\n const relativePackagePath = relative(rootDir, packageFolder);\n const packages = await getPackagesRelativePaths(rootDir, yarnVersion);\n\n if (packages.includes(relativePackagePath)) {\n return;\n }\n\n const packageJson = (await readJson(\n join(rootDir, 'package.json')\n )) as PackageJson;\n\n if (Array.isArray(packageJson.workspaces)) {\n packageJson.workspaces.push(relativePackagePath);\n } else if (typeof packageJson.workspaces === 'object') {\n packageJson.workspaces = {\n ...packageJson.workspaces,\n packages: [\n ...(packageJson.workspaces.packages ?? []),\n relativePackagePath,\n ],\n };\n } else {\n throw new Error(\n `Failed to read workspaces structure. Expected an array or object but got ${JSON.stringify(\n packageJson.workspaces\n )}`\n );\n }\n\n await writeJson(join(rootDir, 'package.json'), packageJson, { spaces: 2 });\n}\n"],"mappings":"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","names":["join","import_variant","import_variant","import_variant","join","join","packages","parsedPackages","join"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../arm-client/src/useARMClient.ts","../../arm-client/src/client.ts","../../../node_modules/@wix/ambassador-ctp-gradual-rollout-v1-app-config/http.impl.ts","../../../node_modules/@wix/ambassador-ctp-gradual-rollout-v1-baas-release/http.impl.ts","../../arm-client/src/fieldValidations.ts","../../arm-client/src/schemas.ts","../../arm-client/src/index.ts","../../cli-astro-commands/src/components/PreviewCommand/hooks/useUpdateManifest.ts","../../cli-astro-commands/src/components/PlatformLink/PlatformLink.tsx","../../cli-astro-commands/src/hooks/useUpdateDeploymentTopology.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { ARMClient } from './client.js';\n\nexport function useARMClient(): ARMClient {\n const httpClient = useHttpClient({ type: 'backoffice' });\n return useMemo(() => new ARMClient(httpClient), [httpClient]);\n}\n","import type { ComponentConfig } from '@wix/ambassador-ctp-gradual-rollout-v1-app-config/types';\nimport type { AppManifest, LooseAppManifest } from '@wix/cli-app-manifest';\nimport type { HttpClient, HttpError } from '@wix/cli-http-client';\nimport type { Options } from 'p-retry';\nimport {\n commitComponentOverride,\n createAppRelease,\n createComponents,\n promoteAppVersionFromDraftToProduction,\n updateAppRelease,\n} from '@wix/ambassador-ctp-gradual-rollout-v1-app-config/http';\nimport { release } from '@wix/ambassador-ctp-gradual-rollout-v1-baas-release/http';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { isHttpError } from '@wix/cli-http-client';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport pRetry from 'p-retry';\nimport { fields, variant } from 'variant';\nimport { parseFieldValidationError } from './fieldValidations.js';\nimport {\n commitComponentOverrideSchema,\n createAppReleaseSchema,\n promoteAppVersionFromDraftToProductionSchema,\n releaseArm2Schema,\n} from './schemas.js';\n\nconst { AppPermissionDenied } = CliErrorCode;\n\nconst UpdateAppReleaseData = variant({\n TagNotFound: fields<{ cause: HttpError }>(),\n TagUpdated: {},\n});\n\nexport class ARMClient {\n private readonly retryOptions: Options;\n\n constructor(private readonly httpClient: HttpClient) {\n const { minRetryTimeout } = getTestOverrides();\n\n this.retryOptions = {\n maxTimeout: 3 * 1000,\n minTimeout: minRetryTimeout,\n retries: 3,\n };\n }\n\n createComponents = async (\n appId: string,\n componentConfigs: ComponentConfig[],\n projectId: string\n ) => {\n try {\n await pRetry(\n () =>\n this.httpClient.request(\n createComponents({\n appId,\n componentConfigs,\n projectId,\n })\n ),\n this.retryOptions\n );\n } catch (e) {\n if (isHttpError(e) && e.response?.status === 403) {\n throw new CliError({\n cause: e,\n code: AppPermissionDenied({ appId }),\n });\n }\n throw new CliError({\n cause: e,\n code: CliErrorCode.FailedToCreateComponents(),\n });\n }\n };\n\n createAppRelease = async (manifest: AppManifest, projectId: string) => {\n try {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n createAppRelease({\n appId: manifest.appId,\n componentConfigs: manifest.components,\n projectId,\n })\n ),\n this.retryOptions\n );\n\n return createAppReleaseSchema.parse(data).tag;\n } catch (e) {\n if (isHttpError(e) && e.response?.status === 403) {\n throw new CliError({\n cause: e,\n code: AppPermissionDenied({ appId: manifest.appId }),\n });\n }\n const violations = parseFieldValidationError(e);\n if (violations.length > 0) {\n throw new CliError({\n cause: e,\n code: CliErrorCode.AppReleaseConfigViolations({\n violations,\n }),\n });\n }\n throw new CliError({\n cause: e,\n code: CliErrorCode.FailedToCreateAppRelease(),\n });\n }\n };\n\n createLooseAppRelease = async (\n manifest: LooseAppManifest,\n projectId: string\n ) => {\n return this.createAppRelease(manifest as AppManifest, projectId);\n };\n\n updateAppRelease = async (manifest: AppManifest, tag: string) => {\n try {\n await pRetry(\n () =>\n this.httpClient.request(\n updateAppRelease({\n appId: manifest.appId,\n componentConfigs: manifest.components,\n tag,\n })\n ),\n this.retryOptions\n );\n\n return UpdateAppReleaseData.TagUpdated();\n } catch (e) {\n if (isHttpError(e)) {\n if (e.response?.status === 404) {\n return UpdateAppReleaseData.TagNotFound({ cause: e });\n }\n if (e.response?.status === 403) {\n throw new CliError({\n cause: e,\n code: AppPermissionDenied({ appId: manifest.appId }),\n });\n }\n }\n throw new CliError({\n cause: e,\n code: CliErrorCode.FailedToUpdateAppRelease(),\n });\n }\n };\n\n updateLooseAppRelease = async (manifest: LooseAppManifest, tag: string) => {\n return this.updateAppRelease(manifest as AppManifest, tag);\n };\n\n createDraftVersion = async (appId: string, tag: string) => {\n try {\n const { data } = await this.httpClient.request(\n commitComponentOverride({\n appId,\n componentOverrideId: tag,\n })\n );\n\n return commitComponentOverrideSchema.parse(data);\n } catch (cause) {\n throw new CliError({\n cause,\n code: CliErrorCode.FailedToCreateDraftVersion(),\n });\n }\n };\n\n releaseDraftVersion = async (\n appId: string,\n options: {\n createNewMajor: boolean;\n latestMajor: number;\n notes: string;\n }\n ) => {\n try {\n const { data } = await this.httpClient.request(\n promoteAppVersionFromDraftToProduction({\n appId,\n createNewMajor: options.createNewMajor,\n latestMajor: options.latestMajor,\n notes: options.notes,\n })\n );\n\n const { fullVersion } =\n promoteAppVersionFromDraftToProductionSchema.parse(data);\n\n return { releasedVersion: fullVersion };\n } catch (cause) {\n throw new CliError({\n cause,\n code: CliErrorCode.FailedToReleaseDraftVersion(),\n });\n }\n };\n\n release = async (appId: string, componentOverrideId: string) => {\n try {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n release({\n appId,\n componentOverrideId,\n })\n ),\n this.retryOptions\n );\n\n return releaseArm2Schema.parse(data).releaseBaseUrl;\n } catch (e) {\n throw new CliError({\n cause: e,\n code: CliErrorCode.FailedToReleaseHeadlessProject(),\n });\n }\n };\n}\n",null,null,"import { CliError, CliErrorCode } from '@wix/cli-error';\nimport { isHttpError } from '@wix/cli-http-client';\nimport { fieldValidationsSchema } from './schemas.js';\n\nexport const parseFieldValidationError = (err: unknown) => {\n if (isHttpError(err)) {\n const fieldViolations =\n err.response?.data?.details?.validationError?.fieldViolations;\n if (fieldViolations) {\n const result = fieldValidationsSchema.safeParse(fieldViolations);\n\n if (result.success) {\n return result.data;\n }\n\n throw new CliError({\n cause: err,\n code: CliErrorCode.FailedToParseFieldValidationError(),\n info: {\n zodError: result.error,\n },\n });\n }\n }\n return [];\n};\n","import { z } from 'zod';\n\nexport const promoteAppVersionFromDraftToProductionSchema = z.object({\n fullVersion: z.string(),\n});\n\nexport const commitComponentOverrideSchema = z.object({\n nextMajor: z.string(),\n nextMinor: z.string().optional(),\n});\n\nexport const createAppReleaseSchema = z.object({\n tag: z.string(),\n});\n\nexport const fieldValidationsSchema = z.array(\n z.object({\n description: z.string(),\n field: z.string(),\n })\n);\n\nexport const releaseArm2Schema = z.object({\n releaseBaseUrl: z.string(),\n});\n","export { ARMClient } from './client.js';\nexport { useARMClient } from './useARMClient.js';\n","import { useCallback } from 'react';\nimport { ComponentType } from '@wix/ambassador-devcenter-apps-v1-app-old/types';\nimport type { LooseAppManifest, LooseComponent } from '@wix/cli-app-manifest';\nimport { BACKEND_WORKER_COMPONENT_ID } from '@wix/cli-astro-definitions';\n\ntype ComponentMap = {\n [T in LooseComponent as T['compType']]: T;\n};\n\ntype ComponentHandler<T extends keyof ComponentMap> = (options: {\n component: ComponentMap[T];\n serverUrl: string;\n tunnelUrl?: string;\n}) => void;\n\ntype ComponentHandlers = {\n [T in keyof ComponentMap]?: ComponentHandler<T>;\n};\n\nconst componentHandlers: ComponentHandlers = {\n [ComponentType.WEBHOOK]: ({ component, serverUrl, tunnelUrl }) => {\n component.compData.webhook.callbackUrl = normalizeUrl(\n component.compData.webhook.callbackUrl,\n tunnelUrl ?? serverUrl\n );\n },\n [ComponentType.BACK_OFFICE_PAGE]: ({ component, serverUrl }) => {\n component.compData.backOfficePage.iframeUrl = normalizeUrl(\n component.compData.backOfficePage.iframeUrl,\n serverUrl\n );\n },\n [ComponentType.BACK_OFFICE_EXTENSION_WIDGET]: ({ component, serverUrl }) => {\n component.compData.backOfficeExtensionWidget.iframeUrl = normalizeUrl(\n component.compData.backOfficeExtensionWidget.iframeUrl,\n serverUrl\n );\n },\n [ComponentType.BACK_OFFICE_MODAL]: ({ component, serverUrl }) => {\n component.compData.backOfficeModal.iframeUrl = normalizeUrl(\n component.compData.backOfficeModal.iframeUrl,\n serverUrl\n );\n },\n [ComponentType.BACK_OFFICE_EXTENSION_MENU_ITEM]: ({\n component,\n serverUrl,\n }) => {\n component.compData.backOfficeExtensionMenuItem.iframeUrl = normalizeUrl(\n component.compData.backOfficeExtensionMenuItem.iframeUrl,\n serverUrl\n );\n },\n [ComponentType.ECOM_SHIPPING_RATES]: ({\n component,\n serverUrl,\n tunnelUrl,\n }) => {\n component.compData.ecomShippingRates.deploymentUri = normalizeUrl(\n component.compData.ecomShippingRates.deploymentUri,\n tunnelUrl ?? serverUrl\n );\n },\n [ComponentType.ECOM_ADDITIONAL_FEES]: ({\n component,\n serverUrl,\n tunnelUrl,\n }) => {\n component.compData.ecomAdditionalFees.deploymentUri = normalizeUrl(\n component.compData.ecomAdditionalFees.deploymentUri,\n tunnelUrl ?? serverUrl\n );\n },\n [ComponentType.ECOM_DISCOUNTS_TRIGGER]: ({\n component,\n serverUrl,\n tunnelUrl,\n }) => {\n component.compData.ecomDiscountsTrigger.deploymentUri = normalizeUrl(\n component.compData.ecomDiscountsTrigger.deploymentUri,\n tunnelUrl ?? serverUrl\n );\n },\n [ComponentType.ECOM_VALIDATIONS]: ({ component, serverUrl, tunnelUrl }) => {\n component.compData.ecomValidations.deploymentUri = normalizeUrl(\n component.compData.ecomValidations.deploymentUri,\n tunnelUrl ?? serverUrl\n );\n },\n [ComponentType.ECOM_PAYMENT_SETTINGS]: ({\n component,\n serverUrl,\n tunnelUrl,\n }) => {\n component.compData.ecomPaymentSettings.deploymentUri = normalizeUrl(\n component.compData.ecomPaymentSettings.deploymentUri,\n tunnelUrl ?? serverUrl\n );\n },\n [ComponentType.GIFT_CARDS_PROVIDER]: ({\n component,\n serverUrl,\n tunnelUrl,\n }) => {\n component.compData.giftCardsProvider.deploymentUri = normalizeUrl(\n component.compData.giftCardsProvider.deploymentUri,\n tunnelUrl ?? serverUrl\n );\n },\n [ComponentType.TOPOLOGY]: ({ component, serverUrl, tunnelUrl }) => {\n component.compData.topology.topology.backendApiUrl = tunnelUrl ?? serverUrl;\n },\n};\n\nexport function useUpdateManifest() {\n const updateManifest = useCallback(\n (manifest: LooseAppManifest, serverUrl: string, tunnelUrl?: string) => {\n const clone = structuredClone(manifest);\n\n for (const component of clone.components) {\n const handler = getHandler(\n component as LooseComponent,\n componentHandlers\n );\n handler?.({\n component: component as LooseComponent,\n serverUrl,\n tunnelUrl,\n });\n }\n\n return clone;\n },\n []\n );\n\n const updateManifestWithBackendWorker = useCallback(\n (manifest: LooseAppManifest, deploymentId: string) => {\n const clone = structuredClone(manifest);\n clone.components.push({\n compId: BACKEND_WORKER_COMPONENT_ID,\n compType: ComponentType.BACKEND_WORKER,\n compData: {\n backendWorker: {\n deploymentId,\n },\n },\n });\n\n return clone;\n },\n []\n );\n\n return {\n updateManifest,\n updateManifestWithBackendWorker,\n };\n}\n\nfunction getHandler<C extends LooseComponent>(\n component: C,\n handlers: ComponentHandlers\n) {\n return handlers[component.compType] as\n | ComponentHandler<C['compType']>\n | undefined;\n}\n\nfunction normalizeUrl(inputUrl: string | undefined, baseUrl: string) {\n if (!inputUrl) {\n return baseUrl;\n }\n\n if (URL.canParse(inputUrl)) {\n return inputUrl;\n }\n\n const base = new URL(baseUrl);\n const normalizedUrl = new URL(inputUrl, base);\n\n // Preserve base query string if it exists\n if (base.search) {\n normalizedUrl.search = base.search;\n }\n\n return normalizedUrl.href;\n}\n","import React from 'react';\nimport type { FC } from 'react';\nimport { Box, Link, PointerSmallIcon } from '@wix/cli-ui-kit';\n\ninterface PlatformLinkProps {\n url: string;\n label: string;\n}\n\nexport const PlatformLink: FC<PlatformLinkProps> = ({ url, label }) => {\n return (\n <Box marginRight={1}>\n <PointerSmallIcon />\n <Box marginLeft={1}>\n <Link url={url}>{label}</Link>\n </Box>\n </Box>\n );\n};\n","import type { DeploymentTopologyEnvironmentType } from '@wix/cli-astro-definitions';\nimport {\n deploymentTopologySchema,\n getDeploymentTopologyPath,\n} from '@wix/cli-astro-definitions';\nimport { pathExists, readJson, writeJson } from '@wix/cli-fs';\nimport { useAsyncCallback } from '@wix/cli-ui-kit';\nimport { useProjectModel } from '../model.js';\n\ninterface UpdateDeploymentTopologyProps {\n armTag: string;\n serverUrl: string;\n environment: DeploymentTopologyEnvironmentType;\n}\n\nexport function useUpdateDeploymentTopology() {\n const {\n model: {\n projectFolder,\n config: { siteId },\n },\n } = useProjectModel();\n\n return useAsyncCallback(async (_, props: UpdateDeploymentTopologyProps) => {\n const { environment, serverUrl, armTag } = props;\n\n const topology = await readDeploymentTopology(projectFolder);\n topology[environment] = {\n id: armTag,\n site: {\n main: serverUrl,\n },\n dashboard: {\n main: `https://manage.wix.com/dashboard/${siteId}?apps-override=${armTag}`,\n },\n };\n\n const path = getDeploymentTopologyPath(projectFolder);\n await writeJson(path, topology, { spaces: 2 });\n });\n}\n\nasync function readDeploymentTopology(projectFolder: string) {\n const path = getDeploymentTopologyPath(projectFolder);\n\n if (await pathExists(path)) {\n try {\n const deployment = await readJson(path);\n return deploymentTopologySchema.parse(deployment);\n } catch {\n // ignore any failures while reading/parsing the .wix/topology.json\n // it's a temporary file, shouldn't break the app.\n }\n }\n\n return {};\n}\n"],"mappings":"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","names":["_a","_a","_a","import_react","import_react","React"]}