@by-association-only/cli 4.0.2 โ†’ 4.1.0

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/dist/index.cjs CHANGED
@@ -211,7 +211,7 @@ async function validateEnvironment(initialContext) {
211
211
  initialContext.spinner.start("Welcome! Checking to make sure your environment is set up correctly.");
212
212
  const hasEnvironmentAccessToken = typeof process.env.GITHUB_TOKEN !== "undefined" && process.env.GITHUB_TOKEN.trim() !== "";
213
213
  if (!hasEnvironmentAccessToken) {
214
- import_prompts2.log.warning(`Unable to find a GITHUB_TOKEN environment variable. Please go to https://github.com/settings/tokens/new and create an access token to be able to use the CLI.`);
214
+ import_prompts2.log.warning(`Unable to find a GITHUB_TOKEN environment variable. Please go to https://github.com/settings/tokens/new?description=BAO%20CLI&scopes=repo and create an access token to be able to use the CLI.`);
215
215
  }
216
216
  const githubAccessToken = process.env.GITHUB_TOKEN || await import_prompts2.text({
217
217
  message: "Access token"
@@ -333,10 +333,13 @@ async function provisionCloudflareResources(context) {
333
333
  }
334
334
  async function cleanup(context) {
335
335
  context.spinner.start("Removing unnecessary files from the template");
336
- import_prompts2.note("Removing default shopify.app.toml", "\uD83E\uDDF9 Cleaning up");
337
336
  fs.unlinkSync(path.join(context.localPath, "shopify.app.toml"));
338
- import_prompts2.note("Removing default shopify.app.production.toml", "\uD83E\uDDF9 Cleaning up");
339
337
  fs.unlinkSync(path.join(context.localPath, "shopify.app.production.toml"));
338
+ import_prompts2.note([
339
+ "- Removed default shopify.app.toml",
340
+ "- Removed default shopify.app.production.toml"
341
+ ].join(`
342
+ `), "\uD83E\uDDF9 Cleaning up");
340
343
  context.spinner.message("Installing packages");
341
344
  const packageInstall = Bun.spawn(["bun", "install"], {
342
345
  stderr: "ignore",
@@ -371,5 +374,5 @@ if (command === "create" && subcommand === "app") {
371
374
  }
372
375
  })
373
376
 
374
- //# debugId=7EFE8FC3B5F0979E64756E2164756E21
377
+ //# debugId=1EFE0422BE0D76DF64756E2164756E21
375
378
  //# sourceMappingURL=index.js.map
package/dist/index.js CHANGED
@@ -202,7 +202,7 @@ async function validateEnvironment(initialContext) {
202
202
  initialContext.spinner.start("Welcome! Checking to make sure your environment is set up correctly.");
203
203
  const hasEnvironmentAccessToken = typeof process.env.GITHUB_TOKEN !== "undefined" && process.env.GITHUB_TOKEN.trim() !== "";
204
204
  if (!hasEnvironmentAccessToken) {
205
- log.warning(`Unable to find a GITHUB_TOKEN environment variable. Please go to https://github.com/settings/tokens/new and create an access token to be able to use the CLI.`);
205
+ log.warning(`Unable to find a GITHUB_TOKEN environment variable. Please go to https://github.com/settings/tokens/new?description=BAO%20CLI&scopes=repo and create an access token to be able to use the CLI.`);
206
206
  }
207
207
  const githubAccessToken = process.env.GITHUB_TOKEN || await text({
208
208
  message: "Access token"
@@ -324,10 +324,13 @@ async function provisionCloudflareResources(context) {
324
324
  }
325
325
  async function cleanup(context) {
326
326
  context.spinner.start("Removing unnecessary files from the template");
327
- note("Removing default shopify.app.toml", "\uD83E\uDDF9 Cleaning up");
328
327
  fs.unlinkSync(path.join(context.localPath, "shopify.app.toml"));
329
- note("Removing default shopify.app.production.toml", "\uD83E\uDDF9 Cleaning up");
330
328
  fs.unlinkSync(path.join(context.localPath, "shopify.app.production.toml"));
329
+ note([
330
+ "- Removed default shopify.app.toml",
331
+ "- Removed default shopify.app.production.toml"
332
+ ].join(`
333
+ `), "\uD83E\uDDF9 Cleaning up");
331
334
  context.spinner.message("Installing packages");
332
335
  const packageInstall = Bun.spawn(["bun", "install"], {
333
336
  stderr: "ignore",
@@ -361,5 +364,5 @@ if (command === "create" && subcommand === "app") {
361
364
  process.exit(1);
362
365
  }
363
366
 
364
- //# debugId=CECAE99CFFFDD7C164756E2164756E21
367
+ //# debugId=089482BCDEF9045564756E2164756E21
365
368
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -2,13 +2,13 @@
2
2
  "version": 3,
3
3
  "sources": ["packages/cli/src/commands/create.ts", "packages/cli/src/constants.ts", "packages/cli/src/utils.ts", "packages/cli/src/wrangler.ts", "packages/cli/src/index.ts"],
4
4
  "sourcesContent": [
5
- "import * as fs from 'node:fs'\nimport * as path from 'node:path'\nimport {\n\tintro,\n\tisCancel,\n\tlog,\n\tnote,\n\toutro,\n\tspinner,\n\ttext,\n} from '@clack/prompts'\nimport { Octokit } from 'octokit'\nimport color from 'picocolors'\nimport { APP_REFERENCE_NAME } from '../constants'\nimport type { PartialCreateContext, ValidatedCreateContext } from '../types'\nimport { GITHUB_INFO } from '../utils'\nimport {\n\tcreateD1Database,\n\tcreateKVNamespace,\n\tcreateR2Bucket,\n\tensureWranglerSessionExists,\n\ttype ResourceProvisionResult,\n\twriteWranglerConfig,\n} from '../wrangler'\n\nexport async function create(): Promise<void> {\n\tconst initialContext = await initializeContext()\n\n\tconst context = await validateEnvironment(initialContext)\n\n\tawait createGithubRepository(context)\n\tawait cloneGithubRepository(context)\n\tawait provisionCloudflareResources(context)\n\tawait cleanup(context)\n\n\tnote(\n\t\t[\n\t\t\t`1. cd ${context.localPath}`,\n\t\t\t'2. shopify app config link',\n\t\t\t'3. bun run dev',\n\t\t].join(`\\n`),\n\t\t`${color.bgYellow(color.black('Next steps.'))}`,\n\t)\n\n\toutro(\n\t\t`Go and build something ${color.underline(color.italic(color.yellow('stupendous')))}.`,\n\t)\n}\n\nasync function initializeContext(): Promise<PartialCreateContext> {\n\tintro(`Setting up a new BAO ${APP_REFERENCE_NAME} project`)\n\n\tconst appName = await text({\n\t\tmessage: 'What is the name of your project?',\n\t\tplaceholder: `my-${APP_REFERENCE_NAME.toLowerCase()}-project`,\n\t\tvalidate: (value) => {\n\t\t\tif (typeof value === 'undefined') return `You must provide a value`\n\n\t\t\tif (!value.match(/^[a-z0-9-]+$/)) {\n\t\t\t\treturn `Invalid app name: ${value}. App names can only contain lowercase letters, numbers, and dashes.`\n\t\t\t}\n\t\t},\n\t})\n\n\tif (isCancel(appName)) {\n\t\toutro(color.red('An app name is required to continue'))\n\n\t\tprocess.exit(1)\n\t}\n\n\tconst repoName = `${String(appName)}-app`\n\tconst localPath = `./${repoName}`\n\n\tif (fs.existsSync(localPath)) {\n\t\tlog.error(`Unable to continue as ${localPath} already exists`)\n\n\t\tprocess.exit(0)\n\t}\n\n\tconst s = spinner()\n\n\treturn {\n\t\tappName: String(appName),\n\t\trepoName,\n\t\tlocalPath,\n\t\tspinner: s,\n\t}\n}\n\nasync function validateEnvironment(\n\tinitialContext: PartialCreateContext,\n): Promise<ValidatedCreateContext> {\n\tinitialContext.spinner.start(\n\t\t'Welcome! Checking to make sure your environment is set up correctly.',\n\t)\n\n\tconst hasEnvironmentAccessToken =\n\t\ttypeof process.env.GITHUB_TOKEN !== 'undefined' &&\n\t\tprocess.env.GITHUB_TOKEN.trim() !== ''\n\n\tif (!hasEnvironmentAccessToken) {\n\t\tlog.warning(\n\t\t\t`Unable to find a GITHUB_TOKEN environment variable. Please go to https://github.com/settings/tokens/new and create an access token to be able to use the CLI.`,\n\t\t)\n\t}\n\n\tconst githubAccessToken =\n\t\tprocess.env.GITHUB_TOKEN ||\n\t\t(await text({\n\t\t\tmessage: 'Access token',\n\t\t}))\n\n\ttry {\n\t\tawait testGithubAccessTokenIsValid(String(githubAccessToken))\n\t} catch (error: any) {\n\t\tlog.error(`Invalid access token: ${error.message}`)\n\n\t\tprocess.exit(0)\n\t}\n\n\tawait ensureWranglerSessionExists(initialContext.spinner)\n\n\tinitialContext.spinner.stop('Validated environment')\n\n\tnote(\n\t\t'Before using R2, Queues, and Durable objects,\\n' +\n\t\t\t\"make sure you've enabled them in the Cloudflare Dashboard.\\n\" +\n\t\t\t'https://dash.cloudflare.com/\\n' +\n\t\t\t'Otherwise, the following commands might fail! ๐Ÿ˜ฌ',\n\t\t'๐Ÿ‘‹ Heads-up:',\n\t)\n\n\treturn {\n\t\t...initialContext,\n\t\tgithubPersonalAccessToken: String(githubAccessToken),\n\t\tcloudflare: {},\n\t}\n}\n\nasync function testGithubAccessTokenIsValid(\n\taccessToken: string,\n): Promise<string> {\n\tconst octokit = new Octokit({\n\t\tauth: accessToken,\n\t})\n\n\tconst {\n\t\tdata: { login },\n\t} = await octokit.rest.users.getAuthenticated()\n\n\treturn login\n}\n\nasync function createGithubRepository(\n\tcontext: ValidatedCreateContext,\n): Promise<void> {\n\tcontext.spinner.start(`Creating GitHub Repository ${context.repoName}`)\n\n\tconst octokit = new Octokit({\n\t\tauth: context.githubPersonalAccessToken,\n\t})\n\n\ttry {\n\t\tconst appRepo = await octokit.rest.repos.createUsingTemplate({\n\t\t\ttemplate_owner: GITHUB_INFO.organization,\n\t\t\ttemplate_repo: GITHUB_INFO.templateRepository,\n\t\t\towner: GITHUB_INFO.organization,\n\t\t\tname: context.repoName,\n\t\t\tprivate: true,\n\t\t})\n\n\t\tcontext.repoHttpUrl = appRepo.data.html_url\n\t\tcontext.repoSshUrl = appRepo.data.ssh_url\n\t} catch (error: any) {\n\t\tlog.error(`Unable to create Github Repository ${context.repoName}`)\n\t\tlog.error(error)\n\n\t\tprocess.exit(0)\n\t}\n\n\tcontext.spinner.stop('Github repository created! โญ')\n}\n\nasync function cloneGithubRepository(context: ValidatedCreateContext) {\n\tif (typeof context.repoSshUrl === 'undefined') {\n\t\tlog.error(\n\t\t\t`Unable to clone Github repository ${context.repoName} as can't find the .git URL`,\n\t\t)\n\n\t\tprocess.exit(0)\n\t}\n\n\tcontext.spinner.start(`Cloning ${context.repoName} from GitHub`)\n\n\tawait new Promise((resolve) => setTimeout(resolve, 5000))\n\n\tconst child = Bun.spawn(\n\t\t['git', 'clone', context.repoSshUrl, context.localPath],\n\t\t{\n\t\t\tstderr: 'ignore',\n\t\t\tstdout: 'ignore',\n\t\t},\n\t)\n\n\tawait child.exited\n\n\tif (fs.existsSync(context.localPath)) {\n\t\tcontext.spinner.stop(\n\t\t\t`Successfully cloned repository to ${context.localPath}`,\n\t\t)\n\n\t\treturn\n\t}\n\n\tcontext.spinner.stop()\n\tlog.error(`Unable to clone repository`)\n\n\tprocess.exit(0)\n}\n\nasync function provisionCloudflareResources(context: ValidatedCreateContext) {\n\tnote(\n\t\t[\n\t\t\t'Creating the following Cloudflare resources:',\n\t\t\t'- KV',\n\t\t\t'- D1',\n\t\t\t'- R2 Bucket',\n\t\t].join(`\\n`),\n\t)\n\n\tcontext.spinner.start(`Creating Cloudflare resources`)\n\n\tconst wranglerConfig = {\n\t\t$schema: 'node_modules/wrangler/config-schema.json',\n\t\tname: context.appName,\n\t\tcompatibility_date: '2025-09-21',\n\t\tcompatibility_flags: ['nodejs_compat'],\n\t\tmain: '@tanstack/react-start/server-entry',\n\t\tdev: {\n\t\t\tip: '0.0.0.0',\n\t\t\tport: 8647,\n\t\t},\n\t\tupload_source_maps: true,\n\t\tplacement: {\n\t\t\tmode: 'smart',\n\t\t},\n\t\tobservability: {\n\t\t\tenabled: true,\n\t\t},\n\t}\n\n\tawait writeWranglerConfig(\n\t\t`${context.localPath}/wrangler.json`,\n\t\twranglerConfig,\n\t)\n\n\tconst results: ResourceProvisionResult[] = []\n\n\tcontext.spinner.message(`Creating KV namespace`)\n\tresults.push(await createKVNamespace(context.appName, context.localPath))\n\n\tcontext.spinner.message(`Creating D1 database`)\n\tresults.push(await createD1Database(context.appName, context.localPath))\n\n\tcontext.spinner.message(`Creating R2 bucket`)\n\tresults.push(await createR2Bucket(context.appName, context.localPath))\n\n\tfor (const result of results) {\n\t\tif (!result.success) {\n\t\t\tlog.error(result.message)\n\n\t\t\tprocess.exit(0)\n\t\t}\n\t}\n\n\tcontext.spinner.stop('Cloudflare resources created and wrangler.json updated')\n\n\tconst allResults = results.map((r) => r.message)\n\n\tnote(allResults.join(`\\n`), \"Here's what we did:\")\n}\n\nasync function cleanup(context: ValidatedCreateContext) {\n\tcontext.spinner.start('Removing unnecessary files from the template')\n\n\tnote('Removing default shopify.app.toml', '๐Ÿงน Cleaning up')\n\n\tfs.unlinkSync(path.join(context.localPath, 'shopify.app.toml'))\n\n\tnote('Removing default shopify.app.production.toml', '๐Ÿงน Cleaning up')\n\n\tfs.unlinkSync(path.join(context.localPath, 'shopify.app.production.toml'))\n\n\tcontext.spinner.message('Installing packages')\n\n\tconst packageInstall = Bun.spawn(['bun', 'install'], {\n\t\tstderr: 'ignore',\n\t\tstdout: 'ignore',\n\t\tcwd: context.localPath,\n\t})\n\tawait packageInstall.exited\n\n\tcontext.spinner.message('Finalising app setup')\n\n\tconst gitAdd = Bun.spawn(['git', 'add', '.'], {\n\t\tstderr: 'ignore',\n\t\tstdout: 'ignore',\n\t\tcwd: context.localPath,\n\t})\n\tawait gitAdd.exited\n\n\tconst gitCommit = Bun.spawn(['git', 'commit', '-m', 'App setup'], {\n\t\tstderr: 'ignore',\n\t\tstdout: 'ignore',\n\t\tcwd: context.localPath,\n\t})\n\tawait gitCommit.exited\n\n\tcontext.spinner.stop()\n}\n",
5
+ "import * as fs from 'node:fs'\nimport * as path from 'node:path'\nimport {\n\tintro,\n\tisCancel,\n\tlog,\n\tnote,\n\toutro,\n\tspinner,\n\ttext,\n} from '@clack/prompts'\nimport { Octokit } from 'octokit'\nimport color from 'picocolors'\nimport { APP_REFERENCE_NAME } from '../constants'\nimport type { PartialCreateContext, ValidatedCreateContext } from '../types'\nimport { GITHUB_INFO } from '../utils'\nimport {\n\tcreateD1Database,\n\tcreateKVNamespace,\n\tcreateR2Bucket,\n\tensureWranglerSessionExists,\n\ttype ResourceProvisionResult,\n\twriteWranglerConfig,\n} from '../wrangler'\n\nexport async function create(): Promise<void> {\n\tconst initialContext = await initializeContext()\n\n\tconst context = await validateEnvironment(initialContext)\n\n\tawait createGithubRepository(context)\n\tawait cloneGithubRepository(context)\n\tawait provisionCloudflareResources(context)\n\tawait cleanup(context)\n\n\tnote(\n\t\t[\n\t\t\t`1. cd ${context.localPath}`,\n\t\t\t'2. shopify app config link',\n\t\t\t'3. bun run dev',\n\t\t].join(`\\n`),\n\t\t`${color.bgYellow(color.black('Next steps.'))}`,\n\t)\n\n\toutro(\n\t\t`Go and build something ${color.underline(color.italic(color.yellow('stupendous')))}.`,\n\t)\n}\n\nasync function initializeContext(): Promise<PartialCreateContext> {\n\tintro(`Setting up a new BAO ${APP_REFERENCE_NAME} project`)\n\n\tconst appName = await text({\n\t\tmessage: 'What is the name of your project?',\n\t\tplaceholder: `my-${APP_REFERENCE_NAME.toLowerCase()}-project`,\n\t\tvalidate: (value) => {\n\t\t\tif (typeof value === 'undefined') return `You must provide a value`\n\n\t\t\tif (!value.match(/^[a-z0-9-]+$/)) {\n\t\t\t\treturn `Invalid app name: ${value}. App names can only contain lowercase letters, numbers, and dashes.`\n\t\t\t}\n\t\t},\n\t})\n\n\tif (isCancel(appName)) {\n\t\toutro(color.red('An app name is required to continue'))\n\n\t\tprocess.exit(1)\n\t}\n\n\tconst repoName = `${String(appName)}-app`\n\tconst localPath = `./${repoName}`\n\n\tif (fs.existsSync(localPath)) {\n\t\tlog.error(`Unable to continue as ${localPath} already exists`)\n\n\t\tprocess.exit(0)\n\t}\n\n\tconst s = spinner()\n\n\treturn {\n\t\tappName: String(appName),\n\t\trepoName,\n\t\tlocalPath,\n\t\tspinner: s,\n\t}\n}\n\nasync function validateEnvironment(\n\tinitialContext: PartialCreateContext,\n): Promise<ValidatedCreateContext> {\n\tinitialContext.spinner.start(\n\t\t'Welcome! Checking to make sure your environment is set up correctly.',\n\t)\n\n\tconst hasEnvironmentAccessToken =\n\t\ttypeof process.env.GITHUB_TOKEN !== 'undefined' &&\n\t\tprocess.env.GITHUB_TOKEN.trim() !== ''\n\n\tif (!hasEnvironmentAccessToken) {\n\t\tlog.warning(\n\t\t\t`Unable to find a GITHUB_TOKEN environment variable. Please go to https://github.com/settings/tokens/new?description=BAO%20CLI&scopes=repo and create an access token to be able to use the CLI.`,\n\t\t)\n\t}\n\n\tconst githubAccessToken =\n\t\tprocess.env.GITHUB_TOKEN ||\n\t\t(await text({\n\t\t\tmessage: 'Access token',\n\t\t}))\n\n\ttry {\n\t\tawait testGithubAccessTokenIsValid(String(githubAccessToken))\n\t} catch (error: any) {\n\t\tlog.error(`Invalid access token: ${error.message}`)\n\n\t\tprocess.exit(0)\n\t}\n\n\tawait ensureWranglerSessionExists(initialContext.spinner)\n\n\tinitialContext.spinner.stop('Validated environment')\n\n\tnote(\n\t\t'Before using R2, Queues, and Durable objects,\\n' +\n\t\t\t\"make sure you've enabled them in the Cloudflare Dashboard.\\n\" +\n\t\t\t'https://dash.cloudflare.com/\\n' +\n\t\t\t'Otherwise, the following commands might fail! ๐Ÿ˜ฌ',\n\t\t'๐Ÿ‘‹ Heads-up:',\n\t)\n\n\treturn {\n\t\t...initialContext,\n\t\tgithubPersonalAccessToken: String(githubAccessToken),\n\t\tcloudflare: {},\n\t}\n}\n\nasync function testGithubAccessTokenIsValid(\n\taccessToken: string,\n): Promise<string> {\n\tconst octokit = new Octokit({\n\t\tauth: accessToken,\n\t})\n\n\tconst {\n\t\tdata: { login },\n\t} = await octokit.rest.users.getAuthenticated()\n\n\treturn login\n}\n\nasync function createGithubRepository(\n\tcontext: ValidatedCreateContext,\n): Promise<void> {\n\tcontext.spinner.start(`Creating GitHub Repository ${context.repoName}`)\n\n\tconst octokit = new Octokit({\n\t\tauth: context.githubPersonalAccessToken,\n\t})\n\n\ttry {\n\t\tconst appRepo = await octokit.rest.repos.createUsingTemplate({\n\t\t\ttemplate_owner: GITHUB_INFO.organization,\n\t\t\ttemplate_repo: GITHUB_INFO.templateRepository,\n\t\t\towner: GITHUB_INFO.organization,\n\t\t\tname: context.repoName,\n\t\t\tprivate: true,\n\t\t})\n\n\t\tcontext.repoHttpUrl = appRepo.data.html_url\n\t\tcontext.repoSshUrl = appRepo.data.ssh_url\n\t} catch (error: any) {\n\t\tlog.error(`Unable to create Github Repository ${context.repoName}`)\n\t\tlog.error(error)\n\n\t\tprocess.exit(0)\n\t}\n\n\tcontext.spinner.stop('Github repository created! โญ')\n}\n\nasync function cloneGithubRepository(context: ValidatedCreateContext) {\n\tif (typeof context.repoSshUrl === 'undefined') {\n\t\tlog.error(\n\t\t\t`Unable to clone Github repository ${context.repoName} as can't find the .git URL`,\n\t\t)\n\n\t\tprocess.exit(0)\n\t}\n\n\tcontext.spinner.start(`Cloning ${context.repoName} from GitHub`)\n\n\tawait new Promise((resolve) => setTimeout(resolve, 5000))\n\n\tconst child = Bun.spawn(\n\t\t['git', 'clone', context.repoSshUrl, context.localPath],\n\t\t{\n\t\t\tstderr: 'ignore',\n\t\t\tstdout: 'ignore',\n\t\t},\n\t)\n\n\tawait child.exited\n\n\tif (fs.existsSync(context.localPath)) {\n\t\tcontext.spinner.stop(\n\t\t\t`Successfully cloned repository to ${context.localPath}`,\n\t\t)\n\n\t\treturn\n\t}\n\n\tcontext.spinner.stop()\n\tlog.error(`Unable to clone repository`)\n\n\tprocess.exit(0)\n}\n\nasync function provisionCloudflareResources(context: ValidatedCreateContext) {\n\tnote(\n\t\t[\n\t\t\t'Creating the following Cloudflare resources:',\n\t\t\t'- KV',\n\t\t\t'- D1',\n\t\t\t'- R2 Bucket',\n\t\t].join(`\\n`),\n\t)\n\n\tcontext.spinner.start(`Creating Cloudflare resources`)\n\n\tconst wranglerConfig = {\n\t\t$schema: 'node_modules/wrangler/config-schema.json',\n\t\tname: context.appName,\n\t\tcompatibility_date: '2025-09-21',\n\t\tcompatibility_flags: ['nodejs_compat'],\n\t\tmain: '@tanstack/react-start/server-entry',\n\t\tdev: {\n\t\t\tip: '0.0.0.0',\n\t\t\tport: 8647,\n\t\t},\n\t\tupload_source_maps: true,\n\t\tplacement: {\n\t\t\tmode: 'smart',\n\t\t},\n\t\tobservability: {\n\t\t\tenabled: true,\n\t\t},\n\t}\n\n\tawait writeWranglerConfig(\n\t\t`${context.localPath}/wrangler.json`,\n\t\twranglerConfig,\n\t)\n\n\tconst results: ResourceProvisionResult[] = []\n\n\tcontext.spinner.message(`Creating KV namespace`)\n\tresults.push(await createKVNamespace(context.appName, context.localPath))\n\n\tcontext.spinner.message(`Creating D1 database`)\n\tresults.push(await createD1Database(context.appName, context.localPath))\n\n\tcontext.spinner.message(`Creating R2 bucket`)\n\tresults.push(await createR2Bucket(context.appName, context.localPath))\n\n\tfor (const result of results) {\n\t\tif (!result.success) {\n\t\t\tlog.error(result.message)\n\n\t\t\tprocess.exit(0)\n\t\t}\n\t}\n\n\tcontext.spinner.stop('Cloudflare resources created and wrangler.json updated')\n\n\tconst allResults = results.map((r) => r.message)\n\n\tnote(allResults.join(`\\n`), \"Here's what we did:\")\n}\n\nasync function cleanup(context: ValidatedCreateContext) {\n\tcontext.spinner.start('Removing unnecessary files from the template')\n\n\tfs.unlinkSync(path.join(context.localPath, 'shopify.app.toml'))\n\tfs.unlinkSync(path.join(context.localPath, 'shopify.app.production.toml'))\n\n\tnote(\n\t\t[\n\t\t\t'- Removed default shopify.app.toml',\n\t\t\t'- Removed default shopify.app.production.toml',\n\t\t].join(`\\n`),\n\t\t'๐Ÿงน Cleaning up',\n\t)\n\n\tcontext.spinner.message('Installing packages')\n\n\tconst packageInstall = Bun.spawn(['bun', 'install'], {\n\t\tstderr: 'ignore',\n\t\tstdout: 'ignore',\n\t\tcwd: context.localPath,\n\t})\n\tawait packageInstall.exited\n\n\tcontext.spinner.message('Finalising app setup')\n\n\tconst gitAdd = Bun.spawn(['git', 'add', '.'], {\n\t\tstderr: 'ignore',\n\t\tstdout: 'ignore',\n\t\tcwd: context.localPath,\n\t})\n\tawait gitAdd.exited\n\n\tconst gitCommit = Bun.spawn(['git', 'commit', '-m', 'App setup'], {\n\t\tstderr: 'ignore',\n\t\tstdout: 'ignore',\n\t\tcwd: context.localPath,\n\t})\n\tawait gitCommit.exited\n\n\tcontext.spinner.stop()\n}\n",
6
6
  "export const APP_REFERENCE_NAME = 'Unisian'\n",
7
7
  "export const PACKAGE_RUNNER_COMMAND = 'bunx'\n\nexport const GITHUB_INFO = {\n\torganization: 'baoagency',\n\ttemplateRepository: 'unisian',\n} as const\n",
8
8
  "import { readFile, writeFile } from 'node:fs/promises'\nimport { cancel, confirm, isCancel, type spinner } from '@clack/prompts'\nimport { APP_REFERENCE_NAME } from './constants'\nimport { PACKAGE_RUNNER_COMMAND } from './utils'\n\nexport async function runWranglerCommand(\n\tcommand: string[],\n\tcwd?: string,\n): Promise<{\n\tcode: number\n\tstdout: string\n\tstderr: string\n}> {\n\tconst child = Bun.spawn(\n\t\t[PACKAGE_RUNNER_COMMAND, 'wrangler@latest', ...command],\n\t\t{\n\t\t\tstdin: 'pipe',\n\t\t\tstderr: 'pipe',\n\t\t\tcwd,\n\t\t\tenv: {\n\t\t\t\t...process.env,\n\t\t\t\tCLOUDFLARE_ACCOUNT_ID: '824c12820335788e8daf77dba7e7891e',\n\t\t\t},\n\t\t},\n\t)\n\n\tconst stdout = await new Response(child.stdout).text()\n\tconst stderr = await new Response(child.stderr).text()\n\tconst code = await child.exited\n\n\treturn new Promise((resolve, reject) => {\n\t\tif (code === 0) {\n\t\t\tresolve({\n\t\t\t\tcode,\n\t\t\t\tstdout,\n\t\t\t\tstderr,\n\t\t\t})\n\t\t}\n\n\t\treject({\n\t\t\tcode,\n\t\t\tstdout,\n\t\t\tstderr,\n\t\t})\n\t})\n}\n\nexport async function ensureWranglerAuthenticated(): Promise<boolean> {\n\ttry {\n\t\tconst result = await runWranglerCommand(['whoami'])\n\n\t\treturn !result.stdout.includes('You are not authenticated')\n\t} catch {\n\t\t// Some older versions of Wrangler return a non-zero exit code when\n\t\t// you're not logged in.\n\t\treturn false\n\t}\n}\n\nexport async function wranglerLogin(): Promise<void> {\n\tconst child = Bun.spawn([PACKAGE_RUNNER_COMMAND, 'wrangler', 'login'], {\n\t\tstdin: 'inherit',\n\t})\n\tconst code = await child.exited\n\n\treturn await new Promise((resolve, reject) => {\n\t\tif (code === 0) {\n\t\t\tresolve()\n\t\t}\n\n\t\treject()\n\t})\n}\n\nexport async function ensureWranglerSessionExists(\n\ts: ReturnType<typeof spinner>,\n): Promise<void> {\n\ts.message(\n\t\t'Checking to make sure you have the Wrangler CLI installed and authenticated...',\n\t)\n\n\tif (!(await ensureWranglerAuthenticated())) {\n\t\ts.stop(\"Hmm. Looks like you're not logged in yet.\")\n\n\t\tconst wantsToLogIn = await confirm({\n\t\t\tmessage: `You need to be logged into wrangler to setup a ${APP_REFERENCE_NAME} app. Log in now?`,\n\t\t})\n\n\t\tif (isCancel(wantsToLogIn) || !wantsToLogIn) {\n\t\t\tcancel(\n\t\t\t\t`You need to be logged into wrangler to be able to setup a ${APP_REFERENCE_NAME} app.`,\n\t\t\t)\n\n\t\t\tprocess.exit(0)\n\t\t}\n\n\t\tawait wranglerLogin()\n\t}\n}\n\nexport async function getCurrentWranglerConfig(\n\tlocation: string,\n): Promise<Record<string, any>> {\n\treturn JSON.parse(await readFile(location, 'utf-8'))\n}\n\nexport async function writeWranglerConfig(\n\tlocation: string,\n\tconfig: Record<string, any>,\n): Promise<void> {\n\treturn await writeFile(location, JSON.stringify(config, null, 2))\n}\n\nexport type ResourceProvisionResult = {\n\tsuccess: boolean\n\tmessage: string\n}\n\nexport async function createD1Database(\n\tname: string,\n\tcwd?: string,\n): Promise<ResourceProvisionResult> {\n\ttry {\n\t\tawait runWranglerCommand(\n\t\t\t['d1', 'create', name, '--binding=DB', '--update-config=true'],\n\t\t\tcwd,\n\t\t)\n\n\t\treturn {\n\t\t\tsuccess: true,\n\t\t\tmessage: `โœ… D1 Database: ${name} created!`,\n\t\t}\n\t} catch (error: any) {\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\tmessage: `โŒ D1 Database: ${error.stderr || error.stdout || error.message}`,\n\t\t}\n\t}\n}\n\nexport async function createKVNamespace(\n\tname: string,\n\tcwd?: string,\n): Promise<ResourceProvisionResult> {\n\ttry {\n\t\tawait runWranglerCommand(\n\t\t\t[\n\t\t\t\t'kv',\n\t\t\t\t'namespace',\n\t\t\t\t'create',\n\t\t\t\tname,\n\t\t\t\t'--binding=BUCKET',\n\t\t\t\t'--update-config=true',\n\t\t\t],\n\t\t\tcwd,\n\t\t)\n\n\t\treturn {\n\t\t\tsuccess: true,\n\t\t\tmessage: `โœ… KV Namespace: ${name} created!`,\n\t\t}\n\t} catch (error: any) {\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\tmessage: `โŒ KV Namespace: ${error.stderr || error.stdout || error.message}`,\n\t\t}\n\t}\n}\n\nexport async function createR2Bucket(\n\tname: string,\n\tcwd?: string,\n): Promise<ResourceProvisionResult> {\n\ttry {\n\t\tawait runWranglerCommand(\n\t\t\t[\n\t\t\t\t'r2',\n\t\t\t\t'bucket',\n\t\t\t\t'create',\n\t\t\t\tname,\n\t\t\t\t'--binding=BUCKET',\n\t\t\t\t'--update-config=true',\n\t\t\t],\n\t\t\tcwd,\n\t\t)\n\n\t\treturn {\n\t\t\tsuccess: true,\n\t\t\tmessage: `โœ… KV Namespace: ${name} created!`,\n\t\t}\n\t} catch (error: any) {\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\tmessage: `โŒ KV Namespace: ${error.stderr || error.stdout || error.message}`,\n\t\t}\n\t}\n}\n",
9
9
  "#!/usr/bin/env bun\n\nimport { create } from './commands/create'\n\nconst args = Bun.argv.slice(2)\nconst [command, subcommand] = args\n\nif (command === 'create' && subcommand === 'app') {\n\tcreate().catch(console.error)\n} else {\n\tconsole.error('Unknown command. Usage: bao create app')\n\n\tprocess.exit(1)\n}\n"
10
10
  ],
11
- "mappings": "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",
12
- "debugId": "7EFE8FC3B5F0979E64756E2164756E21",
11
+ "mappings": "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",
12
+ "debugId": "1EFE0422BE0D76DF64756E2164756E21",
13
13
  "names": []
14
14
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@by-association-only/cli",
3
- "version": "4.0.2",
3
+ "version": "4.1.0",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"