@infrab4a/connect-angular 5.5.0-alpha.2 → 5.5.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/angular-connect.module.d.ts +36 -0
  2. package/angular-elastic-search.module.d.ts +9 -0
  3. package/angular-firebase-auth.module.d.ts +11 -0
  4. package/angular-firestore.module.d.ts +17 -0
  5. package/angular-hasura-graphql.module.d.ts +14 -0
  6. package/angular-vertex-search.module.d.ts +9 -0
  7. package/consts/backend-url.const.d.ts +1 -0
  8. package/consts/category-structure.d.ts +1 -0
  9. package/consts/default-shop.const.d.ts +1 -0
  10. package/consts/es-config.const.d.ts +1 -0
  11. package/consts/firebase-const.d.ts +4 -0
  12. package/consts/hasura-options.const.d.ts +1 -0
  13. package/consts/index.d.ts +8 -0
  14. package/consts/persistence.const.d.ts +1 -0
  15. package/consts/storage-base-url.const.d.ts +1 -0
  16. package/consts/vertex-config.const.d.ts +1 -0
  17. package/esm2020/angular-connect.module.mjs +291 -0
  18. package/esm2020/angular-elastic-search.module.mjs +34 -0
  19. package/esm2020/angular-firebase-auth.module.mjs +141 -0
  20. package/esm2020/angular-firestore.module.mjs +541 -0
  21. package/esm2020/angular-hasura-graphql.module.mjs +355 -0
  22. package/esm2020/angular-vertex-search.module.mjs +34 -0
  23. package/esm2020/consts/backend-url.const.mjs +2 -0
  24. package/esm2020/consts/category-structure.mjs +2 -0
  25. package/esm2020/consts/default-shop.const.mjs +2 -0
  26. package/esm2020/consts/es-config.const.mjs +2 -0
  27. package/esm2020/consts/firebase-const.mjs +5 -0
  28. package/esm2020/consts/hasura-options.const.mjs +2 -0
  29. package/esm2020/consts/index.mjs +9 -0
  30. package/esm2020/consts/persistence.const.mjs +2 -0
  31. package/esm2020/consts/storage-base-url.const.mjs +2 -0
  32. package/esm2020/consts/vertex-config.const.mjs +2 -0
  33. package/esm2020/helpers/index.mjs +2 -0
  34. package/esm2020/helpers/mobile-operation-system-checker.helper.mjs +7 -0
  35. package/esm2020/index.mjs +7 -0
  36. package/esm2020/infrab4a-connect-angular.mjs +5 -0
  37. package/esm2020/interfaces/catalog-strategies.interface.mjs +2 -0
  38. package/esm2020/interfaces/category-facades.interface.mjs +2 -0
  39. package/esm2020/interfaces/index.mjs +3 -0
  40. package/esm2020/persistence/cookie-data-persistence.mjs +22 -0
  41. package/esm2020/persistence/data-persistence.mjs +2 -0
  42. package/esm2020/persistence/index.mjs +3 -0
  43. package/esm2020/services/auth.service.mjs +37 -0
  44. package/esm2020/services/cart/cart-services.facade.mjs +21 -0
  45. package/esm2020/services/cart/index.mjs +2 -0
  46. package/esm2020/services/cart.service.mjs +73 -0
  47. package/esm2020/services/catalog/adapters/category-structure.adapter.mjs +2 -0
  48. package/esm2020/services/catalog/adapters/index.mjs +4 -0
  49. package/esm2020/services/catalog/adapters/new-category-structure.adapter.mjs +43 -0
  50. package/esm2020/services/catalog/adapters/old-category-structure.adapter.mjs +23 -0
  51. package/esm2020/services/catalog/catalog.service.mjs +111 -0
  52. package/esm2020/services/catalog/category.service.mjs +42 -0
  53. package/esm2020/services/catalog/context/catalog-search.context.mjs +40 -0
  54. package/esm2020/services/catalog/enums/index.mjs +2 -0
  55. package/esm2020/services/catalog/enums/product-sorts.enum.mjs +11 -0
  56. package/esm2020/services/catalog/facades/catalog-service.facade.mjs +32 -0
  57. package/esm2020/services/catalog/facades/catalog-strategies.facade.mjs +17 -0
  58. package/esm2020/services/catalog/facades/category-repository.facade.mjs +20 -0
  59. package/esm2020/services/catalog/facades/category-service.facade.mjs +30 -0
  60. package/esm2020/services/catalog/facades/index.mjs +6 -0
  61. package/esm2020/services/catalog/facades/product-catalog.facade.mjs +21 -0
  62. package/esm2020/services/catalog/helpers/brand-manager.helper.mjs +57 -0
  63. package/esm2020/services/catalog/helpers/catalog-filter.helper.mjs +44 -0
  64. package/esm2020/services/catalog/helpers/catalog-sort.helper.mjs +52 -0
  65. package/esm2020/services/catalog/helpers/index.mjs +5 -0
  66. package/esm2020/services/catalog/helpers/product-fields.helper.mjs +40 -0
  67. package/esm2020/services/catalog/index.mjs +8 -0
  68. package/esm2020/services/catalog/models/category-with-tree.model.mjs +10 -0
  69. package/esm2020/services/catalog/models/index.mjs +2 -0
  70. package/esm2020/services/catalog/services/catalog-helpers.service.mjs +33 -0
  71. package/esm2020/services/catalog/services/catalog-operations.facade.mjs +26 -0
  72. package/esm2020/services/catalog/services/catalog-repository.service.mjs +25 -0
  73. package/esm2020/services/catalog/services/index.mjs +5 -0
  74. package/esm2020/services/catalog/services/product-management.facade.mjs +25 -0
  75. package/esm2020/services/catalog/strategies/category-search.strategy.mjs +133 -0
  76. package/esm2020/services/catalog/strategies/index.mjs +4 -0
  77. package/esm2020/services/catalog/strategies/profile-search.strategy.mjs +42 -0
  78. package/esm2020/services/catalog/strategies/term-search.strategy.mjs +123 -0
  79. package/esm2020/services/catalog/strategies/types/strategy-params.type.mjs +2 -0
  80. package/esm2020/services/catalog/types/fetch-products-options.type.mjs +2 -0
  81. package/esm2020/services/catalog/types/fetch-products-params.type.mjs +2 -0
  82. package/esm2020/services/catalog/types/fetch-products-response.type.mjs +2 -0
  83. package/esm2020/services/catalog/types/index.mjs +6 -0
  84. package/esm2020/services/catalog/types/method-params.type.mjs +2 -0
  85. package/esm2020/services/catalog/types/product-sort.type.mjs +2 -0
  86. package/esm2020/services/catalog/wishlist.service.mjs +254 -0
  87. package/esm2020/services/checkout/checkout-dependencies.facade.mjs +20 -0
  88. package/esm2020/services/checkout/checkout-repositories.facade.mjs +20 -0
  89. package/esm2020/services/checkout/index.mjs +3 -0
  90. package/esm2020/services/checkout-subscription.service.mjs +55 -0
  91. package/esm2020/services/checkout.service.mjs +106 -0
  92. package/esm2020/services/coupon/coupon-repositories.facade.mjs +24 -0
  93. package/esm2020/services/coupon/index.mjs +2 -0
  94. package/esm2020/services/coupon/types/coupon-params.type.mjs +2 -0
  95. package/esm2020/services/coupon.service.mjs +248 -0
  96. package/esm2020/services/helpers/index.mjs +2 -0
  97. package/esm2020/services/helpers/util.helper.mjs +18 -0
  98. package/esm2020/services/home-shop/home-shop-repositories.facade.mjs +24 -0
  99. package/esm2020/services/home-shop/index.mjs +2 -0
  100. package/esm2020/services/home-shop.service.mjs +119 -0
  101. package/esm2020/services/index.mjs +11 -0
  102. package/esm2020/services/order-product-review.service.mjs +110 -0
  103. package/esm2020/services/order.service.mjs +30 -0
  104. package/esm2020/services/shared/configuration.facade.mjs +29 -0
  105. package/esm2020/services/shared/index.mjs +2 -0
  106. package/esm2020/services/types/index.mjs +5 -0
  107. package/esm2020/services/types/pending-product-review.type.mjs +2 -0
  108. package/esm2020/services/types/product-review-create.type.mjs +2 -0
  109. package/esm2020/services/types/required-checkout-data.type.mjs +2 -0
  110. package/esm2020/services/types/required-checkout-subscription-data.type.mjs +2 -0
  111. package/esm2020/types/firebase-app-config.type.mjs +2 -0
  112. package/esm2020/types/index.mjs +2 -0
  113. package/fesm2015/infrab4a-connect-angular.mjs +3513 -0
  114. package/fesm2015/infrab4a-connect-angular.mjs.map +1 -0
  115. package/{fesm2022 → fesm2020}/infrab4a-connect-angular.mjs +3314 -3327
  116. package/fesm2020/infrab4a-connect-angular.mjs.map +1 -0
  117. package/helpers/index.d.ts +1 -0
  118. package/helpers/mobile-operation-system-checker.helper.d.ts +3 -0
  119. package/index.d.ts +6 -755
  120. package/interfaces/catalog-strategies.interface.d.ts +31 -0
  121. package/interfaces/category-facades.interface.d.ts +6 -0
  122. package/interfaces/index.d.ts +2 -0
  123. package/package.json +15 -7
  124. package/persistence/cookie-data-persistence.d.ts +10 -0
  125. package/persistence/data-persistence.d.ts +6 -0
  126. package/persistence/index.d.ts +2 -0
  127. package/services/auth.service.d.ts +18 -0
  128. package/services/cart/cart-services.facade.d.ts +12 -0
  129. package/services/cart/index.d.ts +1 -0
  130. package/services/cart.service.d.ts +26 -0
  131. package/services/catalog/adapters/category-structure.adapter.d.ts +4 -0
  132. package/services/catalog/adapters/index.d.ts +3 -0
  133. package/services/catalog/adapters/new-category-structure.adapter.d.ts +12 -0
  134. package/services/catalog/adapters/old-category-structure.adapter.d.ts +10 -0
  135. package/services/catalog/catalog.service.d.ts +24 -0
  136. package/services/catalog/category.service.d.ts +23 -0
  137. package/services/catalog/context/catalog-search.context.d.ts +14 -0
  138. package/services/catalog/enums/index.d.ts +1 -0
  139. package/services/catalog/enums/product-sorts.enum.d.ts +9 -0
  140. package/services/catalog/facades/catalog-service.facade.d.ts +15 -0
  141. package/services/catalog/facades/catalog-strategies.facade.d.ts +10 -0
  142. package/services/catalog/facades/category-repository.facade.d.ts +9 -0
  143. package/services/catalog/facades/category-service.facade.d.ts +15 -0
  144. package/services/catalog/facades/index.d.ts +5 -0
  145. package/services/catalog/facades/product-catalog.facade.d.ts +10 -0
  146. package/services/catalog/helpers/brand-manager.helper.d.ts +14 -0
  147. package/services/catalog/helpers/catalog-filter.helper.d.ts +8 -0
  148. package/services/catalog/helpers/catalog-sort.helper.d.ts +7 -0
  149. package/services/catalog/helpers/index.d.ts +4 -0
  150. package/services/catalog/helpers/product-fields.helper.d.ts +7 -0
  151. package/services/catalog/index.d.ts +7 -0
  152. package/services/catalog/models/category-with-tree.model.d.ts +4 -0
  153. package/services/catalog/models/index.d.ts +1 -0
  154. package/services/catalog/services/catalog-helpers.service.d.ts +17 -0
  155. package/services/catalog/services/catalog-operations.facade.d.ts +13 -0
  156. package/services/catalog/services/catalog-repository.service.d.ts +12 -0
  157. package/services/catalog/services/index.d.ts +4 -0
  158. package/services/catalog/services/product-management.facade.d.ts +12 -0
  159. package/services/catalog/strategies/category-search.strategy.d.ts +19 -0
  160. package/services/catalog/strategies/index.d.ts +3 -0
  161. package/services/catalog/strategies/profile-search.strategy.d.ts +14 -0
  162. package/services/catalog/strategies/term-search.strategy.d.ts +20 -0
  163. package/services/catalog/strategies/types/strategy-params.type.d.ts +58 -0
  164. package/services/catalog/types/fetch-products-options.type.d.ts +8 -0
  165. package/services/catalog/types/fetch-products-params.type.d.ts +25 -0
  166. package/services/catalog/types/fetch-products-response.type.d.ts +19 -0
  167. package/services/catalog/types/index.d.ts +5 -0
  168. package/services/catalog/types/method-params.type.d.ts +17 -0
  169. package/services/catalog/types/product-sort.type.d.ts +2 -0
  170. package/services/catalog/wishlist.service.d.ts +59 -0
  171. package/services/checkout/checkout-dependencies.facade.d.ts +10 -0
  172. package/services/checkout/checkout-repositories.facade.d.ts +9 -0
  173. package/services/checkout/index.d.ts +2 -0
  174. package/services/checkout-subscription.service.d.ts +19 -0
  175. package/services/checkout.service.d.ts +30 -0
  176. package/services/coupon/coupon-repositories.facade.d.ts +10 -0
  177. package/services/coupon/index.d.ts +1 -0
  178. package/services/coupon/types/coupon-params.type.d.ts +13 -0
  179. package/services/coupon.service.d.ts +36 -0
  180. package/services/helpers/index.d.ts +1 -0
  181. package/services/helpers/util.helper.d.ts +3 -0
  182. package/services/home-shop/home-shop-repositories.facade.d.ts +10 -0
  183. package/services/home-shop/index.d.ts +1 -0
  184. package/services/home-shop.service.d.ts +26 -0
  185. package/services/index.d.ts +10 -0
  186. package/services/order-product-review.service.d.ts +16 -0
  187. package/services/order.service.d.ts +13 -0
  188. package/services/shared/configuration.facade.d.ts +12 -0
  189. package/services/shared/index.d.ts +1 -0
  190. package/services/types/index.d.ts +4 -0
  191. package/services/types/pending-product-review.type.d.ts +12 -0
  192. package/services/types/product-review-create.type.d.ts +14 -0
  193. package/services/types/required-checkout-data.type.d.ts +2 -0
  194. package/services/types/required-checkout-subscription-data.type.d.ts +2 -0
  195. package/types/firebase-app-config.type.d.ts +1 -0
  196. package/types/index.d.ts +1 -0
  197. package/fesm2022/infrab4a-connect-angular.mjs.map +0 -1
@@ -0,0 +1,141 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { FirebaseApp } from '@angular/fire/app';
3
+ import { Auth, browserLocalPersistence, browserSessionPersistence, getAuth, indexedDBLocalPersistence, initializeAuth, provideAuth, } from '@angular/fire/auth';
4
+ import { Authentication, AuthenticationFirebaseAuthService, RecoveryPassword, Register, RegisterFirebaseAuthService, SignOut, } from '@infrab4a/connect';
5
+ import { FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/fire/auth";
8
+ export class AngularFirebaseAuthModule {
9
+ static initializeApp(options, nameOrConfig) {
10
+ return {
11
+ ngModule: AngularFirebaseAuthModule,
12
+ providers: [
13
+ { provide: FIREBASE_OPTIONS, useValue: options },
14
+ { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },
15
+ ],
16
+ };
17
+ }
18
+ }
19
+ AngularFirebaseAuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularFirebaseAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
+ AngularFirebaseAuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: AngularFirebaseAuthModule, imports: [i1.AuthModule] });
21
+ AngularFirebaseAuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularFirebaseAuthModule, providers: [
22
+ {
23
+ provide: 'Authentication',
24
+ useFactory: (authenticationService, userRepository) => {
25
+ return new Authentication(authenticationService, userRepository);
26
+ },
27
+ deps: ['AuthenticationService', 'UserRepository'],
28
+ },
29
+ {
30
+ provide: 'AuthenticationService',
31
+ useFactory: (angularFireAuth) => {
32
+ return new AuthenticationFirebaseAuthService(angularFireAuth);
33
+ },
34
+ deps: [Auth],
35
+ },
36
+ {
37
+ provide: 'Register',
38
+ useFactory: (registerService, userRepository) => {
39
+ return new Register(registerService, userRepository);
40
+ },
41
+ deps: ['RegisterService', 'UserRepository'],
42
+ },
43
+ {
44
+ provide: 'RegisterService',
45
+ useFactory: (angularFireAuth) => {
46
+ return new RegisterFirebaseAuthService(angularFireAuth);
47
+ },
48
+ deps: [Auth],
49
+ },
50
+ {
51
+ provide: 'SignOut',
52
+ useFactory: (authenticationService) => {
53
+ return new SignOut(authenticationService);
54
+ },
55
+ deps: ['AuthenticationService'],
56
+ },
57
+ {
58
+ provide: 'RecoveryPassword',
59
+ useFactory: (authenticationService) => {
60
+ return new RecoveryPassword(authenticationService);
61
+ },
62
+ deps: ['AuthenticationService'],
63
+ },
64
+ ], imports: [provideAuth((injector) => {
65
+ const app = injector.get(FirebaseApp);
66
+ try {
67
+ return initializeAuth(app, {
68
+ persistence: [indexedDBLocalPersistence, browserLocalPersistence, browserSessionPersistence],
69
+ });
70
+ }
71
+ catch (error) {
72
+ if (error instanceof Error)
73
+ console.error('Error initializing auth', error.message);
74
+ return getAuth(app);
75
+ }
76
+ })] });
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: AngularFirebaseAuthModule, decorators: [{
78
+ type: NgModule,
79
+ args: [{
80
+ imports: [
81
+ provideAuth((injector) => {
82
+ const app = injector.get(FirebaseApp);
83
+ try {
84
+ return initializeAuth(app, {
85
+ persistence: [indexedDBLocalPersistence, browserLocalPersistence, browserSessionPersistence],
86
+ });
87
+ }
88
+ catch (error) {
89
+ if (error instanceof Error)
90
+ console.error('Error initializing auth', error.message);
91
+ return getAuth(app);
92
+ }
93
+ }),
94
+ ],
95
+ providers: [
96
+ {
97
+ provide: 'Authentication',
98
+ useFactory: (authenticationService, userRepository) => {
99
+ return new Authentication(authenticationService, userRepository);
100
+ },
101
+ deps: ['AuthenticationService', 'UserRepository'],
102
+ },
103
+ {
104
+ provide: 'AuthenticationService',
105
+ useFactory: (angularFireAuth) => {
106
+ return new AuthenticationFirebaseAuthService(angularFireAuth);
107
+ },
108
+ deps: [Auth],
109
+ },
110
+ {
111
+ provide: 'Register',
112
+ useFactory: (registerService, userRepository) => {
113
+ return new Register(registerService, userRepository);
114
+ },
115
+ deps: ['RegisterService', 'UserRepository'],
116
+ },
117
+ {
118
+ provide: 'RegisterService',
119
+ useFactory: (angularFireAuth) => {
120
+ return new RegisterFirebaseAuthService(angularFireAuth);
121
+ },
122
+ deps: [Auth],
123
+ },
124
+ {
125
+ provide: 'SignOut',
126
+ useFactory: (authenticationService) => {
127
+ return new SignOut(authenticationService);
128
+ },
129
+ deps: ['AuthenticationService'],
130
+ },
131
+ {
132
+ provide: 'RecoveryPassword',
133
+ useFactory: (authenticationService) => {
134
+ return new RecoveryPassword(authenticationService);
135
+ },
136
+ deps: ['AuthenticationService'],
137
+ },
138
+ ],
139
+ }]
140
+ }] });
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1maXJlYmFzZS1hdXRoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvYW5ndWxhci1maXJlYmFzZS1hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlDLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFtQixNQUFNLG1CQUFtQixDQUFBO0FBQ2hFLE9BQU8sRUFDTCxJQUFJLEVBQ0osdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6QixPQUFPLEVBQ1AseUJBQXlCLEVBQ3pCLGNBQWMsRUFDZCxXQUFXLEdBQ1osTUFBTSxvQkFBb0IsQ0FBQTtBQUMzQixPQUFPLEVBQ0wsY0FBYyxFQUNkLGlDQUFpQyxFQUVqQyxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLDJCQUEyQixFQUUzQixPQUFPLEdBRVIsTUFBTSxtQkFBbUIsQ0FBQTtBQUUxQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUE7OztBQWdFOUQsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxNQUFNLENBQUMsYUFBYSxDQUNsQixPQUF3QixFQUN4QixZQUF5QztRQUV6QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLHlCQUF5QjtZQUNuQyxTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtnQkFDaEQsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRTthQUN2RDtTQUNGLENBQUE7SUFDSCxDQUFDOztzSEFaVSx5QkFBeUI7dUhBQXpCLHlCQUF5Qjt1SEFBekIseUJBQXlCLGFBN0N6QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixVQUFVLEVBQUUsQ0FBQyxxQkFBNEMsRUFBRSxjQUE4QixF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QUFFLENBQUMscUJBQTRDLEVBQW9CLEVBQUU7Z0NBQzdFLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBOzRCQUNwRCxDQUFDOzRCQUNELElBQUksRUFBRSxDQUFDLHVCQUF1QixDQUFDO3lCQUNoQztxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEZpcmViYXNlQXBwLCBGaXJlYmFzZU9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9maXJlL2FwcCdcclxuaW1wb3J0IHtcclxuICBBdXRoLFxyXG4gIGJyb3dzZXJMb2NhbFBlcnNpc3RlbmNlLFxyXG4gIGJyb3dzZXJTZXNzaW9uUGVyc2lzdGVuY2UsXHJcbiAgZ2V0QXV0aCxcclxuICBpbmRleGVkREJMb2NhbFBlcnNpc3RlbmNlLFxyXG4gIGluaXRpYWxpemVBdXRoLFxyXG4gIHByb3ZpZGVBdXRoLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXV0aCdcclxuaW1wb3J0IHtcclxuICBBdXRoZW50aWNhdGlvbixcclxuICBBdXRoZW50aWNhdGlvbkZpcmViYXNlQXV0aFNlcnZpY2UsXHJcbiAgQXV0aGVudGljYXRpb25TZXJ2aWNlLFxyXG4gIFJlY292ZXJ5UGFzc3dvcmQsXHJcbiAgUmVnaXN0ZXIsXHJcbiAgUmVnaXN0ZXJGaXJlYmFzZUF1dGhTZXJ2aWNlLFxyXG4gIFJlZ2lzdGVyU2VydmljZSxcclxuICBTaWduT3V0LFxyXG4gIFVzZXJSZXBvc2l0b3J5LFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5cclxuaW1wb3J0IHsgRklSRUJBU0VfQVBQX05BTUUsIEZJUkVCQVNFX09QVElPTlMgfSBmcm9tICcuL2NvbnN0cydcclxuaW1wb3J0IHsgRmlyZWJhc2VBcHBDb25maWcgfSBmcm9tICcuL3R5cGVzJ1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBwcm92aWRlQXV0aCgoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XHJcbiAgICAgIGNvbnN0IGFwcCA9IGluamVjdG9yLmdldChGaXJlYmFzZUFwcClcclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgcmV0dXJuIGluaXRpYWxpemVBdXRoKGFwcCwge1xyXG4gICAgICAgICAgcGVyc2lzdGVuY2U6IFtpbmRleGVkREJMb2NhbFBlcnNpc3RlbmNlLCBicm93c2VyTG9jYWxQZXJzaXN0ZW5jZSwgYnJvd3NlclNlc3Npb25QZXJzaXN0ZW5jZV0sXHJcbiAgICAgICAgfSlcclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikgY29uc29sZS5lcnJvcignRXJyb3IgaW5pdGlhbGl6aW5nIGF1dGgnLCBlcnJvci5tZXNzYWdlKVxyXG5cclxuICAgICAgICByZXR1cm4gZ2V0QXV0aChhcHApXHJcbiAgICAgIH1cclxuICAgIH0pLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdBdXRoZW50aWNhdGlvbicsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSwgdXNlclJlcG9zaXRvcnk6IFVzZXJSZXBvc2l0b3J5KTogQXV0aGVudGljYXRpb24gPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQXV0aGVudGljYXRpb24oYXV0aGVudGljYXRpb25TZXJ2aWNlLCB1c2VyUmVwb3NpdG9yeSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydBdXRoZW50aWNhdGlvblNlcnZpY2UnLCAnVXNlclJlcG9zaXRvcnknXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdBdXRoZW50aWNhdGlvblNlcnZpY2UnLFxyXG4gICAgICB1c2VGYWN0b3J5OiAoYW5ndWxhckZpcmVBdXRoOiBBdXRoKTogQXV0aGVudGljYXRpb25TZXJ2aWNlID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IEF1dGhlbnRpY2F0aW9uRmlyZWJhc2VBdXRoU2VydmljZShhbmd1bGFyRmlyZUF1dGgpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFtBdXRoXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdSZWdpc3RlcicsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChyZWdpc3RlclNlcnZpY2U6IFJlZ2lzdGVyU2VydmljZSwgdXNlclJlcG9zaXRvcnk6IFVzZXJSZXBvc2l0b3J5KTogUmVnaXN0ZXIgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUmVnaXN0ZXIocmVnaXN0ZXJTZXJ2aWNlLCB1c2VyUmVwb3NpdG9yeSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydSZWdpc3RlclNlcnZpY2UnLCAnVXNlclJlcG9zaXRvcnknXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdSZWdpc3RlclNlcnZpY2UnLFxyXG4gICAgICB1c2VGYWN0b3J5OiAoYW5ndWxhckZpcmVBdXRoOiBBdXRoKTogUmVnaXN0ZXJTZXJ2aWNlID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFJlZ2lzdGVyRmlyZWJhc2VBdXRoU2VydmljZShhbmd1bGFyRmlyZUF1dGgpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFtBdXRoXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdTaWduT3V0JyxcclxuICAgICAgdXNlRmFjdG9yeTogKGF1dGhlbnRpY2F0aW9uU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlKTogU2lnbk91dCA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTaWduT3V0KGF1dGhlbnRpY2F0aW9uU2VydmljZSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydBdXRoZW50aWNhdGlvblNlcnZpY2UnXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdSZWNvdmVyeVBhc3N3b3JkJyxcclxuICAgICAgdXNlRmFjdG9yeTogKGF1dGhlbnRpY2F0aW9uU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlKTogUmVjb3ZlcnlQYXNzd29yZCA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBSZWNvdmVyeVBhc3N3b3JkKGF1dGhlbnRpY2F0aW9uU2VydmljZSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogWydBdXRoZW50aWNhdGlvblNlcnZpY2UnXSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJGaXJlYmFzZUF1dGhNb2R1bGUge1xyXG4gIHN0YXRpYyBpbml0aWFsaXplQXBwKFxyXG4gICAgb3B0aW9uczogRmlyZWJhc2VPcHRpb25zLFxyXG4gICAgbmFtZU9yQ29uZmlnPzogc3RyaW5nIHwgRmlyZWJhc2VBcHBDb25maWcsXHJcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBbmd1bGFyRmlyZWJhc2VBdXRoTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQW5ndWxhckZpcmViYXNlQXV0aE1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBGSVJFQkFTRV9PUFRJT05TLCB1c2VWYWx1ZTogb3B0aW9ucyB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogRklSRUJBU0VfQVBQX05BTUUsIHVzZVZhbHVlOiBuYW1lT3JDb25maWcgfSxcclxuICAgICAgXSxcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19