@shopify/create-app 3.0.17 → 3.0.18
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 +13 -0
- package/dist/commands/init.js +41 -9
- package/dist/commands/init.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @shopify/create-app
|
|
2
2
|
|
|
3
|
+
## 3.0.18
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- fa518a0d: Report events with the analytics helper from cli-kit
|
|
8
|
+
- cb1caa7c: Improve create app error message when using an invalid template flag value
|
|
9
|
+
- Updated dependencies [84438079]
|
|
10
|
+
- Updated dependencies [fa518a0d]
|
|
11
|
+
- Updated dependencies [fd10fc01]
|
|
12
|
+
- Updated dependencies [0243890b]
|
|
13
|
+
- Updated dependencies [cb1caa7c]
|
|
14
|
+
- @shopify/cli-kit@3.0.18
|
|
15
|
+
|
|
3
16
|
## 3.0.17
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/dist/commands/init.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { haiku, ui, path, dependency, file, string, github, git, template, npm, environment, output, cli } from '@shopify/cli-kit';
|
|
1
|
+
import { haiku, ui, path, dependency, file, string, github, git, template, npm, environment, output, cli, analytics, error } from '@shopify/cli-kit';
|
|
2
2
|
import { Writable } from 'stream';
|
|
3
3
|
import { Flags, Command } from '@oclif/core';
|
|
4
4
|
|
|
5
|
+
const templateURLMap = {
|
|
6
|
+
node: "https://github.com/Shopify/shopify-app-template-node#cli_three",
|
|
7
|
+
php: "https://github.com/Shopify/shopify-app-template-php#cli_three",
|
|
8
|
+
ruby: "https://github.com/Shopify/shopify-app-template-ruby"
|
|
9
|
+
};
|
|
5
10
|
const init$1 = async (options, prompt = ui.prompt) => {
|
|
6
|
-
const templateURLMap = {
|
|
7
|
-
node: "https://github.com/Shopify/shopify-app-template-node#cli_three",
|
|
8
|
-
php: "https://github.com/Shopify/shopify-app-template-php#cli_three",
|
|
9
|
-
ruby: "https://github.com/Shopify/shopify-app-template-ruby"
|
|
10
|
-
};
|
|
11
11
|
const defaults = {
|
|
12
12
|
name: haiku.generate("app"),
|
|
13
13
|
template: templateURLMap.node
|
|
@@ -50,9 +50,9 @@ const init$1 = async (options, prompt = ui.prompt) => {
|
|
|
50
50
|
return answers;
|
|
51
51
|
};
|
|
52
52
|
|
|
53
|
-
var version$1 = "3.0.
|
|
53
|
+
var version$1 = "3.0.18";
|
|
54
54
|
|
|
55
|
-
var version = "3.0.
|
|
55
|
+
var version = "3.0.18";
|
|
56
56
|
|
|
57
57
|
async function updateCLIDependencies(packageJSON, local) {
|
|
58
58
|
packageJSON.dependencies = packageJSON.dependencies || {};
|
|
@@ -246,10 +246,17 @@ function inferDependencyManager(optionsDependencyManager) {
|
|
|
246
246
|
return dependency.dependencyManagerUsedForCreating();
|
|
247
247
|
}
|
|
248
248
|
|
|
249
|
+
const InvalidGithubRepository = () => {
|
|
250
|
+
return new error.Abort("Only GitHub repository references are supported. e.g.: https://github.com/Shopify/<repository>/[subpath]#[branch]");
|
|
251
|
+
};
|
|
252
|
+
const UnsupportedTemplateAlias = () => {
|
|
253
|
+
return new error.Abort(output.content`Only ${Object.keys(templateURLMap).map((alias) => output.content`${output.token.yellow(alias)}`.value).join(", ")} template aliases are supported`);
|
|
254
|
+
};
|
|
249
255
|
const _Init = class extends Command {
|
|
250
256
|
async run() {
|
|
251
257
|
const { flags } = await this.parse(_Init);
|
|
252
258
|
const directory = flags.path ? path.resolve(flags.path) : process.cwd();
|
|
259
|
+
this.validateTemplateValue(flags.template);
|
|
253
260
|
const promptAnswers = await init$1({
|
|
254
261
|
name: flags.name,
|
|
255
262
|
template: flags.template
|
|
@@ -261,6 +268,29 @@ const _Init = class extends Command {
|
|
|
261
268
|
local: flags.local,
|
|
262
269
|
directory
|
|
263
270
|
});
|
|
271
|
+
await this.reportEvent();
|
|
272
|
+
}
|
|
273
|
+
async reportEvent() {
|
|
274
|
+
const commandIndex = process.argv.indexOf("init");
|
|
275
|
+
const args = process.argv.slice(commandIndex + 1);
|
|
276
|
+
await analytics.reportEvent("create-app", args);
|
|
277
|
+
}
|
|
278
|
+
validateTemplateValue(template) {
|
|
279
|
+
if (!template) {
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
const url = this.parseURL(template);
|
|
283
|
+
if (url && url.origin !== "https://github.com")
|
|
284
|
+
throw InvalidGithubRepository();
|
|
285
|
+
if (!url && !Object.keys(templateURLMap).includes(template))
|
|
286
|
+
throw UnsupportedTemplateAlias();
|
|
287
|
+
}
|
|
288
|
+
parseURL(url) {
|
|
289
|
+
try {
|
|
290
|
+
return new URL(url);
|
|
291
|
+
} catch (error2) {
|
|
292
|
+
return void 0;
|
|
293
|
+
}
|
|
264
294
|
}
|
|
265
295
|
};
|
|
266
296
|
let Init = _Init;
|
|
@@ -278,7 +308,9 @@ Init.flags = {
|
|
|
278
308
|
hidden: false
|
|
279
309
|
}),
|
|
280
310
|
template: Flags.string({
|
|
281
|
-
description:
|
|
311
|
+
description: `The app template. Accepts one of the following:
|
|
312
|
+
- <${Object.keys(templateURLMap).join("|")}>
|
|
313
|
+
- Any GitHub repo with optional branch and subpath eg: https://github.com/Shopify/<repository>/[subpath]#[branch]`,
|
|
282
314
|
env: "SHOPIFY_FLAG_TEMPLATE"
|
|
283
315
|
}),
|
|
284
316
|
"dependency-manager": Flags.string({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sources":["../../src/prompts/init.ts","../../src/utils/template/npm.ts","../../src/utils/template/cleanup.ts","../../src/services/init.ts","../../src/commands/init.ts"],"sourcesContent":["import {haiku, ui} from '@shopify/cli-kit'\n\ninterface InitOptions {\n name?: string\n template?: string\n}\n\ninterface InitOutput {\n name: string\n template: string\n}\n\nconst init = async (options: InitOptions, prompt = ui.prompt): Promise<InitOutput> => {\n // Eventually this list should be taken from a remote location\n // That way we don't have to update the CLI every time we add a template\n const templateURLMap = {\n node: 'https://github.com/Shopify/shopify-app-template-node#cli_three',\n php: 'https://github.com/Shopify/shopify-app-template-php#cli_three',\n ruby: 'https://github.com/Shopify/shopify-app-template-ruby',\n } as const\n\n const defaults = {\n name: haiku.generate('app'),\n template: templateURLMap.node,\n } as const\n\n const questions: ui.Question<'name' | 'template'>[] = []\n if (!options.name) {\n questions.push({\n type: 'input',\n name: 'name',\n preface: '\\nWelcome. Let’s get started by naming your app. You can change it later.',\n message: \"Your app's name?\",\n default: defaults.name,\n validate: (value) => {\n if (value.length === 0) {\n return \"App Name can't be empty\"\n }\n if (value.length > 30) {\n return 'Enter a shorter name (30 character max.)'\n }\n return true\n },\n })\n }\n\n if (!options.template && Object.keys(templateURLMap).length > 1) {\n questions.push({\n type: 'select',\n name: 'template',\n choices: Object.keys(templateURLMap),\n message: 'Which template would you like to use?',\n default: defaults.template,\n })\n }\n\n const promptOutput: InitOutput = await prompt(questions)\n const answers = {\n ...options,\n ...promptOutput,\n }\n\n const templateURL = templateURLMap[answers.template as keyof typeof templateURLMap]\n answers.template = templateURL || answers.template || defaults.template\n\n return answers\n}\n\nexport default init\n","import {version as cliVersion} from '../../../../cli-main/package.json'\nimport {version as appVersion} from '../../../../app/package.json'\nimport {path, dependency, ui, npm} from '@shopify/cli-kit'\nimport {Writable} from 'stream'\n\nexport async function updateCLIDependencies(packageJSON: npm.PackageJSON, local: boolean): Promise<npm.PackageJSON> {\n packageJSON.dependencies = packageJSON.dependencies || {}\n packageJSON.dependencies['@shopify/cli'] = cliVersion\n packageJSON.dependencies['@shopify/app'] = appVersion\n\n if (local) {\n const cliPath = `file:${(await path.findUp('packages/cli-main', {type: 'directory'})) as string}`\n const appPath = `file:${(await path.findUp('packages/app', {type: 'directory'})) as string}`\n const cliKitPath = `file:${(await path.findUp('packages/cli-kit', {type: 'directory'})) as string}`\n\n // eslint-disable-next-line require-atomic-updates\n packageJSON.dependencies['@shopify/cli'] = cliPath\n // eslint-disable-next-line require-atomic-updates\n packageJSON.dependencies['@shopify/app'] = appPath\n\n const dependencyOverrides = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@shopify/cli': cliPath,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@shopify/app': appPath,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@shopify/cli-kit': cliKitPath,\n }\n\n packageJSON.overrides = packageJSON.overrides\n ? {...packageJSON.overrides, ...dependencyOverrides}\n : dependencyOverrides\n\n packageJSON.resolutions = packageJSON.resolutions\n ? {...packageJSON.resolutions, ...dependencyOverrides}\n : dependencyOverrides\n }\n\n return packageJSON\n}\n\nexport async function getDeepInstallNPMTasks({\n from,\n dependencyManager,\n didInstallEverything,\n}: {\n from: string\n dependencyManager: dependency.DependencyManager\n didInstallEverything(): void\n}): Promise<ui.ListrTask[]> {\n const packageJSONFiles = await path.glob([path.join(from, '**/package.json')])\n let foldersInstalled = 0\n\n return packageJSONFiles.map((filePath) => {\n const folderPath = filePath.replace('package.json', '')\n const titlePath = folderPath.replace(from, '')\n\n return {\n title: `Installing dependencies in ${titlePath}`,\n task: async (_, task) => {\n const output = new Writable({\n write(chunk, _, next) {\n task.output = chunk.toString()\n next()\n },\n })\n\n await dependency.install(folderPath, dependencyManager, output, output)\n\n task.title = `Installed dependencies in ${titlePath}`\n\n foldersInstalled++\n\n if (foldersInstalled === packageJSONFiles.length) {\n didInstallEverything()\n }\n },\n }\n })\n}\n","import {file, path} from '@shopify/cli-kit'\n\nexport default async function cleanup(webOutputDirectory: string) {\n const gitPaths = await path.glob(\n [\n path.join(webOutputDirectory, '**', '.git'),\n path.join(webOutputDirectory, '**', '.github'),\n path.join(webOutputDirectory, '**', '.gitmodules'),\n path.join(webOutputDirectory, 'LICENSE*'),\n path.join(webOutputDirectory, '**', 'frontend/LICENSE*'),\n path.join(webOutputDirectory, 'package.json.cli2'),\n ],\n {\n dot: true,\n onlyFiles: false,\n onlyDirectories: false,\n ignore: ['**/node_modules/**'],\n },\n )\n\n return Promise.all(gitPaths.map((path) => file.rmdir(path, {force: true}))).then(() => {})\n}\n","import {getDeepInstallNPMTasks, updateCLIDependencies} from '../utils/template/npm'\nimport cleanup from '../utils/template/cleanup'\n\nimport {string, path, file, output, ui, dependency, template, npm, git, github, environment} from '@shopify/cli-kit'\n\ninterface InitOptions {\n name: string\n directory: string\n template: string\n dependencyManager: string | undefined\n local: boolean\n}\n\nasync function init(options: InitOptions) {\n const dependencyManager: dependency.DependencyManager = inferDependencyManager(options.dependencyManager)\n const hyphenizedName = string.hyphenize(options.name)\n const outputDirectory = path.join(options.directory, hyphenizedName)\n const githubRepo = github.parseGithubRepoReference(options.template)\n\n await file.inTemporaryDirectory(async (tmpDir) => {\n const templateDownloadDir = path.join(tmpDir, 'download')\n const templatePathDir = githubRepo.filePath\n ? path.join(templateDownloadDir, githubRepo.filePath)\n : templateDownloadDir\n const templateScaffoldDir = path.join(tmpDir, 'app')\n const repoUrl = githubRepo.branch ? `${githubRepo.repoBaseUrl}#${githubRepo.branch}` : githubRepo.repoBaseUrl\n\n await file.mkdir(templateDownloadDir)\n let tasks: ConstructorParameters<typeof ui.Listr>[0] = []\n\n tasks = tasks.concat([\n {\n title: 'Download template',\n task: async (_, task) => {\n task.title = 'Downloading template'\n await git.downloadRepository({\n repoUrl,\n destination: templateDownloadDir,\n })\n task.title = 'Template downloaded'\n },\n },\n {\n title: `Initialize your app ${hyphenizedName}`,\n task: async (_, parentTask) => {\n parentTask.title = `Initializing your app ${hyphenizedName}`\n return parentTask.newListr([\n {\n title: 'Parse liquid',\n task: async (_, task) => {\n task.title = 'Parsing liquid'\n await template.recursiveDirectoryCopy(templatePathDir, templateScaffoldDir, {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n dependency_manager: dependencyManager,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n app_name: options.name,\n })\n\n task.title = 'Liquid parsed'\n },\n },\n {\n title: 'Update package.json',\n task: async (_, task) => {\n task.title = 'Updating package.json'\n const packageJSON = await npm.readPackageJSON(templateScaffoldDir)\n\n await npm.updateAppData(packageJSON, hyphenizedName)\n await updateCLIDependencies(packageJSON, options.local)\n\n await npm.writePackageJSON(templateScaffoldDir, packageJSON)\n\n task.title = 'Updated package.json'\n parentTask.title = 'App initialized'\n },\n },\n ])\n },\n },\n ])\n\n if (await environment.local.isShopify()) {\n tasks.push({\n title: \"[Shopifolks-only] Configure the project's NPM registry\",\n task: async (_, task) => {\n task.title = \"[Shopifolks-only] Configuring the project's NPM registry\"\n const npmrcPath = path.join(templateScaffoldDir, '.npmrc')\n const npmrcContent = `@shopify:registry=https://registry.npmjs.org\\n`\n await file.append(npmrcPath, npmrcContent)\n task.title = \"[Shopifolks-only] Project's NPM registry configured.\"\n },\n })\n }\n\n tasks = tasks.concat([\n {\n title: `Install dependencies with ${dependencyManager}`,\n task: async (_, parentTask) => {\n parentTask.title = `Installing dependencies with ${dependencyManager}`\n function didInstallEverything() {\n parentTask.title = `Dependencies installed with ${dependencyManager}`\n }\n\n return parentTask.newListr(\n await getDeepInstallNPMTasks({\n from: templateScaffoldDir,\n dependencyManager,\n didInstallEverything,\n }),\n {concurrent: false},\n )\n },\n },\n {\n title: 'Clean up',\n task: async (_, task) => {\n task.title = 'Cleaning up'\n await cleanup(templateScaffoldDir)\n task.title = 'Completed clean up'\n },\n },\n {\n title: 'Initializing a Git repository...',\n task: async (_, task) => {\n await git.initializeRepository(templateScaffoldDir)\n task.title = 'Git repository initialized'\n },\n },\n ])\n\n const list = new ui.Listr(tasks, {\n concurrent: false,\n rendererOptions: {collapse: false},\n rendererSilent: environment.local.isUnitTest(),\n })\n await list.run()\n\n await file.move(templateScaffoldDir, outputDirectory)\n })\n\n output.info(output.content`\n ${hyphenizedName} is ready for you to build! Remember to ${output.token.genericShellCommand(`cd ${hyphenizedName}`)}\n To preview your project, run ${output.token.packagejsonScript(dependencyManager, 'dev')}\n To add extensions, run ${output.token.packagejsonScript(dependencyManager, 'scaffold extension')}\n For more details on all that you can build, see the docs: ${output.token.link(\n 'shopify.dev',\n 'https://shopify.dev',\n )} ✨\n\n For help and a list of commands, enter ${output.token.packagejsonScript(dependencyManager, 'shopify app', '--help')}\n `)\n}\n\nfunction inferDependencyManager(optionsDependencyManager: string | undefined): dependency.DependencyManager {\n if (\n optionsDependencyManager &&\n dependency.dependencyManager.includes(optionsDependencyManager as dependency.DependencyManager)\n ) {\n return optionsDependencyManager as dependency.DependencyManager\n }\n return dependency.dependencyManagerUsedForCreating()\n}\n\nexport default init\n","import initPrompt from '../prompts/init'\nimport initService from '../services/init'\nimport {Command, Flags} from '@oclif/core'\nimport {path, cli} from '@shopify/cli-kit'\n\nexport default class Init extends Command {\n static flags = {\n ...cli.globalFlags,\n name: Flags.string({\n char: 'n',\n env: 'SHOPIFY_FLAG_NAME',\n hidden: false,\n }),\n path: Flags.string({\n char: 'p',\n env: 'SHOPIFY_FLAG_PATH',\n parse: (input, _) => Promise.resolve(path.resolve(input)),\n hidden: false,\n }),\n template: Flags.string({\n description:\n 'The app template. Accepts any GitHub repo with optional branch and subpath. Eg, --template https://github.com/Shopify/<repository>/[subpath]#[branch]',\n env: 'SHOPIFY_FLAG_TEMPLATE',\n }),\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'dependency-manager': Flags.string({\n char: 'd',\n env: 'SHOPIFY_FLAG_DEPENDENCY_MANAGER',\n hidden: false,\n options: ['npm', 'yarn', 'pnpm'],\n }),\n local: Flags.boolean({\n char: 'l',\n env: 'SHOPIFY_FLAG_LOCAL',\n default: false,\n hidden: true,\n }),\n }\n\n async run(): Promise<void> {\n const {flags} = await this.parse(Init)\n const directory = flags.path ? path.resolve(flags.path) : process.cwd()\n const promptAnswers = await initPrompt({\n name: flags.name,\n template: flags.template,\n })\n await initService({\n name: promptAnswers.name,\n dependencyManager: flags['dependency-manager'],\n template: promptAnswers.template,\n local: flags.local,\n directory,\n })\n }\n}\n"],"names":["init","cliVersion","appVersion","initPrompt","initService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sources":["../../src/prompts/init.ts","../../src/utils/template/npm.ts","../../src/utils/template/cleanup.ts","../../src/services/init.ts","../../src/commands/init.ts"],"sourcesContent":["import {haiku, ui} from '@shopify/cli-kit'\n\ninterface InitOptions {\n name?: string\n template?: string\n}\n\ninterface InitOutput {\n name: string\n template: string\n}\n\n// Eventually this list should be taken from a remote location\n// That way we don't have to update the CLI every time we add a template\nexport const templateURLMap = {\n node: 'https://github.com/Shopify/shopify-app-template-node#cli_three',\n php: 'https://github.com/Shopify/shopify-app-template-php#cli_three',\n ruby: 'https://github.com/Shopify/shopify-app-template-ruby',\n} as const\n\nconst init = async (options: InitOptions, prompt = ui.prompt): Promise<InitOutput> => {\n const defaults = {\n name: haiku.generate('app'),\n template: templateURLMap.node,\n } as const\n\n const questions: ui.Question<'name' | 'template'>[] = []\n if (!options.name) {\n questions.push({\n type: 'input',\n name: 'name',\n preface: '\\nWelcome. Let’s get started by naming your app. You can change it later.',\n message: \"Your app's name?\",\n default: defaults.name,\n validate: (value) => {\n if (value.length === 0) {\n return \"App Name can't be empty\"\n }\n if (value.length > 30) {\n return 'Enter a shorter name (30 character max.)'\n }\n return true\n },\n })\n }\n\n if (!options.template && Object.keys(templateURLMap).length > 1) {\n questions.push({\n type: 'select',\n name: 'template',\n choices: Object.keys(templateURLMap),\n message: 'Which template would you like to use?',\n default: defaults.template,\n })\n }\n\n const promptOutput: InitOutput = await prompt(questions)\n const answers = {\n ...options,\n ...promptOutput,\n }\n\n const templateURL = templateURLMap[answers.template as keyof typeof templateURLMap]\n answers.template = templateURL || answers.template || defaults.template\n\n return answers\n}\n\nexport default init\n","import {version as cliVersion} from '../../../../cli-main/package.json'\nimport {version as appVersion} from '../../../../app/package.json'\nimport {path, dependency, ui, npm} from '@shopify/cli-kit'\nimport {Writable} from 'stream'\n\nexport async function updateCLIDependencies(packageJSON: npm.PackageJSON, local: boolean): Promise<npm.PackageJSON> {\n packageJSON.dependencies = packageJSON.dependencies || {}\n packageJSON.dependencies['@shopify/cli'] = cliVersion\n packageJSON.dependencies['@shopify/app'] = appVersion\n\n if (local) {\n const cliPath = `file:${(await path.findUp('packages/cli-main', {type: 'directory'})) as string}`\n const appPath = `file:${(await path.findUp('packages/app', {type: 'directory'})) as string}`\n const cliKitPath = `file:${(await path.findUp('packages/cli-kit', {type: 'directory'})) as string}`\n\n // eslint-disable-next-line require-atomic-updates\n packageJSON.dependencies['@shopify/cli'] = cliPath\n // eslint-disable-next-line require-atomic-updates\n packageJSON.dependencies['@shopify/app'] = appPath\n\n const dependencyOverrides = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@shopify/cli': cliPath,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@shopify/app': appPath,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@shopify/cli-kit': cliKitPath,\n }\n\n packageJSON.overrides = packageJSON.overrides\n ? {...packageJSON.overrides, ...dependencyOverrides}\n : dependencyOverrides\n\n packageJSON.resolutions = packageJSON.resolutions\n ? {...packageJSON.resolutions, ...dependencyOverrides}\n : dependencyOverrides\n }\n\n return packageJSON\n}\n\nexport async function getDeepInstallNPMTasks({\n from,\n dependencyManager,\n didInstallEverything,\n}: {\n from: string\n dependencyManager: dependency.DependencyManager\n didInstallEverything(): void\n}): Promise<ui.ListrTask[]> {\n const packageJSONFiles = await path.glob([path.join(from, '**/package.json')])\n let foldersInstalled = 0\n\n return packageJSONFiles.map((filePath) => {\n const folderPath = filePath.replace('package.json', '')\n const titlePath = folderPath.replace(from, '')\n\n return {\n title: `Installing dependencies in ${titlePath}`,\n task: async (_, task) => {\n const output = new Writable({\n write(chunk, _, next) {\n task.output = chunk.toString()\n next()\n },\n })\n\n await dependency.install(folderPath, dependencyManager, output, output)\n\n task.title = `Installed dependencies in ${titlePath}`\n\n foldersInstalled++\n\n if (foldersInstalled === packageJSONFiles.length) {\n didInstallEverything()\n }\n },\n }\n })\n}\n","import {file, path} from '@shopify/cli-kit'\n\nexport default async function cleanup(webOutputDirectory: string) {\n const gitPaths = await path.glob(\n [\n path.join(webOutputDirectory, '**', '.git'),\n path.join(webOutputDirectory, '**', '.github'),\n path.join(webOutputDirectory, '**', '.gitmodules'),\n path.join(webOutputDirectory, 'LICENSE*'),\n path.join(webOutputDirectory, '**', 'frontend/LICENSE*'),\n path.join(webOutputDirectory, 'package.json.cli2'),\n ],\n {\n dot: true,\n onlyFiles: false,\n onlyDirectories: false,\n ignore: ['**/node_modules/**'],\n },\n )\n\n return Promise.all(gitPaths.map((path) => file.rmdir(path, {force: true}))).then(() => {})\n}\n","import {getDeepInstallNPMTasks, updateCLIDependencies} from '../utils/template/npm'\nimport cleanup from '../utils/template/cleanup'\n\nimport {string, path, file, output, ui, dependency, template, npm, git, github, environment} from '@shopify/cli-kit'\n\ninterface InitOptions {\n name: string\n directory: string\n template: string\n dependencyManager: string | undefined\n local: boolean\n}\n\nasync function init(options: InitOptions) {\n const dependencyManager: dependency.DependencyManager = inferDependencyManager(options.dependencyManager)\n const hyphenizedName = string.hyphenize(options.name)\n const outputDirectory = path.join(options.directory, hyphenizedName)\n const githubRepo = github.parseGithubRepoReference(options.template)\n\n await file.inTemporaryDirectory(async (tmpDir) => {\n const templateDownloadDir = path.join(tmpDir, 'download')\n const templatePathDir = githubRepo.filePath\n ? path.join(templateDownloadDir, githubRepo.filePath)\n : templateDownloadDir\n const templateScaffoldDir = path.join(tmpDir, 'app')\n const repoUrl = githubRepo.branch ? `${githubRepo.repoBaseUrl}#${githubRepo.branch}` : githubRepo.repoBaseUrl\n\n await file.mkdir(templateDownloadDir)\n let tasks: ConstructorParameters<typeof ui.Listr>[0] = []\n\n tasks = tasks.concat([\n {\n title: 'Download template',\n task: async (_, task) => {\n task.title = 'Downloading template'\n await git.downloadRepository({\n repoUrl,\n destination: templateDownloadDir,\n })\n task.title = 'Template downloaded'\n },\n },\n {\n title: `Initialize your app ${hyphenizedName}`,\n task: async (_, parentTask) => {\n parentTask.title = `Initializing your app ${hyphenizedName}`\n return parentTask.newListr([\n {\n title: 'Parse liquid',\n task: async (_, task) => {\n task.title = 'Parsing liquid'\n await template.recursiveDirectoryCopy(templatePathDir, templateScaffoldDir, {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n dependency_manager: dependencyManager,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n app_name: options.name,\n })\n\n task.title = 'Liquid parsed'\n },\n },\n {\n title: 'Update package.json',\n task: async (_, task) => {\n task.title = 'Updating package.json'\n const packageJSON = await npm.readPackageJSON(templateScaffoldDir)\n\n await npm.updateAppData(packageJSON, hyphenizedName)\n await updateCLIDependencies(packageJSON, options.local)\n\n await npm.writePackageJSON(templateScaffoldDir, packageJSON)\n\n task.title = 'Updated package.json'\n parentTask.title = 'App initialized'\n },\n },\n ])\n },\n },\n ])\n\n if (await environment.local.isShopify()) {\n tasks.push({\n title: \"[Shopifolks-only] Configure the project's NPM registry\",\n task: async (_, task) => {\n task.title = \"[Shopifolks-only] Configuring the project's NPM registry\"\n const npmrcPath = path.join(templateScaffoldDir, '.npmrc')\n const npmrcContent = `@shopify:registry=https://registry.npmjs.org\\n`\n await file.append(npmrcPath, npmrcContent)\n task.title = \"[Shopifolks-only] Project's NPM registry configured.\"\n },\n })\n }\n\n tasks = tasks.concat([\n {\n title: `Install dependencies with ${dependencyManager}`,\n task: async (_, parentTask) => {\n parentTask.title = `Installing dependencies with ${dependencyManager}`\n function didInstallEverything() {\n parentTask.title = `Dependencies installed with ${dependencyManager}`\n }\n\n return parentTask.newListr(\n await getDeepInstallNPMTasks({\n from: templateScaffoldDir,\n dependencyManager,\n didInstallEverything,\n }),\n {concurrent: false},\n )\n },\n },\n {\n title: 'Clean up',\n task: async (_, task) => {\n task.title = 'Cleaning up'\n await cleanup(templateScaffoldDir)\n task.title = 'Completed clean up'\n },\n },\n {\n title: 'Initializing a Git repository...',\n task: async (_, task) => {\n await git.initializeRepository(templateScaffoldDir)\n task.title = 'Git repository initialized'\n },\n },\n ])\n\n const list = new ui.Listr(tasks, {\n concurrent: false,\n rendererOptions: {collapse: false},\n rendererSilent: environment.local.isUnitTest(),\n })\n await list.run()\n\n await file.move(templateScaffoldDir, outputDirectory)\n })\n\n output.info(output.content`\n ${hyphenizedName} is ready for you to build! Remember to ${output.token.genericShellCommand(`cd ${hyphenizedName}`)}\n To preview your project, run ${output.token.packagejsonScript(dependencyManager, 'dev')}\n To add extensions, run ${output.token.packagejsonScript(dependencyManager, 'scaffold extension')}\n For more details on all that you can build, see the docs: ${output.token.link(\n 'shopify.dev',\n 'https://shopify.dev',\n )} ✨\n\n For help and a list of commands, enter ${output.token.packagejsonScript(dependencyManager, 'shopify app', '--help')}\n `)\n}\n\nfunction inferDependencyManager(optionsDependencyManager: string | undefined): dependency.DependencyManager {\n if (\n optionsDependencyManager &&\n dependency.dependencyManager.includes(optionsDependencyManager as dependency.DependencyManager)\n ) {\n return optionsDependencyManager as dependency.DependencyManager\n }\n return dependency.dependencyManagerUsedForCreating()\n}\n\nexport default init\n","import initPrompt, {templateURLMap} from '../prompts/init'\nimport initService from '../services/init'\nimport {Command, Flags} from '@oclif/core'\nimport {path, cli, analytics, error, output} from '@shopify/cli-kit'\n\nconst InvalidGithubRepository = () => {\n return new error.Abort(\n 'Only GitHub repository references are supported. e.g.: https://github.com/Shopify/<repository>/[subpath]#[branch]',\n )\n}\n\nconst UnsupportedTemplateAlias = () => {\n return new error.Abort(\n output.content`Only ${Object.keys(templateURLMap)\n .map((alias) => output.content`${output.token.yellow(alias)}`.value)\n .join(', ')} template aliases are supported`,\n )\n}\nexport default class Init extends Command {\n static flags = {\n ...cli.globalFlags,\n name: Flags.string({\n char: 'n',\n env: 'SHOPIFY_FLAG_NAME',\n hidden: false,\n }),\n path: Flags.string({\n char: 'p',\n env: 'SHOPIFY_FLAG_PATH',\n parse: (input, _) => Promise.resolve(path.resolve(input)),\n hidden: false,\n }),\n template: Flags.string({\n description: `The app template. Accepts one of the following:\n - <${Object.keys(templateURLMap).join('|')}>\n - Any GitHub repo with optional branch and subpath eg: https://github.com/Shopify/<repository>/[subpath]#[branch]`,\n env: 'SHOPIFY_FLAG_TEMPLATE',\n }),\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'dependency-manager': Flags.string({\n char: 'd',\n env: 'SHOPIFY_FLAG_DEPENDENCY_MANAGER',\n hidden: false,\n options: ['npm', 'yarn', 'pnpm'],\n }),\n local: Flags.boolean({\n char: 'l',\n env: 'SHOPIFY_FLAG_LOCAL',\n default: false,\n hidden: true,\n }),\n }\n\n async run(): Promise<void> {\n const {flags} = await this.parse(Init)\n const directory = flags.path ? path.resolve(flags.path) : process.cwd()\n\n this.validateTemplateValue(flags.template)\n\n const promptAnswers = await initPrompt({\n name: flags.name,\n template: flags.template,\n })\n\n await initService({\n name: promptAnswers.name,\n dependencyManager: flags['dependency-manager'],\n template: promptAnswers.template,\n local: flags.local,\n directory,\n })\n await this.reportEvent()\n }\n\n async reportEvent(): Promise<void> {\n const commandIndex = process.argv.indexOf('init')\n const args = process.argv.slice(commandIndex + 1)\n await analytics.reportEvent('create-app', args)\n }\n\n validateTemplateValue(template: string | undefined) {\n if (!template) {\n return\n }\n\n const url = this.parseURL(template)\n if (url && url.origin !== 'https://github.com') throw InvalidGithubRepository()\n if (!url && !Object.keys(templateURLMap).includes(template)) throw UnsupportedTemplateAlias()\n }\n\n parseURL(url: string): URL | undefined {\n try {\n return new URL(url)\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n return undefined\n }\n }\n}\n"],"names":["init","cliVersion","appVersion","initPrompt","initService"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { settings, run, flush } from '@oclif/core';
|
|
2
|
-
import { environment, error } from '@shopify/cli-kit';
|
|
2
|
+
import { output, environment, error } from '@shopify/cli-kit';
|
|
3
3
|
|
|
4
4
|
function runCreateApp() {
|
|
5
|
+
output.initiateLogging({ filename: "shopify.create-app.log" });
|
|
5
6
|
const initIndex = process.argv.findIndex((arg) => arg.includes("init"));
|
|
6
7
|
if (initIndex === -1) {
|
|
7
8
|
const initIndex2 = process.argv.findIndex((arg) => arg.match(/bin(\/|\\)(create-app|dev|run)/)) + 1;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import {run, flush, settings} from '@oclif/core'\nimport {error as kitError, environment} from '@shopify/cli-kit'\n\nfunction runCreateApp() {\n const initIndex = process.argv.findIndex((arg) => arg.includes('init'))\n if (initIndex === -1) {\n const initIndex = process.argv.findIndex((arg) => arg.match(/bin(\\/|\\\\)(create-app|dev|run)/)) + 1\n process.argv.splice(initIndex, 0, 'init')\n }\n\n if (environment.local.isDebug()) {\n settings.debug = true\n }\n\n // Start the CLI\n run(undefined, import.meta.url)\n .then(flush)\n .catch((error: Error): Promise<void | Error> => {\n const kitMapper = kitError.mapper\n const kitHandle = kitError.handler\n // eslint-disable-next-line promise/no-nesting\n return kitMapper(error)\n .then((error: Error) => {\n return kitHandle(error)\n })\n .then(() => {\n process.exit(1)\n })\n })\n}\n\nexport default runCreateApp\n"],"names":["error","kitError"],"mappings":";;;AAGA,SAAwB,YAAA,GAAA;AACtB,EAAM,MAAA,SAAA,GAAY,QAAQ,IAAK,CAAA,SAAA,CAAU,CAAC,GAAQ,KAAA,GAAA,CAAI,QAAS,CAAA,MAAM,CAAC,CAAA,CAAA;AACtE,EAAA,IAAI,cAAc,CAAI,CAAA,EAAA;AACpB,IAAM,MAAA,UAAA,GAAY,OAAQ,CAAA,IAAA,CAAK,SAAU,CAAA,CAAC,QAAQ,GAAI,CAAA,KAAA,CAAM,gCAAgC,CAAC,CAAI,GAAA,CAAA,CAAA;AACjG,IAAA,OAAA,CAAQ,IAAK,CAAA,MAAA,CAAO,UAAW,EAAA,CAAA,EAAG,MAAM,CAAA,CAAA;AAAA,GAC1C;AAEA,EAAI,IAAA,WAAA,CAAY,KAAM,CAAA,OAAA,EAAW,EAAA;AAC/B,IAAA,QAAA,CAAS,KAAQ,GAAA,IAAA,CAAA;AAAA,GACnB;AAGA,EAAI,GAAA,CAAA,KAAA,CAAA,EAAW,YAAY,GAAG,CAAA,CAC3B,KAAK,KAAK,CAAA,CACV,KAAM,CAAA,CAACA,OAAwC,KAAA;AAC9C,IAAA,MAAM,YAAYC,KAAS,CAAA,MAAA,CAAA;AAC3B,IAAA,MAAM,YAAYA,KAAS,CAAA,OAAA,CAAA;AAE3B,IAAA,OAAO,SAAU,CAAAD,OAAK,CACnB,CAAA,IAAA,CAAK,CAAC,MAAiB,KAAA;AACtB,MAAA,OAAO,UAAU,MAAK,CAAA,CAAA;AAAA,KACvB,CACA,CAAA,IAAA,CAAK,MAAM;AACV,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA;AAAA,KACf,CAAA,CAAA;AAAA,GACJ,CAAA,CAAA;AACL;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import {run, flush, settings} from '@oclif/core'\nimport {error as kitError, environment, output} from '@shopify/cli-kit'\n\nfunction runCreateApp() {\n output.initiateLogging({filename: 'shopify.create-app.log'})\n const initIndex = process.argv.findIndex((arg) => arg.includes('init'))\n if (initIndex === -1) {\n const initIndex = process.argv.findIndex((arg) => arg.match(/bin(\\/|\\\\)(create-app|dev|run)/)) + 1\n process.argv.splice(initIndex, 0, 'init')\n }\n\n if (environment.local.isDebug()) {\n settings.debug = true\n }\n\n // Start the CLI\n run(undefined, import.meta.url)\n .then(flush)\n .catch((error: Error): Promise<void | Error> => {\n const kitMapper = kitError.mapper\n const kitHandle = kitError.handler\n // eslint-disable-next-line promise/no-nesting\n return kitMapper(error)\n .then((error: Error) => {\n return kitHandle(error)\n })\n .then(() => {\n process.exit(1)\n })\n })\n}\n\nexport default runCreateApp\n"],"names":["error","kitError"],"mappings":";;;AAGA,SAAwB,YAAA,GAAA;AACtB,EAAA,MAAA,CAAO,eAAgB,CAAA,EAAC,QAAU,EAAA,wBAAA,EAAyB,CAAA,CAAA;AAC3D,EAAM,MAAA,SAAA,GAAY,QAAQ,IAAK,CAAA,SAAA,CAAU,CAAC,GAAQ,KAAA,GAAA,CAAI,QAAS,CAAA,MAAM,CAAC,CAAA,CAAA;AACtE,EAAA,IAAI,cAAc,CAAI,CAAA,EAAA;AACpB,IAAM,MAAA,UAAA,GAAY,OAAQ,CAAA,IAAA,CAAK,SAAU,CAAA,CAAC,QAAQ,GAAI,CAAA,KAAA,CAAM,gCAAgC,CAAC,CAAI,GAAA,CAAA,CAAA;AACjG,IAAA,OAAA,CAAQ,IAAK,CAAA,MAAA,CAAO,UAAW,EAAA,CAAA,EAAG,MAAM,CAAA,CAAA;AAAA,GAC1C;AAEA,EAAI,IAAA,WAAA,CAAY,KAAM,CAAA,OAAA,EAAW,EAAA;AAC/B,IAAA,QAAA,CAAS,KAAQ,GAAA,IAAA,CAAA;AAAA,GACnB;AAGA,EAAI,GAAA,CAAA,KAAA,CAAA,EAAW,YAAY,GAAG,CAAA,CAC3B,KAAK,KAAK,CAAA,CACV,KAAM,CAAA,CAACA,OAAwC,KAAA;AAC9C,IAAA,MAAM,YAAYC,KAAS,CAAA,MAAA,CAAA;AAC3B,IAAA,MAAM,YAAYA,KAAS,CAAA,OAAA,CAAA;AAE3B,IAAA,OAAO,SAAU,CAAAD,OAAK,CACnB,CAAA,IAAA,CAAK,CAAC,MAAiB,KAAA;AACtB,MAAA,OAAO,UAAU,MAAK,CAAA,CAAA;AAAA,KACvB,CACA,CAAA,IAAA,CAAK,MAAM;AACV,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA;AAAA,KACf,CAAA,CAAA;AAAA,GACJ,CAAA,CAAA;AACL;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shopify/create-app",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.18",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A CLI tool to create a new Shopify app.",
|
|
6
6
|
"type": "module",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"@bugsnag/js": "^7.16.7",
|
|
50
50
|
"@oclif/core": "^1.0",
|
|
51
|
-
"@shopify/cli-kit": "^3.0.
|
|
51
|
+
"@shopify/cli-kit": "^3.0.18"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"vitest": "0.13.1"
|