{
  "version": 3,
  "sources": ["../../src/cli-main.ts"],
  "sourcesContent": ["/**\n * QCObjects CLI 2.4.x\n * ________________\n *\n * Author: Jean Machuca <correojean@gmail.com>\n *\n * Cross Browser Javascript Framework for MVC Patterns\n * QuickCorp/QCObjects is licensed under the\n * GNU Lesser General Public License v3.0\n * [LICENSE] (https://github.com/QuickCorp/QCObjects/blob/master/LICENSE.txt)\n *\n * Permissions of this copyleft license are conditioned on making available\n * complete source code of licensed works and modifications under the same\n * license or the GNU GPLv3. Copyright and license notices must be preserved.\n * Contributors provide an express grant of patent rights. However, a larger\n * work using the licensed work through interfaces provided by the licensed\n * work may be distributed under different terms and without source code for\n * the larger work.\n *\n * Copyright (C) 2015 Jean Machuca,<correojean@gmail.com>\n *\n * Everyone is permitted to copy and distribute verbatim copies of this\n * license document, but changing it is not allowed.\n*/\n/*eslint no-unused-vars: \"off\"*/\n/*eslint no-redeclare: \"off\"*/\n/*eslint no-empty: \"off\"*/\n/*eslint strict: \"off\"*/\n/*eslint no-mixed-operators: \"off\"*/\n/*eslint no-undef: \"off\"*/\n\"use strict\";\nimport \"qcobjects\";\n\nexport * as EnterpriseCommands from \"./enterprise-commands\";\nimport { Component, CONFIG, findPackageNodePath, InheritClass, logger, New, Service, serviceLoader, global, Package, Export } from \"qcobjects\";\nimport { QCObjectsEnterprise } from \"./enterprise-commands\";\nexport * as QuickCorpServices from \"./api-client_services\";\nimport { QuickCorpCloud } from \"./api-client_services\";\nexport * as customCommands from \"./cli-commands\";\nimport { __get_version__, __get_version_string__ } from \"./defaultsettings\";\nimport path from \"node:path\";\nimport fs from \"node:fs\";\nimport { exec, execSync } from \"node:child_process\";\nimport commander from \"commander\";\n\nconst templatePwaPath = path.resolve(__dirname, \"./templates/pwa/\") + \"/\";\n\nexport const getPluginCommandsList = () => {\n  return global.ClassesList?.filter((c: { packageName: string; }) => c.packageName.startsWith(\"com.qcobjects.cli.commands.\"))\n    .filter((p: { classFactory: { name: string; }; }) => p.classFactory.name.endsWith(\"CommandHandler\"));\n};\n\n\nexport class SwitchCommander extends InheritClass {\n\n  choiceOption = {\n    generateSw: (_appName: boolean, options: { dir: any; }) => {\n      const dirPrefix = options.dir;\n      const switchCommander = this;\n      const appName = (typeof _appName === \"undefined\" || _appName === true) ? (\"MyAppName\") : (_appName);\n      switchCommander.generateServiceWorker(appName, dirPrefix)\n        .catch((e: any) => { logger.warn(`An error ocurred while creating service worker: ${e}`); });\n\n    },\n    create: (_appName: boolean, options: { createAmp: any; createPwa: any; createPhp: any; createCustom: any; }) => {\n      const version = __get_version__();\n      const switchCommander = this;\n      const appName = (typeof _appName === \"undefined\" || _appName === true) ? (\"MyAppName\") : (_appName);\n\n\n      let appTemplateName;\n\n      if (options.createAmp) {\n        appTemplateName = \"qcobjects-ecommerce-amp\";\n      } else if (options.createPwa) {\n        appTemplateName = \"qcobjectsnewapp\";\n      } else if (options.createPhp) {\n        appTemplateName = \"qcobjectsnewphp\";\n      } else if (options.createCustom) {\n        appTemplateName = options.createCustom;\n      } else {\n        appTemplateName = \"qcobjectsnewapp\";\n      }\n      CONFIG.set(\"qcobjectsnewapp_path\", CONFIG.get(\"node_modules_path\") + \"/\" + appTemplateName);\n\n      const _package_json_template_fname = path.resolve(CONFIG.get(\"qcobjectsnewapp_path\", \"qcobjectsnewapp\"), \"./package.json\");\n\n      /*          if (!process.platform.toLowerCase().startsWith(\"win\")){\n              _package_json_content = _package_json_content.replace(/(\")/g, String.fromCharCode(92)+\"\\\"\");\n            }*/\n\n      const createAppCommand = \"npm init -y\";\n      const _package_json_file = path.resolve(CONFIG.get(\"projectPath\"), \"./package.json\");\n      logger.debug(\"_package_json_file: \" + _package_json_file);\n      logger.debug(createAppCommand);\n\n      exec(createAppCommand, (err) => {\n        if (err) {\n          throw Error(err.message);\n          // eslint-disable-next-line no-unreachable\n          process.exit(1);\n          return;\n        }\n\n        exec(`npm i --save-dev ${appTemplateName}`, () => {\n\n          (async () => {\n            const _package_json_template_file = await import(_package_json_template_fname);\n            _package_json_template_file.name = appName;\n            _package_json_template_file.version = \"1.0.0\";\n            _package_json_template_file.repository = {};\n            fs.writeFileSync(_package_json_file, JSON.stringify(_package_json_template_file, null, 4));\n            logger.info(\"Good! App Templates was installed!\");\n\n            console.log(`Starting to copy files from app template ${appTemplateName} to your project...`);\n\n            switchCommander.copyTemplate(path.resolve(findPackageNodePath(appTemplateName), appTemplateName), path.resolve(CONFIG.get(\"projectPath\"), \"./\"))\n              .then(() => {\n\n                exec(\"npm uninstall \" + appTemplateName + \" --save && npm cache verify\", err => {\n                  if (err) {\n                    throw Error(err.message);\n                    // eslint-disable-next-line no-unreachable\n                    process.exit(1);\n                    return;\n                  }\n\n                  /*\n                  switchCommander.generateServiceWorker(appName)\n                  .then(()=>{\n                    execSync(\"npm install --save-dev qcobjects-cli \");\n                  });\n                  */\n                  execSync(\"npm install --save-dev qcobjects-cli \");\n                });\n\n                exec(\"npm cache verify && npm i \", (err) => {\n                  if (err) {\n                    throw Error(err.message);\n                    // eslint-disable-next-line no-unreachable\n                    process.exit(1);\n                    return;\n                  }\n\n                  logger.info(\"Good! Your application is done. You can play with QCObjects now!\");\n\n                  logger.info(\"I will create the SSL certificates now. It may take some time...\");\n                  exec(\"qcobjects-createcert\", () => {\n                    logger.info(\"Test certificates generated\");\n\n                    const githubService = New(Service);\n                    githubService.url = \"https://raw.githubusercontent.com/QuickCorp/QCObjects/main/.gitignore\";\n                    githubService.headers = {\n                      Accept: \"application/vnd.github+json\",\n                      \"X-GitHub-Api-Version\": \"2022-11-28\",\n                      \"User-Agent\": \"qcobjects-cli\"\n                    };\n                    githubService.done = () => { };\n                    serviceLoader(githubService)\n                      .then(({ service }: { service: any }) => {\n                        fs.writeFileSync(path.resolve(CONFIG.get(\"projectPath\"), \"./.gitignore\"), service.template);\n                        try {\n                          execSync(\"git init\");\n                          logger.debug(\"Git initialized.\");\n                        } catch (e) {\n                          logger.debug(\"Could not initialize git.\");\n                        }\n                      });\n\n                  }).stdout?.on(\"data\", function (data: any) {\n                    console.log(data);\n                  });\n\n                }).stdout?.on(\"data\", function (data: any) {\n                  console.log(data);\n                });\n\n              })\n              .catch((e: any) => {\n                console.log(e);\n              });\n\n          })().catch(e => console.error(e));\n\n\n        }).stdout?.on(\"data\", function (data: any) {\n          console.log(data);\n        });\n\n      }).stdout?.on(\"data\", function () {\n        console.log(\"App generation started...\");\n      });\n\n    },\n    publish(_appName: any, _options: any) {\n      logger.debug(\"publish is not yet implemented\");\n    },\n    upgradeToEnterprise(_appName: any, _options: any) {\n      const switchCommander = this;\n      void QCObjectsEnterprise.upgrade(switchCommander);\n    }\n  };\n  program: any;\n\n  constructor() {\n    super();\n    this.program = commander;\n  }\n\n  shellCommands(_shell_commands: any[]) {\n    return new Promise(function (resolve_all, reject_all) {\n      var _promises_set = _shell_commands.map(\n        function (shell_command: any) {\n          return (new Promise(\n            function (resolve, reject) {\n              logger.debug(shell_command);\n              exec(shell_command, (err: any, stdout: unknown, stderr: any) => {\n                if (!err) {\n                  resolve(stdout);\n                } else {\n                  logger.debug(`[FAILED]: ${shell_command}`);\n                  logger.debug(`${stderr}`);\n                  reject(stderr as Error);\n                }\n              }).stdout?.on(\"data\", function (data: any) {\n                logger.info(data);\n              });\n            })).catch(e => reject_all(e as Error));\n        }\n      );\n    }).catch(e => console.log(e));\n  }\n\n  fileListRecursive(dir: string): string | string[] {\n    var instance = this;\n    return (fs.statSync(dir).isDirectory())\n      ? (Array.prototype.concat(...fs.readdirSync(dir).map((f: any) => instance.fileListRecursive(path.join(dir, f))))\n        .filter((f) => {\n          return !f.startsWith(\".git\")\n            && f.lastIndexOf(\".DS_Store\") == -1;\n        })\n      )\n      : (dir);\n  }\n\n  register(email: any, phonenumber: any) {\n    return new Promise(function (resolve, reject) {\n      logger.info(\"I'm going to register your profile on the cloud...\");\n      const cloudClient = New(QuickCorpCloud, {\n        apiMethod: \"register\",\n        data: { email: email, phonenumber: phonenumber }\n      });\n      //        logger.debugEnabled = true;\n      try {\n      } catch (e) {\n        console.log(\"\\u{1F926} Something went wrong \\u{1F926} when trying to register you in the cloud\");\n        reject(e as Error);\n      }\n\n    });\n  }\n\n  generateServiceWorker(appName: any, dirPrefix = \"./\") {\n    const writeContent = (component: any) => {\n      const parsedText = component.parsedAssignmentText;\n      logger.debug(\"Starting to write the sw file...\");\n      fs.writeFile(`${dirPrefix}/sw.js`, parsedText, (err) => {\n        if (err) {\n          throw Error(err as never);\n        }\n        logger.info(\"Service Worker Generated\");\n        console.log(\"\");\n        console.log(\"Now simply put:\");\n        console.log(\"CONFIG.set('serviceWorkerURI','/sw.js');\");\n        console.log(\" In your init.js file \");\n        console.log(\"\");\n        console.log(\"To start your app in a local server \");\n        console.log(\"Execute the command: \");\n        console.log(\"> qcobjects launch <appname>\");\n        console.log(\"\");\n      });\n\n    };\n\n\n    class ServiceWorkerComponent extends Component {\n      cached = false;\n      templateURI = \"sw.js\";\n      basePath = templatePwaPath;\n      name = \"sw\";\n      tplsource = \"default\";\n      template = \"\";\n      data: any;\n\n      constructor({ name, data }: { name: string, data: any }) {\n        super({ name, data });\n        this.data = data;\n      }\n\n      done({ request, component }: { request: any, component: any }) {\n        super.done({ request, component });\n        writeContent(component);\n      }\n    }\n\n    return new Promise(() => {\n      var filelist = [\"/\"].concat(this.fileListRecursive(`${dirPrefix}`));\n      if (typeof dirPrefix !== \"undefined\" && dirPrefix !== \"./\" && dirPrefix !== \".\") {\n        filelist = filelist.map(f => f.replace(new RegExp(`${dirPrefix}/`), \"\"));\n      }\n      filelist = filelist.filter(function (fl) { return fl !== \"sw.js\" && (!fl.startsWith(\"node_modules/\")); });\n      filelist = filelist.filter(fname => !fname.endsWith(\".pem\"));\n      filelist = filelist.filter(fname => !fname.endsWith(\".sh\"));\n      filelist = filelist.filter(fname => !(new RegExp(\"^package(.*).json$\")).test(fname));\n      filelist = filelist.filter(fname => !fname.startsWith(\".\"));\n      var fileListString = \"\\n\\t\\\"\" + filelist.join(\"\\\",\\n\\t\\\"\") + \"\\\"\";\n      const component = new ServiceWorkerComponent({\n        name: \"sw\",\n        data: {\n          appName: appName,\n          appVersion: \"1.0.0\",\n          filelist: fileListString\n        }\n      });\n\n      setTimeout(() => {\n        component.done({ request: null, component });\n      }, 1000);\n\n\n    });\n  }\n\n  copyTemplate(source: any, dest: any) {\n    return new Promise<void>((resolve, reject) => {\n\n      const copyDir = (source: any, dest: any, exclude: string[]) => {\n        source = path.resolve(source);\n        dest = path.resolve(dest);\n        const dname = path.basename(source);\n        const dirExcluded = (exclude.includes(dname));\n\n        const isDir = (d: any) => {\n          return (fs.existsSync(d) && fs.statSync(d).isDirectory()) ? (true) : (false);\n        };\n\n        const isFile = (d: any) => {\n          return (fs.existsSync(d) && fs.statSync(d).isFile()) ? (true) : (false);\n        };\n\n        if (isDir(source) && !dirExcluded) {\n          fs.mkdirSync(dest, { recursive: true });\n          const paths = fs.readdirSync(source, { withFileTypes: true });\n          const dirs = paths.filter((d: { isDirectory: () => any; }) => d.isDirectory());\n          const files = paths.filter((f: { isFile: () => any; }) => f.isFile());\n          ((paths, dirs, files, exclude) => {\n            files.map((f: { name: any; }) => {\n              const sourceFile = path.resolve(source, f.name);\n              const destFile = path.resolve(dest, f.name);\n              const fileExcluded = exclude.includes(f.name);\n              if (isFile(sourceFile) && !fileExcluded) {\n                logger.debug(`[publish:static] Copying files from ${sourceFile} to ${destFile} excluding ${exclude.join(\",\")}...`);\n                fs.copyFileSync(sourceFile, destFile);\n                logger.debug(`[publish:static] Copying files from ${sourceFile} to ${destFile} excluding ${exclude.join(\",\")}...DONE!`);\n              }\n            });\n            dirs.map((d: { name: any; }) => {\n              const sourceDir = path.resolve(source, d.name);\n              const destDir = path.resolve(dest, d.name);\n              copyDir(sourceDir, destDir, exclude);\n            });\n          })(paths, dirs, files, exclude);\n        }\n\n      };\n\n      try {\n        const exclude = [\n          \"package.json\",\n          \"node_modules\",\n          \".DS_Store\"\n        ];\n        logger.info(`[create] Copying files from ${source} to ${dest} excluding ${exclude.join(\",\")}...`);\n        copyDir(source, dest, (typeof exclude !== \"undefined\") ? (exclude) : ([]));\n        resolve();\n      } catch (e: any) {\n        logger.warn(`Something went wrong trying to publish static files: ${e.message}`);\n        reject(e as Error);\n      }\n\n    });\n\n  }\n\n  initCommand() {\n    const switchCommander = this;\n    if (process.argv.length > 1) {\n      logger.debug(\"Installing Commands...\");\n\n      switchCommander.program\n        .version(__get_version_string__());\n      switchCommander.program\n        .command(\"create <appname>\")\n        .description(\"Creates an app with <appname>\")\n        .option(\"--pwa, --create-pwa\", \"Creates the progressive web app assets\")\n        .option(\"--amp, --create-amp\", \"Creates the accelerated mobile pages assets\")\n        .option(\"--php, --create-php\", \"Creates the PWA PHP assets\")\n        .option(\"--custom, --create-custom <templateappname>\", \"Creates an App from any NPM package template\")\n        .option(\"--tests, --create-tests\", \"Creates the test suite\")\n        .action(function (args: any, options: any) {\n          switchCommander.choiceOption.create.call(switchCommander, args, options);\n        });\n\n\n      try {\n        logger.debug(\"Loading Plugin Commands...\");\n        const importPluginCommands =  (switchCommander: any) => {\n          return getPluginCommandsList()?.map((pluginCommand: { packageName: any; classFactory: any; plugin: any; }) => {\n            try {\n              logger.debug(`Loading plugin ${pluginCommand.packageName}`);\n              const classFactory = pluginCommand.classFactory;\n              pluginCommand.plugin = new classFactory({ switchCommander: switchCommander });\n            } catch (e) {\n              throw Error(`Something went wrong loading ${pluginCommand.packageName}`);\n            }\n            return pluginCommand;\n          });\n        };\n        importPluginCommands(switchCommander);\n      } catch (e: any) {\n        throw Error(`Something went wrong loading plugins: ${e.message}`);\n      }\n\n      switchCommander.program.command(\"publish <appname>\")\n        .description(\"Publishes an app with <appname>\")\n        .option(\"--pwa, --create-pwa\", \"Publishes the progressive web app assets\")\n        .option(\"--amp, --create-amp\", \"Publishes the accelerated mobile pages assets\")\n        .option(\"--php, --create-php\", \"Creates the PWA PHP assets\")\n        .option(\"--custom, --create-custom\", \"Creates an App from any NPM package template\")\n        .option(\"--tests, --create-tests\", \"Publishes the test suite\")\n        .action((args: any, options: any) => {\n          switchCommander.choiceOption.publish.bind(switchCommander)(args, options);\n        });\n\n      switchCommander.program.command(\"upgrade-to-enterprise\")\n        .description(\"Upgrades to QCObjects Enterprise Edition\")\n        .action(function (args: any, options: any) {\n          switchCommander.choiceOption.upgradeToEnterprise.call(switchCommander, args, options);\n        });\n      switchCommander.program.command(\"generate-sw <appname>\")\n        .option(\"-d, --dir <dirPrefix> \", \"creates the service worker in a specific dir <dirPrefix>\")\n        .description(\"Generates the service worker <appname>\")\n        .action(function (args: any, options: any) {\n          switchCommander.choiceOption.generateSw.call(switchCommander, args, options);\n        });\n      switchCommander.program.command(\"launch <appname>\")\n        .description(\"Launches the application\")\n        .action(function () {\n          logger.info(\"Launching...\");\n          setTimeout(() => {\n            logger.info(\"Go to the browser and open https://localhost \");\n            logger.info(\"Press Ctrl-C to stop serving \");\n            exec(\"qcobjects-server\", () => {\n            })\n              .stdout?.on(\"data\", function (data: any) {\n                console.log(data);\n              });\n          }, 5000);\n          //          setTimeout(()=>{\n          //            execSync(\"open -a \\\"google chrome\\\" https://localhost\");\n          //          },6000);\n\n        });\n\n      switchCommander.program.on(\"--help\", function () {\n        console.log(\"\");\n        console.log(\"Use:\");\n        console.log(\"  $ qcobjects-cli [command] --help\");\n        console.log(\"  For detailed information of a command \");\n        console.log(\"\");\n        process.exit(0);\n      });\n\n      switchCommander.program.on(\"command:*\", function () {\n        console.error(\"Invalid command: %s\\nSee --help for a list of available commands.\", switchCommander.program.args.join(\" \"));\n        process.exit(1);\n      });\n      switchCommander.program.parse(process.argv);\n    } else {\n      console.log(\"\");\n      console.log(\"Use:\");\n      console.log(\"  $ qcobjects-cli [command] --help\");\n      console.log(\"  For detailed information of a command \");\n      console.log(\"\");\n      process.exit(0);\n\n    }\n\n  }\n\n}\n\n\n\n\n  CONFIG.set(\"node_modules_path\", \"./node_modules/\");\n  CONFIG.set(\"qcobjectsnewapp_path\", CONFIG.get(\"node_modules_path\") + \"/qcobjectsnewapp\");\n\n\n  Package(\"org.quickcorp.qcobjects.cli\", [\n\n    SwitchCommander\n  ]);\n  Export(SwitchCommander);\n"],
  "mappings": "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",
  "names": ["import_qcobjects", "path", "fs", "err", "commander", "source", "dest", "paths", "dirs", "files", "exclude", "switchCommander"]
}
