@wix/cli 1.1.119 → 1.1.121

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 (187) hide show
  1. package/build/{DevCommand-SW5QG3EQ.js → DevCommand-DJOVM34F.js} +17 -17
  2. package/build/{DevCommand-QDVPFDC3.js → DevCommand-GJGORE6V.js} +492 -381
  3. package/build/DevCommand-GJGORE6V.js.map +1 -0
  4. package/build/{DevCommand-PXHEAQAL.js → DevCommand-PGCNN5XY.js} +21 -21
  5. package/build/EnvPullCommand-HHUBRDI5.js +30 -0
  6. package/build/{EnvRemoveCommand-UZDY5CBA.js → EnvRemoveCommand-FVURAMI6.js} +13 -13
  7. package/build/{EnvSetCommand-ZFJLWS6Z.js → EnvSetCommand-4FWJAMGJ.js} +13 -13
  8. package/build/{GenerateCommand-WCLMXP6J.js → GenerateCommand-2MPQ74IH.js} +200 -154
  9. package/build/{GenerateCommand-WCLMXP6J.js.map → GenerateCommand-2MPQ74IH.js.map} +1 -1
  10. package/build/{InstallCommand-5WIU4KJI.js → InstallCommand-Z6PVUDZ2.js} +19 -19
  11. package/build/{LoginCommand-IB5AZVR6.js → LoginCommand-F3T6RR2P.js} +11 -11
  12. package/build/{LogoutCommand-AZNDP5US.js → LogoutCommand-YJIOC473.js} +8 -8
  13. package/build/{PreviewCommand-LBUDGW3Y.js → PreviewCommand-67HV322G.js} +16 -16
  14. package/build/{PreviewCommand-627KVG42.js → PreviewCommand-LIUZ4V3Q.js} +25 -25
  15. package/build/PreviewCommand-LIUZ4V3Q.js.map +1 -0
  16. package/build/{PreviewCommand-3HUO3OS7.js → PreviewCommand-PMRWVEXH.js} +22 -22
  17. package/build/{PublishCommand-AYRG7EWO.js → PublishCommand-XH52PJUF.js} +22 -22
  18. package/build/{ReleaseCommand-HBHUINN2.js → ReleaseCommand-7OTAZIYB.js} +16 -16
  19. package/build/{UninstallCommand-WQUBAUAX.js → UninstallCommand-EDIVWWSN.js} +19 -19
  20. package/build/{WhoamiCommand-CBQ55746.js → WhoamiCommand-ERE5KRK5.js} +4 -4
  21. package/build/{chunk-MACNBB4Z.js → chunk-2ODMSMLQ.js} +2 -2
  22. package/build/{chunk-7DPHWL5Q.js → chunk-46UBNWDE.js} +9 -9
  23. package/build/{chunk-TMLDHPS6.js → chunk-6EJNAOBP.js} +8 -8
  24. package/build/{chunk-TMLDHPS6.js.map → chunk-6EJNAOBP.js.map} +1 -1
  25. package/build/{chunk-RPLKYT53.js → chunk-6OV37XZP.js} +23 -23
  26. package/build/{chunk-RPLKYT53.js.map → chunk-6OV37XZP.js.map} +1 -1
  27. package/build/{chunk-PF6OY5ZF.js → chunk-6RW52R4D.js} +18 -12
  28. package/build/{chunk-PF6OY5ZF.js.map → chunk-6RW52R4D.js.map} +1 -1
  29. package/build/{chunk-2655XJHU.js → chunk-73MIX2O2.js} +4 -4
  30. package/build/{chunk-NSZZBK3V.js → chunk-7G33IQU6.js} +3 -3
  31. package/build/{chunk-NSZZBK3V.js.map → chunk-7G33IQU6.js.map} +1 -1
  32. package/build/{chunk-2ED6TC2C.js → chunk-7LCZ57SO.js} +1 -1
  33. package/build/{chunk-2ED6TC2C.js.map → chunk-7LCZ57SO.js.map} +1 -1
  34. package/build/{chunk-K4R5HGYL.js → chunk-7LTAZSUI.js} +519 -503
  35. package/build/chunk-7LTAZSUI.js.map +1 -0
  36. package/build/{chunk-DJHDYTUX.js → chunk-AHOU27PT.js} +2 -2
  37. package/build/{chunk-OHYPEB2V.js → chunk-AV2QWD2T.js} +32 -32
  38. package/build/{chunk-OHYPEB2V.js.map → chunk-AV2QWD2T.js.map} +1 -1
  39. package/build/{chunk-C57C5VQT.js → chunk-AVLCHWQS.js} +8 -8
  40. package/build/{chunk-6VUT2YWH.js → chunk-AYPGGVYN.js} +52 -34
  41. package/build/{chunk-6VUT2YWH.js.map → chunk-AYPGGVYN.js.map} +1 -1
  42. package/build/{chunk-BBSCL7QD.js → chunk-B5WA4Z63.js} +4 -4
  43. package/build/{chunk-JFQWMWVU.js → chunk-CDY6L7PA.js} +3 -3
  44. package/build/{chunk-RFG42N5O.js → chunk-CM2XSGSM.js} +8 -8
  45. package/build/{chunk-OWYUMYID.js → chunk-CPSZ7QTC.js} +3 -3
  46. package/build/{chunk-OZ7FYGCP.js → chunk-DR4RSQZ7.js} +3 -3
  47. package/build/{chunk-3O4FYLKE.js → chunk-DS6P3FBA.js} +7 -7
  48. package/build/{chunk-UOIFOI6P.js → chunk-E3K64ZZV.js} +2 -2
  49. package/build/{chunk-7ABASOTN.js → chunk-E7EAMFQD.js} +8 -2
  50. package/build/chunk-E7EAMFQD.js.map +1 -0
  51. package/build/{chunk-4MG6XKFC.js → chunk-EO3JVSRM.js} +19 -19
  52. package/build/{chunk-4MG6XKFC.js.map → chunk-EO3JVSRM.js.map} +1 -1
  53. package/build/{chunk-Y5R2NROG.js → chunk-EUL3GKZI.js} +3 -3
  54. package/build/{chunk-ZXYGJZOO.js → chunk-F43XHKVL.js} +233 -231
  55. package/build/chunk-F43XHKVL.js.map +1 -0
  56. package/build/{chunk-5DS3BZB2.js → chunk-FHQ23JQX.js} +8 -8
  57. package/build/{chunk-AKWVTYTC.js → chunk-FUDRK2JS.js} +7 -7
  58. package/build/{chunk-AKWVTYTC.js.map → chunk-FUDRK2JS.js.map} +1 -1
  59. package/build/chunk-H7756NJ6.js +48 -0
  60. package/build/{chunk-JJ6PVZ7K.js.map → chunk-H7756NJ6.js.map} +1 -1
  61. package/build/{chunk-A5I45GO6.js → chunk-II7O6SCF.js} +2 -2
  62. package/build/{chunk-OEFE6BTD.js → chunk-IUJ26DW6.js} +3 -3
  63. package/build/{chunk-IO36MUVK.js → chunk-IWQIW4GL.js} +8 -8
  64. package/build/{chunk-IO36MUVK.js.map → chunk-IWQIW4GL.js.map} +1 -1
  65. package/build/{chunk-LY7WPKIJ.js → chunk-JEYKAALI.js} +2 -2
  66. package/build/{chunk-LG7HFD33.js → chunk-KNBTUAEM.js} +49 -49
  67. package/build/{chunk-LG7HFD33.js.map → chunk-KNBTUAEM.js.map} +1 -1
  68. package/build/{chunk-CTIL75KV.js → chunk-KONVQLDI.js} +191 -106
  69. package/build/chunk-KONVQLDI.js.map +1 -0
  70. package/build/{chunk-S5HPLGCO.js → chunk-N2KKXUSW.js} +2 -2
  71. package/build/{chunk-DPYSUDZL.js → chunk-O2URYJCJ.js} +6 -6
  72. package/build/{chunk-UC64G5TK.js → chunk-O3R4SBGX.js} +8 -8
  73. package/build/{chunk-UC64G5TK.js.map → chunk-O3R4SBGX.js.map} +1 -1
  74. package/build/{chunk-REUV6BGH.js → chunk-OA3CO5CH.js} +4 -4
  75. package/build/{chunk-SW2F4TAT.js → chunk-OHMQSHHI.js} +2 -2
  76. package/build/{chunk-36DUOWOE.js → chunk-QDWLTWDB.js} +261 -286
  77. package/build/{chunk-36DUOWOE.js.map → chunk-QDWLTWDB.js.map} +1 -1
  78. package/build/{chunk-22NYLYKP.js → chunk-R5RJYQCX.js} +3 -3
  79. package/build/chunk-RL7RA2JG.js +63 -0
  80. package/build/chunk-RL7RA2JG.js.map +1 -0
  81. package/build/{chunk-2WDDWGYF.js → chunk-TXS6FIYJ.js} +11 -2
  82. package/build/chunk-TXS6FIYJ.js.map +1 -0
  83. package/build/{chunk-V43UCNDB.js → chunk-UBVEF7HP.js} +3 -3
  84. package/build/{chunk-SX5ANDWH.js → chunk-ULVWTXXM.js} +8 -8
  85. package/build/{chunk-LXKRWX4K.js → chunk-Y7PQOTYY.js} +11 -2
  86. package/build/{chunk-LXKRWX4K.js.map → chunk-Y7PQOTYY.js.map} +1 -1
  87. package/build/{chunk-7J6ML7GO.js → chunk-Z2CMHMLR.js} +5 -5
  88. package/build/{chunk-EKIOJ6JP.js → chunk-ZUSQSFTR.js} +8 -8
  89. package/build/{chunk-EKIOJ6JP.js.map → chunk-ZUSQSFTR.js.map} +1 -1
  90. package/build/{chunk-LLFDPUTB.js → chunk-ZW47BBFN.js} +7 -7
  91. package/build/{chunk-LLFDPUTB.js.map → chunk-ZW47BBFN.js.map} +1 -1
  92. package/build/{dev-AFEUGIXK.js → dev-LDM6OLLM.js} +36 -28
  93. package/build/dev-LDM6OLLM.js.map +1 -0
  94. package/build/{env-pull-V7KPXSNR.js → env-pull-S7C55RJ5.js} +16 -16
  95. package/build/index.js +31 -31
  96. package/build/index.js.map +1 -1
  97. package/build/{install-E3SPSIL6.js → install-ZDOXIHH4.js} +20 -20
  98. package/build/{preview-CAK23HJ5.js → preview-CRSLEUET.js} +18 -18
  99. package/build/{publish-HTEOPPWC.js → publish-VVW4FJOF.js} +22 -22
  100. package/build/{publish-HTEOPPWC.js.map → publish-VVW4FJOF.js.map} +1 -1
  101. package/build/{render-command-L2ANKHFZ.js → render-command-4MA6YZOY.js} +13 -13
  102. package/build/render-command-56VKOBC2.js +31 -0
  103. package/build/{render-command-FLIYZR72.js → render-command-EZL5MGLF.js} +13 -13
  104. package/build/{render-command-3K4YEWKB.js → render-command-MISU5ZPA.js} +15 -15
  105. package/build/{render-command-M2UXLXTM.js → render-command-XWYG7PUO.js} +13 -13
  106. package/build/run-command-YEACE77L.js +22 -0
  107. package/build/{src-WHDDPOJQ.js → src-CX7XY6QB.js} +18 -18
  108. package/build/{src-MXAHA5ST.js → src-DKZYL2FY.js} +4 -4
  109. package/build/{src-ETJJ43OG.js → src-KRCQLOLK.js} +8 -8
  110. package/build/{src-EORJLJ3C.js → src-MAT27XAW.js} +6 -6
  111. package/build/{src-EDQ37VLS.js → src-NUAMLSQ2.js} +15 -15
  112. package/build/{src-JCAHG5G6.js → src-WGYSYY33.js} +32 -32
  113. package/build/{src-JCAHG5G6.js.map → src-WGYSYY33.js.map} +1 -1
  114. package/build/{src-QMP46QVT.js → src-ZBCEMLKE.js} +7 -7
  115. package/build/{sync-types-N4G6WV5Z.js → sync-types-XZO4O6WO.js} +13 -13
  116. package/build/{uninstall-QXPPP7M3.js → uninstall-IR66L6TR.js} +20 -20
  117. package/package.json +2 -2
  118. package/build/DevCommand-QDVPFDC3.js.map +0 -1
  119. package/build/EnvPullCommand-I52BDY3D.js +0 -30
  120. package/build/PreviewCommand-627KVG42.js.map +0 -1
  121. package/build/chunk-2WDDWGYF.js.map +0 -1
  122. package/build/chunk-7ABASOTN.js.map +0 -1
  123. package/build/chunk-CTIL75KV.js.map +0 -1
  124. package/build/chunk-JJ6PVZ7K.js +0 -48
  125. package/build/chunk-K4R5HGYL.js.map +0 -1
  126. package/build/chunk-OSPXR5PI.js +0 -60
  127. package/build/chunk-OSPXR5PI.js.map +0 -1
  128. package/build/chunk-ZXYGJZOO.js.map +0 -1
  129. package/build/dev-AFEUGIXK.js.map +0 -1
  130. package/build/render-command-KSKCNAIE.js +0 -31
  131. package/build/run-command-EE6XIELH.js +0 -22
  132. /package/build/{DevCommand-SW5QG3EQ.js.map → DevCommand-DJOVM34F.js.map} +0 -0
  133. /package/build/{DevCommand-PXHEAQAL.js.map → DevCommand-PGCNN5XY.js.map} +0 -0
  134. /package/build/{EnvPullCommand-I52BDY3D.js.map → EnvPullCommand-HHUBRDI5.js.map} +0 -0
  135. /package/build/{EnvRemoveCommand-UZDY5CBA.js.map → EnvRemoveCommand-FVURAMI6.js.map} +0 -0
  136. /package/build/{EnvSetCommand-ZFJLWS6Z.js.map → EnvSetCommand-4FWJAMGJ.js.map} +0 -0
  137. /package/build/{InstallCommand-5WIU4KJI.js.map → InstallCommand-Z6PVUDZ2.js.map} +0 -0
  138. /package/build/{LoginCommand-IB5AZVR6.js.map → LoginCommand-F3T6RR2P.js.map} +0 -0
  139. /package/build/{LogoutCommand-AZNDP5US.js.map → LogoutCommand-YJIOC473.js.map} +0 -0
  140. /package/build/{PreviewCommand-LBUDGW3Y.js.map → PreviewCommand-67HV322G.js.map} +0 -0
  141. /package/build/{PreviewCommand-3HUO3OS7.js.map → PreviewCommand-PMRWVEXH.js.map} +0 -0
  142. /package/build/{PublishCommand-AYRG7EWO.js.map → PublishCommand-XH52PJUF.js.map} +0 -0
  143. /package/build/{ReleaseCommand-HBHUINN2.js.map → ReleaseCommand-7OTAZIYB.js.map} +0 -0
  144. /package/build/{UninstallCommand-WQUBAUAX.js.map → UninstallCommand-EDIVWWSN.js.map} +0 -0
  145. /package/build/{WhoamiCommand-CBQ55746.js.map → WhoamiCommand-ERE5KRK5.js.map} +0 -0
  146. /package/build/{chunk-MACNBB4Z.js.map → chunk-2ODMSMLQ.js.map} +0 -0
  147. /package/build/{chunk-7DPHWL5Q.js.map → chunk-46UBNWDE.js.map} +0 -0
  148. /package/build/{chunk-2655XJHU.js.map → chunk-73MIX2O2.js.map} +0 -0
  149. /package/build/{chunk-DJHDYTUX.js.map → chunk-AHOU27PT.js.map} +0 -0
  150. /package/build/{chunk-C57C5VQT.js.map → chunk-AVLCHWQS.js.map} +0 -0
  151. /package/build/{chunk-BBSCL7QD.js.map → chunk-B5WA4Z63.js.map} +0 -0
  152. /package/build/{chunk-JFQWMWVU.js.map → chunk-CDY6L7PA.js.map} +0 -0
  153. /package/build/{chunk-RFG42N5O.js.map → chunk-CM2XSGSM.js.map} +0 -0
  154. /package/build/{chunk-OWYUMYID.js.map → chunk-CPSZ7QTC.js.map} +0 -0
  155. /package/build/{chunk-OZ7FYGCP.js.map → chunk-DR4RSQZ7.js.map} +0 -0
  156. /package/build/{chunk-3O4FYLKE.js.map → chunk-DS6P3FBA.js.map} +0 -0
  157. /package/build/{chunk-UOIFOI6P.js.map → chunk-E3K64ZZV.js.map} +0 -0
  158. /package/build/{chunk-Y5R2NROG.js.map → chunk-EUL3GKZI.js.map} +0 -0
  159. /package/build/{chunk-5DS3BZB2.js.map → chunk-FHQ23JQX.js.map} +0 -0
  160. /package/build/{chunk-A5I45GO6.js.map → chunk-II7O6SCF.js.map} +0 -0
  161. /package/build/{chunk-OEFE6BTD.js.map → chunk-IUJ26DW6.js.map} +0 -0
  162. /package/build/{chunk-LY7WPKIJ.js.map → chunk-JEYKAALI.js.map} +0 -0
  163. /package/build/{chunk-S5HPLGCO.js.map → chunk-N2KKXUSW.js.map} +0 -0
  164. /package/build/{chunk-DPYSUDZL.js.map → chunk-O2URYJCJ.js.map} +0 -0
  165. /package/build/{chunk-REUV6BGH.js.map → chunk-OA3CO5CH.js.map} +0 -0
  166. /package/build/{chunk-SW2F4TAT.js.map → chunk-OHMQSHHI.js.map} +0 -0
  167. /package/build/{chunk-22NYLYKP.js.map → chunk-R5RJYQCX.js.map} +0 -0
  168. /package/build/{chunk-V43UCNDB.js.map → chunk-UBVEF7HP.js.map} +0 -0
  169. /package/build/{chunk-SX5ANDWH.js.map → chunk-ULVWTXXM.js.map} +0 -0
  170. /package/build/{chunk-7J6ML7GO.js.map → chunk-Z2CMHMLR.js.map} +0 -0
  171. /package/build/{env-pull-V7KPXSNR.js.map → env-pull-S7C55RJ5.js.map} +0 -0
  172. /package/build/{install-E3SPSIL6.js.map → install-ZDOXIHH4.js.map} +0 -0
  173. /package/build/{preview-CAK23HJ5.js.map → preview-CRSLEUET.js.map} +0 -0
  174. /package/build/{render-command-L2ANKHFZ.js.map → render-command-4MA6YZOY.js.map} +0 -0
  175. /package/build/{render-command-KSKCNAIE.js.map → render-command-56VKOBC2.js.map} +0 -0
  176. /package/build/{render-command-FLIYZR72.js.map → render-command-EZL5MGLF.js.map} +0 -0
  177. /package/build/{render-command-3K4YEWKB.js.map → render-command-MISU5ZPA.js.map} +0 -0
  178. /package/build/{render-command-M2UXLXTM.js.map → render-command-XWYG7PUO.js.map} +0 -0
  179. /package/build/{run-command-EE6XIELH.js.map → run-command-YEACE77L.js.map} +0 -0
  180. /package/build/{src-WHDDPOJQ.js.map → src-CX7XY6QB.js.map} +0 -0
  181. /package/build/{src-EORJLJ3C.js.map → src-DKZYL2FY.js.map} +0 -0
  182. /package/build/{src-ETJJ43OG.js.map → src-KRCQLOLK.js.map} +0 -0
  183. /package/build/{src-MXAHA5ST.js.map → src-MAT27XAW.js.map} +0 -0
  184. /package/build/{src-EDQ37VLS.js.map → src-NUAMLSQ2.js.map} +0 -0
  185. /package/build/{src-QMP46QVT.js.map → src-ZBCEMLKE.js.map} +0 -0
  186. /package/build/{sync-types-N4G6WV5Z.js.map → sync-types-XZO4O6WO.js.map} +0 -0
  187. /package/build/{uninstall-QXPPP7M3.js.map → uninstall-IR66L6TR.js.map} +0 -0
@@ -4,10 +4,10 @@ import {
4
4
  createHttpClient,
5
5
  isHttpError,
6
6
  pRetry
7
- } from "./chunk-CTIL75KV.js";
7
+ } from "./chunk-KONVQLDI.js";
8
8
  import {
9
9
  getTestOverrides
10
- } from "./chunk-OSPXR5PI.js";
10
+ } from "./chunk-RL7RA2JG.js";
11
11
  import {
12
12
  CliError,
13
13
  CliErrorCode
@@ -45,4 +45,4 @@ async function httpRequest({ type, authState }, requestOptions, retryOptions) {
45
45
  export {
46
46
  httpRequest
47
47
  };
48
- //# sourceMappingURL=chunk-22NYLYKP.js.map
48
+ //# sourceMappingURL=chunk-R5RJYQCX.js.map
@@ -0,0 +1,63 @@
1
+ import { createRequire as _createRequire } from 'node:module';
2
+ const require = _createRequire(import.meta.url);
3
+ import {
4
+ zod_default
5
+ } from "./chunk-F43XHKVL.js";
6
+ import {
7
+ init_esm_shims
8
+ } from "./chunk-4EFJZ3GQ.js";
9
+
10
+ // ../cli-test-overrides/src/index.ts
11
+ init_esm_shims();
12
+ import process from "node:process";
13
+ var testOverridesSchema = zod_default.object({
14
+ biLoggerBaseUrl: zod_default.string().url().optional(),
15
+ devEditorBaseUrl: zod_default.string().url().optional(),
16
+ inkDebug: zod_default.boolean().optional(),
17
+ minRetryTimeout: zod_default.number().optional(),
18
+ pollInterval: zod_default.number().optional(),
19
+ pollTimeout: zod_default.number().optional(),
20
+ debounceQueueWait: zod_default.number().optional(),
21
+ sentryDsn: zod_default.string().optional(),
22
+ userBrowserTestEndpoint: zod_default.string().url().optional(),
23
+ dataDir: zod_default.string().optional(),
24
+ wixCliDependencyVersion: zod_default.string().optional(),
25
+ wixCliAppDependencyVersion: zod_default.string().optional(),
26
+ disableTTY: zod_default.boolean().optional(),
27
+ waitForLoginInterval: zod_default.number().optional(),
28
+ registryUrl: zod_default.string().optional(),
29
+ fsCacheDir: zod_default.string().optional(),
30
+ localTunnel: zod_default.boolean().optional(),
31
+ customElementsCreationDelay: zod_default.number().optional(),
32
+ sdkAuthServerBaseUrl: zod_default.string().optional(),
33
+ miniflareRequestsRewrites: zod_default.array(zod_default.object({ from: zod_default.string(), to: zod_default.string() })).optional(),
34
+ panoramaReporterUrl: zod_default.string().optional(),
35
+ isCI: zod_default.boolean().optional(),
36
+ isPR: zod_default.boolean().optional(),
37
+ ciName: zod_default.string().optional()
38
+ });
39
+ var TEST_OVERRIDES_ENV_VAR = "WIX_CLI_TEST_OVERRIDES";
40
+ function getTestOverrides() {
41
+ const rawOverrides = process.env[TEST_OVERRIDES_ENV_VAR];
42
+ if (!rawOverrides) {
43
+ return {};
44
+ }
45
+ return testOverridesSchema.parse(JSON.parse(rawOverrides));
46
+ }
47
+ function isTestEnv() {
48
+ return !!process.env[TEST_OVERRIDES_ENV_VAR];
49
+ }
50
+ function setupTestEnv() {
51
+ if (isTestEnv()) {
52
+ process.stdout.columns = 300;
53
+ process.stderr.columns = 300;
54
+ process.stdin.isTTY = !getTestOverrides().disableTTY;
55
+ process.stdin.setRawMode = () => process.stdin;
56
+ }
57
+ }
58
+
59
+ export {
60
+ getTestOverrides,
61
+ setupTestEnv
62
+ };
63
+ //# sourceMappingURL=chunk-RL7RA2JG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../cli-test-overrides/src/index.ts"],"sourcesContent":["import process from 'node:process';\nimport z from 'zod';\n\nconst testOverridesSchema = z.object({\n biLoggerBaseUrl: z.string().url().optional(),\n devEditorBaseUrl: z.string().url().optional(),\n inkDebug: z.boolean().optional(),\n minRetryTimeout: z.number().optional(),\n pollInterval: z.number().optional(),\n pollTimeout: z.number().optional(),\n debounceQueueWait: z.number().optional(),\n sentryDsn: z.string().optional(),\n userBrowserTestEndpoint: z.string().url().optional(),\n dataDir: z.string().optional(),\n wixCliDependencyVersion: z.string().optional(),\n wixCliAppDependencyVersion: z.string().optional(),\n disableTTY: z.boolean().optional(),\n waitForLoginInterval: z.number().optional(),\n registryUrl: z.string().optional(),\n fsCacheDir: z.string().optional(),\n localTunnel: z.boolean().optional(),\n customElementsCreationDelay: z.number().optional(),\n sdkAuthServerBaseUrl: z.string().optional(),\n miniflareRequestsRewrites: z\n .array(z.object({ from: z.string(), to: z.string() }))\n .optional(),\n panoramaReporterUrl: z.string().optional(),\n isCI: z.boolean().optional(),\n isPR: z.boolean().optional(),\n ciName: z.string().optional(),\n});\n\nexport type CLITestOverrides = z.infer<typeof testOverridesSchema>;\n\nexport const TEST_OVERRIDES_ENV_VAR = 'WIX_CLI_TEST_OVERRIDES';\n\nexport function getTestOverrides(): CLITestOverrides {\n const rawOverrides = process.env[TEST_OVERRIDES_ENV_VAR];\n\n if (!rawOverrides) {\n return {};\n }\n\n return testOverridesSchema.parse(JSON.parse(rawOverrides));\n}\n\nexport function isTestEnv(): boolean {\n return !!process.env[TEST_OVERRIDES_ENV_VAR];\n}\n\nexport function setupTestEnv(): void {\n if (isTestEnv()) {\n // See https://github.com/wix-private/wix-cli/pull/814\n process.stdout.columns = 300;\n process.stderr.columns = 300;\n\n process.stdin.isTTY = !getTestOverrides().disableTTY;\n process.stdin.setRawMode = () => process.stdin;\n }\n}\n"],"mappings":";;;;;;;;;;AAAA;AAAA,OAAO,aAAa;AAGpB,IAAM,sBAAsB,YAAE,OAAO;AAAA,EACnC,iBAAiB,YAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAC3C,kBAAkB,YAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAC5C,UAAU,YAAE,QAAQ,EAAE,SAAS;AAAA,EAC/B,iBAAiB,YAAE,OAAO,EAAE,SAAS;AAAA,EACrC,cAAc,YAAE,OAAO,EAAE,SAAS;AAAA,EAClC,aAAa,YAAE,OAAO,EAAE,SAAS;AAAA,EACjC,mBAAmB,YAAE,OAAO,EAAE,SAAS;AAAA,EACvC,WAAW,YAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,yBAAyB,YAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACnD,SAAS,YAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,yBAAyB,YAAE,OAAO,EAAE,SAAS;AAAA,EAC7C,4BAA4B,YAAE,OAAO,EAAE,SAAS;AAAA,EAChD,YAAY,YAAE,QAAQ,EAAE,SAAS;AAAA,EACjC,sBAAsB,YAAE,OAAO,EAAE,SAAS;AAAA,EAC1C,aAAa,YAAE,OAAO,EAAE,SAAS;AAAA,EACjC,YAAY,YAAE,OAAO,EAAE,SAAS;AAAA,EAChC,aAAa,YAAE,QAAQ,EAAE,SAAS;AAAA,EAClC,6BAA6B,YAAE,OAAO,EAAE,SAAS;AAAA,EACjD,sBAAsB,YAAE,OAAO,EAAE,SAAS;AAAA,EAC1C,2BAA2B,YACxB,MAAM,YAAE,OAAO,EAAE,MAAM,YAAE,OAAO,GAAG,IAAI,YAAE,OAAO,EAAE,CAAC,CAAC,EACpD,SAAS;AAAA,EACZ,qBAAqB,YAAE,OAAO,EAAE,SAAS;AAAA,EACzC,MAAM,YAAE,QAAQ,EAAE,SAAS;AAAA,EAC3B,MAAM,YAAE,QAAQ,EAAE,SAAS;AAAA,EAC3B,QAAQ,YAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAIM,IAAM,yBAAyB;AAE/B,SAAS,mBAAqC;AACnD,QAAM,eAAe,QAAQ,IAAI,sBAAsB;AAEvD,MAAI,CAAC,cAAc;AACjB,WAAO,CAAC;AAAA,EACV;AAEA,SAAO,oBAAoB,MAAM,KAAK,MAAM,YAAY,CAAC;AAC3D;AAEO,SAAS,YAAqB;AACnC,SAAO,CAAC,CAAC,QAAQ,IAAI,sBAAsB;AAC7C;AAEO,SAAS,eAAqB;AACnC,MAAI,UAAU,GAAG;AAEf,YAAQ,OAAO,UAAU;AACzB,YAAQ,OAAO,UAAU;AAEzB,YAAQ,MAAM,QAAQ,CAAC,iBAAiB,EAAE;AAC1C,YAAQ,MAAM,aAAa,MAAM,QAAQ;AAAA,EAC3C;AACF;","names":[]}
@@ -4,7 +4,7 @@ import {
4
4
  resolveUrl,
5
5
  serializer,
6
6
  toURLSearchParams
7
- } from "./chunk-CTIL75KV.js";
7
+ } from "./chunk-KONVQLDI.js";
8
8
  import {
9
9
  init_esm_shims
10
10
  } from "./chunk-4EFJZ3GQ.js";
@@ -62,6 +62,9 @@ function getDeployment(payload) {
62
62
  entityFqdn: "wix.document_management.editor_deployments.v1.deployment",
63
63
  method: "GET",
64
64
  methodFqn: "wix.editor.deployments.v1.DeploymentsService.GetDeployment",
65
+ migrationOptions: {
66
+ optInTransformResponse: true
67
+ },
65
68
  url: resolveWixEditorDeploymentsV1DeploymentsServiceUrl({
66
69
  protoPath: "/v1/deployments/{deploymentId}",
67
70
  data: serializedData,
@@ -88,6 +91,9 @@ function publishDeployment(payload) {
88
91
  entityFqdn: "wix.document_management.editor_deployments.v1.deployment",
89
92
  method: "POST",
90
93
  methodFqn: "wix.editor.deployments.v1.DeploymentsService.PublishDeployment",
94
+ migrationOptions: {
95
+ optInTransformResponse: true
96
+ },
91
97
  url: resolveWixEditorDeploymentsV1DeploymentsServiceUrl({
92
98
  protoPath: "/v1/deployments/{deploymentId}",
93
99
  data: serializedData,
@@ -112,6 +118,9 @@ function getDeploymentPipelineDescription(payload) {
112
118
  entityFqdn: "wix.document_management.editor_deployments.v1.deployment",
113
119
  method: "GET",
114
120
  methodFqn: "wix.editor.deployments.v1.DeploymentsService.GetDeploymentPipelineDescription",
121
+ migrationOptions: {
122
+ optInTransformResponse: true
123
+ },
115
124
  url: resolveWixEditorDeploymentsV1DeploymentsServiceUrl({
116
125
  protoPath: "/v1/deployments/pipeline/{deploymentId}",
117
126
  data: serializedData,
@@ -132,4 +141,4 @@ export {
132
141
  publishDeployment,
133
142
  getDeploymentPipelineDescription
134
143
  };
135
- //# sourceMappingURL=chunk-2WDDWGYF.js.map
144
+ //# sourceMappingURL=chunk-TXS6FIYJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/@wix/ambassador-document-management-editor-deployments-v1-deployment/http.impl.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;AA0BA;AAOA,IAAM,cAAc;EAClB,aAAa;EACb,aAAa;;AAEf,IAAM,2CAA2C,CAAA;AACjD,IAAM,4CAA4C,CAAA;AAClD,IAAM,wBAAwB,CAAA;AAC9B,IAAM,yBAAyB,EAAE,YAAY,cAAa;AAG1D,IAAM,4BAA4B,CAAA;AAClC,IAAM,6BAA6B,EAAE,YAAY,cAAa;AAU9D,SAAS,mDACP,MAA8C;AAE9C,MAAM,mBAAmB;IACvB,qBAAqB;MACnB;QACE,SAAS;QACT,UAAU;;;IAGd,wBAAwB;MACtB;QACE,SAAS;QACT,UAAU;;;IAGd,wBAAwB;MACtB;QACE,SAAS;QACT,UAAU;;;IAGd,kBAAkB;MAChB;QACE,SAAS;QACT,UAAU;;;;AAKhB,SAAO,WAAW,OAAO,OAAO,MAAM,EAAE,iBAAgB,CAAE,CAAC;AAC7D;AA8CM,SAAU,cACd,SAA6B;AAEvB,MAAA,KAAuC,WAC3C,uBACA,CAAA,CAAE,GAFY,QAAK,GAAA,QAAY,UAAO,GAAA;AAIhC,MAAU,UAAY,WAAW,wBAAwB;IAC/D;GACD,EAAC;AAEF,WAAS,gBAAgBA,KAAa;QAAX,OAAIA,IAAA;AAC7B,QAAM,iBAAiB,MAAM,OAAO;AACpC,QAAM,WAAW;MACf,YAAY;MACZ,QAAQ;MACR,WAAW;MACX,kBAAkB;QAChB,wBAAwB;;MAE1B,KAAK,mDAAmD;QACtD,WAAW;QACX,MAAM;QACN;OACD;MACD,QAAQ,kBAAkB,cAAc;MACxC,mBAAmB;;AAGrB,WAAO;EACT;AAEA,kBAAgB,UAAU;AAC1B,kBAAgB,iBAAiB;AACjC,SAAO;AACT;AAGM,SAAU,kBACd,SAAiC;AAM3B,MAAA,KAAuC,WAC3C,2BACA,CAAA,CAAE,GAFY,QAAK,GAAA,QAAY,UAAO,GAAA;AAIhC,MAAU,UAAY,WAAW,4BAA4B;IACnE;GACD,EAAC;AAEF,WAAS,oBAAoBA,KAAa;QAAX,OAAIA,IAAA;AACjC,QAAM,iBAAiB,MAAM,OAAO;AACpC,QAAM,WAAW;MACf,YAAY;MACZ,QAAQ;MACR,WACE;MACF,kBAAkB;QAChB,wBAAwB;;MAE1B,KAAK,mDAAmD;QACtD,WAAW;QACX,MAAM;QACN;OACD;MACD,MAAM;MACN,mBAAmB;;AAGrB,WAAO;EACT;AAEA,sBAAoB,UAAU;AAC9B,sBAAoB,iBAAiB;AACrC,SAAO;AACT;AAuKM,SAAU,iCACd,SAAgD;AAM1C,MAAA,KAAuC,WAC3C,0CACA,CAAA,CAAE,GAFY,QAAK,GAAA,QAAY,UAAO,GAAA;AAIhC,MAAU,UAAY,WAC5B,2CACA,CAAA,CAAE,EACH;AAED,WAAS,mCAAmCC,KAAa;QAAX,OAAIA,IAAA;AAChD,QAAM,iBAAiB,MAAM,OAAO;AACpC,QAAM,WAAW;MACf,YAAY;MACZ,QAAQ;MACR,WACE;MACF,kBAAkB;QAChB,wBAAwB;;MAE1B,KAAK,mDAAmD;QACtD,WAAW;QACX,MAAM;QACN;OACD;MACD,QAAQ,kBAAkB,cAAc;MACxC,mBAAmB;;AAGrB,WAAO;EACT;AAEA,qCAAmC,UAAU;AAC7C,qCAAmC,iBAAiB;AACpD,SAAO;AACT;","names":["_a","_a"]}
@@ -3,14 +3,14 @@ const require = _createRequire(import.meta.url);
3
3
  import {
4
4
  WIX_LOCK_FILENAME,
5
5
  getWixLockFilePath
6
- } from "./chunk-IO36MUVK.js";
6
+ } from "./chunk-IWQIW4GL.js";
7
7
  import {
8
8
  outputFile,
9
9
  pathExists,
10
10
  readFile,
11
11
  readPackageJson,
12
12
  readPackageJsonContent
13
- } from "./chunk-EKIOJ6JP.js";
13
+ } from "./chunk-ZUSQSFTR.js";
14
14
  import {
15
15
  CliError,
16
16
  CliErrorCode
@@ -65,4 +65,4 @@ export {
65
65
  loadProjectRootFiles,
66
66
  getProjectDependencies
67
67
  };
68
- //# sourceMappingURL=chunk-V43UCNDB.js.map
68
+ //# sourceMappingURL=chunk-UBVEF7HP.js.map
@@ -5,26 +5,26 @@ import {
5
5
  useARMClient,
6
6
  useUpdateDeploymentTopology,
7
7
  useUpdateManifest
8
- } from "./chunk-4MG6XKFC.js";
8
+ } from "./chunk-EO3JVSRM.js";
9
9
  import {
10
10
  getGitLatestCommitHash,
11
11
  isInsideGitRepo
12
- } from "./chunk-LLFDPUTB.js";
12
+ } from "./chunk-ZW47BBFN.js";
13
13
  import {
14
14
  CloudProvider,
15
15
  useBackendAsAServiceClient
16
- } from "./chunk-6VUT2YWH.js";
16
+ } from "./chunk-AYPGGVYN.js";
17
17
  import {
18
18
  readAppManifestFile,
19
19
  readBuildManifest,
20
20
  useProjectModel
21
- } from "./chunk-K4R5HGYL.js";
21
+ } from "./chunk-7LTAZSUI.js";
22
22
  import {
23
23
  globby
24
24
  } from "./chunk-PIXNEJ52.js";
25
25
  import {
26
26
  SiteAuthProvider
27
- } from "./chunk-CTIL75KV.js";
27
+ } from "./chunk-KONVQLDI.js";
28
28
  import {
29
29
  Alert,
30
30
  Box_default,
@@ -32,14 +32,14 @@ import {
32
32
  Text,
33
33
  useAsync,
34
34
  useAsyncCallback
35
- } from "./chunk-DJHDYTUX.js";
35
+ } from "./chunk-AHOU27PT.js";
36
36
  import {
37
37
  require_react
38
38
  } from "./chunk-NRAQAV6T.js";
39
39
  import {
40
40
  pathExists,
41
41
  readFile
42
- } from "./chunk-EKIOJ6JP.js";
42
+ } from "./chunk-ZUSQSFTR.js";
43
43
  import {
44
44
  CliError,
45
45
  CliErrorCode,
@@ -1544,4 +1544,4 @@ export {
1544
1544
  assertBuildOutputExists,
1545
1545
  PreviewCommand
1546
1546
  };
1547
- //# sourceMappingURL=chunk-SX5ANDWH.js.map
1547
+ //# sourceMappingURL=chunk-ULVWTXXM.js.map
@@ -3,7 +3,7 @@ const require = _createRequire(import.meta.url);
3
3
  import {
4
4
  resolveUrl,
5
5
  serializer
6
- } from "./chunk-CTIL75KV.js";
6
+ } from "./chunk-KONVQLDI.js";
7
7
  import {
8
8
  init_esm_shims
9
9
  } from "./chunk-4EFJZ3GQ.js";
@@ -96,6 +96,9 @@ function pagesDiff(payload) {
96
96
  entityFqdn: "wix.velo.apps.v1.app",
97
97
  method: "POST",
98
98
  methodFqn: "wix.velo.apps.v1.LifecycleService.PagesDiff",
99
+ migrationOptions: {
100
+ optInTransformResponse: true
101
+ },
99
102
  url: resolveWixVeloAppsV1LifecycleServiceUrl({
100
103
  protoPath: "/v1/pages-diff",
101
104
  data: serializedData,
@@ -120,6 +123,9 @@ function createApp(payload) {
120
123
  entityFqdn: "wix.velo.apps.v1.app",
121
124
  method: "POST",
122
125
  methodFqn: "wix.velo.apps.v1.LifecycleService.CreateApp",
126
+ migrationOptions: {
127
+ optInTransformResponse: true
128
+ },
123
129
  url: resolveWixVeloAppsV1LifecycleServiceUrl({
124
130
  protoPath: "/v1/apps",
125
131
  data: serializedData,
@@ -144,6 +150,9 @@ function deployApp(payload) {
144
150
  entityFqdn: "wix.velo.apps.v1.app",
145
151
  method: "POST",
146
152
  methodFqn: "wix.velo.apps.v1.LifecycleService.DeployApp",
153
+ migrationOptions: {
154
+ optInTransformResponse: true
155
+ },
147
156
  url: resolveWixVeloAppsV1LifecycleServiceUrl({
148
157
  protoPath: "/v1/apps/deploy",
149
158
  data: serializedData,
@@ -168,4 +177,4 @@ export {
168
177
  createApp,
169
178
  deployApp
170
179
  };
171
- //# sourceMappingURL=chunk-LXKRWX4K.js.map
180
+ //# sourceMappingURL=chunk-Y7PQOTYY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/@wix/ambassador-velo-apps-v1-app/types.impl.ts","../../../node_modules/@wix/ambassador-velo-apps-v1-app/http.impl.ts"],"sourcesContent":[null,null],"mappings":"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","names":["AppType","GridAppLayout","DeploymentOperation","RcLabel","WebhookIdentityType","_a","_a"]}
1
+ {"version":3,"sources":["../../../node_modules/@wix/ambassador-velo-apps-v1-app/types.impl.ts","../../../node_modules/@wix/ambassador-velo-apps-v1-app/http.impl.ts"],"sourcesContent":[null,null],"mappings":"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","names":["AppType","GridAppLayout","DeploymentOperation","RcLabel","WebhookIdentityType","_a","_a"]}
@@ -5,18 +5,18 @@ import {
5
5
  } from "./chunk-V23RKBE2.js";
6
6
  import {
7
7
  GridAppLayout
8
- } from "./chunk-LXKRWX4K.js";
8
+ } from "./chunk-Y7PQOTYY.js";
9
9
  import {
10
10
  extractHttpError,
11
11
  isHttpApplicationError
12
- } from "./chunk-CTIL75KV.js";
12
+ } from "./chunk-KONVQLDI.js";
13
13
  import {
14
14
  WIX_LOCK_FILENAME,
15
15
  getSourceFolder
16
- } from "./chunk-IO36MUVK.js";
16
+ } from "./chunk-IWQIW4GL.js";
17
17
  import {
18
18
  pathExists
19
- } from "./chunk-EKIOJ6JP.js";
19
+ } from "./chunk-ZUSQSFTR.js";
20
20
  import {
21
21
  CliError,
22
22
  CliErrorCode
@@ -108,4 +108,4 @@ export {
108
108
  isSiteNotPublishedError,
109
109
  loadProjectGridAppContent
110
110
  };
111
- //# sourceMappingURL=chunk-7J6ML7GO.js.map
111
+ //# sourceMappingURL=chunk-Z2CMHMLR.js.map
@@ -1,8 +1,8 @@
1
1
  import { createRequire as _createRequire } from 'node:module';
2
2
  const require = _createRequire(import.meta.url);
3
3
  import {
4
- z
5
- } from "./chunk-ZXYGJZOO.js";
4
+ external_exports
5
+ } from "./chunk-F43XHKVL.js";
6
6
  import {
7
7
  CliError,
8
8
  CliErrorCode
@@ -365,11 +365,11 @@ var import_dotenv = __toESM(require_main(), 1);
365
365
 
366
366
  // ../cli-fs/src/schemas.ts
367
367
  init_esm_shims();
368
- var packageJsonSchema = z.object({
369
- dependencies: z.record(z.string()).optional(),
370
- devDependencies: z.record(z.string()).optional(),
371
- peerDependencies: z.record(z.string()).optional(),
372
- scripts: z.record(z.string()).optional()
368
+ var packageJsonSchema = external_exports.object({
369
+ dependencies: external_exports.record(external_exports.string()).optional(),
370
+ devDependencies: external_exports.record(external_exports.string()).optional(),
371
+ peerDependencies: external_exports.record(external_exports.string()).optional(),
372
+ scripts: external_exports.record(external_exports.string()).optional()
373
373
  });
374
374
 
375
375
  // ../cli-fs/src/index.ts
@@ -496,4 +496,4 @@ export {
496
496
  writePackageJson,
497
497
  updateEnvFile
498
498
  };
499
- //# sourceMappingURL=chunk-EKIOJ6JP.js.map
499
+ //# sourceMappingURL=chunk-ZUSQSFTR.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/dotenv/package.json","../../../node_modules/dotenv/lib/main.js","../../cli-fs/src/index.ts","../../cli-fs/src/schemas.ts"],"sourcesContent":["{\n \"name\": \"dotenv\",\n \"version\": \"16.5.0\",\n \"description\": \"Loads environment variables from .env file\",\n \"main\": \"lib/main.js\",\n \"types\": \"lib/main.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./lib/main.d.ts\",\n \"require\": \"./lib/main.js\",\n \"default\": \"./lib/main.js\"\n },\n \"./config\": \"./config.js\",\n \"./config.js\": \"./config.js\",\n \"./lib/env-options\": \"./lib/env-options.js\",\n \"./lib/env-options.js\": \"./lib/env-options.js\",\n \"./lib/cli-options\": \"./lib/cli-options.js\",\n \"./lib/cli-options.js\": \"./lib/cli-options.js\",\n \"./package.json\": \"./package.json\"\n },\n \"scripts\": {\n \"dts-check\": \"tsc --project tests/types/tsconfig.json\",\n \"lint\": \"standard\",\n \"pretest\": \"npm run lint && npm run dts-check\",\n \"test\": \"tap run --allow-empty-coverage --disable-coverage --timeout=60000\",\n \"test:coverage\": \"tap run --show-full-coverage --timeout=60000 --coverage-report=lcov\",\n \"prerelease\": \"npm test\",\n \"release\": \"standard-version\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/motdotla/dotenv.git\"\n },\n \"homepage\": \"https://github.com/motdotla/dotenv#readme\",\n \"funding\": \"https://dotenvx.com\",\n \"keywords\": [\n \"dotenv\",\n \"env\",\n \".env\",\n \"environment\",\n \"variables\",\n \"config\",\n \"settings\"\n ],\n \"readmeFilename\": \"README.md\",\n \"license\": \"BSD-2-Clause\",\n \"devDependencies\": {\n \"@types/node\": \"^18.11.3\",\n \"decache\": \"^4.6.2\",\n \"sinon\": \"^14.0.1\",\n \"standard\": \"^17.0.0\",\n \"standard-version\": \"^9.5.0\",\n \"tap\": \"^19.2.0\",\n \"typescript\": \"^4.8.4\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"browser\": {\n \"fs\": false\n }\n}\n","const fs = require('fs')\nconst path = require('path')\nconst os = require('os')\nconst crypto = require('crypto')\nconst packageJson = require('../package.json')\n\nconst version = packageJson.version\n\nconst LINE = /(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^'])*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\\r\\n]+)?\\s*(?:#.*)?(?:$|$)/mg\n\n// Parse src into an Object\nfunction parse (src) {\n const obj = {}\n\n // Convert buffer to string\n let lines = src.toString()\n\n // Convert line breaks to same format\n lines = lines.replace(/\\r\\n?/mg, '\\n')\n\n let match\n while ((match = LINE.exec(lines)) != null) {\n const key = match[1]\n\n // Default undefined or null to empty string\n let value = (match[2] || '')\n\n // Remove whitespace\n value = value.trim()\n\n // Check if double quoted\n const maybeQuote = value[0]\n\n // Remove surrounding quotes\n value = value.replace(/^(['\"`])([\\s\\S]*)\\1$/mg, '$2')\n\n // Expand newlines if double quoted\n if (maybeQuote === '\"') {\n value = value.replace(/\\\\n/g, '\\n')\n value = value.replace(/\\\\r/g, '\\r')\n }\n\n // Add to object\n obj[key] = value\n }\n\n return obj\n}\n\nfunction _parseVault (options) {\n const vaultPath = _vaultPath(options)\n\n // Parse .env.vault\n const result = DotenvModule.configDotenv({ path: vaultPath })\n if (!result.parsed) {\n const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`)\n err.code = 'MISSING_DATA'\n throw err\n }\n\n // handle scenario for comma separated keys - for use with key rotation\n // example: DOTENV_KEY=\"dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=prod,dotenv://:key_7890@dotenvx.com/vault/.env.vault?environment=prod\"\n const keys = _dotenvKey(options).split(',')\n const length = keys.length\n\n let decrypted\n for (let i = 0; i < length; i++) {\n try {\n // Get full key\n const key = keys[i].trim()\n\n // Get instructions for decrypt\n const attrs = _instructions(result, key)\n\n // Decrypt\n decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key)\n\n break\n } catch (error) {\n // last key\n if (i + 1 >= length) {\n throw error\n }\n // try next key\n }\n }\n\n // Parse decrypted .env string\n return DotenvModule.parse(decrypted)\n}\n\nfunction _warn (message) {\n console.log(`[dotenv@${version}][WARN] ${message}`)\n}\n\nfunction _debug (message) {\n console.log(`[dotenv@${version}][DEBUG] ${message}`)\n}\n\nfunction _dotenvKey (options) {\n // prioritize developer directly setting options.DOTENV_KEY\n if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) {\n return options.DOTENV_KEY\n }\n\n // secondary infra already contains a DOTENV_KEY environment variable\n if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) {\n return process.env.DOTENV_KEY\n }\n\n // fallback to empty string\n return ''\n}\n\nfunction _instructions (result, dotenvKey) {\n // Parse DOTENV_KEY. Format is a URI\n let uri\n try {\n uri = new URL(dotenvKey)\n } catch (error) {\n if (error.code === 'ERR_INVALID_URL') {\n const err = new Error('INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n throw error\n }\n\n // Get decrypt key\n const key = uri.password\n if (!key) {\n const err = new Error('INVALID_DOTENV_KEY: Missing key part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get environment\n const environment = uri.searchParams.get('environment')\n if (!environment) {\n const err = new Error('INVALID_DOTENV_KEY: Missing environment part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get ciphertext payload\n const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`\n const ciphertext = result.parsed[environmentKey] // DOTENV_VAULT_PRODUCTION\n if (!ciphertext) {\n const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`)\n err.code = 'NOT_FOUND_DOTENV_ENVIRONMENT'\n throw err\n }\n\n return { ciphertext, key }\n}\n\nfunction _vaultPath (options) {\n let possibleVaultPath = null\n\n if (options && options.path && options.path.length > 0) {\n if (Array.isArray(options.path)) {\n for (const filepath of options.path) {\n if (fs.existsSync(filepath)) {\n possibleVaultPath = filepath.endsWith('.vault') ? filepath : `${filepath}.vault`\n }\n }\n } else {\n possibleVaultPath = options.path.endsWith('.vault') ? options.path : `${options.path}.vault`\n }\n } else {\n possibleVaultPath = path.resolve(process.cwd(), '.env.vault')\n }\n\n if (fs.existsSync(possibleVaultPath)) {\n return possibleVaultPath\n }\n\n return null\n}\n\nfunction _resolveHome (envPath) {\n return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath\n}\n\nfunction _configVault (options) {\n const debug = Boolean(options && options.debug)\n if (debug) {\n _debug('Loading env from encrypted .env.vault')\n }\n\n const parsed = DotenvModule._parseVault(options)\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsed, options)\n\n return { parsed }\n}\n\nfunction configDotenv (options) {\n const dotenvPath = path.resolve(process.cwd(), '.env')\n let encoding = 'utf8'\n const debug = Boolean(options && options.debug)\n\n if (options && options.encoding) {\n encoding = options.encoding\n } else {\n if (debug) {\n _debug('No encoding is specified. UTF-8 is used by default')\n }\n }\n\n let optionPaths = [dotenvPath] // default, look for .env\n if (options && options.path) {\n if (!Array.isArray(options.path)) {\n optionPaths = [_resolveHome(options.path)]\n } else {\n optionPaths = [] // reset default\n for (const filepath of options.path) {\n optionPaths.push(_resolveHome(filepath))\n }\n }\n }\n\n // Build the parsed data in a temporary object (because we need to return it). Once we have the final\n // parsed data, we will combine it with process.env (or options.processEnv if provided).\n let lastError\n const parsedAll = {}\n for (const path of optionPaths) {\n try {\n // Specifying an encoding returns a string instead of a buffer\n const parsed = DotenvModule.parse(fs.readFileSync(path, { encoding }))\n\n DotenvModule.populate(parsedAll, parsed, options)\n } catch (e) {\n if (debug) {\n _debug(`Failed to load ${path} ${e.message}`)\n }\n lastError = e\n }\n }\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsedAll, options)\n\n if (lastError) {\n return { parsed: parsedAll, error: lastError }\n } else {\n return { parsed: parsedAll }\n }\n}\n\n// Populates process.env from .env file\nfunction config (options) {\n // fallback to original dotenv if DOTENV_KEY is not set\n if (_dotenvKey(options).length === 0) {\n return DotenvModule.configDotenv(options)\n }\n\n const vaultPath = _vaultPath(options)\n\n // dotenvKey exists but .env.vault file does not exist\n if (!vaultPath) {\n _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`)\n\n return DotenvModule.configDotenv(options)\n }\n\n return DotenvModule._configVault(options)\n}\n\nfunction decrypt (encrypted, keyStr) {\n const key = Buffer.from(keyStr.slice(-64), 'hex')\n let ciphertext = Buffer.from(encrypted, 'base64')\n\n const nonce = ciphertext.subarray(0, 12)\n const authTag = ciphertext.subarray(-16)\n ciphertext = ciphertext.subarray(12, -16)\n\n try {\n const aesgcm = crypto.createDecipheriv('aes-256-gcm', key, nonce)\n aesgcm.setAuthTag(authTag)\n return `${aesgcm.update(ciphertext)}${aesgcm.final()}`\n } catch (error) {\n const isRange = error instanceof RangeError\n const invalidKeyLength = error.message === 'Invalid key length'\n const decryptionFailed = error.message === 'Unsupported state or unable to authenticate data'\n\n if (isRange || invalidKeyLength) {\n const err = new Error('INVALID_DOTENV_KEY: It must be 64 characters long (or more)')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n } else if (decryptionFailed) {\n const err = new Error('DECRYPTION_FAILED: Please check your DOTENV_KEY')\n err.code = 'DECRYPTION_FAILED'\n throw err\n } else {\n throw error\n }\n }\n}\n\n// Populate process.env with parsed values\nfunction populate (processEnv, parsed, options = {}) {\n const debug = Boolean(options && options.debug)\n const override = Boolean(options && options.override)\n\n if (typeof parsed !== 'object') {\n const err = new Error('OBJECT_REQUIRED: Please check the processEnv argument being passed to populate')\n err.code = 'OBJECT_REQUIRED'\n throw err\n }\n\n // Set process.env\n for (const key of Object.keys(parsed)) {\n if (Object.prototype.hasOwnProperty.call(processEnv, key)) {\n if (override === true) {\n processEnv[key] = parsed[key]\n }\n\n if (debug) {\n if (override === true) {\n _debug(`\"${key}\" is already defined and WAS overwritten`)\n } else {\n _debug(`\"${key}\" is already defined and was NOT overwritten`)\n }\n }\n } else {\n processEnv[key] = parsed[key]\n }\n }\n}\n\nconst DotenvModule = {\n configDotenv,\n _configVault,\n _parseVault,\n config,\n decrypt,\n parse,\n populate\n}\n\nmodule.exports.configDotenv = DotenvModule.configDotenv\nmodule.exports._configVault = DotenvModule._configVault\nmodule.exports._parseVault = DotenvModule._parseVault\nmodule.exports.config = DotenvModule.config\nmodule.exports.decrypt = DotenvModule.decrypt\nmodule.exports.parse = DotenvModule.parse\nmodule.exports.populate = DotenvModule.populate\n\nmodule.exports = DotenvModule\n","import {\n access,\n readFile as fsReadFile,\n writeFile,\n mkdir,\n} from 'node:fs/promises';\nimport { dirname, join, relative } from 'node:path';\nimport { EOL } from 'node:os';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport dotenv from 'dotenv';\nimport { packageJsonSchema } from './schemas.js';\nimport type { PackageJson } from './schemas.js';\n\nexport function toJsonString(object: unknown, opts?: { spaces: number }) {\n return JSON.stringify(object, null, opts?.spaces).concat(EOL);\n}\n\nexport async function writeJson(\n filePath: string,\n object: unknown,\n opts?: { spaces: number }\n) {\n const str = toJsonString(object, opts);\n await outputDir(dirname(filePath));\n\n try {\n await writeFile(filePath, str, 'utf-8');\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToWriteJson({ filePath }),\n cause: e,\n });\n }\n}\n\nexport async function readJson(file: string): Promise<unknown> {\n let content = null;\n try {\n content = await fsReadFile(file, 'utf-8');\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToReadJson({ filePath: file }),\n cause: e,\n });\n }\n\n try {\n return JSON.parse(content);\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.InvalidJsonFile({ filePath: file }),\n cause: e,\n });\n }\n}\n\nexport async function readFile(file: string): Promise<Buffer>;\nexport async function readFile(\n file: string,\n encoding: 'utf-8'\n): Promise<string>;\nexport async function readFile(file: string, encoding?: 'utf-8') {\n try {\n return await fsReadFile(file, encoding);\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToReadFile({ filePath: file }),\n cause: e,\n });\n }\n}\n\nexport function pathExists(path: string) {\n return access(path)\n .then(() => true)\n .catch(() => false);\n}\n\nexport async function outputFile(file: string, content: string | Uint8Array) {\n await outputDir(dirname(file));\n\n try {\n await writeFile(file, content, 'utf-8');\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToWriteFile({ filePath: file }),\n cause: e,\n });\n }\n}\n\nexport async function outputDir(dir: string) {\n try {\n await mkdir(dir, { recursive: true });\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToCreateDir({ dirPath: dir }),\n cause: e,\n });\n }\n}\n\nexport async function readPackageJson(projectFolder: string) {\n const packageJsonPath = join(projectFolder, 'package.json');\n\n const json = await readJson(packageJsonPath);\n const parsedPackageJson = await packageJsonSchema.safeParseAsync(json);\n\n if (!parsedPackageJson.success) {\n throw new CliError({\n code: CliErrorCode.InvalidConfigSchemaError({\n configPath: packageJsonPath,\n zodError: parsedPackageJson.error,\n }),\n cause: parsedPackageJson.error,\n });\n }\n\n /**\n * Returning original json because zod clone object and change the order of keys.\n * It's safe to return the original json because we already validated it.\n */\n return json as PackageJson;\n}\n\nexport function readPackageJsonContent(projectFolder: string) {\n return readFile(join(projectFolder, 'package.json'), 'utf-8');\n}\n\nexport async function writePackageJson(\n projectFolder: string,\n packageJson: PackageJson\n) {\n const packageJsonPath = join(projectFolder, 'package.json');\n\n await writeJson(packageJsonPath, packageJson, { spaces: 2 });\n}\n\nexport function relativeFolderName(rootFolder: string, filePath: string) {\n return relative(rootFolder, dirname(filePath));\n}\n\nexport { type PackageJson } from './schemas.js';\n\nexport async function readEnvFile(source: string) {\n if (await pathExists(source)) {\n try {\n const content = await readFile(source);\n return dotenv.parse(content);\n } catch {\n return {};\n }\n }\n return {};\n}\n\nexport async function updateEnvFile(\n target: string,\n variables: Record<string, string>\n) {\n const mergedEnvVars = {\n ...(await readEnvFile(target)),\n ...variables,\n };\n\n const outputEnvVar = Object.entries(mergedEnvVars)\n .map(([key, value]) => `${key}=\"${value}\"`)\n .join('\\n');\n\n await outputFile(target, outputEnvVar);\n}\n","import { z } from 'zod';\n\nexport const packageJsonSchema = z.object({\n dependencies: z.record(z.string()).optional(),\n devDependencies: z.record(z.string()).optional(),\n peerDependencies: z.record(z.string()).optional(),\n scripts: z.record(z.string()).optional(),\n});\n\nexport type PackageJson = z.infer<typeof packageJsonSchema>;\n"],"mappings":"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","names":["path","dotenv"]}
1
+ {"version":3,"sources":["../../../node_modules/dotenv/package.json","../../../node_modules/dotenv/lib/main.js","../../cli-fs/src/index.ts","../../cli-fs/src/schemas.ts"],"sourcesContent":["{\n \"name\": \"dotenv\",\n \"version\": \"16.5.0\",\n \"description\": \"Loads environment variables from .env file\",\n \"main\": \"lib/main.js\",\n \"types\": \"lib/main.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./lib/main.d.ts\",\n \"require\": \"./lib/main.js\",\n \"default\": \"./lib/main.js\"\n },\n \"./config\": \"./config.js\",\n \"./config.js\": \"./config.js\",\n \"./lib/env-options\": \"./lib/env-options.js\",\n \"./lib/env-options.js\": \"./lib/env-options.js\",\n \"./lib/cli-options\": \"./lib/cli-options.js\",\n \"./lib/cli-options.js\": \"./lib/cli-options.js\",\n \"./package.json\": \"./package.json\"\n },\n \"scripts\": {\n \"dts-check\": \"tsc --project tests/types/tsconfig.json\",\n \"lint\": \"standard\",\n \"pretest\": \"npm run lint && npm run dts-check\",\n \"test\": \"tap run --allow-empty-coverage --disable-coverage --timeout=60000\",\n \"test:coverage\": \"tap run --show-full-coverage --timeout=60000 --coverage-report=lcov\",\n \"prerelease\": \"npm test\",\n \"release\": \"standard-version\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/motdotla/dotenv.git\"\n },\n \"homepage\": \"https://github.com/motdotla/dotenv#readme\",\n \"funding\": \"https://dotenvx.com\",\n \"keywords\": [\n \"dotenv\",\n \"env\",\n \".env\",\n \"environment\",\n \"variables\",\n \"config\",\n \"settings\"\n ],\n \"readmeFilename\": \"README.md\",\n \"license\": \"BSD-2-Clause\",\n \"devDependencies\": {\n \"@types/node\": \"^18.11.3\",\n \"decache\": \"^4.6.2\",\n \"sinon\": \"^14.0.1\",\n \"standard\": \"^17.0.0\",\n \"standard-version\": \"^9.5.0\",\n \"tap\": \"^19.2.0\",\n \"typescript\": \"^4.8.4\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"browser\": {\n \"fs\": false\n }\n}\n","const fs = require('fs')\nconst path = require('path')\nconst os = require('os')\nconst crypto = require('crypto')\nconst packageJson = require('../package.json')\n\nconst version = packageJson.version\n\nconst LINE = /(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^'])*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\\r\\n]+)?\\s*(?:#.*)?(?:$|$)/mg\n\n// Parse src into an Object\nfunction parse (src) {\n const obj = {}\n\n // Convert buffer to string\n let lines = src.toString()\n\n // Convert line breaks to same format\n lines = lines.replace(/\\r\\n?/mg, '\\n')\n\n let match\n while ((match = LINE.exec(lines)) != null) {\n const key = match[1]\n\n // Default undefined or null to empty string\n let value = (match[2] || '')\n\n // Remove whitespace\n value = value.trim()\n\n // Check if double quoted\n const maybeQuote = value[0]\n\n // Remove surrounding quotes\n value = value.replace(/^(['\"`])([\\s\\S]*)\\1$/mg, '$2')\n\n // Expand newlines if double quoted\n if (maybeQuote === '\"') {\n value = value.replace(/\\\\n/g, '\\n')\n value = value.replace(/\\\\r/g, '\\r')\n }\n\n // Add to object\n obj[key] = value\n }\n\n return obj\n}\n\nfunction _parseVault (options) {\n const vaultPath = _vaultPath(options)\n\n // Parse .env.vault\n const result = DotenvModule.configDotenv({ path: vaultPath })\n if (!result.parsed) {\n const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`)\n err.code = 'MISSING_DATA'\n throw err\n }\n\n // handle scenario for comma separated keys - for use with key rotation\n // example: DOTENV_KEY=\"dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=prod,dotenv://:key_7890@dotenvx.com/vault/.env.vault?environment=prod\"\n const keys = _dotenvKey(options).split(',')\n const length = keys.length\n\n let decrypted\n for (let i = 0; i < length; i++) {\n try {\n // Get full key\n const key = keys[i].trim()\n\n // Get instructions for decrypt\n const attrs = _instructions(result, key)\n\n // Decrypt\n decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key)\n\n break\n } catch (error) {\n // last key\n if (i + 1 >= length) {\n throw error\n }\n // try next key\n }\n }\n\n // Parse decrypted .env string\n return DotenvModule.parse(decrypted)\n}\n\nfunction _warn (message) {\n console.log(`[dotenv@${version}][WARN] ${message}`)\n}\n\nfunction _debug (message) {\n console.log(`[dotenv@${version}][DEBUG] ${message}`)\n}\n\nfunction _dotenvKey (options) {\n // prioritize developer directly setting options.DOTENV_KEY\n if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) {\n return options.DOTENV_KEY\n }\n\n // secondary infra already contains a DOTENV_KEY environment variable\n if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) {\n return process.env.DOTENV_KEY\n }\n\n // fallback to empty string\n return ''\n}\n\nfunction _instructions (result, dotenvKey) {\n // Parse DOTENV_KEY. Format is a URI\n let uri\n try {\n uri = new URL(dotenvKey)\n } catch (error) {\n if (error.code === 'ERR_INVALID_URL') {\n const err = new Error('INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n throw error\n }\n\n // Get decrypt key\n const key = uri.password\n if (!key) {\n const err = new Error('INVALID_DOTENV_KEY: Missing key part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get environment\n const environment = uri.searchParams.get('environment')\n if (!environment) {\n const err = new Error('INVALID_DOTENV_KEY: Missing environment part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get ciphertext payload\n const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`\n const ciphertext = result.parsed[environmentKey] // DOTENV_VAULT_PRODUCTION\n if (!ciphertext) {\n const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`)\n err.code = 'NOT_FOUND_DOTENV_ENVIRONMENT'\n throw err\n }\n\n return { ciphertext, key }\n}\n\nfunction _vaultPath (options) {\n let possibleVaultPath = null\n\n if (options && options.path && options.path.length > 0) {\n if (Array.isArray(options.path)) {\n for (const filepath of options.path) {\n if (fs.existsSync(filepath)) {\n possibleVaultPath = filepath.endsWith('.vault') ? filepath : `${filepath}.vault`\n }\n }\n } else {\n possibleVaultPath = options.path.endsWith('.vault') ? options.path : `${options.path}.vault`\n }\n } else {\n possibleVaultPath = path.resolve(process.cwd(), '.env.vault')\n }\n\n if (fs.existsSync(possibleVaultPath)) {\n return possibleVaultPath\n }\n\n return null\n}\n\nfunction _resolveHome (envPath) {\n return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath\n}\n\nfunction _configVault (options) {\n const debug = Boolean(options && options.debug)\n if (debug) {\n _debug('Loading env from encrypted .env.vault')\n }\n\n const parsed = DotenvModule._parseVault(options)\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsed, options)\n\n return { parsed }\n}\n\nfunction configDotenv (options) {\n const dotenvPath = path.resolve(process.cwd(), '.env')\n let encoding = 'utf8'\n const debug = Boolean(options && options.debug)\n\n if (options && options.encoding) {\n encoding = options.encoding\n } else {\n if (debug) {\n _debug('No encoding is specified. UTF-8 is used by default')\n }\n }\n\n let optionPaths = [dotenvPath] // default, look for .env\n if (options && options.path) {\n if (!Array.isArray(options.path)) {\n optionPaths = [_resolveHome(options.path)]\n } else {\n optionPaths = [] // reset default\n for (const filepath of options.path) {\n optionPaths.push(_resolveHome(filepath))\n }\n }\n }\n\n // Build the parsed data in a temporary object (because we need to return it). Once we have the final\n // parsed data, we will combine it with process.env (or options.processEnv if provided).\n let lastError\n const parsedAll = {}\n for (const path of optionPaths) {\n try {\n // Specifying an encoding returns a string instead of a buffer\n const parsed = DotenvModule.parse(fs.readFileSync(path, { encoding }))\n\n DotenvModule.populate(parsedAll, parsed, options)\n } catch (e) {\n if (debug) {\n _debug(`Failed to load ${path} ${e.message}`)\n }\n lastError = e\n }\n }\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsedAll, options)\n\n if (lastError) {\n return { parsed: parsedAll, error: lastError }\n } else {\n return { parsed: parsedAll }\n }\n}\n\n// Populates process.env from .env file\nfunction config (options) {\n // fallback to original dotenv if DOTENV_KEY is not set\n if (_dotenvKey(options).length === 0) {\n return DotenvModule.configDotenv(options)\n }\n\n const vaultPath = _vaultPath(options)\n\n // dotenvKey exists but .env.vault file does not exist\n if (!vaultPath) {\n _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`)\n\n return DotenvModule.configDotenv(options)\n }\n\n return DotenvModule._configVault(options)\n}\n\nfunction decrypt (encrypted, keyStr) {\n const key = Buffer.from(keyStr.slice(-64), 'hex')\n let ciphertext = Buffer.from(encrypted, 'base64')\n\n const nonce = ciphertext.subarray(0, 12)\n const authTag = ciphertext.subarray(-16)\n ciphertext = ciphertext.subarray(12, -16)\n\n try {\n const aesgcm = crypto.createDecipheriv('aes-256-gcm', key, nonce)\n aesgcm.setAuthTag(authTag)\n return `${aesgcm.update(ciphertext)}${aesgcm.final()}`\n } catch (error) {\n const isRange = error instanceof RangeError\n const invalidKeyLength = error.message === 'Invalid key length'\n const decryptionFailed = error.message === 'Unsupported state or unable to authenticate data'\n\n if (isRange || invalidKeyLength) {\n const err = new Error('INVALID_DOTENV_KEY: It must be 64 characters long (or more)')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n } else if (decryptionFailed) {\n const err = new Error('DECRYPTION_FAILED: Please check your DOTENV_KEY')\n err.code = 'DECRYPTION_FAILED'\n throw err\n } else {\n throw error\n }\n }\n}\n\n// Populate process.env with parsed values\nfunction populate (processEnv, parsed, options = {}) {\n const debug = Boolean(options && options.debug)\n const override = Boolean(options && options.override)\n\n if (typeof parsed !== 'object') {\n const err = new Error('OBJECT_REQUIRED: Please check the processEnv argument being passed to populate')\n err.code = 'OBJECT_REQUIRED'\n throw err\n }\n\n // Set process.env\n for (const key of Object.keys(parsed)) {\n if (Object.prototype.hasOwnProperty.call(processEnv, key)) {\n if (override === true) {\n processEnv[key] = parsed[key]\n }\n\n if (debug) {\n if (override === true) {\n _debug(`\"${key}\" is already defined and WAS overwritten`)\n } else {\n _debug(`\"${key}\" is already defined and was NOT overwritten`)\n }\n }\n } else {\n processEnv[key] = parsed[key]\n }\n }\n}\n\nconst DotenvModule = {\n configDotenv,\n _configVault,\n _parseVault,\n config,\n decrypt,\n parse,\n populate\n}\n\nmodule.exports.configDotenv = DotenvModule.configDotenv\nmodule.exports._configVault = DotenvModule._configVault\nmodule.exports._parseVault = DotenvModule._parseVault\nmodule.exports.config = DotenvModule.config\nmodule.exports.decrypt = DotenvModule.decrypt\nmodule.exports.parse = DotenvModule.parse\nmodule.exports.populate = DotenvModule.populate\n\nmodule.exports = DotenvModule\n","import {\n access,\n readFile as fsReadFile,\n writeFile,\n mkdir,\n} from 'node:fs/promises';\nimport { dirname, join, relative } from 'node:path';\nimport { EOL } from 'node:os';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport dotenv from 'dotenv';\nimport { packageJsonSchema } from './schemas.js';\nimport type { PackageJson } from './schemas.js';\n\nexport function toJsonString(object: unknown, opts?: { spaces: number }) {\n return JSON.stringify(object, null, opts?.spaces).concat(EOL);\n}\n\nexport async function writeJson(\n filePath: string,\n object: unknown,\n opts?: { spaces: number }\n) {\n const str = toJsonString(object, opts);\n await outputDir(dirname(filePath));\n\n try {\n await writeFile(filePath, str, 'utf-8');\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToWriteJson({ filePath }),\n cause: e,\n });\n }\n}\n\nexport async function readJson(file: string): Promise<unknown> {\n let content = null;\n try {\n content = await fsReadFile(file, 'utf-8');\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToReadJson({ filePath: file }),\n cause: e,\n });\n }\n\n try {\n return JSON.parse(content);\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.InvalidJsonFile({ filePath: file }),\n cause: e,\n });\n }\n}\n\nexport async function readFile(file: string): Promise<Buffer>;\nexport async function readFile(\n file: string,\n encoding: 'utf-8'\n): Promise<string>;\nexport async function readFile(file: string, encoding?: 'utf-8') {\n try {\n return await fsReadFile(file, encoding);\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToReadFile({ filePath: file }),\n cause: e,\n });\n }\n}\n\nexport function pathExists(path: string) {\n return access(path)\n .then(() => true)\n .catch(() => false);\n}\n\nexport async function outputFile(file: string, content: string | Uint8Array) {\n await outputDir(dirname(file));\n\n try {\n await writeFile(file, content, 'utf-8');\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToWriteFile({ filePath: file }),\n cause: e,\n });\n }\n}\n\nexport async function outputDir(dir: string) {\n try {\n await mkdir(dir, { recursive: true });\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToCreateDir({ dirPath: dir }),\n cause: e,\n });\n }\n}\n\nexport async function readPackageJson(projectFolder: string) {\n const packageJsonPath = join(projectFolder, 'package.json');\n\n const json = await readJson(packageJsonPath);\n const parsedPackageJson = await packageJsonSchema.safeParseAsync(json);\n\n if (!parsedPackageJson.success) {\n throw new CliError({\n code: CliErrorCode.InvalidConfigSchemaError({\n configPath: packageJsonPath,\n zodError: parsedPackageJson.error,\n }),\n cause: parsedPackageJson.error,\n });\n }\n\n /**\n * Returning original json because zod clone object and change the order of keys.\n * It's safe to return the original json because we already validated it.\n */\n return json as PackageJson;\n}\n\nexport function readPackageJsonContent(projectFolder: string) {\n return readFile(join(projectFolder, 'package.json'), 'utf-8');\n}\n\nexport async function writePackageJson(\n projectFolder: string,\n packageJson: PackageJson\n) {\n const packageJsonPath = join(projectFolder, 'package.json');\n\n await writeJson(packageJsonPath, packageJson, { spaces: 2 });\n}\n\nexport function relativeFolderName(rootFolder: string, filePath: string) {\n return relative(rootFolder, dirname(filePath));\n}\n\nexport { type PackageJson } from './schemas.js';\n\nexport async function readEnvFile(source: string) {\n if (await pathExists(source)) {\n try {\n const content = await readFile(source);\n return dotenv.parse(content);\n } catch {\n return {};\n }\n }\n return {};\n}\n\nexport async function updateEnvFile(\n target: string,\n variables: Record<string, string>\n) {\n const mergedEnvVars = {\n ...(await readEnvFile(target)),\n ...variables,\n };\n\n const outputEnvVar = Object.entries(mergedEnvVars)\n .map(([key, value]) => `${key}=\"${value}\"`)\n .join('\\n');\n\n await outputFile(target, outputEnvVar);\n}\n","import { z } from 'zod';\n\nexport const packageJsonSchema = z.object({\n dependencies: z.record(z.string()).optional(),\n devDependencies: z.record(z.string()).optional(),\n peerDependencies: z.record(z.string()).optional(),\n scripts: z.record(z.string()).optional(),\n});\n\nexport type PackageJson = z.infer<typeof packageJsonSchema>;\n"],"mappings":"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","names":["path","dotenv"]}
@@ -7,10 +7,10 @@ import {
7
7
  pathExists,
8
8
  readJson,
9
9
  writeJson
10
- } from "./chunk-EKIOJ6JP.js";
10
+ } from "./chunk-ZUSQSFTR.js";
11
11
  import {
12
- z
13
- } from "./chunk-ZXYGJZOO.js";
12
+ external_exports
13
+ } from "./chunk-F43XHKVL.js";
14
14
  import {
15
15
  CliError,
16
16
  CliErrorCode,
@@ -277,9 +277,9 @@ var Yarn = class {
277
277
  }
278
278
  };
279
279
  async function getPackagesRelativePaths(rootDir, yarnVersion) {
280
- const workspacesSchema = z.array(
281
- z.object({
282
- location: z.string()
280
+ const workspacesSchema = external_exports.array(
281
+ external_exports.object({
282
+ location: external_exports.string()
283
283
  })
284
284
  );
285
285
  if (yarnVersion === "yarn-berry") {
@@ -394,4 +394,4 @@ export {
394
394
  Yarn,
395
395
  createPackageManager
396
396
  };
397
- //# sourceMappingURL=chunk-LLFDPUTB.js.map
397
+ //# sourceMappingURL=chunk-ZW47BBFN.js.map
@@ -1 +1 @@
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 {\n gitClone,\n gitCommit,\n gitInit,\n getGitLatestCommitHash,\n isInsideGitRepo,\n} 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 getGitLatestCommitHash(cwd: string) {\n try {\n return await runCommand('git rev-parse --verify HEAD', { cwd });\n } catch {\n // This command can fail if there are no commits, so we can just return undefined\n }\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
+ {"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 {\n gitClone,\n gitCommit,\n gitInit,\n getGitLatestCommitHash,\n isInsideGitRepo,\n} 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 getGitLatestCommitHash(cwd: string) {\n try {\n return await runCommand('git rev-parse --verify HEAD', { cwd });\n } catch {\n // This command can fail if there are no commits, so we can just return undefined\n }\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"]}