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
@@ -201,4 +201,4 @@ export class ODataSettings {
201
201
  return values[0];
202
202
  }
203
203
  }
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQVlqQyxNQUFNLE9BQU8sYUFBYTtJQUV4QixZQUFZLEdBQUcsT0FBb0I7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDO2dCQUM3QyxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7WUFDOUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUMvQyxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7U0FDaEU7UUFDRCxtREFBbUQ7UUFDbkQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxTQUFTLENBQUMsUUFFVDtRQUNDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FB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QUM7YUFDekMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUNyQixNQUFNLEtBQUssQ0FBQyx1QkFBdUIsSUFBSSxZQUFZLENBQUMsQ0FBQztRQUN2RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUNuQixNQUFNLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1FBQzlELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBOEIsQ0FBQztJQUNoRCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcGlDb25maWcsIFBhcnNlciB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgT0RhdGFBcGkgfSBmcm9tICcuL2FwaSc7XG5pbXBvcnQge1xuICBPRGF0YUNhbGxhYmxlLFxuICBPRGF0YUVudGl0eVNldCxcbiAgT0RhdGFFbnVtVHlwZSxcbiAgT0RhdGFTdHJ1Y3R1cmVkVHlwZSxcbn0gZnJvbSAnLi9zY2hlbWEnO1xuaW1wb3J0IHsgT0RhdGFSZXF1ZXN0IH0gZnJvbSAnLi9yZXNvdXJjZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT0RhdGFDb2xsZWN0aW9uLCBPRGF0YU1vZGVsIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgT0RhdGFFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9lbnRpdHknO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFTZXR0aW5ncyB7XG4gIGFwaXM6IE9EYXRhQXBpW107XG4gIGNvbnN0cnVjdG9yKC4uLmNvbmZpZ3M6IEFwaUNvbmZpZ1tdKSB7XG4gICAgdGhpcy5hcGlzID0gY29uZmlncy5tYXAoKGNvbmZpZykgPT4gbmV3IE9EYXRhQXBpKGNvbmZpZykpO1xuICAgIGlmICh0aGlzLmFwaXMubGVuZ3RoID4gMSkge1xuICAgICAgaWYgKHRoaXMuYXBpcy5zb21lKChjKSA9PiBjLm5hbWUgPT09IHVuZGVmaW5lZCkpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTXVsdGlwbGUgQVBJczogTmVlZHMgY29uZmlndXJhdGlvbiBuYW1lcycpO1xuICAgICAgaWYgKHRoaXMuYXBpcy5maWx0ZXIoKGMpID0+IGMuZGVmYXVsdCkubGVuZ3RoID4gMSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdWx0aXBsZSBBUElzOiBOZWVkcyBvbmx5IG9uZSBkZWZhdWx0IGFwaScpO1xuICAgIH1cbiAgICAvLyBJZiBub3QgZGVmYXVsdCBzZXR1cCBmaXJzdCBjb25maWcgYXMgZGVmYXVsdCBhcGlcbiAgICBpZiAodGhpcy5hcGlzLmV2ZXJ5KChjKSA9PiAhYy5kZWZhdWx0KSkgdGhpcy5hcGlzWzBdLmRlZmF1bHQgPSB0cnVlO1xuICB9XG5cbiAgY29uZmlndXJlKHNldHRpbmdzOiB7XG4gICAgcmVxdWVzdGVyPzogKHJlcXVlc3Q6IE9EYXRhUmVxdWVzdDxhbnk+KSA9PiBPYnNlcnZhYmxlPGFueT47XG4gIH0pIHtcbiAgICB0aGlzLmFwaXMuZm9yRWFjaCgoYXBpKSA9PiBhcGkuY29uZmlndXJlKHNldHRpbmdzKSk7XG4gIH1cblxuICBwdWJsaWMgZGVmYXVsdEFwaSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlzLmZpbmQoKGMpID0+IGMuZGVmYXVsdCkgYXMgT0RhdGFBcGk7XG4gIH1cbiAgcHVibGljIGZpbmRBcGlCeU5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpcy5maW5kKChjKSA9PiBjLm5hbWUgPT09IG5hbWUpO1xuICB9XG4gIHB1YmxpYyBhcGlCeU5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYXBpID0gdGhpcy5maW5kQXBpQnlOYW1lKG5hbWUpO1xuICAgIGlmIChhcGkgPT09IHVuZGVmaW5lZCkgdGhyb3cgbmV3IEVycm9yKGBObyBBUEkgZm9yIG5hbWU6ICR7bmFtZX1gKTtcbiAgICByZXR1cm4gYXBpO1xuICB9XG4gIHB1YmxpYyBmaW5kQXBpRm9yVHlwZXModHlwZXM6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpcy5maW5kKChjKSA9PlxuICAgICAgYy5zY2hlbWFzLnNvbWUoKHMpID0+IHR5cGVzLnNvbWUoKHR5cGUpID0+IHMuaXNOYW1lc3BhY2VPZih0eXBlKSkpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZmluZEFwaUZvclR5cGUodHlwZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZmluZEFwaUZvclR5cGVzKFt0eXBlXSk7XG4gIH1cbiAgcHVibGljIGFwaUZvclR5cGUodHlwZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYXBpID0gdGhpcy5maW5kQXBpRm9yVHlwZSh0eXBlKTtcbiAgICBpZiAoYXBpID09PSB1bmRlZmluZWQpIHRocm93IG5ldyBFcnJvcihgTm8gQVBJIGZvciB0eXBlOiAke3R5cGV9YCk7XG4gICAgcmV0dXJuIGFwaTtcbiAgfVxuXG4gIC8vI3JlZ2lvbiBDb25maWdzIHNob3J0Y3V0c1xuICBwdWJsaWMgZW51bVR5cGVGb3JUeXBlPFQ+KHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRFbnVtVHlwZUZvclR5cGU8VD4odHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkgdGhyb3cgRXJyb3IoYE5vIEVudW0gZm9yIHR5cGUgJHt0eXBlfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIE9EYXRhRW51bVR5cGU8VD47XG4gIH1cblxuICBwdWJsaWMgc3RydWN0dXJlZFR5cGVGb3JUeXBlPFQ+KHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRTdHJ1Y3R1cmVkVHlwZUZvclR5cGU8VD4odHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBTdHJ1Y3R1cmVkIGZvciB0eXBlICR7dHlwZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyBPRGF0YVN0cnVjdHVyZWRUeXBlPFQ+O1xuICB9XG5cbiAgcHVibGljIGNhbGxhYmxlRm9yVHlwZTxUPih0eXBlOiBzdHJpbmcsIGJpbmRpbmdUeXBlPzogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZENhbGxhYmxlRm9yVHlwZTxUPih0eXBlLCBiaW5kaW5nVHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBDYWxsYWJsZSBmb3IgdHlwZSAke3R5cGV9IHdhcyBmb3VuZGApO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMSlcbiAgICAgIHRocm93IEVycm9yKCdNdWx0aXBsZSBBUElzOiBNb3JlIHRoYW4gb25lIHZhbHVlIHdhcyBmb3VuZCcpO1xuICAgIHJldHVybiB2YWx1ZXNbMF0gYXMgT0RhdGFDYWxsYWJsZTxUPjtcbiAgfVxuXG4gIHB1YmxpYyBlbnRpdHlTZXRGb3JUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRFbnRpdHlTZXRGb3JUeXBlKHR5cGUpKVxuICAgICAgLmZpbHRlcigoZSkgPT4gZSk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApXG4gICAgICB0aHJvdyBFcnJvcihgTm8gRW50aXR5U2V0IGZvciB0eXBlICR7dHlwZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyBPRGF0YUVudGl0eVNldDtcbiAgfVxuXG4gIHB1YmxpYyBwYXJzZXJGb3JUeXBlPFQ+KHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLnBhcnNlckZvclR5cGU8VD4odHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBQYXJzZXIgZm9yIHR5cGUgJHt0eXBlfSB3YXMgZm91bmRgKTtcbiAgICBpZiAoIXR5cGUuc3RhcnRzV2l0aCgnRWRtLicpICYmIHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyBQYXJzZXI8VD47XG4gIH1cblxuICBwdWJsaWMgbW9kZWxGb3JUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRNb2RlbEZvclR5cGUodHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkgdGhyb3cgRXJyb3IoYE5vIE1vZGVsIGZvciB0eXBlICR7dHlwZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyB0eXBlb2YgT0RhdGFNb2RlbDtcbiAgfVxuXG4gIHB1YmxpYyBjb2xsZWN0aW9uRm9yVHlwZSh0eXBlOiBzdHJpbmcpIHtcbiAgICBsZXQgdmFsdWVzID0gdGhpcy5hcGlzXG4gICAgICAubWFwKChhcGkpID0+IGFwaS5maW5kQ29sbGVjdGlvbkZvclR5cGUodHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBDb2xsZWN0aW9uIGZvciB0eXBlICR7dHlwZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyB0eXBlb2YgT0RhdGFDb2xsZWN0aW9uO1xuICB9XG5cbiAgcHVibGljIHNlcnZpY2VGb3JUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRTZXJ2aWNlRm9yVHlwZSh0eXBlKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIFNlcnZpY2UgZm9yIHR5cGUgJHt0eXBlfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIHR5cGVvZiBPRGF0YUVudGl0eVNlcnZpY2U7XG4gIH1cbiAgcHVibGljIHNlcnZpY2VGb3JFbnRpdHlUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRTZXJ2aWNlRm9yRW50aXR5VHlwZSh0eXBlKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIFNlcnZpY2UgZm9yIHR5cGUgJHt0eXBlfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIHR5cGVvZiBPRGF0YUVudGl0eVNlcnZpY2U7XG4gIH1cblxuICBwdWJsaWMgZW51bVR5cGVCeU5hbWU8VD4obmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZEVudW1UeXBlQnlOYW1lPFQ+KG5hbWUpKVxuICAgICAgLmZpbHRlcigoZSkgPT4gZSk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHRocm93IEVycm9yKGBObyBFbnVtIGZvciBuYW1lICR7bmFtZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyBPRGF0YUVudW1UeXBlPFQ+O1xuICB9XG5cbiAgcHVibGljIHN0cnVjdHVyZWRUeXBlQnlOYW1lPFQ+KG5hbWU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRTdHJ1Y3R1cmVkVHlwZUJ5TmFtZTxUPihuYW1lKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIFN0cnVjdHVyZWQgZm9yIG5hbWUgJHtuYW1lfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgU3RydWN0dXJlZDogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIE9EYXRhU3RydWN0dXJlZFR5cGU8VD47XG4gIH1cblxuICBwdWJsaWMgY2FsbGFibGVCeU5hbWU8VD4obmFtZTogc3RyaW5nLCBiaW5kaW5nVHlwZT86IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRDYWxsYWJsZUJ5TmFtZTxUPihuYW1lLCBiaW5kaW5nVHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBDYWxsYWJsZSBmb3IgbmFtZSAke25hbWV9IHdhcyBmb3VuZGApO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMSlcbiAgICAgIHRocm93IEVycm9yKCdNdWx0aXBsZSBDYWxsYWJsZTogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIE9EYXRhQ2FsbGFibGU8VD47XG4gIH1cblxuICBwdWJsaWMgZW50aXR5U2V0QnlOYW1lKG5hbWU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRFbnRpdHlTZXRCeU5hbWUobmFtZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBFbnRpdHlTZXQgZm9yIG5hbWUgJHtuYW1lfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgRW50aXR5U2V0OiBNb3JlIHRoYW4gb25lIHZhbHVlIHdhcyBmb3VuZCcpO1xuICAgIHJldHVybiB2YWx1ZXNbMF0gYXMgT0RhdGFFbnRpdHlTZXQ7XG4gIH1cblxuICBwdWJsaWMgbW9kZWxCeU5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZE1vZGVsQnlOYW1lKG5hbWUpKVxuICAgICAgLmZpbHRlcigoZSkgPT4gZSk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHRocm93IEVycm9yKGBObyBNb2RlbCBmb3IgbmFtZSAke25hbWV9IHdhcyBmb3VuZGApO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMSlcbiAgICAgIHRocm93IEVycm9yKCdNdWx0aXBsZSBBUElzOiBNb3JlIHRoYW4gb25lIHZhbHVlIHdhcyBmb3VuZCcpO1xuICAgIHJldHVybiB2YWx1ZXNbMF0gYXMgdHlwZW9mIE9EYXRhTW9kZWw7XG4gIH1cblxuICBwdWJsaWMgY29sbGVjdGlvbkJ5TmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgdmFsdWVzID0gdGhpcy5hcGlzXG4gICAgICAubWFwKChhcGkpID0+IGFwaS5maW5kQ29sbGVjdGlvbkJ5TmFtZShuYW1lKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIENvbGxlY3Rpb24gZm9yIG5hbWUgJHtuYW1lfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIHR5cGVvZiBPRGF0YUNvbGxlY3Rpb247XG4gIH1cbiAgcHVibGljIHNlcnZpY2VCeU5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZFNlcnZpY2VCeU5hbWUobmFtZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBTZXJ2aWNlIGZvciBuYW1lICR7bmFtZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyB0eXBlb2YgT0RhdGFFbnRpdHlTZXJ2aWNlO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxufVxuIl19
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQVlqQyxNQUFNLE9BQU8sYUFBYTtJQUV4QixZQUFZLEdBQUcsT0FBb0I7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDO2dCQUM3QyxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7WUFDOUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUMvQyxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7U0FDaEU7UUFDRCxtREFBbUQ7UUFDbkQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxTQUFTLENBQUMsUUFFVDtRQUNDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FB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QUM7YUFDekMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUNyQixNQUFNLEtBQUssQ0FBQyx1QkFBdUIsSUFBSSxZQUFZLENBQUMsQ0FBQztRQUN2RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUNuQixNQUFNLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1FBQzlELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBOEIsQ0FBQztJQUNoRCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPRGF0YUFwaSB9IGZyb20gJy4vYXBpJztcbmltcG9ydCB7IE9EYXRhQ29sbGVjdGlvbiwgT0RhdGFNb2RlbCB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IE9EYXRhUmVxdWVzdCB9IGZyb20gJy4vcmVzb3VyY2VzJztcbmltcG9ydCB7XG4gIE9EYXRhQ2FsbGFibGUsXG4gIE9EYXRhRW50aXR5U2V0LFxuICBPRGF0YUVudW1UeXBlLFxuICBPRGF0YVN0cnVjdHVyZWRUeXBlLFxufSBmcm9tICcuL3NjaGVtYSc7XG5pbXBvcnQgeyBPRGF0YUVudGl0eVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2VudGl0eSc7XG5pbXBvcnQgeyBBcGlDb25maWcsIFBhcnNlciB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFTZXR0aW5ncyB7XG4gIGFwaXM6IE9EYXRhQXBpW107XG4gIGNvbnN0cnVjdG9yKC4uLmNvbmZpZ3M6IEFwaUNvbmZpZ1tdKSB7XG4gICAgdGhpcy5hcGlzID0gY29uZmlncy5tYXAoKGNvbmZpZykgPT4gbmV3IE9EYXRhQXBpKGNvbmZpZykpO1xuICAgIGlmICh0aGlzLmFwaXMubGVuZ3RoID4gMSkge1xuICAgICAgaWYgKHRoaXMuYXBpcy5zb21lKChjKSA9PiBjLm5hbWUgPT09IHVuZGVmaW5lZCkpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTXVsdGlwbGUgQVBJczogTmVlZHMgY29uZmlndXJhdGlvbiBuYW1lcycpO1xuICAgICAgaWYgKHRoaXMuYXBpcy5maWx0ZXIoKGMpID0+IGMuZGVmYXVsdCkubGVuZ3RoID4gMSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdWx0aXBsZSBBUElzOiBOZWVkcyBvbmx5IG9uZSBkZWZhdWx0IGFwaScpO1xuICAgIH1cbiAgICAvLyBJZiBub3QgZGVmYXVsdCBzZXR1cCBmaXJzdCBjb25maWcgYXMgZGVmYXVsdCBhcGlcbiAgICBpZiAodGhpcy5hcGlzLmV2ZXJ5KChjKSA9PiAhYy5kZWZhdWx0KSkgdGhpcy5hcGlzWzBdLmRlZmF1bHQgPSB0cnVlO1xuICB9XG5cbiAgY29uZmlndXJlKHNldHRpbmdzOiB7XG4gICAgcmVxdWVzdGVyPzogKHJlcXVlc3Q6IE9EYXRhUmVxdWVzdDxhbnk+KSA9PiBPYnNlcnZhYmxlPGFueT47XG4gIH0pIHtcbiAgICB0aGlzLmFwaXMuZm9yRWFjaCgoYXBpKSA9PiBhcGkuY29uZmlndXJlKHNldHRpbmdzKSk7XG4gIH1cblxuICBwdWJsaWMgZGVmYXVsdEFwaSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlzLmZpbmQoKGMpID0+IGMuZGVmYXVsdCkgYXMgT0RhdGFBcGk7XG4gIH1cbiAgcHVibGljIGZpbmRBcGlCeU5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpcy5maW5kKChjKSA9PiBjLm5hbWUgPT09IG5hbWUpO1xuICB9XG4gIHB1YmxpYyBhcGlCeU5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYXBpID0gdGhpcy5maW5kQXBpQnlOYW1lKG5hbWUpO1xuICAgIGlmIChhcGkgPT09IHVuZGVmaW5lZCkgdGhyb3cgbmV3IEVycm9yKGBObyBBUEkgZm9yIG5hbWU6ICR7bmFtZX1gKTtcbiAgICByZXR1cm4gYXBpO1xuICB9XG4gIHB1YmxpYyBmaW5kQXBpRm9yVHlwZXModHlwZXM6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBpcy5maW5kKChjKSA9PlxuICAgICAgYy5zY2hlbWFzLnNvbWUoKHMpID0+IHR5cGVzLnNvbWUoKHR5cGUpID0+IHMuaXNOYW1lc3BhY2VPZih0eXBlKSkpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZmluZEFwaUZvclR5cGUodHlwZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZmluZEFwaUZvclR5cGVzKFt0eXBlXSk7XG4gIH1cbiAgcHVibGljIGFwaUZvclR5cGUodHlwZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYXBpID0gdGhpcy5maW5kQXBpRm9yVHlwZSh0eXBlKTtcbiAgICBpZiAoYXBpID09PSB1bmRlZmluZWQpIHRocm93IG5ldyBFcnJvcihgTm8gQVBJIGZvciB0eXBlOiAke3R5cGV9YCk7XG4gICAgcmV0dXJuIGFwaTtcbiAgfVxuXG4gIC8vI3JlZ2lvbiBDb25maWdzIHNob3J0Y3V0c1xuICBwdWJsaWMgZW51bVR5cGVGb3JUeXBlPFQ+KHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRFbnVtVHlwZUZvclR5cGU8VD4odHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkgdGhyb3cgRXJyb3IoYE5vIEVudW0gZm9yIHR5cGUgJHt0eXBlfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIE9EYXRhRW51bVR5cGU8VD47XG4gIH1cblxuICBwdWJsaWMgc3RydWN0dXJlZFR5cGVGb3JUeXBlPFQ+KHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRTdHJ1Y3R1cmVkVHlwZUZvclR5cGU8VD4odHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBTdHJ1Y3R1cmVkIGZvciB0eXBlICR7dHlwZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyBPRGF0YVN0cnVjdHVyZWRUeXBlPFQ+O1xuICB9XG5cbiAgcHVibGljIGNhbGxhYmxlRm9yVHlwZTxUPih0eXBlOiBzdHJpbmcsIGJpbmRpbmdUeXBlPzogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZENhbGxhYmxlRm9yVHlwZTxUPih0eXBlLCBiaW5kaW5nVHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBDYWxsYWJsZSBmb3IgdHlwZSAke3R5cGV9IHdhcyBmb3VuZGApO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMSlcbiAgICAgIHRocm93IEVycm9yKCdNdWx0aXBsZSBBUElzOiBNb3JlIHRoYW4gb25lIHZhbHVlIHdhcyBmb3VuZCcpO1xuICAgIHJldHVybiB2YWx1ZXNbMF0gYXMgT0RhdGFDYWxsYWJsZTxUPjtcbiAgfVxuXG4gIHB1YmxpYyBlbnRpdHlTZXRGb3JUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRFbnRpdHlTZXRGb3JUeXBlKHR5cGUpKVxuICAgICAgLmZpbHRlcigoZSkgPT4gZSk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApXG4gICAgICB0aHJvdyBFcnJvcihgTm8gRW50aXR5U2V0IGZvciB0eXBlICR7dHlwZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyBPRGF0YUVudGl0eVNldDtcbiAgfVxuXG4gIHB1YmxpYyBwYXJzZXJGb3JUeXBlPFQ+KHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLnBhcnNlckZvclR5cGU8VD4odHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBQYXJzZXIgZm9yIHR5cGUgJHt0eXBlfSB3YXMgZm91bmRgKTtcbiAgICBpZiAoIXR5cGUuc3RhcnRzV2l0aCgnRWRtLicpICYmIHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyBQYXJzZXI8VD47XG4gIH1cblxuICBwdWJsaWMgbW9kZWxGb3JUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRNb2RlbEZvclR5cGUodHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkgdGhyb3cgRXJyb3IoYE5vIE1vZGVsIGZvciB0eXBlICR7dHlwZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyB0eXBlb2YgT0RhdGFNb2RlbDtcbiAgfVxuXG4gIHB1YmxpYyBjb2xsZWN0aW9uRm9yVHlwZSh0eXBlOiBzdHJpbmcpIHtcbiAgICBsZXQgdmFsdWVzID0gdGhpcy5hcGlzXG4gICAgICAubWFwKChhcGkpID0+IGFwaS5maW5kQ29sbGVjdGlvbkZvclR5cGUodHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBDb2xsZWN0aW9uIGZvciB0eXBlICR7dHlwZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyB0eXBlb2YgT0RhdGFDb2xsZWN0aW9uO1xuICB9XG5cbiAgcHVibGljIHNlcnZpY2VGb3JUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRTZXJ2aWNlRm9yVHlwZSh0eXBlKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIFNlcnZpY2UgZm9yIHR5cGUgJHt0eXBlfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIHR5cGVvZiBPRGF0YUVudGl0eVNlcnZpY2U7XG4gIH1cbiAgcHVibGljIHNlcnZpY2VGb3JFbnRpdHlUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRTZXJ2aWNlRm9yRW50aXR5VHlwZSh0eXBlKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIFNlcnZpY2UgZm9yIHR5cGUgJHt0eXBlfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIHR5cGVvZiBPRGF0YUVudGl0eVNlcnZpY2U7XG4gIH1cblxuICBwdWJsaWMgZW51bVR5cGVCeU5hbWU8VD4obmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZEVudW1UeXBlQnlOYW1lPFQ+KG5hbWUpKVxuICAgICAgLmZpbHRlcigoZSkgPT4gZSk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHRocm93IEVycm9yKGBObyBFbnVtIGZvciBuYW1lICR7bmFtZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyBPRGF0YUVudW1UeXBlPFQ+O1xuICB9XG5cbiAgcHVibGljIHN0cnVjdHVyZWRUeXBlQnlOYW1lPFQ+KG5hbWU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRTdHJ1Y3R1cmVkVHlwZUJ5TmFtZTxUPihuYW1lKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIFN0cnVjdHVyZWQgZm9yIG5hbWUgJHtuYW1lfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgU3RydWN0dXJlZDogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIE9EYXRhU3RydWN0dXJlZFR5cGU8VD47XG4gIH1cblxuICBwdWJsaWMgY2FsbGFibGVCeU5hbWU8VD4obmFtZTogc3RyaW5nLCBiaW5kaW5nVHlwZT86IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRDYWxsYWJsZUJ5TmFtZTxUPihuYW1lLCBiaW5kaW5nVHlwZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBDYWxsYWJsZSBmb3IgbmFtZSAke25hbWV9IHdhcyBmb3VuZGApO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMSlcbiAgICAgIHRocm93IEVycm9yKCdNdWx0aXBsZSBDYWxsYWJsZTogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIE9EYXRhQ2FsbGFibGU8VD47XG4gIH1cblxuICBwdWJsaWMgZW50aXR5U2V0QnlOYW1lKG5hbWU6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZXMgPSB0aGlzLmFwaXNcbiAgICAgIC5tYXAoKGFwaSkgPT4gYXBpLmZpbmRFbnRpdHlTZXRCeU5hbWUobmFtZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBFbnRpdHlTZXQgZm9yIG5hbWUgJHtuYW1lfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgRW50aXR5U2V0OiBNb3JlIHRoYW4gb25lIHZhbHVlIHdhcyBmb3VuZCcpO1xuICAgIHJldHVybiB2YWx1ZXNbMF0gYXMgT0RhdGFFbnRpdHlTZXQ7XG4gIH1cblxuICBwdWJsaWMgbW9kZWxCeU5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZE1vZGVsQnlOYW1lKG5hbWUpKVxuICAgICAgLmZpbHRlcigoZSkgPT4gZSk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHRocm93IEVycm9yKGBObyBNb2RlbCBmb3IgbmFtZSAke25hbWV9IHdhcyBmb3VuZGApO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMSlcbiAgICAgIHRocm93IEVycm9yKCdNdWx0aXBsZSBBUElzOiBNb3JlIHRoYW4gb25lIHZhbHVlIHdhcyBmb3VuZCcpO1xuICAgIHJldHVybiB2YWx1ZXNbMF0gYXMgdHlwZW9mIE9EYXRhTW9kZWw7XG4gIH1cblxuICBwdWJsaWMgY29sbGVjdGlvbkJ5TmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgdmFsdWVzID0gdGhpcy5hcGlzXG4gICAgICAubWFwKChhcGkpID0+IGFwaS5maW5kQ29sbGVjdGlvbkJ5TmFtZShuYW1lKSlcbiAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgRXJyb3IoYE5vIENvbGxlY3Rpb24gZm9yIG5hbWUgJHtuYW1lfSB3YXMgZm91bmRgKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDEpXG4gICAgICB0aHJvdyBFcnJvcignTXVsdGlwbGUgQVBJczogTW9yZSB0aGFuIG9uZSB2YWx1ZSB3YXMgZm91bmQnKTtcbiAgICByZXR1cm4gdmFsdWVzWzBdIGFzIHR5cGVvZiBPRGF0YUNvbGxlY3Rpb247XG4gIH1cbiAgcHVibGljIHNlcnZpY2VCeU5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbHVlcyA9IHRoaXMuYXBpc1xuICAgICAgLm1hcCgoYXBpKSA9PiBhcGkuZmluZFNlcnZpY2VCeU5hbWUobmFtZSkpXG4gICAgICAuZmlsdGVyKChlKSA9PiBlKTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHRocm93IEVycm9yKGBObyBTZXJ2aWNlIGZvciBuYW1lICR7bmFtZX0gd2FzIGZvdW5kYCk7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAxKVxuICAgICAgdGhyb3cgRXJyb3IoJ011bHRpcGxlIEFQSXM6IE1vcmUgdGhhbiBvbmUgdmFsdWUgd2FzIGZvdW5kJyk7XG4gICAgcmV0dXJuIHZhbHVlc1swXSBhcyB0eXBlb2YgT0RhdGFFbnRpdHlTZXJ2aWNlO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxufVxuIl19
@@ -0,0 +1,37 @@
1
+ export var PathSegmentNames;
2
+ (function (PathSegmentNames) {
3
+ PathSegmentNames["batch"] = "batch";
4
+ PathSegmentNames["metadata"] = "metadata";
5
+ PathSegmentNames["entitySet"] = "entitySet";
6
+ PathSegmentNames["singleton"] = "singleton";
7
+ PathSegmentNames["type"] = "type";
8
+ PathSegmentNames["property"] = "property";
9
+ PathSegmentNames["navigationProperty"] = "navigationProperty";
10
+ PathSegmentNames["reference"] = "reference";
11
+ PathSegmentNames["value"] = "value";
12
+ PathSegmentNames["count"] = "count";
13
+ PathSegmentNames["function"] = "function";
14
+ PathSegmentNames["action"] = "action";
15
+ })(PathSegmentNames || (PathSegmentNames = {}));
16
+ export var QueryOptionNames;
17
+ (function (QueryOptionNames) {
18
+ QueryOptionNames["select"] = "select";
19
+ QueryOptionNames["expand"] = "expand";
20
+ QueryOptionNames["compute"] = "compute";
21
+ QueryOptionNames["filter"] = "filter";
22
+ QueryOptionNames["search"] = "search";
23
+ QueryOptionNames["transform"] = "transform";
24
+ QueryOptionNames["orderBy"] = "orderBy";
25
+ QueryOptionNames["top"] = "top";
26
+ QueryOptionNames["skip"] = "skip";
27
+ QueryOptionNames["skiptoken"] = "skiptoken";
28
+ QueryOptionNames["format"] = "format";
29
+ QueryOptionNames["count"] = "count";
30
+ })(QueryOptionNames || (QueryOptionNames = {}));
31
+ export const NONE_PARSER = {
32
+ deserialize: (value) => value,
33
+ serialize: (value) => value,
34
+ encode: (value) => value,
35
+ };
36
+ //#endregion
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsTUFBTSxDQUFOLElBQVksZ0JBYVg7QUFiRCxXQUFZLGdCQUFnQjtJQUMxQixtQ0FBZSxDQUFBO0lBQ2YseUNBQXFCLENBQUE7SUFDckIsMkNBQXVCLENBQUE7SUFDdkIsMkNBQXVCLENBQUE7SUFDdkIsaUNBQWEsQ0FBQTtJQUNiLHlDQUFxQixDQUFBO0lBQ3JCLDZEQUF5QyxDQUFBO0lBQ3pDLDJDQUF1QixDQUFBO0lBQ3ZCLG1DQUFlLENBQUE7SUFDZixtQ0FBZSxDQUFBO0lBQ2YseUNBQXFCLENBQUE7SUFDckIscUNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQWJXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFhM0I7QUFFRCxNQUFNLENBQU4sSUFBWSxnQkFhWDtBQWJELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLHFDQUFpQixDQUFBO0lBQ2pCLHVDQUFtQixDQUFBO0lBQ25CLHFDQUFpQixDQUFBO0lBQ2pCLHFDQUFpQixDQUFBO0lBQ2pCLDJDQUF1QixDQUFBO0lBQ3ZCLHVDQUFtQixDQUFBO0lBQ25CLCtCQUFXLENBQUE7SUFDWCxpQ0FBYSxDQUFBO0lBQ2IsMkNBQXVCLENBQUE7SUFDdkIscUNBQWlCLENBQUE7SUFDakIsbUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBYlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQWEzQjtBQW9FRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsV0FBVyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLO0lBQ2xDLFNBQVMsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsS0FBSztJQUNoQyxNQUFNLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUs7Q0FDZixDQUFDO0FBd0dqQixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT0RhdGFWZXJzaW9uSGVscGVyIH0gZnJvbSAnLi9oZWxwZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBPRGF0YVZlcnNpb24gPSAnMi4wJyB8ICczLjAnIHwgJzQuMCc7XG5leHBvcnQgdHlwZSBGZXRjaFBvbGljeSA9XG4gIHwgJ2NhY2hlLWZpcnN0J1xuICB8ICdjYWNoZS1hbmQtbmV0d29yaydcbiAgfCAnbmV0d29yay1vbmx5J1xuICB8ICduby1jYWNoZSdcbiAgfCAnY2FjaGUtb25seSc7XG5leHBvcnQgdHlwZSBPRGF0YU1ldGFkYXRhVHlwZSA9ICdtaW5pbWFsJyB8ICdmdWxsJyB8ICdub25lJztcbmV4cG9ydCB0eXBlIENhY2hlQ2FjaGVhYmlsaXR5ID0gJ3B1YmxpYycgfCAncHJpdmF0ZScgfCAnbm8tY2FjaGUnIHwgJ25vLXN0b3JlJztcblxuZXhwb3J0IGVudW0gUGF0aFNlZ21lbnROYW1lcyB7XG4gIGJhdGNoID0gJ2JhdGNoJyxcbiAgbWV0YWRhdGEgPSAnbWV0YWRhdGEnLFxuICBlbnRpdHlTZXQgPSAnZW50aXR5U2V0JyxcbiAgc2luZ2xldG9uID0gJ3NpbmdsZXRvbicsXG4gIHR5cGUgPSAndHlwZScsXG4gIHByb3BlcnR5ID0gJ3Byb3BlcnR5JyxcbiAgbmF2aWdhdGlvblByb3BlcnR5ID0gJ25hdmlnYXRpb25Qcm9wZXJ0eScsXG4gIHJlZmVyZW5jZSA9ICdyZWZlcmVuY2UnLFxuICB2YWx1ZSA9ICd2YWx1ZScsXG4gIGNvdW50ID0gJ2NvdW50JyxcbiAgZnVuY3Rpb24gPSAnZnVuY3Rpb24nLFxuICBhY3Rpb24gPSAnYWN0aW9uJyxcbn1cblxuZXhwb3J0IGVudW0gUXVlcnlPcHRpb25OYW1lcyB7XG4gIHNlbGVjdCA9ICdzZWxlY3QnLFxuICBleHBhbmQgPSAnZXhwYW5kJyxcbiAgY29tcHV0ZSA9ICdjb21wdXRlJyxcbiAgZmlsdGVyID0gJ2ZpbHRlcicsXG4gIHNlYXJjaCA9ICdzZWFyY2gnLFxuICB0cmFuc2Zvcm0gPSAndHJhbnNmb3JtJyxcbiAgb3JkZXJCeSA9ICdvcmRlckJ5JyxcbiAgdG9wID0gJ3RvcCcsXG4gIHNraXAgPSAnc2tpcCcsXG4gIHNraXB0b2tlbiA9ICdza2lwdG9rZW4nLFxuICBmb3JtYXQgPSAnZm9ybWF0JyxcbiAgY291bnQgPSAnY291bnQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbnMge1xuICB2ZXJzaW9uPzogT0RhdGFWZXJzaW9uO1xuICBzdHJpbmdBc0VudW0/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaU9wdGlvbnMgZXh0ZW5kcyBPcHRpb25zIHtcbiAgcGFyYW1zPzogeyBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH07XG4gIGhlYWRlcnM/OiB7IFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfTtcbiAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcbiAgLy9IZWFkZXJzXG4gIGFjY2VwdD86IHtcbiAgICBleHBvbmVudGlhbERlY2ltYWxzPzogYm9vbGVhbjtcbiAgICBtZXRhZGF0YT86IE9EYXRhTWV0YWRhdGFUeXBlO1xuICAgIGllZWU3NTRDb21wYXRpYmxlPzogYm9vbGVhbjtcbiAgICBzdHJlYW1pbmc/OiBib29sZWFuO1xuICB9O1xuICBldGFnPzoge1xuICAgIGlmTWF0Y2g/OiBib29sZWFuO1xuICAgIGlmTm9uZU1hdGNoPzogYm9vbGVhbjtcbiAgfTtcbiAgcHJlZmVyPzoge1xuICAgIG1heFBhZ2VTaXplPzogbnVtYmVyO1xuICAgIHJldHVybj86ICdyZXByZXNlbnRhdGlvbicgfCAnbWluaW1hbCc7XG4gICAgY29udGludWVPbkVycm9yPzogYm9vbGVhbjtcbiAgICBpbmNsdWRlQW5ub3RhdGlvbnM/OiBzdHJpbmc7XG4gIH07XG4gIHN0cmlwTWV0YWRhdGE/OiBPRGF0YU1ldGFkYXRhVHlwZTtcbiAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgYm9keVF1ZXJ5T3B0aW9ucz86IFF1ZXJ5T3B0aW9uTmFtZXNbXTtcbiAgLy9odHRwczovL2dpdGh1Yi5jb20vT0RhdGEvV2ViQXBpL2lzc3Vlcy8xOTc0XG4gIC8vaHR0cHM6Ly9naXRodWIuY29tL09EYXRhL1dlYkFwaS9pc3N1ZXMvMTY0N1xuICBkZWxldGVSZWZCeT86ICdwYXRoJyB8ICdpZCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uc0hlbHBlciBleHRlbmRzIE9wdGlvbnMge1xuICBoZWxwZXI6IE9EYXRhVmVyc2lvbkhlbHBlcjtcbiAgZXhwb25lbnRpYWxEZWNpbWFscz86IGJvb2xlYW47XG4gIG1ldGFkYXRhPzogT0RhdGFNZXRhZGF0YVR5cGU7XG4gIGllZWU3NTRDb21wYXRpYmxlPzogYm9vbGVhbjtcbiAgc3RyZWFtaW5nPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zZU9wdGlvbnMgZXh0ZW5kcyBPcHRpb25zSGVscGVyIHtcbiAgY2FjaGVhYmlsaXR5PzogQ2FjaGVDYWNoZWFiaWxpdHk7XG4gIG1heEFnZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdHJ1Y3R1cmVkVHlwZUZpZWxkT3B0aW9ucyBleHRlbmRzIE9wdGlvbnNIZWxwZXIge1xuICBmaWVsZDogU3RydWN0dXJlZFR5cGVGaWVsZENvbmZpZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJzZXI8VD4ge1xuICAvLyBEZXNlcmlhbGl6ZSB2YWx1ZS9zIGZyb20gcmVxdWVzdCBib2R5LlxuICBkZXNlcmlhbGl6ZShcbiAgICB2YWx1ZTogYW55LFxuICAgIG9wdGlvbnM/OiBPcHRpb25zSGVscGVyIHwgU3RydWN0dXJlZFR5cGVGaWVsZE9wdGlvbnNcbiAgKTogVDtcbiAgLy8gU2VyaWFsaXplIHZhbHVlL3MgZm9yIHJlcXVlc3QgYm9keS5cbiAgc2VyaWFsaXplKFxuICAgIHZhbHVlOiBhbnksXG4gICAgb3B0aW9ucz86IE9wdGlvbnNIZWxwZXIgfCBTdHJ1Y3R1cmVkVHlwZUZpZWxkT3B0aW9uc1xuICApOiBhbnk7XG4gIC8vRW5jb2RlIHZhbHVlL3MgZm9yIFVSTCBwYXJhbWV0ZXIgb3IgcXVlcnktc3RyaW5nLlxuICBlbmNvZGUodmFsdWU6IGFueSwgb3B0aW9ucz86IE9wdGlvbnNIZWxwZXIgfCBTdHJ1Y3R1cmVkVHlwZUZpZWxkT3B0aW9ucyk6IGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IE5PTkVfUEFSU0VSID0ge1xuICBkZXNlcmlhbGl6ZTogKHZhbHVlOiBhbnkpID0+IHZhbHVlLFxuICBzZXJpYWxpemU6ICh2YWx1ZTogYW55KSA9PiB2YWx1ZSxcbiAgZW5jb2RlOiAodmFsdWU6IGFueSkgPT4gdmFsdWUsXG59IGFzIFBhcnNlcjxhbnk+O1xuXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlIHtcbiAgcHV0PFQ+KGtleTogc3RyaW5nLCBwYXlsb2FkOiBULCAuLi5vcHRzOiBhbnlbXSk6IHZvaWQ7XG4gIGdldDxUPihrZXk6IHN0cmluZywgLi4ub3B0czogYW55W10pOiBUIHwgdW5kZWZpbmVkO1xufVxuXG4vLyNyZWdpb24gQ29uZmlnc1xuZXhwb3J0IHR5cGUgQXBpQ29uZmlnID0ge1xuICBzZXJ2aWNlUm9vdFVybDogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogT0RhdGFWZXJzaW9uO1xuICBkZWZhdWx0PzogYm9vbGVhbjtcbiAgY3JlYXRpb24/OiBEYXRlO1xuICBjYWNoZT86IENhY2hlO1xuICBlcnJvckhhbmRsZXI/OiAoZXJyb3I6IGFueSwgY2F1Z2h0OiBPYnNlcnZhYmxlPGFueT4pID0+IE9ic2VydmFibGU8bmV2ZXI+O1xuICBvcHRpb25zPzogQXBpT3B0aW9ucztcbiAgcGFyc2Vycz86IHsgW3R5cGU6IHN0cmluZ106IFBhcnNlcjxhbnk+IH07XG4gIHNjaGVtYXM/OiBTY2hlbWFDb25maWdbXTtcbn07XG5leHBvcnQgdHlwZSBBbm5vdGF0aW9uQ29uZmlnID0ge1xuICB0ZXJtOiBzdHJpbmc7XG4gIHN0cmluZz86IHN0cmluZztcbiAgYm9vbD86IGJvb2xlYW47XG4gIGludD86IG51bWJlcjtcbiAgcGVybWlzc2lvbnM/OiBzdHJpbmdbXTtcbiAgcHJvcGVydGllcz86IHN0cmluZ1tdO1xufTtcbmV4cG9ydCB0eXBlIFNjaGVtYUNvbmZpZyA9IHtcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIGFsaWFzPzogc3RyaW5nO1xuICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25Db25maWdbXTtcbiAgZW51bXM/OiBFbnVtVHlwZUNvbmZpZzxhbnk+W107XG4gIGVudGl0aWVzPzogU3RydWN0dXJlZFR5cGVDb25maWc8YW55PltdO1xuICBjYWxsYWJsZXM/OiBDYWxsYWJsZUNvbmZpZ1tdO1xuICBjb250YWluZXJzPzogRW50aXR5Q29udGFpbmVyQ29uZmlnW107XG59O1xuXG5leHBvcnQgdHlwZSBFbnRpdHlDb250YWluZXJDb25maWcgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uQ29uZmlnW107XG4gIGVudGl0eVNldHM/OiBFbnRpdHlTZXRDb25maWdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEVudW1UeXBlRmllbGRDb25maWcgPSB7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGFubm90YXRpb25zPzogQW5ub3RhdGlvbkNvbmZpZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgRW51bVR5cGVDb25maWc8VD4gPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgZmxhZ3M/OiBib29sZWFuO1xuICBhbm5vdGF0aW9ucz86IEFubm90YXRpb25Db25maWdbXTtcbiAgbWVtYmVyczogeyBbbmFtZTogc3RyaW5nXTogbnVtYmVyIH0gfCB7IFt2YWx1ZTogbnVtYmVyXTogc3RyaW5nIH07XG4gIGZpZWxkczogeyBbbWVtYmVyOiBzdHJpbmddOiBFbnVtVHlwZUZpZWxkQ29uZmlnIH07XG59O1xuXG5leHBvcnQgdHlwZSBTdHJ1Y3R1cmVkVHlwZUZpZWxkQ29uZmlnID0ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGRlZmF1bHQ/OiBhbnk7XG4gIG1heExlbmd0aD86IG51bWJlcjtcbiAga2V5PzogYm9vbGVhbjtcbiAgY29sbGVjdGlvbj86IGJvb2xlYW47XG4gIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgbmF2aWdhdGlvbj86IGJvb2xlYW47XG4gIHByZWNpc2lvbj86IG51bWJlcjtcbiAgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uQ29uZmlnW107XG4gIHNjYWxlPzogbnVtYmVyO1xuICByZWZlcmVudGlhbHM/OiB7IHByb3BlcnR5OiBzdHJpbmc7IHJlZmVyZW5jZWRQcm9wZXJ0eTogc3RyaW5nIH1bXTtcbiAgcmVmZXJlbnRpYWw/OiBzdHJpbmc7XG4gIHJlZmVyZW5jZWQ/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBTdHJ1Y3R1cmVkVHlwZUNvbmZpZzxUPiA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBiYXNlPzogc3RyaW5nO1xuICBvcGVuPzogYm9vbGVhbjtcbiAgbW9kZWw/OiB7IG5ldyAoLi4ucGFyYW1zOiBhbnlbXSk6IGFueSB9O1xuICBjb2xsZWN0aW9uPzogeyBuZXcgKC4uLnBhcmFtczogYW55W10pOiBhbnkgfTtcbiAgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uQ29uZmlnW107XG4gIGtleXM/OiB7IG5hbWU6IHN0cmluZzsgYWxpYXM/OiBzdHJpbmcgfVtdO1xuICBmaWVsZHM6IHsgW1AgaW4ga2V5b2YgVF0/OiBTdHJ1Y3R1cmVkVHlwZUZpZWxkQ29uZmlnIH07XG59O1xuXG5leHBvcnQgdHlwZSBQYXJhbWV0ZXIgPSB7XG4gIHR5cGU6IHN0cmluZztcbiAgbnVsbGFibGU/OiBib29sZWFuO1xuICBjb2xsZWN0aW9uPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIENhbGxhYmxlQ29uZmlnID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGVudGl0eVNldFBhdGg/OiBzdHJpbmc7XG4gIGJvdW5kPzogYm9vbGVhbjtcbiAgY29tcG9zYWJsZT86IGJvb2xlYW47XG4gIHBhcmFtZXRlcnM/OiB7IFtuYW1lOiBzdHJpbmddOiBQYXJhbWV0ZXIgfTtcbiAgcmV0dXJuPzogeyB0eXBlOiBzdHJpbmc7IGNvbGxlY3Rpb24/OiBib29sZWFuIH07XG59O1xuZXhwb3J0IHR5cGUgRW50aXR5U2V0Q29uZmlnID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGVudGl0eVR5cGU6IHN0cmluZztcbiAgc2VydmljZTogeyBuZXcgKC4uLnBhcmFtczogYW55W10pOiBhbnkgfTtcbiAgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uQ29uZmlnW107XG59O1xuLy8jZW5kcmVnaW9uXG4iXX0=
@@ -0,0 +1,46 @@
1
+ //https://github.com/niklasvh/base64-arraybuffer
2
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
3
+ // Use a lookup table to find the index.
4
+ const lookup = new Uint8Array(256);
5
+ for (var i = 0; i < chars.length; i++) {
6
+ lookup[chars.charCodeAt(i)] = i;
7
+ }
8
+ export const ArrayBuffers = {
9
+ toArrayBuffer(v) {
10
+ var bufferLength = v.length * 0.75, len = v.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;
11
+ if (v[v.length - 1] === '=') {
12
+ bufferLength--;
13
+ if (v[v.length - 2] === '=') {
14
+ bufferLength--;
15
+ }
16
+ }
17
+ var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);
18
+ for (i = 0; i < len; i += 4) {
19
+ encoded1 = lookup[v.charCodeAt(i)];
20
+ encoded2 = lookup[v.charCodeAt(i + 1)];
21
+ encoded3 = lookup[v.charCodeAt(i + 2)];
22
+ encoded4 = lookup[v.charCodeAt(i + 3)];
23
+ bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);
24
+ bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);
25
+ bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);
26
+ }
27
+ return arraybuffer;
28
+ },
29
+ toString(v) {
30
+ var bytes = new Uint8Array(v), i, len = bytes.length, base64 = '';
31
+ for (i = 0; i < len; i += 3) {
32
+ base64 += chars[bytes[i] >> 2];
33
+ base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];
34
+ base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];
35
+ base64 += chars[bytes[i + 2] & 63];
36
+ }
37
+ if (len % 3 === 2) {
38
+ base64 = base64.substring(0, base64.length - 1) + '=';
39
+ }
40
+ else if (len % 3 === 1) {
41
+ base64 = base64.substring(0, base64.length - 2) + '==';
42
+ }
43
+ return base64;
44
+ },
45
+ };
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlidWZmZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3V0aWxzL2FycmF5YnVmZmVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnREFBZ0Q7QUFDaEQsTUFBTSxLQUFLLEdBQ1Qsa0VBQWtFLENBQUM7QUFFckUsd0NBQXdDO0FBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ3JDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0NBQ2pDO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLGFBQWEsQ0FBQyxDQUFTO1FBQ3JCLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUNoQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFDZCxDQUFDLEVBQ0QsQ0FBQyxHQUFHLENBQUMsRUFDTCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLENBQUM7UUFFWCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtZQUMzQixZQUFZLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO2dCQUMzQixZQUFZLEVBQUUsQ0FBQzthQUNoQjtTQUNGO1FBRUQsSUFBSSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsWUFBWSxDQUFDLEVBQzdDLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV0QyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzNCLFFBQVEsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25DLFFBQVEsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXZDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQy9DLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdEQsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUN0RDtRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxRQUFRLENBQUMsQ0FBYztRQUNyQixJQUFJLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFDM0IsQ0FBQyxFQUNELEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUNsQixNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRSxNQUFNLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDcEM7UUFFRCxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUN2RDthQUFNLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ3hEO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvL2h0dHBzOi8vZ2l0aHViLmNvbS9uaWtsYXN2aC9iYXNlNjQtYXJyYXlidWZmZXJcbmNvbnN0IGNoYXJzID1cbiAgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nO1xuXG4vLyBVc2UgYSBsb29rdXAgdGFibGUgdG8gZmluZCB0aGUgaW5kZXguXG5jb25zdCBsb29rdXAgPSBuZXcgVWludDhBcnJheSgyNTYpO1xuZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykge1xuICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpO1xufVxuXG5leHBvcnQgY29uc3QgQXJyYXlCdWZmZXJzID0ge1xuICB0b0FycmF5QnVmZmVyKHY6IHN0cmluZyk6IEFycmF5QnVmZmVyIHtcbiAgICB2YXIgYnVmZmVyTGVuZ3RoID0gdi5sZW5ndGggKiAwLjc1LFxuICAgICAgbGVuID0gdi5sZW5ndGgsXG4gICAgICBpLFxuICAgICAgcCA9IDAsXG4gICAgICBlbmNvZGVkMSxcbiAgICAgIGVuY29kZWQyLFxuICAgICAgZW5jb2RlZDMsXG4gICAgICBlbmNvZGVkNDtcblxuICAgIGlmICh2W3YubGVuZ3RoIC0gMV0gPT09ICc9Jykge1xuICAgICAgYnVmZmVyTGVuZ3RoLS07XG4gICAgICBpZiAodlt2Lmxlbmd0aCAtIDJdID09PSAnPScpIHtcbiAgICAgICAgYnVmZmVyTGVuZ3RoLS07XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGFycmF5YnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGJ1ZmZlckxlbmd0aCksXG4gICAgICBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkgKz0gNCkge1xuICAgICAgZW5jb2RlZDEgPSBsb29rdXBbdi5jaGFyQ29kZUF0KGkpXTtcbiAgICAgIGVuY29kZWQyID0gbG9va3VwW3YuY2hhckNvZGVBdChpICsgMSldO1xuICAgICAgZW5jb2RlZDMgPSBsb29rdXBbdi5jaGFyQ29kZUF0KGkgKyAyKV07XG4gICAgICBlbmNvZGVkNCA9IGxvb2t1cFt2LmNoYXJDb2RlQXQoaSArIDMpXTtcblxuICAgICAgYnl0ZXNbcCsrXSA9IChlbmNvZGVkMSA8PCAyKSB8IChlbmNvZGVkMiA+PiA0KTtcbiAgICAgIGJ5dGVzW3ArK10gPSAoKGVuY29kZWQyICYgMTUpIDw8IDQpIHwgKGVuY29kZWQzID4+IDIpO1xuICAgICAgYnl0ZXNbcCsrXSA9ICgoZW5jb2RlZDMgJiAzKSA8PCA2KSB8IChlbmNvZGVkNCAmIDYzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXJyYXlidWZmZXI7XG4gIH0sXG4gIHRvU3RyaW5nKHY6IEFycmF5QnVmZmVyKTogc3RyaW5nIHtcbiAgICB2YXIgYnl0ZXMgPSBuZXcgVWludDhBcnJheSh2KSxcbiAgICAgIGksXG4gICAgICBsZW4gPSBieXRlcy5sZW5ndGgsXG4gICAgICBiYXNlNjQgPSAnJztcblxuICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkgKz0gMykge1xuICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2ldID4+IDJdO1xuICAgICAgYmFzZTY0ICs9IGNoYXJzWygoYnl0ZXNbaV0gJiAzKSA8PCA0KSB8IChieXRlc1tpICsgMV0gPj4gNCldO1xuICAgICAgYmFzZTY0ICs9IGNoYXJzWygoYnl0ZXNbaSArIDFdICYgMTUpIDw8IDIpIHwgKGJ5dGVzW2kgKyAyXSA+PiA2KV07XG4gICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaSArIDJdICYgNjNdO1xuICAgIH1cblxuICAgIGlmIChsZW4gJSAzID09PSAyKSB7XG4gICAgICBiYXNlNjQgPSBiYXNlNjQuc3Vic3RyaW5nKDAsIGJhc2U2NC5sZW5ndGggLSAxKSArICc9JztcbiAgICB9IGVsc2UgaWYgKGxlbiAlIDMgPT09IDEpIHtcbiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgJz09JztcbiAgICB9XG4gICAgcmV0dXJuIGJhc2U2NDtcbiAgfSxcbn07XG4iXX0=
@@ -0,0 +1,40 @@
1
+ const DURATION_REGEX = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
2
+ export const Durations = {
3
+ toDuration(v) {
4
+ const matches = DURATION_REGEX.exec(v);
5
+ if (!matches || v.length < 3) {
6
+ throw new TypeError(`duration invalid: "${v}". Must be a ISO 8601 duration. See https://en.wikipedia.org/wiki/ISO_8601#Durations`);
7
+ }
8
+ let duration = {};
9
+ duration.sign = matches[1] === '-' ? -1 : 1;
10
+ return [
11
+ 'years',
12
+ 'months',
13
+ 'weeks',
14
+ 'days',
15
+ 'hours',
16
+ 'minutes',
17
+ 'seconds',
18
+ ].reduce((acc, name, index) => {
19
+ const v = parseFloat(matches[index + 2]);
20
+ if (!Number.isNaN(v))
21
+ acc[name] = v;
22
+ return acc;
23
+ }, duration);
24
+ },
25
+ toString(v) {
26
+ return [
27
+ v.sign === -1 ? '-' : '',
28
+ 'P',
29
+ v.years ? v.years + 'Y' : '',
30
+ v.months ? v.months + 'M' : '',
31
+ v.weeks ? v.weeks + 'W' : '',
32
+ v.days ? v.days + 'D' : '',
33
+ 'T',
34
+ v.hours ? v.hours + 'H' : '',
35
+ v.minutes ? v.minutes + 'M' : '',
36
+ v.seconds ? v.seconds + 'S' : '',
37
+ ].join('');
38
+ },
39
+ };
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3V0aWxzL2R1cmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGNBQWMsR0FDbEIscUtBQXFLLENBQUM7QUFjeEssTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3ZCLFVBQVUsQ0FBQyxDQUFTO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM1QixNQUFNLElBQUksU0FBUyxDQUNqQixzQkFBc0IsQ0FBQyxzRkFBc0YsQ0FDOUcsQ0FBQztTQUNIO1FBQ0QsSUFBSSxRQUFRLEdBQWEsRUFBRSxDQUFDO1FBQzVCLFFBQVEsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxPQUFPO1lBQ0wsT0FBTztZQUNQLFFBQVE7WUFDUixPQUFPO1lBQ1AsTUFBTTtZQUNOLE9BQU87WUFDUCxTQUFTO1lBQ1QsU0FBUztTQUNWLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNqQyxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLFFBQVEsQ0FBYSxDQUFDO0lBQzNCLENBQUM7SUFDRCxRQUFRLENBQUMsQ0FBVztRQUNsQixPQUFPO1lBQ0wsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hCLEdBQUc7WUFDSCxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1QixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5QixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxQixHQUFHO1lBQ0gsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDNUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDakMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDYixDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IERVUkFUSU9OX1JFR0VYID1cbiAgL14oLXxcXCspP1AoPzooWy0rXT9bMC05LC5dKilZKT8oPzooWy0rXT9bMC05LC5dKilNKT8oPzooWy0rXT9bMC05LC5dKilXKT8oPzooWy0rXT9bMC05LC5dKilEKT8oPzpUKD86KFstK10/WzAtOSwuXSopSCk/KD86KFstK10/WzAtOSwuXSopTSk/KD86KFstK10/WzAtOSwuXSopUyk/KT8kLztcblxuLy9odHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNEdXJhdGlvbnNcbmV4cG9ydCB0eXBlIER1cmF0aW9uID0ge1xuICBzaWduPzogMSB8IC0xO1xuICB5ZWFycz86IG51bWJlcjtcbiAgbW9udGhzPzogbnVtYmVyO1xuICB3ZWVrcz86IG51bWJlcjtcbiAgZGF5cz86IG51bWJlcjtcbiAgaG91cnM/OiBudW1iZXI7XG4gIG1pbnV0ZXM/OiBudW1iZXI7XG4gIHNlY29uZHM/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgY29uc3QgRHVyYXRpb25zID0ge1xuICB0b0R1cmF0aW9uKHY6IHN0cmluZyk6IER1cmF0aW9uIHtcbiAgICBjb25zdCBtYXRjaGVzID0gRFVSQVRJT05fUkVHRVguZXhlYyh2KTtcbiAgICBpZiAoIW1hdGNoZXMgfHwgdi5sZW5ndGggPCAzKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICBgZHVyYXRpb24gaW52YWxpZDogXCIke3Z9XCIuIE11c3QgYmUgYSBJU08gODYwMSBkdXJhdGlvbi4gU2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI0R1cmF0aW9uc2BcbiAgICAgICk7XG4gICAgfVxuICAgIGxldCBkdXJhdGlvbjogRHVyYXRpb24gPSB7fTtcbiAgICBkdXJhdGlvbi5zaWduID0gbWF0Y2hlc1sxXSA9PT0gJy0nID8gLTEgOiAxO1xuICAgIHJldHVybiBbXG4gICAgICAneWVhcnMnLFxuICAgICAgJ21vbnRocycsXG4gICAgICAnd2Vla3MnLFxuICAgICAgJ2RheXMnLFxuICAgICAgJ2hvdXJzJyxcbiAgICAgICdtaW51dGVzJyxcbiAgICAgICdzZWNvbmRzJyxcbiAgICBdLnJlZHVjZSgoYWNjOiBhbnksIG5hbWUsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCB2ID0gcGFyc2VGbG9hdChtYXRjaGVzW2luZGV4ICsgMl0pO1xuICAgICAgaWYgKCFOdW1iZXIuaXNOYU4odikpIGFjY1tuYW1lXSA9IHY7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIGR1cmF0aW9uKSBhcyBEdXJhdGlvbjtcbiAgfSxcbiAgdG9TdHJpbmcodjogRHVyYXRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICB2LnNpZ24gPT09IC0xID8gJy0nIDogJycsXG4gICAgICAnUCcsXG4gICAgICB2LnllYXJzID8gdi55ZWFycyArICdZJyA6ICcnLFxuICAgICAgdi5tb250aHMgPyB2Lm1vbnRocyArICdNJyA6ICcnLFxuICAgICAgdi53ZWVrcyA/IHYud2Vla3MgKyAnVycgOiAnJyxcbiAgICAgIHYuZGF5cyA/IHYuZGF5cyArICdEJyA6ICcnLFxuICAgICAgJ1QnLFxuICAgICAgdi5ob3VycyA/IHYuaG91cnMgKyAnSCcgOiAnJyxcbiAgICAgIHYubWludXRlcyA/IHYubWludXRlcyArICdNJyA6ICcnLFxuICAgICAgdi5zZWNvbmRzID8gdi5zZWNvbmRzICsgJ1MnIDogJycsXG4gICAgXS5qb2luKCcnKTtcbiAgfSxcbn07XG4iXX0=
@@ -0,0 +1,93 @@
1
+ import { HttpHeaders, HttpParams } from '@angular/common/http';
2
+ import { BOUNDARY_PREFIX_SUFFIX } from '../constants';
3
+ import { Types } from './types';
4
+ export const Http = {
5
+ //Merge Headers
6
+ mergeHttpHeaders(...values) {
7
+ let headers = new HttpHeaders();
8
+ values.forEach((value) => {
9
+ if (value instanceof HttpHeaders) {
10
+ value.keys().forEach((key) => {
11
+ headers = (value.getAll(key) || []).reduce((acc, v) => acc.append(key, v), headers);
12
+ });
13
+ }
14
+ else if (Types.isPlainObject(value)) {
15
+ Object.entries(value).forEach(([key, value]) => {
16
+ headers = (Array.isArray(value) ? value : [value]).reduce((acc, v) => acc.append(key, v), headers);
17
+ });
18
+ }
19
+ });
20
+ return headers;
21
+ },
22
+ // Merge Params
23
+ mergeHttpParams(...values) {
24
+ let params = new HttpParams();
25
+ values.forEach((value) => {
26
+ if (value instanceof HttpParams) {
27
+ value.keys().forEach((key) => {
28
+ params = (value.getAll(key) || []).reduce((acc, v) => acc.append(key, v), params);
29
+ });
30
+ }
31
+ else if (Types.isPlainObject(value)) {
32
+ Object.entries(value).forEach(([key, value]) => {
33
+ params = (Array.isArray(value) ? value : [value]).reduce((acc, v) => acc.append(key, v), params);
34
+ });
35
+ }
36
+ });
37
+ return params;
38
+ },
39
+ // Split Params
40
+ splitHttpParams(params, keys) {
41
+ let other = new HttpParams();
42
+ params.keys().forEach((key) => {
43
+ if (keys.includes(key)) {
44
+ other = (params.getAll(key) || []).reduce((acc, v) => acc.append(key, v), other);
45
+ params = params.delete(key);
46
+ }
47
+ });
48
+ return [params, other];
49
+ },
50
+ // Without Params
51
+ withoutHttpParams(params, keys) {
52
+ return keys.reduce((acc, key) => acc.delete(key), params);
53
+ },
54
+ resolveHeaderKey(headers, options) {
55
+ if (headers instanceof HttpHeaders) {
56
+ return headers.keys().find((k) => options.indexOf(k) !== -1);
57
+ }
58
+ else if (Types.isPlainObject(headers)) {
59
+ return Object.keys(headers).find((k) => options.indexOf(k) !== -1);
60
+ }
61
+ return undefined;
62
+ },
63
+ headerValue(header) {
64
+ let res = header.split(';')[0].trim();
65
+ res = res.split(':')[1].trim();
66
+ return res;
67
+ },
68
+ parseResponseStatus(statusLine) {
69
+ const status = statusLine.split(' ')[0];
70
+ const code = parseInt(statusLine.split(' ')[1], 10);
71
+ const message = statusLine.split(' ')[2];
72
+ return { status, code, message };
73
+ },
74
+ boundaryDelimiter(contentType) {
75
+ const contentTypeParts = contentType.split(';');
76
+ if (contentTypeParts.length === 2) {
77
+ const boundary = contentType.split(';')[1].trim();
78
+ const boundaryDelimiter = BOUNDARY_PREFIX_SUFFIX + boundary.split('=')[1];
79
+ return boundaryDelimiter;
80
+ }
81
+ else {
82
+ return '';
83
+ }
84
+ },
85
+ boundaryEnd(boundaryDelimiter) {
86
+ if (!boundaryDelimiter.length) {
87
+ return '';
88
+ }
89
+ const boundaryEnd = boundaryDelimiter + BOUNDARY_PREFIX_SUFFIX;
90
+ return boundaryEnd;
91
+ },
92
+ };
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi91dGlscy9odHRwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEMsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHO0lBQ2xCLGVBQWU7SUFDZixnQkFBZ0IsQ0FDZCxHQUFHLE1BQWlFO1FBRXBFLElBQUksT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3ZCLElBQUksS0FBSyxZQUFZLFdBQVcsRUFBRTtnQkFDaEMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUMzQixPQUFPLEdBQUcsQ0FBRSxLQUFxQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ3pELENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQzlCLE9BQU8sQ0FDUixDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO2FBQ0o7aUJBQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7b0JBQzdDLE9BQU8sR0FBRyxDQUFDLEtBQUss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RUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxXQUFtQjtRQUNuQyxNQUFNLGdCQUFnQixHQUFhLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUQsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLE1BQU0sUUFBUSxHQUFXLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUQsTUFBTSxpQkFBaUIsR0FDckIsc0JBQXNCLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRCxPQUFPLGlCQUFpQixDQUFDO1NBQzFCO2FBQU07WUFDTCxPQUFPLEVBQUUsQ0FBQztTQUNYO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxpQkFBeUI7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRTtZQUM3QixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsTUFBTSxXQUFXLEdBQVcsaUJBQWlCLEdBQUcsc0JBQXNCLENBQUM7UUFDdkUsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgQk9VTkRBUllfUFJFRklYX1NVRkZJWCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUeXBlcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgSHR0cCA9IHtcbiAgLy9NZXJnZSBIZWFkZXJzXG4gIG1lcmdlSHR0cEhlYWRlcnMoXG4gICAgLi4udmFsdWVzOiAoSHR0cEhlYWRlcnMgfCB7IFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0pW11cbiAgKTogSHR0cEhlYWRlcnMge1xuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgdmFsdWVzLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBIdHRwSGVhZGVycykge1xuICAgICAgICB2YWx1ZS5rZXlzKCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgaGVhZGVycyA9ICgodmFsdWUgYXMgSHR0cEhlYWRlcnMpLmdldEFsbChrZXkpIHx8IFtdKS5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjLCB2KSA9PiBhY2MuYXBwZW5kKGtleSwgdiksXG4gICAgICAgICAgICBoZWFkZXJzXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKFR5cGVzLmlzUGxhaW5PYmplY3QodmFsdWUpKSB7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHZhbHVlKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICBoZWFkZXJzID0gKEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdKS5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjLCB2KSA9PiBhY2MuYXBwZW5kKGtleSwgdiksXG4gICAgICAgICAgICBoZWFkZXJzXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH0sXG5cbiAgLy8gTWVyZ2UgUGFyYW1zXG4gIG1lcmdlSHR0cFBhcmFtcyhcbiAgICAuLi52YWx1ZXM6IChIdHRwUGFyYW1zIHwgeyBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0pW11cbiAgKTogSHR0cFBhcmFtcyB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgdmFsdWVzLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBIdHRwUGFyYW1zKSB7XG4gICAgICAgIHZhbHVlLmtleXMoKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICBwYXJhbXMgPSAoKHZhbHVlIGFzIEh0dHBQYXJhbXMpLmdldEFsbChrZXkpIHx8IFtdKS5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjLCB2KSA9PiBhY2MuYXBwZW5kKGtleSwgdiksXG4gICAgICAgICAgICBwYXJhbXNcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoVHlwZXMuaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgT2JqZWN0LmVudHJpZXModmFsdWUpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgIHBhcmFtcyA9IChBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXSkucmVkdWNlKFxuICAgICAgICAgICAgKGFjYywgdikgPT4gYWNjLmFwcGVuZChrZXksIHYpLFxuICAgICAgICAgICAgcGFyYW1zXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfSxcblxuICAvLyBTcGxpdCBQYXJhbXNcbiAgc3BsaXRIdHRwUGFyYW1zKFxuICAgIHBhcmFtczogSHR0cFBhcmFtcyxcbiAgICBrZXlzOiBzdHJpbmdbXVxuICApOiBbSHR0cFBhcmFtcywgSHR0cFBhcmFtc10ge1xuICAgIGxldCBvdGhlciA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zLmtleXMoKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmIChrZXlzLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgb3RoZXIgPSAocGFyYW1zLmdldEFsbChrZXkpIHx8IFtdKS5yZWR1Y2UoXG4gICAgICAgICAgKGFjYywgdikgPT4gYWNjLmFwcGVuZChrZXksIHYpLFxuICAgICAgICAgIG90aGVyXG4gICAgICAgICk7XG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5kZWxldGUoa2V5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gW3BhcmFtcywgb3RoZXJdO1xuICB9LFxuXG4gIC8vIFdpdGhvdXQgUGFyYW1zXG4gIHdpdGhvdXRIdHRwUGFyYW1zKHBhcmFtczogSHR0cFBhcmFtcywga2V5czogc3RyaW5nW10pOiBIdHRwUGFyYW1zIHtcbiAgICByZXR1cm4ga2V5cy5yZWR1Y2UoKGFjYywga2V5KSA9PiBhY2MuZGVsZXRlKGtleSksIHBhcmFtcyk7XG4gIH0sXG5cbiAgcmVzb2x2ZUhlYWRlcktleShcbiAgICBoZWFkZXJzOiBIdHRwSGVhZGVycyB8IHsgW3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9LFxuICAgIG9wdGlvbnM6IHN0cmluZ1tdXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGhlYWRlcnMgaW5zdGFuY2VvZiBIdHRwSGVhZGVycykge1xuICAgICAgcmV0dXJuIGhlYWRlcnMua2V5cygpLmZpbmQoKGspID0+IG9wdGlvbnMuaW5kZXhPZihrKSAhPT0gLTEpO1xuICAgIH0gZWxzZSBpZiAoVHlwZXMuaXNQbGFpbk9iamVjdChoZWFkZXJzKSkge1xuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGhlYWRlcnMpLmZpbmQoKGspID0+IG9wdGlvbnMuaW5kZXhPZihrKSAhPT0gLTEpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9LFxuXG4gIGhlYWRlclZhbHVlKGhlYWRlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzOiBzdHJpbmcgPSBoZWFkZXIuc3BsaXQoJzsnKVswXS50cmltKCk7XG4gICAgcmVzID0gcmVzLnNwbGl0KCc6JylbMV0udHJpbSgpO1xuICAgIHJldHVybiByZXM7XG4gIH0sXG5cbiAgcGFyc2VSZXNwb25zZVN0YXR1cyhzdGF0dXNMaW5lOiBzdHJpbmcpOiB7XG4gICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgY29kZTogbnVtYmVyO1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgfSB7XG4gICAgY29uc3Qgc3RhdHVzID0gc3RhdHVzTGluZS5zcGxpdCgnICcpWzBdO1xuICAgIGNvbnN0IGNvZGUgPSBwYXJzZUludChzdGF0dXNMaW5lLnNwbGl0KCcgJylbMV0sIDEwKTtcbiAgICBjb25zdCBtZXNzYWdlID0gc3RhdHVzTGluZS5zcGxpdCgnICcpWzJdO1xuICAgIHJldHVybiB7IHN0YXR1cywgY29kZSwgbWVzc2FnZSB9O1xuICB9LFxuXG4gIGJvdW5kYXJ5RGVsaW1pdGVyKGNvbnRlbnRUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbnRlbnRUeXBlUGFydHM6IHN0cmluZ1tdID0gY29udGVudFR5cGUuc3BsaXQoJzsnKTtcbiAgICBpZiAoY29udGVudFR5cGVQYXJ0cy5sZW5ndGggPT09IDIpIHtcbiAgICAgIGNvbnN0IGJvdW5kYXJ5OiBzdHJpbmcgPSBjb250ZW50VHlwZS5zcGxpdCgnOycpWzFdLnRyaW0oKTtcbiAgICAgIGNvbnN0IGJvdW5kYXJ5RGVsaW1pdGVyOiBzdHJpbmcgPVxuICAgICAgICBCT1VOREFSWV9QUkVGSVhfU1VGRklYICsgYm91bmRhcnkuc3BsaXQoJz0nKVsxXTtcbiAgICAgIHJldHVybiBib3VuZGFyeURlbGltaXRlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfSxcblxuICBib3VuZGFyeUVuZChib3VuZGFyeURlbGltaXRlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWJvdW5kYXJ5RGVsaW1pdGVyLmxlbmd0aCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBjb25zdCBib3VuZGFyeUVuZDogc3RyaW5nID0gYm91bmRhcnlEZWxpbWl0ZXIgKyBCT1VOREFSWV9QUkVGSVhfU1VGRklYO1xuICAgIHJldHVybiBib3VuZGFyeUVuZDtcbiAgfSxcbn07XG4iXX0=
@@ -0,0 +1,10 @@
1
+ export * from './dates';
2
+ export * from './durations';
3
+ export * from './enums';
4
+ export * from './http';
5
+ export * from './objects';
6
+ export * from './odata';
7
+ export * from './strings';
8
+ export * from './types';
9
+ export * from './urls';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGVzJztcbmV4cG9ydCAqIGZyb20gJy4vZHVyYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bXMnO1xuZXhwb3J0ICogZnJvbSAnLi9odHRwJztcbmV4cG9ydCAqIGZyb20gJy4vb2JqZWN0cyc7XG5leHBvcnQgKiBmcm9tICcuL29kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyaW5ncyc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vdXJscyc7XG4iXX0=
@@ -0,0 +1,195 @@
1
+ import { Types } from './types';
2
+ function forEach(array, iteratee) {
3
+ let index = -1;
4
+ const length = array.length;
5
+ while (++index < length) {
6
+ iteratee(array[index], index);
7
+ }
8
+ return array;
9
+ }
10
+ export const Objects = {
11
+ set(obj, path, value) {
12
+ // Check if path is string or array. Regex : ensure that we do not have '.' and brackets.
13
+ const pathArray = (Types.isArray(path) ? path : path.match(/([^[.\]])+/g));
14
+ pathArray.reduce((acc, key, i) => {
15
+ if (acc[key] === undefined)
16
+ acc[key] = {};
17
+ if (i === pathArray.length - 1)
18
+ acc[key] = value;
19
+ return acc[key];
20
+ }, obj);
21
+ },
22
+ get(obj, path, def) {
23
+ // Check if path is string or array. Regex : ensure that we do not have '.' and brackets.
24
+ const pathArray = (Types.isArray(path) ? path : path.match(/([^[.\]])+/g));
25
+ // Find value if exist return otherwise return undefined value;
26
+ return (pathArray.reduce((prevObj, key) => prevObj && prevObj[key], obj) || def);
27
+ },
28
+ unset(obj, path) {
29
+ // Check if path is string or array. Regex : ensure that we do not have '.' and brackets.
30
+ const pathArray = (Types.isArray(path) ? path : path.match(/([^[.\]])+/g));
31
+ pathArray.reduce((acc, key, i) => {
32
+ if (i === pathArray.length - 1)
33
+ delete acc[key];
34
+ return acc[key];
35
+ }, obj);
36
+ },
37
+ has(obj, path) {
38
+ // Check if path is string or array. Regex : ensure that we do not have '.' and brackets.
39
+ const pathArray = (Types.isArray(path) ? path : path.match(/([^[.\]])+/g));
40
+ return !!pathArray.reduce((prevObj, key) => prevObj && prevObj[key], obj);
41
+ },
42
+ merge(target, source) {
43
+ const merge = (target, source) => {
44
+ for (let attr in source) {
45
+ let value = source[attr];
46
+ if (value !== null && Types.isPlainObject(value) && attr in target) {
47
+ merge(target[attr], value);
48
+ }
49
+ else if (target[attr] !== value) {
50
+ target[attr] = value;
51
+ }
52
+ }
53
+ };
54
+ merge(target, source);
55
+ return target;
56
+ },
57
+ equal(object1, object2) {
58
+ const keys1 = Object.keys(object1);
59
+ const keys2 = Object.keys(object2);
60
+ if (keys1.length !== keys2.length) {
61
+ return false;
62
+ }
63
+ for (const key of keys1) {
64
+ const val1 = object1[key];
65
+ const val2 = object2[key];
66
+ const areObjects = Types.isPlainObject(val1) && Types.isPlainObject(val2);
67
+ if ((areObjects && !Objects.equal(val1, val2)) ||
68
+ (!areObjects && val1 !== val2)) {
69
+ return false;
70
+ }
71
+ }
72
+ return true;
73
+ },
74
+ difference(object1, object2) {
75
+ if (!object2 || !Types.isPlainObject(object2)) {
76
+ return object1;
77
+ }
78
+ var diffs = {};
79
+ var key;
80
+ var arraysMatch = function (arr1, arr2) {
81
+ if (arr1.length !== arr2.length)
82
+ return false;
83
+ for (var i = 0; i < arr1.length; i++) {
84
+ if (arr1[i] !== arr2[i])
85
+ return false;
86
+ }
87
+ return true;
88
+ };
89
+ var compare = function (item1, item2, key) {
90
+ if (item2 === undefined) {
91
+ diffs[key] = null;
92
+ return;
93
+ }
94
+ if (typeof item1 !== typeof item2) {
95
+ diffs[key] = item2;
96
+ return;
97
+ }
98
+ if (Types.isPlainObject(item1)) {
99
+ var objDiff = Objects.difference(item1, item2);
100
+ if (Object.keys(objDiff).length > 0) {
101
+ diffs[key] = objDiff;
102
+ }
103
+ return;
104
+ }
105
+ if (Array.isArray(item1)) {
106
+ if (!arraysMatch(item1, item2)) {
107
+ diffs[key] = item2;
108
+ }
109
+ return;
110
+ }
111
+ if (item1 !== item2) {
112
+ diffs[key] = item2;
113
+ }
114
+ };
115
+ for (key in object1) {
116
+ if (object1.hasOwnProperty(key)) {
117
+ compare(object1[key], object2[key], key);
118
+ }
119
+ }
120
+ for (key in object2) {
121
+ if (object2.hasOwnProperty(key)) {
122
+ if (!object1[key] && object1[key] !== object2[key]) {
123
+ diffs[key] = object2[key];
124
+ }
125
+ }
126
+ }
127
+ return diffs;
128
+ },
129
+ resolveKey(key, { single = true } = {}) {
130
+ if (['number', 'string'].indexOf(typeof key) !== -1)
131
+ return key;
132
+ if (!Types.isPlainObject(key)) {
133
+ return undefined;
134
+ }
135
+ const values = Object.values(key);
136
+ if (values.length === 1 && single) {
137
+ // Single primitive key value
138
+ key = values[0];
139
+ }
140
+ else if (values.some((v) => v === undefined)) {
141
+ // Compose key, needs all values
142
+ return undefined;
143
+ }
144
+ return !Types.isEmpty(key) ? key : undefined;
145
+ },
146
+ clone(target, map) {
147
+ if (map === undefined)
148
+ map = new WeakMap();
149
+ // clone primitive types
150
+ if (typeof target != 'object' || target == null) {
151
+ return target;
152
+ }
153
+ const type = Types.rawType(target);
154
+ let cloneTarget = null;
155
+ if (map.get(target)) {
156
+ return map.get(target);
157
+ }
158
+ map.set(target, cloneTarget);
159
+ if (type != 'Set' && type != 'Map' && type != 'Array' && type != 'Object') {
160
+ return Types.clone(target);
161
+ }
162
+ // clone Set
163
+ if (type == 'Set') {
164
+ cloneTarget = new Set();
165
+ target.forEach((value) => {
166
+ cloneTarget.add(this.clone(value, map));
167
+ });
168
+ return cloneTarget;
169
+ }
170
+ // clone Map
171
+ if (type == 'Map') {
172
+ cloneTarget = new Map();
173
+ target.forEach((value, key) => {
174
+ cloneTarget.set(key, this.clone(value, map));
175
+ });
176
+ return cloneTarget;
177
+ }
178
+ // clone Array
179
+ if (type == 'Array') {
180
+ cloneTarget = new Array();
181
+ forEach(target, (value, index) => {
182
+ cloneTarget[index] = this.clone(value, map);
183
+ });
184
+ }
185
+ // clone normal Object
186
+ if (type == 'Object') {
187
+ cloneTarget = new Object();
188
+ forEach(Object.keys(target), (key, index) => {
189
+ cloneTarget[key] = this.clone(target[key], map);
190
+ });
191
+ }
192
+ return cloneTarget;
193
+ },
194
+ };
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi91dGlscy9vYmplY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEMsU0FBUyxPQUFPLENBQUMsS0FBWSxFQUFFLFFBQTZDO0lBQzFFLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2YsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM1QixPQUFPLEVBQUUsS0FBSyxHQUFHLE1BQU0sRUFBRTtRQUN2QixRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQy9CO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ3JCLEdBQUcsQ0FBQyxHQUFXLEVBQUUsSUFBWSxFQUFFLEtBQVU7UUFDdkMseUZBQXlGO1FBQ3pGLE1BQU0sU0FBUyxHQUFHLENBQ2hCLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FDOUMsQ0FBQztRQUVYLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQy9CLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVM7Z0JBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNqRCxPQUFPLEdBQUcsQ0FB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SUFBSSxHQUFHLEVBQUUsQ0FBQztZQUN4QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBVSxFQUFFLEdBQVEsRUFBRSxFQUFFO2dCQUN0QyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxXQUFXLENBQUM7U0FDcEI7UUFFRCxjQUFjO1FBQ2QsSUFBSSxJQUFJLElBQUksT0FBTyxFQUFFO1lBQ25CLFdBQVcsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQzFCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQy9CLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM5QyxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsc0JBQXNCO1FBQ3RCLElBQUksSUFBSSxJQUFJLFFBQVEsRUFBRTtZQUNwQixXQUFXLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMzQixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDMUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGVzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmZ1bmN0aW9uIGZvckVhY2goYXJyYXk6IGFueVtdLCBpdGVyYXRlZTogKHZhbHVlOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHZvaWQpIHtcbiAgbGV0IGluZGV4ID0gLTE7XG4gIGNvbnN0IGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBpdGVyYXRlZShhcnJheVtpbmRleF0sIGluZGV4KTtcbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbmV4cG9ydCBjb25zdCBPYmplY3RzID0ge1xuICBzZXQob2JqOiBPYmplY3QsIHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIC8vIENoZWNrIGlmIHBhdGggaXMgc3RyaW5nIG9yIGFycmF5LiBSZWdleCA6IGVuc3VyZSB0aGF0IHdlIGRvIG5vdCBoYXZlICcuJyBhbmQgYnJhY2tldHMuXG4gICAgY29uc3QgcGF0aEFycmF5ID0gKFxuICAgICAgVHlwZXMuaXNBcnJheShwYXRoKSA/IHBhdGggOiBwYXRoLm1hdGNoKC8oW15bLlxcXV0pKy9nKVxuICAgICkgYXMgYW55W107XG5cbiAgICBwYXRoQXJyYXkucmVkdWNlKChhY2MsIGtleSwgaSkgPT4ge1xuICAgICAgaWYgKGFjY1trZXldID09PSB1bmRlZmluZWQpIGFjY1trZXldID0ge307XG4gICAgICBpZiAoaSA9PT0gcGF0aEFycmF5Lmxlbmd0aCAtIDEpIGFjY1trZXldID0gdmFsdWU7XG4gICAgICByZXR1cm4gYWNjW2tleV07XG4gICAgfSwgb2JqKTtcbiAgfSxcblxuICBnZXQob2JqOiBPYmplY3QsIHBhdGg6IHN0cmluZywgZGVmPzogYW55KTogYW55IHtcbiAgICAvLyBDaGVjayBpZiBwYXRoIGlzIHN0cmluZyBvciBhcnJheS4gUmVnZXggOiBlbnN1cmUgdGhhdCB3ZSBkbyBub3QgaGF2ZSAnLicgYW5kIGJyYWNrZXRzLlxuICAgIGNvbnN0IHBhdGhBcnJheSA9IChcbiAgICAgIFR5cGVzLmlzQXJyYXkocGF0aCkgPyBwYXRoIDogcGF0aC5tYXRjaCgvKFteWy5cXF1dKSsvZylcbiAgICApIGFzIGFueVtdO1xuICAgIC8vIEZpbmQgdmFsdWUgaWYgZXhpc3QgcmV0dXJuIG90aGVyd2lzZSByZXR1cm4gdW5kZWZpbmVkIHZhbHVlO1xuICAgIHJldHVybiAoXG4gICAgICBwYXRoQXJyYXkucmVkdWNlKChwcmV2T2JqLCBrZXkpID0+IHByZXZPYmogJiYgcHJldk9ialtrZXldLCBvYmopIHx8IGRlZlxuICAgICk7XG4gIH0sXG5cbiAgdW5zZXQob2JqOiBPYmplY3QsIHBhdGg6IHN0cmluZykge1xuICAgIC8vIENoZWNrIGlmIHBhdGggaXMgc3RyaW5nIG9yIGFycmF5LiBSZWdleCA6IGVuc3VyZSB0aGF0IHdlIGRvIG5vdCBoYXZlICcuJyBhbmQgYnJhY2tldHMuXG4gICAgY29uc3QgcGF0aEFycmF5ID0gKFxuICAgICAgVHlwZXMuaXNBcnJheShwYXRoKSA/IHBhdGggOiBwYXRoLm1hdGNoKC8oW15bLlxcXV0pKy9nKVxuICAgICkgYXMgYW55W107XG5cbiAgICBwYXRoQXJyYXkucmVkdWNlKChhY2MsIGtleSwgaSkgPT4ge1xuICAgICAgaWYgKGkgPT09IHBhdGhBcnJheS5sZW5ndGggLSAxKSBkZWxldGUgYWNjW2tleV07XG4gICAgICByZXR1cm4gYWNjW2tleV07XG4gICAgfSwgb2JqKTtcbiAgfSxcblxuICBoYXMob2JqOiBPYmplY3QsIHBhdGg6IHN0cmluZykge1xuICAgIC8vIENoZWNrIGlmIHBhdGggaXMgc3RyaW5nIG9yIGFycmF5LiBSZWdleCA6IGVuc3VyZSB0aGF0IHdlIGRvIG5vdCBoYXZlICcuJyBhbmQgYnJhY2tldHMuXG4gICAgY29uc3QgcGF0aEFycmF5ID0gKFxuICAgICAgVHlwZXMuaXNBcnJheShwYXRoKSA/IHBhdGggOiBwYXRoLm1hdGNoKC8oW15bLlxcXV0pKy9nKVxuICAgICkgYXMgYW55W107XG5cbiAgICByZXR1cm4gISFwYXRoQXJyYXkucmVkdWNlKChwcmV2T2JqLCBrZXkpID0+IHByZXZPYmogJiYgcHJldk9ialtrZXldLCBvYmopO1xuICB9LFxuXG4gIG1lcmdlKHRhcmdldDogT2JqZWN0LCBzb3VyY2U6IE9iamVjdCkge1xuICAgIGNvbnN0IG1lcmdlID0gKHRhcmdldDogYW55LCBzb3VyY2U6IHsgW2F0dHI6IHN0cmluZ106IGFueSB9KSA9PiB7XG4gICAgICBmb3IgKGxldCBhdHRyIGluIHNvdXJjZSkge1xuICAgICAgICBsZXQgdmFsdWUgPSBzb3VyY2VbYXR0cl07XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiBUeXBlcy5pc1BsYWluT2JqZWN0KHZhbHVlKSAmJiBhdHRyIGluIHRhcmdldCkge1xuICAgICAgICAgIG1lcmdlKHRhcmdldFthdHRyXSwgdmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHRhcmdldFthdHRyXSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICB0YXJnZXRbYXR0cl0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgbWVyZ2UodGFyZ2V0LCBzb3VyY2UpO1xuICAgIHJldHVybiB0YXJnZXQ7XG4gIH0sXG5cbiAgZXF1YWwob2JqZWN0MTogeyBbYXR0cjogc3RyaW5nXTogYW55IH0sIG9iamVjdDI6IHsgW2F0dHI6IHN0cmluZ106IGFueSB9KSB7XG4gICAgY29uc3Qga2V5czEgPSBPYmplY3Qua2V5cyhvYmplY3QxKTtcbiAgICBjb25zdCBrZXlzMiA9IE9iamVjdC5rZXlzKG9iamVjdDIpO1xuXG4gICAgaWYgKGtleXMxLmxlbmd0aCAhPT0ga2V5czIubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5czEpIHtcbiAgICAgIGNvbnN0IHZhbDEgPSBvYmplY3QxW2tleV07XG4gICAgICBjb25zdCB2YWwyID0gb2JqZWN0MltrZXldO1xuICAgICAgY29uc3QgYXJlT2JqZWN0cyA9IFR5cGVzLmlzUGxhaW5PYmplY3QodmFsMSkgJiYgVHlwZXMuaXNQbGFpbk9iamVjdCh2YWwyKTtcbiAgICAgIGlmIChcbiAgICAgICAgKGFyZU9iamVjdHMgJiYgIU9iamVjdHMuZXF1YWwodmFsMSwgdmFsMikpIHx8XG4gICAgICAgICghYXJlT2JqZWN0cyAmJiB2YWwxICE9PSB2YWwyKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG5cbiAgZGlmZmVyZW5jZShcbiAgICBvYmplY3QxOiB7IFthdHRyOiBzdHJpbmddOiBhbnkgfSxcbiAgICBvYmplY3QyOiB7IFthdHRyOiBzdHJpbmddOiBhbnkgfVxuICApIHtcbiAgICBpZiAoIW9iamVjdDIgfHwgIVR5cGVzLmlzUGxhaW5PYmplY3Qob2JqZWN0MikpIHtcbiAgICAgIHJldHVybiBvYmplY3QxO1xuICAgIH1cbiAgICB2YXIgZGlmZnM6IHsgW25hbWU6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgdmFyIGtleTtcbiAgICB2YXIgYXJyYXlzTWF0Y2ggPSBmdW5jdGlvbiAoYXJyMTogYW55W10sIGFycjI6IGFueVtdKSB7XG4gICAgICBpZiAoYXJyMS5sZW5ndGggIT09IGFycjIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyMS5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoYXJyMVtpXSAhPT0gYXJyMltpXSkgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuXG4gICAgdmFyIGNvbXBhcmUgPSBmdW5jdGlvbiAoaXRlbTE6IGFueSwgaXRlbTI6IGFueSB8IHVuZGVmaW5lZCwga2V5OiBzdHJpbmcpIHtcbiAgICAgIGlmIChpdGVtMiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRpZmZzW2tleV0gPSBudWxsO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgaXRlbTEgIT09IHR5cGVvZiBpdGVtMikge1xuICAgICAgICBkaWZmc1trZXldID0gaXRlbTI7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKFR5cGVzLmlzUGxhaW5PYmplY3QoaXRlbTEpKSB7XG4gICAgICAgIHZhciBvYmpEaWZmID0gT2JqZWN0cy5kaWZmZXJlbmNlKGl0ZW0xLCBpdGVtMik7XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhvYmpEaWZmKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZGlmZnNba2V5XSA9IG9iakRpZmY7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtMSkpIHtcbiAgICAgICAgaWYgKCFhcnJheXNNYXRjaChpdGVtMSwgaXRlbTIpKSB7XG4gICAgICAgICAgZGlmZnNba2V5XSA9IGl0ZW0yO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGl0ZW0xICE9PSBpdGVtMikge1xuICAgICAgICBkaWZmc1trZXldID0gaXRlbTI7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGZvciAoa2V5IGluIG9iamVjdDEpIHtcbiAgICAgIGlmIChvYmplY3QxLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgY29tcGFyZShvYmplY3QxW2tleV0sIG9iamVjdDJba2V5XSwga2V5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGtleSBpbiBvYmplY3QyKSB7XG4gICAgICBpZiAob2JqZWN0Mi5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGlmICghb2JqZWN0MVtrZXldICYmIG9iamVjdDFba2V5XSAhPT0gb2JqZWN0MltrZXldKSB7XG4gICAgICAgICAgZGlmZnNba2V5XSA9IG9iamVjdDJba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGlmZnM7XG4gIH0sXG5cbiAgcmVzb2x2ZUtleShrZXk6IGFueSwgeyBzaW5nbGUgPSB0cnVlIH06IHsgc2luZ2xlPzogYm9vbGVhbiB9ID0ge30pIHtcbiAgICBpZiAoWydudW1iZXInLCAnc3RyaW5nJ10uaW5kZXhPZih0eXBlb2Yga2V5KSAhPT0gLTEpIHJldHVybiBrZXk7XG4gICAgaWYgKCFUeXBlcy5pc1BsYWluT2JqZWN0KGtleSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlcyA9IE9iamVjdC52YWx1ZXMoa2V5KTtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMSAmJiBzaW5nbGUpIHtcbiAgICAgIC8vIFNpbmdsZSBwcmltaXRpdmUga2V5IHZhbHVlXG4gICAgICBrZXkgPSB2YWx1ZXNbMF07XG4gICAgfSBlbHNlIGlmICh2YWx1ZXMuc29tZSgodikgPT4gdiA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgLy8gQ29tcG9zZSBrZXksIG5lZWRzIGFsbCB2YWx1ZXNcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiAhVHlwZXMuaXNFbXB0eShrZXkpID8ga2V5IDogdW5kZWZpbmVkO1xuICB9LFxuXG4gIGNsb25lKHRhcmdldDogYW55LCBtYXA/OiBXZWFrTWFwPG9iamVjdCwgYW55Pikge1xuICAgIGlmIChtYXAgPT09IHVuZGVmaW5lZCkgbWFwID0gbmV3IFdlYWtNYXAoKTtcbiAgICAvLyBjbG9uZSBwcmltaXRpdmUgdHlwZXNcbiAgICBpZiAodHlwZW9mIHRhcmdldCAhPSAnb2JqZWN0JyB8fCB0YXJnZXQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9XG5cbiAgICBjb25zdCB0eXBlID0gVHlwZXMucmF3VHlwZSh0YXJnZXQpO1xuICAgIGxldCBjbG9uZVRhcmdldDogYW55ID0gbnVsbDtcblxuICAgIGlmIChtYXAuZ2V0KHRhcmdldCkpIHtcbiAgICAgIHJldHVybiBtYXAuZ2V0KHRhcmdldCk7XG4gICAgfVxuICAgIG1hcC5zZXQodGFyZ2V0LCBjbG9uZVRhcmdldCk7XG5cbiAgICBpZiAodHlwZSAhPSAnU2V0JyAmJiB0eXBlICE9ICdNYXAnICYmIHR5cGUgIT0gJ0FycmF5JyAmJiB0eXBlICE9ICdPYmplY3QnKSB7XG4gICAgICByZXR1cm4gVHlwZXMuY2xvbmUodGFyZ2V0KTtcbiAgICB9XG5cbiAgICAvLyBjbG9uZSBTZXRcbiAgICBpZiAodHlwZSA9PSAnU2V0Jykge1xuICAgICAgY2xvbmVUYXJnZXQgPSBuZXcgU2V0KCk7XG4gICAgICB0YXJnZXQuZm9yRWFjaCgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICBjbG9uZVRhcmdldC5hZGQodGhpcy5jbG9uZSh2YWx1ZSwgbWFwKSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjbG9uZVRhcmdldDtcbiAgICB9XG5cbiAgICAvLyBjbG9uZSBNYXBcbiAgICBpZiAodHlwZSA9PSAnTWFwJykge1xuICAgICAgY2xvbmVUYXJnZXQgPSBuZXcgTWFwKCk7XG4gICAgICB0YXJnZXQuZm9yRWFjaCgodmFsdWU6IGFueSwga2V5OiBhbnkpID0+IHtcbiAgICAgICAgY2xvbmVUYXJnZXQuc2V0KGtleSwgdGhpcy5jbG9uZSh2YWx1ZSwgbWFwKSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjbG9uZVRhcmdldDtcbiAgICB9XG5cbiAgICAvLyBjbG9uZSBBcnJheVxuICAgIGlmICh0eXBlID09ICdBcnJheScpIHtcbiAgICAgIGNsb25lVGFyZ2V0ID0gbmV3IEFycmF5KCk7XG4gICAgICBmb3JFYWNoKHRhcmdldCwgKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgICBjbG9uZVRhcmdldFtpbmRleF0gPSB0aGlzLmNsb25lKHZhbHVlLCBtYXApO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gY2xvbmUgbm9ybWFsIE9iamVjdFxuICAgIGlmICh0eXBlID09ICdPYmplY3QnKSB7XG4gICAgICBjbG9uZVRhcmdldCA9IG5ldyBPYmplY3QoKTtcbiAgICAgIGZvckVhY2goT2JqZWN0LmtleXModGFyZ2V0KSwgKGtleSwgaW5kZXgpID0+IHtcbiAgICAgICAgY2xvbmVUYXJnZXRba2V5XSA9IHRoaXMuY2xvbmUodGFyZ2V0W2tleV0sIG1hcCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xvbmVUYXJnZXQ7XG4gIH0sXG59O1xuIl19