angular-odata 0.78.1 → 0.95.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 (224) hide show
  1. package/README.md +133 -62
  2. package/{esm2015/angular-odata.js → esm2020/angular-odata.mjs} +0 -0
  3. package/esm2020/lib/api.mjs +303 -0
  4. package/{esm2015/lib/cache/cache.js → esm2020/lib/cache/cache.mjs} +12 -5
  5. package/{esm2015/lib/cache/index.js → esm2020/lib/cache/index.mjs} +0 -0
  6. package/{esm2015/lib/cache/memory.js → esm2020/lib/cache/memory.mjs} +0 -0
  7. package/{esm2015/lib/cache/storage.js → esm2020/lib/cache/storage.mjs} +1 -1
  8. package/esm2020/lib/client.mjs +271 -0
  9. package/{esm2015/lib/constants.js → esm2020/lib/constants.mjs} +9 -3
  10. package/esm2020/lib/helper.mjs +268 -0
  11. package/esm2020/lib/index.mjs +19 -0
  12. package/esm2020/lib/models/collection.mjs +741 -0
  13. package/{esm2015/lib/models/index.js → esm2020/lib/models/index.mjs} +0 -0
  14. package/esm2020/lib/models/model.mjs +453 -0
  15. package/esm2020/lib/models/options.mjs +945 -0
  16. package/{esm2015/lib/module.js → esm2020/lib/module.mjs} +6 -6
  17. package/esm2020/lib/options.mjs +32 -0
  18. package/esm2020/lib/resources/index.mjs +7 -0
  19. package/esm2020/lib/resources/path/handlers.mjs +69 -0
  20. package/esm2020/lib/resources/path/index.mjs +3 -0
  21. package/esm2020/lib/resources/path/segments.mjs +124 -0
  22. package/esm2020/lib/resources/query/builder.mjs +590 -0
  23. package/esm2020/lib/resources/query/expressions.mjs +207 -0
  24. package/esm2020/lib/resources/query/handlers.mjs +186 -0
  25. package/esm2020/lib/resources/query/index.mjs +4 -0
  26. package/esm2020/lib/resources/query/options.mjs +103 -0
  27. package/esm2020/lib/resources/query/syntax.mjs +406 -0
  28. package/esm2020/lib/resources/request.mjs +167 -0
  29. package/esm2020/lib/resources/resource.mjs +326 -0
  30. package/esm2020/lib/resources/responses/annotations.mjs +119 -0
  31. package/{esm2015/lib/resources/responses/csdl/csdl-annotation.js → esm2020/lib/resources/responses/csdl/csdl-annotation.mjs} +0 -0
  32. package/{esm2015/lib/resources/responses/csdl/csdl-entity-container.js → esm2020/lib/resources/responses/csdl/csdl-entity-container.mjs} +0 -0
  33. package/{esm2015/lib/resources/responses/csdl/csdl-entity-set.js → esm2020/lib/resources/responses/csdl/csdl-entity-set.mjs} +0 -0
  34. package/{esm2015/lib/resources/responses/csdl/csdl-enum-type.js → esm2020/lib/resources/responses/csdl/csdl-enum-type.mjs} +0 -0
  35. package/{esm2015/lib/resources/responses/csdl/csdl-function-action.js → esm2020/lib/resources/responses/csdl/csdl-function-action.mjs} +0 -0
  36. package/{esm2015/lib/resources/responses/csdl/csdl-navigation-property-binding.js → esm2020/lib/resources/responses/csdl/csdl-navigation-property-binding.mjs} +0 -0
  37. package/{esm2015/lib/resources/responses/csdl/csdl-reference.js → esm2020/lib/resources/responses/csdl/csdl-reference.mjs} +0 -0
  38. package/{esm2015/lib/resources/responses/csdl/csdl-schema.js → esm2020/lib/resources/responses/csdl/csdl-schema.mjs} +0 -0
  39. package/{esm2015/lib/resources/responses/csdl/csdl-singleton.js → esm2020/lib/resources/responses/csdl/csdl-singleton.mjs} +0 -0
  40. package/{esm2015/lib/resources/responses/csdl/csdl-structural-property.js → esm2020/lib/resources/responses/csdl/csdl-structural-property.mjs} +0 -0
  41. package/{esm2015/lib/resources/responses/csdl/csdl-structured-type.js → esm2020/lib/resources/responses/csdl/csdl-structured-type.mjs} +0 -0
  42. package/{esm2015/lib/resources/responses/csdl/csdl-type-definition.js → esm2020/lib/resources/responses/csdl/csdl-type-definition.mjs} +0 -0
  43. package/{esm2015/lib/resources/responses/index.js → esm2020/lib/resources/responses/index.mjs} +0 -0
  44. package/esm2020/lib/resources/responses/metadata.mjs +547 -0
  45. package/{esm2015/lib/resources/responses/options.js → esm2020/lib/resources/responses/options.mjs} +1 -1
  46. package/esm2020/lib/resources/responses/response.mjs +170 -0
  47. package/{esm2015/lib/resources/responses/types.js → esm2020/lib/resources/responses/types.mjs} +1 -1
  48. package/esm2020/lib/resources/types/action.mjs +101 -0
  49. package/esm2020/lib/resources/types/batch.mjs +288 -0
  50. package/esm2020/lib/resources/types/count.mjs +27 -0
  51. package/esm2020/lib/resources/types/entity-set.mjs +94 -0
  52. package/esm2020/lib/resources/types/entity.mjs +106 -0
  53. package/esm2020/lib/resources/types/function.mjs +137 -0
  54. package/{esm2015/lib/resources/types/index.js → esm2020/lib/resources/types/index.mjs} +0 -0
  55. package/esm2020/lib/resources/types/media.mjs +41 -0
  56. package/esm2020/lib/resources/types/metadata.mjs +30 -0
  57. package/esm2020/lib/resources/types/navigation-property.mjs +226 -0
  58. package/esm2020/lib/resources/types/options.mjs +2 -0
  59. package/esm2020/lib/resources/types/property.mjs +183 -0
  60. package/esm2020/lib/resources/types/reference.mjs +85 -0
  61. package/esm2020/lib/resources/types/singleton.mjs +126 -0
  62. package/esm2020/lib/resources/types/value.mjs +41 -0
  63. package/esm2020/lib/schema/annotation.mjs +37 -0
  64. package/esm2020/lib/schema/callable.mjs +62 -0
  65. package/esm2020/lib/schema/element.mjs +51 -0
  66. package/esm2020/lib/schema/entity-container.mjs +9 -0
  67. package/esm2020/lib/schema/entity-set.mjs +9 -0
  68. package/esm2020/lib/schema/enum-type.mjs +71 -0
  69. package/{esm2015/lib/schema/index.js → esm2020/lib/schema/index.mjs} +2 -1
  70. package/esm2020/lib/schema/parsers/callable.mjs +113 -0
  71. package/esm2020/lib/schema/parsers/edm.mjs +95 -0
  72. package/esm2020/lib/schema/parsers/enum-type.mjs +107 -0
  73. package/esm2020/lib/schema/parsers/index.mjs +5 -0
  74. package/esm2020/lib/schema/parsers/structured-type.mjs +412 -0
  75. package/esm2020/lib/schema/schema.mjs +61 -0
  76. package/esm2020/lib/schema/structured-type.mjs +198 -0
  77. package/esm2020/lib/services/base.mjs +29 -0
  78. package/esm2020/lib/services/entity-set.mjs +143 -0
  79. package/esm2020/lib/services/entity.mjs +12 -0
  80. package/{esm2015/lib/services/factory.js → esm2020/lib/services/factory.mjs} +3 -3
  81. package/{esm2015/lib/services/index.js → esm2020/lib/services/index.mjs} +0 -0
  82. package/esm2020/lib/services/singleton.mjs +48 -0
  83. package/{esm2015/lib/settings.js → esm2020/lib/settings.mjs} +1 -1
  84. package/{esm2015/lib/tokens.js → esm2020/lib/tokens.mjs} +0 -0
  85. package/esm2020/lib/types.mjs +37 -0
  86. package/esm2020/lib/utils/arraybuffers.mjs +46 -0
  87. package/{esm2015/lib/utils/dates.js → esm2020/lib/utils/dates.mjs} +0 -0
  88. package/esm2020/lib/utils/durations.mjs +40 -0
  89. package/{esm2015/lib/utils/enums.js → esm2020/lib/utils/enums.mjs} +0 -0
  90. package/esm2020/lib/utils/http.mjs +93 -0
  91. package/esm2020/lib/utils/index.mjs +10 -0
  92. package/esm2020/lib/utils/objects.mjs +195 -0
  93. package/esm2020/lib/utils/odata.mjs +22 -0
  94. package/esm2020/lib/utils/strings.mjs +20 -0
  95. package/esm2020/lib/utils/types.mjs +134 -0
  96. package/{esm2015/lib/utils/urls.js → esm2020/lib/utils/urls.mjs} +0 -0
  97. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  98. package/fesm2015/{angular-odata.js → angular-odata.mjs} +5068 -3943
  99. package/fesm2015/angular-odata.mjs.map +1 -0
  100. package/fesm2020/angular-odata.mjs +10274 -0
  101. package/fesm2020/angular-odata.mjs.map +1 -0
  102. package/lib/api.d.ts +17 -16
  103. package/lib/cache/cache.d.ts +2 -2
  104. package/lib/client.d.ts +93 -18
  105. package/lib/constants.d.ts +6 -2
  106. package/lib/helper.d.ts +3 -3
  107. package/lib/index.d.ts +0 -1
  108. package/lib/models/collection.d.ts +36 -47
  109. package/lib/models/model.d.ts +47 -40
  110. package/lib/models/options.d.ts +53 -52
  111. package/lib/options.d.ts +50 -2
  112. package/lib/resources/index.d.ts +2 -3
  113. package/lib/resources/path/handlers.d.ts +27 -0
  114. package/lib/resources/path/index.d.ts +2 -0
  115. package/lib/resources/{path-segments.d.ts → path/segments.d.ts} +4 -16
  116. package/lib/resources/{builder.d.ts → query/builder.d.ts} +12 -7
  117. package/lib/resources/query/expressions.d.ts +63 -0
  118. package/lib/resources/query/handlers.d.ts +89 -0
  119. package/lib/resources/query/index.d.ts +3 -0
  120. package/lib/resources/query/options.d.ts +38 -0
  121. package/lib/resources/query/syntax.d.ts +175 -0
  122. package/lib/resources/request.d.ts +8 -6
  123. package/lib/resources/resource.d.ts +49 -55
  124. package/lib/resources/responses/metadata.d.ts +1 -1
  125. package/lib/resources/responses/types.d.ts +1 -1
  126. package/lib/resources/types/action.d.ts +55 -69
  127. package/lib/resources/types/batch.d.ts +13 -8
  128. package/lib/resources/types/count.d.ts +16 -19
  129. package/lib/resources/types/entity-set.d.ts +24 -62
  130. package/lib/resources/types/entity.d.ts +35 -43
  131. package/lib/resources/types/function.d.ts +63 -71
  132. package/lib/resources/types/media.d.ts +20 -22
  133. package/lib/resources/types/metadata.d.ts +5 -7
  134. package/lib/resources/types/navigation-property.d.ts +100 -85
  135. package/lib/resources/types/options.d.ts +8 -8
  136. package/lib/resources/types/property.d.ts +63 -73
  137. package/lib/resources/types/reference.d.ts +72 -16
  138. package/lib/resources/types/singleton.d.ts +75 -43
  139. package/lib/resources/types/value.d.ts +18 -9
  140. package/lib/schema/annotation.d.ts +18 -0
  141. package/lib/schema/callable.d.ts +27 -11
  142. package/lib/schema/element.d.ts +39 -0
  143. package/lib/schema/entity-container.d.ts +3 -8
  144. package/lib/schema/entity-set.d.ts +3 -9
  145. package/lib/schema/enum-type.d.ts +41 -14
  146. package/lib/schema/index.d.ts +1 -0
  147. package/lib/{parsers → schema/parsers}/callable.d.ts +2 -2
  148. package/lib/schema/parsers/edm.d.ts +4 -0
  149. package/lib/{parsers → schema/parsers}/enum-type.d.ts +13 -7
  150. package/lib/{parsers → schema/parsers}/index.d.ts +0 -0
  151. package/lib/{parsers → schema/parsers}/structured-type.d.ts +14 -9
  152. package/lib/schema/schema.d.ts +6 -8
  153. package/lib/schema/structured-type.d.ts +97 -18
  154. package/lib/services/base.d.ts +12 -12
  155. package/lib/services/entity-set.d.ts +15 -12
  156. package/lib/services/entity.d.ts +4 -1
  157. package/lib/services/singleton.d.ts +6 -3
  158. package/lib/settings.d.ts +4 -4
  159. package/lib/types.d.ts +7 -3
  160. package/lib/utils/arraybuffers.d.ts +4 -0
  161. package/lib/{parsers/edm.d.ts → utils/durations.d.ts} +3 -3
  162. package/lib/utils/http.d.ts +9 -0
  163. package/lib/utils/index.d.ts +5 -2
  164. package/lib/utils/objects.d.ts +1 -1
  165. package/lib/utils/strings.d.ts +4 -0
  166. package/lib/utils/types.d.ts +2 -0
  167. package/package.json +21 -8
  168. package/bundles/angular-odata.umd.js +0 -10756
  169. package/bundles/angular-odata.umd.js.map +0 -1
  170. package/esm2015/lib/api.js +0 -251
  171. package/esm2015/lib/client.js +0 -197
  172. package/esm2015/lib/helper.js +0 -269
  173. package/esm2015/lib/index.js +0 -21
  174. package/esm2015/lib/models/collection.js +0 -660
  175. package/esm2015/lib/models/model.js +0 -421
  176. package/esm2015/lib/models/options.js +0 -889
  177. package/esm2015/lib/options.js +0 -31
  178. package/esm2015/lib/parsers/callable.js +0 -110
  179. package/esm2015/lib/parsers/edm.js +0 -310
  180. package/esm2015/lib/parsers/enum-type.js +0 -97
  181. package/esm2015/lib/parsers/index.js +0 -5
  182. package/esm2015/lib/parsers/structured-type.js +0 -394
  183. package/esm2015/lib/resources/builder.js +0 -537
  184. package/esm2015/lib/resources/index.js +0 -8
  185. package/esm2015/lib/resources/path-segments.js +0 -156
  186. package/esm2015/lib/resources/query-options.js +0 -157
  187. package/esm2015/lib/resources/request.js +0 -141
  188. package/esm2015/lib/resources/resource.js +0 -328
  189. package/esm2015/lib/resources/responses/annotations.js +0 -121
  190. package/esm2015/lib/resources/responses/metadata.js +0 -548
  191. package/esm2015/lib/resources/responses/response.js +0 -170
  192. package/esm2015/lib/resources/types/action.js +0 -146
  193. package/esm2015/lib/resources/types/batch.js +0 -330
  194. package/esm2015/lib/resources/types/count.js +0 -50
  195. package/esm2015/lib/resources/types/entity-set.js +0 -164
  196. package/esm2015/lib/resources/types/entity.js +0 -158
  197. package/esm2015/lib/resources/types/function.js +0 -166
  198. package/esm2015/lib/resources/types/media.js +0 -46
  199. package/esm2015/lib/resources/types/metadata.js +0 -36
  200. package/esm2015/lib/resources/types/navigation-property.js +0 -214
  201. package/esm2015/lib/resources/types/options.js +0 -2
  202. package/esm2015/lib/resources/types/property.js +0 -190
  203. package/esm2015/lib/resources/types/reference.js +0 -50
  204. package/esm2015/lib/resources/types/singleton.js +0 -147
  205. package/esm2015/lib/resources/types/value.js +0 -30
  206. package/esm2015/lib/schema/annotation.js +0 -7
  207. package/esm2015/lib/schema/callable.js +0 -50
  208. package/esm2015/lib/schema/entity-container.js +0 -17
  209. package/esm2015/lib/schema/entity-set.js +0 -23
  210. package/esm2015/lib/schema/enum-type.js +0 -68
  211. package/esm2015/lib/schema/schema.js +0 -55
  212. package/esm2015/lib/schema/structured-type.js +0 -107
  213. package/esm2015/lib/services/base.js +0 -23
  214. package/esm2015/lib/services/entity-set.js +0 -143
  215. package/esm2015/lib/services/entity.js +0 -10
  216. package/esm2015/lib/services/singleton.js +0 -46
  217. package/esm2015/lib/types.js +0 -37
  218. package/esm2015/lib/utils/http.js +0 -59
  219. package/esm2015/lib/utils/index.js +0 -7
  220. package/esm2015/lib/utils/objects.js +0 -140
  221. package/esm2015/lib/utils/odata.js +0 -21
  222. package/esm2015/lib/utils/types.js +0 -103
  223. package/fesm2015/angular-odata.js.map +0 -1
  224. package/lib/resources/query-options.d.ts +0 -57
@@ -0,0 +1,51 @@
1
+ import { Strings } from '../utils';
2
+ import { ODataAnnotatable } from './annotation';
3
+ export class ODataSchemaElement extends ODataAnnotatable {
4
+ constructor(config, schema) {
5
+ super(config);
6
+ this.schema = schema;
7
+ this.name = config.name;
8
+ }
9
+ get api() {
10
+ return this.schema.api;
11
+ }
12
+ /**
13
+ * Create a nicer looking title.
14
+ * Titleize is meant for creating pretty output.
15
+ * @param term The term of the annotation to find.
16
+ * @returns The titleized string.
17
+ */
18
+ titleize(term) {
19
+ return (term && this.annotatedValue(term)) || Strings.titleCase(this.name);
20
+ }
21
+ /**
22
+ * Returns a full type of the structured type including the namespace/alias.
23
+ * @param alias Use the alias of the namespace instead of the namespace.
24
+ * @returns The string representation of the type.
25
+ */
26
+ type({ alias = false } = {}) {
27
+ return `${alias ? this.schema.alias : this.schema.namespace}.${this.name}`;
28
+ }
29
+ /**
30
+ * Returns a boolean indicating if the structured type is of the given type.
31
+ * @param type String representation of the type
32
+ * @returns True if the callable is type of the given type
33
+ */
34
+ isTypeOf(type) {
35
+ var names = [`${this.schema.namespace}.${this.name}`];
36
+ if (this.schema.alias)
37
+ names.push(`${this.schema.alias}.${this.name}`);
38
+ return names.indexOf(type) !== -1;
39
+ }
40
+ /**
41
+ * Returns a boolean indicating if the structured type is a sub type of the given type.
42
+ * @param type String representation of the type
43
+ * @returns True if the callable is type of the given type
44
+ */
45
+ isSubtypeOf(schema) {
46
+ if (this.isTypeOf(schema.type()))
47
+ return true;
48
+ return false;
49
+ }
50
+ }
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9zY2hlbWEvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUdoRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsZ0JBQWdCO0lBSXRELFlBQ0UsTUFBMEQsRUFDMUQsTUFBbUI7UUFFbkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsQ0FBQyxJQUFzQjtRQUM3QixPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLEtBQTBCLEVBQUU7UUFDOUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxJQUFZO1FBQ25CLElBQUksS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSztZQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2RSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsTUFBMEI7UUFDcEMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzlDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ub3RhdGlvbkNvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFN0cmluZ3MgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBPRGF0YUFubm90YXRhYmxlIH0gZnJvbSAnLi9hbm5vdGF0aW9uJztcbmltcG9ydCB7IE9EYXRhU2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEnO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFTY2hlbWFFbGVtZW50IGV4dGVuZHMgT0RhdGFBbm5vdGF0YWJsZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgc2NoZW1hOiBPRGF0YVNjaGVtYTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb25maWc6IHsgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uQ29uZmlnW107IG5hbWU6IHN0cmluZyB9LFxuICAgIHNjaGVtYTogT0RhdGFTY2hlbWFcbiAgKSB7XG4gICAgc3VwZXIoY29uZmlnKTtcbiAgICB0aGlzLnNjaGVtYSA9IHNjaGVtYTtcbiAgICB0aGlzLm5hbWUgPSBjb25maWcubmFtZTtcbiAgfVxuXG4gIGdldCBhcGkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2NoZW1hLmFwaTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuaWNlciBsb29raW5nIHRpdGxlLlxuICAgKiBUaXRsZWl6ZSBpcyBtZWFudCBmb3IgY3JlYXRpbmcgcHJldHR5IG91dHB1dC5cbiAgICogQHBhcmFtIHRlcm0gVGhlIHRlcm0gb2YgdGhlIGFubm90YXRpb24gdG8gZmluZC5cbiAgICogQHJldHVybnMgVGhlIHRpdGxlaXplZCBzdHJpbmcuXG4gICAqL1xuICB0aXRsZWl6ZSh0ZXJtPzogc3RyaW5nIHwgUmVnRXhwKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRlcm0gJiYgdGhpcy5hbm5vdGF0ZWRWYWx1ZSh0ZXJtKSkgfHwgU3RyaW5ncy50aXRsZUNhc2UodGhpcy5uYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgZnVsbCB0eXBlIG9mIHRoZSBzdHJ1Y3R1cmVkIHR5cGUgaW5jbHVkaW5nIHRoZSBuYW1lc3BhY2UvYWxpYXMuXG4gICAqIEBwYXJhbSBhbGlhcyBVc2UgdGhlIGFsaWFzIG9mIHRoZSBuYW1lc3BhY2UgaW5zdGVhZCBvZiB0aGUgbmFtZXNwYWNlLlxuICAgKiBAcmV0dXJucyBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0eXBlLlxuICAgKi9cbiAgdHlwZSh7IGFsaWFzID0gZmFsc2UgfTogeyBhbGlhcz86IGJvb2xlYW4gfSA9IHt9KSB7XG4gICAgcmV0dXJuIGAke2FsaWFzID8gdGhpcy5zY2hlbWEuYWxpYXMgOiB0aGlzLnNjaGVtYS5uYW1lc3BhY2V9LiR7dGhpcy5uYW1lfWA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgc3RydWN0dXJlZCB0eXBlIGlzIG9mIHRoZSBnaXZlbiB0eXBlLlxuICAgKiBAcGFyYW0gdHlwZSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHR5cGVcbiAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgY2FsbGFibGUgaXMgdHlwZSBvZiB0aGUgZ2l2ZW4gdHlwZVxuICAgKi9cbiAgaXNUeXBlT2YodHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdmFyIG5hbWVzID0gW2Ake3RoaXMuc2NoZW1hLm5hbWVzcGFjZX0uJHt0aGlzLm5hbWV9YF07XG4gICAgaWYgKHRoaXMuc2NoZW1hLmFsaWFzKSBuYW1lcy5wdXNoKGAke3RoaXMuc2NoZW1hLmFsaWFzfS4ke3RoaXMubmFtZX1gKTtcbiAgICByZXR1cm4gbmFtZXMuaW5kZXhPZih0eXBlKSAhPT0gLTE7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgc3RydWN0dXJlZCB0eXBlIGlzIGEgc3ViIHR5cGUgb2YgdGhlIGdpdmVuIHR5cGUuXG4gICAqIEBwYXJhbSB0eXBlIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHlwZVxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBjYWxsYWJsZSBpcyB0eXBlIG9mIHRoZSBnaXZlbiB0eXBlXG4gICAqL1xuICBpc1N1YnR5cGVPZihzY2hlbWE6IE9EYXRhU2NoZW1hRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzVHlwZU9mKHNjaGVtYS50eXBlKCkpKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ import { ODataSchemaElement } from './element';
2
+ import { ODataEntitySet } from './entity-set';
3
+ export class ODataEntityContainer extends ODataSchemaElement {
4
+ constructor(config, schema) {
5
+ super(config, schema);
6
+ this.entitySets = (config.entitySets || []).map((config) => new ODataEntitySet(config, schema));
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9zY2hlbWEvZW50aXR5LWNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUc5QyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBRzFELFlBQVksTUFBNkIsRUFBRSxNQUFtQjtRQUM1RCxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDN0MsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FDL0MsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eUNvbnRhaW5lckNvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IE9EYXRhU2NoZW1hRWxlbWVudCB9IGZyb20gJy4vZWxlbWVudCc7XG5pbXBvcnQgeyBPRGF0YUVudGl0eVNldCB9IGZyb20gJy4vZW50aXR5LXNldCc7XG5pbXBvcnQgeyBPRGF0YVNjaGVtYSB9IGZyb20gJy4vc2NoZW1hJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhRW50aXR5Q29udGFpbmVyIGV4dGVuZHMgT0RhdGFTY2hlbWFFbGVtZW50IHtcbiAgZW50aXR5U2V0czogT0RhdGFFbnRpdHlTZXRbXTtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IEVudGl0eUNvbnRhaW5lckNvbmZpZywgc2NoZW1hOiBPRGF0YVNjaGVtYSkge1xuICAgIHN1cGVyKGNvbmZpZywgc2NoZW1hKTtcbiAgICB0aGlzLmVudGl0eVNldHMgPSAoY29uZmlnLmVudGl0eVNldHMgfHwgW10pLm1hcChcbiAgICAgIChjb25maWcpID0+IG5ldyBPRGF0YUVudGl0eVNldChjb25maWcsIHNjaGVtYSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ import { ODataSchemaElement } from './element';
2
+ export class ODataEntitySet extends ODataSchemaElement {
3
+ constructor(config, schema) {
4
+ super(config, schema);
5
+ this.entityType = config.entityType;
6
+ this.service = config.service;
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9zY2hlbWEvZW50aXR5LXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHL0MsTUFBTSxPQUFPLGNBQWUsU0FBUSxrQkFBa0I7SUFHcEQsWUFBWSxNQUF1QixFQUFFLE1BQW1CO1FBQ3RELEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUNoQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlTZXRDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBPRGF0YVNjaGVtYUVsZW1lbnQgfSBmcm9tICcuL2VsZW1lbnQnO1xuaW1wb3J0IHsgT0RhdGFTY2hlbWEgfSBmcm9tICcuL3NjaGVtYSc7XG5cbmV4cG9ydCBjbGFzcyBPRGF0YUVudGl0eVNldCBleHRlbmRzIE9EYXRhU2NoZW1hRWxlbWVudCB7XG4gIGVudGl0eVR5cGU6IHN0cmluZztcbiAgc2VydmljZTogeyBuZXcgKC4uLnBhcmFtczogYW55W10pOiBhbnkgfTtcbiAgY29uc3RydWN0b3IoY29uZmlnOiBFbnRpdHlTZXRDb25maWcsIHNjaGVtYTogT0RhdGFTY2hlbWEpIHtcbiAgICBzdXBlcihjb25maWcsIHNjaGVtYSk7XG4gICAgdGhpcy5lbnRpdHlUeXBlID0gY29uZmlnLmVudGl0eVR5cGU7XG4gICAgdGhpcy5zZXJ2aWNlID0gY29uZmlnLnNlcnZpY2U7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,71 @@
1
+ import { ODataSchemaElement } from './element';
2
+ import { ODataEnumTypeParser } from './parsers';
3
+ export class ODataEnumType extends ODataSchemaElement {
4
+ constructor(config, schema) {
5
+ super(config, schema);
6
+ this.members = config.members;
7
+ this.parser = new ODataEnumTypeParser(config, schema.namespace, schema.alias);
8
+ }
9
+ configure() {
10
+ this.parser.configure({ options: this.api.options });
11
+ }
12
+ /**
13
+ * Returns the fields of the enum type.
14
+ * @returns The fields of the enum type.
15
+ */
16
+ fields() {
17
+ return this.parser.fields;
18
+ }
19
+ /**
20
+ * Find a field by name.
21
+ * @param name The name of the field
22
+ * @returns The field with the given name
23
+ */
24
+ findFieldByName(name) {
25
+ return this.fields().find((f) => f.name === name);
26
+ }
27
+ /**
28
+ * Find a field by value.
29
+ * @param value The value of the field
30
+ * @returns The field with the given value
31
+ */
32
+ findFieldByValue(value) {
33
+ return this.fields().find((f) => f.value === value);
34
+ }
35
+ /**
36
+ * Map the fields of the enum type.
37
+ * @param mapper Function that maps the value to the new value
38
+ * @returns The fields mapped by the mapper
39
+ */
40
+ mapFields(mapper) {
41
+ return this.fields().map(mapper);
42
+ }
43
+ /**
44
+ * Deseialize the given value from the enum type.
45
+ * @param value Value to deserialize
46
+ * @param options Options for deserialization
47
+ * @returns Deserialized value
48
+ */
49
+ deserialize(value, options) {
50
+ return this.parser.deserialize(value, options);
51
+ }
52
+ /**
53
+ * Serialize the given value for the enum type.
54
+ * @param value Value to serialize
55
+ * @param options Options for serialization
56
+ * @returns Serialized value
57
+ */
58
+ serialize(value, options) {
59
+ return this.parser.serialize(value, options);
60
+ }
61
+ /**
62
+ * Encode the given value for the enum type.
63
+ * @param value Value to encode
64
+ * @param options Options for encoding
65
+ * @returns Encoded value
66
+ */
67
+ encode(value, options) {
68
+ return this.parser.encode(value, options);
69
+ }
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3NjaGVtYS9lbnVtLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sRUFBNEIsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHMUUsTUFBTSxPQUFPLGFBQWlCLFNBQVEsa0JBQWtCO0lBR3RELFlBQVksTUFBeUIsRUFBRSxNQUFtQjtRQUN4RCxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksbUJBQW1CLENBQ25DLE1BQU0sRUFDTixNQUFNLENBQUMsU0FBUyxFQUNoQixNQUFNLENBQUMsS0FBSyxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxlQUFlLENBQUMsSUFBWTtRQUMxQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVMsQ0FBSSxNQUE4QztRQUN6RCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLEtBQVUsRUFBRSxPQUFpQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsS0FBUSxFQUFFLE9BQWlCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxLQUFRLEVBQUUsT0FBaUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW51bVR5cGVDb25maWcsIE9wdGlvbnMgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBPRGF0YVNjaGVtYUVsZW1lbnQgfSBmcm9tICcuL2VsZW1lbnQnO1xuaW1wb3J0IHsgT0RhdGFFbnVtVHlwZUZpZWxkUGFyc2VyLCBPRGF0YUVudW1UeXBlUGFyc2VyIH0gZnJvbSAnLi9wYXJzZXJzJztcbmltcG9ydCB7IE9EYXRhU2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEnO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFFbnVtVHlwZTxFPiBleHRlbmRzIE9EYXRhU2NoZW1hRWxlbWVudCB7XG4gIHBhcnNlcjogT0RhdGFFbnVtVHlwZVBhcnNlcjxFPjtcbiAgbWVtYmVyczogeyBbbmFtZTogc3RyaW5nXTogbnVtYmVyIH0gfCB7IFt2YWx1ZTogbnVtYmVyXTogc3RyaW5nIH07XG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogRW51bVR5cGVDb25maWc8RT4sIHNjaGVtYTogT0RhdGFTY2hlbWEpIHtcbiAgICBzdXBlcihjb25maWcsIHNjaGVtYSk7XG4gICAgdGhpcy5tZW1iZXJzID0gY29uZmlnLm1lbWJlcnM7XG4gICAgdGhpcy5wYXJzZXIgPSBuZXcgT0RhdGFFbnVtVHlwZVBhcnNlcjxFPihcbiAgICAgIGNvbmZpZyxcbiAgICAgIHNjaGVtYS5uYW1lc3BhY2UsXG4gICAgICBzY2hlbWEuYWxpYXNcbiAgICApO1xuICB9XG5cbiAgY29uZmlndXJlKCkge1xuICAgIHRoaXMucGFyc2VyLmNvbmZpZ3VyZSh7IG9wdGlvbnM6IHRoaXMuYXBpLm9wdGlvbnMgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZmllbGRzIG9mIHRoZSBlbnVtIHR5cGUuXG4gICAqIEByZXR1cm5zIFRoZSBmaWVsZHMgb2YgdGhlIGVudW0gdHlwZS5cbiAgICovXG4gIGZpZWxkcygpOiBPRGF0YUVudW1UeXBlRmllbGRQYXJzZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyLmZpZWxkcztcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIGEgZmllbGQgYnkgbmFtZS5cbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGZpZWxkXG4gICAqIEByZXR1cm5zIFRoZSBmaWVsZCB3aXRoIHRoZSBnaXZlbiBuYW1lXG4gICAqL1xuICBmaW5kRmllbGRCeU5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzKCkuZmluZCgoZikgPT4gZi5uYW1lID09PSBuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIGEgZmllbGQgYnkgdmFsdWUuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkXG4gICAqIEByZXR1cm5zIFRoZSBmaWVsZCB3aXRoIHRoZSBnaXZlbiB2YWx1ZVxuICAgKi9cbiAgZmluZEZpZWxkQnlWYWx1ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzKCkuZmluZCgoZikgPT4gZi52YWx1ZSA9PT0gdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcCB0aGUgZmllbGRzIG9mIHRoZSBlbnVtIHR5cGUuXG4gICAqIEBwYXJhbSBtYXBwZXIgRnVuY3Rpb24gdGhhdCBtYXBzIHRoZSB2YWx1ZSB0byB0aGUgbmV3IHZhbHVlXG4gICAqIEByZXR1cm5zIFRoZSBmaWVsZHMgbWFwcGVkIGJ5IHRoZSBtYXBwZXJcbiAgICovXG4gIG1hcEZpZWxkczxUPihtYXBwZXI6IChmaWVsZDogT0RhdGFFbnVtVHlwZUZpZWxkUGFyc2VyKSA9PiBUKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzKCkubWFwKG1hcHBlcik7XG4gIH1cblxuICAvKipcbiAgICogRGVzZWlhbGl6ZSB0aGUgZ2l2ZW4gdmFsdWUgZnJvbSB0aGUgZW51bSB0eXBlLlxuICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gZGVzZXJpYWxpemVcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgZGVzZXJpYWxpemF0aW9uXG4gICAqIEByZXR1cm5zIERlc2VyaWFsaXplZCB2YWx1ZVxuICAgKi9cbiAgZGVzZXJpYWxpemUodmFsdWU6IGFueSwgb3B0aW9ucz86IE9wdGlvbnMpOiBFIHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIuZGVzZXJpYWxpemUodmFsdWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZSB0aGUgZ2l2ZW4gdmFsdWUgZm9yIHRoZSBlbnVtIHR5cGUuXG4gICAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byBzZXJpYWxpemVcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3Igc2VyaWFsaXphdGlvblxuICAgKiBAcmV0dXJucyBTZXJpYWxpemVkIHZhbHVlXG4gICAqL1xuICBzZXJpYWxpemUodmFsdWU6IEUsIG9wdGlvbnM/OiBPcHRpb25zKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIuc2VyaWFsaXplKHZhbHVlLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNvZGUgdGhlIGdpdmVuIHZhbHVlIGZvciB0aGUgZW51bSB0eXBlLlxuICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gZW5jb2RlXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIGVuY29kaW5nXG4gICAqIEByZXR1cm5zIEVuY29kZWQgdmFsdWVcbiAgICovXG4gIGVuY29kZSh2YWx1ZTogRSwgb3B0aW9ucz86IE9wdGlvbnMpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnBhcnNlci5lbmNvZGUodmFsdWUsIG9wdGlvbnMpO1xuICB9XG59XG4iXX0=
@@ -4,4 +4,5 @@ export * from './callable';
4
4
  export * from './enum-type';
5
5
  export * from './structured-type';
6
6
  export * from './entity-set';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvc2NoZW1hL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2NoZW1hJztcbmV4cG9ydCAqIGZyb20gJy4vZW50aXR5LWNvbnRhaW5lcic7XG5leHBvcnQgKiBmcm9tICcuL2NhbGxhYmxlJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bS10eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RydWN0dXJlZC10eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZW50aXR5LXNldCc7XG4iXX0=
7
+ export * from './parsers';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvc2NoZW1hL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2NoZW1hJztcbmV4cG9ydCAqIGZyb20gJy4vZW50aXR5LWNvbnRhaW5lcic7XG5leHBvcnQgKiBmcm9tICcuL2NhbGxhYmxlJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bS10eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RydWN0dXJlZC10eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZW50aXR5LXNldCc7XG5leHBvcnQgKiBmcm9tICcuL3BhcnNlcnMnO1xuIl19
@@ -0,0 +1,113 @@
1
+ import { CALLABLE_BINDING_PARAMETER } from '../../constants';
2
+ import { ODataParserOptions } from '../../options';
3
+ import { NONE_PARSER, } from '../../types';
4
+ import { ODataEnumTypeParser } from './enum-type';
5
+ import { ODataStructuredTypeParser } from './structured-type';
6
+ export class ODataParameterParser {
7
+ constructor(name, parameter) {
8
+ this.name = name;
9
+ this.type = parameter.type;
10
+ this.parser = NONE_PARSER;
11
+ this.nullable = parameter.nullable;
12
+ this.collection = parameter.collection;
13
+ }
14
+ serialize(value, options) {
15
+ const parserOptions = options !== undefined
16
+ ? new ODataParserOptions(options)
17
+ : this.optionsHelper;
18
+ return Array.isArray(value)
19
+ ? value.map((v) => this.parser.serialize(v, parserOptions))
20
+ : this.parser.serialize(value, parserOptions);
21
+ }
22
+ //Encode
23
+ encode(value, options) {
24
+ const parserOptions = options !== undefined
25
+ ? new ODataParserOptions(options)
26
+ : this.optionsHelper;
27
+ return Array.isArray(value)
28
+ ? value.map((v) => this.parser.encode(v, parserOptions))
29
+ : this.parser.encode(value, parserOptions);
30
+ }
31
+ configure({ parserForType, options, }) {
32
+ this.optionsHelper = options;
33
+ this.parser = parserForType(this.type);
34
+ }
35
+ isEdmType() {
36
+ return this.type.startsWith('Edm.');
37
+ }
38
+ isEnumType() {
39
+ return this.parser instanceof ODataEnumTypeParser;
40
+ }
41
+ enum() {
42
+ if (!this.isEnumType())
43
+ throw new Error('Field are not EnumType');
44
+ return this.parser;
45
+ }
46
+ isStructuredType() {
47
+ return this.parser instanceof ODataStructuredTypeParser;
48
+ }
49
+ structured() {
50
+ if (!this.isStructuredType())
51
+ throw new Error('Field are not StrucuturedType');
52
+ return this.parser;
53
+ }
54
+ }
55
+ export class ODataCallableParser {
56
+ constructor(config, namespace, alias) {
57
+ this.name = config.name;
58
+ this.namespace = namespace;
59
+ this.alias = alias;
60
+ this.return = config.return;
61
+ this.parser = NONE_PARSER;
62
+ this.parameters = Object.entries(config.parameters || []).map(([name, p]) => new ODataParameterParser(name, p));
63
+ }
64
+ isTypeOf(type) {
65
+ var names = [`${this.namespace}.${this.name}`];
66
+ if (this.alias)
67
+ names.push(`${this.alias}.${this.name}`);
68
+ return names.indexOf(type) !== -1;
69
+ }
70
+ // Deserialize
71
+ deserialize(value, options) {
72
+ const parserOptions = options !== undefined
73
+ ? new ODataParserOptions(options)
74
+ : this.optionsHelper;
75
+ return this.parser.deserialize(value, parserOptions);
76
+ }
77
+ // Serialize
78
+ serialize(params, options) {
79
+ const parserOptions = options !== undefined
80
+ ? new ODataParserOptions(options)
81
+ : this.optionsHelper;
82
+ const parameters = this.parameters
83
+ .filter((p) => p.name !== CALLABLE_BINDING_PARAMETER)
84
+ .filter((p) => p.name in params && params[p.name] !== undefined);
85
+ return parameters.reduce((acc, p) => ({
86
+ ...acc,
87
+ [p.name]: p.serialize(params[p.name], parserOptions),
88
+ }), {});
89
+ }
90
+ //Encode
91
+ encode(params, options) {
92
+ const parserOptions = options !== undefined
93
+ ? new ODataParserOptions(options)
94
+ : this.optionsHelper;
95
+ const parameters = this.parameters
96
+ .filter((p) => p.name !== CALLABLE_BINDING_PARAMETER)
97
+ .filter((p) => p.name in params && params[p.name] !== undefined);
98
+ return parameters.reduce((acc, p) => ({
99
+ ...acc,
100
+ [p.name]: p.encode(params[p.name], parserOptions),
101
+ }), {});
102
+ }
103
+ configure({ parserForType, options, }) {
104
+ this.optionsHelper = options;
105
+ if (this.return)
106
+ this.parser = parserForType(this.return.type) || NONE_PARSER;
107
+ this.parameters.forEach((p) => p.configure({ parserForType, options }));
108
+ }
109
+ binding() {
110
+ return this.parameters.find((p) => p.name === CALLABLE_BINDING_PARAMETER);
111
+ }
112
+ }
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvc2NoZW1hL3BhcnNlcnMvY2FsbGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFFTCxXQUFXLEdBS1osTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTlELE1BQU0sT0FBTyxvQkFBb0I7SUFRL0IsWUFBWSxJQUFZLEVBQUUsU0FBb0I7UUFDNUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUM7SUFDekMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFRLEVBQUUsT0FBaUI7UUFDbkMsTUFBTSxhQUFhLEdBQ2pCLE9BQU8sS0FBSyxTQUFTO1lBQ25CLENBQUMsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztZQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN6QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJ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LFNBQVMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLDBCQUEwQixDQUFDLENBQUM7SUFDNUUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ0FMTEFCTEVfQklORElOR19QQVJBTUVURVIgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgT0RhdGFQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vb3B0aW9ucyc7XG5pbXBvcnQge1xuICBDYWxsYWJsZUNvbmZpZyxcbiAgTk9ORV9QQVJTRVIsXG4gIE9wdGlvbnMsXG4gIE9wdGlvbnNIZWxwZXIsXG4gIFBhcmFtZXRlcixcbiAgUGFyc2VyLFxufSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBPRGF0YUVudW1UeXBlUGFyc2VyIH0gZnJvbSAnLi9lbnVtLXR5cGUnO1xuaW1wb3J0IHsgT0RhdGFTdHJ1Y3R1cmVkVHlwZVBhcnNlciB9IGZyb20gJy4vc3RydWN0dXJlZC10eXBlJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhUGFyYW1ldGVyUGFyc2VyPFQ+IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHByaXZhdGUgcGFyc2VyOiBQYXJzZXI8VD47XG4gIGNvbGxlY3Rpb24/OiBib29sZWFuO1xuICBudWxsYWJsZT86IGJvb2xlYW47XG4gIG9wdGlvbnNIZWxwZXI/OiBPcHRpb25zSGVscGVyO1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgcGFyYW1ldGVyOiBQYXJhbWV0ZXIpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMudHlwZSA9IHBhcmFtZXRlci50eXBlO1xuICAgIHRoaXMucGFyc2VyID0gTk9ORV9QQVJTRVI7XG4gICAgdGhpcy5udWxsYWJsZSA9IHBhcmFtZXRlci5udWxsYWJsZTtcbiAgICB0aGlzLmNvbGxlY3Rpb24gPSBwYXJhbWV0ZXIuY29sbGVjdGlvbjtcbiAgfVxuXG4gIHNlcmlhbGl6ZSh2YWx1ZTogVCwgb3B0aW9ucz86IE9wdGlvbnMpOiBhbnkge1xuICAgIGNvbnN0IHBhcnNlck9wdGlvbnMgPVxuICAgICAgb3B0aW9ucyAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gbmV3IE9EYXRhUGFyc2VyT3B0aW9ucyhvcHRpb25zKVxuICAgICAgICA6IHRoaXMub3B0aW9uc0hlbHBlcjtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgID8gdmFsdWUubWFwKCh2KSA9PiB0aGlzLnBhcnNlci5zZXJpYWxpemUodiwgcGFyc2VyT3B0aW9ucykpXG4gICAgICA6IHRoaXMucGFyc2VyLnNlcmlhbGl6ZSh2YWx1ZSwgcGFyc2VyT3B0aW9ucyk7XG4gIH1cblxuICAvL0VuY29kZVxuICBlbmNvZGUodmFsdWU6IGFueSwgb3B0aW9ucz86IE9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcnNlck9wdGlvbnMgPVxuICAgICAgb3B0aW9ucyAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gbmV3IE9EYXRhUGFyc2VyT3B0aW9ucyhvcHRpb25zKVxuICAgICAgICA6IHRoaXMub3B0aW9uc0hlbHBlcjtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgID8gdmFsdWUubWFwKCh2KSA9PiB0aGlzLnBhcnNlci5lbmNvZGUodiwgcGFyc2VyT3B0aW9ucykpXG4gICAgICA6IHRoaXMucGFyc2VyLmVuY29kZSh2YWx1ZSwgcGFyc2VyT3B0aW9ucyk7XG4gIH1cblxuICBjb25maWd1cmUoe1xuICAgIHBhcnNlckZvclR5cGUsXG4gICAgb3B0aW9ucyxcbiAgfToge1xuICAgIHBhcnNlckZvclR5cGU6ICh0eXBlOiBzdHJpbmcpID0+IFBhcnNlcjxhbnk+O1xuICAgIG9wdGlvbnM6IE9wdGlvbnNIZWxwZXI7XG4gIH0pIHtcbiAgICB0aGlzLm9wdGlvbnNIZWxwZXIgPSBvcHRpb25zO1xuICAgIHRoaXMucGFyc2VyID0gcGFyc2VyRm9yVHlwZSh0aGlzLnR5cGUpO1xuICB9XG5cbiAgaXNFZG1UeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGUuc3RhcnRzV2l0aCgnRWRtLicpO1xuICB9XG5cbiAgaXNFbnVtVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIgaW5zdGFuY2VvZiBPRGF0YUVudW1UeXBlUGFyc2VyO1xuICB9XG5cbiAgZW51bSgpIHtcbiAgICBpZiAoIXRoaXMuaXNFbnVtVHlwZSgpKSB0aHJvdyBuZXcgRXJyb3IoJ0ZpZWxkIGFyZSBub3QgRW51bVR5cGUnKTtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIgYXMgT0RhdGFFbnVtVHlwZVBhcnNlcjxUPjtcbiAgfVxuXG4gIGlzU3RydWN0dXJlZFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyIGluc3RhbmNlb2YgT0RhdGFTdHJ1Y3R1cmVkVHlwZVBhcnNlcjtcbiAgfVxuXG4gIHN0cnVjdHVyZWQoKSB7XG4gICAgaWYgKCF0aGlzLmlzU3RydWN0dXJlZFR5cGUoKSlcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmllbGQgYXJlIG5vdCBTdHJ1Y3V0dXJlZFR5cGUnKTtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIgYXMgT0RhdGFTdHJ1Y3R1cmVkVHlwZVBhcnNlcjxUPjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgT0RhdGFDYWxsYWJsZVBhcnNlcjxSPiBpbXBsZW1lbnRzIFBhcnNlcjxSPiB7XG4gIG5hbWU6IHN0cmluZztcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIGFsaWFzPzogc3RyaW5nO1xuICByZXR1cm4/OiB7IHR5cGU6IHN0cmluZzsgY29sbGVjdGlvbj86IGJvb2xlYW4gfTtcbiAgcGFyc2VyOiBQYXJzZXI8YW55PjtcbiAgcGFyYW1ldGVyczogT0RhdGFQYXJhbWV0ZXJQYXJzZXI8YW55PltdO1xuICBvcHRpb25zSGVscGVyPzogT3B0aW9uc0hlbHBlcjtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IENhbGxhYmxlQ29uZmlnLCBuYW1lc3BhY2U6IHN0cmluZywgYWxpYXM/OiBzdHJpbmcpIHtcbiAgICB0aGlzLm5hbWUgPSBjb25maWcubmFtZTtcbiAgICB0aGlzLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTtcbiAgICB0aGlzLmFsaWFzID0gYWxpYXM7XG4gICAgdGhpcy5yZXR1cm4gPSBjb25maWcucmV0dXJuO1xuICAgIHRoaXMucGFyc2VyID0gTk9ORV9QQVJTRVI7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gT2JqZWN0LmVudHJpZXMoY29uZmlnLnBhcmFtZXRlcnMgfHwgW10pLm1hcChcbiAgICAgIChbbmFtZSwgcF0pID0+IG5ldyBPRGF0YVBhcmFtZXRlclBhcnNlcihuYW1lLCBwIGFzIFBhcmFtZXRlcilcbiAgICApO1xuICB9XG5cbiAgaXNUeXBlT2YodHlwZTogc3RyaW5nKSB7XG4gICAgdmFyIG5hbWVzID0gW2Ake3RoaXMubmFtZXNwYWNlfS4ke3RoaXMubmFtZX1gXTtcbiAgICBpZiAodGhpcy5hbGlhcykgbmFtZXMucHVzaChgJHt0aGlzLmFsaWFzfS4ke3RoaXMubmFtZX1gKTtcbiAgICByZXR1cm4gbmFtZXMuaW5kZXhPZih0eXBlKSAhPT0gLTE7XG4gIH1cblxuICAvLyBEZXNlcmlhbGl6ZVxuICBkZXNlcmlhbGl6ZSh2YWx1ZTogYW55LCBvcHRpb25zPzogT3B0aW9ucyk6IFIge1xuICAgIGNvbnN0IHBhcnNlck9wdGlvbnMgPVxuICAgICAgb3B0aW9ucyAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gbmV3IE9EYXRhUGFyc2VyT3B0aW9ucyhvcHRpb25zKVxuICAgICAgICA6IHRoaXMub3B0aW9uc0hlbHBlcjtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIuZGVzZXJpYWxpemUodmFsdWUsIHBhcnNlck9wdGlvbnMpO1xuICB9XG5cbiAgLy8gU2VyaWFsaXplXG4gIHNlcmlhbGl6ZShwYXJhbXM6IGFueSwgb3B0aW9ucz86IE9wdGlvbnMpOiBhbnkge1xuICAgIGNvbnN0IHBhcnNlck9wdGlvbnMgPVxuICAgICAgb3B0aW9ucyAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gbmV3IE9EYXRhUGFyc2VyT3B0aW9ucyhvcHRpb25zKVxuICAgICAgICA6IHRoaXMub3B0aW9uc0hlbHBlcjtcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gdGhpcy5wYXJhbWV0ZXJzXG4gICAgICAuZmlsdGVyKChwKSA9PiBwLm5hbWUgIT09IENBTExBQkxFX0JJTkRJTkdfUEFSQU1FVEVSKVxuICAgICAgLmZpbHRlcigocCkgPT4gcC5uYW1lIGluIHBhcmFtcyAmJiBwYXJhbXNbcC5uYW1lXSAhPT0gdW5kZWZpbmVkKTtcbiAgICByZXR1cm4gcGFyYW1ldGVycy5yZWR1Y2UoXG4gICAgICAoYWNjLCBwKSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtwLm5hbWVdOiBwLnNlcmlhbGl6ZShwYXJhbXNbcC5uYW1lXSwgcGFyc2VyT3B0aW9ucyksXG4gICAgICB9KSxcbiAgICAgIHt9XG4gICAgKTtcbiAgfVxuXG4gIC8vRW5jb2RlXG4gIGVuY29kZShwYXJhbXM6IGFueSwgb3B0aW9ucz86IE9wdGlvbnMpOiBhbnkge1xuICAgIGNvbnN0IHBhcnNlck9wdGlvbnMgPVxuICAgICAgb3B0aW9ucyAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gbmV3IE9EYXRhUGFyc2VyT3B0aW9ucyhvcHRpb25zKVxuICAgICAgICA6IHRoaXMub3B0aW9uc0hlbHBlcjtcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gdGhpcy5wYXJhbWV0ZXJzXG4gICAgICAuZmlsdGVyKChwKSA9PiBwLm5hbWUgIT09IENBTExBQkxFX0JJTkRJTkdfUEFSQU1FVEVSKVxuICAgICAgLmZpbHRlcigocCkgPT4gcC5uYW1lIGluIHBhcmFtcyAmJiBwYXJhbXNbcC5uYW1lXSAhPT0gdW5kZWZpbmVkKTtcbiAgICByZXR1cm4gcGFyYW1ldGVycy5yZWR1Y2UoXG4gICAgICAoYWNjLCBwKSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtwLm5hbWVdOiBwLmVuY29kZShwYXJhbXNbcC5uYW1lXSwgcGFyc2VyT3B0aW9ucyksXG4gICAgICB9KSxcbiAgICAgIHt9XG4gICAgKTtcbiAgfVxuXG4gIGNvbmZpZ3VyZSh7XG4gICAgcGFyc2VyRm9yVHlwZSxcbiAgICBvcHRpb25zLFxuICB9OiB7XG4gICAgcGFyc2VyRm9yVHlwZTogKHR5cGU6IHN0cmluZykgPT4gUGFyc2VyPGFueT47XG4gICAgb3B0aW9uczogT3B0aW9uc0hlbHBlcjtcbiAgfSkge1xuICAgIHRoaXMub3B0aW9uc0hlbHBlciA9IG9wdGlvbnM7XG4gICAgaWYgKHRoaXMucmV0dXJuKVxuICAgICAgdGhpcy5wYXJzZXIgPSBwYXJzZXJGb3JUeXBlKHRoaXMucmV0dXJuLnR5cGUpIHx8IE5PTkVfUEFSU0VSO1xuICAgIHRoaXMucGFyYW1ldGVycy5mb3JFYWNoKChwKSA9PiBwLmNvbmZpZ3VyZSh7IHBhcnNlckZvclR5cGUsIG9wdGlvbnMgfSkpO1xuICB9XG5cbiAgYmluZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzLmZpbmQoKHApID0+IHAubmFtZSA9PT0gQ0FMTEFCTEVfQklORElOR19QQVJBTUVURVIpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,95 @@
1
+ import { raw } from '../../resources/query';
2
+ import { ArrayBuffers } from '../../utils/arraybuffers';
3
+ import { Durations } from '../../utils/durations';
4
+ // Core EdmTypeParserBuilder
5
+ const EdmParser = (_d, _s, _e) => ({
6
+ deserialize(value, options) {
7
+ return Array.isArray(value)
8
+ ? value.map((v) => _d(v, options))
9
+ : _d(value, options);
10
+ },
11
+ serialize(value, options) {
12
+ return Array.isArray(value)
13
+ ? value.map((v) => _s(v, options))
14
+ : _s(value, options);
15
+ },
16
+ encode(value, options) {
17
+ return Array.isArray(value)
18
+ ? value.map((v) => _e(v, options))
19
+ : _e(value, options);
20
+ },
21
+ });
22
+ const Identity = (v) => v;
23
+ const toNumber = (v) => Number(v);
24
+ const toString = (v) => v.toString();
25
+ const toBoolean = (v) => Boolean(v);
26
+ const toDate = (v) => new Date(v);
27
+ export const EDM_PARSERS = {
28
+ //Edm.Guid 16-byte (128-bit) unique identifier
29
+ 'Edm.Guid': EdmParser(Identity, Identity, (v) => raw(v)),
30
+ //Edm.Int16 Signed 16-bit integer
31
+ 'Edm.Int16': EdmParser(toNumber, toNumber, toNumber),
32
+ //Edm.String Sequence of UTF-8 characters
33
+ 'Edm.String': EdmParser(toString, toString, toString),
34
+ //Edm.Boolean Binary-valued logic
35
+ 'Edm.Boolean': EdmParser(toBoolean, toBoolean, toBoolean),
36
+ //Edm.Byte Unsigned 8-bit integer
37
+ 'Edm.Byte': EdmParser(toNumber, toNumber, toNumber),
38
+ //Edm.SByte Signed 8-bit integer
39
+ 'Edm.SByte': EdmParser(toNumber, toNumber, toNumber),
40
+ //Edm.Int32 Signed 16-bit integer
41
+ 'Edm.Int32': EdmParser(toNumber, toNumber, toNumber),
42
+ //Edm.Int64 Signed 16-bit integer
43
+ 'Edm.Int64': EdmParser(toNumber, toNumber, toNumber),
44
+ //Edm.Date Date without a time-zone offset
45
+ 'Edm.Date': EdmParser((v) => new Date(`${v}T00:00:00.000Z`), (v) => toDate(v).toISOString().substring(0, 10), (v) => toDate(v).toISOString().substring(0, 10)),
46
+ //Edm.TimeOfDay Clock time 00:00-23:59:59.999999999999
47
+ 'Edm.TimeOfDay': EdmParser((v) => new Date(`1970-01-01T${v}Z`), (v) => toDate(v).toISOString().substring(11, 23), (v) => toDate(v).toISOString().substring(11, 23)),
48
+ //Edm.DateTimeOffset Date and time with a time-zone offset, no leap seconds
49
+ 'Edm.DateTimeOffset': EdmParser(toDate, (v) => toDate(v).toISOString(), (v) => toDate(v).toISOString()),
50
+ //Edm.Duration Signed duration in days, hours, minutes, and (sub)seconds
51
+ 'Edm.Duration': EdmParser((v) => Durations.toDuration(v), (v) => Durations.toString(v), (v) => Durations.toString(v)),
52
+ //Edm.Decimal Numeric values with fixed precision and scale
53
+ 'Edm.Decimal': EdmParser((v, o) => {
54
+ if (typeof v === 'string' && o.ieee754Compatible) {
55
+ return parseFloat(v);
56
+ }
57
+ return v;
58
+ }, (v, o) => {
59
+ if (o.ieee754Compatible) {
60
+ return parseFloat(v.toPrecision(o.field.precision)).toFixed(o.field.scale);
61
+ }
62
+ return v;
63
+ }, (v, o) => {
64
+ if (o.ieee754Compatible) {
65
+ return parseFloat(v.toPrecision(o.field.precision)).toFixed(o.field.scale);
66
+ }
67
+ return v;
68
+ }),
69
+ //Edm.Double IEEE 754 binary64 floating-point number (15-17 decimal digits)
70
+ 'Edm.Double': EdmParser((v) => (v === 'INF' ? Infinity : v), (v) => (v === Infinity ? 'INF' : v), (v) => (v === Infinity ? 'INF' : v)),
71
+ //Edm.Single IEEE 754 binary32 floating-point number (6-9 decimal digits)
72
+ 'Edm.Single': EdmParser((v) => (v === 'INF' ? Infinity : v), (v) => (v === Infinity ? 'INF' : v), (v) => (v === Infinity ? 'INF' : v)),
73
+ //Edm.Binary Binary data
74
+ 'Edm.Binary': EdmParser((v) => ArrayBuffers.toArrayBuffer(v), (v) => ArrayBuffers.toString(v), (v) => ArrayBuffers.toString(v)),
75
+ };
76
+ /*
77
+ Edm.Stream Binary data stream
78
+ Edm.Geography Abstract base type for all Geography types
79
+ Edm.GeographyPoint A point in a round-earth coordinate system
80
+ Edm.GeographyLineString Line string in a round-earth coordinate system
81
+ Edm.GeographyPolygon Polygon in a round-earth coordinate system
82
+ Edm.GeographyMultiPoint Collection of points in a round-earth coordinate system
83
+ Edm.GeographyMultiLineString Collection of line strings in a round-earth coordinate system
84
+ Edm.GeographyMultiPolygon Collection of polygons in a round-earth coordinate system
85
+ Edm.GeographyCollection Collection of arbitrary Geography values
86
+ Edm.Geometry Abstract base type for all Geometry types
87
+ Edm.GeometryPoint Point in a flat-earth coordinate system
88
+ Edm.GeometryLineString Line string in a flat-earth coordinate system
89
+ Edm.GeometryPolygon Polygon in a flat-earth coordinate system
90
+ Edm.GeometryMultiPoint Collection of points in a flat-earth coordinate system
91
+ Edm.GeometryMultiLineString Collection of line strings in a flat-earth coordinate system
92
+ Edm.GeometryMultiPolygon Collection of polygons in a flat-earth coordinate system
93
+ Edm.GeometryCollection Collection of arbitrary Geometry values
94
+ */
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3NjaGVtYS9wYXJzZXJzL2VkbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBWSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCw0QkFBNEI7QUFDNUIsTUFBTSxTQUFTLEdBQUcsQ0FDaEIsRUFBZ0QsRUFDaEQsRUFBa0QsRUFDbEQsRUFBa0QsRUFDakMsRUFBRSxDQUFDLENBQUM7SUFDckIsV0FBVyxDQUFDLEtBQVUsRUFBRSxPQUFtQztRQUN6RCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxTQUFTLENBQUMsS0FBVSxFQUFFLE9BQW1DO1FBQ3ZELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDekIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDbEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELE1BQU0sQ0FBQyxLQUFVLEVBQUUsT0FBbUM7UUFDcEQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUss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QUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUM1QyxDQUFDLENBQWMsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FDN0M7Q0FDRixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtCRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhdyB9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9xdWVyeSc7XG5pbXBvcnQgeyBQYXJzZXIsIFN0cnVjdHVyZWRUeXBlRmllbGRPcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQXJyYXlCdWZmZXJzIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXJyYXlidWZmZXJzJztcbmltcG9ydCB7IER1cmF0aW9uLCBEdXJhdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscy9kdXJhdGlvbnMnO1xuXG4vLyBDb3JlIEVkbVR5cGVQYXJzZXJCdWlsZGVyXG5jb25zdCBFZG1QYXJzZXIgPSA8VD4oXG4gIF9kOiAodjogYW55LCBvOiBTdHJ1Y3R1cmVkVHlwZUZpZWxkT3B0aW9ucykgPT4gVCxcbiAgX3M6ICh2OiBhbnksIG86IFN0cnVjdHVyZWRUeXBlRmllbGRPcHRpb25zKSA9PiBhbnksXG4gIF9lOiAodjogYW55LCBvOiBTdHJ1Y3R1cmVkVHlwZUZpZWxkT3B0aW9ucykgPT4gYW55XG4pOiBQYXJzZXI8VCB8IFRbXT4gPT4gKHtcbiAgZGVzZXJpYWxpemUodmFsdWU6IGFueSwgb3B0aW9uczogU3RydWN0dXJlZFR5cGVGaWVsZE9wdGlvbnMpOiBUIHwgVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgID8gdmFsdWUubWFwKCh2KSA9PiBfZCh2LCBvcHRpb25zKSlcbiAgICAgIDogX2QodmFsdWUsIG9wdGlvbnMpO1xuICB9LFxuICBzZXJpYWxpemUodmFsdWU6IGFueSwgb3B0aW9uczogU3RydWN0dXJlZFR5cGVGaWVsZE9wdGlvbnMpOiBhbnkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgPyB2YWx1ZS5tYXAoKHYpID0+IF9zKHYsIG9wdGlvbnMpKVxuICAgICAgOiBfcyh2YWx1ZSwgb3B0aW9ucyk7XG4gIH0sXG4gIGVuY29kZSh2YWx1ZTogYW55LCBvcHRpb25zOiBTdHJ1Y3R1cmVkVHlwZUZpZWxkT3B0aW9ucyk6IGFueSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICA/IHZhbHVlLm1hcCgodikgPT4gX2Uodiwgb3B0aW9ucykpXG4gICAgICA6IF9lKHZhbHVlLCBvcHRpb25zKTtcbiAgfSxcbn0pO1xuXG5jb25zdCBJZGVudGl0eSA9ICh2OiBhbnkpID0+IHY7XG5jb25zdCB0b051bWJlciA9ICh2OiBhbnkpID0+IE51bWJlcih2KTtcbmNvbnN0IHRvU3RyaW5nID0gKHY6IGFueSkgPT4gdi50b1N0cmluZygpO1xuY29uc3QgdG9Cb29sZWFuID0gKHY6IGFueSkgPT4gQm9vbGVhbih2KTtcbmNvbnN0IHRvRGF0ZSA9ICh2OiBhbnkpID0+IG5ldyBEYXRlKHYpO1xuXG5leHBvcnQgY29uc3QgRURNX1BBUlNFUlM6IHsgW3R5cGU6IHN0cmluZ106IFBhcnNlcjxhbnk+IH0gPSB7XG4gIC8vRWRtLkd1aWQgMTYtYnl0ZSAoMTI4LWJpdCkgdW5pcXVlIGlkZW50aWZpZXJcbiAgJ0VkbS5HdWlkJzogRWRtUGFyc2VyPHN0cmluZz4oSWRlbnRpdHksIElkZW50aXR5LCAodjogc3RyaW5nKSA9PiByYXcodikpLFxuICAvL0VkbS5JbnQxNiBTaWduZWQgMTYtYml0IGludGVnZXJcbiAgJ0VkbS5JbnQxNic6IEVkbVBhcnNlcjxudW1iZXI+KHRvTnVtYmVyLCB0b051bWJlciwgdG9OdW1iZXIpLFxuICAvL0VkbS5TdHJpbmcgU2VxdWVuY2Ugb2YgVVRGLTggY2hhcmFjdGVyc1xuICAnRWRtLlN0cmluZyc6IEVkbVBhcnNlcjxzdHJpbmc+KHRvU3RyaW5nLCB0b1N0cmluZywgdG9TdHJpbmcpLFxuICAvL0VkbS5Cb29sZWFuIEJpbmFyeS12YWx1ZWQgbG9naWNcbiAgJ0VkbS5Cb29sZWFuJzogRWRtUGFyc2VyPGJvb2xlYW4+KHRvQm9vbGVhbiwgdG9Cb29sZWFuLCB0b0Jvb2xlYW4pLFxuICAvL0VkbS5CeXRlIFVuc2lnbmVkIDgtYml0IGludGVnZXJcbiAgJ0VkbS5CeXRlJzogRWRtUGFyc2VyPG51bWJlcj4odG9OdW1iZXIsIHRvTnVtYmVyLCB0b051bWJlciksXG4gIC8vRWRtLlNCeXRlIFNpZ25lZCA4LWJpdCBpbnRlZ2VyXG4gICdFZG0uU0J5dGUnOiBFZG1QYXJzZXI8bnVtYmVyPih0b051bWJlciwgdG9OdW1iZXIsIHRvTnVtYmVyKSxcbiAgLy9FZG0uSW50MzIgU2lnbmVkIDE2LWJpdCBpbnRlZ2VyXG4gICdFZG0uSW50MzInOiBFZG1QYXJzZXI8bnVtYmVyPih0b051bWJlciwgdG9OdW1iZXIsIHRvTnVtYmVyKSxcbiAgLy9FZG0uSW50NjQgU2lnbmVkIDE2LWJpdCBpbnRlZ2VyXG4gICdFZG0uSW50NjQnOiBFZG1QYXJzZXI8bnVtYmVyPih0b051bWJlciwgdG9OdW1iZXIsIHRvTnVtYmVyKSxcbiAgLy9FZG0uRGF0ZSBEYXRlIHdpdGhvdXQgYSB0aW1lLXpvbmUgb2Zmc2V0XG4gICdFZG0uRGF0ZSc6IEVkbVBhcnNlcjxEYXRlPihcbiAgICAodjogYW55KSA9PiBuZXcgRGF0ZShgJHt2fVQwMDowMDowMC4wMDBaYCksXG4gICAgKHY6IGFueSkgPT4gdG9EYXRlKHYpLnRvSVNPU3RyaW5nKCkuc3Vic3RyaW5nKDAsIDEwKSxcbiAgICAodjogYW55KSA9PiB0b0RhdGUodikudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMCwgMTApXG4gICksXG4gIC8vRWRtLlRpbWVPZkRheSBDbG9jayB0aW1lIDAwOjAwLTIzOjU5OjU5Ljk5OTk5OTk5OTk5OVxuICAnRWRtLlRpbWVPZkRheSc6IEVkbVBhcnNlcjxEYXRlPihcbiAgICAodjogYW55KSA9PiBuZXcgRGF0ZShgMTk3MC0wMS0wMVQke3Z9WmApLFxuICAgICh2OiBhbnkpID0+IHRvRGF0ZSh2KS50b0lTT1N0cmluZygpLnN1YnN0cmluZygxMSwgMjMpLFxuICAgICh2OiBhbnkpID0+IHRvRGF0ZSh2KS50b0lTT1N0cmluZygpLnN1YnN0cmluZygxMSwgMjMpXG4gICksXG4gIC8vRWRtLkRhdGVUaW1lT2Zmc2V0IERhdGUgYW5kIHRpbWUgd2l0aCBhIHRpbWUtem9uZSBvZmZzZXQsIG5vIGxlYXAgc2Vjb25kc1xuICAnRWRtLkRhdGVUaW1lT2Zmc2V0JzogRWRtUGFyc2VyPERhdGU+KFxuICAgIHRvRGF0ZSxcbiAgICAodjogYW55KSA9PiB0b0RhdGUodikudG9JU09TdHJpbmcoKSxcbiAgICAodjogYW55KSA9PiB0b0RhdGUodikudG9JU09TdHJpbmcoKVxuICApLFxuICAvL0VkbS5EdXJhdGlvbiBTaWduZWQgZHVyYXRpb24gaW4gZGF5cywgaG91cnMsIG1pbnV0ZXMsIGFuZCAoc3ViKXNlY29uZHNcbiAgJ0VkbS5EdXJhdGlvbic6IEVkbVBhcnNlcjxEdXJhdGlvbj4oXG4gICAgKHY6IGFueSkgPT4gRHVyYXRpb25zLnRvRHVyYXRpb24odiksXG4gICAgKHY6IER1cmF0aW9uKSA9PiBEdXJhdGlvbnMudG9TdHJpbmcodiksXG4gICAgKHY6IER1cmF0aW9uKSA9PiBEdXJhdGlvbnMudG9TdHJpbmcodilcbiAgKSxcbiAgLy9FZG0uRGVjaW1hbCBOdW1lcmljIHZhbHVlcyB3aXRoIGZpeGVkIHByZWNpc2lvbiBhbmQgc2NhbGVcbiAgJ0VkbS5EZWNpbWFsJzogRWRtUGFyc2VyPG51bWJlcj4oXG4gICAgKHY6IGFueSwgbzogU3RydWN0dXJlZFR5cGVGaWVsZE9wdGlvbnMpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ3N0cmluZycgJiYgby5pZWVlNzU0Q29tcGF0aWJsZSkge1xuICAgICAgICByZXR1cm4gcGFyc2VGbG9hdCh2KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2O1xuICAgIH0sXG4gICAgKHY6IG51bWJlciwgbzogU3RydWN0dXJlZFR5cGVGaWVsZE9wdGlvbnMpID0+IHtcbiAgICAgIGlmIChvLmllZWU3NTRDb21wYXRpYmxlKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHYudG9QcmVjaXNpb24oby5maWVsZC5wcmVjaXNpb24pKS50b0ZpeGVkKFxuICAgICAgICAgIG8uZmllbGQuc2NhbGVcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2O1xuICAgIH0sXG4gICAgKHY6IG51bWJlciwgbzogU3RydWN0dXJlZFR5cGVGaWVsZE9wdGlvbnMpID0+IHtcbiAgICAgIGlmIChvLmllZWU3NTRDb21wYXRpYmxlKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHYudG9QcmVjaXNpb24oby5maWVsZC5wcmVjaXNpb24pKS50b0ZpeGVkKFxuICAgICAgICAgIG8uZmllbGQuc2NhbGVcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2O1xuICAgIH1cbiAgKSxcbiAgLy9FZG0uRG91YmxlIElFRUUgNzU0IGJpbmFyeTY0IGZsb2F0aW5nLXBvaW50IG51bWJlciAoMTUtMTcgZGVjaW1hbCBkaWdpdHMpXG4gICdFZG0uRG91YmxlJzogRWRtUGFyc2VyPG51bWJlcj4oXG4gICAgKHY6IGFueSkgPT4gKHYgPT09ICdJTkYnID8gSW5maW5pdHkgOiAodiBhcyBudW1iZXIpKSxcbiAgICAodjogbnVtYmVyKSA9PiAodiA9PT0gSW5maW5pdHkgPyAnSU5GJyA6IHYpLFxuICAgICh2OiBudW1iZXIpID0+ICh2ID09PSBJbmZpbml0eSA/ICdJTkYnIDogdilcbiAgKSxcbiAgLy9FZG0uU2luZ2xlIElFRUUgNzU0IGJpbmFyeTMyIGZsb2F0aW5nLXBvaW50IG51bWJlciAoNi05IGRlY2ltYWwgZGlnaXRzKVxuICAnRWRtLlNpbmdsZSc6IEVkbVBhcnNlcjxudW1iZXI+KFxuICAgICh2OiBhbnkpID0+ICh2ID09PSAnSU5GJyA/IEluZmluaXR5IDogKHYgYXMgbnVtYmVyKSksXG4gICAgKHY6IG51bWJlcikgPT4gKHYgPT09IEluZmluaXR5ID8gJ0lORicgOiB2KSxcbiAgICAodjogbnVtYmVyKSA9PiAodiA9PT0gSW5maW5pdHkgPyAnSU5GJyA6IHYpXG4gICksXG4gIC8vRWRtLkJpbmFyeSBCaW5hcnkgZGF0YVxuICAnRWRtLkJpbmFyeSc6IEVkbVBhcnNlcjxBcnJheUJ1ZmZlcj4oXG4gICAgKHY6IHN0cmluZykgPT4gQXJyYXlCdWZmZXJzLnRvQXJyYXlCdWZmZXIodiksXG4gICAgKHY6IEFycmF5QnVmZmVyKSA9PiBBcnJheUJ1ZmZlcnMudG9TdHJpbmcodiksXG4gICAgKHY6IEFycmF5QnVmZmVyKSA9PiBBcnJheUJ1ZmZlcnMudG9TdHJpbmcodilcbiAgKSxcbn07XG5cbi8qXG5FZG0uU3RyZWFtIEJpbmFyeSBkYXRhIHN0cmVhbVxuRWRtLkdlb2dyYXBoeSBBYnN0cmFjdCBiYXNlIHR5cGUgZm9yIGFsbCBHZW9ncmFwaHkgdHlwZXNcbkVkbS5HZW9ncmFwaHlQb2ludCBBIHBvaW50IGluIGEgcm91bmQtZWFydGggY29vcmRpbmF0ZSBzeXN0ZW1cbkVkbS5HZW9ncmFwaHlMaW5lU3RyaW5nIExpbmUgc3RyaW5nIGluIGEgcm91bmQtZWFydGggY29vcmRpbmF0ZSBzeXN0ZW1cbkVkbS5HZW9ncmFwaHlQb2x5Z29uIFBvbHlnb24gaW4gYSByb3VuZC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuRWRtLkdlb2dyYXBoeU11bHRpUG9pbnQgQ29sbGVjdGlvbiBvZiBwb2ludHMgaW4gYSByb3VuZC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuRWRtLkdlb2dyYXBoeU11bHRpTGluZVN0cmluZyBDb2xsZWN0aW9uIG9mIGxpbmUgc3RyaW5ncyBpbiBhIHJvdW5kLWVhcnRoIGNvb3JkaW5hdGUgc3lzdGVtXG5FZG0uR2VvZ3JhcGh5TXVsdGlQb2x5Z29uIENvbGxlY3Rpb24gb2YgcG9seWdvbnMgaW4gYSByb3VuZC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuRWRtLkdlb2dyYXBoeUNvbGxlY3Rpb24gQ29sbGVjdGlvbiBvZiBhcmJpdHJhcnkgR2VvZ3JhcGh5IHZhbHVlc1xuRWRtLkdlb21ldHJ5IEFic3RyYWN0IGJhc2UgdHlwZSBmb3IgYWxsIEdlb21ldHJ5IHR5cGVzXG5FZG0uR2VvbWV0cnlQb2ludCBQb2ludCBpbiBhIGZsYXQtZWFydGggY29vcmRpbmF0ZSBzeXN0ZW1cbkVkbS5HZW9tZXRyeUxpbmVTdHJpbmcgTGluZSBzdHJpbmcgaW4gYSBmbGF0LWVhcnRoIGNvb3JkaW5hdGUgc3lzdGVtXG5FZG0uR2VvbWV0cnlQb2x5Z29uIFBvbHlnb24gaW4gYSBmbGF0LWVhcnRoIGNvb3JkaW5hdGUgc3lzdGVtXG5FZG0uR2VvbWV0cnlNdWx0aVBvaW50IENvbGxlY3Rpb24gb2YgcG9pbnRzIGluIGEgZmxhdC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuRWRtLkdlb21ldHJ5TXVsdGlMaW5lU3RyaW5nIENvbGxlY3Rpb24gb2YgbGluZSBzdHJpbmdzIGluIGEgZmxhdC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuRWRtLkdlb21ldHJ5TXVsdGlQb2x5Z29uIENvbGxlY3Rpb24gb2YgcG9seWdvbnMgaW4gYSBmbGF0LWVhcnRoIGNvb3JkaW5hdGUgc3lzdGVtXG5FZG0uR2VvbWV0cnlDb2xsZWN0aW9uIENvbGxlY3Rpb24gb2YgYXJiaXRyYXJ5IEdlb21ldHJ5IHZhbHVlc1xuKi9cbiJdfQ==
@@ -0,0 +1,107 @@
1
+ import { ODataParserOptions } from '../../options';
2
+ import { raw } from '../../resources/query';
3
+ import { Enums, Strings } from '../../utils';
4
+ import { ODataAnnotatable } from '../annotation';
5
+ export class ODataEnumTypeFieldParser extends ODataAnnotatable {
6
+ constructor(name, field) {
7
+ super(field);
8
+ this.name = name;
9
+ this.value = field.value;
10
+ }
11
+ titleize(term) {
12
+ return (term && this.annotatedValue(term)) || this.name;
13
+ }
14
+ }
15
+ export class ODataEnumTypeParser extends ODataAnnotatable {
16
+ constructor(config, namespace, alias) {
17
+ super(config);
18
+ this.name = config.name;
19
+ this.namespace = namespace;
20
+ this.alias = alias;
21
+ this.flags = config.flags;
22
+ this.members = config.members;
23
+ this.fields = Object.entries(config.fields).map(([name, f]) => new ODataEnumTypeFieldParser(name, f));
24
+ }
25
+ /**
26
+ * Create a nicer looking title.
27
+ * Titleize is meant for creating pretty output.
28
+ * @param term The term of the annotation to find.
29
+ * @returns The titleized string.
30
+ */
31
+ ttitelize(term) {
32
+ return (term && this.annotatedValue(term)) || Strings.titleCase(this.name);
33
+ }
34
+ configure({ options }) {
35
+ this.optionsHelper = options;
36
+ }
37
+ isTypeOf(type) {
38
+ var names = [`${this.namespace}.${this.name}`];
39
+ if (this.alias)
40
+ names.push(`${this.alias}.${this.name}`);
41
+ return names.indexOf(type) !== -1;
42
+ }
43
+ // Deserialize
44
+ deserialize(value, options) {
45
+ // string -> number
46
+ const parserOptions = options !== undefined
47
+ ? new ODataParserOptions(options)
48
+ : this.optionsHelper;
49
+ if (this.flags) {
50
+ return Enums.toValues(this.members, value).reduce((acc, v) => acc | v, 0);
51
+ }
52
+ else {
53
+ return Enums.toValue(this.members, value);
54
+ }
55
+ }
56
+ // Serialize
57
+ serialize(value, options) {
58
+ // Enum are string | number
59
+ // string | number -> string
60
+ const parserOptions = options !== undefined
61
+ ? new ODataParserOptions(options)
62
+ : this.optionsHelper;
63
+ if (this.flags) {
64
+ const names = Enums.toNames(this.members, value);
65
+ return !parserOptions?.stringAsEnum
66
+ ? `${this.namespace}.${this.name}'${names.join(', ')}'`
67
+ : names.join(', ');
68
+ }
69
+ else {
70
+ const name = Enums.toName(this.members, value);
71
+ return !parserOptions?.stringAsEnum
72
+ ? `${this.namespace}.${this.name}'${name}'`
73
+ : name;
74
+ }
75
+ }
76
+ //Encode
77
+ encode(value, options) {
78
+ const parserOptions = options !== undefined
79
+ ? new ODataParserOptions(options)
80
+ : this.optionsHelper;
81
+ const serialized = this.serialize(value, parserOptions);
82
+ return parserOptions?.stringAsEnum
83
+ ? raw(`'${serialized}'`)
84
+ : raw(serialized);
85
+ }
86
+ // Json Schema
87
+ toJsonSchema() {
88
+ let property = {
89
+ title: this.name,
90
+ type: 'string',
91
+ };
92
+ property.enum = this.fields.map((f) => f.name);
93
+ return property;
94
+ }
95
+ validate(member, { method, navigation = false, } = {}) {
96
+ if (this.flags) {
97
+ let members = Enums.toValues(this.members, member);
98
+ return members.some((member) => !(member in this.members))
99
+ ? ['mismatch']
100
+ : undefined;
101
+ }
102
+ else {
103
+ return !(member in this.members) ? ['mismatch'] : undefined;
104
+ }
105
+ }
106
+ }
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3NjaGVtYS9wYXJzZXJzL2VudW0tdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBUTVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0JBQWdCO0lBSTVELFlBQVksSUFBWSxFQUFFLEtBQTBCO1FBQ2xELEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQXNCO1FBQzdCLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDMUQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLG1CQUNYLFNBQVEsZ0JBQWdCO0lBV3hCLFlBQVksTUFBeUIsRUFBRSxTQUFpQixFQUFFLEtBQWM7UUFDdEUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFB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LEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN4RCxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7Z0JBQ2QsQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUNmO2FBQU07WUFDTCxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDN0Q7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPRGF0YVBhcnNlck9wdGlvbnMgfSBmcm9tICcuLi8uLi9vcHRpb25zJztcbmltcG9ydCB7IHJhdyB9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9xdWVyeSc7XG5pbXBvcnQge1xuICBFbnVtVHlwZUNvbmZpZyxcbiAgRW51bVR5cGVGaWVsZENvbmZpZyxcbiAgT3B0aW9ucyxcbiAgT3B0aW9uc0hlbHBlcixcbiAgUGFyc2VyLFxufSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBFbnVtcywgU3RyaW5ncyB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IE9EYXRhQW5ub3RhdGFibGUgfSBmcm9tICcuLi9hbm5vdGF0aW9uJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhRW51bVR5cGVGaWVsZFBhcnNlciBleHRlbmRzIE9EYXRhQW5ub3RhdGFibGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBmaWVsZDogRW51bVR5cGVGaWVsZENvbmZpZykge1xuICAgIHN1cGVyKGZpZWxkKTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMudmFsdWUgPSBmaWVsZC52YWx1ZTtcbiAgfVxuXG4gIHRpdGxlaXplKHRlcm0/OiBzdHJpbmcgfCBSZWdFeHApOiBzdHJpbmcge1xuICAgIHJldHVybiAodGVybSAmJiB0aGlzLmFubm90YXRlZFZhbHVlKHRlcm0pKSB8fCB0aGlzLm5hbWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9EYXRhRW51bVR5cGVQYXJzZXI8VD5cbiAgZXh0ZW5kcyBPRGF0YUFubm90YXRhYmxlXG4gIGltcGxlbWVudHMgUGFyc2VyPFQ+XG57XG4gIG5hbWU6IHN0cmluZztcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIGFsaWFzPzogc3RyaW5nO1xuICBmbGFncz86IGJvb2xlYW47XG4gIG1lbWJlcnM6IHsgW25hbWU6IHN0cmluZ106IG51bWJlciB9IHwgeyBbdmFsdWU6IG51bWJlcl06IHN0cmluZyB9O1xuICBmaWVsZHM6IE9EYXRhRW51bVR5cGVGaWVsZFBhcnNlcltdO1xuICBvcHRpb25zSGVscGVyPzogT3B0aW9uc0hlbHBlcjtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IEVudW1UeXBlQ29uZmlnPFQ+LCBuYW1lc3BhY2U6IHN0cmluZywgYWxpYXM/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihjb25maWcpO1xuICAgIHRoaXMubmFtZSA9IGNvbmZpZy5uYW1lO1xuICAgIHRoaXMubmFtZXNwYWNlID0gbmFtZXNwYWNlO1xuICAgIHRoaXMuYWxpYXMgPSBhbGlhcztcbiAgICB0aGlzLmZsYWdzID0gY29uZmlnLmZsYWdzO1xuICAgIHRoaXMubWVtYmVycyA9IGNvbmZpZy5tZW1iZXJzO1xuICAgIHRoaXMuZmllbGRzID0gT2JqZWN0LmVudHJpZXMoY29uZmlnLmZpZWxkcykubWFwKFxuICAgICAgKFtuYW1lLCBmXSkgPT4gbmV3IE9EYXRhRW51bVR5cGVGaWVsZFBhcnNlcihuYW1lLCBmKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmljZXIgbG9va2luZyB0aXRsZS5cbiAgICogVGl0bGVpemUgaXMgbWVhbnQgZm9yIGNyZWF0aW5nIHByZXR0eSBvdXRwdXQuXG4gICAqIEBwYXJhbSB0ZXJtIFRoZSB0ZXJtIG9mIHRoZSBhbm5vdGF0aW9uIHRvIGZpbmQuXG4gICAqIEByZXR1cm5zIFRoZSB0aXRsZWl6ZWQgc3RyaW5nLlxuICAgKi9cbiAgdHRpdGVsaXplKHRlcm0/OiBzdHJpbmcgfCBSZWdFeHApOiBzdHJpbmcge1xuICAgIHJldHVybiAodGVybSAmJiB0aGlzLmFubm90YXRlZFZhbHVlKHRlcm0pKSB8fCBTdHJpbmdzLnRpdGxlQ2FzZSh0aGlzLm5hbWUpO1xuICB9XG5cbiAgY29uZmlndXJlKHsgb3B0aW9ucyB9OiB7IG9wdGlvbnM6IE9wdGlvbnNIZWxwZXIgfSkge1xuICAgIHRoaXMub3B0aW9uc0hlbHBlciA9IG9wdGlvbnM7XG4gIH1cblxuICBpc1R5cGVPZih0eXBlOiBzdHJpbmcpIHtcbiAgICB2YXIgbmFtZXMgPSBbYCR7dGhpcy5uYW1lc3BhY2V9LiR7dGhpcy5uYW1lfWBdO1xuICAgIGlmICh0aGlzLmFsaWFzKSBuYW1lcy5wdXNoKGAke3RoaXMuYWxpYXN9LiR7dGhpcy5uYW1lfWApO1xuICAgIHJldHVybiBuYW1lcy5pbmRleE9mKHR5cGUpICE9PSAtMTtcbiAgfVxuXG4gIC8vIERlc2VyaWFsaXplXG4gIGRlc2VyaWFsaXplKHZhbHVlOiBzdHJpbmcsIG9wdGlvbnM/OiBPcHRpb25zKTogVCB7XG4gICAgLy8gc3RyaW5nIC0+IG51bWJlclxuICAgIGNvbnN0IHBhcnNlck9wdGlvbnMgPVxuICAgICAgb3B0aW9ucyAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gbmV3IE9EYXRhUGFyc2VyT3B0aW9ucyhvcHRpb25zKVxuICAgICAgICA6IHRoaXMub3B0aW9uc0hlbHBlcjtcbiAgICBpZiAodGhpcy5mbGFncykge1xuICAgICAgcmV0dXJuIEVudW1zLnRvVmFsdWVzKHRoaXMubWVtYmVycywgdmFsdWUpLnJlZHVjZShcbiAgICAgICAgKGFjYywgdikgPT4gYWNjIHwgdixcbiAgICAgICAgMFxuICAgICAgKSBhcyBhbnk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBFbnVtcy50b1ZhbHVlKHRoaXMubWVtYmVycywgdmFsdWUpIGFzIGFueTtcbiAgICB9XG4gIH1cblxuICAvLyBTZXJpYWxpemVcbiAgc2VyaWFsaXplKHZhbHVlOiBULCBvcHRpb25zPzogT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgLy8gRW51bSBhcmUgc3RyaW5nIHwgbnVtYmVyXG4gICAgLy8gc3RyaW5nIHwgbnVtYmVyIC0+IHN0cmluZ1xuICAgIGNvbnN0IHBhcnNlck9wdGlvbnMgPVxuICAgICAgb3B0aW9ucyAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gbmV3IE9EYXRhUGFyc2VyT3B0aW9ucyhvcHRpb25zKVxuICAgICAgICA6IHRoaXMub3B0aW9uc0hlbHBlcjtcbiAgICBpZiAodGhpcy5mbGFncykge1xuICAgICAgY29uc3QgbmFtZXMgPSBFbnVtcy50b05hbWVzKHRoaXMubWVtYmVycywgdmFsdWUpO1xuICAgICAgcmV0dXJuICFwYXJzZXJPcHRpb25zPy5zdHJpbmdBc0VudW1cbiAgICAgICAgPyBgJHt0aGlzLm5hbWVzcGFjZX0uJHt0aGlzLm5hbWV9JyR7bmFtZXMuam9pbignLCAnKX0nYFxuICAgICAgICA6IG5hbWVzLmpvaW4oJywgJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5hbWUgPSBFbnVtcy50b05hbWUodGhpcy5tZW1iZXJzLCB2YWx1ZSk7XG4gICAgICByZXR1cm4gIXBhcnNlck9wdGlvbnM/LnN0cmluZ0FzRW51bVxuICAgICAgICA/IGAke3RoaXMubmFtZXNwYWNlfS4ke3RoaXMubmFtZX0nJHtuYW1lfSdgXG4gICAgICAgIDogbmFtZTtcbiAgICB9XG4gIH1cblxuICAvL0VuY29kZVxuICBlbmNvZGUodmFsdWU6IFQsIG9wdGlvbnM/OiBPcHRpb25zKTogYW55IHtcbiAgICBjb25zdCBwYXJzZXJPcHRpb25zID1cbiAgICAgIG9wdGlvbnMgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IG5ldyBPRGF0YVBhcnNlck9wdGlvbnMob3B0aW9ucylcbiAgICAgICAgOiB0aGlzLm9wdGlvbnNIZWxwZXI7XG4gICAgY29uc3Qgc2VyaWFsaXplZCA9IHRoaXMuc2VyaWFsaXplKHZhbHVlLCBwYXJzZXJPcHRpb25zKTtcbiAgICByZXR1cm4gcGFyc2VyT3B0aW9ucz8uc3RyaW5nQXNFbnVtXG4gICAgICA/IHJhdyhgJyR7c2VyaWFsaXplZH0nYClcbiAgICAgIDogcmF3KHNlcmlhbGl6ZWQpO1xuICB9XG5cbiAgLy8gSnNvbiBTY2hlbWFcbiAgdG9Kc29uU2NoZW1hKCkge1xuICAgIGxldCBwcm9wZXJ0eSA9IDxhbnk+e1xuICAgICAgdGl0bGU6IHRoaXMubmFtZSxcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH07XG4gICAgcHJvcGVydHkuZW51bSA9IHRoaXMuZmllbGRzLm1hcCgoZikgPT4gZi5uYW1lKTtcbiAgICByZXR1cm4gcHJvcGVydHk7XG4gIH1cblxuICB2YWxpZGF0ZShcbiAgICBtZW1iZXI6IHN0cmluZyB8IG51bWJlcixcbiAgICB7XG4gICAgICBtZXRob2QsXG4gICAgICBuYXZpZ2F0aW9uID0gZmFsc2UsXG4gICAgfToge1xuICAgICAgbWV0aG9kPzogJ2NyZWF0ZScgfCAndXBkYXRlJyB8ICdtb2RpZnknO1xuICAgICAgbmF2aWdhdGlvbj86IGJvb2xlYW47XG4gICAgfSA9IHt9XG4gICk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5mbGFncykge1xuICAgICAgbGV0IG1lbWJlcnMgPSBFbnVtcy50b1ZhbHVlcyh0aGlzLm1lbWJlcnMsIG1lbWJlcik7XG4gICAgICByZXR1cm4gbWVtYmVycy5zb21lKChtZW1iZXIpID0+ICEobWVtYmVyIGluIHRoaXMubWVtYmVycykpXG4gICAgICAgID8gWydtaXNtYXRjaCddXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gIShtZW1iZXIgaW4gdGhpcy5tZW1iZXJzKSA/IFsnbWlzbWF0Y2gnXSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from './edm';
2
+ export * from './enum-type';
3
+ export * from './structured-type';
4
+ export * from './callable';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvc2NoZW1hL3BhcnNlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZWRtJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bS10eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RydWN0dXJlZC10eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vY2FsbGFibGUnO1xuIl19