@shopify/create-app 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 +9 -0
- package/dist/commands/init.js +11 -23
- package/dist/commands/init.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @shopify/create-app
|
|
2
2
|
|
|
3
|
+
## 2.0.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- c6a9450b: Add support to scaffold function extensions
|
|
8
|
+
- Updated dependencies [c6a9450b]
|
|
9
|
+
- Updated dependencies [70d8d50d]
|
|
10
|
+
- @shopify/cli-kit@2.0.2
|
|
11
|
+
|
|
3
12
|
## 2.0.1
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
package/dist/commands/init.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ui,
|
|
1
|
+
import { ui, constants, path, dependency, file, string, git, template, npm, output, cli } from '@shopify/cli-kit';
|
|
2
2
|
import { Writable } from 'stream';
|
|
3
3
|
import { Flags, Command } from '@oclif/core';
|
|
4
4
|
|
|
@@ -47,19 +47,6 @@ const init$1 = async (options, prompt = ui.prompt) => {
|
|
|
47
47
|
return answers;
|
|
48
48
|
};
|
|
49
49
|
|
|
50
|
-
async function downloadTemplate({ templateUrl, into }) {
|
|
51
|
-
const [repository, branch] = templateUrl.split("#");
|
|
52
|
-
const options = { "--recurse-submodules": null };
|
|
53
|
-
if (branch) {
|
|
54
|
-
options["--branch"] = branch;
|
|
55
|
-
}
|
|
56
|
-
await git.factory().clone(repository, into, options, (err) => {
|
|
57
|
-
if (err) {
|
|
58
|
-
throw new Error(err.message);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
|
|
63
50
|
async function updateCLIDependencies(packageJSON, local) {
|
|
64
51
|
packageJSON.dependencies = packageJSON.dependencies || {};
|
|
65
52
|
packageJSON.dependencies["@shopify/cli"] = constants.versions.cli;
|
|
@@ -110,12 +97,12 @@ async function getDeepInstallNPMTasks({
|
|
|
110
97
|
});
|
|
111
98
|
}
|
|
112
99
|
|
|
113
|
-
async function cleanup(
|
|
100
|
+
async function cleanup(webOutputDirectory) {
|
|
114
101
|
const gitPaths = await path.glob([
|
|
115
|
-
path.join(
|
|
116
|
-
path.join(
|
|
117
|
-
path.join(
|
|
118
|
-
path.join(
|
|
102
|
+
path.join(webOutputDirectory, "**", ".git"),
|
|
103
|
+
path.join(webOutputDirectory, "**", ".github"),
|
|
104
|
+
path.join(webOutputDirectory, "**", ".gitmodules"),
|
|
105
|
+
path.join(webOutputDirectory, "LICENSE*")
|
|
119
106
|
], {
|
|
120
107
|
dot: true,
|
|
121
108
|
onlyFiles: false,
|
|
@@ -138,9 +125,9 @@ async function init(options) {
|
|
|
138
125
|
{
|
|
139
126
|
title: "Downloading template",
|
|
140
127
|
task: async (_, task) => {
|
|
141
|
-
await
|
|
142
|
-
|
|
143
|
-
|
|
128
|
+
await git.downloadRepository({
|
|
129
|
+
repoUrl: options.template,
|
|
130
|
+
destination: templateDownloadDir
|
|
144
131
|
});
|
|
145
132
|
task.title = "Template downloaded";
|
|
146
133
|
}
|
|
@@ -228,6 +215,7 @@ const _Init = class extends Command {
|
|
|
228
215
|
};
|
|
229
216
|
let Init = _Init;
|
|
230
217
|
Init.flags = {
|
|
218
|
+
...cli.globalFlags,
|
|
231
219
|
name: Flags.string({
|
|
232
220
|
char: "n",
|
|
233
221
|
env: "SHOPIFY_FLAG_NAME",
|
|
@@ -240,7 +228,7 @@ Init.flags = {
|
|
|
240
228
|
hidden: false
|
|
241
229
|
}),
|
|
242
230
|
template: Flags.string({
|
|
243
|
-
description: "The
|
|
231
|
+
description: "The app template. Eg, --template https://github.com/Shopify/shopify-app-node",
|
|
244
232
|
env: "SHOPIFY_FLAG_TEMPLATE"
|
|
245
233
|
}),
|
|
246
234
|
"dependency-manager": Flags.string({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sources":["../../src/prompts/init.ts","../../src/utils/template/download.ts","../../src/utils/template/npm.ts","../../src/utils/template/cleanup.ts","../../src/services/init.ts","../../src/commands/init.ts"],"sourcesContent":["import {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/starter-node-app',\n }\n\n const defaults = {\n name: 'app',\n template: templateURLMap.node,\n }\n\n const questions: ui.Question[] = []\n if (!options.name) {\n questions.push({\n type: 'input',\n name: 'name',\n message: \"Your app's working name?\",\n default: defaults.name,\n validate: (value) => {\n if (value.length === 0) {\n return 'App Name cannot be empty'\n }\n if (value.length > 30) {\n return 'App name is too long (maximum is 30 characters)'\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 {git} from '@shopify/cli-kit'\n\nexport default async function downloadTemplate({templateUrl, into}: {templateUrl: string; into: string}) {\n const [repository, branch] = templateUrl.split('#')\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const options: any = {'--recurse-submodules': null}\n if (branch) {\n options['--branch'] = branch\n }\n\n await git.factory().clone(repository, into, options, (err) => {\n if (err) {\n throw new Error(err.message)\n }\n })\n}\n","import {constants, 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'] = constants.versions.cli\n packageJSON.dependencies['@shopify/app'] = constants.versions.app\n\n if (local) {\n const cliPath = `file:${(await path.findUp('packages/cli', {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(homeOutputDirectory: string) {\n const gitPaths = await path.glob(\n [\n path.join(homeOutputDirectory, '**', '.git'),\n path.join(homeOutputDirectory, '**', '.github'),\n path.join(homeOutputDirectory, '**', '.gitmodules'),\n path.join(homeOutputDirectory, 'LICENSE*'),\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 downloadTemplate from '../utils/template/download'\nimport {getDeepInstallNPMTasks, updateCLIDependencies} from '../utils/template/npm'\nimport cleanup from '../utils/template/cleanup'\n\nimport {string, path, file, output, ui, dependency, template, npm} 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 = inferDependencyManager(options.dependencyManager)\n const hyphenizedName = string.hyphenize(options.name)\n const outputDirectory = path.join(options.directory, hyphenizedName)\n\n await file.inTemporaryDirectory(async (tmpDir) => {\n const templateDownloadDir = path.join(tmpDir, 'download')\n const templateScaffoldDir = path.join(tmpDir, 'app')\n\n await file.mkdir(templateDownloadDir)\n\n const list = new ui.Listr(\n [\n {\n title: 'Downloading template',\n task: async (_, task) => {\n await downloadTemplate({\n templateUrl: options.template,\n into: templateDownloadDir,\n })\n task.title = 'Template downloaded'\n },\n },\n {\n title: `Initializing your app ${hyphenizedName}`,\n task: async (_, parentTask) => {\n return parentTask.newListr([\n {\n title: 'Parsing liquid',\n task: async (_, task) => {\n await template.recursiveDirectoryCopy(templateDownloadDir, templateScaffoldDir, {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n dependency_manager: dependencyManager,\n })\n\n task.title = 'Liquid parsed'\n },\n },\n {\n title: 'Updating package.json',\n task: async (_, task) => {\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 = 'Package.json updated'\n parentTask.title = 'App initialized'\n },\n },\n ])\n },\n },\n {\n title: `Installing dependencies with ${dependencyManager}`,\n task: async (_, parentTask) => {\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: 'Cleaning up',\n task: async (_, task) => {\n await cleanup(templateScaffoldDir)\n\n task.title = 'Completed clean up'\n },\n },\n ],\n {concurrent: false},\n )\n await list.run()\n\n await file.move(templateScaffoldDir, outputDirectory)\n })\n\n output.info(output.content`\n ${hyphenizedName} is ready to build! ✨\n Docs: ${output.token.link('Quick start guide', 'https://shopify.dev/apps/getting-started')}\n Inspiration ${output.token.command(`${dependencyManager} shopify help`)}\n `)\n}\n\nfunction inferDependencyManager(optionsDependencyManager: string | undefined): dependency.DependencyManager {\n if (optionsDependencyManager && dependency.dependencyManager.includes(optionsDependencyManager)) {\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} from '@shopify/cli-kit'\n\nexport default class Init extends Command {\n static flags = {\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 template for app home. Eg, --template https://github.com/Shopify/shopify-app-node',\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","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 {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/starter-node-app',\n }\n\n const defaults = {\n name: 'app',\n template: templateURLMap.node,\n }\n\n const questions: ui.Question[] = []\n if (!options.name) {\n questions.push({\n type: 'input',\n name: 'name',\n message: \"Your app's working name?\",\n default: defaults.name,\n validate: (value) => {\n if (value.length === 0) {\n return 'App Name cannot be empty'\n }\n if (value.length > 30) {\n return 'App name is too long (maximum is 30 characters)'\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 {constants, 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'] = constants.versions.cli\n packageJSON.dependencies['@shopify/app'] = constants.versions.app\n\n if (local) {\n const cliPath = `file:${(await path.findUp('packages/cli', {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 ],\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} 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 = inferDependencyManager(options.dependencyManager)\n const hyphenizedName = string.hyphenize(options.name)\n const outputDirectory = path.join(options.directory, hyphenizedName)\n\n await file.inTemporaryDirectory(async (tmpDir) => {\n const templateDownloadDir = path.join(tmpDir, 'download')\n const templateScaffoldDir = path.join(tmpDir, 'app')\n\n await file.mkdir(templateDownloadDir)\n\n const list = new ui.Listr(\n [\n {\n title: 'Downloading template',\n task: async (_, task) => {\n await git.downloadRepository({\n repoUrl: options.template,\n destination: templateDownloadDir,\n })\n task.title = 'Template downloaded'\n },\n },\n {\n title: `Initializing your app ${hyphenizedName}`,\n task: async (_, parentTask) => {\n return parentTask.newListr([\n {\n title: 'Parsing liquid',\n task: async (_, task) => {\n await template.recursiveDirectoryCopy(templateDownloadDir, templateScaffoldDir, {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n dependency_manager: dependencyManager,\n })\n\n task.title = 'Liquid parsed'\n },\n },\n {\n title: 'Updating package.json',\n task: async (_, task) => {\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 = 'Package.json updated'\n parentTask.title = 'App initialized'\n },\n },\n ])\n },\n },\n {\n title: `Installing dependencies with ${dependencyManager}`,\n task: async (_, parentTask) => {\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: 'Cleaning up',\n task: async (_, task) => {\n await cleanup(templateScaffoldDir)\n\n task.title = 'Completed clean up'\n },\n },\n ],\n {concurrent: false},\n )\n await list.run()\n\n await file.move(templateScaffoldDir, outputDirectory)\n })\n\n output.info(output.content`\n ${hyphenizedName} is ready to build! ✨\n Docs: ${output.token.link('Quick start guide', 'https://shopify.dev/apps/getting-started')}\n Inspiration ${output.token.command(`${dependencyManager} shopify help`)}\n `)\n}\n\nfunction inferDependencyManager(optionsDependencyManager: string | undefined): dependency.DependencyManager {\n if (optionsDependencyManager && dependency.dependencyManager.includes(optionsDependencyManager)) {\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: 'The app template. Eg, --template https://github.com/Shopify/shopify-app-node',\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","initPrompt","initService"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shopify/create-app",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A CLI tool to create a new Shopify app.",
|
|
6
6
|
"type": "module",
|
|
@@ -47,11 +47,11 @@
|
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"@bugsnag/js": "^7.16.2",
|
|
50
|
-
"@oclif/core": "1.
|
|
51
|
-
"@shopify/cli-kit": "2.0.
|
|
50
|
+
"@oclif/core": "1.7.0",
|
|
51
|
+
"@shopify/cli-kit": "2.0.2"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"vitest": "0.
|
|
54
|
+
"vitest": "0.10.0"
|
|
55
55
|
},
|
|
56
56
|
"engine-strict": true,
|
|
57
57
|
"engines": {
|