@shopify/cli-hydrogen 3.0.19 → 3.0.22

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/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @shopify/cli-hydrogen
2
2
 
3
+ ## 3.0.22
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [7f32e9ac]
8
+ - Updated dependencies [7f32e9ac]
9
+ - @shopify/cli-kit@3.0.22
10
+
11
+ ## 3.0.21
12
+
13
+ ### Patch Changes
14
+
15
+ - @shopify/cli-kit@3.0.21
16
+
17
+ ## 3.0.20
18
+
19
+ ### Patch Changes
20
+
21
+ - e0964b48: Remove storeDomain validation from `shopify hydrogen info`.
22
+ - Updated dependencies [5d422ea9]
23
+ - @shopify/cli-kit@3.0.20
24
+
3
25
  ## 3.0.19
4
26
 
5
27
  ### Patch Changes
@@ -48,11 +48,6 @@ class AppInfo {
48
48
  ...privateFields
49
49
  ];
50
50
  const storefrontInfo = this.configurationCheck(fields, this.app.configuration.shopify);
51
- if (!this.app.configuration.shopify?.storeDomain.endsWith(".myshopify.com")) {
52
- const error = "StoreDomain must be a valid shopify domain";
53
- errors.push(error);
54
- this.app.errors?.addError("storeDomain", error);
55
- }
56
51
  let errorContent = `
57
52
  ${errors.map(this.formattedError).join("\n")}`;
58
53
  if (errorContent.trim() === "")
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sources":["../../../src/cli/services/info.ts","../../../src/cli/commands/hydrogen/info.ts"],"sourcesContent":["import {HydrogenApp} from '../models/hydrogen'\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport {HydrogenConfig} from '@shopify/hydrogen/config'\nimport {output, string, os} from '@shopify/cli-kit'\n\ninterface InfoOptions {\n showPrivateData: boolean\n}\n\nexport function info(app: HydrogenApp, {showPrivateData}: InfoOptions): output.Message {\n const appInfo = new HydrogenAppInfo(app)\n\n return appInfo.output({showPrivateData})\n}\n\nconst NOT_FOUND_TEXT = output.content`${output.token.italic('Not found')}`.value\nconst NOT_CONFIGURED_TEXT = output.content`${output.token.italic('Not yet configured')}`.value\n\nclass AppInfo {\n private app: HydrogenApp\n constructor(app: HydrogenApp) {\n this.app = app\n }\n\n output({showPrivateData}: InfoOptions): string {\n const sections: [string, string][] = [\n this.projectSettingsSection(),\n this.storefrontSettingsSection({showPrivateData}),\n this.eslintSection(),\n this.systemInfoSection(),\n ]\n return sections.map((sectionContents: [string, string]) => this.section(...sectionContents)).join('\\n\\n')\n }\n\n projectSettingsSection(): [string, string] {\n const title = 'Your Project'\n\n const lines = [\n ['Name', this.app.name],\n ['Project location', this.app.directory],\n ['Language', this.app.language],\n ]\n\n const projectInfo = this.linesToColumns(lines)\n return [title, projectInfo]\n }\n\n storefrontSettingsSection({showPrivateData}: InfoOptions): [string, string] {\n const errors: string[] = []\n const title = 'Storefront'\n\n if (this.app.configuration.shopify && typeof this.app.configuration.shopify === 'function') {\n return [title, 'Storefront settings defined as a function are not supported in this command.']\n }\n\n const privateFields = showPrivateData ? ['storefrontToken'] : []\n\n const fields = [\n 'storeDomain',\n 'storefrontApiVersion',\n ...privateFields,\n ] as unknown as keyof HydrogenConfig['shopify'][]\n\n const storefrontInfo = this.configurationCheck(fields, this.app.configuration.shopify)\n\n if (!this.app.configuration.shopify?.storeDomain.endsWith('.myshopify.com')) {\n const error = 'StoreDomain must be a valid shopify domain'\n\n errors.push(error)\n this.app.errors?.addError('storeDomain', error)\n }\n\n let errorContent = `\\n${errors.map(this.formattedError).join('\\n')}`\n\n if (errorContent.trim() === '') errorContent = ''\n\n return [title, `${this.linesToColumns(storefrontInfo)}${errorContent}`]\n }\n\n eslintSection(): [string, string] {\n const errors: string[] = []\n const title = 'ESLint'\n const dependencyResults = this.dependencyCheck(['eslint', 'eslint-plugin-hydrogen'])\n\n let errorContent = `\\n${errors.map(this.formattedError).join('\\n')}`\n\n if (errorContent.trim() === '') errorContent = ''\n\n return [title, `${this.linesToColumns(dependencyResults)}${errorContent}`]\n }\n\n configurationCheck(\n key: keyof HydrogenConfig | keyof HydrogenConfig[],\n configObject: HydrogenConfig | HydrogenConfig['shopify'] = this.app.configuration,\n ): string[][] {\n const keys = Array.isArray(key) ? key : [key]\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const result = keys.reduce((acc, key) => {\n const found = configObject[key as keyof HydrogenConfig & keyof HydrogenConfig['shopify']]\n\n if (typeof found === 'string') {\n const result = [string.capitalize(key.toString()), found]\n return [...acc, result]\n }\n\n const result = [key, NOT_CONFIGURED_TEXT]\n return [...acc, result]\n }, [])\n\n return result\n }\n\n dependencyCheck(dependency: string | string[]): string[][] {\n const dependencies = Array.isArray(dependency) ? dependency : [dependency]\n\n const result = dependencies.reduce<string[][]>((acc, dependency) => {\n const found = this.app.nodeDependencies[dependency]\n if (found) {\n const result = [dependency, found]\n return [...acc, result]\n }\n\n const result = [dependency, NOT_FOUND_TEXT]\n return [...acc, result]\n }, [])\n\n return result\n }\n\n formattedError(str: string): string {\n const [errorFirstLine, ...errorRemainingLines] = str.split('\\n')\n const errorLines = [`! ${errorFirstLine}`, ...errorRemainingLines.map((line) => ` ${line}`)]\n return output.content`${output.token.errorText(errorLines.join('\\n'))}`.value\n }\n\n systemInfoSection(): [string, string] {\n const title = 'Tooling and System'\n const {platform, arch} = os.platformAndArch()\n const dependencyResults = this.dependencyCheck(['eslint', 'eslint-plugin-hydrogen'])\n\n const lines: string[][] = [\n ...this.dependencyCheck(['@shopify/hydrogen', '@shopify/cli-hydrogen', '@shopify/cli']),\n ['Package manager', this.app.dependencyManager],\n ['OS', `${platform}-${arch}`],\n ['Shell', process.env.SHELL || 'unknown'],\n ['Node.js version', process.version],\n ]\n\n return [title, this.linesToColumns(lines)]\n }\n\n linesToColumns(lines: string[][]): string {\n const widths: number[] = []\n for (let i = 0; lines[0] && i < lines[0].length; i++) {\n const columnRows = lines.map((line) => line[i])\n widths.push(Math.max(...columnRows.map((row) => output.unstyled(row).length)))\n }\n const paddedLines = lines\n .map((line) => {\n return line\n .map((col, index) => {\n return `${col}${' '.repeat(widths[index] - output.unstyled(col).length)}`\n })\n .join(' ')\n .trimEnd()\n })\n .join('\\n')\n return paddedLines\n }\n\n section(title: string, body: string): string {\n const formattedTitle = `${title.toUpperCase()}${' '.repeat(35 - title.length)}`\n return output.content`${output.token.heading(formattedTitle)}\\n${body}`.value\n }\n}\n\nclass HydrogenAppInfo extends AppInfo {}\n","import {info} from '../../services/info'\nimport {load as loadApp, HydrogenApp} from '../../models/hydrogen'\nimport {hydrogenFlags} from '../../flags'\nimport {Command, Flags} from '@oclif/core'\nimport {output, path, cli} from '@shopify/cli-kit'\n\nexport default class Info extends Command {\n static description = 'Print basic information about your hydrogen app'\n\n static flags = {\n ...cli.globalFlags,\n ...hydrogenFlags,\n showToken: Flags.boolean({\n hidden: false,\n description: 'Show storefront API token',\n default: false,\n env: 'SHOPIFY_HYDROGEN_FLAG_SHOW_TOKEN',\n }),\n }\n\n public async run(): Promise<void> {\n const {flags} = await this.parse(Info)\n const directory = flags.path ? path.resolve(flags.path) : process.cwd()\n const app: HydrogenApp = await loadApp(directory)\n\n output.info(info(app, {showPrivateData: flags.showToken}))\n if (app.errors) process.exit(2)\n }\n}\n"],"names":["loadApp"],"mappings":"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"}
1
+ {"version":3,"file":"info.js","sources":["../../../src/cli/services/info.ts","../../../src/cli/commands/hydrogen/info.ts"],"sourcesContent":["import {HydrogenApp} from '../models/hydrogen'\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport {HydrogenConfig} from '@shopify/hydrogen/config'\nimport {output, string, os} from '@shopify/cli-kit'\n\ninterface InfoOptions {\n showPrivateData: boolean\n}\n\nexport function info(app: HydrogenApp, {showPrivateData}: InfoOptions): output.Message {\n const appInfo = new HydrogenAppInfo(app)\n\n return appInfo.output({showPrivateData})\n}\n\nconst NOT_FOUND_TEXT = output.content`${output.token.italic('Not found')}`.value\nconst NOT_CONFIGURED_TEXT = output.content`${output.token.italic('Not yet configured')}`.value\n\nclass AppInfo {\n private app: HydrogenApp\n constructor(app: HydrogenApp) {\n this.app = app\n }\n\n output({showPrivateData}: InfoOptions): string {\n const sections: [string, string][] = [\n this.projectSettingsSection(),\n this.storefrontSettingsSection({showPrivateData}),\n this.eslintSection(),\n this.systemInfoSection(),\n ]\n return sections.map((sectionContents: [string, string]) => this.section(...sectionContents)).join('\\n\\n')\n }\n\n projectSettingsSection(): [string, string] {\n const title = 'Your Project'\n\n const lines = [\n ['Name', this.app.name],\n ['Project location', this.app.directory],\n ['Language', this.app.language],\n ]\n\n const projectInfo = this.linesToColumns(lines)\n return [title, projectInfo]\n }\n\n storefrontSettingsSection({showPrivateData}: InfoOptions): [string, string] {\n const errors: string[] = []\n const title = 'Storefront'\n\n if (this.app.configuration.shopify && typeof this.app.configuration.shopify === 'function') {\n return [title, 'Storefront settings defined as a function are not supported in this command.']\n }\n\n const privateFields = showPrivateData ? ['storefrontToken'] : []\n\n const fields = [\n 'storeDomain',\n 'storefrontApiVersion',\n ...privateFields,\n ] as unknown as keyof HydrogenConfig['shopify'][]\n\n const storefrontInfo = this.configurationCheck(fields, this.app.configuration.shopify)\n\n let errorContent = `\\n${errors.map(this.formattedError).join('\\n')}`\n\n if (errorContent.trim() === '') errorContent = ''\n\n return [title, `${this.linesToColumns(storefrontInfo)}${errorContent}`]\n }\n\n eslintSection(): [string, string] {\n const errors: string[] = []\n const title = 'ESLint'\n const dependencyResults = this.dependencyCheck(['eslint', 'eslint-plugin-hydrogen'])\n\n let errorContent = `\\n${errors.map(this.formattedError).join('\\n')}`\n\n if (errorContent.trim() === '') errorContent = ''\n\n return [title, `${this.linesToColumns(dependencyResults)}${errorContent}`]\n }\n\n configurationCheck(\n key: keyof HydrogenConfig | keyof HydrogenConfig[],\n configObject: HydrogenConfig | HydrogenConfig['shopify'] = this.app.configuration,\n ): string[][] {\n const keys = Array.isArray(key) ? key : [key]\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const result = keys.reduce((acc, key) => {\n const found = configObject[key as keyof HydrogenConfig & keyof HydrogenConfig['shopify']]\n\n if (typeof found === 'string') {\n const result = [string.capitalize(key.toString()), found]\n return [...acc, result]\n }\n\n const result = [key, NOT_CONFIGURED_TEXT]\n return [...acc, result]\n }, [])\n\n return result\n }\n\n dependencyCheck(dependency: string | string[]): string[][] {\n const dependencies = Array.isArray(dependency) ? dependency : [dependency]\n\n const result = dependencies.reduce<string[][]>((acc, dependency) => {\n const found = this.app.nodeDependencies[dependency]\n if (found) {\n const result = [dependency, found]\n return [...acc, result]\n }\n\n const result = [dependency, NOT_FOUND_TEXT]\n return [...acc, result]\n }, [])\n\n return result\n }\n\n formattedError(str: string): string {\n const [errorFirstLine, ...errorRemainingLines] = str.split('\\n')\n const errorLines = [`! ${errorFirstLine}`, ...errorRemainingLines.map((line) => ` ${line}`)]\n return output.content`${output.token.errorText(errorLines.join('\\n'))}`.value\n }\n\n systemInfoSection(): [string, string] {\n const title = 'Tooling and System'\n const {platform, arch} = os.platformAndArch()\n const dependencyResults = this.dependencyCheck(['eslint', 'eslint-plugin-hydrogen'])\n\n const lines: string[][] = [\n ...this.dependencyCheck(['@shopify/hydrogen', '@shopify/cli-hydrogen', '@shopify/cli']),\n ['Package manager', this.app.dependencyManager],\n ['OS', `${platform}-${arch}`],\n ['Shell', process.env.SHELL || 'unknown'],\n ['Node.js version', process.version],\n ]\n\n return [title, this.linesToColumns(lines)]\n }\n\n linesToColumns(lines: string[][]): string {\n const widths: number[] = []\n for (let i = 0; lines[0] && i < lines[0].length; i++) {\n const columnRows = lines.map((line) => line[i])\n widths.push(Math.max(...columnRows.map((row) => output.unstyled(row).length)))\n }\n const paddedLines = lines\n .map((line) => {\n return line\n .map((col, index) => {\n return `${col}${' '.repeat(widths[index] - output.unstyled(col).length)}`\n })\n .join(' ')\n .trimEnd()\n })\n .join('\\n')\n return paddedLines\n }\n\n section(title: string, body: string): string {\n const formattedTitle = `${title.toUpperCase()}${' '.repeat(35 - title.length)}`\n return output.content`${output.token.heading(formattedTitle)}\\n${body}`.value\n }\n}\n\nclass HydrogenAppInfo extends AppInfo {}\n","import {info} from '../../services/info'\nimport {load as loadApp, HydrogenApp} from '../../models/hydrogen'\nimport {hydrogenFlags} from '../../flags'\nimport {Command, Flags} from '@oclif/core'\nimport {output, path, cli} from '@shopify/cli-kit'\n\nexport default class Info extends Command {\n static description = 'Print basic information about your hydrogen app'\n\n static flags = {\n ...cli.globalFlags,\n ...hydrogenFlags,\n showToken: Flags.boolean({\n hidden: false,\n description: 'Show storefront API token',\n default: false,\n env: 'SHOPIFY_HYDROGEN_FLAG_SHOW_TOKEN',\n }),\n }\n\n public async run(): Promise<void> {\n const {flags} = await this.parse(Info)\n const directory = flags.path ? path.resolve(flags.path) : process.cwd()\n const app: HydrogenApp = await loadApp(directory)\n\n output.info(info(app, {showPrivateData: flags.showToken}))\n if (app.errors) process.exit(2)\n }\n}\n"],"names":["loadApp"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shopify/cli-hydrogen",
3
- "version": "3.0.19",
3
+ "version": "3.0.22",
4
4
  "private": false,
5
5
  "description": "Commands for building Hydrogen storefronts",
6
6
  "type": "module",
@@ -39,10 +39,10 @@
39
39
  "@types/prettier": "^2.6.3",
40
40
  "prettier": "^2.6.1",
41
41
  "vite": "^2.9.9",
42
- "@shopify/cli-kit": "^3.0.19"
42
+ "@shopify/cli-kit": "^3.0.22"
43
43
  },
44
44
  "devDependencies": {
45
- "@shopify/cli-testing": "3.0.19",
45
+ "@shopify/cli-testing": "3.0.22",
46
46
  "@shopify/prettier-config": "^1.1.2",
47
47
  "@types/fs-extra": "^9.0.12",
48
48
  "fast-glob": "^3.2.11",