create-backpack-app 0.0.1

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/README.me ADDED
@@ -0,0 +1,7 @@
1
+ ```
2
+ npm create backpack
3
+ ```
4
+
5
+ ```
6
+ yarn create backpack
7
+ ```
@@ -0,0 +1 @@
1
+ #!/usr/bin/env node
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import{execa as l}from"execa";import r from"ora";import{rimraf as v}from"rimraf";var p=async(t,e)=>{let a=r("Cloning repo").start(),o=await l(`git clone ${t} ${e}`,{shell:!0});return a.stop(),o},c=async t=>{let e=r("Cleaning").start(),a=await v(`${t}/.git`);return e.stop(),a},m=async t=>{let e=r("Initializing GIT").start(),a=await l(`cd ${t} && git init`,{shell:!0});return e.stop(),a};import n from"inquirer";var I=/^(?:@[a-z0-9-*~][a-z0-9-*._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/,u=t=>{let e=t.split("/"),a=e.findIndex(i=>i.startsWith("@")),o=e[e.length-1];return e.findIndex(i=>i.startsWith("@"))!==-1&&(o=e.slice(a).join("/")),t==="."||I.test(o??"")?!0:"App name must consist of only lowercase alphanumeric characters, '-', and '_'"},g=t=>!0,k=t=>!0;var s={"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"},d=[{name:"Storyblok NextJS Backpack Boilerplate",value:s["Storyblok NextJS Backpack Boilerplate"]},{name:"NextJS Backpack Boilerplate",value:s["NextJS Backpack Boilerplate"]},{name:"ReactJS Backpack Boilerplate",value:s["ReactJS Backpack Boilerplate"]}];var f=async()=>{let{appName:t}=await n.prompt({name:"appName",type:"input",message:"What will your project be called?",default:"new-backpack-app",validate:u,transformer:e=>e.trim()});return t},b=async()=>{let{spaceId:t}=await n.prompt({name:"spaceId",type:"input",message:"Insert your space id",default:"00000",validate:g,transformer:e=>e.trim()});return t},h=async()=>{let{OAuthToken:t}=await n.prompt({name:"OAuthToken",type:"input",message:"Insert your OAuthToken",default:"00000",validate:k,transformer:e=>e.trim()});return t},x=async()=>{let{doWeContinue:t}=await n.prompt({type:"confirm",name:"doWeContinue",message:"Do we continue?",default:!1});return t},y=async()=>{let{initGit:t}=await n.prompt({type:"confirm",name:"initGit",message:"Do you want to init new git repository?",default:!1});return t},w=async()=>{let{templateUrl:t}=await n.prompt({type:"list",name:"templateUrl",message:"Select template",choices:d});return t};var N=async()=>{let t=await f();console.log("Your project and folder will be called: ",t);let e=await b();console.log("We will be using provided spaceId: ",e);let a=await h();console.log("We will be using provided OAuthToken: ",a);let o=await w();console.log("This is the list selection: ",o);let i=await y(),S=await x(),{stdout:B}=await p(o,t);console.log(B),await c(t),i&&await m(t)};N().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
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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\nexport const cloneRepo = async (boilerplateUrl: string, nameOfFolder: string) => {\n const spinner = ora('Cloning repo').start();\n\n const result = await execa(\n `git clone ${boilerplateUrl} ${nameOfFolder}`,\n {\n shell: true\n }\n )\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 = await execa(\n `cd ${appName} && git init`,\n {\n shell: true\n }\n )\n\n spinner.stop();\n\n return result\n}","import inquirer from \"inquirer\";\nimport {validateAppName, validateSpaceId, valdiateOAuthToken} from \"./validators\";\nimport {availableTemplates} from \"./constants\";\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\n// export const promptList = async (): Promise<any> => {\n// const result = await inquirer.prompt<{ toppings: any }>({\n// type: 'expand',\n// name: 'toppings',\n// message: 'What about the toppings?',\n// choices: [\n// {\n// key: 'p',\n// name: 'Pepperoni and cheese',\n// value: 'PepperoniCheese',\n// },\n// {\n// key: 'a',\n// name: 'All dressed',\n// value: 'alldressed',\n// },\n// {\n// key: 'w',\n// name: 'Hawaiian',\n// value: 'hawaiian',\n// },\n// ],\n// },)\n//\n// return result;\n// }\n\nexport const promptList = async (): Promise<any> => {\n const {templateUrl} = await inquirer.prompt<{ templateUrl: string }>({\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';\n\nexport const templates: Record<TemplateNames, string> = {\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: string\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 {cloneRepo, removeInitialGitDirectory, initializeGit} from \"./utils.js\";\nimport {promptAppName, promptContinue, promptInitGit, promptList, promptOAuthToken, promptSpaceId} from \"./prompts.js\";\n\n\nconst main = async () => {\n const appName = await promptAppName()\n console.log(\"Your project and folder will be called: \", appName)\n\n const spaceId = await promptSpaceId()\n console.log(\"We will be using provided spaceId: \", spaceId)\n\n const OAuthToken = await promptOAuthToken()\n console.log(\"We will be using provided OAuthToken: \", OAuthToken)\n\n const templateUrl = await promptList()\n console.log(\"This is the list selection: \", templateUrl)\n\n const initGit = await promptInitGit()\n const doWeContinue = await promptContinue()\n\n const {stdout} = await cloneRepo(templateUrl, appName)\n console.log(stdout)\n\n await removeInitialGitDirectory(appName)\n\n if(initGit) {\n await initializeGit(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","cloneRepo","boilerplateUrl","nameOfFolder","spinner","result","removeInitialGitDirectory","appName","initializeGit","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","promptList","templateUrl","availableTemplates","main","appName","promptAppName","spaceId","promptSpaceId","OAuthToken","promptOAuthToken","templateUrl","promptList","initGit","promptInitGit","doWeContinue","promptContinue","stdout","cloneRepo","removeInitialGitDirectory","initializeGit","err"]}
@@ -0,0 +1 @@
1
+ {"inputs":{"src/utils.ts":{"bytes":879,"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":999,"imports":[],"format":"esm"},"src/prompts.ts":{"bytes":3276,"imports":[{"path":"inquirer","kind":"import-statement","external":true},{"path":"src/validators.ts","kind":"import-statement","original":"./validators"},{"path":"src/constants.ts","kind":"import-statement","original":"./constants"}],"format":"esm"},"src/index.ts":{"bytes":1299,"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":11453},"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":388},"src/prompts.ts":{"bytesInOutput":959},"src/validators.ts":{"bytesInOutput":339},"src/constants.ts":{"bytesInOutput":551},"src/index.ts":{"bytesInOutput":586}},"bytes":2844}}}
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "create-backpack-app",
3
+ "version": "0.0.1",
4
+ "repository": "git@github.com:ef-global/create-backpack.git",
5
+ "author": "marckraw <marckraw@icloud.com>",
6
+ "publishConfig": {
7
+ "registry": "https://registry.npmjs.org/",
8
+ "access": "public"
9
+ },
10
+ "keywords": [
11
+ "create-backpack",
12
+ "backpack",
13
+ "cli",
14
+ "typescript"
15
+ ],
16
+ "type": "module",
17
+ "exports": "./dist/index.js",
18
+ "bin": {
19
+ "create-backpack-app": "./dist/index.js"
20
+ },
21
+ "files": [
22
+ "/dist",
23
+ "README.md"
24
+ ],
25
+ "engines": {
26
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
27
+ },
28
+ "dependencies": {
29
+ "chalk": "^5.2.0",
30
+ "execa": "^7.0.0",
31
+ "fs-extra": "^11.1.0",
32
+ "inquirer": "^9.1.4",
33
+ "ora": "^6.1.2",
34
+ "rimraf": "^4.3.1",
35
+ "sb-mig": "^4.1.0-beta.41"
36
+ },
37
+ "devDependencies": {
38
+ "@types/fs-extra": "^11.0.1",
39
+ "@types/inquirer": "^9.0.3",
40
+ "@types/node": "^18.14.0",
41
+ "tsup": "^6.6.3",
42
+ "typescript": "^4.9.5"
43
+ },
44
+ "scripts": {
45
+ "start": "node dist/index.js",
46
+ "tsc": "tsc",
47
+ "build": "tsup",
48
+ "build:dev": "tsup --watch"
49
+ }
50
+ }