@kaspernj/api-maker 1.0.2109 → 1.0.2111

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 (231) hide show
  1. package/README.md +53 -0
  2. package/build/api.d.ts +1 -3
  3. package/build/api.d.ts.map +1 -1
  4. package/build/api.js +2 -4
  5. package/build/attribute-not-loaded-error.d.ts +1 -0
  6. package/build/attribute-not-loaded-error.d.ts.map +1 -1
  7. package/build/attribute-not-loaded-error.js +2 -1
  8. package/build/base-model/attribute.d.ts +1 -3
  9. package/build/base-model/attribute.d.ts.map +1 -1
  10. package/build/base-model/attribute.js +2 -4
  11. package/build/base-model/reflection.d.ts +2 -0
  12. package/build/base-model/reflection.d.ts.map +1 -1
  13. package/build/base-model/reflection.js +3 -1
  14. package/build/base-model/scope.d.ts +1 -0
  15. package/build/base-model/scope.d.ts.map +1 -1
  16. package/build/base-model/scope.js +2 -1
  17. package/build/base-model.js +128 -46
  18. package/build/bootstrap/attribute-row.js +54 -6
  19. package/build/bootstrap/attribute-rows.js +8 -4
  20. package/build/bootstrap/index.js +2 -1
  21. package/build/cable-connection-pool.d.ts +10 -0
  22. package/build/cable-connection-pool.d.ts.map +1 -1
  23. package/build/cable-connection-pool.js +11 -1
  24. package/build/cable-subscription-pool.d.ts +10 -0
  25. package/build/cable-subscription-pool.d.ts.map +1 -1
  26. package/build/cable-subscription-pool.js +13 -1
  27. package/build/cable-subscription.d.ts +2 -0
  28. package/build/cable-subscription.d.ts.map +1 -1
  29. package/build/cable-subscription.js +4 -1
  30. package/build/cache-key-generator.d.ts +9 -0
  31. package/build/cache-key-generator.d.ts.map +1 -1
  32. package/build/cache-key-generator.js +10 -1
  33. package/build/can-can.d.ts +20 -0
  34. package/build/can-can.d.ts.map +1 -1
  35. package/build/can-can.js +22 -1
  36. package/build/channels-consumer.d.ts.map +1 -1
  37. package/build/channels-consumer.js +4 -1
  38. package/build/collection.d.ts +59 -51
  39. package/build/collection.d.ts.map +1 -1
  40. package/build/collection.js +56 -52
  41. package/build/command-submit-data.d.ts +3 -0
  42. package/build/command-submit-data.d.ts.map +1 -1
  43. package/build/command-submit-data.js +4 -1
  44. package/build/commands-pool.d.ts +7 -0
  45. package/build/commands-pool.d.ts.map +1 -1
  46. package/build/commands-pool.js +10 -4
  47. package/build/compose.d.ts +1 -0
  48. package/build/compose.d.ts.map +1 -1
  49. package/build/compose.js +2 -1
  50. package/build/config.d.ts +2 -0
  51. package/build/config.d.ts.map +1 -1
  52. package/build/config.js +4 -1
  53. package/build/custom-error.d.ts +1 -0
  54. package/build/custom-error.d.ts.map +1 -1
  55. package/build/custom-error.js +2 -1
  56. package/build/data-set-to-attributes.d.ts +1 -0
  57. package/build/data-set-to-attributes.d.ts.map +1 -1
  58. package/build/data-set-to-attributes.js +2 -1
  59. package/build/deserializer.d.ts +2 -0
  60. package/build/deserializer.d.ts.map +1 -1
  61. package/build/deserializer.js +5 -3
  62. package/build/destroy-error.d.ts +1 -0
  63. package/build/destroy-error.d.ts.map +1 -1
  64. package/build/destroy-error.js +2 -1
  65. package/build/devise.d.ts +11 -0
  66. package/build/devise.d.ts.map +1 -1
  67. package/build/devise.js +17 -2
  68. package/build/draggable-sort/controller.d.ts +12 -0
  69. package/build/draggable-sort/controller.d.ts.map +1 -1
  70. package/build/draggable-sort/controller.js +13 -1
  71. package/build/error-logger.d.ts +10 -0
  72. package/build/error-logger.d.ts.map +1 -1
  73. package/build/error-logger.js +12 -1
  74. package/build/error-messages.d.ts +1 -3
  75. package/build/error-messages.d.ts.map +1 -1
  76. package/build/error-messages.js +2 -4
  77. package/build/event-connection.d.ts +1 -1
  78. package/build/event-connection.d.ts.map +1 -1
  79. package/build/event-model-class.d.ts +1 -1
  80. package/build/event-model-class.d.ts.map +1 -1
  81. package/build/events.d.ts +1 -0
  82. package/build/events.d.ts.map +1 -1
  83. package/build/events.js +2 -1
  84. package/build/history-expo.d.ts +7 -1
  85. package/build/history-expo.d.ts.map +1 -1
  86. package/build/history-expo.js +8 -1
  87. package/build/history-react-native.d.ts +7 -1
  88. package/build/history-react-native.d.ts.map +1 -1
  89. package/build/history-react-native.js +8 -1
  90. package/build/history.js +2 -1
  91. package/build/index.d.ts +1 -0
  92. package/build/index.d.ts.map +1 -1
  93. package/build/index.js +2 -1
  94. package/build/inputs/auto-submit.d.ts +14 -2
  95. package/build/inputs/auto-submit.d.ts.map +1 -1
  96. package/build/inputs/auto-submit.js +5 -1
  97. package/build/inputs/id-for-component.d.ts +1 -0
  98. package/build/inputs/id-for-component.d.ts.map +1 -1
  99. package/build/inputs/id-for-component.js +2 -1
  100. package/build/inputs/name-for-component.d.ts +1 -0
  101. package/build/inputs/name-for-component.d.ts.map +1 -1
  102. package/build/inputs/name-for-component.js +2 -1
  103. package/build/instance-of-class-name.d.ts +5 -1
  104. package/build/instance-of-class-name.d.ts.map +1 -1
  105. package/build/instance-of-class-name.js +11 -2
  106. package/build/is-expo.js +2 -1
  107. package/build/key-value-store.d.ts +39 -7
  108. package/build/key-value-store.d.ts.map +1 -1
  109. package/build/key-value-store.js +33 -1
  110. package/build/logger.d.ts +35 -9
  111. package/build/logger.d.ts.map +1 -1
  112. package/build/logger.js +25 -1
  113. package/build/merge-styles.d.ts +1 -0
  114. package/build/merge-styles.d.ts.map +1 -1
  115. package/build/merge-styles.js +2 -1
  116. package/build/model-events.d.ts +33 -5
  117. package/build/model-events.d.ts.map +1 -1
  118. package/build/model-events.js +29 -1
  119. package/build/model-name.d.ts +19 -5
  120. package/build/model-name.d.ts.map +1 -1
  121. package/build/model-name.js +10 -1
  122. package/build/model-prop-type.d.ts +11 -0
  123. package/build/model-prop-type.d.ts.map +1 -1
  124. package/build/model-prop-type.js +13 -1
  125. package/build/model-recipes-loader.d.ts +11 -4
  126. package/build/model-recipes-loader.d.ts.map +1 -1
  127. package/build/model-recipes-loader.js +8 -1
  128. package/build/model-recipes-model-loader.d.ts +67 -35
  129. package/build/model-recipes-model-loader.d.ts.map +1 -1
  130. package/build/model-recipes-model-loader.js +24 -3
  131. package/build/models-response-reader.d.ts +32 -6
  132. package/build/models-response-reader.d.ts.map +1 -1
  133. package/build/models-response-reader.js +12 -1
  134. package/build/models.d.ts +1 -1
  135. package/build/models.d.ts.map +1 -1
  136. package/build/models.js +2 -1
  137. package/build/money-formatter.d.ts +72 -8
  138. package/build/money-formatter.d.ts.map +1 -1
  139. package/build/money-formatter.js +36 -1
  140. package/build/not-loaded-error.d.ts +1 -0
  141. package/build/not-loaded-error.d.ts.map +1 -1
  142. package/build/not-loaded-error.js +2 -1
  143. package/build/params.d.ts +1 -0
  144. package/build/params.d.ts.map +1 -1
  145. package/build/params.js +2 -1
  146. package/build/preloaded.d.ts +2 -3
  147. package/build/preloaded.d.ts.map +1 -1
  148. package/build/preloaded.js +3 -4
  149. package/build/rest-props-validator.d.ts +5 -1
  150. package/build/rest-props-validator.d.ts.map +1 -1
  151. package/build/rest-props-validator.js +5 -1
  152. package/build/result.d.ts +4 -0
  153. package/build/result.d.ts.map +1 -1
  154. package/build/result.js +3 -1
  155. package/build/routes-native.d.ts +4 -12
  156. package/build/routes-native.d.ts.map +1 -1
  157. package/build/routes-native.js +5 -13
  158. package/build/routes.d.ts +11 -5
  159. package/build/routes.d.ts.map +1 -1
  160. package/build/routes.js +5 -1
  161. package/build/run-last.d.ts +9 -2
  162. package/build/run-last.d.ts.map +1 -1
  163. package/build/run-last.js +8 -1
  164. package/build/serializer.d.ts +7 -0
  165. package/build/serializer.d.ts.map +1 -1
  166. package/build/serializer.js +9 -2
  167. package/build/services.d.ts +10 -2
  168. package/build/services.d.ts.map +1 -1
  169. package/build/services.js +9 -1
  170. package/build/session-status-updater.d.ts +13 -0
  171. package/build/session-status-updater.d.ts.map +1 -1
  172. package/build/session-status-updater.js +15 -1
  173. package/build/source-maps-loader.js +20 -3
  174. package/build/super-admin/has-edit-config.d.ts +5 -1
  175. package/build/super-admin/has-edit-config.d.ts.map +1 -1
  176. package/build/super-admin/has-edit-config.js +5 -1
  177. package/build/super-admin/models.d.ts +1 -0
  178. package/build/super-admin/models.d.ts.map +1 -1
  179. package/build/super-admin/models.js +2 -1
  180. package/build/table/column-identifier.d.ts +1 -0
  181. package/build/table/column-identifier.d.ts.map +1 -1
  182. package/build/table/column-identifier.js +2 -1
  183. package/build/table/column-visible.d.ts +1 -0
  184. package/build/table/column-visible.d.ts.map +1 -1
  185. package/build/table/column-visible.js +2 -1
  186. package/build/table/model-callback-args.d.ts +1 -0
  187. package/build/table/model-callback-args.d.ts.map +1 -1
  188. package/build/table/model-callback-args.js +2 -1
  189. package/build/table/select-calculator.d.ts +1 -0
  190. package/build/table/select-calculator.d.ts.map +1 -1
  191. package/build/table/select-calculator.js +5 -1
  192. package/build/table/table-settings.d.ts +16 -0
  193. package/build/table/table-settings.d.ts.map +1 -1
  194. package/build/table/table-settings.js +19 -1
  195. package/build/table/use-sorting.d.ts.map +1 -1
  196. package/build/table/use-sorting.js +2 -4
  197. package/build/translated-attributes.d.ts +1 -0
  198. package/build/translated-attributes.d.ts.map +1 -1
  199. package/build/translated-attributes.js +2 -1
  200. package/build/translated-collections.d.ts +7 -1
  201. package/build/translated-collections.d.ts.map +1 -1
  202. package/build/translated-collections.js +7 -1
  203. package/build/updated-attribute.d.ts +1 -1
  204. package/build/updated-attribute.d.ts.map +1 -1
  205. package/build/use-can-can.d.ts.map +1 -1
  206. package/build/use-can-can.js +10 -1
  207. package/build/use-destroyed-event.d.ts +3 -6
  208. package/build/use-destroyed-event.d.ts.map +1 -1
  209. package/build/use-destroyed-event.js +95 -62
  210. package/build/use-model-class-event.d.ts +7 -10
  211. package/build/use-model-class-event.d.ts.map +1 -1
  212. package/build/use-model-class-event.js +7 -6
  213. package/build/use-model-event.d.ts +2 -5
  214. package/build/use-model-event.d.ts.map +1 -1
  215. package/build/use-model-event.js +2 -1
  216. package/build/use-model.d.ts +2 -3
  217. package/build/use-model.d.ts.map +1 -1
  218. package/build/use-model.js +2 -1
  219. package/build/use-screen-layout.d.ts +2 -1
  220. package/build/use-screen-layout.d.ts.map +1 -1
  221. package/build/use-screen-layout.js +7 -2
  222. package/build/use-styles.d.ts +7 -1
  223. package/build/use-styles.d.ts.map +1 -1
  224. package/build/use-styles.js +18 -5
  225. package/build/validation-error.d.ts +1 -0
  226. package/build/validation-error.d.ts.map +1 -1
  227. package/build/validation-error.js +2 -1
  228. package/build/validation-errors.d.ts +7 -0
  229. package/build/validation-errors.d.ts.map +1 -1
  230. package/build/validation-errors.js +8 -1
  231. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"/src/","sources":["services.js"],"names":[],"mappings":"AAIA;IACE,sBAIC;IAED,4DAUC;CACF"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"/src/","sources":["services.js"],"names":[],"mappings":"AAIA,iCAAiC;AACjC;IACE,kCAAkC;IAClC,kBADc,gBAAgB,CAK7B;IAED;;;;;OAKG;IACH,yBALW,MAAM,QACN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YACnB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,OAAO,CAAC,GAAG,CAAC,CAYxB;CACF"}
package/build/services.js CHANGED
@@ -1,11 +1,19 @@
1
1
  import CommandsPool from "./commands-pool.js";
2
2
  const shared = {};
3
+ /** API service command proxy. */
3
4
  export default class ApiMakerServices {
5
+ /** @returns {ApiMakerServices} */
4
6
  static current() {
5
7
  if (!shared.currentApiMakerService)
6
8
  shared.currentApiMakerService = new ApiMakerServices();
7
9
  return shared.currentApiMakerService;
8
10
  }
11
+ /**
12
+ * @param {string} serviceName
13
+ * @param {Record<string, any>} args
14
+ * @param {Record<string, any>} [options]
15
+ * @returns {Promise<any>}
16
+ */
9
17
  sendRequest(serviceName, args, options = {}) {
10
18
  return CommandsPool.addCommand({
11
19
  args: {
@@ -18,4 +26,4 @@ export default class ApiMakerServices {
18
26
  }, options);
19
27
  }
20
28
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInNlcnZpY2VzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFBO0FBRTdDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtBQUVqQixNQUFNLENBQUMsT0FBTyxPQUFPLGdCQUFnQjtJQUNuQyxNQUFNLENBQUMsT0FBTztRQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCO1lBQUUsTUFBTSxDQUFDLHNCQUFzQixHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQTtRQUUxRixPQUFPLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQTtJQUN0QyxDQUFDO0lBRUQsV0FBVyxDQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxHQUFHLEVBQUU7UUFDMUMsT0FBTyxZQUFZLENBQUMsVUFBVSxDQUFDO1lBQzdCLElBQUksRUFBRTtnQkFDSixZQUFZLEVBQUUsSUFBSTtnQkFDbEIsWUFBWSxFQUFFLFdBQVc7YUFDMUI7WUFDRCxPQUFPLEVBQUUsVUFBVTtZQUNuQixjQUFjLEVBQUUsT0FBTztZQUN2QixJQUFJLEVBQUUsU0FBUztTQUNoQixFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ2IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbW1hbmRzUG9vbCBmcm9tIFwiLi9jb21tYW5kcy1wb29sLmpzXCJcblxuY29uc3Qgc2hhcmVkID0ge31cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpTWFrZXJTZXJ2aWNlcyB7XG4gIHN0YXRpYyBjdXJyZW50ICgpIHtcbiAgICBpZiAoIXNoYXJlZC5jdXJyZW50QXBpTWFrZXJTZXJ2aWNlKSBzaGFyZWQuY3VycmVudEFwaU1ha2VyU2VydmljZSA9IG5ldyBBcGlNYWtlclNlcnZpY2VzKClcblxuICAgIHJldHVybiBzaGFyZWQuY3VycmVudEFwaU1ha2VyU2VydmljZVxuICB9XG5cbiAgc2VuZFJlcXVlc3QgKHNlcnZpY2VOYW1lLCBhcmdzLCBvcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gQ29tbWFuZHNQb29sLmFkZENvbW1hbmQoe1xuICAgICAgYXJnczoge1xuICAgICAgICBzZXJ2aWNlX2FyZ3M6IGFyZ3MsXG4gICAgICAgIHNlcnZpY2VfbmFtZTogc2VydmljZU5hbWVcbiAgICAgIH0sXG4gICAgICBjb21tYW5kOiBcInNlcnZpY2VzXCIsXG4gICAgICBjb2xsZWN0aW9uTmFtZTogXCJjYWxsc1wiLFxuICAgICAgdHlwZTogXCJzZXJ2aWNlXCJcbiAgICB9LCBvcHRpb25zKVxuICB9XG59XG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInNlcnZpY2VzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFBO0FBRTdDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtBQUVqQixpQ0FBaUM7QUFDakMsTUFBTSxDQUFDLE9BQU8sT0FBTyxnQkFBZ0I7SUFDbkMsa0NBQWtDO0lBQ2xDLE1BQU0sQ0FBQyxPQUFPO1FBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0I7WUFBRSxNQUFNLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFBO1FBRTFGLE9BQU8sTUFBTSxDQUFDLHNCQUFzQixDQUFBO0lBQ3RDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sR0FBRyxFQUFFO1FBQzFDLE9BQU8sWUFBWSxDQUFDLFVBQVUsQ0FBQztZQUM3QixJQUFJLEVBQUU7Z0JBQ0osWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFlBQVksRUFBRSxXQUFXO2FBQzFCO1lBQ0QsT0FBTyxFQUFFLFVBQVU7WUFDbkIsY0FBYyxFQUFFLE9BQU87WUFDdkIsSUFBSSxFQUFFLFNBQVM7U0FDaEIsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUNiLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tYW5kc1Bvb2wgZnJvbSBcIi4vY29tbWFuZHMtcG9vbC5qc1wiXG5cbmNvbnN0IHNoYXJlZCA9IHt9XG5cbi8qKiBBUEkgc2VydmljZSBjb21tYW5kIHByb3h5LiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpTWFrZXJTZXJ2aWNlcyB7XG4gIC8qKiBAcmV0dXJucyB7QXBpTWFrZXJTZXJ2aWNlc30gKi9cbiAgc3RhdGljIGN1cnJlbnQgKCkge1xuICAgIGlmICghc2hhcmVkLmN1cnJlbnRBcGlNYWtlclNlcnZpY2UpIHNoYXJlZC5jdXJyZW50QXBpTWFrZXJTZXJ2aWNlID0gbmV3IEFwaU1ha2VyU2VydmljZXMoKVxuXG4gICAgcmV0dXJuIHNoYXJlZC5jdXJyZW50QXBpTWFrZXJTZXJ2aWNlXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlcnZpY2VOYW1lXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gYXJnc1xuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgc2VuZFJlcXVlc3QgKHNlcnZpY2VOYW1lLCBhcmdzLCBvcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gQ29tbWFuZHNQb29sLmFkZENvbW1hbmQoe1xuICAgICAgYXJnczoge1xuICAgICAgICBzZXJ2aWNlX2FyZ3M6IGFyZ3MsXG4gICAgICAgIHNlcnZpY2VfbmFtZTogc2VydmljZU5hbWVcbiAgICAgIH0sXG4gICAgICBjb21tYW5kOiBcInNlcnZpY2VzXCIsXG4gICAgICBjb2xsZWN0aW9uTmFtZTogXCJjYWxsc1wiLFxuICAgICAgdHlwZTogXCJzZXJ2aWNlXCJcbiAgICB9LCBvcHRpb25zKVxuICB9XG59XG4iXX0=
@@ -1,21 +1,34 @@
1
+ /** Tracks session and CSRF token freshness. */
1
2
  export default class ApiMakerSessionStatusUpdater {
3
+ /** current. */
2
4
  static current(args: any): any;
5
+ /** Constructor. */
3
6
  constructor(args?: {});
4
7
  events: {};
5
8
  timeout: any;
6
9
  useMetaElement: unknown;
10
+ /** connectOnlineEvent. */
7
11
  connectOnlineEvent(): void;
12
+ /** connectWakeEvent. */
8
13
  connectWakeEvent(): void;
9
14
  getCsrfToken(): Promise<any>;
10
15
  csrfToken: any;
16
+ /** sessionStatus. */
11
17
  sessionStatus(): Promise<any>;
18
+ /** onSignedOut. */
12
19
  onSignedOut(callback: any): void;
20
+ /** startTimeout. */
13
21
  startTimeout(): void;
14
22
  updateTimeout: NodeJS.Timeout;
23
+ /** stopTimeout. */
15
24
  stopTimeout(): void;
25
+ /** updateSessionStatus. */
16
26
  updateSessionStatus: () => Promise<void>;
27
+ /** updateMetaElementsFromResult. */
17
28
  updateMetaElementsFromResult(result: any): void;
29
+ /** updateUserSessionsFromResult. */
18
30
  updateUserSessionsFromResult(result: any): void;
31
+ /** updateUserSessionScopeFromResult. */
19
32
  updateUserSessionScopeFromResult(scopeName: any, scope: any): void;
20
33
  }
21
34
  //# sourceMappingURL=session-status-updater.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-status-updater.d.ts","sourceRoot":"/src/","sources":["session-status-updater.js"],"names":[],"mappings":"AAWA;IACE,+BAMC;IAED,uBAiBC;IAhBC,WAAgB;IAChB,aAAqC;IAGnC,wBAAyC;IAc7C,2BAEC;IAED,yBAEC;IAED,6BA6BC;IAhBK,eAAyD;IAkB/D,8BAiBC;IAED,iCAEC;IAED,qBAaC;IAPC,8BAMC;IAGH,oBAGC;IAED,yCAQC;IAED,gDAeC;IAED,gDAIC;IAED,mEAgBC;CACF"}
1
+ {"version":3,"file":"session-status-updater.d.ts","sourceRoot":"/src/","sources":["session-status-updater.js"],"names":[],"mappings":"AAWA,+CAA+C;AAC/C;IACE,eAAe;IACf,+BAMC;IAED,mBAAmB;IACnB,uBAiBC;IAhBC,WAAgB;IAChB,aAAqC;IAGnC,wBAAyC;IAc7C,0BAA0B;IAC1B,2BAEC;IAED,wBAAwB;IACxB,yBAEC;IAED,6BA6BC;IAhBK,eAAyD;IAkB/D,qBAAqB;IACrB,8BAiBC;IAED,mBAAmB;IACnB,iCAGC;IAED,oBAAoB;IACpB,qBAaC;IAPC,8BAMC;IAGH,mBAAmB;IACnB,oBAGC;IAED,2BAA2B;IAC3B,yCAQC;IAED,oCAAoC;IACpC,gDAeC;IAED,oCAAoC;IACpC,gDAIC;IAED,wCAAwC;IACxC,mEAgBC;CACF"}
@@ -6,13 +6,16 @@ import wakeEvent from "wake-event";
6
6
  const logger = new Logger({ name: "ApiMaker / SessionStatusUpdater" });
7
7
  const shared = {};
8
8
  // logger.setDebug(true)
9
+ /** Tracks session and CSRF token freshness. */
9
10
  export default class ApiMakerSessionStatusUpdater {
11
+ /** current. */
10
12
  static current(args) {
11
13
  if (!shared.apiMakerSessionStatusUpdater) {
12
14
  shared.apiMakerSessionStatusUpdater = new ApiMakerSessionStatusUpdater(args);
13
15
  }
14
16
  return shared.apiMakerSessionStatusUpdater;
15
17
  }
18
+ /** Constructor. */
16
19
  constructor(args = {}) {
17
20
  this.events = {};
18
21
  this.timeout = args.timeout || 600000;
@@ -30,9 +33,11 @@ export default class ApiMakerSessionStatusUpdater {
30
33
  }
31
34
  this.connectWakeEvent();
32
35
  }
36
+ /** connectOnlineEvent. */
33
37
  connectOnlineEvent() {
34
38
  window.addEventListener("online", this.updateSessionStatus, false);
35
39
  }
40
+ /** connectWakeEvent. */
36
41
  connectWakeEvent() {
37
42
  wakeEvent(this.updateSessionStatus);
38
43
  }
@@ -57,6 +62,7 @@ export default class ApiMakerSessionStatusUpdater {
57
62
  }
58
63
  throw new Error("CSRF token hasn't been set");
59
64
  }
65
+ /** sessionStatus. */
60
66
  sessionStatus() {
61
67
  return new Promise((resolve) => {
62
68
  const host = config.getHost();
@@ -73,9 +79,12 @@ export default class ApiMakerSessionStatusUpdater {
73
79
  xhr.send();
74
80
  });
75
81
  }
82
+ /** onSignedOut. */
76
83
  onSignedOut(callback) {
84
+ // @ts-expect-error
77
85
  this.addEvent("onSignedOut", callback);
78
86
  }
87
+ /** startTimeout. */
79
88
  startTimeout() {
80
89
  logger.debug("startTimeout");
81
90
  if (this.updateTimeout)
@@ -85,10 +94,12 @@ export default class ApiMakerSessionStatusUpdater {
85
94
  this.updateSessionStatus();
86
95
  }, this.timeout);
87
96
  }
97
+ /** stopTimeout. */
88
98
  stopTimeout() {
89
99
  if (this.updateTimeout)
90
100
  clearTimeout(this.updateTimeout);
91
101
  }
102
+ /** updateSessionStatus. */
92
103
  updateSessionStatus = async () => {
93
104
  logger.debug("updateSessionStatus");
94
105
  const result = await this.sessionStatus();
@@ -96,6 +107,7 @@ export default class ApiMakerSessionStatusUpdater {
96
107
  this.updateMetaElementsFromResult(result);
97
108
  this.updateUserSessionsFromResult(result);
98
109
  };
110
+ /** updateMetaElementsFromResult. */
99
111
  updateMetaElementsFromResult(result) {
100
112
  logger.debug("updateMetaElementsFromResult");
101
113
  this.csrfToken = result.csrf_token;
@@ -110,11 +122,13 @@ export default class ApiMakerSessionStatusUpdater {
110
122
  }
111
123
  }
112
124
  }
125
+ /** updateUserSessionsFromResult. */
113
126
  updateUserSessionsFromResult(result) {
114
127
  for (const scopeName in result.scopes) {
115
128
  this.updateUserSessionScopeFromResult(scopeName, result.scopes[scopeName]);
116
129
  }
117
130
  }
131
+ /** updateUserSessionScopeFromResult. */
118
132
  updateUserSessionScopeFromResult(scopeName, scope) {
119
133
  const deviseIsSignedInMethodName = `is${inflection.camelize(scopeName)}SignedIn`;
120
134
  if (!(deviseIsSignedInMethodName in Devise)) {
@@ -129,4 +143,4 @@ export default class ApiMakerSessionStatusUpdater {
129
143
  }
130
144
  }
131
145
  }
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1zdGF0dXMtdXBkYXRlci5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsic2Vzc2lvbi1zdGF0dXMtdXBkYXRlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFFbEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUUsaUNBQWlDLEVBQUMsQ0FBQyxDQUFBO0FBQ3BFLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtBQUVqQix3QkFBd0I7QUFFeEIsTUFBTSxDQUFDLE9BQU8sT0FBTyw0QkFBNEI7SUFDL0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztZQUN6QyxNQUFNLENBQUMsNEJBQTRCLEdBQUcsSUFBSSw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM5RSxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUMsNEJBQTRCLENBQUE7SUFDNUMsQ0FBQztJQUVELFlBQVksSUFBSSxHQUFHLEVBQUU7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUE7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQTtRQUVyQyxJQUFJLGdCQUFnQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQTtRQUMzQyxDQUFDO2FBQU0sSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsY0FB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RWpHLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQTtZQUN2QyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQTtRQUM3QyxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgRGV2aXNlIGZyb20gXCIuL2RldmlzZS5qc1wiXG5pbXBvcnQgTG9nZ2VyIGZyb20gXCIuL2xvZ2dlci5qc1wiXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuL2NvbmZpZy5qc1wiXG5pbXBvcnQgd2FrZUV2ZW50IGZyb20gXCJ3YWtlLWV2ZW50XCJcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcih7bmFtZTogXCJBcGlNYWtlciAvIFNlc3Npb25TdGF0dXNVcGRhdGVyXCJ9KVxuY29uc3Qgc2hhcmVkID0ge31cblxuLy8gbG9nZ2VyLnNldERlYnVnKHRydWUpXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyU2Vzc2lvblN0YXR1c1VwZGF0ZXIge1xuICBzdGF0aWMgY3VycmVudChhcmdzKSB7XG4gICAgaWYgKCFzaGFyZWQuYXBpTWFrZXJTZXNzaW9uU3RhdHVzVXBkYXRlcikge1xuICAgICAgc2hhcmVkLmFwaU1ha2VyU2Vzc2lvblN0YXR1c1VwZGF0ZXIgPSBuZXcgQXBpTWFrZXJTZXNzaW9uU3RhdHVzVXBkYXRlcihhcmdzKVxuICAgIH1cblxuICAgIHJldHVybiBzaGFyZWQuYXBpTWFrZXJTZXNzaW9uU3RhdHVzVXBkYXRlclxuICB9XG5cbiAgY29uc3RydWN0b3IoYXJncyA9IHt9KSB7XG4gICAgdGhpcy5ldmVudHMgPSB7fVxuICAgIHRoaXMudGltZW91dCA9IGFyZ3MudGltZW91dCB8fCA2MDAwMDBcblxuICAgIGlmIChcInVzZU1ldGFFbGVtZW50XCIgaW4gYXJncykge1xuICAgICAgdGhpcy51c2VNZXRhRWxlbWVudCA9IGFyZ3MudXNlTWV0YUVsZW1lbnRcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgdGhpcy51c2VNZXRhRWxlbWVudCA9IGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXNlTWV0YUVsZW1lbnQgPSB0cnVlXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgdGhpcy5jb25uZWN0T25saW5lRXZlbnQoKVxuICAgIH1cblxuICAgIHRoaXMuY29ubmVjdFdha2VFdmVudCgpXG4gIH1cblxuICBjb25uZWN0T25saW5lRXZlbnQoKSB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJvbmxpbmVcIiwgdGhpcy51cGRhdGVTZXNzaW9uU3RhdHVzLCBmYWxzZSlcbiAgfVxuXG4gIGNvbm5lY3RXYWtlRXZlbnQoKSB7XG4gICAgd2FrZUV2ZW50KHRoaXMudXBkYXRlU2Vzc2lvblN0YXR1cylcbiAgfVxuXG4gIGFzeW5jIGdldENzcmZUb2tlbigpIHtcbiAgICBpZiAodGhpcy5jc3JmVG9rZW4pIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgR2V0IENTUkYgdG9rZW4gZnJvbSBzZXQgdmFyaWFibGU6ICR7dGhpcy5jc3JmVG9rZW59YClcblxuICAgICAgcmV0dXJuIHRoaXMuY3NyZlRva2VuXG4gICAgfVxuXG4gICAgaWYgKHRoaXMudXNlTWV0YUVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGNzcmZUb2tlbkVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwibWV0YVtuYW1lPSdjc3JmLXRva2VuJ11cIilcblxuICAgICAgaWYgKGNzcmZUb2tlbkVsZW1lbnQpIHtcbiAgICAgICAgbG9nZ2VyLmRlYnVnKCgpID0+IGBHZXQgQ1NSRiB0b2tlbiBmcm9tIG1ldGEgZWxlbWVudDogJHtjc3JmVG9rZW5FbGVtZW50LmdldEF0dHJpYnV0ZShcImNvbnRlbnRcIil9YClcblxuICAgICAgICB0aGlzLmNzcmZUb2tlbiA9IGNzcmZUb2tlbkVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiY29udGVudFwiKVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNzcmZUb2tlblxuICAgICAgfVxuICAgIH1cblxuICAgIGxvZ2dlci5kZWJ1ZyhcIlVwZGF0aW5nIHNlc3Npb24gc3RhdHVzIGJlY2F1c2Ugbm8gQ1NSRiB0b2tlbiBzZXQgeWV0XCIpXG4gICAgYXdhaXQgdGhpcy51cGRhdGVTZXNzaW9uU3RhdHVzKClcblxuICAgIGlmICh0aGlzLmNzcmZUb2tlbikge1xuICAgICAgbG9nZ2VyLmRlYnVnKCgpID0+IGBSZXR1cm5pbmcgQ1NSRiB0b2tlbiBhZnRlciB1cGRhdGluZyBzZXNzaW9uIHN0YXR1czogJHt0aGlzLmNzcmZUb2tlbn1gKVxuXG4gICAgICByZXR1cm4gdGhpcy5jc3JmVG9rZW5cbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDU1JGIHRva2VuIGhhc24ndCBiZWVuIHNldFwiKVxuICB9XG5cbiAgc2Vzc2lvblN0YXR1cygpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IGhvc3QgPSBjb25maWcuZ2V0SG9zdCgpXG4gICAgICBsZXQgcmVxdWVzdFBhdGggPSBcIlwiXG5cbiAgICAgIGlmIChob3N0KSByZXF1ZXN0UGF0aCArPSBob3N0XG5cbiAgICAgIHJlcXVlc3RQYXRoICs9IFwiL2FwaV9tYWtlci9zZXNzaW9uX3N0YXR1c2VzXCJcblxuICAgICAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KClcbiAgICAgIHhoci5vcGVuKFwiUE9TVFwiLCByZXF1ZXN0UGF0aCwgdHJ1ZSlcbiAgICAgIHhoci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gSlNPTi5wYXJzZSh4aHIucmVzcG9uc2VUZXh0KVxuICAgICAgICByZXNvbHZlKHJlc3BvbnNlKVxuICAgICAgfVxuICAgICAgeGhyLnNlbmQoKVxuICAgIH0pXG4gIH1cblxuICBvblNpZ25lZE91dChjYWxsYmFjaykge1xuICAgIHRoaXMuYWRkRXZlbnQoXCJvblNpZ25lZE91dFwiLCBjYWxsYmFjaylcbiAgfVxuXG4gIHN0YXJ0VGltZW91dCgpIHtcbiAgICBsb2dnZXIuZGVidWcoXCJzdGFydFRpbWVvdXRcIilcblxuICAgIGlmICh0aGlzLnVwZGF0ZVRpbWVvdXQpXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy51cGRhdGVUaW1lb3V0KVxuXG4gICAgdGhpcy51cGRhdGVUaW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5zdGFydFRpbWVvdXQoKVxuICAgICAgICB0aGlzLnVwZGF0ZVNlc3Npb25TdGF0dXMoKVxuICAgICAgfSxcbiAgICAgIHRoaXMudGltZW91dFxuICAgIClcbiAgfVxuXG4gIHN0b3BUaW1lb3V0KCkge1xuICAgIGlmICh0aGlzLnVwZGF0ZVRpbWVvdXQpXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy51cGRhdGVUaW1lb3V0KVxuICB9XG5cbiAgdXBkYXRlU2Vzc2lvblN0YXR1cyA9IGFzeW5jICgpID0+IHtcbiAgICBsb2dnZXIuZGVidWcoXCJ1cGRhdGVTZXNzaW9uU3RhdHVzXCIpXG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnNlc3Npb25TdGF0dXMoKVxuXG4gICAgbG9nZ2VyLmRlYnVnKCgpID0+IGBSZXN1bHQ6ICR7SlNPTi5zdHJpbmdpZnkocmVzdWx0LCBudWxsLCAyKX1gKVxuICAgIHRoaXMudXBkYXRlTWV0YUVsZW1lbnRzRnJvbVJlc3VsdChyZXN1bHQpXG4gICAgdGhpcy51cGRhdGVVc2VyU2Vzc2lvbnNGcm9tUmVzdWx0KHJlc3VsdClcbiAgfVxuXG4gIHVwZGF0ZU1ldGFFbGVtZW50c0Zyb21SZXN1bHQocmVzdWx0KSB7XG4gICAgbG9nZ2VyLmRlYnVnKFwidXBkYXRlTWV0YUVsZW1lbnRzRnJvbVJlc3VsdFwiKVxuXG4gICAgdGhpcy5jc3JmVG9rZW4gPSByZXN1bHQuY3NyZl90b2tlblxuXG4gICAgaWYgKHRoaXMudXNlTWV0YUVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGNzcmZUb2tlbkVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwibWV0YVtuYW1lPSdjc3JmLXRva2VuJ11cIilcblxuICAgICAgaWYgKGNzcmZUb2tlbkVsZW1lbnQpIHtcbiAgICAgICAgbG9nZ2VyLmRlYnVnKCgpID0+IGBDaGFuZ2luZyB0b2tlbiBmcm9tIFwiJHtjc3JmVG9rZW5FbGVtZW50LmdldEF0dHJpYnV0ZShcImNvbnRlbnRcIil9XCIgdG8gXCIke3Jlc3VsdC5jc3JmX3Rva2VufVwiYClcbiAgICAgICAgY3NyZlRva2VuRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIsIHJlc3VsdC5jc3JmX3Rva2VuKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nZ2VyLmRlYnVnKFwiY3NyZiB0b2tlbiBlbGVtZW50IGNvdWxkbid0IGJlIGZvdW5kXCIpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlVXNlclNlc3Npb25zRnJvbVJlc3VsdChyZXN1bHQpIHtcbiAgICBmb3IgKGNvbnN0IHNjb3BlTmFtZSBpbiByZXN1bHQuc2NvcGVzKSB7XG4gICAgICB0aGlzLnVwZGF0ZVVzZXJTZXNzaW9uU2NvcGVGcm9tUmVzdWx0KHNjb3BlTmFtZSwgcmVzdWx0LnNjb3Blc1tzY29wZU5hbWVdKVxuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVVzZXJTZXNzaW9uU2NvcGVGcm9tUmVzdWx0KHNjb3BlTmFtZSwgc2NvcGUpIHtcbiAgICBjb25zdCBkZXZpc2VJc1NpZ25lZEluTWV0aG9kTmFtZSA9IGBpcyR7aW5mbGVjdGlvbi5jYW1lbGl6ZShzY29wZU5hbWUpfVNpZ25lZEluYFxuXG4gICAgaWYgKCEoZGV2aXNlSXNTaWduZWRJbk1ldGhvZE5hbWUgaW4gRGV2aXNlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBzdWNoIG1ldGhvZCBpbiBEZXZpc2U6ICR7ZGV2aXNlSXNTaWduZWRJbk1ldGhvZE5hbWV9YClcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50bHlTaWduZWRJbiA9IERldmlzZVtkZXZpc2VJc1NpZ25lZEluTWV0aG9kTmFtZV0oKVxuICAgIGNvbnN0IHNpZ25lZEluT25CYWNrZW5kID0gc2NvcGUuc2lnbmVkX2luXG5cbiAgICBpZiAoY3VycmVudGx5U2lnbmVkSW4gJiYgIXNpZ25lZEluT25CYWNrZW5kKSB7XG4gICAgICBsb2dnZXIuZGVidWcoKCkgPT4gYCR7aW5mbGVjdGlvbi5jYW1lbGl6ZShzY29wZU5hbWUpfSBzaWduZWQgaW4gb24gZnJvbnRlbmQgYnV0IG5vdCBpbiBiYWNrZW5kIWApXG5cbiAgICAgIERldmlzZS5zZXRTaWduZWRPdXQoe3Njb3BlOiBzY29wZU5hbWV9KVxuICAgICAgRGV2aXNlLmNhbGxTaWduT3V0RXZlbnQoe3Njb3BlOiBzY29wZU5hbWV9KVxuICAgIH1cbiAgfVxufVxuIl19
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1zdGF0dXMtdXBkYXRlci5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsic2Vzc2lvbi1zdGF0dXMtdXBkYXRlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUE7QUFFbEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUUsaUNBQWlDLEVBQUMsQ0FBQyxDQUFBO0FBQ3BFLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQTtBQUVqQix3QkFBd0I7QUFFeEIsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxPQUFPLE9BQU8sNEJBQTRCO0lBQy9DLGVBQWU7SUFDZixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzlFLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLFlBQVksSUFBSSxHQUFHLEVBQUU7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUE7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQTtRQUVyQyxJQUFJLGdCQUFnQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQTtRQUMzQyxDQUFDO2FBQU0sSUFBSSxPQUFPLFFBQVEsS0FB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RCxNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUE7UUFFekMsSUFBSSxpQkFBaUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDNUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLDRDQUE0QyxDQUFDLENBQUE7WUFFakcsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFBO1lBQ3ZDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFBO1FBQzdDLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBEZXZpc2UgZnJvbSBcIi4vZGV2aXNlLmpzXCJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4vbG9nZ2VyLmpzXCJcbmltcG9ydCBjb25maWcgZnJvbSBcIi4vY29uZmlnLmpzXCJcbmltcG9ydCB3YWtlRXZlbnQgZnJvbSBcIndha2UtZXZlbnRcIlxuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKHtuYW1lOiBcIkFwaU1ha2VyIC8gU2Vzc2lvblN0YXR1c1VwZGF0ZXJcIn0pXG5jb25zdCBzaGFyZWQgPSB7fVxuXG4vLyBsb2dnZXIuc2V0RGVidWcodHJ1ZSlcblxuLyoqIFRyYWNrcyBzZXNzaW9uIGFuZCBDU1JGIHRva2VuIGZyZXNobmVzcy4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyU2Vzc2lvblN0YXR1c1VwZGF0ZXIge1xuICAvKiogY3VycmVudC4gKi9cbiAgc3RhdGljIGN1cnJlbnQoYXJncykge1xuICAgIGlmICghc2hhcmVkLmFwaU1ha2VyU2Vzc2lvblN0YXR1c1VwZGF0ZXIpIHtcbiAgICAgIHNoYXJlZC5hcGlNYWtlclNlc3Npb25TdGF0dXNVcGRhdGVyID0gbmV3IEFwaU1ha2VyU2Vzc2lvblN0YXR1c1VwZGF0ZXIoYXJncylcbiAgICB9XG5cbiAgICByZXR1cm4gc2hhcmVkLmFwaU1ha2VyU2Vzc2lvblN0YXR1c1VwZGF0ZXJcbiAgfVxuXG4gIC8qKiBDb25zdHJ1Y3Rvci4gKi9cbiAgY29uc3RydWN0b3IoYXJncyA9IHt9KSB7XG4gICAgdGhpcy5ldmVudHMgPSB7fVxuICAgIHRoaXMudGltZW91dCA9IGFyZ3MudGltZW91dCB8fCA2MDAwMDBcblxuICAgIGlmIChcInVzZU1ldGFFbGVtZW50XCIgaW4gYXJncykge1xuICAgICAgdGhpcy51c2VNZXRhRWxlbWVudCA9IGFyZ3MudXNlTWV0YUVsZW1lbnRcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgdGhpcy51c2VNZXRhRWxlbWVudCA9IGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXNlTWV0YUVsZW1lbnQgPSB0cnVlXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgdGhpcy5jb25uZWN0T25saW5lRXZlbnQoKVxuICAgIH1cblxuICAgIHRoaXMuY29ubmVjdFdha2VFdmVudCgpXG4gIH1cblxuICAvKiogY29ubmVjdE9ubGluZUV2ZW50LiAqL1xuICBjb25uZWN0T25saW5lRXZlbnQoKSB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJvbmxpbmVcIiwgdGhpcy51cGRhdGVTZXNzaW9uU3RhdHVzLCBmYWxzZSlcbiAgfVxuXG4gIC8qKiBjb25uZWN0V2FrZUV2ZW50LiAqL1xuICBjb25uZWN0V2FrZUV2ZW50KCkge1xuICAgIHdha2VFdmVudCh0aGlzLnVwZGF0ZVNlc3Npb25TdGF0dXMpXG4gIH1cblxuICBhc3luYyBnZXRDc3JmVG9rZW4oKSB7XG4gICAgaWYgKHRoaXMuY3NyZlRva2VuKSB7XG4gICAgICBsb2dnZXIuZGVidWcoYEdldCBDU1JGIHRva2VuIGZyb20gc2V0IHZhcmlhYmxlOiAke3RoaXMuY3NyZlRva2VufWApXG5cbiAgICAgIHJldHVybiB0aGlzLmNzcmZUb2tlblxuICAgIH1cblxuICAgIGlmICh0aGlzLnVzZU1ldGFFbGVtZW50KSB7XG4gICAgICBjb25zdCBjc3JmVG9rZW5FbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIm1ldGFbbmFtZT0nY3NyZi10b2tlbiddXCIpXG5cbiAgICAgIGlmIChjc3JmVG9rZW5FbGVtZW50KSB7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgR2V0IENTUkYgdG9rZW4gZnJvbSBtZXRhIGVsZW1lbnQ6ICR7Y3NyZlRva2VuRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpfWApXG5cbiAgICAgICAgdGhpcy5jc3JmVG9rZW4gPSBjc3JmVG9rZW5FbGVtZW50LmdldEF0dHJpYnV0ZShcImNvbnRlbnRcIilcblxuICAgICAgICByZXR1cm4gdGhpcy5jc3JmVG9rZW5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBsb2dnZXIuZGVidWcoXCJVcGRhdGluZyBzZXNzaW9uIHN0YXR1cyBiZWNhdXNlIG5vIENTUkYgdG9rZW4gc2V0IHlldFwiKVxuICAgIGF3YWl0IHRoaXMudXBkYXRlU2Vzc2lvblN0YXR1cygpXG5cbiAgICBpZiAodGhpcy5jc3JmVG9rZW4pIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgUmV0dXJuaW5nIENTUkYgdG9rZW4gYWZ0ZXIgdXBkYXRpbmcgc2Vzc2lvbiBzdGF0dXM6ICR7dGhpcy5jc3JmVG9rZW59YClcblxuICAgICAgcmV0dXJuIHRoaXMuY3NyZlRva2VuXG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQ1NSRiB0b2tlbiBoYXNuJ3QgYmVlbiBzZXRcIilcbiAgfVxuXG4gIC8qKiBzZXNzaW9uU3RhdHVzLiAqL1xuICBzZXNzaW9uU3RhdHVzKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3QgaG9zdCA9IGNvbmZpZy5nZXRIb3N0KClcbiAgICAgIGxldCByZXF1ZXN0UGF0aCA9IFwiXCJcblxuICAgICAgaWYgKGhvc3QpIHJlcXVlc3RQYXRoICs9IGhvc3RcblxuICAgICAgcmVxdWVzdFBhdGggKz0gXCIvYXBpX21ha2VyL3Nlc3Npb25fc3RhdHVzZXNcIlxuXG4gICAgICBjb25zdCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKVxuICAgICAgeGhyLm9wZW4oXCJQT1NUXCIsIHJlcXVlc3RQYXRoLCB0cnVlKVxuICAgICAgeGhyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBKU09OLnBhcnNlKHhoci5yZXNwb25zZVRleHQpXG4gICAgICAgIHJlc29sdmUocmVzcG9uc2UpXG4gICAgICB9XG4gICAgICB4aHIuc2VuZCgpXG4gICAgfSlcbiAgfVxuXG4gIC8qKiBvblNpZ25lZE91dC4gKi9cbiAgb25TaWduZWRPdXQoY2FsbGJhY2spIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgdGhpcy5hZGRFdmVudChcIm9uU2lnbmVkT3V0XCIsIGNhbGxiYWNrKVxuICB9XG5cbiAgLyoqIHN0YXJ0VGltZW91dC4gKi9cbiAgc3RhcnRUaW1lb3V0KCkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcInN0YXJ0VGltZW91dFwiKVxuXG4gICAgaWYgKHRoaXMudXBkYXRlVGltZW91dClcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnVwZGF0ZVRpbWVvdXQpXG5cbiAgICB0aGlzLnVwZGF0ZVRpbWVvdXQgPSBzZXRUaW1lb3V0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLnN0YXJ0VGltZW91dCgpXG4gICAgICAgIHRoaXMudXBkYXRlU2Vzc2lvblN0YXR1cygpXG4gICAgICB9LFxuICAgICAgdGhpcy50aW1lb3V0XG4gICAgKVxuICB9XG5cbiAgLyoqIHN0b3BUaW1lb3V0LiAqL1xuICBzdG9wVGltZW91dCgpIHtcbiAgICBpZiAodGhpcy51cGRhdGVUaW1lb3V0KVxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudXBkYXRlVGltZW91dClcbiAgfVxuXG4gIC8qKiB1cGRhdGVTZXNzaW9uU3RhdHVzLiAqL1xuICB1cGRhdGVTZXNzaW9uU3RhdHVzID0gYXN5bmMgKCkgPT4ge1xuICAgIGxvZ2dlci5kZWJ1ZyhcInVwZGF0ZVNlc3Npb25TdGF0dXNcIilcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuc2Vzc2lvblN0YXR1cygpXG5cbiAgICBsb2dnZXIuZGVidWcoKCkgPT4gYFJlc3VsdDogJHtKU09OLnN0cmluZ2lmeShyZXN1bHQsIG51bGwsIDIpfWApXG4gICAgdGhpcy51cGRhdGVNZXRhRWxlbWVudHNGcm9tUmVzdWx0KHJlc3VsdClcbiAgICB0aGlzLnVwZGF0ZVVzZXJTZXNzaW9uc0Zyb21SZXN1bHQocmVzdWx0KVxuICB9XG5cbiAgLyoqIHVwZGF0ZU1ldGFFbGVtZW50c0Zyb21SZXN1bHQuICovXG4gIHVwZGF0ZU1ldGFFbGVtZW50c0Zyb21SZXN1bHQocmVzdWx0KSB7XG4gICAgbG9nZ2VyLmRlYnVnKFwidXBkYXRlTWV0YUVsZW1lbnRzRnJvbVJlc3VsdFwiKVxuXG4gICAgdGhpcy5jc3JmVG9rZW4gPSByZXN1bHQuY3NyZl90b2tlblxuXG4gICAgaWYgKHRoaXMudXNlTWV0YUVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGNzcmZUb2tlbkVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwibWV0YVtuYW1lPSdjc3JmLXRva2VuJ11cIilcblxuICAgICAgaWYgKGNzcmZUb2tlbkVsZW1lbnQpIHtcbiAgICAgICAgbG9nZ2VyLmRlYnVnKCgpID0+IGBDaGFuZ2luZyB0b2tlbiBmcm9tIFwiJHtjc3JmVG9rZW5FbGVtZW50LmdldEF0dHJpYnV0ZShcImNvbnRlbnRcIil9XCIgdG8gXCIke3Jlc3VsdC5jc3JmX3Rva2VufVwiYClcbiAgICAgICAgY3NyZlRva2VuRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIsIHJlc3VsdC5jc3JmX3Rva2VuKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nZ2VyLmRlYnVnKFwiY3NyZiB0b2tlbiBlbGVtZW50IGNvdWxkbid0IGJlIGZvdW5kXCIpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIHVwZGF0ZVVzZXJTZXNzaW9uc0Zyb21SZXN1bHQuICovXG4gIHVwZGF0ZVVzZXJTZXNzaW9uc0Zyb21SZXN1bHQocmVzdWx0KSB7XG4gICAgZm9yIChjb25zdCBzY29wZU5hbWUgaW4gcmVzdWx0LnNjb3Blcykge1xuICAgICAgdGhpcy51cGRhdGVVc2VyU2Vzc2lvblNjb3BlRnJvbVJlc3VsdChzY29wZU5hbWUsIHJlc3VsdC5zY29wZXNbc2NvcGVOYW1lXSlcbiAgICB9XG4gIH1cblxuICAvKiogdXBkYXRlVXNlclNlc3Npb25TY29wZUZyb21SZXN1bHQuICovXG4gIHVwZGF0ZVVzZXJTZXNzaW9uU2NvcGVGcm9tUmVzdWx0KHNjb3BlTmFtZSwgc2NvcGUpIHtcbiAgICBjb25zdCBkZXZpc2VJc1NpZ25lZEluTWV0aG9kTmFtZSA9IGBpcyR7aW5mbGVjdGlvbi5jYW1lbGl6ZShzY29wZU5hbWUpfVNpZ25lZEluYFxuXG4gICAgaWYgKCEoZGV2aXNlSXNTaWduZWRJbk1ldGhvZE5hbWUgaW4gRGV2aXNlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBzdWNoIG1ldGhvZCBpbiBEZXZpc2U6ICR7ZGV2aXNlSXNTaWduZWRJbk1ldGhvZE5hbWV9YClcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50bHlTaWduZWRJbiA9IERldmlzZVtkZXZpc2VJc1NpZ25lZEluTWV0aG9kTmFtZV0oKVxuICAgIGNvbnN0IHNpZ25lZEluT25CYWNrZW5kID0gc2NvcGUuc2lnbmVkX2luXG5cbiAgICBpZiAoY3VycmVudGx5U2lnbmVkSW4gJiYgIXNpZ25lZEluT25CYWNrZW5kKSB7XG4gICAgICBsb2dnZXIuZGVidWcoKCkgPT4gYCR7aW5mbGVjdGlvbi5jYW1lbGl6ZShzY29wZU5hbWUpfSBzaWduZWQgaW4gb24gZnJvbnRlbmQgYnV0IG5vdCBpbiBiYWNrZW5kIWApXG5cbiAgICAgIERldmlzZS5zZXRTaWduZWRPdXQoe3Njb3BlOiBzY29wZU5hbWV9KVxuICAgICAgRGV2aXNlLmNhbGxTaWduT3V0RXZlbnQoe3Njb3BlOiBzY29wZU5hbWV9KVxuICAgIH1cbiAgfVxufVxuIl19
@@ -3,21 +3,27 @@ import Logger from "./logger.js";
3
3
  import { SourceMapConsumer } from "source-map";
4
4
  import uniqunize from "uniqunize";
5
5
  // Sometimes this needs to be called and sometimes not
6
+ // @ts-expect-error
6
7
  if (SourceMapConsumer.initialize) {
8
+ // @ts-expect-error
7
9
  SourceMapConsumer.initialize({
8
10
  "lib/mappings.wasm": "https://unpkg.com/source-map@0.7.4/lib/mappings.wasm"
9
11
  });
10
12
  }
11
13
  const logger = new Logger({ name: "ApiMaker / SourceMapsLoader" });
14
+ /** Loads and resolves source maps for stack traces. */
12
15
  export default class SourceMapsLoader {
16
+ /** Constructor. */
13
17
  constructor() {
14
18
  this.isLoadingSourceMaps = false;
15
19
  this.sourceMaps = [];
16
20
  this.srcLoaded = {};
17
21
  }
22
+ /** loadSourceMapsForScriptTags. */
18
23
  loadSourceMapsForScriptTags(callback) {
19
24
  this.loadSourceMapsForScriptTagsCallback = callback;
20
25
  }
26
+ /** sourceMapForSource. */
21
27
  sourceMapForSource(callback) {
22
28
  this.sourceMapForSourceCallback = callback;
23
29
  }
@@ -41,12 +47,14 @@ export default class SourceMapsLoader {
41
47
  this.isLoadingSourceMaps = false;
42
48
  }
43
49
  }
50
+ /** getSources. */
44
51
  getSources(error) {
45
52
  let sources = this.getSourcesFromScripts();
46
53
  if (error)
47
54
  sources = sources.concat(this.getSourcesFromError(error));
48
55
  return uniqunize(sources, (source) => source.originalUrl);
49
56
  }
57
+ /** getSourcesFromError. */
50
58
  getSourcesFromError(error) {
51
59
  const stack = stackTraceParser.parse(error.stack);
52
60
  const sources = [];
@@ -65,10 +73,11 @@ export default class SourceMapsLoader {
65
73
  }
66
74
  return sources;
67
75
  }
76
+ /** getSourcesFromScripts. */
68
77
  getSourcesFromScripts() {
69
78
  const scripts = document.querySelectorAll("script");
70
79
  const sources = [];
71
- for (const script of scripts) {
80
+ for (const script of Array.from(scripts)) {
72
81
  const sourceMapUrl = this.getMapURL({ script, src: script.src });
73
82
  if (sourceMapUrl) {
74
83
  logger.debug(() => `Found source map from script: ${sourceMapUrl}`);
@@ -77,7 +86,9 @@ export default class SourceMapsLoader {
77
86
  }
78
87
  return sources;
79
88
  }
80
- getMapURL({ script, src }) {
89
+ /** getMapURL. */
90
+ getMapURL(args = {}) {
91
+ const { script, src } = /** @type {any} */ (args); // eslint-disable-line no-extra-parens
81
92
  const url = this.loadUrl(src);
82
93
  const originalUrl = `${url.origin}${url.pathname}`;
83
94
  if (this.sourceMapForSourceCallback) {
@@ -89,6 +100,7 @@ export default class SourceMapsLoader {
89
100
  return `${originalUrl}.map`;
90
101
  }
91
102
  }
103
+ /** includeMapURL. */
92
104
  includeMapURL = (src) => src.includes("/packs/");
93
105
  async loadSourceMapForSource({ originalUrl, sourceMapUrl }) {
94
106
  const xhr = new XMLHttpRequest();
@@ -100,16 +112,19 @@ export default class SourceMapsLoader {
100
112
  console.log(`Couldn't load source map from: ${sourceMapUrl}: ${xhr.responseText}`);
101
113
  return;
102
114
  }
115
+ // @ts-expect-error
103
116
  const consumer = await new SourceMapConsumer(xhr.responseText);
104
117
  if (consumer) {
105
118
  this.sourceMaps.push({ consumer, originalUrl });
106
119
  }
107
120
  }
121
+ /** loadUrl. */
108
122
  loadUrl(url) {
109
123
  const parser = document.createElement("a");
110
124
  parser.href = url;
111
125
  return parser;
112
126
  }
127
+ /** loadXhr. */
113
128
  loadXhr(xhr, url) {
114
129
  return new Promise((resolve, reject) => {
115
130
  xhr.onload = () => {
@@ -123,10 +138,12 @@ export default class SourceMapsLoader {
123
138
  xhr.send();
124
139
  });
125
140
  }
141
+ /** parseStackTrace. */
126
142
  parseStackTrace(stackTrace) {
127
143
  return this.getStackTraceData(stackTrace)
128
144
  .map((traceData) => `at ${traceData.methodName} (${traceData.fileString})`);
129
145
  }
146
+ /** getStackTraceData. */
130
147
  getStackTraceData(stackTrace) {
131
148
  const stack = stackTraceParser.parse(stackTrace);
132
149
  const newSourceMap = [];
@@ -162,4 +179,4 @@ export default class SourceMapsLoader {
162
179
  return newSourceMap;
163
180
  }
164
181
  }
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLW1hcHMtbG9hZGVyLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJzb3VyY2UtbWFwcy1sb2FkZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLGdCQUFnQixNQUFNLG1CQUFtQixDQUFBO0FBQ3JELE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxZQUFZLENBQUE7QUFDNUMsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFBO0FBRWpDLHNEQUFzRDtBQUN0RCxJQUFJLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2pDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztRQUMzQixtQkFBbUIsRUFBRSxzREFBc0Q7S0FDNUUsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVELE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLEVBQUMsSUFBSSxFQUFFLDZCQUE2QixFQUFDLENBQUMsQ0FBQTtBQUVoRSxNQUFNLENBQUMsT0FBTyxPQUFPLGdCQUFnQjtJQUNuQztRQUNFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUE7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUE7UUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUE7SUFDckIsQ0FBQztJQUVELDJCQUEyQixDQUFDLFFBQVE7UUFDbEMsSUFBSSxDQUFDLG1DQUFtQyxHQUFHLFFBQVEsQ0FBQTtJQUNyRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsUUFBUTtRQUN6QixJQUFJLENBQUMsMEJBQTBCLEdBQUcsUUFBUSxDQUFBO0lBQzVDLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUs7UUFDeEIsSUFBSSxDQUFDLEtBQUs7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUE7UUFFcEYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FB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RTlDLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNqQixVQUFVLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUE7Z0JBQ2xDLENBQUM7WUFDSCxDQUFDO1lBRUQsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDaEIsUUFBUTtnQkFDUixVQUFVO2dCQUNWLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTthQUM3QixDQUFDLENBQUE7UUFDSixDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUE7SUFDckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgc3RhY2tUcmFjZVBhcnNlciBmcm9tIFwic3RhY2t0cmFjZS1wYXJzZXJcIlxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi9sb2dnZXIuanNcIlxuaW1wb3J0IHtTb3VyY2VNYXBDb25zdW1lcn0gZnJvbSBcInNvdXJjZS1tYXBcIlxuaW1wb3J0IHVuaXF1bml6ZSBmcm9tIFwidW5pcXVuaXplXCJcblxuLy8gU29tZXRpbWVzIHRoaXMgbmVlZHMgdG8gYmUgY2FsbGVkIGFuZCBzb21ldGltZXMgbm90XG5pZiAoU291cmNlTWFwQ29uc3VtZXIuaW5pdGlhbGl6ZSkge1xuICBTb3VyY2VNYXBDb25zdW1lci5pbml0aWFsaXplKHtcbiAgICBcImxpYi9tYXBwaW5ncy53YXNtXCI6IFwiaHR0cHM6Ly91bnBrZy5jb20vc291cmNlLW1hcEAwLjcuNC9saWIvbWFwcGluZ3Mud2FzbVwiXG4gIH0pXG59XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoe25hbWU6IFwiQXBpTWFrZXIgLyBTb3VyY2VNYXBzTG9hZGVyXCJ9KVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTb3VyY2VNYXBzTG9hZGVyIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pc0xvYWRpbmdTb3VyY2VNYXBzID0gZmFsc2VcbiAgICB0aGlzLnNvdXJjZU1hcHMgPSBbXVxuICAgIHRoaXMuc3JjTG9hZGVkID0ge31cbiAgfVxuXG4gIGxvYWRTb3VyY2VNYXBzRm9yU2NyaXB0VGFncyhjYWxsYmFjaykge1xuICAgIHRoaXMubG9hZFNvdXJjZU1hcHNGb3JTY3JpcHRUYWdzQ2FsbGJhY2sgPSBjYWxsYmFja1xuICB9XG5cbiAgc291cmNlTWFwRm9yU291cmNlKGNhbGxiYWNrKSB7XG4gICAgdGhpcy5zb3VyY2VNYXBGb3JTb3VyY2VDYWxsYmFjayA9IGNhbGxiYWNrXG4gIH1cblxuICBhc3luYyBsb2FkU291cmNlTWFwcyhlcnJvcikge1xuICAgIGlmICghZXJyb3IpIHRocm93IG5ldyBFcnJvcihcIk5vIGVycm9yIHdhcyBnaXZlbiB0byBTb3VyY2VNYXBzTG9hZGVyI2xvYWRTb3VyY2VNYXBzXCIpXG5cbiAgICB0aGlzLmlzTG9hZGluZ1NvdXJjZU1hcHMgPSB0cnVlXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcHJvbWlzZXMgPSBbXVxuICAgICAgY29uc3Qgc291cmNlcyA9IHRoaXMuZ2V0U291cmNlcyhlcnJvcilcblxuICAgICAgZm9yKGNvbnN0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XG4gICAgICAgIGlmIChzb3VyY2Uub3JpZ2luYWxVcmwgJiYgIXRoaXMuc3JjTG9hZGVkW3NvdXJjZS5vcmlnaW5hbFVybF0pIHtcbiAgICAgICAgICB0aGlzLnNyY0xvYWRlZFtzb3VyY2Uub3JpZ2luYWxVcmxdID0gdHJ1ZVxuXG4gICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMubG9hZFNvdXJjZU1hcEZvclNvdXJjZShzb3VyY2UpXG4gICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzTG9hZGluZ1NvdXJjZU1hcHMgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIGdldFNvdXJjZXMoZXJyb3IpIHtcbiAgICBsZXQgc291cmNlcyA9IHRoaXMuZ2V0U291cmNlc0Zyb21TY3JpcHRzKClcblxuICAgIGlmIChlcnJvcikgc291cmNlcyA9IHNvdXJjZXMuY29uY2F0KHRoaXMuZ2V0U291cmNlc0Zyb21FcnJvcihlcnJvcikpXG5cbiAgICByZXR1cm4gdW5pcXVuaXplKHNvdXJjZXMsIChzb3VyY2UpID0+IHNvdXJjZS5vcmlnaW5hbFVybClcbiAgfVxuXG4gIGdldFNvdXJjZXNGcm9tRXJyb3IoZXJyb3IpIHtcbiAgICBjb25zdCBzdGFjayA9IHN0YWNrVHJhY2VQYXJzZXIucGFyc2UoZXJyb3Iuc3RhY2spXG4gICAgY29uc3Qgc291cmNlcyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IHRyYWNlIG9mIHN0YWNrKSB7XG4gICAgICBjb25zdCBmaWxlID0gdHJhY2UuZmlsZVxuXG4gICAgICBpZiAoZmlsZSAhPSBcIlxcdTAwM0Nhbm9ueW1vdXM+XCIpIHtcbiAgICAgICAgY29uc3Qgc291cmNlTWFwVXJsID0gdGhpcy5nZXRNYXBVUkwoe3NyYzogZmlsZX0pXG5cbiAgICAgICAgaWYgKHNvdXJjZU1hcFVybCkge1xuICAgICAgICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgRm91bmQgc291cmNlIG1hcCBmcm9tIGVycm9yOiAke3NvdXJjZU1hcFVybH1gKVxuXG4gICAgICAgICAgc291cmNlcy5wdXNoKHtvcmlnaW5hbFVybDogZmlsZSwgc291cmNlTWFwVXJsfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2dnZXIuZGVidWcoKCkgPT4gYENvdWRuJ3QgZ2V0IHNvdXJjZSBtYXAgZnJvbTogJHtmaWxlfWApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc291cmNlc1xuICB9XG5cbiAgZ2V0U291cmNlc0Zyb21TY3JpcHRzKCkge1xuICAgIGNvbnN0IHNjcmlwdHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwic2NyaXB0XCIpXG4gICAgY29uc3Qgc291cmNlcyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IHNjcmlwdCBvZiBzY3JpcHRzKSB7XG4gICAgICBjb25zdCBzb3VyY2VNYXBVcmwgPSB0aGlzLmdldE1hcFVSTCh7c2NyaXB0LCBzcmM6IHNjcmlwdC5zcmN9KVxuXG4gICAgICBpZiAoc291cmNlTWFwVXJsKSB7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgRm91bmQgc291cmNlIG1hcCBmcm9tIHNjcmlwdDogJHtzb3VyY2VNYXBVcmx9YClcbiAgICAgICAgc291cmNlcy5wdXNoKHtvcmlnaW5hbFVybDogc2NyaXB0LnNyYywgc291cmNlTWFwVXJsfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc291cmNlc1xuICB9XG5cbiAgZ2V0TWFwVVJMKHtzY3JpcHQsIHNyY30pIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmxvYWRVcmwoc3JjKVxuICAgIGNvbnN0IG9yaWdpbmFsVXJsID0gYCR7dXJsLm9yaWdpbn0ke3VybC5wYXRobmFtZX1gXG5cbiAgICBpZiAodGhpcy5zb3VyY2VNYXBGb3JTb3VyY2VDYWxsYmFjaykge1xuICAgICAgLy8gVXNlIGN1c3RvbSBjYWxsYmFjayB0byByZXNvbHZlIHdoaWNoIG1hcC1maWxlIHRvIGRvd25sb2FkXG4gICAgICByZXR1cm4gdGhpcy5zb3VyY2VNYXBGb3JTb3VyY2VDYWxsYmFjayh7b3JpZ2luYWxVcmwsIHNjcmlwdCwgc3JjLCB1cmx9KVxuICAgIH0gZWxzZSBpZiAodGhpcy5pbmNsdWRlTWFwVVJMKHNyYykpIHtcbiAgICAgIC8vIERlZmF1bHQgdG8gb3JpZ2luYWwgVVJMIHdpdGggJy5tYXAnIGFwcGVuZGVkXG4gICAgICByZXR1cm4gYCR7b3JpZ2luYWxVcmx9Lm1hcGBcbiAgICB9XG4gIH1cblxuICBpbmNsdWRlTWFwVVJMID0gKHNyYykgPT4gc3JjLmluY2x1ZGVzKFwiL3BhY2tzL1wiKVxuXG4gIGFzeW5jIGxvYWRTb3VyY2VNYXBGb3JTb3VyY2Uoe29yaWdpbmFsVXJsLCBzb3VyY2VNYXBVcmx9KSB7XG4gICAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KClcblxuICAgIHhoci5vcGVuKFwiR0VUXCIsIHNvdXJjZU1hcFVybCwgdHJ1ZSlcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmxvYWRYaHIoeGhyLCBzb3VyY2VNYXBVcmwpXG4gICAgfSBjYXRjaCB7XG4gICAgICBjb25zb2xlLmxvZyhgQ291bGRuJ3QgbG9hZCBzb3VyY2UgbWFwIGZyb206ICR7c291cmNlTWFwVXJsfTogJHt4aHIucmVzcG9uc2VUZXh0fWApXG5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGNvbnN1bWVyID0gYXdhaXQgbmV3IFNvdXJjZU1hcENvbnN1bWVyKHhoci5yZXNwb25zZVRleHQpXG5cbiAgICBpZiAoY29uc3VtZXIpIHtcbiAgICAgIHRoaXMuc291cmNlTWFwcy5wdXNoKHtjb25zdW1lciwgb3JpZ2luYWxVcmx9KVxuICAgIH1cbiAgfVxuXG4gIGxvYWRVcmwodXJsKSB7XG4gICAgY29uc3QgcGFyc2VyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIilcblxuICAgIHBhcnNlci5ocmVmID0gdXJsXG5cbiAgICByZXR1cm4gcGFyc2VyXG4gIH1cblxuICBsb2FkWGhyKHhociwgdXJsKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHhoci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGlmICh4aHIuc3RhdHVzID09IDIwMCkge1xuICAgICAgICAgIHJlc29sdmUoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoYEhUVFAgcmVxdWVzdCBmYWlsZWQgd2l0aCAke3hoci5zdGF0dXN9IGZvciAke3VybH1gKSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgeGhyLnNlbmQoKVxuICAgIH0pXG4gIH1cblxuICBwYXJzZVN0YWNrVHJhY2Uoc3RhY2tUcmFjZSkge1xuICAgIHJldHVybiB0aGlzLmdldFN0YWNrVHJhY2VEYXRhKHN0YWNrVHJhY2UpXG4gICAgICAubWFwKCh0cmFjZURhdGEpID0+IGBhdCAke3RyYWNlRGF0YS5tZXRob2ROYW1lfSAoJHt0cmFjZURhdGEuZmlsZVN0cmluZ30pYClcbiAgfVxuXG4gIGdldFN0YWNrVHJhY2VEYXRhKHN0YWNrVHJhY2UpIHtcbiAgICBjb25zdCBzdGFjayA9IHN0YWNrVHJhY2VQYXJzZXIucGFyc2Uoc3RhY2tUcmFjZSlcbiAgICBjb25zdCBuZXdTb3VyY2VNYXAgPSBbXVxuXG4gICAgZm9yIChjb25zdCB0cmFjZSBvZiBzdGFjaykge1xuICAgICAgY29uc3Qgc291cmNlTWFwRGF0YSA9IHRoaXMuc291cmNlTWFwcy5maW5kKChzb3VyY2VNYXBEYXRhKSA9PiBzb3VyY2VNYXBEYXRhLm9yaWdpbmFsVXJsID09IHRyYWNlLmZpbGUpXG5cbiAgICAgIGxldCBmaWxlUGF0aCwgZmlsZVN0cmluZywgb3JpZ2luYWxcblxuICAgICAgaWYgKHNvdXJjZU1hcERhdGEpIHtcbiAgICAgICAgb3JpZ2luYWwgPSBzb3VyY2VNYXBEYXRhLmNvbnN1bWVyLm9yaWdpbmFsUG9zaXRpb25Gb3Ioe1xuICAgICAgICAgIGxpbmU6IHRyYWNlLmxpbmVOdW1iZXIsXG4gICAgICAgICAgY29sdW1uOiB0cmFjZS5jb2x1bW5cbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKG9yaWdpbmFsICYmIG9yaWdpbmFsLnNvdXJjZSkge1xuICAgICAgICBmaWxlUGF0aCA9IG9yaWdpbmFsLnNvdXJjZS5yZXBsYWNlKC9ed2VicGFjazpcXC9cXC8oYXBwfClcXC8vLCBcIlwiKVxuICAgICAgICBmaWxlU3RyaW5nID0gYCR7ZmlsZVBhdGh9OiR7b3JpZ2luYWwubGluZX1gXG5cbiAgICAgICAgaWYgKG9yaWdpbmFsLmNvbHVtbikge1xuICAgICAgICAgIGZpbGVTdHJpbmcgKz0gYDoke29yaWdpbmFsLmNvbHVtbn1gXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbGVQYXRoID0gdHJhY2UuZmlsZVxuICAgICAgICBmaWxlU3RyaW5nID0gYCR7ZmlsZVBhdGh9OiR7dHJhY2UubGluZU51bWJlcn1gXG5cbiAgICAgICAgaWYgKHRyYWNlLmNvbHVtbikge1xuICAgICAgICAgIGZpbGVTdHJpbmcgKz0gYDoke3RyYWNlLmNvbHVtbn1gXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbmV3U291cmNlTWFwLnB1c2goe1xuICAgICAgICBmaWxlUGF0aCxcbiAgICAgICAgZmlsZVN0cmluZyxcbiAgICAgICAgbWV0aG9kTmFtZTogdHJhY2UubWV0aG9kTmFtZVxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3U291cmNlTWFwXG4gIH1cbn1cbiJdfQ==
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLW1hcHMtbG9hZGVyLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJzb3VyY2UtbWFwcy1sb2FkZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLGdCQUFnQixNQUFNLG1CQUFtQixDQUFBO0FBQ3JELE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxZQUFZLENBQUE7QUFDNUMsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFBO0FBRWpDLHNEQUFzRDtBQUN0RCxtQkFBbUI7QUFDbkIsSUFBSSxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqQyxtQkFBbUI7SUFDbkIsaUJBQWlCLENBQUMsVUFBVSxDQUFDO1FBQzNCLG1CQUFtQixFQUFFLHNEQUFzRDtLQUM1RSxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUUsNkJBQTZCLEVBQUMsQ0FBQyxDQUFBO0FBRWhFLHVEQUF1RDtBQUN2RCxNQUFNLENBQUMsT0FBTyxPQUFPLGdCQUFnQjtJQUNuQyxtQkFBbUI7SUFDbkI7UUFDRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFBO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFBO0lBQ3JCLENBQUM7SUFFRCxtQ0FBbUM7SUFDbkMsMkJBQTJCLENBQUMsUUFBUTtRQUNsQyxJQUFJLENBQUMsbUNBQW1DLEdBQUcsUUFBUSxDQUFBO0lBQ3JELENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsa0JBQWtCLENBQUMsUUFBUTtRQUN6QixJQUFJLENBQUMsMEJBQTBCLEdBQUcsUUFBUSxDQUFBO0lBQzVDLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUs7UUFDeEIsSUFBSSxDQUFDLEtBQUs7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Q0FBQyx1QkFBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQTtnQkFDL0QsVUFBVSxHQUFHLEdBQUcsUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtnQkFFM0MsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3BCLFVBQVUsSUFBSSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtnQkFDckMsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQTtnQkFDckIsVUFBVSxHQUFHLEdBQUcsUUFBUSxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQTtnQkFFOUMsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2pCLFVBQVUsSUFBSSxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQTtnQkFDbEMsQ0FBQztZQUNILENBQUM7WUFFRCxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUNoQixRQUFRO2dCQUNSLFVBQVU7Z0JBQ1YsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO2FBQzdCLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFFRCxPQUFPLFlBQVksQ0FBQTtJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzdGFja1RyYWNlUGFyc2VyIGZyb20gXCJzdGFja3RyYWNlLXBhcnNlclwiXG5pbXBvcnQgTG9nZ2VyIGZyb20gXCIuL2xvZ2dlci5qc1wiXG5pbXBvcnQge1NvdXJjZU1hcENvbnN1bWVyfSBmcm9tIFwic291cmNlLW1hcFwiXG5pbXBvcnQgdW5pcXVuaXplIGZyb20gXCJ1bmlxdW5pemVcIlxuXG4vLyBTb21ldGltZXMgdGhpcyBuZWVkcyB0byBiZSBjYWxsZWQgYW5kIHNvbWV0aW1lcyBub3Rcbi8vIEB0cy1leHBlY3QtZXJyb3JcbmlmIChTb3VyY2VNYXBDb25zdW1lci5pbml0aWFsaXplKSB7XG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgU291cmNlTWFwQ29uc3VtZXIuaW5pdGlhbGl6ZSh7XG4gICAgXCJsaWIvbWFwcGluZ3Mud2FzbVwiOiBcImh0dHBzOi8vdW5wa2cuY29tL3NvdXJjZS1tYXBAMC43LjQvbGliL21hcHBpbmdzLndhc21cIlxuICB9KVxufVxuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKHtuYW1lOiBcIkFwaU1ha2VyIC8gU291cmNlTWFwc0xvYWRlclwifSlcblxuLyoqIExvYWRzIGFuZCByZXNvbHZlcyBzb3VyY2UgbWFwcyBmb3Igc3RhY2sgdHJhY2VzLiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU291cmNlTWFwc0xvYWRlciB7XG4gIC8qKiBDb25zdHJ1Y3Rvci4gKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pc0xvYWRpbmdTb3VyY2VNYXBzID0gZmFsc2VcbiAgICB0aGlzLnNvdXJjZU1hcHMgPSBbXVxuICAgIHRoaXMuc3JjTG9hZGVkID0ge31cbiAgfVxuXG4gIC8qKiBsb2FkU291cmNlTWFwc0ZvclNjcmlwdFRhZ3MuICovXG4gIGxvYWRTb3VyY2VNYXBzRm9yU2NyaXB0VGFncyhjYWxsYmFjaykge1xuICAgIHRoaXMubG9hZFNvdXJjZU1hcHNGb3JTY3JpcHRUYWdzQ2FsbGJhY2sgPSBjYWxsYmFja1xuICB9XG5cbiAgLyoqIHNvdXJjZU1hcEZvclNvdXJjZS4gKi9cbiAgc291cmNlTWFwRm9yU291cmNlKGNhbGxiYWNrKSB7XG4gICAgdGhpcy5zb3VyY2VNYXBGb3JTb3VyY2VDYWxsYmFjayA9IGNhbGxiYWNrXG4gIH1cblxuICBhc3luYyBsb2FkU291cmNlTWFwcyhlcnJvcikge1xuICAgIGlmICghZXJyb3IpIHRocm93IG5ldyBFcnJvcihcIk5vIGVycm9yIHdhcyBnaXZlbiB0byBTb3VyY2VNYXBzTG9hZGVyI2xvYWRTb3VyY2VNYXBzXCIpXG5cbiAgICB0aGlzLmlzTG9hZGluZ1NvdXJjZU1hcHMgPSB0cnVlXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcHJvbWlzZXMgPSBbXVxuICAgICAgY29uc3Qgc291cmNlcyA9IHRoaXMuZ2V0U291cmNlcyhlcnJvcilcblxuICAgICAgZm9yKGNvbnN0IHNvdXJjZSBvZiBzb3VyY2VzKSB7XG4gICAgICAgIGlmIChzb3VyY2Uub3JpZ2luYWxVcmwgJiYgIXRoaXMuc3JjTG9hZGVkW3NvdXJjZS5vcmlnaW5hbFVybF0pIHtcbiAgICAgICAgICB0aGlzLnNyY0xvYWRlZFtzb3VyY2Uub3JpZ2luYWxVcmxdID0gdHJ1ZVxuXG4gICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMubG9hZFNvdXJjZU1hcEZvclNvdXJjZShzb3VyY2UpXG4gICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzTG9hZGluZ1NvdXJjZU1hcHMgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIC8qKiBnZXRTb3VyY2VzLiAqL1xuICBnZXRTb3VyY2VzKGVycm9yKSB7XG4gICAgbGV0IHNvdXJjZXMgPSB0aGlzLmdldFNvdXJjZXNGcm9tU2NyaXB0cygpXG5cbiAgICBpZiAoZXJyb3IpIHNvdXJjZXMgPSBzb3VyY2VzLmNvbmNhdCh0aGlzLmdldFNvdXJjZXNGcm9tRXJyb3IoZXJyb3IpKVxuXG4gICAgcmV0dXJuIHVuaXF1bml6ZShzb3VyY2VzLCAoc291cmNlKSA9PiBzb3VyY2Uub3JpZ2luYWxVcmwpXG4gIH1cblxuICAvKiogZ2V0U291cmNlc0Zyb21FcnJvci4gKi9cbiAgZ2V0U291cmNlc0Zyb21FcnJvcihlcnJvcikge1xuICAgIGNvbnN0IHN0YWNrID0gc3RhY2tUcmFjZVBhcnNlci5wYXJzZShlcnJvci5zdGFjaylcbiAgICBjb25zdCBzb3VyY2VzID0gW11cblxuICAgIGZvciAoY29uc3QgdHJhY2Ugb2Ygc3RhY2spIHtcbiAgICAgIGNvbnN0IGZpbGUgPSB0cmFjZS5maWxlXG5cbiAgICAgIGlmIChmaWxlICE9IFwiXFx1MDAzQ2Fub255bW91cz5cIikge1xuICAgICAgICBjb25zdCBzb3VyY2VNYXBVcmwgPSB0aGlzLmdldE1hcFVSTCh7c3JjOiBmaWxlfSlcblxuICAgICAgICBpZiAoc291cmNlTWFwVXJsKSB7XG4gICAgICAgICAgbG9nZ2VyLmRlYnVnKCgpID0+IGBGb3VuZCBzb3VyY2UgbWFwIGZyb20gZXJyb3I6ICR7c291cmNlTWFwVXJsfWApXG5cbiAgICAgICAgICBzb3VyY2VzLnB1c2goe29yaWdpbmFsVXJsOiBmaWxlLCBzb3VyY2VNYXBVcmx9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgQ291ZG4ndCBnZXQgc291cmNlIG1hcCBmcm9tOiAke2ZpbGV9YClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzb3VyY2VzXG4gIH1cblxuICAvKiogZ2V0U291cmNlc0Zyb21TY3JpcHRzLiAqL1xuICBnZXRTb3VyY2VzRnJvbVNjcmlwdHMoKSB7XG4gICAgY29uc3Qgc2NyaXB0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJzY3JpcHRcIilcbiAgICBjb25zdCBzb3VyY2VzID0gW11cblxuICAgIGZvciAoY29uc3Qgc2NyaXB0IG9mIEFycmF5LmZyb20oc2NyaXB0cykpIHtcbiAgICAgIGNvbnN0IHNvdXJjZU1hcFVybCA9IHRoaXMuZ2V0TWFwVVJMKHtzY3JpcHQsIHNyYzogc2NyaXB0LnNyY30pXG5cbiAgICAgIGlmIChzb3VyY2VNYXBVcmwpIHtcbiAgICAgICAgbG9nZ2VyLmRlYnVnKCgpID0+IGBGb3VuZCBzb3VyY2UgbWFwIGZyb20gc2NyaXB0OiAke3NvdXJjZU1hcFVybH1gKVxuICAgICAgICBzb3VyY2VzLnB1c2goe29yaWdpbmFsVXJsOiBzY3JpcHQuc3JjLCBzb3VyY2VNYXBVcmx9KVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzb3VyY2VzXG4gIH1cblxuICAvKiogZ2V0TWFwVVJMLiAqL1xuICBnZXRNYXBVUkwoYXJncyA9IHt9KSB7XG4gICAgY29uc3Qge3NjcmlwdCwgc3JjfSA9IC8qKiBAdHlwZSB7YW55fSAqLyAoYXJncykgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1leHRyYS1wYXJlbnNcbiAgICBjb25zdCB1cmwgPSB0aGlzLmxvYWRVcmwoc3JjKVxuICAgIGNvbnN0IG9yaWdpbmFsVXJsID0gYCR7dXJsLm9yaWdpbn0ke3VybC5wYXRobmFtZX1gXG5cbiAgICBpZiAodGhpcy5zb3VyY2VNYXBGb3JTb3VyY2VDYWxsYmFjaykge1xuICAgICAgLy8gVXNlIGN1c3RvbSBjYWxsYmFjayB0byByZXNvbHZlIHdoaWNoIG1hcC1maWxlIHRvIGRvd25sb2FkXG4gICAgICByZXR1cm4gdGhpcy5zb3VyY2VNYXBGb3JTb3VyY2VDYWxsYmFjayh7b3JpZ2luYWxVcmwsIHNjcmlwdCwgc3JjLCB1cmx9KVxuICAgIH0gZWxzZSBpZiAodGhpcy5pbmNsdWRlTWFwVVJMKHNyYykpIHtcbiAgICAgIC8vIERlZmF1bHQgdG8gb3JpZ2luYWwgVVJMIHdpdGggJy5tYXAnIGFwcGVuZGVkXG4gICAgICByZXR1cm4gYCR7b3JpZ2luYWxVcmx9Lm1hcGBcbiAgICB9XG4gIH1cblxuICAvKiogaW5jbHVkZU1hcFVSTC4gKi9cbiAgaW5jbHVkZU1hcFVSTCA9IChzcmMpID0+IHNyYy5pbmNsdWRlcyhcIi9wYWNrcy9cIilcblxuICBhc3luYyBsb2FkU291cmNlTWFwRm9yU291cmNlKHtvcmlnaW5hbFVybCwgc291cmNlTWFwVXJsfSkge1xuICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpXG5cbiAgICB4aHIub3BlbihcIkdFVFwiLCBzb3VyY2VNYXBVcmwsIHRydWUpXG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5sb2FkWGhyKHhociwgc291cmNlTWFwVXJsKVxuICAgIH0gY2F0Y2gge1xuICAgICAgY29uc29sZS5sb2coYENvdWxkbid0IGxvYWQgc291cmNlIG1hcCBmcm9tOiAke3NvdXJjZU1hcFVybH06ICR7eGhyLnJlc3BvbnNlVGV4dH1gKVxuXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgY29uc3QgY29uc3VtZXIgPSBhd2FpdCBuZXcgU291cmNlTWFwQ29uc3VtZXIoeGhyLnJlc3BvbnNlVGV4dClcblxuICAgIGlmIChjb25zdW1lcikge1xuICAgICAgdGhpcy5zb3VyY2VNYXBzLnB1c2goe2NvbnN1bWVyLCBvcmlnaW5hbFVybH0pXG4gICAgfVxuICB9XG5cbiAgLyoqIGxvYWRVcmwuICovXG4gIGxvYWRVcmwodXJsKSB7XG4gICAgY29uc3QgcGFyc2VyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIilcblxuICAgIHBhcnNlci5ocmVmID0gdXJsXG5cbiAgICByZXR1cm4gcGFyc2VyXG4gIH1cblxuICAvKiogbG9hZFhoci4gKi9cbiAgbG9hZFhocih4aHIsIHVybCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB4aHIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICBpZiAoeGhyLnN0YXR1cyA9PSAyMDApIHtcbiAgICAgICAgICByZXNvbHZlKClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QobmV3IEVycm9yKGBIVFRQIHJlcXVlc3QgZmFpbGVkIHdpdGggJHt4aHIuc3RhdHVzfSBmb3IgJHt1cmx9YCkpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHhoci5zZW5kKClcbiAgICB9KVxuICB9XG5cbiAgLyoqIHBhcnNlU3RhY2tUcmFjZS4gKi9cbiAgcGFyc2VTdGFja1RyYWNlKHN0YWNrVHJhY2UpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdGFja1RyYWNlRGF0YShzdGFja1RyYWNlKVxuICAgICAgLm1hcCgodHJhY2VEYXRhKSA9PiBgYXQgJHt0cmFjZURhdGEubWV0aG9kTmFtZX0gKCR7dHJhY2VEYXRhLmZpbGVTdHJpbmd9KWApXG4gIH1cblxuICAvKiogZ2V0U3RhY2tUcmFjZURhdGEuICovXG4gIGdldFN0YWNrVHJhY2VEYXRhKHN0YWNrVHJhY2UpIHtcbiAgICBjb25zdCBzdGFjayA9IHN0YWNrVHJhY2VQYXJzZXIucGFyc2Uoc3RhY2tUcmFjZSlcbiAgICBjb25zdCBuZXdTb3VyY2VNYXAgPSBbXVxuXG4gICAgZm9yIChjb25zdCB0cmFjZSBvZiBzdGFjaykge1xuICAgICAgY29uc3Qgc291cmNlTWFwRGF0YSA9IHRoaXMuc291cmNlTWFwcy5maW5kKChzb3VyY2VNYXBEYXRhKSA9PiBzb3VyY2VNYXBEYXRhLm9yaWdpbmFsVXJsID09IHRyYWNlLmZpbGUpXG5cbiAgICAgIGxldCBmaWxlUGF0aCwgZmlsZVN0cmluZywgb3JpZ2luYWxcblxuICAgICAgaWYgKHNvdXJjZU1hcERhdGEpIHtcbiAgICAgICAgb3JpZ2luYWwgPSBzb3VyY2VNYXBEYXRhLmNvbnN1bWVyLm9yaWdpbmFsUG9zaXRpb25Gb3Ioe1xuICAgICAgICAgIGxpbmU6IHRyYWNlLmxpbmVOdW1iZXIsXG4gICAgICAgICAgY29sdW1uOiB0cmFjZS5jb2x1bW5cbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKG9yaWdpbmFsICYmIG9yaWdpbmFsLnNvdXJjZSkge1xuICAgICAgICBmaWxlUGF0aCA9IG9yaWdpbmFsLnNvdXJjZS5yZXBsYWNlKC9ed2VicGFjazpcXC9cXC8oYXBwfClcXC8vLCBcIlwiKVxuICAgICAgICBmaWxlU3RyaW5nID0gYCR7ZmlsZVBhdGh9OiR7b3JpZ2luYWwubGluZX1gXG5cbiAgICAgICAgaWYgKG9yaWdpbmFsLmNvbHVtbikge1xuICAgICAgICAgIGZpbGVTdHJpbmcgKz0gYDoke29yaWdpbmFsLmNvbHVtbn1gXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbGVQYXRoID0gdHJhY2UuZmlsZVxuICAgICAgICBmaWxlU3RyaW5nID0gYCR7ZmlsZVBhdGh9OiR7dHJhY2UubGluZU51bWJlcn1gXG5cbiAgICAgICAgaWYgKHRyYWNlLmNvbHVtbikge1xuICAgICAgICAgIGZpbGVTdHJpbmcgKz0gYDoke3RyYWNlLmNvbHVtbn1gXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbmV3U291cmNlTWFwLnB1c2goe1xuICAgICAgICBmaWxlUGF0aCxcbiAgICAgICAgZmlsZVN0cmluZyxcbiAgICAgICAgbWV0aG9kTmFtZTogdHJhY2UubWV0aG9kTmFtZVxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3U291cmNlTWFwXG4gIH1cbn1cbiJdfQ==
@@ -1,3 +1,7 @@
1
1
  export default hasEditConfig;
2
- declare function hasEditConfig(modelClass: any): boolean;
2
+ /**
3
+ * @param {typeof import("../base-model.js").default} modelClass
4
+ * @returns {boolean}
5
+ */
6
+ declare function hasEditConfig(modelClass: typeof import("../base-model.js").default): boolean;
3
7
  //# sourceMappingURL=has-edit-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"has-edit-config.d.ts","sourceRoot":"/src/","sources":["super-admin/has-edit-config.js"],"names":[],"mappings":";AAEA,yDAUC"}
1
+ {"version":3,"file":"has-edit-config.d.ts","sourceRoot":"/src/","sources":["super-admin/has-edit-config.js"],"names":[],"mappings":";AAEA;;;GAGG;AACH,2CAHW,cAAc,kBAAkB,EAAE,OAAO,GACvC,OAAO,CAYnB"}
@@ -1,4 +1,8 @@
1
1
  import ConfigReader from "./config-reader";
2
+ /**
3
+ * @param {typeof import("../base-model.js").default} modelClass
4
+ * @returns {boolean}
5
+ */
2
6
  const hasEditConfig = (modelClass) => {
3
7
  const configReader = ConfigReader.forModel(modelClass);
4
8
  const extraContent = configReader.modelConfig?.edit?.extraContentconst;
@@ -9,4 +13,4 @@ const hasEditConfig = (modelClass) => {
9
13
  return false;
10
14
  };
11
15
  export default hasEditConfig;
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzLWVkaXQtY29uZmlnLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJzdXBlci1hZG1pbi9oYXMtZWRpdC1jb25maWcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLE1BQU0saUJBQWlCLENBQUE7QUFFMUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxVQUFVLEVBQUUsRUFBRTtJQUNuQyxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3RELE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFBO0lBQ3RFLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQTtJQUU3RCxJQUFJLFVBQVUsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUMsQ0FBQTtBQUVELGVBQWUsYUFBYSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbmZpZ1JlYWRlciBmcm9tIFwiLi9jb25maWctcmVhZGVyXCJcblxuY29uc3QgaGFzRWRpdENvbmZpZyA9IChtb2RlbENsYXNzKSA9PiB7XG4gIGNvbnN0IGNvbmZpZ1JlYWRlciA9IENvbmZpZ1JlYWRlci5mb3JNb2RlbChtb2RlbENsYXNzKVxuICBjb25zdCBleHRyYUNvbnRlbnQgPSBjb25maWdSZWFkZXIubW9kZWxDb25maWc/LmVkaXQ/LmV4dHJhQ29udGVudGNvbnN0XG4gIGNvbnN0IGF0dHJpYnV0ZXMgPSBjb25maWdSZWFkZXIubW9kZWxDb25maWc/LmVkaXQ/LmF0dHJpYnV0ZXNcblxuICBpZiAoYXR0cmlidXRlcyB8fCBleHRyYUNvbnRlbnQpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBkZWZhdWx0IGhhc0VkaXRDb25maWdcbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzLWVkaXQtY29uZmlnLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJzdXBlci1hZG1pbi9oYXMtZWRpdC1jb25maWcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLE1BQU0saUJBQWlCLENBQUE7QUFFMUM7OztHQUdHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsQ0FBQyxVQUFVLEVBQUUsRUFBRTtJQUNuQyxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3RELE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFBO0lBQ3RFLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQTtJQUU3RCxJQUFJLFVBQVUsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUMsQ0FBQTtBQUVELGVBQWUsYUFBYSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbmZpZ1JlYWRlciBmcm9tIFwiLi9jb25maWctcmVhZGVyXCJcblxuLyoqXG4gKiBAcGFyYW0ge3R5cGVvZiBpbXBvcnQoXCIuLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR9IG1vZGVsQ2xhc3NcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5jb25zdCBoYXNFZGl0Q29uZmlnID0gKG1vZGVsQ2xhc3MpID0+IHtcbiAgY29uc3QgY29uZmlnUmVhZGVyID0gQ29uZmlnUmVhZGVyLmZvck1vZGVsKG1vZGVsQ2xhc3MpXG4gIGNvbnN0IGV4dHJhQ29udGVudCA9IGNvbmZpZ1JlYWRlci5tb2RlbENvbmZpZz8uZWRpdD8uZXh0cmFDb250ZW50Y29uc3RcbiAgY29uc3QgYXR0cmlidXRlcyA9IGNvbmZpZ1JlYWRlci5tb2RlbENvbmZpZz8uZWRpdD8uYXR0cmlidXRlc1xuXG4gIGlmIChhdHRyaWJ1dGVzIHx8IGV4dHJhQ29udGVudCkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cblxuZXhwb3J0IGRlZmF1bHQgaGFzRWRpdENvbmZpZ1xuIl19
@@ -1,3 +1,4 @@
1
1
  export default modelsAsArray;
2
+ /** Super-admin model list. */
2
3
  declare const modelsAsArray: any[];
3
4
  //# sourceMappingURL=models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"/src/","sources":["super-admin/models.js"],"names":[],"mappings":";AAEA,mCAAwB"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"/src/","sources":["super-admin/models.js"],"names":[],"mappings":";AAEA,8BAA8B;AAC9B,mCAAwB"}
@@ -1,8 +1,9 @@
1
1
  import * as models from "models.js"; // eslint-disable-line import/no-unresolved
2
+ /** Super-admin model list. */
2
3
  const modelsAsArray = [];
3
4
  for (const modelKey of Object.keys(models)) {
4
5
  const model = models[modelKey];
5
6
  modelsAsArray.push(model);
6
7
  }
7
8
  export default modelsAsArray;
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJzdXBlci1hZG1pbi9tb2RlbHMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxXQUFXLENBQUEsQ0FBQywyQ0FBMkM7QUFFL0UsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFBO0FBRXhCLEtBQUssTUFBTSxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQzNDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUU5QixhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQzNCLENBQUM7QUFFRCxlQUFlLGFBQWEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG1vZGVscyBmcm9tIFwibW9kZWxzLmpzXCIgLy8gZXNsaW50LWRpc2FibGUtbGluZSBpbXBvcnQvbm8tdW5yZXNvbHZlZFxuXG5jb25zdCBtb2RlbHNBc0FycmF5ID0gW11cblxuZm9yIChjb25zdCBtb2RlbEtleSBvZiBPYmplY3Qua2V5cyhtb2RlbHMpKSB7XG4gIGNvbnN0IG1vZGVsID0gbW9kZWxzW21vZGVsS2V5XVxuXG4gIG1vZGVsc0FzQXJyYXkucHVzaChtb2RlbClcbn1cblxuZXhwb3J0IGRlZmF1bHQgbW9kZWxzQXNBcnJheVxuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJzdXBlci1hZG1pbi9tb2RlbHMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxXQUFXLENBQUEsQ0FBQywyQ0FBMkM7QUFFL0UsOEJBQThCO0FBQzlCLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQTtBQUV4QixLQUFLLE1BQU0sUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUMzQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFOUIsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUMzQixDQUFDO0FBRUQsZUFBZSxhQUFhLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBtb2RlbHMgZnJvbSBcIm1vZGVscy5qc1wiIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgaW1wb3J0L25vLXVucmVzb2x2ZWRcblxuLyoqIFN1cGVyLWFkbWluIG1vZGVsIGxpc3QuICovXG5jb25zdCBtb2RlbHNBc0FycmF5ID0gW11cblxuZm9yIChjb25zdCBtb2RlbEtleSBvZiBPYmplY3Qua2V5cyhtb2RlbHMpKSB7XG4gIGNvbnN0IG1vZGVsID0gbW9kZWxzW21vZGVsS2V5XVxuXG4gIG1vZGVsc0FzQXJyYXkucHVzaChtb2RlbClcbn1cblxuZXhwb3J0IGRlZmF1bHQgbW9kZWxzQXNBcnJheVxuIl19
@@ -1,2 +1,3 @@
1
+ /** Resolve a unique column identifier. */
1
2
  export default function columnIdentifier(column: any): any;
2
3
  //# sourceMappingURL=column-identifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"column-identifier.d.ts","sourceRoot":"/src/","sources":["table/column-identifier.js"],"names":[],"mappings":"AAAA,2DAsBC"}
1
+ {"version":3,"file":"column-identifier.d.ts","sourceRoot":"/src/","sources":["table/column-identifier.js"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAsBC"}
@@ -1,3 +1,4 @@
1
+ /** Resolve a unique column identifier. */
1
2
  export default function columnIdentifier(column) {
2
3
  if ("identifier" in column)
3
4
  return column.identifier;
@@ -17,4 +18,4 @@ export default function columnIdentifier(column) {
17
18
  throw new Error(`Couldn't figure out the identifier for that column: ${JSON.stringify(column)}`);
18
19
  return parts.join("--");
19
20
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWlkZW50aWZpZXIuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInRhYmxlL2NvbHVtbi1pZGVudGlmaWVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxPQUFPLFVBQVUsZ0JBQWdCLENBQUMsTUFBTTtJQUM3QyxJQUFJLFlBQVksSUFBSSxNQUFNO1FBQUUsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFBO0lBRXBELE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQTtJQUVoQixJQUFJLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNyQixLQUFLLE1BQU0sUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxXQUFXLElBQUksTUFBTSxFQUFFLENBQUM7UUFDMUIsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO0lBQzdDLENBQUM7SUFFRCxJQUFJLFNBQVMsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDMUMsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7SUFFdkgsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb2x1bW5JZGVudGlmaWVyKGNvbHVtbikge1xuICBpZiAoXCJpZGVudGlmaWVyXCIgaW4gY29sdW1uKSByZXR1cm4gY29sdW1uLmlkZW50aWZpZXJcblxuICBjb25zdCBwYXJ0cyA9IFtdXG5cbiAgaWYgKFwicGF0aFwiIGluIGNvbHVtbikge1xuICAgIGZvciAoY29uc3QgcGF0aFBhcnQgb2YgY29sdW1uLnBhdGgpIHtcbiAgICAgIHBhcnRzLnB1c2gocGF0aFBhcnQpXG4gICAgfVxuICB9XG5cbiAgaWYgKFwiYXR0cmlidXRlXCIgaW4gY29sdW1uKSB7XG4gICAgcGFydHMucHVzaChgYXR0cmlidXRlLSR7Y29sdW1uLmF0dHJpYnV0ZX1gKVxuICB9XG5cbiAgaWYgKFwic29ydEtleVwiIGluIGNvbHVtbikge1xuICAgIHBhcnRzLnB1c2goYHNvcnQta2V5LSR7Y29sdW1uLnNvcnRLZXl9YClcbiAgfVxuXG4gIGlmIChwYXJ0cy5sZW5ndGggPT0gMCkgdGhyb3cgbmV3IEVycm9yKGBDb3VsZG4ndCBmaWd1cmUgb3V0IHRoZSBpZGVudGlmaWVyIGZvciB0aGF0IGNvbHVtbjogJHtKU09OLnN0cmluZ2lmeShjb2x1bW4pfWApXG5cbiAgcmV0dXJuIHBhcnRzLmpvaW4oXCItLVwiKVxufVxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWlkZW50aWZpZXIuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInRhYmxlL2NvbHVtbi1pZGVudGlmaWVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBDQUEwQztBQUMxQyxNQUFNLENBQUMsT0FBTyxVQUFVLGdCQUFnQixDQUFDLE1BQU07SUFDN0MsSUFBSSxZQUFZLElBQUksTUFBTTtRQUFFLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQTtJQUVwRCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUE7SUFFaEIsSUFBSSxNQUFNLElBQUksTUFBTSxFQUFFLENBQUM7UUFDckIsS0FBSyxNQUFNLFFBQVEsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksV0FBVyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzFCLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBRUQsSUFBSSxTQUFTLElBQUksTUFBTSxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBQzFDLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRXZILE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFJlc29sdmUgYSB1bmlxdWUgY29sdW1uIGlkZW50aWZpZXIuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb2x1bW5JZGVudGlmaWVyKGNvbHVtbikge1xuICBpZiAoXCJpZGVudGlmaWVyXCIgaW4gY29sdW1uKSByZXR1cm4gY29sdW1uLmlkZW50aWZpZXJcblxuICBjb25zdCBwYXJ0cyA9IFtdXG5cbiAgaWYgKFwicGF0aFwiIGluIGNvbHVtbikge1xuICAgIGZvciAoY29uc3QgcGF0aFBhcnQgb2YgY29sdW1uLnBhdGgpIHtcbiAgICAgIHBhcnRzLnB1c2gocGF0aFBhcnQpXG4gICAgfVxuICB9XG5cbiAgaWYgKFwiYXR0cmlidXRlXCIgaW4gY29sdW1uKSB7XG4gICAgcGFydHMucHVzaChgYXR0cmlidXRlLSR7Y29sdW1uLmF0dHJpYnV0ZX1gKVxuICB9XG5cbiAgaWYgKFwic29ydEtleVwiIGluIGNvbHVtbikge1xuICAgIHBhcnRzLnB1c2goYHNvcnQta2V5LSR7Y29sdW1uLnNvcnRLZXl9YClcbiAgfVxuXG4gIGlmIChwYXJ0cy5sZW5ndGggPT0gMCkgdGhyb3cgbmV3IEVycm9yKGBDb3VsZG4ndCBmaWd1cmUgb3V0IHRoZSBpZGVudGlmaWVyIGZvciB0aGF0IGNvbHVtbjogJHtKU09OLnN0cmluZ2lmeShjb2x1bW4pfWApXG5cbiAgcmV0dXJuIHBhcnRzLmpvaW4oXCItLVwiKVxufVxuIl19
@@ -1,2 +1,3 @@
1
+ /** Returns whether a table column should be visible. */
1
2
  export default function columnVisible(column: any, tableSettingColumn: any): any;
2
3
  //# sourceMappingURL=column-visible.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"column-visible.d.ts","sourceRoot":"/src/","sources":["table/column-visible.js"],"names":[],"mappings":"AAAA,iFAMC"}
1
+ {"version":3,"file":"column-visible.d.ts","sourceRoot":"/src/","sources":["table/column-visible.js"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,iFAMC"}
@@ -1,3 +1,4 @@
1
+ /** Returns whether a table column should be visible. */
1
2
  export default function columnVisible(column, tableSettingColumn) {
2
3
  if (tableSettingColumn.visible() !== null)
3
4
  return tableSettingColumn.visible();
@@ -7,4 +8,4 @@ export default function columnVisible(column, tableSettingColumn) {
7
8
  return column.defaultVisible;
8
9
  return true;
9
10
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXZpc2libGUuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInRhYmxlL2NvbHVtbi12aXNpYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxPQUFPLFVBQVUsYUFBYSxDQUFDLE1BQU0sRUFBRSxrQkFBa0I7SUFDOUQsSUFBSSxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsS0FBSyxJQUFJO1FBQUUsT0FBTyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUM5RSxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sS0FBSyxDQUFBO0lBQ3pCLElBQUksZ0JBQWdCLElBQUksTUFBTTtRQUFFLE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQTtJQUU1RCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb2x1bW5WaXNpYmxlKGNvbHVtbiwgdGFibGVTZXR0aW5nQ29sdW1uKSB7XG4gIGlmICh0YWJsZVNldHRpbmdDb2x1bW4udmlzaWJsZSgpICE9PSBudWxsKSByZXR1cm4gdGFibGVTZXR0aW5nQ29sdW1uLnZpc2libGUoKVxuICBpZiAoIWNvbHVtbikgcmV0dXJuIGZhbHNlXG4gIGlmIChcImRlZmF1bHRWaXNpYmxlXCIgaW4gY29sdW1uKSByZXR1cm4gY29sdW1uLmRlZmF1bHRWaXNpYmxlXG5cbiAgcmV0dXJuIHRydWVcbn1cbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXZpc2libGUuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInRhYmxlL2NvbHVtbi12aXNpYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdEQUF3RDtBQUN4RCxNQUFNLENBQUMsT0FBTyxVQUFVLGFBQWEsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCO0lBQzlELElBQUksa0JBQWtCLENBQUMsT0FBTyxFQUFFLEtBQUssSUFBSTtRQUFFLE9BQU8sa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDOUUsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUN6QixJQUFJLGdCQUFnQixJQUFJLE1BQU07UUFBRSxPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUE7SUFFNUQsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFJldHVybnMgd2hldGhlciBhIHRhYmxlIGNvbHVtbiBzaG91bGQgYmUgdmlzaWJsZS4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbHVtblZpc2libGUoY29sdW1uLCB0YWJsZVNldHRpbmdDb2x1bW4pIHtcbiAgaWYgKHRhYmxlU2V0dGluZ0NvbHVtbi52aXNpYmxlKCkgIT09IG51bGwpIHJldHVybiB0YWJsZVNldHRpbmdDb2x1bW4udmlzaWJsZSgpXG4gIGlmICghY29sdW1uKSByZXR1cm4gZmFsc2VcbiAgaWYgKFwiZGVmYXVsdFZpc2libGVcIiBpbiBjb2x1bW4pIHJldHVybiBjb2x1bW4uZGVmYXVsdFZpc2libGVcblxuICByZXR1cm4gdHJ1ZVxufVxuIl19
@@ -1,3 +1,4 @@
1
+ /** Build callback args for table model actions. */
1
2
  export default function modelCallbackArgs(table: any, model: any): {
2
3
  model: any;
3
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"model-callback-args.d.ts","sourceRoot":"/src/","sources":["table/model-callback-args.js"],"names":[],"mappings":"AAEA;;EAOC"}
1
+ {"version":3,"file":"model-callback-args.d.ts","sourceRoot":"/src/","sources":["table/model-callback-args.js"],"names":[],"mappings":"AAEA,mDAAmD;AACnD;;EAOC"}
@@ -1,8 +1,9 @@
1
1
  import * as inflection from "inflection";
2
+ /** Build callback args for table model actions. */
2
3
  export default function modelCallbackArgs(table, model) {
3
4
  const modelArgName = inflection.camelize(table.props.modelClass.modelClassData().name, true);
4
5
  const modelCallbackArgs = { model };
5
6
  modelCallbackArgs[modelArgName] = model;
6
7
  return modelCallbackArgs;
7
8
  }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtY2FsbGJhY2stYXJncy5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsidGFibGUvbW9kZWwtY2FsbGJhY2stYXJncy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUV4QyxNQUFNLENBQUMsT0FBTyxVQUFVLGlCQUFpQixDQUFDLEtBQUssRUFBRSxLQUFLO0lBQ3BELE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQzVGLE1BQU0saUJBQWlCLEdBQUcsRUFBQyxLQUFLLEVBQUMsQ0FBQTtJQUVqQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsR0FBRyxLQUFLLENBQUE7SUFFdkMsT0FBTyxpQkFBaUIsQ0FBQTtBQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1vZGVsQ2FsbGJhY2tBcmdzKHRhYmxlLCBtb2RlbCkge1xuICBjb25zdCBtb2RlbEFyZ05hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKHRhYmxlLnByb3BzLm1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lLCB0cnVlKVxuICBjb25zdCBtb2RlbENhbGxiYWNrQXJncyA9IHttb2RlbH1cblxuICBtb2RlbENhbGxiYWNrQXJnc1ttb2RlbEFyZ05hbWVdID0gbW9kZWxcblxuICByZXR1cm4gbW9kZWxDYWxsYmFja0FyZ3Ncbn1cbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtY2FsbGJhY2stYXJncy5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsidGFibGUvbW9kZWwtY2FsbGJhY2stYXJncy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUV4QyxtREFBbUQ7QUFDbkQsTUFBTSxDQUFDLE9BQU8sVUFBVSxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsS0FBSztJQUNwRCxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUM1RixNQUFNLGlCQUFpQixHQUFHLEVBQUMsS0FBSyxFQUFDLENBQUE7SUFFakMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEdBQUcsS0FBSyxDQUFBO0lBRXZDLE9BQU8saUJBQWlCLENBQUE7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuXG4vKiogQnVpbGQgY2FsbGJhY2sgYXJncyBmb3IgdGFibGUgbW9kZWwgYWN0aW9ucy4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1vZGVsQ2FsbGJhY2tBcmdzKHRhYmxlLCBtb2RlbCkge1xuICBjb25zdCBtb2RlbEFyZ05hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKHRhYmxlLnByb3BzLm1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lLCB0cnVlKVxuICBjb25zdCBtb2RlbENhbGxiYWNrQXJncyA9IHttb2RlbH1cblxuICBtb2RlbENhbGxiYWNrQXJnc1ttb2RlbEFyZ05hbWVdID0gbW9kZWxcblxuICByZXR1cm4gbW9kZWxDYWxsYmFja0FyZ3Ncbn1cbiJdfQ==
@@ -1,2 +1,3 @@
1
+ /** selectCalculator. */
1
2
  export default function selectCalculator(...props: any[]): any;
2
3
  //# sourceMappingURL=select-calculator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-calculator.d.ts","sourceRoot":"/src/","sources":["table/select-calculator.js"],"names":[],"mappings":"AA+DA,+DAEC"}
1
+ {"version":3,"file":"select-calculator.d.ts","sourceRoot":"/src/","sources":["table/select-calculator.js"],"names":[],"mappings":"AAkEA,wBAAwB;AACxB,+DAEC"}
@@ -2,10 +2,13 @@
2
2
  import { digg, digs } from "diggerize";
3
3
  import * as inflection from "inflection";
4
4
  import modelClassRequire from "../model-class-require.js";
5
+ /** Computes table select payloads for queries. */
5
6
  class SelectCalculator {
7
+ /** Constructor. */
6
8
  constructor({ table }) {
7
9
  this.table = table;
8
10
  }
11
+ /** selects. */
9
12
  selects() {
10
13
  const { modelClass } = digs(this.table.props, "modelClass");
11
14
  const select = this.table.props.select || {};
@@ -50,7 +53,8 @@ class SelectCalculator {
50
53
  return select;
51
54
  }
52
55
  }
56
+ /** selectCalculator. */
53
57
  export default function selectCalculator(...props) {
54
58
  return new SelectCalculator(...props).selects();
55
59
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWNhbGN1bGF0b3IuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInRhYmxlL3NlbGVjdC1jYWxjdWxhdG9yLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhDQUE4QztBQUM5QyxPQUFPLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQTtBQUNwQyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLGlCQUFpQixNQUFNLDJCQUEyQixDQUFBO0FBRXpELE1BQU0sZ0JBQWdCO0lBQ3BCLFlBQVksRUFBQyxLQUFLLEVBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDcEIsQ0FBQztJQUVELE9BQU87UUFDTCxNQUFNLEVBQUMsVUFBVSxFQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBQ3pELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUE7UUFDNUMsTUFBTSxFQUFDLGVBQWUsRUFBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO1FBR25FLHNFQUFzRTtRQUN0RSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQzNELE1BQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBRXBELElBQUksQ0FBQyxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUM7WUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDO1lBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBR25HLHNIQUFzSDtRQUN0SCxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDO2dCQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUE7WUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO2dCQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDbkYsQ0FBQztRQUdELDZDQUE2QztRQUM3QyxLQUFLLE1BQU0sY0FBYyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQzdDLE1BQU0sRUFBQyxNQUFNLEVBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBRS9DLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUztnQkFBRSxTQUFRLENBQUMsNkVBQTZFO1lBRTlHLE1BQU0sRUFBQyxTQUFTLEVBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFBO1lBQzdDLE1BQU0sRUFBQyxJQUFJLEVBQUMsR0FBRyxNQUFNLENBQUE7WUFFckIsSUFBSSxpQkFBaUIsR0FBRyxVQUFVLENBQUE7WUFFbEMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO29CQUM1QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUE7b0JBQy9FLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtvQkFFN0gsSUFBSSxDQUFDLFlBQVk7d0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsaUJBQWlCLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUE7b0JBRWxILGlCQUFpQixHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQTtnQkFDNUUsQ0FBQztZQUNILENBQUM7WUFFRCxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUU5RSxJQUFJLENBQUMsQ0FBQyxxQkFBcUIsSUFBSSxNQUFNLENBQUM7Z0JBQUUsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxDQUFBO1lBQzFFLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO2dCQUFFLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN2RyxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsT0FBTyxVQUFVLGdCQUFnQixDQUFDLEdBQUcsS0FBSztJQUMvQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29udGludWUsIHNvcnQtaW1wb3J0cyAqL1xuaW1wb3J0IHtkaWdnLCBkaWdzfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IG1vZGVsQ2xhc3NSZXF1aXJlIGZyb20gXCIuLi9tb2RlbC1jbGFzcy1yZXF1aXJlLmpzXCJcblxuY2xhc3MgU2VsZWN0Q2FsY3VsYXRvciB7XG4gIGNvbnN0cnVjdG9yKHt0YWJsZX0pIHtcbiAgICB0aGlzLnRhYmxlID0gdGFibGVcbiAgfVxuXG4gIHNlbGVjdHMoKSB7XG4gICAgY29uc3Qge21vZGVsQ2xhc3N9ID0gZGlncyh0aGlzLnRhYmxlLnByb3BzLCBcIm1vZGVsQ2xhc3NcIilcbiAgICBjb25zdCBzZWxlY3QgPSB0aGlzLnRhYmxlLnByb3BzLnNlbGVjdCB8fCB7fVxuICAgIGNvbnN0IHtwcmVwYXJlZENvbHVtbnN9ID0gZGlncyh0aGlzLnRhYmxlLnN0YXRlLCBcInByZXBhcmVkQ29sdW1uc1wiKVxuXG5cbiAgICAvLyBFbnN1cmUgdGhlIHByaW1hcnkga2V5IGNvbHVtbiBpcyBsb2FkZXIgZm9yIHRoZSBwcmltYXJ5IG1vZGVsIGNsYXNzXG4gICAgY29uc3QgY2xhc3NOYW1lID0gZGlnZyhtb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCksIFwibmFtZVwiKVxuICAgIGNvbnN0IHByaW1hcnlLZXlDb2x1bW5OYW1lID0gbW9kZWxDbGFzcy5wcmltYXJ5S2V5KClcblxuICAgIGlmICghKGNsYXNzTmFtZSBpbiBzZWxlY3QpKSBzZWxlY3RbY2xhc3NOYW1lXSA9IFtdXG4gICAgaWYgKCFzZWxlY3RbY2xhc3NOYW1lXS5pbmNsdWRlcyhwcmltYXJ5S2V5Q29sdW1uTmFtZSkpIHNlbGVjdFtjbGFzc05hbWVdLnB1c2gocHJpbWFyeUtleUNvbHVtbk5hbWUpXG5cblxuICAgIC8vIEVuc3VyZSAndXBkYXRlZEF0JyBpcyBzZWxlY3RlZCBpZiBkZWZpbmVkIGFzIGFuIGF0dHJpYnV0ZSwgYmVjYXVzZSBpdCBpcyB1c2VkIGZvciBjYWNoZUtleSBhbmQgdXBkYXRlcyBpbiB0aGUgdGFibGVcbiAgICBpZiAobW9kZWxDbGFzcy5oYXNBdHRyaWJ1dGUoXCJ1cGRhdGVkQXRcIikpIHtcbiAgICAgIGlmICghKGNsYXNzTmFtZSBpbiBzZWxlY3QpKSBzZWxlY3RbY2xhc3NOYW1lXSA9IFtdXG4gICAgICBpZiAoIXNlbGVjdFtjbGFzc05hbWVdLmluY2x1ZGVzKFwidXBkYXRlZEF0XCIpKSBzZWxlY3RbY2xhc3NOYW1lXS5wdXNoKFwidXBkYXRlZEF0XCIpXG4gICAgfVxuXG5cbiAgICAvLyBFbnN1cmUgY29sdW1ucyB1c2VkIGZvciBjb2x1bW5zIGFyZSBsb2FkZWRcbiAgICBmb3IgKGNvbnN0IHByZXBhcmVkQ29sdW1uIG9mIHByZXBhcmVkQ29sdW1ucykge1xuICAgICAgY29uc3Qge2NvbHVtbn0gPSBkaWdzKHByZXBhcmVkQ29sdW1uLCBcImNvbHVtblwiKVxuXG4gICAgICBpZiAoIWNvbHVtbj8uYXR0cmlidXRlKSBjb250aW51ZSAvLyAnY29sdW1uJyBtaWdodCBub3QgZXhpc3QgaWYgaGFzIGJlZW4gcmVtb3ZlZCBpbiBjb2RlIGJ1dCBzdGlsbCBzYXZlZCBpbiBEQlxuXG4gICAgICBjb25zdCB7YXR0cmlidXRlfSA9IGRpZ3MoY29sdW1uLCBcImF0dHJpYnV0ZVwiKVxuICAgICAgY29uc3Qge3BhdGh9ID0gY29sdW1uXG5cbiAgICAgIGxldCBjdXJyZW50TW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NcblxuICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgZm9yIChjb25zdCBwYXRoUGFydCBvZiBwYXRoKSB7XG4gICAgICAgICAgY29uc3QgcmVsYXRpb25zaGlwcyA9IGRpZ2coY3VycmVudE1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKSwgXCJyZWxhdGlvbnNoaXBzXCIpXG4gICAgICAgICAgY29uc3QgcmVsYXRpb25zaGlwID0gcmVsYXRpb25zaGlwcy5maW5kKChyZWxhdGlvbnNoaXBJbkFycmF5KSA9PiByZWxhdGlvbnNoaXBJbkFycmF5Lm5hbWUgPT0gaW5mbGVjdGlvbi51bmRlcnNjb3JlKHBhdGhQYXJ0KSlcblxuICAgICAgICAgIGlmICghcmVsYXRpb25zaGlwKSB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggcmVsYXRpb25zaGlwOiAke2N1cnJlbnRNb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZX0jJHtwYXRoUGFydH1gKVxuXG4gICAgICAgICAgY3VycmVudE1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzUmVxdWlyZShkaWdnKHJlbGF0aW9uc2hpcCwgXCJyZXNvdXJjZV9uYW1lXCIpKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbENsYXNzTmFtZSA9IGRpZ2coY3VycmVudE1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKSwgXCJuYW1lXCIpXG5cbiAgICAgIGlmICghKGN1cnJlbnRNb2RlbENsYXNzTmFtZSBpbiBzZWxlY3QpKSBzZWxlY3RbY3VycmVudE1vZGVsQ2xhc3NOYW1lXSA9IFtdXG4gICAgICBpZiAoIXNlbGVjdFtjdXJyZW50TW9kZWxDbGFzc05hbWVdLmluY2x1ZGVzKGF0dHJpYnV0ZSkpIHNlbGVjdFtjdXJyZW50TW9kZWxDbGFzc05hbWVdLnB1c2goYXR0cmlidXRlKVxuICAgIH1cblxuICAgIHJldHVybiBzZWxlY3RcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzZWxlY3RDYWxjdWxhdG9yKC4uLnByb3BzKSB7XG4gIHJldHVybiBuZXcgU2VsZWN0Q2FsY3VsYXRvciguLi5wcm9wcykuc2VsZWN0cygpXG59XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWNhbGN1bGF0b3IuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInRhYmxlL3NlbGVjdC1jYWxjdWxhdG9yLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhDQUE4QztBQUM5QyxPQUFPLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQTtBQUNwQyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLGlCQUFpQixNQUFNLDJCQUEyQixDQUFBO0FBRXpELGtEQUFrRDtBQUNsRCxNQUFNLGdCQUFnQjtJQUNwQixtQkFBbUI7SUFDbkIsWUFBWSxFQUFDLEtBQUssRUFBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixDQUFDO0lBRUQsZUFBZTtJQUNmLE9BQU87UUFDTCxNQUFNLEVBQUMsVUFBVSxFQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBQ3pELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUE7UUFDNUMsTUFBTSxFQUFDLGVBQWUsRUFBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO1FBR25FLHNFQUFzRTtRQUN0RSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQzNELE1BQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBRXBELElBQUksQ0FBQyxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUM7WUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDO1lBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBR25HLHNIQUFzSDtRQUN0SCxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDO2dCQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUE7WUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO2dCQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDbkYsQ0FBQztRQUdELDZDQUE2QztRQUM3QyxLQUFLLE1BQU0sY0FBYyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQzdDLE1BQU0sRUFBQyxNQUFNLEVBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBRS9DLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUztnQkFBRSxTQUFRLENBQUMsNkVBQTZFO1lBRTlHLE1BQU0sRUFBQyxTQUFTLEVBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFBO1lBQzdDLE1BQU0sRUFBQyxJQUFJLEVBQUMsR0FBRyxNQUFNLENBQUE7WUFFckIsSUFBSSxpQkFBaUIsR0FBRyxVQUFVLENBQUE7WUFFbEMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO29CQUM1QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUE7b0JBQy9FLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtvQkFFN0gsSUFBSSxDQUFDLFlBQVk7d0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsaUJBQWlCLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUE7b0JBRWxILGlCQUFpQixHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQTtnQkFDNUUsQ0FBQztZQUNILENBQUM7WUFFRCxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUU5RSxJQUFJLENBQUMsQ0FBQyxxQkFBcUIsSUFBSSxNQUFNLENBQUM7Z0JBQUUsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxDQUFBO1lBQzFFLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO2dCQUFFLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN2RyxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO0NBQ0Y7QUFFRCx3QkFBd0I7QUFDeEIsTUFBTSxDQUFDLE9BQU8sVUFBVSxnQkFBZ0IsQ0FBQyxHQUFHLEtBQUs7SUFDL0MsT0FBTyxJQUFJLGdCQUFnQixDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUE7QUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnRpbnVlLCBzb3J0LWltcG9ydHMgKi9cbmltcG9ydCB7ZGlnZywgZGlnc30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBtb2RlbENsYXNzUmVxdWlyZSBmcm9tIFwiLi4vbW9kZWwtY2xhc3MtcmVxdWlyZS5qc1wiXG5cbi8qKiBDb21wdXRlcyB0YWJsZSBzZWxlY3QgcGF5bG9hZHMgZm9yIHF1ZXJpZXMuICovXG5jbGFzcyBTZWxlY3RDYWxjdWxhdG9yIHtcbiAgLyoqIENvbnN0cnVjdG9yLiAqL1xuICBjb25zdHJ1Y3Rvcih7dGFibGV9KSB7XG4gICAgdGhpcy50YWJsZSA9IHRhYmxlXG4gIH1cblxuICAvKiogc2VsZWN0cy4gKi9cbiAgc2VsZWN0cygpIHtcbiAgICBjb25zdCB7bW9kZWxDbGFzc30gPSBkaWdzKHRoaXMudGFibGUucHJvcHMsIFwibW9kZWxDbGFzc1wiKVxuICAgIGNvbnN0IHNlbGVjdCA9IHRoaXMudGFibGUucHJvcHMuc2VsZWN0IHx8IHt9XG4gICAgY29uc3Qge3ByZXBhcmVkQ29sdW1uc30gPSBkaWdzKHRoaXMudGFibGUuc3RhdGUsIFwicHJlcGFyZWRDb2x1bW5zXCIpXG5cblxuICAgIC8vIEVuc3VyZSB0aGUgcHJpbWFyeSBrZXkgY29sdW1uIGlzIGxvYWRlciBmb3IgdGhlIHByaW1hcnkgbW9kZWwgY2xhc3NcbiAgICBjb25zdCBjbGFzc05hbWUgPSBkaWdnKG1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKSwgXCJuYW1lXCIpXG4gICAgY29uc3QgcHJpbWFyeUtleUNvbHVtbk5hbWUgPSBtb2RlbENsYXNzLnByaW1hcnlLZXkoKVxuXG4gICAgaWYgKCEoY2xhc3NOYW1lIGluIHNlbGVjdCkpIHNlbGVjdFtjbGFzc05hbWVdID0gW11cbiAgICBpZiAoIXNlbGVjdFtjbGFzc05hbWVdLmluY2x1ZGVzKHByaW1hcnlLZXlDb2x1bW5OYW1lKSkgc2VsZWN0W2NsYXNzTmFtZV0ucHVzaChwcmltYXJ5S2V5Q29sdW1uTmFtZSlcblxuXG4gICAgLy8gRW5zdXJlICd1cGRhdGVkQXQnIGlzIHNlbGVjdGVkIGlmIGRlZmluZWQgYXMgYW4gYXR0cmlidXRlLCBiZWNhdXNlIGl0IGlzIHVzZWQgZm9yIGNhY2hlS2V5IGFuZCB1cGRhdGVzIGluIHRoZSB0YWJsZVxuICAgIGlmIChtb2RlbENsYXNzLmhhc0F0dHJpYnV0ZShcInVwZGF0ZWRBdFwiKSkge1xuICAgICAgaWYgKCEoY2xhc3NOYW1lIGluIHNlbGVjdCkpIHNlbGVjdFtjbGFzc05hbWVdID0gW11cbiAgICAgIGlmICghc2VsZWN0W2NsYXNzTmFtZV0uaW5jbHVkZXMoXCJ1cGRhdGVkQXRcIikpIHNlbGVjdFtjbGFzc05hbWVdLnB1c2goXCJ1cGRhdGVkQXRcIilcbiAgICB9XG5cblxuICAgIC8vIEVuc3VyZSBjb2x1bW5zIHVzZWQgZm9yIGNvbHVtbnMgYXJlIGxvYWRlZFxuICAgIGZvciAoY29uc3QgcHJlcGFyZWRDb2x1bW4gb2YgcHJlcGFyZWRDb2x1bW5zKSB7XG4gICAgICBjb25zdCB7Y29sdW1ufSA9IGRpZ3MocHJlcGFyZWRDb2x1bW4sIFwiY29sdW1uXCIpXG5cbiAgICAgIGlmICghY29sdW1uPy5hdHRyaWJ1dGUpIGNvbnRpbnVlIC8vICdjb2x1bW4nIG1pZ2h0IG5vdCBleGlzdCBpZiBoYXMgYmVlbiByZW1vdmVkIGluIGNvZGUgYnV0IHN0aWxsIHNhdmVkIGluIERCXG5cbiAgICAgIGNvbnN0IHthdHRyaWJ1dGV9ID0gZGlncyhjb2x1bW4sIFwiYXR0cmlidXRlXCIpXG4gICAgICBjb25zdCB7cGF0aH0gPSBjb2x1bW5cblxuICAgICAgbGV0IGN1cnJlbnRNb2RlbENsYXNzID0gbW9kZWxDbGFzc1xuXG4gICAgICBpZiAocGF0aCkge1xuICAgICAgICBmb3IgKGNvbnN0IHBhdGhQYXJ0IG9mIHBhdGgpIHtcbiAgICAgICAgICBjb25zdCByZWxhdGlvbnNoaXBzID0gZGlnZyhjdXJyZW50TW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLCBcInJlbGF0aW9uc2hpcHNcIilcbiAgICAgICAgICBjb25zdCByZWxhdGlvbnNoaXAgPSByZWxhdGlvbnNoaXBzLmZpbmQoKHJlbGF0aW9uc2hpcEluQXJyYXkpID0+IHJlbGF0aW9uc2hpcEluQXJyYXkubmFtZSA9PSBpbmZsZWN0aW9uLnVuZGVyc2NvcmUocGF0aFBhcnQpKVxuXG4gICAgICAgICAgaWYgKCFyZWxhdGlvbnNoaXApIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCByZWxhdGlvbnNoaXA6ICR7Y3VycmVudE1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lfSMke3BhdGhQYXJ0fWApXG5cbiAgICAgICAgICBjdXJyZW50TW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NSZXF1aXJlKGRpZ2cocmVsYXRpb25zaGlwLCBcInJlc291cmNlX25hbWVcIikpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgY3VycmVudE1vZGVsQ2xhc3NOYW1lID0gZGlnZyhjdXJyZW50TW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLCBcIm5hbWVcIilcblxuICAgICAgaWYgKCEoY3VycmVudE1vZGVsQ2xhc3NOYW1lIGluIHNlbGVjdCkpIHNlbGVjdFtjdXJyZW50TW9kZWxDbGFzc05hbWVdID0gW11cbiAgICAgIGlmICghc2VsZWN0W2N1cnJlbnRNb2RlbENsYXNzTmFtZV0uaW5jbHVkZXMoYXR0cmlidXRlKSkgc2VsZWN0W2N1cnJlbnRNb2RlbENsYXNzTmFtZV0ucHVzaChhdHRyaWJ1dGUpXG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGVjdFxuICB9XG59XG5cbi8qKiBzZWxlY3RDYWxjdWxhdG9yLiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2VsZWN0Q2FsY3VsYXRvciguLi5wcm9wcykge1xuICByZXR1cm4gbmV3IFNlbGVjdENhbGN1bGF0b3IoLi4ucHJvcHMpLnNlbGVjdHMoKVxufVxuIl19