@abux/builder
Version:
Quick scaffolding code base to build web apps and games
2 lines • 36.3 kB
JavaScript
/*! Copyright (c) 2023 ABux. Under MIT license found in the LICENSE file */(()=>{"use strict";var e={5542:function(e,t,n){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=o(n(5233));var r;r=process.argv,(new i.default).parse(r)},5233:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=n(7304),s=i(n(8859)),a=i(n(5748)),c=i(n(1775)),l=n(6780);class u extends r.Command{get appName(){return this._name}get appVersion(){return this._version}constructor(){super(),this._name="@abux/builder",this._version="0.3.3",this._description="Quick scaffolding code base to build web apps and games",this.name(this._name).version(this._version).description(this._description),this.registerCommands({dev:s.default,build:c.default,init:a.default})}registerCommands(e){Object.keys(e).forEach((t=>{const{action:n,description:i,options:r=[]}=e[t],s=this.command(t).description(i).action(((...e)=>o(this,void 0,void 0,(function*(){l.loggers.info(`${l.styles.bold(this._name)} v${this._version}`),yield n.bind(this)(...e)}))));r.forEach((e=>s.addOption(e)))}))}}t.default=u},4772:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.default=class{constructor(){this.unsetDepNames=[],this.deps={}}get dependencies(){const e=Object.keys(this.deps).reduce(((e,t)=>{var n,o;const{version:i,dependencies:r,dev:s}=this.deps[t];return!i||this.unsetDepNames.includes(t)||(e[t]=Object.assign(Object.assign({},e[t]),{version:i,dev:null!==(o=null===(n=e[t])||void 0===n?void 0:n.dev)&&void 0!==o?o:s}),null==r||r.forEach((({name:t,version:n,dev:o})=>{var i,r,a;n&&!this.unsetDepNames.includes(t)&&(e[t]=Object.assign(Object.assign({},e[t]),{version:n,dev:null!==(a=null!==(r=null===(i=e[t])||void 0===i?void 0:i.dev)&&void 0!==r?r:o)&&void 0!==a?a:s}))}))),e}),{});return Object.keys(e).reduce(((t,n)=>{const{version:o,dev:i}=e[n];return i?t.push(`dev//${n}@${o}`):t.push(`${n}@${o}`),t}),[])}requires(e){var t;return Boolean(null===(t=this.get(e))||void 0===t?void 0:t.version)}set(e,t){let n=this.get(e);if(n)n=Object.assign(Object.assign({},this.deps[e]),t),this.deps[e]=n;else{const{version:o="*",dependencies:i,dev:r}=t;n={name:e,version:o,dependencies:i||[],dev:null!=r&&r}}return this.deps[e]=n,n}get(e){return this.deps[e]}unset(e){this.unsetDepNames.push(e)}}},5671:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))},i=this&&this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},o("next"),o("throw"),o("return"),t[Symbol.asyncIterator]=function(){return this},t);function o(n){t[n]=e[n]&&function(t){return new Promise((function(o,i){(function(e,t,n,o){Promise.resolve(o).then((function(t){e({value:t,done:n})}),t)})(o,i,(t=e[n](t)).done,t.value)}))}}},r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=r(n(6803)),a=r(n(6147)),c=r(n(6975)),l=r(n(7268)),u=r(n(6176)),d=r(n(8341)),p=n(5584),f=n(7487),v=r(n(4772)),h={unbundleExternals:a.default,replaceVars:c.default,replaceImports:l.default,generateDts:u.default,devServer:d.default};t.default=class{constructor({envName:e,rootPath:t,filters:n=h,deps:o}){this._configs=[],this._entries={},this.entryFilters=[],this.path=(0,p.resolver)(t),this._options={envName:e,entryPatterns:["packages/**/index.ts"],rootPath:t,devs:[],replacements:[{map:{react:"preact/compat","react-dom":"preact/compat"},pattern:/preact/}],ignores:[/node_modules/,/\.yarn/]},this.filters=n,this.deps=o||new v.default}get configs(){return this._configs}get entries(){return this._entries}get options(){return this._options}filter(e,t){this.filters[e]=t}updateEntries(e){this.entryFilters.push(e)}updateOptions(e){this._options=Object.assign(Object.assign({},this._options),e)}init(){var e,t,n,r,a,c,l,u;return o(this,void 0,void 0,(function*(){let o=yield(0,f.expandEntries)(this.path,this.options.entryPatterns,this.options.ignores);try{for(var d,p=!0,v=i(this.entryFilters);d=yield v.next(),!(e=d.done);){r=d.value,p=!1;try{const e=r;o=yield e(o)}finally{p=!0}}}catch(e){t={error:e}}finally{try{p||e||!(n=v.return)||(yield n.call(v))}finally{if(t)throw t.error}}this._entries=o;const h=[s.default,...Object.values(this.filters)];try{for(var g,m=!0,y=i(h);g=yield y.next(),!(a=g.done);){u=g.value,m=!1;try{const e=u;yield this.applyFilter(e)}finally{m=!0}}}catch(e){c={error:e}}finally{try{m||a||!(l=y.return)||(yield l.call(y))}finally{if(c)throw c.error}}}))}applyFilter(e){return o(this,void 0,void 0,(function*(){if(!e)return;const t=yield e({editor:this,deps:this.deps});this._configs=t.configs}))}}},1775:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(n(9354)),s=n(7872),a=n(6780),c=n(7487),l=i(n(8298)),u=n(242);t.default={description:"Build packages",action:e=>o(void 0,void 0,void 0,(function*(){try{process.env.WEBPACK_SERVE="";const t=e.production?"production":e.nodeEnv,{configs:n}=yield(0,s.getConfigs)(e.path,t);if(!n.length)throw Error(`${a.loggers.badge("build","redBright")} no entries found for "${e.path}"`);(0,c.logEntries)(n),a.loggers.info(a.loggers.badge("build","greenBright"),"start"),n.forEach((e=>e.plugins.push(new l.default))),yield new Promise(((e,t)=>{(0,r.default)(n,((n,o)=>{n?t(n):(a.loggers.log(null==o?void 0:o.toString({chunks:!1,colors:!0})),(null==o?void 0:o.hasErrors())?t(Error("compilation failed")):e())}))})),a.loggers.success(a.loggers.badge("build","greenBright"),"done")}catch(e){a.loggers.error(e.message)}})),options:[u.path,u.nodeEnv,u.production]}},8859:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(n(7426)),s=i(n(9354)),a=n(7872),c=n(6780),l=n(242),u=n(6780),{info:d,badge:p}=c.loggers;t.default={description:"Run dev servers for testing apps on browser",action:e=>o(void 0,void 0,void 0,(function*(){const{configs:t}=yield(0,a.getConfigs)(e.path,"development"),n=(0,s.default)(t.map((e=>Object.assign(Object.assign({},e),{stats:"errors-warnings"})))),i={},l=[];n.hooks.done.tap("setuplogCleaner",(()=>{l.forEach((e=>{e.collapse()})),Object.keys(i).forEach((e=>{d(`${p(e,"blue","whiteBright")} dev port ${i[e]}, bundling...`)})),l.length||l.push((0,u.collapsible)(process.stdout,!0))})),yield Promise.all(t.map(((e,t)=>o(void 0,void 0,void 0,(function*(){const o=e.name,s=new r.default(e.devServer,n.compilers[t]);s.options.onListening=({server:e})=>{const t=null==e?void 0:e.address();i[o]=t.port};try{yield s.start()}catch(e){c.loggers.error(`${p(o,"redBright","white")} failed to start`,e)}})))))})),options:[l.path]}},5748:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const i=n(6780),r=n(242),s=n(7872),a=n(2035),c=n(4867),l=n(7690),u=n(5588),d=n(9715),p=n(6756);t.default={description:"Init config folder",action:function(e){return o(this,void 0,void 0,(function*(){const{editor:t,deps:n}=yield(0,s.getConfigs)(e.path,"development",{options:{entryPatterns:[]}});yield f();const o=yield(0,a.ask)({components:a.components,sdk:a.sdk,editorConfigs:a.editorConfigs});yield(0,l.installPackages)({answers:o,deps:n},this),yield(0,u.copyConfigs)({answers:o,deps:n,editor:t}),yield(0,d.updatePackageJson)({editor:t,deps:n}),(0,p.logSuccess)("done"),i.loggers.info("You may also need to enabled / install recommended VSCode extensions\n and agree if editor confirms for using workspace typescript")}))},options:[r.path]};const f=()=>o(void 0,void 0,void 0,(function*(){const e=yield(0,c.getYarnVersion)();i.loggers.info("Versions:","node",process.versions.node,"yarn",e),/^3/.test(e)||i.loggers.error("\n Please check if Yarn Berry was set up correctly.\n Usually it will be all good by running this command:\n yarn init -2\n ")}))},5588:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.copyConfigs=void 0;const i=n(3285),r=n(5584),s=n(6756),a=(0,r.resolver)(__dirname).res("../config");t.copyConfigs=({answers:e,deps:t,editor:n})=>o(void 0,void 0,void 0,(function*(){const r=yield(0,i.pathExists)(n.path.resolve("packages")),c=[".vscode",r?"":"packages/dummy/package.json",r?"":"packages/dummy/cli/_index.ts","_.yarnrc.yml",t.requires("typescript")?"_tsconfig.json":"",t.requires("jest")?"_jest.config.js":"",t.requires("eslint")?"_.eslintrc.js":""].filter(Boolean);if(e.editorConfigs&&["editorconfig","gitignore","gitattributes"].forEach((e=>{c.push(`_/_.${e}`)})),!c.length)return;(0,s.logStep)("copy configs...");const l=a.resolveList(c),u=n.path.resolveList(c.map((e=>e.replace(/\/?_/g,"/"))));yield Promise.all(u.map(((e,t)=>o(void 0,void 0,void 0,(function*(){(0,s.logProgress)(`copy ${e}`),yield(0,i.copy)(l[t],e)})))))}))},7690:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.installPackages=void 0;const i=n(6780),r=n(4867),s=n(2035),a=n(6756);t.installPackages=({answers:e,deps:t},n)=>o(void 0,void 0,void 0,(function*(){var o;t.set("@abux/builder",{version:n.appVersion||"*"}),null===(o=s.components.choices)||void 0===o||o.forEach((n=>{var o;(null===(o=e.components)||void 0===o?void 0:o.includes(n))||t.unset(n)}));const c=t.dependencies,l=[],u=[];c.forEach((e=>{0===e.indexOf("dev//")?u.push(e.replace("dev//","")):l.push(e)}));const d=(0,i.collapsible)(process.stdout),p=(0,i.collapsible)(process.stderr);(l.length||u.length)&&(0,a.logStep)("install dependencies"),l.length&&((0,a.logProgress)("install",l.join(" ")),yield(0,r.install)(l,{outputStream:d,errorStream:p}),d.collapse(!0),p.collapse(!0)),u.length&&((0,a.logProgress)("install dev",u.join(" ")),yield(0,r.install)(u,{dev:!0,outputStream:d,errorStream:p}),d.collapse(!0),p.collapse(!0)),e.sdk&&((0,a.logStep)("install sdk vscode"),yield(0,r.installSdk)("vscode",{outputStream:d,errorStream:p}),d.collapse(!0),p.collapse(!0))}))},6756:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.logWarn=t.logSuccess=t.logProgress=t.logStep=void 0;const o=n(6780),{badge:i,progress:r,success:s,info:a}=o.loggers;t.logStep=(...e)=>{a(i("init","blueBright","whiteBright"),...e)};t.logProgress=(...e)=>{r(i("init","cyan"),...e)};t.logSuccess=(...e)=>{s(i("init","greenBright","whiteBright"),...e)};t.logWarn=(...e)=>{s(i("init","yellow"),...e)}},9715:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.updatePackageJson=void 0;const i=n(6780),r=n(3285),s=n(6756),{italic:a,bold:c}=i.styles,{info:l}=i.loggers;t.updatePackageJson=({modify:e=!0,deps:t,editor:n})=>o(void 0,void 0,void 0,(function*(){const o=t.requires("eslint"),i=t.requires("jest");if(!e)return l(c.cyan("Recommended further config:")),l(`You probably want to add your workspaces path into package.json:\n ${a('"workspaces:" [\n "packages/*"\n ]')}`),o&&l(`Essential config for linting command:\n ${a('"lint": "eslint packages/**/*.ts"')}`),void(i&&l(`Essential config for testing command:\n ${a('"test": "jest"')}`));const u=n.path.resolve("package.json");if(!(yield(0,r.pathExists)(u)))return void(0,s.logWarn)("package.json not found");const d=yield(0,r.readJSON)(u),p=d.scripts||{},f=d.workspaces||[];(0,s.logProgress)('config script "start"'),p.start="builder build",(0,s.logProgress)('config script "build"'),p.build="builder build --node-env production",o&&((0,s.logProgress)('config script "lint"'),p.lint="eslint packages/**/*.{ts,tsx}"),i&&((0,s.logProgress)('config script "test"'),p.test="jest"),f.some((e=>e.includes("packages/")))||((0,s.logProgress)("config add workspaces"),f.push("packages/*")),yield(0,r.writeJSON)(u,Object.assign(Object.assign({},d),{scripts:p,workspaces:f}),{spaces:2}),(0,s.logStep)("config done")}))},242:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.production=t.path=t.nodeEnv=void 0;const o=n(7304);t.nodeEnv=new o.Option("--node-env <env>","Specify build environment").choices(["development","production"]).default("development").env("NODE_ENV"),t.path=new o.Option("--path <path>","Specify root path for compilation").default(process.cwd()),t.production=new o.Option("--production","Production build").default(!1)},2035:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ask=t.editorConfigs=t.sdk=t.components=void 0;const r=i(n(3290));t.components={message:"Select components to install",type:"checkbox",choices:["webpack","typescript","eslint","jest"],default:["webpack","typescript","eslint","jest"]},t.sdk={message:"Install VSCode Yarn SDK?",type:"confirm",default:!0},t.editorConfigs={message:"Copy editconfig, git config files?",type:"confirm",default:!0};const s={components:t.components,sdk:t.sdk,editorConfigs:t.editorConfigs};t.ask=e=>o(void 0,void 0,void 0,(function*(){return yield r.default.prompt(Object.keys(e).map((e=>Object.assign(Object.assign({},s[e]),{name:e}))))}))},7872:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getConfigs=void 0;const r=i(n(5671)),s=n(3285),a=n(6780),c=i(n(4772)),l=n(4867);t.getConfigs=(e,t="development",n)=>o(void 0,void 0,void 0,(function*(){const o=new c.default,i=new r.default({envName:t,rootPath:e,deps:o}),d=i.path.resolve("abux.config.js");if(u(o),(null==n?void 0:n.options)&&i.updateOptions(n.options),yield(0,s.pathExists)(d)){const e=yield(0,l.moduleFromFile)(d);e.options&&i.updateOptions(e.options),e.filter&&"function"==typeof e.filter&&i.filter("workspace:custom",e.filter)}yield i.init();return{deps:o,editor:i,configs:i.configs.map((e=>Object.assign(Object.assign({},e),{name:a.styles.bold.underline.greenBright(e.name),plugins:e.plugins.filter(Boolean)})))}}));const u=e=>{e.set("typescript",{version:"^5.0.4"}),e.set("webpack",{version:"^5.80.0"}),e.set("eslint",{version:"^8.39.0",dev:!0,dependencies:[{name:"@typescript-eslint/eslint-plugin",version:"^5.59.1"},{name:"@typescript-eslint/parser",version:"^5.59.1"},{name:"eslint",version:"^8.39.0"},{name:"eslint-config-standard",version:"^17.0.0"},{name:"eslint-config-standard-with-typescript",version:"^34.0.1"},{name:"eslint-plugin-import",version:"^2.27.5"},{name:"eslint-plugin-jest",version:"^27.2.1"},{name:"eslint-plugin-n",version:"^15.7.0"},{name:"eslint-plugin-promise",version:"^6.1.1"}]}),e.set("jest",{version:"^29.5.0",dev:!0,dependencies:[{name:"ts-jest",version:"^29.1.0"},{name:"@types/jest",version:"^29.5.1"}]})}},8341:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(n(2510)),s=n(1403),a=n(3285),c=e=>o(void 0,void 0,void 0,(function*(){return yield(0,s.map)(e,(e=>o(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{entry:yield(0,s.filter)(e.entry,(e=>o(void 0,void 0,void 0,(function*(){return!l(e)}))))})}))))})),l=e=>(0,s.extractMatch)(e.import,/\/dev\//);t.default=({editor:e})=>o(void 0,void 0,void 0,(function*(){if(!process.env.WEBPACK_SERVE||"development"!==e.options.envName)return{configs:yield c(e.configs)};const{devs:t}=e.options,n=[];return{configs:[...yield(0,s.filter)(e.configs,(i=>o(void 0,void 0,void 0,(function*(){if(i.devServer)return!0;if("web"!==i.target)return!1;const o=Object.keys(i.entry);for(let c=0;c<o.length;c++){const u=o[c],d=i.entry[u];let p=l(d);if(!p)continue;p=p.replace(/\/$/,"");const f=`${p}/index.html`;if(!(yield(0,a.pathExists)(f)))continue;const v=`${i.target}:dev:${e.path.relative(p)}`,h={open:!1,host:"0.0.0.0",port:0,historyApiFallback:!1,compress:!0,static:p.replace(/([A-Z]+):/,((e,t)=>`/${t.toLowerCase()}`)),hot:!0,devMiddleware:{publicPath:"/"}},g=t.reduce(((e,{pattern:t,options:n})=>(0,s.matchPattern)(d.import,t)?Object.assign(Object.assign({},e),n):e),h);n.push(Object.assign(Object.assign({},i),{name:v,plugins:[...i.plugins,new r.default({inject:!0,template:f})],entry:{[u]:d},watch:!1,devServer:g}))}return!1})))),...n]}}))},6176:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const i=n(1403),r=n(69);t.default=({editor:e})=>o(void 0,void 0,void 0,(function*(){return{configs:yield(0,i.map)(e.configs,(t=>o(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},t),{plugins:[...t.plugins,"production"===e.options.envName&&new r.WebpackDtsPlugin(e.path.rootPath)]})}))))}}))},6803:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.setWebPackageConfig=t.setNodePackageConfig=t.getConfig=void 0;const i=n(1403),r=n(7487);t.default=({editor:e})=>o(void 0,void 0,void 0,(function*(){const n=e.entries,r=Object.keys(n);return{configs:yield(0,i.map)(r,(i=>o(void 0,void 0,void 0,(function*(){const o=n[i];return yield(0,t.getConfig)(i,o,e)}))))}}));t.getConfig=(e="web",n,i)=>o(void 0,void 0,void 0,(function*(){const{envName:o="development"}=i.options,s={target:"node",name:e,entry:n,mode:o,output:{path:i.path.rootPath,filename:e=>{var t,n;return null===(n=null===(t=e.chunk)||void 0===t?void 0:t.name)||void 0===n?void 0:n.replace(/\.tsx?$/,".js")}},resolve:{extensions:[".ts",".js",".tsx"]},module:{rules:[yield(0,r.resolveOptions)("ts-loader",(e=>({test:/\.(js|tsx?)$/,use:[{loader:e,options:{configFile:i.path.resolve("tsconfig.json")}}],exclude:/node_modules|yarn/}))),yield(0,r.resolveOptions)("html-loader",(e=>({test:/\.html$/i,loader:e})))].filter(Boolean)},externals:[],plugins:[],stats:"normal",watch:"development"===o,devtool:"development"===o&&"inline-source-map"};return"node"===e?(0,t.setNodePackageConfig)(s):(0,t.setWebPackageConfig)(s)}));t.setNodePackageConfig=e=>Object.assign(Object.assign({},e),{target:"node",output:Object.assign(Object.assign({},e.output),{libraryTarget:"commonjs2"}),externalsPresets:Object.assign(Object.assign({},e.externalsPresets),{node:!0})});t.setWebPackageConfig=e=>Object.assign(Object.assign({},e),{target:"web",output:Object.assign({},e.output),externalsPresets:Object.assign(Object.assign({},e.externalsPresets),{node:!1})})},7268:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=n(1403),s=i(n(5851));t.default=({editor:e})=>o(void 0,void 0,void 0,(function*(){return e.options.replacements?{configs:yield(0,r.map)(e.configs,(t=>o(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},t),{plugins:[...t.plugins,...e.options.replacements.map((({pattern:e,map:t})=>new s.default(t,e)))]})}))))}:{configs:e.configs}}))},6975:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const i=n(9354),r=n(1403),s=n(5584),a=n(3285),c=n(5142),l=n(6780),{info:u,warn:d}=l.loggers;t.default=({editor:e})=>o(void 0,void 0,void 0,(function*(){const t=(0,s.resolver)(e.path.rootPath);return{configs:yield(0,r.map)(e.configs,(e=>o(void 0,void 0,void 0,(function*(){return Object.assign(Object.assign({},e),{plugins:[...e.plugins,new i.DefinePlugin(Object.assign({"process.env.NODE_ENV":JSON.stringify(e.mode)},yield p(t,e.entry)))]})}))))}}));const p=(e,t)=>o(void 0,void 0,void 0,(function*(){const n={};Object.values(t).forEach((t=>{const o=e.relative(t.import),i=(0,s.getLocalPackagePath)(o);if(i){const t=i.split(/\//).pop(),o=e.resolve(i);n[o]=t}}));const i={};return yield Promise.all(Object.keys(n).map((e=>o(void 0,void 0,void 0,(function*(){const t=n[e],o=f(t),r=`${e}/.env`,s=`${e}/package.json`;if(yield(0,a.pathExists)(s)){try{const e=yield(0,a.readJSON)(s);u(`[vars] register ${t} info`),Object.keys(e).forEach((t=>{const n=e[t];"string"==typeof n&&(i[`process.env.${o}_PACKAGE_${f(t)}`]=JSON.stringify(n))}))}catch(e){return void d(`cannot parse ${t} info, error:`,e.message)}if(yield(0,a.pathExists)(r))try{const e=yield(0,a.readFile)(r,"utf-8"),n=(0,c.parse)(e);u(`[vars] register ${t} envs`),Object.keys(n).forEach((e=>{const t=n[e];"string"==typeof t&&(i[`process.env.${o}_ENV_${f(e)}`]=JSON.stringify(t))}))}catch(e){d(`cannot parse ${t} env file, error:`,e.message)}}}))))),i})),f=e=>e.replace(/-/g,"_").toUpperCase()},6147:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=i(n(5977)),s=i(n(8319)),a=n(1403);t.default=({editor:e})=>o(void 0,void 0,void 0,(function*(){return{configs:yield(0,a.map)(e.configs,(e=>o(void 0,void 0,void 0,(function*(){return"node"!==e.target?e:Object.assign(Object.assign({},e),{externals:[...e.externals,(0,r.default)(),(0,s.default)()]})}))))}}))},1403:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.matchPattern=t.extractMatch=t.extractPattern=t.filter=t.map=void 0;const r=i(n(8645)),s=n(6828);t.map=(e,t)=>o(void 0,void 0,void 0,(function*(){switch((0,r.default)(e)){case"object":const n={};return yield Promise.all(Object.keys(e).map((i=>o(void 0,void 0,void 0,(function*(){n[i]=yield t(e[i],i)}))))),n;case"array":return yield Promise.all(e.map(t));default:throw Error("Please provide object or array input")}}));t.filter=(e,t)=>o(void 0,void 0,void 0,(function*(){let n;switch((0,r.default)(e)){case"object":return n={},yield Promise.all(Object.keys(e).map((i=>o(void 0,void 0,void 0,(function*(){const o=e[i];(yield t(o,i))&&(n[i]=o)}))))),n;case"array":return n=[],yield Promise.all(e.map(((e,i)=>o(void 0,void 0,void 0,(function*(){(yield t(e,i))&&n.push(e)}))))),n;default:throw Error("Please provide object or array input")}}));t.extractPattern=e=>e.toString().replace(/^\/(.*)\/[a-z]*$/,"$1");t.extractMatch=(e,t)=>{var n;const o=e.match(t);return o?e.slice(0,(null!==(n=o.index)&&void 0!==n?n:0)+o[0].length):""};t.matchPattern=(e,t)=>!t||(t instanceof RegExp?t.test(e):"string"!=typeof t||(0,s.minimatch)(e,t))},7487:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.resolveOptions=t.logEntries=t.expandEntries=void 0;const r=i(n(2479)),s=n(6780),a=n(5584),c=n(6828),l=n(133),{info:u,log:d}=s.loggers,{bold:p,italic:f}=s.styles;t.expandEntries=(e,t,n=[])=>o(void 0,void 0,void 0,(function*(){return(yield(0,r.default)(t.map((t=>e.resolve(t))))).filter((e=>!n.some((t=>t instanceof RegExp?t.test(e):(0,c.minimatch)(e,t))))).reduce(((t,n)=>{const o=e.relative(n),i=(0,a.resolve)(e.relative(n)),r=/\/(scripts|dev|web)\//.test(o)?"web":"node";return Object.assign(Object.assign({},t),{[r]:Object.assign(Object.assign({},t[r]),{[o]:{import:i}})})}),{})}));t.logEntries=e=>{u(p.cyanBright("Building entries:")),e.forEach((({name:e,target:t,entry:n})=>{d(` ${e} (${f(t||"")}):`),Object.keys(n).forEach((e=>{d(` ${e}`)}))}))};t.resolveOptions=(e,t)=>o(void 0,void 0,void 0,(function*(){const n=yield(0,l.resolve)(e);return n?t(n):void 0}))},4867:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.moduleFromText=t.moduleFromFile=t.installSdk=t.getYarnVersion=t.install=void 0;const r=i(n(3325)),s=i(n(8188)),a=n(5584),c=n(3285),l={env:{FORCE_COLOR:"true"}};t.install=(e,t)=>o(void 0,void 0,void 0,(function*(){var n,o;const{dev:i=!1,outputStream:s=process.stdout,errorStream:a=process.stderr}=t||{},c=(0,r.default)("yarn",["add","--silent",i?"--dev":"",...e].filter(Boolean),l);s&&(null===(n=c.stdout)||void 0===n||n.on("data",(e=>{const t=e.toString();t.includes("fetched from")||s.write(t)}))),a&&(null===(o=c.stderr)||void 0===o||o.pipe(a)),yield c}));t.getYarnVersion=()=>o(void 0,void 0,void 0,(function*(){var e;const{stdout:t}=yield(0,r.default)("yarn",["--version"],l);return(null===(e=t.match(/\d+(\.\d+)*/))||void 0===e?void 0:e[0])||""}));t.installSdk=(e,t)=>o(void 0,void 0,void 0,(function*(){var n,o;const{outputStream:i=process.stdout,errorStream:s=process.stderr}=t||{},a=(0,r.default)("yarn",["dlx","@yarnpkg/sdks",e],l);i&&(null===(n=a.stdout)||void 0===n||n.on("data",(e=>{const t=e.toString();t.includes("fetched from")||i.write(t)}))),s&&(null===(o=a.stderr)||void 0===o||o.pipe(s)),yield a}));const u=s.default._cache||{};t.moduleFromFile=e=>o(void 0,void 0,void 0,(function*(){const n=(0,a.resolve)(e);if(u[n])return u[n].exports;const o=yield(0,c.readFile)(n,"utf8");return(0,t.moduleFromText)(n,o)}));t.moduleFromText=(e,t)=>{const n=new s.default(e),o=n._compile;if(!o)throw Error("module _compiler is not function");return o.apply(n,[t,e]),n.exports}},5584:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getLocalPackagePath=t.removeExt=t.merge=t.resolve=t.resolver=t.getName=t.getDir=t.normalize=t.PathResolver=void 0;const o=n(1017);class i{constructor(e){this.rootPath=(0,t.normalize)((0,o.resolve)(e))}relative(e){return(0,t.normalize)((0,o.relative)(this.rootPath,(0,t.normalize)(e)))}relativeList(e){return e.map((e=>this.relative(e)))}includes(e){return 0===(0,t.normalize)(e).indexOf(this.rootPath)}resolve(...e){return(0,t.normalize)((0,o.resolve)(this.rootPath,...e.filter(Boolean).map((e=>e.replace(/^\/+/,"")))))}resolveList(e){return e.map((e=>this.resolve(e)))}dir(){return(0,t.resolver)((0,t.getDir)(this.rootPath))}res(...e){return(0,t.resolver)(this.resolve(...e))}}t.PathResolver=i;t.normalize=e=>(null==e?void 0:e.replace(/\\/g,"/"))||"";t.getDir=e=>(0,t.normalize)(e).replace(/\/[^/]+\/?$/,"");t.getName=e=>(0,o.basename)((0,t.normalize)(e));t.resolver=e=>new i(e);t.resolve=e=>(0,t.normalize)((0,o.resolve)(e));t.merge=(...e)=>(0,t.normalize)((0,o.join)(...e));t.removeExt=e=>null==e?void 0:e.replace(/\.([^/]+)$/,"");const r=/([^/.]+\/[^/.]+)/;t.getLocalPackagePath=e=>{if(e.includes("node_modules")||e.includes(".yarn"))return"";const t=e.match(r);return t?t[1]:""}},3285:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.mkdirp=t.createWriteStream=t.writeJSON=t.readFile=t.readJSON=t.pathExists=t.copy=t.stat=void 0;var o=n(4470);Object.defineProperty(t,"stat",{enumerable:!0,get:function(){return o.stat}}),Object.defineProperty(t,"copy",{enumerable:!0,get:function(){return o.copy}}),Object.defineProperty(t,"pathExists",{enumerable:!0,get:function(){return o.pathExists}}),Object.defineProperty(t,"readJSON",{enumerable:!0,get:function(){return o.readJSON}}),Object.defineProperty(t,"readFile",{enumerable:!0,get:function(){return o.readFile}}),Object.defineProperty(t,"writeJSON",{enumerable:!0,get:function(){return o.writeJSON}}),Object.defineProperty(t,"createWriteStream",{enumerable:!0,get:function(){return o.createWriteStream}}),Object.defineProperty(t,"mkdirp",{enumerable:!0,get:function(){return o.mkdirp}})},5851:function(e,t,n){var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{c(o.next(e))}catch(e){r(e)}}function a(e){try{c(o.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((o=o.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const i=n(9354),r=n(6780),s=n(1403),{info:a}=r.loggers;t.default=class{constructor(e,t){this.replacementMap=e,this.pattern=t}apply(e){e.hooks.compilation.tap("[replacement] setup compilation",(e=>{e.hooks.processAssets.tapPromise({name:"[replacement] replace assets before saving",stage:i.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE},(t=>o(this,void 0,void 0,(function*(){const n=Object.keys(this.replacementMap).map((e=>`${e}:${this.replacementMap[e]}`)).join(" ").padEnd(40,"...");for(const o in t){if(!this.matchAsset(o))continue;const r=t[o].source(),s=Object.keys(this.replacementMap).reduce(((e,t)=>{const n=this.replacementMap[t];return e.replace(new RegExp(`require\\(['"]${t}['"]\\)`,"g"),`require("${n}")`)}),r);e.updateAsset(o,new i.sources.RawSource(s)),a(`[replace] ${o}: ${n}`)}}))))}))}matchAsset(e){return(0,s.matchPattern)(e,this.pattern)}}},8298:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=n(6780),{progress:i}=o.loggers;t.default=class{constructor(){this.events={beforeRun(e){i(`${e.name}: start building`)},compilation(e){i(`${e.compiler.name}: compiling`)},afterCompile(e){i(`${e.compiler.name}: compiled`)}}}apply(e){Object.keys(this.events).forEach((t=>{e.hooks[t].tap(`ProgressPlugin: ${t}`,this.events[t])}))}}},8319:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const o=n(1017);function i(e,t,n){if("string"==typeof e)return e===t;if(e instanceof RegExp)return e.test(t);if(e instanceof Function)return e(t,n);if(e instanceof Array){for(const o of e)if(i(o,t,n))return!0;return!1}throw new Error("Unexpected pattern type")}t.default=function(e={}){const{include:t,exclude:r,importType:s="commonjs"}=e;let a;try{a=n(3563)}catch(e){if("MODULE_NOT_FOUND"!==e.code)throw e;a=null}return function(...e){let n,[c,l,u]=e;if(2===e.length&&([{context:c,request:l},u]=e),null==a)return u();if(/^\.\.?[/\\]/.test(l)||(0,o.isAbsolute)(l))return u();try{n=a.resolveRequest(l,c,{considerBuiltins:!1})}catch(e){if("MODULE_NOT_FOUND"===e.code)return u();throw e}if(null!=t&&!i(t,l,n))return u();if(null!=r&&i(r,l,n))return u();let d=s;return d instanceof Function&&(d=d(l,n)),u(null,l,d)}}},6780:e=>{e.exports=require("@abux/logger/cli")},133:e=>{e.exports=require("@abux/resolve")},69:e=>{e.exports=require("@abux/webpack-dts")},7304:e=>{e.exports=require("commander")},5142:e=>{e.exports=require("dotenv")},3325:e=>{e.exports=require("execa")},2479:e=>{e.exports=require("fast-glob")},4470:e=>{e.exports=require("fs-extra")},2510:e=>{e.exports=require("html-webpack-plugin")},3290:e=>{e.exports=require("inquirer")},8645:e=>{e.exports=require("kind-of")},6828:e=>{e.exports=require("minimatch")},3563:e=>{e.exports=require("pnpapi")},9354:e=>{e.exports=require("webpack")},7426:e=>{e.exports=require("webpack-dev-server")},5977:e=>{e.exports=require("webpack-node-externals")},8188:e=>{e.exports=require("module")},1017:e=>{e.exports=require("path")}},t={};var n=function n(o){var i=t[o];if(void 0!==i)return i.exports;var r=t[o]={exports:{}};return e[o].call(r.exports,r,r.exports,n),r.exports}(5542);module.exports=n})();