create-backpack-app 0.0.6 → 0.0.8

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.d.ts CHANGED
@@ -1 +1,14 @@
1
1
  #!/usr/bin/env node
2
+ type TemplateUrls = 'git@github.com:ef-global/storyblok-nextjs-backpack-boilerplate.git' | 'git@github.com:ef-global/nextjs-backpack-boilerplate.git' | 'git@github.com:ef-global/reactjs-backpack-boilerplate.git';
3
+
4
+ interface CLIOptions {
5
+ appName: string;
6
+ inWorkshop: boolean;
7
+ templateUrl: TemplateUrls;
8
+ spaceId?: string;
9
+ OAuthToken?: string;
10
+ sbMigFeatures: string[];
11
+ install?: boolean;
12
+ }
13
+
14
+ export { CLIOptions };
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import{execa as s}from"execa";import n from"ora";import{rimraf as R}from"rimraf";var r=async t=>{t.stdout.pipe(process.stdout),t.stderr.pipe(process.stderr);try{let{stdout:e}=await t;return e}catch(e){console.log(e)}},c=async(t,e)=>{let o=n("Cloning repo").start(),a=s(`git clone ${t} ${e}`,{shell:!0});return await r(a),o.stop(),a},m=async t=>{let e=n("Cleaning").start(),o=await R(`${t}/.git`);return e.stop(),o},u=async t=>{let e=n("Initializing GIT").start(),o=s(`cd ${t} && git init`,{shell:!0});return await r(o),e.stop(),o},g=async(t,e,o)=>{let a=n("Initializing storyblok project").start(),i=s(`cd ${t} && yarn sb-mig init project --spaceId=${e} --oauthToken=${o}`,{shell:!0});return await r(i),a.stop(),i},k=async t=>{let e=n("Installing dependencies").start(),o=s(`cd ${t} && yarn`,{shell:!0});return await r(o),e.stop(),o},y=async t=>{let e=n("Syncing schemas").start(),o=s(`cd ${t} && yarn sb-mig sync components --all --presets`,{shell:!0});return await r(o),e.stop(),o},b=async t=>{let e=n("Syncing datasources").start(),o=s(`cd ${t} && yarn sync:datasources:all`,{shell:!0});return await r(o),e.stop(),o},d=async t=>{let e=n("Syncing roles").start(),o=s(`cd ${t} && yarn sync:roles:all`,{shell:!0});return await r(o),e.stop(),o},h=async t=>{let e=n("Syncing content").start(),o=s(`cd ${t} && yarn sb-mig sync story --all`,{shell:!0});return await r(o),e.stop(),o},f=async t=>{let e=n("Creating Local HTTPs").start(),o=s(`cd ${t} && yarn create:https`,{shell:!0});return await r(o),e.stop(),o};import l from"inquirer";var W=/^(?:@[a-z0-9-*~][a-z0-9-*._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/,w=t=>{let e=t.split("/"),o=e.findIndex(i=>i.startsWith("@")),a=e[e.length-1];return e.findIndex(i=>i.startsWith("@"))!==-1&&(a=e.slice(o).join("/")),t==="."||W.test(a??"")?!0:"App name must consist of only lowercase alphanumeric characters, '-', and '_'"},S=t=>!0,x=t=>!0;var p={"Storyblok NextJS Backpack Boilerplate":"git@github.com:ef-global/storyblok-nextjs-backpack-boilerplate.git","NextJS Backpack Boilerplate":"git@github.com:ef-global/nextjs-backpack-boilerplate.git","ReactJS Backpack Boilerplate":"git@github.com:ef-global/reactjs-backpack-boilerplate.git"},T=[{name:"Storyblok NextJS Backpack Boilerplate",value:p["Storyblok NextJS Backpack Boilerplate"]},{name:"NextJS Backpack Boilerplate",value:p["NextJS Backpack Boilerplate"]},{name:"ReactJS Backpack Boilerplate",value:p["ReactJS Backpack Boilerplate"]}];var v=async()=>{let{appName:t}=await l.prompt({name:"appName",type:"input",message:"What will your project be called?",default:"new-backpack-app",validate:w,transformer:e=>e.trim()});return t},I=async()=>{let{spaceId:t}=await l.prompt({name:"spaceId",type:"input",message:"Insert your space id",default:"00000",validate:S,transformer:e=>e.trim()});return t},B=async()=>{let{OAuthToken:t}=await l.prompt({name:"OAuthToken",type:"input",message:"Insert your OAuthToken",default:"00000",validate:x,transformer:e=>e.trim()});return t},N=async()=>{let{doWeContinue:t}=await l.prompt({type:"confirm",name:"doWeContinue",message:"Do we continue?",default:!1});return t},A=async()=>{let{initGit:t}=await l.prompt({type:"confirm",name:"initGit",message:"Do you want to init new git repository?",default:!1});return t},C=async()=>{let{inWorkshop:t}=await l.prompt({type:"confirm",name:"inWorkshop",message:"Are you in workshop?",default:!1});return t},O=async()=>{let{templateUrl:t}=await l.prompt({type:"list",name:"templateUrl",message:"Select template",choices:T});return t};var $=async()=>{let t=await v();console.log(" ");let e=await I();console.log(" ");let o=await B();console.log(" ");let a=await O();if(console.log(" "),!await C()){let P=await A();console.log(" "),await m(t),P&&await u(t)}let j=await N();console.log(" "),await c(a,t),a==="git@github.com:ef-global/storyblok-nextjs-backpack-boilerplate.git"&&(await k(t),await g(t,e,o),await y(t),await h(t),await b(t),await d(t),await f(t))};$().catch(t=>{console.log("Aborting installation..."),t instanceof Error||console.log("An unknown error has occurred. Please open an issue on github with the below:"),console.log(t),process.exit(1)});
2
+ import c from"inquirer";var U=/^(?:@[a-z0-9-*~][a-z0-9-*._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/,b=t=>{let e=t.split("/"),a=e.findIndex(s=>s.startsWith("@")),o=e[e.length-1];return e.findIndex(s=>s.startsWith("@"))!==-1&&(o=e.slice(a).join("/")),t==="."||U.test(o??"")?!0:"App name must consist of only lowercase alphanumeric characters, '-', and '_'"},y=t=>!0,d=t=>!0;var g={"Storyblok NextJS Backpack Boilerplate":"git@github.com:ef-global/storyblok-nextjs-backpack-boilerplate.git","NextJS Backpack Boilerplate":"git@github.com:ef-global/nextjs-backpack-boilerplate.git","ReactJS Backpack Boilerplate":"git@github.com:ef-global/reactjs-backpack-boilerplate.git"},h=[{name:"Storyblok NextJS Backpack Boilerplate",value:g["Storyblok NextJS Backpack Boilerplate"]},{name:"NextJS Backpack Boilerplate",value:g["NextJS Backpack Boilerplate"]},{name:"ReactJS Backpack Boilerplate",value:g["ReactJS Backpack Boilerplate"]}],f=[{name:"components",checked:!0},{name:"datasources",checked:!0},{name:"roles",checked:!0},{name:"content",checked:!1}];var x=async()=>{let{appName:t}=await c.prompt({name:"appName",type:"input",message:"What will your project be called?",default:"new-backpack-app",validate:b,transformer:e=>e.trim()});return t},S=async()=>{let{spaceId:t}=await c.prompt({name:"spaceId",type:"input",message:"Insert your space id",default:"00000",validate:y,transformer:e=>e.trim()});return t},w=async()=>{let{OAuthToken:t}=await c.prompt({name:"OAuthToken",type:"input",message:"Insert your OAuthToken",default:"00000",validate:d,transformer:e=>e.trim()});return t};var I=async()=>{let{inWorkshop:t}=await c.prompt({type:"confirm",name:"inWorkshop",message:"Are you in workshop?",default:!1});return t},T=async()=>{let{install:t}=await c.prompt({type:"confirm",name:"install",message:"Do you want to run auto configuration (packages install, syncing components, initializing project)?",default:!0});return t},v=async()=>{let{templateUrl:t}=await c.prompt({type:"list",name:"templateUrl",message:"Select template",choices:h});return t},M=async()=>{let{sbMigFeatures:t}=await c.prompt({type:"checkbox",name:"sbMigFeatures",message:"What would you like to sync initially ?",choices:f});return t};import{execa as i}from"execa";import r from"ora";import{rimraf as R}from"rimraf";var l=async t=>{t.stdout.pipe(process.stdout),t.stderr.pipe(process.stderr);try{let{stdout:e}=await t;return e}catch(e){console.log(e)}},p=()=>{let t=process.env.npm_config_user_agent;return t&&t.startsWith("yarn")?"yarn":"npm"},P=async(t,e)=>{let a=r("Cloning repo").start(),o=i(`git clone ${t} ${e}`,{shell:!0});return await l(o),a.stop(),o},k=async t=>{let e=r("Cleaning").start(),a=await R(`${t}/.git`);return e.stop(),a},$=async t=>{let e=r("Initializing GIT").start(),a=i(`cd ${t} && git init`,{shell:!0});return await l(a),e.stop(),a},B=async(t,e,a)=>{let o=r("Initializing storyblok project").start(),s=i(`cd ${t} && sb-mig init project --spaceId=${e} --oauthToken=${a}`,{shell:!0});return await l(s),o.stop(),s},N=async t=>{let e=r("Installing dependencies").start(),a=p();console.log("This is current user package manage: "),console.log(a);let o=i(`cd ${t} && ${a} install`,{shell:!0});return await l(o),e.stop(),o},A=async t=>{let e=r("Syncing schemas").start(),a=p(),o=i(`cd ${t} && ${a==="npm"?`${a} run`:a} sync:components:all`,{shell:!0});return await l(o),e.stop(),o},C=async t=>{let e=r("Syncing datasources").start(),a=p(),o=i(`cd ${t} && ${a==="npm"?`${a} run`:a} sync:datasources:all`,{shell:!0});return await l(o),e.stop(),o},O=async t=>{let e=r("Syncing roles").start(),a=p(),o=i(`cd ${t} && ${a==="npm"?`${a} run`:a} sync:roles:all`,{shell:!0});return await l(o),e.stop(),o},j=async t=>{let e=r("Syncing content").start(),a=p(),o=i(`cd ${t} && ${a==="npm"?`${a} run`:a} sync:contents:all:yes`,{shell:!0});return await l(o),e.stop(),o},F=async t=>{let e=r("Creating Local HTTPs").start(),a=p(),o=i(`cd ${t} && ${a==="npm"?`${a} run`:a} create:https`,{shell:!0});return await l(o),e.stop(),o};var W=async t=>{console.log("cliOptions to run cli command with: ",{cliOptions:t});let{templateUrl:e,sbMigFeatures:a,spaceId:o="",OAuthToken:s="",appName:n,inWorkshop:m=!1}=t;if(await P(e,n),m||(await k(n),await $(n)),m||await k(n),t.install&&await N(n),e==="git@github.com:ef-global/storyblok-nextjs-backpack-boilerplate.git"&&t.install)try{console.log("you've selecvted storyblok-nextjs-backpack-boilerplate"),await B(n,o,s),await F(n),a.includes("components")&&await A(n),a.includes("datasources")&&await C(n),a.includes("roles")&&await O(n),a.includes("content")&&await j(n)}catch(u){console.log("error happened..."),console.log(u)}};var J=async()=>{let t={},e=await x();t.appName=e,console.log(" ");let a=await I();t.inWorkshop=a;let o=await v();t.templateUrl=o,console.log(" ");let s=await T();if(t.install=s,o==="git@github.com:ef-global/storyblok-nextjs-backpack-boilerplate.git"&&t.install){console.log("you've selecvted storyblok-nextjs-backpack-boilerplate");let n=await M();t.sbMigFeatures=n,console.log(" ");let m=await S();t.spaceId=m,console.log(" ");let u=await w();t.OAuthToken=u,console.log(" ")}await W(t)};J().catch(t=>{console.log("Aborting installation..."),t instanceof Error||console.log("An unknown error has occurred. Please open an issue on github with the below:"),console.log(t),process.exit(1)});
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.ts","../src/prompts.ts","../src/validators.ts","../src/constants.ts","../src/index.ts"],"sourcesContent":["import {execa} from \"execa\";\nimport ora from \"ora\";\nimport {rimraf} from \"rimraf\";\n\nconst pipeOut = async (result: any) => {\n result.stdout.pipe(process.stdout);\n result.stderr.pipe(process.stderr);\n try {\n const {stdout} = await result;\n\n return stdout\n } catch (e) {\n console.log(e)\n }\n}\n\nexport const cloneRepo = async (boilerplateUrl: string, nameOfFolder: string) => {\n const spinner = ora('Cloning repo').start();\n\n const result = execa(\n `git clone ${boilerplateUrl} ${nameOfFolder}`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}\n\nexport const removeInitialGitDirectory = async (appName: string) => {\n const spinner = ora('Cleaning').start();\n\n const result = await rimraf(`${appName}/.git`)\n\n spinner.stop();\n\n return result\n}\n\nexport const initializeGit = async (appName: string) => {\n const spinner = ora('Initializing GIT').start();\n\n const result = execa(\n `cd ${appName} && git init`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}\n\nexport const invokeSbMigInit = async (appName: string, spaceId: string, OAuthToken: string) => {\n const spinner = ora('Initializing storyblok project').start();\n\n const result = execa(\n `cd ${appName} && yarn sb-mig init project --spaceId=${spaceId} --oauthToken=${OAuthToken}`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}\n\nexport const installDeps = async (appName: string) => {\n const spinner = ora('Installing dependencies').start();\n\n const result = execa(\n `cd ${appName} && yarn`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}\n\n// \"yarn sync:components:all && yarn sync:contents:all && yarn create:https\"\n\nexport const invokeSbMigSyncComponents = async (appName: string) => {\n const spinner = ora('Syncing schemas').start();\n\n const result = execa(\n `cd ${appName} && yarn sb-mig sync components --all --presets`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}\n\nexport const invokeSbMigSyncDatasources = async (appName: string) => {\n const spinner = ora('Syncing datasources').start();\n\n const result = execa(\n `cd ${appName} && yarn sync:datasources:all`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}\n\nexport const invokeSbMigSyncRoles = async (appName: string) => {\n const spinner = ora('Syncing roles').start();\n\n const result = execa(\n `cd ${appName} && yarn sync:roles:all`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}\n\nexport const invokeSbMigSyncContents = async (appName: string) => {\n const spinner = ora('Syncing content').start();\n\n const result = execa(\n `cd ${appName} && yarn sb-mig sync story --all`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}\n\nexport const createLocalHTTPS = async (appName: string) => {\n const spinner = ora('Creating Local HTTPs').start();\n\n const result = execa(\n `cd ${appName} && yarn create:https`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}","import inquirer from \"inquirer\";\nimport {validateAppName, validateSpaceId, valdiateOAuthToken} from \"./validators.js\";\nimport {availableTemplates, TemplateUrls} from \"./constants.js\";\n\ninterface CliFlags {\n noGit: boolean;\n noInstall: boolean;\n default: boolean;\n importAlias: string;\n}\n\n\ninterface CliResults {\n appName: string;\n spaceId: string;\n OAuthToken: string;\n flags: CliFlags;\n}\n\n\nexport const promptAppName = async (): Promise<string> => {\n const { appName } = await inquirer.prompt<Pick<CliResults, \"appName\">>({\n name: \"appName\",\n type: \"input\",\n message: \"What will your project be called?\",\n default: 'new-backpack-app',\n validate: validateAppName,\n transformer: (input: string) => {\n return input.trim();\n },\n });\n\n return appName;\n};\n\nexport const promptSpaceId = async (): Promise<string> => {\n const { spaceId } = await inquirer.prompt<Pick<CliResults, \"spaceId\">>({\n name: \"spaceId\",\n type: \"input\",\n message: \"Insert your space id\",\n default: '00000',\n validate: validateSpaceId,\n transformer: (input: string) => {\n return input.trim();\n },\n });\n\n return spaceId;\n};\n\nexport const promptOAuthToken = async (): Promise<string> => {\n const { OAuthToken } = await inquirer.prompt<Pick<CliResults, \"OAuthToken\">>({\n name: \"OAuthToken\",\n type: \"input\",\n message: \"Insert your OAuthToken\",\n default: '00000',\n validate: valdiateOAuthToken,\n transformer: (input: string) => {\n return input.trim();\n },\n });\n\n return OAuthToken;\n};\n\nexport const promptContinue = async (): Promise<boolean> => {\n const {doWeContinue} = await inquirer.prompt<{ doWeContinue: boolean }>({\n type: 'confirm',\n name: 'doWeContinue',\n message: 'Do we continue?',\n default: false,\n })\n\n return doWeContinue;\n}\n\nexport const promptInitGit = async (): Promise<boolean> => {\n const {initGit} = await inquirer.prompt<{ initGit: boolean }>({\n type: 'confirm',\n name: 'initGit',\n message: 'Do you want to init new git repository?',\n default: false,\n })\n\n return initGit;\n}\n\nexport const promptIfInWorkshop = async (): Promise<boolean> => {\n const {inWorkshop} = await inquirer.prompt<{ inWorkshop: boolean }>({\n type: 'confirm',\n name: 'inWorkshop',\n message: 'Are you in workshop?',\n default: false,\n })\n\n return inWorkshop;\n}\n\nexport const promptList = async (): Promise<TemplateUrls> => {\n const {templateUrl} = await inquirer.prompt<{ templateUrl: TemplateUrls }>({\n type: 'list',\n name: 'templateUrl',\n message: 'Select template',\n choices: availableTemplates,\n },)\n\n return templateUrl;\n}\n\n","const validationRegExp =\n /^(?:@[a-z0-9-*~][a-z0-9-*._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*$/;\n\n//Validate a string against allowed package.json names\nexport const validateAppName = (input: string) => {\n const paths = input.split(\"/\");\n\n // If the first part is a @, it's a scoped package\n const indexOfDelimiter = paths.findIndex((p) => p.startsWith(\"@\"));\n\n let appName = paths[paths.length - 1];\n if (paths.findIndex((p) => p.startsWith(\"@\")) !== -1) {\n appName = paths.slice(indexOfDelimiter).join(\"/\");\n }\n\n if (input === \".\" || validationRegExp.test(appName ?? \"\")) {\n return true;\n } else {\n return \"App name must consist of only lowercase alphanumeric characters, '-', and '_'\";\n }\n};\n\nexport const validateSpaceId = (input: string) => {\n // TODO: make space id validation\n return true\n};\n\nexport const valdiateOAuthToken = (input: string) => {\n // TODO: make OAuthToken validation\n return true\n};\n\n\n","export type TemplateNames = 'Storyblok NextJS Backpack Boilerplate' | 'NextJS Backpack Boilerplate' | 'ReactJS Backpack Boilerplate';\nexport type TemplateUrls = 'git@github.com:ef-global/storyblok-nextjs-backpack-boilerplate.git' | 'git@github.com:ef-global/nextjs-backpack-boilerplate.git' | 'git@github.com:ef-global/reactjs-backpack-boilerplate.git';\n\nexport const templates: Record<TemplateNames, TemplateUrls> = {\n 'Storyblok NextJS Backpack Boilerplate': \"git@github.com:ef-global/storyblok-nextjs-backpack-boilerplate.git\",\n 'NextJS Backpack Boilerplate': \"git@github.com:ef-global/nextjs-backpack-boilerplate.git\",\n 'ReactJS Backpack Boilerplate': \"git@github.com:ef-global/reactjs-backpack-boilerplate.git\",\n} as const\n\n\ninterface TemplateObj {\n name: TemplateNames,\n value: TemplateUrls\n}\n\n\nexport const availableTemplates: TemplateObj[] = [\n {\n name: 'Storyblok NextJS Backpack Boilerplate',\n value: templates['Storyblok NextJS Backpack Boilerplate']\n },\n {\n name: 'NextJS Backpack Boilerplate',\n value: templates['NextJS Backpack Boilerplate']\n },\n {\n name: 'ReactJS Backpack Boilerplate',\n value: templates['ReactJS Backpack Boilerplate']\n }\n]","#!/usr/bin/env node\n\nimport {\n cloneRepo,\n removeInitialGitDirectory,\n initializeGit,\n invokeSbMigInit,\n invokeSbMigSyncComponents, installDeps, invokeSbMigSyncRoles, invokeSbMigSyncDatasources, createLocalHTTPS, invokeSbMigSyncContents\n} from \"./utils.js\";\nimport {\n promptAppName,\n promptContinue,\n promptInitGit,\n promptList,\n promptOAuthToken,\n promptSpaceId,\n promptIfInWorkshop\n} from \"./prompts.js\";\n\n\nconst main = async () => {\n const appName = await promptAppName()\n console.log(\" \")\n\n const spaceId = await promptSpaceId()\n console.log(\" \")\n\n const OAuthToken = await promptOAuthToken()\n console.log(\" \")\n\n const templateUrl = await promptList()\n console.log(\" \")\n\n const inWorkshop = await promptIfInWorkshop()\n\n if(inWorkshop) {\n ;\n } else {\n const initGit = await promptInitGit()\n console.log(\" \")\n\n await removeInitialGitDirectory(appName)\n\n if(initGit) {\n await initializeGit(appName)\n }\n }\n\n\n const doWeContinue = await promptContinue()\n console.log(\" \")\n\n await cloneRepo(templateUrl, appName)\n\n\n\n if(templateUrl === 'git@github.com:ef-global/storyblok-nextjs-backpack-boilerplate.git') {\n await installDeps(appName)\n await invokeSbMigInit(appName, spaceId, OAuthToken)\n await invokeSbMigSyncComponents(appName)\n\n // TODO: need to fix syncing content first\n await invokeSbMigSyncContents(appName)\n\n await invokeSbMigSyncDatasources(appName)\n await invokeSbMigSyncRoles(appName)\n await createLocalHTTPS(appName)\n }\n}\n\nmain().catch((err) => {\n console.log(\"Aborting installation...\");\n if (err instanceof Error) {\n console.log(err);\n } else {\n console.log(\n \"An unknown error has occurred. Please open an issue on github with the below:\",\n );\n console.log(err);\n }\n process.exit(1);\n});"],"mappings":"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","names":["execa","ora","rimraf","pipeOut","result","stdout","cloneRepo","boilerplateUrl","nameOfFolder","spinner","removeInitialGitDirectory","appName","initializeGit","invokeSbMigInit","spaceId","OAuthToken","installDeps","invokeSbMigSyncComponents","invokeSbMigSyncDatasources","invokeSbMigSyncRoles","invokeSbMigSyncContents","createLocalHTTPS","inquirer","validationRegExp","validateAppName","input","paths","indexOfDelimiter","p","appName","validateSpaceId","valdiateOAuthToken","templates","availableTemplates","promptAppName","appName","inquirer","validateAppName","input","promptSpaceId","spaceId","validateSpaceId","promptOAuthToken","OAuthToken","valdiateOAuthToken","promptContinue","doWeContinue","promptInitGit","initGit","promptIfInWorkshop","inWorkshop","promptList","templateUrl","availableTemplates","main","appName","promptAppName","spaceId","promptSpaceId","OAuthToken","promptOAuthToken","templateUrl","promptList","promptIfInWorkshop","initGit","promptInitGit","removeInitialGitDirectory","initializeGit","doWeContinue","promptContinue","cloneRepo","installDeps","invokeSbMigInit","invokeSbMigSyncComponents","invokeSbMigSyncContents","invokeSbMigSyncDatasources","invokeSbMigSyncRoles","createLocalHTTPS","err"]}
1
+ {"version":3,"sources":["../src/prompts.ts","../src/validators.ts","../src/constants.ts","../src/utils.ts","../src/execute.ts","../src/index.ts"],"sourcesContent":["import inquirer from \"inquirer\";\nimport {validateAppName, validateSpaceId, valdiateOAuthToken} from \"./validators.js\";\nimport {availableSbMigFeatures, availableTemplates, TemplateUrls} from \"./constants.js\";\n\ninterface CliFlags {\n noGit: boolean;\n noInstall: boolean;\n default: boolean;\n importAlias: string;\n}\n\n\ninterface CliResults {\n appName: string;\n spaceId: string;\n OAuthToken: string;\n flags: CliFlags;\n}\n\n\nexport const promptAppName = async (): Promise<string> => {\n const { appName } = await inquirer.prompt<Pick<CliResults, \"appName\">>({\n name: \"appName\",\n type: \"input\",\n message: \"What will your project be called?\",\n default: 'new-backpack-app',\n validate: validateAppName,\n transformer: (input: string) => {\n return input.trim();\n },\n });\n\n return appName;\n};\n\nexport const promptSpaceId = async (): Promise<string> => {\n const { spaceId } = await inquirer.prompt<Pick<CliResults, \"spaceId\">>({\n name: \"spaceId\",\n type: \"input\",\n message: \"Insert your space id\",\n default: '00000',\n validate: validateSpaceId,\n transformer: (input: string) => {\n return input.trim();\n },\n });\n\n return spaceId;\n};\n\nexport const promptOAuthToken = async (): Promise<string> => {\n const { OAuthToken } = await inquirer.prompt<Pick<CliResults, \"OAuthToken\">>({\n name: \"OAuthToken\",\n type: \"input\",\n message: \"Insert your OAuthToken\",\n default: '00000',\n validate: valdiateOAuthToken,\n transformer: (input: string) => {\n return input.trim();\n },\n });\n\n return OAuthToken;\n};\n\nexport const promptContinue = async (): Promise<boolean> => {\n const {doWeContinue} = await inquirer.prompt<{ doWeContinue: boolean }>({\n type: 'confirm',\n name: 'doWeContinue',\n message: 'Do we continue?',\n default: false,\n })\n\n return doWeContinue;\n}\n\nexport const promptInitGit = async (): Promise<boolean> => {\n const {initGit} = await inquirer.prompt<{ initGit: boolean }>({\n type: 'confirm',\n name: 'initGit',\n message: 'Do you want to init new git repository?',\n default: false,\n })\n\n return initGit;\n}\n\nexport const promptIfInWorkshop = async (): Promise<boolean> => {\n const {inWorkshop} = await inquirer.prompt<{ inWorkshop: boolean }>({\n type: 'confirm',\n name: 'inWorkshop',\n message: 'Are you in workshop?',\n default: false,\n })\n\n return inWorkshop;\n}\n\nexport const promptInstall = async (): Promise<boolean> => {\n const {install} = await inquirer.prompt<{ install: boolean }>({\n type: 'confirm',\n name: 'install',\n message: 'Do you want to run auto configuration (packages install, syncing components, initializing project)?',\n default: true,\n })\n\n return install;\n}\n\nexport const promptList = async (): Promise<TemplateUrls> => {\n const {templateUrl} = await inquirer.prompt<{ templateUrl: TemplateUrls }>({\n type: 'list',\n name: 'templateUrl',\n message: 'Select template',\n choices: availableTemplates,\n },)\n\n return templateUrl;\n}\n\n\nexport const promptSbMigFeatures = async (): Promise<any> => {\n const {sbMigFeatures} = await inquirer.prompt<{ sbMigFeatures: any }>({\n type: \"checkbox\",\n name: 'sbMigFeatures',\n message: 'What would you like to sync initially ?',\n choices: availableSbMigFeatures,\n },)\n\n return sbMigFeatures;\n}\n\n","const validationRegExp =\n /^(?:@[a-z0-9-*~][a-z0-9-*._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*$/;\n\n//Validate a string against allowed package.json names\nexport const validateAppName = (input: string) => {\n const paths = input.split(\"/\");\n\n // If the first part is a @, it's a scoped package\n const indexOfDelimiter = paths.findIndex((p) => p.startsWith(\"@\"));\n\n let appName = paths[paths.length - 1];\n if (paths.findIndex((p) => p.startsWith(\"@\")) !== -1) {\n appName = paths.slice(indexOfDelimiter).join(\"/\");\n }\n\n if (input === \".\" || validationRegExp.test(appName ?? \"\")) {\n return true;\n } else {\n return \"App name must consist of only lowercase alphanumeric characters, '-', and '_'\";\n }\n};\n\nexport const validateSpaceId = (input: string) => {\n // TODO: make space id validation\n return true\n};\n\nexport const valdiateOAuthToken = (input: string) => {\n // TODO: make OAuthToken validation\n return true\n};\n\n\n","export type TemplateNames = 'Storyblok NextJS Backpack Boilerplate' | 'NextJS Backpack Boilerplate' | 'ReactJS Backpack Boilerplate';\nexport type TemplateUrls = 'git@github.com:ef-global/storyblok-nextjs-backpack-boilerplate.git' | 'git@github.com:ef-global/nextjs-backpack-boilerplate.git' | 'git@github.com:ef-global/reactjs-backpack-boilerplate.git';\n\nexport const templates: Record<TemplateNames, TemplateUrls> = {\n 'Storyblok NextJS Backpack Boilerplate': \"git@github.com:ef-global/storyblok-nextjs-backpack-boilerplate.git\",\n 'NextJS Backpack Boilerplate': \"git@github.com:ef-global/nextjs-backpack-boilerplate.git\",\n 'ReactJS Backpack Boilerplate': \"git@github.com:ef-global/reactjs-backpack-boilerplate.git\",\n} as const\n\n\ninterface TemplateObj {\n name: TemplateNames,\n value: TemplateUrls\n}\n\n\nexport const availableTemplates: TemplateObj[] = [\n {\n name: 'Storyblok NextJS Backpack Boilerplate',\n value: templates['Storyblok NextJS Backpack Boilerplate']\n },\n {\n name: 'NextJS Backpack Boilerplate',\n value: templates['NextJS Backpack Boilerplate']\n },\n {\n name: 'ReactJS Backpack Boilerplate',\n value: templates['ReactJS Backpack Boilerplate']\n }\n]\n\n\nexport type SbMigFeature = 'components' | 'datasources' | 'roles' | 'content';\n\ninterface SbMigFeatures {\n name: SbMigFeature,\n checked: boolean\n}\n\nexport const availableSbMigFeatures: SbMigFeatures[] = [\n {\n name: 'components',\n checked: true,\n },\n {\n name: 'datasources',\n checked: true,\n },\n {\n name: 'roles',\n checked: true,\n },\n {\n name: 'content',\n checked: false,\n },\n]","import {execa} from \"execa\";\nimport ora from \"ora\";\nimport {rimraf} from \"rimraf\";\n\nexport type PackageManager = \"npm\" | \"yarn\";\n\nconst pipeOut = async (result: any) => {\n result.stdout.pipe(process.stdout);\n result.stderr.pipe(process.stderr);\n try {\n const {stdout} = await result;\n\n return stdout\n } catch (e) {\n console.log(e)\n }\n}\n\n\nexport const getUserPkgManager: () => PackageManager = () => {\n // This environment variable is set by npm and yarn but pnpm seems less consistent\n const userAgent = process.env.npm_config_user_agent;\n\n if (userAgent) {\n if (userAgent.startsWith(\"yarn\")) {\n return \"yarn\";\n } else {\n return \"npm\";\n }\n } else {\n // If no user agent is set, assume npm\n return \"npm\";\n }\n};\n\n\nexport const cloneRepo = async (boilerplateUrl: string, nameOfFolder: string) => {\n const spinner = ora('Cloning repo').start();\n\n const result = execa(\n `git clone ${boilerplateUrl} ${nameOfFolder}`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}\n\nexport const removeInitialGitDirectory = async (appName: string) => {\n const spinner = ora('Cleaning').start();\n\n const result = await rimraf(`${appName}/.git`)\n\n spinner.stop();\n\n return result\n}\n\nexport const initializeGit = async (appName: string) => {\n const spinner = ora('Initializing GIT').start();\n\n const result = execa(\n `cd ${appName} && git init`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}\n\nexport const invokeSbMigInit = async (appName: string, spaceId: string, OAuthToken: string) => {\n const spinner = ora('Initializing storyblok project').start();\n\n const result = execa(\n `cd ${appName} && sb-mig init project --spaceId=${spaceId} --oauthToken=${OAuthToken}`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}\n\nexport const installDeps = async (appName: string) => {\n const spinner = ora('Installing dependencies').start();\n\n const userPackageManager = getUserPkgManager();\n\n console.log(\"This is current user package manage: \")\n console.log(userPackageManager)\n\n const result = execa(\n `cd ${appName} && ${userPackageManager} install`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}\n\n// \"yarn sync:components:all && yarn sync:contents:all && yarn create:https\"\n\nexport const invokeSbMigSyncComponents = async (appName: string) => {\n const spinner = ora('Syncing schemas').start();\n\n const userPackageManager = getUserPkgManager();\n\n const result = execa(\n `cd ${appName} && ${userPackageManager === 'npm' ? `${userPackageManager} run` : userPackageManager} sync:components:all`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}\n\nexport const invokeSbMigSyncDatasources = async (appName: string) => {\n const spinner = ora('Syncing datasources').start();\n\n const userPackageManager = getUserPkgManager();\n\n const result = execa(\n `cd ${appName} && ${userPackageManager === 'npm' ? `${userPackageManager} run` : userPackageManager} sync:datasources:all`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}\n\nexport const invokeSbMigSyncRoles = async (appName: string) => {\n const spinner = ora('Syncing roles').start();\n\n const userPackageManager = getUserPkgManager();\n\n const result = execa(\n `cd ${appName} && ${userPackageManager === 'npm' ? `${userPackageManager} run` : userPackageManager} sync:roles:all`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}\n\nexport const invokeSbMigSyncContents = async (appName: string) => {\n const spinner = ora('Syncing content').start();\n\n const userPackageManager = getUserPkgManager();\n\n const result = execa(\n `cd ${appName} && ${userPackageManager === 'npm' ? `${userPackageManager} run` : userPackageManager} sync:contents:all:yes`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}\n\nexport const createLocalHTTPS = async (appName: string) => {\n const spinner = ora('Creating Local HTTPs').start();\n\n const userPackageManager = getUserPkgManager();\n\n const result = execa(\n `cd ${appName} && ${userPackageManager === 'npm' ? `${userPackageManager} run` : userPackageManager} create:https`,\n {\n shell: true\n }\n )\n\n await pipeOut(result)\n\n spinner.stop();\n\n return result\n}","import type {CLIOptions} from \"./index.js\";\nimport {\n cloneRepo, createLocalHTTPS,\n initializeGit,\n installDeps,\n invokeSbMigInit,\n invokeSbMigSyncComponents, invokeSbMigSyncDatasources, invokeSbMigSyncRoles, invokeSbMigSyncContents,\n removeInitialGitDirectory\n} from \"./utils.js\";\n\nexport const execute = async (cliOptions: CLIOptions) => {\n console.log(\"cliOptions to run cli command with: \", {cliOptions})\n const {\n templateUrl,\n sbMigFeatures,\n spaceId = '',\n OAuthToken = '',\n appName,\n inWorkshop = false\n } = cliOptions\n\n await cloneRepo(templateUrl, appName)\n if(!inWorkshop) {\n await removeInitialGitDirectory(appName)\n await initializeGit(appName)\n }\n if(!inWorkshop) {\n await removeInitialGitDirectory(appName)\n }\n\n if(cliOptions['install']) {\n await installDeps(appName)\n }\n\n if (templateUrl === 'git@github.com:ef-global/storyblok-nextjs-backpack-boilerplate.git' && cliOptions['install']) {\n try {\n console.log(\"you've selecvted storyblok-nextjs-backpack-boilerplate\")\n await invokeSbMigInit(appName, spaceId, OAuthToken)\n await createLocalHTTPS(appName)\n\n if(sbMigFeatures.includes('components')) {\n await invokeSbMigSyncComponents(appName)\n }\n\n if(sbMigFeatures.includes('datasources')) {\n await invokeSbMigSyncDatasources(appName)\n }\n\n if(sbMigFeatures.includes('roles')) {\n await invokeSbMigSyncRoles(appName)\n }\n\n if(sbMigFeatures.includes('content')) {\n await invokeSbMigSyncContents(appName)\n }\n } catch (e) {\n console.log(\"error happened...\")\n console.log(e)\n }\n }\n}","#!/usr/bin/env node\n\nimport {\n promptAppName,\n promptList,\n promptOAuthToken,\n promptSpaceId,\n promptIfInWorkshop, promptSbMigFeatures, promptInstall\n} from \"./prompts.js\";\nimport {execute} from \"./execute.js\";\nimport {TemplateUrls} from \"./constants.js\";\n\nexport interface CLIOptions {\n appName: string;\n inWorkshop: boolean;\n templateUrl: TemplateUrls;\n spaceId?: string;\n OAuthToken?: string;\n sbMigFeatures: string[];\n install?: boolean;\n}\n\n\nconst main = async () => {\n const cliOptions = {} as CLIOptions;\n\n const appName = await promptAppName()\n cliOptions['appName'] = appName;\n console.log(\" \")\n\n const inWorkshop = await promptIfInWorkshop()\n cliOptions['inWorkshop'] = inWorkshop;\n\n const templateUrl = await promptList()\n cliOptions['templateUrl'] = templateUrl;\n console.log(\" \")\n\n const install = await promptInstall();\n cliOptions['install'] = install;\n\n if (templateUrl === 'git@github.com:ef-global/storyblok-nextjs-backpack-boilerplate.git' && cliOptions['install']) {\n console.log(\"you've selecvted storyblok-nextjs-backpack-boilerplate\")\n const sbMigFeatures = await promptSbMigFeatures()\n cliOptions['sbMigFeatures'] = sbMigFeatures;\n console.log(\" \")\n\n const spaceId = await promptSpaceId()\n cliOptions['spaceId'] = spaceId;\n console.log(\" \")\n\n const OAuthToken = await promptOAuthToken()\n cliOptions['OAuthToken'] = OAuthToken;\n console.log(\" \");\n }\n\n await execute(cliOptions)\n}\n\nmain().catch((err) => {\n console.log(\"Aborting installation...\");\n if (err instanceof Error) {\n console.log(err);\n } else {\n console.log(\n \"An unknown error has occurred. Please open an issue on github with the below:\",\n );\n console.log(err);\n }\n process.exit(1);\n});"],"mappings":";AAAA,OAAOA,MAAc,WCArB,IAAMC,EACF,6DAGSC,EAAmBC,GAAkB,CAC9C,IAAMC,EAAQD,EAAM,MAAM,GAAG,EAGvBE,EAAmBD,EAAM,UAAWE,GAAMA,EAAE,WAAW,GAAG,CAAC,EAE7DC,EAAUH,EAAMA,EAAM,OAAS,CAAC,EAKpC,OAJIA,EAAM,UAAWE,GAAMA,EAAE,WAAW,GAAG,CAAC,IAAM,KAC9CC,EAAUH,EAAM,MAAMC,CAAgB,EAAE,KAAK,GAAG,GAGhDF,IAAU,KAAOF,EAAiB,KAAKM,GAAW,EAAE,EAC7C,GAEA,+EAEf,EAEaC,EAAmBL,GAErB,GAGEM,EAAsBN,GAExB,GC1BJ,IAAMO,EAAiD,CAC1D,wCAAyC,qEACzC,8BAA+B,2DAC/B,+BAAgC,2DACpC,EASaC,EAAoC,CAC7C,CACI,KAAM,wCACN,MAAOD,EAAU,uCAAuC,CAC5D,EACA,CACI,KAAM,8BACN,MAAOA,EAAU,6BAA6B,CAClD,EACA,CACI,KAAM,+BACN,MAAOA,EAAU,8BAA8B,CACnD,CACJ,EAUaE,EAA0C,CACnD,CACI,KAAM,aACN,QAAS,EACb,EACA,CACI,KAAM,cACN,QAAS,EACb,EACA,CACI,KAAM,QACN,QAAS,EACb,EACA,CACI,KAAM,UACN,QAAS,EACb,CACJ,EFpCO,IAAMC,EAAgB,SAA6B,CACtD,GAAM,CAAE,QAAAC,CAAQ,EAAI,MAAMC,EAAS,OAAoC,CACnE,KAAM,UACN,KAAM,QACN,QAAS,oCACT,QAAS,mBACT,SAAUC,EACV,YAAcC,GACHA,EAAM,KAAK,CAE1B,CAAC,EAED,OAAOH,CACX,EAEaI,EAAgB,SAA6B,CACtD,GAAM,CAAE,QAAAC,CAAQ,EAAI,MAAMJ,EAAS,OAAoC,CACnE,KAAM,UACN,KAAM,QACN,QAAS,uBACT,QAAS,QACT,SAAUK,EACV,YAAcH,GACHA,EAAM,KAAK,CAE1B,CAAC,EAED,OAAOE,CACX,EAEaE,EAAmB,SAA6B,CACzD,GAAM,CAAE,WAAAC,CAAW,EAAI,MAAMP,EAAS,OAAuC,CACzE,KAAM,aACN,KAAM,QACN,QAAS,yBACT,QAAS,QACT,SAAUQ,EACV,YAAcN,GACHA,EAAM,KAAK,CAE1B,CAAC,EAED,OAAOK,CACX,EAwBO,IAAME,EAAqB,SAA8B,CAC5D,GAAM,CAAC,WAAAC,CAAU,EAAI,MAAMC,EAAS,OAAgC,CAChE,KAAM,UACN,KAAM,aACN,QAAS,uBACT,QAAS,EACb,CAAC,EAED,OAAOD,CACX,EAEaE,EAAgB,SAA8B,CACvD,GAAM,CAAC,QAAAC,CAAO,EAAI,MAAMF,EAAS,OAA6B,CAC1D,KAAM,UACN,KAAM,UACN,QAAS,sGACT,QAAS,EACb,CAAC,EAED,OAAOE,CACX,EAEaC,EAAa,SAAmC,CACzD,GAAM,CAAC,YAAAC,CAAW,EAAI,MAAMJ,EAAS,OAAsC,CACvE,KAAM,OACN,KAAM,cACN,QAAS,kBACT,QAASK,CACb,CAAE,EAEF,OAAOD,CACX,EAGaE,EAAsB,SAA0B,CACzD,GAAM,CAAC,cAAAC,CAAa,EAAI,MAAMP,EAAS,OAA+B,CAClE,KAAM,WACN,KAAM,gBACN,QAAS,0CACT,QAASQ,CACb,CAAE,EAEF,OAAOD,CACX,EGlIA,OAAQ,SAAAE,MAAY,QACpB,OAAOC,MAAS,MAChB,OAAQ,UAAAC,MAAa,SAIrB,IAAMC,EAAU,MAAOC,GAAgB,CACnCA,EAAO,OAAO,KAAK,QAAQ,MAAM,EACjCA,EAAO,OAAO,KAAK,QAAQ,MAAM,EACjC,GAAI,CACA,GAAM,CAAC,OAAAC,CAAM,EAAI,MAAMD,EAEvB,OAAOC,CACX,OAAS,EAAP,CACE,QAAQ,IAAI,CAAC,CACjB,CACJ,EAGaC,EAA0C,IAAM,CAEzD,IAAMC,EAAY,QAAQ,IAAI,sBAE9B,OAAIA,GACIA,EAAU,WAAW,MAAM,EACpB,OAMJ,KAEf,EAGaC,EAAY,MAAOC,EAAwBC,IAAyB,CAC7E,IAAMC,EAAUV,EAAI,cAAc,EAAE,MAAM,EAEpCG,EAASJ,EACX,aAAaS,KAAkBC,IAC/B,CACI,MAAO,EACX,CACJ,EAEA,aAAMP,EAAQC,CAAM,EAEpBO,EAAQ,KAAK,EAENP,CACX,EAEaQ,EAA4B,MAAOC,GAAoB,CAChE,IAAMF,EAAUV,EAAI,UAAU,EAAE,MAAM,EAEhCG,EAAS,MAAMF,EAAO,GAAGW,QAAc,EAE7C,OAAAF,EAAQ,KAAK,EAENP,CACX,EAEaU,EAAgB,MAAOD,GAAoB,CACpD,IAAMF,EAAUV,EAAI,kBAAkB,EAAE,MAAM,EAExCG,EAASJ,EACX,MAAMa,gBACN,CACI,MAAO,EACX,CACJ,EAEA,aAAMV,EAAQC,CAAM,EAEpBO,EAAQ,KAAK,EAENP,CACX,EAEaW,EAAkB,MAAOF,EAAiBG,EAAiBC,IAAuB,CAC3F,IAAMN,EAAUV,EAAI,gCAAgC,EAAE,MAAM,EAEtDG,EAASJ,EACX,MAAMa,sCAA4CG,kBAAwBC,IAC1E,CACI,MAAO,EACX,CACJ,EAEA,aAAMd,EAAQC,CAAM,EAEpBO,EAAQ,KAAK,EAENP,CACX,EAEac,EAAc,MAAOL,GAAoB,CAClD,IAAMF,EAAUV,EAAI,yBAAyB,EAAE,MAAM,EAE/CkB,EAAqBb,EAAkB,EAE7C,QAAQ,IAAI,uCAAuC,EACnD,QAAQ,IAAIa,CAAkB,EAE9B,IAAMf,EAASJ,EACX,MAAMa,QAAcM,YACpB,CACI,MAAO,EACX,CACJ,EAEA,aAAMhB,EAAQC,CAAM,EAEpBO,EAAQ,KAAK,EAENP,CACX,EAIagB,EAA4B,MAAOP,GAAoB,CAChE,IAAMF,EAAUV,EAAI,iBAAiB,EAAE,MAAM,EAEvCkB,EAAqBb,EAAkB,EAEvCF,EAASJ,EACX,MAAMa,QAAcM,IAAuB,MAAQ,GAAGA,QAA2BA,wBACjF,CACI,MAAO,EACX,CACJ,EAEA,aAAMhB,EAAQC,CAAM,EAEpBO,EAAQ,KAAK,EAENP,CACX,EAEaiB,EAA6B,MAAOR,GAAoB,CACjE,IAAMF,EAAUV,EAAI,qBAAqB,EAAE,MAAM,EAE3CkB,EAAqBb,EAAkB,EAEvCF,EAASJ,EACX,MAAMa,QAAcM,IAAuB,MAAQ,GAAGA,QAA2BA,yBACjF,CACI,MAAO,EACX,CACJ,EAEA,aAAMhB,EAAQC,CAAM,EAEpBO,EAAQ,KAAK,EAENP,CACX,EAEakB,EAAuB,MAAOT,GAAoB,CAC3D,IAAMF,EAAUV,EAAI,eAAe,EAAE,MAAM,EAErCkB,EAAqBb,EAAkB,EAEvCF,EAASJ,EACX,MAAMa,QAAcM,IAAuB,MAAQ,GAAGA,QAA2BA,mBACjF,CACI,MAAO,EACX,CACJ,EAEA,aAAMhB,EAAQC,CAAM,EAEpBO,EAAQ,KAAK,EAENP,CACX,EAEamB,EAA0B,MAAOV,GAAoB,CAC9D,IAAMF,EAAUV,EAAI,iBAAiB,EAAE,MAAM,EAEvCkB,EAAqBb,EAAkB,EAEvCF,EAASJ,EACX,MAAMa,QAAcM,IAAuB,MAAQ,GAAGA,QAA2BA,0BACjF,CACI,MAAO,EACX,CACJ,EAEA,aAAMhB,EAAQC,CAAM,EAEpBO,EAAQ,KAAK,EAENP,CACX,EAEaoB,EAAmB,MAAOX,GAAoB,CACvD,IAAMF,EAAUV,EAAI,sBAAsB,EAAE,MAAM,EAE5CkB,EAAqBb,EAAkB,EAEvCF,EAASJ,EACX,MAAMa,QAAcM,IAAuB,MAAQ,GAAGA,QAA2BA,iBACjF,CACI,MAAO,EACX,CACJ,EAEA,aAAMhB,EAAQC,CAAM,EAEpBO,EAAQ,KAAK,EAENP,CACX,EC5MO,IAAMqB,EAAU,MAAOC,GAA2B,CACrD,QAAQ,IAAI,uCAAwC,CAAC,WAAAA,CAAU,CAAC,EAChE,GAAM,CACF,YAAAC,EACA,cAAAC,EACA,QAAAC,EAAU,GACV,WAAAC,EAAa,GACb,QAAAC,EACA,WAAAC,EAAa,EACjB,EAAIN,EAeJ,GAbA,MAAMO,EAAUN,EAAaI,CAAO,EAChCC,IACA,MAAME,EAA0BH,CAAO,EACvC,MAAMI,EAAcJ,CAAO,GAE3BC,GACA,MAAME,EAA0BH,CAAO,EAGxCL,EAAW,SACV,MAAMU,EAAYL,CAAO,EAGzBJ,IAAgB,sEAAwED,EAAW,QACnG,GAAI,CACA,QAAQ,IAAI,wDAAwD,EACpE,MAAMW,EAAgBN,EAASF,EAASC,CAAU,EAClD,MAAMQ,EAAiBP,CAAO,EAE3BH,EAAc,SAAS,YAAY,GAClC,MAAMW,EAA0BR,CAAO,EAGxCH,EAAc,SAAS,aAAa,GACnC,MAAMY,EAA2BT,CAAO,EAGzCH,EAAc,SAAS,OAAO,GAC7B,MAAMa,EAAqBV,CAAO,EAGnCH,EAAc,SAAS,SAAS,GAC/B,MAAMc,EAAwBX,CAAO,CAE7C,OAASY,EAAP,CACM,QAAQ,IAAI,mBAAmB,EAC/B,QAAQ,IAAIA,CAAC,CACrB,CAER,ECrCA,IAAMC,EAAO,SAAY,CACrB,IAAMC,EAAa,CAAC,EAEdC,EAAU,MAAMC,EAAc,EACpCF,EAAW,QAAaC,EACxB,QAAQ,IAAI,GAAG,EAEf,IAAME,EAAa,MAAMC,EAAmB,EAC5CJ,EAAW,WAAgBG,EAE3B,IAAME,EAAc,MAAMC,EAAW,EACrCN,EAAW,YAAiBK,EAC5B,QAAQ,IAAI,GAAG,EAEf,IAAME,EAAU,MAAMC,EAAc,EAGpC,GAFAR,EAAW,QAAaO,EAEpBF,IAAgB,sEAAwEL,EAAW,QAAY,CAC3G,QAAQ,IAAI,wDAAwD,EACpE,IAAMS,EAAgB,MAAMC,EAAoB,EAChDV,EAAW,cAAmBS,EAC9B,QAAQ,IAAI,GAAG,EAEf,IAAME,EAAU,MAAMC,EAAc,EACpCZ,EAAW,QAAaW,EACxB,QAAQ,IAAI,GAAG,EAEf,IAAME,EAAa,MAAMC,EAAiB,EAC1Cd,EAAW,WAAgBa,EAC3B,QAAQ,IAAI,GAAG,EAGvB,MAAME,EAAQf,CAAU,CAC5B,EAEAD,EAAK,EAAE,MAAOiB,GAAQ,CAClB,QAAQ,IAAI,0BAA0B,EAClCA,aAAe,OAGf,QAAQ,IACJ,+EACJ,EACA,QAAQ,IAAIA,CAAG,EAEnB,QAAQ,KAAK,CAAC,CAClB,CAAC","names":["inquirer","validationRegExp","validateAppName","input","paths","indexOfDelimiter","p","appName","validateSpaceId","valdiateOAuthToken","templates","availableTemplates","availableSbMigFeatures","promptAppName","appName","inquirer","validateAppName","input","promptSpaceId","spaceId","validateSpaceId","promptOAuthToken","OAuthToken","valdiateOAuthToken","promptIfInWorkshop","inWorkshop","inquirer","promptInstall","install","promptList","templateUrl","availableTemplates","promptSbMigFeatures","sbMigFeatures","availableSbMigFeatures","execa","ora","rimraf","pipeOut","result","stdout","getUserPkgManager","userAgent","cloneRepo","boilerplateUrl","nameOfFolder","spinner","removeInitialGitDirectory","appName","initializeGit","invokeSbMigInit","spaceId","OAuthToken","installDeps","userPackageManager","invokeSbMigSyncComponents","invokeSbMigSyncDatasources","invokeSbMigSyncRoles","invokeSbMigSyncContents","createLocalHTTPS","execute","cliOptions","templateUrl","sbMigFeatures","spaceId","OAuthToken","appName","inWorkshop","cloneRepo","removeInitialGitDirectory","initializeGit","installDeps","invokeSbMigInit","createLocalHTTPS","invokeSbMigSyncComponents","invokeSbMigSyncDatasources","invokeSbMigSyncRoles","invokeSbMigSyncContents","e","main","cliOptions","appName","promptAppName","inWorkshop","promptIfInWorkshop","templateUrl","promptList","install","promptInstall","sbMigFeatures","promptSbMigFeatures","spaceId","promptSpaceId","OAuthToken","promptOAuthToken","execute","err"]}
@@ -1 +1 @@
1
- {"inputs":{"src/utils.ts":{"bytes":3564,"imports":[{"path":"execa","kind":"import-statement","external":true},{"path":"ora","kind":"import-statement","external":true},{"path":"rimraf","kind":"import-statement","external":true}],"format":"esm"},"src/validators.ts":{"bytes":964,"imports":[],"format":"esm"},"src/constants.ts":{"bytes":1231,"imports":[],"format":"esm"},"src/prompts.ts":{"bytes":2858,"imports":[{"path":"inquirer","kind":"import-statement","external":true},{"path":"src/validators.ts","kind":"import-statement","original":"./validators.js"},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"}],"format":"esm"},"src/index.ts":{"bytes":1951,"imports":[{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"},{"path":"src/prompts.ts","kind":"import-statement","original":"./prompts.js"}],"format":"esm"}},"outputs":{"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":16927},"dist/index.js":{"imports":[{"path":"execa","kind":"import-statement","external":true},{"path":"ora","kind":"import-statement","external":true},{"path":"rimraf","kind":"import-statement","external":true},{"path":"inquirer","kind":"import-statement","external":true}],"exports":[],"entryPoint":"src/index.ts","inputs":{"src/utils.ts":{"bytesInOutput":1508},"src/prompts.ts":{"bytesInOutput":1092},"src/validators.ts":{"bytesInOutput":339},"src/constants.ts":{"bytesInOutput":551},"src/index.ts":{"bytesInOutput":625}},"bytes":4136}}}
1
+ {"inputs":{"src/validators.ts":{"bytes":964,"imports":[],"format":"esm"},"src/constants.ts":{"bytes":1696,"imports":[],"format":"esm"},"src/prompts.ts":{"bytes":3571,"imports":[{"path":"inquirer","kind":"import-statement","external":true},{"path":"src/validators.ts","kind":"import-statement","original":"./validators.js"},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"}],"format":"esm"},"src/utils.ts":{"bytes":4858,"imports":[{"path":"execa","kind":"import-statement","external":true},{"path":"ora","kind":"import-statement","external":true},{"path":"rimraf","kind":"import-statement","external":true}],"format":"esm"},"src/execute.ts":{"bytes":1844,"imports":[{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"}],"format":"esm"},"src/index.ts":{"bytes":1912,"imports":[{"path":"src/prompts.ts","kind":"import-statement","original":"./prompts.js"},{"path":"src/execute.ts","kind":"import-statement","original":"./execute.js"},{"path":"./constants.js","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":22882},"dist/index.js":{"imports":[{"path":"inquirer","kind":"import-statement","external":true},{"path":"execa","kind":"import-statement","external":true},{"path":"ora","kind":"import-statement","external":true},{"path":"rimraf","kind":"import-statement","external":true}],"exports":[],"entryPoint":"src/index.ts","inputs":{"src/prompts.ts":{"bytesInOutput":1182},"src/validators.ts":{"bytesInOutput":339},"src/constants.ts":{"bytesInOutput":672},"src/utils.ts":{"bytesInOutput":1795},"src/execute.ts":{"bytesInOutput":638},"src/index.ts":{"bytesInOutput":688}},"bytes":5335}}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-backpack-app",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "repository": "git@github.com:ef-global/create-backpack.git",
5
5
  "author": "marckraw <marckraw@icloud.com>",
6
6
  "publishConfig": {