valtech-components 2.0.820 → 2.0.821

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 (817) hide show
  1. package/fesm2022/valtech-components.mjs +1 -1
  2. package/fesm2022/valtech-components.mjs.map +1 -1
  3. package/package.json +1 -1
  4. package/esm2022/lib/components/atoms/avatar/avatar.component.mjs +0 -94
  5. package/esm2022/lib/components/atoms/avatar/types.mjs +0 -2
  6. package/esm2022/lib/components/atoms/box/box.component.mjs +0 -88
  7. package/esm2022/lib/components/atoms/box/types.mjs +0 -2
  8. package/esm2022/lib/components/atoms/button/button.component.mjs +0 -174
  9. package/esm2022/lib/components/atoms/button/factory.mjs +0 -217
  10. package/esm2022/lib/components/atoms/container/container.component.mjs +0 -52
  11. package/esm2022/lib/components/atoms/container/types.mjs +0 -2
  12. package/esm2022/lib/components/atoms/countdown/countdown.component.mjs +0 -340
  13. package/esm2022/lib/components/atoms/countdown/types.mjs +0 -27
  14. package/esm2022/lib/components/atoms/display/display.component.mjs +0 -51
  15. package/esm2022/lib/components/atoms/display/types.mjs +0 -2
  16. package/esm2022/lib/components/atoms/divider/divider.component.mjs +0 -27
  17. package/esm2022/lib/components/atoms/divider/types.mjs +0 -2
  18. package/esm2022/lib/components/atoms/fab/fab.component.mjs +0 -190
  19. package/esm2022/lib/components/atoms/fab/types.mjs +0 -2
  20. package/esm2022/lib/components/atoms/glass/glass.component.mjs +0 -125
  21. package/esm2022/lib/components/atoms/glass/types.mjs +0 -2
  22. package/esm2022/lib/components/atoms/glow/glow.component.mjs +0 -95
  23. package/esm2022/lib/components/atoms/glow/types.mjs +0 -2
  24. package/esm2022/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.mjs +0 -82
  25. package/esm2022/lib/components/atoms/horizontal-scroll/types.mjs +0 -2
  26. package/esm2022/lib/components/atoms/href/href.component.mjs +0 -62
  27. package/esm2022/lib/components/atoms/href/types.mjs +0 -2
  28. package/esm2022/lib/components/atoms/icon/icon.component.mjs +0 -29
  29. package/esm2022/lib/components/atoms/icon/types.mjs +0 -2
  30. package/esm2022/lib/components/atoms/image/image.component.mjs +0 -507
  31. package/esm2022/lib/components/atoms/image/types.mjs +0 -2
  32. package/esm2022/lib/components/atoms/pattern/motifs.mjs +0 -147
  33. package/esm2022/lib/components/atoms/pattern/pattern.component.mjs +0 -178
  34. package/esm2022/lib/components/atoms/pattern/types.mjs +0 -2
  35. package/esm2022/lib/components/atoms/price-tag/price-tag.component.mjs +0 -235
  36. package/esm2022/lib/components/atoms/price-tag/types.mjs +0 -15
  37. package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +0 -91
  38. package/esm2022/lib/components/atoms/progress-bar/types.mjs +0 -2
  39. package/esm2022/lib/components/atoms/progress-ring/progress-ring.component.mjs +0 -149
  40. package/esm2022/lib/components/atoms/progress-ring/types.mjs +0 -2
  41. package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +0 -394
  42. package/esm2022/lib/components/atoms/qr-code/types.mjs +0 -2
  43. package/esm2022/lib/components/atoms/rights-footer/rights-footer.component.mjs +0 -108
  44. package/esm2022/lib/components/atoms/rights-footer/types.mjs +0 -2
  45. package/esm2022/lib/components/atoms/skeleton/skeleton.component.mjs +0 -193
  46. package/esm2022/lib/components/atoms/skeleton/types.mjs +0 -13
  47. package/esm2022/lib/components/atoms/text/text.component.mjs +0 -132
  48. package/esm2022/lib/components/atoms/text/types.mjs +0 -2
  49. package/esm2022/lib/components/atoms/title/title.component.mjs +0 -68
  50. package/esm2022/lib/components/atoms/title/types.mjs +0 -22
  51. package/esm2022/lib/components/atoms/user-avatar/types.mjs +0 -2
  52. package/esm2022/lib/components/atoms/user-avatar/user-avatar.component.mjs +0 -209
  53. package/esm2022/lib/components/molecules/accordion/accordion.component.mjs +0 -120
  54. package/esm2022/lib/components/molecules/accordion/types.mjs +0 -2
  55. package/esm2022/lib/components/molecules/action-card/action-card.component.mjs +0 -273
  56. package/esm2022/lib/components/molecules/action-card/types.mjs +0 -11
  57. package/esm2022/lib/components/molecules/action-header/action-header.component.mjs +0 -55
  58. package/esm2022/lib/components/molecules/action-header/types.mjs +0 -2
  59. package/esm2022/lib/components/molecules/ad-slot/ad-slot.component.mjs +0 -274
  60. package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +0 -119
  61. package/esm2022/lib/components/molecules/alert-box/types.mjs +0 -2
  62. package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +0 -130
  63. package/esm2022/lib/components/molecules/breadcrumb/types.mjs +0 -2
  64. package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +0 -63
  65. package/esm2022/lib/components/molecules/button-group/types.mjs +0 -2
  66. package/esm2022/lib/components/molecules/card/card.component.mjs +0 -450
  67. package/esm2022/lib/components/molecules/card/types.mjs +0 -16
  68. package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +0 -82
  69. package/esm2022/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.mjs +0 -79
  70. package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +0 -166
  71. package/esm2022/lib/components/molecules/chip-group/types.mjs +0 -2
  72. package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +0 -115
  73. package/esm2022/lib/components/molecules/code-display/types.mjs +0 -2
  74. package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +0 -49
  75. package/esm2022/lib/components/molecules/command-display/types.mjs +0 -2
  76. package/esm2022/lib/components/molecules/comment/comment.component.mjs +0 -618
  77. package/esm2022/lib/components/molecules/comment/types.mjs +0 -2
  78. package/esm2022/lib/components/molecules/comment-input/comment-input.component.mjs +0 -41
  79. package/esm2022/lib/components/molecules/comment-input/types.mjs +0 -2
  80. package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +0 -42
  81. package/esm2022/lib/components/molecules/content-loader/types.mjs +0 -2
  82. package/esm2022/lib/components/molecules/content-reaction/content-reaction.component.mjs +0 -210
  83. package/esm2022/lib/components/molecules/content-reaction/types.mjs +0 -2
  84. package/esm2022/lib/components/molecules/currency-input/currency-input.component.mjs +0 -347
  85. package/esm2022/lib/components/molecules/currency-input/types.mjs +0 -18
  86. package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +0 -148
  87. package/esm2022/lib/components/molecules/date-input/types.mjs +0 -2
  88. package/esm2022/lib/components/molecules/date-range-input/date-range-input.component.mjs +0 -416
  89. package/esm2022/lib/components/molecules/date-range-input/types.mjs +0 -2
  90. package/esm2022/lib/components/molecules/docs-api-table/docs-api-table.component.mjs +0 -222
  91. package/esm2022/lib/components/molecules/docs-api-table/types.mjs +0 -11
  92. package/esm2022/lib/components/molecules/docs-breadcrumb/docs-breadcrumb.component.mjs +0 -144
  93. package/esm2022/lib/components/molecules/docs-breadcrumb/types.mjs +0 -2
  94. package/esm2022/lib/components/molecules/docs-callout/docs-callout.component.mjs +0 -60
  95. package/esm2022/lib/components/molecules/docs-code-example/docs-code-example.component.mjs +0 -249
  96. package/esm2022/lib/components/molecules/docs-code-example/types.mjs +0 -2
  97. package/esm2022/lib/components/molecules/docs-nav-links/docs-nav-links.component.mjs +0 -140
  98. package/esm2022/lib/components/molecules/docs-nav-links/types.mjs +0 -2
  99. package/esm2022/lib/components/molecules/docs-search/docs-search.component.mjs +0 -268
  100. package/esm2022/lib/components/molecules/docs-search/types.mjs +0 -2
  101. package/esm2022/lib/components/molecules/docs-section/docs-section.component.mjs +0 -85
  102. package/esm2022/lib/components/molecules/docs-section/types.mjs +0 -2
  103. package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +0 -68
  104. package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +0 -77
  105. package/esm2022/lib/components/molecules/expandable-text/types.mjs +0 -2
  106. package/esm2022/lib/components/molecules/features-list/features-list.component.mjs +0 -179
  107. package/esm2022/lib/components/molecules/features-list/types.mjs +0 -11
  108. package/esm2022/lib/components/molecules/feedback-form/feedback-form.component.mjs +0 -354
  109. package/esm2022/lib/components/molecules/feedback-form/types.mjs +0 -2
  110. package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +0 -90
  111. package/esm2022/lib/components/molecules/file-input/types.mjs +0 -2
  112. package/esm2022/lib/components/molecules/footer-links/footer-links.component.mjs +0 -391
  113. package/esm2022/lib/components/molecules/footer-links/types.mjs +0 -2
  114. package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +0 -314
  115. package/esm2022/lib/components/molecules/glow-card/types.mjs +0 -11
  116. package/esm2022/lib/components/molecules/hint/hint.component.mjs +0 -90
  117. package/esm2022/lib/components/molecules/hour-input/hour-input.component.mjs +0 -28
  118. package/esm2022/lib/components/molecules/image-crop/image-crop.component.mjs +0 -174
  119. package/esm2022/lib/components/molecules/image-crop/index.mjs +0 -2
  120. package/esm2022/lib/components/molecules/info/info.component.mjs +0 -49
  121. package/esm2022/lib/components/molecules/info/types.mjs +0 -2
  122. package/esm2022/lib/components/molecules/language-selector/language-selector.component.mjs +0 -221
  123. package/esm2022/lib/components/molecules/language-selector/types.mjs +0 -2
  124. package/esm2022/lib/components/molecules/layered-card/layered-card.component.mjs +0 -104
  125. package/esm2022/lib/components/molecules/layered-card/types.mjs +0 -2
  126. package/esm2022/lib/components/molecules/link/link.component.mjs +0 -64
  127. package/esm2022/lib/components/molecules/link/types.mjs +0 -2
  128. package/esm2022/lib/components/molecules/linked-providers/linked-providers.component.mjs +0 -236
  129. package/esm2022/lib/components/molecules/linked-providers/types.mjs +0 -27
  130. package/esm2022/lib/components/molecules/links-accordion/links-accordion.component.mjs +0 -203
  131. package/esm2022/lib/components/molecules/links-accordion/types.mjs +0 -2
  132. package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +0 -51
  133. package/esm2022/lib/components/molecules/links-cake/types.mjs +0 -2
  134. package/esm2022/lib/components/molecules/multi-select-search/multi-select-search.component.mjs +0 -488
  135. package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +0 -92
  136. package/esm2022/lib/components/molecules/notes-box/types.mjs +0 -2
  137. package/esm2022/lib/components/molecules/number-from-to/number-from-to.component.mjs +0 -143
  138. package/esm2022/lib/components/molecules/number-from-to/types.mjs +0 -2
  139. package/esm2022/lib/components/molecules/number-input/number-input.component.mjs +0 -34
  140. package/esm2022/lib/components/molecules/number-stepper/number-stepper.component.mjs +0 -379
  141. package/esm2022/lib/components/molecules/number-stepper/types.mjs +0 -2
  142. package/esm2022/lib/components/molecules/page-links/page-links.component.mjs +0 -150
  143. package/esm2022/lib/components/molecules/page-links/types.mjs +0 -2
  144. package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +0 -253
  145. package/esm2022/lib/components/molecules/pagination/types.mjs +0 -2
  146. package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +0 -93
  147. package/esm2022/lib/components/molecules/phone-input/phone-input.component.mjs +0 -365
  148. package/esm2022/lib/components/molecules/phone-input/types.mjs +0 -19
  149. package/esm2022/lib/components/molecules/pill/pill.component.mjs +0 -202
  150. package/esm2022/lib/components/molecules/pill/types.mjs +0 -2
  151. package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +0 -78
  152. package/esm2022/lib/components/molecules/pin-input/types.mjs +0 -2
  153. package/esm2022/lib/components/molecules/plain-code-box/plain-code-box.component.mjs +0 -82
  154. package/esm2022/lib/components/molecules/plain-code-box/types.mjs +0 -2
  155. package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +0 -188
  156. package/esm2022/lib/components/molecules/popover-selector/types.mjs +0 -2
  157. package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +0 -105
  158. package/esm2022/lib/components/molecules/progress-status/types.mjs +0 -2
  159. package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +0 -85
  160. package/esm2022/lib/components/molecules/prompter/types.mjs +0 -2
  161. package/esm2022/lib/components/molecules/quote-box/quote-box.component.mjs +0 -155
  162. package/esm2022/lib/components/molecules/radio-input/radio-input.component.mjs +0 -52
  163. package/esm2022/lib/components/molecules/range-input/range-input.component.mjs +0 -127
  164. package/esm2022/lib/components/molecules/range-input/types.mjs +0 -2
  165. package/esm2022/lib/components/molecules/rating/rating.component.mjs +0 -166
  166. package/esm2022/lib/components/molecules/rating/types.mjs +0 -2
  167. package/esm2022/lib/components/molecules/refresher/refresher.component.mjs +0 -275
  168. package/esm2022/lib/components/molecules/refresher/types.mjs +0 -15
  169. package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +0 -127
  170. package/esm2022/lib/components/molecules/searchbar/types.mjs +0 -2
  171. package/esm2022/lib/components/molecules/segment-control/segment-control.component.mjs +0 -129
  172. package/esm2022/lib/components/molecules/segment-control/types.mjs +0 -2
  173. package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +0 -148
  174. package/esm2022/lib/components/molecules/select-search/select-search.component.mjs +0 -434
  175. package/esm2022/lib/components/molecules/share-buttons/share-buttons.component.mjs +0 -274
  176. package/esm2022/lib/components/molecules/share-buttons/types.mjs +0 -88
  177. package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +0 -211
  178. package/esm2022/lib/components/molecules/stats-card/types.mjs +0 -2
  179. package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +0 -242
  180. package/esm2022/lib/components/molecules/stepper/types.mjs +0 -2
  181. package/esm2022/lib/components/molecules/swipe-carousel/swipe-carousel.component.mjs +0 -206
  182. package/esm2022/lib/components/molecules/swipe-carousel/types.mjs +0 -2
  183. package/esm2022/lib/components/molecules/tabs/tabs.component.mjs +0 -139
  184. package/esm2022/lib/components/molecules/tabs/types.mjs +0 -2
  185. package/esm2022/lib/components/molecules/testimonial-card/testimonial-card.component.mjs +0 -138
  186. package/esm2022/lib/components/molecules/testimonial-card/types.mjs +0 -2
  187. package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +0 -77
  188. package/esm2022/lib/components/molecules/textarea-input/textarea-input.component.mjs +0 -213
  189. package/esm2022/lib/components/molecules/textarea-input/types.mjs +0 -2
  190. package/esm2022/lib/components/molecules/timeline/timeline.component.mjs +0 -140
  191. package/esm2022/lib/components/molecules/timeline/types.mjs +0 -2
  192. package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +0 -102
  193. package/esm2022/lib/components/molecules/title-block/types.mjs +0 -2
  194. package/esm2022/lib/components/molecules/toggle-input/toggle-input.component.mjs +0 -93
  195. package/esm2022/lib/components/molecules/toggle-input/types.mjs +0 -2
  196. package/esm2022/lib/components/molecules/update-banner/types.mjs +0 -42
  197. package/esm2022/lib/components/molecules/update-banner/update-banner.component.mjs +0 -243
  198. package/esm2022/lib/components/molecules/username-input/types.mjs +0 -2
  199. package/esm2022/lib/components/molecules/username-input/username-input.component.mjs +0 -295
  200. package/esm2022/lib/components/organisms/article/article.component.mjs +0 -578
  201. package/esm2022/lib/components/organisms/article/types.mjs +0 -183
  202. package/esm2022/lib/components/organisms/avatar-upload/avatar-upload.component.mjs +0 -325
  203. package/esm2022/lib/components/organisms/avatar-upload/types.mjs +0 -15
  204. package/esm2022/lib/components/organisms/banner/banner.component.mjs +0 -111
  205. package/esm2022/lib/components/organisms/banner/types.mjs +0 -2
  206. package/esm2022/lib/components/organisms/bottom-nav/bottom-nav.component.mjs +0 -383
  207. package/esm2022/lib/components/organisms/bottom-nav/types.mjs +0 -19
  208. package/esm2022/lib/components/organisms/cards-carousel/cards-carousel.component.mjs +0 -108
  209. package/esm2022/lib/components/organisms/cards-carousel/types.mjs +0 -2
  210. package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +0 -537
  211. package/esm2022/lib/components/organisms/comment-section/types.mjs +0 -2
  212. package/esm2022/lib/components/organisms/company-footer/company-footer.component.mjs +0 -76
  213. package/esm2022/lib/components/organisms/company-footer/types.mjs +0 -2
  214. package/esm2022/lib/components/organisms/cookie-banner/cookie-banner.component.mjs +0 -199
  215. package/esm2022/lib/components/organisms/cookie-banner/types.mjs +0 -2
  216. package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +0 -1081
  217. package/esm2022/lib/components/organisms/data-table/types.mjs +0 -13
  218. package/esm2022/lib/components/organisms/docs-sidebar/docs-sidebar.component.mjs +0 -290
  219. package/esm2022/lib/components/organisms/docs-sidebar/types.mjs +0 -2
  220. package/esm2022/lib/components/organisms/docs-toc/docs-toc.component.mjs +0 -307
  221. package/esm2022/lib/components/organisms/docs-toc/types.mjs +0 -2
  222. package/esm2022/lib/components/organisms/faq/faq.component.mjs +0 -176
  223. package/esm2022/lib/components/organisms/faq/types.mjs +0 -9
  224. package/esm2022/lib/components/organisms/footer/footer.component.mjs +0 -73
  225. package/esm2022/lib/components/organisms/footer/types.mjs +0 -2
  226. package/esm2022/lib/components/organisms/form/factory.mjs +0 -29
  227. package/esm2022/lib/components/organisms/form/form-footer/form-footer.component.mjs +0 -83
  228. package/esm2022/lib/components/organisms/form/form.component.mjs +0 -510
  229. package/esm2022/lib/components/organisms/fun-header/fun-header.component.mjs +0 -225
  230. package/esm2022/lib/components/organisms/fun-header/types.mjs +0 -2
  231. package/esm2022/lib/components/organisms/header/header.component.mjs +0 -51
  232. package/esm2022/lib/components/organisms/header/types.mjs +0 -2
  233. package/esm2022/lib/components/organisms/infinite-list/infinite-list.component.mjs +0 -620
  234. package/esm2022/lib/components/organisms/infinite-list/types.mjs +0 -15
  235. package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +0 -418
  236. package/esm2022/lib/components/organisms/item-list/types.mjs +0 -2
  237. package/esm2022/lib/components/organisms/login/login.component.mjs +0 -735
  238. package/esm2022/lib/components/organisms/login/types.mjs +0 -11
  239. package/esm2022/lib/components/organisms/menu/menu.component.mjs +0 -206
  240. package/esm2022/lib/components/organisms/menu/types.mjs +0 -2
  241. package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +0 -66
  242. package/esm2022/lib/components/organisms/no-content/types.mjs +0 -2
  243. package/esm2022/lib/components/organisms/rotating-text/rotating-text.component.mjs +0 -180
  244. package/esm2022/lib/components/organisms/rotating-text/types.mjs +0 -2
  245. package/esm2022/lib/components/organisms/skeleton-layout/skeleton-layout.component.mjs +0 -423
  246. package/esm2022/lib/components/organisms/skeleton-layout/types.mjs +0 -10
  247. package/esm2022/lib/components/organisms/tabbed-content/tabbed-content.component.mjs +0 -170
  248. package/esm2022/lib/components/organisms/tabbed-content/types.mjs +0 -2
  249. package/esm2022/lib/components/organisms/terminal-404/terminal-404.component.mjs +0 -214
  250. package/esm2022/lib/components/organisms/terminal-404/types.mjs +0 -2
  251. package/esm2022/lib/components/organisms/testimonial-carousel/testimonial-carousel.component.mjs +0 -72
  252. package/esm2022/lib/components/organisms/testimonial-carousel/types.mjs +0 -2
  253. package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +0 -255
  254. package/esm2022/lib/components/organisms/toolbar/types.mjs +0 -2
  255. package/esm2022/lib/components/organisms/wizard/types.mjs +0 -10
  256. package/esm2022/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.mjs +0 -111
  257. package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +0 -161
  258. package/esm2022/lib/components/templates/auth-background/auth-background.component.mjs +0 -164
  259. package/esm2022/lib/components/templates/auth-background/types.mjs +0 -2
  260. package/esm2022/lib/components/templates/docs-layout/docs-layout.component.mjs +0 -221
  261. package/esm2022/lib/components/templates/docs-layout/types.mjs +0 -2
  262. package/esm2022/lib/components/templates/docs-page/docs-page.component.mjs +0 -251
  263. package/esm2022/lib/components/templates/docs-page/types.mjs +0 -2
  264. package/esm2022/lib/components/templates/docs-shell/docs-shell.component.mjs +0 -376
  265. package/esm2022/lib/components/templates/docs-shell/types.mjs +0 -2
  266. package/esm2022/lib/components/templates/maintenance-page/maintenance-page.component.mjs +0 -153
  267. package/esm2022/lib/components/templates/maintenance-page/types.mjs +0 -2
  268. package/esm2022/lib/components/templates/page-content/page-content.component.mjs +0 -193
  269. package/esm2022/lib/components/templates/page-content/types.mjs +0 -2
  270. package/esm2022/lib/components/templates/page-template/page-template.component.mjs +0 -188
  271. package/esm2022/lib/components/templates/page-template/types.mjs +0 -2
  272. package/esm2022/lib/components/templates/page-wrapper/page-wrapper.component.mjs +0 -238
  273. package/esm2022/lib/components/templates/page-wrapper/types.mjs +0 -2
  274. package/esm2022/lib/components/templates/simple/simple.component.mjs +0 -123
  275. package/esm2022/lib/components/templates/simple/types.mjs +0 -2
  276. package/esm2022/lib/components/types.mjs +0 -60
  277. package/esm2022/lib/config/company-footer.config.mjs +0 -125
  278. package/esm2022/lib/config/index.mjs +0 -5
  279. package/esm2022/lib/services/ads/ads-loader.service.mjs +0 -120
  280. package/esm2022/lib/services/ads/ads.service.mjs +0 -236
  281. package/esm2022/lib/services/ads/config.mjs +0 -81
  282. package/esm2022/lib/services/ads/index.mjs +0 -13
  283. package/esm2022/lib/services/ads/types.mjs +0 -23
  284. package/esm2022/lib/services/app-config/app-config.service.mjs +0 -209
  285. package/esm2022/lib/services/app-config/config.mjs +0 -47
  286. package/esm2022/lib/services/app-config/index.mjs +0 -48
  287. package/esm2022/lib/services/app-config/types.mjs +0 -13
  288. package/esm2022/lib/services/app-config/version.mjs +0 -85
  289. package/esm2022/lib/services/app-version/app-version.service.mjs +0 -187
  290. package/esm2022/lib/services/app-version/config.mjs +0 -42
  291. package/esm2022/lib/services/app-version/index.mjs +0 -24
  292. package/esm2022/lib/services/app-version/types.mjs +0 -17
  293. package/esm2022/lib/services/auth/auth-state.service.mjs +0 -207
  294. package/esm2022/lib/services/auth/auth.service.mjs +0 -1142
  295. package/esm2022/lib/services/auth/config.mjs +0 -75
  296. package/esm2022/lib/services/auth/device.service.mjs +0 -135
  297. package/esm2022/lib/services/auth/guards.mjs +0 -199
  298. package/esm2022/lib/services/auth/handoff.service.mjs +0 -152
  299. package/esm2022/lib/services/auth/index.mjs +0 -98
  300. package/esm2022/lib/services/auth/interceptor.mjs +0 -122
  301. package/esm2022/lib/services/auth/notification-action.service.mjs +0 -117
  302. package/esm2022/lib/services/auth/oauth-callback.component.mjs +0 -169
  303. package/esm2022/lib/services/auth/oauth.service.mjs +0 -322
  304. package/esm2022/lib/services/auth/org-switch.service.mjs +0 -137
  305. package/esm2022/lib/services/auth/session.service.mjs +0 -78
  306. package/esm2022/lib/services/auth/storage.service.mjs +0 -152
  307. package/esm2022/lib/services/auth/sync.service.mjs +0 -149
  308. package/esm2022/lib/services/auth/token.service.mjs +0 -122
  309. package/esm2022/lib/services/auth/types.mjs +0 -30
  310. package/esm2022/lib/services/confirmation-dialog/confirmation-dialog.service.mjs +0 -189
  311. package/esm2022/lib/services/confirmation-dialog/types.mjs +0 -14
  312. package/esm2022/lib/services/content/content-types/blog.mjs +0 -275
  313. package/esm2022/lib/services/content/content-types/documentation.mjs +0 -303
  314. package/esm2022/lib/services/content/content-types/news.mjs +0 -277
  315. package/esm2022/lib/services/content/index.mjs +0 -51
  316. package/esm2022/lib/services/content/transformer.mjs +0 -265
  317. package/esm2022/lib/services/content/types.mjs +0 -41
  318. package/esm2022/lib/services/docs/docs-navigation.service.mjs +0 -91
  319. package/esm2022/lib/services/donation/config.mjs +0 -41
  320. package/esm2022/lib/services/donation/donation.service.mjs +0 -92
  321. package/esm2022/lib/services/donation/index.mjs +0 -25
  322. package/esm2022/lib/services/donation/types.mjs +0 -10
  323. package/esm2022/lib/services/download.service.mjs +0 -80
  324. package/esm2022/lib/services/feedback/config.mjs +0 -49
  325. package/esm2022/lib/services/feedback/feedback.service.mjs +0 -296
  326. package/esm2022/lib/services/feedback/index.mjs +0 -44
  327. package/esm2022/lib/services/feedback/types.mjs +0 -30
  328. package/esm2022/lib/services/firebase/analytics-error-handler.mjs +0 -141
  329. package/esm2022/lib/services/firebase/analytics-router-tracker.mjs +0 -99
  330. package/esm2022/lib/services/firebase/analytics-types.mjs +0 -7
  331. package/esm2022/lib/services/firebase/analytics.service.mjs +0 -620
  332. package/esm2022/lib/services/firebase/config.mjs +0 -131
  333. package/esm2022/lib/services/firebase/firebase.service.mjs +0 -506
  334. package/esm2022/lib/services/firebase/firestore-collection.mjs +0 -301
  335. package/esm2022/lib/services/firebase/firestore.service.mjs +0 -571
  336. package/esm2022/lib/services/firebase/index.mjs +0 -56
  337. package/esm2022/lib/services/firebase/messaging.service.mjs +0 -721
  338. package/esm2022/lib/services/firebase/notifications.service.mjs +0 -274
  339. package/esm2022/lib/services/firebase/shared-config.mjs +0 -147
  340. package/esm2022/lib/services/firebase/storage.service.mjs +0 -484
  341. package/esm2022/lib/services/firebase/types.mjs +0 -18
  342. package/esm2022/lib/services/firebase/utils/path-builder.mjs +0 -195
  343. package/esm2022/lib/services/firebase/utils/query-builder.mjs +0 -302
  344. package/esm2022/lib/services/i18n/config.mjs +0 -128
  345. package/esm2022/lib/services/i18n/default-content.mjs +0 -577
  346. package/esm2022/lib/services/i18n/i18n.service.mjs +0 -217
  347. package/esm2022/lib/services/i18n/index.mjs +0 -13
  348. package/esm2022/lib/services/i18n/input-i18n.helper.mjs +0 -97
  349. package/esm2022/lib/services/i18n/translate.pipe.mjs +0 -50
  350. package/esm2022/lib/services/i18n/types.mjs +0 -15
  351. package/esm2022/lib/services/icons.service.mjs +0 -83
  352. package/esm2022/lib/services/image/image.service.mjs +0 -244
  353. package/esm2022/lib/services/image/index.mjs +0 -3
  354. package/esm2022/lib/services/image/types.mjs +0 -13
  355. package/esm2022/lib/services/in-app-browser.service.mjs +0 -35
  356. package/esm2022/lib/services/legal-link/legal-link.service.mjs +0 -85
  357. package/esm2022/lib/services/link-processor.service.mjs +0 -259
  358. package/esm2022/lib/services/local-storage.service.mjs +0 -37
  359. package/esm2022/lib/services/locale.service.mjs +0 -75
  360. package/esm2022/lib/services/markdown-article/legal-content.service.mjs +0 -107
  361. package/esm2022/lib/services/markdown-article/markdown-article-parser.mjs +0 -302
  362. package/esm2022/lib/services/markdown-article/markdown-article-parser.service.mjs +0 -20
  363. package/esm2022/lib/services/meta/index.mjs +0 -3
  364. package/esm2022/lib/services/meta/meta.service.mjs +0 -63
  365. package/esm2022/lib/services/meta/types.mjs +0 -2
  366. package/esm2022/lib/services/modal/modal.service.mjs +0 -220
  367. package/esm2022/lib/services/modal/simple-modal-content.component.mjs +0 -133
  368. package/esm2022/lib/services/modal/types.mjs +0 -26
  369. package/esm2022/lib/services/navigation/index.mjs +0 -3
  370. package/esm2022/lib/services/navigation/navigation.service.mjs +0 -216
  371. package/esm2022/lib/services/navigation/types.mjs +0 -16
  372. package/esm2022/lib/services/page-refresh/page-refresh.service.mjs +0 -104
  373. package/esm2022/lib/services/pagination/index.mjs +0 -5
  374. package/esm2022/lib/services/pagination/pagination.service.mjs +0 -218
  375. package/esm2022/lib/services/pagination/types.mjs +0 -14
  376. package/esm2022/lib/services/preferences/index.mjs +0 -3
  377. package/esm2022/lib/services/preferences/preferences.service.mjs +0 -198
  378. package/esm2022/lib/services/preferences/preferences.types.mjs +0 -7
  379. package/esm2022/lib/services/presets/config.mjs +0 -46
  380. package/esm2022/lib/services/presets/index.mjs +0 -5
  381. package/esm2022/lib/services/presets/preset.service.mjs +0 -104
  382. package/esm2022/lib/services/presets/types.mjs +0 -2
  383. package/esm2022/lib/services/qr-generator/qr-generator.service.mjs +0 -341
  384. package/esm2022/lib/services/qr-generator/types.mjs +0 -46
  385. package/esm2022/lib/services/refreshable-stream/index.mjs +0 -8
  386. package/esm2022/lib/services/refreshable-stream/refreshable-stream.mjs +0 -112
  387. package/esm2022/lib/services/skeleton/config.mjs +0 -79
  388. package/esm2022/lib/services/skeleton/directives/loading.directive.mjs +0 -215
  389. package/esm2022/lib/services/skeleton/index.mjs +0 -16
  390. package/esm2022/lib/services/skeleton/skeleton.service.mjs +0 -198
  391. package/esm2022/lib/services/skeleton/templates/detail-skeleton.component.mjs +0 -223
  392. package/esm2022/lib/services/skeleton/templates/form-skeleton.component.mjs +0 -127
  393. package/esm2022/lib/services/skeleton/templates/grid-skeleton.component.mjs +0 -154
  394. package/esm2022/lib/services/skeleton/templates/list-skeleton.component.mjs +0 -110
  395. package/esm2022/lib/services/skeleton/templates/profile-skeleton.component.mjs +0 -207
  396. package/esm2022/lib/services/skeleton/templates/table-skeleton.component.mjs +0 -116
  397. package/esm2022/lib/services/skeleton/types.mjs +0 -11
  398. package/esm2022/lib/services/theme.service.mjs +0 -153
  399. package/esm2022/lib/services/toast.service.mjs +0 -53
  400. package/esm2022/lib/services/types.mjs +0 -5
  401. package/esm2022/lib/shared/constants/storage.mjs +0 -3
  402. package/esm2022/lib/shared/pipes/process-links.pipe.mjs +0 -69
  403. package/esm2022/lib/shared/utils/datetime.mjs +0 -24
  404. package/esm2022/lib/shared/utils/dom.mjs +0 -27
  405. package/esm2022/lib/shared/utils/form-defaults.mjs +0 -112
  406. package/esm2022/lib/shared/utils/styles.mjs +0 -37
  407. package/esm2022/lib/shared/utils/text.mjs +0 -12
  408. package/esm2022/lib/version.mjs +0 -6
  409. package/esm2022/public-api.mjs +0 -367
  410. package/esm2022/valtech-components.mjs +0 -5
  411. package/index.d.ts +0 -5
  412. package/lib/components/atoms/avatar/avatar.component.d.ts +0 -36
  413. package/lib/components/atoms/avatar/types.d.ts +0 -15
  414. package/lib/components/atoms/box/box.component.d.ts +0 -26
  415. package/lib/components/atoms/box/types.d.ts +0 -19
  416. package/lib/components/atoms/button/button.component.d.ts +0 -63
  417. package/lib/components/atoms/button/factory.d.ts +0 -71
  418. package/lib/components/atoms/container/container.component.d.ts +0 -30
  419. package/lib/components/atoms/container/types.d.ts +0 -11
  420. package/lib/components/atoms/countdown/countdown.component.d.ts +0 -38
  421. package/lib/components/atoms/countdown/types.d.ts +0 -108
  422. package/lib/components/atoms/display/display.component.d.ts +0 -19
  423. package/lib/components/atoms/display/types.d.ts +0 -33
  424. package/lib/components/atoms/divider/divider.component.d.ts +0 -27
  425. package/lib/components/atoms/divider/types.d.ts +0 -12
  426. package/lib/components/atoms/fab/fab.component.d.ts +0 -36
  427. package/lib/components/atoms/fab/types.d.ts +0 -45
  428. package/lib/components/atoms/glass/glass.component.d.ts +0 -43
  429. package/lib/components/atoms/glass/types.d.ts +0 -70
  430. package/lib/components/atoms/glow/glow.component.d.ts +0 -42
  431. package/lib/components/atoms/glow/types.d.ts +0 -40
  432. package/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.d.ts +0 -41
  433. package/lib/components/atoms/horizontal-scroll/types.d.ts +0 -13
  434. package/lib/components/atoms/href/href.component.d.ts +0 -25
  435. package/lib/components/atoms/href/types.d.ts +0 -19
  436. package/lib/components/atoms/icon/icon.component.d.ts +0 -18
  437. package/lib/components/atoms/icon/types.d.ts +0 -13
  438. package/lib/components/atoms/image/image.component.d.ts +0 -41
  439. package/lib/components/atoms/image/types.d.ts +0 -37
  440. package/lib/components/atoms/pattern/motifs.d.ts +0 -60
  441. package/lib/components/atoms/pattern/pattern.component.d.ts +0 -68
  442. package/lib/components/atoms/pattern/types.d.ts +0 -61
  443. package/lib/components/atoms/price-tag/price-tag.component.d.ts +0 -15
  444. package/lib/components/atoms/price-tag/types.d.ts +0 -59
  445. package/lib/components/atoms/progress-bar/progress-bar.component.d.ts +0 -35
  446. package/lib/components/atoms/progress-bar/types.d.ts +0 -19
  447. package/lib/components/atoms/progress-ring/progress-ring.component.d.ts +0 -20
  448. package/lib/components/atoms/progress-ring/types.d.ts +0 -24
  449. package/lib/components/atoms/qr-code/qr-code.component.d.ts +0 -33
  450. package/lib/components/atoms/qr-code/types.d.ts +0 -124
  451. package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +0 -53
  452. package/lib/components/atoms/rights-footer/types.d.ts +0 -21
  453. package/lib/components/atoms/skeleton/skeleton.component.d.ts +0 -12
  454. package/lib/components/atoms/skeleton/types.d.ts +0 -29
  455. package/lib/components/atoms/text/text.component.d.ts +0 -33
  456. package/lib/components/atoms/text/types.d.ts +0 -42
  457. package/lib/components/atoms/title/title.component.d.ts +0 -21
  458. package/lib/components/atoms/title/types.d.ts +0 -36
  459. package/lib/components/atoms/user-avatar/types.d.ts +0 -74
  460. package/lib/components/atoms/user-avatar/user-avatar.component.d.ts +0 -55
  461. package/lib/components/molecules/accordion/accordion.component.d.ts +0 -18
  462. package/lib/components/molecules/accordion/types.d.ts +0 -47
  463. package/lib/components/molecules/action-card/action-card.component.d.ts +0 -90
  464. package/lib/components/molecules/action-card/types.d.ts +0 -83
  465. package/lib/components/molecules/action-header/action-header.component.d.ts +0 -27
  466. package/lib/components/molecules/action-header/types.d.ts +0 -27
  467. package/lib/components/molecules/ad-slot/ad-slot.component.d.ts +0 -69
  468. package/lib/components/molecules/alert-box/alert-box.component.d.ts +0 -39
  469. package/lib/components/molecules/alert-box/types.d.ts +0 -37
  470. package/lib/components/molecules/breadcrumb/breadcrumb.component.d.ts +0 -22
  471. package/lib/components/molecules/breadcrumb/types.d.ts +0 -45
  472. package/lib/components/molecules/button-group/button-group.component.d.ts +0 -23
  473. package/lib/components/molecules/button-group/types.d.ts +0 -13
  474. package/lib/components/molecules/card/card.component.d.ts +0 -49
  475. package/lib/components/molecules/card/types.d.ts +0 -32
  476. package/lib/components/molecules/check-input/check-input.component.d.ts +0 -36
  477. package/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.d.ts +0 -17
  478. package/lib/components/molecules/chip-group/chip-group.component.d.ts +0 -22
  479. package/lib/components/molecules/chip-group/types.d.ts +0 -65
  480. package/lib/components/molecules/code-display/code-display.component.d.ts +0 -24
  481. package/lib/components/molecules/code-display/types.d.ts +0 -10
  482. package/lib/components/molecules/command-display/command-display.component.d.ts +0 -11
  483. package/lib/components/molecules/command-display/types.d.ts +0 -3
  484. package/lib/components/molecules/comment/comment.component.d.ts +0 -42
  485. package/lib/components/molecules/comment/types.d.ts +0 -171
  486. package/lib/components/molecules/comment-input/comment-input.component.d.ts +0 -16
  487. package/lib/components/molecules/comment-input/types.d.ts +0 -59
  488. package/lib/components/molecules/content-loader/content-loader.component.d.ts +0 -18
  489. package/lib/components/molecules/content-loader/types.d.ts +0 -15
  490. package/lib/components/molecules/content-reaction/content-reaction.component.d.ts +0 -58
  491. package/lib/components/molecules/content-reaction/types.d.ts +0 -77
  492. package/lib/components/molecules/currency-input/currency-input.component.d.ts +0 -40
  493. package/lib/components/molecules/currency-input/types.d.ts +0 -96
  494. package/lib/components/molecules/date-input/date-input.component.d.ts +0 -40
  495. package/lib/components/molecules/date-input/types.d.ts +0 -74
  496. package/lib/components/molecules/date-range-input/date-range-input.component.d.ts +0 -50
  497. package/lib/components/molecules/date-range-input/types.d.ts +0 -109
  498. package/lib/components/molecules/docs-api-table/docs-api-table.component.d.ts +0 -41
  499. package/lib/components/molecules/docs-api-table/types.d.ts +0 -62
  500. package/lib/components/molecules/docs-breadcrumb/docs-breadcrumb.component.d.ts +0 -31
  501. package/lib/components/molecules/docs-breadcrumb/types.d.ts +0 -20
  502. package/lib/components/molecules/docs-callout/docs-callout.component.d.ts +0 -17
  503. package/lib/components/molecules/docs-code-example/docs-code-example.component.d.ts +0 -45
  504. package/lib/components/molecules/docs-code-example/types.d.ts +0 -63
  505. package/lib/components/molecules/docs-nav-links/docs-nav-links.component.d.ts +0 -30
  506. package/lib/components/molecules/docs-nav-links/types.d.ts +0 -31
  507. package/lib/components/molecules/docs-search/docs-search.component.d.ts +0 -47
  508. package/lib/components/molecules/docs-search/types.d.ts +0 -27
  509. package/lib/components/molecules/docs-section/docs-section.component.d.ts +0 -29
  510. package/lib/components/molecules/docs-section/types.d.ts +0 -27
  511. package/lib/components/molecules/email-input/email-input.component.d.ts +0 -34
  512. package/lib/components/molecules/expandable-text/expandable-text.component.d.ts +0 -23
  513. package/lib/components/molecules/expandable-text/types.d.ts +0 -14
  514. package/lib/components/molecules/features-list/features-list.component.d.ts +0 -66
  515. package/lib/components/molecules/features-list/types.d.ts +0 -36
  516. package/lib/components/molecules/feedback-form/feedback-form.component.d.ts +0 -58
  517. package/lib/components/molecules/feedback-form/types.d.ts +0 -54
  518. package/lib/components/molecules/file-input/file-input.component.d.ts +0 -25
  519. package/lib/components/molecules/file-input/types.d.ts +0 -72
  520. package/lib/components/molecules/footer-links/footer-links.component.d.ts +0 -47
  521. package/lib/components/molecules/footer-links/types.d.ts +0 -50
  522. package/lib/components/molecules/glow-card/glow-card.component.d.ts +0 -60
  523. package/lib/components/molecules/glow-card/types.d.ts +0 -94
  524. package/lib/components/molecules/hint/hint.component.d.ts +0 -19
  525. package/lib/components/molecules/hour-input/hour-input.component.d.ts +0 -15
  526. package/lib/components/molecules/image-crop/image-crop.component.d.ts +0 -59
  527. package/lib/components/molecules/image-crop/index.d.ts +0 -1
  528. package/lib/components/molecules/info/info.component.d.ts +0 -9
  529. package/lib/components/molecules/info/types.d.ts +0 -10
  530. package/lib/components/molecules/language-selector/language-selector.component.d.ts +0 -40
  531. package/lib/components/molecules/language-selector/types.d.ts +0 -82
  532. package/lib/components/molecules/layered-card/layered-card.component.d.ts +0 -10
  533. package/lib/components/molecules/layered-card/types.d.ts +0 -15
  534. package/lib/components/molecules/link/link.component.d.ts +0 -24
  535. package/lib/components/molecules/link/types.d.ts +0 -19
  536. package/lib/components/molecules/linked-providers/linked-providers.component.d.ts +0 -30
  537. package/lib/components/molecules/linked-providers/types.d.ts +0 -38
  538. package/lib/components/molecules/links-accordion/links-accordion.component.d.ts +0 -61
  539. package/lib/components/molecules/links-accordion/types.d.ts +0 -39
  540. package/lib/components/molecules/links-cake/links-cake.component.d.ts +0 -17
  541. package/lib/components/molecules/links-cake/types.d.ts +0 -13
  542. package/lib/components/molecules/multi-select-search/multi-select-search.component.d.ts +0 -76
  543. package/lib/components/molecules/notes-box/notes-box.component.d.ts +0 -33
  544. package/lib/components/molecules/notes-box/types.d.ts +0 -35
  545. package/lib/components/molecules/number-from-to/number-from-to.component.d.ts +0 -27
  546. package/lib/components/molecules/number-from-to/types.d.ts +0 -76
  547. package/lib/components/molecules/number-input/number-input.component.d.ts +0 -16
  548. package/lib/components/molecules/number-stepper/number-stepper.component.d.ts +0 -38
  549. package/lib/components/molecules/number-stepper/types.d.ts +0 -88
  550. package/lib/components/molecules/page-links/page-links.component.d.ts +0 -29
  551. package/lib/components/molecules/page-links/types.d.ts +0 -38
  552. package/lib/components/molecules/pagination/pagination.component.d.ts +0 -15
  553. package/lib/components/molecules/pagination/types.d.ts +0 -41
  554. package/lib/components/molecules/password-input/password-input.component.d.ts +0 -37
  555. package/lib/components/molecules/phone-input/phone-input.component.d.ts +0 -59
  556. package/lib/components/molecules/phone-input/types.d.ts +0 -98
  557. package/lib/components/molecules/pill/pill.component.d.ts +0 -44
  558. package/lib/components/molecules/pill/types.d.ts +0 -63
  559. package/lib/components/molecules/pin-input/pin-input.component.d.ts +0 -21
  560. package/lib/components/molecules/pin-input/types.d.ts +0 -69
  561. package/lib/components/molecules/plain-code-box/plain-code-box.component.d.ts +0 -22
  562. package/lib/components/molecules/plain-code-box/types.d.ts +0 -10
  563. package/lib/components/molecules/popover-selector/popover-selector.component.d.ts +0 -42
  564. package/lib/components/molecules/popover-selector/types.d.ts +0 -69
  565. package/lib/components/molecules/progress-status/progress-status.component.d.ts +0 -23
  566. package/lib/components/molecules/progress-status/types.d.ts +0 -20
  567. package/lib/components/molecules/prompter/prompter.component.d.ts +0 -10
  568. package/lib/components/molecules/prompter/types.d.ts +0 -25
  569. package/lib/components/molecules/quote-box/quote-box.component.d.ts +0 -26
  570. package/lib/components/molecules/radio-input/radio-input.component.d.ts +0 -15
  571. package/lib/components/molecules/range-input/range-input.component.d.ts +0 -25
  572. package/lib/components/molecules/range-input/types.d.ts +0 -59
  573. package/lib/components/molecules/rating/rating.component.d.ts +0 -23
  574. package/lib/components/molecules/rating/types.d.ts +0 -41
  575. package/lib/components/molecules/refresher/refresher.component.d.ts +0 -84
  576. package/lib/components/molecules/refresher/types.d.ts +0 -86
  577. package/lib/components/molecules/searchbar/searchbar.component.d.ts +0 -43
  578. package/lib/components/molecules/searchbar/types.d.ts +0 -33
  579. package/lib/components/molecules/segment-control/segment-control.component.d.ts +0 -35
  580. package/lib/components/molecules/segment-control/types.d.ts +0 -46
  581. package/lib/components/molecules/select-input/select-input.component.d.ts +0 -57
  582. package/lib/components/molecules/select-search/select-search.component.d.ts +0 -78
  583. package/lib/components/molecules/share-buttons/share-buttons.component.d.ts +0 -22
  584. package/lib/components/molecules/share-buttons/types.d.ts +0 -108
  585. package/lib/components/molecules/stats-card/stats-card.component.d.ts +0 -20
  586. package/lib/components/molecules/stats-card/types.d.ts +0 -60
  587. package/lib/components/molecules/stepper/stepper.component.d.ts +0 -31
  588. package/lib/components/molecules/stepper/types.d.ts +0 -66
  589. package/lib/components/molecules/swipe-carousel/swipe-carousel.component.d.ts +0 -66
  590. package/lib/components/molecules/swipe-carousel/types.d.ts +0 -35
  591. package/lib/components/molecules/tabs/tabs.component.d.ts +0 -34
  592. package/lib/components/molecules/tabs/types.d.ts +0 -45
  593. package/lib/components/molecules/testimonial-card/testimonial-card.component.d.ts +0 -41
  594. package/lib/components/molecules/testimonial-card/types.d.ts +0 -25
  595. package/lib/components/molecules/text-input/text-input.component.d.ts +0 -42
  596. package/lib/components/molecules/textarea-input/textarea-input.component.d.ts +0 -46
  597. package/lib/components/molecules/textarea-input/types.d.ts +0 -74
  598. package/lib/components/molecules/timeline/timeline.component.d.ts +0 -14
  599. package/lib/components/molecules/timeline/types.d.ts +0 -39
  600. package/lib/components/molecules/title-block/title-block.component.d.ts +0 -12
  601. package/lib/components/molecules/title-block/types.d.ts +0 -15
  602. package/lib/components/molecules/toggle-input/toggle-input.component.d.ts +0 -39
  603. package/lib/components/molecules/toggle-input/types.d.ts +0 -30
  604. package/lib/components/molecules/update-banner/types.d.ts +0 -41
  605. package/lib/components/molecules/update-banner/update-banner.component.d.ts +0 -48
  606. package/lib/components/molecules/username-input/types.d.ts +0 -36
  607. package/lib/components/molecules/username-input/username-input.component.d.ts +0 -58
  608. package/lib/components/organisms/article/article.component.d.ts +0 -108
  609. package/lib/components/organisms/article/types.d.ts +0 -367
  610. package/lib/components/organisms/avatar-upload/avatar-upload.component.d.ts +0 -84
  611. package/lib/components/organisms/avatar-upload/types.d.ts +0 -62
  612. package/lib/components/organisms/banner/banner.component.d.ts +0 -16
  613. package/lib/components/organisms/banner/types.d.ts +0 -29
  614. package/lib/components/organisms/bottom-nav/bottom-nav.component.d.ts +0 -91
  615. package/lib/components/organisms/bottom-nav/types.d.ts +0 -120
  616. package/lib/components/organisms/cards-carousel/cards-carousel.component.d.ts +0 -36
  617. package/lib/components/organisms/cards-carousel/types.d.ts +0 -40
  618. package/lib/components/organisms/comment-section/comment-section.component.d.ts +0 -50
  619. package/lib/components/organisms/comment-section/types.d.ts +0 -144
  620. package/lib/components/organisms/company-footer/company-footer.component.d.ts +0 -37
  621. package/lib/components/organisms/company-footer/types.d.ts +0 -15
  622. package/lib/components/organisms/cookie-banner/cookie-banner.component.d.ts +0 -36
  623. package/lib/components/organisms/cookie-banner/types.d.ts +0 -62
  624. package/lib/components/organisms/data-table/data-table.component.d.ts +0 -63
  625. package/lib/components/organisms/data-table/types.d.ts +0 -219
  626. package/lib/components/organisms/docs-sidebar/docs-sidebar.component.d.ts +0 -51
  627. package/lib/components/organisms/docs-sidebar/types.d.ts +0 -93
  628. package/lib/components/organisms/docs-toc/docs-toc.component.d.ts +0 -62
  629. package/lib/components/organisms/docs-toc/types.d.ts +0 -62
  630. package/lib/components/organisms/faq/faq.component.d.ts +0 -46
  631. package/lib/components/organisms/faq/types.d.ts +0 -53
  632. package/lib/components/organisms/footer/footer.component.d.ts +0 -36
  633. package/lib/components/organisms/footer/types.d.ts +0 -16
  634. package/lib/components/organisms/form/factory.d.ts +0 -17
  635. package/lib/components/organisms/form/form-footer/form-footer.component.d.ts +0 -17
  636. package/lib/components/organisms/form/form.component.d.ts +0 -72
  637. package/lib/components/organisms/fun-header/fun-header.component.d.ts +0 -72
  638. package/lib/components/organisms/fun-header/types.d.ts +0 -28
  639. package/lib/components/organisms/header/header.component.d.ts +0 -22
  640. package/lib/components/organisms/header/types.d.ts +0 -16
  641. package/lib/components/organisms/infinite-list/infinite-list.component.d.ts +0 -113
  642. package/lib/components/organisms/infinite-list/types.d.ts +0 -197
  643. package/lib/components/organisms/item-list/item-list.component.d.ts +0 -43
  644. package/lib/components/organisms/item-list/types.d.ts +0 -126
  645. package/lib/components/organisms/login/login.component.d.ts +0 -79
  646. package/lib/components/organisms/login/types.d.ts +0 -70
  647. package/lib/components/organisms/menu/menu.component.d.ts +0 -44
  648. package/lib/components/organisms/menu/types.d.ts +0 -23
  649. package/lib/components/organisms/no-content/no-content.component.d.ts +0 -14
  650. package/lib/components/organisms/no-content/types.d.ts +0 -17
  651. package/lib/components/organisms/rotating-text/rotating-text.component.d.ts +0 -47
  652. package/lib/components/organisms/rotating-text/types.d.ts +0 -28
  653. package/lib/components/organisms/skeleton-layout/skeleton-layout.component.d.ts +0 -37
  654. package/lib/components/organisms/skeleton-layout/types.d.ts +0 -50
  655. package/lib/components/organisms/tabbed-content/tabbed-content.component.d.ts +0 -65
  656. package/lib/components/organisms/tabbed-content/types.d.ts +0 -53
  657. package/lib/components/organisms/terminal-404/terminal-404.component.d.ts +0 -42
  658. package/lib/components/organisms/terminal-404/types.d.ts +0 -22
  659. package/lib/components/organisms/testimonial-carousel/testimonial-carousel.component.d.ts +0 -33
  660. package/lib/components/organisms/testimonial-carousel/types.d.ts +0 -8
  661. package/lib/components/organisms/toolbar/toolbar.component.d.ts +0 -85
  662. package/lib/components/organisms/toolbar/types.d.ts +0 -31
  663. package/lib/components/organisms/wizard/types.d.ts +0 -42
  664. package/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.d.ts +0 -23
  665. package/lib/components/organisms/wizard/wizard.component.d.ts +0 -27
  666. package/lib/components/templates/auth-background/auth-background.component.d.ts +0 -62
  667. package/lib/components/templates/auth-background/types.d.ts +0 -30
  668. package/lib/components/templates/docs-layout/docs-layout.component.d.ts +0 -42
  669. package/lib/components/templates/docs-layout/types.d.ts +0 -39
  670. package/lib/components/templates/docs-page/docs-page.component.d.ts +0 -61
  671. package/lib/components/templates/docs-page/types.d.ts +0 -121
  672. package/lib/components/templates/docs-shell/docs-shell.component.d.ts +0 -33
  673. package/lib/components/templates/docs-shell/types.d.ts +0 -152
  674. package/lib/components/templates/maintenance-page/maintenance-page.component.d.ts +0 -57
  675. package/lib/components/templates/maintenance-page/types.d.ts +0 -12
  676. package/lib/components/templates/page-content/page-content.component.d.ts +0 -107
  677. package/lib/components/templates/page-content/types.d.ts +0 -27
  678. package/lib/components/templates/page-template/page-template.component.d.ts +0 -54
  679. package/lib/components/templates/page-template/types.d.ts +0 -17
  680. package/lib/components/templates/page-wrapper/page-wrapper.component.d.ts +0 -99
  681. package/lib/components/templates/page-wrapper/types.d.ts +0 -26
  682. package/lib/components/templates/simple/simple.component.d.ts +0 -14
  683. package/lib/components/templates/simple/types.d.ts +0 -10
  684. package/lib/components/types.d.ts +0 -304
  685. package/lib/config/company-footer.config.d.ts +0 -118
  686. package/lib/config/index.d.ts +0 -4
  687. package/lib/services/ads/ads-loader.service.d.ts +0 -41
  688. package/lib/services/ads/ads.service.d.ts +0 -99
  689. package/lib/services/ads/config.d.ts +0 -53
  690. package/lib/services/ads/index.d.ts +0 -9
  691. package/lib/services/ads/types.d.ts +0 -106
  692. package/lib/services/app-config/app-config.service.d.ts +0 -115
  693. package/lib/services/app-config/config.d.ts +0 -31
  694. package/lib/services/app-config/index.d.ts +0 -47
  695. package/lib/services/app-config/types.d.ts +0 -54
  696. package/lib/services/app-config/version.d.ts +0 -64
  697. package/lib/services/app-version/app-version.service.d.ts +0 -64
  698. package/lib/services/app-version/config.d.ts +0 -35
  699. package/lib/services/app-version/index.d.ts +0 -23
  700. package/lib/services/app-version/types.d.ts +0 -35
  701. package/lib/services/auth/auth-state.service.d.ts +0 -106
  702. package/lib/services/auth/auth.service.d.ts +0 -429
  703. package/lib/services/auth/config.d.ts +0 -38
  704. package/lib/services/auth/device.service.d.ts +0 -101
  705. package/lib/services/auth/guards.d.ts +0 -126
  706. package/lib/services/auth/handoff.service.d.ts +0 -159
  707. package/lib/services/auth/index.d.ts +0 -89
  708. package/lib/services/auth/interceptor.d.ts +0 -22
  709. package/lib/services/auth/notification-action.service.d.ts +0 -34
  710. package/lib/services/auth/oauth-callback.component.d.ts +0 -34
  711. package/lib/services/auth/oauth.service.d.ts +0 -99
  712. package/lib/services/auth/org-switch.service.d.ts +0 -127
  713. package/lib/services/auth/session.service.d.ts +0 -60
  714. package/lib/services/auth/storage.service.d.ts +0 -52
  715. package/lib/services/auth/sync.service.d.ts +0 -49
  716. package/lib/services/auth/token.service.d.ts +0 -57
  717. package/lib/services/auth/types.d.ts +0 -862
  718. package/lib/services/confirmation-dialog/confirmation-dialog.service.d.ts +0 -71
  719. package/lib/services/confirmation-dialog/types.d.ts +0 -61
  720. package/lib/services/content/content-types/blog.d.ts +0 -148
  721. package/lib/services/content/content-types/documentation.d.ts +0 -183
  722. package/lib/services/content/content-types/news.d.ts +0 -162
  723. package/lib/services/content/index.d.ts +0 -49
  724. package/lib/services/content/transformer.d.ts +0 -96
  725. package/lib/services/content/types.d.ts +0 -220
  726. package/lib/services/docs/docs-navigation.service.d.ts +0 -51
  727. package/lib/services/donation/config.d.ts +0 -33
  728. package/lib/services/donation/donation.service.d.ts +0 -54
  729. package/lib/services/donation/index.d.ts +0 -25
  730. package/lib/services/donation/types.d.ts +0 -85
  731. package/lib/services/download.service.d.ts +0 -21
  732. package/lib/services/feedback/config.d.ts +0 -35
  733. package/lib/services/feedback/feedback.service.d.ts +0 -134
  734. package/lib/services/feedback/index.d.ts +0 -40
  735. package/lib/services/feedback/types.d.ts +0 -173
  736. package/lib/services/firebase/analytics-error-handler.d.ts +0 -54
  737. package/lib/services/firebase/analytics-router-tracker.d.ts +0 -51
  738. package/lib/services/firebase/analytics-types.d.ts +0 -221
  739. package/lib/services/firebase/analytics.service.d.ts +0 -256
  740. package/lib/services/firebase/config.d.ts +0 -49
  741. package/lib/services/firebase/firebase.service.d.ts +0 -303
  742. package/lib/services/firebase/firestore-collection.d.ts +0 -199
  743. package/lib/services/firebase/firestore.service.d.ts +0 -335
  744. package/lib/services/firebase/index.d.ts +0 -44
  745. package/lib/services/firebase/messaging.service.d.ts +0 -341
  746. package/lib/services/firebase/notifications.service.d.ts +0 -158
  747. package/lib/services/firebase/shared-config.d.ts +0 -151
  748. package/lib/services/firebase/storage.service.d.ts +0 -238
  749. package/lib/services/firebase/types.d.ts +0 -374
  750. package/lib/services/firebase/utils/path-builder.d.ts +0 -132
  751. package/lib/services/firebase/utils/query-builder.d.ts +0 -210
  752. package/lib/services/i18n/config.d.ts +0 -29
  753. package/lib/services/i18n/default-content.d.ts +0 -30
  754. package/lib/services/i18n/i18n.service.d.ts +0 -128
  755. package/lib/services/i18n/index.d.ts +0 -6
  756. package/lib/services/i18n/input-i18n.helper.d.ts +0 -70
  757. package/lib/services/i18n/translate.pipe.d.ts +0 -36
  758. package/lib/services/i18n/types.d.ts +0 -93
  759. package/lib/services/icons.service.d.ts +0 -9
  760. package/lib/services/image/image.service.d.ts +0 -76
  761. package/lib/services/image/index.d.ts +0 -2
  762. package/lib/services/image/types.d.ts +0 -74
  763. package/lib/services/in-app-browser.service.d.ts +0 -16
  764. package/lib/services/legal-link/legal-link.service.d.ts +0 -73
  765. package/lib/services/link-processor.service.d.ts +0 -104
  766. package/lib/services/local-storage.service.d.ts +0 -27
  767. package/lib/services/locale.service.d.ts +0 -52
  768. package/lib/services/markdown-article/legal-content.service.d.ts +0 -73
  769. package/lib/services/markdown-article/markdown-article-parser.d.ts +0 -38
  770. package/lib/services/markdown-article/markdown-article-parser.service.d.ts +0 -12
  771. package/lib/services/meta/index.d.ts +0 -2
  772. package/lib/services/meta/meta.service.d.ts +0 -23
  773. package/lib/services/meta/types.d.ts +0 -12
  774. package/lib/services/modal/modal.service.d.ts +0 -100
  775. package/lib/services/modal/simple-modal-content.component.d.ts +0 -19
  776. package/lib/services/modal/types.d.ts +0 -155
  777. package/lib/services/navigation/index.d.ts +0 -2
  778. package/lib/services/navigation/navigation.service.d.ts +0 -134
  779. package/lib/services/navigation/types.d.ts +0 -67
  780. package/lib/services/page-refresh/page-refresh.service.d.ts +0 -86
  781. package/lib/services/pagination/index.d.ts +0 -2
  782. package/lib/services/pagination/pagination.service.d.ts +0 -43
  783. package/lib/services/pagination/types.d.ts +0 -113
  784. package/lib/services/preferences/index.d.ts +0 -2
  785. package/lib/services/preferences/preferences.service.d.ts +0 -61
  786. package/lib/services/preferences/preferences.types.d.ts +0 -35
  787. package/lib/services/presets/config.d.ts +0 -32
  788. package/lib/services/presets/index.d.ts +0 -3
  789. package/lib/services/presets/preset.service.d.ts +0 -69
  790. package/lib/services/presets/types.d.ts +0 -39
  791. package/lib/services/qr-generator/qr-generator.service.d.ts +0 -115
  792. package/lib/services/qr-generator/types.d.ts +0 -141
  793. package/lib/services/refreshable-stream/index.d.ts +0 -7
  794. package/lib/services/refreshable-stream/refreshable-stream.d.ts +0 -113
  795. package/lib/services/skeleton/config.d.ts +0 -30
  796. package/lib/services/skeleton/directives/loading.directive.d.ts +0 -71
  797. package/lib/services/skeleton/index.d.ts +0 -10
  798. package/lib/services/skeleton/skeleton.service.d.ts +0 -127
  799. package/lib/services/skeleton/templates/detail-skeleton.component.d.ts +0 -18
  800. package/lib/services/skeleton/templates/form-skeleton.component.d.ts +0 -22
  801. package/lib/services/skeleton/templates/grid-skeleton.component.d.ts +0 -18
  802. package/lib/services/skeleton/templates/list-skeleton.component.d.ts +0 -17
  803. package/lib/services/skeleton/templates/profile-skeleton.component.d.ts +0 -20
  804. package/lib/services/skeleton/templates/table-skeleton.component.d.ts +0 -17
  805. package/lib/services/skeleton/types.d.ts +0 -111
  806. package/lib/services/theme.service.d.ts +0 -76
  807. package/lib/services/toast.service.d.ts +0 -28
  808. package/lib/services/types.d.ts +0 -1
  809. package/lib/shared/constants/storage.d.ts +0 -2
  810. package/lib/shared/pipes/process-links.pipe.d.ts +0 -55
  811. package/lib/shared/utils/datetime.d.ts +0 -21
  812. package/lib/shared/utils/dom.d.ts +0 -13
  813. package/lib/shared/utils/form-defaults.d.ts +0 -30
  814. package/lib/shared/utils/styles.d.ts +0 -13
  815. package/lib/shared/utils/text.d.ts +0 -11
  816. package/lib/version.d.ts +0 -5
  817. package/public-api.d.ts +0 -316
@@ -1,152 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { VALTECH_AUTH_CONFIG } from './config';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Servicio para persistencia de estado de autenticación en localStorage.
6
- */
7
- export class AuthStorageService {
8
- constructor(config) {
9
- this.config = config;
10
- const prefix = this.config.storagePrefix || 'valtech_auth_';
11
- this.keys = {
12
- ACCESS_TOKEN: `${prefix}access_token`,
13
- REFRESH_TOKEN: `${prefix}refresh_token`,
14
- ROLES: `${prefix}roles`,
15
- PERMISSIONS: `${prefix}permissions`,
16
- IS_SUPER_ADMIN: `${prefix}is_super_admin`,
17
- EXPIRES_AT: `${prefix}expires_at`,
18
- };
19
- }
20
- /**
21
- * Guarda el estado completo de autenticación.
22
- */
23
- saveState(state) {
24
- try {
25
- localStorage.setItem(this.keys.ACCESS_TOKEN, state.accessToken);
26
- localStorage.setItem(this.keys.REFRESH_TOKEN, state.refreshToken);
27
- localStorage.setItem(this.keys.ROLES, JSON.stringify(state.roles));
28
- localStorage.setItem(this.keys.PERMISSIONS, JSON.stringify(state.permissions));
29
- localStorage.setItem(this.keys.IS_SUPER_ADMIN, String(state.isSuperAdmin));
30
- if (state.expiresAt) {
31
- localStorage.setItem(this.keys.EXPIRES_AT, String(state.expiresAt));
32
- }
33
- }
34
- catch (e) {
35
- console.warn('[ValtechAuth] Error guardando estado en storage:', e);
36
- }
37
- }
38
- /**
39
- * Carga el estado de autenticación desde storage.
40
- */
41
- loadState() {
42
- try {
43
- const accessToken = localStorage.getItem(this.keys.ACCESS_TOKEN);
44
- const refreshToken = localStorage.getItem(this.keys.REFRESH_TOKEN);
45
- const rolesJson = localStorage.getItem(this.keys.ROLES);
46
- const permissionsJson = localStorage.getItem(this.keys.PERMISSIONS);
47
- const isSuperAdmin = localStorage.getItem(this.keys.IS_SUPER_ADMIN) === 'true';
48
- const expiresAtStr = localStorage.getItem(this.keys.EXPIRES_AT);
49
- return {
50
- accessToken: accessToken || undefined,
51
- refreshToken: refreshToken || undefined,
52
- roles: rolesJson ? JSON.parse(rolesJson) : [],
53
- permissions: permissionsJson ? JSON.parse(permissionsJson) : [],
54
- isSuperAdmin,
55
- expiresAt: expiresAtStr ? Number(expiresAtStr) : undefined,
56
- };
57
- }
58
- catch (e) {
59
- console.warn('[ValtechAuth] Error cargando estado desde storage:', e);
60
- return {};
61
- }
62
- }
63
- /**
64
- * Guarda solo el access token.
65
- */
66
- saveAccessToken(token, expiresAt) {
67
- try {
68
- localStorage.setItem(this.keys.ACCESS_TOKEN, token);
69
- if (expiresAt) {
70
- localStorage.setItem(this.keys.EXPIRES_AT, String(expiresAt));
71
- }
72
- }
73
- catch (e) {
74
- console.warn('[ValtechAuth] Error guardando access token:', e);
75
- }
76
- }
77
- /**
78
- * Guarda el refresh token (token rotation).
79
- */
80
- saveRefreshToken(token) {
81
- try {
82
- localStorage.setItem(this.keys.REFRESH_TOKEN, token);
83
- }
84
- catch (e) {
85
- console.warn('[ValtechAuth] Error guardando refresh token:', e);
86
- }
87
- }
88
- /**
89
- * Guarda los permisos actualizados.
90
- */
91
- savePermissions(response) {
92
- try {
93
- localStorage.setItem(this.keys.ROLES, JSON.stringify(response.roles));
94
- localStorage.setItem(this.keys.PERMISSIONS, JSON.stringify(response.permissions));
95
- localStorage.setItem(this.keys.IS_SUPER_ADMIN, String(response.isSuperAdmin));
96
- }
97
- catch (e) {
98
- console.warn('[ValtechAuth] Error guardando permisos:', e);
99
- }
100
- }
101
- /**
102
- * Carga los permisos desde storage.
103
- */
104
- loadPermissions() {
105
- try {
106
- const rolesJson = localStorage.getItem(this.keys.ROLES);
107
- const permissionsJson = localStorage.getItem(this.keys.PERMISSIONS);
108
- const isSuperAdmin = localStorage.getItem(this.keys.IS_SUPER_ADMIN) === 'true';
109
- return {
110
- roles: rolesJson ? JSON.parse(rolesJson) : [],
111
- permissions: permissionsJson ? JSON.parse(permissionsJson) : [],
112
- isSuperAdmin,
113
- };
114
- }
115
- catch {
116
- return { roles: [], permissions: [], isSuperAdmin: false };
117
- }
118
- }
119
- /**
120
- * Obtiene el refresh token.
121
- */
122
- getRefreshToken() {
123
- return localStorage.getItem(this.keys.REFRESH_TOKEN);
124
- }
125
- /**
126
- * Limpia todo el estado de autenticación.
127
- */
128
- clear() {
129
- try {
130
- Object.values(this.keys).forEach((key) => localStorage.removeItem(key));
131
- }
132
- catch (e) {
133
- console.warn('[ValtechAuth] Error limpiando storage:', e);
134
- }
135
- }
136
- /**
137
- * Verifica si hay estado guardado.
138
- */
139
- hasStoredState() {
140
- return !!localStorage.getItem(this.keys.ACCESS_TOKEN);
141
- }
142
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuthStorageService, deps: [{ token: VALTECH_AUTH_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
143
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuthStorageService, providedIn: 'root' }); }
144
- }
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuthStorageService, decorators: [{
146
- type: Injectable,
147
- args: [{ providedIn: 'root' }]
148
- }], ctorParameters: () => [{ type: undefined, decorators: [{
149
- type: Inject,
150
- args: [VALTECH_AUTH_CONFIG]
151
- }] }] });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL3N0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBZS9DOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUc3QixZQUN1QyxNQUF5QjtRQUF6QixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUU5RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsSUFBSSxlQUFlLENBQUM7UUFDNUQsSUFBSSxDQUFDLElBQUksR0FBRztZQUNWLFlBQVksRUFBRSxHQUFHLE1BQU0sY0FBYztZQUNyQyxhQUFhLEVBQUUsR0FBRyxNQUFNLGVBQWU7WUFDdkMsS0FBSyxFQUFFLEdBQUcsTUFBTSxPQUFPO1lBQ3ZCLFdBQVcsRUFBRSxHQUFHLE1BQU0sYUFBYTtZQUNuQyxjQUFjLEVBQUUsR0FBRyxNQUFNLGdCQUFnQjtZQUN6QyxVQUFVLEVBQUUsR0FBRyxNQUFNLFlBQVk7U0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsQ0FBQyxLQUFzQjtRQUM5QixJQUFJLENBQUM7WUFDSCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNoRSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNsRSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFT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LENBQUM7K0dBL0pVLGtCQUFrQixrQkFJbkIsbUJBQW1CO21IQUpsQixrQkFBa0IsY0FETCxNQUFNOzs0RkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBSzdCLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWQUxURUNIX0FVVEhfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgU3RvcmVkQXV0aFN0YXRlLCBHZXRQZXJtaXNzaW9uc1Jlc3BvbnNlLCBWYWx0ZWNoQXV0aENvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIENsYXZlcyBkZSBzdG9yYWdlIHBhcmEgYXV0ZW50aWNhY2nDs24uXG4gKi9cbmludGVyZmFjZSBTdG9yYWdlS2V5cyB7XG4gIEFDQ0VTU19UT0tFTjogc3RyaW5nO1xuICBSRUZSRVNIX1RPS0VOOiBzdHJpbmc7XG4gIFJPTEVTOiBzdHJpbmc7XG4gIFBFUk1JU1NJT05TOiBzdHJpbmc7XG4gIElTX1NVUEVSX0FETUlOOiBzdHJpbmc7XG4gIEVYUElSRVNfQVQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBTZXJ2aWNpbyBwYXJhIHBlcnNpc3RlbmNpYSBkZSBlc3RhZG8gZGUgYXV0ZW50aWNhY2nDs24gZW4gbG9jYWxTdG9yYWdlLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEF1dGhTdG9yYWdlU2VydmljZSB7XG4gIHByaXZhdGUga2V5czogU3RvcmFnZUtleXM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChWQUxURUNIX0FVVEhfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogVmFsdGVjaEF1dGhDb25maWdcbiAgKSB7XG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5jb25maWcuc3RvcmFnZVByZWZpeCB8fCAndmFsdGVjaF9hdXRoXyc7XG4gICAgdGhpcy5rZXlzID0ge1xuICAgICAgQUNDRVNTX1RPS0VOOiBgJHtwcmVmaXh9YWNjZXNzX3Rva2VuYCxcbiAgICAgIFJFRlJFU0hfVE9LRU46IGAke3ByZWZpeH1yZWZyZXNoX3Rva2VuYCxcbiAgICAgIFJPTEVTOiBgJHtwcmVmaXh9cm9sZXNgLFxuICAgICAgUEVSTUlTU0lPTlM6IGAke3ByZWZpeH1wZXJtaXNzaW9uc2AsXG4gICAgICBJU19TVVBFUl9BRE1JTjogYCR7cHJlZml4fWlzX3N1cGVyX2FkbWluYCxcbiAgICAgIEVYUElSRVNfQVQ6IGAke3ByZWZpeH1leHBpcmVzX2F0YCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEd1YXJkYSBlbCBlc3RhZG8gY29tcGxldG8gZGUgYXV0ZW50aWNhY2nDs24uXG4gICAqL1xuICBzYXZlU3RhdGUoc3RhdGU6IFN0b3JlZEF1dGhTdGF0ZSk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuQUNDRVNTX1RPS0VOLCBzdGF0ZS5hY2Nlc3NUb2tlbik7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuUkVGUkVTSF9UT0tFTiwgc3RhdGUucmVmcmVzaFRva2VuKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMua2V5cy5ST0xFUywgSlNPTi5zdHJpbmdpZnkoc3RhdGUucm9sZXMpKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICB0aGlzLmtleXMuUEVSTUlTU0lPTlMsXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHN0YXRlLnBlcm1pc3Npb25zKVxuICAgICAgKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICB0aGlzLmtleXMuSVNfU1VQRVJfQURNSU4sXG4gICAgICAgIFN0cmluZyhzdGF0ZS5pc1N1cGVyQWRtaW4pXG4gICAgICApO1xuICAgICAgaWYgKHN0YXRlLmV4cGlyZXNBdCkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuRVhQSVJFU19BVCwgU3RyaW5nKHN0YXRlLmV4cGlyZXNBdCkpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW1ZhbHRlY2hBdXRoXSBFcnJvciBndWFyZGFuZG8gZXN0YWRvIGVuIHN0b3JhZ2U6JywgZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhcmdhIGVsIGVzdGFkbyBkZSBhdXRlbnRpY2FjacOzbiBkZXNkZSBzdG9yYWdlLlxuICAgKi9cbiAgbG9hZFN0YXRlKCk6IFBhcnRpYWw8U3RvcmVkQXV0aFN0YXRlPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLkFDQ0VTU19UT0tFTik7XG4gICAgICBjb25zdCByZWZyZXNoVG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuUkVGUkVTSF9UT0tFTik7XG4gICAgICBjb25zdCByb2xlc0pzb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuUk9MRVMpO1xuICAgICAgY29uc3QgcGVybWlzc2lvbnNKc29uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLlBFUk1JU1NJT05TKTtcbiAgICAgIGNvbnN0IGlzU3VwZXJBZG1pbiA9XG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5JU19TVVBFUl9BRE1JTikgPT09ICd0cnVlJztcbiAgICAgIGNvbnN0IGV4cGlyZXNBdFN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5FWFBJUkVTX0FUKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWNjZXNzVG9rZW46IGFjY2Vzc1Rva2VuIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgcmVmcmVzaFRva2VuOiByZWZyZXNoVG9rZW4gfHwgdW5kZWZpbmVkLFxuICAgICAgICByb2xlczogcm9sZXNKc29uID8gSlNPTi5wYXJzZShyb2xlc0pzb24pIDogW10sXG4gICAgICAgIHBlcm1pc3Npb25zOiBwZXJtaXNzaW9uc0pzb24gPyBKU09OLnBhcnNlKHBlcm1pc3Npb25zSnNvbikgOiBbXSxcbiAgICAgICAgaXNTdXBlckFkbWluLFxuICAgICAgICBleHBpcmVzQXQ6IGV4cGlyZXNBdFN0ciA/IE51bWJlcihleHBpcmVzQXRTdHIpIDogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tWYWx0ZWNoQXV0aF0gRXJyb3IgY2FyZ2FuZG8gZXN0YWRvIGRlc2RlIHN0b3JhZ2U6JywgZSk7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEd1YXJkYSBzb2xvIGVsIGFjY2VzcyB0b2tlbi5cbiAgICovXG4gIHNhdmVBY2Nlc3NUb2tlbih0b2tlbjogc3RyaW5nLCBleHBpcmVzQXQ/OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLkFDQ0VTU19UT0tFTiwgdG9rZW4pO1xuICAgICAgaWYgKGV4cGlyZXNBdCkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuRVhQSVJFU19BVCwgU3RyaW5nKGV4cGlyZXNBdCkpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW1ZhbHRlY2hBdXRoXSBFcnJvciBndWFyZGFuZG8gYWNjZXNzIHRva2VuOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHdWFyZGEgZWwgcmVmcmVzaCB0b2tlbiAodG9rZW4gcm90YXRpb24pLlxuICAgKi9cbiAgc2F2ZVJlZnJlc2hUb2tlbih0b2tlbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMua2V5cy5SRUZSRVNIX1RPS0VOLCB0b2tlbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdbVmFsdGVjaEF1dGhdIEVycm9yIGd1YXJkYW5kbyByZWZyZXNoIHRva2VuOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHdWFyZGEgbG9zIHBlcm1pc29zIGFjdHVhbGl6YWRvcy5cbiAgICovXG4gIHNhdmVQZXJtaXNzaW9ucyhyZXNwb25zZTogR2V0UGVybWlzc2lvbnNSZXNwb25zZSk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuUk9MRVMsIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLnJvbGVzKSk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgICAgdGhpcy5rZXlzLlBFUk1JU1NJT05TLFxuICAgICAgICBKU09OLnN0cmluZ2lmeShyZXNwb25zZS5wZXJtaXNzaW9ucylcbiAgICAgICk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgICAgdGhpcy5rZXlzLklTX1NVUEVSX0FETUlOLFxuICAgICAgICBTdHJpbmcocmVzcG9uc2UuaXNTdXBlckFkbWluKVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tWYWx0ZWNoQXV0aF0gRXJyb3IgZ3VhcmRhbmRvIHBlcm1pc29zOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYXJnYSBsb3MgcGVybWlzb3MgZGVzZGUgc3RvcmFnZS5cbiAgICovXG4gIGxvYWRQZXJtaXNzaW9ucygpOiB7XG4gICAgcm9sZXM6IHN0cmluZ1tdO1xuICAgIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgICBpc1N1cGVyQWRtaW46IGJvb2xlYW47XG4gIH0ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByb2xlc0pzb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuUk9MRVMpO1xuICAgICAgY29uc3QgcGVybWlzc2lvbnNKc29uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLlBFUk1JU1NJT05TKTtcbiAgICAgIGNvbnN0IGlzU3VwZXJBZG1pbiA9XG4gICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5JU19TVVBFUl9BRE1JTikgPT09ICd0cnVlJztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcm9sZXM6IHJvbGVzSnNvbiA/IEpTT04ucGFyc2Uocm9sZXNKc29uKSA6IFtdLFxuICAgICAgICBwZXJtaXNzaW9uczogcGVybWlzc2lvbnNKc29uID8gSlNPTi5wYXJzZShwZXJtaXNzaW9uc0pzb24pIDogW10sXG4gICAgICAgIGlzU3VwZXJBZG1pbixcbiAgICAgIH07XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4geyByb2xlczogW10sIHBlcm1pc3Npb25zOiBbXSwgaXNTdXBlckFkbWluOiBmYWxzZSB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGVsIHJlZnJlc2ggdG9rZW4uXG4gICAqL1xuICBnZXRSZWZyZXNoVG9rZW4oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5SRUZSRVNIX1RPS0VOKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaW1waWEgdG9kbyBlbCBlc3RhZG8gZGUgYXV0ZW50aWNhY2nDs24uXG4gICAqL1xuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgT2JqZWN0LnZhbHVlcyh0aGlzLmtleXMpLmZvckVhY2goKGtleSkgPT4gbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdbVmFsdGVjaEF1dGhdIEVycm9yIGxpbXBpYW5kbyBzdG9yYWdlOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzaSBoYXkgZXN0YWRvIGd1YXJkYWRvLlxuICAgKi9cbiAgaGFzU3RvcmVkU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLkFDQ0VTU19UT0tFTik7XG4gIH1cbn1cbiJdfQ==
@@ -1,149 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { VALTECH_AUTH_CONFIG } from './config';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Servicio para sincronización de estado de autenticación entre pestañas.
7
- * Usa BroadcastChannel API con fallback a storage events.
8
- */
9
- export class AuthSyncService {
10
- constructor(config) {
11
- this.config = config;
12
- this.channel = null;
13
- this.eventSubject = new Subject();
14
- this.storageListener = null;
15
- /** Observable de eventos de sincronización */
16
- this.onEvent$ = this.eventSubject.asObservable();
17
- const prefix = this.config.storagePrefix || 'valtech_auth_';
18
- this.channelName = `${prefix}sync_channel`;
19
- }
20
- /**
21
- * Inicia la sincronización entre pestañas.
22
- */
23
- start() {
24
- if (!this.config.enableTabSync) {
25
- return;
26
- }
27
- // Intentar usar BroadcastChannel API (mejor rendimiento)
28
- if (typeof BroadcastChannel !== 'undefined') {
29
- this.initBroadcastChannel();
30
- }
31
- else {
32
- // Fallback a storage events
33
- this.initStorageEvents();
34
- }
35
- }
36
- /**
37
- * Detiene la sincronización.
38
- */
39
- stop() {
40
- if (this.channel) {
41
- this.channel.close();
42
- this.channel = null;
43
- }
44
- if (this.storageListener) {
45
- window.removeEventListener('storage', this.storageListener);
46
- this.storageListener = null;
47
- }
48
- }
49
- /**
50
- * Envía un evento a otras pestañas.
51
- */
52
- broadcast(event) {
53
- if (!this.config.enableTabSync) {
54
- return;
55
- }
56
- const fullEvent = {
57
- ...event,
58
- timestamp: Date.now(),
59
- };
60
- if (this.channel) {
61
- this.channel.postMessage(fullEvent);
62
- }
63
- else {
64
- // Fallback: usar localStorage para notificar
65
- this.broadcastViaStorage(fullEvent);
66
- }
67
- }
68
- ngOnDestroy() {
69
- this.stop();
70
- this.eventSubject.complete();
71
- }
72
- /**
73
- * Inicializa BroadcastChannel API.
74
- */
75
- initBroadcastChannel() {
76
- try {
77
- this.channel = new BroadcastChannel(this.channelName);
78
- this.channel.onmessage = (event) => {
79
- this.handleEvent(event.data);
80
- };
81
- this.channel.onmessageerror = () => {
82
- console.warn('[ValtechAuth] Error en BroadcastChannel, usando fallback');
83
- this.channel?.close();
84
- this.channel = null;
85
- this.initStorageEvents();
86
- };
87
- }
88
- catch {
89
- // BroadcastChannel no disponible, usar fallback
90
- this.initStorageEvents();
91
- }
92
- }
93
- /**
94
- * Inicializa fallback con storage events.
95
- */
96
- initStorageEvents() {
97
- const storageKey = `${this.config.storagePrefix}sync_event`;
98
- this.storageListener = (event) => {
99
- if (event.key === storageKey && event.newValue) {
100
- try {
101
- const syncEvent = JSON.parse(event.newValue);
102
- this.handleEvent(syncEvent);
103
- }
104
- catch {
105
- // Ignorar eventos mal formados
106
- }
107
- }
108
- };
109
- window.addEventListener('storage', this.storageListener);
110
- }
111
- /**
112
- * Envía evento via localStorage (fallback).
113
- */
114
- broadcastViaStorage(event) {
115
- const storageKey = `${this.config.storagePrefix}sync_event`;
116
- try {
117
- // Escribir y luego limpiar para permitir múltiples eventos del mismo tipo
118
- localStorage.setItem(storageKey, JSON.stringify(event));
119
- // Usar setTimeout para permitir que otras pestañas lean el valor
120
- setTimeout(() => {
121
- localStorage.removeItem(storageKey);
122
- }, 100);
123
- }
124
- catch {
125
- console.warn('[ValtechAuth] Error enviando evento via storage');
126
- }
127
- }
128
- /**
129
- * Maneja un evento recibido.
130
- */
131
- handleEvent(event) {
132
- // Verificar que el evento no sea muy antiguo (más de 5 segundos)
133
- const age = Date.now() - event.timestamp;
134
- if (age > 5000) {
135
- return;
136
- }
137
- this.eventSubject.next(event);
138
- }
139
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuthSyncService, deps: [{ token: VALTECH_AUTH_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
140
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuthSyncService, providedIn: 'root' }); }
141
- }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuthSyncService, decorators: [{
143
- type: Injectable,
144
- args: [{ providedIn: 'root' }]
145
- }], ctorParameters: () => [{ type: undefined, decorators: [{
146
- type: Inject,
147
- args: [VALTECH_AUTH_CONFIG]
148
- }] }] });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL3N5bmMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFHL0M7OztHQUdHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUFTMUIsWUFDdUMsTUFBeUI7UUFBekIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFUeEQsWUFBTyxHQUE0QixJQUFJLENBQUM7UUFFeEMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQUM1QyxvQkFBZSxHQUEyQyxJQUFJLENBQUM7UUFFdkUsOENBQThDO1FBQ3JDLGFBQVEsR0FBOEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUs5RSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsSUFBSSxlQUFlLENBQUM7UUFDNUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLE1BQU0sY0FBYyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMvQixPQUFPO1FBQ1QsQ0FBQztRQUVELHlEQUF5RDtRQUN6RCxJQUFJLE9BQU8sZ0JBQWdCLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDOUIsQ0FBQzthQUFNLENBQUM7WUFDTiw0QkFBNEI7WUFDNUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENB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Q0FBQyxLQUFvQjtRQUM5QyxNQUFNLFVBQVUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxZQUFZLENBQUM7UUFFNUQsSUFBSSxDQUFDO1lBQ0gsMEVBQTBFO1lBQzFFLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN4RCxpRUFBaUU7WUFDakUsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxZQUFZLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3RDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNWLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFDbEUsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLFdBQVcsQ0FBQyxLQUFvQjtRQUN0QyxpRUFBaUU7UUFDakUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDekMsSUFBSSxHQUFHLEdBQUcsSUFBSSxFQUFFLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7K0dBbEpVLGVBQWUsa0JBVWhCLG1CQUFtQjttSEFWbEIsZUFBZSxjQURGLE1BQU07OzRGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBVzdCLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFZBTFRFQ0hfQVVUSF9DT05GSUcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBBdXRoU3luY0V2ZW50LCBBdXRoU3luY0V2ZW50VHlwZSwgVmFsdGVjaEF1dGhDb25maWcgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBTZXJ2aWNpbyBwYXJhIHNpbmNyb25pemFjacOzbiBkZSBlc3RhZG8gZGUgYXV0ZW50aWNhY2nDs24gZW50cmUgcGVzdGHDsWFzLlxuICogVXNhIEJyb2FkY2FzdENoYW5uZWwgQVBJIGNvbiBmYWxsYmFjayBhIHN0b3JhZ2UgZXZlbnRzLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEF1dGhTeW5jU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgY2hhbm5lbDogQnJvYWRjYXN0Q2hhbm5lbCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNoYW5uZWxOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgZXZlbnRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8QXV0aFN5bmNFdmVudD4oKTtcbiAgcHJpdmF0ZSBzdG9yYWdlTGlzdGVuZXI6ICgoZXZlbnQ6IFN0b3JhZ2VFdmVudCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuICAvKiogT2JzZXJ2YWJsZSBkZSBldmVudG9zIGRlIHNpbmNyb25pemFjacOzbiAqL1xuICByZWFkb25seSBvbkV2ZW50JDogT2JzZXJ2YWJsZTxBdXRoU3luY0V2ZW50PiA9IHRoaXMuZXZlbnRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoVkFMVEVDSF9BVVRIX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IFZhbHRlY2hBdXRoQ29uZmlnXG4gICkge1xuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuY29uZmlnLnN0b3JhZ2VQcmVmaXggfHwgJ3ZhbHRlY2hfYXV0aF8nO1xuICAgIHRoaXMuY2hhbm5lbE5hbWUgPSBgJHtwcmVmaXh9c3luY19jaGFubmVsYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmljaWEgbGEgc2luY3Jvbml6YWNpw7NuIGVudHJlIHBlc3Rhw7Fhcy5cbiAgICovXG4gIHN0YXJ0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb25maWcuZW5hYmxlVGFiU3luYykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEludGVudGFyIHVzYXIgQnJvYWRjYXN0Q2hhbm5lbCBBUEkgKG1lam9yIHJlbmRpbWllbnRvKVxuICAgIGlmICh0eXBlb2YgQnJvYWRjYXN0Q2hhbm5lbCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMuaW5pdEJyb2FkY2FzdENoYW5uZWwoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRmFsbGJhY2sgYSBzdG9yYWdlIGV2ZW50c1xuICAgICAgdGhpcy5pbml0U3RvcmFnZUV2ZW50cygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRpZW5lIGxhIHNpbmNyb25pemFjacOzbi5cbiAgICovXG4gIHN0b3AoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2hhbm5lbCkge1xuICAgICAgdGhpcy5jaGFubmVsLmNsb3NlKCk7XG4gICAgICB0aGlzLmNoYW5uZWwgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN0b3JhZ2VMaXN0ZW5lcikge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3N0b3JhZ2UnLCB0aGlzLnN0b3JhZ2VMaXN0ZW5lcik7XG4gICAgICB0aGlzLnN0b3JhZ2VMaXN0ZW5lciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVudsOtYSB1biBldmVudG8gYSBvdHJhcyBwZXN0YcOxYXMuXG4gICAqL1xuICBicm9hZGNhc3QoZXZlbnQ6IE9taXQ8QXV0aFN5bmNFdmVudCwgJ3RpbWVzdGFtcCc+KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5lbmFibGVUYWJTeW5jKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZnVsbEV2ZW50OiBBdXRoU3luY0V2ZW50ID0ge1xuICAgICAgLi4uZXZlbnQsXG4gICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgfTtcblxuICAgIGlmICh0aGlzLmNoYW5uZWwpIHtcbiAgICAgIHRoaXMuY2hhbm5lbC5wb3N0TWVzc2FnZShmdWxsRXZlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGYWxsYmFjazogdXNhciBsb2NhbFN0b3JhZ2UgcGFyYSBub3RpZmljYXJcbiAgICAgIHRoaXMuYnJvYWRjYXN0VmlhU3RvcmFnZShmdWxsRXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcCgpO1xuICAgIHRoaXMuZXZlbnRTdWJqZWN0LmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pY2lhbGl6YSBCcm9hZGNhc3RDaGFubmVsIEFQSS5cbiAgICovXG4gIHByaXZhdGUgaW5pdEJyb2FkY2FzdENoYW5uZWwoKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuY2hhbm5lbCA9IG5ldyBCcm9hZGNhc3RDaGFubmVsKHRoaXMuY2hhbm5lbE5hbWUpO1xuXG4gICAgICB0aGlzLmNoYW5uZWwub25tZXNzYWdlID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQ8QXV0aFN5bmNFdmVudD4pID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVFdmVudChldmVudC5kYXRhKTtcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuY2hhbm5lbC5vbm1lc3NhZ2VlcnJvciA9ICgpID0+IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdbVmFsdGVjaEF1dGhdIEVycm9yIGVuIEJyb2FkY2FzdENoYW5uZWwsIHVzYW5kbyBmYWxsYmFjaycpO1xuICAgICAgICB0aGlzLmNoYW5uZWw/LmNsb3NlKCk7XG4gICAgICAgIHRoaXMuY2hhbm5lbCA9IG51bGw7XG4gICAgICAgIHRoaXMuaW5pdFN0b3JhZ2VFdmVudHMoKTtcbiAgICAgIH07XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBCcm9hZGNhc3RDaGFubmVsIG5vIGRpc3BvbmlibGUsIHVzYXIgZmFsbGJhY2tcbiAgICAgIHRoaXMuaW5pdFN0b3JhZ2VFdmVudHMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pY2lhbGl6YSBmYWxsYmFjayBjb24gc3RvcmFnZSBldmVudHMuXG4gICAqL1xuICBwcml2YXRlIGluaXRTdG9yYWdlRXZlbnRzKCk6IHZvaWQge1xuICAgIGNvbnN0IHN0b3JhZ2VLZXkgPSBgJHt0aGlzLmNvbmZpZy5zdG9yYWdlUHJlZml4fXN5bmNfZXZlbnRgO1xuXG4gICAgdGhpcy5zdG9yYWdlTGlzdGVuZXIgPSAoZXZlbnQ6IFN0b3JhZ2VFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gc3RvcmFnZUtleSAmJiBldmVudC5uZXdWYWx1ZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHN5bmNFdmVudDogQXV0aFN5bmNFdmVudCA9IEpTT04ucGFyc2UoZXZlbnQubmV3VmFsdWUpO1xuICAgICAgICAgIHRoaXMuaGFuZGxlRXZlbnQoc3luY0V2ZW50KTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gSWdub3JhciBldmVudG9zIG1hbCBmb3JtYWRvc1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzdG9yYWdlJywgdGhpcy5zdG9yYWdlTGlzdGVuZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVudsOtYSBldmVudG8gdmlhIGxvY2FsU3RvcmFnZSAoZmFsbGJhY2spLlxuICAgKi9cbiAgcHJpdmF0ZSBicm9hZGNhc3RWaWFTdG9yYWdlKGV2ZW50OiBBdXRoU3luY0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3RvcmFnZUtleSA9IGAke3RoaXMuY29uZmlnLnN0b3JhZ2VQcmVmaXh9c3luY19ldmVudGA7XG5cbiAgICB0cnkge1xuICAgICAgLy8gRXNjcmliaXIgeSBsdWVnbyBsaW1waWFyIHBhcmEgcGVybWl0aXIgbcO6bHRpcGxlcyBldmVudG9zIGRlbCBtaXNtbyB0aXBvXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShzdG9yYWdlS2V5LCBKU09OLnN0cmluZ2lmeShldmVudCkpO1xuICAgICAgLy8gVXNhciBzZXRUaW1lb3V0IHBhcmEgcGVybWl0aXIgcXVlIG90cmFzIHBlc3Rhw7FhcyBsZWFuIGVsIHZhbG9yXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oc3RvcmFnZUtleSk7XG4gICAgICB9LCAxMDApO1xuICAgIH0gY2F0Y2gge1xuICAgICAgY29uc29sZS53YXJuKCdbVmFsdGVjaEF1dGhdIEVycm9yIGVudmlhbmRvIGV2ZW50byB2aWEgc3RvcmFnZScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNYW5lamEgdW4gZXZlbnRvIHJlY2liaWRvLlxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVFdmVudChldmVudDogQXV0aFN5bmNFdmVudCk6IHZvaWQge1xuICAgIC8vIFZlcmlmaWNhciBxdWUgZWwgZXZlbnRvIG5vIHNlYSBtdXkgYW50aWd1byAobcOhcyBkZSA1IHNlZ3VuZG9zKVxuICAgIGNvbnN0IGFnZSA9IERhdGUubm93KCkgLSBldmVudC50aW1lc3RhbXA7XG4gICAgaWYgKGFnZSA+IDUwMDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmV2ZW50U3ViamVjdC5uZXh0KGV2ZW50KTtcbiAgfVxufVxuIl19
@@ -1,122 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Servicio para manejo de tokens JWT.
5
- * Parseo y validación de tokens sin dependencias externas.
6
- */
7
- export class TokenService {
8
- /**
9
- * Parsea un token JWT y extrae los claims.
10
- * @param token - Token JWT
11
- * @returns Claims del token o null si es inválido
12
- */
13
- parseToken(token) {
14
- try {
15
- const parts = token.split('.');
16
- if (parts.length !== 3) {
17
- return null;
18
- }
19
- const payload = parts[1];
20
- const decoded = this.base64UrlDecode(payload);
21
- return JSON.parse(decoded);
22
- }
23
- catch {
24
- console.warn('[ValtechAuth] Error al parsear token JWT');
25
- return null;
26
- }
27
- }
28
- /**
29
- * Verifica si un token es válido (no expirado).
30
- * @param token - Token JWT
31
- * @returns true si el token es válido
32
- */
33
- isTokenValid(token) {
34
- const claims = this.parseToken(token);
35
- if (!claims) {
36
- return false;
37
- }
38
- // exp está en segundos, Date.now() en milisegundos
39
- const expirationMs = claims.exp * 1000;
40
- return Date.now() < expirationMs;
41
- }
42
- /**
43
- * Obtiene el tiempo restante del token en segundos.
44
- * @param token - Token JWT
45
- * @returns Segundos restantes o 0 si expirado
46
- */
47
- getTimeToExpiry(token) {
48
- const claims = this.parseToken(token);
49
- if (!claims) {
50
- return 0;
51
- }
52
- const expirationMs = claims.exp * 1000;
53
- const remaining = expirationMs - Date.now();
54
- return remaining > 0 ? Math.floor(remaining / 1000) : 0;
55
- }
56
- /**
57
- * Obtiene el timestamp de expiración del token.
58
- * @param token - Token JWT
59
- * @returns Timestamp en milisegundos o null
60
- */
61
- getExpirationTime(token) {
62
- const claims = this.parseToken(token);
63
- if (!claims) {
64
- return null;
65
- }
66
- return claims.exp * 1000;
67
- }
68
- /**
69
- * Extrae el user ID del token.
70
- * @param token - Token JWT
71
- * @returns User ID o null
72
- */
73
- getUserId(token) {
74
- const claims = this.parseToken(token);
75
- return claims?.uid || null;
76
- }
77
- /**
78
- * Extrae el email del token.
79
- * @param token - Token JWT
80
- * @returns Email o null
81
- */
82
- getEmail(token) {
83
- const claims = this.parseToken(token);
84
- return claims?.email || null;
85
- }
86
- /**
87
- * Extrae el estado premium del token.
88
- * @param token - Token JWT
89
- * @returns true si el usuario es premium
90
- */
91
- isPremium(token) {
92
- const claims = this.parseToken(token);
93
- return claims?.premium === true;
94
- }
95
- /**
96
- * Decodifica base64url a string.
97
- * Base64url usa - y _ en lugar de + y /
98
- */
99
- base64UrlDecode(str) {
100
- // Reemplazar caracteres base64url por base64 estándar
101
- let base64 = str.replace(/-/g, '+').replace(/_/g, '/');
102
- // Agregar padding si es necesario
103
- const padding = base64.length % 4;
104
- if (padding) {
105
- base64 += '='.repeat(4 - padding);
106
- }
107
- // Decodificar
108
- const decoded = atob(base64);
109
- // Manejar caracteres UTF-8
110
- return decodeURIComponent(decoded
111
- .split('')
112
- .map((c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))
113
- .join(''));
114
- }
115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TokenService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
116
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TokenService, providedIn: 'root' }); }
117
- }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TokenService, decorators: [{
119
- type: Injectable,
120
- args: [{ providedIn: 'root' }]
121
- }] });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvYXV0aC90b2tlbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDOzs7R0FHRztBQUVILE1BQU0sT0FBTyxZQUFZO0lBQ3ZCOzs7O09BSUc7SUFDSCxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUM7WUFDSCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBRUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7WUFDekQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxZQUFZLENBQUMsS0FBYTtRQUN4QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELG1EQUFtRDtRQUNuRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQyxHQUFH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bSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKV1RDbGFpbXMgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBTZXJ2aWNpbyBwYXJhIG1hbmVqbyBkZSB0b2tlbnMgSldULlxuICogUGFyc2VvIHkgdmFsaWRhY2nDs24gZGUgdG9rZW5zIHNpbiBkZXBlbmRlbmNpYXMgZXh0ZXJuYXMuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVG9rZW5TZXJ2aWNlIHtcbiAgLyoqXG4gICAqIFBhcnNlYSB1biB0b2tlbiBKV1QgeSBleHRyYWUgbG9zIGNsYWltcy5cbiAgICogQHBhcmFtIHRva2VuIC0gVG9rZW4gSldUXG4gICAqIEByZXR1cm5zIENsYWltcyBkZWwgdG9rZW4gbyBudWxsIHNpIGVzIGludsOhbGlkb1xuICAgKi9cbiAgcGFyc2VUb2tlbih0b2tlbjogc3RyaW5nKTogSldUQ2xhaW1zIHwgbnVsbCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnRzID0gdG9rZW4uc3BsaXQoJy4nKTtcbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggIT09IDMpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBheWxvYWQgPSBwYXJ0c1sxXTtcbiAgICAgIGNvbnN0IGRlY29kZWQgPSB0aGlzLmJhc2U2NFVybERlY29kZShwYXlsb2FkKTtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKGRlY29kZWQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgY29uc29sZS53YXJuKCdbVmFsdGVjaEF1dGhdIEVycm9yIGFsIHBhcnNlYXIgdG9rZW4gSldUJyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgdW4gdG9rZW4gZXMgdsOhbGlkbyAobm8gZXhwaXJhZG8pLlxuICAgKiBAcGFyYW0gdG9rZW4gLSBUb2tlbiBKV1RcbiAgICogQHJldHVybnMgdHJ1ZSBzaSBlbCB0b2tlbiBlcyB2w6FsaWRvXG4gICAqL1xuICBpc1Rva2VuVmFsaWQodG9rZW46IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNsYWltcyA9IHRoaXMucGFyc2VUb2tlbih0b2tlbik7XG4gICAgaWYgKCFjbGFpbXMpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBleHAgZXN0w6EgZW4gc2VndW5kb3MsIERhdGUubm93KCkgZW4gbWlsaXNlZ3VuZG9zXG4gICAgY29uc3QgZXhwaXJhdGlvbk1zID0gY2xhaW1zLmV4cCAqIDEwMDA7XG4gICAgcmV0dXJuIERhdGUubm93KCkgPCBleHBpcmF0aW9uTXM7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBlbCB0aWVtcG8gcmVzdGFudGUgZGVsIHRva2VuIGVuIHNlZ3VuZG9zLlxuICAgKiBAcGFyYW0gdG9rZW4gLSBUb2tlbiBKV1RcbiAgICogQHJldHVybnMgU2VndW5kb3MgcmVzdGFudGVzIG8gMCBzaSBleHBpcmFkb1xuICAgKi9cbiAgZ2V0VGltZVRvRXhwaXJ5KHRva2VuOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGNvbnN0IGNsYWltcyA9IHRoaXMucGFyc2VUb2tlbih0b2tlbik7XG4gICAgaWYgKCFjbGFpbXMpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGlyYXRpb25NcyA9IGNsYWltcy5leHAgKiAxMDAwO1xuICAgIGNvbnN0IHJlbWFpbmluZyA9IGV4cGlyYXRpb25NcyAtIERhdGUubm93KCk7XG4gICAgcmV0dXJuIHJlbWFpbmluZyA+IDAgPyBNYXRoLmZsb29yKHJlbWFpbmluZyAvIDEwMDApIDogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGVsIHRpbWVzdGFtcCBkZSBleHBpcmFjacOzbiBkZWwgdG9rZW4uXG4gICAqIEBwYXJhbSB0b2tlbiAtIFRva2VuIEpXVFxuICAgKiBAcmV0dXJucyBUaW1lc3RhbXAgZW4gbWlsaXNlZ3VuZG9zIG8gbnVsbFxuICAgKi9cbiAgZ2V0RXhwaXJhdGlvblRpbWUodG9rZW46IHN0cmluZyk6IG51bWJlciB8IG51bGwge1xuICAgIGNvbnN0IGNsYWltcyA9IHRoaXMucGFyc2VUb2tlbih0b2tlbik7XG4gICAgaWYgKCFjbGFpbXMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBjbGFpbXMuZXhwICogMTAwMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRyYWUgZWwgdXNlciBJRCBkZWwgdG9rZW4uXG4gICAqIEBwYXJhbSB0b2tlbiAtIFRva2VuIEpXVFxuICAgKiBAcmV0dXJucyBVc2VyIElEIG8gbnVsbFxuICAgKi9cbiAgZ2V0VXNlcklkKHRva2VuOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBjbGFpbXMgPSB0aGlzLnBhcnNlVG9rZW4odG9rZW4pO1xuICAgIHJldHVybiBjbGFpbXM/LnVpZCB8fCBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhZSBlbCBlbWFpbCBkZWwgdG9rZW4uXG4gICAqIEBwYXJhbSB0b2tlbiAtIFRva2VuIEpXVFxuICAgKiBAcmV0dXJucyBFbWFpbCBvIG51bGxcbiAgICovXG4gIGdldEVtYWlsKHRva2VuOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBjbGFpbXMgPSB0aGlzLnBhcnNlVG9rZW4odG9rZW4pO1xuICAgIHJldHVybiBjbGFpbXM/LmVtYWlsIHx8IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFlIGVsIGVzdGFkbyBwcmVtaXVtIGRlbCB0b2tlbi5cbiAgICogQHBhcmFtIHRva2VuIC0gVG9rZW4gSldUXG4gICAqIEByZXR1cm5zIHRydWUgc2kgZWwgdXN1YXJpbyBlcyBwcmVtaXVtXG4gICAqL1xuICBpc1ByZW1pdW0odG9rZW46IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNsYWltcyA9IHRoaXMucGFyc2VUb2tlbih0b2tlbik7XG4gICAgcmV0dXJuIGNsYWltcz8ucHJlbWl1bSA9PT0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGlmaWNhIGJhc2U2NHVybCBhIHN0cmluZy5cbiAgICogQmFzZTY0dXJsIHVzYSAtIHkgXyBlbiBsdWdhciBkZSArIHkgL1xuICAgKi9cbiAgcHJpdmF0ZSBiYXNlNjRVcmxEZWNvZGUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIFJlZW1wbGF6YXIgY2FyYWN0ZXJlcyBiYXNlNjR1cmwgcG9yIGJhc2U2NCBlc3TDoW5kYXJcbiAgICBsZXQgYmFzZTY0ID0gc3RyLnJlcGxhY2UoLy0vZywgJysnKS5yZXBsYWNlKC9fL2csICcvJyk7XG5cbiAgICAvLyBBZ3JlZ2FyIHBhZGRpbmcgc2kgZXMgbmVjZXNhcmlvXG4gICAgY29uc3QgcGFkZGluZyA9IGJhc2U2NC5sZW5ndGggJSA0O1xuICAgIGlmIChwYWRkaW5nKSB7XG4gICAgICBiYXNlNjQgKz0gJz0nLnJlcGVhdCg0IC0gcGFkZGluZyk7XG4gICAgfVxuXG4gICAgLy8gRGVjb2RpZmljYXJcbiAgICBjb25zdCBkZWNvZGVkID0gYXRvYihiYXNlNjQpO1xuXG4gICAgLy8gTWFuZWphciBjYXJhY3RlcmVzIFVURi04XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChcbiAgICAgIGRlY29kZWRcbiAgICAgICAgLnNwbGl0KCcnKVxuICAgICAgICAubWFwKChjKSA9PiAnJScgKyAoJzAwJyArIGMuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNsaWNlKC0yKSlcbiAgICAgICAgLmpvaW4oJycpXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,30 +0,0 @@
1
- /**
2
- * Tipos e interfaces para el servicio de autenticación de Valtech.
3
- * Alineados con el backend AuthV2.
4
- */
5
- /**
6
- * Estado inicial de autenticación.
7
- */
8
- export const INITIAL_AUTH_STATE = {
9
- isAuthenticated: false,
10
- isLoading: true,
11
- accessToken: null,
12
- refreshToken: null,
13
- userId: null,
14
- email: null,
15
- roles: [],
16
- permissions: [],
17
- isSuperAdmin: false,
18
- isPremium: false,
19
- expiresAt: null,
20
- error: null,
21
- };
22
- /**
23
- * Estado inicial de MFA.
24
- */
25
- export const INITIAL_MFA_STATE = {
26
- required: false,
27
- mfaToken: null,
28
- method: null,
29
- };
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2F1dGgvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBaUhIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQWM7SUFDM0MsZUFBZSxFQUFFLEtBQUs7SUFDdEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsSUFBSTtJQUNqQixZQUFZLEVBQUUsSUFBSTtJQUNsQixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJO0lBQ1gsS0FBSyxFQUFFLEVBQUU7SUFDVCxXQUFXLEVBQUUsRUFBRTtJQUNmLFlBQVksRUFBRSxLQUFLO0lBQ25CLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBa0JGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQW9CO0lBQ2hELFFBQVEsRUFBRSxLQUFLO0lBQ2YsUUFBUSxFQUFFLElBQUk7SUFDZCxNQUFNLEVBQUUsSUFBSTtDQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRpcG9zIGUgaW50ZXJmYWNlcyBwYXJhIGVsIHNlcnZpY2lvIGRlIGF1dGVudGljYWNpw7NuIGRlIFZhbHRlY2guXG4gKiBBbGluZWFkb3MgY29uIGVsIGJhY2tlbmQgQXV0aFYyLlxuICovXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDT05GSUdVUkFDScOTTlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDb25maWd1cmFjacOzbiBwYXJhIGVsIHNlcnZpY2lvIGRlIGF1dGVudGljYWNpw7NuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbHRlY2hBdXRoQ29uZmlnIHtcbiAgLyoqIFVSTCBiYXNlIGRlIGxhIEFQSSAoZWo6ICdodHRwczovL2FwaS5teXZhbHRlY2guY29tJykgKi9cbiAgYXBpVXJsOiBzdHJpbmc7XG4gIC8qKiBQcmVmaWpvIHBhcmEgZW5kcG9pbnRzIGRlIGF1dGggKGRlZmF1bHQ6ICcvdjIvYXV0aCcpICovXG4gIGF1dGhQcmVmaXg/OiBzdHJpbmc7XG4gIC8qKiBQcmVmaWpvIHBhcmEgbGFzIGNsYXZlcyBkZSBsb2NhbFN0b3JhZ2UgKGRlZmF1bHQ6ICd2YWx0ZWNoX2F1dGhfJykgKi9cbiAgc3RvcmFnZVByZWZpeD86IHN0cmluZztcbiAgLyoqIFRpZW1wbyBhbnRlcyBkZSBleHBpcmFjacOzbiBwYXJhIHJlZnJlc2NhciB0b2tlbiBlbiBzZWd1bmRvcyAoZGVmYXVsdDogNjApICovXG4gIHJlZnJlc2hCZWZvcmVFeHBpcnk/OiBudW1iZXI7XG4gIC8qKiBIYWJpbGl0YXIgc2luY3Jvbml6YWNpw7NuIGVudHJlIHBlc3Rhw7FhcyAoZGVmYXVsdDogdHJ1ZSkgKi9cbiAgZW5hYmxlVGFiU3luYz86IGJvb2xlYW47XG4gIC8qKiBSdXRhIGRlIHJlZGlyZWNjacOzbiBjdWFuZG8gbm8gYXV0ZW50aWNhZG8gKGRlZmF1bHQ6ICcvbG9naW4nKSAqL1xuICBsb2dpblJvdXRlPzogc3RyaW5nO1xuICAvKiogUnV0YSBkZSByZWRpcmVjY2nDs24gY3VhbmRvIHlhIGF1dGVudGljYWRvIChkZWZhdWx0OiAnLycpICovXG4gIGhvbWVSb3V0ZT86IHN0cmluZztcbiAgLyoqIFJ1dGEgcGFyYSBhY2Nlc28gZGVuZWdhZG8gKGRlZmF1bHQ6ICcvdW5hdXRob3JpemVkJykgKi9cbiAgdW5hdXRob3JpemVkUm91dGU/OiBzdHJpbmc7XG4gIC8qKiBIYWJpbGl0YXIgaW50ZWdyYWNpw7NuIGNvbiBGaXJlYmFzZVNlcnZpY2UgKGRlZmF1bHQ6IGZhbHNlKSAqL1xuICBlbmFibGVGaXJlYmFzZUludGVncmF0aW9uPzogYm9vbGVhbjtcbiAgLyoqIEhhYmlsaXRhciByZWdpc3RybyBhdXRvbcOhdGljbyBkZSBkZXZpY2UgdG9rZW5zIHBhcmEgcHVzaCBub3RpZmljYXRpb25zIChkZWZhdWx0OiBmYWxzZSkgKi9cbiAgZW5hYmxlRGV2aWNlUmVnaXN0cmF0aW9uPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFwcElEIGRlIGVzdGEgYXBwIGRlbnRybyBkZWwgZmFjdG9yeSAoZWo6ICdzaG93Y2FzZScsICdzaWdpZnknLCAnbXl2YWx0ZWNoJykuXG4gICAqIFVzYWRvIHBvciBOb3RpZmljYXRpb25BY3Rpb25TZXJ2aWNlIHBhcmEgZGVjaWRpciBzaSB1bmEgbm90aWZpY2FjacOzblxuICAgKiBhcHVudGEgYSBsYSBhcHAgYWN0dWFsIG8gcmVxdWllcmUgaGFuZG9mZiBjcm9zcy1hcHAuXG4gICAqL1xuICBhcHBJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIE1hcGEgYXBwSWQg4oaSIGJhc2VVcmwgYWJzb2x1dGEgcGFyYSBoYW5kb2ZmIGNyb3NzLWFwcC5cbiAgICogRWo6IHsgc2lnaWZ5OiAnaHR0cHM6Ly9zaWdpZnkuY29tJywgbXl2YWx0ZWNoOiAnaHR0cHM6Ly9hcHAubXl2YWx0ZWNoLmNvbScgfVxuICAgKiBOb3RpZmljYXRpb25BY3Rpb25TZXJ2aWNlIHVzYSBlc3RlIG1hcCBhbCBkaXNwYXJhciBoYW5kb2ZmIGEgb3RyYSBhcHAuXG4gICAqL1xuICBhcHBVcmxzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEVTVEFETyBERSBBVVRFTlRJQ0FDScOTTlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBFc3RhZG8gY29tcGxldG8gZGUgYXV0ZW50aWNhY2nDs24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aFN0YXRlIHtcbiAgLyoqIFVzdWFyaW8gZXN0w6EgYXV0ZW50aWNhZG8gKi9cbiAgaXNBdXRoZW50aWNhdGVkOiBib29sZWFuO1xuICAvKiogRXN0YWRvIGRlIGNhcmdhIGluaWNpYWwgKi9cbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAvKiogVG9rZW4gZGUgYWNjZXNvIGFjdHVhbCAqL1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFRva2VuIGRlIHJlZnJlc2NvIGFjdHVhbCAqL1xuICByZWZyZXNoVG9rZW46IHN0cmluZyB8IG51bGw7XG4gIC8qKiBJRCBkZWwgdXN1YXJpbyAqL1xuICB1c2VySWQ6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBFbWFpbCBkZWwgdXN1YXJpbyAqL1xuICBlbWFpbDogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIE5vbWJyZSBjb21wbGV0byBkZWwgdXN1YXJpbyAocG9ibGFkbyB0cmFzIGBnZXRQcm9maWxlKClgKSAqL1xuICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFVzZXJuYW1lL2hhbmRsZSAocG9ibGFkbyB0cmFzIGBnZXRQcm9maWxlKClgKSAqL1xuICBoYW5kbGU/OiBzdHJpbmcgfCBudWxsO1xuICAvKiogVVJMIGRlbCBhdmF0YXIgKHBvYmxhZG8gdHJhcyBgZ2V0UHJvZmlsZSgpYCkgKi9cbiAgYXZhdGFyVXJsPzogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFRlbMOpZm9ubyAocG9ibGFkbyB0cmFzIGBnZXRQcm9maWxlKClgKSAqL1xuICBwaG9uZT86IHN0cmluZyB8IG51bGw7XG4gIC8qKiBSb2xlcyBkZWwgdXN1YXJpbyAqL1xuICByb2xlczogc3RyaW5nW107XG4gIC8qKiBQZXJtaXNvcyBkZWwgdXN1YXJpbyAoZm9ybWF0byAncmVzb3VyY2U6YWN0aW9uJykgKi9cbiAgcGVybWlzc2lvbnM6IHN0cmluZ1tdO1xuICAvKiogVXN1YXJpbyBlcyBzdXBlciBhZG1pbiAqL1xuICBpc1N1cGVyQWRtaW46IGJvb2xlYW47XG4gIC8qKiBVc3VhcmlvIHRpZW5lIHN1c2NyaXBjacOzbiBwcmVtaXVtIGFjdGl2YSAobm8gdmUgYWRzKSAqL1xuICBpc1ByZW1pdW06IGJvb2xlYW47XG4gIC8qKiBUaW1lc3RhbXAgZGUgZXhwaXJhY2nDs24gZGVsIGFjY2Vzc1Rva2VuIChtcykgKi9cbiAgZXhwaXJlc0F0OiBudW1iZXIgfCBudWxsO1xuICAvKiogRXJyb3IgZGUgYXV0ZW50aWNhY2nDs24gKHNpIGV4aXN0ZSkgKi9cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGw7XG59XG5cbi8qKlxuICogSW5mb3JtYWNpw7NuIGRlbCB1c3VhcmlvIGF1dGVudGljYWRvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhVc2VyIHtcbiAgdXNlcklkOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHBob25lPzogc3RyaW5nO1xuICAvKiogVXNlcm5hbWUvaGFuZGxlIGRlbCB1c3VhcmlvIChlajogQHZpY3RvcnYpICovXG4gIGhhbmRsZT86IHN0cmluZztcbiAgLyoqIFVSTCBkZWwgYXZhdGFyIGRlbCB1c3VhcmlvICovXG4gIGF2YXRhclVybD86IHN0cmluZztcbiAgcm9sZXM6IHN0cmluZ1tdO1xuICBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gIGlzU3VwZXJBZG1pbjogYm9vbGVhbjtcbiAgbWZhRW5hYmxlZD86IGJvb2xlYW47XG4gIG1mYU1ldGhvZD86IE1GQU1ldGhvZDtcbn1cblxuLyoqXG4gKiBFcnJvciBkZSBhdXRlbnRpY2FjacOzbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoRXJyb3Ige1xuICBjb2RlOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBFc3RhZG8gaW5pY2lhbCBkZSBhdXRlbnRpY2FjacOzbi5cbiAqL1xuZXhwb3J0IGNvbnN0IElOSVRJQUxfQVVUSF9TVEFURTogQXV0aFN0YXRlID0ge1xuICBpc0F1dGhlbnRpY2F0ZWQ6IGZhbHNlLFxuICBpc0xvYWRpbmc6IHRydWUsXG4gIGFjY2Vzc1Rva2VuOiBudWxsLFxuICByZWZyZXNoVG9rZW46IG51bGwsXG4gIHVzZXJJZDogbnVsbCxcbiAgZW1haWw6IG51bGwsXG4gIHJvbGVzOiBbXSxcbiAgcGVybWlzc2lvbnM6IFtdLFxuICBpc1N1cGVyQWRtaW46IGZhbHNlLFxuICBpc1ByZW1pdW06IGZhbHNlLFxuICBleHBpcmVzQXQ6IG51bGwsXG4gIGVycm9yOiBudWxsLFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1GQVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqIE3DqXRvZG9zIGRlIE1GQSBzb3BvcnRhZG9zICovXG5leHBvcnQgdHlwZSBNRkFNZXRob2QgPSAnRU1BSUwnIHwgJ1NNUycgfCAnVE9UUCc7XG5cbi8qKlxuICogRXN0YWRvIGRlIE1GQSBwZW5kaWVudGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTUZBUGVuZGluZ1N0YXRlIHtcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XG4gIG1mYVRva2VuOiBzdHJpbmcgfCBudWxsO1xuICBtZXRob2Q6IE1GQU1ldGhvZCB8IG51bGw7XG59XG5cbi8qKlxuICogRXN0YWRvIGluaWNpYWwgZGUgTUZBLlxuICovXG5leHBvcnQgY29uc3QgSU5JVElBTF9NRkFfU1RBVEU6IE1GQVBlbmRpbmdTdGF0ZSA9IHtcbiAgcmVxdWlyZWQ6IGZhbHNlLFxuICBtZmFUb2tlbjogbnVsbCxcbiAgbWV0aG9kOiBudWxsLFxufTtcblxuLyoqXG4gKiBSZXN1bHRhZG8gZGUgc2V0dXAgZGUgTUZBLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1GQVNldHVwUmVzdWx0IHtcbiAgY29kZVNlbnQ6IGJvb2xlYW47XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBFc3RhZG8gZGUgTUZBIGRlbCB1c3VhcmlvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1GQVN0YXR1cyB7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIG1ldGhvZDogTUZBTWV0aG9kIHwgbnVsbDtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRPVFAgTUZBIChHb29nbGUgQXV0aGVudGljYXRvcilcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgc2V0dXAgZGUgVE9UUC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUT1RQU2V0dXBSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIC8qKiBTZWNyZXRvIFRPVFAgZW4gYmFzZTMyIChwYXJhIGVudHJhZGEgbWFudWFsKSAqL1xuICBzZWNyZXQ6IHN0cmluZztcbiAgLyoqIFVSTCBwYXJhIGdlbmVyYXIgUVIgY29kZSAob3RwYXV0aDovLy4uLikgKi9cbiAgcXJDb2RlVXJsOiBzdHJpbmc7XG4gIC8qKiBDw7NkaWdvcyBkZSByZXNwYWxkbyBkZSB1biBzb2xvIHVzbyAqL1xuICBiYWNrdXBDb2Rlczogc3RyaW5nW107XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgdmVyaWZpY2FyIHNldHVwIGRlIFRPVFAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVE9UUFZlcmlmeVNldHVwUmVxdWVzdCB7XG4gIC8qKiBDw7NkaWdvIFRPVFAgZGUgNiBkw61naXRvcyAqL1xuICBjb2RlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgdmVyaWZpY2FjacOzbiBkZSBzZXR1cCBUT1RQLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRPVFBWZXJpZnlTZXR1cFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBkZXNoYWJpbGl0YXIgVE9UUC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUT1RQRGlzYWJsZVJlcXVlc3Qge1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIGRlc2hhYmlsaXRhciBUT1RQLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRPVFBEaXNhYmxlUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHJlZ2VuZXJhciBjw7NkaWdvcyBkZSByZXNwYWxkby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdlbmVyYXRlQmFja3VwQ29kZXNSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGJhY2t1cENvZGVzOiBzdHJpbmdbXTtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIGNhbnRpZGFkIGRlIGPDs2RpZ29zIGRlIHJlc3BhbGRvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhY2t1cENvZGVzQ291bnRSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGNvdW50OiBudW1iZXI7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSRVFVRVNUUy9SRVNQT05TRVMgKGFsaW5lYWRvcyBjb24gYmFja2VuZCBBdXRoVjIpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBzaWdudXAgKHJlZ2lzdHJvKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWdudXBSZXF1ZXN0IHtcbiAgZW1haWw6IHN0cmluZztcbiAgcGFzc3dvcmQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBwaG9uZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBzaWdudXAgKHJlZ2lzdHJvKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWdudXBSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIHZlcmlmaWNhciBlbWFpbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWZXJpZnlFbWFpbFJlcXVlc3Qge1xuICBlbWFpbDogc3RyaW5nO1xuICBjb2RlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgdmVyaWZpY2FjacOzbiBkZSBlbWFpbC5cbiAqIFNpIGVzIGV4aXRvc28sIGluY2x1eWUgdG9rZW5zIHBhcmEgYXV0by1sb2dpbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWZXJpZnlFbWFpbFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgdmVyaWZpZWQ6IGJvb2xlYW47XG4gIGFjY2Vzc1Rva2VuPzogc3RyaW5nO1xuICByZWZyZXNoVG9rZW4/OiBzdHJpbmc7XG4gIGZpcmViYXNlVG9rZW4/OiBzdHJpbmc7XG4gIGV4cGlyZXNJbj86IG51bWJlcjtcbiAgdG9rZW5UeXBlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSByZWVudmlhciBjw7NkaWdvIGRlIHZlcmlmaWNhY2nDs24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZW5kQ29kZVJlcXVlc3Qge1xuICBlbWFpbDogc3RyaW5nO1xuICB0eXBlOiAnRU1BSUxfVkVSSUZZJyB8ICdQQVNTV09SRF9SRVNFVCc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgcmVlbnbDrW8gZGUgY8OzZGlnby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNlbmRDb2RlUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBzZW50OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBzaWduaW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmluUmVxdWVzdCB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG4gIC8qKiBQbGF0YWZvcm1hIGRlbCBkaXNwb3NpdGl2byAocGFyYSBkZXRlY2Npw7NuIGRlIG51ZXZvIGRpc3Bvc2l0aXZvKSAqL1xuICBwbGF0Zm9ybT86IERldmljZVBsYXRmb3JtO1xuICAvKiogTmF2ZWdhZG9yIChzb2xvIHdlYikgKi9cbiAgYnJvd3Nlcj86IHN0cmluZztcbiAgLyoqIFNpc3RlbWEgb3BlcmF0aXZvICovXG4gIG9zPzogc3RyaW5nO1xuICAvKiogTm9tYnJlIGFtaWdhYmxlIGRlbCBkaXNwb3NpdGl2byAqL1xuICBkZXZpY2VOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHNpZ25pbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWduaW5SZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGFjY2Vzc1Rva2VuPzogc3RyaW5nO1xuICByZWZyZXNoVG9rZW4/OiBzdHJpbmc7XG4gIGZpcmViYXNlVG9rZW4/OiBzdHJpbmc7XG4gIGV4cGlyZXNJbj86IG51bWJlcjtcbiAgdG9rZW5UeXBlPzogc3RyaW5nO1xuICBtZmFSZXF1aXJlZD86IGJvb2xlYW47XG4gIG1mYVRva2VuPzogc3RyaW5nO1xuICBtZmFNZXRob2Q/OiBNRkFNZXRob2Q7XG4gIHJvbGVzPzogc3RyaW5nW107XG4gIHBlcm1pc3Npb25zPzogc3RyaW5nW107XG4gIC8qKiBJbmRpY2Egc2kgZWwgbG9naW4gZnVlIGRlc2RlIHVuIGRpc3Bvc2l0aXZvIG51ZXZvL25vIHJlY29ub2NpZG8gKi9cbiAgaXNOZXdEZXZpY2U/OiBib29sZWFuO1xuICAvKiogSUQgZGVsIGRpc3Bvc2l0aXZvIHVzYWRvIHBhcmEgZWwgbG9naW4gKi9cbiAgZGV2aWNlSWQ/OiBzdHJpbmc7XG4gIC8qKiBJZGlvbWEgcHJlZmVyaWRvIGRlbCB1c3VhcmlvIChwYXJhIHNpbmNyb25pemFyIGNvbiBpMThuKSAqL1xuICBsYW5ndWFnZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgdmVyaWZpY2FyIE1GQS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNRkFWZXJpZnlSZXF1ZXN0IHtcbiAgbWZhVG9rZW46IHN0cmluZztcbiAgY29kZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHZlcmlmaWNhciBNRkEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTUZBVmVyaWZ5UmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICByZWZyZXNoVG9rZW46IHN0cmluZztcbiAgZmlyZWJhc2VUb2tlbj86IHN0cmluZztcbiAgZXhwaXJlc0luOiBudW1iZXI7XG4gIHRva2VuVHlwZTogc3RyaW5nO1xuICByb2xlcz86IHN0cmluZ1tdO1xuICBwZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xuICAvKiogSWRpb21hIHByZWZlcmlkbyBkZWwgdXN1YXJpbyAocGFyYSBzaW5jcm9uaXphciBjb24gaTE4bikgKi9cbiAgbGFuZ3VhZ2U/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIHJlZnJlc2NhciB0b2tlbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWZyZXNoUmVxdWVzdCB7XG4gIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHJlZnJlc2NhciB0b2tlbi5cbiAqIEltcGxlbWVudGEgdG9rZW4gcm90YXRpb246IGNhZGEgcmVmcmVzaCBnZW5lcmEgdW4gbnVldm8gcmVmcmVzaCB0b2tlbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWZyZXNoUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICByZWZyZXNoVG9rZW46IHN0cmluZzsgLy8gVG9rZW4gcm90YXRpb246IG51ZXZvIHJlZnJlc2ggdG9rZW5cbiAgZXhwaXJlc0luOiBudW1iZXI7XG4gIGZpcmViYXNlVG9rZW4/OiBzdHJpbmc7XG4gIHJvbGVzPzogc3RyaW5nW107XG4gIHBlcm1pc3Npb25zPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIGxvZ291dC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dvdXRSZXF1ZXN0IHtcbiAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgbG9nb3V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ291dFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgc3VjY2VzczogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBvYnRlbmVyIHBlcm1pc29zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldFBlcm1pc3Npb25zUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICByb2xlczogc3RyaW5nW107XG4gIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgaXNTdXBlckFkbWluOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBzZXR1cCBkZSBNRkEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTUZBU2V0dXBSZXF1ZXN0IHtcbiAgbWV0aG9kOiBNRkFNZXRob2Q7XG4gIHBob25lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHNldHVwIGRlIE1GQS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNRkFTZXR1cFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgY29kZVNlbnQ6IGJvb2xlYW47XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgY29uZmlybWFyIE1GQS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNRkFDb25maXJtUmVxdWVzdCB7XG4gIGNvZGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBjb25maXJtYXIgTUZBLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1GQUNvbmZpcm1SZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIG1mYUVuYWJsZWQ6IGJvb2xlYW47XG4gIG1ldGhvZDogTUZBTWV0aG9kO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBkZXNoYWJpbGl0YXIgTUZBLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1GQURpc2FibGVSZXF1ZXN0IHtcbiAgcGFzc3dvcmQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBkZXNoYWJpbGl0YXIgTUZBLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1GQURpc2FibGVSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIG1mYURpc2FibGVkOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBpbmljaWFyIHJlY3VwZXJhY2nDs24gZGUgY29udHJhc2XDsWEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9yZ290UGFzc3dvcmRSZXF1ZXN0IHtcbiAgZW1haWw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBmb3Jnb3QgcGFzc3dvcmQgKHNpZW1wcmUgaWd1YWwgcG9yIHNlZ3VyaWRhZCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9yZ290UGFzc3dvcmRSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgcmVzZXRlYXIgY29udHJhc2XDsWEgY29uIGPDs2RpZ28uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZXRQYXNzd29yZFJlcXVlc3Qge1xuICBlbWFpbDogc3RyaW5nO1xuICBjb2RlOiBzdHJpbmc7XG4gIG5ld1Bhc3N3b3JkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgcmVzZXQgcGFzc3dvcmQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZXRQYXNzd29yZFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgc3VjY2VzczogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgY2FtYmlhciBjb250cmFzZcOxYSAodXN1YXJpbyBhdXRlbnRpY2FkbykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlUGFzc3dvcmRSZXF1ZXN0IHtcbiAgY3VycmVudFBhc3N3b3JkOiBzdHJpbmc7XG4gIG5ld1Bhc3N3b3JkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgY2FtYmlvIGRlIGNvbnRyYXNlw7FhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZVBhc3N3b3JkUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBzdWNjZXNzOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBlbGltaW5hciBjdWVudGEgKHJlcXVpZXJlIGNvbmZpcm1hY2nDs24gZGUgY29udHJhc2XDsWEpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZUFjY291bnRSZXF1ZXN0IHtcbiAgcGFzc3dvcmQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBlbGltaW5hciBjdWVudGEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlQWNjb3VudFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgZGVsZXRlZDogYm9vbGVhbjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIG9idGVuZXIgcGVyZmlsIGRlbCB1c3VhcmlvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldFByb2ZpbGVSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHBob25lPzogc3RyaW5nO1xuICAvKiogVXNlcm5hbWUvaGFuZGxlIGRlbCB1c3VhcmlvICovXG4gIGhhbmRsZT86IHN0cmluZztcbiAgLyoqIFVSTCBkZWwgYXZhdGFyIGRlbCB1c3VhcmlvICovXG4gIGF2YXRhclVybD86IHN0cmluZztcbiAgZW1haWxWZXJpZmllZDogYm9vbGVhbjtcbiAgcGhvbmVWZXJpZmllZDogYm9vbGVhbjtcbiAgbWZhRW5hYmxlZDogYm9vbGVhbjtcbiAgbWZhTWV0aG9kPzogTUZBTWV0aG9kO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIGFjdHVhbGl6YXIgcGVyZmlsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVByb2ZpbGVSZXF1ZXN0IHtcbiAgbmFtZT86IHN0cmluZztcbiAgcGhvbmU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgYWN0dWFsaXphciBwZXJmaWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlUHJvZmlsZVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgdXBkYXRlZDogYm9vbGVhbjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFVQREFURSBBVkFUQVJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIGFjdHVhbGl6YXIgYXZhdGFyIGRlbCB1c3VhcmlvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUF2YXRhclJlcXVlc3Qge1xuICAvKiogVVJMIGRlbCBhdmF0YXIgZW4gRmlyZWJhc2UgU3RvcmFnZSAqL1xuICBhdmF0YXJVcmw6IHN0cmluZztcbiAgLyoqIFVSTCBkZWwgdGh1bWJuYWlsIChvcGNpb25hbCkgKi9cbiAgYXZhdGFyVGh1bWJuYWlsPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIGFjdHVhbGl6YXIgYXZhdGFyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUF2YXRhclJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgYXZhdGFyVXJsOiBzdHJpbmc7XG4gIGF2YXRhclRodW1ibmFpbD86IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFVkVOVE9TIERFIFNJTkNST05JWkFDScOTTlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNXSVRDSCBPUkdBTklaQVRJT05cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIGNhbWJpYXIgZGUgb3JnYW5pemFjacOzbiBhY3RpdmEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3dpdGNoT3JnUmVxdWVzdCB7XG4gIG9yZ2FuaXphdGlvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgY2FtYmlvIGRlIG9yZ2FuaXphY2nDs24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3dpdGNoT3JnUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBmaXJlYmFzZVRva2VuOiBzdHJpbmc7XG4gIGFjdGl2ZU9yZzogc3RyaW5nO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRVZFTlRPUyBERSBTSU5DUk9OSVpBQ0nDk05cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBUaXBvcyBkZSBldmVudG9zIGRlIHNpbmNyb25pemFjacOzbiBlbnRyZSBwZXN0YcOxYXMgKi9cbmV4cG9ydCB0eXBlIEF1dGhTeW5jRXZlbnRUeXBlID1cbiAgfCAnTE9HSU4nXG4gIHwgJ0xPR09VVCdcbiAgfCAnVE9LRU5fUkVGUkVTSCdcbiAgfCAnUEVSTUlTU0lPTlNfVVBEQVRFJ1xuICB8ICdPUkdfU1dJVENIJztcblxuLyoqXG4gKiBFdmVudG8gZGUgc2luY3Jvbml6YWNpw7NuIGVudHJlIHBlc3Rhw7Fhcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoU3luY0V2ZW50IHtcbiAgdHlwZTogQXV0aFN5bmNFdmVudFR5cGU7XG4gIHRpbWVzdGFtcDogbnVtYmVyO1xuICBwYXlsb2FkPzoge1xuICAgIGFjY2Vzc1Rva2VuPzogc3RyaW5nO1xuICAgIHJlZnJlc2hUb2tlbj86IHN0cmluZzsgLy8gVG9rZW4gcm90YXRpb24gc3VwcG9ydFxuICAgIGV4cGlyZXNBdD86IG51bWJlcjtcbiAgICBhY3RpdmVPcmc/OiBzdHJpbmc7XG4gIH07XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBKV1QgQ0xBSU1TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENsYWltcyBkZWwgSldUIGRlIGFjY2Vzby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKV1RDbGFpbXMge1xuICAvKiogVXNlciBJRCAqL1xuICB1aWQ6IHN0cmluZztcbiAgLyoqIEVtYWlsICovXG4gIGVtYWlsOiBzdHJpbmc7XG4gIC8qKiBTZXNzaW9uIElEICovXG4gIHNpZD86IHN0cmluZztcbiAgLyoqIFVzdWFyaW8gdGllbmUgc3VzY3JpcGNpw7NuIHByZW1pdW0gYWN0aXZhICovXG4gIHByZW1pdW0/OiBib29sZWFuO1xuICAvKiogSXNzdWVkIGF0ICovXG4gIGlhdDogbnVtYmVyO1xuICAvKiogRXhwaXJhdGlvbiAqL1xuICBleHA6IG51bWJlcjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNUT1JBR0Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRGF0b3MgcGVyc2lzdGlkb3MgZW4gc3RvcmFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yZWRBdXRoU3RhdGUge1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICByZWZyZXNoVG9rZW46IHN0cmluZztcbiAgcm9sZXM6IHN0cmluZ1tdO1xuICBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gIGlzU3VwZXJBZG1pbjogYm9vbGVhbjtcbiAgaXNQcmVtaXVtPzogYm9vbGVhbjtcbiAgZXhwaXJlc0F0PzogbnVtYmVyO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gREVWSUNFIFJFR0lTVFJBVElPTiAoUHVzaCBOb3RpZmljYXRpb25zKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBQbGF0YWZvcm1hcyBzb3BvcnRhZGFzIHBhcmEgcHVzaCBub3RpZmljYXRpb25zLlxuICovXG5leHBvcnQgdHlwZSBEZXZpY2VQbGF0Zm9ybSA9ICd3ZWInIHwgJ2lvcycgfCAnYW5kcm9pZCc7XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIHJlZ2lzdHJhciB1biBkaXNwb3NpdGl2by5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RlckRldmljZVJlcXVlc3Qge1xuICAvKiogRkNNIHRva2VuIGRlbCBkaXNwb3NpdGl2byAqL1xuICB0b2tlbjogc3RyaW5nO1xuICAvKiogUGxhdGFmb3JtYSBkZWwgZGlzcG9zaXRpdm8gKi9cbiAgcGxhdGZvcm06IERldmljZVBsYXRmb3JtO1xuICAvKiogTmF2ZWdhZG9yIChzb2xvIHdlYikgKi9cbiAgYnJvd3Nlcj86IHN0cmluZztcbiAgLyoqIFNpc3RlbWEgb3BlcmF0aXZvICovXG4gIG9zPzogc3RyaW5nO1xuICAvKiogVmVyc2nDs24gZGUgbGEgYXBsaWNhY2nDs24gKi9cbiAgYXBwVmVyc2lvbj86IHN0cmluZztcbiAgLyoqIE5vbWJyZSBhbWlnYWJsZSBkZWwgZGlzcG9zaXRpdm8gKi9cbiAgbmFtZT86IHN0cmluZztcbiAgLyoqIE1ldGFkYXRhIGFkaWNpb25hbCAqL1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgcmVnaXN0cm8gZGUgZGlzcG9zaXRpdm8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJEZXZpY2VSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGRldmljZToge1xuICAgIGRldmljZUlkOiBzdHJpbmc7XG4gICAgdG9rZW46IHN0cmluZztcbiAgICBwbGF0Zm9ybTogRGV2aWNlUGxhdGZvcm07XG4gICAgYnJvd3Nlcj86IHN0cmluZztcbiAgICBvcz86IHN0cmluZztcbiAgICBsYXN0QWN0aXZlOiBzdHJpbmc7XG4gICAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIH07XG4gIC8qKiB0cnVlIHNpIGVzIHVuIG51ZXZvIGRpc3Bvc2l0aXZvLCBmYWxzZSBzaSBzZSBhY3R1YWxpesOzIHVubyBleGlzdGVudGUgKi9cbiAgaXNOZXc6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVzdWx0YWRvIGRlIGhhYmlsaXRhciBub3RpZmljYWNpb25lcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmFibGVOb3RpZmljYXRpb25zUmVzdWx0IHtcbiAgLyoqIFNpIHNlIG90b3JnYXJvbiBsb3MgcGVybWlzb3MgKi9cbiAgZ3JhbnRlZDogYm9vbGVhbjtcbiAgLyoqIEZDTSB0b2tlbiAoc29sbyBzaSBncmFudGVkPXRydWUpICovXG4gIHRva2VuPzogc3RyaW5nO1xuICAvKiogU2kgZWwgZGlzcG9zaXRpdm8gZnVlIHJlZ2lzdHJhZG8gZW4gZWwgYmFja2VuZCAqL1xuICByZWdpc3RlcmVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFc3RhZG8gZGUgcGVybWlzb3MgZGUgbm90aWZpY2FjacOzbi5cbiAqL1xuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uUGVybWlzc2lvblN0YXRlID0gJ2dyYW50ZWQnIHwgJ2RlbmllZCcgfCAnZGVmYXVsdCcgfCAndW5zdXBwb3J0ZWQnO1xuXG4vKipcbiAqIFJlc3VsdGFkbyBkZWwgcmVnaXN0cm8gbWFudWFsIGRlIGRpc3Bvc2l0aXZvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyRGV2aWNlUmVzdWx0IHtcbiAgLyoqIFNpIGVsIGRpc3Bvc2l0aXZvIGZ1ZSByZWdpc3RyYWRvIGV4aXRvc2FtZW50ZSAqL1xuICByZWdpc3RlcmVkOiBib29sZWFuO1xuICAvKiogSUQgZGVsIGRpc3Bvc2l0aXZvIChzb2xvIHNpIHJlZ2lzdGVyZWQ9dHJ1ZSkgKi9cbiAgZGV2aWNlSWQ/OiBzdHJpbmc7XG4gIC8qKiBGQ00gdG9rZW4gdXNhZG8gcGFyYSBlbCByZWdpc3RybyAqL1xuICB0b2tlbj86IHN0cmluZztcbiAgLyoqIE1lbnNhamUgZGUgZXJyb3IgKHNvbG8gc2kgcmVnaXN0ZXJlZD1mYWxzZSkgKi9cbiAgZXJyb3I/OiBzdHJpbmc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBERVZJQ0UgTUFOQUdFTUVOVCAoRGV0ZWNjacOzbiBkZSBkaXNwb3NpdGl2b3MgbnVldm9zKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBFc3RhZG9zIHBvc2libGVzIGRlIHVuIGRpc3Bvc2l0aXZvLlxuICovXG5leHBvcnQgdHlwZSBEZXZpY2VTdGF0dXMgPSAnYWN0aXZlJyB8ICdwZW5kaW5nX2FwcHJvdmFsJyB8ICdibG9ja2VkJztcblxuLyoqXG4gKiBJbmZvcm1hY2nDs24gY29tcGxldGEgZGUgdW4gZGlzcG9zaXRpdm8gcmVnaXN0cmFkby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VJbmZvIHtcbiAgLyoqIElEIMO6bmljbyBkZWwgZGlzcG9zaXRpdm8gKi9cbiAgZGV2aWNlSWQ6IHN0cmluZztcbiAgLyoqIFBsYXRhZm9ybWEgZGVsIGRpc3Bvc2l0aXZvICovXG4gIHBsYXRmb3JtOiBEZXZpY2VQbGF0Zm9ybTtcbiAgLyoqIE5hdmVnYWRvciAoc29sbyB3ZWIpICovXG4gIGJyb3dzZXI/OiBzdHJpbmc7XG4gIC8qKiBTaXN0ZW1hIG9wZXJhdGl2byAqL1xuICBvcz86IHN0cmluZztcbiAgLyoqIE5vbWJyZSBhbWlnYWJsZSBkZWwgZGlzcG9zaXRpdm8gKi9cbiAgbmFtZT86IHN0cmluZztcbiAgLyoqIEVzdGFkbyBhY3R1YWwgZGVsIGRpc3Bvc2l0aXZvICovXG4gIHN0YXR1czogRGV2aWNlU3RhdHVzO1xuICAvKiogRGlyZWNjacOzbiBJUCBkZWwgw7psdGltbyBhY2Nlc28gKi9cbiAgaXBBZGRyZXNzPzogc3RyaW5nO1xuICAvKiogVWJpY2FjacOzbiBnZW9ncsOhZmljYSBhcHJveGltYWRhICovXG4gIGxvY2F0aW9uPzogc3RyaW5nO1xuICAvKiogw5psdGltYSBhY3RpdmlkYWQgKi9cbiAgbGFzdEFjdGl2ZTogc3RyaW5nO1xuICAvKiogRmVjaGEgZGUgY3JlYWNpw7NuL3JlZ2lzdHJvICovXG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICAvKiogRmVjaGEgZGUgYXByb2JhY2nDs24gKHNpIGFwbGljYSkgKi9cbiAgYXBwcm92ZWRBdD86IHN0cmluZztcbiAgLyoqIEZlY2hhIGRlIGJsb3F1ZW8gKHNpIGFwbGljYSkgKi9cbiAgYmxvY2tlZEF0Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIGxpc3RhciBkaXNwb3NpdGl2b3MgZGVsIHVzdWFyaW8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdERldmljZXNSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGRldmljZXM6IERldmljZUluZm9bXTtcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBhY2Npw7NuIHNvYnJlIGRpc3Bvc2l0aXZvIChibG9jay9hcHByb3ZlL2RlbGV0ZSkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlQWN0aW9uUmVzdWx0IHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU0VTU0lPTiBNQU5BR0VNRU5UIChHZXN0acOzbiBkZSBzZXNpb25lcyBhY3RpdmFzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJbmZvcm1hY2nDs24gZGUgdW5hIHNlc2nDs24gYWN0aXZhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlc3Npb25JbmZvIHtcbiAgLyoqIElEIMO6bmljbyBkZSBsYSBzZXNpw7NuICovXG4gIHNlc3Npb25JZDogc3RyaW5nO1xuICAvKiogSUQgZGVsIGRpc3Bvc2l0aXZvIGFzb2NpYWRvIChzaSBleGlzdGUpICovXG4gIGRldmljZUlkPzogc3RyaW5nO1xuICAvKiogSW5mb3JtYWNpw7NuIGRlbCBkaXNwb3NpdGl2byAoVXNlci1BZ2VudCkgKi9cbiAgZGV2aWNlSW5mbz86IHN0cmluZztcbiAgLyoqIERpcmVjY2nDs24gSVAgZGUgbGEgc2VzacOzbiAqL1xuICBpcD86IHN0cmluZztcbiAgLyoqIFViaWNhY2nDs24gZ2VvZ3LDoWZpY2EgYXByb3hpbWFkYSAqL1xuICBsb2NhdGlvbj86IHN0cmluZztcbiAgLyoqIEZlY2hhIGRlIGNyZWFjacOzbiBkZSBsYSBzZXNpw7NuICovXG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICAvKiogRmVjaGEgZGUgZXhwaXJhY2nDs24gZGUgbGEgc2VzacOzbiAqL1xuICBleHBpcmVzQXQ6IHN0cmluZztcbiAgLyoqIEluZGljYSBzaSBlcyBsYSBzZXNpw7NuIGFjdHVhbCBkZWwgdXN1YXJpbyAqL1xuICBpc0N1cnJlbnQ6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgbGlzdGFyIHNlc2lvbmVzIGFjdGl2YXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFNlc3Npb25zUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBzZXNzaW9uczogU2Vzc2lvbkluZm9bXTtcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSByZXZvY2FyIHNlc2nDs24oZXMpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJldm9rZVNlc3Npb25zUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBzdWNjZXNzOiBib29sZWFuO1xuICAvKiogTsO6bWVybyBkZSBzZXNpb25lcyByZXZvY2FkYXMgKi9cbiAgc2Vzc2lvbnNSZXZva2VkOiBudW1iZXI7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBERVZJQ0UgQUNUSU9OIChBY2Npb25lcyBkZXNkZSBlbWFpbCBkZSBhbGVydGEpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFJlcXVlc3QgcGFyYSBlamVjdXRhciBhY2Npw7NuIGRlIGRpc3Bvc2l0aXZvIGRlc2RlIGVtYWlsLlxuICogRWwgdG9rZW4gdmllbmUgZW4gbGEgVVJMIGRlbCBlbWFpbCBkZSBhbGVydGEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlQWN0aW9uUmVxdWVzdCB7XG4gIC8qKiBUb2tlbiBKV1QgZGUgYWNjacOzbiAoMjRoLCB1biBzb2xvIHVzbykgKi9cbiAgdG9rZW46IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBlamVjdXRhciBhY2Npw7NuIGRlIGRpc3Bvc2l0aXZvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERldmljZUFjdGlvblJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgLyoqIFNpIGxhIGFjY2nDs24gZnVlIGVqZWN1dGFkYSBleGl0b3NhbWVudGUgKi9cbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgLyoqIEFjY2nDs24gZWplY3V0YWRhIChyZWZ1c2UsIGFwcHJvdmUsIGJsb2NrKSAqL1xuICBhY3Rpb246IHN0cmluZztcbiAgLyoqIElEIGRlbCBkaXNwb3NpdGl2byBhZmVjdGFkbyAqL1xuICBkZXZpY2VJZDogc3RyaW5nO1xuICAvKiogTsO6bWVybyBkZSBzZXNpb25lcyByZXZvY2FkYXMgKHNpIGFjdGlvbj1yZWZ1c2UvYmxvY2spICovXG4gIHNlc3Npb25zUmV2b2tlZD86IG51bWJlcjtcbiAgLyoqIE1lbnNhamUgZGVzY3JpcHRpdm8gKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHZhbGlkYXIgdG9rZW4gZGUgYWNjacOzbiAoc2luIGVqZWN1dGFyKS5cbiAqIFVzYWRvIHBhcmEgbW9zdHJhciBjb25maXJtYWNpw7NuIGFsIHVzdWFyaW8gYW50ZXMgZGUgZWplY3V0YXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGVBY3Rpb25SZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIC8qKiBTaSBlbCB0b2tlbiBlcyB2w6FsaWRvICovXG4gIHZhbGlkOiBib29sZWFuO1xuICAvKiogVGlwbyBkZSBhY2Npw7NuIChkZXZpY2U6cmVmdXNlLCBkZXZpY2U6YXBwcm92ZSwgZXRjLikgKi9cbiAgYWN0aW9uVHlwZT86IHN0cmluZztcbiAgLyoqIFRpcG8gZGUgcmVjdXJzbyBvYmpldGl2byAoZGV2aWNlLCBkb2N1bWVudCwgZXRjLikgKi9cbiAgdGFyZ2V0VHlwZT86IHN0cmluZztcbiAgLyoqIElEIGRlbCByZWN1cnNvIG9iamV0aXZvICovXG4gIHRhcmdldElkPzogc3RyaW5nO1xuICAvKiogTWVuc2FqZSBkZSBlcnJvciAoc2kgdmFsaWQ9ZmFsc2UpICovXG4gIG1lc3NhZ2U/OiBzdHJpbmc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBPQVVUSCAoTG9naW4gc29jaWFsKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBQcm92ZWVkb3JlcyBPQXV0aCBzb3BvcnRhZG9zLlxuICovXG5leHBvcnQgdHlwZSBPQXV0aFByb3ZpZGVyID0gJ2dvb2dsZScgfCAnYXBwbGUnIHwgJ21pY3Jvc29mdCc7XG5cbi8qKlxuICogUmVzdWx0YWRvIGV4aXRvc28gZGUgZmx1am8gT0F1dGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT0F1dGhSZXN1bHQge1xuICAvKiogVG9rZW4gZGUgYWNjZXNvIEpXVCAqL1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICAvKiogVG9rZW4gZGUgcmVmcmVzY28gKi9cbiAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gIC8qKiBUb2tlbiBkZSBGaXJlYmFzZSAoc2kgZXN0w6EgaGFiaWxpdGFkbykgKi9cbiAgZmlyZWJhc2VUb2tlbj86IHN0cmluZztcbiAgLyoqIFRpZW1wbyBkZSBleHBpcmFjacOzbiBlbiBzZWd1bmRvcyAqL1xuICBleHBpcmVzSW46IG51bWJlcjtcbiAgLyoqIFJvbGVzIGRlbCB1c3VhcmlvICovXG4gIHJvbGVzPzogc3RyaW5nW107XG4gIC8qKiBQZXJtaXNvcyBkZWwgdXN1YXJpbyAqL1xuICBwZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xuICAvKiogSW5kaWNhIHNpIGVzIHVuIHVzdWFyaW8gbnVldm8gKHJlY2nDqW4gY3JlYWRvKSAqL1xuICBpc05ld1VzZXI/OiBib29sZWFuO1xuICAvKiogSW5kaWNhIHNpIGxhIGN1ZW50YSBmdWUgdmluY3VsYWRhIGEgdXN1YXJpbyBleGlzdGVudGUgKi9cbiAgbGlua2VkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFcnJvciBkZSBPQXV0aC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPQXV0aEVycm9yIHtcbiAgLyoqIEPDs2RpZ28gZGUgZXJyb3IgKi9cbiAgY29kZTogc3RyaW5nO1xuICAvKiogTWVuc2FqZSBkZXNjcmlwdGl2byAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGF0b3MgZW52aWFkb3MgZGVzZGUgcG9wdXAgY2FsbGJhY2sgdmlhIHBvc3RNZXNzYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9BdXRoQ2FsbGJhY2tEYXRhIHtcbiAgLyoqIFRpcG8gZGUgbWVuc2FqZSAqL1xuICB0eXBlOiAnb2F1dGgtY2FsbGJhY2snO1xuICAvKiogVG9rZW5zIChzaSDDqXhpdG8pICovXG4gIHRva2Vucz86IE9BdXRoUmVzdWx0O1xuICAvKiogRXJyb3IgKHNpIGZhbGzDsykgKi9cbiAgZXJyb3I/OiBPQXV0aEVycm9yO1xufVxuXG4vKipcbiAqIFByb3ZlZWRvciBPQXV0aCB2aW5jdWxhZG8gYWwgdXN1YXJpby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaW5rZWRQcm92aWRlciB7XG4gIC8qKiBOb21icmUgZGVsIHByb3ZlZWRvciAqL1xuICBwcm92aWRlcjogT0F1dGhQcm92aWRlcjtcbiAgLyoqIEVtYWlsIGFzb2NpYWRvIGFsIHByb3ZlZWRvciAqL1xuICBlbWFpbDogc3RyaW5nO1xuICAvKiogTm9tYnJlIGRlbCB1c3VhcmlvIGVuIGVsIHByb3ZlZWRvciAqL1xuICBuYW1lPzogc3RyaW5nO1xuICAvKiogVVJMIGRlIGltYWdlbiBkZSBwZXJmaWwgKi9cbiAgcGljdHVyZT86IHN0cmluZztcbiAgLyoqIEZlY2hhIGRlIHZpbmN1bGFjacOzbiAqL1xuICBsaW5rZWRBdDogc3RyaW5nO1xuICAvKiogw5psdGltYSB2ZXogcXVlIHNlIHVzw7MgcGFyYSBsb2dpbiAqL1xuICBsYXN0VXNlZEF0Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIHZlcmlmaWNhciBzaSB0aWVuZSBjb250cmFzZcOxYS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIYXNQYXNzd29yZFJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgaGFzUGFzc3dvcmQ6IGJvb2xlYW47XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIQU5ETEUgKFVzZXJuYW1lKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBSZXF1ZXN0IHBhcmEgYWN0dWFsaXphciBoYW5kbGUgKEB1c2VybmFtZSkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlSGFuZGxlUmVxdWVzdCB7XG4gIGhhbmRsZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGRlIGFjdHVhbGl6YXIgaGFuZGxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUhhbmRsZVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgaGFuZGxlOiBzdHJpbmc7XG4gIHVwZGF0ZWQ6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIHZlcmlmaWNhciBkaXNwb25pYmlsaWRhZCBkZSBoYW5kbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tIYW5kbGVSZXF1ZXN0IHtcbiAgaGFuZGxlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzcG9uc2UgZGUgdmVyaWZpY2FyIGRpc3BvbmliaWxpZGFkIGRlIGhhbmRsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja0hhbmRsZVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgaGFuZGxlOiBzdHJpbmc7XG4gIGF2YWlsYWJsZTogYm9vbGVhbjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExJTktFRCBQUk9WSURFUlMgKE9BdXRoKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBvYnRlbmVyIHByb3ZlZWRvcmVzIE9BdXRoIHZpbmN1bGFkb3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TGlua2VkUHJvdmlkZXJzUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBwcm92aWRlcnM6IExpbmtlZFByb3ZpZGVyW107XG59XG5cbi8qKlxuICogUmVxdWVzdCBwYXJhIGRlc3ZpbmN1bGFyIHVuIHByb3ZlZWRvciBPQXV0aC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmxpbmtQcm92aWRlclJlcXVlc3Qge1xuICBwcm92aWRlcjogT0F1dGhQcm92aWRlcjtcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBkZSBkZXN2aW5jdWxhciBwcm92ZWVkb3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW5saW5rUHJvdmlkZXJSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIHVubGlua2VkOiBib29sZWFuO1xufVxuIl19