@shopify/cli-hydrogen 4.0.8 → 4.0.9

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.
package/README.md CHANGED
@@ -3,3 +3,12 @@
3
3
  The Hydrogen extension for the [Shopify CLI](https://shopify.dev/apps/tools/cli). Hydrogen is a set of tools, utilities, and best-in-class examples for building a commerce application with [Remix](https://wwww.remix.run).
4
4
 
5
5
  [Check out the docs](https://shopify.dev/custom-storefronts/hydrogen)
6
+
7
+ ## Contributing
8
+
9
+ The most common way to test the cli changes locally is to do the following:
10
+
11
+ - Run `npm run build` in this directory (`packages/cli` from the root of the repo).
12
+ - Run `npx shopify hydrogen` anywhere else in the monorepo, for example `npx shopify hydrogen init`.
13
+ - If you want to test a command inside of a template, run the command from within that template or use the `--path` flag to point to another template or any Hydrogen app.
14
+ - If you want to make changes to a file that is generated when running `npx shopify hydrogen generate`, make changes to that file from inside of the `templates/skeleton` directory.
@@ -7,6 +7,9 @@ declare class Build extends Command {
7
7
  path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined>;
8
8
  sourcemap: _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
9
9
  "disable-route-warning": _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
10
+ base: _oclif_core_lib_interfaces_parser_js.OptionFlag<unknown>;
11
+ entry: _oclif_core_lib_interfaces_parser_js.OptionFlag<unknown>;
12
+ target: _oclif_core_lib_interfaces_parser_js.OptionFlag<unknown>;
10
13
  };
11
14
  run(): Promise<void>;
12
15
  }
@@ -2,7 +2,7 @@ import path from 'path';
2
2
  import { file, output } from '@shopify/cli-kit';
3
3
  import colors from '@shopify/cli-kit/node/colors';
4
4
  import { getProjectPaths, getRemixConfig } from '../../utils/config.js';
5
- import { commonFlags, flagsToCamelObject } from '../../utils/flags.js';
5
+ import { commonFlags, deprecated, flagsToCamelObject } from '../../utils/flags.js';
6
6
  import Command from '@shopify/cli-kit/node/base-command';
7
7
  import Flags from '@oclif/core/lib/flags.js';
8
8
  import { checkLockfileStatus } from '../../utils/check-lockfile.js';
@@ -22,7 +22,10 @@ class Build extends Command {
22
22
  ["disable-route-warning"]: Flags.boolean({
23
23
  description: "Disable warning about missing standard routes.",
24
24
  env: "SHOPIFY_HYDROGEN_FLAG_DISABLE_ROUTE_WARNING"
25
- })
25
+ }),
26
+ base: deprecated("--base")(),
27
+ entry: deprecated("--entry")(),
28
+ target: deprecated("--target")()
26
29
  };
27
30
  async run() {
28
31
  const { flags } = await this.parse(Build);
@@ -7,6 +7,7 @@ declare class Dev extends Command {
7
7
  path: _oclif_core_lib_interfaces_parser_js.OptionFlag<string | undefined>;
8
8
  port: _oclif_core_lib_interfaces_parser_js.OptionFlag<number>;
9
9
  "disable-virtual-routes": _oclif_core_lib_interfaces_parser_js.BooleanFlag<boolean>;
10
+ host: _oclif_core_lib_interfaces_parser_js.OptionFlag<unknown>;
10
11
  };
11
12
  run(): Promise<void>;
12
13
  }
@@ -4,7 +4,7 @@ import { output, file } from '@shopify/cli-kit';
4
4
  import { copyPublicFiles } from './build.js';
5
5
  import { getProjectPaths, getRemixConfig } from '../../utils/config.js';
6
6
  import { muteDevLogs } from '../../utils/log.js';
7
- import { commonFlags, flagsToCamelObject } from '../../utils/flags.js';
7
+ import { commonFlags, deprecated, flagsToCamelObject } from '../../utils/flags.js';
8
8
  import Command from '@shopify/cli-kit/node/base-command';
9
9
  import Flags from '@oclif/core/lib/flags.js';
10
10
  import { startMiniOxygen } from '../../utils/mini-oxygen.js';
@@ -23,7 +23,8 @@ class Dev extends Command {
23
23
  description: "Disable rendering fallback routes when a route file doesn't exist",
24
24
  env: "SHOPIFY_HYDROGEN_FLAG_DISABLE_VIRTUAL_ROUTES",
25
25
  default: false
26
- })
26
+ }),
27
+ host: deprecated("--host")()
27
28
  };
28
29
  async run() {
29
30
  const { flags } = await this.parse(Dev);
@@ -3,7 +3,7 @@ import { packageManagerUsedForCreating, installNodeModules } from '@shopify/cli-
3
3
  import { renderFatalError } from '@shopify/cli-kit/node/ui';
4
4
  import Flags from '@oclif/core/lib/flags.js';
5
5
  import { output, path } from '@shopify/cli-kit';
6
- import { commonFlags, parseProcessFlags } from '../../utils/flags.js';
6
+ import { commonFlags, flagsToCamelObject, parseProcessFlags } from '../../utils/flags.js';
7
7
  import { transpileProject } from '../../utils/transpile-ts.js';
8
8
  import { getLatestTemplates } from '../../utils/template-downloader.js';
9
9
  import { checkHydrogenVersion } from '../../utils/check-version.js';
@@ -32,13 +32,13 @@ class Init extends Command {
32
32
  }),
33
33
  "install-deps": Flags.boolean({
34
34
  description: "Auto install dependencies using the active package manager",
35
- env: "SHOPIFY_HYDROGEN_INSTALL_DEPS",
35
+ env: "SHOPIFY_HYDROGEN_FLAG_INSTALL_DEPS",
36
36
  allowNo: true
37
37
  })
38
38
  };
39
39
  async run() {
40
40
  const { flags } = await this.parse(Init);
41
- await runInit({ ...flags });
41
+ await runInit(flagsToCamelObject(flags));
42
42
  }
43
43
  }
44
44
  async function runInit(options = parseProcessFlags(process.argv, FLAG_MAP)) {
@@ -0,0 +1,79 @@
1
+ import { describe, beforeEach, vi, it, expect } from 'vitest';
2
+ import { temporaryDirectoryTask } from 'tempy';
3
+ import { runInit } from './init.js';
4
+ import { ui } from '@shopify/cli-kit';
5
+ import { installNodeModules } from '@shopify/cli-kit/node/node-package-manager';
6
+
7
+ describe("init", () => {
8
+ beforeEach(() => {
9
+ vi.resetAllMocks();
10
+ vi.mock("@shopify/cli-kit");
11
+ vi.mock("../../utils/transpile-ts.js");
12
+ vi.mock("../../utils/template-downloader.js", async () => ({
13
+ getLatestTemplates: () => Promise.resolve({})
14
+ }));
15
+ vi.mock("@shopify/cli-kit/node/node-package-manager");
16
+ vi.mocked(ui.prompt).mockImplementation(
17
+ () => Promise.resolve({ installDeps: "false" })
18
+ );
19
+ });
20
+ const defaultOptions = (stubs) => ({
21
+ template: "hello-world",
22
+ language: "js",
23
+ path: "path/to/project",
24
+ ...stubs
25
+ });
26
+ describe.each([
27
+ { flag: "template", value: "hello-world" },
28
+ { flag: "installDeps", value: true },
29
+ { flag: "language", value: "ts" },
30
+ { flag: "path", value: "./my-app" }
31
+ ])("flag $flag", ({ flag, value }) => {
32
+ it(`does not prompt the user for ${flag} when a value is passed in options`, async () => {
33
+ await temporaryDirectoryTask(async (tmpDir) => {
34
+ const options = defaultOptions({
35
+ path: tmpDir,
36
+ [flag]: value
37
+ });
38
+ await runInit(options);
39
+ expect(ui.prompt).not.toHaveBeenCalledWith(
40
+ expect.arrayContaining([
41
+ expect.objectContaining({
42
+ name: flag
43
+ })
44
+ ])
45
+ );
46
+ });
47
+ });
48
+ it(`prompts the user for ${flag} when no value is passed in options`, async () => {
49
+ await temporaryDirectoryTask(async (tmpDir) => {
50
+ const options = defaultOptions({
51
+ path: tmpDir,
52
+ [flag]: void 0
53
+ });
54
+ await runInit(options);
55
+ expect(ui.prompt).toHaveBeenCalledWith(
56
+ expect.arrayContaining([
57
+ expect.objectContaining({
58
+ name: flag
59
+ })
60
+ ])
61
+ );
62
+ });
63
+ });
64
+ });
65
+ it("installs dependencies when installDeps is true", async () => {
66
+ await temporaryDirectoryTask(async (tmpDir) => {
67
+ const options = defaultOptions({ installDeps: true, path: tmpDir });
68
+ await runInit(options);
69
+ expect(installNodeModules).toHaveBeenCalled();
70
+ });
71
+ });
72
+ it("does not install dependencies when installDeps is false", async () => {
73
+ await temporaryDirectoryTask(async (tmpDir) => {
74
+ const options = defaultOptions({ installDeps: false, path: tmpDir });
75
+ await runInit(options);
76
+ expect(installNodeModules).not.toHaveBeenCalled();
77
+ });
78
+ });
79
+ });
@@ -29,7 +29,7 @@ export async function loader({request, context: {storefront}}: LoaderArgs) {
29
29
  const data = await storefront.query<SitemapQueryData>(SITEMAP_QUERY, {
30
30
  variables: {
31
31
  urlLimits: MAX_URLS,
32
- language: storefront.i18n?.language,
32
+ language: storefront.i18n.language,
33
33
  },
34
34
  });
35
35
 
@@ -50,6 +50,10 @@ export async function loader({request, context: {storefront}}: LoaderArgs) {
50
50
  );
51
51
  }
52
52
 
53
+ function xmlEncode(string: string) {
54
+ return string.replace(/[&<>'"]/g, (char) => `&#${char.charCodeAt(0)};`);
55
+ }
56
+
53
57
  function shopSitemap({
54
58
  data,
55
59
  baseUrl,
@@ -60,25 +64,25 @@ function shopSitemap({
60
64
  const productsData = flattenConnection(data.products)
61
65
  .filter((product) => product.onlineStoreUrl)
62
66
  .map((product) => {
63
- const url = `${baseUrl}/products/${product.handle}`;
67
+ const url = `${baseUrl}/products/${xmlEncode(product.handle)}`;
64
68
 
65
69
  const finalObject: ProductEntry = {
66
70
  url,
67
- lastMod: product.updatedAt!,
71
+ lastMod: product.updatedAt,
68
72
  changeFreq: 'daily',
69
73
  };
70
74
 
71
75
  if (product.featuredImage?.url) {
72
76
  finalObject.image = {
73
- url: product.featuredImage!.url,
77
+ url: xmlEncode(product.featuredImage.url),
74
78
  };
75
79
 
76
80
  if (product.title) {
77
- finalObject.image.title = product.title;
81
+ finalObject.image.title = xmlEncode(product.title);
78
82
  }
79
83
 
80
- if (product.featuredImage!.altText) {
81
- finalObject.image.caption = product.featuredImage!.altText;
84
+ if (product.featuredImage.altText) {
85
+ finalObject.image.caption = xmlEncode(product.featuredImage.altText);
82
86
  }
83
87
  }
84
88
 
@@ -116,7 +120,7 @@ function shopSitemap({
116
120
  xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
117
121
  xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
118
122
  >
119
- ${urlsDatas.map((url) => renderUrlTag(url!)).join('')}
123
+ ${urlsDatas.map((url) => renderUrlTag(url)).join('')}
120
124
  </urlset>`;
121
125
  }
122
126
 
@@ -104,7 +104,7 @@ async function getRemixConfig(root, mode = process.env.NODE_ENV) {
104
104
  config.watchPaths ??= [];
105
105
  config.watchPaths.push(
106
106
  ...(await fs.readdir(packagesPath)).map(
107
- (pkg) => path.resolve(packagesPath, pkg, "dist", "development", "index.js")
107
+ (pkg) => pkg === "hydrogen-react" ? path.resolve(packagesPath, pkg, "dist", "browser-dev", "index.mjs") : path.resolve(packagesPath, pkg, "dist", "development", "index.js")
108
108
  )
109
109
  );
110
110
  config.watchPaths.push(
@@ -14,5 +14,11 @@ declare function flagsToCamelObject(obj: Record<string, any>): any;
14
14
  * output: { force: true, installDeps: false, language: 'js' }
15
15
  */
16
16
  declare function parseProcessFlags(processArgv: string[], flagMap?: Record<string, string>): any;
17
+ /**
18
+ * Create a deprecated flag to prevent the CLI from crashing when a deprecated flag is used.
19
+ * Displays an info message when the flag is used.
20
+ * @param name The name of the flag.
21
+ */
22
+ declare function deprecated(name: string): _oclif_core_lib_interfaces_parser_js.Definition<unknown, Record<string, unknown>>;
17
23
 
18
- export { commonFlags, flagsToCamelObject, parseProcessFlags };
24
+ export { commonFlags, deprecated, flagsToCamelObject, parseProcessFlags };
@@ -1,5 +1,7 @@
1
1
  import Flags from '@oclif/core/lib/flags.js';
2
2
  import { string } from '@shopify/cli-kit';
3
+ import { renderInfo } from '@shopify/cli-kit/node/ui';
4
+ import colors from '@shopify/cli-kit/node/colors';
3
5
 
4
6
  const commonFlags = {
5
7
  path: Flags.string({
@@ -41,5 +43,18 @@ function parseProcessFlags(processArgv, flagMap = {}) {
41
43
  }
42
44
  return flagsToCamelObject(options);
43
45
  }
46
+ function deprecated(name) {
47
+ return Flags.custom({
48
+ parse: () => {
49
+ renderInfo({
50
+ headline: `The ${colors.bold(
51
+ name
52
+ )} flag is deprecated and will be removed in a future version of Shopify CLI.`
53
+ });
54
+ return Promise.resolve(" ");
55
+ },
56
+ hidden: true
57
+ });
58
+ }
44
59
 
45
- export { commonFlags, flagsToCamelObject, parseProcessFlags };
60
+ export { commonFlags, deprecated, flagsToCamelObject, parseProcessFlags };
@@ -12,7 +12,7 @@ const REQUIRED_ROUTES = [
12
12
  "pages/:pageHandle",
13
13
  "policies/:policyHandle",
14
14
  "search",
15
- "discounts/:discountCode",
15
+ "discount/:discountCode",
16
16
  "account",
17
17
  "account/login",
18
18
  "account/register",
@@ -1 +1 @@
1
- {"version":"4.0.8","commands":{"hydrogen:build":{"id":"hydrogen:build","description":"Builds a Hydrogen storefront for production.","strict":true,"pluginName":"@shopify/cli-hydrogen","pluginAlias":"@shopify/cli-hydrogen","pluginType":"core","aliases":[],"flags":{"path":{"name":"path","type":"option","description":"The path to the directory of the Hydrogen storefront. The default is the current directory.","multiple":false},"sourcemap":{"name":"sourcemap","type":"boolean","description":"Generate sourcemaps for the build.","allowNo":false},"disable-route-warning":{"name":"disable-route-warning","type":"boolean","description":"Disable warning about missing standard routes.","allowNo":false}},"args":[]},"hydrogen:check":{"id":"hydrogen:check","description":"Returns diagnostic information about a Hydrogen storefront.","strict":true,"pluginName":"@shopify/cli-hydrogen","pluginAlias":"@shopify/cli-hydrogen","pluginType":"core","aliases":[],"flags":{"path":{"name":"path","type":"option","description":"The path to the directory of the Hydrogen storefront. The default is the current directory.","multiple":false}},"args":[{"name":"resource","description":"The resource to check. Currently only 'routes' is supported.","required":true,"options":["routes"]}]},"hydrogen:dev":{"id":"hydrogen:dev","description":"Runs Hydrogen storefront in an Oxygen worker for development.","strict":true,"pluginName":"@shopify/cli-hydrogen","pluginAlias":"@shopify/cli-hydrogen","pluginType":"core","aliases":[],"flags":{"path":{"name":"path","type":"option","description":"The path to the directory of the Hydrogen storefront. The default is the current directory.","multiple":false},"port":{"name":"port","type":"option","description":"Port to run the server on.","multiple":false,"default":3000},"disable-virtual-routes":{"name":"disable-virtual-routes","type":"boolean","description":"Disable rendering fallback routes when a route file doesn't exist","allowNo":false}},"args":[]},"hydrogen:init":{"id":"hydrogen:init","description":"Creates a new Hydrogen storefront.","strict":true,"pluginName":"@shopify/cli-hydrogen","pluginAlias":"@shopify/cli-hydrogen","pluginType":"core","aliases":[],"flags":{"force":{"name":"force","type":"boolean","char":"f","description":"Overwrite the destination directory and files if they already exist.","allowNo":false},"path":{"name":"path","type":"option","description":"The path to the directory of the new Hydrogen storefront.","multiple":false},"language":{"name":"language","type":"option","description":"Sets the template language to use. One of `js` or `ts`.","multiple":false},"template":{"name":"template","type":"option","description":"Sets the template to use. One of `demo-store` or `hello-world`.","multiple":false},"install-deps":{"name":"install-deps","type":"boolean","description":"Auto install dependencies using the active package manager","allowNo":true}},"args":[]},"hydrogen:preview":{"id":"hydrogen:preview","description":"Runs a Hydrogen storefront in an Oxygen worker for production.","strict":true,"pluginName":"@shopify/cli-hydrogen","pluginAlias":"@shopify/cli-hydrogen","pluginType":"core","aliases":[],"flags":{"path":{"name":"path","type":"option","description":"The path to the directory of the Hydrogen storefront. The default is the current directory.","multiple":false},"port":{"name":"port","type":"option","description":"Port to run the server on.","multiple":false,"default":3000}},"args":[]},"hydrogen:generate:route":{"id":"hydrogen:generate:route","description":"Generates a standard Shopify route.","strict":true,"pluginName":"@shopify/cli-hydrogen","pluginAlias":"@shopify/cli-hydrogen","pluginType":"core","aliases":[],"flags":{"adapter":{"name":"adapter","type":"option","description":"Remix adapter used in the route. The default is `@shopify/remix-oxygen`.","multiple":false},"typescript":{"name":"typescript","type":"boolean","description":"Generate TypeScript files","allowNo":false},"force":{"name":"force","type":"boolean","char":"f","description":"Overwrite the destination directory and files if they already exist.","allowNo":false},"path":{"name":"path","type":"option","description":"The path to the directory of the Hydrogen storefront. The default is the current directory.","multiple":false}},"args":[{"name":"route","description":"The route to generate. One of home,page,cart,products,collections,policies,robots,sitemap,account,all.","required":true,"options":["home","page","cart","products","collections","policies","robots","sitemap","account","all"]}]},"hydrogen:generate:routes":{"id":"hydrogen:generate:routes","description":"Generates all supported standard shopify routes.","strict":true,"pluginName":"@shopify/cli-hydrogen","pluginAlias":"@shopify/cli-hydrogen","pluginType":"core","aliases":[],"flags":{"adapter":{"name":"adapter","type":"option","description":"Remix adapter used in the route. The default is `@shopify/remix-oxygen`.","multiple":false},"typescript":{"name":"typescript","type":"boolean","description":"Generate TypeScript files","allowNo":false},"force":{"name":"force","type":"boolean","char":"f","description":"Overwrite the destination directory and files if they already exist.","allowNo":false},"path":{"name":"path","type":"option","description":"The path to the directory of the Hydrogen storefront. The default is the current directory.","multiple":false}},"args":[]}}}
1
+ {"version":"4.0.9","commands":{"hydrogen:build":{"id":"hydrogen:build","description":"Builds a Hydrogen storefront for production.","strict":true,"pluginName":"@shopify/cli-hydrogen","pluginAlias":"@shopify/cli-hydrogen","pluginType":"core","aliases":[],"flags":{"path":{"name":"path","type":"option","description":"The path to the directory of the Hydrogen storefront. The default is the current directory.","multiple":false},"sourcemap":{"name":"sourcemap","type":"boolean","description":"Generate sourcemaps for the build.","allowNo":false},"disable-route-warning":{"name":"disable-route-warning","type":"boolean","description":"Disable warning about missing standard routes.","allowNo":false},"base":{"name":"base","type":"option","hidden":true,"multiple":false},"entry":{"name":"entry","type":"option","hidden":true,"multiple":false},"target":{"name":"target","type":"option","hidden":true,"multiple":false}},"args":[]},"hydrogen:check":{"id":"hydrogen:check","description":"Returns diagnostic information about a Hydrogen storefront.","strict":true,"pluginName":"@shopify/cli-hydrogen","pluginAlias":"@shopify/cli-hydrogen","pluginType":"core","aliases":[],"flags":{"path":{"name":"path","type":"option","description":"The path to the directory of the Hydrogen storefront. The default is the current directory.","multiple":false}},"args":[{"name":"resource","description":"The resource to check. Currently only 'routes' is supported.","required":true,"options":["routes"]}]},"hydrogen:dev":{"id":"hydrogen:dev","description":"Runs Hydrogen storefront in an Oxygen worker for development.","strict":true,"pluginName":"@shopify/cli-hydrogen","pluginAlias":"@shopify/cli-hydrogen","pluginType":"core","aliases":[],"flags":{"path":{"name":"path","type":"option","description":"The path to the directory of the Hydrogen storefront. The default is the current directory.","multiple":false},"port":{"name":"port","type":"option","description":"Port to run the server on.","multiple":false,"default":3000},"disable-virtual-routes":{"name":"disable-virtual-routes","type":"boolean","description":"Disable rendering fallback routes when a route file doesn't exist","allowNo":false},"host":{"name":"host","type":"option","hidden":true,"multiple":false}},"args":[]},"hydrogen:init":{"id":"hydrogen:init","description":"Creates a new Hydrogen storefront.","strict":true,"pluginName":"@shopify/cli-hydrogen","pluginAlias":"@shopify/cli-hydrogen","pluginType":"core","aliases":[],"flags":{"force":{"name":"force","type":"boolean","char":"f","description":"Overwrite the destination directory and files if they already exist.","allowNo":false},"path":{"name":"path","type":"option","description":"The path to the directory of the new Hydrogen storefront.","multiple":false},"language":{"name":"language","type":"option","description":"Sets the template language to use. One of `js` or `ts`.","multiple":false},"template":{"name":"template","type":"option","description":"Sets the template to use. One of `demo-store` or `hello-world`.","multiple":false},"install-deps":{"name":"install-deps","type":"boolean","description":"Auto install dependencies using the active package manager","allowNo":true}},"args":[]},"hydrogen:preview":{"id":"hydrogen:preview","description":"Runs a Hydrogen storefront in an Oxygen worker for production.","strict":true,"pluginName":"@shopify/cli-hydrogen","pluginAlias":"@shopify/cli-hydrogen","pluginType":"core","aliases":[],"flags":{"path":{"name":"path","type":"option","description":"The path to the directory of the Hydrogen storefront. The default is the current directory.","multiple":false},"port":{"name":"port","type":"option","description":"Port to run the server on.","multiple":false,"default":3000}},"args":[]},"hydrogen:generate:route":{"id":"hydrogen:generate:route","description":"Generates a standard Shopify route.","strict":true,"pluginName":"@shopify/cli-hydrogen","pluginAlias":"@shopify/cli-hydrogen","pluginType":"core","aliases":[],"flags":{"adapter":{"name":"adapter","type":"option","description":"Remix adapter used in the route. The default is `@shopify/remix-oxygen`.","multiple":false},"typescript":{"name":"typescript","type":"boolean","description":"Generate TypeScript files","allowNo":false},"force":{"name":"force","type":"boolean","char":"f","description":"Overwrite the destination directory and files if they already exist.","allowNo":false},"path":{"name":"path","type":"option","description":"The path to the directory of the Hydrogen storefront. The default is the current directory.","multiple":false}},"args":[{"name":"route","description":"The route to generate. One of home,page,cart,products,collections,policies,robots,sitemap,account,all.","required":true,"options":["home","page","cart","products","collections","policies","robots","sitemap","account","all"]}]},"hydrogen:generate:routes":{"id":"hydrogen:generate:routes","description":"Generates all supported standard shopify routes.","strict":true,"pluginName":"@shopify/cli-hydrogen","pluginAlias":"@shopify/cli-hydrogen","pluginType":"core","aliases":[],"flags":{"adapter":{"name":"adapter","type":"option","description":"Remix adapter used in the route. The default is `@shopify/remix-oxygen`.","multiple":false},"typescript":{"name":"typescript","type":"boolean","description":"Generate TypeScript files","allowNo":false},"force":{"name":"force","type":"boolean","char":"f","description":"Overwrite the destination directory and files if they already exist.","allowNo":false},"path":{"name":"path","type":"option","description":"The path to the directory of the Hydrogen storefront. The default is the current directory.","multiple":false}},"args":[]}}}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public",
5
5
  "@shopify:registry": "https://registry.npmjs.org"
6
6
  },
7
- "version": "4.0.8",
7
+ "version": "4.0.9",
8
8
  "license": "SEE LICENSE IN LICENSE.md",
9
9
  "type": "module",
10
10
  "scripts": {
@@ -26,13 +26,13 @@
26
26
  "tempy": "^3.0.0"
27
27
  },
28
28
  "peerDependencies": {
29
- "@remix-run/react": "^1.12.0",
30
- "@shopify/hydrogen-react": "^2023.1.5",
31
- "@shopify/remix-oxygen": "^1.0.3"
29
+ "@remix-run/react": "^1.14.0",
30
+ "@shopify/hydrogen-react": "^2023.1.7",
31
+ "@shopify/remix-oxygen": "^1.0.4"
32
32
  },
33
33
  "dependencies": {
34
34
  "@oclif/core": "^1.20.4",
35
- "@remix-run/dev": "^1.12.0",
35
+ "@remix-run/dev": "^1.14.0",
36
36
  "@shopify/cli-kit": "3.29.0",
37
37
  "@shopify/mini-oxygen": "^1.3.1",
38
38
  "fast-glob": "^3.2.12",