@infrab4a/connect-angular 0.4.0 → 0.4.1

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.
@@ -1,267 +1,281 @@
1
- import { NgModule } from '@angular/core';
2
- import { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, } from '@angular/fire';
3
- import { AngularFirestore } from '@angular/fire/firestore';
4
- import { Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, SubscriptionEditionFirestoreRepository, SubscriptionFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, UserAddressFirestoreRepository, UserBeautyProfileFirestoreRepository, UserFirestoreRepository, ProductVariantFirestoreRepository, HomeFirestoreRepository, } from '@infrab4a/connect';
5
- import * as i0 from "@angular/core";
6
- export class AngularFirestoreModule {
7
- static initializeApp(options, nameOrConfig) {
8
- return {
9
- ngModule: AngularFirestoreModule,
10
- providers: [
11
- { provide: FIREBASE_OPTIONS, useValue: options },
12
- { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },
13
- ],
14
- };
15
- }
16
- }
17
- AngularFirestoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AngularFirestoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
- AngularFirestoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AngularFirestoreModule, imports: [AngularFireModule] });
19
- AngularFirestoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AngularFirestoreModule, providers: [
20
- {
21
- provide: 'BeautyProfileRepository',
22
- useFactory: (firestore, userRepository) => {
23
- return new UserBeautyProfileFirestoreRepository(firestore.firestore, userRepository);
24
- },
25
- deps: [AngularFirestore, 'UserRepository'],
26
- },
27
- {
28
- provide: 'Buy2WinRepository',
29
- useFactory: (firestore) => {
30
- return new Buy2WinFirestoreRepository(firestore.firestore);
31
- },
32
- deps: [AngularFirestore],
33
- },
34
- {
35
- provide: 'HomeRepository',
36
- useFactory: (firestore) => {
37
- return new HomeFirestoreRepository(firestore.firestore);
38
- },
39
- deps: [AngularFirestore],
40
- },
41
- {
42
- provide: 'CategoryRepository',
43
- useFactory: (firestore) => {
44
- return new CategoryFirestoreRepository(firestore.firestore);
45
- },
46
- deps: [AngularFirestore],
47
- },
48
- {
49
- provide: 'CheckoutRepository',
50
- useFactory: (firestore) => {
51
- return new CheckoutFirestoreRepository(firestore.firestore);
52
- },
53
- deps: [AngularFirestore],
54
- },
55
- {
56
- provide: 'CheckoutSubscriptionRepository',
57
- useFactory: (firestore) => {
58
- return new CheckoutSubscriptionFirestoreRepository(firestore.firestore);
59
- },
60
- deps: [AngularFirestore],
61
- },
62
- {
63
- provide: 'CouponRepository',
64
- useFactory: (firestore) => {
65
- return new CouponFirestoreRepository(firestore.firestore);
66
- },
67
- deps: [AngularFirestore],
68
- },
69
- {
70
- provide: 'EditionRepository',
71
- useFactory: (firestore, subscriptionRepository) => {
72
- return new SubscriptionEditionFirestoreRepository(firestore.firestore, subscriptionRepository);
73
- },
74
- deps: [AngularFirestore, 'SubscriptionRepository'],
75
- },
76
- {
77
- provide: 'OrderRepository',
78
- useFactory: (firestore) => {
79
- return new OrderFirestoreRepository(firestore.firestore);
80
- },
81
- deps: [AngularFirestore],
82
- },
83
- {
84
- provide: 'PaymentRepository',
85
- useFactory: (firestore) => {
86
- return new PaymentFirestoreRepository(firestore.firestore);
87
- },
88
- deps: [AngularFirestore],
89
- },
90
- {
91
- provide: 'ProductRepository',
92
- useFactory: (firestore) => {
93
- return new ProductFirestoreRepository(firestore.firestore);
94
- },
95
- deps: [AngularFirestore],
96
- },
97
- {
98
- provide: 'SubscriptionPaymentRepository',
99
- useFactory: (firestore, subscriptionRepository) => {
100
- return new SubscriptionPaymentFirestoreRepository(firestore.firestore, subscriptionRepository);
101
- },
102
- deps: [AngularFirestore, 'SubscriptionRepository'],
103
- },
104
- {
105
- provide: 'SubscriptionPlanRepository',
106
- useFactory: (firestore) => {
107
- return new SubscriptionPlanFirestoreRepository(firestore.firestore);
108
- },
109
- deps: [AngularFirestore],
110
- },
111
- {
112
- provide: 'SubscriptionRepository',
113
- useFactory: (firestore) => {
114
- return new SubscriptionFirestoreRepository(firestore.firestore);
115
- },
116
- deps: [AngularFirestore],
117
- },
118
- {
119
- provide: 'UserRepository',
120
- useFactory: (firestore) => {
121
- return new UserFirestoreRepository(firestore.firestore);
122
- },
123
- deps: [AngularFirestore],
124
- },
125
- {
126
- provide: 'UserAddressRepository',
127
- useFactory: (firestore, userRepository) => {
128
- return new UserAddressFirestoreRepository(firestore.firestore, userRepository);
129
- },
130
- deps: [AngularFirestore, 'UserRepository'],
131
- },
132
- {
133
- provide: 'VariantRepository',
134
- useFactory: (firestore, productRepository) => {
135
- return new ProductVariantFirestoreRepository(firestore.firestore, productRepository);
136
- },
137
- deps: [AngularFirestore, 'ProductRepository'],
138
- },
139
- ], imports: [[AngularFireModule]] });
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AngularFirestoreModule, decorators: [{
141
- type: NgModule,
142
- args: [{
143
- imports: [AngularFireModule],
144
- providers: [
145
- {
146
- provide: 'BeautyProfileRepository',
147
- useFactory: (firestore, userRepository) => {
148
- return new UserBeautyProfileFirestoreRepository(firestore.firestore, userRepository);
149
- },
150
- deps: [AngularFirestore, 'UserRepository'],
151
- },
152
- {
153
- provide: 'Buy2WinRepository',
154
- useFactory: (firestore) => {
155
- return new Buy2WinFirestoreRepository(firestore.firestore);
156
- },
157
- deps: [AngularFirestore],
158
- },
159
- {
160
- provide: 'HomeRepository',
161
- useFactory: (firestore) => {
162
- return new HomeFirestoreRepository(firestore.firestore);
163
- },
164
- deps: [AngularFirestore],
165
- },
166
- {
167
- provide: 'CategoryRepository',
168
- useFactory: (firestore) => {
169
- return new CategoryFirestoreRepository(firestore.firestore);
170
- },
171
- deps: [AngularFirestore],
172
- },
173
- {
174
- provide: 'CheckoutRepository',
175
- useFactory: (firestore) => {
176
- return new CheckoutFirestoreRepository(firestore.firestore);
177
- },
178
- deps: [AngularFirestore],
179
- },
180
- {
181
- provide: 'CheckoutSubscriptionRepository',
182
- useFactory: (firestore) => {
183
- return new CheckoutSubscriptionFirestoreRepository(firestore.firestore);
184
- },
185
- deps: [AngularFirestore],
186
- },
187
- {
188
- provide: 'CouponRepository',
189
- useFactory: (firestore) => {
190
- return new CouponFirestoreRepository(firestore.firestore);
191
- },
192
- deps: [AngularFirestore],
193
- },
194
- {
195
- provide: 'EditionRepository',
196
- useFactory: (firestore, subscriptionRepository) => {
197
- return new SubscriptionEditionFirestoreRepository(firestore.firestore, subscriptionRepository);
198
- },
199
- deps: [AngularFirestore, 'SubscriptionRepository'],
200
- },
201
- {
202
- provide: 'OrderRepository',
203
- useFactory: (firestore) => {
204
- return new OrderFirestoreRepository(firestore.firestore);
205
- },
206
- deps: [AngularFirestore],
207
- },
208
- {
209
- provide: 'PaymentRepository',
210
- useFactory: (firestore) => {
211
- return new PaymentFirestoreRepository(firestore.firestore);
212
- },
213
- deps: [AngularFirestore],
214
- },
215
- {
216
- provide: 'ProductRepository',
217
- useFactory: (firestore) => {
218
- return new ProductFirestoreRepository(firestore.firestore);
219
- },
220
- deps: [AngularFirestore],
221
- },
222
- {
223
- provide: 'SubscriptionPaymentRepository',
224
- useFactory: (firestore, subscriptionRepository) => {
225
- return new SubscriptionPaymentFirestoreRepository(firestore.firestore, subscriptionRepository);
226
- },
227
- deps: [AngularFirestore, 'SubscriptionRepository'],
228
- },
229
- {
230
- provide: 'SubscriptionPlanRepository',
231
- useFactory: (firestore) => {
232
- return new SubscriptionPlanFirestoreRepository(firestore.firestore);
233
- },
234
- deps: [AngularFirestore],
235
- },
236
- {
237
- provide: 'SubscriptionRepository',
238
- useFactory: (firestore) => {
239
- return new SubscriptionFirestoreRepository(firestore.firestore);
240
- },
241
- deps: [AngularFirestore],
242
- },
243
- {
244
- provide: 'UserRepository',
245
- useFactory: (firestore) => {
246
- return new UserFirestoreRepository(firestore.firestore);
247
- },
248
- deps: [AngularFirestore],
249
- },
250
- {
251
- provide: 'UserAddressRepository',
252
- useFactory: (firestore, userRepository) => {
253
- return new UserAddressFirestoreRepository(firestore.firestore, userRepository);
254
- },
255
- deps: [AngularFirestore, 'UserRepository'],
256
- },
257
- {
258
- provide: 'VariantRepository',
259
- useFactory: (firestore, productRepository) => {
260
- return new ProductVariantFirestoreRepository(firestore.firestore, productRepository);
261
- },
262
- deps: [AngularFirestore, 'ProductRepository'],
263
- },
264
- ],
265
- }]
266
- }] });
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1maXJlc3RvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9saWIvYW5ndWxhci1maXJlc3RvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzdELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGdCQUFnQixHQUdqQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUMxRCxPQUFPLEVBRUwsMEJBQTBCLEVBRzFCLDJCQUEyQixFQUUzQiwyQkFBMkIsRUFDM0IsdUNBQXVDLEVBR3ZDLHlCQUF5QixFQUd6Qix3QkFBd0IsRUFFeEIsMEJBQTBCLEVBRTFCLDBCQUEwQixFQUMxQixzQ0FBc0MsRUFDdEMsK0JBQStCLEVBQy9CLHNDQUFzQyxFQUV0QyxtQ0FBbUMsRUFJbkMsOEJBQThCLEVBQzlCLG9DQUFvQyxFQUNwQyx1QkFBdUIsRUFHdkIsaUNBQWlDLEVBRWpDLHVCQUF1QixHQUN4QixNQUFNLG1CQUFtQixDQUFBOztBQW9JMUIsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxNQUFNLENBQUMsYUFBYSxDQUNsQixPQUF3QixFQUN4QixZQUF5QztRQUV6QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtnQkFDaEQsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRTthQUN2RDtTQUNGLENBQUE7SUFDSCxDQUFDOzttSEFaVSxzQkFBc0I7b0hBQXRCLHNCQUFzQixZQWpJdkIsaUJBQWlCO29IQWlJaEIsc0JBQXNCLGFBaEl0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c0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQW5ndWxhckZpcmVNb2R1bGUsXG4gIEZJUkVCQVNFX0FQUF9OQU1FLFxuICBGSVJFQkFTRV9PUFRJT05TLFxuICBGaXJlYmFzZUFwcENvbmZpZyxcbiAgRmlyZWJhc2VPcHRpb25zLFxufSBmcm9tICdAYW5ndWxhci9maXJlJ1xuaW1wb3J0IHsgQW5ndWxhckZpcmVzdG9yZSB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZmlyZXN0b3JlJ1xuaW1wb3J0IHtcbiAgQmVhdXR5UHJvZmlsZVJlcG9zaXRvcnksXG4gIEJ1eTJXaW5GaXJlc3RvcmVSZXBvc2l0b3J5LFxuICBCdXkyV2luUmVwb3NpdG9yeSxcbiAgQ2F0ZWdvcnlSZXBvc2l0b3J5LFxuICBDYXRlZ29yeUZpcmVzdG9yZVJlcG9zaXRvcnksXG4gIENoZWNrb3V0UmVwb3NpdG9yeSxcbiAgQ2hlY2tvdXRGaXJlc3RvcmVSZXBvc2l0b3J5LFxuICBDaGVja291dFN1YnNjcmlwdGlvbkZpcmVzdG9yZVJlcG9zaXRvcnksXG4gIENoZWNrb3V0U3Vic2NyaXB0aW9uUmVwb3NpdG9yeSxcbiAgQ291cG9uUmVwb3NpdG9yeSxcbiAgQ291cG9uRmlyZXN0b3JlUmVwb3NpdG9yeSxcbiAgRWRpdGlvblJlcG9zaXRvcnksXG4gIE9yZGVyUmVwb3NpdG9yeSxcbiAgT3JkZXJGaXJlc3RvcmVSZXBvc2l0b3J5LFxuICBQYXltZW50UmVwb3NpdG9yeSxcbiAgUGF5bWVudEZpcmVzdG9yZVJlcG9zaXRvcnksXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxuICBQcm9kdWN0RmlyZXN0b3JlUmVwb3NpdG9yeSxcbiAgU3Vic2NyaXB0aW9uRWRpdGlvbkZpcmVzdG9yZVJlcG9zaXRvcnksXG4gIFN1YnNjcmlwdGlvbkZpcmVzdG9yZVJlcG9zaXRvcnksXG4gIFN1YnNjcmlwdGlvblBheW1lbnRGaXJlc3RvcmVSZXBvc2l0b3J5LFxuICBTdWJzY3JpcHRpb25QYXltZW50UmVwb3NpdG9yeSxcbiAgU3Vic2NyaXB0aW9uUGxhbkZpcmVzdG9yZVJlcG9zaXRvcnksXG4gIFN1YnNjcmlwdGlvblBsYW5SZXBvc2l0b3J5LFxuICBTdWJzY3JpcHRpb25SZXBvc2l0b3J5LFxuICBVc2VyQWRkcmVzc1JlcG9zaXRvcnksXG4gIFVzZXJBZGRyZXNzRmlyZXN0b3JlUmVwb3NpdG9yeSxcbiAgVXNlckJlYXV0eVByb2ZpbGVGaXJlc3RvcmVSZXBvc2l0b3J5LFxuICBVc2VyRmlyZXN0b3JlUmVwb3NpdG9yeSxcbiAgVXNlclJlcG9zaXRvcnksXG4gIFZhcmlhbnRSZXBvc2l0b3J5LFxuICBQcm9kdWN0VmFyaWFudEZpcmVzdG9yZVJlcG9zaXRvcnksXG4gIEhvbWVSZXBvc2l0b3J5LFxuICBIb21lRmlyZXN0b3JlUmVwb3NpdG9yeSxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtBbmd1bGFyRmlyZU1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdCZWF1dHlQcm9maWxlUmVwb3NpdG9yeScsXG4gICAgICB1c2VGYWN0b3J5OiAoZmlyZXN0b3JlOiBBbmd1bGFyRmlyZXN0b3JlLCB1c2VyUmVwb3NpdG9yeTogVXNlckZpcmVzdG9yZVJlcG9zaXRvcnkpOiBCZWF1dHlQcm9maWxlUmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgVXNlckJlYXV0eVByb2ZpbGVGaXJlc3RvcmVSZXBvc2l0b3J5KGZpcmVzdG9yZS5maXJlc3RvcmUsIHVzZXJSZXBvc2l0b3J5KVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFtBbmd1bGFyRmlyZXN0b3JlLCAnVXNlclJlcG9zaXRvcnknXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdCdXkyV2luUmVwb3NpdG9yeScsXG4gICAgICB1c2VGYWN0b3J5OiAoZmlyZXN0b3JlOiBBbmd1bGFyRmlyZXN0b3JlKTogQnV5MldpblJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IEJ1eTJXaW5GaXJlc3RvcmVSZXBvc2l0b3J5KGZpcmVzdG9yZS5maXJlc3RvcmUpXG4gICAgICB9LFxuICAgICAgZGVwczogW0FuZ3VsYXJGaXJlc3RvcmVdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ0hvbWVSZXBvc2l0b3J5JyxcbiAgICAgIHVzZUZhY3Rvcnk6IChmaXJlc3RvcmU6IEFuZ3VsYXJGaXJlc3RvcmUpOiBIb21lUmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgSG9tZUZpcmVzdG9yZVJlcG9zaXRvcnkoZmlyZXN0b3JlLmZpcmVzdG9yZSlcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbQW5ndWxhckZpcmVzdG9yZV0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnQ2F0ZWdvcnlSZXBvc2l0b3J5JyxcbiAgICAgIHVzZUZhY3Rvcnk6IChmaXJlc3RvcmU6IEFuZ3VsYXJGaXJlc3RvcmUpOiBDYXRlZ29yeVJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5RmlyZXN0b3JlUmVwb3NpdG9yeShmaXJlc3RvcmUuZmlyZXN0b3JlKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFtBbmd1bGFyRmlyZXN0b3JlXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdDaGVja291dFJlcG9zaXRvcnknLFxuICAgICAgdXNlRmFjdG9yeTogKGZpcmVzdG9yZTogQW5ndWxhckZpcmVzdG9yZSk6IENoZWNrb3V0UmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgQ2hlY2tvdXRGaXJlc3RvcmVSZXBvc2l0b3J5KGZpcmVzdG9yZS5maXJlc3RvcmUpXG4gICAgICB9LFxuICAgICAgZGVwczogW0FuZ3VsYXJGaXJlc3RvcmVdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ0NoZWNrb3V0U3Vic2NyaXB0aW9uUmVwb3NpdG9yeScsXG4gICAgICB1c2VGYWN0b3J5OiAoZmlyZXN0b3JlOiBBbmd1bGFyRmlyZXN0b3JlKTogQ2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBDaGVja291dFN1YnNjcmlwdGlvbkZpcmVzdG9yZVJlcG9zaXRvcnkoZmlyZXN0b3JlLmZpcmVzdG9yZSlcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbQW5ndWxhckZpcmVzdG9yZV0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnQ291cG9uUmVwb3NpdG9yeScsXG4gICAgICB1c2VGYWN0b3J5OiAoZmlyZXN0b3JlOiBBbmd1bGFyRmlyZXN0b3JlKTogQ291cG9uUmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgQ291cG9uRmlyZXN0b3JlUmVwb3NpdG9yeShmaXJlc3RvcmUuZmlyZXN0b3JlKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFtBbmd1bGFyRmlyZXN0b3JlXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdFZGl0aW9uUmVwb3NpdG9yeScsXG4gICAgICB1c2VGYWN0b3J5OiAoXG4gICAgICAgIGZpcmVzdG9yZTogQW5ndWxhckZpcmVzdG9yZSxcbiAgICAgICAgc3Vic2NyaXB0aW9uUmVwb3NpdG9yeTogU3Vic2NyaXB0aW9uRmlyZXN0b3JlUmVwb3NpdG9yeSxcbiAgICAgICk6IEVkaXRpb25SZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb25FZGl0aW9uRmlyZXN0b3JlUmVwb3NpdG9yeShmaXJlc3RvcmUuZmlyZXN0b3JlLCBzdWJzY3JpcHRpb25SZXBvc2l0b3J5KVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFtBbmd1bGFyRmlyZXN0b3JlLCAnU3Vic2NyaXB0aW9uUmVwb3NpdG9yeSddLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ09yZGVyUmVwb3NpdG9yeScsXG4gICAgICB1c2VGYWN0b3J5OiAoZmlyZXN0b3JlOiBBbmd1bGFyRmlyZXN0b3JlKTogT3JkZXJSZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPcmRlckZpcmVzdG9yZVJlcG9zaXRvcnkoZmlyZXN0b3JlLmZpcmVzdG9yZSlcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbQW5ndWxhckZpcmVzdG9yZV0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnUGF5bWVudFJlcG9zaXRvcnknLFxuICAgICAgdXNlRmFjdG9yeTogKGZpcmVzdG9yZTogQW5ndWxhckZpcmVzdG9yZSk6IFBheW1lbnRSZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQYXltZW50RmlyZXN0b3JlUmVwb3NpdG9yeShmaXJlc3RvcmUuZmlyZXN0b3JlKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFtBbmd1bGFyRmlyZXN0b3JlXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0UmVwb3NpdG9yeScsXG4gICAgICB1c2VGYWN0b3J5OiAoZmlyZXN0b3JlOiBBbmd1bGFyRmlyZXN0b3JlKTogUHJvZHVjdFJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RGaXJlc3RvcmVSZXBvc2l0b3J5KGZpcmVzdG9yZS5maXJlc3RvcmUpXG4gICAgICB9LFxuICAgICAgZGVwczogW0FuZ3VsYXJGaXJlc3RvcmVdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ1N1YnNjcmlwdGlvblBheW1lbnRSZXBvc2l0b3J5JyxcbiAgICAgIHVzZUZhY3Rvcnk6IChcbiAgICAgICAgZmlyZXN0b3JlOiBBbmd1bGFyRmlyZXN0b3JlLFxuICAgICAgICBzdWJzY3JpcHRpb25SZXBvc2l0b3J5OiBTdWJzY3JpcHRpb25GaXJlc3RvcmVSZXBvc2l0b3J5LFxuICAgICAgKTogU3Vic2NyaXB0aW9uUGF5bWVudFJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvblBheW1lbnRGaXJlc3RvcmVSZXBvc2l0b3J5KGZpcmVzdG9yZS5maXJlc3RvcmUsIHN1YnNjcmlwdGlvblJlcG9zaXRvcnkpXG4gICAgICB9LFxuICAgICAgZGVwczogW0FuZ3VsYXJGaXJlc3RvcmUsICdTdWJzY3JpcHRpb25SZXBvc2l0b3J5J10sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnU3Vic2NyaXB0aW9uUGxhblJlcG9zaXRvcnknLFxuICAgICAgdXNlRmFjdG9yeTogKGZpcmVzdG9yZTogQW5ndWxhckZpcmVzdG9yZSk6IFN1YnNjcmlwdGlvblBsYW5SZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb25QbGFuRmlyZXN0b3JlUmVwb3NpdG9yeShmaXJlc3RvcmUuZmlyZXN0b3JlKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFtBbmd1bGFyRmlyZXN0b3JlXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdTdWJzY3JpcHRpb25SZXBvc2l0b3J5JyxcbiAgICAgIHVzZUZhY3Rvcnk6IChmaXJlc3RvcmU6IEFuZ3VsYXJGaXJlc3RvcmUpOiBTdWJzY3JpcHRpb25SZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb25GaXJlc3RvcmVSZXBvc2l0b3J5KGZpcmVzdG9yZS5maXJlc3RvcmUpXG4gICAgICB9LFxuICAgICAgZGVwczogW0FuZ3VsYXJGaXJlc3RvcmVdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ1VzZXJSZXBvc2l0b3J5JyxcbiAgICAgIHVzZUZhY3Rvcnk6IChmaXJlc3RvcmU6IEFuZ3VsYXJGaXJlc3RvcmUpOiBVc2VyUmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgVXNlckZpcmVzdG9yZVJlcG9zaXRvcnkoZmlyZXN0b3JlLmZpcmVzdG9yZSlcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbQW5ndWxhckZpcmVzdG9yZV0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnVXNlckFkZHJlc3NSZXBvc2l0b3J5JyxcbiAgICAgIHVzZUZhY3Rvcnk6IChmaXJlc3RvcmU6IEFuZ3VsYXJGaXJlc3RvcmUsIHVzZXJSZXBvc2l0b3J5OiBVc2VyRmlyZXN0b3JlUmVwb3NpdG9yeSk6IFVzZXJBZGRyZXNzUmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgVXNlckFkZHJlc3NGaXJlc3RvcmVSZXBvc2l0b3J5KGZpcmVzdG9yZS5maXJlc3RvcmUsIHVzZXJSZXBvc2l0b3J5KVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFtBbmd1bGFyRmlyZXN0b3JlLCAnVXNlclJlcG9zaXRvcnknXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdWYXJpYW50UmVwb3NpdG9yeScsXG4gICAgICB1c2VGYWN0b3J5OiAoZmlyZXN0b3JlOiBBbmd1bGFyRmlyZXN0b3JlLCBwcm9kdWN0UmVwb3NpdG9yeTogUHJvZHVjdEZpcmVzdG9yZVJlcG9zaXRvcnkpOiBWYXJpYW50UmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdFZhcmlhbnRGaXJlc3RvcmVSZXBvc2l0b3J5KGZpcmVzdG9yZS5maXJlc3RvcmUsIHByb2R1Y3RSZXBvc2l0b3J5KVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFtBbmd1bGFyRmlyZXN0b3JlLCAnUHJvZHVjdFJlcG9zaXRvcnknXSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFyRmlyZXN0b3JlTW9kdWxlIHtcbiAgc3RhdGljIGluaXRpYWxpemVBcHAoXG4gICAgb3B0aW9uczogRmlyZWJhc2VPcHRpb25zLFxuICAgIG5hbWVPckNvbmZpZz86IHN0cmluZyB8IEZpcmViYXNlQXBwQ29uZmlnLFxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFuZ3VsYXJGaXJlTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBbmd1bGFyRmlyZXN0b3JlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogRklSRUJBU0VfT1BUSU9OUywgdXNlVmFsdWU6IG9wdGlvbnMgfSxcbiAgICAgICAgeyBwcm92aWRlOiBGSVJFQkFTRV9BUFBfTkFNRSwgdXNlVmFsdWU6IG5hbWVPckNvbmZpZyB9LFxuICAgICAgXSxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
1
+ import { NgModule } from '@angular/core';
2
+ import { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, } from '@angular/fire';
3
+ import { AngularFirestore } from '@angular/fire/firestore';
4
+ import { Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, HomeFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, SubscriptionEditionFirestoreRepository, SubscriptionFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, UserAddressFirestoreRepository, UserBeautyProfileFirestoreRepository, UserFirestoreRepository, ProductVariantFirestoreRepository, } from '@infrab4a/connect';
5
+ import * as i0 from "@angular/core";
6
+ export class AngularFirestoreModule {
7
+ static initializeApp(options, nameOrConfig) {
8
+ return {
9
+ ngModule: AngularFirestoreModule,
10
+ providers: [
11
+ { provide: FIREBASE_OPTIONS, useValue: options },
12
+ { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },
13
+ ],
14
+ };
15
+ }
16
+ }
17
+ AngularFirestoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AngularFirestoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
+ AngularFirestoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AngularFirestoreModule, imports: [AngularFireModule] });
19
+ AngularFirestoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AngularFirestoreModule, providers: [
20
+ {
21
+ provide: 'BeautyProfileRepository',
22
+ useFactory: (firestore, userRepository) => {
23
+ return new UserBeautyProfileFirestoreRepository(firestore.firestore, userRepository);
24
+ },
25
+ deps: [AngularFirestore, 'UserRepository'],
26
+ },
27
+ {
28
+ provide: 'Buy2WinRepository',
29
+ useFactory: (firestore) => {
30
+ return new Buy2WinFirestoreRepository(firestore.firestore);
31
+ },
32
+ deps: [AngularFirestore],
33
+ },
34
+ {
35
+ provide: 'CategoryRepository',
36
+ useFactory: (firestore) => {
37
+ return new CategoryFirestoreRepository(firestore.firestore);
38
+ },
39
+ deps: [AngularFirestore],
40
+ },
41
+ {
42
+ provide: 'CheckoutRepository',
43
+ useFactory: (firestore) => {
44
+ return new CheckoutFirestoreRepository(firestore.firestore);
45
+ },
46
+ deps: [AngularFirestore],
47
+ },
48
+ {
49
+ provide: 'CheckoutSubscriptionRepository',
50
+ useFactory: (firestore) => {
51
+ return new CheckoutSubscriptionFirestoreRepository(firestore.firestore);
52
+ },
53
+ deps: [AngularFirestore],
54
+ },
55
+ {
56
+ provide: 'CouponRepository',
57
+ useFactory: (firestore) => {
58
+ return new CouponFirestoreRepository(firestore.firestore);
59
+ },
60
+ deps: [AngularFirestore],
61
+ },
62
+ {
63
+ provide: 'EditionRepository',
64
+ useFactory: (firestore, subscriptionRepository) => {
65
+ return new SubscriptionEditionFirestoreRepository(firestore.firestore, subscriptionRepository);
66
+ },
67
+ deps: [AngularFirestore, 'SubscriptionRepository'],
68
+ },
69
+ {
70
+ provide: 'HomeRepository',
71
+ useFactory: (firestore) => {
72
+ return new HomeFirestoreRepository(firestore.firestore);
73
+ },
74
+ deps: [AngularFirestore],
75
+ },
76
+ {
77
+ provide: 'ShopMenuRepository',
78
+ useFactory: (firestore) => {
79
+ return new ShopMenuFirestoreRepository(firestore.firestore);
80
+ },
81
+ deps: [AngularFirestore],
82
+ },
83
+ {
84
+ provide: 'OrderRepository',
85
+ useFactory: (firestore) => {
86
+ return new OrderFirestoreRepository(firestore.firestore);
87
+ },
88
+ deps: [AngularFirestore],
89
+ },
90
+ {
91
+ provide: 'PaymentRepository',
92
+ useFactory: (firestore) => {
93
+ return new PaymentFirestoreRepository(firestore.firestore);
94
+ },
95
+ deps: [AngularFirestore],
96
+ },
97
+ {
98
+ provide: 'ProductRepository',
99
+ useFactory: (firestore) => {
100
+ return new ProductFirestoreRepository(firestore.firestore);
101
+ },
102
+ deps: [AngularFirestore],
103
+ },
104
+ {
105
+ provide: 'SubscriptionPaymentRepository',
106
+ useFactory: (firestore, subscriptionRepository) => {
107
+ return new SubscriptionPaymentFirestoreRepository(firestore.firestore, subscriptionRepository);
108
+ },
109
+ deps: [AngularFirestore, 'SubscriptionRepository'],
110
+ },
111
+ {
112
+ provide: 'SubscriptionPlanRepository',
113
+ useFactory: (firestore) => {
114
+ return new SubscriptionPlanFirestoreRepository(firestore.firestore);
115
+ },
116
+ deps: [AngularFirestore],
117
+ },
118
+ {
119
+ provide: 'SubscriptionRepository',
120
+ useFactory: (firestore) => {
121
+ return new SubscriptionFirestoreRepository(firestore.firestore);
122
+ },
123
+ deps: [AngularFirestore],
124
+ },
125
+ {
126
+ provide: 'UserRepository',
127
+ useFactory: (firestore) => {
128
+ return new UserFirestoreRepository(firestore.firestore);
129
+ },
130
+ deps: [AngularFirestore],
131
+ },
132
+ {
133
+ provide: 'UserAddressRepository',
134
+ useFactory: (firestore, userRepository) => {
135
+ return new UserAddressFirestoreRepository(firestore.firestore, userRepository);
136
+ },
137
+ deps: [AngularFirestore, 'UserRepository'],
138
+ },
139
+ {
140
+ provide: 'VariantRepository',
141
+ useFactory: (firestore, productRepository) => {
142
+ return new ProductVariantFirestoreRepository(firestore.firestore, productRepository);
143
+ },
144
+ deps: [AngularFirestore, 'ProductRepository'],
145
+ },
146
+ ], imports: [[AngularFireModule]] });
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: AngularFirestoreModule, decorators: [{
148
+ type: NgModule,
149
+ args: [{
150
+ imports: [AngularFireModule],
151
+ providers: [
152
+ {
153
+ provide: 'BeautyProfileRepository',
154
+ useFactory: (firestore, userRepository) => {
155
+ return new UserBeautyProfileFirestoreRepository(firestore.firestore, userRepository);
156
+ },
157
+ deps: [AngularFirestore, 'UserRepository'],
158
+ },
159
+ {
160
+ provide: 'Buy2WinRepository',
161
+ useFactory: (firestore) => {
162
+ return new Buy2WinFirestoreRepository(firestore.firestore);
163
+ },
164
+ deps: [AngularFirestore],
165
+ },
166
+ {
167
+ provide: 'CategoryRepository',
168
+ useFactory: (firestore) => {
169
+ return new CategoryFirestoreRepository(firestore.firestore);
170
+ },
171
+ deps: [AngularFirestore],
172
+ },
173
+ {
174
+ provide: 'CheckoutRepository',
175
+ useFactory: (firestore) => {
176
+ return new CheckoutFirestoreRepository(firestore.firestore);
177
+ },
178
+ deps: [AngularFirestore],
179
+ },
180
+ {
181
+ provide: 'CheckoutSubscriptionRepository',
182
+ useFactory: (firestore) => {
183
+ return new CheckoutSubscriptionFirestoreRepository(firestore.firestore);
184
+ },
185
+ deps: [AngularFirestore],
186
+ },
187
+ {
188
+ provide: 'CouponRepository',
189
+ useFactory: (firestore) => {
190
+ return new CouponFirestoreRepository(firestore.firestore);
191
+ },
192
+ deps: [AngularFirestore],
193
+ },
194
+ {
195
+ provide: 'EditionRepository',
196
+ useFactory: (firestore, subscriptionRepository) => {
197
+ return new SubscriptionEditionFirestoreRepository(firestore.firestore, subscriptionRepository);
198
+ },
199
+ deps: [AngularFirestore, 'SubscriptionRepository'],
200
+ },
201
+ {
202
+ provide: 'HomeRepository',
203
+ useFactory: (firestore) => {
204
+ return new HomeFirestoreRepository(firestore.firestore);
205
+ },
206
+ deps: [AngularFirestore],
207
+ },
208
+ {
209
+ provide: 'ShopMenuRepository',
210
+ useFactory: (firestore) => {
211
+ return new ShopMenuFirestoreRepository(firestore.firestore);
212
+ },
213
+ deps: [AngularFirestore],
214
+ },
215
+ {
216
+ provide: 'OrderRepository',
217
+ useFactory: (firestore) => {
218
+ return new OrderFirestoreRepository(firestore.firestore);
219
+ },
220
+ deps: [AngularFirestore],
221
+ },
222
+ {
223
+ provide: 'PaymentRepository',
224
+ useFactory: (firestore) => {
225
+ return new PaymentFirestoreRepository(firestore.firestore);
226
+ },
227
+ deps: [AngularFirestore],
228
+ },
229
+ {
230
+ provide: 'ProductRepository',
231
+ useFactory: (firestore) => {
232
+ return new ProductFirestoreRepository(firestore.firestore);
233
+ },
234
+ deps: [AngularFirestore],
235
+ },
236
+ {
237
+ provide: 'SubscriptionPaymentRepository',
238
+ useFactory: (firestore, subscriptionRepository) => {
239
+ return new SubscriptionPaymentFirestoreRepository(firestore.firestore, subscriptionRepository);
240
+ },
241
+ deps: [AngularFirestore, 'SubscriptionRepository'],
242
+ },
243
+ {
244
+ provide: 'SubscriptionPlanRepository',
245
+ useFactory: (firestore) => {
246
+ return new SubscriptionPlanFirestoreRepository(firestore.firestore);
247
+ },
248
+ deps: [AngularFirestore],
249
+ },
250
+ {
251
+ provide: 'SubscriptionRepository',
252
+ useFactory: (firestore) => {
253
+ return new SubscriptionFirestoreRepository(firestore.firestore);
254
+ },
255
+ deps: [AngularFirestore],
256
+ },
257
+ {
258
+ provide: 'UserRepository',
259
+ useFactory: (firestore) => {
260
+ return new UserFirestoreRepository(firestore.firestore);
261
+ },
262
+ deps: [AngularFirestore],
263
+ },
264
+ {
265
+ provide: 'UserAddressRepository',
266
+ useFactory: (firestore, userRepository) => {
267
+ return new UserAddressFirestoreRepository(firestore.firestore, userRepository);
268
+ },
269
+ deps: [AngularFirestore, 'UserRepository'],
270
+ },
271
+ {
272
+ provide: 'VariantRepository',
273
+ useFactory: (firestore, productRepository) => {
274
+ return new ProductVariantFirestoreRepository(firestore.firestore, productRepository);
275
+ },
276
+ deps: [AngularFirestore, 'ProductRepository'],
277
+ },
278
+ ],
279
+ }]
280
+ }] });
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1maXJlc3RvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9saWIvYW5ndWxhci1maXJlc3RvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzdELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLGdCQUFnQixHQUdqQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUMxRCxPQUFPLEVBRUwsMEJBQTBCLEVBRzFCLDJCQUEyQixFQUUzQiwyQkFBMkIsRUFDM0IsdUNBQXVDLEVBR3ZDLHlCQUF5QixFQUV6Qix1QkFBdUIsRUFFdkIsMkJBQTJCLEVBRzNCLHdCQUF3QixFQUV4QiwwQkFBMEIsRUFFMUIsMEJBQTBCLEVBQzFCLHNDQUFzQyxFQUN0QywrQkFBK0IsRUFDL0Isc0NBQXNDLEVBRXRDLG1DQUFtQyxFQUluQyw4QkFBOEIsRUFDOUIsb0NBQW9DLEVBQ3BDLHVCQUF1QixFQUd2QixpQ0FBaUMsR0FDbEMsTUFBTSxtQkFBbUIsQ0FBQTs7QUEySTFCLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsTUFBTSxDQUFDLGFBQWEsQ0FDbEIsT0FBd0IsRUFDeEIsWUFBeUM7UUFFekMsT0FBTztZQUNMLFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7Z0JBQ2hELEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUU7YUFDdkQ7U0FDRixDQUFBO0lBQ0gsQ0FBQzs7bUhBWlUsc0JBQXNCO29IQUF0QixzQkFBc0IsWUF4SXZCLGlCQUFpQjtvSEF3SWhC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QzFHLE9BQU8sSUFBSSw4QkFBOEIsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFBOzRCQUNoRixDQUFDOzRCQUNELElBQUksRUFBRSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO3lCQUMzQzt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixVQUFVLEVBQUUsQ0FBQyxTQUEyQixFQUFFLGlCQUE2QyxFQUFxQixFQUFFO2dDQUM1RyxPQUFPLElBQUksaUNBQWlDLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFBOzRCQUN0RixDQUFDOzRCQUNELElBQUksRUFBRSxDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDO3lCQUM5QztxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICBBbmd1bGFyRmlyZU1vZHVsZSxcclxuICBGSVJFQkFTRV9BUFBfTkFNRSxcclxuICBGSVJFQkFTRV9PUFRJT05TLFxyXG4gIEZpcmViYXNlQXBwQ29uZmlnLFxyXG4gIEZpcmViYXNlT3B0aW9ucyxcclxufSBmcm9tICdAYW5ndWxhci9maXJlJ1xyXG5pbXBvcnQgeyBBbmd1bGFyRmlyZXN0b3JlIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9maXJlc3RvcmUnXHJcbmltcG9ydCB7XHJcbiAgQmVhdXR5UHJvZmlsZVJlcG9zaXRvcnksXHJcbiAgQnV5MldpbkZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgQnV5MldpblJlcG9zaXRvcnksXHJcbiAgQ2F0ZWdvcnlSZXBvc2l0b3J5LFxyXG4gIENhdGVnb3J5RmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBDaGVja291dFJlcG9zaXRvcnksXHJcbiAgQ2hlY2tvdXRGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIENoZWNrb3V0U3Vic2NyaXB0aW9uRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBDaGVja291dFN1YnNjcmlwdGlvblJlcG9zaXRvcnksXHJcbiAgQ291cG9uUmVwb3NpdG9yeSxcclxuICBDb3Vwb25GaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIEVkaXRpb25SZXBvc2l0b3J5LFxyXG4gIEhvbWVGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIEhvbWVSZXBvc2l0b3J5LFxyXG4gIFNob3BNZW51RmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBTaG9wTWVudVJlcG9zaXRvcnksXHJcbiAgT3JkZXJSZXBvc2l0b3J5LFxyXG4gIE9yZGVyRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBQYXltZW50UmVwb3NpdG9yeSxcclxuICBQYXltZW50RmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBQcm9kdWN0UmVwb3NpdG9yeSxcclxuICBQcm9kdWN0RmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25FZGl0aW9uRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBTdWJzY3JpcHRpb25GaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIFN1YnNjcmlwdGlvblBheW1lbnRGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIFN1YnNjcmlwdGlvblBheW1lbnRSZXBvc2l0b3J5LFxyXG4gIFN1YnNjcmlwdGlvblBsYW5GaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gIFN1YnNjcmlwdGlvblBsYW5SZXBvc2l0b3J5LFxyXG4gIFN1YnNjcmlwdGlvblJlcG9zaXRvcnksXHJcbiAgVXNlckFkZHJlc3NSZXBvc2l0b3J5LFxyXG4gIFVzZXJBZGRyZXNzRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBVc2VyQmVhdXR5UHJvZmlsZUZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgVXNlckZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgVXNlclJlcG9zaXRvcnksXHJcbiAgVmFyaWFudFJlcG9zaXRvcnksXHJcbiAgUHJvZHVjdFZhcmlhbnRGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbQW5ndWxhckZpcmVNb2R1bGVdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnQmVhdXR5UHJvZmlsZVJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAoZmlyZXN0b3JlOiBBbmd1bGFyRmlyZXN0b3JlLCB1c2VyUmVwb3NpdG9yeTogVXNlckZpcmVzdG9yZVJlcG9zaXRvcnkpOiBCZWF1dHlQcm9maWxlUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBVc2VyQmVhdXR5UHJvZmlsZUZpcmVzdG9yZVJlcG9zaXRvcnkoZmlyZXN0b3JlLmZpcmVzdG9yZSwgdXNlclJlcG9zaXRvcnkpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFtBbmd1bGFyRmlyZXN0b3JlLCAnVXNlclJlcG9zaXRvcnknXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdCdXkyV2luUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChmaXJlc3RvcmU6IEFuZ3VsYXJGaXJlc3RvcmUpOiBCdXkyV2luUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBCdXkyV2luRmlyZXN0b3JlUmVwb3NpdG9yeShmaXJlc3RvcmUuZmlyZXN0b3JlKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbQW5ndWxhckZpcmVzdG9yZV0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnQ2F0ZWdvcnlSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKGZpcmVzdG9yZTogQW5ndWxhckZpcmVzdG9yZSk6IENhdGVnb3J5UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBDYXRlZ29yeUZpcmVzdG9yZVJlcG9zaXRvcnkoZmlyZXN0b3JlLmZpcmVzdG9yZSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogW0FuZ3VsYXJGaXJlc3RvcmVdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ0NoZWNrb3V0UmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChmaXJlc3RvcmU6IEFuZ3VsYXJGaXJlc3RvcmUpOiBDaGVja291dFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgQ2hlY2tvdXRGaXJlc3RvcmVSZXBvc2l0b3J5KGZpcmVzdG9yZS5maXJlc3RvcmUpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFtBbmd1bGFyRmlyZXN0b3JlXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdDaGVja291dFN1YnNjcmlwdGlvblJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAoZmlyZXN0b3JlOiBBbmd1bGFyRmlyZXN0b3JlKTogQ2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IENoZWNrb3V0U3Vic2NyaXB0aW9uRmlyZXN0b3JlUmVwb3NpdG9yeShmaXJlc3RvcmUuZmlyZXN0b3JlKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbQW5ndWxhckZpcmVzdG9yZV0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnQ291cG9uUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChmaXJlc3RvcmU6IEFuZ3VsYXJGaXJlc3RvcmUpOiBDb3Vwb25SZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IENvdXBvbkZpcmVzdG9yZVJlcG9zaXRvcnkoZmlyZXN0b3JlLmZpcmVzdG9yZSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogW0FuZ3VsYXJGaXJlc3RvcmVdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ0VkaXRpb25SZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKFxyXG4gICAgICAgIGZpcmVzdG9yZTogQW5ndWxhckZpcmVzdG9yZSxcclxuICAgICAgICBzdWJzY3JpcHRpb25SZXBvc2l0b3J5OiBTdWJzY3JpcHRpb25GaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gICAgICApOiBFZGl0aW9uUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb25FZGl0aW9uRmlyZXN0b3JlUmVwb3NpdG9yeShmaXJlc3RvcmUuZmlyZXN0b3JlLCBzdWJzY3JpcHRpb25SZXBvc2l0b3J5KVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbQW5ndWxhckZpcmVzdG9yZSwgJ1N1YnNjcmlwdGlvblJlcG9zaXRvcnknXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdIb21lUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChmaXJlc3RvcmU6IEFuZ3VsYXJGaXJlc3RvcmUpOiBIb21lUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBIb21lRmlyZXN0b3JlUmVwb3NpdG9yeShmaXJlc3RvcmUuZmlyZXN0b3JlKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbQW5ndWxhckZpcmVzdG9yZV0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnU2hvcE1lbnVSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKGZpcmVzdG9yZTogQW5ndWxhckZpcmVzdG9yZSk6IFNob3BNZW51UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTaG9wTWVudUZpcmVzdG9yZVJlcG9zaXRvcnkoZmlyZXN0b3JlLmZpcmVzdG9yZSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogW0FuZ3VsYXJGaXJlc3RvcmVdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ09yZGVyUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChmaXJlc3RvcmU6IEFuZ3VsYXJGaXJlc3RvcmUpOiBPcmRlclJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgT3JkZXJGaXJlc3RvcmVSZXBvc2l0b3J5KGZpcmVzdG9yZS5maXJlc3RvcmUpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFtBbmd1bGFyRmlyZXN0b3JlXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdQYXltZW50UmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChmaXJlc3RvcmU6IEFuZ3VsYXJGaXJlc3RvcmUpOiBQYXltZW50UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQYXltZW50RmlyZXN0b3JlUmVwb3NpdG9yeShmaXJlc3RvcmUuZmlyZXN0b3JlKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbQW5ndWxhckZpcmVzdG9yZV0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnUHJvZHVjdFJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAoZmlyZXN0b3JlOiBBbmd1bGFyRmlyZXN0b3JlKTogUHJvZHVjdFJlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdEZpcmVzdG9yZVJlcG9zaXRvcnkoZmlyZXN0b3JlLmZpcmVzdG9yZSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogW0FuZ3VsYXJGaXJlc3RvcmVdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1N1YnNjcmlwdGlvblBheW1lbnRSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKFxyXG4gICAgICAgIGZpcmVzdG9yZTogQW5ndWxhckZpcmVzdG9yZSxcclxuICAgICAgICBzdWJzY3JpcHRpb25SZXBvc2l0b3J5OiBTdWJzY3JpcHRpb25GaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gICAgICApOiBTdWJzY3JpcHRpb25QYXltZW50UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb25QYXltZW50RmlyZXN0b3JlUmVwb3NpdG9yeShmaXJlc3RvcmUuZmlyZXN0b3JlLCBzdWJzY3JpcHRpb25SZXBvc2l0b3J5KVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbQW5ndWxhckZpcmVzdG9yZSwgJ1N1YnNjcmlwdGlvblJlcG9zaXRvcnknXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdTdWJzY3JpcHRpb25QbGFuUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChmaXJlc3RvcmU6IEFuZ3VsYXJGaXJlc3RvcmUpOiBTdWJzY3JpcHRpb25QbGFuUmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb25QbGFuRmlyZXN0b3JlUmVwb3NpdG9yeShmaXJlc3RvcmUuZmlyZXN0b3JlKVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbQW5ndWxhckZpcmVzdG9yZV0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnU3Vic2NyaXB0aW9uUmVwb3NpdG9yeScsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChmaXJlc3RvcmU6IEFuZ3VsYXJGaXJlc3RvcmUpOiBTdWJzY3JpcHRpb25SZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbkZpcmVzdG9yZVJlcG9zaXRvcnkoZmlyZXN0b3JlLmZpcmVzdG9yZSlcclxuICAgICAgfSxcclxuICAgICAgZGVwczogW0FuZ3VsYXJGaXJlc3RvcmVdLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogJ1VzZXJSZXBvc2l0b3J5JyxcclxuICAgICAgdXNlRmFjdG9yeTogKGZpcmVzdG9yZTogQW5ndWxhckZpcmVzdG9yZSk6IFVzZXJSZXBvc2l0b3J5ID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFVzZXJGaXJlc3RvcmVSZXBvc2l0b3J5KGZpcmVzdG9yZS5maXJlc3RvcmUpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFtBbmd1bGFyRmlyZXN0b3JlXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdVc2VyQWRkcmVzc1JlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAoZmlyZXN0b3JlOiBBbmd1bGFyRmlyZXN0b3JlLCB1c2VyUmVwb3NpdG9yeTogVXNlckZpcmVzdG9yZVJlcG9zaXRvcnkpOiBVc2VyQWRkcmVzc1JlcG9zaXRvcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgVXNlckFkZHJlc3NGaXJlc3RvcmVSZXBvc2l0b3J5KGZpcmVzdG9yZS5maXJlc3RvcmUsIHVzZXJSZXBvc2l0b3J5KVxyXG4gICAgICB9LFxyXG4gICAgICBkZXBzOiBbQW5ndWxhckZpcmVzdG9yZSwgJ1VzZXJSZXBvc2l0b3J5J10sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiAnVmFyaWFudFJlcG9zaXRvcnknLFxyXG4gICAgICB1c2VGYWN0b3J5OiAoZmlyZXN0b3JlOiBBbmd1bGFyRmlyZXN0b3JlLCBwcm9kdWN0UmVwb3NpdG9yeTogUHJvZHVjdEZpcmVzdG9yZVJlcG9zaXRvcnkpOiBWYXJpYW50UmVwb3NpdG9yeSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9kdWN0VmFyaWFudEZpcmVzdG9yZVJlcG9zaXRvcnkoZmlyZXN0b3JlLmZpcmVzdG9yZSwgcHJvZHVjdFJlcG9zaXRvcnkpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlcHM6IFtBbmd1bGFyRmlyZXN0b3JlLCAnUHJvZHVjdFJlcG9zaXRvcnknXSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJGaXJlc3RvcmVNb2R1bGUge1xyXG4gIHN0YXRpYyBpbml0aWFsaXplQXBwKFxyXG4gICAgb3B0aW9uczogRmlyZWJhc2VPcHRpb25zLFxyXG4gICAgbmFtZU9yQ29uZmlnPzogc3RyaW5nIHwgRmlyZWJhc2VBcHBDb25maWcsXHJcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBbmd1bGFyRmlyZU1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IEFuZ3VsYXJGaXJlc3RvcmVNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogRklSRUJBU0VfT1BUSU9OUywgdXNlVmFsdWU6IG9wdGlvbnMgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IEZJUkVCQVNFX0FQUF9OQU1FLCB1c2VWYWx1ZTogbmFtZU9yQ29uZmlnIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==