@sap-ux/odata-service-writer 0.10.0 → 0.11.1

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.
@@ -0,0 +1,11 @@
1
+ import { NamespaceAlias, OdataService } from '../types';
2
+ /**
3
+ * Returns the namespaces parsed from the specified metadata and annotations.
4
+ *
5
+ * @param {Partial<OdataService>} service - an odata service where at least metadata and annotations properties are defined
6
+ * @param {string} service.metadata - OData service metadata xml
7
+ * @param {string} service.annotations - OData service annotations xml
8
+ * @returns A reference to the namspaces array
9
+ */
10
+ export declare function getAnnotationNamespaces({ metadata, annotations }: Partial<OdataService>): NamespaceAlias[];
11
+ //# sourceMappingURL=annotations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../src/data/annotations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,cAAc,EAAE,CAmB1G"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAnnotationNamespaces = void 0;
4
+ const fast_xml_parser_1 = require("fast-xml-parser");
5
+ const i18n_1 = require("../i18n");
6
+ /**
7
+ * Returns the namespaces parsed from the specified metadata and annotations.
8
+ *
9
+ * @param {Partial<OdataService>} service - an odata service where at least metadata and annotations properties are defined
10
+ * @param {string} service.metadata - OData service metadata xml
11
+ * @param {string} service.annotations - OData service annotations xml
12
+ * @returns A reference to the namspaces array
13
+ */
14
+ function getAnnotationNamespaces({ metadata, annotations }) {
15
+ // Enhance service with annotations namespaces
16
+ const schemaNamespaces = metadata ? getNamespaces(metadata) : [];
17
+ if (annotations === null || annotations === void 0 ? void 0 : annotations.xml) {
18
+ // Parse once
19
+ const annotationsJson = xmlToJson(annotations.xml);
20
+ return schemaNamespaces.map((schema) => {
21
+ // Check if alias exists in backend annotation file, if so use it
22
+ const annotationAlias = annotations.xml && schema.namespace ? getAliasFromAnnotation(annotationsJson, schema.namespace) : '';
23
+ if (annotationAlias) {
24
+ schema.alias = annotationAlias;
25
+ }
26
+ return schema;
27
+ });
28
+ }
29
+ return schemaNamespaces;
30
+ }
31
+ exports.getAnnotationNamespaces = getAnnotationNamespaces;
32
+ /**
33
+ * Convert specified xml string to JSON.
34
+ *
35
+ * @param xml - the schema to parse
36
+ * @returns parsed object representation of passed XML
37
+ */
38
+ function xmlToJson(xml) {
39
+ const options = {
40
+ attributeNamePrefix: '',
41
+ ignoreAttributes: false,
42
+ ignoreNameSpace: true,
43
+ parseAttributeValue: true
44
+ };
45
+ try {
46
+ const parser = new fast_xml_parser_1.XMLParser(options);
47
+ return parser.parse(xml, true);
48
+ }
49
+ catch (error) {
50
+ throw new Error((0, i18n_1.t)('error.unparseableXML', { error }));
51
+ }
52
+ }
53
+ /**
54
+ * Gets all the schema namespaces and their aliases from the provided metadata.
55
+ *
56
+ * @param metadata - odata service metadata
57
+ * @returns Array of namespaces and their aliases
58
+ */
59
+ function getNamespaces(metadata) {
60
+ var _a, _b;
61
+ const jsonMetadata = xmlToJson(metadata);
62
+ let schema = (_b = (_a = jsonMetadata['edmx:Edmx']) === null || _a === void 0 ? void 0 : _a['edmx:DataServices']) === null || _b === void 0 ? void 0 : _b['Schema'];
63
+ if (!schema) {
64
+ return [];
65
+ }
66
+ // Can be array or single item
67
+ if (!Array.isArray(schema)) {
68
+ schema = [schema];
69
+ }
70
+ return schema.map((item) => {
71
+ return {
72
+ namespace: item.Namespace,
73
+ alias: item.Alias || ''
74
+ };
75
+ });
76
+ }
77
+ /**
78
+ * Gets namespace aliases from the specified annotations xml.
79
+ *
80
+ * @param annotations - annotations definition as json
81
+ * @param namespace - the namespace to search
82
+ * @returns An alias for the specified namespace or empty string
83
+ */
84
+ function getAliasFromAnnotation(annotations, namespace) {
85
+ var _a, _b;
86
+ let references = (_a = annotations['edmx:Edmx']) === null || _a === void 0 ? void 0 : _a['edmx:Reference'];
87
+ // Can be array or single item
88
+ if (!Array.isArray(references)) {
89
+ references = [references];
90
+ }
91
+ const annoNamespace = references.find((ref) => { var _a, _b; return ((_a = ref['edmx:Include']) === null || _a === void 0 ? void 0 : _a['Namespace']) === namespace && ((_b = ref['edmx:Include']) === null || _b === void 0 ? void 0 : _b['Alias']); });
92
+ return annoNamespace ? (_b = annoNamespace['edmx:Include']) === null || _b === void 0 ? void 0 : _b['Alias'] : '';
93
+ }
94
+ //# sourceMappingURL=annotations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../src/data/annotations.ts"],"names":[],"mappings":";;;AAAA,qDAA4C;AAC5C,kCAA4B;AAG5B;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAyB;IACpF,8CAA8C;IAC9C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjE,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,EAAE;QAClB,aAAa;QACb,MAAM,eAAe,GAAW,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAE3D,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAsB,EAAE,EAAE;YACnD,iEAAiE;YACjE,MAAM,eAAe,GACjB,WAAW,CAAC,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzG,IAAI,eAAe,EAAE;gBACjB,MAAM,CAAC,KAAK,GAAG,eAAe,CAAC;aAClC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;KACN;IACD,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAnBD,0DAmBC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,GAAW;IAC1B,MAAM,OAAO,GAAG;QACZ,mBAAmB,EAAE,EAAE;QACvB,gBAAgB,EAAE,KAAK;QACvB,eAAe,EAAE,IAAI;QACrB,mBAAmB,EAAE,IAAI;KAC5B,CAAC;IAEF,IAAI;QACA,MAAM,MAAM,GAAG,IAAI,2BAAS,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KAClC;IAAC,OAAO,KAAK,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,IAAA,QAAC,EAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;KACzD;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,QAAgB;;IACnC,MAAM,YAAY,GAAW,SAAS,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,MAAM,GAAG,MAAA,MAAA,YAAY,CAAC,WAAW,CAAC,0CAAG,mBAAmB,CAAC,0CAAG,QAAQ,CAAC,CAAC;IAE1E,IAAI,CAAC,MAAM,EAAE;QACT,OAAO,EAAE,CAAC;KACb;IAED,8BAA8B;IAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACxB,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;KACrB;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACvB,OAAO;YACH,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;SAC1B,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,WAAmB,EAAE,SAAiB;;IAClE,IAAI,UAAU,GAAG,MAAA,WAAW,CAAC,WAAW,CAAC,0CAAG,gBAAgB,CAAC,CAAC;IAE9D,8BAA8B;IAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QAC5B,UAAU,GAAG,CAAC,UAAU,CAAC,CAAC;KAC7B;IAED,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CACjC,CAAC,GAAG,EAAE,EAAE,eAAC,OAAA,CAAA,MAAA,GAAG,CAAC,cAAc,CAAC,0CAAG,WAAW,CAAC,MAAK,SAAS,KAAI,MAAA,GAAG,CAAC,cAAc,CAAC,0CAAG,OAAO,CAAC,CAAA,CAAA,EAAA,CAC9F,CAAC;IACF,OAAO,aAAa,CAAC,CAAC,CAAC,MAAA,aAAa,CAAC,cAAc,CAAC,0CAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACzE,CAAC"}
@@ -3,7 +3,7 @@ import { OdataService } from '../types';
3
3
  * Enhances the provided OData service object with path, name and model information.
4
4
  * Directly modifies the passed object reference.
5
5
  *
6
- * @param {OdataService} data - the OData service object
6
+ * @param {OdataService} service - the OData service object
7
7
  */
8
- export declare function enhanceData(data: OdataService): void;
8
+ export declare function enhanceData(service: OdataService): void;
9
9
  //# sourceMappingURL=defaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/data/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CA6BpD"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/data/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CA6BvD"}
@@ -6,35 +6,35 @@ const constants_1 = require("./constants");
6
6
  * Enhances the provided OData service object with path, name and model information.
7
7
  * Directly modifies the passed object reference.
8
8
  *
9
- * @param {OdataService} data - the OData service object
9
+ * @param {OdataService} service - the OData service object
10
10
  */
11
- function enhanceData(data) {
11
+ function enhanceData(service) {
12
12
  var _a;
13
13
  // Set default path
14
- if (data.path === undefined) {
15
- data.path = '/';
14
+ if (service.path === undefined) {
15
+ service.path = '/';
16
16
  }
17
- else if (data.path.substring(data.path.length - 1) !== '/') {
18
- data.path = data.path + '/';
17
+ else if (service.path.substring(service.path.length - 1) !== '/') {
18
+ service.path = service.path + '/';
19
19
  }
20
- if (data.name === undefined) {
21
- data.name = constants_1.DEFAULT_DATASOURCE_NAME;
20
+ if (service.name === undefined) {
21
+ service.name = constants_1.DEFAULT_DATASOURCE_NAME;
22
22
  }
23
- if (data.model === undefined) {
24
- data.model = ''; // Default UI5 model
23
+ if (service.model === undefined) {
24
+ service.model = ''; // Default UI5 model
25
25
  }
26
26
  // enhance preview settings with service configuration
27
- data.previewSettings = data.previewSettings || {};
28
- data.previewSettings.path =
29
- data.previewSettings.path || `/${((_a = data.path) === null || _a === void 0 ? void 0 : _a.split('/').filter((s) => s !== '')[0]) || ''}`;
30
- data.previewSettings.url = data.previewSettings.url || data.url || 'http://localhost';
31
- if (data.client && !data.previewSettings.client) {
32
- data.previewSettings.client = data.client;
27
+ service.previewSettings = service.previewSettings || {};
28
+ service.previewSettings.path =
29
+ service.previewSettings.path || `/${((_a = service.path) === null || _a === void 0 ? void 0 : _a.split('/').filter((s) => s !== '')[0]) || ''}`;
30
+ service.previewSettings.url = service.previewSettings.url || service.url || 'http://localhost';
31
+ if (service.client && !service.previewSettings.client) {
32
+ service.previewSettings.client = service.client;
33
33
  }
34
- if (data.destination && !data.previewSettings.destination) {
35
- data.previewSettings.destination = data.destination.name;
36
- if (data.destination.instance) {
37
- data.previewSettings.destinationInstance = data.destination.instance;
34
+ if (service.destination && !service.previewSettings.destination) {
35
+ service.previewSettings.destination = service.destination.name;
36
+ if (service.destination.instance) {
37
+ service.previewSettings.destinationInstance = service.destination.instance;
38
38
  }
39
39
  }
40
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/data/defaults.ts"],"names":[],"mappings":";;;AACA,2CAAsD;AAEtD;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,IAAkB;;IAC1C,mBAAmB;IACnB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;QACzB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;KACnB;SAAM,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;QAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;KAC/B;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;QACzB,IAAI,CAAC,IAAI,GAAG,mCAAuB,CAAC;KACvC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;QAC1B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,oBAAoB;KACxC;IAED,sDAAsD;IACtD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;IAClD,IAAI,CAAC,eAAe,CAAC,IAAI;QACrB,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,IAAI,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAI,EAAE,EAAE,CAAC;IACtG,IAAI,CAAC,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,kBAAkB,CAAC;IACtF,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;QAC7C,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;KAC7C;IACD,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;QACvD,IAAI,CAAC,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QACzD,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,eAAe,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;SACxE;KACJ;AACL,CAAC;AA7BD,kCA6BC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/data/defaults.ts"],"names":[],"mappings":";;;AACA,2CAAsD;AAEtD;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,OAAqB;;IAC7C,mBAAmB;IACnB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;QAC5B,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC;KACtB;SAAM,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;QAChE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC;KACrC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;QAC5B,OAAO,CAAC,IAAI,GAAG,mCAAuB,CAAC;KAC1C;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;QAC7B,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,oBAAoB;KAC3C;IAED,sDAAsD;IACtD,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC;IACxD,OAAO,CAAC,eAAe,CAAC,IAAI;QACxB,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI,IAAI,CAAA,MAAA,OAAO,CAAC,IAAI,0CAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAI,EAAE,EAAE,CAAC;IAC5G,OAAO,CAAC,eAAe,CAAC,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,IAAI,kBAAkB,CAAC;IAC/F,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE;QACnD,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;KACnD;IACD,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE;QAC7D,OAAO,CAAC,eAAe,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;QAC/D,IAAI,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC9B,OAAO,CAAC,eAAe,CAAC,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;SAC9E;KACJ;AACL,CAAC;AA7BD,kCA6BC"}
@@ -1,2 +1,3 @@
1
1
  export * from './defaults';
2
+ export * from './annotations';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
@@ -11,4 +11,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./defaults"), exports);
14
+ __exportStar(require("./annotations"), exports);
14
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA2B;AAC3B,gDAA8B"}
package/dist/index.d.ts CHANGED
@@ -5,11 +5,11 @@ import { OdataService, OdataVersion } from './types';
5
5
  *
6
6
  *
7
7
  * @param {string} basePath - the root path of an existing UI5 application
8
- * @param {OdataService} data - the OData service instance
8
+ * @param {OdataService} service - the OData service instance
9
9
  * @param {Editor} [fs] - the memfs editor instance
10
10
  * @throws {Error} - if required UI5 project files are not found
11
11
  * @returns {Promise<Editor>} the updated memfs editor instance
12
12
  */
13
- declare function generate(basePath: string, data: OdataService, fs?: Editor): Promise<Editor>;
13
+ declare function generate(basePath: string, service: OdataService, fs?: Editor): Promise<Editor>;
14
14
  export { generate, OdataVersion, OdataService };
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,MAAM,EAAE,MAAM,eAAe,CAAC;AAO/C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAiBrD;;;;;;;;;GASG;AACH,iBAAe,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA2E1F;AAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,MAAM,EAAE,MAAM,eAAe,CAAC;AAM/C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAiBrD;;;;;;;;;GASG;AACH,iBAAe,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0F7F;AAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -41,19 +41,19 @@ function validateBasePath(basePath, fs) {
41
41
  *
42
42
  *
43
43
  * @param {string} basePath - the root path of an existing UI5 application
44
- * @param {OdataService} data - the OData service instance
44
+ * @param {OdataService} service - the OData service instance
45
45
  * @param {Editor} [fs] - the memfs editor instance
46
46
  * @throws {Error} - if required UI5 project files are not found
47
47
  * @returns {Promise<Editor>} the updated memfs editor instance
48
48
  */
49
- function generate(basePath, data, fs) {
49
+ function generate(basePath, service, fs) {
50
50
  var _a, _b;
51
51
  return __awaiter(this, void 0, void 0, function* () {
52
52
  if (!fs) {
53
53
  fs = (0, mem_fs_editor_1.create)((0, mem_fs_1.create)());
54
54
  }
55
55
  validateBasePath(basePath, fs);
56
- (0, data_1.enhanceData)(data);
56
+ (0, data_1.enhanceData)(service);
57
57
  // merge content into existing files
58
58
  const templateRoot = (0, path_1.join)(__dirname, '..', 'templates');
59
59
  const extRoot = (0, path_1.join)(templateRoot, 'extend');
@@ -68,17 +68,17 @@ function generate(basePath, data, fs) {
68
68
  throw new Error((0, i18n_1.t)('error.requiredProjectPropertyNotFound', { property: `'${appProp}'.id`, path: manifestPath }));
69
69
  }
70
70
  const manifestJsonExt = fs.read((0, path_1.join)(extRoot, `manifest.json`));
71
- fs.extendJSON(manifestPath, JSON.parse((0, ejs_1.render)(manifestJsonExt, data)));
71
+ fs.extendJSON(manifestPath, JSON.parse((0, ejs_1.render)(manifestJsonExt, service)));
72
72
  // ui5.yaml
73
73
  const ui5ConfigPath = (0, path_1.join)(basePath, 'ui5.yaml');
74
74
  const ui5Config = yield ui5_config_1.UI5Config.newInstance(fs.read(ui5ConfigPath));
75
- ui5Config.addBackendToFioriToolsProxydMiddleware(data.previewSettings);
75
+ ui5Config.addBackendToFioriToolsProxydMiddleware(service.previewSettings);
76
76
  // ui5-local.yaml
77
77
  const ui5LocalConfigPath = (0, path_1.join)(basePath, 'ui5-local.yaml');
78
78
  const ui5LocalConfig = yield ui5_config_1.UI5Config.newInstance(fs.read(ui5LocalConfigPath));
79
- ui5LocalConfig.addFioriToolsProxydMiddleware({ backend: [data.previewSettings] });
79
+ ui5LocalConfig.addFioriToolsProxydMiddleware({ backend: [service.previewSettings] });
80
80
  // Add mockserver entries
81
- if (data.metadata) {
81
+ if (service.metadata) {
82
82
  // package.json updates
83
83
  const mockDevDeps = {
84
84
  devDependencies: {
@@ -93,18 +93,23 @@ function generate(basePath, data, fs) {
93
93
  fs.writeJSON(packagePath, packageJson);
94
94
  // copy existing `ui5.yaml` as starting point for ui5-mock.yaml
95
95
  const ui5MockConfig = yield ui5_config_1.UI5Config.newInstance(ui5Config.toString());
96
- ui5MockConfig.addMockServerMiddleware(data.path);
96
+ ui5MockConfig.addMockServerMiddleware(service.path);
97
97
  fs.write((0, path_1.join)(basePath, 'ui5-mock.yaml'), ui5MockConfig.toString());
98
98
  // also add mockserver middleware to ui5-local.yaml
99
- ui5LocalConfig.addMockServerMiddleware(data.path);
99
+ ui5LocalConfig.addMockServerMiddleware(service.path);
100
100
  // create local copy of metadata and annotations
101
- fs.write((0, path_1.join)(basePath, 'webapp', 'localService', 'metadata.xml'), (0, prettify_xml_1.default)(data.metadata, { indent: 4 }));
101
+ fs.write((0, path_1.join)(basePath, 'webapp', 'localService', 'metadata.xml'), (0, prettify_xml_1.default)(service.metadata, { indent: 4 }));
102
+ // Adds local annotations to datasources section of manifest.json and writes the annotations file
103
+ if (service.localAnnotationsName) {
104
+ const namespaces = (0, data_1.getAnnotationNamespaces)(service);
105
+ fs.copyTpl((0, path_1.join)(templateRoot, 'add', 'annotation.xml'), (0, path_1.join)(basePath, 'webapp', 'annotations', `${service.localAnnotationsName}.xml`), Object.assign(Object.assign({}, service), { namespaces }));
106
+ }
102
107
  }
103
108
  // write yamls to disk
104
109
  fs.write(ui5ConfigPath, ui5Config.toString());
105
110
  fs.write(ui5LocalConfigPath, ui5LocalConfig.toString());
106
- if ((_b = data.annotations) === null || _b === void 0 ? void 0 : _b.xml) {
107
- fs.write((0, path_1.join)(basePath, 'webapp', 'localService', `${data.annotations.technicalName}.xml`), (0, prettify_xml_1.default)(data.annotations.xml, { indent: 4 }));
111
+ if ((_b = service.annotations) === null || _b === void 0 ? void 0 : _b.xml) {
112
+ fs.write((0, path_1.join)(basePath, 'webapp', 'localService', `${service.annotations.technicalName}.xml`), (0, prettify_xml_1.default)(service.annotations.xml, { indent: 4 }));
108
113
  }
109
114
  return fs;
110
115
  });
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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"}
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "error": {
3
3
  "requiredProjectFileNotFound": "Invalid project structure. Cannot find required file {{-path}}",
4
- "requiredProjectPropertyNotFound": "Required project property: {{-property}} was not found in file: {{-path}}"
4
+ "requiredProjectPropertyNotFound": "Required project property: {{-property}} was not found in file: {{-path}}",
5
+ "unparseableXML": "Unparseable XML was specified: {{-error}}"
5
6
  }
6
7
  }
package/dist/types.d.ts CHANGED
@@ -3,6 +3,10 @@ export declare enum OdataVersion {
3
3
  v2 = "2",
4
4
  v4 = "4"
5
5
  }
6
+ export interface NamespaceAlias {
7
+ namespace: string;
8
+ alias: string;
9
+ }
6
10
  export interface OdataService {
7
11
  url?: string;
8
12
  client?: string;
@@ -19,6 +23,7 @@ export interface OdataService {
19
23
  technicalName: string;
20
24
  xml: string;
21
25
  };
26
+ localAnnotationsName?: string;
22
27
  previewSettings?: Partial<ProxyBackend>;
23
28
  }
24
29
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,oBAAY,YAAY;IACpB,EAAE,MAAM;IACR,EAAE,MAAM;CACX;AAED,MAAM,WAAW,YAAY;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;KACf,CAAC;IACF,eAAe,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC3C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,oBAAY,YAAY;IACpB,EAAE,MAAM;IACR,EAAE,MAAM;CACX;AAED,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;KACf,CAAC;IACF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC3C"}
package/package.json CHANGED
@@ -1,43 +1,45 @@
1
1
  {
2
- "name": "@sap-ux/odata-service-writer",
3
- "version": "0.10.0",
4
- "license": "Apache-2.0",
5
- "main": "dist/index.js",
6
- "files": [
7
- "LICENSE",
8
- "dist",
9
- "templates"
10
- ],
11
- "dependencies": {
12
- "ejs": "3.1.6",
13
- "i18next": "20.3.2",
14
- "mem-fs": "2.1.0",
15
- "mem-fs-editor": "9.0.0",
16
- "@sap-ux/ui5-config": "0.10.3",
17
- "prettify-xml": "1.2.0"
18
- },
19
- "devDependencies": {
20
- "@types/ejs": "3.1.0",
21
- "@types/fs-extra": "9.0.13",
22
- "@types/mem-fs-editor": "7.0.0",
23
- "fs-extra": "10.0.0",
24
- "lodash": "4.17.21"
25
- },
26
- "engines": {
27
- "pnpm": ">=6.0.2",
28
- "node": ">=12.22.5 < 13.0.0 || >= 14.16.0 < 15.0.0 || >=16.1.0 < 17.0.0"
29
- },
30
- "scripts": {
31
- "build": "pnpm clean && tsc",
32
- "clean": "rimraf dist test/test-output coverage",
33
- "format": "prettier --write '**/*.{js,json,ts,yaml,yml}' --ignore-path ../../.prettierignore",
34
- "lint": "eslint . --ext .ts",
35
- "lint:fix": "eslint . --ext .ts --fix",
36
- "test": "jest --ci --forceExit --detectOpenHandles --colors",
37
- "test-u": "jest --ci --forceExit --detectOpenHandles --colors -u",
38
- "test:local": "node -r ts-node/register test/index.ts",
39
- "watch": "tsc --watch",
40
- "link": "pnpm link --global",
41
- "unlink": "pnpm unlink --global"
42
- }
43
- }
2
+ "name": "@sap-ux/odata-service-writer",
3
+ "version": "0.11.1",
4
+ "license": "Apache-2.0",
5
+ "main": "dist/index.js",
6
+ "files": [
7
+ "LICENSE",
8
+ "dist",
9
+ "templates"
10
+ ],
11
+ "dependencies": {
12
+ "ejs": "3.1.6",
13
+ "i18next": "20.3.2",
14
+ "mem-fs": "2.1.0",
15
+ "mem-fs-editor": "9.0.0",
16
+ "@sap-ux/ui5-config": "0.12.0",
17
+ "prettify-xml": "1.2.0",
18
+ "fast-xml-parser": "4.0.1"
19
+ },
20
+ "devDependencies": {
21
+ "@types/ejs": "3.1.0",
22
+ "@types/fs-extra": "9.0.13",
23
+ "@types/mem-fs-editor": "7.0.0",
24
+ "fs-extra": "10.0.0",
25
+ "lodash": "4.17.21"
26
+ },
27
+ "engines": {
28
+ "pnpm": ">=6.26.1",
29
+ "node": ">=12.22.5 < 13.0.0 || >= 14.16.0 < 15.0.0 || >=16.1.0 < 17.0.0"
30
+ },
31
+ "scripts": {
32
+ "build": "pnpm clean && tsc",
33
+ "clean": "rimraf dist test/test-output coverage",
34
+ "format": "prettier --write '**/*.{js,json,ts,yaml,yml}' --ignore-path ../../.prettierignore",
35
+ "lint": "eslint . --ext .ts",
36
+ "lint:fix": "eslint . --ext .ts --fix",
37
+ "test": "jest --ci --forceExit --detectOpenHandles --colors",
38
+ "test-u": "jest --ci --forceExit --detectOpenHandles --colors -u",
39
+ "test:local": "node -r ts-node/register test/index.ts",
40
+ "watch": "tsc --watch",
41
+ "link": "pnpm link --global",
42
+ "unlink": "pnpm unlink --global"
43
+ },
44
+ "readme": "# @sap-ux/odata-service-writer\n\nWrites the odata service related file updates to an existing UI5 project specified by the base path.\n\n\n## Installation\nNpm\n`npm install --save @sap-ux/odata-service-writer`\n\nYarn\n`yarn add @sap-ux/odata-service-writer`\n\nPnpm\n`pnpm add @sap-ux/odata-service-writer`\n\n## Usage\n\n```Typescript\nimport { OdataVersion, OdataService, generate } from '@sap-ux/odata-service-writer';\nimport { create, Editor } from 'mem-fs-editor';\nimport { create as createStorage } from 'mem-fs';\n\n...\n\nfs = create(createStorage()); // Or use fs from Yeoman\n\n const config: OdataService = {\n url: 'http://localhost',\n path: '/sap/odata/testme',\n version: OdataVersion.v4,\n destination: {\n name: 'test'\n }\n };\nconst testDir = '/tmp';\n\nawait generate(testDir, config, fs);\n \n```\n\n## Keywords\nSAP Fiori Freestyle\n"
45
+ }
@@ -0,0 +1,18 @@
1
+ <edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="<%= (version === '2') ? '1.0' : '4.0'%>">
2
+ <edmx:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/Common.xml">
3
+ <edmx:Include Namespace="com.sap.vocabularies.Common.v1" Alias="Common"/>
4
+ </edmx:Reference>
5
+ <edmx:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/UI.xml">
6
+ <edmx:Include Namespace="com.sap.vocabularies.UI.v1" Alias="UI"/>
7
+ </edmx:Reference>
8
+ <edmx:Reference Uri="https://sap.github.io/odata-vocabularies/vocabularies/Communication.xml">
9
+ <edmx:Include Namespace="com.sap.vocabularies.Communication.v1" Alias="Communication"/>
10
+ </edmx:Reference>
11
+ <edmx:Reference Uri="<%- path %>$metadata"><% namespaces.forEach(function(namespace){ %>
12
+ <edmx:Include Namespace="<%- namespace.namespace %>"<% if (namespace.alias) { %> Alias="<%- namespace.alias %>"<% } %>/><% }); %>
13
+ </edmx:Reference>
14
+ <edmx:DataServices>
15
+ <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="local">
16
+ </Schema>
17
+ </edmx:DataServices>
18
+ </edmx:Edmx>
@@ -6,7 +6,8 @@
6
6
  "type": "OData",
7
7
  "settings": {
8
8
  "annotations": [<%if (locals.annotations && annotations.technicalName) {%>
9
- "<%- annotations.technicalName %>"<% } %>
9
+ "<%- annotations.technicalName %>"<% if (locals.localAnnotationsName) {%>,<%}%><% } %><% if (locals.localAnnotationsName) { %>
10
+ "<%- localAnnotationsName %>"<% } %>
10
11
  ],
11
12
  "localUri": "localService/metadata.xml"<%if (version === '4') {%>,
12
13
  "odataVersion": "4.0"<% } %><%if (version === '2') {%>,
@@ -19,7 +20,14 @@
19
20
  "settings": {
20
21
  "localUri": "localService/<%- annotations.technicalName %>.xml"
21
22
  }
22
- }<% } %>
23
+ }<% } %><% if (locals.localAnnotationsName) { %>,
24
+ "<%- localAnnotationsName %>": {
25
+ "type": "ODataAnnotation",
26
+ "uri": "annotations/<%- localAnnotationsName %>.xml",
27
+ "settings": {
28
+ "localUri": "annotations/<%- localAnnotationsName %>.xml"
29
+ }
30
+ } <% } %>
23
31
  }
24
32
  },
25
33
  "sap.ui5": {
package/CHANGELOG.md DELETED
@@ -1,80 +0,0 @@
1
- # @sap-ux/odata-service-writer
2
-
3
- ## 0.10.0
4
-
5
- ### Minor Changes
6
-
7
- - a9ef807: Reorganized how different middlewares are added to the ui5\*.yaml files
8
-
9
- ## 0.9.8
10
-
11
- ### Patch Changes
12
-
13
- - ccff534: Add inline schema in ui5\*.yaml files for yaml-language-server
14
-
15
- ## 0.9.7
16
-
17
- ### Patch Changes
18
-
19
- - b7ee596: port tool-suite change - add delay to appreload middleware
20
- - Updated dependencies [b7ee596]
21
- - @sap-ux/ui5-config@0.10.3
22
-
23
- ## 0.9.6
24
-
25
- ### Patch Changes
26
-
27
- - 8de261b: Update npm dep and devDeps
28
- - Updated dependencies [8de261b]
29
- - @sap-ux/ui5-config@0.10.2
30
-
31
- ## 0.9.5
32
-
33
- ### Patch Changes
34
-
35
- - a7670a0: Update ui5 verison handling for ui5.yaml. Allow setting view name in basic template, enhancements to yaml lib.
36
- - Updated dependencies [a7670a0]
37
- - @sap-ux/ui5-config@0.10.1
38
-
39
- ## 0.9.4
40
-
41
- ### Patch Changes
42
-
43
- - d37c8bd: Added support for selecting a custom view name for Fiori freestyle - Basic template
44
- - Updated dependencies [d37c8bd]
45
- - @sap-ux/ui5-config@0.10.0
46
-
47
- ## 0.9.3
48
-
49
- ### Patch Changes
50
-
51
- - 6888c5b: Add Readme for modules, add deploy script FF template, engines.node update to lts and small clean-up
52
- - Updated dependencies [6888c5b]
53
- - @sap-ux/ui5-config@0.9.3
54
-
55
- ## 0.9.2
56
-
57
- ### Patch Changes
58
-
59
- - a16d4e7: fix versions in modules for patch instead of minor
60
- - Updated dependencies [a16d4e7]
61
- - @sap-ux/ui5-config@0.9.2
62
-
63
- ## 0.10.0
64
-
65
- ### Minor Changes
66
-
67
- - cd119ea: Fix missing client in fiori proxy config #138
68
-
69
- ### Patch Changes
70
-
71
- - Updated dependencies [cd119ea]
72
- - @sap-ux/ui5-config@0.10.0
73
-
74
- ## 0.9.1
75
-
76
- ### Patch Changes
77
-
78
- - f6e1223: Dummy update to test changesets and pipeline
79
- - Updated dependencies [f6e1223]
80
- - @sap-ux/ui5-config@0.9.1