@sap/generator-fiori
Version:
Create an SAPUI5 application using SAP Fiori elements or a freestyle approach
1 lines • 11.9 kB
JavaScript
;exports.id=256,exports.ids=[256],exports.modules={57328:function(e,i,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(i,"__esModule",{value:!0}),i.defaultUI5Libs=void 0,i.packageDefaults=function packageDefaults(e,i,r){const a={version:e||"0.0.1",description:i||"",devDependencies:{"@ui5/cli":"^3.0.0","@sap/ux-ui5-tooling":"1"}};if(r)return{...a,scripts:{start:"ui5 serve --config=ui5.yaml --open index.html","start-local":"ui5 serve --config=ui5-local.yaml --open index.html",build:"ui5 build --config=ui5.yaml --clean-dest --dest dist"}};return{...a,scripts:{}}},i.mergeApp=function mergeApp(e){return(0,l.default)({version:"0.0.1",title:(0,u.t)("text.defaultAppTitle",{id:e.id}),description:(0,u.t)("text.defaultAppDescription",{id:e.id}),baseComponent:"sap/ui/core/UIComponent",sourceTemplate:{id:e.sourceTemplate?.id??"",version:e.sourceTemplate?.version??"",toolsId:e.sourceTemplate?.toolsId}},e)},i.mergeUi5=function mergeUi5(e,i){const r=e.version??"",a=e.framework??"SAPUI5",o="SAPUI5"===a?"https://ui5.sap.com":"https://sdk.openui5.org",p={minUI5Version:(u=r,l=e.minUI5Version,l??(u||"1.60.0")),localVersion:getLocalVersion({framework:a,version:r,localVersion:e.localVersion}),version:r,framework:a,frameworkUrl:e.frameworkUrl??o};var u,l;p.descriptorVersion=getManifestVersion(p.minUI5Version,e.descriptorVersion),p.typesVersion=e.typesVersion??(i?.typescript?n.getEsmTypesVersion:n.getTypesVersion)(p.minUI5Version),p.typesPackage=(0,n.getTypesPackage)(p.typesVersion),p.ui5Theme=e.ui5Theme??"sap_fiori_3",e.manifestLibs&&e.manifestLibs.length>0&&(p.manifestLibs=(0,s.getUI5Libs)(e.manifestLibs));return p.ui5Libs=(0,s.getUI5Libs)(e.ui5Libs),Object.assign({},e,p)},i.getManifestVersion=getManifestVersion;const n=r(8231),o=a(r(33195)),s=r(45157),p=a(r(85263)),u=r(35975),l=a(r(39306));function getManifestVersion(e,i){const r=p.default.coerce(e);return i??(r&&(e=>{const i=o.default;let r=i[`${p.default.major(e)}.${p.default.minor(e)}`];if(!r){const a=Object.keys(i).filter((e=>"latest"!==e)).map((e=>p.default.coerce(e))).sort(((e,i)=>p.default.rcompare(e,i))),n=a[0];if(p.default.gt(e,n))r=i[`${n.major}.${n.minor}`];else{const n=a.find((i=>p.default.gt(e,i)));n&&(r=i[`${n.major}.${n.minor}`])}}return r})(r))??"1.12.0"}function getLocalVersion({framework:e,version:i,localVersion:r}){if(r)return r;if(""===i)return"1.95.0";const a="SAPUI5"===e?"1.76.0":"1.52.5",n=p.default.coerce(i),o=p.default.coerce(a);return n&&o&&p.default.gt(n,o)?p.default.valid(n):a}i.defaultUI5Libs=["sap.m","sap.ui.core"]},30492:(e,i,r)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.mergeWithDefaults=function mergeWithDefaults(e){(0,o.validate)(e),e.app=(0,n.mergeApp)(e.app),e.appOptions=e.appOptions||{},e.appOptions.typescript&&e.appOptions.codeAssist&&(e.appOptions.codeAssist=!1);e.ui5=(0,n.mergeUi5)(e.ui5||{},e.appOptions);const i="EDMXBackend"===e.app.projectType;e.package=(0,a.mergeObjects)((0,n.packageDefaults)(e.package.version,e.app.description,i),e.package),i||(e.package.sapuxLayer=void 0);return e};const a=r(8231),n=r(57328),o=r(14893)},45157:(e,i,r)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.ui5NPMSupport=i.ui5TSSupport=i.getUI5Libs=void 0;const a=r(57328);i.getUI5Libs=e=>{const i=Array.isArray(e)?e:e?.split(",")||[];return a.defaultUI5Libs.concat(i).filter(((e,i,r)=>r.indexOf(e)===i))},i.ui5TSSupport={task:{name:"ui5-tooling-transpile-task",afterTask:"replaceVersion",configuration:{debug:!0,transformModulesToUI5:{overridesToOverride:!0}}},middleware:{name:"ui5-tooling-transpile-middleware",afterMiddleware:"compression",configuration:{debug:!0,transformModulesToUI5:{overridesToOverride:!0},excludePatterns:["/Component-preload.js"]}}},i.ui5NPMSupport={task:{name:"ui5-tooling-modules-task",afterTask:"replaceVersion",configuration:{}},middleware:{name:"ui5-tooling-modules-middleware",afterMiddleware:"compression",configuration:{}}}},14893:function(e,i,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(i,"__esModule",{value:!0}),i.validateAppId=validateAppId,i.validateUI5Version=validateUI5Version,i.validate=function validate(e){return validateAppId(e.app.id)&&validateUI5Version(e.ui5?.version)&&validateUI5Version(e.ui5?.localVersion)&&validateUI5Version(e.ui5?.minUI5Version)};const n=a(r(85263)),o=r(35975);function validateAppId(e){if(!e)throw new Error((0,o.t)("error.missingRequiredProperty",{propertyName:"app.id"}));const i=e.match(/["]/);if(i)throw new Error((0,o.t)("error.disallowedCharacters",{propertyName:"app.id",disallowedChars:`${i?.join()}`}));return!0}function validateUI5Version(e){if(e&&null===n.default.coerce(e))throw new Error((0,o.t)("error.invalidUI5Version",{version:e}));return!0}},35975:function(e,i,r){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(i,"__esModule",{value:!0}),i.initI18n=initI18n,i.t=function t(e,i){return n.default.t(e,i)};const n=a(r(94448)),o=a(r(12063)),s="ui5-application-writer";async function initI18n(){await n.default.init({resources:{en:{[s]:o.default}},lng:"en",fallbackLng:"en",defaultNS:s,ns:[s]})}initI18n().catch((()=>{}))},57727:(e,i,r)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.getManifestVersion=i.getTemplateVersionPath=i.processDestinationPath=i.ui5LtsVersion_1_71=i.ui5LtsVersion_1_120=i.compareUI5VersionGte=void 0,i.generate=async function generate(e,i,r){r||(r=(0,o.create)((0,n.create)()));const p=(0,u.mergeWithDefaults)(i),l=(0,a.join)(__dirname,"..","templates"),d=[i.appOptions?.typescript?"**/*.js":"**/*.ts"];!1===i.appOptions?.generateIndex&&d.push("**/webapp/index.html");const f="EDMXBackend"===i.app.projectType;f||(d.push("**/ui5-local.yaml"),d.push("**/gitignore.tmpl"));const m=(0,c.getTemplateOptions)(f,p.ui5?.frameworkUrl,p.ui5?.version),g={...p,ui5ResourceUrl:m};r.copyTpl((0,a.join)(l,"core","**/*.*"),(0,a.join)(e),g,void 0,{globOptions:{dot:!0,ignore:d},processDestinationPath:e=>e.replace(/gitignore.tmpl/g,".gitignore")});const y=(0,a.join)(e,"ui5.yaml"),w=await s.UI5Config.newInstance(r.read(y));if(w.addFioriToolsProxydMiddleware({ui5:{url:p.ui5?.frameworkUrl}}),w.addFioriToolsAppReloadMiddleware(),f){w.addFioriToolsPreviewMiddleware(p.app.id,p.ui5?.ui5Theme);const i=(0,a.join)(e,"ui5-local.yaml"),n=await s.UI5Config.newInstance(r.read(i));n.addUI5Framework(p.ui5.framework,p.ui5.localVersion,p.ui5.ui5Libs,p.ui5.ui5Theme),n.addFioriToolsAppReloadMiddleware(),await(0,c.applyOptionalFeatures)(p,r,e,l,[w,n]),n.addFioriToolsPreviewMiddleware(p.app.id,p.ui5?.ui5Theme),r.write(i,n.toString())}else await(0,c.applyOptionalFeatures)(p,r,e,l,[w]);return r.write(y,w.toString()),r},i.enableTypescript=async function enableTypescript(e,i){i||(i=(0,o.create)((0,n.create)()));const r=(0,a.join)(e,"webapp/manifest.json"),u=(0,a.join)(e,"ui5.yaml");if(!i.exists(r))throw new Error(`Invalid project folder. Cannot find required file ${r}`);if(!i.exists(u))throw new Error(`Invalid project folder. Cannot find required file ${u}`);const l=i.readJSON(r),d=await s.UI5Config.newInstance(i.read(u)),f=(0,a.join)(__dirname,"..","templates"),m=(0,s.getEsmTypesVersion)((0,p.getMinimumUI5Version)(l)),g=(0,s.getTypesPackage)(m),y={app:l["sap.app"],ui5:{typesPackage:g,typesVersion:m}};return await(0,c.enableTypescript)({basePath:e,fs:i,ui5Configs:[d],tmplPath:f,ui5App:y},!0),i.write(u,d.toString()),i},i.isTypescriptEnabled=async function isTypescriptEnabled(e,i){i||(i=(0,o.create)((0,n.create)()));const r=await s.UI5Config.newInstance(i.read((0,a.join)(e,"ui5.yaml")));if(!r.findCustomMiddleware(l.ui5TSSupport.middleware.name))return!1;if(!r.findCustomTask(l.ui5TSSupport.task.name))return!1;return!0};const a=r(16928),n=r(64812),o=r(90718),s=r(8231),p=r(20787),u=r(30492),l=r(45157),c=r(92517);var d=r(33082);Object.defineProperty(i,"compareUI5VersionGte",{enumerable:!0,get:function(){return d.compareUI5VersionGte}}),Object.defineProperty(i,"ui5LtsVersion_1_120",{enumerable:!0,get:function(){return d.ui5LtsVersion_1_120}}),Object.defineProperty(i,"ui5LtsVersion_1_71",{enumerable:!0,get:function(){return d.ui5LtsVersion_1_71}}),Object.defineProperty(i,"processDestinationPath",{enumerable:!0,get:function(){return d.processDestinationPath}}),Object.defineProperty(i,"getTemplateVersionPath",{enumerable:!0,get:function(){return d.getTemplateVersionPath}});var f=r(57328);Object.defineProperty(i,"getManifestVersion",{enumerable:!0,get:function(){return f.getManifestVersion}})},92517:(e,i,r)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.enableTypescript=enableTypescript,i.enableNpmPackageConsumption=enableNpmPackageConsumption,i.applyOptionalFeatures=async function applyOptionalFeatures(e,i,r,a,n){if(e.appOptions)for(const[o,s]of Object.entries(e.appOptions))!0===s&&await(l[o]?.({ui5App:e,fs:i,basePath:r,tmplPath:a,ui5Configs:n}))},i.getTemplateOptions=function getTemplateOptions(e,i,r){const a="resources/sap-ui-core.js";if(e||!i)return a;{let e=i;return r&&(e+=`/${r}`),e+=`/${a}`,e}};const a=r(16928),n=r(29473),o=r(20787),s=r(45157),p=r(8231),u=r(33082);async function copyTemplates(e,{ui5App:i,fs:r,basePath:s,tmplPath:l}){let c=(0,a.join)(l,"optional",`${e}`);const d=(0,u.getTemplateVersionPath)(i.ui5);"loadReuseLibs"===e&&(c=(0,a.join)(c,d));(await(0,o.getFilePaths)(c)).forEach((e=>{const o=e.replace(c,""),l=(0,a.join)(s,o);if(r.exists(l)){const a=JSON.parse((0,n.render)(r.read(e),i,{})),o=JSON.parse(r.read(l)),s=(0,p.mergeObjects)(o,a);r.writeJSON(l,s)}else r.copyTpl(e,l,i,void 0,{globOptions:{dot:!0},processDestinationPath:u.processDestinationPath})}))}const l={codeAssist:async e=>await copyTemplates("codeAssist",e),eslint:async e=>await copyTemplates("eslint",e),loadReuseLibs:async e=>await copyTemplates("loadReuseLibs",e),sapux:async e=>{"EDMXBackend"===e.ui5App.app.projectType&&await copyTemplates("sapux",e)},typescript:async e=>await enableTypescript(e),npmPackageConsumption:async e=>await enableNpmPackageConsumption(e)};async function enableTypescript(e,i=!1){e.ui5App.app.baseComponent=e.ui5App.app.baseComponent??"sap/ui/core/UIComponent",await copyTemplates("typescript",e),e.ui5Configs.forEach((e=>{e.addCustomMiddleware([s.ui5TSSupport.middleware]),e.addCustomTasks([s.ui5TSSupport.task])}));const r=(0,a.join)(e.basePath,"webapp/Component.js");i?e.fs.move(r,`${r}.old`):e.fs.delete(r)}async function enableNpmPackageConsumption(e){await copyTemplates("npmPackageConsumption",e),e.ui5Configs.forEach((e=>{e.addCustomMiddleware([s.ui5NPMSupport.middleware]),e.addCustomTasks([s.ui5NPMSupport.task])}))}},33082:(e,i,r)=>{Object.defineProperty(i,"__esModule",{value:!0}),i.ui5LtsVersion_1_120=i.ui5LtsVersion_1_71=void 0,i.compareUI5VersionGte=compareUI5VersionGte,i.getTemplateVersionPath=function getTemplateVersionPath(e){let r="";const a=e?.minUI5Version??e?.version??"";r=a&&compareUI5VersionGte(a,i.ui5LtsVersion_1_120)?i.ui5LtsVersion_1_120:i.ui5LtsVersion_1_71;return r},i.processDestinationPath=function processDestinationPath(e){return e.replace("/1.120.0","").replace("/1.71.0","")};const a=r(85263);function compareUI5VersionGte(e,i){return""===e||(0,a.gte)(e,i,{loose:!0})}i.ui5LtsVersion_1_71="1.71.0",i.ui5LtsVersion_1_120="1.120.0"},12063:e=>{e.exports=JSON.parse('{"info":{"mockOnlyWarning":"This application was generated with a local metadata file and does not reference a live server. Please add the required server configuration or start this application with mock data using the target: npm run start-mock"},"error":{"missingRequiredProperty":"The property: {{ propertyName }} must have a value","disallowedCharacters":"The property: {{ propertyName }} contains disallowed characters: {{- disallowedChars }}","invalidUI5Version":"The specified UI5 version is invalid: {{ version }}"},"text":{"defaultAppTitle":"Title of {{ id }}","defaultAppDescription":"Description of {{ id }}"}}')}};