@sap-ux/ui5-application-writer 0.10.7 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,14 +17,19 @@ export declare function mergeApp(app: App): App;
17
17
  export declare enum UI5_DEFAULT {
18
18
  DEFAULT_UI5_VERSION = "",
19
19
  DEFAULT_LOCAL_UI5_VERSION = "1.95.0",
20
- MIN_UI5_VERSION = "1.60",
20
+ MIN_UI5_VERSION = "1.60.0",
21
21
  MIN_LOCAL_SAPUI5_VERSION = "1.76.0",
22
22
  MIN_LOCAL_OPENUI5_VERSION = "1.52.5",
23
23
  SAPUI5_CDN = "https://ui5.sap.com",
24
- OPENUI5_CDN = "https://openui5.hana.ondemand.com"
24
+ OPENUI5_CDN = "https://openui5.hana.ondemand.com",
25
+ TYPES_VERSION_SINCE = "1.76.0",
26
+ TYPES_VERSION_PREVIOUS = "1.71.18",
27
+ MANIFEST_VERSION = "1.12.0"
25
28
  }
29
+ export declare const defaultUI5Libs: string[];
26
30
  /**
27
31
  * Merges version properties with the provided UI5 instance.
32
+ * Coerces provided UI5 versions to valid semantic versions.
28
33
  *
29
34
  * @param {UI5} [ui5] - the UI5 instance
30
35
  * @returns {UI5} the updated copy of UI5 instance (does not change `ui5`)
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/data/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAgB,MAAM,UAAU,CAAC;AAE3D;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBxF;AACD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAWtC;AAED,oBAAY,WAAW;IACnB,mBAAmB,KAAK;IACxB,yBAAyB,WAAW;IACpC,eAAe,SAAS;IACxB,wBAAwB,WAAW;IACnC,yBAAyB,WAAW;IACpC,UAAU,wBAAwB;IAClC,WAAW,sCAAsC;CACpD;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAoB/C"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/data/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAgB,MAAM,UAAU,CAAC;AAM3D;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBxF;AACD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAWtC;AAED,oBAAY,WAAW;IACnB,mBAAmB,KAAK;IACxB,yBAAyB,WAAW;IACpC,eAAe,WAAW;IAC1B,wBAAwB,WAAW;IACnC,yBAAyB,WAAW;IACpC,UAAU,wBAAwB;IAClC,WAAW,sCAAsC;IACjD,mBAAmB,WAAW;IAC9B,sBAAsB,YAAY;IAClC,gBAAgB,WAAW;CAC9B;AAGD,eAAO,MAAM,cAAc,UAA2B,CAAC;AAEvD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAuB/C"}
@@ -3,8 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.mergeUi5 = exports.UI5_DEFAULT = exports.mergeApp = exports.packageDefaults = void 0;
6
+ exports.mergeUi5 = exports.defaultUI5Libs = exports.UI5_DEFAULT = exports.mergeApp = exports.packageDefaults = void 0;
7
7
  const version_to_descriptor_mapping_json_1 = __importDefault(require("./version-to-descriptor-mapping.json")); // from https://github.com/SAP/ui5-manifest/blob/master/mapping.json
8
+ const ui5Libs_1 = require("./ui5Libs");
9
+ const semver_1 = __importDefault(require("semver"));
10
+ const i18n_1 = require("../i18n");
8
11
  /**
9
12
  * Returns a package instance with default properties.
10
13
  *
@@ -41,8 +44,8 @@ function mergeApp(app) {
41
44
  // Return merged, does not update passed ref
42
45
  return Object.assign({
43
46
  version: '0.0.1',
44
- title: `Title of ${app.id}`,
45
- description: `Description of ${app.id}`,
47
+ title: (0, i18n_1.t)('text.defaultAppTitle', { id: app.id }),
48
+ description: (0, i18n_1.t)('text.defaultAppDescription', { id: app.id }),
46
49
  baseComponent: 'sap/ui/core/UIComponent'
47
50
  }, app);
48
51
  }
@@ -51,41 +54,75 @@ var UI5_DEFAULT;
51
54
  (function (UI5_DEFAULT) {
52
55
  UI5_DEFAULT["DEFAULT_UI5_VERSION"] = "";
53
56
  UI5_DEFAULT["DEFAULT_LOCAL_UI5_VERSION"] = "1.95.0";
54
- UI5_DEFAULT["MIN_UI5_VERSION"] = "1.60";
57
+ UI5_DEFAULT["MIN_UI5_VERSION"] = "1.60.0";
55
58
  UI5_DEFAULT["MIN_LOCAL_SAPUI5_VERSION"] = "1.76.0";
56
59
  UI5_DEFAULT["MIN_LOCAL_OPENUI5_VERSION"] = "1.52.5";
57
60
  UI5_DEFAULT["SAPUI5_CDN"] = "https://ui5.sap.com";
58
61
  UI5_DEFAULT["OPENUI5_CDN"] = "https://openui5.hana.ondemand.com";
62
+ UI5_DEFAULT["TYPES_VERSION_SINCE"] = "1.76.0";
63
+ UI5_DEFAULT["TYPES_VERSION_PREVIOUS"] = "1.71.18";
64
+ UI5_DEFAULT["MANIFEST_VERSION"] = "1.12.0";
59
65
  })(UI5_DEFAULT = exports.UI5_DEFAULT || (exports.UI5_DEFAULT = {}));
66
+ // Required default libs
67
+ exports.defaultUI5Libs = ['sap.m', 'sap.ui.core'];
60
68
  /**
61
69
  * Merges version properties with the provided UI5 instance.
70
+ * Coerces provided UI5 versions to valid semantic versions.
62
71
  *
63
72
  * @param {UI5} [ui5] - the UI5 instance
64
73
  * @returns {UI5} the updated copy of UI5 instance (does not change `ui5`)
65
74
  */
66
75
  function mergeUi5(ui5) {
67
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
68
- const version = (_a = ui5.version) !== null && _a !== void 0 ? _a : UI5_DEFAULT.DEFAULT_UI5_VERSION; // no version indicates the latest available should be used
76
+ var _a, _b, _c, _d, _e;
77
+ const version = (_a = ui5.version) !== null && _a !== void 0 ? _a : UI5_DEFAULT.DEFAULT_UI5_VERSION; // Undefined or null indicates the latest available should be used
69
78
  const framework = (_b = ui5.framework) !== null && _b !== void 0 ? _b : 'SAPUI5';
70
79
  const defaultFrameworkUrl = framework === 'SAPUI5' ? UI5_DEFAULT.SAPUI5_CDN : UI5_DEFAULT.OPENUI5_CDN;
71
80
  const merged = {
72
- minUI5Version: (_c = ui5.minUI5Version) !== null && _c !== void 0 ? _c : UI5_DEFAULT.MIN_UI5_VERSION,
81
+ minUI5Version: getMinUI5Version(version, ui5.minUI5Version),
73
82
  localVersion: getLocalVersion({ framework, version, localVersion: ui5.localVersion }),
74
83
  version,
75
84
  framework,
76
- frameworkUrl: (_d = ui5.frameworkUrl) !== null && _d !== void 0 ? _d : defaultFrameworkUrl
85
+ frameworkUrl: (_c = ui5.frameworkUrl) !== null && _c !== void 0 ? _c : defaultFrameworkUrl
77
86
  };
78
- const typesVersion = parseFloat(merged.localVersion) >= 1.76 ? merged.localVersion : '1.71.18';
79
- merged.descriptorVersion =
80
- (_f = (_e = ui5.descriptorVersion) !== null && _e !== void 0 ? _e : version_to_descriptor_mapping_json_1.default[merged.minUI5Version]) !== null && _f !== void 0 ? _f : '1.12.0';
81
- merged.typesVersion = (_g = ui5.typesVersion) !== null && _g !== void 0 ? _g : typesVersion;
82
- merged.ui5Theme = (_h = ui5.ui5Theme) !== null && _h !== void 0 ? _h : 'sap_fiori_3';
83
- merged.ui5Libs = (_j = ui5.ui5Libs) !== null && _j !== void 0 ? _j : [];
87
+ // typesVersion must be a valid npm semantic version, we know they cannot be null as already validated
88
+ const localSemVer = semver_1.default.valid(semver_1.default.coerce(merged.localVersion));
89
+ const typesVersion = semver_1.default.gte(localSemVer, UI5_DEFAULT.TYPES_VERSION_SINCE)
90
+ ? localSemVer
91
+ : UI5_DEFAULT.TYPES_VERSION_PREVIOUS;
92
+ merged.descriptorVersion = getManifestVersion(merged.minUI5Version, ui5.descriptorVersion);
93
+ merged.typesVersion = (_d = ui5.typesVersion) !== null && _d !== void 0 ? _d : typesVersion;
94
+ merged.ui5Theme = (_e = ui5.ui5Theme) !== null && _e !== void 0 ? _e : 'sap_fiori_3';
95
+ merged.ui5Libs = (0, ui5Libs_1.getUI5Libs)(ui5.ui5Libs);
84
96
  return Object.assign({}, ui5, merged);
85
97
  }
86
98
  exports.mergeUi5 = mergeUi5;
87
- // if a specific local version is provided, use it, otherwise, sync with version but keep minimum versions in mind
88
99
  /**
100
+ * Gets the miminum UI5 version based on the specified version.
101
+ *
102
+ * @param ui5Version - the ui5 version
103
+ * @param minUI5Version - optional minimum ui5 version
104
+ * @returns minimum UI5 version for manifest
105
+ */
106
+ function getMinUI5Version(ui5Version, minUI5Version) {
107
+ return minUI5Version !== null && minUI5Version !== void 0 ? minUI5Version : (ui5Version ? ui5Version : UI5_DEFAULT.MIN_UI5_VERSION);
108
+ }
109
+ /**
110
+ * Get the manifest descriptor version from the specified miminum UI5 version.
111
+ * Snapshots are handled by coercion to proper versions.
112
+ *
113
+ * @param minUI5Version - the ui5 version to be used to map to the manifest descriptor version
114
+ * @param manifestVersion - optional manifest descriptor version to be used if provided
115
+ * @returns - the manifest descriptor version
116
+ */
117
+ function getManifestVersion(minUI5Version, manifestVersion) {
118
+ var _a;
119
+ const minUI5SemVer = semver_1.default.coerce(minUI5Version);
120
+ return ((_a = manifestVersion !== null && manifestVersion !== void 0 ? manifestVersion : (minUI5Version &&
121
+ version_to_descriptor_mapping_json_1.default[`${semver_1.default.major(minUI5SemVer)}.${semver_1.default.minor(minUI5SemVer)}`])) !== null && _a !== void 0 ? _a : UI5_DEFAULT.MANIFEST_VERSION);
122
+ }
123
+ /**
124
+ * If a specific local version is provided, use it, otherwise, sync with version but keep minimum versions in mind.
125
+ *
89
126
  * @param inputObj input object
90
127
  * @param inputObj.framework UI framework
91
128
  * @param inputObj.version UI version
@@ -93,21 +130,19 @@ exports.mergeUi5 = mergeUi5;
93
130
  * @returns {string} of the local UI5 version
94
131
  */
95
132
  function getLocalVersion({ framework, version, localVersion }) {
96
- let result = '';
133
+ // If explictly provided use, we deliberately do not coerce
97
134
  if (localVersion) {
98
- result = localVersion;
135
+ return localVersion;
99
136
  }
100
- else {
101
- if (version === UI5_DEFAULT.DEFAULT_UI5_VERSION) {
102
- result = UI5_DEFAULT.DEFAULT_LOCAL_UI5_VERSION;
103
- }
104
- else {
105
- result =
106
- framework === 'SAPUI5' ? UI5_DEFAULT.MIN_LOCAL_SAPUI5_VERSION : UI5_DEFAULT.MIN_LOCAL_OPENUI5_VERSION; // minimum version available as local libs
107
- }
108
- if (parseFloat(version) > parseFloat(result)) {
109
- result = version;
110
- }
137
+ else if (version === UI5_DEFAULT.DEFAULT_UI5_VERSION) {
138
+ return UI5_DEFAULT.DEFAULT_LOCAL_UI5_VERSION;
139
+ }
140
+ let result = framework === 'SAPUI5' ? UI5_DEFAULT.MIN_LOCAL_SAPUI5_VERSION : UI5_DEFAULT.MIN_LOCAL_OPENUI5_VERSION; // minimum version available as local libs
141
+ // If the ui5 `version` is higher than the min framework version 'result' then use that as the local version instead
142
+ // Update to a valid coerced version string e.g. snapshot-1.80 -> 1.80.0. Cannot be null as previously validated.
143
+ const versionSemVer = semver_1.default.coerce(version);
144
+ if (semver_1.default.gt(versionSemVer, semver_1.default.coerce(result))) {
145
+ result = semver_1.default.valid(versionSemVer);
111
146
  }
112
147
  return result;
113
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/data/defaults.ts"],"names":[],"mappings":";;;;;;AACA,8GAA4D,CAAC,oEAAoE;AACjI;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,OAAgB,EAAE,WAAoB;IAClE,OAAO;QACH,OAAO,EAAE,OAAO,IAAI,OAAO;QAC3B,WAAW,EAAE,WAAW,IAAI,EAAE;QAC9B,eAAe,EAAE;YACb,UAAU,EAAE,SAAS;YACrB,qBAAqB,EAAE,GAAG;SAC7B;QACD,OAAO,EAAE;YACL,KAAK,EAAE,+CAA+C;YACtD,aAAa,EAAE,qDAAqD;YACpE,KAAK,EAAE,sDAAsD;SAChE;QACD,GAAG,EAAE;YACD,YAAY,EAAE,CAAC,qBAAqB,CAAC;SACxC;KACJ,CAAC;AACN,CAAC;AAjBD,0CAiBC;AACD;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,GAAQ;IAC7B,4CAA4C;IAC5C,OAAO,MAAM,CAAC,MAAM,CAChB;QACI,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,YAAY,GAAG,CAAC,EAAE,EAAE;QAC3B,WAAW,EAAE,kBAAkB,GAAG,CAAC,EAAE,EAAE;QACvC,aAAa,EAAE,yBAAyB;KAC3C,EACD,GAAG,CACC,CAAC;AACb,CAAC;AAXD,4BAWC;AAED,IAAY,WAQX;AARD,WAAY,WAAW;IACnB,uCAAwB,CAAA;IACxB,mDAAoC,CAAA;IACpC,uCAAwB,CAAA;IACxB,kDAAmC,CAAA;IACnC,mDAAoC,CAAA;IACpC,iDAAkC,CAAA;IAClC,gEAAiD,CAAA;AACrD,CAAC,EARW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAQtB;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,GAAiB;;IACtC,MAAM,OAAO,GAAG,MAAA,GAAG,CAAC,OAAO,mCAAI,WAAW,CAAC,mBAAmB,CAAC,CAAC,2DAA2D;IAC3H,MAAM,SAAS,GAAG,MAAA,GAAG,CAAC,SAAS,mCAAI,QAAQ,CAAC;IAC5C,MAAM,mBAAmB,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC;IACtG,MAAM,MAAM,GAA2E;QACnF,aAAa,EAAE,MAAA,GAAG,CAAC,aAAa,mCAAI,WAAW,CAAC,eAAe;QAC/D,YAAY,EAAE,eAAe,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC;QACrF,OAAO;QACP,SAAS;QACT,YAAY,EAAE,MAAA,GAAG,CAAC,YAAY,mCAAI,mBAAmB;KACxD,CAAC;IACF,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAE/F,MAAM,CAAC,iBAAiB;QACpB,MAAA,MAAA,GAAG,CAAC,iBAAiB,mCAAK,4CAAmC,CAAC,MAAM,CAAC,aAAa,CAAC,mCAAI,QAAQ,CAAC;IACpG,MAAM,CAAC,YAAY,GAAG,MAAA,GAAG,CAAC,YAAY,mCAAI,YAAY,CAAC;IACvD,MAAM,CAAC,QAAQ,GAAG,MAAA,GAAG,CAAC,QAAQ,mCAAI,aAAa,CAAC;IAChD,MAAM,CAAC,OAAO,GAAG,MAAA,GAAG,CAAC,OAAO,mCAAI,EAAE,CAAC;IAEnC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,CAAQ,CAAC;AACjD,CAAC;AApBD,4BAoBC;AAED,kHAAkH;AAClH;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,EACrB,SAAS,EACT,OAAO,EACP,YAAY,EAKf;IACG,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,YAAY,EAAE;QACd,MAAM,GAAG,YAAY,CAAC;KACzB;SAAM;QACH,IAAI,OAAO,KAAK,WAAW,CAAC,mBAAmB,EAAE;YAC7C,MAAM,GAAG,WAAW,CAAC,yBAAyB,CAAC;SAClD;aAAM;YACH,MAAM;gBACF,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,0CAA0C;SACxJ;QACD,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE;YAC1C,MAAM,GAAG,OAAO,CAAC;SACpB;KACJ;IACD,OAAO,MAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/data/defaults.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { App, UI5, AppOptions, Package, Ui5App } from '../types';
2
2
  /**
3
3
  * Merges Ui5App instance with default properties.
4
- * Replaces undefined mandatory properties with defaul values.
4
+ * Replaces undefined mandatory properties with default values.
5
5
  *
6
6
  * @param {Ui5App} ui5App - the Ui5App instance
7
7
  * @returns {Ui5App} - a new Ui5App instance with all required defaults set
@@ -5,7 +5,7 @@ const defaults_1 = require("./defaults");
5
5
  const validators_1 = require("./validators");
6
6
  /**
7
7
  * Merges Ui5App instance with default properties.
8
- * Replaces undefined mandatory properties with defaul values.
8
+ * Replaces undefined mandatory properties with default values.
9
9
  *
10
10
  * @param {Ui5App} ui5App - the Ui5App instance
11
11
  * @returns {Ui5App} - a new Ui5App instance with all required defaults set
@@ -1,2 +1,8 @@
1
+ /**
2
+ * Merges the specified ui5 libs with the defaults.
3
+ *
4
+ * @param ui5Libs - The ui5 libraries to be merged with the defaults
5
+ * @returns UI5 libs with defaults
6
+ */
1
7
  export declare const getUI5Libs: (ui5Libs?: string | string[] | undefined) => string[];
2
8
  //# sourceMappingURL=ui5Libs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui5Libs.d.ts","sourceRoot":"","sources":["../../src/data/ui5Libs.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,+CAAkC,MAAM,EAK9D,CAAC"}
1
+ {"version":3,"file":"ui5Libs.d.ts","sourceRoot":"","sources":["../../src/data/ui5Libs.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,UAAU,+CAAkC,MAAM,EAK9D,CAAC"}
@@ -1,9 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getUI5Libs = void 0;
4
+ const defaults_1 = require("./defaults");
5
+ /**
6
+ * Merges the specified ui5 libs with the defaults.
7
+ *
8
+ * @param ui5Libs - The ui5 libraries to be merged with the defaults
9
+ * @returns UI5 libs with defaults
10
+ */
4
11
  const getUI5Libs = (ui5Libs) => {
5
12
  const libs = Array.isArray(ui5Libs) ? ui5Libs : (ui5Libs === null || ui5Libs === void 0 ? void 0 : ui5Libs.split(',')) || [];
6
- return ['sap.m'].concat(libs).filter((value, index, self) => {
13
+ return defaults_1.defaultUI5Libs.concat(libs).filter((value, index, self) => {
7
14
  return self.indexOf(value) === index;
8
15
  });
9
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ui5Libs.js","sourceRoot":"","sources":["../../src/data/ui5Libs.ts"],"names":[],"mappings":";;;AAAO,MAAM,UAAU,GAAG,CAAC,OAA2B,EAAY,EAAE;IAChE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,GAAG,CAAC,KAAI,EAAE,CAAC;IAC1E,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AALW,QAAA,UAAU,cAKrB"}
1
+ {"version":3,"file":"ui5Libs.js","sourceRoot":"","sources":["../../src/data/ui5Libs.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAE5C;;;;;GAKG;AACI,MAAM,UAAU,GAAG,CAAC,OAA2B,EAAY,EAAE;IAChE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,GAAG,CAAC,KAAI,EAAE,CAAC;IAC1E,OAAO,yBAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AALW,QAAA,UAAU,cAKrB"}
@@ -7,6 +7,15 @@ import { Ui5App } from '../types';
7
7
  * @returns true, if app id is validated
8
8
  */
9
9
  export declare function validateAppId(appId: string): boolean;
10
+ /**
11
+ * Validates by throwing if the specified version does not have a coercible semantic version.
12
+ * Currently we have special handling for empty string and undefined otherwise see: https://github.com/npm/node-semver#coercion.
13
+ * Example: 'snapshot-1.2.4' can be coerced to '1.2.4' and so is considered valid.
14
+ *
15
+ * @param version - the UI5 version string to validate
16
+ * @returns - true if the specified UI5 version is considered valid
17
+ */
18
+ export declare function validateUI5Version(version: string | undefined): boolean;
10
19
  /**
11
20
  * Validates the specified ui5App.
12
21
  *
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/data/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CASpD;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEhD"}
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/data/validators.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAWpD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAKvE;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOhD"}
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validate = exports.validateAppId = void 0;
6
+ exports.validate = exports.validateUI5Version = exports.validateAppId = void 0;
7
+ const semver_1 = __importDefault(require("semver"));
8
+ const i18n_1 = require("../i18n");
4
9
  /**
5
10
  * Validates the specified app id to ensure we do not create malformed documents.
6
11
  *
@@ -10,15 +15,30 @@ exports.validate = exports.validateAppId = void 0;
10
15
  */
11
16
  function validateAppId(appId) {
12
17
  if (!appId) {
13
- throw new Error('The property: app.id must have a value'); // todo: add localised parameterised message
18
+ throw new Error((0, i18n_1.t)('error.missingRequiredProperty', { propertyName: 'app.id' }));
14
19
  }
15
20
  const match = appId.match(/["]/);
16
21
  if (match) {
17
- throw new Error(`The property: appId.id contains disallowed characters: ${match === null || match === void 0 ? void 0 : match.join()}`); // todo: Add localised message
22
+ throw new Error((0, i18n_1.t)('error.disallowedCharacters', { propertyName: 'app.id', disallowedChars: `${match === null || match === void 0 ? void 0 : match.join()}` }));
18
23
  }
19
24
  return true;
20
25
  }
21
26
  exports.validateAppId = validateAppId;
27
+ /**
28
+ * Validates by throwing if the specified version does not have a coercible semantic version.
29
+ * Currently we have special handling for empty string and undefined otherwise see: https://github.com/npm/node-semver#coercion.
30
+ * Example: 'snapshot-1.2.4' can be coerced to '1.2.4' and so is considered valid.
31
+ *
32
+ * @param version - the UI5 version string to validate
33
+ * @returns - true if the specified UI5 version is considered valid
34
+ */
35
+ function validateUI5Version(version) {
36
+ if (version && semver_1.default.coerce(version) === null) {
37
+ throw new Error((0, i18n_1.t)('error.invalidUI5Version', { version }));
38
+ }
39
+ return true;
40
+ }
41
+ exports.validateUI5Version = validateUI5Version;
22
42
  /**
23
43
  * Validates the specified ui5App.
24
44
  *
@@ -27,7 +47,11 @@ exports.validateAppId = validateAppId;
27
47
  * @throws Error with validation message, if the ui5App is not valid
28
48
  */
29
49
  function validate(ui5App) {
30
- return validateAppId(ui5App.app.id);
50
+ var _a, _b, _c;
51
+ return (validateAppId(ui5App.app.id) &&
52
+ validateUI5Version((_a = ui5App.ui5) === null || _a === void 0 ? void 0 : _a.version) &&
53
+ validateUI5Version((_b = ui5App.ui5) === null || _b === void 0 ? void 0 : _b.localVersion) &&
54
+ validateUI5Version((_c = ui5App.ui5) === null || _c === void 0 ? void 0 : _c.minUI5Version));
31
55
  }
32
56
  exports.validate = validate;
33
57
  //# sourceMappingURL=validators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/data/validators.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,KAAa;IACvC,IAAI,CAAC,KAAK,EAAE;QACR,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC,4CAA4C;KAC1G;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,KAAK,EAAE;QACP,MAAM,IAAI,KAAK,CAAC,0DAA0D,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,8BAA8B;KAC7H;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AATD,sCASC;AAED;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAC,MAAc;IACnC,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACxC,CAAC;AAFD,4BAEC"}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/data/validators.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,kCAA4B;AAG5B;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,KAAa;IACvC,IAAI,CAAC,KAAK,EAAE;QACR,MAAM,IAAI,KAAK,CAAC,IAAA,QAAC,EAAC,+BAA+B,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;KACnF;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,KAAK,EAAE;QACP,MAAM,IAAI,KAAK,CACX,IAAA,QAAC,EAAC,4BAA4B,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACnG,CAAC;KACL;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAXD,sCAWC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,OAA2B;IAC1D,IAAI,OAAO,IAAI,gBAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;QAC5C,MAAM,IAAI,KAAK,CAAC,IAAA,QAAC,EAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;KAC9D;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AALD,gDAKC;AAED;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAC,MAAc;;IACnC,OAAO,CACH,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,kBAAkB,CAAC,MAAA,MAAM,CAAC,GAAG,0CAAE,OAAO,CAAC;QACvC,kBAAkB,CAAC,MAAA,MAAM,CAAC,GAAG,0CAAE,YAAY,CAAC;QAC5C,kBAAkB,CAAC,MAAA,MAAM,CAAC,GAAG,0CAAE,aAAa,CAAC,CAChD,CAAC;AACN,CAAC;AAPD,4BAOC"}
@@ -1,5 +1,10 @@
1
1
  {
2
- "latest": "1.33.0",
2
+ "latest": "1.38.0",
3
+ "1.98": "1.38.0",
4
+ "1.96": "1.37.0",
5
+ "1.95": "1.36.0",
6
+ "1.93": "1.35.0",
7
+ "1.92": "1.34.0",
3
8
  "1.90": "1.33.0",
4
9
  "1.88": "1.32.0",
5
10
  "1.87": "1.31.0",
package/dist/i18n.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ import { TOptions } from 'i18next';
2
+ /**
3
+ * Initialize i18next with the translations for this module.
4
+ */
5
+ export declare function initI18n(): Promise<void>;
6
+ /**
7
+ * Helper function facading the call to i18next.
8
+ *
9
+ * @param key i18n key
10
+ * @param options additional options
11
+ * @returns {string} localized string stored for the given key
12
+ */
13
+ export declare function t(key: string, options?: TOptions): string;
14
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAK5C;;GAEG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAY9C;AAED;;;;;;GAMG;AACH,wBAAgB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,CAEzD"}
package/dist/i18n.js ADDED
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.t = exports.initI18n = void 0;
16
+ const i18next_1 = __importDefault(require("i18next"));
17
+ const ui5_application_writer_i18n_json_1 = __importDefault(require("./translations/ui5-application-writer.i18n.json"));
18
+ const NS = 'ui5-application-writer';
19
+ /**
20
+ * Initialize i18next with the translations for this module.
21
+ */
22
+ function initI18n() {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ yield i18next_1.default.init({
25
+ resources: {
26
+ en: {
27
+ [NS]: ui5_application_writer_i18n_json_1.default
28
+ }
29
+ },
30
+ lng: 'en',
31
+ fallbackLng: 'en',
32
+ defaultNS: NS,
33
+ ns: [NS]
34
+ });
35
+ });
36
+ }
37
+ exports.initI18n = initI18n;
38
+ /**
39
+ * Helper function facading the call to i18next.
40
+ *
41
+ * @param key i18n key
42
+ * @param options additional options
43
+ * @returns {string} localized string stored for the given key
44
+ */
45
+ function t(key, options) {
46
+ return i18next_1.default.t(key, options);
47
+ }
48
+ exports.t = t;
49
+ initI18n();
50
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sDAA4C;AAC5C,uHAA2E;AAE3E,MAAM,EAAE,GAAG,wBAAwB,CAAC;AAEpC;;GAEG;AACH,SAAsB,QAAQ;;QAC1B,MAAM,iBAAO,CAAC,IAAI,CAAC;YACf,SAAS,EAAE;gBACP,EAAE,EAAE;oBACA,CAAC,EAAE,CAAC,EAAE,0CAAY;iBACrB;aACJ;YACD,GAAG,EAAE,IAAI;YACT,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,EAAE;YACb,EAAE,EAAE,CAAC,EAAE,CAAC;SACX,CAAC,CAAC;IACP,CAAC;CAAA;AAZD,4BAYC;AAED;;;;;;GAMG;AACH,SAAgB,CAAC,CAAC,GAAW,EAAE,OAAkB;IAC7C,OAAO,iBAAO,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAFD,cAEC;AAED,QAAQ,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAU,MAAM,EAAE,MAAM,eAAe,CAAC;AAI/C,OAAO,EAAiC,MAAM,EAAE,MAAM,SAAS,CAAC;AAGhE;;;;;;;GAOG;AACH,iBAAe,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgE5F;AAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAU,MAAM,EAAE,MAAM,eAAe,CAAC;AAI/C,OAAO,EAAiC,MAAM,EAAE,MAAM,SAAS,CAAC;AAGhE;;;;;;;GAOG;AACH,iBAAe,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA8D5F;AAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -12,7 +12,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.generate = void 0;
13
13
  const path_1 = require("path");
14
14
  const data_1 = require("./data");
15
- const ui5Libs_1 = require("./data/ui5Libs");
16
15
  const mem_fs_1 = require("mem-fs");
17
16
  const mem_fs_editor_1 = require("mem-fs-editor");
18
17
  const json_merger_1 = require("json-merger");
@@ -28,7 +27,7 @@ const ui5_config_1 = require("@sap-ux/ui5-config");
28
27
  * @returns {*} {Promise<Editor>} the updated memfs editor instance
29
28
  */
30
29
  function generate(basePath, ui5AppConfig, fs) {
31
- var _a, _b;
30
+ var _a;
32
31
  return __awaiter(this, void 0, void 0, function* () {
33
32
  if (!fs) {
34
33
  fs = (0, mem_fs_editor_1.create)((0, mem_fs_1.create)());
@@ -44,8 +43,7 @@ function generate(basePath, ui5AppConfig, fs) {
44
43
  const ui5Config = yield ui5_config_1.UI5Config.newInstance(fs.read(ui5ConfigPath));
45
44
  ui5Config.addFioriToolsProxydMiddleware({
46
45
  ui5: {
47
- version: (_a = ui5App.ui5) === null || _a === void 0 ? void 0 : _a.version,
48
- url: (_b = ui5App.ui5) === null || _b === void 0 ? void 0 : _b.frameworkUrl
46
+ url: (_a = ui5App.ui5) === null || _a === void 0 ? void 0 : _a.frameworkUrl
49
47
  }
50
48
  });
51
49
  ui5Config.addFioriToolsAppReloadMiddleware();
@@ -53,7 +51,7 @@ function generate(basePath, ui5AppConfig, fs) {
53
51
  // ui5-local.yaml
54
52
  const ui5LocalConfigPath = (0, path_1.join)(basePath, 'ui5-local.yaml');
55
53
  const ui5LocalConfig = yield ui5_config_1.UI5Config.newInstance(fs.read(ui5LocalConfigPath));
56
- ui5LocalConfig.addUI5Framework(ui5App.ui5.framework, ui5App.ui5.localVersion, (0, ui5Libs_1.getUI5Libs)(ui5App.ui5.ui5Libs), ui5App.ui5.ui5Theme);
54
+ ui5LocalConfig.addUI5Framework(ui5App.ui5.framework, ui5App.ui5.localVersion, ui5App.ui5.ui5Libs, ui5App.ui5.ui5Theme);
57
55
  ui5LocalConfig.addFioriToolsAppReloadMiddleware();
58
56
  fs.write(ui5LocalConfigPath, ui5LocalConfig.toString());
59
57
  // Add optional features
@@ -68,8 +66,7 @@ function generate(basePath, ui5AppConfig, fs) {
68
66
  // Extend or add
69
67
  if (!(fs === null || fs === void 0 ? void 0 : fs.exists(outPath))) {
70
68
  fs === null || fs === void 0 ? void 0 : fs.copyTpl(optTmplFilePath, outPath, ui5App, undefined, {
71
- globOptions: { dot: true },
72
- processDestinationPath: (filePath) => filePath.replace(/eslint.tmpl/g, '.eslintrc')
69
+ globOptions: { dot: true }
73
70
  });
74
71
  }
75
72
  else {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ {
2
+ "info": {
3
+ "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"
4
+ },
5
+ "error": {
6
+ "missingRequiredProperty": "The property: {{ propertyName }} must have a value",
7
+ "disallowedCharacters": "The property: {{ propertyName }} contains disallowed characters: {{- disallowedChars }}",
8
+ "invalidUI5Version": "The specified UI5 version is invalid: {{ version }}"
9
+ },
10
+ "text": {
11
+ "defaultAppTitle": "Title of {{ id }}",
12
+ "defaultAppDescription": "Description of {{ id }}"
13
+ }
14
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sap-ux/ui5-application-writer",
3
- "version": "0.10.7",
3
+ "version": "0.11.0",
4
4
  "license": "Apache-2.0",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -9,11 +9,13 @@
9
9
  "templates"
10
10
  ],
11
11
  "dependencies": {
12
- "@sap-ux/ui5-config": "0.11.1",
12
+ "@sap-ux/ui5-config": "0.12.0",
13
13
  "ejs": "3.1.6",
14
14
  "mem-fs": "2.1.0",
15
15
  "mem-fs-editor": "9.0.0",
16
- "json-merger": "1.1.7"
16
+ "json-merger": "1.1.7",
17
+ "semver": "7.3.5",
18
+ "i18next": "21.6.11"
17
19
  },
18
20
  "devDependencies": {
19
21
  "@types/ejs": "3.1.0",
@@ -8,7 +8,8 @@
8
8
  "version": "<%- app.version %>"
9
9
  },
10
10
  "title": "{{appTitle}}",
11
- "description": "{{appDescription}}"
11
+ "description": "{{appDescription}}",
12
+ "resources": "resources.json"
12
13
  },
13
14
  "sap.ui": {
14
15
  "technology": "UI5",
@@ -30,8 +31,8 @@
30
31
  "flexEnabled": true,
31
32
  "dependencies": {
32
33
  "minUI5Version": "<%- ui5.minUI5Version %>",
33
- "libs": {
34
- "sap.ui.core": {}
34
+ "libs": {<% ui5.ui5Libs.forEach((ui5Lib, idx, libs) => { %>
35
+ <%- `"${ui5Lib}": {}${idx+1 < libs.length ? ',' : ''}` %><% }); %>
35
36
  }
36
37
  },
37
38
  "contentDensities": {