@sap-ux/fiori-annotation-api 0.1.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.
Files changed (211) hide show
  1. package/LICENSE +201 -0
  2. package/Readme.md +35 -0
  3. package/dist/avt/annotations.d.ts +72 -0
  4. package/dist/avt/annotations.d.ts.map +1 -0
  5. package/dist/avt/annotations.js +508 -0
  6. package/dist/avt/annotations.js.map +1 -0
  7. package/dist/avt/expressions.d.ts +13 -0
  8. package/dist/avt/expressions.d.ts.map +1 -0
  9. package/dist/avt/expressions.js +34 -0
  10. package/dist/avt/expressions.js.map +1 -0
  11. package/dist/avt/find.d.ts +39 -0
  12. package/dist/avt/find.d.ts.map +1 -0
  13. package/dist/avt/find.js +130 -0
  14. package/dist/avt/find.js.map +1 -0
  15. package/dist/avt/index.d.ts +9 -0
  16. package/dist/avt/index.d.ts.map +1 -0
  17. package/dist/avt/index.js +32 -0
  18. package/dist/avt/index.js.map +1 -0
  19. package/dist/avt/metadata.d.ts +10 -0
  20. package/dist/avt/metadata.d.ts.map +1 -0
  21. package/dist/avt/metadata.js +346 -0
  22. package/dist/avt/metadata.js.map +1 -0
  23. package/dist/avt/pointer.d.ts +12 -0
  24. package/dist/avt/pointer.d.ts.map +1 -0
  25. package/dist/avt/pointer.js +188 -0
  26. package/dist/avt/pointer.js.map +1 -0
  27. package/dist/avt/to-internal.d.ts +81 -0
  28. package/dist/avt/to-internal.d.ts.map +1 -0
  29. package/dist/avt/to-internal.js +340 -0
  30. package/dist/avt/to-internal.js.map +1 -0
  31. package/dist/avt/types.d.ts +3 -0
  32. package/dist/avt/types.d.ts.map +1 -0
  33. package/dist/avt/types.js +3 -0
  34. package/dist/avt/types.js.map +1 -0
  35. package/dist/avt/utils.d.ts +61 -0
  36. package/dist/avt/utils.d.ts.map +1 -0
  37. package/dist/avt/utils.js +87 -0
  38. package/dist/avt/utils.js.map +1 -0
  39. package/dist/cds/adapter.d.ts +112 -0
  40. package/dist/cds/adapter.d.ts.map +1 -0
  41. package/dist/cds/adapter.js +703 -0
  42. package/dist/cds/adapter.js.map +1 -0
  43. package/dist/cds/cds-compiler-tokens.d.ts +30 -0
  44. package/dist/cds/cds-compiler-tokens.d.ts.map +1 -0
  45. package/dist/cds/cds-compiler-tokens.js +57 -0
  46. package/dist/cds/cds-compiler-tokens.js.map +1 -0
  47. package/dist/cds/change.d.ts +347 -0
  48. package/dist/cds/change.d.ts.map +1 -0
  49. package/dist/cds/change.js +232 -0
  50. package/dist/cds/change.js.map +1 -0
  51. package/dist/cds/comments.d.ts +15 -0
  52. package/dist/cds/comments.d.ts.map +1 -0
  53. package/dist/cds/comments.js +56 -0
  54. package/dist/cds/comments.js.map +1 -0
  55. package/dist/cds/deletion.d.ts +59 -0
  56. package/dist/cds/deletion.d.ts.map +1 -0
  57. package/dist/cds/deletion.js +821 -0
  58. package/dist/cds/deletion.js.map +1 -0
  59. package/dist/cds/document.d.ts +52 -0
  60. package/dist/cds/document.d.ts.map +1 -0
  61. package/dist/cds/document.js +98 -0
  62. package/dist/cds/document.js.map +1 -0
  63. package/dist/cds/indent.d.ts +20 -0
  64. package/dist/cds/indent.d.ts.map +1 -0
  65. package/dist/cds/indent.js +86 -0
  66. package/dist/cds/indent.js.map +1 -0
  67. package/dist/cds/index.d.ts +3 -0
  68. package/dist/cds/index.d.ts.map +1 -0
  69. package/dist/cds/index.js +21 -0
  70. package/dist/cds/index.js.map +1 -0
  71. package/dist/cds/pointer.d.ts +23 -0
  72. package/dist/cds/pointer.d.ts.map +1 -0
  73. package/dist/cds/pointer.js +438 -0
  74. package/dist/cds/pointer.js.map +1 -0
  75. package/dist/cds/preprocessor.d.ts +12 -0
  76. package/dist/cds/preprocessor.d.ts.map +1 -0
  77. package/dist/cds/preprocessor.js +338 -0
  78. package/dist/cds/preprocessor.js.map +1 -0
  79. package/dist/cds/references.d.ts +35 -0
  80. package/dist/cds/references.d.ts.map +1 -0
  81. package/dist/cds/references.js +413 -0
  82. package/dist/cds/references.js.map +1 -0
  83. package/dist/cds/service.d.ts +11 -0
  84. package/dist/cds/service.d.ts.map +1 -0
  85. package/dist/cds/service.js +37 -0
  86. package/dist/cds/service.js.map +1 -0
  87. package/dist/cds/utils.d.ts +35 -0
  88. package/dist/cds/utils.d.ts.map +1 -0
  89. package/dist/cds/utils.js +75 -0
  90. package/dist/cds/utils.js.map +1 -0
  91. package/dist/cds/writer.d.ts +104 -0
  92. package/dist/cds/writer.d.ts.map +1 -0
  93. package/dist/cds/writer.js +1086 -0
  94. package/dist/cds/writer.js.map +1 -0
  95. package/dist/change-converter.d.ts +54 -0
  96. package/dist/change-converter.d.ts.map +1 -0
  97. package/dist/change-converter.js +639 -0
  98. package/dist/change-converter.js.map +1 -0
  99. package/dist/error.d.ts +35 -0
  100. package/dist/error.d.ts.map +1 -0
  101. package/dist/error.js +64 -0
  102. package/dist/error.js.map +1 -0
  103. package/dist/fiori-service.d.ts +130 -0
  104. package/dist/fiori-service.d.ts.map +1 -0
  105. package/dist/fiori-service.js +362 -0
  106. package/dist/fiori-service.js.map +1 -0
  107. package/dist/index.d.ts +5 -0
  108. package/dist/index.d.ts.map +1 -0
  109. package/dist/index.js +25 -0
  110. package/dist/index.js.map +1 -0
  111. package/dist/protected.d.ts +3 -0
  112. package/dist/protected.d.ts.map +1 -0
  113. package/dist/protected.js +11 -0
  114. package/dist/protected.js.map +1 -0
  115. package/dist/types/adapter.d.ts +46 -0
  116. package/dist/types/adapter.d.ts.map +1 -0
  117. package/dist/types/adapter.js +3 -0
  118. package/dist/types/adapter.js.map +1 -0
  119. package/dist/types/change.d.ts +187 -0
  120. package/dist/types/change.d.ts.map +1 -0
  121. package/dist/types/change.js +52 -0
  122. package/dist/types/change.js.map +1 -0
  123. package/dist/types/index.d.ts +7 -0
  124. package/dist/types/index.d.ts.map +1 -0
  125. package/dist/types/index.js +33 -0
  126. package/dist/types/index.js.map +1 -0
  127. package/dist/types/internal-change.d.ts +98 -0
  128. package/dist/types/internal-change.d.ts.map +1 -0
  129. package/dist/types/internal-change.js +18 -0
  130. package/dist/types/internal-change.js.map +1 -0
  131. package/dist/types/project-info.d.ts +6 -0
  132. package/dist/types/project-info.d.ts.map +1 -0
  133. package/dist/types/project-info.js +3 -0
  134. package/dist/types/project-info.js.map +1 -0
  135. package/dist/types/service.d.ts +27 -0
  136. package/dist/types/service.d.ts.map +1 -0
  137. package/dist/types/service.js +3 -0
  138. package/dist/types/service.js.map +1 -0
  139. package/dist/types/text-file.d.ts +12 -0
  140. package/dist/types/text-file.d.ts.map +1 -0
  141. package/dist/types/text-file.js +3 -0
  142. package/dist/types/text-file.js.map +1 -0
  143. package/dist/utils/constants.d.ts +2 -0
  144. package/dist/utils/constants.d.ts.map +1 -0
  145. package/dist/utils/constants.js +24 -0
  146. package/dist/utils/constants.js.map +1 -0
  147. package/dist/utils/indent.d.ts +10 -0
  148. package/dist/utils/indent.d.ts.map +1 -0
  149. package/dist/utils/indent.js +36 -0
  150. package/dist/utils/indent.js.map +1 -0
  151. package/dist/utils/index.d.ts +7 -0
  152. package/dist/utils/index.d.ts.map +1 -0
  153. package/dist/utils/index.js +16 -0
  154. package/dist/utils/index.js.map +1 -0
  155. package/dist/utils/path.d.ts +8 -0
  156. package/dist/utils/path.d.ts.map +1 -0
  157. package/dist/utils/path.js +31 -0
  158. package/dist/utils/path.js.map +1 -0
  159. package/dist/utils/pointer.d.ts +11 -0
  160. package/dist/utils/pointer.d.ts.map +1 -0
  161. package/dist/utils/pointer.js +26 -0
  162. package/dist/utils/pointer.js.map +1 -0
  163. package/dist/utils/reference.d.ts +10 -0
  164. package/dist/utils/reference.d.ts.map +1 -0
  165. package/dist/utils/reference.js +20 -0
  166. package/dist/utils/reference.js.map +1 -0
  167. package/dist/utils/text-edits.d.ts +12 -0
  168. package/dist/utils/text-edits.d.ts.map +1 -0
  169. package/dist/utils/text-edits.js +29 -0
  170. package/dist/utils/text-edits.js.map +1 -0
  171. package/dist/vocabularies.d.ts +11 -0
  172. package/dist/vocabularies.d.ts.map +1 -0
  173. package/dist/vocabularies.js +26 -0
  174. package/dist/vocabularies.js.map +1 -0
  175. package/dist/xml/adapter.d.ts +85 -0
  176. package/dist/xml/adapter.d.ts.map +1 -0
  177. package/dist/xml/adapter.js +579 -0
  178. package/dist/xml/adapter.js.map +1 -0
  179. package/dist/xml/changes.d.ts +117 -0
  180. package/dist/xml/changes.d.ts.map +1 -0
  181. package/dist/xml/changes.js +34 -0
  182. package/dist/xml/changes.js.map +1 -0
  183. package/dist/xml/comments.d.ts +17 -0
  184. package/dist/xml/comments.d.ts.map +1 -0
  185. package/dist/xml/comments.js +49 -0
  186. package/dist/xml/comments.js.map +1 -0
  187. package/dist/xml/document.d.ts +11 -0
  188. package/dist/xml/document.d.ts.map +1 -0
  189. package/dist/xml/document.js +3 -0
  190. package/dist/xml/document.js.map +1 -0
  191. package/dist/xml/index.d.ts +3 -0
  192. package/dist/xml/index.d.ts.map +1 -0
  193. package/dist/xml/index.js +8 -0
  194. package/dist/xml/index.js.map +1 -0
  195. package/dist/xml/pointer.d.ts +10 -0
  196. package/dist/xml/pointer.d.ts.map +1 -0
  197. package/dist/xml/pointer.js +29 -0
  198. package/dist/xml/pointer.js.map +1 -0
  199. package/dist/xml/references.d.ts +9 -0
  200. package/dist/xml/references.d.ts.map +1 -0
  201. package/dist/xml/references.js +87 -0
  202. package/dist/xml/references.js.map +1 -0
  203. package/dist/xml/service.d.ts +12 -0
  204. package/dist/xml/service.d.ts.map +1 -0
  205. package/dist/xml/service.js +55 -0
  206. package/dist/xml/service.js.map +1 -0
  207. package/dist/xml/writer.d.ts +39 -0
  208. package/dist/xml/writer.d.ts.map +1 -0
  209. package/dist/xml/writer.js +855 -0
  210. package/dist/xml/writer.js.map +1 -0
  211. package/package.json +47 -0
@@ -0,0 +1,117 @@
1
+ import type { Element, ElementChild } from '@sap-ux/odata-annotation-core-types';
2
+ import type { JsonPointer } from '../types';
3
+ export declare const INSERT_ELEMENT = "insert-element";
4
+ export interface InsertElement {
5
+ type: typeof INSERT_ELEMENT;
6
+ /**
7
+ * This must resolve to an element.
8
+ */
9
+ pointer: JsonPointer;
10
+ element: Element;
11
+ /**
12
+ * Before which child element the new element should be inserted. If omitted will be added at the end.
13
+ */
14
+ index?: number;
15
+ }
16
+ export declare const REPLACE_ELEMENT = "replace-element";
17
+ export interface ReplaceElement {
18
+ type: typeof REPLACE_ELEMENT;
19
+ /**
20
+ * This must resolve to an element.
21
+ */
22
+ pointer: JsonPointer;
23
+ newElement: Element;
24
+ }
25
+ export declare const REPLACE_ELEMENT_CONTENT = "replace-element-content";
26
+ export interface ReplaceElementContent {
27
+ type: typeof REPLACE_ELEMENT_CONTENT;
28
+ /**
29
+ * This must resolve to an element.
30
+ */
31
+ pointer: JsonPointer;
32
+ newValue: ElementChild[];
33
+ }
34
+ export declare const UPDATE_ELEMENT_NAME = "update-element-name";
35
+ export interface UpdateElementName {
36
+ type: typeof UPDATE_ELEMENT_NAME;
37
+ /**
38
+ * This must resolve to an element.
39
+ */
40
+ pointer: JsonPointer;
41
+ newName: string;
42
+ }
43
+ export declare const DELETE_ELEMENT = "delete-element";
44
+ export interface DeleteElement {
45
+ type: typeof DELETE_ELEMENT;
46
+ /**
47
+ * This must resolve to an element.
48
+ */
49
+ pointer: JsonPointer;
50
+ }
51
+ export declare const INSERT_ATTRIBUTE = "insert-attribute";
52
+ export interface InsertAttribute {
53
+ type: typeof INSERT_ATTRIBUTE;
54
+ /**
55
+ * This must resolve to an element.
56
+ */
57
+ pointer: JsonPointer;
58
+ name: string;
59
+ value: string;
60
+ /**
61
+ * Index of an attribute before which new value will be added. If omitted will be added at the end.
62
+ */
63
+ index?: number;
64
+ }
65
+ export declare const UPDATE_ATTRIBUTE_NAME = "update-attribute-name";
66
+ export interface UpdateAttributeName {
67
+ type: typeof UPDATE_ATTRIBUTE_NAME;
68
+ /**
69
+ * This must resolve to an attribute.
70
+ */
71
+ pointer: JsonPointer;
72
+ newName: string;
73
+ }
74
+ export declare const UPDATE_ATTRIBUTE_VALUE = "update-attribute-value";
75
+ export interface UpdateAttributeValue {
76
+ type: typeof UPDATE_ATTRIBUTE_VALUE;
77
+ /**
78
+ * This must resolve to an attribute.
79
+ */
80
+ pointer: JsonPointer;
81
+ newValue: string;
82
+ }
83
+ export declare const DELETE_ATTRIBUTE = "delete-attribute";
84
+ export interface DeleteAttribute {
85
+ type: typeof DELETE_ATTRIBUTE;
86
+ /**
87
+ * This must resolve to an attribute.
88
+ */
89
+ pointer: JsonPointer;
90
+ }
91
+ export declare const MOVE_COLLECTION_VALUE = "move-collection-value";
92
+ export interface MoveCollectionValue {
93
+ type: typeof MOVE_COLLECTION_VALUE;
94
+ /**
95
+ * move before index.
96
+ */
97
+ index?: number;
98
+ /**
99
+ * Array of eg: collection.
100
+ */
101
+ fromPointers: JsonPointer[];
102
+ /**
103
+ * This must resolve to container eg: collection.
104
+ */
105
+ pointer: JsonPointer;
106
+ }
107
+ /**
108
+ * Creates {@link InsertElement} change.
109
+ *
110
+ * @param pointer - Pointer to the element.
111
+ * @param element - Value to be inserted.
112
+ * @param index - Position before which element should the new value be inserted.
113
+ * @returns InsertElement change object.
114
+ */
115
+ export declare function insertElement(pointer: string, element: Element, index?: number): InsertElement;
116
+ export type XMLDocumentChange = InsertElement | UpdateElementName | DeleteElement | ReplaceElement | ReplaceElementContent | InsertAttribute | UpdateAttributeName | UpdateAttributeValue | DeleteAttribute | MoveCollectionValue;
117
+ //# sourceMappingURL=changes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../../src/xml/changes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.insertElement = exports.MOVE_COLLECTION_VALUE = exports.DELETE_ATTRIBUTE = exports.UPDATE_ATTRIBUTE_VALUE = exports.UPDATE_ATTRIBUTE_NAME = exports.INSERT_ATTRIBUTE = exports.DELETE_ELEMENT = exports.UPDATE_ELEMENT_NAME = exports.REPLACE_ELEMENT_CONTENT = exports.REPLACE_ELEMENT = exports.INSERT_ELEMENT = void 0;
4
+ exports.INSERT_ELEMENT = 'insert-element';
5
+ exports.REPLACE_ELEMENT = 'replace-element';
6
+ exports.REPLACE_ELEMENT_CONTENT = 'replace-element-content';
7
+ exports.UPDATE_ELEMENT_NAME = 'update-element-name';
8
+ exports.DELETE_ELEMENT = 'delete-element';
9
+ exports.INSERT_ATTRIBUTE = 'insert-attribute';
10
+ exports.UPDATE_ATTRIBUTE_NAME = 'update-attribute-name';
11
+ exports.UPDATE_ATTRIBUTE_VALUE = 'update-attribute-value';
12
+ exports.DELETE_ATTRIBUTE = 'delete-attribute';
13
+ exports.MOVE_COLLECTION_VALUE = 'move-collection-value';
14
+ /**
15
+ * Creates {@link InsertElement} change.
16
+ *
17
+ * @param pointer - Pointer to the element.
18
+ * @param element - Value to be inserted.
19
+ * @param index - Position before which element should the new value be inserted.
20
+ * @returns InsertElement change object.
21
+ */
22
+ function insertElement(pointer, element, index) {
23
+ const change = {
24
+ type: 'insert-element',
25
+ pointer,
26
+ element
27
+ };
28
+ if (index !== undefined) {
29
+ change.index = index;
30
+ }
31
+ return change;
32
+ }
33
+ exports.insertElement = insertElement;
34
+ //# sourceMappingURL=changes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changes.js","sourceRoot":"","sources":["../../src/xml/changes.ts"],"names":[],"mappings":";;;AAIa,QAAA,cAAc,GAAG,gBAAgB,CAAC;AAclC,QAAA,eAAe,GAAG,iBAAiB,CAAC;AAUpC,QAAA,uBAAuB,GAAG,yBAAyB,CAAC;AAUpD,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAU5C,QAAA,cAAc,GAAG,gBAAgB,CAAC;AASlC,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AAgBtC,QAAA,qBAAqB,GAAG,uBAAuB,CAAC;AAWhD,QAAA,sBAAsB,GAAG,wBAAwB,CAAC;AAUlD,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AAStC,QAAA,qBAAqB,GAAG,uBAAuB,CAAC;AAiB7D;;;;;;;GAOG;AACH,SAAgB,aAAa,CAAC,OAAe,EAAE,OAAgB,EAAE,KAAc;IAC3E,MAAM,MAAM,GAAkB;QAC1B,IAAI,EAAE,gBAAgB;QACtB,OAAO;QACP,OAAO;KACV,CAAC;IACF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAVD,sCAUC"}
@@ -0,0 +1,17 @@
1
+ import { Range } from '@sap-ux/odata-annotation-core-types';
2
+ import type { parse } from '@xml-tools/parser';
3
+ export interface Comment {
4
+ type: 'comment';
5
+ value: string;
6
+ range: Range;
7
+ }
8
+ type TokenVector = ReturnType<typeof parse>['tokenVector'];
9
+ /**
10
+ * Extracts comment tokens from all the tokens in document.
11
+ *
12
+ * @param tokenVector - XML Tokens.
13
+ * @returns All the comments in the document.
14
+ */
15
+ export declare function collectComments(tokenVector: TokenVector): Comment[];
16
+ export {};
17
+ //# sourceMappingURL=comments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/xml/comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;CAChB;AACD,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,EAAE,CAkBnE"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.collectComments = void 0;
4
+ const odata_annotation_core_types_1 = require("@sap-ux/odata-annotation-core-types");
5
+ /**
6
+ * Extracts comment tokens from all the tokens in document.
7
+ *
8
+ * @param tokenVector - XML Tokens.
9
+ * @returns All the comments in the document.
10
+ */
11
+ function collectComments(tokenVector) {
12
+ const comments = [];
13
+ for (const token of tokenVector) {
14
+ // check for comment tokens
15
+ if (token.tokenTypeIdx !== 3) {
16
+ continue;
17
+ }
18
+ const range = getTokenRange(token);
19
+ if (range) {
20
+ comments.push({
21
+ type: 'comment',
22
+ value: token.image,
23
+ range
24
+ });
25
+ }
26
+ }
27
+ return comments;
28
+ }
29
+ exports.collectComments = collectComments;
30
+ /**
31
+ * Converts token ranges where lines and columns start with 1.
32
+ *
33
+ * @param token - XML Tokens.
34
+ * @returns Range where lines and columns start with 0.
35
+ */
36
+ function getTokenRange(token) {
37
+ var _a, _b, _c, _d;
38
+ const startLine = (_a = token.startLine) !== null && _a !== void 0 ? _a : -1;
39
+ const startCharacter = (_b = token.startColumn) !== null && _b !== void 0 ? _b : -1;
40
+ const endLine = (_c = token.endLine) !== null && _c !== void 0 ? _c : -1;
41
+ const endCharacter = (_d = token.endColumn) !== null && _d !== void 0 ? _d : -1;
42
+ if (startLine === -1 || startCharacter === -1 || endLine === -1 || endCharacter === -1) {
43
+ return undefined;
44
+ }
45
+ // tokens use 1 based counting system
46
+ // end character is off by one
47
+ return odata_annotation_core_types_1.Range.create(startLine - 1, startCharacter - 1, endLine - 1, endCharacter);
48
+ }
49
+ //# sourceMappingURL=comments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/xml/comments.ts"],"names":[],"mappings":";;;AAAA,qFAA4D;AAU5D;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,WAAwB;IACpD,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAC9B,2BAA2B;QAC3B,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;YAC3B,SAAS;QACb,CAAC;QAED,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,KAAK,EAAE,CAAC;YACR,QAAQ,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK;aACR,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAlBD,0CAkBC;AACD;;;;;GAKG;AACH,SAAS,aAAa,CAAC,KAA0B;;IAC7C,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,CAAC,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,MAAA,KAAK,CAAC,WAAW,mCAAI,CAAC,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAA,KAAK,CAAC,OAAO,mCAAI,CAAC,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,CAAC,CAAC,CAAC;IAE3C,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,cAAc,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;QACrF,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,qCAAqC;IACrC,8BAA8B;IAC9B,OAAO,mCAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,cAAc,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;AACtF,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { AnnotationFile } from '@sap-ux/odata-annotation-core-types';
2
+ import type { XMLDocument } from '@xml-tools/ast';
3
+ import type { Comment } from './comments';
4
+ export interface Document {
5
+ uri: string;
6
+ ast: XMLDocument;
7
+ comments: Comment[];
8
+ annotationFile: AnnotationFile;
9
+ usedNamespaces: Set<string>;
10
+ }
11
+ //# sourceMappingURL=document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/xml/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,QAAQ;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC/B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/xml/document.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { XMLAnnotationServiceAdapter } from './adapter';
2
+ export { getLocalEDMXService } from './service';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/xml/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLocalEDMXService = exports.XMLAnnotationServiceAdapter = void 0;
4
+ var adapter_1 = require("./adapter");
5
+ Object.defineProperty(exports, "XMLAnnotationServiceAdapter", { enumerable: true, get: function () { return adapter_1.XMLAnnotationServiceAdapter; } });
6
+ var service_1 = require("./service");
7
+ Object.defineProperty(exports, "getLocalEDMXService", { enumerable: true, get: function () { return service_1.getLocalEDMXService; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/xml/index.ts"],"names":[],"mappings":";;;AAAA,qCAAwD;AAA/C,sHAAA,2BAA2B,OAAA;AACpC,qCAAgD;AAAvC,8GAAA,mBAAmB,OAAA"}
@@ -0,0 +1,10 @@
1
+ import type { XMLAstNode, XMLDocument } from '@xml-tools/ast';
2
+ /**
3
+ * Returns node matching the pointer.
4
+ *
5
+ * @param document - XML document.
6
+ * @param pointer - Pointer identifying a specific node in the document.
7
+ * @returns Node matching the pointer if it exists.
8
+ */
9
+ export declare function getNodeFromPointer(document: XMLDocument, pointer: string): XMLAstNode | undefined;
10
+ //# sourceMappingURL=pointer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../src/xml/pointer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE9D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAgBjG"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getNodeFromPointer = void 0;
4
+ /**
5
+ * Returns node matching the pointer.
6
+ *
7
+ * @param document - XML document.
8
+ * @param pointer - Pointer identifying a specific node in the document.
9
+ * @returns Node matching the pointer if it exists.
10
+ */
11
+ function getNodeFromPointer(document, pointer) {
12
+ const segments = pointer.slice(1).split('/');
13
+ if (segments.length === 0) {
14
+ return undefined;
15
+ }
16
+ let node = document;
17
+ for (const segment of segments) {
18
+ const next = node[segment];
19
+ if (next) {
20
+ node = next;
21
+ }
22
+ else {
23
+ return undefined;
24
+ }
25
+ }
26
+ return node;
27
+ }
28
+ exports.getNodeFromPointer = getNodeFromPointer;
29
+ //# sourceMappingURL=pointer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pointer.js","sourceRoot":"","sources":["../../src/xml/pointer.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,QAAqB,EAAE,OAAe;IACrE,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE7C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,IAAI,GAAe,QAAQ,CAAC;IAChC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,GAA4B,IAAiD,CAAC,OAAO,CAAC,CAAC;QACjG,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,GAAG,IAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACJ,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAhBD,gDAgBC"}
@@ -0,0 +1,9 @@
1
+ import type { AnyNode } from '@sap-ux/odata-annotation-core-types';
2
+ /**
3
+ * Collects namespaces that are used in the subtree of the document.
4
+ *
5
+ * @param element - Subtree root element.
6
+ * @param namespacesOrAliases - Set to which add used namespaces or aliases.
7
+ */
8
+ export declare function collectUsedNamespaces(element: AnyNode, namespacesOrAliases: Set<string>): void;
9
+ //# sourceMappingURL=references.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../src/xml/references.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,qCAAqC,CAAC;AAKtF;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAwB9F"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.collectUsedNamespaces = void 0;
4
+ const odata_annotation_core_types_1 = require("@sap-ux/odata-annotation-core-types");
5
+ const odata_annotation_core_1 = require("@sap-ux/odata-annotation-core");
6
+ /**
7
+ * Collects namespaces that are used in the subtree of the document.
8
+ *
9
+ * @param element - Subtree root element.
10
+ * @param namespacesOrAliases - Set to which add used namespaces or aliases.
11
+ */
12
+ function collectUsedNamespaces(element, namespacesOrAliases) {
13
+ switch (element.type) {
14
+ case odata_annotation_core_types_1.ANNOTATION_FILE_TYPE: {
15
+ for (const target of element.targets) {
16
+ collectUsedNamespaces(target, namespacesOrAliases);
17
+ }
18
+ break;
19
+ }
20
+ case odata_annotation_core_types_1.TARGET_TYPE: {
21
+ if (element.name) {
22
+ processPath(element.name, namespacesOrAliases);
23
+ }
24
+ for (const term of element.terms) {
25
+ collectUsedNamespaces(term, namespacesOrAliases);
26
+ }
27
+ break;
28
+ }
29
+ case odata_annotation_core_types_1.ELEMENT_TYPE: {
30
+ processElement(element, namespacesOrAliases);
31
+ break;
32
+ }
33
+ default:
34
+ break;
35
+ }
36
+ }
37
+ exports.collectUsedNamespaces = collectUsedNamespaces;
38
+ const PATH_LIKE_VALUES = ["Path" /* Edm.Path */, "PropertyPath" /* Edm.PropertyPath */, "NavigationPropertyPath" /* Edm.NavigationPropertyPath */, "AnnotationPath" /* Edm.AnnotationPath */];
39
+ function processElement(element, namespacesOrAliases) {
40
+ if (element.name === "Annotation" /* Edm.Annotation */) {
41
+ const term = element.attributes["Term" /* Edm.Term */];
42
+ if (term === null || term === void 0 ? void 0 : term.value) {
43
+ processPath(term.value, namespacesOrAliases);
44
+ }
45
+ }
46
+ if (element.name === "Record" /* Edm.Record */) {
47
+ const type = element.attributes["Type" /* Edm.Type */];
48
+ if (type === null || type === void 0 ? void 0 : type.value) {
49
+ processPath(type.value, namespacesOrAliases);
50
+ }
51
+ }
52
+ if (element.name === "PropertyValue" /* Edm.PropertyValue */ || element.name === "Annotation" /* Edm.Annotation */) {
53
+ const type = element.attributes["EnumMember" /* Edm.EnumMember */];
54
+ if (type === null || type === void 0 ? void 0 : type.value) {
55
+ processPath(type.value, namespacesOrAliases);
56
+ }
57
+ }
58
+ processPathLikeElement(element, namespacesOrAliases);
59
+ }
60
+ function processPathLikeElement(element, namespacesOrAliases) {
61
+ if (PATH_LIKE_VALUES.includes(element.name)) {
62
+ const textNode = element.content.find((node) => node.type === odata_annotation_core_types_1.TEXT_TYPE);
63
+ if (textNode) {
64
+ processPath(textNode.text, namespacesOrAliases);
65
+ }
66
+ }
67
+ else {
68
+ for (const attributeName of PATH_LIKE_VALUES) {
69
+ const attribute = element.attributes[attributeName];
70
+ if (attribute === null || attribute === void 0 ? void 0 : attribute.value) {
71
+ processPath(attribute.value, namespacesOrAliases);
72
+ }
73
+ }
74
+ for (const child of element.content) {
75
+ collectUsedNamespaces(child, namespacesOrAliases);
76
+ }
77
+ }
78
+ }
79
+ function processPath(rawPath, namespacesOrAliases) {
80
+ const path = (0, odata_annotation_core_1.parsePath)(rawPath);
81
+ for (const segment of path.segments) {
82
+ if (segment.namespaceOrAlias) {
83
+ namespacesOrAliases.add(segment.namespaceOrAlias);
84
+ }
85
+ }
86
+ }
87
+ //# sourceMappingURL=references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references.js","sourceRoot":"","sources":["../../src/xml/references.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { Project } from '@sap-ux/project-access';
2
+ import type { LocalEDMXService } from '../types';
3
+ /**
4
+ * Creates local EDMX service structure.
5
+ *
6
+ * @param project - Project structure.
7
+ * @param serviceName - Name of the service that is specified in manifest.
8
+ * @param appName - Name of the application.
9
+ * @returns Service structure.
10
+ */
11
+ export declare function getLocalEDMXService(project: Project, serviceName: string, appName?: string): LocalEDMXService;
12
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/xml/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,KAAK,EAAY,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE3D;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAkC7G"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLocalEDMXService = void 0;
4
+ const url_1 = require("url");
5
+ /**
6
+ * Creates local EDMX service structure.
7
+ *
8
+ * @param project - Project structure.
9
+ * @param serviceName - Name of the service that is specified in manifest.
10
+ * @param appName - Name of the application.
11
+ * @returns Service structure.
12
+ */
13
+ function getLocalEDMXService(project, serviceName, appName) {
14
+ var _a, _b, _c, _d;
15
+ // find app - use first app if no appName is provided or app with such name doesn't exist
16
+ const app = project.apps[adjustAppNameByProjectData(appName, project)];
17
+ const service = app === null || app === void 0 ? void 0 : app.services[serviceName];
18
+ if (!(service === null || service === void 0 ? void 0 : service.local)) {
19
+ // We can not continue without metadata, stop here.
20
+ throw new Error(`Metadata file for service ${serviceName} in app ${appName} is not found!`);
21
+ }
22
+ const metadataFilePath = (_a = service.local) !== null && _a !== void 0 ? _a : '';
23
+ const metadataFileUri = (0, url_1.pathToFileURL)(metadataFilePath).toString();
24
+ const metadataFile = { uri: metadataFileUri, isReadOnly: true };
25
+ // Note: Currently multiple backend annotation files are not supported.
26
+ const serviceAnnotations = (_b = service === null || service === void 0 ? void 0 : service.annotations) !== null && _b !== void 0 ? _b : [];
27
+ const uris = serviceAnnotations.map((item) => { var _a; return (0, url_1.pathToFileURL)((_a = item.local) !== null && _a !== void 0 ? _a : '').toString(); });
28
+ const backendAnnotationFileIdx = serviceAnnotations.findIndex((annotation, idx) => typeof annotation.local === 'string' &&
29
+ typeof annotation.uri === 'string' &&
30
+ !uris[idx].endsWith(annotation.uri));
31
+ const backendAnnotationFileUri = (_c = uris[backendAnnotationFileIdx]) !== null && _c !== void 0 ? _c : '';
32
+ const annotationFiles = uris.map((uri) => {
33
+ const isReadOnly = uri === backendAnnotationFileUri;
34
+ return { uri, isReadOnly };
35
+ });
36
+ return {
37
+ type: 'local-edmx',
38
+ odataVersion: (_d = service.odataVersion) !== null && _d !== void 0 ? _d : '2.0',
39
+ metadataFile,
40
+ annotationFiles
41
+ };
42
+ }
43
+ exports.getLocalEDMXService = getLocalEDMXService;
44
+ function adjustAppNameByProjectData(requestedAppName, project) {
45
+ if (requestedAppName && project.apps[requestedAppName]) {
46
+ return requestedAppName;
47
+ }
48
+ else if (project.apps['']) {
49
+ return '';
50
+ }
51
+ else {
52
+ return Object.keys(project.apps)[0] || '';
53
+ }
54
+ }
55
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/xml/service.ts"],"names":[],"mappings":";;;AAAA,6BAAoC;AAMpC;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,OAAgB,EAAE,WAAmB,EAAE,OAAgB;;IACvF,yFAAyF;IACzF,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE3C,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAA,EAAE,CAAC;QAClB,mDAAmD;QACnD,MAAM,IAAI,KAAK,CAAC,6BAA6B,WAAW,WAAW,OAAO,gBAAgB,CAAC,CAAC;IAChG,CAAC;IACD,MAAM,gBAAgB,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,EAAE,CAAC;IAC7C,MAAM,eAAe,GAAG,IAAA,mBAAa,EAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC;IACnE,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAEhE,uEAAuE;IACvE,MAAM,kBAAkB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,EAAE,CAAC;IACtD,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,IAAA,mBAAa,EAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA,EAAA,CAAC,CAAC;IAC1F,MAAM,wBAAwB,GAAG,kBAAkB,CAAC,SAAS,CACzD,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,CAChB,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ;QACpC,OAAO,UAAU,CAAC,GAAG,KAAK,QAAQ;QAClC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAC1C,CAAC;IACF,MAAM,wBAAwB,GAAG,MAAA,IAAI,CAAC,wBAAwB,CAAC,mCAAI,EAAE,CAAC;IACtE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAY,EAAE;QAC/C,MAAM,UAAU,GAAG,GAAG,KAAK,wBAAwB,CAAC;QACpD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,IAAI,EAAE,YAAY;QAClB,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,mCAAI,KAAK;QAC3C,YAAY;QACZ,eAAe;KAClB,CAAC;AACN,CAAC;AAlCD,kDAkCC;AAED,SAAS,0BAA0B,CAAC,gBAAoC,EAAE,OAAgB;IACtF,IAAI,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrD,OAAO,gBAAgB,CAAC;IAC5B,CAAC;SAAM,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACd,CAAC;SAAM,CAAC;QACJ,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;AACL,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { TextDocument } from 'vscode-languageserver-textdocument';
2
+ import { TextEdit } from '@sap-ux/odata-annotation-core-types';
3
+ import type { XMLDocument } from '@xml-tools/ast';
4
+ import type { Comment } from './comments';
5
+ import type { XMLDocumentChange } from './changes';
6
+ /**
7
+ * Translates changes objects to XML text edits.
8
+ */
9
+ export declare class XMLWriter {
10
+ private document;
11
+ private comments;
12
+ private textDocument;
13
+ private readonly changes;
14
+ private readonly elementContentCache;
15
+ /**
16
+ *
17
+ * @param document - XMLDocument AST node.
18
+ * @param comments - Array of all the comments in the document.
19
+ * @param textDocument - TextDocument instance.
20
+ */
21
+ constructor(document: XMLDocument, comments: Comment[], textDocument: TextDocument);
22
+ /**
23
+ * Adds a new change to the change stack.
24
+ *
25
+ * @param change - Change to be added to the stack.
26
+ */
27
+ addChange(change: XMLDocumentChange): void;
28
+ /**
29
+ * Transforms changes in the stack to text edits.
30
+ *
31
+ * @returns TextEdits.
32
+ */
33
+ getTextEdits(): TextEdit[];
34
+ private getContent;
35
+ private getTextEditsForPointer;
36
+ private handleXmlElementChanges;
37
+ private prepareXmlElementMoveChange;
38
+ }
39
+ //# sourceMappingURL=writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/xml/writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAKvE,OAAO,EAIH,QAAQ,EAIX,MAAM,qCAAqC,CAAC;AAQ7C,OAAO,KAAK,EAA4C,WAAW,EAAc,MAAM,gBAAgB,CAAC;AAIxG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAWR,iBAAiB,EACpB,MAAM,WAAW,CAAC;AAMnB;;GAEG;AACH,qBAAa,SAAS;IAUN,OAAO,CAAC,QAAQ;IAAe,OAAO,CAAC,QAAQ;IAAa,OAAO,CAAC,YAAY;IAT5F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2C;IAE/E;;;;;OAKG;gBACiB,QAAQ,EAAE,WAAW,EAAU,QAAQ,EAAE,OAAO,EAAE,EAAU,YAAY,EAAE,YAAY;IAC1G;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAIjD;;;;OAIG;IACI,YAAY,IAAI,QAAQ,EAAE;IAWjC,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,sBAAsB;IA+C9B,OAAO,CAAC,uBAAuB;IAuC/B,OAAO,CAAC,2BAA2B;CAkBtC"}