@kaspernj/api-maker 1.0.2159 → 1.0.2161

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 (529) hide show
  1. package/build/api.d.ts +46 -34
  2. package/build/api.d.ts.map +1 -1
  3. package/build/api.js +32 -25
  4. package/build/attribute-not-loaded-error.d.ts.map +1 -1
  5. package/build/attribute-not-loaded-error.js +2 -1
  6. package/build/base-error.d.ts +49 -60
  7. package/build/base-error.d.ts.map +1 -1
  8. package/build/base-error.js +3 -2
  9. package/build/base-model/column.d.ts +2 -2
  10. package/build/base-model/column.d.ts.map +1 -1
  11. package/build/base-model/column.js +3 -2
  12. package/build/base-model/reflection.d.ts +8 -3
  13. package/build/base-model/reflection.d.ts.map +1 -1
  14. package/build/base-model/reflection.js +8 -3
  15. package/build/base-model/scope.d.ts +1 -1
  16. package/build/base-model/scope.d.ts.map +1 -1
  17. package/build/base-model/scope.js +3 -2
  18. package/build/base-model.d.ts +3801 -117
  19. package/build/base-model.d.ts.map +1 -1
  20. package/build/base-model.js +271 -143
  21. package/build/bootstrap/attribute-row.d.ts +14 -1
  22. package/build/bootstrap/attribute-row.d.ts.map +1 -1
  23. package/build/bootstrap/attribute-row.js +23 -5
  24. package/build/bootstrap/attribute-rows.d.ts +10 -1
  25. package/build/bootstrap/attribute-rows.d.ts.map +1 -1
  26. package/build/bootstrap/attribute-rows.js +14 -5
  27. package/build/bootstrap/card.d.ts +19 -1
  28. package/build/bootstrap/card.d.ts.map +1 -1
  29. package/build/bootstrap/card.js +33 -13
  30. package/build/bootstrap/checkbox.d.ts +18 -1
  31. package/build/bootstrap/checkbox.d.ts.map +1 -1
  32. package/build/bootstrap/checkbox.js +23 -3
  33. package/build/bootstrap/checkboxes.d.ts +33 -1
  34. package/build/bootstrap/checkboxes.d.ts.map +1 -1
  35. package/build/bootstrap/checkboxes.js +50 -17
  36. package/build/bootstrap/index.js +2 -1
  37. package/build/bootstrap/input.d.ts +24 -0
  38. package/build/bootstrap/input.d.ts.map +1 -1
  39. package/build/bootstrap/input.js +27 -2
  40. package/build/bootstrap/invalid-feedback.d.ts.map +1 -1
  41. package/build/bootstrap/invalid-feedback.js +2 -1
  42. package/build/bootstrap/paginate.d.ts +7 -1
  43. package/build/bootstrap/paginate.d.ts.map +1 -1
  44. package/build/bootstrap/paginate.js +9 -4
  45. package/build/bootstrap/radio-buttons.js +2 -1
  46. package/build/bootstrap/select.js +2 -1
  47. package/build/bootstrap/sort-link.d.ts +12 -1
  48. package/build/bootstrap/sort-link.d.ts.map +1 -1
  49. package/build/bootstrap/sort-link.js +19 -10
  50. package/build/cable-connection-pool.d.ts +201 -24
  51. package/build/cable-connection-pool.d.ts.map +1 -1
  52. package/build/cable-connection-pool.js +76 -16
  53. package/build/cable-subscription-pool.d.ts +186 -20
  54. package/build/cable-subscription-pool.d.ts.map +1 -1
  55. package/build/cable-subscription-pool.js +61 -22
  56. package/build/cable-subscription.d.ts.map +1 -1
  57. package/build/cable-subscription.js +3 -2
  58. package/build/cache-key-generator.d.ts +194 -20
  59. package/build/cache-key-generator.d.ts.map +1 -1
  60. package/build/cache-key-generator.js +63 -12
  61. package/build/can-can.d.ts +146 -29
  62. package/build/can-can.d.ts.map +1 -1
  63. package/build/can-can.js +105 -19
  64. package/build/channels-consumer.d.ts +23 -1
  65. package/build/channels-consumer.d.ts.map +1 -1
  66. package/build/channels-consumer.js +26 -8
  67. package/build/collection-loader.d.ts +4 -1
  68. package/build/collection-loader.js +2 -1
  69. package/build/collection.d.ts +361 -370
  70. package/build/collection.d.ts.map +1 -1
  71. package/build/collection.js +59 -19
  72. package/build/command-execution.d.ts +50 -26
  73. package/build/command-execution.d.ts.map +1 -1
  74. package/build/command-execution.js +31 -13
  75. package/build/command-submit-data.d.ts +50 -37
  76. package/build/command-submit-data.d.ts.map +1 -1
  77. package/build/command-submit-data.js +35 -22
  78. package/build/commands-pool.d.ts +65 -27
  79. package/build/commands-pool.d.ts.map +1 -1
  80. package/build/commands-pool.js +67 -20
  81. package/build/compose.d.ts +8 -2
  82. package/build/compose.d.ts.map +1 -1
  83. package/build/compose.js +9 -2
  84. package/build/config.d.ts +31 -15
  85. package/build/config.d.ts.map +1 -1
  86. package/build/config.js +60 -23
  87. package/build/custom-error.d.ts.map +1 -1
  88. package/build/custom-error.js +2 -1
  89. package/build/data-set-to-attributes.d.ts +14 -2
  90. package/build/data-set-to-attributes.d.ts.map +1 -1
  91. package/build/data-set-to-attributes.js +12 -3
  92. package/build/deserializer.d.ts +116 -2
  93. package/build/deserializer.d.ts.map +1 -1
  94. package/build/deserializer.js +13 -2
  95. package/build/destroy-error.d.ts.map +1 -1
  96. package/build/destroy-error.js +2 -1
  97. package/build/devise.d.ts +638 -39
  98. package/build/devise.d.ts.map +1 -1
  99. package/build/devise.js +97 -28
  100. package/build/draggable-sort/controller.d.ts +126 -35
  101. package/build/draggable-sort/controller.d.ts.map +1 -1
  102. package/build/draggable-sort/controller.js +100 -28
  103. package/build/draggable-sort/index.d.ts +57 -1
  104. package/build/draggable-sort/index.d.ts.map +1 -1
  105. package/build/draggable-sort/index.js +71 -3
  106. package/build/draggable-sort/item.d.ts +56 -1
  107. package/build/draggable-sort/item.d.ts.map +1 -1
  108. package/build/draggable-sort/item.js +98 -10
  109. package/build/error-logger.d.ts +30 -14
  110. package/build/error-logger.d.ts.map +1 -1
  111. package/build/error-logger.js +22 -11
  112. package/build/event-connection.d.ts.map +1 -1
  113. package/build/event-connection.js +3 -2
  114. package/build/event-emitter-listener.d.ts.map +1 -1
  115. package/build/event-emitter-listener.js +2 -1
  116. package/build/event-model-class.d.ts.map +1 -1
  117. package/build/event-model-class.js +2 -1
  118. package/build/events.d.ts.map +1 -1
  119. package/build/events.js +2 -1
  120. package/build/form.d.ts +24 -1
  121. package/build/form.d.ts.map +1 -1
  122. package/build/form.js +16 -4
  123. package/build/history-expo.d.ts +6 -2
  124. package/build/history-expo.d.ts.map +1 -1
  125. package/build/history-expo.js +5 -2
  126. package/build/history-react-native.d.ts +6 -2
  127. package/build/history-react-native.d.ts.map +1 -1
  128. package/build/history-react-native.js +5 -2
  129. package/build/history.js +2 -1
  130. package/build/index.d.ts.map +1 -1
  131. package/build/index.js +2 -1
  132. package/build/inputs/attachment.d.ts +13 -1
  133. package/build/inputs/attachment.d.ts.map +1 -1
  134. package/build/inputs/attachment.js +22 -8
  135. package/build/inputs/auto-submit.d.ts +41 -13
  136. package/build/inputs/auto-submit.d.ts.map +1 -1
  137. package/build/inputs/auto-submit.js +16 -4
  138. package/build/inputs/checkbox.d.ts +17 -1
  139. package/build/inputs/checkbox.d.ts.map +1 -1
  140. package/build/inputs/checkbox.js +25 -11
  141. package/build/inputs/checkboxes.d.ts +16 -0
  142. package/build/inputs/checkboxes.d.ts.map +1 -1
  143. package/build/inputs/checkboxes.js +20 -4
  144. package/build/inputs/id-for-component.d.ts +21 -2
  145. package/build/inputs/id-for-component.d.ts.map +1 -1
  146. package/build/inputs/id-for-component.js +9 -2
  147. package/build/inputs/input-wrapper.d.ts.map +1 -1
  148. package/build/inputs/input-wrapper.js +2 -1
  149. package/build/inputs/input.d.ts +38 -1
  150. package/build/inputs/input.d.ts.map +1 -1
  151. package/build/inputs/input.js +29 -10
  152. package/build/inputs/money.d.ts +4 -1
  153. package/build/inputs/money.d.ts.map +1 -1
  154. package/build/inputs/money.js +6 -3
  155. package/build/inputs/name-for-component.d.ts +21 -2
  156. package/build/inputs/name-for-component.d.ts.map +1 -1
  157. package/build/inputs/name-for-component.js +9 -2
  158. package/build/inputs/select.d.ts +35 -1
  159. package/build/inputs/select.d.ts.map +1 -1
  160. package/build/inputs/select.js +21 -4
  161. package/build/instance-of-class-name.d.ts +7 -2
  162. package/build/instance-of-class-name.d.ts.map +1 -1
  163. package/build/instance-of-class-name.js +8 -4
  164. package/build/is-expo.d.ts.map +1 -1
  165. package/build/is-expo.js +2 -1
  166. package/build/key-value-store.d.ts +24 -14
  167. package/build/key-value-store.d.ts.map +1 -1
  168. package/build/key-value-store.js +22 -12
  169. package/build/link.d.ts +32 -1
  170. package/build/link.d.ts.map +1 -1
  171. package/build/link.js +76 -30
  172. package/build/logger.d.ts +10 -6
  173. package/build/logger.d.ts.map +1 -1
  174. package/build/logger.js +7 -4
  175. package/build/merge-styles.d.ts +10 -2
  176. package/build/merge-styles.d.ts.map +1 -1
  177. package/build/merge-styles.js +10 -3
  178. package/build/modal.d.ts +4 -1
  179. package/build/modal.d.ts.map +1 -1
  180. package/build/modal.js +6 -4
  181. package/build/model-class-require.d.ts +4 -2
  182. package/build/model-class-require.d.ts.map +1 -1
  183. package/build/model-class-require.js +4 -2
  184. package/build/model-events.d.ts +139 -346
  185. package/build/model-events.d.ts.map +1 -1
  186. package/build/model-events.js +21 -9
  187. package/build/model-name.d.ts +21 -7
  188. package/build/model-name.d.ts.map +1 -1
  189. package/build/model-name.js +12 -2
  190. package/build/model-prop-type.d.ts +533 -26
  191. package/build/model-prop-type.d.ts.map +1 -1
  192. package/build/model-prop-type.js +69 -11
  193. package/build/model-recipes-loader.d.ts +7 -3
  194. package/build/model-recipes-loader.d.ts.map +1 -1
  195. package/build/model-recipes-loader.js +4 -2
  196. package/build/model-recipes-model-loader.d.ts +189 -1493
  197. package/build/model-recipes-model-loader.d.ts.map +1 -1
  198. package/build/model-recipes-model-loader.js +119 -17
  199. package/build/models-response-reader.d.ts +600 -195
  200. package/build/models-response-reader.d.ts.map +1 -1
  201. package/build/models-response-reader.js +12 -4
  202. package/build/models.d.ts +438 -1
  203. package/build/models.d.ts.map +1 -1
  204. package/build/models.js +2 -1
  205. package/build/money-formatter.d.ts +25 -31
  206. package/build/money-formatter.d.ts.map +1 -1
  207. package/build/money-formatter.js +11 -8
  208. package/build/not-loaded-error.d.ts.map +1 -1
  209. package/build/not-loaded-error.js +2 -1
  210. package/build/params.d.ts +25 -17
  211. package/build/params.d.ts.map +1 -1
  212. package/build/params.js +19 -15
  213. package/build/preloaded.d.ts +61 -64
  214. package/build/preloaded.d.ts.map +1 -1
  215. package/build/preloaded.js +10 -4
  216. package/build/reset-realtime-runtime-state.d.ts.map +1 -1
  217. package/build/reset-realtime-runtime-state.js +2 -1
  218. package/build/resize-observer.d.ts +1 -1
  219. package/build/resize-observer.d.ts.map +1 -1
  220. package/build/resize-observer.js +2 -1
  221. package/build/rest-props-validator.d.ts +2 -2
  222. package/build/rest-props-validator.d.ts.map +1 -1
  223. package/build/rest-props-validator.js +3 -2
  224. package/build/result.d.ts +142 -175
  225. package/build/result.d.ts.map +1 -1
  226. package/build/result.js +3 -2
  227. package/build/router/route.d.ts +51 -1
  228. package/build/router/route.d.ts.map +1 -1
  229. package/build/router/route.js +48 -12
  230. package/build/router/switch.d.ts +38 -2
  231. package/build/router/switch.d.ts.map +1 -1
  232. package/build/router/switch.js +34 -13
  233. package/build/router.d.ts +21 -1
  234. package/build/router.d.ts.map +1 -1
  235. package/build/router.js +15 -4
  236. package/build/routes-native.d.ts +13 -13
  237. package/build/routes-native.d.ts.map +1 -1
  238. package/build/routes-native.js +23 -11
  239. package/build/routes.d.ts +17 -9
  240. package/build/routes.d.ts.map +1 -1
  241. package/build/routes.js +7 -2
  242. package/build/run-last.d.ts.map +1 -1
  243. package/build/run-last.js +2 -1
  244. package/build/serializer.d.ts +44 -12
  245. package/build/serializer.d.ts.map +1 -1
  246. package/build/serializer.js +36 -7
  247. package/build/services.d.ts +29 -4
  248. package/build/services.d.ts.map +1 -1
  249. package/build/services.js +16 -4
  250. package/build/session-status-updater.d.ts +73 -25
  251. package/build/session-status-updater.d.ts.map +1 -1
  252. package/build/session-status-updater.js +52 -14
  253. package/build/source-maps-loader.d.ts +88 -33
  254. package/build/source-maps-loader.d.ts.map +1 -1
  255. package/build/source-maps-loader.js +74 -18
  256. package/build/super-admin/config-reader.d.ts.map +1 -1
  257. package/build/super-admin/config-reader.js +11 -16
  258. package/build/super-admin/edit-page/edit-attribute-checkbox.d.ts +12 -1
  259. package/build/super-admin/edit-page/edit-attribute-checkbox.d.ts.map +1 -1
  260. package/build/super-admin/edit-page/edit-attribute-checkbox.js +22 -8
  261. package/build/super-admin/edit-page/edit-attribute-content.d.ts +10 -1
  262. package/build/super-admin/edit-page/edit-attribute-content.d.ts.map +1 -1
  263. package/build/super-admin/edit-page/edit-attribute-content.js +20 -9
  264. package/build/super-admin/edit-page/edit-attribute-input.d.ts +10 -1
  265. package/build/super-admin/edit-page/edit-attribute-input.d.ts.map +1 -1
  266. package/build/super-admin/edit-page/edit-attribute-input.js +13 -4
  267. package/build/super-admin/edit-page/edit-attribute.d.ts +8 -1
  268. package/build/super-admin/edit-page/edit-attribute.d.ts.map +1 -1
  269. package/build/super-admin/edit-page/edit-attribute.js +11 -4
  270. package/build/super-admin/edit-page.d.ts +7 -1
  271. package/build/super-admin/edit-page.d.ts.map +1 -1
  272. package/build/super-admin/edit-page.js +11 -5
  273. package/build/super-admin/has-edit-config.d.ts.map +1 -1
  274. package/build/super-admin/has-edit-config.js +2 -1
  275. package/build/super-admin/index-page.d.ts +6 -1
  276. package/build/super-admin/index-page.d.ts.map +1 -1
  277. package/build/super-admin/index-page.js +9 -4
  278. package/build/super-admin/index.d.ts +6 -1
  279. package/build/super-admin/index.d.ts.map +1 -1
  280. package/build/super-admin/index.js +16 -10
  281. package/build/super-admin/layout/header/index.d.ts +6 -1
  282. package/build/super-admin/layout/header/index.d.ts.map +1 -1
  283. package/build/super-admin/layout/header/index.js +18 -12
  284. package/build/super-admin/layout/index.d.ts +26 -1
  285. package/build/super-admin/layout/index.d.ts.map +1 -1
  286. package/build/super-admin/layout/index.js +41 -7
  287. package/build/super-admin/layout/menu/index.d.ts +4 -1
  288. package/build/super-admin/layout/menu/index.d.ts.map +1 -1
  289. package/build/super-admin/layout/menu/index.js +13 -7
  290. package/build/super-admin/layout/menu/menu-content.d.ts +4 -1
  291. package/build/super-admin/layout/menu/menu-content.d.ts.map +1 -1
  292. package/build/super-admin/layout/menu/menu-content.js +6 -4
  293. package/build/super-admin/layout/menu/menu-item.d.ts +11 -1
  294. package/build/super-admin/layout/menu/menu-item.d.ts.map +1 -1
  295. package/build/super-admin/layout/menu/menu-item.js +19 -9
  296. package/build/super-admin/layout/no-access.d.ts +4 -1
  297. package/build/super-admin/layout/no-access.d.ts.map +1 -1
  298. package/build/super-admin/layout/no-access.js +7 -5
  299. package/build/super-admin/model-class-table.d.ts +6 -1
  300. package/build/super-admin/model-class-table.d.ts.map +1 -1
  301. package/build/super-admin/model-class-table.js +9 -4
  302. package/build/super-admin/models.d.ts.map +1 -1
  303. package/build/super-admin/models.js +2 -1
  304. package/build/super-admin/show-nav.d.ts +4 -1
  305. package/build/super-admin/show-nav.d.ts.map +1 -1
  306. package/build/super-admin/show-nav.js +6 -4
  307. package/build/super-admin/show-page/belongs-to-attribute-row.d.ts +18 -1
  308. package/build/super-admin/show-page/belongs-to-attribute-row.d.ts.map +1 -1
  309. package/build/super-admin/show-page/belongs-to-attribute-row.js +14 -5
  310. package/build/super-admin/show-page/index.d.ts +6 -1
  311. package/build/super-admin/show-page/index.d.ts.map +1 -1
  312. package/build/super-admin/show-page/index.js +11 -5
  313. package/build/super-admin/show-reflection-actions.d.ts +8 -1
  314. package/build/super-admin/show-reflection-actions.d.ts.map +1 -1
  315. package/build/super-admin/show-reflection-actions.js +11 -4
  316. package/build/super-admin/show-reflection-link.d.ts +6 -1
  317. package/build/super-admin/show-reflection-link.d.ts.map +1 -1
  318. package/build/super-admin/show-reflection-link.js +12 -5
  319. package/build/super-admin/show-reflection-page.d.ts +7 -1
  320. package/build/super-admin/show-reflection-page.d.ts.map +1 -1
  321. package/build/super-admin/show-reflection-page.js +10 -4
  322. package/build/table/column-content.d.ts +155 -19
  323. package/build/table/column-content.d.ts.map +1 -1
  324. package/build/table/column-content.js +55 -12
  325. package/build/table/column-identifier.d.ts +11 -2
  326. package/build/table/column-identifier.d.ts.map +1 -1
  327. package/build/table/column-identifier.js +7 -2
  328. package/build/table/column-visible.d.ts +11 -2
  329. package/build/table/column-visible.d.ts.map +1 -1
  330. package/build/table/column-visible.js +8 -2
  331. package/build/table/components/column.d.ts +4 -1
  332. package/build/table/components/column.d.ts.map +1 -1
  333. package/build/table/components/column.js +6 -4
  334. package/build/table/components/flat-list.d.ts +4 -1
  335. package/build/table/components/flat-list.d.ts.map +1 -1
  336. package/build/table/components/flat-list.js +6 -4
  337. package/build/table/components/header.d.ts +4 -1
  338. package/build/table/components/header.d.ts.map +1 -1
  339. package/build/table/components/header.js +6 -4
  340. package/build/table/components/row.d.ts +4 -1
  341. package/build/table/components/row.d.ts.map +1 -1
  342. package/build/table/components/row.js +6 -4
  343. package/build/table/filters/attribute-element.d.ts +4 -1
  344. package/build/table/filters/attribute-element.d.ts.map +1 -1
  345. package/build/table/filters/attribute-element.js +7 -7
  346. package/build/table/filters/filter-form.d.ts +60 -1
  347. package/build/table/filters/filter-form.d.ts.map +1 -1
  348. package/build/table/filters/filter-form.js +89 -28
  349. package/build/table/filters/filter.d.ts +4 -1
  350. package/build/table/filters/filter.d.ts.map +1 -1
  351. package/build/table/filters/filter.js +6 -4
  352. package/build/table/filters/index.d.ts +129 -1
  353. package/build/table/filters/index.d.ts.map +1 -1
  354. package/build/table/filters/index.js +26 -9
  355. package/build/table/filters/load-search-modal.d.ts +132 -1
  356. package/build/table/filters/load-search-modal.d.ts.map +1 -1
  357. package/build/table/filters/load-search-modal.js +32 -10
  358. package/build/table/filters/reflection-element.d.ts +4 -1
  359. package/build/table/filters/reflection-element.d.ts.map +1 -1
  360. package/build/table/filters/reflection-element.js +6 -4
  361. package/build/table/filters/save-search-modal.d.ts +136 -1
  362. package/build/table/filters/save-search-modal.d.ts.map +1 -1
  363. package/build/table/filters/save-search-modal.js +39 -6
  364. package/build/table/filters/scope-element.d.ts +8 -1
  365. package/build/table/filters/scope-element.d.ts.map +1 -1
  366. package/build/table/filters/scope-element.js +13 -8
  367. package/build/table/header-column-content.d.ts +9 -1
  368. package/build/table/header-column-content.d.ts.map +1 -1
  369. package/build/table/header-column-content.js +12 -4
  370. package/build/table/header-column.d.ts +52 -1
  371. package/build/table/header-column.d.ts.map +1 -1
  372. package/build/table/header-column.js +39 -10
  373. package/build/table/header-select.d.ts +20 -1
  374. package/build/table/header-select.d.ts.map +1 -1
  375. package/build/table/header-select.js +27 -8
  376. package/build/table/model-callback-args.d.ts +116 -3
  377. package/build/table/model-callback-args.d.ts.map +1 -1
  378. package/build/table/model-callback-args.js +10 -3
  379. package/build/table/model-column.d.ts +138 -1
  380. package/build/table/model-column.d.ts.map +1 -1
  381. package/build/table/model-column.js +27 -4
  382. package/build/table/model-row.d.ts +21 -1
  383. package/build/table/model-row.d.ts.map +1 -1
  384. package/build/table/model-row.js +24 -4
  385. package/build/table/select-calculator.d.ts +37 -2
  386. package/build/table/select-calculator.d.ts.map +1 -1
  387. package/build/table/select-calculator.js +29 -6
  388. package/build/table/settings/column-row.d.ts +8 -1
  389. package/build/table/settings/column-row.d.ts.map +1 -1
  390. package/build/table/settings/column-row.js +13 -12
  391. package/build/table/settings/download-action.d.ts +7 -1
  392. package/build/table/settings/download-action.d.ts.map +1 -1
  393. package/build/table/settings/download-action.js +10 -4
  394. package/build/table/settings/index.d.ts +7 -1
  395. package/build/table/settings/index.d.ts.map +1 -1
  396. package/build/table/settings/index.js +10 -4
  397. package/build/table/should-render-loading-content.d.ts +2 -2
  398. package/build/table/should-render-loading-content.d.ts.map +1 -1
  399. package/build/table/should-render-loading-content.js +3 -2
  400. package/build/table/table-settings.d.ts +236 -43
  401. package/build/table/table-settings.d.ts.map +1 -1
  402. package/build/table/table-settings.js +105 -21
  403. package/build/table/table.d.ts +273 -1
  404. package/build/table/table.d.ts.map +1 -1
  405. package/build/table/table.js +210 -53
  406. package/build/table/use-sorting.d.ts +10 -8
  407. package/build/table/use-sorting.d.ts.map +1 -1
  408. package/build/table/use-sorting.js +16 -8
  409. package/build/table/widths.d.ts +55 -8
  410. package/build/table/widths.d.ts.map +1 -1
  411. package/build/table/widths.js +25 -2
  412. package/build/table/worker-plugins-check-all-checkbox.d.ts +20 -1
  413. package/build/table/worker-plugins-check-all-checkbox.d.ts.map +1 -1
  414. package/build/table/worker-plugins-check-all-checkbox.js +29 -9
  415. package/build/table/worker-plugins-checkbox.d.ts +7 -1
  416. package/build/table/worker-plugins-checkbox.d.ts.map +1 -1
  417. package/build/table/worker-plugins-checkbox.js +14 -8
  418. package/build/translated-attributes.d.ts +7 -2
  419. package/build/translated-attributes.d.ts.map +1 -1
  420. package/build/translated-attributes.js +8 -2
  421. package/build/translated-collections.d.ts +11 -2
  422. package/build/translated-collections.d.ts.map +1 -1
  423. package/build/translated-collections.js +9 -3
  424. package/build/updated-attribute.d.ts.map +1 -1
  425. package/build/updated-attribute.js +2 -1
  426. package/build/url-encode.d.ts.map +1 -1
  427. package/build/url-encode.js +2 -1
  428. package/build/use-can-can.d.ts +8 -0
  429. package/build/use-can-can.d.ts.map +1 -1
  430. package/build/use-can-can.js +39 -13
  431. package/build/use-collection.d.ts +174 -117
  432. package/build/use-collection.d.ts.map +1 -1
  433. package/build/use-collection.js +133 -51
  434. package/build/use-created-event.d.ts +120 -11
  435. package/build/use-created-event.d.ts.map +1 -1
  436. package/build/use-created-event.js +10 -7
  437. package/build/use-current-user-context.d.ts +2 -2
  438. package/build/use-current-user-context.d.ts.map +1 -1
  439. package/build/use-current-user-context.js +3 -2
  440. package/build/use-current-user.d.ts +86 -70
  441. package/build/use-current-user.d.ts.map +1 -1
  442. package/build/use-current-user.js +36 -8
  443. package/build/use-destroyed-event.d.ts +117 -8
  444. package/build/use-destroyed-event.d.ts.map +1 -1
  445. package/build/use-destroyed-event.js +29 -22
  446. package/build/use-input.d.ts +74 -12
  447. package/build/use-input.d.ts.map +1 -1
  448. package/build/use-input.js +33 -5
  449. package/build/use-model-class-event.d.ts +124 -10
  450. package/build/use-model-class-event.d.ts.map +1 -1
  451. package/build/use-model-class-event.js +26 -16
  452. package/build/use-model-event.d.ts +121 -8
  453. package/build/use-model-event.d.ts.map +1 -1
  454. package/build/use-model-event.js +24 -19
  455. package/build/use-model.d.ts +165 -243
  456. package/build/use-model.d.ts.map +1 -1
  457. package/build/use-model.js +94 -35
  458. package/build/use-resize-observer.d.ts.map +1 -1
  459. package/build/use-resize-observer.js +2 -1
  460. package/build/use-router.d.ts.map +1 -1
  461. package/build/use-router.js +2 -1
  462. package/build/use-screen-layout.d.ts +7 -2
  463. package/build/use-screen-layout.d.ts.map +1 -1
  464. package/build/use-screen-layout.js +8 -5
  465. package/build/use-shape.js +2 -1
  466. package/build/use-styles.d.ts +11 -5
  467. package/build/use-styles.d.ts.map +1 -1
  468. package/build/use-styles.js +16 -9
  469. package/build/use-updated-event.d.ts +66 -182
  470. package/build/use-updated-event.d.ts.map +1 -1
  471. package/build/use-updated-event.js +22 -18
  472. package/build/use-validation-errors.d.ts.map +1 -1
  473. package/build/use-validation-errors.js +2 -1
  474. package/build/utils/button.d.ts +16 -1
  475. package/build/utils/button.d.ts.map +1 -1
  476. package/build/utils/button.js +27 -8
  477. package/build/utils/card.d.ts +11 -1
  478. package/build/utils/card.d.ts.map +1 -1
  479. package/build/utils/card.js +13 -2
  480. package/build/utils/checkbox.d.ts +14 -1
  481. package/build/utils/checkbox.d.ts.map +1 -1
  482. package/build/utils/checkbox.js +22 -9
  483. package/build/utils/checkboxes.d.ts +27 -1
  484. package/build/utils/checkboxes.d.ts.map +1 -1
  485. package/build/utils/checkboxes.js +44 -17
  486. package/build/utils/default-style.d.ts +11 -4
  487. package/build/utils/default-style.d.ts.map +1 -1
  488. package/build/utils/default-style.js +12 -4
  489. package/build/utils/header.d.ts +6 -1
  490. package/build/utils/header.d.ts.map +1 -1
  491. package/build/utils/header.js +4 -2
  492. package/build/utils/icon.d.ts +9 -7
  493. package/build/utils/icon.d.ts.map +1 -1
  494. package/build/utils/icon.js +12 -11
  495. package/build/utils/invalid-feedback.d.ts +6 -1
  496. package/build/utils/invalid-feedback.d.ts.map +1 -1
  497. package/build/utils/invalid-feedback.js +8 -2
  498. package/build/utils/modal.d.ts +4 -1
  499. package/build/utils/modal.d.ts.map +1 -1
  500. package/build/utils/modal.js +11 -9
  501. package/build/utils/text.d.ts +9 -1
  502. package/build/utils/text.d.ts.map +1 -1
  503. package/build/utils/text.js +9 -2
  504. package/build/validation-error.d.ts +5 -2
  505. package/build/validation-error.d.ts.map +1 -1
  506. package/build/validation-error.js +5 -2
  507. package/build/validation-errors.d.ts +57 -15
  508. package/build/validation-errors.d.ts.map +1 -1
  509. package/build/validation-errors.js +37 -8
  510. package/build/websocket-request-client.d.ts +61 -15
  511. package/build/websocket-request-client.d.ts.map +1 -1
  512. package/build/websocket-request-client.js +35 -9
  513. package/build/with-api-maker.d.ts +2 -1
  514. package/build/with-api-maker.d.ts.map +1 -1
  515. package/build/with-api-maker.js +2 -1
  516. package/build/with-collection.d.ts +2 -1
  517. package/build/with-collection.d.ts.map +1 -1
  518. package/build/with-collection.js +2 -1
  519. package/build/with-current-user.d.ts.map +1 -1
  520. package/build/with-current-user.js +2 -1
  521. package/build/with-model.d.ts +2 -1
  522. package/build/with-model.d.ts.map +1 -1
  523. package/build/with-model.js +2 -1
  524. package/build/with-router.d.ts.map +1 -1
  525. package/build/with-router.js +2 -1
  526. package/package.json +6 -5
  527. package/build/base-component.d.ts +0 -4
  528. package/build/base-component.d.ts.map +0 -1
  529. package/build/base-component.js +0 -4
@@ -16,6 +16,41 @@ import SessionStatusUpdater from "./session-status-updater.js";
16
16
  import ValidationError from "./validation-error.js";
17
17
  import { ValidationErrors } from "./validation-errors.js";
18
18
  import WebsocketRequestClient from "./websocket-request-client.js";
19
+ /** @typedef {object | string | number | boolean | null | undefined} CommandArgumentScalarOrObject */
20
+ /** @typedef {CommandArgumentScalarOrObject | File | FormData | HTMLFormElement | CommandArgumentScalarOrObject[]} CommandArgumentValue */
21
+ /** @typedef {Record<string, CommandArgumentValue>} CommandArgumentMap */
22
+ /**
23
+ * @typedef {object} CommandDescriptor
24
+ * @property {CommandArgumentValue} [args]
25
+ * @property {string} collectionName
26
+ * @property {string} command
27
+ * @property {number | string} [primaryKey]
28
+ * @property {string} type
29
+ */
30
+ /**
31
+ * @typedef {object} CommandRequestOptions
32
+ * @property {boolean} [cacheResponse]
33
+ * @property {boolean} [forceHttp]
34
+ * @property {boolean} [instant]
35
+ */
36
+ /**
37
+ * @typedef {object} CommandResponseEnvelope
38
+ * @property {CommandArgumentMap} data
39
+ * @property {"success" | "error" | "failed"} type
40
+ */
41
+ /**
42
+ * @typedef {object} CommandsRequestResponse
43
+ * @property {Record<string, CommandResponseEnvelope>} responses
44
+ * @property {boolean} [success]
45
+ * @property {string} [type]
46
+ */
47
+ /**
48
+ * @typedef {object} FailedCommandResponseData
49
+ * @property {string} error_type
50
+ * @property {string[]} [errors]
51
+ * @property {string[]} [validation_errors]
52
+ * @property {CommandArgumentMap} [model]
53
+ */
19
54
  /**
20
55
  * @typedef {object} CommandDataType
21
56
  * @property {ApiMakerCommandExecution} commandExecution
@@ -23,9 +58,14 @@ import WebsocketRequestClient from "./websocket-request-client.js";
23
58
  */
24
59
  /** @typedef {{[key: string]: {[key: string]: {[key: string]: {[key: number]: {args: object, primary_key: number | string, id: number}}}}}} PoolDataType */
25
60
  const shared = {};
26
- /** ApiMakerCommandsPool. */
61
+ /** Batches command submissions and flushes them over HTTP or websockets. */
27
62
  export default class ApiMakerCommandsPool {
28
- /** addCommand. */
63
+ /**
64
+ * Adds a command to the shared or one-off command pool and schedules a flush.
65
+ * @param {CommandDescriptor} data
66
+ * @param {CommandRequestOptions} [args]
67
+ * @returns {ApiMakerCommandExecution}
68
+ */
29
69
  static addCommand(data, args = {}) {
30
70
  let pool;
31
71
  const useWebsocketRequests = Config.getWebsocketRequests();
@@ -46,17 +86,20 @@ export default class ApiMakerCommandsPool {
46
86
  }
47
87
  return promiseResult;
48
88
  }
49
- /** current. */
89
+ /**
90
+ * Returns the shared command pool instance.
91
+ * @returns {ApiMakerCommandsPool}
92
+ */
50
93
  static current() {
51
94
  if (!shared.currentApiMakerCommandsPool)
52
95
  shared.currentApiMakerCommandsPool = new ApiMakerCommandsPool();
53
96
  return shared.currentApiMakerCommandsPool;
54
97
  }
55
- /** flush. */
98
+ /** Flushes the shared command pool immediately. */
56
99
  static flush() {
57
100
  ApiMakerCommandsPool.current().flush();
58
101
  }
59
- /** Constructor. */
102
+ /** Initializes one command pool instance with empty queued state. */
60
103
  constructor() {
61
104
  this.flushCount = 0;
62
105
  /** @type {Record<number, CommandDataType>} */
@@ -64,12 +107,16 @@ export default class ApiMakerCommandsPool {
64
107
  /** @type {PoolDataType} */
65
108
  this.poolData = {};
66
109
  this.currentId = 1;
67
- /** @type {Record<string, any>} */
110
+ /** @type {CommandArgumentMap} */
68
111
  this.globalRequestData = {};
69
- /** @type {Record<string, any>} */
112
+ /** @type {CommandRequestOptions} */
70
113
  this.requestOptions = {};
71
114
  }
72
- /** addCommand. */
115
+ /**
116
+ * Adds one command execution to this pool instance.
117
+ * @param {CommandDescriptor} data
118
+ * @returns {ApiMakerCommandExecution}
119
+ */
73
120
  addCommand(data) {
74
121
  const stack = Error().stack;
75
122
  const id = this.currentId;
@@ -112,18 +159,18 @@ export default class ApiMakerCommandsPool {
112
159
  * @param {string} args.url
113
160
  * @param {CommandSubmitData} args.commandSubmitData
114
161
  * @param {ApiMakerCommandExecution} [args.commandExecution]
115
- * @returns {Promise<Record<string, any>>}
162
+ * @returns {Promise<CommandsRequestResponse>}
116
163
  */
117
164
  async sendRequest({ commandExecution, commandSubmitData, url }) {
118
165
  if (Config.getWebsocketRequests() && !this.requestOptions.forceHttp && commandSubmitData.getFilesCount() == 0) {
119
- return await WebsocketRequestClient.current().perform({
166
+ return /** @type {Promise<CommandsRequestResponse>} */ (WebsocketRequestClient.current().perform({
120
167
  cacheResponse: this.requestOptions.cacheResponse,
121
168
  global: this.globalRequestData,
122
169
  onLog: (message) => commandExecution?.addLog(message),
123
170
  onProgress: (progressData) => commandExecution?.setProgress(progressData),
124
171
  onReceived: (receivedData) => commandExecution?.setReceived(receivedData),
125
172
  request: commandSubmitData.getJsonData()
126
- });
173
+ }));
127
174
  }
128
175
  let response;
129
176
  for (let i = 0; i < 3; i++) {
@@ -138,11 +185,11 @@ export default class ApiMakerCommandsPool {
138
185
  await SessionStatusUpdater.current().updateSessionStatus(); // eslint-disable-line no-await-in-loop
139
186
  continue; // eslint-disable-line no-continue
140
187
  }
141
- return response;
188
+ return /** @type {CommandsRequestResponse} */ (response);
142
189
  }
143
190
  throw new Error("Couldnt successfully execute request");
144
191
  }
145
- /** flush. */
192
+ /** Sends the currently queued commands and resolves or rejects their executions. */
146
193
  flush = async () => {
147
194
  if (this.commandsCount() == 0) {
148
195
  return;
@@ -191,10 +238,7 @@ export default class ApiMakerCommandsPool {
191
238
  };
192
239
  /**
193
240
  * @param {CommandDataType} commandData
194
- * @param {object} commandResponseData
195
- * @param {string} commandResponseData.error_type
196
- * @param {string[]} commandResponseData.errors
197
- * @param {string[]} commandResponseData.validation_errors
241
+ * @param {FailedCommandResponseData} commandResponseData
198
242
  * @returns {Promise<void>}
199
243
  */
200
244
  async handleFailedResponse(commandData, commandResponseData) {
@@ -240,7 +284,7 @@ export default class ApiMakerCommandsPool {
240
284
  commandData.commandExecution.reject(error);
241
285
  }
242
286
  /**
243
- * @param {Record<string, any>} commandResponseData
287
+ * @param {FailedCommandResponseData} commandResponseData
244
288
  * @returns {Promise<void>}
245
289
  */
246
290
  async refreshSessionStatusForNoAccessError(commandResponseData) {
@@ -255,7 +299,10 @@ export default class ApiMakerCommandsPool {
255
299
  }
256
300
  await SessionStatusUpdater.current().updateSessionStatus();
257
301
  }
258
- /** isActive. */
302
+ /**
303
+ * Returns true while one or more flushes are still in progress.
304
+ * @returns {boolean}
305
+ */
259
306
  isActive() {
260
307
  if (this.commandsCount() > 0) {
261
308
  return true;
@@ -267,4 +314,4 @@ export default class ApiMakerCommandsPool {
267
314
  }
268
315
  flushRunLast = new RunLast(this.flush);
269
316
  }
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMtcG9vbC5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsiY29tbWFuZHMtcG9vbC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFBO0FBQzFCLE9BQU8sd0JBQXdCLE1BQU0sd0JBQXdCLENBQUE7QUFDN0QsT0FBTyxpQkFBaUIsTUFBTSwwQkFBMEIsQ0FBQTtBQUN4RCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxXQUFXLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUE7QUFDN0MsT0FBTyxZQUFZLE1BQU0sbUJBQW1CLENBQUEsQ0FBQyxtQ0FBbUM7QUFDaEYsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sRUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBLENBQUMsbUNBQW1DO0FBQ3ZFLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLGtCQUFrQixNQUFNLHNCQUFzQixDQUFBLENBQUMsbUNBQW1DO0FBQ3pGLE9BQU8sT0FBTyxNQUFNLGVBQWUsQ0FBQTtBQUNuQyxPQUFPLFVBQVUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN4QyxPQUFPLG9CQUFvQixNQUFNLDZCQUE2QixDQUFBO0FBQzlELE9BQU8sZUFBZSxNQUFNLHVCQUF1QixDQUFBO0FBQ25ELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdCQUF3QixDQUFBO0FBQ3ZELE9BQU8sc0JBQXNCLE1BQU0sK0JBQStCLENBQUE7QUFFbEU7Ozs7R0FJRztBQUVILDJKQUEySjtBQUUzSixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUE7QUFFakIsNEJBQTRCO0FBQzVCLE1BQU0sQ0FBQyxPQUFPLE9BQU8sb0JBQW9CO0lBQ3ZDLGtCQUFrQjtJQUNsQixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFB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LE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLG1CQUFtQjtRQUM1RCxJQUFJLG1CQUFtQixDQUFDLFVBQVUsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1lBQy9ELE9BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTTthQUN6QixnQkFBZ0IsRUFBRTthQUNsQixJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFFNUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25CLE9BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO0lBQzVELENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRCxZQUFZLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0NBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBBcGkgZnJvbSBcIi4vYXBpLmpzXCJcbmltcG9ydCBBcGlNYWtlckNvbW1hbmRFeGVjdXRpb24gZnJvbSBcIi4vY29tbWFuZC1leGVjdXRpb24uanNcIlxuaW1wb3J0IENvbW1hbmRTdWJtaXREYXRhIGZyb20gXCIuL2NvbW1hbmQtc3VibWl0LWRhdGEuanNcIlxuaW1wb3J0IENvbmZpZyBmcm9tIFwiLi9jb25maWcuanNcIlxuaW1wb3J0IEN1c3RvbUVycm9yIGZyb20gXCIuL2N1c3RvbS1lcnJvci5qc1wiXG5pbXBvcnQgRGVzdHJveUVycm9yIGZyb20gXCIuL2Rlc3Ryb3ktZXJyb3IuanNcIlxuaW1wb3J0IERlc2VyaWFsaXplciBmcm9tIFwiLi9kZXNlcmlhbGl6ZXIuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuaW1wb3J0IERldmlzZSBmcm9tIFwiLi9kZXZpc2UuanNcIlxuaW1wb3J0IHtkaWcsIGRpZ2d9IGZyb20gXCJkaWdnZXJpemVcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuaW1wb3J0IGV2ZW50cyBmcm9tIFwiLi9ldmVudHMuanNcIlxuaW1wb3J0IEZvcm1EYXRhT2JqZWN0aXplciBmcm9tIFwiZm9ybS1kYXRhLW9iamVjdGl6ZXJcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuaW1wb3J0IFJ1bkxhc3QgZnJvbSBcIi4vcnVuLWxhc3QuanNcIlxuaW1wb3J0IFNlcmlhbGl6ZXIgZnJvbSBcIi4vc2VyaWFsaXplci5qc1wiXG5pbXBvcnQgU2Vzc2lvblN0YXR1c1VwZGF0ZXIgZnJvbSBcIi4vc2Vzc2lvbi1zdGF0dXMtdXBkYXRlci5qc1wiXG5pbXBvcnQgVmFsaWRhdGlvbkVycm9yIGZyb20gXCIuL3ZhbGlkYXRpb24tZXJyb3IuanNcIlxuaW1wb3J0IHtWYWxpZGF0aW9uRXJyb3JzfSBmcm9tIFwiLi92YWxpZGF0aW9uLWVycm9ycy5qc1wiXG5pbXBvcnQgV2Vic29ja2V0UmVxdWVzdENsaWVudCBmcm9tIFwiLi93ZWJzb2NrZXQtcmVxdWVzdC1jbGllbnQuanNcIlxuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IENvbW1hbmREYXRhVHlwZVxuICogQHByb3BlcnR5IHtBcGlNYWtlckNvbW1hbmRFeGVjdXRpb259IGNvbW1hbmRFeGVjdXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBzdGFja1xuICovXG5cbi8qKiBAdHlwZWRlZiB7e1trZXk6IHN0cmluZ106IHtba2V5OiBzdHJpbmddOiB7W2tleTogc3RyaW5nXToge1trZXk6IG51bWJlcl06IHthcmdzOiBvYmplY3QsIHByaW1hcnlfa2V5OiBudW1iZXIgfCBzdHJpbmcsIGlkOiBudW1iZXJ9fX19fX0gUG9vbERhdGFUeXBlICovXG5cbmNvbnN0IHNoYXJlZCA9IHt9XG5cbi8qKiBBcGlNYWtlckNvbW1hbmRzUG9vbC4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyQ29tbWFuZHNQb29sIHtcbiAgLyoqIGFkZENvbW1hbmQuICovXG4gIHN0YXRpYyBhZGRDb21tYW5kKGRhdGEsIGFyZ3MgPSB7fSkge1xuICAgIGxldCBwb29sXG4gICAgY29uc3QgdXNlV2Vic29ja2V0UmVxdWVzdHMgPSBDb25maWcuZ2V0V2Vic29ja2V0UmVxdWVzdHMoKVxuXG4gICAgaWYgKGFyZ3MuaW5zdGFudCB8fCB1c2VXZWJzb2NrZXRSZXF1ZXN0cykge1xuICAgICAgcG9vbCA9IG5ldyBBcGlNYWtlckNvbW1hbmRzUG9vbCgpXG4gICAgICBwb29sLmdsb2JhbFJlcXVlc3REYXRhID0gey4uLkFwaU1ha2VyQ29tbWFuZHNQb29sLmN1cnJlbnQoKS5nbG9iYWxSZXF1ZXN0RGF0YX1cbiAgICAgIHBvb2wucmVxdWVzdE9wdGlvbnMgPSB7Li4uYXJnc31cbiAgICB9IGVsc2Uge1xuICAgICAgcG9vbCA9IEFwaU1ha2VyQ29tbWFuZHNQb29sLmN1cnJlbnQoKVxuICAgIH1cblxuICAgIGNvbnN0IHByb21pc2VSZXN1bHQgPSBwb29sLmFkZENvbW1hbmQoZGF0YSlcblxuICAgIGlmIChhcmdzLmluc3RhbnQgfHwgdXNlV2Vic29ja2V0UmVxdWVzdHMpIHtcbiAgICAgIHBvb2wuZmx1c2hSdW5MYXN0LnJ1bigpXG4gICAgfSBlbHNlIHtcbiAgICAgIHBvb2wuZmx1c2hSdW5MYXN0LnF1ZXVlKClcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvbWlzZVJlc3VsdFxuICB9XG5cbiAgLyoqIGN1cnJlbnQuICovXG4gIHN0YXRpYyBjdXJyZW50KCkge1xuICAgIGlmICghc2hhcmVkLmN1cnJlbnRBcGlNYWtlckNvbW1hbmRzUG9vbCkgc2hhcmVkLmN1cnJlbnRBcGlNYWtlckNvbW1hbmRzUG9vbCA9IG5ldyBBcGlNYWtlckNvbW1hbmRzUG9vbCgpXG5cbiAgICByZXR1cm4gc2hhcmVkLmN1cnJlbnRBcGlNYWtlckNvbW1hbmRzUG9vbFxuICB9XG5cbiAgLyoqIGZsdXNoLiAqL1xuICBzdGF0aWMgZmx1c2goKSB7XG4gICAgQXBpTWFrZXJDb21tYW5kc1Bvb2wuY3VycmVudCgpLmZsdXNoKClcbiAgfVxuXG4gIC8qKiBDb25zdHJ1Y3Rvci4gKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5mbHVzaENvdW50ID0gMFxuXG4gICAgLyoqIEB0eXBlIHtSZWNvcmQ8bnVtYmVyLCBDb21tYW5kRGF0YVR5cGU+fSAqL1xuICAgIHRoaXMucG9vbCA9IHt9XG5cbiAgICAvKiogQHR5cGUge1Bvb2xEYXRhVHlwZX0gKi9cbiAgICB0aGlzLnBvb2xEYXRhID0ge31cblxuICAgIHRoaXMuY3VycmVudElkID0gMVxuXG4gICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSAqL1xuICAgIHRoaXMuZ2xvYmFsUmVxdWVzdERhdGEgPSB7fVxuXG4gICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSAqL1xuICAgIHRoaXMucmVxdWVzdE9wdGlvbnMgPSB7fVxuICB9XG5cbiAgLyoqIGFkZENvbW1hbmQuICovXG4gIGFkZENvbW1hbmQoZGF0YSkge1xuICAgIGNvbnN0IHN0YWNrID0gRXJyb3IoKS5zdGFja1xuICAgIGNvbnN0IGlkID0gdGhpcy5jdXJyZW50SWRcbiAgICBjb25zdCBjb21tYW5kRXhlY3V0aW9uID0gbmV3IEFwaU1ha2VyQ29tbWFuZEV4ZWN1dGlvbigpXG4gICAgY29uc3QgY29tbWFuZFR5cGUgPSBkYXRhLnR5cGVcbiAgICBjb25zdCBjb21tYW5kTmFtZSA9IGRhdGEuY29tbWFuZFxuICAgIGNvbnN0IGNvbGxlY3Rpb25OYW1lID0gZGF0YS5jb2xsZWN0aW9uTmFtZVxuXG4gICAgdGhpcy5jdXJyZW50SWQgKz0gMVxuICAgIHRoaXMucG9vbFtpZF0gPSB7Y29tbWFuZEV4ZWN1dGlvbiwgc3RhY2t9XG5cbiAgICBpZiAoIXRoaXMucG9vbERhdGFbY29tbWFuZFR5cGVdKSB0aGlzLnBvb2xEYXRhW2NvbW1hbmRUeXBlXSA9IHt9XG4gICAgaWYgKCF0aGlzLnBvb2xEYXRhW2NvbW1hbmRUeXBlXVtjb2xsZWN0aW9uTmFtZV0pIHRoaXMucG9vbERhdGFbY29tbWFuZFR5cGVdW2NvbGxlY3Rpb25OYW1lXSA9IHt9XG4gICAgaWYgKCF0aGlzLnBvb2xEYXRhW2NvbW1hbmRUeXBlXVtjb2xsZWN0aW9uTmFtZV1bY29tbWFuZE5hbWVdKSB0aGlzLnBvb2xEYXRhW2NvbW1hbmRUeXBlXVtjb2xsZWN0aW9uTmFtZV1bY29tbWFuZE5hbWVdID0ge31cblxuICAgIGxldCBhcmdzXG5cbiAgICBpZiAoZGF0YS5hcmdzPy5ub2RlTmFtZSA9PSBcIkZPUk1cIikge1xuICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoZGF0YS5hcmdzKVxuXG4gICAgICBhcmdzID0gRm9ybURhdGFPYmplY3RpemVyLnRvT2JqZWN0KGZvcm1EYXRhKVxuICAgIH0gZWxzZSBpZiAoZGF0YS5hcmdzIGluc3RhbmNlb2YgRm9ybURhdGEpIHtcbiAgICAgIGFyZ3MgPSBGb3JtRGF0YU9iamVjdGl6ZXIudG9PYmplY3QoZGF0YS5hcmdzKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcmdzID0gU2VyaWFsaXplci5zZXJpYWxpemUoZGF0YS5hcmdzKVxuICAgIH1cblxuICAgIHRoaXMucG9vbERhdGFbY29tbWFuZFR5cGVdW2NvbGxlY3Rpb25OYW1lXVtjb21tYW5kTmFtZV1baWRdID0ge1xuICAgICAgYXJncyxcbiAgICAgIHByaW1hcnlfa2V5OiBkYXRhLnByaW1hcnlLZXksXG4gICAgICBpZFxuICAgIH1cblxuICAgIHJldHVybiBjb21tYW5kRXhlY3V0aW9uXG4gIH1cblxuICAvKiogQHJldHVybnMge251bWJlcn0gKi9cbiAgY29tbWFuZHNDb3VudCgpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5wb29sKS5sZW5ndGhcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJnc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy51cmxcbiAgICogQHBhcmFtIHtDb21tYW5kU3VibWl0RGF0YX0gYXJncy5jb21tYW5kU3VibWl0RGF0YVxuICAgKiBAcGFyYW0ge0FwaU1ha2VyQ29tbWFuZEV4ZWN1dGlvbn0gW2FyZ3MuY29tbWFuZEV4ZWN1dGlvbl1cbiAgICogQHJldHVybnMge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59XG4gICAqL1xuICBhc3luYyBzZW5kUmVxdWVzdCh7Y29tbWFuZEV4ZWN1dGlvbiwgY29tbWFuZFN1Ym1pdERhdGEsIHVybH0pIHtcbiAgICBpZiAoQ29uZmlnLmdldFdlYnNvY2tldFJlcXVlc3RzKCkgJiYgIXRoaXMucmVxdWVzdE9wdGlvbnMuZm9yY2VIdHRwICYmIGNvbW1hbmRTdWJtaXREYXRhLmdldEZpbGVzQ291bnQoKSA9PSAwKSB7XG4gICAgICByZXR1cm4gYXdhaXQgV2Vic29ja2V0UmVxdWVzdENsaWVudC5jdXJyZW50KCkucGVyZm9ybSh7XG4gICAgICAgIGNhY2hlUmVzcG9uc2U6IHRoaXMucmVxdWVzdE9wdGlvbnMuY2FjaGVSZXNwb25zZSxcbiAgICAgICAgZ2xvYmFsOiB0aGlzLmdsb2JhbFJlcXVlc3REYXRhLFxuICAgICAgICBvbkxvZzogKG1lc3NhZ2UpID0+IGNvbW1hbmRFeGVjdXRpb24/LmFkZExvZyhtZXNzYWdlKSxcbiAgICAgICAgb25Qcm9ncmVzczogKHByb2dyZXNzRGF0YSkgPT4gY29tbWFuZEV4ZWN1dGlvbj8uc2V0UHJvZ3Jlc3MocHJvZ3Jlc3NEYXRhKSxcbiAgICAgICAgb25SZWNlaXZlZDogKHJlY2VpdmVkRGF0YSkgPT4gY29tbWFuZEV4ZWN1dGlvbj8uc2V0UmVjZWl2ZWQocmVjZWl2ZWREYXRhKSxcbiAgICAgICAgcmVxdWVzdDogY29tbWFuZFN1Ym1pdERhdGEuZ2V0SnNvbkRhdGEoKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBsZXQgcmVzcG9uc2VcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMzsgaSsrKSB7XG4gICAgICBpZiAoY29tbWFuZFN1Ym1pdERhdGEuZ2V0RmlsZXNDb3VudCgpID4gMCkge1xuICAgICAgICByZXNwb25zZSA9IGF3YWl0IEFwaS5yZXF1ZXN0TG9jYWwoe3BhdGg6IHVybCwgbWV0aG9kOiBcIlBPU1RcIiwgcmF3RGF0YTogY29tbWFuZFN1Ym1pdERhdGEuZ2V0Rm9ybURhdGEoKX0pIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBBcGkucmVxdWVzdExvY2FsKHtwYXRoOiB1cmwsIG1ldGhvZDogXCJQT1NUXCIsIGRhdGE6IGNvbW1hbmRTdWJtaXREYXRhLmdldEpzb25EYXRhKCl9KSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWF3YWl0LWluLWxvb3BcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgPT09IGZhbHNlICYmIHJlc3BvbnNlLnR5cGUgPT0gXCJpbnZhbGlkX2F1dGhlbnRpY2l0eV90b2tlblwiKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiSW52YWxpZCBhdXRoZW50aWNpdHkgdG9rZW4gLSB0cnkgYWdhaW5cIilcbiAgICAgICAgYXdhaXQgU2Vzc2lvblN0YXR1c1VwZGF0ZXIuY3VycmVudCgpLnVwZGF0ZVNlc3Npb25TdGF0dXMoKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWF3YWl0LWluLWxvb3BcbiAgICAgICAgY29udGludWUgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb250aW51ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzcG9uc2VcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG50IHN1Y2Nlc3NmdWxseSBleGVjdXRlIHJlcXVlc3RcIilcbiAgfVxuXG4gIC8qKiBmbHVzaC4gKi9cbiAgZmx1c2ggPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKHRoaXMuY29tbWFuZHNDb3VudCgpID09IDApIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRQb29sID0gdGhpcy5wb29sXG4gICAgY29uc3QgY3VycmVudFBvb2xEYXRhID0gdGhpcy5wb29sRGF0YVxuXG4gICAgdGhpcy5wb29sID0ge31cbiAgICB0aGlzLnBvb2xEYXRhID0ge31cbiAgICB0aGlzLmZsdXNoQ291bnQrK1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN1Ym1pdERhdGEgPSB7cG9vbDogY3VycmVudFBvb2xEYXRhfVxuXG4gICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5nbG9iYWxSZXF1ZXN0RGF0YSkubGVuZ3RoID4gMClcbiAgICAgICAgc3VibWl0RGF0YS5nbG9iYWwgPSB0aGlzLmdsb2JhbFJlcXVlc3REYXRhXG5cbiAgICAgIGNvbnN0IGNvbW1hbmRTdWJtaXREYXRhID0gbmV3IENvbW1hbmRTdWJtaXREYXRhKHN1Ym1pdERhdGEpXG4gICAgICBjb25zdCB1cmwgPSBcIi9hcGlfbWFrZXIvY29tbWFuZHNcIlxuICAgICAgY29uc3QgY29tbWFuZEV4ZWN1dGlvbiA9IE9iamVjdC52YWx1ZXMoY3VycmVudFBvb2wpWzBdPy5jb21tYW5kRXhlY3V0aW9uXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuc2VuZFJlcXVlc3Qoe2NvbW1hbmRFeGVjdXRpb24sIGNvbW1hbmRTdWJtaXREYXRhLCB1cmx9KVxuXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChPYmplY3Qua2V5cyhyZXNwb25zZS5yZXNwb25zZXMpLm1hcChhc3luYyhjb21tYW5kSWQpID0+IHtcbiAgICAgICAgY29uc3QgY29tbWFuZFJlc3BvbnNlID0gcmVzcG9uc2UucmVzcG9uc2VzW2NvbW1hbmRJZF1cbiAgICAgICAgY29uc3QgY29tbWFuZFJlc3BvbnNlRGF0YSA9IERlc2VyaWFsaXplci5wYXJzZShjb21tYW5kUmVzcG9uc2UuZGF0YSlcbiAgICAgICAgY29uc3QgY29tbWFuZERhdGEgPSBjdXJyZW50UG9vbFtwYXJzZUludChjb21tYW5kSWQsIDEwKV1cbiAgICAgICAgY29uc3QgcmVzcG9uc2VUeXBlID0gY29tbWFuZFJlc3BvbnNlLnR5cGVcblxuICAgICAgICBpZiAoY29tbWFuZFJlc3BvbnNlRGF0YSAmJiB0eXBlb2YgY29tbWFuZFJlc3BvbnNlRGF0YSA9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgY29uc3QgYnVnUmVwb3J0VXJsID0gZGlnKGNvbW1hbmRSZXNwb25zZURhdGEsIFwiYnVnX3JlcG9ydF91cmxcIilcblxuICAgICAgICAgIGlmIChidWdSZXBvcnRVcmwpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBCdWcgcmVwb3J0IFVSTDogJHtidWdSZXBvcnRVcmx9YClcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzcG9uc2VUeXBlID09IFwic3VjY2Vzc1wiKSB7XG4gICAgICAgICAgY29tbWFuZERhdGEuY29tbWFuZEV4ZWN1dGlvbi5yZXNvbHZlKGNvbW1hbmRSZXNwb25zZURhdGEpXG4gICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2VUeXBlID09IFwiZXJyb3JcIikge1xuICAgICAgICAgIHRoaXMucmVqZWN0V2l0aENhbGxlclN0YWNrKGNvbW1hbmREYXRhLCBuZXcgQ3VzdG9tRXJyb3IoXCJDb21tYW5kIGVycm9yXCIsIHtyZXNwb25zZTogY29tbWFuZFJlc3BvbnNlRGF0YX0pKVxuICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlVHlwZSA9PSBcImZhaWxlZFwiKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVGYWlsZWRSZXNwb25zZShjb21tYW5kRGF0YSwgY29tbWFuZFJlc3BvbnNlRGF0YSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuaGFuZGxlZCByZXNwb25zZSB0eXBlOiAke3Jlc3BvbnNlVHlwZX1gKVxuICAgICAgICB9XG4gICAgICB9KSlcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5mbHVzaENvdW50LS1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtDb21tYW5kRGF0YVR5cGV9IGNvbW1hbmREYXRhXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjb21tYW5kUmVzcG9uc2VEYXRhXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjb21tYW5kUmVzcG9uc2VEYXRhLmVycm9yX3R5cGVcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gY29tbWFuZFJlc3BvbnNlRGF0YS5lcnJvcnNcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gY29tbWFuZFJlc3BvbnNlRGF0YS52YWxpZGF0aW9uX2Vycm9yc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIGhhbmRsZUZhaWxlZFJlc3BvbnNlKGNvbW1hbmREYXRhLCBjb21tYW5kUmVzcG9uc2VEYXRhKSB7XG4gICAgYXdhaXQgdGhpcy5yZWZyZXNoU2Vzc2lvblN0YXR1c0Zvck5vQWNjZXNzRXJyb3IoY29tbWFuZFJlc3BvbnNlRGF0YSlcblxuICAgIGxldCBlcnJvclxuXG4gICAgaWYgKGNvbW1hbmRSZXNwb25zZURhdGEuZXJyb3JfdHlwZSA9PSBcImRlc3Ryb3lfZXJyb3JcIikge1xuICAgICAgZXJyb3IgPSBuZXcgRGVzdHJveUVycm9yKFwiRGVzdHJveSBmYWlsZWRcIiwge3Jlc3BvbnNlOiBjb21tYW5kUmVzcG9uc2VEYXRhfSlcbiAgICB9IGVsc2UgaWYgKGNvbW1hbmRSZXNwb25zZURhdGEuZXJyb3JfdHlwZSA9PSBcInZhbGlkYXRpb25fZXJyb3JcIikge1xuICAgICAgY29uc3QgdmFsaWRhdGlvbkVycm9ycyA9IG5ldyBWYWxpZGF0aW9uRXJyb3JzKHtcbiAgICAgICAgbW9kZWw6IGRpZ2coY29tbWFuZFJlc3BvbnNlRGF0YSwgXCJtb2RlbFwiKSxcbiAgICAgICAgdmFsaWRhdGlvbkVycm9yczogZGlnZyhjb21tYW5kUmVzcG9uc2VEYXRhLCBcInZhbGlkYXRpb25fZXJyb3JzXCIpXG4gICAgICB9KVxuICAgICAgZXJyb3IgPSBuZXcgVmFsaWRhdGlvbkVycm9yKHZhbGlkYXRpb25FcnJvcnMsIHtyZXNwb25zZTogY29tbWFuZFJlc3BvbnNlRGF0YX0pXG5cbiAgICAgIGV2ZW50cy5lbWl0KFwib25WYWxpZGF0aW9uRXJyb3JzXCIsIHZhbGlkYXRpb25FcnJvcnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGNvbW1hbmRSZXNwb25zZURhdGEuZXJyb3JzID8gdW5kZWZpbmVkIDogXCJDb21tYW5kIGZhaWxlZFwiXG5cbiAgICAgIGVycm9yID0gbmV3IEN1c3RvbUVycm9yKGVycm9yTWVzc2FnZSwge3Jlc3BvbnNlOiBjb21tYW5kUmVzcG9uc2VEYXRhfSlcbiAgICB9XG5cbiAgICB0aGlzLnJlamVjdFdpdGhDYWxsZXJTdGFjayhjb21tYW5kRGF0YSwgZXJyb3IpXG4gIH1cblxuICAvKipcbiAgICogUmVqZWN0cyB0aGUgY29tbWFuZCB3aXRoIHRoZSBnaXZlbiBlcnJvciwgc3BsaWNpbmcgdGhlIGNhbGxlcidzIHN0YWNrIChjYXB0dXJlZCBzeW5jaHJvbm91c2x5IGluIGFkZENvbW1hbmQpIG9udG8gZXJyb3Iuc3RhY2suXG4gICAqIE5lZWRlZCBiZWNhdXNlIGVycm9yLnN0YWNrIGlzIGZyb3plbiBhdCBjb25zdHJ1Y3Rpb24gdGltZSBpbnNpZGUgZmx1c2goKSdzIG1pY3JvdGFzayBhbmQgdGhlcmVmb3JlIGxvc2VzIHRoZSBjYWxsZXIncyBmcmFtZXMuXG4gICAqIEBwYXJhbSB7Q29tbWFuZERhdGFUeXBlfSBjb21tYW5kRGF0YVxuICAgKiBAcGFyYW0ge0Vycm9yfSBlcnJvclxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHJlamVjdFdpdGhDYWxsZXJTdGFjayhjb21tYW5kRGF0YSwgZXJyb3IpIHtcbiAgICBpZiAoY29tbWFuZERhdGEuc3RhY2spIHtcbiAgICAgIC8vIFY4IHByZWZpeGVzIFwiRXJyb3JcXG5cIiBhcyBhIGhlYWRlcjsgSlNDL1NwaWRlck1vbmtleSBzdGFja3Mgc3RhcnQgZGlyZWN0bHkgd2l0aCBhIGZyYW1lLlxuICAgICAgY29uc3QgY2FsbGVyRnJhbWVzID0gY29tbWFuZERhdGEuc3RhY2suc3RhcnRzV2l0aChcIkVycm9yXCIpXG4gICAgICAgID8gY29tbWFuZERhdGEuc3RhY2tcbiAgICAgICAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAgICAgICAuc2xpY2UoMSlcbiAgICAgICAgICAuam9pbihcIlxcblwiKVxuICAgICAgICA6IGNvbW1hbmREYXRhLnN0YWNrXG5cbiAgICAgIGlmIChjYWxsZXJGcmFtZXMpIHtcbiAgICAgICAgZXJyb3Iuc3RhY2sgPSBgJHtlcnJvci5zdGFjayA/PyBcIlwifVxcbiR7Y2FsbGVyRnJhbWVzfWBcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21tYW5kRGF0YS5jb21tYW5kRXhlY3V0aW9uLnJlamVjdChlcnJvcilcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IGNvbW1hbmRSZXNwb25zZURhdGFcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyByZWZyZXNoU2Vzc2lvblN0YXR1c0Zvck5vQWNjZXNzRXJyb3IoY29tbWFuZFJlc3BvbnNlRGF0YSkge1xuICAgIGlmIChjb21tYW5kUmVzcG9uc2VEYXRhLmVycm9yX3R5cGUgIT0gXCJub3RfZm91bmRfb3Jfbm9fYWNjZXNzXCIpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHNpZ25lZEluU2NvcGUgPSBEZXZpc2VcbiAgICAgIC5yZWdpc3RlcmVkU2NvcGVzKClcbiAgICAgIC5maW5kKChzY29wZSkgPT4gRGV2aXNlLmN1cnJlbnQoKS5oYXNDdXJyZW50U2NvcGUoc2NvcGUpIHx8IERldmlzZS5jdXJyZW50KCkuaGFzR2xvYmFsQ3VycmVudFNjb3BlKHNjb3BlKSlcblxuICAgIGlmICghc2lnbmVkSW5TY29wZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgYXdhaXQgU2Vzc2lvblN0YXR1c1VwZGF0ZXIuY3VycmVudCgpLnVwZGF0ZVNlc3Npb25TdGF0dXMoKVxuICB9XG5cbiAgLyoqIGlzQWN0aXZlLiAqL1xuICBpc0FjdGl2ZSgpIHtcbiAgICBpZiAodGhpcy5jb21tYW5kc0NvdW50KCkgPiAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmICh0aGlzLmZsdXNoQ291bnQgPiAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgZmx1c2hSdW5MYXN0ID0gbmV3IFJ1bkxhc3QodGhpcy5mbHVzaClcbn1cbiJdfQ==
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMtcG9vbC5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsiY29tbWFuZHMtcG9vbC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFBO0FBQzFCLE9BQU8sd0JBQXdCLE1BQU0sd0JBQXdCLENBQUE7QUFDN0QsT0FBTyxpQkFBaUIsTUFBTSwwQkFBMEIsQ0FBQTtBQUN4RCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxXQUFXLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUE7QUFDN0MsT0FBTyxZQUFZLE1BQU0sbUJBQW1CLENBQUEsQ0FBQyxtQ0FBbUM7QUFDaEYsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sRUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBLENBQUMsbUNBQW1DO0FBQ3ZFLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLGtCQUFrQixNQUFNLHNCQUFzQixDQUFBLENBQUMsbUNBQW1DO0FBQ3pGLE9BQU8sT0FBTyxNQUFNLGVBQWUsQ0FBQTtBQUNuQyxPQUFPLFVBQVUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN4QyxPQUFPLG9CQUFvQixNQUFNLDZCQUE2QixDQUFBO0FBQzlELE9BQU8sZUFBZSxNQUFNLHVCQUF1QixDQUFBO0FBQ25ELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdCQUF3QixDQUFBO0FBQ3ZELE9BQU8sc0JBQXNCLE1BQU0sK0JBQStCLENBQUE7QUFFbEUscUdBQXFHO0FBQ3JHLDBJQUEwSTtBQUMxSSx5RUFBeUU7QUFDekU7Ozs7Ozs7R0FPRztBQUNIOzs7OztHQUtHO0FBQ0g7Ozs7R0FJRztBQUNIOzs7OztHQUtHO0FBQ0g7Ozs7OztHQU1HO0FBRUg7Ozs7R0FJRztBQUVILDJKQUEySjtBQUUzSixNQUFNLE1B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dGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEFwaSBmcm9tIFwiLi9hcGkuanNcIlxuaW1wb3J0IEFwaU1ha2VyQ29tbWFuZEV4ZWN1dGlvbiBmcm9tIFwiLi9jb21tYW5kLWV4ZWN1dGlvbi5qc1wiXG5pbXBvcnQgQ29tbWFuZFN1Ym1pdERhdGEgZnJvbSBcIi4vY29tbWFuZC1zdWJtaXQtZGF0YS5qc1wiXG5pbXBvcnQgQ29uZmlnIGZyb20gXCIuL2NvbmZpZy5qc1wiXG5pbXBvcnQgQ3VzdG9tRXJyb3IgZnJvbSBcIi4vY3VzdG9tLWVycm9yLmpzXCJcbmltcG9ydCBEZXN0cm95RXJyb3IgZnJvbSBcIi4vZGVzdHJveS1lcnJvci5qc1wiXG5pbXBvcnQgRGVzZXJpYWxpemVyIGZyb20gXCIuL2Rlc2VyaWFsaXplci5qc1wiIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgc29ydC1pbXBvcnRzXG5pbXBvcnQgRGV2aXNlIGZyb20gXCIuL2RldmlzZS5qc1wiXG5pbXBvcnQge2RpZywgZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgc29ydC1pbXBvcnRzXG5pbXBvcnQgZXZlbnRzIGZyb20gXCIuL2V2ZW50cy5qc1wiXG5pbXBvcnQgRm9ybURhdGFPYmplY3RpemVyIGZyb20gXCJmb3JtLWRhdGEtb2JqZWN0aXplclwiIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgc29ydC1pbXBvcnRzXG5pbXBvcnQgUnVuTGFzdCBmcm9tIFwiLi9ydW4tbGFzdC5qc1wiXG5pbXBvcnQgU2VyaWFsaXplciBmcm9tIFwiLi9zZXJpYWxpemVyLmpzXCJcbmltcG9ydCBTZXNzaW9uU3RhdHVzVXBkYXRlciBmcm9tIFwiLi9zZXNzaW9uLXN0YXR1cy11cGRhdGVyLmpzXCJcbmltcG9ydCBWYWxpZGF0aW9uRXJyb3IgZnJvbSBcIi4vdmFsaWRhdGlvbi1lcnJvci5qc1wiXG5pbXBvcnQge1ZhbGlkYXRpb25FcnJvcnN9IGZyb20gXCIuL3ZhbGlkYXRpb24tZXJyb3JzLmpzXCJcbmltcG9ydCBXZWJzb2NrZXRSZXF1ZXN0Q2xpZW50IGZyb20gXCIuL3dlYnNvY2tldC1yZXF1ZXN0LWNsaWVudC5qc1wiXG5cbi8qKiBAdHlwZWRlZiB7b2JqZWN0IHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWR9IENvbW1hbmRBcmd1bWVudFNjYWxhck9yT2JqZWN0ICovXG4vKiogQHR5cGVkZWYge0NvbW1hbmRBcmd1bWVudFNjYWxhck9yT2JqZWN0IHwgRmlsZSB8IEZvcm1EYXRhIHwgSFRNTEZvcm1FbGVtZW50IHwgQ29tbWFuZEFyZ3VtZW50U2NhbGFyT3JPYmplY3RbXX0gQ29tbWFuZEFyZ3VtZW50VmFsdWUgKi9cbi8qKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgQ29tbWFuZEFyZ3VtZW50VmFsdWU+fSBDb21tYW5kQXJndW1lbnRNYXAgKi9cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gQ29tbWFuZERlc2NyaXB0b3JcbiAqIEBwcm9wZXJ0eSB7Q29tbWFuZEFyZ3VtZW50VmFsdWV9IFthcmdzXVxuICogQHByb3BlcnR5IHtzdHJpbmd9IGNvbGxlY3Rpb25OYW1lXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY29tbWFuZFxuICogQHByb3BlcnR5IHtudW1iZXIgfCBzdHJpbmd9IFtwcmltYXJ5S2V5XVxuICogQHByb3BlcnR5IHtzdHJpbmd9IHR5cGVcbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBDb21tYW5kUmVxdWVzdE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2NhY2hlUmVzcG9uc2VdXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtmb3JjZUh0dHBdXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtpbnN0YW50XVxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IENvbW1hbmRSZXNwb25zZUVudmVsb3BlXG4gKiBAcHJvcGVydHkge0NvbW1hbmRBcmd1bWVudE1hcH0gZGF0YVxuICogQHByb3BlcnR5IHtcInN1Y2Nlc3NcIiB8IFwiZXJyb3JcIiB8IFwiZmFpbGVkXCJ9IHR5cGVcbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBDb21tYW5kc1JlcXVlc3RSZXNwb25zZVxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBDb21tYW5kUmVzcG9uc2VFbnZlbG9wZT59IHJlc3BvbnNlc1xuICogQHByb3BlcnR5IHtib29sZWFufSBbc3VjY2Vzc11cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbdHlwZV1cbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBGYWlsZWRDb21tYW5kUmVzcG9uc2VEYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gZXJyb3JfdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2Vycm9yc11cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IFt2YWxpZGF0aW9uX2Vycm9yc11cbiAqIEBwcm9wZXJ0eSB7Q29tbWFuZEFyZ3VtZW50TWFwfSBbbW9kZWxdXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBDb21tYW5kRGF0YVR5cGVcbiAqIEBwcm9wZXJ0eSB7QXBpTWFrZXJDb21tYW5kRXhlY3V0aW9ufSBjb21tYW5kRXhlY3V0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gc3RhY2tcbiAqL1xuXG4vKiogQHR5cGVkZWYge3tba2V5OiBzdHJpbmddOiB7W2tleTogc3RyaW5nXToge1trZXk6IHN0cmluZ106IHtba2V5OiBudW1iZXJdOiB7YXJnczogb2JqZWN0LCBwcmltYXJ5X2tleTogbnVtYmVyIHwgc3RyaW5nLCBpZDogbnVtYmVyfX19fX19IFBvb2xEYXRhVHlwZSAqL1xuXG5jb25zdCBzaGFyZWQgPSB7fVxuXG4vKiogQmF0Y2hlcyBjb21tYW5kIHN1Ym1pc3Npb25zIGFuZCBmbHVzaGVzIHRoZW0gb3ZlciBIVFRQIG9yIHdlYnNvY2tldHMuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlckNvbW1hbmRzUG9vbCB7XG4gIC8qKlxuICAgKiBBZGRzIGEgY29tbWFuZCB0byB0aGUgc2hhcmVkIG9yIG9uZS1vZmYgY29tbWFuZCBwb29sIGFuZCBzY2hlZHVsZXMgYSBmbHVzaC5cbiAgICogQHBhcmFtIHtDb21tYW5kRGVzY3JpcHRvcn0gZGF0YVxuICAgKiBAcGFyYW0ge0NvbW1hbmRSZXF1ZXN0T3B0aW9uc30gW2FyZ3NdXG4gICAqIEByZXR1cm5zIHtBcGlNYWtlckNvbW1hbmRFeGVjdXRpb259XG4gICAqL1xuICBzdGF0aWMgYWRkQ29tbWFuZChkYXRhLCBhcmdzID0ge30pIHtcbiAgICBsZXQgcG9vbFxuICAgIGNvbnN0IHVzZVdlYnNvY2tldFJlcXVlc3RzID0gQ29uZmlnLmdldFdlYnNvY2tldFJlcXVlc3RzKClcblxuICAgIGlmIChhcmdzLmluc3RhbnQgfHwgdXNlV2Vic29ja2V0UmVxdWVzdHMpIHtcbiAgICAgIHBvb2wgPSBuZXcgQXBpTWFrZXJDb21tYW5kc1Bvb2woKVxuICAgICAgcG9vbC5nbG9iYWxSZXF1ZXN0RGF0YSA9IHsuLi5BcGlNYWtlckNvbW1hbmRzUG9vbC5jdXJyZW50KCkuZ2xvYmFsUmVxdWVzdERhdGF9XG4gICAgICBwb29sLnJlcXVlc3RPcHRpb25zID0gey4uLmFyZ3N9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvb2wgPSBBcGlNYWtlckNvbW1hbmRzUG9vbC5jdXJyZW50KClcbiAgICB9XG5cbiAgICBjb25zdCBwcm9taXNlUmVzdWx0ID0gcG9vbC5hZGRDb21tYW5kKGRhdGEpXG5cbiAgICBpZiAoYXJncy5pbnN0YW50IHx8IHVzZVdlYnNvY2tldFJlcXVlc3RzKSB7XG4gICAgICBwb29sLmZsdXNoUnVuTGFzdC5ydW4oKVxuICAgIH0gZWxzZSB7XG4gICAgICBwb29sLmZsdXNoUnVuTGFzdC5xdWV1ZSgpXG4gICAgfVxuXG4gICAgcmV0dXJuIHByb21pc2VSZXN1bHRcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzaGFyZWQgY29tbWFuZCBwb29sIGluc3RhbmNlLlxuICAgKiBAcmV0dXJucyB7QXBpTWFrZXJDb21tYW5kc1Bvb2x9XG4gICAqL1xuICBzdGF0aWMgY3VycmVudCgpIHtcbiAgICBpZiAoIXNoYXJlZC5jdXJyZW50QXBpTWFrZXJDb21tYW5kc1Bvb2wpIHNoYXJlZC5jdXJyZW50QXBpTWFrZXJDb21tYW5kc1Bvb2wgPSBuZXcgQXBpTWFrZXJDb21tYW5kc1Bvb2woKVxuXG4gICAgcmV0dXJuIHNoYXJlZC5jdXJyZW50QXBpTWFrZXJDb21tYW5kc1Bvb2xcbiAgfVxuXG4gIC8qKiBGbHVzaGVzIHRoZSBzaGFyZWQgY29tbWFuZCBwb29sIGltbWVkaWF0ZWx5LiAqL1xuICBzdGF0aWMgZmx1c2goKSB7XG4gICAgQXBpTWFrZXJDb21tYW5kc1Bvb2wuY3VycmVudCgpLmZsdXNoKClcbiAgfVxuXG4gIC8qKiBJbml0aWFsaXplcyBvbmUgY29tbWFuZCBwb29sIGluc3RhbmNlIHdpdGggZW1wdHkgcXVldWVkIHN0YXRlLiAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmZsdXNoQ291bnQgPSAwXG5cbiAgICAvKiogQHR5cGUge1JlY29yZDxudW1iZXIsIENvbW1hbmREYXRhVHlwZT59ICovXG4gICAgdGhpcy5wb29sID0ge31cblxuICAgIC8qKiBAdHlwZSB7UG9vbERhdGFUeXBlfSAqL1xuICAgIHRoaXMucG9vbERhdGEgPSB7fVxuXG4gICAgdGhpcy5jdXJyZW50SWQgPSAxXG5cbiAgICAvKiogQHR5cGUge0NvbW1hbmRBcmd1bWVudE1hcH0gKi9cbiAgICB0aGlzLmdsb2JhbFJlcXVlc3REYXRhID0ge31cblxuICAgIC8qKiBAdHlwZSB7Q29tbWFuZFJlcXVlc3RPcHRpb25zfSAqL1xuICAgIHRoaXMucmVxdWVzdE9wdGlvbnMgPSB7fVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgb25lIGNvbW1hbmQgZXhlY3V0aW9uIHRvIHRoaXMgcG9vbCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtDb21tYW5kRGVzY3JpcHRvcn0gZGF0YVxuICAgKiBAcmV0dXJucyB7QXBpTWFrZXJDb21tYW5kRXhlY3V0aW9ufVxuICAgKi9cbiAgYWRkQ29tbWFuZChkYXRhKSB7XG4gICAgY29uc3Qgc3RhY2sgPSBFcnJvcigpLnN0YWNrXG4gICAgY29uc3QgaWQgPSB0aGlzLmN1cnJlbnRJZFxuICAgIGNvbnN0IGNvbW1hbmRFeGVjdXRpb24gPSBuZXcgQXBpTWFrZXJDb21tYW5kRXhlY3V0aW9uKClcbiAgICBjb25zdCBjb21tYW5kVHlwZSA9IGRhdGEudHlwZVxuICAgIGNvbnN0IGNvbW1hbmROYW1lID0gZGF0YS5jb21tYW5kXG4gICAgY29uc3QgY29sbGVjdGlvbk5hbWUgPSBkYXRhLmNvbGxlY3Rpb25OYW1lXG5cbiAgICB0aGlzLmN1cnJlbnRJZCArPSAxXG4gICAgdGhpcy5wb29sW2lkXSA9IHtjb21tYW5kRXhlY3V0aW9uLCBzdGFja31cblxuICAgIGlmICghdGhpcy5wb29sRGF0YVtjb21tYW5kVHlwZV0pIHRoaXMucG9vbERhdGFbY29tbWFuZFR5cGVdID0ge31cbiAgICBpZiAoIXRoaXMucG9vbERhdGFbY29tbWFuZFR5cGVdW2NvbGxlY3Rpb25OYW1lXSkgdGhpcy5wb29sRGF0YVtjb21tYW5kVHlwZV1bY29sbGVjdGlvbk5hbWVdID0ge31cbiAgICBpZiAoIXRoaXMucG9vbERhdGFbY29tbWFuZFR5cGVdW2NvbGxlY3Rpb25OYW1lXVtjb21tYW5kTmFtZV0pIHRoaXMucG9vbERhdGFbY29tbWFuZFR5cGVdW2NvbGxlY3Rpb25OYW1lXVtjb21tYW5kTmFtZV0gPSB7fVxuXG4gICAgbGV0IGFyZ3NcblxuICAgIGlmIChkYXRhLmFyZ3M/Lm5vZGVOYW1lID09IFwiRk9STVwiKSB7XG4gICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YShkYXRhLmFyZ3MpXG5cbiAgICAgIGFyZ3MgPSBGb3JtRGF0YU9iamVjdGl6ZXIudG9PYmplY3QoZm9ybURhdGEpXG4gICAgfSBlbHNlIGlmIChkYXRhLmFyZ3MgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgICAgYXJncyA9IEZvcm1EYXRhT2JqZWN0aXplci50b09iamVjdChkYXRhLmFyZ3MpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFyZ3MgPSBTZXJpYWxpemVyLnNlcmlhbGl6ZShkYXRhLmFyZ3MpXG4gICAgfVxuXG4gICAgdGhpcy5wb29sRGF0YVtjb21tYW5kVHlwZV1bY29sbGVjdGlvbk5hbWVdW2NvbW1hbmROYW1lXVtpZF0gPSB7XG4gICAgICBhcmdzLFxuICAgICAgcHJpbWFyeV9rZXk6IGRhdGEucHJpbWFyeUtleSxcbiAgICAgIGlkXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbW1hbmRFeGVjdXRpb25cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7bnVtYmVyfSAqL1xuICBjb21tYW5kc0NvdW50KCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnBvb2wpLmxlbmd0aFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLnVybFxuICAgKiBAcGFyYW0ge0NvbW1hbmRTdWJtaXREYXRhfSBhcmdzLmNvbW1hbmRTdWJtaXREYXRhXG4gICAqIEBwYXJhbSB7QXBpTWFrZXJDb21tYW5kRXhlY3V0aW9ufSBbYXJncy5jb21tYW5kRXhlY3V0aW9uXVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxDb21tYW5kc1JlcXVlc3RSZXNwb25zZT59XG4gICAqL1xuICBhc3luYyBzZW5kUmVxdWVzdCh7Y29tbWFuZEV4ZWN1dGlvbiwgY29tbWFuZFN1Ym1pdERhdGEsIHVybH0pIHtcbiAgICBpZiAoQ29uZmlnLmdldFdlYnNvY2tldFJlcXVlc3RzKCkgJiYgIXRoaXMucmVxdWVzdE9wdGlvbnMuZm9yY2VIdHRwICYmIGNvbW1hbmRTdWJtaXREYXRhLmdldEZpbGVzQ291bnQoKSA9PSAwKSB7XG4gICAgICByZXR1cm4gLyoqIEB0eXBlIHtQcm9taXNlPENvbW1hbmRzUmVxdWVzdFJlc3BvbnNlPn0gKi8gKFdlYnNvY2tldFJlcXVlc3RDbGllbnQuY3VycmVudCgpLnBlcmZvcm0oe1xuICAgICAgICBjYWNoZVJlc3BvbnNlOiB0aGlzLnJlcXVlc3RPcHRpb25zLmNhY2hlUmVzcG9uc2UsXG4gICAgICAgIGdsb2JhbDogdGhpcy5nbG9iYWxSZXF1ZXN0RGF0YSxcbiAgICAgICAgb25Mb2c6IChtZXNzYWdlKSA9PiBjb21tYW5kRXhlY3V0aW9uPy5hZGRMb2cobWVzc2FnZSksXG4gICAgICAgIG9uUHJvZ3Jlc3M6IChwcm9ncmVzc0RhdGEpID0+IGNvbW1hbmRFeGVjdXRpb24/LnNldFByb2dyZXNzKHByb2dyZXNzRGF0YSksXG4gICAgICAgIG9uUmVjZWl2ZWQ6IChyZWNlaXZlZERhdGEpID0+IGNvbW1hbmRFeGVjdXRpb24/LnNldFJlY2VpdmVkKHJlY2VpdmVkRGF0YSksXG4gICAgICAgIHJlcXVlc3Q6IGNvbW1hbmRTdWJtaXREYXRhLmdldEpzb25EYXRhKClcbiAgICAgIH0pKVxuICAgIH1cblxuICAgIGxldCByZXNwb25zZVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAzOyBpKyspIHtcbiAgICAgIGlmIChjb21tYW5kU3VibWl0RGF0YS5nZXRGaWxlc0NvdW50KCkgPiAwKSB7XG4gICAgICAgIHJlc3BvbnNlID0gYXdhaXQgQXBpLnJlcXVlc3RMb2NhbCh7cGF0aDogdXJsLCBtZXRob2Q6IFwiUE9TVFwiLCByYXdEYXRhOiBjb21tYW5kU3VibWl0RGF0YS5nZXRGb3JtRGF0YSgpfSkgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1hd2FpdC1pbi1sb29wXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNwb25zZSA9IGF3YWl0IEFwaS5yZXF1ZXN0TG9jYWwoe3BhdGg6IHVybCwgbWV0aG9kOiBcIlBPU1RcIiwgZGF0YTogY29tbWFuZFN1Ym1pdERhdGEuZ2V0SnNvbkRhdGEoKX0pIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgICAgfVxuXG4gICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyA9PT0gZmFsc2UgJiYgcmVzcG9uc2UudHlwZSA9PSBcImludmFsaWRfYXV0aGVudGljaXR5X3Rva2VuXCIpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJJbnZhbGlkIGF1dGhlbnRpY2l0eSB0b2tlbiAtIHRyeSBhZ2FpblwiKVxuICAgICAgICBhd2FpdCBTZXNzaW9uU3RhdHVzVXBkYXRlci5jdXJyZW50KCkudXBkYXRlU2Vzc2lvblN0YXR1cygpIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgICAgICBjb250aW51ZSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAvKiogQHR5cGUge0NvbW1hbmRzUmVxdWVzdFJlc3BvbnNlfSAqLyAocmVzcG9uc2UpXG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGRudCBzdWNjZXNzZnVsbHkgZXhlY3V0ZSByZXF1ZXN0XCIpXG4gIH1cblxuICAvKiogU2VuZHMgdGhlIGN1cnJlbnRseSBxdWV1ZWQgY29tbWFuZHMgYW5kIHJlc29sdmVzIG9yIHJlamVjdHMgdGhlaXIgZXhlY3V0aW9ucy4gKi9cbiAgZmx1c2ggPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKHRoaXMuY29tbWFuZHNDb3VudCgpID09IDApIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRQb29sID0gdGhpcy5wb29sXG4gICAgY29uc3QgY3VycmVudFBvb2xEYXRhID0gdGhpcy5wb29sRGF0YVxuXG4gICAgdGhpcy5wb29sID0ge31cbiAgICB0aGlzLnBvb2xEYXRhID0ge31cbiAgICB0aGlzLmZsdXNoQ291bnQrK1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN1Ym1pdERhdGEgPSB7cG9vbDogY3VycmVudFBvb2xEYXRhfVxuXG4gICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5nbG9iYWxSZXF1ZXN0RGF0YSkubGVuZ3RoID4gMClcbiAgICAgICAgc3VibWl0RGF0YS5nbG9iYWwgPSB0aGlzLmdsb2JhbFJlcXVlc3REYXRhXG5cbiAgICAgIGNvbnN0IGNvbW1hbmRTdWJtaXREYXRhID0gbmV3IENvbW1hbmRTdWJtaXREYXRhKHN1Ym1pdERhdGEpXG4gICAgICBjb25zdCB1cmwgPSBcIi9hcGlfbWFrZXIvY29tbWFuZHNcIlxuICAgICAgY29uc3QgY29tbWFuZEV4ZWN1dGlvbiA9IE9iamVjdC52YWx1ZXMoY3VycmVudFBvb2wpWzBdPy5jb21tYW5kRXhlY3V0aW9uXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuc2VuZFJlcXVlc3Qoe2NvbW1hbmRFeGVjdXRpb24sIGNvbW1hbmRTdWJtaXREYXRhLCB1cmx9KVxuXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChPYmplY3Qua2V5cyhyZXNwb25zZS5yZXNwb25zZXMpLm1hcChhc3luYyhjb21tYW5kSWQpID0+IHtcbiAgICAgICAgY29uc3QgY29tbWFuZFJlc3BvbnNlID0gcmVzcG9uc2UucmVzcG9uc2VzW2NvbW1hbmRJZF1cbiAgICAgICAgY29uc3QgY29tbWFuZFJlc3BvbnNlRGF0YSA9IERlc2VyaWFsaXplci5wYXJzZShjb21tYW5kUmVzcG9uc2UuZGF0YSlcbiAgICAgICAgY29uc3QgY29tbWFuZERhdGEgPSBjdXJyZW50UG9vbFtwYXJzZUludChjb21tYW5kSWQsIDEwKV1cbiAgICAgICAgY29uc3QgcmVzcG9uc2VUeXBlID0gY29tbWFuZFJlc3BvbnNlLnR5cGVcblxuICAgICAgICBpZiAoY29tbWFuZFJlc3BvbnNlRGF0YSAmJiB0eXBlb2YgY29tbWFuZFJlc3BvbnNlRGF0YSA9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgY29uc3QgYnVnUmVwb3J0VXJsID0gZGlnKGNvbW1hbmRSZXNwb25zZURhdGEsIFwiYnVnX3JlcG9ydF91cmxcIilcblxuICAgICAgICAgIGlmIChidWdSZXBvcnRVcmwpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBCdWcgcmVwb3J0IFVSTDogJHtidWdSZXBvcnRVcmx9YClcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzcG9uc2VUeXBlID09IFwic3VjY2Vzc1wiKSB7XG4gICAgICAgICAgY29tbWFuZERhdGEuY29tbWFuZEV4ZWN1dGlvbi5yZXNvbHZlKGNvbW1hbmRSZXNwb25zZURhdGEpXG4gICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2VUeXBlID09IFwiZXJyb3JcIikge1xuICAgICAgICAgIHRoaXMucmVqZWN0V2l0aENhbGxlclN0YWNrKGNvbW1hbmREYXRhLCBuZXcgQ3VzdG9tRXJyb3IoXCJDb21tYW5kIGVycm9yXCIsIHtyZXNwb25zZTogY29tbWFuZFJlc3BvbnNlRGF0YX0pKVxuICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlVHlwZSA9PSBcImZhaWxlZFwiKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVGYWlsZWRSZXNwb25zZShjb21tYW5kRGF0YSwgY29tbWFuZFJlc3BvbnNlRGF0YSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuaGFuZGxlZCByZXNwb25zZSB0eXBlOiAke3Jlc3BvbnNlVHlwZX1gKVxuICAgICAgICB9XG4gICAgICB9KSlcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5mbHVzaENvdW50LS1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtDb21tYW5kRGF0YVR5cGV9IGNvbW1hbmREYXRhXG4gICAqIEBwYXJhbSB7RmFpbGVkQ29tbWFuZFJlc3BvbnNlRGF0YX0gY29tbWFuZFJlc3BvbnNlRGF0YVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIGhhbmRsZUZhaWxlZFJlc3BvbnNlKGNvbW1hbmREYXRhLCBjb21tYW5kUmVzcG9uc2VEYXRhKSB7XG4gICAgYXdhaXQgdGhpcy5yZWZyZXNoU2Vzc2lvblN0YXR1c0Zvck5vQWNjZXNzRXJyb3IoY29tbWFuZFJlc3BvbnNlRGF0YSlcblxuICAgIGxldCBlcnJvclxuXG4gICAgaWYgKGNvbW1hbmRSZXNwb25zZURhdGEuZXJyb3JfdHlwZSA9PSBcImRlc3Ryb3lfZXJyb3JcIikge1xuICAgICAgZXJyb3IgPSBuZXcgRGVzdHJveUVycm9yKFwiRGVzdHJveSBmYWlsZWRcIiwge3Jlc3BvbnNlOiBjb21tYW5kUmVzcG9uc2VEYXRhfSlcbiAgICB9IGVsc2UgaWYgKGNvbW1hbmRSZXNwb25zZURhdGEuZXJyb3JfdHlwZSA9PSBcInZhbGlkYXRpb25fZXJyb3JcIikge1xuICAgICAgY29uc3QgdmFsaWRhdGlvbkVycm9ycyA9IG5ldyBWYWxpZGF0aW9uRXJyb3JzKHtcbiAgICAgICAgbW9kZWw6IGRpZ2coY29tbWFuZFJlc3BvbnNlRGF0YSwgXCJtb2RlbFwiKSxcbiAgICAgICAgdmFsaWRhdGlvbkVycm9yczogZGlnZyhjb21tYW5kUmVzcG9uc2VEYXRhLCBcInZhbGlkYXRpb25fZXJyb3JzXCIpXG4gICAgICB9KVxuICAgICAgZXJyb3IgPSBuZXcgVmFsaWRhdGlvbkVycm9yKHZhbGlkYXRpb25FcnJvcnMsIHtyZXNwb25zZTogY29tbWFuZFJlc3BvbnNlRGF0YX0pXG5cbiAgICAgIGV2ZW50cy5lbWl0KFwib25WYWxpZGF0aW9uRXJyb3JzXCIsIHZhbGlkYXRpb25FcnJvcnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGNvbW1hbmRSZXNwb25zZURhdGEuZXJyb3JzID8gdW5kZWZpbmVkIDogXCJDb21tYW5kIGZhaWxlZFwiXG5cbiAgICAgIGVycm9yID0gbmV3IEN1c3RvbUVycm9yKGVycm9yTWVzc2FnZSwge3Jlc3BvbnNlOiBjb21tYW5kUmVzcG9uc2VEYXRhfSlcbiAgICB9XG5cbiAgICB0aGlzLnJlamVjdFdpdGhDYWxsZXJTdGFjayhjb21tYW5kRGF0YSwgZXJyb3IpXG4gIH1cblxuICAvKipcbiAgICogUmVqZWN0cyB0aGUgY29tbWFuZCB3aXRoIHRoZSBnaXZlbiBlcnJvciwgc3BsaWNpbmcgdGhlIGNhbGxlcidzIHN0YWNrIChjYXB0dXJlZCBzeW5jaHJvbm91c2x5IGluIGFkZENvbW1hbmQpIG9udG8gZXJyb3Iuc3RhY2suXG4gICAqIE5lZWRlZCBiZWNhdXNlIGVycm9yLnN0YWNrIGlzIGZyb3plbiBhdCBjb25zdHJ1Y3Rpb24gdGltZSBpbnNpZGUgZmx1c2goKSdzIG1pY3JvdGFzayBhbmQgdGhlcmVmb3JlIGxvc2VzIHRoZSBjYWxsZXIncyBmcmFtZXMuXG4gICAqIEBwYXJhbSB7Q29tbWFuZERhdGFUeXBlfSBjb21tYW5kRGF0YVxuICAgKiBAcGFyYW0ge0Vycm9yfSBlcnJvclxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHJlamVjdFdpdGhDYWxsZXJTdGFjayhjb21tYW5kRGF0YSwgZXJyb3IpIHtcbiAgICBpZiAoY29tbWFuZERhdGEuc3RhY2spIHtcbiAgICAgIC8vIFY4IHByZWZpeGVzIFwiRXJyb3JcXG5cIiBhcyBhIGhlYWRlcjsgSlNDL1NwaWRlck1vbmtleSBzdGFja3Mgc3RhcnQgZGlyZWN0bHkgd2l0aCBhIGZyYW1lLlxuICAgICAgY29uc3QgY2FsbGVyRnJhbWVzID0gY29tbWFuZERhdGEuc3RhY2suc3RhcnRzV2l0aChcIkVycm9yXCIpXG4gICAgICAgID8gY29tbWFuZERhdGEuc3RhY2tcbiAgICAgICAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAgICAgICAuc2xpY2UoMSlcbiAgICAgICAgICAuam9pbihcIlxcblwiKVxuICAgICAgICA6IGNvbW1hbmREYXRhLnN0YWNrXG5cbiAgICAgIGlmIChjYWxsZXJGcmFtZXMpIHtcbiAgICAgICAgZXJyb3Iuc3RhY2sgPSBgJHtlcnJvci5zdGFjayA/PyBcIlwifVxcbiR7Y2FsbGVyRnJhbWVzfWBcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21tYW5kRGF0YS5jb21tYW5kRXhlY3V0aW9uLnJlamVjdChlcnJvcilcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0ZhaWxlZENvbW1hbmRSZXNwb25zZURhdGF9IGNvbW1hbmRSZXNwb25zZURhdGFcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyByZWZyZXNoU2Vzc2lvblN0YXR1c0Zvck5vQWNjZXNzRXJyb3IoY29tbWFuZFJlc3BvbnNlRGF0YSkge1xuICAgIGlmIChjb21tYW5kUmVzcG9uc2VEYXRhLmVycm9yX3R5cGUgIT0gXCJub3RfZm91bmRfb3Jfbm9fYWNjZXNzXCIpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHNpZ25lZEluU2NvcGUgPSBEZXZpc2VcbiAgICAgIC5yZWdpc3RlcmVkU2NvcGVzKClcbiAgICAgIC5maW5kKChzY29wZSkgPT4gRGV2aXNlLmN1cnJlbnQoKS5oYXNDdXJyZW50U2NvcGUoc2NvcGUpIHx8IERldmlzZS5jdXJyZW50KCkuaGFzR2xvYmFsQ3VycmVudFNjb3BlKHNjb3BlKSlcblxuICAgIGlmICghc2lnbmVkSW5TY29wZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgYXdhaXQgU2Vzc2lvblN0YXR1c1VwZGF0ZXIuY3VycmVudCgpLnVwZGF0ZVNlc3Npb25TdGF0dXMoKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSB3aGlsZSBvbmUgb3IgbW9yZSBmbHVzaGVzIGFyZSBzdGlsbCBpbiBwcm9ncmVzcy5cbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqL1xuICBpc0FjdGl2ZSgpIHtcbiAgICBpZiAodGhpcy5jb21tYW5kc0NvdW50KCkgPiAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmICh0aGlzLmZsdXNoQ291bnQgPiAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgZmx1c2hSdW5MYXN0ID0gbmV3IFJ1bkxhc3QodGhpcy5mbHVzaClcbn1cbiJdfQ==
@@ -1,3 +1,9 @@
1
- /** Compose wrapper HOCs right-to-left. */
2
- export default function apiMakerCompose(wrappedComponentClass: any, ...funcs: any[]): any;
1
+ /**
2
+ * Compose wrapper HOCs right-to-left.
3
+ * @template TComponent
4
+ * @param {TComponent} wrappedComponentClass
5
+ * @param {...((componentClass: TComponent) => TComponent)} funcs
6
+ * @returns {TComponent}
7
+ */
8
+ export default function apiMakerCompose<TComponent>(wrappedComponentClass: TComponent, ...funcs: ((componentClass: TComponent) => TComponent)[]): TComponent;
3
9
  //# sourceMappingURL=compose.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compose.d.ts","sourceRoot":"/src/","sources":["compose.js"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,0FAUC"}
1
+ {"version":3,"file":"compose.d.ts","sourceRoot":"/src/","sources":["compose.js"],"names":[],"mappings":"AACA;;;;;;GAMG;AACH,wCALa,UAAU,yBACZ,UAAU,YACP,CAAC,CAAC,cAAc,EAAE,UAAU,KAAK,UAAU,CAAC,EAAA,GAC7C,UAAU,CAYtB"}
package/build/compose.js CHANGED
@@ -1,4 +1,11 @@
1
- /** Compose wrapper HOCs right-to-left. */
1
+ // @ts-check
2
+ /**
3
+ * Compose wrapper HOCs right-to-left.
4
+ * @template TComponent
5
+ * @param {TComponent} wrappedComponentClass
6
+ * @param {...((componentClass: TComponent) => TComponent)} funcs
7
+ * @returns {TComponent}
8
+ */
2
9
  export default function apiMakerCompose(wrappedComponentClass, ...funcs) {
3
10
  if (!wrappedComponentClass)
4
11
  throw new Error("No 'wrappedComponentClass' given");
@@ -8,4 +15,4 @@ export default function apiMakerCompose(wrappedComponentClass, ...funcs) {
8
15
  }
9
16
  return currentComponentClass;
10
17
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zZS5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsiY29tcG9zZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQ0FBMEM7QUFDMUMsTUFBTSxDQUFDLE9BQU8sVUFBVSxlQUFlLENBQUMscUJBQXFCLEVBQUUsR0FBRyxLQUFLO0lBQ3JFLElBQUksQ0FBQyxxQkFBcUI7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUE7SUFFL0UsSUFBSSxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQTtJQUVqRCxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLHFCQUFxQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFFRCxPQUFPLHFCQUFxQixDQUFBO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQ29tcG9zZSB3cmFwcGVyIEhPQ3MgcmlnaHQtdG8tbGVmdC4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFwaU1ha2VyQ29tcG9zZSh3cmFwcGVkQ29tcG9uZW50Q2xhc3MsIC4uLmZ1bmNzKSB7XG4gIGlmICghd3JhcHBlZENvbXBvbmVudENsYXNzKSB0aHJvdyBuZXcgRXJyb3IoXCJObyAnd3JhcHBlZENvbXBvbmVudENsYXNzJyBnaXZlblwiKVxuXG4gIGxldCBjdXJyZW50Q29tcG9uZW50Q2xhc3MgPSB3cmFwcGVkQ29tcG9uZW50Q2xhc3NcblxuICBmb3IgKGNvbnN0IGZ1bmMgb2YgZnVuY3MpIHtcbiAgICBjdXJyZW50Q29tcG9uZW50Q2xhc3MgPSBmdW5jKGN1cnJlbnRDb21wb25lbnRDbGFzcylcbiAgfVxuXG4gIHJldHVybiBjdXJyZW50Q29tcG9uZW50Q2xhc3Ncbn1cbiJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zZS5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsiY29tcG9zZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBQ1o7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE9BQU8sVUFBVSxlQUFlLENBQUMscUJBQXFCLEVBQUUsR0FBRyxLQUFLO0lBQ3JFLElBQUksQ0FBQyxxQkFBcUI7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUE7SUFFL0UsSUFBSSxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQTtJQUVqRCxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLHFCQUFxQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFFRCxPQUFPLHFCQUFxQixDQUFBO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcbi8qKlxuICogQ29tcG9zZSB3cmFwcGVyIEhPQ3MgcmlnaHQtdG8tbGVmdC5cbiAqIEB0ZW1wbGF0ZSBUQ29tcG9uZW50XG4gKiBAcGFyYW0ge1RDb21wb25lbnR9IHdyYXBwZWRDb21wb25lbnRDbGFzc1xuICogQHBhcmFtIHsuLi4oKGNvbXBvbmVudENsYXNzOiBUQ29tcG9uZW50KSA9PiBUQ29tcG9uZW50KX0gZnVuY3NcbiAqIEByZXR1cm5zIHtUQ29tcG9uZW50fVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhcGlNYWtlckNvbXBvc2Uod3JhcHBlZENvbXBvbmVudENsYXNzLCAuLi5mdW5jcykge1xuICBpZiAoIXdyYXBwZWRDb21wb25lbnRDbGFzcykgdGhyb3cgbmV3IEVycm9yKFwiTm8gJ3dyYXBwZWRDb21wb25lbnRDbGFzcycgZ2l2ZW5cIilcblxuICBsZXQgY3VycmVudENvbXBvbmVudENsYXNzID0gd3JhcHBlZENvbXBvbmVudENsYXNzXG5cbiAgZm9yIChjb25zdCBmdW5jIG9mIGZ1bmNzKSB7XG4gICAgY3VycmVudENvbXBvbmVudENsYXNzID0gZnVuYyhjdXJyZW50Q29tcG9uZW50Q2xhc3MpXG4gIH1cblxuICByZXR1cm4gY3VycmVudENvbXBvbmVudENsYXNzXG59XG4iXX0=
package/build/config.d.ts CHANGED
@@ -1,11 +1,31 @@
1
1
  export default apiMakerConfig;
2
+ export type BreakpointDefinition = [name: string, minWidth: number];
3
+ export type CurrencyOption = [label: string, code: string];
4
+ export type RouteMap = Record<string, object>;
5
+ export type RouteDefinitions = {
6
+ routes: Array<{
7
+ name: string;
8
+ path: string;
9
+ }>;
10
+ };
11
+ export type ConfigEvents = {
12
+ emit: (eventName: string, payload: {
13
+ oldValue: ConfigValue;
14
+ newValue: ConfigValue;
15
+ }) => void;
16
+ };
17
+ export type ConfigValue = BreakpointDefinition[] | CurrencyOption[] | RouteMap | RouteDefinitions | EventEmitter | boolean | number | object | string | undefined;
2
18
  declare const apiMakerConfig: ApiMakerConfig;
3
- /** ApiMakerConfig. */
19
+ import { EventEmitter } from "eventemitter3";
20
+ /** Stores globally configured Api Maker integration hooks and runtime dependencies. */
4
21
  declare class ApiMakerConfig {
5
22
  global: any;
6
23
  events: EventEmitter<string | symbol, any>;
7
- /** getEvents. */
8
- getEvents(): EventEmitter<string | symbol, any>;
24
+ /**
25
+ * Returns the event emitter used for config change notifications.
26
+ * @returns {ConfigEvents}
27
+ */
28
+ getEvents(): ConfigEvents;
9
29
  /** @returns {import("history").BrowserHistory} */
10
30
  getHistory(): import("history").BrowserHistory;
11
31
  /** @returns {string} */
@@ -14,31 +34,27 @@ declare class ApiMakerConfig {
14
34
  getCableUrl(): string | undefined;
15
35
  /**
16
36
  * @param {string | undefined} _newValue
17
- * @returns {void}
18
37
  */
19
38
  setCableUrl(_newValue: string | undefined): void;
20
39
  /** @returns {boolean | undefined} */
21
40
  getWebsocketRequests(): boolean | undefined;
22
41
  /**
23
42
  * @param {boolean | undefined} _newValue
24
- * @returns {void}
25
43
  */
26
44
  setWebsocketRequests(_newValue: boolean | undefined): void;
27
- /** @returns {any} */
28
- getCurrenciesCollection(): any;
29
- /** @returns {any} */
30
- getModal(): any;
31
- /** @returns {Record<string, any>} */
32
- getRouteDefinitions(): Record<string, any>;
33
- /** @returns {Record<string, any>} */
34
- getRoutes(): Record<string, any>;
45
+ /** @returns {Array<CurrencyOption>} */
46
+ getCurrenciesCollection(): Array<CurrencyOption>;
47
+ /** @returns {object} */
48
+ getModal(): object;
49
+ /** @returns {RouteDefinitions} */
50
+ getRouteDefinitions(): RouteDefinitions;
51
+ /** @returns {RouteMap} */
52
+ getRoutes(): RouteMap;
35
53
  /** @returns {boolean} */
36
54
  getUseHtmlForm(): boolean;
37
55
  /**
38
56
  * @param {boolean} _newValue
39
- * @returns {void}
40
57
  */
41
58
  setUseHtmlForm(_newValue: boolean): void;
42
59
  }
43
- import { EventEmitter } from "eventemitter3";
44
60
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"/src/","sources":["config.js"],"names":[],"mappings":";AAoHA,6CAA2C;AAvF3C,sBAAsB;AACtB;IAKI,YAA6C;IAC7C,2CAAgC;IAGlC,iBAAiB;IACjB,gDAAkC;IAElC,kDAAkD;IAClD,cADc,OAAO,SAAS,EAAE,cAAc,CACkB;IAEhE,wBAAwB;IACxB,WADc,MAAM,CACsC;IAE1D,oCAAoC;IACpC,eADc,MAAM,GAAG,SAAS,CACkC;IAElE;;;OAGG;IACH,uBAHW,MAAM,GAAG,SAAS,GAChB,IAAI,CAE0D;IAE3E,qCAAqC;IACrC,wBADc,OAAO,GAAG,SAAS,CACmD;IAEpF;;;OAGG;IACH,gCAHW,OAAO,GAAG,SAAS,GACjB,IAAI,CAE4E;IAE7F,qBAAqB;IACrB,2BADc,GAAG,CACyE;IAE1F,qBAAqB;IACrB,YADc,GAAG,CAC2C;IAE5D,qCAAqC;IACrC,uBADc,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACiD;IAElF,qCAAqC;IACrC,aADc,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAC6B;IAE9D,yBAAyB;IACzB,kBADc,OAAO,CACmD;IAExE;;;OAGG;IACH,0BAHW,OAAO,GACL,IAAI,CAEgE;CAClF;6BAtF0B,eAAe"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"/src/","sources":["config.js"],"names":[],"mappings":";mCAIc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;6BAChC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;uBAC7B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;+BACtB;IAAC,MAAM,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAAA;CAAC;2BAE9C;IAAC,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;QAAC,QAAQ,EAAE,WAAW,CAAC;QAAC,QAAQ,EAAE,WAAW,CAAA;KAAC,KAAK,IAAI,CAAA;CAAC;0BAG5F,oBAAoB,EAAE,GAAG,cAAc,EAAE,GAAG,QAAQ,GAAG,gBAAgB,GAAG,YAAY,GAClG,OAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS;AA8InD,6CAA2C;6BA1JhB,eAAe;AAiD1C,uFAAuF;AACvF;IAKI,YAA6C;IAC7C,2CAAgC;IAGlC;;;OAGG;IACH,aAFa,YAAY,CAES;IAElC,kDAAkD;IAClD,cADc,OAAO,SAAS,EAAE,cAAc,CAG7C;IAED,wBAAwB;IACxB,WADc,MAAM,CAGnB;IAED,oCAAoC;IACpC,eADc,MAAM,GAAG,SAAS,CAG/B;IAED;;OAEG;IACH,uBAFW,MAAM,GAAG,SAAS,QAEyC;IAEtE,qCAAqC;IACrC,wBADc,OAAO,GAAG,SAAS,CAGhC;IAED;;OAEG;IACH,gCAFW,OAAO,GAAG,SAAS,QAE0D;IAExF,uCAAuC;IACvC,2BADc,KAAK,CAAC,cAAc,CAAC,CAGlC;IAED,wBAAwB;IACxB,YADc,MAAM,CAGnB;IAED,kCAAkC;IAClC,uBADc,gBAAgB,CAG7B;IAED,0BAA0B;IAC1B,aADc,QAAQ,CAGrB;IAED,yBAAyB;IACzB,kBADc,OAAO,CAGpB;IAED;;OAEG;IACH,0BAFW,OAAO,QAE0D;CAC7E"}
package/build/config.js CHANGED
@@ -1,5 +1,17 @@
1
+ // @ts-check
1
2
  import { EventEmitter } from "eventemitter3";
2
3
  import * as inflection from "inflection"; // eslint-disable-line sort-imports
4
+ /** @typedef {[name: string, minWidth: number]} BreakpointDefinition */
5
+ /** @typedef {[label: string, code: string]} CurrencyOption */
6
+ /** @typedef {Record<string, object>} RouteMap */
7
+ /** @typedef {{routes: Array<{name: string, path: string}>}} RouteDefinitions */
8
+ /**
9
+ * @typedef {{emit: (eventName: string, payload: {oldValue: ConfigValue, newValue: ConfigValue}) => void}} ConfigEvents
10
+ */
11
+ /**
12
+ * @typedef {BreakpointDefinition[] | CurrencyOption[] | RouteMap | RouteDefinitions | EventEmitter |
13
+ * boolean | number | object | string | undefined} ConfigValue
14
+ */
3
15
  const accessors = {
4
16
  breakpoints: {
5
17
  default: [
@@ -25,50 +37,75 @@ const accessors = {
25
37
  useHtmlForm: { default: false, required: false },
26
38
  websocketRequests: { required: false }
27
39
  };
28
- /** ApiMakerConfig. */
40
+ /**
41
+ * @param {string} methodName
42
+ * @returns {never}
43
+ */
44
+ const apiMakerConfigNotImplemented = (methodName) => {
45
+ throw new Error(`'${methodName}' not implemented`);
46
+ };
47
+ /** Stores globally configured Api Maker integration hooks and runtime dependencies. */
29
48
  class ApiMakerConfig {
30
- /** Constructor. */
49
+ /** Initializes the shared config state and change emitter. */
31
50
  constructor() {
32
51
  if (!globalThis.apiMakerConfigGlobal)
33
52
  globalThis.apiMakerConfigGlobal = {};
34
53
  this.global = globalThis.apiMakerConfigGlobal;
35
54
  this.events = new EventEmitter();
36
55
  }
37
- /** getEvents. */
56
+ /**
57
+ * Returns the event emitter used for config change notifications.
58
+ * @returns {ConfigEvents}
59
+ */
38
60
  getEvents() { return this.events; }
39
61
  /** @returns {import("history").BrowserHistory} */
40
- getHistory() { throw new Error("'getHistory' not implemented"); }
62
+ getHistory() {
63
+ return apiMakerConfigNotImplemented("getHistory");
64
+ }
41
65
  /** @returns {string} */
42
- getHost() { throw new Error("'getHost' not implemented"); }
66
+ getHost() {
67
+ return apiMakerConfigNotImplemented("getHost");
68
+ }
43
69
  /** @returns {string | undefined} */
44
- getCableUrl() { throw new Error("'getCableUrl' not implemented"); }
70
+ getCableUrl() {
71
+ return apiMakerConfigNotImplemented("getCableUrl");
72
+ }
45
73
  /**
46
74
  * @param {string | undefined} _newValue
47
- * @returns {void}
48
75
  */
49
- setCableUrl(_newValue) { throw new Error("'setCableUrl' not implemented"); }
76
+ setCableUrl(_newValue) { apiMakerConfigNotImplemented("setCableUrl"); }
50
77
  /** @returns {boolean | undefined} */
51
- getWebsocketRequests() { throw new Error("'getWebsocketRequests' not implemented"); }
78
+ getWebsocketRequests() {
79
+ return apiMakerConfigNotImplemented("getWebsocketRequests");
80
+ }
52
81
  /**
53
82
  * @param {boolean | undefined} _newValue
54
- * @returns {void}
55
83
  */
56
- setWebsocketRequests(_newValue) { throw new Error("'setWebsocketRequests' not implemented"); }
57
- /** @returns {any} */
58
- getCurrenciesCollection() { throw new Error("'getCurrenciesCollection' not implemented"); }
59
- /** @returns {any} */
60
- getModal() { throw new Error("'getModal' not implemented"); }
61
- /** @returns {Record<string, any>} */
62
- getRouteDefinitions() { throw new Error("'getRouteDefinitions' not implemented"); }
63
- /** @returns {Record<string, any>} */
64
- getRoutes() { throw new Error("'getRoutes' not implemented"); }
84
+ setWebsocketRequests(_newValue) { apiMakerConfigNotImplemented("setWebsocketRequests"); }
85
+ /** @returns {Array<CurrencyOption>} */
86
+ getCurrenciesCollection() {
87
+ return apiMakerConfigNotImplemented("getCurrenciesCollection");
88
+ }
89
+ /** @returns {object} */
90
+ getModal() {
91
+ return apiMakerConfigNotImplemented("getModal");
92
+ }
93
+ /** @returns {RouteDefinitions} */
94
+ getRouteDefinitions() {
95
+ return apiMakerConfigNotImplemented("getRouteDefinitions");
96
+ }
97
+ /** @returns {RouteMap} */
98
+ getRoutes() {
99
+ return apiMakerConfigNotImplemented("getRoutes");
100
+ }
65
101
  /** @returns {boolean} */
66
- getUseHtmlForm() { throw new Error("'getUseHtmlForm' not implemented"); }
102
+ getUseHtmlForm() {
103
+ return apiMakerConfigNotImplemented("getUseHtmlForm");
104
+ }
67
105
  /**
68
106
  * @param {boolean} _newValue
69
- * @returns {void}
70
107
  */
71
- setUseHtmlForm(_newValue) { throw new Error("'setUseHtmlForm' not implemented"); }
108
+ setUseHtmlForm(_newValue) { apiMakerConfigNotImplemented("setUseHtmlForm"); }
72
109
  }
73
110
  for (const accessorName in accessors) {
74
111
  const accessorData = accessors[accessorName];
@@ -95,4 +132,4 @@ for (const accessorName in accessors) {
95
132
  }
96
133
  const apiMakerConfig = new ApiMakerConfig();
97
134
  export default apiMakerConfig;
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJjb25maWcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQSxDQUFDLG1DQUFtQztBQUU1RSxNQUFNLFNBQVMsR0FBRztJQUNoQixXQUFXLEVBQUU7UUFDWCxPQUFPLEVBQUU7WUFDUCxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7WUFDYixDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7WUFDWixDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7WUFDWCxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7WUFDWCxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7WUFDWCxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7U0FDVjtRQUNELFFBQVEsRUFBRSxJQUFJO0tBQ2Y7SUFDRCxRQUFRLEVBQUUsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDO0lBQzFCLG9CQUFvQixFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztJQUN0QyxPQUFPLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO0lBQ3pCLElBQUksRUFBRSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUM7SUFDdkIsSUFBSSxFQUFFLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBQztJQUN2QixNQUFNLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO0lBQ3hCLEtBQUssRUFBRSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUM7SUFDeEIsVUFBVSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztJQUM1QixNQUFNLEVBQUUsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDO0lBQ3pCLGdCQUFnQixFQUFFLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBQztJQUNuQyxXQUFXLEVBQUUsRUFBQyxPQUFPLEVBQUUsS0FBSyxF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QUFTLENBQUMsTUFBTSxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsVUFBVSxHQUFHLElBQUk7UUFDckUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVDLElBQUksWUFBWSxDQUFDLE9BQU8sS0FBSyxTQUFTO2dCQUFFLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQTtZQUNuRSxJQUFJLFlBQVksQ0FBQyxRQUFRO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxZQUFZLGtCQUFrQixDQUFDLENBQUE7UUFDL0UsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7UUFFdkMsSUFBSSxPQUFPLEtBQUssSUFBSSxVQUFVO1lBQUUsT0FBTyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtRQUVyRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUMsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFBO0FBRTNDLGVBQWUsY0FBYyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudEVtaXR0ZXJ9IGZyb20gXCJldmVudGVtaXR0ZXIzXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuXG5jb25zdCBhY2Nlc3NvcnMgPSB7XG4gIGJyZWFrcG9pbnRzOiB7XG4gICAgZGVmYXVsdDogW1xuICAgICAgW1wieHhsXCIsIDE0MDBdLFxuICAgICAgW1wieGxcIiwgMTIwMF0sXG4gICAgICBbXCJsZ1wiLCA5OTJdLFxuICAgICAgW1wibWRcIiwgNzY4XSxcbiAgICAgIFtcInNtXCIsIDU3Nl0sXG4gICAgICBbXCJ4c1wiLCAwXVxuICAgIF0sXG4gICAgcmVxdWlyZWQ6IHRydWVcbiAgfSxcbiAgY2FibGVVcmw6IHtyZXF1aXJlOiBmYWxzZX0sXG4gIGN1cnJlbmNpZXNDb2xsZWN0aW9uOiB7cmVxdWlyZWQ6IHRydWV9LFxuICBoaXN0b3J5OiB7cmVxdWlyZWQ6IHRydWV9LFxuICBob3N0OiB7cmVxdWlyZWQ6IGZhbHNlfSxcbiAgaTE4bjoge3JlcXVpcmVkOiBmYWxzZX0sXG4gIGxpbmtUbzoge3JlcXVpcmVkOiB0cnVlfSxcbiAgbW9kYWw6IHtyZXF1aXJlZDogZmFsc2V9LFxuICBuYXZpZ2F0aW9uOiB7cmVxdWlyZWQ6IHRydWV9LFxuICByb3V0ZXM6IHtyZXF1aXJlZDogZmFsc2V9LFxuICByb3V0ZURlZmluaXRpb25zOiB7cmVxdWlyZWQ6IGZhbHNlfSxcbiAgdXNlSHRtbEZvcm06IHtkZWZhdWx0OiBmYWxzZSwgcmVxdWlyZWQ6IGZhbHNlfSxcbiAgd2Vic29ja2V0UmVxdWVzdHM6IHtyZXF1aXJlZDogZmFsc2V9XG59XG5cbi8qKiBBcGlNYWtlckNvbmZpZy4gKi9cbmNsYXNzIEFwaU1ha2VyQ29uZmlnIHtcbiAgLyoqIENvbnN0cnVjdG9yLiAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIWdsb2JhbFRoaXMuYXBpTWFrZXJDb25maWdHbG9iYWwpIGdsb2JhbFRoaXMuYXBpTWFrZXJDb25maWdHbG9iYWwgPSB7fVxuXG4gICAgdGhpcy5nbG9iYWwgPSBnbG9iYWxUaGlzLmFwaU1ha2VyQ29uZmlnR2xvYmFsXG4gICAgdGhpcy5ldmVudHMgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgfVxuXG4gIC8qKiBnZXRFdmVudHMuICovXG4gIGdldEV2ZW50cygpIHsgcmV0dXJuIHRoaXMuZXZlbnRzIH1cblxuICAvKiogQHJldHVybnMge2ltcG9ydChcImhpc3RvcnlcIikuQnJvd3Nlckhpc3Rvcnl9ICovXG4gIGdldEhpc3RvcnkoKSB7IHRocm93IG5ldyBFcnJvcihcIidnZXRIaXN0b3J5JyBub3QgaW1wbGVtZW50ZWRcIikgfVxuXG4gIC8qKiBAcmV0dXJucyB7c3RyaW5nfSAqL1xuICBnZXRIb3N0KCkgeyB0aHJvdyBuZXcgRXJyb3IoXCInZ2V0SG9zdCcgbm90IGltcGxlbWVudGVkXCIpIH1cblxuICAvKiogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH0gKi9cbiAgZ2V0Q2FibGVVcmwoKSB7IHRocm93IG5ldyBFcnJvcihcIidnZXRDYWJsZVVybCcgbm90IGltcGxlbWVudGVkXCIpIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmcgfCB1bmRlZmluZWR9IF9uZXdWYWx1ZVxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHNldENhYmxlVXJsKF9uZXdWYWx1ZSkgeyB0aHJvdyBuZXcgRXJyb3IoXCInc2V0Q2FibGVVcmwnIG5vdCBpbXBsZW1lbnRlZFwiKSB9XG5cbiAgLyoqIEByZXR1cm5zIHtib29sZWFuIHwgdW5kZWZpbmVkfSAqL1xuICBnZXRXZWJzb2NrZXRSZXF1ZXN0cygpIHsgdGhyb3cgbmV3IEVycm9yKFwiJ2dldFdlYnNvY2tldFJlcXVlc3RzJyBub3QgaW1wbGVtZW50ZWRcIikgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW4gfCB1bmRlZmluZWR9IF9uZXdWYWx1ZVxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHNldFdlYnNvY2tldFJlcXVlc3RzKF9uZXdWYWx1ZSkgeyB0aHJvdyBuZXcgRXJyb3IoXCInc2V0V2Vic29ja2V0UmVxdWVzdHMnIG5vdCBpbXBsZW1lbnRlZFwiKSB9XG5cbiAgLyoqIEByZXR1cm5zIHthbnl9ICovXG4gIGdldEN1cnJlbmNpZXNDb2xsZWN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoXCInZ2V0Q3VycmVuY2llc0NvbGxlY3Rpb24nIG5vdCBpbXBsZW1lbnRlZFwiKSB9XG5cbiAgLyoqIEByZXR1cm5zIHthbnl9ICovXG4gIGdldE1vZGFsKCkgeyB0aHJvdyBuZXcgRXJyb3IoXCInZ2V0TW9kYWwnIG5vdCBpbXBsZW1lbnRlZFwiKSB9XG5cbiAgLyoqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSAqL1xuICBnZXRSb3V0ZURlZmluaXRpb25zKCkgeyB0aHJvdyBuZXcgRXJyb3IoXCInZ2V0Um91dGVEZWZpbml0aW9ucycgbm90IGltcGxlbWVudGVkXCIpIH1cblxuICAvKiogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIGFueT59ICovXG4gIGdldFJvdXRlcygpIHsgdGhyb3cgbmV3IEVycm9yKFwiJ2dldFJvdXRlcycgbm90IGltcGxlbWVudGVkXCIpIH1cblxuICAvKiogQHJldHVybnMge2Jvb2xlYW59ICovXG4gIGdldFVzZUh0bWxGb3JtKCkgeyB0aHJvdyBuZXcgRXJyb3IoXCInZ2V0VXNlSHRtbEZvcm0nIG5vdCBpbXBsZW1lbnRlZFwiKSB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gX25ld1ZhbHVlXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgc2V0VXNlSHRtbEZvcm0oX25ld1ZhbHVlKSB7IHRocm93IG5ldyBFcnJvcihcIidzZXRVc2VIdG1sRm9ybScgbm90IGltcGxlbWVudGVkXCIpIH1cbn1cblxuZm9yIChjb25zdCBhY2Nlc3Nvck5hbWUgaW4gYWNjZXNzb3JzKSB7XG4gIGNvbnN0IGFjY2Vzc29yRGF0YSA9IGFjY2Vzc29yc1thY2Nlc3Nvck5hbWVdXG4gIGNvbnN0IGNhbWVsaXplZEFjY2Vzc29yID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShhY2Nlc3Nvck5hbWUpXG5cbiAgQXBpTWFrZXJDb25maWcucHJvdG90eXBlW2BzZXQke2NhbWVsaXplZEFjY2Vzc29yfWBdID0gZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLmdsb2JhbFthY2Nlc3Nvck5hbWVdXG5cbiAgICB0aGlzLmdsb2JhbFthY2Nlc3Nvck5hbWVdID0gbmV3VmFsdWVcblxuICAgIGlmIChvbGRWYWx1ZSAhPT0gbmV3VmFsdWUpIHtcbiAgICAgIHRoaXMuZXZlbnRzLmVtaXQoYG9uJHtjYW1lbGl6ZWRBY2Nlc3Nvcn1DaGFuZ2VgLCB7b2xkVmFsdWUsIG5ld1ZhbHVlfSlcbiAgICB9XG4gIH1cblxuICBBcGlNYWtlckNvbmZpZy5wcm90b3R5cGVbYGdldCR7Y2FtZWxpemVkQWNjZXNzb3J9YF0gPSBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgIGlmICh0aGlzLmdsb2JhbFthY2Nlc3Nvck5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChhY2Nlc3NvckRhdGEuZGVmYXVsdCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gYWNjZXNzb3JEYXRhLmRlZmF1bHRcbiAgICAgIGlmIChhY2Nlc3NvckRhdGEucmVxdWlyZWQpIHRocm93IG5ldyBFcnJvcihgJHthY2Nlc3Nvck5hbWV9IGhhc24ndCBiZWVuIHNldGApXG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdsb2JhbFthY2Nlc3Nvck5hbWVdXG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHZhbHVlKC4uLmFyZ3MpXG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxufVxuXG5jb25zdCBhcGlNYWtlckNvbmZpZyA9IG5ldyBBcGlNYWtlckNvbmZpZygpXG5cbmV4cG9ydCBkZWZhdWx0IGFwaU1ha2VyQ29uZmlnXG4iXX0=
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJjb25maWcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUEsQ0FBQyxtQ0FBbUM7QUFFNUUsdUVBQXVFO0FBQ3ZFLDhEQUE4RDtBQUM5RCxpREFBaUQ7QUFDakQsZ0ZBQWdGO0FBQ2hGOztHQUVHO0FBQ0g7OztHQUdHO0FBRUgsTUFBTSxTQUFTLEdBQUc7SUFDaEIsV0FBVyxFQUFFO1FBQ1gsT0FBTyxFQUFFO1lBQ1AsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQ2IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ1osQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO1lBQ1gsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO1lBQ1gsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO1lBQ1gsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ1Y7UUFDRCxRQUFRLEVBQUUsSUFBSTtLQUNmO0lBQ0QsUUFBUSxFQUFFLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQztJQUMxQixvQkFBb0IsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7SUFDdEMsT0FBTyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztJQUN6QixJQUFJLEVBQUUsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDO0lBQ3ZCLElBQUksRUFBRSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUM7SUFDdkIsTUFBTSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztJQUN4QixLQUFLLEVBQUUsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDO0lBQ3hCLFVBQVUsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7SUFDNUIsTUFBTSxFQUFFLEVBQUMsUUFBUSxFQUFFLEtBQUss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QUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxpQkFBaUIsUUFBUSxFQUFFLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUE7UUFDeEUsQ0FBQztJQUNILENBQUMsQ0FBQTtJQUVELGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsVUFBVSxHQUFHLElBQUk7UUFDckUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVDLElBQUksWUFBWSxDQUFDLE9BQU8sS0FBSyxTQUFTO2dCQUFFLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQTtZQUNuRSxJQUFJLFlBQVksQ0FBQyxRQUFRO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxZQUFZLGtCQUFrQixDQUFDLENBQUE7UUFDL0UsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7UUFFdkMsSUFBSSxPQUFPLEtBQUssSUFBSSxVQUFVO1lBQUUsT0FBTyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtRQUVyRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUMsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFBO0FBRTNDLGVBQWUsY0FBYyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5pbXBvcnQge0V2ZW50RW1pdHRlcn0gZnJvbSBcImV2ZW50ZW1pdHRlcjNcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgc29ydC1pbXBvcnRzXG5cbi8qKiBAdHlwZWRlZiB7W25hbWU6IHN0cmluZywgbWluV2lkdGg6IG51bWJlcl19IEJyZWFrcG9pbnREZWZpbml0aW9uICovXG4vKiogQHR5cGVkZWYge1tsYWJlbDogc3RyaW5nLCBjb2RlOiBzdHJpbmddfSBDdXJyZW5jeU9wdGlvbiAqL1xuLyoqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBvYmplY3Q+fSBSb3V0ZU1hcCAqL1xuLyoqIEB0eXBlZGVmIHt7cm91dGVzOiBBcnJheTx7bmFtZTogc3RyaW5nLCBwYXRoOiBzdHJpbmd9Pn19IFJvdXRlRGVmaW5pdGlvbnMgKi9cbi8qKlxuICogQHR5cGVkZWYge3tlbWl0OiAoZXZlbnROYW1lOiBzdHJpbmcsIHBheWxvYWQ6IHtvbGRWYWx1ZTogQ29uZmlnVmFsdWUsIG5ld1ZhbHVlOiBDb25maWdWYWx1ZX0pID0+IHZvaWR9fSBDb25maWdFdmVudHNcbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7QnJlYWtwb2ludERlZmluaXRpb25bXSB8IEN1cnJlbmN5T3B0aW9uW10gfCBSb3V0ZU1hcCB8IFJvdXRlRGVmaW5pdGlvbnMgfCBFdmVudEVtaXR0ZXIgfFxuICogICBib29sZWFuIHwgbnVtYmVyIHwgb2JqZWN0IHwgc3RyaW5nIHwgdW5kZWZpbmVkfSBDb25maWdWYWx1ZVxuICovXG5cbmNvbnN0IGFjY2Vzc29ycyA9IHtcbiAgYnJlYWtwb2ludHM6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICBbXCJ4eGxcIiwgMTQwMF0sXG4gICAgICBbXCJ4bFwiLCAxMjAwXSxcbiAgICAgIFtcImxnXCIsIDk5Ml0sXG4gICAgICBbXCJtZFwiLCA3NjhdLFxuICAgICAgW1wic21cIiwgNTc2XSxcbiAgICAgIFtcInhzXCIsIDBdXG4gICAgXSxcbiAgICByZXF1aXJlZDogdHJ1ZVxuICB9LFxuICBjYWJsZVVybDoge3JlcXVpcmU6IGZhbHNlfSxcbiAgY3VycmVuY2llc0NvbGxlY3Rpb246IHtyZXF1aXJlZDogdHJ1ZX0sXG4gIGhpc3Rvcnk6IHtyZXF1aXJlZDogdHJ1ZX0sXG4gIGhvc3Q6IHtyZXF1aXJlZDogZmFsc2V9LFxuICBpMThuOiB7cmVxdWlyZWQ6IGZhbHNlfSxcbiAgbGlua1RvOiB7cmVxdWlyZWQ6IHRydWV9LFxuICBtb2RhbDoge3JlcXVpcmVkOiBmYWxzZX0sXG4gIG5hdmlnYXRpb246IHtyZXF1aXJlZDogdHJ1ZX0sXG4gIHJvdXRlczoge3JlcXVpcmVkOiBmYWxzZX0sXG4gIHJvdXRlRGVmaW5pdGlvbnM6IHtyZXF1aXJlZDogZmFsc2V9LFxuICB1c2VIdG1sRm9ybToge2RlZmF1bHQ6IGZhbHNlLCByZXF1aXJlZDogZmFsc2V9LFxuICB3ZWJzb2NrZXRSZXF1ZXN0czoge3JlcXVpcmVkOiBmYWxzZX1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kTmFtZVxuICogQHJldHVybnMge25ldmVyfVxuICovXG5jb25zdCBhcGlNYWtlckNvbmZpZ05vdEltcGxlbWVudGVkID0gKG1ldGhvZE5hbWUpID0+IHtcbiAgdGhyb3cgbmV3IEVycm9yKGAnJHttZXRob2ROYW1lfScgbm90IGltcGxlbWVudGVkYClcbn1cblxuLyoqIFN0b3JlcyBnbG9iYWxseSBjb25maWd1cmVkIEFwaSBNYWtlciBpbnRlZ3JhdGlvbiBob29rcyBhbmQgcnVudGltZSBkZXBlbmRlbmNpZXMuICovXG5jbGFzcyBBcGlNYWtlckNvbmZpZyB7XG4gIC8qKiBJbml0aWFsaXplcyB0aGUgc2hhcmVkIGNvbmZpZyBzdGF0ZSBhbmQgY2hhbmdlIGVtaXR0ZXIuICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghZ2xvYmFsVGhpcy5hcGlNYWtlckNvbmZpZ0dsb2JhbCkgZ2xvYmFsVGhpcy5hcGlNYWtlckNvbmZpZ0dsb2JhbCA9IHt9XG5cbiAgICB0aGlzLmdsb2JhbCA9IGdsb2JhbFRoaXMuYXBpTWFrZXJDb25maWdHbG9iYWxcbiAgICB0aGlzLmV2ZW50cyA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGV2ZW50IGVtaXR0ZXIgdXNlZCBmb3IgY29uZmlnIGNoYW5nZSBub3RpZmljYXRpb25zLlxuICAgKiBAcmV0dXJucyB7Q29uZmlnRXZlbnRzfVxuICAgKi9cbiAgZ2V0RXZlbnRzKCkgeyByZXR1cm4gdGhpcy5ldmVudHMgfVxuXG4gIC8qKiBAcmV0dXJucyB7aW1wb3J0KFwiaGlzdG9yeVwiKS5Ccm93c2VySGlzdG9yeX0gKi9cbiAgZ2V0SGlzdG9yeSgpIHtcbiAgICByZXR1cm4gYXBpTWFrZXJDb25maWdOb3RJbXBsZW1lbnRlZChcImdldEhpc3RvcnlcIilcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7c3RyaW5nfSAqL1xuICBnZXRIb3N0KCkge1xuICAgIHJldHVybiBhcGlNYWtlckNvbmZpZ05vdEltcGxlbWVudGVkKFwiZ2V0SG9zdFwiKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9ICovXG4gIGdldENhYmxlVXJsKCkge1xuICAgIHJldHVybiBhcGlNYWtlckNvbmZpZ05vdEltcGxlbWVudGVkKFwiZ2V0Q2FibGVVcmxcIilcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gX25ld1ZhbHVlXG4gICAqL1xuICBzZXRDYWJsZVVybChfbmV3VmFsdWUpIHsgYXBpTWFrZXJDb25maWdOb3RJbXBsZW1lbnRlZChcInNldENhYmxlVXJsXCIpIH1cblxuICAvKiogQHJldHVybnMge2Jvb2xlYW4gfCB1bmRlZmluZWR9ICovXG4gIGdldFdlYnNvY2tldFJlcXVlc3RzKCkge1xuICAgIHJldHVybiBhcGlNYWtlckNvbmZpZ05vdEltcGxlbWVudGVkKFwiZ2V0V2Vic29ja2V0UmVxdWVzdHNcIilcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW4gfCB1bmRlZmluZWR9IF9uZXdWYWx1ZVxuICAgKi9cbiAgc2V0V2Vic29ja2V0UmVxdWVzdHMoX25ld1ZhbHVlKSB7IGFwaU1ha2VyQ29uZmlnTm90SW1wbGVtZW50ZWQoXCJzZXRXZWJzb2NrZXRSZXF1ZXN0c1wiKSB9XG5cbiAgLyoqIEByZXR1cm5zIHtBcnJheTxDdXJyZW5jeU9wdGlvbj59ICovXG4gIGdldEN1cnJlbmNpZXNDb2xsZWN0aW9uKCkge1xuICAgIHJldHVybiBhcGlNYWtlckNvbmZpZ05vdEltcGxlbWVudGVkKFwiZ2V0Q3VycmVuY2llc0NvbGxlY3Rpb25cIilcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7b2JqZWN0fSAqL1xuICBnZXRNb2RhbCgpIHtcbiAgICByZXR1cm4gYXBpTWFrZXJDb25maWdOb3RJbXBsZW1lbnRlZChcImdldE1vZGFsXCIpXG4gIH1cblxuICAvKiogQHJldHVybnMge1JvdXRlRGVmaW5pdGlvbnN9ICovXG4gIGdldFJvdXRlRGVmaW5pdGlvbnMoKSB7XG4gICAgcmV0dXJuIGFwaU1ha2VyQ29uZmlnTm90SW1wbGVtZW50ZWQoXCJnZXRSb3V0ZURlZmluaXRpb25zXCIpXG4gIH1cblxuICAvKiogQHJldHVybnMge1JvdXRlTWFwfSAqL1xuICBnZXRSb3V0ZXMoKSB7XG4gICAgcmV0dXJuIGFwaU1ha2VyQ29uZmlnTm90SW1wbGVtZW50ZWQoXCJnZXRSb3V0ZXNcIilcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7Ym9vbGVhbn0gKi9cbiAgZ2V0VXNlSHRtbEZvcm0oKSB7XG4gICAgcmV0dXJuIGFwaU1ha2VyQ29uZmlnTm90SW1wbGVtZW50ZWQoXCJnZXRVc2VIdG1sRm9ybVwiKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gX25ld1ZhbHVlXG4gICAqL1xuICBzZXRVc2VIdG1sRm9ybShfbmV3VmFsdWUpIHsgYXBpTWFrZXJDb25maWdOb3RJbXBsZW1lbnRlZChcInNldFVzZUh0bWxGb3JtXCIpIH1cbn1cblxuZm9yIChjb25zdCBhY2Nlc3Nvck5hbWUgaW4gYWNjZXNzb3JzKSB7XG4gIGNvbnN0IGFjY2Vzc29yRGF0YSA9IGFjY2Vzc29yc1thY2Nlc3Nvck5hbWVdXG4gIGNvbnN0IGNhbWVsaXplZEFjY2Vzc29yID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShhY2Nlc3Nvck5hbWUpXG5cbiAgQXBpTWFrZXJDb25maWcucHJvdG90eXBlW2BzZXQke2NhbWVsaXplZEFjY2Vzc29yfWBdID0gZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLmdsb2JhbFthY2Nlc3Nvck5hbWVdXG5cbiAgICB0aGlzLmdsb2JhbFthY2Nlc3Nvck5hbWVdID0gbmV3VmFsdWVcblxuICAgIGlmIChvbGRWYWx1ZSAhPT0gbmV3VmFsdWUpIHtcbiAgICAgIHRoaXMuZXZlbnRzLmVtaXQoYG9uJHtjYW1lbGl6ZWRBY2Nlc3Nvcn1DaGFuZ2VgLCB7b2xkVmFsdWUsIG5ld1ZhbHVlfSlcbiAgICB9XG4gIH1cblxuICBBcGlNYWtlckNvbmZpZy5wcm90b3R5cGVbYGdldCR7Y2FtZWxpemVkQWNjZXNzb3J9YF0gPSBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgIGlmICh0aGlzLmdsb2JhbFthY2Nlc3Nvck5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChhY2Nlc3NvckRhdGEuZGVmYXVsdCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gYWNjZXNzb3JEYXRhLmRlZmF1bHRcbiAgICAgIGlmIChhY2Nlc3NvckRhdGEucmVxdWlyZWQpIHRocm93IG5ldyBFcnJvcihgJHthY2Nlc3Nvck5hbWV9IGhhc24ndCBiZWVuIHNldGApXG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdsb2JhbFthY2Nlc3Nvck5hbWVdXG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHZhbHVlKC4uLmFyZ3MpXG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxufVxuXG5jb25zdCBhcGlNYWtlckNvbmZpZyA9IG5ldyBBcGlNYWtlckNvbmZpZygpXG5cbmV4cG9ydCBkZWZhdWx0IGFwaU1ha2VyQ29uZmlnXG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"custom-error.d.ts","sourceRoot":"/src/","sources":["custom-error.js"],"names":[],"mappings":";AAEA,8BAA8B;AAC9B;CAAsC;;;;sBAHhB,iBAAiB"}
1
+ {"version":3,"file":"custom-error.d.ts","sourceRoot":"/src/","sources":["custom-error.js"],"names":[],"mappings":";AAGA,8BAA8B;AAC9B;CAAsC;;;;sBAHhB,iBAAiB"}
@@ -1,7 +1,8 @@
1
+ // @ts-check
1
2
  import BaseError from "./base-error.js";
2
3
  /** Custom API Maker error. */
3
4
  class CustomError extends BaseError {
4
5
  }
5
6
  CustomError.apiMakerType = "CustomError";
6
7
  export default CustomError;
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWVycm9yLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJjdXN0b20tZXJyb3IuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxTQUFTLE1BQU0saUJBQWlCLENBQUE7QUFFdkMsOEJBQThCO0FBQzlCLE1BQU0sV0FBWSxTQUFRLFNBQVM7Q0FBRztBQUV0QyxXQUFXLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQTtBQUV4QyxlQUFlLFdBQVcsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlRXJyb3IgZnJvbSBcIi4vYmFzZS1lcnJvci5qc1wiXG5cbi8qKiBDdXN0b20gQVBJIE1ha2VyIGVycm9yLiAqL1xuY2xhc3MgQ3VzdG9tRXJyb3IgZXh0ZW5kcyBCYXNlRXJyb3Ige31cblxuQ3VzdG9tRXJyb3IuYXBpTWFrZXJUeXBlID0gXCJDdXN0b21FcnJvclwiXG5cbmV4cG9ydCBkZWZhdWx0IEN1c3RvbUVycm9yXG4iXX0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWVycm9yLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJjdXN0b20tZXJyb3IuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaLE9BQU8sU0FBUyxNQUFNLGlCQUFpQixDQUFBO0FBRXZDLDhCQUE4QjtBQUM5QixNQUFNLFdBQVksU0FBUSxTQUFTO0NBQUc7QUFFdEMsV0FBVyxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUE7QUFFeEMsZUFBZSxXQUFXLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcbmltcG9ydCBCYXNlRXJyb3IgZnJvbSBcIi4vYmFzZS1lcnJvci5qc1wiXG5cbi8qKiBDdXN0b20gQVBJIE1ha2VyIGVycm9yLiAqL1xuY2xhc3MgQ3VzdG9tRXJyb3IgZXh0ZW5kcyBCYXNlRXJyb3Ige31cblxuQ3VzdG9tRXJyb3IuYXBpTWFrZXJUeXBlID0gXCJDdXN0b21FcnJvclwiXG5cbmV4cG9ydCBkZWZhdWx0IEN1c3RvbUVycm9yXG4iXX0=
@@ -1,3 +1,15 @@
1
- /** Convert dataset attributes into normalized params. */
2
- export default function dataSetToAttributes(dataSet: any): {};
1
+ /**
2
+ * Convert dataset attributes into normalized params.
3
+ * @typedef {string | number | boolean | null | undefined} DataSetValue
4
+ */
5
+ /**
6
+ * Convert dataset attributes into normalized params.
7
+ * @param {Record<string, DataSetValue>} dataSet
8
+ * @returns {Record<string, DataSetValue>}
9
+ */
10
+ export default function dataSetToAttributes(dataSet: Record<string, DataSetValue>): Record<string, DataSetValue>;
11
+ /**
12
+ * Convert dataset attributes into normalized params.
13
+ */
14
+ export type DataSetValue = string | number | boolean | null | undefined;
3
15
  //# sourceMappingURL=data-set-to-attributes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-set-to-attributes.d.ts","sourceRoot":"/src/","sources":["data-set-to-attributes.js"],"names":[],"mappings":"AAEA,yDAAyD;AACzD,8DAUC"}
1
+ {"version":3,"file":"data-set-to-attributes.d.ts","sourceRoot":"/src/","sources":["data-set-to-attributes.js"],"names":[],"mappings":"AAGA;;;GAGG;AAEH;;;;GAIG;AACH,qDAHW,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAC1B,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAYxC;;;;2BAlBY,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS"}