@sap/generator-fiori
Version:
Create an SAPUI5 application using SAP Fiori elements or a freestyle approach
1 lines • 8.88 kB
JavaScript
;exports.id=2256,exports.ids=[2256],exports.modules={76750(e,i,o){o.d(i,{Zx:()=>compareUI5VersionGte,cM:()=>generate,p5:()=>U,QW:()=>I});var a=o(76760),r=o(73136),n=o(64812),s=o(90718),p=o(2307),l=o(7083),c=o(33195);const getUI5Libs=e=>{const i=Array.isArray(e)?e:e?.split(",")||[];return v.concat(i).filter((e,i,o)=>o.indexOf(e)===i)},u={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"]}}},d={task:{name:"ui5-tooling-modules-task",afterTask:"replaceVersion",configuration:{}},middleware:{name:"ui5-tooling-modules-middleware",afterMiddleware:"compression",configuration:{}}};var m=o(85263),f=o(68801);const g=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 }}. Remove these characters and try again.","invalidUI5Version":"The specified SAPUI5 version is invalid: {{ version }}. Use a different version."},"text":{"defaultAppTitle":"Title of {{ id }}","defaultAppDescription":"Description of {{ id }}."}}'),w="ui5-application-writer",h=f.createInstance();function t(e,i){return h.t(e,i)}(async function initI18n(){await h.init({resources:{en:{[w]:g}},lng:"en",fallbackLng:"en",defaultNS:w,ns:[w],showSupportNotice:!1})})().catch(()=>{});var y=o(39306);const v=9034!=o.j?["sap.m","sap.ui.core"]:null;function mergeUi5(e,i){const o=e.version??p.e_.DEFAULT_UI5_VERSION,a=e.framework??"SAPUI5",r="SAPUI5"===a?p.e_.SAPUI5_CDN:p.e_.OPENUI5_CDN,n={minUI5Version:(s=o,l=e.minUI5Version,l??(s||p.e_.MIN_UI5_VERSION)),localVersion:getLocalVersion({framework:a,version:o,localVersion:e.localVersion}),version:o,framework:a,frameworkUrl:e.frameworkUrl??r};var s,l;return n.descriptorVersion=function getManifestVersion(e,i){const o=m.coerce(e),getClosestManifestVersion=e=>{const i=c;let o=i[`${m.major(e)}.${m.minor(e)}`];if(!o){const a=Object.keys(i).filter(e=>"latest"!==e).map(e=>m.coerce(e)).sort((e,i)=>m.rcompare(e,i)),r=a[0];if(m.gt(e,r))o=i[`${r.major}.${r.minor}`];else{const r=a.find(i=>m.gt(e,i));r&&(o=i[`${r.major}.${r.minor}`])}}return o};return i??(o&&getClosestManifestVersion(o))??p.e_.MANIFEST_VERSION}(n.minUI5Version,e.descriptorVersion),n.typesVersion=e.typesVersion??(i?.typescript?p.Z:p.EV)(n.minUI5Version),n.typesPackage=(0,p.ic)(n.typesVersion),n.ui5Theme=e.ui5Theme??"sap_fiori_3",e.manifestLibs&&e.manifestLibs.length>0&&(n.manifestLibs=getUI5Libs(e.manifestLibs)),n.ui5Libs=getUI5Libs(e.ui5Libs),{...e,...n}}function getLocalVersion({framework:e,version:i,localVersion:o}){if(o)return o;if(i===p.e_.DEFAULT_UI5_VERSION)return p.e_.DEFAULT_LOCAL_UI5_VERSION;const a="SAPUI5"===e?p.e_.MIN_LOCAL_SAPUI5_VERSION:p.e_.MIN_LOCAL_OPENUI5_VERSION,r=m.coerce(i),n=m.coerce(a);return r&&n&&m.gt(r,n)?m.valid(r):a}function validateUI5Version(e){if(e&&null===m.coerce(e))throw new Error(t("error.invalidUI5Version",{version:e}));return!0}function validate(e){return function validateAppId(e){if(!e)throw new Error(t("error.missingRequiredProperty",{propertyName:"app.id"}));const i=e.match(/"/);if(i)throw new Error(t("error.disallowedCharacters",{propertyName:"app.id",disallowedChars:`${i?.join()}`}));return!0}(e.app.id)&&validateUI5Version(e.ui5?.version)&&validateUI5Version(e.ui5?.localVersion)&&validateUI5Version(e.ui5?.minUI5Version)}function mergeWithDefaults(e){validate(e),e.app=function mergeApp(e){return y({version:"0.0.1",title:t("text.defaultAppTitle",{id:e.id}),description:t("text.defaultAppDescription",{id:e.id}),baseComponent:p.e_.BASE_COMPONENT,sourceTemplate:{id:e.sourceTemplate?.id??"",version:e.sourceTemplate?.version??"",toolsId:e.sourceTemplate?.toolsId}},e)}(e.app),e.appOptions=e.appOptions||{},e.appOptions.typescript&&(e.appOptions.eslint=!0),e.ui5=mergeUi5(e.ui5||{},e.appOptions);const i="EDMXBackend"===e.app.projectType;return e.package=(0,p.rL)(function packageDefaults(e,i,o){const a={version:e||"0.0.1",description:i||"",devDependencies:{"@ui5/cli":"^4.0.33","@sap/ux-ui5-tooling":"1"}};return o?{...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"}}:{...a,scripts:{}}}(e.package.version,e.app.description,i),e.package),i||(e.package.sapuxLayer=void 0),e}var T=o(29473);const I="1.71.0",U="1.120.0";function compareUI5VersionGte(e,i){return""===e||(0,m.gte)(e,i,{loose:!0})}function processDestinationPath(e){return e.replace("/1.120.0","").replace("/1.71.0","")}(0,a.dirname)((0,r.fileURLToPath)(require("node:url").pathToFileURL(__filename).href));async function options_copyTemplates(e,{ui5App:i,fs:o,basePath:r,tmplPath:n}){let s=(0,a.join)(n,"optional",`${e}`);const c=function getTemplateVersionPath(e){let i="";const o=e?.minUI5Version??e?.version??"";return i=o&&compareUI5VersionGte(o,U)?U:I,i}(i.ui5);"loadReuseLibs"===e&&(s=(0,a.join)(s,c));(await(0,l.be)(s)).forEach(e=>{const n=e.replace(s,""),l=(0,a.join)(r,n);if(o.exists(l)){if(l.endsWith(".json")){const a=JSON.parse((0,T.render)(o.read(e),i,{})),r=JSON.parse(o.read(l)),n=(0,p.rL)(r,a);o.writeJSON(l,n)}}else o.copyTpl(e,l,i,void 0,{globOptions:{dot:!0},processDestinationPath})})}const O={eslint:async e=>await options_copyTemplates("eslint",e),loadReuseLibs:async e=>await options_copyTemplates("loadReuseLibs",e),sapux:async e=>{"EDMXBackend"===e.ui5App.app.projectType&&await options_copyTemplates("sapux",e)},typescript:async e=>await async function enableTypescript(e,i=!1){e.ui5App.app.baseComponent=e.ui5App.app.baseComponent??p.e_.BASE_COMPONENT,await options_copyTemplates("typescript",e),e.ui5Configs.forEach(e=>{e.addCustomMiddleware([u.middleware]),e.addCustomTasks([u.task])});const o=(0,a.join)(e.basePath,"webapp/Component.js");i?e.fs.move(o,`${o}.old`):e.fs.delete(o)}(e),npmPackageConsumption:async e=>await async function enableNpmPackageConsumption(e){await options_copyTemplates("npmPackageConsumption",e),e.ui5Configs.forEach(e=>{e.addCustomMiddleware([d.middleware]),e.addCustomTasks([d.task])})}(e)};async function applyOptionalFeatures(e,i,o,a,r){if(e.appOptions)for(const[n,s]of Object.entries(e.appOptions))!0===s&&await(O[n]?.({ui5App:e,fs:i,basePath:o,tmplPath:a,ui5Configs:r}))}const V=(0,a.dirname)((0,r.fileURLToPath)(require("node:url").pathToFileURL(__filename).href));async function generate(e,i,o){o||(o=(0,s.v)((0,n.v)()));const r=mergeWithDefaults(i),c=(0,a.join)(V,"..","templates"),u=[i.appOptions?.typescript?"**/*.js":"**/*.ts"];!1===i.appOptions?.generateIndex&&u.push("**/webapp/index.html");const d="EDMXBackend"===i.app.projectType;d||(u.push("**/ui5-local.yaml"),u.push("**/gitignore.tmpl"));const m=function getTemplateOptions(e,i,o){const a="resources/sap-ui-core.js";if(e||!i)return a;{let e=i;return o&&(e+=`/${o}`),e+=`/${a}`,e}}(d,r.ui5?.frameworkUrl,r.ui5?.version);!function copyTemplates(e){const{fs:i,basePath:o,tmplPath:r,templateOptions:n,ignore:s,ui5Version:p}=e,c=["gitignore.tmpl",l.o3.Package,l.o3.Ui5LocalYaml,l.o3.Ui5Yaml],u=compareUI5VersionGte(p??U,U)?U:I;i.copyTpl((0,a.join)(r,"core",u,"**/*.*"),(0,a.join)(o),n,void 0,{globOptions:{dot:!0,ignore:s}}),i.copyTpl(c.map(e=>(0,a.join)(r,"core",e)),(0,a.join)(o),n,void 0,{globOptions:{dot:!0,ignore:s},processDestinationPath:e=>e.replace(/gitignore.tmpl/g,".gitignore")})}({fs:o,basePath:e,tmplPath:c,templateOptions:{...r,ui5ResourceUrl:m},ignore:u,ui5Version:r.ui5?.version});const f=(0,a.join)(e,"ui5.yaml"),g=await p.io.newInstance(o.read(f));g.addFioriToolsProxyMiddleware({ui5:{url:r.ui5?.frameworkUrl}}),g.addFioriToolsAppReloadMiddleware();const w=function getPreviewMiddlewareOpts(e,i,o=!1){return{ui5Theme:i,...o&&{localStartFile:e.localStartFile},...!o&&{localStartFile:e.localStartFile??"test/flpSandbox.html",flpAction:e.flpAction,appId:e.id}}}(r.app,r.ui5?.ui5Theme,i.appOptions?.useVirtualPreviewEndpoints),h=(0,p.$k)(w);if((d||i.appOptions?.useVirtualPreviewEndpoints)&&g.updateCustomMiddleware(h),d){const i=(0,a.join)(e,"ui5-local.yaml"),n=await p.io.newInstance(o.read(i));n.addUI5Framework(r.ui5.framework,r.ui5.localVersion,r.ui5.ui5Libs,r.ui5.ui5Theme),n.addFioriToolsAppReloadMiddleware(),await applyOptionalFeatures(r,o,e,c,[g,n]),n.updateCustomMiddleware(h),o.write(i,n.toString())}else await applyOptionalFeatures(r,o,e,c,[g]);return o.write(f,g.toString()),o}}};