Launch Week Day 5: Introducing Reachability for PHP.Learn More
Socket
Book a DemoSign in
Socket

@sap-ux/annotation-converter

Package Overview
Dependencies
Maintainers
3
Versions
97
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@sap-ux/annotation-converter - npm Package Compare versions

Comparing version
0.6.7
to
0.6.8
+6
-0
CHANGELOG.md
# @sap-ux/annotation-converter
## 0.6.8
### Patch Changes
- 6c325c5: We have improved the handling of aliases
## 0.6.7

@@ -4,0 +10,0 @@

+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAUR,iBAAiB,EAgBjB,WAAW,EAYd,MAAM,4BAA4B,CAAC;AAynBpC,MAAM,MAAM,cAAc,GACpB,cAAc,GACd,MAAM,GACN,IAAI,GACJ,OAAO,GACP,MAAM,GACN,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,gBAAgB,GAChB,wBAAwB,GACxB,QAAQ,GACR,QAAQ,GACR,iBAAiB,CAAC;AA01BxB;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,WAAW,EAAE,WAAW,GAAG,iBAAiB,CA4CnE"}
{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EASR,iBAAiB,EAgBjB,WAAW,EAWd,MAAM,4BAA4B,CAAC;AAymBpC,MAAM,MAAM,cAAc,GACpB,cAAc,GACd,MAAM,GACN,IAAI,GACJ,OAAO,GACP,MAAM,GACN,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,gBAAgB,GAChB,wBAAwB,GACxB,QAAQ,GACR,QAAQ,GACR,iBAAiB,CAAC;AAq1BxB;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,WAAW,EAAE,WAAW,GAAG,iBAAiB,CA4CnE"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.convert = void 0;
const VocabularyReferences_1 = require("@sap-ux/vocabularies-types/vocabularies/VocabularyReferences");
const utils_1 = require("./utils");
const VocabularyReferences_1 = require("@sap-ux/vocabularies-types/vocabularies/VocabularyReferences");
/**

@@ -125,3 +125,3 @@ * Symbol to extend an annotation with the reference to its target.

const thisElement = current.target;
if (segment === '' || segment === thisElement.fullyQualifiedName) {
if (segment === '' || converter.unalias(segment) === thisElement.fullyQualifiedName) {
return current;

@@ -175,3 +175,4 @@ }

}
const action = thisElement.actions[segment];
const actionName = (0, utils_1.substringBeforeFirst)(converter.unalias(segment), '(');
const action = thisElement.actions[actionName];
if (action) {

@@ -428,44 +429,26 @@ current.target = action;

function parseRecord(converter, currentTerm, currentTarget, currentProperty, currentSource, annotationRecord, currentFQN) {
var _a;
const annotationTerm = {
const record = {
$Type: parseRecordType(converter, currentTerm, currentTarget, currentProperty, annotationRecord),
fullyQualifiedName: currentFQN,
[ANNOTATION_TARGET]: currentTarget
[ANNOTATION_TARGET]: currentTarget,
__source: currentSource
};
for (const propertyValue of annotationRecord.propertyValues) {
(0, utils_1.lazy)(record, propertyValue.name, () => parseValue(converter, currentTarget, currentTerm, propertyValue.name, currentSource, propertyValue.value, `${currentFQN}/${propertyValue.name}`));
}
// annotations on the record
(0, utils_1.lazy)(annotationTerm, 'annotations', () => {
var _a;
// be graceful when resolving annotations on annotations: Sometimes they are referenced directly, sometimes they
// are part of the global annotations list
let annotations;
if (annotationRecord.annotations && annotationRecord.annotations.length > 0) {
annotations = annotationRecord.annotations;
}
else {
annotations = (_a = converter.rawAnnotationsPerTarget[currentFQN]) === null || _a === void 0 ? void 0 : _a.annotations;
}
annotations === null || annotations === void 0 ? void 0 : annotations.forEach((annotation) => {
annotation.target = currentFQN;
annotation.__source = currentSource;
annotation[ANNOTATION_TARGET] = currentTarget;
annotation.fullyQualifiedName = `${currentFQN}@${annotation.term}`;
});
return createAnnotationsObject(converter, annotationTerm, annotations !== null && annotations !== void 0 ? annotations : []);
});
const annotationContent = (_a = annotationRecord.propertyValues) === null || _a === void 0 ? void 0 : _a.reduce((annotationContent, propertyValue) => {
(0, utils_1.lazy)(annotationContent, propertyValue.name, () => parseValue(converter, currentTarget, currentTerm, propertyValue.name, currentSource, propertyValue.value, `${currentFQN}/${propertyValue.name}`));
return annotationContent;
}, annotationTerm);
if (isDataFieldWithForAction(annotationContent)) {
(0, utils_1.lazy)(annotationContent, 'ActionTarget', () => {
var _a, _b;
// try to resolve to a bound action of the annotation target
let actionTarget = (_a = currentTarget.actions) === null || _a === void 0 ? void 0 : _a[annotationContent.Action];
(0, utils_1.lazy)(record, 'annotations', resolveAnnotationsOnAnnotation(converter, annotationRecord, record));
if (isDataFieldWithForAction(record)) {
(0, utils_1.lazy)(record, 'ActionTarget', () => {
var _a, _b, _c;
const actionTargetFQN = converter.unalias((_a = record.Action) === null || _a === void 0 ? void 0 : _a.toString());
// (1) Bound action of the annotation target?
let actionTarget = (_b = currentTarget.actions) === null || _b === void 0 ? void 0 : _b[actionTargetFQN];
if (!actionTarget) {
// try to find a corresponding unbound action
actionTarget = (_b = converter.getConvertedActionImport(annotationContent.Action)) === null || _b === void 0 ? void 0 : _b.action;
// (2) ActionImport (= unbound action)?
actionTarget = (_c = converter.getConvertedActionImport(actionTargetFQN)) === null || _c === void 0 ? void 0 : _c.action;
}
if (!actionTarget) {
// try to find a corresponding bound (!) action
actionTarget = converter.getConvertedAction(annotationContent.Action);
// (3) Bound action of a different EntityType
actionTarget = converter.getConvertedAction(actionTargetFQN);
if (!(actionTarget === null || actionTarget === void 0 ? void 0 : actionTarget.isBound)) {

@@ -476,3 +459,3 @@ actionTarget = undefined;

if (!actionTarget) {
converter.logError(`Unable to resolve the action '${annotationContent.Action}' defined for '${annotationTerm.fullyQualifiedName}'`);
converter.logError(`${record.fullyQualifiedName}: Unable to resolve '${record.Action}' ('${actionTargetFQN}')`);
}

@@ -482,3 +465,3 @@ return actionTarget;

}
return annotationContent;
return record;
}

@@ -643,26 +626,7 @@ /**

const [vocAlias, vocTerm] = converter.splitTerm(rawAnnotation.term);
annotation.term = converter.unalias(`${vocAlias}.${vocTerm}`);
annotation.term = converter.unalias(`${vocAlias}.${vocTerm}`, VocabularyReferences_1.VocabularyReferences);
annotation.qualifier = rawAnnotation.qualifier;
annotation.__source = rawAnnotation.__source;
try {
(0, utils_1.lazy)(annotation, 'annotations', () => {
var _a;
const annotationFQN = annotation.fullyQualifiedName;
// be graceful when resolving annotations on annotations: Sometimes they are referenced directly, sometimes they
// are part of the global annotations list
let annotations;
if (rawAnnotation.annotations && rawAnnotation.annotations.length > 0) {
annotations = rawAnnotation.annotations;
}
else {
annotations = (_a = converter.rawAnnotationsPerTarget[annotationFQN]) === null || _a === void 0 ? void 0 : _a.annotations;
}
annotations === null || annotations === void 0 ? void 0 : annotations.forEach((rawSubAnnotation) => {
rawSubAnnotation.target = annotationFQN;
rawSubAnnotation.__source = annotation.__source;
rawSubAnnotation[ANNOTATION_TARGET] = target;
rawSubAnnotation.fullyQualifiedName = `${annotationFQN}@${rawSubAnnotation.term}`;
});
return createAnnotationsObject(converter, annotation, annotations !== null && annotations !== void 0 ? annotations : []);
});
(0, utils_1.lazy)(annotation, 'annotations', resolveAnnotationsOnAnnotation(converter, rawAnnotation, annotation));
}

@@ -674,60 +638,45 @@ catch (e) {

}
function getAnnotationFQN(currentTargetName, references, annotation) {
const annotationFQN = `${currentTargetName}@${(0, utils_1.unalias)(references, annotation.term)}`;
if (annotation.qualifier) {
return `${annotationFQN}#${annotation.qualifier}`;
}
else {
return annotationFQN;
}
}
/**
* Merge annotation from different source together by overwriting at the term level.
*
* @param rawMetadata
* @param converter
* @returns the resulting merged annotations
*/
function mergeAnnotations(rawMetadata) {
const annotationListPerTarget = {};
Object.keys(rawMetadata.schema.annotations).forEach((annotationSource) => {
rawMetadata.schema.annotations[annotationSource].forEach((annotationList) => {
const currentTargetName = (0, utils_1.unalias)(rawMetadata.references, annotationList.target);
annotationList.__source = annotationSource;
if (!annotationListPerTarget[currentTargetName]) {
annotationListPerTarget[currentTargetName] = {
annotations: annotationList.annotations.map((annotation) => {
annotation.fullyQualifiedName = getAnnotationFQN(currentTargetName, rawMetadata.references, annotation);
annotation.__source = annotationSource;
return annotation;
}),
target: currentTargetName
};
annotationListPerTarget[currentTargetName].__source = annotationSource;
function mergeAnnotations(converter) {
return Object.keys(converter.rawSchema.annotations).reduceRight((annotationsPerTarget, annotationSource) => {
for (const { target: rawTarget, annotations: rawAnnotations } of converter.rawSchema.annotations[annotationSource]) {
const target = converter.unalias(rawTarget);
if (!annotationsPerTarget[target]) {
annotationsPerTarget[target] = [];
}
else {
annotationList.annotations.forEach((annotation) => {
const findIndex = annotationListPerTarget[currentTargetName].annotations.findIndex((referenceAnnotation) => {
return (referenceAnnotation.term === annotation.term &&
referenceAnnotation.qualifier === annotation.qualifier);
});
annotation.__source = annotationSource;
annotation.fullyQualifiedName = getAnnotationFQN(currentTargetName, rawMetadata.references, annotation);
if (findIndex !== -1) {
annotationListPerTarget[currentTargetName].annotations.splice(findIndex, 1, annotation);
}
else {
annotationListPerTarget[currentTargetName].annotations.push(annotation);
}
});
}
});
});
return annotationListPerTarget;
annotationsPerTarget[target].push(...rawAnnotations
.filter((rawAnnotation) => !annotationsPerTarget[target].some((existingAnnotation) => existingAnnotation.term === rawAnnotation.term &&
existingAnnotation.qualifier === rawAnnotation.qualifier))
.map((rawAnnotation) => {
let annotationFQN = `${target}@${converter.unalias(rawAnnotation.term)}`;
if (rawAnnotation.qualifier) {
annotationFQN = `${annotationFQN}#${rawAnnotation.qualifier}`;
}
const annotation = rawAnnotation;
annotation.fullyQualifiedName = annotationFQN;
annotation.__source = annotationSource;
return annotation;
}));
}
return annotationsPerTarget;
}, {});
}
class Converter {
get rawAnnotationsPerTarget() {
if (this._rawAnnotationsPerTarget === undefined) {
this._rawAnnotationsPerTarget = mergeAnnotations(this.rawMetadata);
/**
* Get preprocessed annotations on the specified target.
*
* @param target The annotation target
* @returns An array of annotations
*/
getAnnotations(target) {
var _a;
if (this.annotationyByTarget === undefined) {
this.annotationyByTarget = mergeAnnotations(this);
}
return this._rawAnnotationsPerTarget;
return (_a = this.annotationyByTarget[target]) !== null && _a !== void 0 ? _a : [];
}

@@ -816,5 +765,5 @@ getConvertedEntityContainer() {

}
unalias(value) {
unalias(value, references = this.rawMetadata.references) {
var _a;
return (_a = (0, utils_1.unalias)(this.rawMetadata.references, value)) !== null && _a !== void 0 ? _a : '';
return (_a = (0, utils_1.unalias)(references, value)) !== null && _a !== void 0 ? _a : '';
}

@@ -854,5 +803,23 @@ }

const nestedAnnotations = rawAnnotationTarget.annotations;
return () => createAnnotationsObject(converter, rawAnnotationTarget, nestedAnnotations !== null && nestedAnnotations !== void 0 ? nestedAnnotations : converter.getAnnotations(rawAnnotationTarget.fullyQualifiedName));
}
function resolveAnnotationsOnAnnotation(converter, annotationRecord, annotationTerm) {
return () => {
var _a, _b;
return createAnnotationsObject(converter, rawAnnotationTarget, (_b = nestedAnnotations !== null && nestedAnnotations !== void 0 ? nestedAnnotations : (_a = converter.rawAnnotationsPerTarget[rawAnnotationTarget.fullyQualifiedName]) === null || _a === void 0 ? void 0 : _a.annotations) !== null && _b !== void 0 ? _b : []);
const currentFQN = annotationTerm.fullyQualifiedName;
// be graceful when resolving annotations on annotations: Sometimes they are referenced directly, sometimes they
// are part of the global annotations list
let annotations;
if (annotationRecord.annotations && annotationRecord.annotations.length > 0) {
annotations = annotationRecord.annotations;
}
else {
annotations = converter.getAnnotations(currentFQN);
}
annotations === null || annotations === void 0 ? void 0 : annotations.forEach((annotation) => {
annotation.target = currentFQN;
annotation.__source = annotationTerm.__source;
annotation[ANNOTATION_TARGET] = annotationTerm[ANNOTATION_TARGET];
annotation.fullyQualifiedName = `${currentFQN}@${annotation.term}`;
});
return createAnnotationsObject(converter, annotationTerm, annotations !== null && annotations !== void 0 ? annotations : []);
};

@@ -1032,20 +999,13 @@ }

(0, utils_1.lazy)(convertedAction, 'annotations', () => {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
// this.is.the.action(on.this.type) --> action: 'this.is.the.action', overload: 'on.this.type'
// this.is.the.action() --> action: 'this.is.the.action', overload: undefined
// this.is.the.action --> action: 'this.is.the.action', overload: undefined
const actionAndOverload = rawAction.fullyQualifiedName.match(/(?<action>[^()]+)(?:\((?<overload>.*)\))?/);
let rawAnnotations = [];
if (actionAndOverload) {
if ((_a = actionAndOverload.groups) === null || _a === void 0 ? void 0 : _a.overload) {
rawAnnotations = (_c = (_b = converter.rawAnnotationsPerTarget[rawAction.fullyQualifiedName]) === null || _b === void 0 ? void 0 : _b.annotations) !== null && _c !== void 0 ? _c : [];
const action = (0, utils_1.substringBeforeFirst)(rawAction.fullyQualifiedName, '(');
// if the action is unbound (e.g. "myAction"), the annotation target is "myAction()"
const annotationTargetFQN = rawAction.isBound
? rawAction.fullyQualifiedName
: `${rawAction.fullyQualifiedName}()`;
const rawAnnotations = converter.getAnnotations(annotationTargetFQN);
const baseAnnotations = converter.getAnnotations(action);
for (const baseAnnotation of baseAnnotations) {
if (!rawAnnotations.some((annotation) => annotation.term === baseAnnotation.term && annotation.qualifier === baseAnnotation.qualifier)) {
rawAnnotations.push(baseAnnotation);
}
else {
rawAnnotations =
(_f = (_e = converter.rawAnnotationsPerTarget[`${(_d = actionAndOverload.groups) === null || _d === void 0 ? void 0 : _d.action}()`]) === null || _e === void 0 ? void 0 : _e.annotations) !== null && _f !== void 0 ? _f : [];
}
if (((_g = actionAndOverload.groups) === null || _g === void 0 ? void 0 : _g.action) && ((_h = actionAndOverload.groups) === null || _h === void 0 ? void 0 : _h.action) !== rawAction.fullyQualifiedName) {
const baseAnnotations = (_l = (_k = converter.rawAnnotationsPerTarget[(_j = actionAndOverload.groups) === null || _j === void 0 ? void 0 : _j.action]) === null || _k === void 0 ? void 0 : _k.annotations) !== null && _l !== void 0 ? _l : [];
rawAnnotations = rawAnnotations.concat(baseAnnotations);
}
}

@@ -1052,0 +1012,0 @@ return createAnnotationsObject(converter, rawAction, rawAnnotations);

@@ -1,1 +0,1 @@

{"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"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"}
export * from './converter';
export * from './utils';
export * from './writeback';
export * from './utils';
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}

@@ -18,4 +18,4 @@ "use strict";

__exportStar(require("./converter"), exports);
__exportStar(require("./utils"), exports);
__exportStar(require("./writeback"), exports);
__exportStar(require("./utils"), exports);
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,8CAA4B;AAC5B,0CAAwB"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,0CAAwB;AACxB,8CAA4B"}

@@ -1,5 +0,5 @@

import type { ComplexType, Reference, TypeDefinition, ArrayWithIndex } from '@sap-ux/vocabularies-types';
export { VocabularyReferences as defaultReferences } from '@sap-ux/vocabularies-types/vocabularies/VocabularyReferences';
import type { ArrayWithIndex, ComplexType, Reference, TypeDefinition } from '@sap-ux/vocabularies-types';
export { EnumIsFlag } from '@sap-ux/vocabularies-types/vocabularies/EnumIsFlag';
export { TermToTypes } from '@sap-ux/vocabularies-types/vocabularies/TermToTypes';
export { VocabularyReferences as defaultReferences } from '@sap-ux/vocabularies-types/vocabularies/VocabularyReferences';
export type ReferencesWithMap = Reference[] & {

@@ -50,7 +50,7 @@ referenceMap?: Record<string, Reference>;

/**
* Transform an aliased string representation annotation to the unaliased version.
* Transform an aliased string to its unaliased version given a set of references.
*
* @param references currentReferences for the project
* @param aliasedValue the aliased value
* @returns the unaliased string representing the same
* @param references The references to use for unaliasing.
* @param aliasedValue The aliased value
* @returns The equal unaliased string.
*/

@@ -57,0 +57,0 @@ export declare function unalias(references: ReferencesWithMap, aliasedValue: string | undefined): string | undefined;

@@ -1,1 +0,1 @@

{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAChH,OAAO,EAAE,oBAAoB,IAAI,iBAAiB,EAAE,MAAM,8DAA8D,CAAC;AACzH,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAElF,MAAM,MAAM,iBAAiB,GAAG,SAAS,EAAE,GAAG;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACnD,CAAC;AAUF;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAEhF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAE/E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAqBnF;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAqB3G;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACnC,qBAAqB,CAAC,EAAE,WAAW,GAAG,cAAc,GACrD,qBAAqB,IAAI,WAAW,CAItC;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM;;;;EAYpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,GAAG,SAAS,MAAM,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,QAkBpG;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,WAGvC,CAAC,CAAC,MAAM,CAAC,CAAC,mBAiBzC;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,wBAShG"}
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAS,SAAS,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEhH,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,qDAAqD,CAAC;AAClF,OAAO,EAAE,oBAAoB,IAAI,iBAAiB,EAAE,MAAM,8DAA8D,CAAC;AAEzH,MAAM,MAAM,iBAAiB,GAAG,SAAS,EAAE,GAAG;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACnD,CAAC;AAUF;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAEhF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAE/E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAqBnF;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAgC3G;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACnC,qBAAqB,CAAC,EAAE,WAAW,GAAG,cAAc,GACrD,qBAAqB,IAAI,WAAW,CAItC;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM;;;;EAYpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,GAAG,SAAS,MAAM,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,QAkBpG;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,WAGvC,CAAC,CAAC,MAAM,CAAC,CAAC,mBAiBzC;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,wBAShG"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.addGetByValue = exports.createIndexedFind = exports.lazy = exports.Decimal = exports.isComplexTypeDefinition = exports.unalias = exports.alias = exports.substringBeforeLast = exports.substringBeforeFirst = exports.splitAtLast = exports.splitAtFirst = exports.TermToTypes = exports.EnumIsFlag = exports.defaultReferences = void 0;
var VocabularyReferences_1 = require("@sap-ux/vocabularies-types/vocabularies/VocabularyReferences");
Object.defineProperty(exports, "defaultReferences", { enumerable: true, get: function () { return VocabularyReferences_1.VocabularyReferences; } });
exports.addGetByValue = exports.createIndexedFind = exports.lazy = exports.Decimal = exports.isComplexTypeDefinition = exports.unalias = exports.alias = exports.substringBeforeLast = exports.substringBeforeFirst = exports.splitAtLast = exports.splitAtFirst = exports.defaultReferences = exports.TermToTypes = exports.EnumIsFlag = void 0;
var EnumIsFlag_1 = require("@sap-ux/vocabularies-types/vocabularies/EnumIsFlag");

@@ -10,2 +8,4 @@ Object.defineProperty(exports, "EnumIsFlag", { enumerable: true, get: function () { return EnumIsFlag_1.EnumIsFlag; } });

Object.defineProperty(exports, "TermToTypes", { enumerable: true, get: function () { return TermToTypes_1.TermToTypes; } });
var VocabularyReferences_1 = require("@sap-ux/vocabularies-types/vocabularies/VocabularyReferences");
Object.defineProperty(exports, "defaultReferences", { enumerable: true, get: function () { return VocabularyReferences_1.VocabularyReferences; } });
function splitAt(string, index) {

@@ -94,9 +94,13 @@ return index < 0 ? [string, ''] : [string.substring(0, index), string.substring(index + 1)];

/**
* Transform an aliased string representation annotation to the unaliased version.
* Transform an aliased string to its unaliased version given a set of references.
*
* @param references currentReferences for the project
* @param aliasedValue the aliased value
* @returns the unaliased string representing the same
* @param references The references to use for unaliasing.
* @param aliasedValue The aliased value
* @returns The equal unaliased string.
*/
function unalias(references, aliasedValue) {
var _a, _b;
if (!aliasedValue) {
return aliasedValue;
}
if (!references.referenceMap) {

@@ -108,18 +112,21 @@ references.referenceMap = references.reduce((map, ref) => {

}
if (!aliasedValue) {
return aliasedValue;
const separators = ['@', '/', '('];
const unaliased = [];
let start = 0;
for (let end = 0, maybeAlias = true; end < aliasedValue.length; end++) {
const char = aliasedValue[end];
if (maybeAlias && char === '.') {
const alias = aliasedValue.substring(start, end);
unaliased.push((_b = (_a = references.referenceMap[alias]) === null || _a === void 0 ? void 0 : _a.namespace) !== null && _b !== void 0 ? _b : alias);
start = end;
maybeAlias = false;
}
if (separators.includes(char)) {
unaliased.push(aliasedValue.substring(start, end + 1));
start = end + 1;
maybeAlias = true;
}
}
const [vocAlias, value] = splitAtFirst(aliasedValue, '.');
const reference = references.referenceMap[vocAlias];
if (reference) {
return `${reference.namespace}.${value}`;
}
else if (aliasedValue.includes('@')) {
// Try to see if it's an annotation Path like to_SalesOrder/@UI.LineItem
const [preAlias, postAlias] = splitAtFirst(aliasedValue, '@');
return `${preAlias}@${unalias(references, postAlias)}`;
}
else {
return aliasedValue;
}
unaliased.push(aliasedValue.substring(start));
return unaliased.join('');
}

@@ -126,0 +133,0 @@ exports.unalias = unalias;

@@ -1,1 +0,1 @@

{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
{
"name": "@sap-ux/annotation-converter",
"version": "0.6.7",
"version": "0.6.8",
"description": "SAP Fiori OData - Annotation converter",

@@ -25,3 +25,3 @@ "repository": {

"clean": "rimraf dist",
"format": "prettier --write '**/*.{js,json,ts,yaml,yml}' --ignore-path ../../.prettierignore",
"format": "prettier **/* --write --ignore-unknown --ignore-path ../../.prettierignore",
"lint": "eslint . --ext .ts",

@@ -28,0 +28,0 @@ "lint:fix": "eslint . --ext .ts --fix",

@@ -6,3 +6,2 @@ import type {

Annotation,
AnnotationList,
AnnotationRecord,

@@ -35,3 +34,2 @@ ArrayWithIndex,

RawV4NavigationProperty,
Reference,
RemoveAnnotationAndType,

@@ -42,2 +40,3 @@ ResolutionTarget,

} from '@sap-ux/vocabularies-types';
import { VocabularyReferences } from '@sap-ux/vocabularies-types/vocabularies/VocabularyReferences';
import {

@@ -56,3 +55,2 @@ addGetByValue,

} from './utils';
import { VocabularyReferences } from '@sap-ux/vocabularies-types/vocabularies/VocabularyReferences';

@@ -200,3 +198,3 @@ /**

if (segment === '' || segment === thisElement.fullyQualifiedName) {
if (segment === '' || converter.unalias(segment) === thisElement.fullyQualifiedName) {
return current;

@@ -265,3 +263,4 @@ }

const action = thisElement.actions[segment];
const actionName = substringBeforeFirst(converter.unalias(segment), '(');
const action = thisElement.actions[actionName];
if (action) {

@@ -606,31 +605,11 @@ current.target = action;

) {
const annotationTerm: any = {
const record: any = {
$Type: parseRecordType(converter, currentTerm, currentTarget, currentProperty, annotationRecord),
fullyQualifiedName: currentFQN,
[ANNOTATION_TARGET]: currentTarget
[ANNOTATION_TARGET]: currentTarget,
__source: currentSource
};
// annotations on the record
lazy(annotationTerm, 'annotations', () => {
// be graceful when resolving annotations on annotations: Sometimes they are referenced directly, sometimes they
// are part of the global annotations list
let annotations;
if (annotationRecord.annotations && annotationRecord.annotations.length > 0) {
annotations = annotationRecord.annotations;
} else {
annotations = converter.rawAnnotationsPerTarget[currentFQN]?.annotations;
}
annotations?.forEach((annotation: any) => {
annotation.target = currentFQN;
annotation.__source = currentSource;
annotation[ANNOTATION_TARGET] = currentTarget;
annotation.fullyQualifiedName = `${currentFQN}@${annotation.term}`;
});
return createAnnotationsObject(converter, annotationTerm, annotations ?? []);
});
const annotationContent = annotationRecord.propertyValues?.reduce((annotationContent, propertyValue) => {
lazy(annotationContent, propertyValue.name, () =>
for (const propertyValue of annotationRecord.propertyValues) {
lazy(record, propertyValue.name, () =>
parseValue(

@@ -646,19 +625,22 @@ converter,

);
}
return annotationContent;
}, annotationTerm);
// annotations on the record
lazy(record, 'annotations', resolveAnnotationsOnAnnotation(converter, annotationRecord, record));
if (isDataFieldWithForAction(annotationContent)) {
lazy(annotationContent, 'ActionTarget', () => {
// try to resolve to a bound action of the annotation target
let actionTarget = currentTarget.actions?.[annotationContent.Action];
if (isDataFieldWithForAction(record)) {
lazy(record, 'ActionTarget', () => {
const actionTargetFQN = converter.unalias(record.Action?.toString());
// (1) Bound action of the annotation target?
let actionTarget = currentTarget.actions?.[actionTargetFQN];
if (!actionTarget) {
// try to find a corresponding unbound action
actionTarget = converter.getConvertedActionImport(annotationContent.Action)?.action;
// (2) ActionImport (= unbound action)?
actionTarget = converter.getConvertedActionImport(actionTargetFQN)?.action;
}
if (!actionTarget) {
// try to find a corresponding bound (!) action
actionTarget = converter.getConvertedAction(annotationContent.Action);
// (3) Bound action of a different EntityType
actionTarget = converter.getConvertedAction(actionTargetFQN);
if (!actionTarget?.isBound) {

@@ -671,3 +653,3 @@ actionTarget = undefined;

converter.logError(
`Unable to resolve the action '${annotationContent.Action}' defined for '${annotationTerm.fullyQualifiedName}'`
`${record.fullyQualifiedName}: Unable to resolve '${record.Action}' ('${actionTargetFQN}')`
);

@@ -678,3 +660,3 @@ }

}
return annotationContent;
return record;
}

@@ -922,3 +904,3 @@

annotation.term = converter.unalias(`${vocAlias}.${vocTerm}`);
annotation.term = converter.unalias(`${vocAlias}.${vocTerm}`, VocabularyReferences);
annotation.qualifier = rawAnnotation.qualifier;

@@ -928,23 +910,3 @@ annotation.__source = (rawAnnotation as any).__source;

try {
lazy(annotation, 'annotations', () => {
const annotationFQN = annotation.fullyQualifiedName;
// be graceful when resolving annotations on annotations: Sometimes they are referenced directly, sometimes they
// are part of the global annotations list
let annotations;
if (rawAnnotation.annotations && rawAnnotation.annotations.length > 0) {
annotations = rawAnnotation.annotations;
} else {
annotations = converter.rawAnnotationsPerTarget[annotationFQN]?.annotations;
}
annotations?.forEach((rawSubAnnotation: any) => {
rawSubAnnotation.target = annotationFQN;
rawSubAnnotation.__source = annotation.__source;
rawSubAnnotation[ANNOTATION_TARGET] = target;
rawSubAnnotation.fullyQualifiedName = `${annotationFQN}@${rawSubAnnotation.term}`;
});
return createAnnotationsObject(converter, annotation, annotations ?? []);
});
lazy(annotation, 'annotations', resolveAnnotationsOnAnnotation(converter, rawAnnotation, annotation));
} catch (e) {

@@ -957,73 +919,62 @@ // not an error: parseRecord() already adds annotations, but the other parseXXX functions don't, so this can happen

function getAnnotationFQN(currentTargetName: string, references: Reference[], annotation: RawAnnotation) {
const annotationFQN = `${currentTargetName}@${unalias(references, annotation.term)}`;
if (annotation.qualifier) {
return `${annotationFQN}#${annotation.qualifier}`;
} else {
return annotationFQN;
}
}
/**
* Merge annotation from different source together by overwriting at the term level.
*
* @param rawMetadata
* @param converter
* @returns the resulting merged annotations
*/
function mergeAnnotations(rawMetadata: RawMetadata): Record<string, AnnotationList> {
const annotationListPerTarget: Record<string, AnnotationList> = {};
Object.keys(rawMetadata.schema.annotations).forEach((annotationSource) => {
rawMetadata.schema.annotations[annotationSource].forEach((annotationList: AnnotationList) => {
const currentTargetName = unalias(rawMetadata.references, annotationList.target) as string;
(annotationList as any).__source = annotationSource;
if (!annotationListPerTarget[currentTargetName]) {
annotationListPerTarget[currentTargetName] = {
annotations: annotationList.annotations.map((annotation: RawAnnotation) => {
(annotation as Annotation).fullyQualifiedName = getAnnotationFQN(
currentTargetName,
rawMetadata.references,
annotation
);
(annotation as any).__source = annotationSource;
function mergeAnnotations(converter: Converter): Record<string, Annotation[]> {
return Object.keys(converter.rawSchema.annotations).reduceRight((annotationsPerTarget, annotationSource) => {
for (const { target: rawTarget, annotations: rawAnnotations } of converter.rawSchema.annotations[
annotationSource
]) {
const target = converter.unalias(rawTarget);
if (!annotationsPerTarget[target]) {
annotationsPerTarget[target] = [];
}
annotationsPerTarget[target].push(
...rawAnnotations
.filter(
(rawAnnotation) =>
!annotationsPerTarget[target].some(
(existingAnnotation) =>
existingAnnotation.term === rawAnnotation.term &&
existingAnnotation.qualifier === rawAnnotation.qualifier
)
)
.map((rawAnnotation) => {
let annotationFQN = `${target}@${converter.unalias(rawAnnotation.term)}`;
if (rawAnnotation.qualifier) {
annotationFQN = `${annotationFQN}#${rawAnnotation.qualifier}`;
}
const annotation = rawAnnotation as Annotation & { __source: string };
annotation.fullyQualifiedName = annotationFQN;
annotation.__source = annotationSource;
return annotation;
}),
target: currentTargetName
};
(annotationListPerTarget[currentTargetName] as any).__source = annotationSource;
} else {
annotationList.annotations.forEach((annotation: RawAnnotation) => {
const findIndex = annotationListPerTarget[currentTargetName].annotations.findIndex(
(referenceAnnotation: RawAnnotation) => {
return (
referenceAnnotation.term === annotation.term &&
referenceAnnotation.qualifier === annotation.qualifier
);
}
);
(annotation as any).__source = annotationSource;
(annotation as Annotation).fullyQualifiedName = getAnnotationFQN(
currentTargetName,
rawMetadata.references,
annotation
);
if (findIndex !== -1) {
annotationListPerTarget[currentTargetName].annotations.splice(findIndex, 1, annotation);
} else {
annotationListPerTarget[currentTargetName].annotations.push(annotation);
}
});
}
});
});
return annotationListPerTarget;
})
);
}
return annotationsPerTarget;
}, {} as Record<string, Annotation[]>);
}
class Converter {
private _rawAnnotationsPerTarget: Record<FullyQualifiedName, AnnotationList>;
get rawAnnotationsPerTarget(): Record<FullyQualifiedName, AnnotationList> {
if (this._rawAnnotationsPerTarget === undefined) {
this._rawAnnotationsPerTarget = mergeAnnotations(this.rawMetadata);
private annotationyByTarget: Record<FullyQualifiedName, Annotation[]>;
/**
* Get preprocessed annotations on the specified target.
*
* @param target The annotation target
* @returns An array of annotations
*/
getAnnotations(target: FullyQualifiedName): Annotation[] {
if (this.annotationyByTarget === undefined) {
this.annotationyByTarget = mergeAnnotations(this);
}
return this._rawAnnotationsPerTarget;
return this.annotationyByTarget[target] ?? [];
}

@@ -1149,3 +1100,3 @@

toDefaultAlias(value: string) {
toDefaultAlias(value: string | undefined) {
const unaliased = unalias(this.rawMetadata.references, value) ?? '';

@@ -1155,4 +1106,4 @@ return alias(VocabularyReferences, unaliased);

unalias(value: string | undefined) {
return unalias(this.rawMetadata.references, value) ?? '';
unalias(value: string | undefined, references = this.rawMetadata.references) {
return unalias(references, value) ?? '';
}

@@ -1210,8 +1161,34 @@ }

rawAnnotationTarget,
nestedAnnotations ??
converter.rawAnnotationsPerTarget[rawAnnotationTarget.fullyQualifiedName]?.annotations ??
[]
nestedAnnotations ?? converter.getAnnotations(rawAnnotationTarget.fullyQualifiedName)
);
}
function resolveAnnotationsOnAnnotation(
converter: Converter,
annotationRecord: AnnotationRecord | RawAnnotation,
annotationTerm: any
) {
return () => {
const currentFQN = annotationTerm.fullyQualifiedName;
// be graceful when resolving annotations on annotations: Sometimes they are referenced directly, sometimes they
// are part of the global annotations list
let annotations;
if (annotationRecord.annotations && annotationRecord.annotations.length > 0) {
annotations = annotationRecord.annotations;
} else {
annotations = converter.getAnnotations(currentFQN);
}
annotations?.forEach((annotation: any) => {
annotation.target = currentFQN;
annotation.__source = annotationTerm.__source;
annotation[ANNOTATION_TARGET] = annotationTerm[ANNOTATION_TARGET];
annotation.fullyQualifiedName = `${currentFQN}@${annotation.term}`;
});
return createAnnotationsObject(converter, annotationTerm, annotations ?? []);
};
}
function createAnnotationsObject(converter: Converter, target: any, rawAnnotations: RawAnnotation[]) {

@@ -1475,20 +1452,20 @@ return rawAnnotations.reduce((vocabularyAliases, annotation) => {

lazy(convertedAction, 'annotations', () => {
// this.is.the.action(on.this.type) --> action: 'this.is.the.action', overload: 'on.this.type'
// this.is.the.action() --> action: 'this.is.the.action', overload: undefined
// this.is.the.action --> action: 'this.is.the.action', overload: undefined
const actionAndOverload = rawAction.fullyQualifiedName.match(/(?<action>[^()]+)(?:\((?<overload>.*)\))?/);
const action = substringBeforeFirst(rawAction.fullyQualifiedName, '(');
let rawAnnotations: RawAnnotation[] = [];
if (actionAndOverload) {
if (actionAndOverload.groups?.overload) {
rawAnnotations = converter.rawAnnotationsPerTarget[rawAction.fullyQualifiedName]?.annotations ?? [];
} else {
rawAnnotations =
converter.rawAnnotationsPerTarget[`${actionAndOverload.groups?.action}()`]?.annotations ?? [];
}
// if the action is unbound (e.g. "myAction"), the annotation target is "myAction()"
const annotationTargetFQN = rawAction.isBound
? rawAction.fullyQualifiedName
: `${rawAction.fullyQualifiedName}()`;
if (actionAndOverload.groups?.action && actionAndOverload.groups?.action !== rawAction.fullyQualifiedName) {
const baseAnnotations =
converter.rawAnnotationsPerTarget[actionAndOverload.groups?.action]?.annotations ?? [];
rawAnnotations = rawAnnotations.concat(baseAnnotations);
const rawAnnotations = converter.getAnnotations(annotationTargetFQN);
const baseAnnotations = converter.getAnnotations(action);
for (const baseAnnotation of baseAnnotations) {
if (
!rawAnnotations.some(
(annotation) =>
annotation.term === baseAnnotation.term && annotation.qualifier === baseAnnotation.qualifier
)
) {
rawAnnotations.push(baseAnnotation);
}

@@ -1495,0 +1472,0 @@ }

export * from './converter';
export * from './utils';
export * from './writeback';
export * from './utils';

@@ -1,5 +0,6 @@

import type { Index, ComplexType, Reference, TypeDefinition, ArrayWithIndex } from '@sap-ux/vocabularies-types';
export { VocabularyReferences as defaultReferences } from '@sap-ux/vocabularies-types/vocabularies/VocabularyReferences';
import type { ArrayWithIndex, ComplexType, Index, Reference, TypeDefinition } from '@sap-ux/vocabularies-types';
export { EnumIsFlag } from '@sap-ux/vocabularies-types/vocabularies/EnumIsFlag';
export { TermToTypes } from '@sap-ux/vocabularies-types/vocabularies/TermToTypes';
export { VocabularyReferences as defaultReferences } from '@sap-ux/vocabularies-types/vocabularies/VocabularyReferences';

@@ -94,9 +95,13 @@ export type ReferencesWithMap = Reference[] & {

/**
* Transform an aliased string representation annotation to the unaliased version.
* Transform an aliased string to its unaliased version given a set of references.
*
* @param references currentReferences for the project
* @param aliasedValue the aliased value
* @returns the unaliased string representing the same
* @param references The references to use for unaliasing.
* @param aliasedValue The aliased value
* @returns The equal unaliased string.
*/
export function unalias(references: ReferencesWithMap, aliasedValue: string | undefined): string | undefined {
if (!aliasedValue) {
return aliasedValue;
}
if (!references.referenceMap) {

@@ -108,16 +113,23 @@ references.referenceMap = references.reduce((map: Record<string, Reference>, ref) => {

}
if (!aliasedValue) {
return aliasedValue;
const separators = ['@', '/', '('];
const unaliased: string[] = [];
let start = 0;
for (let end = 0, maybeAlias = true; end < aliasedValue.length; end++) {
const char = aliasedValue[end];
if (maybeAlias && char === '.') {
const alias = aliasedValue.substring(start, end);
unaliased.push(references.referenceMap[alias]?.namespace ?? alias);
start = end;
maybeAlias = false;
}
if (separators.includes(char)) {
unaliased.push(aliasedValue.substring(start, end + 1));
start = end + 1;
maybeAlias = true;
}
}
const [vocAlias, value] = splitAtFirst(aliasedValue, '.');
const reference = references.referenceMap[vocAlias];
if (reference) {
return `${reference.namespace}.${value}`;
} else if (aliasedValue.includes('@')) {
// Try to see if it's an annotation Path like to_SalesOrder/@UI.LineItem
const [preAlias, postAlias] = splitAtFirst(aliasedValue, '@');
return `${preAlias}@${unalias(references, postAlias)}`;
} else {
return aliasedValue;
}
unaliased.push(aliasedValue.substring(start));
return unaliased.join('');
}

@@ -124,0 +136,0 @@