@shopify/cli-hydrogen 2.0.1 → 2.0.2
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 +8 -0
- package/dist/{Command-4e1093c6.js → Command-a46acef0.js} +253 -37
- package/dist/Command-a46acef0.js.map +1 -0
- package/dist/commands/hydrogen/build.js +2 -1
- package/dist/commands/hydrogen/build.js.map +1 -1
- package/dist/commands/hydrogen/check.js +3 -2
- package/dist/commands/hydrogen/check.js.map +1 -1
- package/dist/commands/hydrogen/dev.js +2 -1
- package/dist/commands/hydrogen/dev.js.map +1 -1
- package/dist/commands/hydrogen/init.js +14 -7
- package/dist/commands/hydrogen/init.js.map +1 -1
- package/dist/commands/hydrogen/preview.js +2 -1
- package/dist/commands/hydrogen/preview.js.map +1 -1
- package/package.json +9 -9
- package/dist/Command-4e1093c6.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { build as build$1 } from 'vite';
|
|
2
|
-
import { ui, path } from '@shopify/cli-kit';
|
|
2
|
+
import { ui, cli, path } from '@shopify/cli-kit';
|
|
3
3
|
import { Flags, Command } from '@oclif/core';
|
|
4
4
|
|
|
5
5
|
async function build({ directory, targets, base }) {
|
|
@@ -45,6 +45,7 @@ const _Build = class extends Command {
|
|
|
45
45
|
let Build = _Build;
|
|
46
46
|
Build.description = "Builds a Hydrogen storefront for production";
|
|
47
47
|
Build.flags = {
|
|
48
|
+
...cli.globalFlags,
|
|
48
49
|
path: Flags.string({
|
|
49
50
|
hidden: true,
|
|
50
51
|
description: "the path to your hydrogen storefront",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sources":["../../../src/cli/services/build.ts","../../../src/cli/commands/hydrogen/build.ts"],"sourcesContent":["import {build as viteBuild} from 'vite'\nimport {ui} from '@shopify/cli-kit'\n\ntype Target = 'node' | 'client' | 'worker'\n\ninterface DevOptions {\n directory: string\n targets: {[key in Target]: boolean | string}\n base?: string\n}\n\nasync function build({directory, targets, base}: DevOptions) {\n const commonConfig = {base, root: directory}\n\n const tasks: ui.ListrTask[] = Object.entries(targets)\n .filter(([_, value]) => value)\n .map(([key, value]) => {\n return {\n title: `Building ${key} code`,\n task: async (_, task) => {\n process.env.WORKER = key === 'worker' ? 'true' : undefined\n await viteBuild({\n ...commonConfig,\n build: {\n outDir: `dist/${key}`,\n ssr: typeof value === 'string' ? value : undefined,\n manifest: key === 'client',\n },\n })\n\n task.title = `Built ${key} code`\n },\n }\n })\n\n const list = new ui.Listr(tasks)\n\n await list.run()\n}\n\nexport default build\n","import buildService from '../../services/build'\nimport {Command, Flags} from '@oclif/core'\nimport {path} from '@shopify/cli-kit'\n\nconst PLATFORM_ENTRIES = {\n node: `@shopify/hydrogen/platforms/node`,\n worker: `@shopify/hydrogen/platforms/worker`,\n}\n\nexport default class Build extends Command {\n static description = 'Builds a Hydrogen storefront for production'\n static flags = {\n path: Flags.string({\n hidden: true,\n description: 'the path to your hydrogen storefront',\n env: 'SHOPIFY_FLAG_PATH',\n }),\n base: Flags.string({\n description: ' the public path when served in production',\n env: 'SHOPIFY_FLAG_BUILD_BASE',\n }),\n client: Flags.boolean({\n description: 'build the client code',\n env: 'SHOPIFY_FLAG_BUILD_CLIENT',\n allowNo: true,\n default: true,\n }),\n target: Flags.string({\n char: 't',\n description: 'the target platform to build for (worker or node)',\n options: ['node', 'worker'],\n default: 'worker',\n env: 'SHOPIFY_FLAG_BUILD_TARGET',\n }),\n entry: Flags.string({\n description: 'produce Server Side Rendering (SSR) build for node environments',\n env: 'SHOPIFY_FLAG_BUILD_SSR_ENTRY',\n }),\n }\n\n async run(): Promise<void> {\n const {flags} = await this.parse(Build)\n const directory = flags.path ? path.resolve(flags.path) : process.cwd()\n\n const entry = flags.entry || PLATFORM_ENTRIES[flags.target as 'node' | 'worker']\n\n const targets = {\n client: flags.client,\n worker: flags.target === 'worker' ? entry : false,\n node: flags.target === 'node' ? entry : false,\n }\n\n await buildService({...flags, directory, targets})\n }\n}\n"],"names":["viteBuild","buildService"],"mappings":";;;;AAWA,eAAqB,KAAA,CAAA,EAAC,SAAW,EAAA,OAAA,EAAS,IAAmB,EAAA,EAAA;AAC3D,EAAA,MAAM,YAAe,GAAA,EAAC,IAAM,EAAA,IAAA,EAAM,SAAS,EAAA,CAAA;AAE3C,EAAA,MAAM,QAAwB,MAAO,CAAA,OAAA,CAAQ,OAAO,CAAA,CACjD,OAAO,CAAC,CAAC,CAAG,EAAA,KAAA,CAAA,KAAW,KAAK,CAC5B,CAAA,GAAA,CAAI,CAAC,CAAC,KAAK,KAAW,CAAA,KAAA;AACrB,IAAO,OAAA;AAAA,MACL,OAAO,CAAY,SAAA,EAAA,GAAA,CAAA,KAAA,CAAA;AAAA,MACnB,IAAA,EAAM,OAAO,CAAA,EAAG,IAAS,KAAA;AACvB,QAAA,OAAA,CAAQ,GAAI,CAAA,MAAA,GAAS,GAAQ,KAAA,QAAA,GAAW,MAAS,GAAA,KAAA,CAAA,CAAA;AACjD,QAAA,MAAMA,OAAU,CAAA;AAAA,UACX,GAAA,YAAA;AAAA,UACH,KAAO,EAAA;AAAA,YACL,QAAQ,CAAQ,KAAA,EAAA,GAAA,CAAA,CAAA;AAAA,YAChB,GAAK,EAAA,OAAO,KAAU,KAAA,QAAA,GAAW,KAAQ,GAAA,KAAA,CAAA;AAAA,YACzC,UAAU,GAAQ,KAAA,QAAA;AAAA,WACpB;AAAA,SACD,CAAA,CAAA;AAED,QAAA,IAAA,CAAK,QAAQ,CAAS,MAAA,EAAA,GAAA,CAAA,KAAA,CAAA,CAAA;AAAA,OACxB;AAAA,KACF,CAAA;AAAA,GACD,CAAA,CAAA;AAEH,EAAA,MAAM,IAAO,GAAA,IAAI,EAAG,CAAA,KAAA,CAAM,KAAK,CAAA,CAAA;AAE/B,EAAA,MAAM,KAAK,GAAI,EAAA,CAAA;AACjB;;AClCA,MAAM,gBAAmB,GAAA;AAAA,EACvB,IAAM,EAAA,CAAA,gCAAA,CAAA;AAAA,EACN,MAAQ,EAAA,CAAA,kCAAA,CAAA;AACV,CAAA,CAAA;AAEA,MAAA,MAAA,GAAA,cAAmC,OAAQ,CAAA;AAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"build.js","sources":["../../../src/cli/services/build.ts","../../../src/cli/commands/hydrogen/build.ts"],"sourcesContent":["import {build as viteBuild} from 'vite'\nimport {ui} from '@shopify/cli-kit'\n\ntype Target = 'node' | 'client' | 'worker'\n\ninterface DevOptions {\n directory: string\n targets: {[key in Target]: boolean | string}\n base?: string\n}\n\nasync function build({directory, targets, base}: DevOptions) {\n const commonConfig = {base, root: directory}\n\n const tasks: ui.ListrTask[] = Object.entries(targets)\n .filter(([_, value]) => value)\n .map(([key, value]) => {\n return {\n title: `Building ${key} code`,\n task: async (_, task) => {\n process.env.WORKER = key === 'worker' ? 'true' : undefined\n await viteBuild({\n ...commonConfig,\n build: {\n outDir: `dist/${key}`,\n ssr: typeof value === 'string' ? value : undefined,\n manifest: key === 'client',\n },\n })\n\n task.title = `Built ${key} code`\n },\n }\n })\n\n const list = new ui.Listr(tasks)\n\n await list.run()\n}\n\nexport default build\n","import buildService from '../../services/build'\nimport {Command, Flags} from '@oclif/core'\nimport {path, cli} from '@shopify/cli-kit'\n\nconst PLATFORM_ENTRIES = {\n node: `@shopify/hydrogen/platforms/node`,\n worker: `@shopify/hydrogen/platforms/worker`,\n}\n\nexport default class Build extends Command {\n static description = 'Builds a Hydrogen storefront for production'\n static flags = {\n ...cli.globalFlags,\n path: Flags.string({\n hidden: true,\n description: 'the path to your hydrogen storefront',\n env: 'SHOPIFY_FLAG_PATH',\n }),\n base: Flags.string({\n description: ' the public path when served in production',\n env: 'SHOPIFY_FLAG_BUILD_BASE',\n }),\n client: Flags.boolean({\n description: 'build the client code',\n env: 'SHOPIFY_FLAG_BUILD_CLIENT',\n allowNo: true,\n default: true,\n }),\n target: Flags.string({\n char: 't',\n description: 'the target platform to build for (worker or node)',\n options: ['node', 'worker'],\n default: 'worker',\n env: 'SHOPIFY_FLAG_BUILD_TARGET',\n }),\n entry: Flags.string({\n description: 'produce Server Side Rendering (SSR) build for node environments',\n env: 'SHOPIFY_FLAG_BUILD_SSR_ENTRY',\n }),\n }\n\n async run(): Promise<void> {\n const {flags} = await this.parse(Build)\n const directory = flags.path ? path.resolve(flags.path) : process.cwd()\n\n const entry = flags.entry || PLATFORM_ENTRIES[flags.target as 'node' | 'worker']\n\n const targets = {\n client: flags.client,\n worker: flags.target === 'worker' ? entry : false,\n node: flags.target === 'node' ? entry : false,\n }\n\n await buildService({...flags, directory, targets})\n }\n}\n"],"names":["viteBuild","buildService"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { s as semver, c as cliHydrogenPackageJson, C as Command, H as HelpfulError, a as source } from '../../Command-
|
|
1
|
+
import { s as semver, c as cliHydrogenPackageJson, C as Command, H as HelpfulError, a as source } from '../../Command-a46acef0.js';
|
|
2
2
|
import 'prettier';
|
|
3
|
-
import { output } from '@shopify/cli-kit';
|
|
3
|
+
import { cli, output } from '@shopify/cli-kit';
|
|
4
4
|
import 'fs';
|
|
5
5
|
import 'constants';
|
|
6
6
|
import 'stream';
|
|
@@ -120,6 +120,7 @@ class Check extends Command {
|
|
|
120
120
|
Check.description = "Check a hydrogen app for common problems.";
|
|
121
121
|
Check.examples = [`$ shopify hydrogen check`];
|
|
122
122
|
Check.flags = {
|
|
123
|
+
...cli.globalFlags,
|
|
123
124
|
...Command.flags
|
|
124
125
|
};
|
|
125
126
|
Check.args = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sources":["../../../src/cli/commands/hydrogen/add/hydrogen/hydrogen.ts","../../../src/cli/commands/hydrogen/check/rules/hydrogen/checkHydrogenVersion.ts","../../../src/cli/commands/hydrogen/check/rules/node/checkNodeVersion.ts","../../../src/cli/commands/hydrogen/add/eslint/eslint.ts","../../../src/cli/commands/hydrogen/check/rules/eslint/checkEslintConfig.ts","../../../src/cli/commands/hydrogen/check.ts"],"sourcesContent":["import Command from '../../../../core/Command'\n\nexport async function addHydrogen(this: Command) {\n this.package.install('@shopify/hydrogen')\n}\n","import {CheckResult} from '../../../../../types'\nimport addHydrogen from '../../../add/hydrogen'\nimport Command from '../../../../../core/Command'\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport hydrogenPkg from '../../../../../../../package.json'\nimport semver from 'semver'\n\nexport const HYDROGEN_MIN_VERSION = hydrogenPkg.version\n\nexport async function checkHydrogenVersion(this: Command): Promise<CheckResult[]> {\n const h2Version = await this.package.hasDependency('@shopify/hydrogen')\n const normalizedVersion = h2Version ? semver.coerce(h2Version)?.version : `@shopify/hydrogen not installed`\n const latestHydrogen =\n typeof h2Version === 'string' &&\n typeof normalizedVersion === 'string' &&\n semver.gte(normalizedVersion, HYDROGEN_MIN_VERSION)\n\n const success = h2Version === 'latest' || latestHydrogen\n\n const description = `Has latest hydrogen version (latest: ${HYDROGEN_MIN_VERSION} / found ${normalizedVersion})`\n\n return [\n {\n id: 'hydrogen-latest',\n type: 'Dependencies',\n description,\n success,\n fix: addHydrogen,\n },\n ]\n}\n","import {CheckResult} from '../../../../../types'\nimport Command from '../../../../../core/Command'\nimport semver from 'semver'\n\nconst NODE_MIN_VERSION = '>=12.0.0'\n\nexport async function checkNodeVersion(this: Command): Promise<CheckResult[]> {\n const nodeVersion = await this.package.nodeVersion()\n const normalizedVersion = semver.coerce(nodeVersion)?.version\n\n return [\n {\n id: 'node-version',\n type: 'Dependencies',\n description: 'Has min node version',\n success:\n !nodeVersion || (normalizedVersion !== undefined && semver.satisfies(normalizedVersion, NODE_MIN_VERSION)),\n link: 'https://shopify.dev/custom-storefronts/hydrogen/support',\n },\n ]\n}\n","import Command from '../../../../core/Command'\n\nexport async function addEslint(this: Command) {\n const {fs} = this\n\n await fs.write('.eslintrc.js', (await import('./templates/eslintrc-js')).default())\n this.package.install('eslint', {dev: true, version: '^7.31.0'})\n this.package.install('eslint-plugin-hydrogen', {\n dev: true,\n version: '^0.6.2',\n })\n}\n","import {CheckResult} from '../../../../../types'\nimport addEslint from '../../../add/eslint'\nimport Command from '../../../../../core/Command'\n\nexport async function checkEslintConfig(this: Command): Promise<CheckResult[]> {\n const eslintConfig = await this.workspace.loadConfig<{extends: string[]}>('eslint')\n\n const hasEslintConfig = Boolean(eslintConfig)\n\n const hasHydrogenConfig =\n hasEslintConfig &&\n Boolean(eslintConfig.config.extends?.filter((extended: string) => extended.includes('plugin:hydrogen')).length)\n\n const hasHydrogenEslintPackage = Boolean(await this.package.hasDependency('eslint-plugin-hydrogen'))\n\n return [\n {\n id: 'eslint-config',\n type: 'Setup',\n description: 'Has eslint config',\n success: hasEslintConfig,\n link: 'https://shopify.dev/custom-storefronts/hydrogen/lint',\n fix: addEslint,\n },\n {\n id: 'eslint-config-hydrogen',\n type: 'Setup',\n description: 'Has hydrogen eslint config',\n success: hasHydrogenConfig && hasHydrogenEslintPackage,\n link: 'https://shopify.dev/custom-storefronts/hydrogen/lint',\n fix: addEslint,\n },\n ]\n}\n","// import type {Env} from 'types';\nimport {checkHydrogenVersion, checkEslintConfig, checkNodeVersion} from './check/rules'\nimport {HelpfulError} from '../../utilities'\n\nimport {CheckResult} from '../../types'\nimport Command from '../../core/Command'\nimport chalk from 'chalk'\nimport {output} from '@shopify/cli-kit'\n\nexport default class Check extends Command {\n static description = 'Check a hydrogen app for common problems.'\n\n static examples = [`$ shopify hydrogen check`]\n\n static flags = {\n ...Command.flags,\n }\n\n static args = []\n\n async run(): Promise<void> {\n this.interface.say('Running checks...')\n\n let results\n\n try {\n results = [\n ...(await checkNodeVersion.call(this)),\n ...(await checkHydrogenVersion.call(this)),\n ...(await checkEslintConfig.call(this)),\n ]\n } catch (error) {\n throw new HelpfulError({title: 'Error running checks'})\n }\n\n displayCheckResults.call(this, results)\n\n const failedChecks = results.filter(({success}) => !success)\n\n if (failedChecks.length) {\n this.interface.say(\n `${chalk.red.bold(`• ${failedChecks.length} errors `)}${chalk.dim(`found in ${results.length} checks`)}`,\n )\n } else {\n this.interface.say(`${chalk.green.bold(`• No errors `)}${chalk.dim(`found in ${results.length} checks`)}`)\n }\n\n await fixChecks.call(this, results)\n output.newline()\n }\n}\n\nfunction displayCheckResults(this: Command, allCheckResults: CheckResult[]) {\n const indent = ' '\n const checksBySection = allCheckResults.reduce((acc, {type, ...rest}) => {\n if (!acc[type]) {\n acc[type] = []\n }\n acc[type].push({type, ...rest})\n return acc\n }, {} as {[key: string]: CheckResult[]})\n\n ;[...Object.entries(checksBySection)].forEach(([section, sectionResults]) => {\n const allChecksStatusEmoji = statusEmoji(sectionResults.every(({success}) => success))\n\n output.newline()\n this.interface.say(`${allChecksStatusEmoji} ${chalk.cyan.bold.underline(section)}`)\n output.newline()\n\n sectionResults.forEach(({description, link, success, fix, id}) => {\n const docsLink = link ? chalk.dim(`${indent}${link}\\n`) : ''\n const idText = id ? chalk.dim(id) : ''\n const fixedText = success ? '' : statusFixable(fix)\n const lines = [[statusEmoji(success), description, idText, fixedText].join(' '), docsLink]\n\n this.interface.say(lines.join('\\n'))\n })\n })\n output.newline()\n}\n\nasync function fixChecks(this: Command, results: CheckResult[]) {\n let changedFiles = new Map()\n\n const allFixableResults: CheckResult[] = results.filter(\n ({fix, success}) => !success && fix !== undefined && typeof fix === 'function',\n )\n\n if (allFixableResults.length === 0) {\n this.interface.say(`No fixable checks`)\n\n return\n }\n\n output.newline()\n output.newline()\n await this.interface.say(`${allFixableResults.length} failed checks might be automatically fixable.`)\n output.newline()\n const wantsFix = await this.interface.ask(\n `Do you want to apply automatic fixes to ${allFixableResults.length} failed checks?`,\n {boolean: true, name: 'fix', default: false},\n )\n\n if (!wantsFix) {\n return\n }\n\n for await (const {description, files} of runFixers(allFixableResults as Required<CheckResult>[], {\n fs: this.fs,\n package: this.package,\n interface: this.interface,\n })) {\n this.interface.say([statusEmoji(true), description, chalk.green('fixed')].join(' '))\n\n changedFiles = new Map([...changedFiles, ...files])\n }\n\n const cleanUpPromises = Array.from(changedFiles).map(async ([path, content]) => {\n const action = (await this.fs.hasFile(path)) ? chalk.red(`{red overwrote`) : chalk.green(`{green wrote}`)\n\n await this.fs.write(path, content)\n\n this.interface.say(`${action}${stripPath(path)}`)\n })\n\n await Promise.all(cleanUpPromises)\n}\n\nasync function* runFixers(allFixableResults: Required<CheckResult>[], context: any) {\n for (const {fix, description} of allFixableResults) {\n try {\n // eslint-disable-next-line no-await-in-loop\n await fix(context)\n } finally {\n yield {description, files: []}\n }\n }\n}\n\nfunction statusEmoji(success: boolean) {\n return success ? '✓' : `✕`\n}\n\nfunction statusFixable(fix: CheckResult['fix']) {\n return typeof fix === 'function' ? chalk.cyan(` (fixable) `) : ' '\n}\n\nfunction stripPath(path: string) {\n return path.replace(`${process.cwd()}`, '')\n}\n"],"names":["hydrogenPkg","chalk"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"check.js","sources":["../../../src/cli/commands/hydrogen/add/hydrogen/hydrogen.ts","../../../src/cli/commands/hydrogen/check/rules/hydrogen/checkHydrogenVersion.ts","../../../src/cli/commands/hydrogen/check/rules/node/checkNodeVersion.ts","../../../src/cli/commands/hydrogen/add/eslint/eslint.ts","../../../src/cli/commands/hydrogen/check/rules/eslint/checkEslintConfig.ts","../../../src/cli/commands/hydrogen/check.ts"],"sourcesContent":["import Command from '../../../../core/Command'\n\nexport async function addHydrogen(this: Command) {\n this.package.install('@shopify/hydrogen')\n}\n","import {CheckResult} from '../../../../../types'\nimport addHydrogen from '../../../add/hydrogen'\nimport Command from '../../../../../core/Command'\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport hydrogenPkg from '../../../../../../../package.json'\nimport semver from 'semver'\n\nexport const HYDROGEN_MIN_VERSION = hydrogenPkg.version\n\nexport async function checkHydrogenVersion(this: Command): Promise<CheckResult[]> {\n const h2Version = await this.package.hasDependency('@shopify/hydrogen')\n const normalizedVersion = h2Version ? semver.coerce(h2Version)?.version : `@shopify/hydrogen not installed`\n const latestHydrogen =\n typeof h2Version === 'string' &&\n typeof normalizedVersion === 'string' &&\n semver.gte(normalizedVersion, HYDROGEN_MIN_VERSION)\n\n const success = h2Version === 'latest' || latestHydrogen\n\n const description = `Has latest hydrogen version (latest: ${HYDROGEN_MIN_VERSION} / found ${normalizedVersion})`\n\n return [\n {\n id: 'hydrogen-latest',\n type: 'Dependencies',\n description,\n success,\n fix: addHydrogen,\n },\n ]\n}\n","import {CheckResult} from '../../../../../types'\nimport Command from '../../../../../core/Command'\nimport semver from 'semver'\n\nconst NODE_MIN_VERSION = '>=12.0.0'\n\nexport async function checkNodeVersion(this: Command): Promise<CheckResult[]> {\n const nodeVersion = await this.package.nodeVersion()\n const normalizedVersion = semver.coerce(nodeVersion)?.version\n\n return [\n {\n id: 'node-version',\n type: 'Dependencies',\n description: 'Has min node version',\n success:\n !nodeVersion || (normalizedVersion !== undefined && semver.satisfies(normalizedVersion, NODE_MIN_VERSION)),\n link: 'https://shopify.dev/custom-storefronts/hydrogen/support',\n },\n ]\n}\n","import Command from '../../../../core/Command'\n\nexport async function addEslint(this: Command) {\n const {fs} = this\n\n await fs.write('.eslintrc.js', (await import('./templates/eslintrc-js')).default())\n this.package.install('eslint', {dev: true, version: '^7.31.0'})\n this.package.install('eslint-plugin-hydrogen', {\n dev: true,\n version: '^0.6.2',\n })\n}\n","import {CheckResult} from '../../../../../types'\nimport addEslint from '../../../add/eslint'\nimport Command from '../../../../../core/Command'\n\nexport async function checkEslintConfig(this: Command): Promise<CheckResult[]> {\n const eslintConfig = await this.workspace.loadConfig<{extends: string[]}>('eslint')\n\n const hasEslintConfig = Boolean(eslintConfig)\n\n const hasHydrogenConfig =\n hasEslintConfig &&\n Boolean(eslintConfig.config.extends?.filter((extended: string) => extended.includes('plugin:hydrogen')).length)\n\n const hasHydrogenEslintPackage = Boolean(await this.package.hasDependency('eslint-plugin-hydrogen'))\n\n return [\n {\n id: 'eslint-config',\n type: 'Setup',\n description: 'Has eslint config',\n success: hasEslintConfig,\n link: 'https://shopify.dev/custom-storefronts/hydrogen/lint',\n fix: addEslint,\n },\n {\n id: 'eslint-config-hydrogen',\n type: 'Setup',\n description: 'Has hydrogen eslint config',\n success: hasHydrogenConfig && hasHydrogenEslintPackage,\n link: 'https://shopify.dev/custom-storefronts/hydrogen/lint',\n fix: addEslint,\n },\n ]\n}\n","// import type {Env} from 'types';\nimport {checkHydrogenVersion, checkEslintConfig, checkNodeVersion} from './check/rules'\nimport {HelpfulError} from '../../utilities'\n\nimport {CheckResult} from '../../types'\nimport Command from '../../core/Command'\nimport chalk from 'chalk'\nimport {output, cli} from '@shopify/cli-kit'\n\nexport default class Check extends Command {\n static description = 'Check a hydrogen app for common problems.'\n\n static examples = [`$ shopify hydrogen check`]\n\n static flags = {\n ...cli.globalFlags,\n ...Command.flags,\n }\n\n static args = []\n\n async run(): Promise<void> {\n this.interface.say('Running checks...')\n\n let results\n\n try {\n results = [\n ...(await checkNodeVersion.call(this)),\n ...(await checkHydrogenVersion.call(this)),\n ...(await checkEslintConfig.call(this)),\n ]\n } catch (error) {\n throw new HelpfulError({title: 'Error running checks'})\n }\n\n displayCheckResults.call(this, results)\n\n const failedChecks = results.filter(({success}) => !success)\n\n if (failedChecks.length) {\n this.interface.say(\n `${chalk.red.bold(`• ${failedChecks.length} errors `)}${chalk.dim(`found in ${results.length} checks`)}`,\n )\n } else {\n this.interface.say(`${chalk.green.bold(`• No errors `)}${chalk.dim(`found in ${results.length} checks`)}`)\n }\n\n await fixChecks.call(this, results)\n output.newline()\n }\n}\n\nfunction displayCheckResults(this: Command, allCheckResults: CheckResult[]) {\n const indent = ' '\n const checksBySection = allCheckResults.reduce((acc, {type, ...rest}) => {\n if (!acc[type]) {\n acc[type] = []\n }\n acc[type].push({type, ...rest})\n return acc\n }, {} as {[key: string]: CheckResult[]})\n\n ;[...Object.entries(checksBySection)].forEach(([section, sectionResults]) => {\n const allChecksStatusEmoji = statusEmoji(sectionResults.every(({success}) => success))\n\n output.newline()\n this.interface.say(`${allChecksStatusEmoji} ${chalk.cyan.bold.underline(section)}`)\n output.newline()\n\n sectionResults.forEach(({description, link, success, fix, id}) => {\n const docsLink = link ? chalk.dim(`${indent}${link}\\n`) : ''\n const idText = id ? chalk.dim(id) : ''\n const fixedText = success ? '' : statusFixable(fix)\n const lines = [[statusEmoji(success), description, idText, fixedText].join(' '), docsLink]\n\n this.interface.say(lines.join('\\n'))\n })\n })\n output.newline()\n}\n\nasync function fixChecks(this: Command, results: CheckResult[]) {\n let changedFiles = new Map()\n\n const allFixableResults: CheckResult[] = results.filter(\n ({fix, success}) => !success && fix !== undefined && typeof fix === 'function',\n )\n\n if (allFixableResults.length === 0) {\n this.interface.say(`No fixable checks`)\n\n return\n }\n\n output.newline()\n output.newline()\n await this.interface.say(`${allFixableResults.length} failed checks might be automatically fixable.`)\n output.newline()\n const wantsFix = await this.interface.ask(\n `Do you want to apply automatic fixes to ${allFixableResults.length} failed checks?`,\n {boolean: true, name: 'fix', default: false},\n )\n\n if (!wantsFix) {\n return\n }\n\n for await (const {description, files} of runFixers(allFixableResults as Required<CheckResult>[], {\n fs: this.fs,\n package: this.package,\n interface: this.interface,\n })) {\n this.interface.say([statusEmoji(true), description, chalk.green('fixed')].join(' '))\n\n changedFiles = new Map([...changedFiles, ...files])\n }\n\n const cleanUpPromises = Array.from(changedFiles).map(async ([path, content]) => {\n const action = (await this.fs.hasFile(path)) ? chalk.red(`{red overwrote`) : chalk.green(`{green wrote}`)\n\n await this.fs.write(path, content)\n\n this.interface.say(`${action}${stripPath(path)}`)\n })\n\n await Promise.all(cleanUpPromises)\n}\n\nasync function* runFixers(allFixableResults: Required<CheckResult>[], context: any) {\n for (const {fix, description} of allFixableResults) {\n try {\n // eslint-disable-next-line no-await-in-loop\n await fix(context)\n } finally {\n yield {description, files: []}\n }\n }\n}\n\nfunction statusEmoji(success: boolean) {\n return success ? '✓' : `✕`\n}\n\nfunction statusFixable(fix: CheckResult['fix']) {\n return typeof fix === 'function' ? chalk.cyan(` (fixable) `) : ' '\n}\n\nfunction stripPath(path: string) {\n return path.replace(`${process.cwd()}`, '')\n}\n"],"names":["hydrogenPkg","chalk"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createServer } from 'vite';
|
|
2
|
-
import { path } from '@shopify/cli-kit';
|
|
2
|
+
import { cli, path } from '@shopify/cli-kit';
|
|
3
3
|
import { Flags, Command } from '@oclif/core';
|
|
4
4
|
|
|
5
5
|
async function dev({ directory, force }) {
|
|
@@ -24,6 +24,7 @@ const _Dev = class extends Command {
|
|
|
24
24
|
let Dev = _Dev;
|
|
25
25
|
Dev.description = "Run a Hydrogen storefront locally for development";
|
|
26
26
|
Dev.flags = {
|
|
27
|
+
...cli.globalFlags,
|
|
27
28
|
path: Flags.string({
|
|
28
29
|
hidden: true,
|
|
29
30
|
description: "the path to your hydrogen storefront",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sources":["../../../src/cli/services/dev.ts","../../../src/cli/commands/hydrogen/dev.ts"],"sourcesContent":["import {createServer} from 'vite'\n\ninterface DevOptions {\n directory: string\n force: boolean\n}\n\nasync function dev({directory, force}: DevOptions) {\n const server = await createServer({\n root: directory,\n server: {\n open: true,\n force,\n },\n })\n\n await server.listen()\n server.printUrls()\n}\n\nexport default dev\n","import devService from '../../services/dev'\nimport {path} from '@shopify/cli-kit'\nimport {Command, Flags} from '@oclif/core'\n\nexport default class Dev extends Command {\n static description = 'Run a Hydrogen storefront locally for development'\n static flags = {\n path: Flags.string({\n hidden: true,\n description: 'the path to your hydrogen storefront',\n env: 'SHOPIFY_FLAG_PATH',\n }),\n force: Flags.boolean({\n description: 'force dependency pre-bundling.',\n env: 'SHOPIFY_FLAG_DEV_FORCE',\n }),\n }\n\n async run(): Promise<void> {\n const {flags} = await this.parse(Dev)\n const directory = flags.path ? path.resolve(flags.path) : process.cwd()\n\n await devService({directory, ...flags})\n }\n}\n"],"names":["devService"],"mappings":";;;;AAOA,eAAmB,GAAA,CAAA,EAAC,WAAW,KAAoB,EAAA,EAAA;AACjD,EAAM,MAAA,MAAA,GAAS,MAAM,YAAa,CAAA;AAAA,IAChC,IAAM,EAAA,SAAA;AAAA,IACN,MAAQ,EAAA;AAAA,MACN,IAAM,EAAA,IAAA;AAAA,MACN,KAAA;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AAED,EAAA,MAAM,OAAO,MAAO,EAAA,CAAA;AACpB,EAAA,MAAA,CAAO,SAAU,EAAA,CAAA;AACnB;;ACdA,MAAA,IAAA,GAAA,cAAiC,OAAQ,CAAA;AAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"dev.js","sources":["../../../src/cli/services/dev.ts","../../../src/cli/commands/hydrogen/dev.ts"],"sourcesContent":["import {createServer} from 'vite'\n\ninterface DevOptions {\n directory: string\n force: boolean\n}\n\nasync function dev({directory, force}: DevOptions) {\n const server = await createServer({\n root: directory,\n server: {\n open: true,\n force,\n },\n })\n\n await server.listen()\n server.printUrls()\n}\n\nexport default dev\n","import devService from '../../services/dev'\nimport {path, cli} from '@shopify/cli-kit'\nimport {Command, Flags} from '@oclif/core'\n\nexport default class Dev extends Command {\n static description = 'Run a Hydrogen storefront locally for development'\n static flags = {\n ...cli.globalFlags,\n path: Flags.string({\n hidden: true,\n description: 'the path to your hydrogen storefront',\n env: 'SHOPIFY_FLAG_PATH',\n }),\n force: Flags.boolean({\n description: 'force dependency pre-bundling.',\n env: 'SHOPIFY_FLAG_DEV_FORCE',\n }),\n }\n\n async run(): Promise<void> {\n const {flags} = await this.parse(Dev)\n const directory = flags.path ? path.resolve(flags.path) : process.cwd()\n\n await devService({directory, ...flags})\n }\n}\n"],"names":["devService"],"mappings":";;;;AAOA,eAAmB,GAAA,CAAA,EAAC,WAAW,KAAoB,EAAA,EAAA;AACjD,EAAM,MAAA,MAAA,GAAS,MAAM,YAAa,CAAA;AAAA,IAChC,IAAM,EAAA,SAAA;AAAA,IACN,MAAQ,EAAA;AAAA,MACN,IAAM,EAAA,IAAA;AAAA,MACN,KAAA;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AAED,EAAA,MAAM,OAAO,MAAO,EAAA,CAAA;AACpB,EAAA,MAAA,CAAO,SAAU,EAAA,CAAA;AACnB;;ACdA,MAAA,IAAA,GAAA,cAAiC,OAAQ,CAAA;AAAA,EAAA,MAejC,GAAqB,GAAA;AACzB,IAAA,MAAM,EAAC,KAAA,EAAA,GAAS,MAAM,IAAA,CAAK,MAAM,IAAG,CAAA,CAAA;AACpC,IAAM,MAAA,SAAA,GAAY,MAAM,IAAO,GAAA,IAAA,CAAK,QAAQ,KAAM,CAAA,IAAI,CAAI,GAAA,OAAA,CAAQ,GAAI,EAAA,CAAA;AAEtE,IAAA,MAAMA,GAAW,CAAA,EAAC,SAAc,EAAA,GAAA,KAAA,EAAM,CAAA,CAAA;AAAA,GACxC;AACF,CAAA,CAAA;AArBA,IAAA,GAAA,GAAA,KAAA;AAAA,IACS,WAAc,GAAA,mDAAA,CAAA;AADvB,IAES,KAAQ,GAAA;AAAA,EAAA,GACV,GAAI,CAAA,WAAA;AAAA,EACP,IAAA,EAAM,MAAM,MAAO,CAAA;AAAA,IACjB,MAAQ,EAAA,IAAA;AAAA,IACR,WAAa,EAAA,sCAAA;AAAA,IACb,GAAK,EAAA,mBAAA;AAAA,GACN,CAAA;AAAA,EACD,KAAA,EAAO,MAAM,OAAQ,CAAA;AAAA,IACnB,WAAa,EAAA,gCAAA;AAAA,IACb,GAAK,EAAA,wBAAA;AAAA,GACN,CAAA;AACH,CAAA;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { b as commonjsGlobal$1, d as commonjsRequire, C as Command, a as source$1, c as cliHydrogenPackageJson } from '../../Command-
|
|
1
|
+
import { b as commonjsGlobal$1, d as commonjsRequire, C as Command, a as source$1, c as cliHydrogenPackageJson } from '../../Command-a46acef0.js';
|
|
2
2
|
import require$$0$a from 'fs';
|
|
3
3
|
import require$$0$3 from 'path';
|
|
4
4
|
import require$$0$4 from 'events';
|
|
@@ -17,7 +17,7 @@ import require$$1$2 from 'child_process';
|
|
|
17
17
|
import require$$7 from 'url';
|
|
18
18
|
import require$$19 from 'net';
|
|
19
19
|
import require$$20 from 'tls';
|
|
20
|
-
import { ui, output } from '@shopify/cli-kit';
|
|
20
|
+
import { cli, ui, output } from '@shopify/cli-kit';
|
|
21
21
|
import { Flags } from '@oclif/core';
|
|
22
22
|
import 'readline';
|
|
23
23
|
import 'module';
|
|
@@ -26,7 +26,7 @@ import 'v8';
|
|
|
26
26
|
import 'prettier';
|
|
27
27
|
|
|
28
28
|
var name = "@shopify/cli";
|
|
29
|
-
var version$2 = "2.0.
|
|
29
|
+
var version$2 = "2.0.2";
|
|
30
30
|
var description = "A CLI tool to build for the Shopify platform";
|
|
31
31
|
var type = "module";
|
|
32
32
|
var main = "src/index.js";
|
|
@@ -73,13 +73,14 @@ var eslintConfig = {
|
|
|
73
73
|
};
|
|
74
74
|
var dependencies = {
|
|
75
75
|
"@bugsnag/js": "^7.16.2",
|
|
76
|
-
"@oclif/core": "1.
|
|
76
|
+
"@oclif/core": "1.7.0",
|
|
77
77
|
"@oclif/plugin-help": "^5.1.12",
|
|
78
78
|
"@oclif/plugin-plugins": "^2.1.0",
|
|
79
|
-
"@shopify/cli-kit": "2.0.
|
|
79
|
+
"@shopify/cli-kit": "2.0.2",
|
|
80
|
+
"@shopify/plugin-ngrok": "^0.2.3"
|
|
80
81
|
};
|
|
81
82
|
var devDependencies = {
|
|
82
|
-
vitest: "0.
|
|
83
|
+
vitest: "0.10.0"
|
|
83
84
|
};
|
|
84
85
|
var engines = {
|
|
85
86
|
node: "^14.13.1 || ^16.0.0 || ^17.0.0 || ^18.0.0"
|
|
@@ -97,8 +98,10 @@ var oclif = {
|
|
|
97
98
|
"@shopify/theme",
|
|
98
99
|
"@shopify/cli-hydrogen",
|
|
99
100
|
"@oclif/plugin-help",
|
|
100
|
-
"@oclif/plugin-plugins"
|
|
101
|
+
"@oclif/plugin-plugins",
|
|
102
|
+
"@shopify/plugin-ngrok"
|
|
101
103
|
],
|
|
104
|
+
scope: "shopify",
|
|
102
105
|
topicSeparator: " ",
|
|
103
106
|
topics: {
|
|
104
107
|
hydrogen: {
|
|
@@ -109,6 +112,9 @@ var oclif = {
|
|
|
109
112
|
},
|
|
110
113
|
app: {
|
|
111
114
|
description: "Build Shopify apps"
|
|
115
|
+
},
|
|
116
|
+
auth: {
|
|
117
|
+
description: "Auth operations"
|
|
112
118
|
}
|
|
113
119
|
},
|
|
114
120
|
additionalHelpFlags: [
|
|
@@ -14731,6 +14737,7 @@ const _Init = class extends Command {
|
|
|
14731
14737
|
let Init = _Init;
|
|
14732
14738
|
Init.args = [{ name: "name", description: "Root of the project" }];
|
|
14733
14739
|
Init.flags = {
|
|
14740
|
+
...cli.globalFlags,
|
|
14734
14741
|
root: Flags.string({
|
|
14735
14742
|
char: "r",
|
|
14736
14743
|
description: "Root directory of the project.",
|