@shopify/cli 3.70.0 → 3.71.1

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 (128) hide show
  1. package/dist/{chunk-DVTWERMH.js → chunk-24P2IYB3.js} +5 -5
  2. package/dist/{lib-CPSRXLFM.js → chunk-2HGYYNE5.js} +5 -2
  3. package/dist/{chunk-5OP2SA7G.js → chunk-2S2TOSUR.js} +214 -56
  4. package/dist/{chunk-I3IIDOBX.js → chunk-2ULUZCOJ.js} +3 -3
  5. package/dist/{chunk-PNN7RS7Y.js → chunk-3NSN5Z4N.js} +100 -11
  6. package/dist/{chunk-AT4IG4GJ.js → chunk-4BWP64T3.js} +9 -11
  7. package/dist/{chunk-SYRHCENA.js → chunk-4FXGYSQK.js} +2 -2
  8. package/dist/{chunk-PKE54TAY.js → chunk-5EH323MO.js} +7 -7
  9. package/dist/{chunk-JLK5OMFF.js → chunk-5RITYBXF.js} +2 -2
  10. package/dist/{chunk-47OJGAFT.js → chunk-6XIQQAII.js} +3 -3
  11. package/dist/{chunk-VFQMUAHB.js → chunk-DGICBICS.js} +4 -4
  12. package/dist/{chunk-335KXO4I.js → chunk-DN4PETPW.js} +7 -7
  13. package/dist/{chunk-MRDDDATQ.js → chunk-EIYEVKVE.js} +3 -3
  14. package/dist/{chunk-N2DEYZD6.js → chunk-EKRPU77H.js} +3 -3
  15. package/dist/{chunk-ZGHNMRBX.js → chunk-HSTSRNLJ.js} +121 -66
  16. package/dist/{chunk-MMQOVZDR.js → chunk-JJUWGFVJ.js} +5 -5
  17. package/dist/{chunk-MX4RJDBM.js → chunk-KYB6A4PE.js} +1 -2
  18. package/dist/{chunk-X6F3DHKX.js → chunk-L2JRQYNX.js} +2 -2
  19. package/dist/{chunk-GDYKHT64.js → chunk-L5QY66M5.js} +2805 -33
  20. package/dist/{chunk-XSMWYZDC.js → chunk-LFQTQLLB.js} +10 -10
  21. package/dist/{chunk-NH4U4X67.js → chunk-LVCMJDAE.js} +4 -4
  22. package/dist/{chunk-5QQTRGJ7.js → chunk-MU52LLEY.js} +4 -4
  23. package/dist/{chunk-43YGIE7Y.js → chunk-NGHX3OJ3.js} +2 -2
  24. package/dist/{chunk-NYFXBTWK.js → chunk-NZRMJMX6.js} +4 -4
  25. package/dist/{chunk-TCTXUAZT.js → chunk-O53RG2PS.js} +3 -3
  26. package/dist/{chunk-CBD6UXLA.js → chunk-OJOHMVV7.js} +5 -5
  27. package/dist/chunk-OSIMKPXN.js +104 -0
  28. package/dist/{chunk-N4X7XQWN.js → chunk-PGVLZNNX.js} +7 -3
  29. package/dist/{chunk-VHAXHYTL.js → chunk-PPETSPYI.js} +3 -3
  30. package/dist/{chunk-UOZCMFCN.js → chunk-RJ26EKJZ.js} +18 -13
  31. package/dist/{chunk-WN3FKMKB.js → chunk-RWUKHJPN.js} +14 -19
  32. package/dist/{chunk-ND6AGPC6.js → chunk-RYLVSBYA.js} +3 -3
  33. package/dist/{chunk-MH5JSAVK.js → chunk-SBXDGZUV.js} +3 -3
  34. package/dist/{chunk-BMNDAI5O.js → chunk-SQN45NED.js} +4 -4
  35. package/dist/{chunk-WI6MEN7U.js → chunk-TFYGB36T.js} +2 -2
  36. package/dist/{chunk-PJKCWDDX.js → chunk-TM56R4RM.js} +548 -550
  37. package/dist/{chunk-KYBCPKPL.js → chunk-V2IQ2QWA.js} +3 -3
  38. package/dist/{chunk-NEOIQ6PN.js → chunk-WNDN5FAY.js} +2 -2
  39. package/dist/{chunk-FDJVVEGH.js → chunk-WQY4NQRT.js} +4 -6
  40. package/dist/{chunk-LN444KRM.js → chunk-ZINX4YDI.js} +2 -2
  41. package/dist/{chunk-MQXHFQM3.js → chunk-ZPWQCUYD.js} +4 -4
  42. package/dist/cli/commands/auth/logout.js +18 -20
  43. package/dist/cli/commands/auth/logout.test.js +24 -26
  44. package/dist/cli/commands/cache/clear.js +17 -19
  45. package/dist/cli/commands/debug/command-flags.js +17 -19
  46. package/dist/cli/commands/docs/generate.js +17 -19
  47. package/dist/cli/commands/docs/generate.test.js +18 -20
  48. package/dist/cli/commands/help.js +17 -19
  49. package/dist/cli/commands/kitchen-sink/async.js +18 -20
  50. package/dist/cli/commands/kitchen-sink/async.test.js +19 -21
  51. package/dist/cli/commands/kitchen-sink/index.js +20 -22
  52. package/dist/cli/commands/kitchen-sink/index.test.js +23 -25
  53. package/dist/cli/commands/kitchen-sink/prompts.js +18 -20
  54. package/dist/cli/commands/kitchen-sink/prompts.test.js +19 -21
  55. package/dist/cli/commands/kitchen-sink/static.js +18 -20
  56. package/dist/cli/commands/kitchen-sink/static.test.js +19 -21
  57. package/dist/cli/commands/notifications/generate.js +18 -20
  58. package/dist/cli/commands/notifications/list.js +18 -20
  59. package/dist/cli/commands/search.js +18 -20
  60. package/dist/cli/commands/upgrade.js +18 -20
  61. package/dist/cli/commands/upgrade.test.js +1 -2
  62. package/dist/cli/commands/version.js +18 -20
  63. package/dist/cli/commands/version.test.js +19 -21
  64. package/dist/cli/services/commands/notifications.js +12 -14
  65. package/dist/cli/services/commands/search.js +8 -9
  66. package/dist/cli/services/commands/search.test.js +9 -10
  67. package/dist/cli/services/commands/version.js +9 -10
  68. package/dist/cli/services/commands/version.test.js +11 -12
  69. package/dist/cli/services/kitchen-sink/async.js +8 -9
  70. package/dist/cli/services/kitchen-sink/prompts.js +8 -9
  71. package/dist/cli/services/kitchen-sink/static.js +8 -9
  72. package/dist/cli/services/upgrade.js +9 -10
  73. package/dist/cli/services/upgrade.test.js +12 -13
  74. package/dist/configs/all.yml +15 -0
  75. package/dist/configs/recommended.yml +9 -0
  76. package/dist/{custom-oclif-loader-IZLFCRGJ.js → custom-oclif-loader-4ILBNUIN.js} +8 -9
  77. package/dist/data/filters.json +98 -3
  78. package/dist/data/latest.json +1 -1
  79. package/dist/data/manifest_theme.json +1 -0
  80. package/dist/data/objects.json +39 -1619
  81. package/dist/data/preset_blocks.json +78 -0
  82. package/dist/data/section.json +1 -42
  83. package/dist/data/shopify_system_translations.json +34 -7
  84. package/dist/data/tags.json +10 -0
  85. package/dist/data/theme_block.json +1 -19
  86. package/dist/{del-FEQWOMIX.js → del-K5ZJEWTD.js} +3 -3
  87. package/dist/{error-handler-DAI5HMQW.js → error-handler-VW3Z4CSO.js} +15 -17
  88. package/dist/hooks/postrun.js +13 -15
  89. package/dist/hooks/prerun.js +15 -19
  90. package/dist/index.js +19504 -17453
  91. package/dist/lib-PPXZBVZX.js +6 -0
  92. package/dist/{lib-JJXX7GH6.js → lib-XYCLX35G.js} +5 -5
  93. package/dist/{local-QD6GDUUE.js → local-42CRL4YR.js} +10 -9
  94. package/dist/{morph-FN23MJ2S.js → morph-SEECJQ2W.js} +2 -2
  95. package/dist/{node-4XKDIIJ7.js → node-RJUK5KNM.js} +19 -21
  96. package/dist/{node-package-manager-IEZ6F5VN.js → node-package-manager-6PHP23VI.js} +9 -10
  97. package/dist/{out-ZDSLKX4N.js → out-MHEKZJWS.js} +2 -2
  98. package/dist/{path-T2RCZTRE.js → path-5SZGULBR.js} +2 -3
  99. package/dist/tsconfig.tsbuildinfo +1 -1
  100. package/dist/{ui-BUB4OWO7.js → ui-OIACULNZ.js} +8 -9
  101. package/dist/{workerd-DIIGDIHZ.js → workerd-MTYSNN63.js} +19 -21
  102. package/oclif.manifest.json +334 -131
  103. package/package.json +7 -8
  104. package/assets/demo-catalog.json +0 -655
  105. package/dist/assets/demo-catalog.json +0 -655
  106. package/dist/chunk-2PUMVRDO.js +0 -131
  107. package/dist/chunk-7GNQ7YY4.js +0 -116
  108. package/dist/chunk-E2SYFYJU.js +0 -58
  109. package/dist/chunk-NLUGD7PZ.js +0 -2731
  110. package/dist/chunk-P6ABWRKD.js +0 -59
  111. package/dist/chunk-QSUS3GJF.js +0 -3838
  112. package/dist/chunk-RUK73IAH.js +0 -312
  113. package/dist/chunk-T2GATXSP.js +0 -112
  114. package/dist/chunk-VT3VJHZ7.js +0 -45
  115. package/dist/chunk-XEDHKQZA.js +0 -116
  116. package/dist/cli/commands/demo/catalog.d.ts +0 -6
  117. package/dist/cli/commands/demo/catalog.js +0 -36
  118. package/dist/cli/commands/demo/generate-file.d.ts +0 -11
  119. package/dist/cli/commands/demo/generate-file.js +0 -37
  120. package/dist/cli/commands/demo/index.d.ts +0 -10
  121. package/dist/cli/commands/demo/index.js +0 -36
  122. package/dist/cli/commands/demo/print-ai-prompt.d.ts +0 -6
  123. package/dist/cli/commands/demo/print-ai-prompt.js +0 -37
  124. package/dist/cli/services/demo.d.ts +0 -26440
  125. package/dist/cli/services/demo.js +0 -25
  126. package/dist/cli/services/demo.test.js +0 -42
  127. package/dist/constants-QFFDI47A.js +0 -26
  128. package/dist/system-KSIGUX64.js +0 -29
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  getNotifications,
3
3
  stringifyFilters
4
- } from "./chunk-UOZCMFCN.js";
4
+ } from "./chunk-RJ26EKJZ.js";
5
5
  import {
6
6
  randomUUID
7
- } from "./chunk-GDYKHT64.js";
7
+ } from "./chunk-L5QY66M5.js";
8
8
  import {
9
9
  CLI_KIT_VERSION
10
- } from "./chunk-43YGIE7Y.js";
10
+ } from "./chunk-NGHX3OJ3.js";
11
11
  import {
12
12
  outputInfo,
13
13
  renderSelectPrompt,
@@ -15,7 +15,7 @@ import {
15
15
  renderTable,
16
16
  renderTextPrompt,
17
17
  writeFile
18
- } from "./chunk-PJKCWDDX.js";
18
+ } from "./chunk-TM56R4RM.js";
19
19
  import {
20
20
  init_cjs_shims
21
21
  } from "./chunk-POZ5MGPT.js";
@@ -102,4 +102,4 @@ export {
102
102
  generate,
103
103
  list
104
104
  };
105
- //# sourceMappingURL=chunk-DVTWERMH.js.map
105
+ //# sourceMappingURL=chunk-24P2IYB3.js.map
@@ -205,5 +205,8 @@ var require_lib = __commonJS({
205
205
  which.sync = whichSync;
206
206
  }
207
207
  });
208
- export default require_lib();
209
- //# sourceMappingURL=lib-CPSRXLFM.js.map
208
+
209
+ export {
210
+ require_lib
211
+ };
212
+ //# sourceMappingURL=chunk-2HGYYNE5.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  platformAndArch
3
- } from "./chunk-SYRHCENA.js";
3
+ } from "./chunk-4FXGYSQK.js";
4
4
  import {
5
5
  ClientError,
6
6
  GraphQLClient,
@@ -8,6 +8,8 @@ import {
8
8
  RequestClientError,
9
9
  allAPIs,
10
10
  buildHeaders,
11
+ getIdentityTokenInformation,
12
+ getPartnersToken,
11
13
  gql,
12
14
  hashString,
13
15
  httpsAgent,
@@ -16,8 +18,9 @@ import {
16
18
  retryAwareRequest,
17
19
  sanitizeURL,
18
20
  sanitizedHeadersOutput,
19
- shopifyFetch
20
- } from "./chunk-GDYKHT64.js";
21
+ shopifyFetch,
22
+ z
23
+ } from "./chunk-L5QY66M5.js";
21
24
  import {
22
25
  cacheRetrieveOrRepopulate,
23
26
  getCachedPartnerAccountStatus,
@@ -27,10 +30,7 @@ import {
27
30
  removeSession,
28
31
  setCachedPartnerAccountStatus,
29
32
  setSession
30
- } from "./chunk-FDJVVEGH.js";
31
- import {
32
- z
33
- } from "./chunk-NLUGD7PZ.js";
33
+ } from "./chunk-WQY4NQRT.js";
34
34
  import {
35
35
  AbortError,
36
36
  BugError,
@@ -43,10 +43,10 @@ import {
43
43
  currentProcessIsGlobal,
44
44
  firstPartyDev,
45
45
  import_ts_error,
46
+ isAppManagementEnabled,
46
47
  isCloudEnvironment,
47
48
  isSpin,
48
49
  isTTY,
49
- isTruthy,
50
50
  keypress,
51
51
  macAddress,
52
52
  openURL,
@@ -58,25 +58,73 @@ import {
58
58
  outputWarn,
59
59
  runWithTimer,
60
60
  serviceEnvironment,
61
+ sessionConstants,
61
62
  spinFqdn,
62
63
  stringifyMessage,
64
+ themeKitAccessDomain,
63
65
  themeToken
64
- } from "./chunk-PJKCWDDX.js";
65
- import {
66
- environmentVariables,
67
- sessionConstants,
68
- systemEnvironmentVariables,
69
- themeKitAccessDomain
70
- } from "./chunk-XEDHKQZA.js";
66
+ } from "./chunk-TM56R4RM.js";
71
67
  import {
72
68
  cwd
73
- } from "./chunk-T2GATXSP.js";
69
+ } from "./chunk-3NSN5Z4N.js";
74
70
  import {
75
71
  __commonJS,
72
+ __require,
76
73
  __toESM,
77
74
  init_cjs_shims
78
75
  } from "./chunk-POZ5MGPT.js";
79
76
 
77
+ // ../../node_modules/.pnpm/network-interfaces@1.1.0/node_modules/network-interfaces/index.js
78
+ var require_network_interfaces = __commonJS({
79
+ "../../node_modules/.pnpm/network-interfaces@1.1.0/node_modules/network-interfaces/index.js"(exports2) {
80
+ "use strict";
81
+ init_cjs_shims();
82
+ var os2 = __require("os");
83
+ function isValid(address, options2) {
84
+ return !(typeof options2.internal == "boolean" && address.internal !== options2.internal || options2.ipVersion === 4 && address.family !== "IPv4" || options2.ipVersion === 6 && address.family !== "IPv6");
85
+ }
86
+ function findAddresses(interfaceName, options2 = {}) {
87
+ let addresses = os2.networkInterfaces()[interfaceName];
88
+ if (!addresses)
89
+ throw new Error(`Network interface "${interfaceName}" does not exist`);
90
+ let result = [];
91
+ for (let address of addresses)
92
+ isValid(address, options2) && result.push(address);
93
+ return result;
94
+ }
95
+ exports2.toIp = function(interfaceName, options2) {
96
+ let addresses = findAddresses(interfaceName, options2);
97
+ if (addresses.length === 0)
98
+ throw new Error(`No suitable IP address found on interface "${interfaceName}"`);
99
+ return addresses[0].address;
100
+ };
101
+ exports2.toIps = function(interfaceName, options2) {
102
+ return findAddresses(interfaceName, options2).map((address) => address.address);
103
+ };
104
+ exports2.fromIp = function(ip, options2) {
105
+ let interfaces = os2.networkInterfaces(), interfaceNames = Object.keys(interfaces);
106
+ for (let interfaceName of interfaceNames)
107
+ for (let address of interfaces[interfaceName])
108
+ if (address.address === ip && isValid(address, options2))
109
+ return interfaceName;
110
+ throw new Error(`No suitable interfaces were found with IP address "${ip}"`);
111
+ };
112
+ exports2.getInterface = function(options2) {
113
+ let interfaces = os2.networkInterfaces(), interfaceNames = Object.keys(interfaces);
114
+ for (let interfaceName of interfaceNames)
115
+ if (findAddresses(interfaceName, options2).length > 0)
116
+ return interfaceName;
117
+ throw new Error("No suitable interfaces were found");
118
+ };
119
+ exports2.getInterfaces = function(options2) {
120
+ let interfaces = os2.networkInterfaces(), interfaceNames = Object.keys(interfaces), result = [];
121
+ for (let interfaceName of interfaceNames)
122
+ findAddresses(interfaceName, options2).length > 0 && result.push(interfaceName);
123
+ return result;
124
+ };
125
+ }
126
+ });
127
+
80
128
  // ../../node_modules/.pnpm/bottleneck@2.19.5/node_modules/bottleneck/lib/parser.js
81
129
  var require_parser = __commonJS({
82
130
  "../../node_modules/.pnpm/bottleneck@2.19.5/node_modules/bottleneck/lib/parser.js"(exports2) {
@@ -2606,12 +2654,148 @@ init_cjs_shims();
2606
2654
 
2607
2655
  // ../cli-kit/dist/public/node/context/fqdn.js
2608
2656
  init_cjs_shims();
2657
+
2658
+ // ../cli-kit/dist/public/node/vendor/dev_server/DevServer.js
2659
+ init_cjs_shims();
2660
+ var ni = __toESM(require_network_interfaces(), 1);
2661
+ import fs from "fs";
2662
+ import * as os from "os";
2663
+ import { execSync } from "child_process";
2664
+ var DevServerUtils = class _DevServerUtils {
2665
+ static assertConnectable(name, addr, port) {
2666
+ try {
2667
+ execSync(`nc -z -v -w 1 ${addr} ${port}`, {
2668
+ timeout: _DevServerUtils.CONNECT_TIMEOUT,
2669
+ stdio: "ignore"
2670
+ });
2671
+ } catch {
2672
+ throw new Error(`NET FAILED DevServer for '${name}' is not running on ${port} / ${addr}: \`dev up ${name}\` to start it.`);
2673
+ }
2674
+ }
2675
+ static inferenceModeAndProjectIsEdition2016(name) {
2676
+ try {
2677
+ fs.accessSync(_DevServerUtils.INFERENCE_MODE_SENTINEL);
2678
+ try {
2679
+ return fs.accessSync(`/opt/nginx/etc/manifest/${name}/current/edition-2024`), !1;
2680
+ } catch {
2681
+ return !0;
2682
+ }
2683
+ } catch {
2684
+ return !1;
2685
+ }
2686
+ }
2687
+ static getIpFromHosts(hostname) {
2688
+ try {
2689
+ let lines = fs.readFileSync(_DevServerUtils.HOSTS_FILE, "utf8").split(/\r?\n/);
2690
+ for (let line of lines) {
2691
+ let matches = /^\s*?([^#]+?)\s+([^#]+?)$/.exec(line);
2692
+ if (matches && matches.length === 3 && matches[2] === hostname)
2693
+ return matches[1];
2694
+ }
2695
+ } catch (error) {
2696
+ console.error("Error reading hosts file:", error);
2697
+ }
2698
+ throw new Error(`No IP found for hostname: ${hostname}`);
2699
+ }
2700
+ static getAddrPort2024(name) {
2701
+ try {
2702
+ let backendIp = _DevServerUtils.resolveBackendHost(name), interfaceName = ni.fromIp(backendIp, {
2703
+ internal: !0,
2704
+ ipVersion: 4
2705
+ });
2706
+ return [backendIp, _DevServerUtils.BACKEND_PORT];
2707
+ } catch {
2708
+ throw new Error(`DevServer for '${name}' is not running: \`dev up ${name}\` to start it.`);
2709
+ }
2710
+ }
2711
+ static getAddrPort2016(name) {
2712
+ try {
2713
+ let portContent = fs.readFileSync(`${os.homedir()}/.local/run/services/${name}/server/port`, "utf-8");
2714
+ return ["localhost", parseInt(portContent, 10)];
2715
+ } catch {
2716
+ throw new Error(`DevServer for '${name}' is not running: \`dev up ${name}\` to start it.`);
2717
+ }
2718
+ }
2719
+ static resolveBackendHost(name) {
2720
+ let host;
2721
+ try {
2722
+ host = fs.readlinkSync(`/opt/nginx/etc/manifest/${name}/current`);
2723
+ } catch {
2724
+ host = `${name}.root.shopify.dev.internal`;
2725
+ }
2726
+ try {
2727
+ return _DevServerUtils.getIpFromHosts(host);
2728
+ } catch {
2729
+ return host;
2730
+ }
2731
+ }
2732
+ };
2733
+ DevServerUtils.INFERENCE_MODE_SENTINEL = "/opt/dev/misc/dev-server-inference-mode";
2734
+ DevServerUtils.BACKEND_PORT = 8080;
2735
+ DevServerUtils.CONNECT_TIMEOUT = 100;
2736
+ DevServerUtils.HOSTS_FILE = "/etc/hosts";
2737
+ var DevServer = class {
2738
+ constructor(name) {
2739
+ if (!process.env.SPIN && !process.env.USING_DEV)
2740
+ throw new Error("DevServer is not supported in this environment");
2741
+ if (name === "shopify")
2742
+ throw new Error("Use DevServer.core for the 'shopify' project");
2743
+ this.name = name;
2744
+ }
2745
+ url({ nonstandardHostPrefix } = {}) {
2746
+ return `https://${this.host({ nonstandardHostPrefix })}`;
2747
+ }
2748
+ host({ nonstandardHostPrefix } = {}) {
2749
+ let prefix = nonstandardHostPrefix || this.name;
2750
+ if (process.env.SPIN === "1") {
2751
+ let services = fs.readdirSync("/run/ports2").filter((file) => file.endsWith(`--${this.name}`));
2752
+ if (services.length === 0)
2753
+ throw new Error(`DevServer for '${this.name}' not present in this spin environment`);
2754
+ let match = new RegExp(`^(.+)${this.name}$`).exec(services[0]), organization = match ? match[1] : "";
2755
+ return `${organization !== "shopify--" ? `${organization}` : ""}${this.name}.${process.env.SPIN_FQDN}`;
2756
+ } else
2757
+ return DevServerUtils.inferenceModeAndProjectIsEdition2016(this.name) ? (this.assertRunningLocally2016(), `${prefix}.myshopify.io`) : (this.assertRunningLocally2024(), `${prefix}.shop.dev`);
2758
+ }
2759
+ assertRunningLocally2024() {
2760
+ let [addr, port] = DevServerUtils.getAddrPort2024(this.name);
2761
+ DevServerUtils.assertConnectable(this.name, addr, port);
2762
+ }
2763
+ assertRunningLocally2016() {
2764
+ let [addr, port] = DevServerUtils.getAddrPort2016(this.name);
2765
+ DevServerUtils.assertConnectable(this.name, addr, port);
2766
+ }
2767
+ }, DevServerCore = class {
2768
+ constructor() {
2769
+ this.name = "shopify";
2770
+ }
2771
+ url(prefix) {
2772
+ return `https://${this.host(prefix)}`;
2773
+ }
2774
+ host(prefix) {
2775
+ if (process.env.SPIN === "1") {
2776
+ if (!fs.readdirSync("/run/ports2").find((file) => file.endsWith(`--${this.name}`)))
2777
+ throw new Error(`DevServer for '${this.name}' not present in this spin environment`);
2778
+ return `${prefix}.${this.name}.${process.env.SPIN_FQDN}`;
2779
+ } else
2780
+ return DevServerUtils.inferenceModeAndProjectIsEdition2016("shopify") ? (this.assertRunningLocally2016(), `${prefix}.myshopify.io`) : (this.assertRunningLocally2024(), `${prefix}.my.shop.dev`);
2781
+ }
2782
+ assertRunningLocally2024() {
2783
+ let [addr, port] = DevServerUtils.getAddrPort2024("shopify");
2784
+ DevServerUtils.assertConnectable("shopify", addr, port);
2785
+ }
2786
+ assertRunningLocally2016() {
2787
+ let [addr, port] = DevServerUtils.getAddrPort2016("shopify");
2788
+ DevServerUtils.assertConnectable("shopify", addr, port);
2789
+ }
2790
+ };
2791
+
2792
+ // ../cli-kit/dist/public/node/context/fqdn.js
2609
2793
  var CouldntObtainPartnersSpinFQDNError = new AbortError("Couldn't obtain the Spin FQDN for Partners when the CLI is not running from a Spin environment."), CouldntObtainIdentitySpinFQDNError = new AbortError("Couldn't obtain the Spin FQDN for Identity when the CLI is not running from a Spin environment."), CouldntObtainShopifySpinFQDNError = new AbortError("Couldn't obtain the Spin FQDN for Shopify when the CLI is not running from a Spin environment."), NotProvidedStoreFQDNError = new AbortError("Couldn't obtain the Shopify FQDN because the store FQDN was not provided.");
2610
2794
  async function partnersFqdn() {
2611
2795
  let environment = serviceEnvironment(), productionFqdn = "partners.shopify.com";
2612
2796
  switch (environment) {
2613
2797
  case "local":
2614
- return "partners.myshopify.io";
2798
+ return new DevServer("partners").host();
2615
2799
  case "spin":
2616
2800
  return `partners.${await spinFqdn()}`;
2617
2801
  default:
@@ -2622,7 +2806,7 @@ async function appManagementFqdn() {
2622
2806
  let environment = serviceEnvironment(), productionFqdn = "app.shopify.com";
2623
2807
  switch (environment) {
2624
2808
  case "local":
2625
- return "app.shopify.myshopify.io";
2809
+ return new DevServerCore().host("app");
2626
2810
  case "spin":
2627
2811
  return `app.shopify.${await spinFqdn()}`;
2628
2812
  default:
@@ -2633,7 +2817,7 @@ async function developerDashboardFqdn() {
2633
2817
  let environment = serviceEnvironment(), productionFqdn = "dev.shopify.com";
2634
2818
  switch (environment) {
2635
2819
  case "local":
2636
- return "dev.shopify.myshopify.io";
2820
+ return new DevServerCore().host("dev");
2637
2821
  case "spin":
2638
2822
  return `dev.shopify.${await spinFqdn()}`;
2639
2823
  default:
@@ -2644,7 +2828,7 @@ async function businessPlatformFqdn() {
2644
2828
  let environment = serviceEnvironment(), productionFqdn = "destinations.shopifysvc.com";
2645
2829
  switch (environment) {
2646
2830
  case "local":
2647
- return "business-platform.myshopify.io";
2831
+ return new DevServer("business-platform").host();
2648
2832
  case "spin":
2649
2833
  return `business-platform.${await spinFqdn()}`;
2650
2834
  default:
@@ -2655,7 +2839,7 @@ async function identityFqdn() {
2655
2839
  let environment = serviceEnvironment(), productionFqdn = "accounts.shopify.com";
2656
2840
  switch (environment) {
2657
2841
  case "local":
2658
- return "identity.myshopify.io";
2842
+ return new DevServer("identity").host();
2659
2843
  case "spin":
2660
2844
  return `identity.${await spinFqdn()}`;
2661
2845
  default:
@@ -2666,14 +2850,14 @@ async function normalizeStoreFqdn(store2) {
2666
2850
  let storeFqdn = store2.replace(/^https?:\/\//, "").replace(/\/$/, ""), addDomain = async (storeFqdn2) => {
2667
2851
  switch (serviceEnvironment()) {
2668
2852
  case "local":
2669
- return `${storeFqdn2}.myshopify.io`;
2853
+ return new DevServerCore().host(storeFqdn2);
2670
2854
  case "spin":
2671
2855
  return `${storeFqdn2}.shopify.${await spinFqdn()}`;
2672
2856
  default:
2673
2857
  return `${storeFqdn2}.myshopify.com`;
2674
2858
  }
2675
2859
  };
2676
- return ((storeFqdn2) => storeFqdn2.includes(".myshopify.com") || storeFqdn2.includes("spin.dev") || storeFqdn2.includes("shopify.io"))(storeFqdn) ? storeFqdn : addDomain(storeFqdn);
2860
+ return ((storeFqdn2) => storeFqdn2.includes(".myshopify.com") || storeFqdn2.includes("spin.dev") || storeFqdn2.includes("shopify.io") || storeFqdn2.includes(".shop.dev"))(storeFqdn) ? storeFqdn : addDomain(storeFqdn);
2677
2861
  }
2678
2862
 
2679
2863
  // ../cli-kit/dist/public/node/result.js
@@ -2892,9 +3076,9 @@ function defaultApiScopes(api, systemEnvironment = process.env) {
2892
3076
  case "partners":
2893
3077
  return ["cli"];
2894
3078
  case "business-platform":
2895
- return isTruthy(systemEnvironment.USE_APP_MANAGEMENT_API) ? ["destinations", "store-management"] : ["destinations"];
3079
+ return isAppManagementEnabled(systemEnvironment) ? ["destinations", "store-management"] : ["destinations"];
2896
3080
  case "app-management":
2897
- return isTruthy(systemEnvironment.USE_APP_MANAGEMENT_API) ? ["app-management"] : [];
3081
+ return isAppManagementEnabled(systemEnvironment) ? ["app-management"] : [];
2898
3082
  default:
2899
3083
  throw new BugError(`Unknown API: ${api}`);
2900
3084
  }
@@ -3024,7 +3208,7 @@ var InvalidGrantError = class extends import_ts_error.ExtendableError {
3024
3208
  }, InvalidTargetError = class extends AbortError {
3025
3209
  };
3026
3210
  async function exchangeAccessForApplicationTokens(identityToken, scopes, store2) {
3027
- let token = identityToken.accessToken, appManagementEnabled = isTruthy(process.env.USE_APP_MANAGEMENT_API), [partners, storefront, businessPlatform, admin, appManagement] = await Promise.all([
3211
+ let token = identityToken.accessToken, appManagementEnabled = isAppManagementEnabled(), [partners, storefront, businessPlatform, admin, appManagement] = await Promise.all([
3028
3212
  requestAppToken("partners", token, scopes.partners),
3029
3213
  requestAppToken("storefront-renderer", token, scopes.storefront),
3030
3214
  requestAppToken("business-platform", token, scopes.businessPlatform),
@@ -3259,14 +3443,14 @@ Request ID: ${requestId}
3259
3443
 
3260
3444
  // ../cli-kit/dist/public/node/api/graphql.js
3261
3445
  async function performGraphQLRequest(options2) {
3262
- let { token, addedHeaders, queryAsString, variables, api, url, responseOptions } = options2, headers = {
3446
+ let { token, addedHeaders, queryAsString, variables, api, url, responseOptions, unauthorizedHandler } = options2, headers = {
3263
3447
  ...addedHeaders,
3264
3448
  ...buildHeaders(token)
3265
3449
  };
3266
3450
  debugLogRequestInfo(api, queryAsString, url, variables, headers);
3267
3451
  let clientOptions = { agent: await httpsAgent(), headers }, client = new GraphQLClient(url, clientOptions);
3268
3452
  return runWithTimer("cmd_all_timing_network_ms")(async () => {
3269
- let response = await retryAwareRequest({ request: () => client.rawRequest(queryAsString, variables), url }, responseOptions?.handleErrors === !1 ? void 0 : errorHandler(api));
3453
+ let response = await retryAwareRequest({ request: () => client.rawRequest(queryAsString, variables), url }, responseOptions?.handleErrors === !1 ? void 0 : errorHandler(api), unauthorizedHandler);
3270
3454
  responseOptions?.onResponse && responseOptions.onResponse(response);
3271
3455
  try {
3272
3456
  let requestId = response.headers.get("x-request-id");
@@ -3354,29 +3538,6 @@ function handleDeprecations(response) {
3354
3538
  setNextDeprecationDate(deprecationDates);
3355
3539
  }
3356
3540
 
3357
- // ../cli-kit/dist/public/node/environment.js
3358
- init_cjs_shims();
3359
- function getEnvironmentVariables() {
3360
- return process.env;
3361
- }
3362
- function getPartnersToken() {
3363
- return getEnvironmentVariables()[environmentVariables.partnersToken];
3364
- }
3365
- function getBackendPort() {
3366
- let backendPort = getEnvironmentVariables()[systemEnvironmentVariables.backendPort];
3367
- if (backendPort && !isNaN(Number(backendPort)))
3368
- return Number(backendPort);
3369
- }
3370
- function getIdentityTokenInformation() {
3371
- let identityToken = getEnvironmentVariables()[environmentVariables.identityToken], refreshToken = getEnvironmentVariables()[environmentVariables.refreshToken];
3372
- if (!(!identityToken || !refreshToken))
3373
- return {
3374
- accessToken: identityToken,
3375
- refreshToken,
3376
- userId: nonRandomUUID(identityToken)
3377
- };
3378
- }
3379
-
3380
3541
  // ../cli-kit/dist/private/node/session.js
3381
3542
  var userId, authMethod = "none";
3382
3543
  async function getLastSeenUserIdAfterAuth() {
@@ -3464,7 +3625,7 @@ async function executeCompleteFlow(applications, identityFqdn2) {
3464
3625
  return outputCompleted("Logged in."), session;
3465
3626
  }
3466
3627
  async function ensureUserHasPartnerAccount(partnersToken, userId2) {
3467
- if (!isTruthy(process.env.USE_APP_MANAGEMENT_API) && (outputDebug(outputContent`Verifying that the user has a Partner organization`), !await hasPartnerAccount(partnersToken, userId2) && (outputInfo(`
3628
+ if (!isAppManagementEnabled() && (outputDebug(outputContent`Verifying that the user has a Partner organization`), !await hasPartnerAccount(partnersToken, userId2) && (outputInfo(`
3468
3629
  A Shopify Partners organization is needed to proceed.`), outputInfo("\u{1F449} Press any key to create one"), await keypress(), await openURL(`https://${await partnersFqdn()}/signup`), outputInfo(outputContent`👉 Press any key when you have ${outputToken.cyan("created the organization")}`), outputWarn(outputContent`Make sure you've confirmed your Shopify and the Partner organization from the email`), await keypress(), !await hasPartnerAccount(partnersToken, userId2))))
3469
3630
  throw new AbortError("Couldn't find your Shopify Partners organization", "Have you confirmed your accounts from the emails you received?");
3470
3631
  }
@@ -3620,9 +3781,6 @@ export {
3620
3781
  partnersRequest,
3621
3782
  partnersRequestDoc,
3622
3783
  handleDeprecations,
3623
- getEnvironmentVariables,
3624
- getPartnersToken,
3625
- getBackendPort,
3626
3784
  getLastSeenUserIdAfterAuth,
3627
3785
  setLastSeenUserIdAfterAuth,
3628
3786
  setLastSeenAuthMethod,
@@ -3631,4 +3789,4 @@ export {
3631
3789
  getEnvironmentData,
3632
3790
  getSensitiveEnvironmentData
3633
3791
  };
3634
- //# sourceMappingURL=chunk-5OP2SA7G.js.map
3792
+ //# sourceMappingURL=chunk-2S2TOSUR.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  base_command_default
3
- } from "./chunk-335KXO4I.js";
3
+ } from "./chunk-DN4PETPW.js";
4
4
  import {
5
5
  require_lib
6
- } from "./chunk-CBD6UXLA.js";
6
+ } from "./chunk-OJOHMVV7.js";
7
7
  import {
8
8
  __toESM,
9
9
  init_cjs_shims
@@ -43,4 +43,4 @@ var HelpCommand = class _HelpCommand extends base_command_default {
43
43
  export {
44
44
  HelpCommand
45
45
  };
46
- //# sourceMappingURL=chunk-I3IIDOBX.js.map
46
+ //# sourceMappingURL=chunk-2ULUZCOJ.js.map
@@ -1,7 +1,41 @@
1
1
  import {
2
+ __commonJS,
3
+ __require,
4
+ __toESM,
2
5
  init_cjs_shims
3
6
  } from "./chunk-POZ5MGPT.js";
4
7
 
8
+ // ../../node_modules/.pnpm/commondir@1.0.1/node_modules/commondir/index.js
9
+ var require_commondir = __commonJS({
10
+ "../../node_modules/.pnpm/commondir@1.0.1/node_modules/commondir/index.js"(exports, module) {
11
+ init_cjs_shims();
12
+ var path2 = __require("path");
13
+ module.exports = function(basedir, relfiles) {
14
+ if (relfiles)
15
+ var files = relfiles.map(function(r) {
16
+ return path2.resolve(basedir, r);
17
+ });
18
+ else
19
+ var files = basedir;
20
+ var res = files.slice(1).reduce(function(ps, file) {
21
+ if (!file.match(/^([A-Za-z]:)?\/|\\/))
22
+ throw new Error("relative path without a basedir");
23
+ for (var xs = file.split(/\/+|\\+/), i = 0; ps[i] === xs[i] && i < Math.min(ps.length, xs.length); i++)
24
+ ;
25
+ return ps.slice(0, i);
26
+ }, files[0].split(/\/+|\\+/));
27
+ return res.length > 1 ? res.join("/") : "/";
28
+ };
29
+ }
30
+ });
31
+
32
+ // ../cli-kit/dist/public/node/path.js
33
+ init_cjs_shims();
34
+ var import_commondir = __toESM(require_commondir());
35
+
36
+ // ../../node_modules/.pnpm/pathe@1.1.1/node_modules/pathe/dist/index.mjs
37
+ init_cjs_shims();
38
+
5
39
  // ../../node_modules/.pnpm/pathe@1.1.1/node_modules/pathe/dist/shared/pathe.92c04245.mjs
6
40
  init_cjs_shims();
7
41
  function normalizeWindowsPath(input = "") {
@@ -89,17 +123,72 @@ var basename = function(p, extension) {
89
123
  return extension && lastSegment.endsWith(extension) ? lastSegment.slice(0, -extension.length) : lastSegment;
90
124
  };
91
125
 
92
- // ../../node_modules/.pnpm/pathe@1.1.1/node_modules/pathe/dist/index.mjs
93
- init_cjs_shims();
126
+ // ../cli-kit/dist/public/node/path.js
127
+ import { fileURLToPath } from "url";
128
+ function joinPath(...paths) {
129
+ return join(...paths);
130
+ }
131
+ function normalizePath(path2) {
132
+ return normalize(path2);
133
+ }
134
+ function resolvePath(...paths) {
135
+ return resolve(...paths);
136
+ }
137
+ function relativePath(from, to) {
138
+ return relative(from, to);
139
+ }
140
+ function isAbsolutePath(path2) {
141
+ return isAbsolute(path2);
142
+ }
143
+ function dirname2(path2) {
144
+ return dirname(path2);
145
+ }
146
+ function basename2(path2, ext) {
147
+ return basename(path2, ext);
148
+ }
149
+ function extname2(path2) {
150
+ return extname(path2);
151
+ }
152
+ function relativizePath(path2, dir = cwd2()) {
153
+ let result = (0, import_commondir.default)([path2, dir]), relativePath2 = relative(dir, path2), relativeComponents = relativePath2.split("/").filter((component) => component === "..").length;
154
+ return result === "/" || relativePath2 === "" || relativeComponents > 2 ? path2 : relativePath2;
155
+ }
156
+ function isSubpath(mainPath, subpath) {
157
+ let relativePath2 = relative(mainPath, subpath);
158
+ return !relativePath2.startsWith("..") && !isAbsolutePath(relativePath2);
159
+ }
160
+ function moduleDirectory(moduleURL) {
161
+ return dirname2(fileURLToPath(moduleURL));
162
+ }
163
+ function cwd2() {
164
+ return normalize(process.env.INIT_CWD ? process.env.INIT_CWD : process.cwd());
165
+ }
166
+ function sniffForPath(argv = process.argv) {
167
+ let pathFlagIndex = argv.indexOf("--path");
168
+ if (pathFlagIndex === -1)
169
+ return argv.find((arg) => arg.startsWith("--path="))?.split("=")[1];
170
+ let pathFlag = argv[pathFlagIndex + 1];
171
+ if (!(!pathFlag || pathFlag.startsWith("-")))
172
+ return pathFlag;
173
+ }
174
+ function sniffForJson(argv = process.argv) {
175
+ return argv.includes("--json") || argv.includes("-j");
176
+ }
94
177
 
95
178
  export {
96
- normalize,
97
- join,
98
- resolve,
99
- isAbsolute,
100
- extname,
101
- relative,
102
- dirname,
103
- basename
179
+ joinPath,
180
+ normalizePath,
181
+ resolvePath,
182
+ relativePath,
183
+ isAbsolutePath,
184
+ dirname2 as dirname,
185
+ basename2 as basename,
186
+ extname2 as extname,
187
+ relativizePath,
188
+ isSubpath,
189
+ moduleDirectory,
190
+ cwd2 as cwd,
191
+ sniffForPath,
192
+ sniffForJson
104
193
  };
105
- //# sourceMappingURL=chunk-PNN7RS7Y.js.map
194
+ //# sourceMappingURL=chunk-3NSN5Z4N.js.map
@@ -2,16 +2,16 @@ import {
2
2
  getEnvironmentData,
3
3
  getLastSeenUserIdAfterAuth,
4
4
  getSensitiveEnvironmentData
5
- } from "./chunk-5OP2SA7G.js";
5
+ } from "./chunk-2S2TOSUR.js";
6
6
  import {
7
7
  fetch
8
- } from "./chunk-GDYKHT64.js";
9
- import {
10
- runWithRateLimit
11
- } from "./chunk-FDJVVEGH.js";
8
+ } from "./chunk-L5QY66M5.js";
12
9
  import {
13
10
  CLI_KIT_VERSION
14
- } from "./chunk-43YGIE7Y.js";
11
+ } from "./chunk-NGHX3OJ3.js";
12
+ import {
13
+ runWithRateLimit
14
+ } from "./chunk-WQY4NQRT.js";
15
15
  import {
16
16
  alwaysLogAnalytics,
17
17
  alwaysLogMetrics,
@@ -26,11 +26,9 @@ import {
26
26
  opentelemetryDomain,
27
27
  outputContent,
28
28
  outputDebug,
29
- outputToken
30
- } from "./chunk-PJKCWDDX.js";
31
- import {
29
+ outputToken,
32
30
  reportingRateLimit
33
- } from "./chunk-XEDHKQZA.js";
31
+ } from "./chunk-TM56R4RM.js";
34
32
  import {
35
33
  __commonJS,
36
34
  __require,
@@ -15772,4 +15770,4 @@ export {
15772
15770
  getListOfTunnelPlugins,
15773
15771
  reportAnalyticsEvent
15774
15772
  };
15775
- //# sourceMappingURL=chunk-AT4IG4GJ.js.map
15773
+ //# sourceMappingURL=chunk-4BWP64T3.js.map
@@ -2,7 +2,7 @@ import {
2
2
  execa,
3
3
  outputContent,
4
4
  outputDebug
5
- } from "./chunk-PJKCWDDX.js";
5
+ } from "./chunk-TM56R4RM.js";
6
6
  import {
7
7
  init_cjs_shims
8
8
  } from "./chunk-POZ5MGPT.js";
@@ -60,4 +60,4 @@ export {
60
60
  username,
61
61
  platformAndArch
62
62
  };
63
- //# sourceMappingURL=chunk-SYRHCENA.js.map
63
+ //# sourceMappingURL=chunk-4FXGYSQK.js.map