/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@teleporthq/teleport-project-generator@0.42.29/dist/cjs/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var t,s=1,r=arguments.length;s<r;s++)for(var n in t=arguments[s])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},__assign.apply(this,arguments)},__awaiter=this&&this.__awaiter||function(e,t,s,r){return new(s||(s=Promise))((function(n,o){function a(e){try{l(r.next(e))}catch(e){o(e)}}function i(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(a,i)}l((r=r.apply(e,t||[])).next())}))},__generator=this&&this.__generator||function(e,t){var s,r,n,o,a={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return o={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function i(i){return function(l){return function(i){if(s)throw new TypeError("Generator is already executing.");for(;o&&(o=0,i[0]&&(a=0)),a;)try{if(s=1,r&&(n=2&i[0]?r.return:i[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,i[1])).done)return n;switch(r=0,n&&(i=[2&i[0],n.value]),i[0]){case 0:case 1:n=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(n=a.trys,(n=n.length>0&&n[n.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!n||i[1]>n[0]&&i[1]<n[3])){a.label=i[1];break}if(6===i[0]&&a.label<n[1]){a.label=n[1],n=i;break}if(n&&a.label<n[2]){a.label=n[2],a.ops.push(i);break}n[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{s=n=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}},__spreadArray=this&&this.__spreadArray||function(e,t,s){if(s||2===arguments.length)for(var r,n=0,o=t.length;n<o;n++)!r&&n in t||(r||(r=Array.prototype.slice.call(t,0,n)),r[n]=t[n]);return e.concat(r||Array.prototype.slice.call(t))},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.createProjectGenerator=exports.ProjectGenerator=void 0;var teleport_shared_1=require("@teleporthq/teleport-shared"),teleport_uidl_validator_1=require("@teleporthq/teleport-uidl-validator"),teleport_types_1=require("@teleporthq/teleport-types"),utils_1=require("./utils"),file_handlers_1=require("./file-handlers"),constants_1=require("./constants"),assembly_line_1=__importDefault(require("./assembly-line")),path_1=require("path"),resource_1=require("./resource"),teleport_component_generator_1=require("@teleporthq/teleport-component-generator"),teleport_postprocessor_prettier_js_1=__importDefault(require("@teleporthq/teleport-postprocessor-prettier-js")),teleport_plugin_import_statements_1=__importDefault(require("@teleporthq/teleport-plugin-import-statements")),ProjectGenerator=function(){function e(e){this.assetPrefix=null,this.assetsAndPathMapping={},this.assetIdentifier=null,this.validator=new teleport_uidl_validator_1.Validator,this.strategy=e,this.assemblyLine=new assembly_line_1.default}return e.prototype.getStrategy=function(){return this.strategy},e.prototype.updateStrategy=function(e){this.strategy=__assign(__assign({},this.strategy),e)},e.prototype.updateGenerator=function(e){this.updateComponentsGenerator(e),this.updatePagesGenerator(e)},e.prototype.updateComponentsGenerator=function(e){"function"==typeof e&&e(this.strategy.components.generator())},e.prototype.updatePagesGenerator=function(e){"function"==typeof e&&e(this.strategy.pages.generator())},e.prototype.updateComponentsStrategy=function(e){var t=e.generator,s=e.path,r=e.options;t&&(this.strategy.components.generator=function(){return t}),s&&(this.strategy.components.path=s),r&&Object.keys(r).length>0&&(this.strategy.components.options=__assign(__assign({},this.strategy.components.options),r))},e.prototype.updatePagesStrategy=function(e){var t=e.generator,s=e.path,r=e.options;t&&(this.strategy.pages.generator=function(){return t}),s&&(this.strategy.pages.path=s),r&&Object.keys(r).length>0&&(this.strategy.pages.options=__assign(__assign({},this.strategy.pages.options),r))},e.prototype.setAssets=function(e){var t=e.mappings,s=e.prefix,r=e.identifier;t&&(this.assetsAndPathMapping=t),s&&(this.assetPrefix=s),r&&(this.assetIdentifier=r)},e.prototype.generateProject=function(e,t,s,r,n){var o,a,i,l,p,c,h,g,u,d,_,y,f,v,m,S,b,j,P,G,w,x,k,C,D,E,F,O,A,L,N,T,q,M,U,I,R,z,J,B,V,H,K,Q;return void 0===t&&(t=constants_1.DEFAULT_TEMPLATE),void 0===s&&(s={}),void 0===r&&(r=!1),__awaiter(this,void 0,void 0,(function(){var W,X,Y,Z,$,ee,te,se,re,ne,oe,ae,ie,le,pe,ce,he,ge,ue,de,_e,ye,fe,ve,me,Se,be,je,Pe,Ge,we,xe,ke,Ce,De,Ee,Fe,Oe,Ae,Le,Ne,Te,qe,Me,Ue,Ie,Re,ze,Je,Be,Ve,He,Ke,Qe,We,Xe,Ye,Ze,$e,et,tt,st,rt,nt,ot,at,it,lt,pt;return __generator(this,(function(ct){switch(ct.label){case 0:if(W=e,X={},Y={},Z=new Map,$=teleport_shared_1.UIDLUtils.cloneObject(t||constants_1.DEFAULT_TEMPLATE),ee=this.validator.validateProjectSchema(e),te=ee.valid,se=ee.projectUIDL,!te||!se)throw new Error(ee.errorMsg);if(W=se,re=teleport_uidl_validator_1.Parser.parseProjectJSON(W),!(ne=this.validator.validateProjectContent(re)).valid)throw new Error(ne.errorMsg);ct.label=1;case 1:return ct.trys.push([1,3,,4]),[4,this.assemblyLine.runBefore({uidl:re,template:t,files:Z,strategy:this.strategy,dependencies:X,devDependencies:Y,rootFolder:$})];case 2:return oe=ct.sent(),X=__assign(__assign({},X),oe.dependencies),Y=__assign(__assign({},Y),oe.devDependencies),this.strategy=oe.strategy,Z=oe.files,(null===(o=this.strategy.components)||void 0===o?void 0:o.generator)&&(this.componentGenerator=(0,utils_1.bootstrapGenerator)(this.strategy.components,this.strategy.style,r)),(null===(a=this.strategy.pages)||void 0===a?void 0:a.generator)&&(this.pageGenerator=(0,utils_1.bootstrapGenerator)(this.strategy.pages,this.strategy.style,r)),(null===(i=this.strategy.projectStyleSheet)||void 0===i?void 0:i.generator)&&(this.styleSheetGenerator=(0,utils_1.bootstrapGenerator)(this.strategy.projectStyleSheet,this.strategy.style,r)),(null===(l=this.strategy.router)||void 0===l?void 0:l.generator)&&(this.routerGenerator=(0,utils_1.bootstrapGenerator)(this.strategy.router,this.strategy.style,r)),[3,4];case 3:throw ae=ct.sent(),console.trace(ae),new teleport_types_1.TeleportError("Error in Generating Project after runBefore");case 4:return ie=re.components,le=void 0===ie?{}:ie,pe=re.root,ce=pe.styleSetDefinitions,he=void 0===ce?{}:ce,ge=pe.designLanguage,ue=(0,utils_1.createPageUIDLs)(re,this.strategy),Object.keys(le).length>0&&((0,utils_1.prepareComponentOutputOptions)(le,this.strategy),(0,utils_1.resolveLocalDependencies)(ue,le,this.strategy)),de=(this.assetPrefix?this.assetPrefix:"string"==typeof this.strategy.static.prefix)?this.strategy.static.prefix:"/"+this.getAssetsPath().join("/"),_e=__assign(__assign(__assign(__assign(__assign(__assign({assets:{prefix:de,mappings:this.assetsAndPathMapping,identifier:this.assetIdentifier,fontsFolder:path_1.join.apply(void 0,__spreadArray(__spreadArray([],(null===(c=null===(p=this.strategy)||void 0===p?void 0:p.static)||void 0===c?void 0:c.path)||[],!1),[null!==(h=this.assetIdentifier)&&void 0!==h?h:"","fonts"],!1)),localFonts:null===(g=re.globals)||void 0===g?void 0:g.assets.filter((function(e){return"local-font"===e.type}))},projectRouteDefinition:re.root.stateDefinitions.route,designLanguage:null===(u=re.root)||void 0===u?void 0:u.designLanguage,mapping:s,extractedResources:{},skipValidation:!0,skipI18n:!re.internationalization},re.internationalization&&{internationalization:__assign({main:re.internationalization.main,languages:re.internationalization.languages,translations:re.internationalization.translations},n&&{targetLocale:n})}),re.resources&&(null===(_=null===(d=this.strategy)||void 0===d?void 0:d.resources)||void 0===_?void 0:_.path)&&{resources:{items:null===(y=null==re?void 0:re.resources)||void 0===y?void 0:y.items,cache:null==re?void 0:re.resources.cache,path:this.strategy.resources.path}}),re.dataSources&&Object.keys(re.dataSources).length>0&&{dataSources:re.dataSources}),re.forms&&{forms:re.forms}),Object.keys(le).length>0&&{projectComponents:le}),(null===(f=this.strategy.projectStyleSheet)||void 0===f?void 0:f.generator)&&(null===(v=this.strategy.projectStyleSheet)||void 0===v?void 0:v.path)&&{projectStyleSet:{styleSetDefinitions:he,fileName:null===(m=this.strategy.projectStyleSheet)||void 0===m?void 0:m.fileName,path:teleport_shared_1.GenericUtils.generateLocalDependenciesPrefix(this.strategy.pages.path,(null===(S=this.strategy.pages.options)||void 0===S?void 0:S.createFolderForEachComponent)?__spreadArray([".."],this.strategy.projectStyleSheet.path,!0):null===(b=this.strategy.projectStyleSheet)||void 0===b?void 0:b.path),importFile:(null===(j=this.strategy.projectStyleSheet)||void 0===j?void 0:j.importFile)||!1}}),(null===(P=this.strategy.projectStyleSheet)||void 0===P?void 0:P.generator)?[4,this.styleSheetGenerator.generateComponent(__assign(__assign({},re.root),{outputOptions:{folderPath:this.strategy.projectStyleSheet.path}}),__assign({isRootComponent:!0},_e))]:[3,6];case 5:ye=ct.sent(),it=ye.files,st=ye.dependencies,Z.set("projectStyleSheet",{path:this.strategy.projectStyleSheet.path,files:it}),X=__assign(__assign({},X),st),ct.label=6;case 6:if(fe=Object.values((null===(G=null==re?void 0:re.resources)||void 0===G?void 0:G.items)||{}),!((null===(w=this.strategy)||void 0===w?void 0:w.resources)&&fe.length>0))return[3,10];(ve=(0,teleport_component_generator_1.createComponentGenerator)()).addPostProcessor(teleport_postprocessor_prettier_js_1.default),me=function(e){var t,s,r,n,o,a;return __generator(this,(function(i){switch(i.label){case 0:return t=(0,resource_1.resourceGenerator)(e,(null===(x=re.resources)||void 0===x?void 0:x.resourceMappers)||{}),s=t.chunks,r=t.dependencies,[4,(0,teleport_plugin_import_statements_1.default)({uidl:re.root,dependencies:r,chunks:[],options:{extractedResources:{}}})];case 1:return n=i.sent().chunks,o=ve.linkCodeChunks(((a={})[teleport_types_1.FileType.JS]=__spreadArray(__spreadArray([],n,!0),s,!0),a),teleport_shared_1.StringUtils.camelCaseToDashCase(e.name)),X=__assign(__assign({},X),Object.keys(r).reduce((function(e,t){var s=r[t];return"package"===s.type&&(e[s.path]=s.version),e}),{})),Z.set("resource-".concat(e.name),{files:o,path:Se.strategy.resources.path}),[2]}}))},Se=this,be=0,je=fe,ct.label=7;case 7:return be<je.length?(Pe=je[be],[5,me(Pe)]):[3,10];case 8:ct.sent(),ct.label=9;case 9:return be++,[3,7];case 10:Ge=0,we=ue,ct.label=11;case 11:if(!(Ge<we.length))return[3,15];if(xe=we[Ge],!(null===(C=null===(k=this.strategy)||void 0===k?void 0:k.pages)||void 0===C?void 0:C.generator))throw new teleport_types_1.TeleportError("Pages Generator is missing from the strategy - ".concat(JSON.stringify(this.strategy.pages)));return ke=_e,Ie=teleport_shared_1.UIDLUtils.getComponentFolderPath(xe),Re=this.strategy.pages.path.concat(Ie),"addExternalComponents"in this.pageGenerator&&this.pageGenerator.addExternalComponents({externals:le,options:_e}),[4,(0,file_handlers_1.createPage)(xe,this.pageGenerator,ke)];case 12:return Ce=ct.sent(),it=Ce.files,st=Ce.dependencies,Object.values(ke.extractedResources).forEach((function(e){var t=e.path.join("/"),s="resource-".concat(t,"/").concat(e.fileName);Z.set(s,{path:e.path,files:[{name:e.fileName,fileType:e.fileType,content:e.content}]})})),Z.set("page-".concat(xe.name),{path:Re,files:it}),X=__assign(__assign({},X),st),(null===(D=this.strategy.pages)||void 0===D?void 0:D.module)?(De=(0,utils_1.bootstrapGenerator)(this.strategy.pages.module,this.strategy.style),[4,(0,file_handlers_1.createPageModule)(xe,De,_e)]):[3,14];case 13:Ee=ct.sent(),Z.set("".concat(xe.name,"Module"),{path:Re,files:Ee.files}),X=__assign(__assign({},X),Ee.dependencies),ct.label=14;case 14:return Ge++,[3,11];case 15:return(null===(F=null===(E=this.strategy.components)||void 0===E?void 0:E.options)||void 0===F?void 0:F.excludeFiles)?[3,21]:(null===(A=null===(O=this.strategy)||void 0===O?void 0:O.components)||void 0===A?void 0:A.module)?(Fe=(0,utils_1.bootstrapGenerator)(this.strategy.components.module,this.strategy.style),[4,(0,file_handlers_1.createComponentModule)(re,this.strategy,Fe)]):[3,17];case 16:Oe=ct.sent(),Z.set(Oe.files[0].name,{path:this.strategy.components.path,files:Oe.files}),X=__assign(__assign({},X),Oe.dependencies),ct.label=17;case 17:Ae=0,Le=Object.keys(le),ct.label=18;case 18:if(!(Ae<Le.length))return[3,21];if(Ne=Le[Ae],!(null===(N=null===(L=this.strategy)||void 0===L?void 0:L.components)||void 0===N?void 0:N.generator))throw new teleport_types_1.TeleportError("Component Generator is missing from the strategy - ".concat(JSON.stringify(this.strategy.components)));return Te=_e,this.strategy.projectStyleSheet&&(qe=teleport_shared_1.GenericUtils.generateLocalDependenciesPrefix(this.strategy.components.path,this.strategy.projectStyleSheet.path),Te=__assign(__assign({},_e),{projectStyleSet:{styleSetDefinitions:he,fileName:this.strategy.projectStyleSheet.fileName,path:(null===(q=null===(T=this.strategy.components)||void 0===T?void 0:T.options)||void 0===q?void 0:q.createFolderForEachComponent)?(0,path_1.join)("..",qe):qe,importFile:(null===(M=this.strategy.projectStyleSheet)||void 0===M?void 0:M.importFile)||!1},designLanguage:null===(U=re.root)||void 0===U?void 0:U.designLanguage,globalAssets:null===(I=re.globals)||void 0===I?void 0:I.assets})),"addExternalComponents"in this.componentGenerator&&this.componentGenerator.addExternalComponents({externals:le,options:Te}),Me=le[Ne],[4,(0,file_handlers_1.createComponent)(Me,this.componentGenerator,Te)];case 19:Ue=ct.sent(),it=Ue.files,st=Ue.dependencies,Object.values(Te.extractedResources).forEach((function(e){var t=e.path.join("/"),s="resource-".concat(t,"/").concat(e.fileName);Z.set(s,{path:e.path,files:[{name:e.fileName,fileType:e.fileType,content:e.content}]})})),Ie=teleport_shared_1.UIDLUtils.getComponentFolderPath(Me),Re=this.strategy.components.path.concat(Ie),Z.set("component-".concat(Ne,"."),{path:Re,files:it}),X=__assign(__assign({},X),st),ct.label=20;case 20:return Ae++,[3,18];case 21:return(null==(ze=this.strategy.framework)?void 0:ze.replace)&&Boolean((null===(R=ze.replace)||void 0===R?void 0:R.isGlobalStylesDependent)&&(Object.keys(he).length>0||Object.keys((null===(J=null===(z=null==re?void 0:re.root)||void 0===z?void 0:z.designLanguage)||void 0===J?void 0:J.tokens)||{}).length>0))&&(Je=ze.replace,nt=Je.fileName,Ve=Je.fileType,Xe=ze.replace.replaceFile(t,X,nt,Ve),X=Xe.dependencies,Z.set("component-".concat(nt),{path:this.strategy.framework.replace.path,files:[Xe.file]})),(null==ze?void 0:ze.config)&&(Be=ze.config,nt=Be.fileName,Ve=Be.fileType,He=Be.configContentGenerator,Ke=Be.generator,Qe=Be.plugins,We=Be.postprocessors,He&&Ke&&(Xe=He({fileName:nt,fileType:Ve,globalStyles:{path:teleport_shared_1.GenericUtils.generateLocalDependenciesPrefix(ze.config.path,this.strategy.projectStyleSheet.path),sheetName:this.strategy.projectStyleSheet?this.strategy.projectStyleSheet.fileName:"",isGlobalStylesDependent:null!==(V=null===(B=ze.config)||void 0===B?void 0:B.isGlobalStylesDependent)&&void 0!==V?V:Boolean(Object.keys(he).length>0||Object.keys((null===(K=null===(H=re.root)||void 0===H?void 0:H.designLanguage)||void 0===K?void 0:K.tokens)||{}).length>0)},dependencies:X}),X=Xe.dependencies,Object.keys(null==Xe?void 0:Xe.chunks).length>0&&(Ye=ze.config.generator,it=Ye({plugins:Qe,postprocessors:We}).linkCodeChunks(Xe.chunks,ze.config.fileName),Z.set(nt,{path:this.strategy.framework.config.path,files:it})))),re.globals.manifest&&(Ze=(0,file_handlers_1.createManifestJSONFile)(re,_e.assets),Z.set(Ze.name,{path:this.strategy.static.path,files:[Ze]})),re.globals.env&&((0,file_handlers_1.createEnvFiles)(re.globals.env).forEach((function(e){Z.set(e.name,{path:[],files:[e]})})),$e=(0,file_handlers_1.createGitIgnoreFile)(),Z.set($e.name,{path:[],files:[$e]})),this.strategy.router?[4,(0,file_handlers_1.createRouterFile)(re.root,this.strategy,this.routerGenerator)]:[3,23];case 22:et=ct.sent(),tt=et.routerFile,st=et.dependencies,Z.set("router",{path:this.strategy.router.path,files:[tt]}),X=__assign(__assign({},X),st),ct.label=23;case 23:return this.strategy.entry?[4,(0,file_handlers_1.createEntryFile)(re,this.strategy,_e)]:[3,25];case 24:rt=ct.sent(),Z.set("entry",{path:this.strategy.entry.path,files:rt}),ct.label=25;case 25:if(!(null==ze?void 0:ze.externalStyles)||!(null===(Q=this.strategy.pages.options)||void 0===Q?void 0:Q.useFileNameForNavigation))return[3,27];if(nt=ze.externalStyles.fileName,!(ot=Z.get(nt)))throw new Error("Canno't find file - ".concat(nt," from the list of files generated"));return[4,(0,utils_1.generateExternalCSSImports)(re.root)];case 26:at=ct.sent()[0],it=(0,utils_1.fileFileAndReplaceContent)(ot.files,nt,at.content),Z.set(nt,{path:ot.path,files:it}),ct.label=27;case 27:return ct.trys.push([27,29,,30]),[4,this.assemblyLine.runAfter({uidl:re,template:t,files:Z,strategy:this.strategy,dependencies:X,devDependencies:Y,rootFolder:$})];case 28:return lt=ct.sent(),X=__assign(__assign({},X),lt.dependencies),Y=__assign(__assign({},Y),lt.devDependencies),Z=lt.files,[3,30];case 29:throw pt=ct.sent(),console.error(pt),new teleport_types_1.TeleportError("Error in generating project after runAfter - ".concat(pt));case 30:return Z.forEach((function(e){(0,utils_1.injectFilesToPath)($,e.path,e.files)})),(0,file_handlers_1.handlePackageJSON)($,re,X,Y),[2,$]}}))}))},e.prototype.addMapping=function(e){var t,s;this.strategy.components.mappings=__spreadArray(__spreadArray([],null===(t=this.strategy.components)||void 0===t?void 0:t.mappings,!0),[e],!1),this.strategy.pages.mappings=__spreadArray(__spreadArray([],null===(s=this.strategy.pages)||void 0===s?void 0:s.mappings,!0),[e],!1),this.strategy.router},e.prototype.addPlugin=function(e){this.assemblyLine.addPlugin(e)},e.prototype.cleanPlugins=function(){this.assemblyLine.cleanPlugins()},e.prototype.getAssetsPath=function(){return this.strategy.static.path},e}();exports.ProjectGenerator=ProjectGenerator;var createProjectGenerator=function(e){return new ProjectGenerator(e)};exports.createProjectGenerator=createProjectGenerator,exports.default=exports.createProjectGenerator;
//# sourceMappingURL=/sm/2d340ed58b98f051cf2b3dcb63b25a296f236370b03acb0546ab4d7dec9cdef4.map