@envive-ai/react-hooks 0.3.46 → 0.3.48
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.
- package/dist/application/commerce-api.cjs +73 -3
- package/dist/application/commerce-api.d.cts +16 -1
- package/dist/application/commerce-api.d.ts +16 -1
- package/dist/application/commerce-api.js +73 -3
- package/dist/application/models/api/userEvent.d.cts +9 -2
- package/dist/application/models/api/userEvent.d.ts +9 -2
- package/dist/application/models/featureGates.cjs +2 -1
- package/dist/application/models/featureGates.d.cts +2 -1
- package/dist/application/models/featureGates.d.ts +2 -1
- package/dist/application/models/featureGates.js +2 -1
- package/dist/application/models/graphql/queries/getProductOptionsQuery.cjs +33 -0
- package/dist/application/models/graphql/queries/getProductOptionsQuery.d.cts +28 -0
- package/dist/application/models/graphql/queries/getProductOptionsQuery.d.ts +28 -0
- package/dist/application/models/graphql/queries/getProductOptionsQuery.js +32 -0
- package/dist/application/models/validators/validateResponse.cjs +2 -1
- package/dist/application/models/validators/validateResponse.js +2 -1
- package/dist/application/models/validators/validateUserEvent.cjs +3 -3
- package/dist/application/models/validators/validateUserEvent.js +3 -3
- package/dist/application/utils/index.cjs +2 -0
- package/dist/application/utils/index.d.cts +2 -1
- package/dist/application/utils/index.d.ts +2 -1
- package/dist/application/utils/index.js +2 -1
- package/dist/application/utils/messageFromAddToCartEvent.cjs +32 -0
- package/dist/application/utils/messageFromAddToCartEvent.d.cts +19 -0
- package/dist/application/utils/messageFromAddToCartEvent.d.ts +19 -0
- package/dist/application/utils/messageFromAddToCartEvent.js +31 -0
- package/dist/atoms/app/index.cjs +1 -1
- package/dist/atoms/app/index.d.cts +7 -7
- package/dist/atoms/app/index.d.ts +7 -7
- package/dist/atoms/app/index.js +1 -1
- package/dist/atoms/app/variant.d.cts +6 -6
- package/dist/atoms/app/variant.d.ts +6 -6
- package/dist/atoms/chat/chatState.d.cts +19 -19
- package/dist/atoms/chat/chatState.d.ts +19 -19
- package/dist/atoms/chat/form.d.cts +2 -2
- package/dist/atoms/chat/form.d.ts +3 -3
- package/dist/atoms/chat/index.d.cts +2 -2
- package/dist/atoms/chat/index.d.ts +3 -3
- package/dist/atoms/chat/lastMessage.d.cts +2 -2
- package/dist/atoms/chat/lastMessage.d.ts +2 -2
- package/dist/atoms/chat/messageQueue.d.cts +6 -6
- package/dist/atoms/chat/messageQueue.d.ts +7 -7
- package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
- package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
- package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
- package/dist/atoms/chat/renderedWidgetRefs.d.ts +3 -3
- package/dist/atoms/chat/replies.d.cts +1 -1
- package/dist/atoms/chat/replies.d.ts +3 -3
- package/dist/atoms/chat/suggestions.d.cts +2 -2
- package/dist/atoms/chat/suggestions.d.ts +3 -3
- package/dist/atoms/envive/enviveConfig.cjs +7 -4
- package/dist/atoms/envive/enviveConfig.d.cts +16 -14
- package/dist/atoms/envive/enviveConfig.d.ts +16 -14
- package/dist/atoms/envive/enviveConfig.js +6 -4
- package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
- package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
- package/dist/atoms/org/customerService.d.cts +6 -6
- package/dist/atoms/org/customerService.d.ts +6 -6
- package/dist/atoms/org/graphqlConfig.cjs +1 -1
- package/dist/atoms/org/graphqlConfig.d.cts +6 -6
- package/dist/atoms/org/graphqlConfig.d.ts +6 -6
- package/dist/atoms/org/graphqlConfig.js +1 -1
- package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
- package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
- package/dist/atoms/org/orgAnalyticsConfig.d.cts +4 -4
- package/dist/atoms/org/orgAnalyticsConfig.d.ts +4 -4
- package/dist/atoms/search/chatSearch.d.cts +17 -17
- package/dist/atoms/search/chatSearch.d.ts +17 -17
- package/dist/atoms/search/searchAPI.d.cts +13 -13
- package/dist/atoms/search/searchAPI.d.ts +13 -13
- package/dist/atoms/search/types.d.ts +1 -1
- package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
- package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
- package/dist/contexts/enviveConfigContext/enviveConfigContext.cjs +6 -4
- package/dist/contexts/enviveConfigContext/enviveConfigContext.d.cts +3 -1
- package/dist/contexts/enviveConfigContext/enviveConfigContext.d.ts +3 -1
- package/dist/contexts/enviveConfigContext/enviveConfigContext.js +6 -4
- package/dist/contexts/enviveContext/enviveContext.cjs +7 -3
- package/dist/contexts/enviveContext/enviveContext.d.cts +5 -1
- package/dist/contexts/enviveContext/enviveContext.d.ts +5 -1
- package/dist/contexts/enviveContext/enviveContext.js +7 -3
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +2 -97
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.cts +3 -25
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.ts +3 -25
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +3 -97
- package/dist/contexts/featureFlagServiceContext/index.cjs +2 -1
- package/dist/contexts/featureFlagServiceContext/index.d.cts +2 -1
- package/dist/contexts/featureFlagServiceContext/index.d.ts +2 -1
- package/dist/contexts/featureFlagServiceContext/index.js +2 -1
- package/dist/contexts/graphqlContext/mockV3Config.cjs +1 -1
- package/dist/contexts/graphqlContext/mockV3Config.js +1 -1
- package/dist/contexts/localStorageContext/index.cjs +2 -1
- package/dist/contexts/localStorageContext/index.d.cts +2 -1
- package/dist/contexts/localStorageContext/index.d.ts +2 -1
- package/dist/contexts/localStorageContext/index.js +2 -1
- package/dist/contexts/localStorageContext/localStorageContext.cjs +5 -11
- package/dist/contexts/localStorageContext/localStorageContext.d.cts +3 -7
- package/dist/contexts/localStorageContext/localStorageContext.d.ts +3 -7
- package/dist/contexts/localStorageContext/localStorageContext.js +3 -8
- package/dist/contexts/localStorageContext/localStorageKeys.cjs +12 -0
- package/dist/contexts/localStorageContext/localStorageKeys.d.cts +9 -0
- package/dist/contexts/localStorageContext/localStorageKeys.d.ts +9 -0
- package/dist/contexts/localStorageContext/localStorageKeys.js +11 -0
- package/dist/contexts/salesAgentContext/chatAPI.cjs +13 -2
- package/dist/contexts/salesAgentContext/chatAPI.d.cts +4 -1
- package/dist/contexts/salesAgentContext/chatAPI.d.ts +4 -1
- package/dist/contexts/salesAgentContext/chatAPI.js +14 -3
- package/dist/contexts/salesAgentContext/salesAgentContext.cjs +12 -4
- package/dist/contexts/salesAgentContext/salesAgentContext.js +12 -4
- package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
- package/dist/contexts/types.cjs +1 -1
- package/dist/contexts/types.d.cts +3 -1
- package/dist/contexts/types.d.ts +3 -1
- package/dist/contexts/types.js +1 -1
- package/dist/contexts/typesV3.cjs +1 -1
- package/dist/contexts/typesV3.d.cts +11 -2
- package/dist/contexts/typesV3.d.ts +12 -3
- package/dist/contexts/typesV3.js +1 -1
- package/dist/hooks/AddToCart/addToCartErrorMessage.cjs +7 -0
- package/dist/hooks/AddToCart/addToCartErrorMessage.d.cts +5 -0
- package/dist/hooks/AddToCart/addToCartErrorMessage.d.ts +5 -0
- package/dist/hooks/AddToCart/addToCartErrorMessage.js +6 -0
- package/dist/hooks/AddToCart/createAddToCartUserEvent.cjs +20 -0
- package/dist/hooks/AddToCart/createAddToCartUserEvent.d.cts +17 -0
- package/dist/hooks/AddToCart/createAddToCartUserEvent.d.ts +17 -0
- package/dist/hooks/AddToCart/createAddToCartUserEvent.js +19 -0
- package/dist/hooks/AddToCart/index.cjs +9 -0
- package/dist/hooks/AddToCart/index.d.cts +5 -0
- package/dist/hooks/AddToCart/index.d.ts +5 -0
- package/dist/hooks/AddToCart/index.js +6 -0
- package/dist/hooks/AddToCart/parseAddToCartFunction.cjs +27 -0
- package/dist/hooks/AddToCart/parseAddToCartFunction.d.cts +13 -0
- package/dist/hooks/AddToCart/parseAddToCartFunction.d.ts +13 -0
- package/dist/hooks/AddToCart/parseAddToCartFunction.js +27 -0
- package/dist/hooks/AddToCart/useAddToCart.cjs +24 -0
- package/dist/hooks/AddToCart/useAddToCart.d.cts +14 -0
- package/dist/hooks/AddToCart/useAddToCart.d.ts +14 -0
- package/dist/hooks/AddToCart/useAddToCart.js +23 -0
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
- package/dist/hooks/LocalStorageOperations/useLocalStorageOperations.cjs +6 -5
- package/dist/hooks/LocalStorageOperations/useLocalStorageOperations.js +3 -2
- package/dist/hooks/PageViewedEvent/usePageViewedEvent.cjs +5 -2
- package/dist/hooks/PageViewedEvent/usePageViewedEvent.js +5 -2
- package/dist/hooks/ProductDetails/index.cjs +9 -0
- package/dist/hooks/ProductDetails/index.d.cts +4 -0
- package/dist/hooks/ProductDetails/index.d.ts +4 -0
- package/dist/hooks/ProductDetails/index.js +4 -0
- package/dist/hooks/ProductDetails/useProductDetails.cjs +53 -0
- package/dist/hooks/ProductDetails/useProductDetails.d.cts +20 -0
- package/dist/hooks/ProductDetails/useProductDetails.d.ts +20 -0
- package/dist/hooks/ProductDetails/useProductDetails.js +52 -0
- package/dist/hooks/ProductDetails/variantSelection.cjs +42 -0
- package/dist/hooks/ProductDetails/variantSelection.d.cts +35 -0
- package/dist/hooks/ProductDetails/variantSelection.d.ts +35 -0
- package/dist/hooks/ProductDetails/variantSelection.js +38 -0
- package/dist/hooks/Search/useSearch.d.cts +1 -1
- package/dist/hooks/Search/useSearch.d.ts +1 -1
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.cjs +11 -2
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.cts +1 -10
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.ts +1 -10
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.js +11 -2
- package/dist/hooks/WidgetInteraction/types.cjs +12 -2
- package/dist/hooks/WidgetInteraction/types.d.cts +28 -3
- package/dist/hooks/WidgetInteraction/types.d.ts +28 -3
- package/dist/hooks/WidgetInteraction/types.js +12 -2
- package/dist/hooks/utils.d.cts +1 -1
- package/dist/hooks/utils.d.ts +1 -1
- package/dist/services/amplitudeService/amplitudeService.cjs +16 -10
- package/dist/services/amplitudeService/amplitudeService.d.cts +5 -2
- package/dist/services/amplitudeService/amplitudeService.d.ts +5 -2
- package/dist/services/amplitudeService/amplitudeService.js +14 -7
- package/dist/services/enviveConfigService/enviveConfigService.cjs +3 -4
- package/dist/services/enviveConfigService/enviveConfigService.d.cts +1 -1
- package/dist/services/enviveConfigService/enviveConfigService.d.ts +1 -1
- package/dist/services/enviveConfigService/enviveConfigService.js +2 -3
- package/dist/services/enviveConfigService/fetchGraphQLConfig.cjs +8 -7
- package/dist/services/enviveConfigService/fetchGraphQLConfig.js +8 -6
- package/dist/services/featureFlagService/index.cjs +101 -0
- package/dist/services/featureFlagService/index.d.cts +28 -0
- package/dist/services/featureFlagService/index.d.ts +28 -0
- package/dist/services/featureFlagService/index.js +101 -0
- package/dist/services/ga4ProjectionService/ga4EventSchema.cjs +8 -2
- package/dist/services/ga4ProjectionService/ga4EventSchema.js +8 -2
- package/dist/services/hardcopyService/hardcopyService.d.cts +1 -1
- package/dist/services/hardcopyService/hardcopyService.d.ts +1 -1
- package/dist/services/urlResolverWarmupService/index.cjs +54 -0
- package/dist/services/urlResolverWarmupService/index.d.cts +40 -0
- package/dist/services/urlResolverWarmupService/index.d.ts +40 -0
- package/dist/services/urlResolverWarmupService/index.js +54 -0
- package/dist/types/enviveConfig.d.cts +6 -2
- package/dist/types/enviveConfig.d.ts +6 -2
- package/dist/types/index.d.cts +2 -2
- package/dist/types/index.d.ts +2 -2
- package/package.json +17 -1
- package/src/application/__tests__/commerceApiAddToCartRehydration.test.ts +126 -0
- package/src/application/commerce-api.ts +142 -23
- package/src/application/models/api/userEvent.ts +8 -1
- package/src/application/models/featureGates.ts +5 -0
- package/src/application/models/graphql/queries/getProductOptionsQuery.ts +59 -0
- package/src/application/models/validators/__tests__/validateUserEvent.test.ts +41 -0
- package/src/application/models/validators/validateResponse.ts +1 -0
- package/src/application/models/validators/validateUserEvent.ts +7 -2
- package/src/application/utils/__tests__/messageFromAddToCartEvent.test.ts +109 -0
- package/src/application/utils/index.ts +1 -0
- package/src/application/utils/messageFromAddToCartEvent.ts +32 -0
- package/src/atoms/app/index.ts +1 -1
- package/src/atoms/envive/enviveConfig.ts +6 -1
- package/src/atoms/org/graphqlConfig.ts +1 -1
- package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +5 -0
- package/src/contexts/enviveContext/enviveContext.tsx +10 -0
- package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +6 -173
- package/src/contexts/localStorageContext/localStorageContext.tsx +2 -5
- package/src/contexts/localStorageContext/localStorageKeys.ts +8 -0
- package/src/contexts/salesAgentContext/__tests__/chatAPI.test.tsx +63 -0
- package/src/contexts/salesAgentContext/chatAPI.ts +20 -1
- package/src/contexts/salesAgentContext/salesAgentContext.tsx +10 -0
- package/src/contexts/types.ts +2 -0
- package/src/contexts/typesV3.ts +14 -0
- package/src/hooks/AddToCart/__tests__/parseAddToCartFunction.test.ts +31 -0
- package/src/hooks/AddToCart/__tests__/useAddToCart.test.tsx +204 -0
- package/src/hooks/AddToCart/addToCartErrorMessage.ts +2 -0
- package/src/hooks/AddToCart/createAddToCartUserEvent.ts +25 -0
- package/src/hooks/AddToCart/index.ts +4 -0
- package/src/hooks/AddToCart/parseAddToCartFunction.ts +31 -0
- package/src/hooks/AddToCart/useAddToCart.ts +35 -0
- package/src/hooks/PageViewedEvent/usePageViewedEvent.ts +4 -0
- package/src/hooks/ProductDetails/__tests__/useProductDetails.test.tsx +129 -0
- package/src/hooks/ProductDetails/__tests__/variantSelection.test.ts +145 -0
- package/src/hooks/ProductDetails/index.ts +2 -0
- package/src/hooks/ProductDetails/useProductDetails.ts +62 -0
- package/src/hooks/ProductDetails/variantSelection.ts +61 -0
- package/src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts +15 -0
- package/src/hooks/WidgetInteraction/types.ts +42 -1
- package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +8 -8
- package/src/services/amplitudeService/amplitudeService.ts +42 -23
- package/src/services/enviveConfigService/enviveConfigService.ts +2 -2
- package/src/services/enviveConfigService/fetchGraphQLConfig.ts +17 -6
- package/src/services/featureFlagService/index.ts +176 -0
- package/src/services/ga4ProjectionService/__tests__/ga4ProjectionService.test.ts +36 -0
- package/src/services/ga4ProjectionService/ga4EventSchema.ts +7 -0
- package/src/services/urlResolverWarmupService/__tests__/urlResolverWarmupService.test.ts +85 -0
- package/src/services/urlResolverWarmupService/index.ts +89 -0
- package/src/types/enviveConfig.ts +3 -0
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import logger_default from "./logging/logger.js";
|
|
2
|
+
import { getProductOptionsQuery } from "./models/graphql/queries/getProductOptionsQuery.js";
|
|
2
3
|
import { ProductExperiment } from "./models/productExperiment.js";
|
|
3
4
|
import { validateOrgConfigResults } from "./models/validators/validateOrgConfigResults.js";
|
|
4
5
|
import { validateResponse } from "./models/validators/validateResponse.js";
|
|
5
6
|
import { validateSuggestion } from "./models/validators/validateSuggestion.js";
|
|
6
7
|
import { validateUserEvent } from "./models/validators/validateUserEvent.js";
|
|
7
8
|
import { getQueryParam } from "./utils/urlsParser.js";
|
|
9
|
+
import { messageFromAddToCartEvent } from "./utils/messageFromAddToCartEvent.js";
|
|
8
10
|
import { messageFromFormSubmittedEvent } from "./utils/messageFromFormSubmittedEvent.js";
|
|
9
11
|
import { messageFromQueryEvent } from "./utils/messageFromQueryEvent.js";
|
|
10
12
|
import { messageFromResponse } from "./utils/messageFromResponse.js";
|
|
@@ -72,8 +74,24 @@ var CommerceApiClient = class CommerceApiClient {
|
|
|
72
74
|
this.customerServiceApi = new CustomerServiceApi(config);
|
|
73
75
|
this.productsApi = new ProductsApi(config);
|
|
74
76
|
}
|
|
77
|
+
static {
|
|
78
|
+
this.inFlightUrlResolutions = /* @__PURE__ */ new Map();
|
|
79
|
+
}
|
|
75
80
|
static {
|
|
76
81
|
this.resolveUrl = async (url) => {
|
|
82
|
+
const inFlight = CommerceApiClient.inFlightUrlResolutions.get(url);
|
|
83
|
+
if (inFlight) return inFlight;
|
|
84
|
+
const request = CommerceApiClient.resolveUrlUncached(url);
|
|
85
|
+
CommerceApiClient.inFlightUrlResolutions.set(url, request);
|
|
86
|
+
try {
|
|
87
|
+
return await request;
|
|
88
|
+
} finally {
|
|
89
|
+
CommerceApiClient.inFlightUrlResolutions.delete(url);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
static {
|
|
94
|
+
this.resolveUrlUncached = async (url) => {
|
|
77
95
|
const atomStore = getAtomStore();
|
|
78
96
|
const orgShortName = atomStore.get(orgShortNameAtom);
|
|
79
97
|
const orgId = atomStore.get(orgIdAtom);
|
|
@@ -206,15 +224,25 @@ var CommerceApiClient = class CommerceApiClient {
|
|
|
206
224
|
const userEvents = data?.user_events.map((event) => validateUserEvent(event)).filter((event) => event != null);
|
|
207
225
|
const formSubmittedUserEventsFormIds = userEvents.filter((event) => event.category === UserEventCategory.FormSubmitted).map((event) => event.attributes.formResponseId);
|
|
208
226
|
const assistantMessages = responses.map((turn) => turn.filter((response) => !(response.category === ResponseCategory.Form && formSubmittedUserEventsFormIds.includes(response.id))).map((response) => messageFromResponse(response)).filter((message) => message != null)).filter((turn) => turn.length > 0);
|
|
209
|
-
const userMessages = userEvents.map((event) => {
|
|
227
|
+
const userMessages = (await Promise.all(userEvents.map(async (event) => {
|
|
210
228
|
if ([UserEventCategory.QueryTyped, UserEventCategory.Search].includes(event.category)) return [messageFromQueryEvent(event)];
|
|
211
229
|
if (event.category === UserEventCategory.SuggestionClicked) return [messageFromSuggestionEvent(event, suggestions)];
|
|
230
|
+
if (event.category === UserEventCategory.AddToCart) {
|
|
231
|
+
const matchedProduct = responses.flat().find((response) => response.category === ResponseCategory.Product && response.attributes.id === event.attributes.productId);
|
|
232
|
+
let productTitle = matchedProduct?.category === ResponseCategory.Product ? matchedProduct.attributes.title : void 0;
|
|
233
|
+
if (!productTitle) try {
|
|
234
|
+
productTitle = (await CommerceApiClient.retrieveProductDetails(event.attributes.productId))?.title;
|
|
235
|
+
} catch {
|
|
236
|
+
productTitle = void 0;
|
|
237
|
+
}
|
|
238
|
+
return [messageFromAddToCartEvent(event, productTitle)];
|
|
239
|
+
}
|
|
212
240
|
if (event.category === UserEventCategory.FormSubmitted) {
|
|
213
241
|
const formResponse = responses.flat().find((response) => response.id === event.attributes.formResponseId && event.attributes.formType !== FormType.Escalation);
|
|
214
242
|
if (formResponse && formResponse.category === ResponseCategory.Form) return [messageFromFormSubmittedEvent(event, formResponse.attributes)];
|
|
215
243
|
}
|
|
216
244
|
return [];
|
|
217
|
-
}).filter((message) => message.length > 0);
|
|
245
|
+
}))).filter((message) => message.length > 0);
|
|
218
246
|
return {
|
|
219
247
|
responses,
|
|
220
248
|
userEvents,
|
|
@@ -264,6 +292,48 @@ var CommerceApiClient = class CommerceApiClient {
|
|
|
264
292
|
}
|
|
265
293
|
};
|
|
266
294
|
}
|
|
295
|
+
static {
|
|
296
|
+
this.productDetailsCache = /* @__PURE__ */ new Map();
|
|
297
|
+
}
|
|
298
|
+
static {
|
|
299
|
+
this.retrieveProductDetails = (productId) => {
|
|
300
|
+
const cached = CommerceApiClient.productDetailsCache.get(productId);
|
|
301
|
+
if (cached) return cached;
|
|
302
|
+
const request = CommerceApiClient.retrieveProductDetailsUncached(productId).catch((err) => {
|
|
303
|
+
CommerceApiClient.productDetailsCache.delete(productId);
|
|
304
|
+
throw err;
|
|
305
|
+
});
|
|
306
|
+
CommerceApiClient.productDetailsCache.set(productId, request);
|
|
307
|
+
return request;
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
static {
|
|
311
|
+
this.retrieveProductDetailsUncached = async (productId) => {
|
|
312
|
+
const atomStore = getAtomStore();
|
|
313
|
+
const baseUrl = atomStore.get(baseUrlAtom);
|
|
314
|
+
const apiKey = atomStore.get(orgLevelApiKeyAtom);
|
|
315
|
+
try {
|
|
316
|
+
const response = await fetch(`${baseUrl}/v1/graphql`, {
|
|
317
|
+
method: "POST",
|
|
318
|
+
headers: {
|
|
319
|
+
"Content-Type": "application/json",
|
|
320
|
+
Authorization: `Bearer ${apiKey}`
|
|
321
|
+
},
|
|
322
|
+
body: JSON.stringify({
|
|
323
|
+
query: getProductOptionsQuery(),
|
|
324
|
+
variables: { productId }
|
|
325
|
+
})
|
|
326
|
+
});
|
|
327
|
+
if (!response.ok) throw new ResponseError(response, `GraphQL request failed: ${response.statusText}`);
|
|
328
|
+
const result = await response.json();
|
|
329
|
+
if (result.errors) throw new Error(`GraphQL errors: ${JSON.stringify(result.errors)}`);
|
|
330
|
+
return result.data?.me?.productOptions ?? void 0;
|
|
331
|
+
} catch (err) {
|
|
332
|
+
await throwSessionRestartRequiredIf("Failed to retrieve product details", err);
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
};
|
|
336
|
+
}
|
|
267
337
|
static {
|
|
268
338
|
this.isSupportedEvent = async (payload) => {
|
|
269
339
|
try {
|
|
@@ -344,4 +414,4 @@ var commerce_api_default = CommerceApiClient;
|
|
|
344
414
|
|
|
345
415
|
//#endregion
|
|
346
416
|
export { commerce_api_default as default };
|
|
347
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVyY2UtYXBpLmpzIiwibmFtZXMiOlsiTG9nZ2VyIiwiY29uZmlnOiBDb25maWd1cmF0aW9uIiwiY29udGV4dDogQ29udGV4dCIsImVycjogdW5rbm93biIsImVycm9yOiB1bmtub3duIiwiZGF0YTogVjFHZXRTZXNzaW9uTWVzc2FnZXMyMDBSZXNwb25zZSIsInJlc3BvbnNlczogUmVzcG9uc2VbXVtdIiwic3VnZ2VzdGlvbnM6IFN1Z2dlc3Rpb25bXSIsInVzZXJFdmVudHM6IFVzZXJFdmVudFtdIiwiYXNzaXN0YW50TWVzc2FnZXM6IE1lc3NhZ2VbXVtdIiwidXNlck1lc3NhZ2VzOiBNZXNzYWdlW11bXSIsInJlcXVlc3Q6IFYxT3JnQ29uZmlnR2V0UmVxdWVzdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcHBsaWNhdGlvbi9jb21tZXJjZS1hcGkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvbixcbiAgQ29udGV4dEVudkVudW0sXG4gIENvbnRleHRTb3VyY2VFbnVtLFxuICBDdXN0b21lclNlcnZpY2VBcGksXG4gIEN1c3RvbWVyU2VydmljZVByb3ZpZGVyLFxuICBEZWZhdWx0QXBpLFxuICBGb3JtVHlwZSxcbiAgSW5mZXJlbmNlQXBpLFxuICBQcm9kdWN0c0FwaSxcbiAgUmVwb3J0U2Vzc2lvblJlcXVlc3QsXG4gIFJlc3BvbnNlQ2F0ZWdvcnksXG4gIFJlc3BvbnNlRXJyb3IsXG4gIFVzZXJFdmVudENhdGVnb3J5LFxuICBWMUdldFNlc3Npb25NZXNzYWdlczIwMFJlc3BvbnNlLFxuICBWMU9yZ0NvbmZpZ0dldFJlcXVlc3QsXG4gIFYxT3JnQ29uZmlnR2V0U291cmNlRW51bSxcbn0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB0eXBlIHsgQ29udGV4dCB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudC9kaXN0L21vZGVscy9Db250ZXh0JztcbmltcG9ydCB0eXBlIHsgUHJvZHVjdFJldHJpZXZhbFJlc3VsdCB9IGZyb20gJ3NyYy9hdG9tcy9zZWFyY2gvdHlwZXMnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgTWVzc2FnZSxcbiAgTmV4dE1lc3NhZ2VSZXF1ZXN0LFxuICBSZXNwb25zZSxcbiAgU3VnZ2VzdGlvbixcbiAgU3VwcG9ydGVkRXZlbnRSZXF1ZXN0LFxuICBVc2VyRXZlbnQsXG59IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgT3JnQ29uZmlnIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG5pbXBvcnQgeyBQcm9kdWN0RXhwZXJpbWVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvcHJvZHVjdEV4cGVyaW1lbnQnO1xuaW1wb3J0IHsgdmFsaWRhdGVPcmdDb25maWdSZXN1bHRzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy92YWxpZGF0b3JzL3ZhbGlkYXRlT3JnQ29uZmlnUmVzdWx0cyc7XG5pbXBvcnQgeyB2YWxpZGF0ZVJlc3BvbnNlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy92YWxpZGF0b3JzL3ZhbGlkYXRlUmVzcG9uc2UnO1xuaW1wb3J0IHsgdmFsaWRhdGVTdWdnZXN0aW9uIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy92YWxpZGF0b3JzL3ZhbGlkYXRlU3VnZ2VzdGlvbic7XG5pbXBvcnQgeyB2YWxpZGF0ZVVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvdmFsaWRhdG9ycy92YWxpZGF0ZVVzZXJFdmVudCc7XG5pbXBvcnQge1xuICBnZXRRdWVyeVBhcmFtLFxuICBtZXNzYWdlRnJvbVF1ZXJ5RXZlbnQsXG4gIG1lc3NhZ2VGcm9tUmVzcG9uc2UsXG4gIG1lc3NhZ2VGcm9tU3VnZ2VzdGlvbkV2ZW50LFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMnO1xuaW1wb3J0IHsgbWVzc2FnZUZyb21Gb3JtU3VibWl0dGVkRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMvbWVzc2FnZUZyb21Gb3JtU3VibWl0dGVkRXZlbnQnO1xuaW1wb3J0IHsgbWVzc2FnZVJlcXVlc3RUb0NvbW1lcmNlTWVzc2FnZVJlcXVlc3QgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMvbmV4dE1lc3NhZ2VSZXF1ZXN0VG9BcGlSZXF1ZXN0JztcbmltcG9ydCB7IGNvcmVTdXBwb3J0ZWRFdmVudFJlcXVlc3RUb0FwaVJlcXVlc3QgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMvc3VwcG9ydGVkRXZlbnRSZXF1ZXN0VG9BcGlSZXF1ZXN0JztcbmltcG9ydCB7IGNoYXRJZEF0b20sIHVzZXJJZEF0b20gfSBmcm9tICdzcmMvYXRvbXMvYXBwJzsgLy8gSW1wb3J0IHVzZXJJZEF0b20gYW5kIGNoYXRJZEF0b21cbmltcG9ydCB7IFN1cHBvcnRlZEV2ZW50IH0gZnJvbSAnc3JjL2F0b21zL2FwcC92YXJpYW50JztcbmltcG9ydCB7IGdldEF0b21TdG9yZSB9IGZyb20gJ3NyYy9hdG9tcy9hdG9tU3RvcmUvYXRvbVN0b3JlJztcbmltcG9ydCB7IHJlc29sdmVkQmFzZUNvbmZpZ1ZlcnNpb25BdG9tIH0gZnJvbSAnc3JjL2F0b21zL2Vudml2ZS9yZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uJztcbmltcG9ydCB7XG4gIGJhc2VVcmxBdG9tLFxuICBjb250ZXh0U291cmNlQXRvbSxcbiAgZW52QXRvbSxcbiAgb3JnSWRBdG9tLFxuICBvcmdMZXZlbEFwaUtleUF0b20sXG4gIG9yZ1Nob3J0TmFtZUF0b20sXG4gIHJlYWN0QXBwTmFtZUF0b20sIC8vIEltcG9ydCBlbnZBdG9tXG59IGZyb20gJ3NyYy9hdG9tcy9lbnZpdmUvZW52aXZlQ29uZmlnJztcbmltcG9ydCB7IGZlYXR1cmVGbGFnU2VydmljZUF0b20gfSBmcm9tICdzcmMvYXRvbXMvb3JnL2dyYXBocWxDb25maWcnOyAvLyBJbXBvcnQgbmV3IG9yZ0lkQXRvbSBhbmQgZmVhdHVyZUZsYWdTZXJ2aWNlQXRvbVxuaW1wb3J0IHsgU2Vzc2lvblJlc3RhcnRSZXF1aXJlZCB9IGZyb20gJ3NyYy90eXBlcy9leGNlcHRpb25zL3Nlc3Npb25FeGNlcHRpb25zJztcbmltcG9ydCB7IFVuc3VwcG9ydGVkUHJvZHVjdEV4Y2VwdGlvbiB9IGZyb20gJ3NyYy90eXBlcy9leGNlcHRpb25zL3Vuc3VwcG9ydGVkUHJvZHVjdEV4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgV2lkZ2V0VGV4dCB9IGZyb20gJy4vbW9kZWxzL2FwaS93aWRnZXRUZXh0JztcbmltcG9ydCB7IFdpZGdldFRleHRSZXF1ZXN0IH0gZnJvbSAnLi9tb2RlbHMvYXBpL3dpZGdldFRleHRSZXF1ZXN0JztcbmltcG9ydCB7IHByb2R1Y3RSZXRyaWV2YWxSZXNwb25zZVRvUHJvZHVjdFJldHJpZXZhbFJlc3VsdCB9IGZyb20gJy4vdXRpbHMvcHJvZHVjdFJldHJpZXZhbFJlc3BvbnNlVG9Qcm9kdWN0UmV0cmlldmFsUmVzdWx0JztcbmltcG9ydCB7IGFwaVdpZGdldFRleHRSZXNwb25zZVRvQ29yZVdpZGdldFRleHQgfSBmcm9tICcuL3V0aWxzL3dpZGdldFRleHRGcm9tQXBpV2lkZ2V0VGV4dFJlc3BvbnNlJztcbmltcG9ydCB7IGNvcmVXaWRnZXRUZXh0UmVxdWVzdFRvQXBpUmVxdWVzdCB9IGZyb20gJy4vdXRpbHMvd2lkZ2V0VGV4dFJlcXVlc3RUb0FwaVJlcXVlc3QnO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdjb21tZXJjZS1hcGknKTtcblxuYXN5bmMgZnVuY3Rpb24gZXJyb3JSZXNwb25zZUJvZHkoZXJyb3I6IFJlc3BvbnNlRXJyb3IpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgZXJyb3IucmVzcG9uc2UuanNvbigpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4ge307XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gdGhyb3dTZXNzaW9uUmVzdGFydFJlcXVpcmVkSWYoZXJyb3JNc2c6IHN0cmluZywgZXJyb3I6IHVua25vd24pIHtcbiAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBSZXNwb25zZUVycm9yKSkge1xuICAgIGxvZ2dlci5sb2dJbmZvKGVycm9yTXNnLCBlcnJvcik7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cblxuICBjb25zdCBlcnJvclJlc3BvbnNlID0gYXdhaXQgZXJyb3JSZXNwb25zZUJvZHkoZXJyb3IpO1xuICBpZiAoXG4gICAgZXJyb3JSZXNwb25zZT8ubWVzc2FnZT8udG9Mb3dlckNhc2UoKSA9PT0gJ3Vuc3VwcG9ydGVkIHByb2R1Y3QnIHx8IC8vIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBuZXdlciB2ZXJzaW9ucyBvZiB0aGUgQVBJIHJldHVybiBzdWJfY29kZSBpbnN0ZWFkIG9mIG1lc3NhZ2VcbiAgICBlcnJvclJlc3BvbnNlPy5hcHBfY29kZT8udG9VcHBlckNhc2UoKSA9PT0gJ1BST0RVQ1RfTk9UX0ZPVU5EJ1xuICApIHtcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRQcm9kdWN0RXhjZXB0aW9uKCk7XG4gIH0gZWxzZSBpZiAoXG4gICAgZXJyb3JSZXNwb25zZT8uYXBwX2NvZGU/LnRvVXBwZXJDYXNlKCkgPT09ICdSRVNUQVJUX1NFU1NJT04nIHx8XG4gICAgZXJyb3JSZXNwb25zZT8uc3ViX2NvZGU/LnRvVXBwZXJDYXNlKCkgPT09ICdOT1RfRk9VTkQnIC8vIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBuZXcgQVBJIHJlc3BvbnNlcyB3aWxsIGNvbnRhaW4gXCJhcHBfY29kZVwiXG4gICkge1xuICAgIGxvZ2dlci5sb2dJbmZvKFxuICAgICAgJ1Nlc3Npb24gZG9lcyBub3QgZXhpc3QuIFJlLXN0YXJ0IHNlc3Npb24nLFxuICAgICAgZXJyb3IsXG4gICAgICBlcnJvci5yZXNwb25zZSxcbiAgICAgIGVycm9yUmVzcG9uc2UsXG4gICAgKTtcbiAgICB0aHJvdyBuZXcgU2Vzc2lvblJlc3RhcnRSZXF1aXJlZCgpO1xuICB9XG5cbiAgbG9nZ2VyLmxvZ0luZm8oZXJyb3JNc2csIGVycm9yKTtcbiAgdGhyb3cgZXJyb3I7XG59XG5cbmNsYXNzIENvbW1lcmNlQXBpQ2xpZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QXBpOiBEZWZhdWx0QXBpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY3VzdG9tZXJTZXJ2aWNlQXBpOiBDdXN0b21lclNlcnZpY2VBcGk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpbmZlcmVuY2VBcGk6IEluZmVyZW5jZUFwaTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3RzQXBpOiBQcm9kdWN0c0FwaTtcblxuICBwcml2YXRlIHN0YXRpYyBpbnN0YW5jZTogQ29tbWVyY2VBcGlDbGllbnQgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBzdWdnZXN0aW9uc0Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICBwcml2YXRlIHJlc3BvbnNlc0Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICBwcml2YXRlIHN0YXRpYyBnZXRJbnN0YW5jZSA9ICgpOiBDb21tZXJjZUFwaUNsaWVudCA9PiB7XG4gICAgaWYgKCFDb21tZXJjZUFwaUNsaWVudC5pbnN0YW5jZSkge1xuICAgICAgQ29tbWVyY2VBcGlDbGllbnQuaW5zdGFuY2UgPSBuZXcgQ29tbWVyY2VBcGlDbGllbnQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gQ29tbWVyY2VBcGlDbGllbnQuaW5zdGFuY2U7XG4gIH07XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihiYXNlUGF0aD86IHN0cmluZykge1xuICAgIGNvbnN0IGF0b21TdG9yZSA9IGdldEF0b21TdG9yZSgpO1xuICAgIGNvbnN0IGJhc2VVcmwgPSBhdG9tU3RvcmUuZ2V0KGJhc2VVcmxBdG9tKTtcbiAgICBjb25zdCBhcGlLZXkgPSBhdG9tU3RvcmUuZ2V0KG9yZ0xldmVsQXBpS2V5QXRvbSk7XG4gICAgY29uc3QgcGF0aCA9IGJhc2VQYXRoIHx8IGJhc2VVcmw7XG4gICAgLy8gQVBJIEtleSBpcyBub3cgaGFuZGxlZCBhdCB0aGUgRW52aXZlQ29uZmlnUHJvdmlkZXIgbGV2ZWxcbiAgICBjb25zdCBjb25maWc6IENvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbih7XG4gICAgICBhY2Nlc3NUb2tlbjogYXBpS2V5LFxuICAgICAgYmFzZVBhdGg6IHBhdGgsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLmRlZmF1bHRBcGkgPSBuZXcgRGVmYXVsdEFwaShjb25maWcpO1xuICAgIHRoaXMuaW5mZXJlbmNlQXBpID0gbmV3IEluZmVyZW5jZUFwaShjb25maWcpO1xuICAgIHRoaXMuY3VzdG9tZXJTZXJ2aWNlQXBpID0gbmV3IEN1c3RvbWVyU2VydmljZUFwaShjb25maWcpO1xuICAgIHRoaXMucHJvZHVjdHNBcGkgPSBuZXcgUHJvZHVjdHNBcGkoY29uZmlnKTtcbiAgfVxuXG4gIHN0YXRpYyByZXNvbHZlVXJsID0gYXN5bmMgKHVybDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgYXRvbVN0b3JlID0gZ2V0QXRvbVN0b3JlKCk7XG4gICAgY29uc3Qgb3JnU2hvcnROYW1lID0gYXRvbVN0b3JlLmdldChvcmdTaG9ydE5hbWVBdG9tKTtcbiAgICBjb25zdCBvcmdJZCA9IGF0b21TdG9yZS5nZXQob3JnSWRBdG9tKTtcbiAgICBjb25zdCB1c2VySWQgPSBhdG9tU3RvcmUuZ2V0KHVzZXJJZEF0b20pO1xuICAgIGNvbnN0IGNoYXRJZCA9IGF0b21TdG9yZS5nZXQoY2hhdElkQXRvbSk7XG4gICAgY29uc3Qgc291cmNlID0gYXRvbVN0b3JlLmdldChjb250ZXh0U291cmNlQXRvbSk7XG4gICAgY29uc3QgZW52ID0gYXRvbVN0b3JlLmdldChlbnZBdG9tKTtcblxuICAgIGNvbnN0IGZlYXR1cmVGbGFnU2VydmljZSA9IGF0b21TdG9yZS5nZXQoZmVhdHVyZUZsYWdTZXJ2aWNlQXRvbSk7XG5cbiAgICBjb25zdCBjb250ZXh0OiBDb250ZXh0ID0ge1xuICAgICAgdXNlcl9pZDogdXNlcklkID8/ICcnLFxuICAgICAgb3JnX2lkOiBvcmdJZCA/PyAnJyxcbiAgICAgIG9yZ19zaG9ydF9uYW1lOiBvcmdTaG9ydE5hbWUgPz8gJycsXG4gICAgICBjaGF0X2lkOiBjaGF0SWQgPz8gJycsXG4gICAgICBzb3VyY2U6IHNvdXJjZSA/PyBDb250ZXh0U291cmNlRW51bS5BcHAsXG4gICAgICBlbnY6IChlbnYgYXMgQ29udGV4dEVudkVudW0pID8/IENvbnRleHRFbnZFbnVtLkRldiwgLy8gQ2FzdCBlbnYgdG8gQ29udGV4dEVudkVudW1cbiAgICB9O1xuXG4gICAgY29uc3Qgb3ZlcnJpZGVDb25maWdWZXJzaW9uID1cbiAgICAgIGdldFF1ZXJ5UGFyYW0oJ3NwaWZmeV9jb25maWdfdmVyc2lvbicpIHx8XG4gICAgICBnZXRRdWVyeVBhcmFtKCdlbnZpdmVfY29uZmlnX3ZlcnNpb24nKSB8fFxuICAgICAgZ2V0QXRvbVN0b3JlKCkuZ2V0KHJlc29sdmVkQmFzZUNvbmZpZ1ZlcnNpb25BdG9tKSB8fFxuICAgICAgdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgZmVhdHVyZUdhdGVzID0gZmVhdHVyZUZsYWdTZXJ2aWNlPy5mZWF0dXJlRmxhZ1NlcnZpY2U/LmdldEZlYXR1cmVGbGFncygpIHx8IHt9O1xuICAgIGNvbnN0IHVybFJlc29sdmluZ1JlcXVlc3QgPSB7XG4gICAgICB1cmwsXG4gICAgICBjb250ZXh0LFxuICAgICAgZmVhdHVyZV9nYXRlczogZmVhdHVyZUdhdGVzLFxuICAgICAgb3ZlcnJpZGVfY29uZmlnX3ZlcnNpb246IG92ZXJyaWRlQ29uZmlnVmVyc2lvbixcbiAgICB9O1xuXG4gICAgY29uc3QgcmF3UmVzcG9uc2UgPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXRJbnN0YW5jZSgpLmluZmVyZW5jZUFwaS52MVVybFJlc29sdmluZ1Bvc3RSYXcoe1xuICAgICAgVXJsUmVzb2x2aW5nUmVxdWVzdDogdXJsUmVzb2x2aW5nUmVxdWVzdCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlQm9keSA9IGF3YWl0IHJhd1Jlc3BvbnNlLnJhdy5qc29uKCk7XG5cbiAgICByZXR1cm4gcmVzcG9uc2VCb2R5O1xuICB9O1xuXG4gIHN0YXRpYyByZXBvcnRTZXNzaW9uID0gYXN5bmMgKHJlcG9ydFJlcXVlc3Q6IFJlcG9ydFNlc3Npb25SZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgYXdhaXQgQ29tbWVyY2VBcGlDbGllbnQuZ2V0SW5zdGFuY2UoKS5kZWZhdWx0QXBpLnYxQ2hhdHNSZXBvcnRTZXNzaW9uSWRQb3N0KHtcbiAgICAgIFJlcG9ydFNlc3Npb25SZXF1ZXN0OiByZXBvcnRSZXF1ZXN0LFxuICAgIH0pO1xuICB9O1xuXG4gIHN0YXRpYyBnZXROZXh0UmVzcG9uc2VzID0gYXN5bmMgKHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCk6IFByb21pc2U8TWVzc2FnZVtdPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgQ29tbWVyY2VBcGlDbGllbnQuZ2V0SW5zdGFuY2UoKS5pbmZlcmVuY2VBcGkudjFOZXh0UmVzcG9uc2VzUG9zdCh7XG4gICAgICAgIE5leHRNZXNzYWdlUmVxdWVzdDogbWVzc2FnZVJlcXVlc3RUb0NvbW1lcmNlTWVzc2FnZVJlcXVlc3QocGF5bG9hZCksXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IG1lc3NhZ2VzID0gcmVzcG9uc2VcbiAgICAgICAgLm1hcChyZXNwID0+IHZhbGlkYXRlUmVzcG9uc2UocmVzcCkpXG4gICAgICAgIC5tYXAocmVzcCA9PiBtZXNzYWdlRnJvbVJlc3BvbnNlKHJlc3ApKTtcblxuICAgICAgcmV0dXJuIG1lc3NhZ2VzLmZpbHRlcigobSk6IG0gaXMgTWVzc2FnZSA9PiBtICE9IG51bGwpO1xuICAgIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgbG9nZ2VyLmxvZ0luZm8oJ0ZhaWxlZCB0byBnZXQgbmV4dCByZXNwb25zZXMnLCBlcnIsIHtcbiAgICAgICAgcGF5bG9hZENvbnRleHQ6IHBheWxvYWQ/LmNvbnRleHQsXG4gICAgICAgIHVzZXJFdmVudHM6IHBheWxvYWQ/LnVzZXJFdmVudHMsXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHRocm93U2Vzc2lvblJlc3RhcnRSZXF1aXJlZElmKCdGYWlsZWQgdG8gZ2V0IG5leHQgcmVzcG9uc2VzJywgZXJyKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH07XG5cbiAgc3RhdGljIGdldE5leHRSZXNwb25zZVN0cmVhbWluZyA9IChcbiAgICBwYXlsb2FkOiBOZXh0TWVzc2FnZVJlcXVlc3QsXG4gICk6IEFzeW5jR2VuZXJhdG9yPFJlc3BvbnNlLCB2b2lkLCB1bmtub3duPiA9PiB7XG4gICAgYXN5bmMgZnVuY3Rpb24qIGdlbmVyYXRlKGluZmVyZW5jZUFwaTogSW5mZXJlbmNlQXBpLCBhYm9ydENvbnRyb2xsZXI6IEFib3J0Q29udHJvbGxlcikge1xuICAgICAgLy8gbWFrZSBzdXJlIHN0cmVhbWluZyBpcyBlbmFibGVkXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGluZmVyZW5jZUFwaS52MU5leHRSZXNwb25zZXNQb3N0UmF3KFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIE5leHRNZXNzYWdlUmVxdWVzdDogbWVzc2FnZVJlcXVlc3RUb0NvbW1lcmNlTWVzc2FnZVJlcXVlc3QocGF5bG9hZCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IHNpZ25hbDogYWJvcnRDb250cm9sbGVyLnNpZ25hbCB9LFxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFJlYWQgdGhlIHJlc3BvbnNlIGFzIGEgc3RyZWFtIG9mIGRhdGFcbiAgICAgICAgaWYgKCFyZXNwb25zZS5yYXcuYm9keSkge1xuICAgICAgICAgIGxvZ2dlci5sb2dFcnJvcignTm8gYm9keSBpbiB0aGUgc3RyZWFtZWQgcmVzcG9uc2UnLCB1bmRlZmluZWQsIHtcbiAgICAgICAgICAgIHJlc3BvbnNlOiByZXNwb25zZS5yYXcsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVhZGVyID0gcmVzcG9uc2UucmF3LmJvZHkuZ2V0UmVhZGVyKCk7XG4gICAgICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoJ3V0Zi04Jyk7XG5cbiAgICAgICAgbGV0IHBhcnRpYWwgPSAnJztcbiAgICAgICAgLy8gVE9ETyB0aGlzIGZ1bmN0aW9uIGlzIHJlY3JlYXRlZCBldmVyeSB0aW1lIG5ldyBkYXRhIGNvbWVzIGZyb20gdGhlIHN0cmVhbSAtIGRlZmluZSBpdCBvdXRzaWRlIG9mIHRoZSBnZW5lcmF0b3JcbiAgICAgICAgY29uc3Qgc2FmZVBhcnNlID0gKGxpbmU6IHN0cmluZyk6IHVua25vd24gPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShsaW5lKTsgLy8gUGFyc2UgdGhlIEpTT04gc3RyaW5nXG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBsb2dnZXIubG9nRXJyb3IoJ0Vycm9yIHBhcnNpbmcgc3RyZWFtZWQgbGluZScsIGVyciwge1xuICAgICAgICAgICAgICBsaW5lLFxuICAgICAgICAgICAgICBwYXJ0aWFsLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBzd2FsbG93IHRoZSBlcnJvciBhbmQgc2V0IHRoZSBwYXJ0aWFsIHRvIG91ciBjdXJyZW50IGNodW5rXG4gICAgICAgICAgICBwYXJ0aWFsID0gbGluZTtcbiAgICAgICAgICAgIHJldHVybiBwYXJ0aWFsO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBUT0RPIHRoaXMgZnVuY3Rpb24gaXMgcmVjcmVhdGVkIGV2ZXJ5IHRpbWUgbmV3IGRhdGEgY29tZXMgZnJvbSB0aGUgc3RyZWFtIC0gZGVmaW5lIGl0IG91dHNpZGUgb2YgdGhlIGdlbmVyYXRvclxuICAgICAgICBjb25zdCBwcm9jZXNzQ2h1bmsgPSAoY2h1bms6IHN0cmluZyk6IHVua25vd25bXSA9PiB7XG4gICAgICAgICAgLy8gbWVyZ2UgdGhlIHBhcnRpYWwgd2l0aCB0aGUgaW5jb21pbmcgY2h1bmtcbiAgICAgICAgICBjb25zdCBsaW5lcyA9IGAke3BhcnRpYWx9JHtjaHVua31gLnNwbGl0KCdcXG4nKTtcblxuICAgICAgICAgIGNvbnN0IHBhcnNlZExpbmVzID0gbGluZXNcbiAgICAgICAgICAgIC5tYXAobGluZSA9PiBsaW5lLnJlcGxhY2UoL15kYXRhOiAvLCAnJykudHJpbSgpKSAvLyBSZW1vdmUgdGhlIFwiZGF0YTogXCIgcHJlZml4XG4gICAgICAgICAgICAuZmlsdGVyKGxpbmUgPT4gbGluZSAhPT0gJycgJiYgbGluZSAhPT0gJ1tET05FXScpIC8vIFJlbW92ZSBlbXB0eSBsaW5lcyBhbmQgXCJbRE9ORV1cIlxuICAgICAgICAgICAgLm1hcChzYWZlUGFyc2UpXG4gICAgICAgICAgICAuZmlsdGVyKHYgPT4gdik7IC8vIGFuZCBmaWx0ZXIgb3V0IHRoZSB1bmRlZmluZWQgdmFsdWVzXG4gICAgICAgICAgcmV0dXJuIHBhcnNlZExpbmVzO1xuICAgICAgICB9O1xuXG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWF3YWl0LWluLWxvb3BcbiAgICAgICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuXG4gICAgICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIE1hc3NhZ2UgYW5kIHBhcnNlIHRoZSBjaHVuayBvZiBkYXRhXG4gICAgICAgICAgY29uc3QgY2h1bmsgPSBkZWNvZGVyLmRlY29kZSh2YWx1ZSk7XG4gICAgICAgICAgY29uc3QgcGFyc2VkTGluZXMgPSBwcm9jZXNzQ2h1bmsoY2h1bmspO1xuXG4gICAgICAgICAgZm9yIChjb25zdCBwYXJzZWRMaW5lIG9mIHBhcnNlZExpbmVzKSB7XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0ZWRSZXNwb25zZSA9IHZhbGlkYXRlUmVzcG9uc2UocGFyc2VkTGluZSk7XG5cbiAgICAgICAgICAgIGlmICh2YWxpZGF0ZWRSZXNwb25zZSkge1xuICAgICAgICAgICAgICB5aWVsZCB2YWxpZGF0ZWRSZXNwb25zZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgIGxvZ2dlci5sb2dFcnJvcignRmFpbGVkIHRvIGdldCBuZXh0IHN0cmVhbWluZyByZXNwb25zZXMnLCBlcnJvciwge1xuICAgICAgICAgIHBheWxvYWRDb250ZXh0OiBwYXlsb2FkPy5jb250ZXh0LFxuICAgICAgICAgIHVzZXJFdmVudHM6IHBheWxvYWQ/LnVzZXJFdmVudHMsXG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCB0aHJvd1Nlc3Npb25SZXN0YXJ0UmVxdWlyZWRJZignRmFpbGVkIHRvIGdldCBuZXh0IHN0cmVhbWluZyByZXNwb25zZXMnLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQ29tbWVyY2VBcGlDbGllbnQuZ2V0SW5zdGFuY2UoKS5yZXNwb25zZXNBYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICBDb21tZXJjZUFwaUNsaWVudC5nZXRJbnN0YW5jZSgpLnJlc3BvbnNlc0Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAgIHJldHVybiBnZW5lcmF0ZShcbiAgICAgIENvbW1lcmNlQXBpQ2xpZW50LmdldEluc3RhbmNlKCkuaW5mZXJlbmNlQXBpLFxuICAgICAgQ29tbWVyY2VBcGlDbGllbnQuZ2V0SW5zdGFuY2UoKS5yZXNwb25zZXNBYm9ydENvbnRyb2xsZXIsXG4gICAgKTtcbiAgfTtcblxuICBzdGF0aWMgZ2V0TmV4dFN1Z2dlc3Rpb25zID0gYXN5bmMgKHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCk6IFByb21pc2U8U3VnZ2VzdGlvbltdPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIENvbW1lcmNlQXBpQ2xpZW50LmdldEluc3RhbmNlKCkuc3VnZ2VzdGlvbnNBYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICAgIENvbW1lcmNlQXBpQ2xpZW50LmdldEluc3RhbmNlKCkuc3VnZ2VzdGlvbnNBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgQ29tbWVyY2VBcGlDbGllbnQuZ2V0SW5zdGFuY2UoKS5pbmZlcmVuY2VBcGkudjFOZXh0U3VnZ2VzdGlvbnNQb3N0KFxuICAgICAgICB7XG4gICAgICAgICAgTmV4dE1lc3NhZ2VSZXF1ZXN0OiBtZXNzYWdlUmVxdWVzdFRvQ29tbWVyY2VNZXNzYWdlUmVxdWVzdChwYXlsb2FkKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNpZ25hbDogQ29tbWVyY2VBcGlDbGllbnQuZ2V0SW5zdGFuY2UoKS5zdWdnZXN0aW9uc0Fib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBjb25zdCBzdWdnZXN0aW9ucyA9IHJlc3BvbnNlXG4gICAgICAgIC5tYXAocmVzcCA9PiB2YWxpZGF0ZVN1Z2dlc3Rpb24ocmVzcCkpXG4gICAgICAgIC5maWx0ZXIoKHN1Z2dlc3Rpb24pOiBzdWdnZXN0aW9uIGlzIFN1Z2dlc3Rpb24gPT4gc3VnZ2VzdGlvbiAhPSBudWxsKTtcblxuICAgICAgcmV0dXJuIHN1Z2dlc3Rpb25zO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICBsb2dnZXIubG9nSW5mbygnRmFpbGVkIHRvIGdldCBzdWdnZXN0aW9ucycsIGVycm9yLCB7XG4gICAgICAgIHBheWxvYWRDb250ZXh0OiBwYXlsb2FkPy5jb250ZXh0LFxuICAgICAgICB1c2VyRXZlbnRzOiBwYXlsb2FkPy51c2VyRXZlbnRzLFxuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IHRocm93U2Vzc2lvblJlc3RhcnRSZXF1aXJlZElmKCdGYWlsZWQgdG8gZ2V0IHN1Z2dlc3Rpb25zJywgZXJyb3IpO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgZXhpc3RpbmcgY2hhdCBkYXRhIGZvciBhIGdpdmVuIHNlc3Npb24gYW5kIHRyYW5zZm9ybXMgdGhlbSB0byByZWNvbnN0cnVjdCB0aGUgY2hhdCBoaXN0b3J5LlxuICAgKlxuICAgKiBAcGFyYW0gb3JnSWQgVGhlIG9yZ2FuaXphdGlvbiBJZFxuICAgKiBAcGFyYW0gY2hhdElkIFRoZSBleGlzdGluZyBjaGF0IElkXG4gICAqIEBwYXJhbSB1c2VySWQgVGhlIHVzZXIgSWRcbiAgICpcbiAgICogQHJldHVybnMgQSBsaXN0IG9mIG1lc3NhZ2VzIHRoYXQgd2VyZSBleGNoYW5nZWQgaW4gdGhlIGNoYXQsIHRocm93cyBhbiBlcnJvciBpZiB0aGUgY2hhdCBzZXNzaW9uIGhhcyBleHBpcmVkLlxuICAgKi9cbiAgc3RhdGljIGdldFJlc3BvbnNlcyA9IGFzeW5jIChcbiAgICBvcmdJZDogc3RyaW5nLFxuICAgIGNoYXRJZDogc3RyaW5nLFxuICAgIHVzZXJJZDogc3RyaW5nLFxuICApOiBQcm9taXNlPHtcbiAgICByZXNwb25zZXM6IFJlc3BvbnNlW11bXTtcbiAgICB1c2VyRXZlbnRzOiBVc2VyRXZlbnRbXTtcbiAgICBzdWdnZXN0aW9uczogU3VnZ2VzdGlvbltdO1xuICAgIG1lc3NhZ2VzOiBNZXNzYWdlW11bXTtcbiAgfT4gPT4ge1xuICAgIGxldCBkYXRhOiBWMUdldFNlc3Npb25NZXNzYWdlczIwMFJlc3BvbnNlID0ge1xuICAgICAgcmVzcG9uc2VzOiBbXSxcbiAgICAgIHN1Z2dlc3Rpb25zOiBbXSxcbiAgICAgIHVzZXJfZXZlbnRzOiBbXSxcbiAgICB9O1xuICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICBvcmdfaWQ6IG9yZ0lkLFxuICAgICAgY2hhdF9pZDogY2hhdElkLFxuICAgICAgdXNlcl9pZDogdXNlcklkLFxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIGRhdGEgPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXRJbnN0YW5jZSgpLmRlZmF1bHRBcGkudjFHZXRTZXNzaW9uTWVzc2FnZXMocmVxdWVzdCk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGF3YWl0IHRocm93U2Vzc2lvblJlc3RhcnRSZXF1aXJlZElmKCdGYWlsZWQgdG8gZ2V0IGNoYXQgcmVzcG9uc2VzJywgZXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlczogUmVzcG9uc2VbXVtdID0gZGF0YT8ucmVzcG9uc2VzPy5tYXAodHVybiA9PlxuICAgICAgdHVyblxuICAgICAgICAubWFwKHJlc3BvbnNlID0+IHZhbGlkYXRlUmVzcG9uc2UocmVzcG9uc2UpKVxuICAgICAgICAuZmlsdGVyKChyZXNwb25zZSk6IHJlc3BvbnNlIGlzIFJlc3BvbnNlID0+IHJlc3BvbnNlICE9IG51bGwpLFxuICAgICk7XG5cbiAgICBjb25zdCBzdWdnZXN0aW9uczogU3VnZ2VzdGlvbltdID0gZGF0YT8uc3VnZ2VzdGlvbnNcbiAgICAgIC5tYXAoc3VnZ2VzdGlvbiA9PiB2YWxpZGF0ZVN1Z2dlc3Rpb24oc3VnZ2VzdGlvbikpXG4gICAgICAuZmlsdGVyKChzdWdnZXN0aW9uKTogc3VnZ2VzdGlvbiBpcyBTdWdnZXN0aW9uID0+IHN1Z2dlc3Rpb24gIT0gbnVsbCk7XG5cbiAgICBjb25zdCB1c2VyRXZlbnRzOiBVc2VyRXZlbnRbXSA9IGRhdGE/LnVzZXJfZXZlbnRzXG4gICAgICAubWFwKGV2ZW50ID0+IHZhbGlkYXRlVXNlckV2ZW50KGV2ZW50KSlcbiAgICAgIC5maWx0ZXIoKGV2ZW50KTogZXZlbnQgaXMgVXNlckV2ZW50ID0+IGV2ZW50ICE9IG51bGwpO1xuXG4gICAgLy8gaWYgYSBmb3JtIGhhcyBhbHJlYWR5IGJlZW4gc3VibWl0dGVkLCBkb24ndCBzaG93IGl0IGluIHRoZSBjaGF0IGhpc3RvcnlcbiAgICBjb25zdCBmb3JtU3VibWl0dGVkVXNlckV2ZW50c0Zvcm1JZHMgPSB1c2VyRXZlbnRzXG4gICAgICAuZmlsdGVyKGV2ZW50ID0+IGV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5Gb3JtU3VibWl0dGVkKVxuICAgICAgLm1hcChldmVudCA9PiBldmVudC5hdHRyaWJ1dGVzLmZvcm1SZXNwb25zZUlkKTtcblxuICAgIGNvbnN0IGFzc2lzdGFudE1lc3NhZ2VzOiBNZXNzYWdlW11bXSA9IHJlc3BvbnNlc1xuICAgICAgLm1hcCh0dXJuID0+XG4gICAgICAgIHR1cm5cbiAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgcmVzcG9uc2UgPT5cbiAgICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgICByZXNwb25zZS5jYXRlZ29yeSA9PT0gUmVzcG9uc2VDYXRlZ29yeS5Gb3JtICYmXG4gICAgICAgICAgICAgICAgZm9ybVN1Ym1pdHRlZFVzZXJFdmVudHNGb3JtSWRzLmluY2x1ZGVzKHJlc3BvbnNlLmlkKVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgIClcbiAgICAgICAgICAubWFwKHJlc3BvbnNlID0+IG1lc3NhZ2VGcm9tUmVzcG9uc2UocmVzcG9uc2UpKVxuICAgICAgICAgIC5maWx0ZXIoKG1lc3NhZ2UpOiBtZXNzYWdlIGlzIE1lc3NhZ2UgPT4gbWVzc2FnZSAhPSBudWxsKSxcbiAgICAgIClcbiAgICAgIC5maWx0ZXIodHVybiA9PiB0dXJuLmxlbmd0aCA+IDApO1xuXG4gICAgY29uc3QgdXNlck1lc3NhZ2VzOiBNZXNzYWdlW11bXSA9IHVzZXJFdmVudHNcbiAgICAgIC5tYXAoZXZlbnQgPT4ge1xuICAgICAgICBpZiAoW1VzZXJFdmVudENhdGVnb3J5LlF1ZXJ5VHlwZWQsIFVzZXJFdmVudENhdGVnb3J5LlNlYXJjaF0uaW5jbHVkZXMoZXZlbnQuY2F0ZWdvcnkpKSB7XG4gICAgICAgICAgcmV0dXJuIFttZXNzYWdlRnJvbVF1ZXJ5RXZlbnQoZXZlbnQpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuU3VnZ2VzdGlvbkNsaWNrZWQpIHtcbiAgICAgICAgICByZXR1cm4gW21lc3NhZ2VGcm9tU3VnZ2VzdGlvbkV2ZW50KGV2ZW50LCBzdWdnZXN0aW9ucyldO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5Gb3JtU3VibWl0dGVkKSB7XG4gICAgICAgICAgY29uc3QgZm9ybVJlc3BvbnNlID0gcmVzcG9uc2VzXG4gICAgICAgICAgICAuZmxhdCgpXG4gICAgICAgICAgICAuZmluZChcbiAgICAgICAgICAgICAgcmVzcG9uc2UgPT5cbiAgICAgICAgICAgICAgICByZXNwb25zZS5pZCA9PT0gZXZlbnQuYXR0cmlidXRlcy5mb3JtUmVzcG9uc2VJZCAmJlxuICAgICAgICAgICAgICAgIGV2ZW50LmF0dHJpYnV0ZXMuZm9ybVR5cGUgIT09IEZvcm1UeXBlLkVzY2FsYXRpb24sXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKGZvcm1SZXNwb25zZSAmJiBmb3JtUmVzcG9uc2UuY2F0ZWdvcnkgPT09IFJlc3BvbnNlQ2F0ZWdvcnkuRm9ybSkge1xuICAgICAgICAgICAgcmV0dXJuIFttZXNzYWdlRnJvbUZvcm1TdWJtaXR0ZWRFdmVudChldmVudCwgZm9ybVJlc3BvbnNlLmF0dHJpYnV0ZXMpXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW107XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigobWVzc2FnZSk6IG1lc3NhZ2UgaXMgTWVzc2FnZVtdID0+IG1lc3NhZ2UubGVuZ3RoID4gMCk7XG5cbiAgICAvLyBTb3J0IHRoZSBtZXNzYWdlcyBjaHJvbm9sb2dpY2FsbHkgdG8gcmVjb25zdHJ1Y3QgdGhlIGNoYXQgaGlzdG9yeVxuICAgIGNvbnN0IHNvcnRlZE1lc3NhZ2VzID0gWy4uLmFzc2lzdGFudE1lc3NhZ2VzLCAuLi51c2VyTWVzc2FnZXNdLnNvcnQoXG4gICAgICAoYSwgYikgPT4gbmV3IERhdGUoYVswXS5jcmVhdGVkQXQpLmdldFRpbWUoKSAtIG5ldyBEYXRlKGJbMF0uY3JlYXRlZEF0KS5nZXRUaW1lKCksXG4gICAgKTtcblxuICAgIHJldHVybiB7IHJlc3BvbnNlcywgdXNlckV2ZW50cywgc3VnZ2VzdGlvbnMsIG1lc3NhZ2VzOiBzb3J0ZWRNZXNzYWdlcyB9O1xuICB9O1xuXG4gIHN0YXRpYyBnZXRIYXJkY29weSA9IGFzeW5jIChyZXF1ZXN0OiBXaWRnZXRUZXh0UmVxdWVzdCk6IFByb21pc2U8V2lkZ2V0VGV4dD4gPT4ge1xuICAgIGNvbnN0IGFwaVJlcXVlc3QgPSBjb3JlV2lkZ2V0VGV4dFJlcXVlc3RUb0FwaVJlcXVlc3QocmVxdWVzdCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXRJbnN0YW5jZSgpLmluZmVyZW5jZUFwaS52MVdpZGdldFRleHRQb3N0KHtcbiAgICAgIFdpZGdldFRleHRSZXF1ZXN0OiBhcGlSZXF1ZXN0LFxuICAgIH0pO1xuICAgIHJldHVybiBhcGlXaWRnZXRUZXh0UmVzcG9uc2VUb0NvcmVXaWRnZXRUZXh0KGFwaVJlcXVlc3QsIHJlc3BvbnNlKTtcbiAgfTtcblxuICAvKipcbiAgICogUmV0cmlldmVzIHByb2R1Y3QgZGV0YWlscyBmb3IgdGhlIGdpdmVuIHByb2R1Y3QgSURzIHZpYSBQT1NUIC92MS9wcm9kdWN0cy9yZXRyaWV2ZS5cbiAgICogQnVpbGRzIGNvbnRleHQgZnJvbSB0aGUgY3VycmVudCBhdG9tIHN0b3JlIChvcmcsIHVzZXIsIGNoYXQsIGV0Yy4pIGFuZCByZXR1cm5zXG4gICAqIHByb2R1Y3RzIGluIHRoZSBzaGFwZSBleHBlY3RlZCBieSBQcm9kdWN0UmV0cmlldmFsUmVzdWx0IChjYW1lbENhc2UgYXR0cmlidXRlcykuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9kdWN0SWRzIC0gTGlzdCBvZiBwcm9kdWN0IElEcyB0byByZXRyaWV2ZVxuICAgKiBAcmV0dXJucyBQcm9kdWN0UmV0cmlldmFsUmVzdWx0IHdpdGggcHJvZHVjdHMgYW5kIHRvdGFsUHJvZHVjdENvdW50XG4gICAqL1xuICBzdGF0aWMgcmV0cmlldmVQcm9kdWN0cyA9IGFzeW5jIChwcm9kdWN0SWRzOiBzdHJpbmdbXSk6IFByb21pc2U8UHJvZHVjdFJldHJpZXZhbFJlc3VsdD4gPT4ge1xuICAgIGlmIChwcm9kdWN0SWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHsgcHJvZHVjdHM6IFtdLCB0b3RhbFByb2R1Y3RDb3VudDogMCB9O1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBhdG9tU3RvcmUgPSBnZXRBdG9tU3RvcmUoKTtcbiAgICAgIGNvbnN0IG9yZ1Nob3J0TmFtZSA9IGF0b21TdG9yZS5nZXQob3JnU2hvcnROYW1lQXRvbSk7XG4gICAgICBjb25zdCBvcmdJZCA9IGF0b21TdG9yZS5nZXQob3JnSWRBdG9tKTtcbiAgICAgIGNvbnN0IHVzZXJJZCA9IGF0b21TdG9yZS5nZXQodXNlcklkQXRvbSk7XG4gICAgICBjb25zdCBjaGF0SWQgPSBhdG9tU3RvcmUuZ2V0KGNoYXRJZEF0b20pO1xuICAgICAgY29uc3Qgc291cmNlID0gYXRvbVN0b3JlLmdldChjb250ZXh0U291cmNlQXRvbSk7XG4gICAgICBjb25zdCBlbnYgPSBhdG9tU3RvcmUuZ2V0KGVudkF0b20pO1xuXG4gICAgICBjb25zdCBjb250ZXh0OiBDb250ZXh0ID0ge1xuICAgICAgICB1c2VyX2lkOiB1c2VySWQgPz8gJycsXG4gICAgICAgIG9yZ19pZDogb3JnSWQgPz8gJycsXG4gICAgICAgIG9yZ19zaG9ydF9uYW1lOiBvcmdTaG9ydE5hbWUgPz8gJycsXG4gICAgICAgIGNoYXRfaWQ6IGNoYXRJZCA/PyAnJyxcbiAgICAgICAgc291cmNlOiBzb3VyY2UgPz8gQ29udGV4dFNvdXJjZUVudW0uQXBwLFxuICAgICAgICBlbnY6IChlbnYgYXMgQ29udGV4dEVudkVudW0pID8/IENvbnRleHRFbnZFbnVtLkRldixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgQ29tbWVyY2VBcGlDbGllbnQuZ2V0SW5zdGFuY2UoKS5wcm9kdWN0c0FwaS52MVByb2R1Y3RzUmV0cmlldmVQb3N0KHtcbiAgICAgICAgUHJvZHVjdFJldHJpZXZhbFJlcXVlc3Q6IHtcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIHByb2R1Y3RfaWRzOiBwcm9kdWN0SWRzLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBwcm9kdWN0UmV0cmlldmFsUmVzcG9uc2VUb1Byb2R1Y3RSZXRyaWV2YWxSZXN1bHQocmVzcG9uc2UpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgYXdhaXQgdGhyb3dTZXNzaW9uUmVzdGFydFJlcXVpcmVkSWYoJ0ZhaWxlZCB0byByZXRyaWV2ZSBwcm9kdWN0cycsIGVycik7XG4gICAgICByZXR1cm4geyBwcm9kdWN0czogW10sIHRvdGFsUHJvZHVjdENvdW50OiAwIH07XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gcGF5bG9hZFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgc3RhdGljIGlzU3VwcG9ydGVkRXZlbnQgPSBhc3luYyAocGF5bG9hZDogU3VwcG9ydGVkRXZlbnRSZXF1ZXN0KTogUHJvbWlzZTxTdXBwb3J0ZWRFdmVudD4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByYXdSZXNwb25zZSA9XG4gICAgICAgIGF3YWl0IENvbW1lcmNlQXBpQ2xpZW50LmdldEluc3RhbmNlKCkuaW5mZXJlbmNlQXBpLnYxU3VwcG9ydGVkRXZlbnRQb3N0UmF3KHtcbiAgICAgICAgICBTdXBwb3J0ZWRFdmVudFJlcXVlc3Q6IGNvcmVTdXBwb3J0ZWRFdmVudFJlcXVlc3RUb0FwaVJlcXVlc3QocGF5bG9hZCksXG4gICAgICAgIH0pO1xuXG4gICAgICAvLyBHZXQgdGhlIGFjdHVhbCBIVFRQIHJlc3BvbnNlIEpTT05cbiAgICAgIGNvbnN0IGh0dHBSZXNwb25zZVRleHQgPSBhd2FpdCByYXdSZXNwb25zZS5yYXcudGV4dCgpO1xuICAgICAgY29uc3QgaHR0cFJlc3BvbnNlSnNvbiA9IEpTT04ucGFyc2UoaHR0cFJlc3BvbnNlVGV4dCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmh0dHBSZXNwb25zZUpzb24sXG4gICAgICAgIG51bWJlck9mUmV2aWV3czogaHR0cFJlc3BvbnNlSnNvbi5udW1fb2ZfcmV2aWV3cyxcbiAgICAgICAgbWVyY2hhbnRfdGFnczogaHR0cFJlc3BvbnNlSnNvbi5tZXJjaGFudF90YWdzIHx8IFtdLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci5sb2dFcnJvcignRmFpbGVkIHRvIGdldCByZXNwb25zZSBmb3IgdjFTdXBwb3J0ZWRFdmVudFBvc3QnLCB7XG4gICAgICAgIGVycixcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VwcG9ydGVkOiBmYWxzZSxcbiAgICAgICAgcmVhZHk6IGZhbHNlLFxuICAgICAgICBjYXRlZ29yeTogdW5kZWZpbmVkLFxuICAgICAgICBjb2xsZWN0aW9uczogW10sXG4gICAgICAgIG51bWJlck9mUmV2aWV3czogdW5kZWZpbmVkLFxuICAgICAgICB0b3BfY2F0ZWdvcnk6IHVuZGVmaW5lZCxcbiAgICAgICAgbWVyY2hhbnRfdGFnczogW10sXG4gICAgICB9O1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyBtYXBDb250ZXh0U291cmNlVG9WMU9yZ0NvbmZpZ0dldFNvdXJjZSA9IChcbiAgICBzb3VyY2U6IENvbnRleHRTb3VyY2VFbnVtIHwgdW5kZWZpbmVkLFxuICApOiBWMU9yZ0NvbmZpZ0dldFNvdXJjZUVudW0gfCB1bmRlZmluZWQgPT4ge1xuICAgIGlmIChzb3VyY2UgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBzd2l0Y2ggKHNvdXJjZSkge1xuICAgICAgY2FzZSBDb250ZXh0U291cmNlRW51bS5Gb3JrOlxuICAgICAgICByZXR1cm4gVjFPcmdDb25maWdHZXRTb3VyY2VFbnVtLkZvcms7XG4gICAgICBjYXNlIENvbnRleHRTb3VyY2VFbnVtLlBsYXlncm91bmQ6XG4gICAgICAgIHJldHVybiBWMU9yZ0NvbmZpZ0dldFNvdXJjZUVudW0uUGxheWdyb3VuZDtcbiAgICAgIGNhc2UgQ29udGV4dFNvdXJjZUVudW0uQXBwOlxuICAgICAgICByZXR1cm4gVjFPcmdDb25maWdHZXRTb3VyY2VFbnVtLkFwcDtcbiAgICAgIGNhc2UgQ29udGV4dFNvdXJjZUVudW0uVGVzdDpcbiAgICAgICAgcmV0dXJuIFYxT3JnQ29uZmlnR2V0U291cmNlRW51bS5UZXN0O1xuICAgICAgY2FzZSBDb250ZXh0U291cmNlRW51bS5FdmFsOlxuICAgICAgICByZXR1cm4gVjFPcmdDb25maWdHZXRTb3VyY2VFbnVtLlRlc3Q7XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IGlmIG5ldyB2YWx1ZXMgYXJlIGFkZGVkIHRvIENvbnRleHRTb3VyY2VFbnVtLCB3ZSBjYXRjaCBpdFxuICAgICAgICBjb25zdCBleGhhdXN0aXZlQ2hlY2s6IG5ldmVyID0gc291cmNlO1xuICAgICAgICByZXR1cm4gZXhoYXVzdGl2ZUNoZWNrO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBzdGF0aWMgZ2V0T3JnQ29uZmlnID0gYXN5bmMgKHVzZXJfaWQ6IHN0cmluZyk6IFByb21pc2U8T3JnQ29uZmlnIHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGF0b21TdG9yZSA9IGdldEF0b21TdG9yZSgpO1xuICAgICAgY29uc3QgcmVhY3RBcHBOYW1lID0gYXRvbVN0b3JlLmdldChyZWFjdEFwcE5hbWVBdG9tKTtcbiAgICAgIGNvbnN0IGNvbnRleHRTb3VyY2UgPSBhdG9tU3RvcmUuZ2V0KGNvbnRleHRTb3VyY2VBdG9tKTtcbiAgICAgIGNvbnN0IGZlYXR1cmVGbGFnU2VydmljZSA9IGF0b21TdG9yZS5nZXQoZmVhdHVyZUZsYWdTZXJ2aWNlQXRvbSk7IC8vIEdldCBmZWF0dXJlRmxhZ1NlcnZpY2VcbiAgICAgIGNvbnN0IHJlcXVlc3Q6IFYxT3JnQ29uZmlnR2V0UmVxdWVzdCA9IHtcbiAgICAgICAgbmFtZXNwYWNlOiByZWFjdEFwcE5hbWUsXG4gICAgICAgIHVzZXJfaWQsXG4gICAgICAgIHNvdXJjZTogdGhpcy5tYXBDb250ZXh0U291cmNlVG9WMU9yZ0NvbmZpZ0dldFNvdXJjZShjb250ZXh0U291cmNlKSxcbiAgICAgICAgaW5jbHVkZV9leHBlcmltZW50czogT2JqZWN0LnZhbHVlcyhQcm9kdWN0RXhwZXJpbWVudCksXG4gICAgICAgIGluY2x1ZGVfZmVhdHVyZV9nYXRlczogT2JqZWN0LmVudHJpZXMoXG4gICAgICAgICAgZmVhdHVyZUZsYWdTZXJ2aWNlPy5mZWF0dXJlRmxhZ1NlcnZpY2U/LmdldEZlYXR1cmVGbGFncygpIHx8IHt9LFxuICAgICAgICApXG4gICAgICAgICAgLmZpbHRlcigoWywgaXNFbmFibGVkXSkgPT4gaXNFbmFibGVkKVxuICAgICAgICAgIC5tYXAoKFtmZWF0dXJlR2F0ZU5hbWVdKSA9PiBmZWF0dXJlR2F0ZU5hbWUpLCAvLyBVc2UgZmVhdHVyZUZsYWdTZXJ2aWNlXG4gICAgICB9O1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXRJbnN0YW5jZSgpLmRlZmF1bHRBcGkudjFPcmdDb25maWdHZXQocmVxdWVzdCk7XG5cbiAgICAgIHJldHVybiB2YWxpZGF0ZU9yZ0NvbmZpZ1Jlc3VsdHMocmVzcG9uc2UpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nZ2VyLmxvZ0Vycm9yKGBGYWlsZWQgdG8gZ2V0IG9yZyBjb25maWdgLCBlcnIsIHsgZXJyIH0pO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG5cbiAgc3RhdGljIGFkZE5vdGVUb0xhdGVzdENvbnZlcnNhdGlvbiA9IGFzeW5jIChcbiAgICBzcGlmZnlVc2VySWQ6IHN0cmluZyxcbiAgICBlbWFpbDogc3RyaW5nLFxuICAgIGN1c3RvbWVyU2VydmljZVByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VQcm92aWRlcixcbiAgKSA9PiB7XG4gICAgbG9nZ2VyLmxvZ0luZm8oXG4gICAgICBgYWRkTm90ZVRvTGF0ZXN0Q29udmVyc2F0aW9uIC0gdXNlcl9pZD0ke3NwaWZmeVVzZXJJZH0gZW1haWw9JHtlbWFpbH0gY3VzdG9tZXJfc2VydmljZV9wcm92aWRlcj0ke2N1c3RvbWVyU2VydmljZVByb3ZpZGVyfWAsXG4gICAgKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgQ29tbWVyY2VBcGlDbGllbnQuZ2V0SW5zdGFuY2UoKS5jdXN0b21lclNlcnZpY2VBcGkudjFDdXN0c2VydmljZUFkZE5vdGVUb0xhdGVzdENvbnZlcnNhdGlvblBvc3QoXG4gICAgICAgIHtcbiAgICAgICAgICBBZGROb3RlVG9MYXRlc3RDb252ZXJzYXRpb25SZXF1ZXN0OiB7XG4gICAgICAgICAgICBzcGlmZnlfdXNlcl9pZDogc3BpZmZ5VXNlcklkLFxuICAgICAgICAgICAgZW1haWwsXG4gICAgICAgICAgICBjdXN0b21lcl9zZXJ2aWNlX3Byb3ZpZGVyOiBjdXN0b21lclNlcnZpY2VQcm92aWRlcixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci5sb2dFcnJvcignRmFpbGVkIHRvIGFkZCBub3RlIHRvIGxhdGVzdCBjb252ZXJzYXRpb24nLCB7IGVyciB9KTtcbiAgICB9XG4gIH07XG5cbiAgc3RhdGljIGdldEN1c3RvbWVyU2VydmljZUFwaSA9ICgpID0+IENvbW1lcmNlQXBpQ2xpZW50LmdldEluc3RhbmNlKCkuY3VzdG9tZXJTZXJ2aWNlQXBpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBDb21tZXJjZUFwaUNsaWVudDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0VBLE1BQU0sU0FBUyxJQUFJQSxlQUFPLGVBQWU7QUFFekMsZUFBZSxrQkFBa0IsT0FBc0I7QUFDckQsS0FBSTtBQUNGLFNBQU8sTUFBTSxNQUFNLFNBQVMsTUFBTTtTQUM1QjtBQUNOLFNBQU8sRUFBRTs7O0FBSWIsZUFBZSw4QkFBOEIsVUFBa0IsT0FBZ0I7QUFDN0UsS0FBSSxFQUFFLGlCQUFpQixnQkFBZ0I7QUFDckMsU0FBTyxRQUFRLFVBQVUsTUFBTTtBQUMvQixRQUFNOztDQUdSLE1BQU0sZ0JBQWdCLE1BQU0sa0JBQWtCLE1BQU07QUFDcEQsS0FDRSxlQUFlLFNBQVMsYUFBYSxLQUFLLHlCQUMxQyxlQUFlLFVBQVUsYUFBYSxLQUFLLG9CQUUzQyxPQUFNLElBQUksNkJBQTZCO1VBRXZDLGVBQWUsVUFBVSxhQUFhLEtBQUsscUJBQzNDLGVBQWUsVUFBVSxhQUFhLEtBQUssYUFDM0M7QUFDQSxTQUFPLFFBQ0wsNENBQ0EsT0FDQSxNQUFNLFVBQ04sY0FDRDtBQUNELFFBQU0sSUFBSSx3QkFBd0I7O0FBR3BDLFFBQU8sUUFBUSxVQUFVLE1BQU07QUFDL0IsT0FBTTs7QUFHUixJQUFNLG9CQUFOLE1BQU0sa0JBQWtCOzsyQkFlZ0M7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
|
|
417
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVyY2UtYXBpLmpzIiwibmFtZXMiOlsiTG9nZ2VyIiwiY29uZmlnOiBDb25maWd1cmF0aW9uIiwiY29udGV4dDogQ29udGV4dCIsImVycjogdW5rbm93biIsImVycm9yOiB1bmtub3duIiwiZGF0YTogVjFHZXRTZXNzaW9uTWVzc2FnZXMyMDBSZXNwb25zZSIsInJlc3BvbnNlczogUmVzcG9uc2VbXVtdIiwic3VnZ2VzdGlvbnM6IFN1Z2dlc3Rpb25bXSIsInVzZXJFdmVudHM6IFVzZXJFdmVudFtdIiwiYXNzaXN0YW50TWVzc2FnZXM6IE1lc3NhZ2VbXVtdIiwidXNlck1lc3NhZ2VzOiBNZXNzYWdlW11bXSIsInJlcXVlc3Q6IFYxT3JnQ29uZmlnR2V0UmVxdWVzdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcHBsaWNhdGlvbi9jb21tZXJjZS1hcGkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvbixcbiAgQ29udGV4dEVudkVudW0sXG4gIENvbnRleHRTb3VyY2VFbnVtLFxuICBDdXN0b21lclNlcnZpY2VBcGksXG4gIEN1c3RvbWVyU2VydmljZVByb3ZpZGVyLFxuICBEZWZhdWx0QXBpLFxuICBGb3JtVHlwZSxcbiAgSW5mZXJlbmNlQXBpLFxuICBQcm9kdWN0c0FwaSxcbiAgUmVwb3J0U2Vzc2lvblJlcXVlc3QsXG4gIFJlc3BvbnNlQ2F0ZWdvcnksXG4gIFJlc3BvbnNlRXJyb3IsXG4gIFVzZXJFdmVudENhdGVnb3J5LFxuICBWMUdldFNlc3Npb25NZXNzYWdlczIwMFJlc3BvbnNlLFxuICBWMU9yZ0NvbmZpZ0dldFJlcXVlc3QsXG4gIFYxT3JnQ29uZmlnR2V0U291cmNlRW51bSxcbn0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB0eXBlIHsgQ29udGV4dCB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudC9kaXN0L21vZGVscy9Db250ZXh0JztcbmltcG9ydCB0eXBlIHsgUHJvZHVjdFJldHJpZXZhbFJlc3VsdCB9IGZyb20gJ3NyYy9hdG9tcy9zZWFyY2gvdHlwZXMnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgTWVzc2FnZSxcbiAgTmV4dE1lc3NhZ2VSZXF1ZXN0LFxuICBSZXNwb25zZSxcbiAgU3VnZ2VzdGlvbixcbiAgU3VwcG9ydGVkRXZlbnRSZXF1ZXN0LFxuICBVc2VyRXZlbnQsXG59IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgT3JnQ29uZmlnIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvb3JnQ29uZmlnUmVzdWx0cyc7XG5pbXBvcnQge1xuICBQcm9kdWN0RGV0YWlscyxcbiAgZ2V0UHJvZHVjdE9wdGlvbnNRdWVyeSxcbn0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ncmFwaHFsL3F1ZXJpZXMvZ2V0UHJvZHVjdE9wdGlvbnNRdWVyeSc7XG5pbXBvcnQgeyBQcm9kdWN0RXhwZXJpbWVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvcHJvZHVjdEV4cGVyaW1lbnQnO1xuaW1wb3J0IHsgdmFsaWRhdGVPcmdDb25maWdSZXN1bHRzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy92YWxpZGF0b3JzL3ZhbGlkYXRlT3JnQ29uZmlnUmVzdWx0cyc7XG5pbXBvcnQgeyB2YWxpZGF0ZVJlc3BvbnNlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy92YWxpZGF0b3JzL3ZhbGlkYXRlUmVzcG9uc2UnO1xuaW1wb3J0IHsgdmFsaWRhdGVTdWdnZXN0aW9uIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy92YWxpZGF0b3JzL3ZhbGlkYXRlU3VnZ2VzdGlvbic7XG5pbXBvcnQgeyB2YWxpZGF0ZVVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvdmFsaWRhdG9ycy92YWxpZGF0ZVVzZXJFdmVudCc7XG5pbXBvcnQge1xuICBnZXRRdWVyeVBhcmFtLFxuICBtZXNzYWdlRnJvbUFkZFRvQ2FydEV2ZW50LFxuICBtZXNzYWdlRnJvbVF1ZXJ5RXZlbnQsXG4gIG1lc3NhZ2VGcm9tUmVzcG9uc2UsXG4gIG1lc3NhZ2VGcm9tU3VnZ2VzdGlvbkV2ZW50LFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMnO1xuaW1wb3J0IHsgbWVzc2FnZUZyb21Gb3JtU3VibWl0dGVkRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMvbWVzc2FnZUZyb21Gb3JtU3VibWl0dGVkRXZlbnQnO1xuaW1wb3J0IHsgbWVzc2FnZVJlcXVlc3RUb0NvbW1lcmNlTWVzc2FnZVJlcXVlc3QgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMvbmV4dE1lc3NhZ2VSZXF1ZXN0VG9BcGlSZXF1ZXN0JztcbmltcG9ydCB7IGNvcmVTdXBwb3J0ZWRFdmVudFJlcXVlc3RUb0FwaVJlcXVlc3QgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMvc3VwcG9ydGVkRXZlbnRSZXF1ZXN0VG9BcGlSZXF1ZXN0JztcbmltcG9ydCB7IGNoYXRJZEF0b20sIHVzZXJJZEF0b20gfSBmcm9tICdzcmMvYXRvbXMvYXBwJzsgLy8gSW1wb3J0IHVzZXJJZEF0b20gYW5kIGNoYXRJZEF0b21cbmltcG9ydCB7IFN1cHBvcnRlZEV2ZW50IH0gZnJvbSAnc3JjL2F0b21zL2FwcC92YXJpYW50JztcbmltcG9ydCB7IGdldEF0b21TdG9yZSB9IGZyb20gJ3NyYy9hdG9tcy9hdG9tU3RvcmUvYXRvbVN0b3JlJztcbmltcG9ydCB7IHJlc29sdmVkQmFzZUNvbmZpZ1ZlcnNpb25BdG9tIH0gZnJvbSAnc3JjL2F0b21zL2Vudml2ZS9yZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uJztcbmltcG9ydCB7XG4gIGJhc2VVcmxBdG9tLFxuICBjb250ZXh0U291cmNlQXRvbSxcbiAgZW52QXRvbSxcbiAgb3JnSWRBdG9tLFxuICBvcmdMZXZlbEFwaUtleUF0b20sXG4gIG9yZ1Nob3J0TmFtZUF0b20sXG4gIHJlYWN0QXBwTmFtZUF0b20sIC8vIEltcG9ydCBlbnZBdG9tXG59IGZyb20gJ3NyYy9hdG9tcy9lbnZpdmUvZW52aXZlQ29uZmlnJztcbmltcG9ydCB7IGZlYXR1cmVGbGFnU2VydmljZUF0b20gfSBmcm9tICdzcmMvYXRvbXMvb3JnL2dyYXBocWxDb25maWcnOyAvLyBJbXBvcnQgbmV3IG9yZ0lkQXRvbSBhbmQgZmVhdHVyZUZsYWdTZXJ2aWNlQXRvbVxuaW1wb3J0IHsgU2Vzc2lvblJlc3RhcnRSZXF1aXJlZCB9IGZyb20gJ3NyYy90eXBlcy9leGNlcHRpb25zL3Nlc3Npb25FeGNlcHRpb25zJztcbmltcG9ydCB7IFVuc3VwcG9ydGVkUHJvZHVjdEV4Y2VwdGlvbiB9IGZyb20gJ3NyYy90eXBlcy9leGNlcHRpb25zL3Vuc3VwcG9ydGVkUHJvZHVjdEV4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgV2lkZ2V0VGV4dCB9IGZyb20gJy4vbW9kZWxzL2FwaS93aWRnZXRUZXh0JztcbmltcG9ydCB7IFdpZGdldFRleHRSZXF1ZXN0IH0gZnJvbSAnLi9tb2RlbHMvYXBpL3dpZGdldFRleHRSZXF1ZXN0JztcbmltcG9ydCB7IHByb2R1Y3RSZXRyaWV2YWxSZXNwb25zZVRvUHJvZHVjdFJldHJpZXZhbFJlc3VsdCB9IGZyb20gJy4vdXRpbHMvcHJvZHVjdFJldHJpZXZhbFJlc3BvbnNlVG9Qcm9kdWN0UmV0cmlldmFsUmVzdWx0JztcbmltcG9ydCB7IGFwaVdpZGdldFRleHRSZXNwb25zZVRvQ29yZVdpZGdldFRleHQgfSBmcm9tICcuL3V0aWxzL3dpZGdldFRleHRGcm9tQXBpV2lkZ2V0VGV4dFJlc3BvbnNlJztcbmltcG9ydCB7IGNvcmVXaWRnZXRUZXh0UmVxdWVzdFRvQXBpUmVxdWVzdCB9IGZyb20gJy4vdXRpbHMvd2lkZ2V0VGV4dFJlcXVlc3RUb0FwaVJlcXVlc3QnO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdjb21tZXJjZS1hcGknKTtcblxuYXN5bmMgZnVuY3Rpb24gZXJyb3JSZXNwb25zZUJvZHkoZXJyb3I6IFJlc3BvbnNlRXJyb3IpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgZXJyb3IucmVzcG9uc2UuanNvbigpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4ge307XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gdGhyb3dTZXNzaW9uUmVzdGFydFJlcXVpcmVkSWYoZXJyb3JNc2c6IHN0cmluZywgZXJyb3I6IHVua25vd24pIHtcbiAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBSZXNwb25zZUVycm9yKSkge1xuICAgIGxvZ2dlci5sb2dJbmZvKGVycm9yTXNnLCBlcnJvcik7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cblxuICBjb25zdCBlcnJvclJlc3BvbnNlID0gYXdhaXQgZXJyb3JSZXNwb25zZUJvZHkoZXJyb3IpO1xuICBpZiAoXG4gICAgZXJyb3JSZXNwb25zZT8ubWVzc2FnZT8udG9Mb3dlckNhc2UoKSA9PT0gJ3Vuc3VwcG9ydGVkIHByb2R1Y3QnIHx8IC8vIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBuZXdlciB2ZXJzaW9ucyBvZiB0aGUgQVBJIHJldHVybiBzdWJfY29kZSBpbnN0ZWFkIG9mIG1lc3NhZ2VcbiAgICBlcnJvclJlc3BvbnNlPy5hcHBfY29kZT8udG9VcHBlckNhc2UoKSA9PT0gJ1BST0RVQ1RfTk9UX0ZPVU5EJ1xuICApIHtcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRQcm9kdWN0RXhjZXB0aW9uKCk7XG4gIH0gZWxzZSBpZiAoXG4gICAgZXJyb3JSZXNwb25zZT8uYXBwX2NvZGU/LnRvVXBwZXJDYXNlKCkgPT09ICdSRVNUQVJUX1NFU1NJT04nIHx8XG4gICAgZXJyb3JSZXNwb25zZT8uc3ViX2NvZGU/LnRvVXBwZXJDYXNlKCkgPT09ICdOT1RfRk9VTkQnIC8vIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBuZXcgQVBJIHJlc3BvbnNlcyB3aWxsIGNvbnRhaW4gXCJhcHBfY29kZVwiXG4gICkge1xuICAgIGxvZ2dlci5sb2dJbmZvKFxuICAgICAgJ1Nlc3Npb24gZG9lcyBub3QgZXhpc3QuIFJlLXN0YXJ0IHNlc3Npb24nLFxuICAgICAgZXJyb3IsXG4gICAgICBlcnJvci5yZXNwb25zZSxcbiAgICAgIGVycm9yUmVzcG9uc2UsXG4gICAgKTtcbiAgICB0aHJvdyBuZXcgU2Vzc2lvblJlc3RhcnRSZXF1aXJlZCgpO1xuICB9XG5cbiAgbG9nZ2VyLmxvZ0luZm8oZXJyb3JNc2csIGVycm9yKTtcbiAgdGhyb3cgZXJyb3I7XG59XG5cbmNsYXNzIENvbW1lcmNlQXBpQ2xpZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QXBpOiBEZWZhdWx0QXBpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY3VzdG9tZXJTZXJ2aWNlQXBpOiBDdXN0b21lclNlcnZpY2VBcGk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpbmZlcmVuY2VBcGk6IEluZmVyZW5jZUFwaTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3RzQXBpOiBQcm9kdWN0c0FwaTtcblxuICBwcml2YXRlIHN0YXRpYyBpbnN0YW5jZTogQ29tbWVyY2VBcGlDbGllbnQgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBzdWdnZXN0aW9uc0Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICBwcml2YXRlIHJlc3BvbnNlc0Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICBwcml2YXRlIHN0YXRpYyBnZXRJbnN0YW5jZSA9ICgpOiBDb21tZXJjZUFwaUNsaWVudCA9PiB7XG4gICAgaWYgKCFDb21tZXJjZUFwaUNsaWVudC5pbnN0YW5jZSkge1xuICAgICAgQ29tbWVyY2VBcGlDbGllbnQuaW5zdGFuY2UgPSBuZXcgQ29tbWVyY2VBcGlDbGllbnQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gQ29tbWVyY2VBcGlDbGllbnQuaW5zdGFuY2U7XG4gIH07XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihiYXNlUGF0aD86IHN0cmluZykge1xuICAgIGNvbnN0IGF0b21TdG9yZSA9IGdldEF0b21TdG9yZSgpO1xuICAgIGNvbnN0IGJhc2VVcmwgPSBhdG9tU3RvcmUuZ2V0KGJhc2VVcmxBdG9tKTtcbiAgICBjb25zdCBhcGlLZXkgPSBhdG9tU3RvcmUuZ2V0KG9yZ0xldmVsQXBpS2V5QXRvbSk7XG4gICAgY29uc3QgcGF0aCA9IGJhc2VQYXRoIHx8IGJhc2VVcmw7XG4gICAgLy8gQVBJIEtleSBpcyBub3cgaGFuZGxlZCBhdCB0aGUgRW52aXZlQ29uZmlnUHJvdmlkZXIgbGV2ZWxcbiAgICBjb25zdCBjb25maWc6IENvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbih7XG4gICAgICBhY2Nlc3NUb2tlbjogYXBpS2V5LFxuICAgICAgYmFzZVBhdGg6IHBhdGgsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLmRlZmF1bHRBcGkgPSBuZXcgRGVmYXVsdEFwaShjb25maWcpO1xuICAgIHRoaXMuaW5mZXJlbmNlQXBpID0gbmV3IEluZmVyZW5jZUFwaShjb25maWcpO1xuICAgIHRoaXMuY3VzdG9tZXJTZXJ2aWNlQXBpID0gbmV3IEN1c3RvbWVyU2VydmljZUFwaShjb25maWcpO1xuICAgIHRoaXMucHJvZHVjdHNBcGkgPSBuZXcgUHJvZHVjdHNBcGkoY29uZmlnKTtcbiAgfVxuXG4gIC8vIERlZHVwZXMgY29uY3VycmVudCByZXNvbHV0aW9ucyBvZiB0aGUgc2FtZSBVUkw6IHRoZSBpbmplY3Rpb24gYnVuZGxlXG4gIC8vIHdhcm1zIHRoaXMgY2FsbCBiZWZvcmUgUmVhY3QgbW91bnRzLCBhbmQgUGFnZVByb3ZpZGVyIG1heSByZXF1ZXN0IHRoZVxuICAvLyBzYW1lIFVSTCB3aGlsZSB0aGUgd2FybS11cCBpcyBzdGlsbCBpbiBmbGlnaHQuXG4gIHByaXZhdGUgc3RhdGljIGluRmxpZ2h0VXJsUmVzb2x1dGlvbnMgPSBuZXcgTWFwPHN0cmluZywgUHJvbWlzZTx1bmtub3duPj4oKTtcblxuICBzdGF0aWMgcmVzb2x2ZVVybCA9IGFzeW5jICh1cmw6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGluRmxpZ2h0ID0gQ29tbWVyY2VBcGlDbGllbnQuaW5GbGlnaHRVcmxSZXNvbHV0aW9ucy5nZXQodXJsKTtcbiAgICBpZiAoaW5GbGlnaHQpIHtcbiAgICAgIHJldHVybiBpbkZsaWdodDtcbiAgICB9XG4gICAgY29uc3QgcmVxdWVzdCA9IENvbW1lcmNlQXBpQ2xpZW50LnJlc29sdmVVcmxVbmNhY2hlZCh1cmwpO1xuICAgIENvbW1lcmNlQXBpQ2xpZW50LmluRmxpZ2h0VXJsUmVzb2x1dGlvbnMuc2V0KHVybCwgcmVxdWVzdCk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCByZXF1ZXN0O1xuICAgIH0gZmluYWxseSB7XG4gICAgICBDb21tZXJjZUFwaUNsaWVudC5pbkZsaWdodFVybFJlc29sdXRpb25zLmRlbGV0ZSh1cmwpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZXNvbHZlVXJsVW5jYWNoZWQgPSBhc3luYyAodXJsOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBhdG9tU3RvcmUgPSBnZXRBdG9tU3RvcmUoKTtcbiAgICBjb25zdCBvcmdTaG9ydE5hbWUgPSBhdG9tU3RvcmUuZ2V0KG9yZ1Nob3J0TmFtZUF0b20pO1xuICAgIGNvbnN0IG9yZ0lkID0gYXRvbVN0b3JlLmdldChvcmdJZEF0b20pO1xuICAgIGNvbnN0IHVzZXJJZCA9IGF0b21TdG9yZS5nZXQodXNlcklkQXRvbSk7XG4gICAgY29uc3QgY2hhdElkID0gYXRvbVN0b3JlLmdldChjaGF0SWRBdG9tKTtcbiAgICBjb25zdCBzb3VyY2UgPSBhdG9tU3RvcmUuZ2V0KGNvbnRleHRTb3VyY2VBdG9tKTtcbiAgICBjb25zdCBlbnYgPSBhdG9tU3RvcmUuZ2V0KGVudkF0b20pO1xuXG4gICAgY29uc3QgZmVhdHVyZUZsYWdTZXJ2aWNlID0gYXRvbVN0b3JlLmdldChmZWF0dXJlRmxhZ1NlcnZpY2VBdG9tKTtcblxuICAgIGNvbnN0IGNvbnRleHQ6IENvbnRleHQgPSB7XG4gICAgICB1c2VyX2lkOiB1c2VySWQgPz8gJycsXG4gICAgICBvcmdfaWQ6IG9yZ0lkID8/ICcnLFxuICAgICAgb3JnX3Nob3J0X25hbWU6IG9yZ1Nob3J0TmFtZSA/PyAnJyxcbiAgICAgIGNoYXRfaWQ6IGNoYXRJZCA/PyAnJyxcbiAgICAgIHNvdXJjZTogc291cmNlID8/IENvbnRleHRTb3VyY2VFbnVtLkFwcCxcbiAgICAgIGVudjogKGVudiBhcyBDb250ZXh0RW52RW51bSkgPz8gQ29udGV4dEVudkVudW0uRGV2LCAvLyBDYXN0IGVudiB0byBDb250ZXh0RW52RW51bVxuICAgIH07XG5cbiAgICBjb25zdCBvdmVycmlkZUNvbmZpZ1ZlcnNpb24gPVxuICAgICAgZ2V0UXVlcnlQYXJhbSgnc3BpZmZ5X2NvbmZpZ192ZXJzaW9uJykgfHxcbiAgICAgIGdldFF1ZXJ5UGFyYW0oJ2Vudml2ZV9jb25maWdfdmVyc2lvbicpIHx8XG4gICAgICBnZXRBdG9tU3RvcmUoKS5nZXQocmVzb2x2ZWRCYXNlQ29uZmlnVmVyc2lvbkF0b20pIHx8XG4gICAgICB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBmZWF0dXJlR2F0ZXMgPSBmZWF0dXJlRmxhZ1NlcnZpY2U/LmZlYXR1cmVGbGFnU2VydmljZT8uZ2V0RmVhdHVyZUZsYWdzKCkgfHwge307XG4gICAgY29uc3QgdXJsUmVzb2x2aW5nUmVxdWVzdCA9IHtcbiAgICAgIHVybCxcbiAgICAgIGNvbnRleHQsXG4gICAgICBmZWF0dXJlX2dhdGVzOiBmZWF0dXJlR2F0ZXMsXG4gICAgICBvdmVycmlkZV9jb25maWdfdmVyc2lvbjogb3ZlcnJpZGVDb25maWdWZXJzaW9uLFxuICAgIH07XG5cbiAgICBjb25zdCByYXdSZXNwb25zZSA9IGF3YWl0IENvbW1lcmNlQXBpQ2xpZW50LmdldEluc3RhbmNlKCkuaW5mZXJlbmNlQXBpLnYxVXJsUmVzb2x2aW5nUG9zdFJhdyh7XG4gICAgICBVcmxSZXNvbHZpbmdSZXF1ZXN0OiB1cmxSZXNvbHZpbmdSZXF1ZXN0LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzcG9uc2VCb2R5ID0gYXdhaXQgcmF3UmVzcG9uc2UucmF3Lmpzb24oKTtcblxuICAgIHJldHVybiByZXNwb25zZUJvZHk7XG4gIH07XG5cbiAgc3RhdGljIHJlcG9ydFNlc3Npb24gPSBhc3luYyAocmVwb3J0UmVxdWVzdDogUmVwb3J0U2Vzc2lvblJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXRJbnN0YW5jZSgpLmRlZmF1bHRBcGkudjFDaGF0c1JlcG9ydFNlc3Npb25JZFBvc3Qoe1xuICAgICAgUmVwb3J0U2Vzc2lvblJlcXVlc3Q6IHJlcG9ydFJlcXVlc3QsXG4gICAgfSk7XG4gIH07XG5cbiAgc3RhdGljIGdldE5leHRSZXNwb25zZXMgPSBhc3luYyAocGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0KTogUHJvbWlzZTxNZXNzYWdlW10+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXRJbnN0YW5jZSgpLmluZmVyZW5jZUFwaS52MU5leHRSZXNwb25zZXNQb3N0KHtcbiAgICAgICAgTmV4dE1lc3NhZ2VSZXF1ZXN0OiBtZXNzYWdlUmVxdWVzdFRvQ29tbWVyY2VNZXNzYWdlUmVxdWVzdChwYXlsb2FkKSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgbWVzc2FnZXMgPSByZXNwb25zZVxuICAgICAgICAubWFwKHJlc3AgPT4gdmFsaWRhdGVSZXNwb25zZShyZXNwKSlcbiAgICAgICAgLm1hcChyZXNwID0+IG1lc3NhZ2VGcm9tUmVzcG9uc2UocmVzcCkpO1xuXG4gICAgICByZXR1cm4gbWVzc2FnZXMuZmlsdGVyKChtKTogbSBpcyBNZXNzYWdlID0+IG0gIT0gbnVsbCk7XG4gICAgfSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG4gICAgICBsb2dnZXIubG9nSW5mbygnRmFpbGVkIHRvIGdldCBuZXh0IHJlc3BvbnNlcycsIGVyciwge1xuICAgICAgICBwYXlsb2FkQ29udGV4dDogcGF5bG9hZD8uY29udGV4dCxcbiAgICAgICAgdXNlckV2ZW50czogcGF5bG9hZD8udXNlckV2ZW50cyxcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgdGhyb3dTZXNzaW9uUmVzdGFydFJlcXVpcmVkSWYoJ0ZhaWxlZCB0byBnZXQgbmV4dCByZXNwb25zZXMnLCBlcnIpO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfTtcblxuICBzdGF0aWMgZ2V0TmV4dFJlc3BvbnNlU3RyZWFtaW5nID0gKFxuICAgIHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCxcbiAgKTogQXN5bmNHZW5lcmF0b3I8UmVzcG9uc2UsIHZvaWQsIHVua25vd24+ID0+IHtcbiAgICBhc3luYyBmdW5jdGlvbiogZ2VuZXJhdGUoaW5mZXJlbmNlQXBpOiBJbmZlcmVuY2VBcGksIGFib3J0Q29udHJvbGxlcjogQWJvcnRDb250cm9sbGVyKSB7XG4gICAgICAvLyBtYWtlIHN1cmUgc3RyZWFtaW5nIGlzIGVuYWJsZWRcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgaW5mZXJlbmNlQXBpLnYxTmV4dFJlc3BvbnNlc1Bvc3RSYXcoXG4gICAgICAgICAge1xuICAgICAgICAgICAgTmV4dE1lc3NhZ2VSZXF1ZXN0OiBtZXNzYWdlUmVxdWVzdFRvQ29tbWVyY2VNZXNzYWdlUmVxdWVzdChwYXlsb2FkKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gUmVhZCB0aGUgcmVzcG9uc2UgYXMgYSBzdHJlYW0gb2YgZGF0YVxuICAgICAgICBpZiAoIXJlc3BvbnNlLnJhdy5ib2R5KSB7XG4gICAgICAgICAgbG9nZ2VyLmxvZ0Vycm9yKCdObyBib2R5IGluIHRoZSBzdHJlYW1lZCByZXNwb25zZScsIHVuZGVmaW5lZCwge1xuICAgICAgICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlLnJhdyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZWFkZXIgPSByZXNwb25zZS5yYXcuYm9keS5nZXRSZWFkZXIoKTtcbiAgICAgICAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigndXRmLTgnKTtcblxuICAgICAgICBsZXQgcGFydGlhbCA9ICcnO1xuICAgICAgICAvLyBUT0RPIHRoaXMgZnVuY3Rpb24gaXMgcmVjcmVhdGVkIGV2ZXJ5IHRpbWUgbmV3IGRhdGEgY29tZXMgZnJvbSB0aGUgc3RyZWFtIC0gZGVmaW5lIGl0IG91dHNpZGUgb2YgdGhlIGdlbmVyYXRvclxuICAgICAgICBjb25zdCBzYWZlUGFyc2UgPSAobGluZTogc3RyaW5nKTogdW5rbm93biA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGxpbmUpOyAvLyBQYXJzZSB0aGUgSlNPTiBzdHJpbmdcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGxvZ2dlci5sb2dFcnJvcignRXJyb3IgcGFyc2luZyBzdHJlYW1lZCBsaW5lJywgZXJyLCB7XG4gICAgICAgICAgICAgIGxpbmUsXG4gICAgICAgICAgICAgIHBhcnRpYWwsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIHN3YWxsb3cgdGhlIGVycm9yIGFuZCBzZXQgdGhlIHBhcnRpYWwgdG8gb3VyIGN1cnJlbnQgY2h1bmtcbiAgICAgICAgICAgIHBhcnRpYWwgPSBsaW5lO1xuICAgICAgICAgICAgcmV0dXJuIHBhcnRpYWw7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIFRPRE8gdGhpcyBmdW5jdGlvbiBpcyByZWNyZWF0ZWQgZXZlcnkgdGltZSBuZXcgZGF0YSBjb21lcyBmcm9tIHRoZSBzdHJlYW0gLSBkZWZpbmUgaXQgb3V0c2lkZSBvZiB0aGUgZ2VuZXJhdG9yXG4gICAgICAgIGNvbnN0IHByb2Nlc3NDaHVuayA9IChjaHVuazogc3RyaW5nKTogdW5rbm93bltdID0+IHtcbiAgICAgICAgICAvLyBtZXJnZSB0aGUgcGFydGlhbCB3aXRoIHRoZSBpbmNvbWluZyBjaHVua1xuICAgICAgICAgIGNvbnN0IGxpbmVzID0gYCR7cGFydGlhbH0ke2NodW5rfWAuc3BsaXQoJ1xcbicpO1xuXG4gICAgICAgICAgY29uc3QgcGFyc2VkTGluZXMgPSBsaW5lc1xuICAgICAgICAgICAgLm1hcChsaW5lID0+IGxpbmUucmVwbGFjZSgvXmRhdGE6IC8sICcnKS50cmltKCkpIC8vIFJlbW92ZSB0aGUgXCJkYXRhOiBcIiBwcmVmaXhcbiAgICAgICAgICAgIC5maWx0ZXIobGluZSA9PiBsaW5lICE9PSAnJyAmJiBsaW5lICE9PSAnW0RPTkVdJykgLy8gUmVtb3ZlIGVtcHR5IGxpbmVzIGFuZCBcIltET05FXVwiXG4gICAgICAgICAgICAubWFwKHNhZmVQYXJzZSlcbiAgICAgICAgICAgIC5maWx0ZXIodiA9PiB2KTsgLy8gYW5kIGZpbHRlciBvdXQgdGhlIHVuZGVmaW5lZCB2YWx1ZXNcbiAgICAgICAgICByZXR1cm4gcGFyc2VkTGluZXM7XG4gICAgICAgIH07XG5cbiAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgICAgICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XG5cbiAgICAgICAgICBpZiAoZG9uZSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gTWFzc2FnZSBhbmQgcGFyc2UgdGhlIGNodW5rIG9mIGRhdGFcbiAgICAgICAgICBjb25zdCBjaHVuayA9IGRlY29kZXIuZGVjb2RlKHZhbHVlKTtcbiAgICAgICAgICBjb25zdCBwYXJzZWRMaW5lcyA9IHByb2Nlc3NDaHVuayhjaHVuayk7XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IHBhcnNlZExpbmUgb2YgcGFyc2VkTGluZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRlZFJlc3BvbnNlID0gdmFsaWRhdGVSZXNwb25zZShwYXJzZWRMaW5lKTtcblxuICAgICAgICAgICAgaWYgKHZhbGlkYXRlZFJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgIHlpZWxkIHZhbGlkYXRlZFJlc3BvbnNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgbG9nZ2VyLmxvZ0Vycm9yKCdGYWlsZWQgdG8gZ2V0IG5leHQgc3RyZWFtaW5nIHJlc3BvbnNlcycsIGVycm9yLCB7XG4gICAgICAgICAgcGF5bG9hZENvbnRleHQ6IHBheWxvYWQ/LmNvbnRleHQsXG4gICAgICAgICAgdXNlckV2ZW50czogcGF5bG9hZD8udXNlckV2ZW50cyxcbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IHRocm93U2Vzc2lvblJlc3RhcnRSZXF1aXJlZElmKCdGYWlsZWQgdG8gZ2V0IG5leHQgc3RyZWFtaW5nIHJlc3BvbnNlcycsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBDb21tZXJjZUFwaUNsaWVudC5nZXRJbnN0YW5jZSgpLnJlc3BvbnNlc0Fib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIENvbW1lcmNlQXBpQ2xpZW50LmdldEluc3RhbmNlKCkucmVzcG9uc2VzQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgcmV0dXJuIGdlbmVyYXRlKFxuICAgICAgQ29tbWVyY2VBcGlDbGllbnQuZ2V0SW5zdGFuY2UoKS5pbmZlcmVuY2VBcGksXG4gICAgICBDb21tZXJjZUFwaUNsaWVudC5nZXRJbnN0YW5jZSgpLnJlc3BvbnNlc0Fib3J0Q29udHJvbGxlcixcbiAgICApO1xuICB9O1xuXG4gIHN0YXRpYyBnZXROZXh0U3VnZ2VzdGlvbnMgPSBhc3luYyAocGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0KTogUHJvbWlzZTxTdWdnZXN0aW9uW10+ID0+IHtcbiAgICB0cnkge1xuICAgICAgQ29tbWVyY2VBcGlDbGllbnQuZ2V0SW5zdGFuY2UoKS5zdWdnZXN0aW9uc0Fib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgICAgQ29tbWVyY2VBcGlDbGllbnQuZ2V0SW5zdGFuY2UoKS5zdWdnZXN0aW9uc0Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXRJbnN0YW5jZSgpLmluZmVyZW5jZUFwaS52MU5leHRTdWdnZXN0aW9uc1Bvc3QoXG4gICAgICAgIHtcbiAgICAgICAgICBOZXh0TWVzc2FnZVJlcXVlc3Q6IG1lc3NhZ2VSZXF1ZXN0VG9Db21tZXJjZU1lc3NhZ2VSZXF1ZXN0KHBheWxvYWQpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2lnbmFsOiBDb21tZXJjZUFwaUNsaWVudC5nZXRJbnN0YW5jZSgpLnN1Z2dlc3Rpb25zQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHN1Z2dlc3Rpb25zID0gcmVzcG9uc2VcbiAgICAgICAgLm1hcChyZXNwID0+IHZhbGlkYXRlU3VnZ2VzdGlvbihyZXNwKSlcbiAgICAgICAgLmZpbHRlcigoc3VnZ2VzdGlvbik6IHN1Z2dlc3Rpb24gaXMgU3VnZ2VzdGlvbiA9PiBzdWdnZXN0aW9uICE9IG51bGwpO1xuXG4gICAgICByZXR1cm4gc3VnZ2VzdGlvbnM7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGxvZ2dlci5sb2dJbmZvKCdGYWlsZWQgdG8gZ2V0IHN1Z2dlc3Rpb25zJywgZXJyb3IsIHtcbiAgICAgICAgcGF5bG9hZENvbnRleHQ6IHBheWxvYWQ/LmNvbnRleHQsXG4gICAgICAgIHVzZXJFdmVudHM6IHBheWxvYWQ/LnVzZXJFdmVudHMsXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgdGhyb3dTZXNzaW9uUmVzdGFydFJlcXVpcmVkSWYoJ0ZhaWxlZCB0byBnZXQgc3VnZ2VzdGlvbnMnLCBlcnJvcik7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSBleGlzdGluZyBjaGF0IGRhdGEgZm9yIGEgZ2l2ZW4gc2Vzc2lvbiBhbmQgdHJhbnNmb3JtcyB0aGVtIHRvIHJlY29uc3RydWN0IHRoZSBjaGF0IGhpc3RvcnkuXG4gICAqXG4gICAqIEBwYXJhbSBvcmdJZCBUaGUgb3JnYW5pemF0aW9uIElkXG4gICAqIEBwYXJhbSBjaGF0SWQgVGhlIGV4aXN0aW5nIGNoYXQgSWRcbiAgICogQHBhcmFtIHVzZXJJZCBUaGUgdXNlciBJZFxuICAgKlxuICAgKiBAcmV0dXJucyBBIGxpc3Qgb2YgbWVzc2FnZXMgdGhhdCB3ZXJlIGV4Y2hhbmdlZCBpbiB0aGUgY2hhdCwgdGhyb3dzIGFuIGVycm9yIGlmIHRoZSBjaGF0IHNlc3Npb24gaGFzIGV4cGlyZWQuXG4gICAqL1xuICBzdGF0aWMgZ2V0UmVzcG9uc2VzID0gYXN5bmMgKFxuICAgIG9yZ0lkOiBzdHJpbmcsXG4gICAgY2hhdElkOiBzdHJpbmcsXG4gICAgdXNlcklkOiBzdHJpbmcsXG4gICk6IFByb21pc2U8e1xuICAgIHJlc3BvbnNlczogUmVzcG9uc2VbXVtdO1xuICAgIHVzZXJFdmVudHM6IFVzZXJFdmVudFtdO1xuICAgIHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW107XG4gICAgbWVzc2FnZXM6IE1lc3NhZ2VbXVtdO1xuICB9PiA9PiB7XG4gICAgbGV0IGRhdGE6IFYxR2V0U2Vzc2lvbk1lc3NhZ2VzMjAwUmVzcG9uc2UgPSB7XG4gICAgICByZXNwb25zZXM6IFtdLFxuICAgICAgc3VnZ2VzdGlvbnM6IFtdLFxuICAgICAgdXNlcl9ldmVudHM6IFtdLFxuICAgIH07XG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgIG9yZ19pZDogb3JnSWQsXG4gICAgICBjaGF0X2lkOiBjaGF0SWQsXG4gICAgICB1c2VyX2lkOiB1c2VySWQsXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgZGF0YSA9IGF3YWl0IENvbW1lcmNlQXBpQ2xpZW50LmdldEluc3RhbmNlKCkuZGVmYXVsdEFwaS52MUdldFNlc3Npb25NZXNzYWdlcyhyZXF1ZXN0KTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgYXdhaXQgdGhyb3dTZXNzaW9uUmVzdGFydFJlcXVpcmVkSWYoJ0ZhaWxlZCB0byBnZXQgY2hhdCByZXNwb25zZXMnLCBlcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzcG9uc2VzOiBSZXNwb25zZVtdW10gPSBkYXRhPy5yZXNwb25zZXM/Lm1hcCh0dXJuID0+XG4gICAgICB0dXJuXG4gICAgICAgIC5tYXAocmVzcG9uc2UgPT4gdmFsaWRhdGVSZXNwb25zZShyZXNwb25zZSkpXG4gICAgICAgIC5maWx0ZXIoKHJlc3BvbnNlKTogcmVzcG9uc2UgaXMgUmVzcG9uc2UgPT4gcmVzcG9uc2UgIT0gbnVsbCksXG4gICAgKTtcblxuICAgIGNvbnN0IHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW10gPSBkYXRhPy5zdWdnZXN0aW9uc1xuICAgICAgLm1hcChzdWdnZXN0aW9uID0+IHZhbGlkYXRlU3VnZ2VzdGlvbihzdWdnZXN0aW9uKSlcbiAgICAgIC5maWx0ZXIoKHN1Z2dlc3Rpb24pOiBzdWdnZXN0aW9uIGlzIFN1Z2dlc3Rpb24gPT4gc3VnZ2VzdGlvbiAhPSBudWxsKTtcblxuICAgIGNvbnN0IHVzZXJFdmVudHM6IFVzZXJFdmVudFtdID0gZGF0YT8udXNlcl9ldmVudHNcbiAgICAgIC5tYXAoZXZlbnQgPT4gdmFsaWRhdGVVc2VyRXZlbnQoZXZlbnQpKVxuICAgICAgLmZpbHRlcigoZXZlbnQpOiBldmVudCBpcyBVc2VyRXZlbnQgPT4gZXZlbnQgIT0gbnVsbCk7XG5cbiAgICAvLyBpZiBhIGZvcm0gaGFzIGFscmVhZHkgYmVlbiBzdWJtaXR0ZWQsIGRvbid0IHNob3cgaXQgaW4gdGhlIGNoYXQgaGlzdG9yeVxuICAgIGNvbnN0IGZvcm1TdWJtaXR0ZWRVc2VyRXZlbnRzRm9ybUlkcyA9IHVzZXJFdmVudHNcbiAgICAgIC5maWx0ZXIoZXZlbnQgPT4gZXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LkZvcm1TdWJtaXR0ZWQpXG4gICAgICAubWFwKGV2ZW50ID0+IGV2ZW50LmF0dHJpYnV0ZXMuZm9ybVJlc3BvbnNlSWQpO1xuXG4gICAgY29uc3QgYXNzaXN0YW50TWVzc2FnZXM6IE1lc3NhZ2VbXVtdID0gcmVzcG9uc2VzXG4gICAgICAubWFwKHR1cm4gPT5cbiAgICAgICAgdHVyblxuICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICByZXNwb25zZSA9PlxuICAgICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLmNhdGVnb3J5ID09PSBSZXNwb25zZUNhdGVnb3J5LkZvcm0gJiZcbiAgICAgICAgICAgICAgICBmb3JtU3VibWl0dGVkVXNlckV2ZW50c0Zvcm1JZHMuaW5jbHVkZXMocmVzcG9uc2UuaWQpXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5tYXAocmVzcG9uc2UgPT4gbWVzc2FnZUZyb21SZXNwb25zZShyZXNwb25zZSkpXG4gICAgICAgICAgLmZpbHRlcigobWVzc2FnZSk6IG1lc3NhZ2UgaXMgTWVzc2FnZSA9PiBtZXNzYWdlICE9IG51bGwpLFxuICAgICAgKVxuICAgICAgLmZpbHRlcih0dXJuID0+IHR1cm4ubGVuZ3RoID4gMCk7XG5cbiAgICBjb25zdCB1c2VyTWVzc2FnZXM6IE1lc3NhZ2VbXVtdID0gKFxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIHVzZXJFdmVudHMubWFwKGFzeW5jIGV2ZW50ID0+IHtcbiAgICAgICAgICBpZiAoW1VzZXJFdmVudENhdGVnb3J5LlF1ZXJ5VHlwZWQsIFVzZXJFdmVudENhdGVnb3J5LlNlYXJjaF0uaW5jbHVkZXMoZXZlbnQuY2F0ZWdvcnkpKSB7XG4gICAgICAgICAgICByZXR1cm4gW21lc3NhZ2VGcm9tUXVlcnlFdmVudChldmVudCldO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChldmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuU3VnZ2VzdGlvbkNsaWNrZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBbbWVzc2FnZUZyb21TdWdnZXN0aW9uRXZlbnQoZXZlbnQsIHN1Z2dlc3Rpb25zKV07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5BZGRUb0NhcnQpIHtcbiAgICAgICAgICAgIC8vIEhpc3RvcmljYWwgZXZlbnRzIG5ldmVyIGNhcnJpZWQgYSBjbGllbnQtbG9jYWwgcHJvZHVjdFRpdGxlIChpdCdzXG4gICAgICAgICAgICAvLyBkcm9wcGVkIGJlZm9yZSBoaXR0aW5nIHRoZSBiYWNrZW5kKSwgc28gcmVzb2x2ZSBpdCBoZXJlOiBmaXJzdCBmb3JcbiAgICAgICAgICAgIC8vIGZyZWUgZnJvbSBhIG1hdGNoaW5nIFByb2R1Y3QgcmVzcG9uc2UgYWxyZWFkeSBmZXRjaGVkIGFib3ZlLCB0aGVuXG4gICAgICAgICAgICAvLyBhcyBhIGZhbGxiYWNrIHZpYSB0aGUgY2FjaGVkIHByb2R1Y3QtZGV0YWlscyBjYWxsLlxuICAgICAgICAgICAgY29uc3QgbWF0Y2hlZFByb2R1Y3QgPSByZXNwb25zZXNcbiAgICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgICAuZmluZChcbiAgICAgICAgICAgICAgICByZXNwb25zZSA9PlxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuY2F0ZWdvcnkgPT09IFJlc3BvbnNlQ2F0ZWdvcnkuUHJvZHVjdCAmJlxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuYXR0cmlidXRlcy5pZCA9PT0gZXZlbnQuYXR0cmlidXRlcy5wcm9kdWN0SWQsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBsZXQgcHJvZHVjdFRpdGxlID1cbiAgICAgICAgICAgICAgbWF0Y2hlZFByb2R1Y3Q/LmNhdGVnb3J5ID09PSBSZXNwb25zZUNhdGVnb3J5LlByb2R1Y3RcbiAgICAgICAgICAgICAgICA/IG1hdGNoZWRQcm9kdWN0LmF0dHJpYnV0ZXMudGl0bGVcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmICghcHJvZHVjdFRpdGxlKSB7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGV0YWlscyA9IGF3YWl0IENvbW1lcmNlQXBpQ2xpZW50LnJldHJpZXZlUHJvZHVjdERldGFpbHMoXG4gICAgICAgICAgICAgICAgICBldmVudC5hdHRyaWJ1dGVzLnByb2R1Y3RJZCxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHByb2R1Y3RUaXRsZSA9IGRldGFpbHM/LnRpdGxlO1xuICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICBwcm9kdWN0VGl0bGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBbbWVzc2FnZUZyb21BZGRUb0NhcnRFdmVudChldmVudCwgcHJvZHVjdFRpdGxlKV07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5Gb3JtU3VibWl0dGVkKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtUmVzcG9uc2UgPSByZXNwb25zZXNcbiAgICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgICAuZmluZChcbiAgICAgICAgICAgICAgICByZXNwb25zZSA9PlxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuaWQgPT09IGV2ZW50LmF0dHJpYnV0ZXMuZm9ybVJlc3BvbnNlSWQgJiZcbiAgICAgICAgICAgICAgICAgIGV2ZW50LmF0dHJpYnV0ZXMuZm9ybVR5cGUgIT09IEZvcm1UeXBlLkVzY2FsYXRpb24sXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChmb3JtUmVzcG9uc2UgJiYgZm9ybVJlc3BvbnNlLmNhdGVnb3J5ID09PSBSZXNwb25zZUNhdGVnb3J5LkZvcm0pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIFttZXNzYWdlRnJvbUZvcm1TdWJtaXR0ZWRFdmVudChldmVudCwgZm9ybVJlc3BvbnNlLmF0dHJpYnV0ZXMpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICkuZmlsdGVyKChtZXNzYWdlKTogbWVzc2FnZSBpcyBNZXNzYWdlW10gPT4gbWVzc2FnZS5sZW5ndGggPiAwKTtcblxuICAgIC8vIFNvcnQgdGhlIG1lc3NhZ2VzIGNocm9ub2xvZ2ljYWxseSB0byByZWNvbnN0cnVjdCB0aGUgY2hhdCBoaXN0b3J5XG4gICAgY29uc3Qgc29ydGVkTWVzc2FnZXMgPSBbLi4uYXNzaXN0YW50TWVzc2FnZXMsIC4uLnVzZXJNZXNzYWdlc10uc29ydChcbiAgICAgIChhLCBiKSA9PiBuZXcgRGF0ZShhWzBdLmNyZWF0ZWRBdCkuZ2V0VGltZSgpIC0gbmV3IERhdGUoYlswXS5jcmVhdGVkQXQpLmdldFRpbWUoKSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHsgcmVzcG9uc2VzLCB1c2VyRXZlbnRzLCBzdWdnZXN0aW9ucywgbWVzc2FnZXM6IHNvcnRlZE1lc3NhZ2VzIH07XG4gIH07XG5cbiAgc3RhdGljIGdldEhhcmRjb3B5ID0gYXN5bmMgKHJlcXVlc3Q6IFdpZGdldFRleHRSZXF1ZXN0KTogUHJvbWlzZTxXaWRnZXRUZXh0PiA9PiB7XG4gICAgY29uc3QgYXBpUmVxdWVzdCA9IGNvcmVXaWRnZXRUZXh0UmVxdWVzdFRvQXBpUmVxdWVzdChyZXF1ZXN0KTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IENvbW1lcmNlQXBpQ2xpZW50LmdldEluc3RhbmNlKCkuaW5mZXJlbmNlQXBpLnYxV2lkZ2V0VGV4dFBvc3Qoe1xuICAgICAgV2lkZ2V0VGV4dFJlcXVlc3Q6IGFwaVJlcXVlc3QsXG4gICAgfSk7XG4gICAgcmV0dXJuIGFwaVdpZGdldFRleHRSZXNwb25zZVRvQ29yZVdpZGdldFRleHQoYXBpUmVxdWVzdCwgcmVzcG9uc2UpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgcHJvZHVjdCBkZXRhaWxzIGZvciB0aGUgZ2l2ZW4gcHJvZHVjdCBJRHMgdmlhIFBPU1QgL3YxL3Byb2R1Y3RzL3JldHJpZXZlLlxuICAgKiBCdWlsZHMgY29udGV4dCBmcm9tIHRoZSBjdXJyZW50IGF0b20gc3RvcmUgKG9yZywgdXNlciwgY2hhdCwgZXRjLikgYW5kIHJldHVybnNcbiAgICogcHJvZHVjdHMgaW4gdGhlIHNoYXBlIGV4cGVjdGVkIGJ5IFByb2R1Y3RSZXRyaWV2YWxSZXN1bHQgKGNhbWVsQ2FzZSBhdHRyaWJ1dGVzKS5cbiAgICpcbiAgICogQHBhcmFtIHByb2R1Y3RJZHMgLSBMaXN0IG9mIHByb2R1Y3QgSURzIHRvIHJldHJpZXZlXG4gICAqIEByZXR1cm5zIFByb2R1Y3RSZXRyaWV2YWxSZXN1bHQgd2l0aCBwcm9kdWN0cyBhbmQgdG90YWxQcm9kdWN0Q291bnRcbiAgICovXG4gIHN0YXRpYyByZXRyaWV2ZVByb2R1Y3RzID0gYXN5bmMgKHByb2R1Y3RJZHM6IHN0cmluZ1tdKTogUHJvbWlzZTxQcm9kdWN0UmV0cmlldmFsUmVzdWx0PiA9PiB7XG4gICAgaWYgKHByb2R1Y3RJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4geyBwcm9kdWN0czogW10sIHRvdGFsUHJvZHVjdENvdW50OiAwIH07XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGF0b21TdG9yZSA9IGdldEF0b21TdG9yZSgpO1xuICAgICAgY29uc3Qgb3JnU2hvcnROYW1lID0gYXRvbVN0b3JlLmdldChvcmdTaG9ydE5hbWVBdG9tKTtcbiAgICAgIGNvbnN0IG9yZ0lkID0gYXRvbVN0b3JlLmdldChvcmdJZEF0b20pO1xuICAgICAgY29uc3QgdXNlcklkID0gYXRvbVN0b3JlLmdldCh1c2VySWRBdG9tKTtcbiAgICAgIGNvbnN0IGNoYXRJZCA9IGF0b21TdG9yZS5nZXQoY2hhdElkQXRvbSk7XG4gICAgICBjb25zdCBzb3VyY2UgPSBhdG9tU3RvcmUuZ2V0KGNvbnRleHRTb3VyY2VBdG9tKTtcbiAgICAgIGNvbnN0IGVudiA9IGF0b21TdG9yZS5nZXQoZW52QXRvbSk7XG5cbiAgICAgIGNvbnN0IGNvbnRleHQ6IENvbnRleHQgPSB7XG4gICAgICAgIHVzZXJfaWQ6IHVzZXJJZCA/PyAnJyxcbiAgICAgICAgb3JnX2lkOiBvcmdJZCA/PyAnJyxcbiAgICAgICAgb3JnX3Nob3J0X25hbWU6IG9yZ1Nob3J0TmFtZSA/PyAnJyxcbiAgICAgICAgY2hhdF9pZDogY2hhdElkID8/ICcnLFxuICAgICAgICBzb3VyY2U6IHNvdXJjZSA/PyBDb250ZXh0U291cmNlRW51bS5BcHAsXG4gICAgICAgIGVudjogKGVudiBhcyBDb250ZXh0RW52RW51bSkgPz8gQ29udGV4dEVudkVudW0uRGV2LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXRJbnN0YW5jZSgpLnByb2R1Y3RzQXBpLnYxUHJvZHVjdHNSZXRyaWV2ZVBvc3Qoe1xuICAgICAgICBQcm9kdWN0UmV0cmlldmFsUmVxdWVzdDoge1xuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgcHJvZHVjdF9pZHM6IHByb2R1Y3RJZHMsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHByb2R1Y3RSZXRyaWV2YWxSZXNwb25zZVRvUHJvZHVjdFJldHJpZXZhbFJlc3VsdChyZXNwb25zZSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBhd2FpdCB0aHJvd1Nlc3Npb25SZXN0YXJ0UmVxdWlyZWRJZignRmFpbGVkIHRvIHJldHJpZXZlIHByb2R1Y3RzJywgZXJyKTtcbiAgICAgIHJldHVybiB7IHByb2R1Y3RzOiBbXSwgdG90YWxQcm9kdWN0Q291bnQ6IDAgfTtcbiAgICB9XG4gIH07XG5cbiAgLy8gQ2FjaGVzIHJlc29sdmVkIHByb2R1Y3QgZGV0YWlscyBieSBwcm9kdWN0SWQgZm9yIHRoZSBsaWZldGltZSBvZiB0aGVcbiAgLy8gc2Vzc2lvbjogdmFyaWFudCBzZWxlY3Rpb24sIHRoZSBkaXNwbGF5IG9mIHRoZSBhZGQtdG8tY2FydCBjaGF0IG1lc3NhZ2UsXG4gIC8vIGFuZCB1c2VQcm9kdWN0RGV0YWlscyBhbGwgcmVzb2x2ZSB0aGUgc2FtZSBwcm9kdWN0IHJlcGVhdGVkbHkuIEZhaWxlZFxuICAvLyByZXF1ZXN0cyBhcmUgZXZpY3RlZCBzbyBhIGxhdGVyIGNhbGwgY2FuIHJldHJ5LlxuICBwcml2YXRlIHN0YXRpYyBwcm9kdWN0RGV0YWlsc0NhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFByb21pc2U8UHJvZHVjdERldGFpbHMgfCB1bmRlZmluZWQ+PigpO1xuXG4gIHN0YXRpYyByZXRyaWV2ZVByb2R1Y3REZXRhaWxzID0gKHByb2R1Y3RJZDogc3RyaW5nKTogUHJvbWlzZTxQcm9kdWN0RGV0YWlscyB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIGNvbnN0IGNhY2hlZCA9IENvbW1lcmNlQXBpQ2xpZW50LnByb2R1Y3REZXRhaWxzQ2FjaGUuZ2V0KHByb2R1Y3RJZCk7XG4gICAgaWYgKGNhY2hlZCkge1xuICAgICAgcmV0dXJuIGNhY2hlZDtcbiAgICB9XG4gICAgY29uc3QgcmVxdWVzdCA9IENvbW1lcmNlQXBpQ2xpZW50LnJldHJpZXZlUHJvZHVjdERldGFpbHNVbmNhY2hlZChwcm9kdWN0SWQpLmNhdGNoKGVyciA9PiB7XG4gICAgICBDb21tZXJjZUFwaUNsaWVudC5wcm9kdWN0RGV0YWlsc0NhY2hlLmRlbGV0ZShwcm9kdWN0SWQpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH0pO1xuICAgIENvbW1lcmNlQXBpQ2xpZW50LnByb2R1Y3REZXRhaWxzQ2FjaGUuc2V0KHByb2R1Y3RJZCwgcmVxdWVzdCk7XG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB2YXJpYW50LWxldmVsIHByb2R1Y3QgZGV0YWlscyBmb3IgYSBzaW5nbGUgcHJvZHVjdCB2aWEgdGhlIEdyYXBoUUxcbiAgICogYG1lLnByb2R1Y3RPcHRpb25zYCBxdWVyeSBvbiBQT1NUIC92MS9ncmFwaHFsLiBPbmx5IG1lYW5pbmdmdWwgZm9yIHByb2R1Y3RzXG4gICAqIHRoYXQgb2ZmZXIgdmFyaWF0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHByb2R1Y3RJZCAtIFRoZSBwcm9kdWN0IElEIHRvIHJldHJpZXZlIGRldGFpbHMgZm9yXG4gICAqIEByZXR1cm5zIFByb2R1Y3REZXRhaWxzLCBvciB1bmRlZmluZWQgd2hlbiB0aGUgcHJvZHVjdCBoYXMgbm8gb3B0aW9ucyBkYXRhXG4gICAqIEB0aHJvd3Mgb24gbmV0d29yay9IVFRQIGZhaWx1cmUgb3IgR3JhcGhRTCBlcnJvcnNcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHJldHJpZXZlUHJvZHVjdERldGFpbHNVbmNhY2hlZCA9IGFzeW5jIChcbiAgICBwcm9kdWN0SWQ6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxQcm9kdWN0RGV0YWlscyB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIGNvbnN0IGF0b21TdG9yZSA9IGdldEF0b21TdG9yZSgpO1xuICAgIGNvbnN0IGJhc2VVcmwgPSBhdG9tU3RvcmUuZ2V0KGJhc2VVcmxBdG9tKTtcbiAgICBjb25zdCBhcGlLZXkgPSBhdG9tU3RvcmUuZ2V0KG9yZ0xldmVsQXBpS2V5QXRvbSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtiYXNlVXJsfS92MS9ncmFwaHFsYCwge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FwaUtleX1gLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgcXVlcnk6IGdldFByb2R1Y3RPcHRpb25zUXVlcnkoKSxcbiAgICAgICAgICB2YXJpYWJsZXM6IHsgcHJvZHVjdElkIH0sXG4gICAgICAgIH0pLFxuICAgICAgfSk7XG5cbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgdGhyb3cgbmV3IFJlc3BvbnNlRXJyb3IocmVzcG9uc2UsIGBHcmFwaFFMIHJlcXVlc3QgZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgIGlmIChyZXN1bHQuZXJyb3JzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgR3JhcGhRTCBlcnJvcnM6ICR7SlNPTi5zdHJpbmdpZnkocmVzdWx0LmVycm9ycyl9YCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQuZGF0YT8ubWU/LnByb2R1Y3RPcHRpb25zID8/IHVuZGVmaW5lZDtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGF3YWl0IHRocm93U2Vzc2lvblJlc3RhcnRSZXF1aXJlZElmKCdGYWlsZWQgdG8gcmV0cmlldmUgcHJvZHVjdCBkZXRhaWxzJywgZXJyKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gcGF5bG9hZFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgc3RhdGljIGlzU3VwcG9ydGVkRXZlbnQgPSBhc3luYyAocGF5bG9hZDogU3VwcG9ydGVkRXZlbnRSZXF1ZXN0KTogUHJvbWlzZTxTdXBwb3J0ZWRFdmVudD4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByYXdSZXNwb25zZSA9XG4gICAgICAgIGF3YWl0IENvbW1lcmNlQXBpQ2xpZW50LmdldEluc3RhbmNlKCkuaW5mZXJlbmNlQXBpLnYxU3VwcG9ydGVkRXZlbnRQb3N0UmF3KHtcbiAgICAgICAgICBTdXBwb3J0ZWRFdmVudFJlcXVlc3Q6IGNvcmVTdXBwb3J0ZWRFdmVudFJlcXVlc3RUb0FwaVJlcXVlc3QocGF5bG9hZCksXG4gICAgICAgIH0pO1xuXG4gICAgICAvLyBHZXQgdGhlIGFjdHVhbCBIVFRQIHJlc3BvbnNlIEpTT05cbiAgICAgIGNvbnN0IGh0dHBSZXNwb25zZVRleHQgPSBhd2FpdCByYXdSZXNwb25zZS5yYXcudGV4dCgpO1xuICAgICAgY29uc3QgaHR0cFJlc3BvbnNlSnNvbiA9IEpTT04ucGFyc2UoaHR0cFJlc3BvbnNlVGV4dCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmh0dHBSZXNwb25zZUpzb24sXG4gICAgICAgIG51bWJlck9mUmV2aWV3czogaHR0cFJlc3BvbnNlSnNvbi5udW1fb2ZfcmV2aWV3cyxcbiAgICAgICAgbWVyY2hhbnRfdGFnczogaHR0cFJlc3BvbnNlSnNvbi5tZXJjaGFudF90YWdzIHx8IFtdLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci5sb2dFcnJvcignRmFpbGVkIHRvIGdldCByZXNwb25zZSBmb3IgdjFTdXBwb3J0ZWRFdmVudFBvc3QnLCB7XG4gICAgICAgIGVycixcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VwcG9ydGVkOiBmYWxzZSxcbiAgICAgICAgcmVhZHk6IGZhbHNlLFxuICAgICAgICBjYXRlZ29yeTogdW5kZWZpbmVkLFxuICAgICAgICBjb2xsZWN0aW9uczogW10sXG4gICAgICAgIG51bWJlck9mUmV2aWV3czogdW5kZWZpbmVkLFxuICAgICAgICB0b3BfY2F0ZWdvcnk6IHVuZGVmaW5lZCxcbiAgICAgICAgbWVyY2hhbnRfdGFnczogW10sXG4gICAgICB9O1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyBtYXBDb250ZXh0U291cmNlVG9WMU9yZ0NvbmZpZ0dldFNvdXJjZSA9IChcbiAgICBzb3VyY2U6IENvbnRleHRTb3VyY2VFbnVtIHwgdW5kZWZpbmVkLFxuICApOiBWMU9yZ0NvbmZpZ0dldFNvdXJjZUVudW0gfCB1bmRlZmluZWQgPT4ge1xuICAgIGlmIChzb3VyY2UgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBzd2l0Y2ggKHNvdXJjZSkge1xuICAgICAgY2FzZSBDb250ZXh0U291cmNlRW51bS5Gb3JrOlxuICAgICAgICByZXR1cm4gVjFPcmdDb25maWdHZXRTb3VyY2VFbnVtLkZvcms7XG4gICAgICBjYXNlIENvbnRleHRTb3VyY2VFbnVtLlBsYXlncm91bmQ6XG4gICAgICAgIHJldHVybiBWMU9yZ0NvbmZpZ0dldFNvdXJjZUVudW0uUGxheWdyb3VuZDtcbiAgICAgIGNhc2UgQ29udGV4dFNvdXJjZUVudW0uQXBwOlxuICAgICAgICByZXR1cm4gVjFPcmdDb25maWdHZXRTb3VyY2VFbnVtLkFwcDtcbiAgICAgIGNhc2UgQ29udGV4dFNvdXJjZUVudW0uVGVzdDpcbiAgICAgICAgcmV0dXJuIFYxT3JnQ29uZmlnR2V0U291cmNlRW51bS5UZXN0O1xuICAgICAgY2FzZSBDb250ZXh0U291cmNlRW51bS5FdmFsOlxuICAgICAgICByZXR1cm4gVjFPcmdDb25maWdHZXRTb3VyY2VFbnVtLlRlc3Q7XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0IGlmIG5ldyB2YWx1ZXMgYXJlIGFkZGVkIHRvIENvbnRleHRTb3VyY2VFbnVtLCB3ZSBjYXRjaCBpdFxuICAgICAgICBjb25zdCBleGhhdXN0aXZlQ2hlY2s6IG5ldmVyID0gc291cmNlO1xuICAgICAgICByZXR1cm4gZXhoYXVzdGl2ZUNoZWNrO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBzdGF0aWMgZ2V0T3JnQ29uZmlnID0gYXN5bmMgKHVzZXJfaWQ6IHN0cmluZyk6IFByb21pc2U8T3JnQ29uZmlnIHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGF0b21TdG9yZSA9IGdldEF0b21TdG9yZSgpO1xuICAgICAgY29uc3QgcmVhY3RBcHBOYW1lID0gYXRvbVN0b3JlLmdldChyZWFjdEFwcE5hbWVBdG9tKTtcbiAgICAgIGNvbnN0IGNvbnRleHRTb3VyY2UgPSBhdG9tU3RvcmUuZ2V0KGNvbnRleHRTb3VyY2VBdG9tKTtcbiAgICAgIGNvbnN0IGZlYXR1cmVGbGFnU2VydmljZSA9IGF0b21TdG9yZS5nZXQoZmVhdHVyZUZsYWdTZXJ2aWNlQXRvbSk7IC8vIEdldCBmZWF0dXJlRmxhZ1NlcnZpY2VcbiAgICAgIGNvbnN0IHJlcXVlc3Q6IFYxT3JnQ29uZmlnR2V0UmVxdWVzdCA9IHtcbiAgICAgICAgbmFtZXNwYWNlOiByZWFjdEFwcE5hbWUsXG4gICAgICAgIHVzZXJfaWQsXG4gICAgICAgIHNvdXJjZTogdGhpcy5tYXBDb250ZXh0U291cmNlVG9WMU9yZ0NvbmZpZ0dldFNvdXJjZShjb250ZXh0U291cmNlKSxcbiAgICAgICAgaW5jbHVkZV9leHBlcmltZW50czogT2JqZWN0LnZhbHVlcyhQcm9kdWN0RXhwZXJpbWVudCksXG4gICAgICAgIGluY2x1ZGVfZmVhdHVyZV9nYXRlczogT2JqZWN0LmVudHJpZXMoXG4gICAgICAgICAgZmVhdHVyZUZsYWdTZXJ2aWNlPy5mZWF0dXJlRmxhZ1NlcnZpY2U/LmdldEZlYXR1cmVGbGFncygpIHx8IHt9LFxuICAgICAgICApXG4gICAgICAgICAgLmZpbHRlcigoWywgaXNFbmFibGVkXSkgPT4gaXNFbmFibGVkKVxuICAgICAgICAgIC5tYXAoKFtmZWF0dXJlR2F0ZU5hbWVdKSA9PiBmZWF0dXJlR2F0ZU5hbWUpLCAvLyBVc2UgZmVhdHVyZUZsYWdTZXJ2aWNlXG4gICAgICB9O1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXRJbnN0YW5jZSgpLmRlZmF1bHRBcGkudjFPcmdDb25maWdHZXQocmVxdWVzdCk7XG5cbiAgICAgIHJldHVybiB2YWxpZGF0ZU9yZ0NvbmZpZ1Jlc3VsdHMocmVzcG9uc2UpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nZ2VyLmxvZ0Vycm9yKGBGYWlsZWQgdG8gZ2V0IG9yZyBjb25maWdgLCBlcnIsIHsgZXJyIH0pO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG5cbiAgc3RhdGljIGFkZE5vdGVUb0xhdGVzdENvbnZlcnNhdGlvbiA9IGFzeW5jIChcbiAgICBzcGlmZnlVc2VySWQ6IHN0cmluZyxcbiAgICBlbWFpbDogc3RyaW5nLFxuICAgIGN1c3RvbWVyU2VydmljZVByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VQcm92aWRlcixcbiAgKSA9PiB7XG4gICAgbG9nZ2VyLmxvZ0luZm8oXG4gICAgICBgYWRkTm90ZVRvTGF0ZXN0Q29udmVyc2F0aW9uIC0gdXNlcl9pZD0ke3NwaWZmeVVzZXJJZH0gZW1haWw9JHtlbWFpbH0gY3VzdG9tZXJfc2VydmljZV9wcm92aWRlcj0ke2N1c3RvbWVyU2VydmljZVByb3ZpZGVyfWAsXG4gICAgKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgQ29tbWVyY2VBcGlDbGllbnQuZ2V0SW5zdGFuY2UoKS5jdXN0b21lclNlcnZpY2VBcGkudjFDdXN0c2VydmljZUFkZE5vdGVUb0xhdGVzdENvbnZlcnNhdGlvblBvc3QoXG4gICAgICAgIHtcbiAgICAgICAgICBBZGROb3RlVG9MYXRlc3RDb252ZXJzYXRpb25SZXF1ZXN0OiB7XG4gICAgICAgICAgICBzcGlmZnlfdXNlcl9pZDogc3BpZmZ5VXNlcklkLFxuICAgICAgICAgICAgZW1haWwsXG4gICAgICAgICAgICBjdXN0b21lcl9zZXJ2aWNlX3Byb3ZpZGVyOiBjdXN0b21lclNlcnZpY2VQcm92aWRlcixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci5sb2dFcnJvcignRmFpbGVkIHRvIGFkZCBub3RlIHRvIGxhdGVzdCBjb252ZXJzYXRpb24nLCB7IGVyciB9KTtcbiAgICB9XG4gIH07XG5cbiAgc3RhdGljIGdldEN1c3RvbWVyU2VydmljZUFwaSA9ICgpID0+IENvbW1lcmNlQXBpQ2xpZW50LmdldEluc3RhbmNlKCkuY3VzdG9tZXJTZXJ2aWNlQXBpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBDb21tZXJjZUFwaUNsaWVudDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1RUEsTUFBTSxTQUFTLElBQUlBLGVBQU8sZUFBZTtBQUV6QyxlQUFlLGtCQUFrQixPQUFzQjtBQUNyRCxLQUFJO0FBQ0YsU0FBTyxNQUFNLE1BQU0sU0FBUyxNQUFNO1NBQzVCO0FBQ04sU0FBTyxFQUFFOzs7QUFJYixlQUFlLDhCQUE4QixVQUFrQixPQUFnQjtBQUM3RSxLQUFJLEVBQUUsaUJBQWlCLGdCQUFnQjtBQUNyQyxTQUFPLFFBQVEsVUFBVSxNQUFNO0FBQy9CLFFBQU07O0NBR1IsTUFBTSxnQkFBZ0IsTUFBTSxrQkFBa0IsTUFBTTtBQUNwRCxLQUNFLGVBQWUsU0FBUyxhQUFhLEtBQUsseUJBQzFDLGVBQWUsVUFBVSxhQUFhLEtBQUssb0JBRTNDLE9BQU0sSUFBSSw2QkFBNkI7VUFFdkMsZUFBZSxVQUFVLGFBQWEsS0FBSyxxQkFDM0MsZUFBZSxVQUFVLGFBQWEsS0FBSyxhQUMzQztBQUNBLFNBQU8sUUFDTCw0Q0FDQSxPQUNBLE1BQU0sVUFDTixjQUNEO0FBQ0QsUUFBTSxJQUFJLHdCQUF3Qjs7QUFHcEMsUUFBTyxRQUFRLFVBQVUsTUFBTTtBQUMvQixPQUFNOztBQUdSLElBQU0sb0JBQU4sTUFBTSxrQkFBa0I7OzJCQWVnQztBQUNwRCxPQUFJLENBQUMsa0JBQWtCLFNBQ3JCLG1CQUFrQixXQUFXLElBQUksbUJBQW1CO0FBR3RELFVBQU8sa0JBQWtCOzs7Q0FHM0IsQUFBUSxZQUFZLFVBQW1CO29DQVpGLElBQUksaUJBQWlCO2tDQUV2QixJQUFJLGlCQUFpQjtFQVd0RCxNQUFNLFlBQVksY0FBYztFQUNoQyxNQUFNLFVBQVUsVUFBVSxJQUFJLFlBQVk7RUFJMUMsTUFBTUMsU0FBd0IsSUFBSSxjQUFjO0dBQzlDLGFBSmEsVUFBVSxJQUFJLG1CQUFtQjtHQUs5QyxVQUpXLFlBQVk7R0FLdkIsU0FBUztJQUNQLGdCQUFnQjtJQUNoQixRQUFRO0lBQ1Q7R0FDRixDQUFDO0FBQ0YsT0FBSyxhQUFhLElBQUksV0FBVyxPQUFPO0FBQ3hDLE9BQUssZUFBZSxJQUFJLGFBQWEsT0FBTztBQUM1QyxPQUFLLHFCQUFxQixJQUFJLG1CQUFtQixPQUFPO0FBQ3hELE9BQUssY0FBYyxJQUFJLFlBQVksT0FBTzs7O2dEQU1KLElBQUksS0FBK0I7OztvQkFFdkQsT0FBTyxRQUFnQjtHQUN6QyxNQUFNLFdBQVcsa0JBQWtCLHVCQUF1QixJQUFJLElBQUk7QUFDbEUsT0FBSSxTQUNGLFFBQU87R0FFVCxNQUFNLFVBQVUsa0JBQWtCLG1CQUFtQixJQUFJO0FBQ3pELHFCQUFrQix1QkFBdUIsSUFBSSxLQUFLLFFBQVE7QUFDMUQsT0FBSTtBQUNGLFdBQU8sTUFBTTthQUNMO0FBQ1Isc0JBQWtCLHVCQUF1QixPQUFPLElBQUk7Ozs7OzRCQUlwQixPQUFPLFFBQWdCO0dBQ3pELE1BQU0sWUFBWSxjQUFjO0dBQ2hDLE1BQU0sZUFBZSxVQUFVLElBQUksaUJBQWlCO0dBQ3BELE1BQU0sUUFBUSxVQUFVLElBQUksVUFBVTtHQUN0QyxNQUFNLFNBQVMsVUFBVSxJQUFJLFdBQVc7R0FDeEMsTUFBTSxTQUFTLFVBQVUsSUFBSSxXQUFXO0dBQ3hDLE1BQU0sU0FBUyxVQUFVLElBQUksa0JBQWtCO0dBQy9DLE1BQU0sTUFBTSxVQUFVLElBQUksUUFBUTtHQUVsQyxNQUFNLHFCQUFxQixVQUFVLElBQUksdUJBQXVCO0dBRWhFLE1BQU1DLFVBQW1CO0lBQ3ZCLFNBQVMsVUFBVTtJQUNuQixRQUFRLFNBQVM7SUFDakIsZ0JBQWdCLGdCQUFnQjtJQUNoQyxTQUFTLFVBQVU7SUFDbkIsUUFBUSxVQUFVLGtCQUFrQjtJQUNwQyxLQUFNLE9BQTBCLGVBQWU7SUFDaEQ7R0FFRCxNQUFNLHdCQUNKLGNBQWMsd0JBQXdCLElBQ3RDLGNBQWMsd0JBQXdCLElBQ3RDLGNBQWMsQ0FBQyxJQUFJLDhCQUE4QixJQUNqRDtHQUdGLE1BQU0sc0JBQXNCO0lBQzFCO0lBQ0E7SUFDQSxlQUptQixvQkFBb0Isb0JBQW9CLGlCQUFpQixJQUFJLEVBQUU7SUFLbEYseUJBQXlCO0lBQzFCO0FBUUQsVUFGcUIsT0FKRCxNQUFNLGtCQUFrQixhQUFhLENBQUMsYUFBYSxzQkFBc0IsRUFDM0YscUJBQXFCLHFCQUN0QixDQUFDLEVBRXFDLElBQUksTUFBTTs7Ozt1QkFLNUIsT0FBTyxrQkFBdUQ7QUFDbkYsU0FBTSxrQkFBa0IsYUFBYSxDQUFDLFdBQVcsMkJBQTJCLEVBQzFFLHNCQUFzQixlQUN2QixDQUFDOzs7OzBCQUdzQixPQUFPLFlBQW9EO0FBQ25GLE9BQUk7QUFRRixZQVBpQixNQUFNLGtCQUFrQixhQUFhLENBQUMsYUFBYSxvQkFBb0IsRUFDdEYsb0JBQW9CLHVDQUF1QyxRQUFRLEVBQ3BFLENBQUMsRUFFQyxLQUFJLFNBQVEsaUJBQWlCLEtBQUssQ0FBQyxDQUNuQyxLQUFJLFNBQVEsb0JBQW9CLEtBQUssQ0FBQyxDQUV6QixRQUFRLE1BQW9CLEtBQUssS0FBSztZQUMvQ0MsS0FBYztBQUNyQixXQUFPLFFBQVEsZ0NBQWdDLEtBQUs7S0FDbEQsZ0JBQWdCLFNBQVM7S0FDekIsWUFBWSxTQUFTO0tBQ3RCLENBQUM7QUFDRixVQUFNLDhCQUE4QixnQ0FBZ0MsSUFBSTtBQUN4RSxXQUFPLEVBQUU7Ozs7O21DQUtYLFlBQzRDO0dBQzVDLGdCQUFnQixTQUFTLGNBQTRCLGlCQUFrQztBQUVyRixRQUFJO0tBQ0YsTUFBTSxXQUFXLE1BQU0sYUFBYSx1QkFDbEMsRUFDRSxvQkFBb0IsdUNBQXVDLFFBQVEsRUFDcEUsRUFDRCxFQUFFLFFBQVEsZ0JBQWdCLFFBQVEsQ0FDbkM7QUFHRCxTQUFJLENBQUMsU0FBUyxJQUFJLE1BQU07QUFDdEIsYUFBTyxTQUFTLG9DQUFvQyxRQUFXLEVBQzdELFVBQVUsU0FBUyxLQUNwQixDQUFDO0FBQ0Y7O0tBR0YsTUFBTSxTQUFTLFNBQVMsSUFBSSxLQUFLLFdBQVc7S0FDNUMsTUFBTSxVQUFVLElBQUksWUFBWSxRQUFRO0tBRXhDLElBQUksVUFBVTtLQUVkLE1BQU0sYUFBYSxTQUEwQjtBQUMzQyxVQUFJO0FBQ0YsY0FBTyxLQUFLLE1BQU0sS0FBSztlQUNoQixLQUFLO0FBQ1osY0FBTyxTQUFTLCtCQUErQixLQUFLO1FBQ2xEO1FBQ0E7UUFDRCxDQUFDO0FBRUYsaUJBQVU7QUFDVixjQUFPOzs7S0FLWCxNQUFNLGdCQUFnQixVQUE2QjtBQVNqRCxhQVBjLEdBQUcsVUFBVSxRQUFRLE1BQU0sS0FBSyxDQUczQyxLQUFJLFNBQVEsS0FBSyxRQUFRLFdBQVcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUMvQyxRQUFPLFNBQVEsU0FBUyxNQUFNLFNBQVMsU0FBUyxDQUNoRCxJQUFJLFVBQVUsQ0FDZCxRQUFPLE1BQUssRUFBRTs7QUFJbkIsWUFBTyxNQUFNO01BRVgsTUFBTSxFQUFFLE1BQU0sVUFBVSxNQUFNLE9BQU8sTUFBTTtBQUUzQyxVQUFJLEtBQ0Y7TUFLRixNQUFNLGNBQWMsYUFETixRQUFRLE9BQU8sTUFBTSxDQUNJO0FBRXZDLFdBQUssTUFBTSxjQUFjLGFBQWE7T0FDcEMsTUFBTSxvQkFBb0IsaUJBQWlCLFdBQVc7QUFFdEQsV0FBSSxrQkFDRixPQUFNOzs7YUFJTEMsT0FBZ0I7QUFDdkIsWUFBTyxTQUFTLDBDQUEwQyxPQUFPO01BQy9ELGdCQUFnQixTQUFTO01BQ3pCLFlBQVksU0FBUztNQUN0QixDQUFDO0FBQ0YsV0FBTSw4QkFBOEIsMENBQTBDLE1BQU07OztBQUl4RixxQkFBa0IsYUFBYSxDQUFDLHlCQUF5QixPQUFPO0FBQ2hFLHFCQUFrQixhQUFhLENBQUMsMkJBQTJCLElBQUksaUJBQWlCO0FBRWhGLFVBQU8sU0FDTCxrQkFBa0IsYUFBYSxDQUFDLGNBQ2hDLGtCQUFrQixhQUFhLENBQUMseUJBQ2pDOzs7OzRCQUd5QixPQUFPLFlBQXVEO0FBQ3hGLE9BQUk7QUFDRixzQkFBa0IsYUFBYSxDQUFDLDJCQUEyQixPQUFPO0FBQ2xFLHNCQUFrQixhQUFhLENBQUMsNkJBQTZCLElBQUksaUJBQWlCO0FBZWxGLFlBYmlCLE1BQU0sa0JBQWtCLGFBQWEsQ0FBQyxhQUFhLHNCQUNsRSxFQUNFLG9CQUFvQix1Q0FBdUMsUUFBUSxFQUNwRSxFQUNELEVBQ0UsUUFBUSxrQkFBa0IsYUFBYSxDQUFDLDJCQUEyQixRQUNwRSxDQUNGLEVBR0UsS0FBSSxTQUFRLG1CQUFtQixLQUFLLENBQUMsQ0FDckMsUUFBUSxlQUF5QyxjQUFjLEtBQUs7WUFHaEVBLE9BQWdCO0FBQ3ZCLFdBQU8sUUFBUSw2QkFBNkIsT0FBTztLQUNqRCxnQkFBZ0IsU0FBUztLQUN6QixZQUFZLFNBQVM7S0FDdEIsQ0FBQztBQUVGLFVBQU0sOEJBQThCLDZCQUE2QixNQUFNO0FBQ3ZFLFdBQU8sRUFBRTs7Ozs7c0JBYVMsT0FDcEIsT0FDQSxRQUNBLFdBTUk7R0FDSixJQUFJQyxPQUF3QztJQUMxQyxXQUFXLEVBQUU7SUFDYixhQUFhLEVBQUU7SUFDZixhQUFhLEVBQUU7SUFDaEI7R0FDRCxNQUFNLFVBQVU7SUFDZCxRQUFRO0lBQ1IsU0FBUztJQUNULFNBQVM7SUFDVjtBQUNELE9BQUk7QUFDRixXQUFPLE1BQU0sa0JBQWtCLGFBQWEsQ0FBQyxXQUFXLHFCQUFxQixRQUFRO1lBQzlFRCxPQUFnQjtBQUN2QixVQUFNLDhCQUE4QixnQ0FBZ0MsTUFBTTs7R0FHNUUsTUFBTUUsWUFBMEIsTUFBTSxXQUFXLEtBQUksU0FDbkQsS0FDRyxLQUFJLGFBQVksaUJBQWlCLFNBQVMsQ0FBQyxDQUMzQyxRQUFRLGFBQW1DLFlBQVksS0FBSyxDQUNoRTtHQUVELE1BQU1DLGNBQTRCLE1BQU0sWUFDckMsS0FBSSxlQUFjLG1CQUFtQixXQUFXLENBQUMsQ0FDakQsUUFBUSxlQUF5QyxjQUFjLEtBQUs7R0FFdkUsTUFBTUMsYUFBMEIsTUFBTSxZQUNuQyxLQUFJLFVBQVMsa0JBQWtCLE1BQU0sQ0FBQyxDQUN0QyxRQUFRLFVBQThCLFNBQVMsS0FBSztHQUd2RCxNQUFNLGlDQUFpQyxXQUNwQyxRQUFPLFVBQVMsTUFBTSxhQUFhLGtCQUFrQixjQUFjLENBQ25FLEtBQUksVUFBUyxNQUFNLFdBQVcsZUFBZTtHQUVoRCxNQUFNQyxvQkFBaUMsVUFDcEMsS0FBSSxTQUNILEtBQ0csUUFDQyxhQUNFLEVBQ0UsU0FBUyxhQUFhLGlCQUFpQixRQUN2QywrQkFBK0IsU0FBUyxTQUFTLEdBQUcsRUFFekQsQ0FDQSxLQUFJLGFBQVksb0JBQW9CLFNBQVMsQ0FBQyxDQUM5QyxRQUFRLFlBQWdDLFdBQVcsS0FBSyxDQUM1RCxDQUNBLFFBQU8sU0FBUSxLQUFLLFNBQVMsRUFBRTtHQUVsQyxNQUFNQyxnQkFDSixNQUFNLFFBQVEsSUFDWixXQUFXLElBQUksT0FBTSxVQUFTO0FBQzVCLFFBQUksQ0FBQyxrQkFBa0IsWUFBWSxrQkFBa0IsT0FBTyxDQUFDLFNBQVMsTUFBTSxTQUFTLENBQ25GLFFBQU8sQ0FBQyxzQkFBc0IsTUFBTSxDQUFDO0FBR3ZDLFFBQUksTUFBTSxhQUFhLGtCQUFrQixrQkFDdkMsUUFBTyxDQUFDLDJCQUEyQixPQUFPLFlBQVksQ0FBQztBQUd6RCxRQUFJLE1BQU0sYUFBYSxrQkFBa0IsV0FBVztLQUtsRCxNQUFNLGlCQUFpQixVQUNwQixNQUFNLENBQ04sTUFDQyxhQUNFLFNBQVMsYUFBYSxpQkFBaUIsV0FDdkMsU0FBUyxXQUFXLE9BQU8sTUFBTSxXQUFXLFVBQy9DO0tBQ0gsSUFBSSxlQUNGLGdCQUFnQixhQUFhLGlCQUFpQixVQUMxQyxlQUFlLFdBQVcsUUFDMUI7QUFDTixTQUFJLENBQUMsYUFDSCxLQUFJO0FBSUYsc0JBSGdCLE1BQU0sa0JBQWtCLHVCQUN0QyxNQUFNLFdBQVcsVUFDbEIsR0FDdUI7YUFDbEI7QUFDTixxQkFBZTs7QUFHbkIsWUFBTyxDQUFDLDBCQUEwQixPQUFPLGFBQWEsQ0FBQzs7QUFHekQsUUFBSSxNQUFNLGFBQWEsa0JBQWtCLGVBQWU7S0FDdEQsTUFBTSxlQUFlLFVBQ2xCLE1BQU0sQ0FDTixNQUNDLGFBQ0UsU0FBUyxPQUFPLE1BQU0sV0FBVyxrQkFDakMsTUFBTSxXQUFXLGFBQWEsU0FBUyxXQUMxQztBQUVILFNBQUksZ0JBQWdCLGFBQWEsYUFBYSxpQkFBaUIsS0FDN0QsUUFBTyxDQUFDLDhCQUE4QixPQUFPLGFBQWEsV0FBVyxDQUFDOztBQUkxRSxXQUFPLEVBQUU7S0FDVCxDQUNILEVBQ0QsUUFBUSxZQUFrQyxRQUFRLFNBQVMsRUFBRTtBQU8vRCxVQUFPO0lBQUU7SUFBVztJQUFZO0lBQWEsVUFKdEIsQ0FBQyxHQUFHLG1CQUFtQixHQUFHLGFBQWEsQ0FBQyxNQUM1RCxHQUFHLE1BQU0sSUFBSSxLQUFLLEVBQUUsR0FBRyxVQUFVLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FDbEY7SUFFc0U7Ozs7cUJBR3BELE9BQU8sWUFBb0Q7R0FDOUUsTUFBTSxhQUFhLGtDQUFrQyxRQUFRO0FBSTdELFVBQU8sc0NBQXNDLFlBSDVCLE1BQU0sa0JBQWtCLGFBQWEsQ0FBQyxhQUFhLGlCQUFpQixFQUNuRixtQkFBbUIsWUFDcEIsQ0FBQyxDQUNnRTs7OzswQkFXMUMsT0FBTyxlQUEwRDtBQUN6RixPQUFJLFdBQVcsV0FBVyxFQUN4QixRQUFPO0lBQUUsVUFBVSxFQUFFO0lBQUUsbUJBQW1CO0lBQUc7QUFHL0MsT0FBSTtJQUNGLE1BQU0sWUFBWSxjQUFjO0lBQ2hDLE1BQU0sZUFBZSxVQUFVLElBQUksaUJBQWlCO0lBQ3BELE1BQU0sUUFBUSxVQUFVLElBQUksVUFBVTtJQUN0QyxNQUFNLFNBQVMsVUFBVSxJQUFJLFdBQVc7SUFDeEMsTUFBTSxTQUFTLFVBQVUsSUFBSSxXQUFXO0lBQ3hDLE1BQU0sU0FBUyxVQUFVLElBQUksa0JBQWtCO0lBQy9DLE1BQU0sTUFBTSxVQUFVLElBQUksUUFBUTtJQUVsQyxNQUFNUixVQUFtQjtLQUN2QixTQUFTLFVBQVU7S0FDbkIsUUFBUSxTQUFTO0tBQ2pCLGdCQUFnQixnQkFBZ0I7S0FDaEMsU0FBUyxVQUFVO0tBQ25CLFFBQVEsVUFBVSxrQkFBa0I7S0FDcEMsS0FBTSxPQUEwQixlQUFlO0tBQ2hEO0FBU0QsV0FBTyxpREFQVSxNQUFNLGtCQUFrQixhQUFhLENBQUMsWUFBWSx1QkFBdUIsRUFDeEYseUJBQXlCO0tBQ3ZCO0tBQ0EsYUFBYTtLQUNkLEVBQ0YsQ0FBQyxDQUUrRDtZQUMxRCxLQUFLO0FBQ1osVUFBTSw4QkFBOEIsK0JBQStCLElBQUk7QUFDdkUsV0FBTztLQUFFLFVBQVUsRUFBRTtLQUFFLG1CQUFtQjtLQUFHOzs7Ozs2Q0FRWixJQUFJLEtBQWtEOzs7aUNBRTFELGNBQTJEO0dBQzFGLE1BQU0sU0FBUyxrQkFBa0Isb0JBQW9CLElBQUksVUFBVTtBQUNuRSxPQUFJLE9BQ0YsUUFBTztHQUVULE1BQU0sVUFBVSxrQkFBa0IsK0JBQStCLFVBQVUsQ0FBQyxPQUFNLFFBQU87QUFDdkYsc0JBQWtCLG9CQUFvQixPQUFPLFVBQVU7QUFDdkQsVUFBTTtLQUNOO0FBQ0YscUJBQWtCLG9CQUFvQixJQUFJLFdBQVcsUUFBUTtBQUM3RCxVQUFPOzs7O3dDQVl1QyxPQUM5QyxjQUN3QztHQUN4QyxNQUFNLFlBQVksY0FBYztHQUNoQyxNQUFNLFVBQVUsVUFBVSxJQUFJLFlBQVk7R0FDMUMsTUFBTSxTQUFTLFVBQVUsSUFBSSxtQkFBbUI7QUFFaEQsT0FBSTtJQUNGLE1BQU0sV0FBVyxNQUFNLE1BQU0sR0FBRyxRQUFRLGNBQWM7S0FDcEQsUUFBUTtLQUNSLFNBQVM7TUFDUCxnQkFBZ0I7TUFDaEIsZUFBZSxVQUFVO01BQzFCO0tBQ0QsTUFBTSxLQUFLLFVBQVU7TUFDbkIsT0FBTyx3QkFBd0I7TUFDL0IsV0FBVyxFQUFFLFdBQVc7TUFDekIsQ0FBQztLQUNILENBQUM7QUFFRixRQUFJLENBQUMsU0FBUyxHQUNaLE9BQU0sSUFBSSxjQUFjLFVBQVUsMkJBQTJCLFNBQVMsYUFBYTtJQUdyRixNQUFNLFNBQVMsTUFBTSxTQUFTLE1BQU07QUFDcEMsUUFBSSxPQUFPLE9BQ1QsT0FBTSxJQUFJLE1BQU0sbUJBQW1CLEtBQUssVUFBVSxPQUFPLE9BQU8sR0FBRztBQUdyRSxXQUFPLE9BQU8sTUFBTSxJQUFJLGtCQUFrQjtZQUNuQyxLQUFLO0FBQ1osVUFBTSw4QkFBOEIsc0NBQXNDLElBQUk7QUFDOUU7Ozs7OzBCQVNzQixPQUFPLFlBQTREO0FBQzNGLE9BQUk7SUFPRixNQUFNLG1CQUFtQixPQUx2QixNQUFNLGtCQUFrQixhQUFhLENBQUMsYUFBYSx3QkFBd0IsRUFDekUsdUJBQXVCLHNDQUFzQyxRQUFRLEVBQ3RFLENBQUMsRUFHdUMsSUFBSSxNQUFNO0lBQ3JELE1BQU0sbUJBQW1CLEtBQUssTUFBTSxpQkFBaUI7QUFFckQsV0FBTztLQUNMLEdBQUc7S0FDSCxpQkFBaUIsaUJBQWlCO0tBQ2xDLGVBQWUsaUJBQWlCLGlCQUFpQixFQUFFO0tBQ3BEO1lBQ00sS0FBSztBQUNaLFdBQU8sU0FBUyxtREFBbUQsRUFDakUsS0FDRCxDQUFDO0FBQ0YsV0FBTztLQUNMLFdBQVc7S0FDWCxPQUFPO0tBQ1AsVUFBVTtLQUNWLGFBQWEsRUFBRTtLQUNmLGlCQUFpQjtLQUNqQixjQUFjO0tBQ2QsZUFBZSxFQUFFO0tBQ2xCOzs7OztpREFLSCxXQUN5QztBQUN6QyxPQUFJLFdBQVcsT0FBVyxRQUFPO0FBQ2pDLFdBQVEsUUFBUjtJQUNFLEtBQUssa0JBQWtCLEtBQ3JCLFFBQU8seUJBQXlCO0lBQ2xDLEtBQUssa0JBQWtCLFdBQ3JCLFFBQU8seUJBQXlCO0lBQ2xDLEtBQUssa0JBQWtCLElBQ3JCLFFBQU8seUJBQXlCO0lBQ2xDLEtBQUssa0JBQWtCLEtBQ3JCLFFBQU8seUJBQXlCO0lBQ2xDLEtBQUssa0JBQWtCLEtBQ3JCLFFBQU8seUJBQXlCO0lBQ2xDLFFBR0UsUUFEK0I7Ozs7O3NCQU1mLE9BQU8sWUFBb0Q7QUFDL0UsT0FBSTtJQUNGLE1BQU0sWUFBWSxjQUFjO0lBQ2hDLE1BQU0sZUFBZSxVQUFVLElBQUksaUJBQWlCO0lBQ3BELE1BQU0sZ0JBQWdCLFVBQVUsSUFBSSxrQkFBa0I7SUFDdEQsTUFBTSxxQkFBcUIsVUFBVSxJQUFJLHVCQUF1QjtJQUNoRSxNQUFNUyxVQUFpQztLQUNyQyxXQUFXO0tBQ1g7S0FDQSxRQUFRLEtBQUssdUNBQXVDLGNBQWM7S0FDbEUscUJBQXFCLE9BQU8sT0FBTyxrQkFBa0I7S0FDckQsdUJBQXVCLE9BQU8sUUFDNUIsb0JBQW9CLG9CQUFvQixpQkFBaUIsSUFBSSxFQUFFLENBQ2hFLENBQ0UsUUFBUSxHQUFHLGVBQWUsVUFBVSxDQUNwQyxLQUFLLENBQUMscUJBQXFCLGdCQUFnQjtLQUMvQztBQUdELFdBQU8seUJBRlUsTUFBTSxrQkFBa0IsYUFBYSxDQUFDLFdBQVcsZUFBZSxRQUFRLENBRWhEO1lBQ2xDLEtBQUs7QUFDWixXQUFPLFNBQVMsNEJBQTRCLEtBQUssRUFBRSxLQUFLLENBQUM7QUFDekQ7Ozs7O3FDQUlpQyxPQUNuQyxjQUNBLE9BQ0EsNEJBQ0c7QUFDSCxVQUFPLFFBQ0wseUNBQXlDLGFBQWEsU0FBUyxNQUFNLDZCQUE2QiwwQkFDbkc7QUFDRCxPQUFJO0FBQ0YsVUFBTSxrQkFBa0IsYUFBYSxDQUFDLG1CQUFtQiw2Q0FDdkQsRUFDRSxvQ0FBb0M7S0FDbEMsZ0JBQWdCO0tBQ2hCO0tBQ0EsMkJBQTJCO0tBQzVCLEVBQ0YsQ0FDRjtZQUNNLEtBQUs7QUFDWixXQUFPLFNBQVMsNkNBQTZDLEVBQUUsS0FBSyxDQUFDOzs7OztxQ0FJcEMsa0JBQWtCLGFBQWEsQ0FBQzs7O0FBR3ZFLDJCQUFlIn0=
|
|
@@ -2,7 +2,14 @@ import { CamelCasedPropertiesDeep } from "../utilityTypes/camelCasedPropertiesDe
|
|
|
2
2
|
import { FormType, PDPAttributes, PLPAttributes, PageVisitCategory, QueryTypedAttributes, SearchAttributes, SuggestionClickedAttributes, UserEvent, UserEventCategory } from "@spiffy-ai/commerce-api-client";
|
|
3
3
|
|
|
4
4
|
//#region src/application/models/api/userEvent.d.ts
|
|
5
|
-
interface PDPAttributes$1 extends CamelCasedPropertiesDeep<PDPAttributes> {
|
|
5
|
+
interface PDPAttributes$1 extends CamelCasedPropertiesDeep<PDPAttributes> {
|
|
6
|
+
/**
|
|
7
|
+
* Client-local only: never serialized to the backend (coreUserEventToApiUserEvent
|
|
8
|
+
* hand-picks fields and ignores this one). Lets the live add-to-cart chat message
|
|
9
|
+
* show a resolved product title instead of the raw productId.
|
|
10
|
+
*/
|
|
11
|
+
productTitle?: string;
|
|
12
|
+
}
|
|
6
13
|
interface PLPAttributes$1 extends CamelCasedPropertiesDeep<PLPAttributes> {}
|
|
7
14
|
interface SearchAttributes$1 extends CamelCasedPropertiesDeep<SearchAttributes> {}
|
|
8
15
|
interface QueryTypedAttributes$1 extends CamelCasedPropertiesDeep<QueryTypedAttributes> {
|
|
@@ -58,4 +65,4 @@ interface FormSubmitted {
|
|
|
58
65
|
type UserEvent$1 = CamelCasedPropertiesDeep<Pick<UserEvent, 'event_id' | 'category' | 'created_at'>> & (SuggestionsClickedUserEvent | AppLoadedUserEvent | PDPUserEvent | QueryTypedUserEvent | SearchUserEvent | AppUnloadedEvent | PLPUserEvent | PageVisitEvent | FormSubmitted);
|
|
59
66
|
//#endregion
|
|
60
67
|
export { AppLoadedUserEvent, AppUnloadedEvent, FormSubmitted, FormSubmittedAttributes$1 as FormSubmittedAttributes, PDPAttributes$1 as PDPAttributes, PDPUserEvent, PLPAttributes$1 as PLPAttributes, PLPUserEvent, PageVisitAttributes, PageVisitEvent, QueryTypedAttributes$1 as QueryTypedAttributes, QueryTypedUserEvent, SearchAttributes$1 as SearchAttributes, SearchUserEvent, SuggestionClickedAttributes$1 as SuggestionClickedAttributes, SuggestionsClickedUserEvent, UserEvent$1 as UserEvent, UserEventAttributes };
|
|
61
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlckV2ZW50LmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3VzZXJFdmVudC5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBEUEF0dHJpYnV0ZXMgYXMgQXBpUERQQXR0cmlidXRlcywgUExQQXR0cmlidXRlcyBhcyBBcGlQTFBBdHRyaWJ1dGVzLCBRdWVyeVR5cGVkQXR0cmlidXRlcyBhcyBBcGlRdWVyeVR5cGVkQXR0cmlidXRlcywgU2VhcmNoQXR0cmlidXRlcyBhcyBBcGlTZWFyY2hBdHRyaWJ1dGVzLCBTdWdnZXN0aW9uQ2xpY2tlZEF0dHJpYnV0ZXMgYXMgQXBpU3VnZ2VzdGlvbkNsaWNrZWRBdHRyaWJ1dGVzLCBVc2VyRXZlbnQgYXMgQXBpVXNlckV2ZW50LCBGb3JtVHlwZSwgUGFnZVZpc2l0Q2F0ZWdvcnksIFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvdXRpbGl0eVR5cGVzJztcbmV4cG9ydCBpbnRlcmZhY2UgUERQQXR0cmlidXRlcyBleHRlbmRzIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxBcGlQRFBBdHRyaWJ1dGVzPiB7XG4gICAgLyoqXG4gICAgICogQ2xpZW50LWxvY2FsIG9ubHk6IG5ldmVyIHNlcmlhbGl6ZWQgdG8gdGhlIGJhY2tlbmQgKGNvcmVVc2VyRXZlbnRUb0FwaVVzZXJFdmVudFxuICAgICAqIGhhbmQtcGlja3MgZmllbGRzIGFuZCBpZ25vcmVzIHRoaXMgb25lKS4gTGV0cyB0aGUgbGl2ZSBhZGQtdG8tY2FydCBjaGF0IG1lc3NhZ2VcbiAgICAgKiBzaG93IGEgcmVzb2x2ZWQgcHJvZHVjdCB0aXRsZSBpbnN0ZWFkIG9mIHRoZSByYXcgcHJvZHVjdElkLlxuICAgICAqL1xuICAgIHByb2R1Y3RUaXRsZT86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUExQQXR0cmlidXRlcyBleHRlbmRzIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxBcGlQTFBBdHRyaWJ1dGVzPiB7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaEF0dHJpYnV0ZXMgZXh0ZW5kcyBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8QXBpU2VhcmNoQXR0cmlidXRlcz4ge1xufVxuZXhwb3J0IGludGVyZmFjZSBRdWVyeVR5cGVkQXR0cmlidXRlcyBleHRlbmRzIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxBcGlRdWVyeVR5cGVkQXR0cmlidXRlcz4ge1xuICAgIHVzZXJUeXBlZD86IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIEZvcm1TdWJtaXR0ZWRBdHRyaWJ1dGVzIHtcbiAgICBmaWxsZWRTY2hlbWE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGZvcm1SZXNwb25zZUlkOiBzdHJpbmc7XG4gICAgZm9ybVR5cGU6IEZvcm1UeXBlO1xufVxuZXhwb3J0IGludGVyZmFjZSBQYWdlVmlzaXRBdHRyaWJ1dGVzIHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBwYWdlVmlzaXRDYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnk7XG59XG5leHBvcnQgaW50ZXJmYWNlIFN1Z2dlc3Rpb25DbGlja2VkQXR0cmlidXRlcyBleHRlbmRzIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxBcGlTdWdnZXN0aW9uQ2xpY2tlZEF0dHJpYnV0ZXM+IHtcbiAgICBjb250ZW50Pzogc3RyaW5nO1xufVxuZXhwb3J0IHR5cGUgVXNlckV2ZW50QXR0cmlidXRlcyA9IFBEUEF0dHJpYnV0ZXMgfCBQTFBBdHRyaWJ1dGVzIHwgUXVlcnlUeXBlZEF0dHJpYnV0ZXMgfCBTZWFyY2hBdHRyaWJ1dGVzIHwgU3VnZ2VzdGlvbkNsaWNrZWRBdHRyaWJ1dGVzIHwgUGFnZVZpc2l0QXR0cmlidXRlcztcbmV4cG9ydCBpbnRlcmZhY2UgUERQVXNlckV2ZW50IHtcbiAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUGRwVmlzaXQgfCBVc2VyRXZlbnRDYXRlZ29yeS5BZGRUb0NhcnQ7XG4gICAgYXR0cmlidXRlczogUERQQXR0cmlidXRlcztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUExQVXNlckV2ZW50IHtcbiAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUGxwVmlzaXQ7XG4gICAgYXR0cmlidXRlczogUExQQXR0cmlidXRlcztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlUeXBlZFVzZXJFdmVudCB7XG4gICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlF1ZXJ5VHlwZWQ7XG4gICAgYXR0cmlidXRlczogUXVlcnlUeXBlZEF0dHJpYnV0ZXM7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFVzZXJFdmVudCB7XG4gICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlNlYXJjaDtcbiAgICBhdHRyaWJ1dGVzOiBTZWFyY2hBdHRyaWJ1dGVzO1xufVxuZXhwb3J0IGludGVyZmFjZSBTdWdnZXN0aW9uc0NsaWNrZWRVc2VyRXZlbnQge1xuICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5TdWdnZXN0aW9uQ2xpY2tlZDtcbiAgICBhdHRyaWJ1dGVzOiBTdWdnZXN0aW9uQ2xpY2tlZEF0dHJpYnV0ZXM7XG59XG5leHBvcnQgaW50ZXJmYWNlIEFwcExvYWRlZFVzZXJFdmVudCB7XG4gICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LkFwcExvYWRlZDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQXBwVW5sb2FkZWRFdmVudCB7XG4gICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LkFwcFVubG9hZGVkO1xufVxuZXhwb3J0IGludGVyZmFjZSBQYWdlVmlzaXRFdmVudCB7XG4gICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlBhZ2VWaXNpdDtcbiAgICBhdHRyaWJ1dGVzOiBQYWdlVmlzaXRBdHRyaWJ1dGVzO1xufVxuZXhwb3J0IGludGVyZmFjZSBGb3JtU3VibWl0dGVkIHtcbiAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuRm9ybVN1Ym1pdHRlZDtcbiAgICBhdHRyaWJ1dGVzOiBGb3JtU3VibWl0dGVkQXR0cmlidXRlcztcbn1cbmV4cG9ydCB0eXBlIFVzZXJFdmVudCA9IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxQaWNrPEFwaVVzZXJFdmVudCwgJ2V2ZW50X2lkJyB8ICdjYXRlZ29yeScgfCAnY3JlYXRlZF9hdCc+PiAmIChTdWdnZXN0aW9uc0NsaWNrZWRVc2VyRXZlbnQgfCBBcHBMb2FkZWRVc2VyRXZlbnQgfCBQRFBVc2VyRXZlbnQgfCBRdWVyeVR5cGVkVXNlckV2ZW50IHwgU2VhcmNoVXNlckV2ZW50IHwgQXBwVW5sb2FkZWRFdmVudCB8IFBMUFVzZXJFdmVudCB8IFBhZ2VWaXNpdEV2ZW50IHwgRm9ybVN1Ym1pdHRlZCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxJQUFXLGtCQUFnQjtDQUFDO09BQVc7T0FBd0I7Q0FBbUI7QUFDbEYsSUFBTSxrQkFBQTtDQUFBO09BQUE7T0FBQTtDQUFBO0FBQ04sSUFBVyxxQkFBbUI7Q0FBQztPQUFXO09BQTJCO0NBQWdCO0FBQ3JGLElBQVcseUJBQXVCO0NBQUM7T0FBVztPQUErQjtDQUFRO0FBQ3JGLElBQVcsNEJBQTBCO0NBQUM7T0FBVztPQUFjO0NBQUU7QUFDakUsSUFBTSxzQkFBQSxDQUFBLFdBQUEsa0JBQUE7QUFDTixJQUFXLGdDQUFjO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDekIsSUFBQSxzQkFBQTtDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDQSxJQUFXLGVBQWU7Q0FBQztPQUFXLGtCQUFrQjtPQUFnQixrQkFBVTtPQUFBO0NBQUE7QUFDbEYsSUFBQSxlQUFBO0NBQUE7T0FBQSxrQkFBQTtPQUFBO0NBQUE7QUFDQSxJQUFXLHNCQUFzQjtDQUFDO09BQVcsa0JBQWtCO09BQWtCO0NBQU87QUFDeEYsSUFBQSxrQkFBQTtDQUFBO09BQUEsa0JBQUE7T0FBQTtDQUFBO0FBQ0EsSUFBVyw4QkFBOEI7Q0FBQztPQUFXLGtCQUFrQjtPQUF5QjtDQUFBO0FBQ2hHLElBQVcscUJBQVksQ0FBQSxXQUFBLGtCQUFBLFVBQUE7QUFDdkIsSUFBQSxtQkFBQSxDQUFBLFdBQUEsa0JBQUEsWUFBQTtBQUNBLElBQVcsaUJBQWlCO0NBQUM7T0FBVyxrQkFBQztPQUFBO0NBQUE7QUFDekMsSUFBVyxnQkFBZ0I7Q0FBQztPQUFXLGtCQUFFO09BQUE7Q0FBQTtBQUN6QyxJQUFXLGNBQVk7Q0FBQztPQUFFO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBIn0=
|
|
@@ -2,7 +2,14 @@ import { CamelCasedPropertiesDeep } from "../utilityTypes/camelCasedPropertiesDe
|
|
|
2
2
|
import { FormType, PDPAttributes, PLPAttributes, PageVisitCategory, QueryTypedAttributes, SearchAttributes, SuggestionClickedAttributes, UserEvent, UserEventCategory } from "@spiffy-ai/commerce-api-client";
|
|
3
3
|
|
|
4
4
|
//#region src/application/models/api/userEvent.d.ts
|
|
5
|
-
interface PDPAttributes$1 extends CamelCasedPropertiesDeep<PDPAttributes> {
|
|
5
|
+
interface PDPAttributes$1 extends CamelCasedPropertiesDeep<PDPAttributes> {
|
|
6
|
+
/**
|
|
7
|
+
* Client-local only: never serialized to the backend (coreUserEventToApiUserEvent
|
|
8
|
+
* hand-picks fields and ignores this one). Lets the live add-to-cart chat message
|
|
9
|
+
* show a resolved product title instead of the raw productId.
|
|
10
|
+
*/
|
|
11
|
+
productTitle?: string;
|
|
12
|
+
}
|
|
6
13
|
interface PLPAttributes$1 extends CamelCasedPropertiesDeep<PLPAttributes> {}
|
|
7
14
|
interface SearchAttributes$1 extends CamelCasedPropertiesDeep<SearchAttributes> {}
|
|
8
15
|
interface QueryTypedAttributes$1 extends CamelCasedPropertiesDeep<QueryTypedAttributes> {
|
|
@@ -58,4 +65,4 @@ interface FormSubmitted {
|
|
|
58
65
|
type UserEvent$1 = CamelCasedPropertiesDeep<Pick<UserEvent, 'event_id' | 'category' | 'created_at'>> & (SuggestionsClickedUserEvent | AppLoadedUserEvent | PDPUserEvent | QueryTypedUserEvent | SearchUserEvent | AppUnloadedEvent | PLPUserEvent | PageVisitEvent | FormSubmitted);
|
|
59
66
|
//#endregion
|
|
60
67
|
export { AppLoadedUserEvent, AppUnloadedEvent, FormSubmitted, FormSubmittedAttributes$1 as FormSubmittedAttributes, PDPAttributes$1 as PDPAttributes, PDPUserEvent, PLPAttributes$1 as PLPAttributes, PLPUserEvent, PageVisitAttributes, PageVisitEvent, QueryTypedAttributes$1 as QueryTypedAttributes, QueryTypedUserEvent, SearchAttributes$1 as SearchAttributes, SearchUserEvent, SuggestionClickedAttributes$1 as SuggestionClickedAttributes, SuggestionsClickedUserEvent, UserEvent$1 as UserEvent, UserEventAttributes };
|
|
61
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlckV2ZW50LmQudHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvdXNlckV2ZW50LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUERQQXR0cmlidXRlcyBhcyBBcGlQRFBBdHRyaWJ1dGVzLCBQTFBBdHRyaWJ1dGVzIGFzIEFwaVBMUEF0dHJpYnV0ZXMsIFF1ZXJ5VHlwZWRBdHRyaWJ1dGVzIGFzIEFwaVF1ZXJ5VHlwZWRBdHRyaWJ1dGVzLCBTZWFyY2hBdHRyaWJ1dGVzIGFzIEFwaVNlYXJjaEF0dHJpYnV0ZXMsIFN1Z2dlc3Rpb25DbGlja2VkQXR0cmlidXRlcyBhcyBBcGlTdWdnZXN0aW9uQ2xpY2tlZEF0dHJpYnV0ZXMsIFVzZXJFdmVudCBhcyBBcGlVc2VyRXZlbnQsIEZvcm1UeXBlLCBQYWdlVmlzaXRDYXRlZ29yeSwgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy91dGlsaXR5VHlwZXMnO1xuZXhwb3J0IGludGVyZmFjZSBQRFBBdHRyaWJ1dGVzIGV4dGVuZHMgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEFwaVBEUEF0dHJpYnV0ZXM+
|
|
68
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlckV2ZW50LmQudHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvdXNlckV2ZW50LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUERQQXR0cmlidXRlcyBhcyBBcGlQRFBBdHRyaWJ1dGVzLCBQTFBBdHRyaWJ1dGVzIGFzIEFwaVBMUEF0dHJpYnV0ZXMsIFF1ZXJ5VHlwZWRBdHRyaWJ1dGVzIGFzIEFwaVF1ZXJ5VHlwZWRBdHRyaWJ1dGVzLCBTZWFyY2hBdHRyaWJ1dGVzIGFzIEFwaVNlYXJjaEF0dHJpYnV0ZXMsIFN1Z2dlc3Rpb25DbGlja2VkQXR0cmlidXRlcyBhcyBBcGlTdWdnZXN0aW9uQ2xpY2tlZEF0dHJpYnV0ZXMsIFVzZXJFdmVudCBhcyBBcGlVc2VyRXZlbnQsIEZvcm1UeXBlLCBQYWdlVmlzaXRDYXRlZ29yeSwgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy91dGlsaXR5VHlwZXMnO1xuZXhwb3J0IGludGVyZmFjZSBQRFBBdHRyaWJ1dGVzIGV4dGVuZHMgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEFwaVBEUEF0dHJpYnV0ZXM+IHtcbiAgICAvKipcbiAgICAgKiBDbGllbnQtbG9jYWwgb25seTogbmV2ZXIgc2VyaWFsaXplZCB0byB0aGUgYmFja2VuZCAoY29yZVVzZXJFdmVudFRvQXBpVXNlckV2ZW50XG4gICAgICogaGFuZC1waWNrcyBmaWVsZHMgYW5kIGlnbm9yZXMgdGhpcyBvbmUpLiBMZXRzIHRoZSBsaXZlIGFkZC10by1jYXJ0IGNoYXQgbWVzc2FnZVxuICAgICAqIHNob3cgYSByZXNvbHZlZCBwcm9kdWN0IHRpdGxlIGluc3RlYWQgb2YgdGhlIHJhdyBwcm9kdWN0SWQuXG4gICAgICovXG4gICAgcHJvZHVjdFRpdGxlPzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBQTFBBdHRyaWJ1dGVzIGV4dGVuZHMgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEFwaVBMUEF0dHJpYnV0ZXM+IHtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoQXR0cmlidXRlcyBleHRlbmRzIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxBcGlTZWFyY2hBdHRyaWJ1dGVzPiB7XG59XG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5VHlwZWRBdHRyaWJ1dGVzIGV4dGVuZHMgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEFwaVF1ZXJ5VHlwZWRBdHRyaWJ1dGVzPiB7XG4gICAgdXNlclR5cGVkPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXMge1xuICAgIGZpbGxlZFNjaGVtYTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgZm9ybVJlc3BvbnNlSWQ6IHN0cmluZztcbiAgICBmb3JtVHlwZTogRm9ybVR5cGU7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VWaXNpdEF0dHJpYnV0ZXMge1xuICAgIHVybDogc3RyaW5nO1xuICAgIHBhZ2VWaXNpdENhdGVnb3J5OiBQYWdlVmlzaXRDYXRlZ29yeTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU3VnZ2VzdGlvbkNsaWNrZWRBdHRyaWJ1dGVzIGV4dGVuZHMgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEFwaVN1Z2dlc3Rpb25DbGlja2VkQXR0cmlidXRlcz4ge1xuICAgIGNvbnRlbnQ/OiBzdHJpbmc7XG59XG5leHBvcnQgdHlwZSBVc2VyRXZlbnRBdHRyaWJ1dGVzID0gUERQQXR0cmlidXRlcyB8IFBMUEF0dHJpYnV0ZXMgfCBRdWVyeVR5cGVkQXR0cmlidXRlcyB8IFNlYXJjaEF0dHJpYnV0ZXMgfCBTdWdnZXN0aW9uQ2xpY2tlZEF0dHJpYnV0ZXMgfCBQYWdlVmlzaXRBdHRyaWJ1dGVzO1xuZXhwb3J0IGludGVyZmFjZSBQRFBVc2VyRXZlbnQge1xuICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5QZHBWaXNpdCB8IFVzZXJFdmVudENhdGVnb3J5LkFkZFRvQ2FydDtcbiAgICBhdHRyaWJ1dGVzOiBQRFBBdHRyaWJ1dGVzO1xufVxuZXhwb3J0IGludGVyZmFjZSBQTFBVc2VyRXZlbnQge1xuICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5QbHBWaXNpdDtcbiAgICBhdHRyaWJ1dGVzOiBQTFBBdHRyaWJ1dGVzO1xufVxuZXhwb3J0IGludGVyZmFjZSBRdWVyeVR5cGVkVXNlckV2ZW50IHtcbiAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUXVlcnlUeXBlZDtcbiAgICBhdHRyaWJ1dGVzOiBRdWVyeVR5cGVkQXR0cmlidXRlcztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoVXNlckV2ZW50IHtcbiAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuU2VhcmNoO1xuICAgIGF0dHJpYnV0ZXM6IFNlYXJjaEF0dHJpYnV0ZXM7XG59XG5leHBvcnQgaW50ZXJmYWNlIFN1Z2dlc3Rpb25zQ2xpY2tlZFVzZXJFdmVudCB7XG4gICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkO1xuICAgIGF0dHJpYnV0ZXM6IFN1Z2dlc3Rpb25DbGlja2VkQXR0cmlidXRlcztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQXBwTG9hZGVkVXNlckV2ZW50IHtcbiAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuQXBwTG9hZGVkO1xufVxuZXhwb3J0IGludGVyZmFjZSBBcHBVbmxvYWRlZEV2ZW50IHtcbiAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuQXBwVW5sb2FkZWQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VWaXNpdEV2ZW50IHtcbiAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUGFnZVZpc2l0O1xuICAgIGF0dHJpYnV0ZXM6IFBhZ2VWaXNpdEF0dHJpYnV0ZXM7XG59XG5leHBvcnQgaW50ZXJmYWNlIEZvcm1TdWJtaXR0ZWQge1xuICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5Gb3JtU3VibWl0dGVkO1xuICAgIGF0dHJpYnV0ZXM6IEZvcm1TdWJtaXR0ZWRBdHRyaWJ1dGVzO1xufVxuZXhwb3J0IHR5cGUgVXNlckV2ZW50ID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPFBpY2s8QXBpVXNlckV2ZW50LCAnZXZlbnRfaWQnIHwgJ2NhdGVnb3J5JyB8ICdjcmVhdGVkX2F0Jz4+ICYgKFN1Z2dlc3Rpb25zQ2xpY2tlZFVzZXJFdmVudCB8IEFwcExvYWRlZFVzZXJFdmVudCB8IFBEUFVzZXJFdmVudCB8IFF1ZXJ5VHlwZWRVc2VyRXZlbnQgfCBTZWFyY2hVc2VyRXZlbnQgfCBBcHBVbmxvYWRlZEV2ZW50IHwgUExQVXNlckV2ZW50IHwgUGFnZVZpc2l0RXZlbnQgfCBGb3JtU3VibWl0dGVkKTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLElBQVcsa0JBQWdCO0NBQUM7T0FBVztPQUF3QjtDQUFtQjtBQUNsRixJQUFNLGtCQUFBO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDTixJQUFXLHFCQUFtQjtDQUFDO09BQVc7T0FBMkI7Q0FBZ0I7QUFDckYsSUFBVyx5QkFBdUI7Q0FBQztPQUFXO09BQStCO0NBQVE7QUFDckYsSUFBVyw0QkFBMEI7Q0FBQztPQUFXO09BQWM7Q0FBRTtBQUNqRSxJQUFNLHNCQUFBLENBQUEsV0FBQSxrQkFBQTtBQUNOLElBQVcsZ0NBQWM7Q0FBQTtPQUFBO09BQUE7Q0FBQTtBQUN6QixJQUFBLHNCQUFBO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNBLElBQVcsZUFBZTtDQUFDO09BQVcsa0JBQWtCO09BQWdCLGtCQUFVO09BQUE7Q0FBQTtBQUNsRixJQUFBLGVBQUE7Q0FBQTtPQUFBLGtCQUFBO09BQUE7Q0FBQTtBQUNBLElBQVcsc0JBQXNCO0NBQUM7T0FBVyxrQkFBa0I7T0FBa0I7Q0FBTztBQUN4RixJQUFBLGtCQUFBO0NBQUE7T0FBQSxrQkFBQTtPQUFBO0NBQUE7QUFDQSxJQUFXLDhCQUE4QjtDQUFDO09BQVcsa0JBQWtCO09BQXlCO0NBQUE7QUFDaEcsSUFBVyxxQkFBWSxDQUFBLFdBQUEsa0JBQUEsVUFBQTtBQUN2QixJQUFBLG1CQUFBLENBQUEsV0FBQSxrQkFBQSxZQUFBO0FBQ0EsSUFBVyxpQkFBaUI7Q0FBQztPQUFXLGtCQUFDO09BQUE7Q0FBQTtBQUN6QyxJQUFXLGdCQUFnQjtDQUFDO09BQVcsa0JBQUU7T0FBQTtDQUFBO0FBQ3pDLElBQVcsY0FBWTtDQUFDO09BQUU7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUEifQ==
|
|
@@ -27,6 +27,7 @@ let FeatureGates = /* @__PURE__ */ function(FeatureGates$1) {
|
|
|
27
27
|
FeatureGates$1["IsAiSuggestionsVariantEnabled"] = "is_ai_suggestions_variant_enabled";
|
|
28
28
|
FeatureGates$1["IsAiSuggestionsVariantAEnabled"] = "is_ai_suggestions_variant_a_enabled";
|
|
29
29
|
FeatureGates$1["IsAiSuggestionsVariantBEnabled"] = "is_ai_suggestions_variant_b_enabled";
|
|
30
|
+
FeatureGates$1["IsAiSuggestionsStorefrontEnabled"] = "is_ai_suggestions_storefront_enabled";
|
|
30
31
|
FeatureGates$1["IsVoiceInputEnabled"] = "is_voice_input_enabled";
|
|
31
32
|
FeatureGates$1["UseUnifiedConfig"] = "use_unified_config";
|
|
32
33
|
return FeatureGates$1;
|
|
@@ -34,4 +35,4 @@ let FeatureGates = /* @__PURE__ */ function(FeatureGates$1) {
|
|
|
34
35
|
|
|
35
36
|
//#endregion
|
|
36
37
|
exports.FeatureGates = FeatureGates;
|
|
37
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZUdhdGVzLmNqcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2ZlYXR1cmVHYXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBGZWF0dXJlR2F0ZXMge1xuICBJc0NsaWVudFNlc3Npb25FbmFibGVkID0gJ2lzX2NsaWVudF9zZXNzaW9uX2VuYWJsZWQnLFxuICBJc1NhbGVzQWdlbnRFbmFibGVkID0gJ2lzX3NhbGVzX2FnZW50X2VuYWJsZWQnLFxuICBJc05ld0ZlYXR1cmVFbmFibGVkID0gJ2lzX25ld19mZWF0dXJlX2VuYWJsZWQnLFxuICAvLyBJc0ZpbmVUdW5lZE1vZGVsOGIgaXMgZGVmaW5lZCBoZXJlIGZvciB0aGUgc29sZSBwdXJwb3NlIG9mIGNvcnJlbGF0aW5nIGV2ZW50cyB0byBhIHNwZWNpZmljIG1vZGVsIGluIEFtcGxpdHVkZVxuICBJc0ZpbmVUdW5lZE1vZGVsOGIgPSAnaXNfZmluZV90dW5lZF9tb2RlbF84YicsXG4gIElzSW1hZ2VCYW5uZXJFbmFibGVkID0gJ2lzX2ltYWdlX2Jhbm5lcl9lbmFibGVkJyxcbiAgSXNPcmRlckxvb2t1cEVuYWJsZWQgPSAnaXNfb3JkZXJfbG9va3VwX2VuYWJsZWQnLFxuICBJc1N1bW1hcml6ZVJldmlld3NFbmFibGVkID0gJ2lzX3N1bW1hcml6ZV9yZXZpZXdzX2VuYWJsZWQnLFxuICBJc0dsb2JhbFNlYXJjaEVuYWJsZWQgPSAnaXNfZ2xvYmFsX3NlYXJjaF9lbmFibGVkJyxcbiAgSXNJbWFnZVByb21wdEVuYWJsZWQgPSAnaXNfaW1hZ2VfcHJvbXB0X2VuYWJsZWQnLFxuICBJc1dhdGVybWFya0VuYWJsZWQgPSAnaXNfd2F0ZXJtYXJrX2VuYWJsZWQnLFxuICBJc0luZmVyZW5jZVJlZ2lvbjAgPSAnaXNfaW5mZXJlbmNlX3JlZ2lvbl8wJyxcbiAgSXNDaGF0VmFyaWFudEVuYWJsZWQgPSAnaXNfY2hhdF92YXJpYW50X2VuYWJsZWQnLFxuICBJc0NoYXRWYXJpYW50QUVuYWJsZWQgPSAnaXNfY2hhdF92YXJpYW50X2FfZW5hYmxlZCcsXG4gIElzQ2hhdFZhcmlhbnRCRW5hYmxlZCA9ICdpc19jaGF0X3ZhcmlhbnRfYl9lbmFibGVkJyxcbiAgSXNVc2VyUXVlcnlBbHdheXNFbmFibGVkID0gJ2lzX3VzZXJfcXVlcnlfYWx3YXlzX2VuYWJsZWQnLFxuICBJc1NlYXJjaEF1dG9jb21wbGV0ZUVuYWJsZWQgPSAnaXNfc2VhcmNoX2F1dG9jb21wbGV0ZV9lbmFibGVkJyxcbiAgSXNFbXB0eURpdlBMUEVuYWJsZWQgPSAnaXNfZW1wdHlfZGl2X3BscF9lbmFibGVkJyxcbiAgSXNSZWNvbW1lbmRlZFByb2R1Y3RzRW5hYmxlZCA9ICdpc19yZWNvbW1lbmRlZF9wcm9kdWN0c19lbmFibGVkJyxcbiAgSXNDaGF0U2Nyb2xsUGF1c2VkID0gJ2lzX2NoYXRfc2Nyb2xsX3BhdXNlZCcsXG4gIElzU2Vzc2lvbkluU2VhcmNoUmVyYW5rZXJUZXN0ID0gJ2lzX3Nlc3Npb25faW5fc2VhcmNoX3JlcmFua2VyX3Rlc3QnLFxuICBJc1JlZmVycmVyQmFzZWRQcm9tcHRFbmFibGVkID0gJ2lzX3JlZmVycmVyX2Jhc2VkX3Byb21wdF9lbmFibGVkJyxcbiAgLy8gTW9kZWwgZXhwZXJpbWVudCBmbGFnc1xuICBJc0luTW9kZWxFeHBlcmltZW50ID0gJ2lzX2luX21vZGVsX2V4cGVyaW1lbnQnLFxuICBJc01vZGVsRXhwZXJpbWVudFRyZWF0bWVudCA9ICdpc19tb2RlbF9leHBlcmltZW50X3RyZWF0bWVudCcsXG4gIElzQWlTdWdnZXN0aW9uc1ZhcmlhbnRFbmFibGVkID0gJ2lzX2FpX3N1Z2dlc3Rpb25zX3ZhcmlhbnRfZW5hYmxlZCcsXG4gIElzQWlTdWdnZXN0aW9uc1ZhcmlhbnRBRW5hYmxlZCA9ICdpc19haV9zdWdnZXN0aW9uc192YXJpYW50X2FfZW5hYmxlZCcsXG4gIElzQWlTdWdnZXN0aW9uc1ZhcmlhbnRCRW5hYmxlZCA9ICdpc19haV9zdWdnZXN0aW9uc192YXJpYW50X2JfZW5hYmxlZCcsXG4gIC8vIFNlcnZlcyB0aGUgYWdlbnRpYyBzdG9yZWZyb250IChGdWxsUGFnZVNhbGVzQWdlbnRWMyB3ZWxjb21lIG92ZXJsYXkpXG4gIC8vIGluZGVwZW5kZW50bHkgb2YgdGhlIHBkcC9wbHAgdmFyaWFudF9iIGV4cGVyaW1lbnQuIFRoZSBiYWNrZW5kIHNlcnZlcyB0aGVcbiAgLy8gc3RvcmVmcm9udCB1bmRlciB0aGlzIGdhdGUgYW5kIGZhbGxzIGJhY2sgdG8gdmFyaWFudF9iIG9ubHkgdW50aWwgdGhpc1xuICAvLyBzaGlwcywgc28gYW4gb3JnIGNhbiBydW4gdGhlIHN0b3JlZnJvbnQgd2l0aG91dCBvcHRpbmcgcGRwL3BscCBpbnRvIHZhcmlhbnRfYi5cbiAgSXNBaVN1Z2dlc3Rpb25zU3RvcmVmcm9udEVuYWJsZWQgPSAnaXNfYWlfc3VnZ2VzdGlvbnNfc3RvcmVmcm9udF9lbmFibGVkJyxcbiAgSXNWb2ljZUlucHV0RW5hYmxlZCA9ICdpc192b2ljZV9pbnB1dF9lbmFibGVkJyxcbiAgLy8gU3RhdHNpZyBleHBlcmltZW50cyAvIHVuaWZpZWQgZ2V0V2lkZ2V0Q29uZmlnIGVuZHBvaW50IG1pZ3JhdGlvbi4gV2hlblxuICAvLyB0cnVlLCBFbnZpdmVDb25maWdTZXJ2aWNlIGNhbGxzIGdldFdpZGdldENvbmZpZyAoZXhwZXJpbWVudC1hd2FyZSlcbiAgLy8gaW5zdGVhZCBvZiB0aGUgbGVnYWN5IGdldFByb2R1Y3RzQ29uZmlnQnlWZXJzaW9uIC8gZ2V0Q29sb3JzQW5kRnJvbnRlbmRcbiAgLy8gcGF0aC5cbiAgVXNlVW5pZmllZENvbmZpZyA9ICd1c2VfdW5pZmllZF9jb25maWcnLFxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQVksd0RBQUw7QUFDTDtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUtBIn0=
|
|
@@ -26,9 +26,10 @@ declare enum FeatureGates {
|
|
|
26
26
|
IsAiSuggestionsVariantEnabled = "is_ai_suggestions_variant_enabled",
|
|
27
27
|
IsAiSuggestionsVariantAEnabled = "is_ai_suggestions_variant_a_enabled",
|
|
28
28
|
IsAiSuggestionsVariantBEnabled = "is_ai_suggestions_variant_b_enabled",
|
|
29
|
+
IsAiSuggestionsStorefrontEnabled = "is_ai_suggestions_storefront_enabled",
|
|
29
30
|
IsVoiceInputEnabled = "is_voice_input_enabled",
|
|
30
31
|
UseUnifiedConfig = "use_unified_config",
|
|
31
32
|
}
|
|
32
33
|
//#endregion
|
|
33
34
|
export { FeatureGates };
|
|
34
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZUdhdGVzLmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZmVhdHVyZUdhdGVzLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlY2xhcmUgZW51bSBGZWF0dXJlR2F0ZXMge1xuICAgIElzQ2xpZW50U2Vzc2lvbkVuYWJsZWQgPSBcImlzX2NsaWVudF9zZXNzaW9uX2VuYWJsZWRcIixcbiAgICBJc1NhbGVzQWdlbnRFbmFibGVkID0gXCJpc19zYWxlc19hZ2VudF9lbmFibGVkXCIsXG4gICAgSXNOZXdGZWF0dXJlRW5hYmxlZCA9IFwiaXNfbmV3X2ZlYXR1cmVfZW5hYmxlZFwiLFxuICAgIElzRmluZVR1bmVkTW9kZWw4YiA9IFwiaXNfZmluZV90dW5lZF9tb2RlbF84YlwiLFxuICAgIElzSW1hZ2VCYW5uZXJFbmFibGVkID0gXCJpc19pbWFnZV9iYW5uZXJfZW5hYmxlZFwiLFxuICAgIElzT3JkZXJMb29rdXBFbmFibGVkID0gXCJpc19vcmRlcl9sb29rdXBfZW5hYmxlZFwiLFxuICAgIElzU3VtbWFyaXplUmV2aWV3c0VuYWJsZWQgPSBcImlzX3N1bW1hcml6ZV9yZXZpZXdzX2VuYWJsZWRcIixcbiAgICBJc0dsb2JhbFNlYXJjaEVuYWJsZWQgPSBcImlzX2dsb2JhbF9zZWFyY2hfZW5hYmxlZFwiLFxuICAgIElzSW1hZ2VQcm9tcHRFbmFibGVkID0gXCJpc19pbWFnZV9wcm9tcHRfZW5hYmxlZFwiLFxuICAgIElzV2F0ZXJtYXJrRW5hYmxlZCA9IFwiaXNfd2F0ZXJtYXJrX2VuYWJsZWRcIixcbiAgICBJc0luZmVyZW5jZVJlZ2lvbjAgPSBcImlzX2luZmVyZW5jZV9yZWdpb25fMFwiLFxuICAgIElzQ2hhdFZhcmlhbnRFbmFibGVkID0gXCJpc19jaGF0X3ZhcmlhbnRfZW5hYmxlZFwiLFxuICAgIElzQ2hhdFZhcmlhbnRBRW5hYmxlZCA9IFwiaXNfY2hhdF92YXJpYW50X2FfZW5hYmxlZFwiLFxuICAgIElzQ2hhdFZhcmlhbnRCRW5hYmxlZCA9IFwiaXNfY2hhdF92YXJpYW50X2JfZW5hYmxlZFwiLFxuICAgIElzVXNlclF1ZXJ5QWx3YXlzRW5hYmxlZCA9IFwiaXNfdXNlcl9xdWVyeV9hbHdheXNfZW5hYmxlZFwiLFxuICAgIElzU2VhcmNoQXV0b2NvbXBsZXRlRW5hYmxlZCA9IFwiaXNfc2VhcmNoX2F1dG9jb21wbGV0ZV9lbmFibGVkXCIsXG4gICAgSXNFbXB0eURpdlBMUEVuYWJsZWQgPSBcImlzX2VtcHR5X2Rpdl9wbHBfZW5hYmxlZFwiLFxuICAgIElzUmVjb21tZW5kZWRQcm9kdWN0c0VuYWJsZWQgPSBcImlzX3JlY29tbWVuZGVkX3Byb2R1Y3RzX2VuYWJsZWRcIixcbiAgICBJc0NoYXRTY3JvbGxQYXVzZWQgPSBcImlzX2NoYXRfc2Nyb2xsX3BhdXNlZFwiLFxuICAgIElzU2Vzc2lvbkluU2VhcmNoUmVyYW5rZXJUZXN0ID0gXCJpc19zZXNzaW9uX2luX3NlYXJjaF9yZXJhbmtlcl90ZXN0XCIsXG4gICAgSXNSZWZlcnJlckJhc2VkUHJvbXB0RW5hYmxlZCA9IFwiaXNfcmVmZXJyZXJfYmFzZWRfcHJvbXB0X2VuYWJsZWRcIixcbiAgICBJc0luTW9kZWxFeHBlcmltZW50ID0gXCJpc19pbl9tb2RlbF9leHBlcmltZW50XCIsXG4gICAgSXNNb2RlbEV4cGVyaW1lbnRUcmVhdG1lbnQgPSBcImlzX21vZGVsX2V4cGVyaW1lbnRfdHJlYXRtZW50XCIsXG4gICAgSXNBaVN1Z2dlc3Rpb25zVmFyaWFudEVuYWJsZWQgPSBcImlzX2FpX3N1Z2dlc3Rpb25zX3ZhcmlhbnRfZW5hYmxlZFwiLFxuICAgIElzQWlTdWdnZXN0aW9uc1ZhcmlhbnRBRW5hYmxlZCA9IFwiaXNfYWlfc3VnZ2VzdGlvbnNfdmFyaWFudF9hX2VuYWJsZWRcIixcbiAgICBJc0FpU3VnZ2VzdGlvbnNWYXJpYW50QkVuYWJsZWQgPSBcImlzX2FpX3N1Z2dlc3Rpb25zX3ZhcmlhbnRfYl9lbmFibGVkXCIsXG4gICAgSXNBaVN1Z2dlc3Rpb25zU3RvcmVmcm9udEVuYWJsZWQgPSBcImlzX2FpX3N1Z2dlc3Rpb25zX3N0b3JlZnJvbnRfZW5hYmxlZFwiLFxuICAgIElzVm9pY2VJbnB1dEVuYWJsZWQgPSBcImlzX3ZvaWNlX2lucHV0X2VuYWJsZWRcIixcbiAgICBVc2VVbmlmaWVkQ29uZmlnID0gXCJ1c2VfdW5pZmllZF9jb25maWdcIlxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBVyxlQUFlLENBQUMsSUFBSSJ9
|
|
@@ -26,9 +26,10 @@ declare enum FeatureGates {
|
|
|
26
26
|
IsAiSuggestionsVariantEnabled = "is_ai_suggestions_variant_enabled",
|
|
27
27
|
IsAiSuggestionsVariantAEnabled = "is_ai_suggestions_variant_a_enabled",
|
|
28
28
|
IsAiSuggestionsVariantBEnabled = "is_ai_suggestions_variant_b_enabled",
|
|
29
|
+
IsAiSuggestionsStorefrontEnabled = "is_ai_suggestions_storefront_enabled",
|
|
29
30
|
IsVoiceInputEnabled = "is_voice_input_enabled",
|
|
30
31
|
UseUnifiedConfig = "use_unified_config",
|
|
31
32
|
}
|
|
32
33
|
//#endregion
|
|
33
34
|
export { FeatureGates };
|
|
34
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZUdhdGVzLmQudHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mZWF0dXJlR2F0ZXMuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVjbGFyZSBlbnVtIEZlYXR1cmVHYXRlcyB7XG4gICAgSXNDbGllbnRTZXNzaW9uRW5hYmxlZCA9IFwiaXNfY2xpZW50X3Nlc3Npb25fZW5hYmxlZFwiLFxuICAgIElzU2FsZXNBZ2VudEVuYWJsZWQgPSBcImlzX3NhbGVzX2FnZW50X2VuYWJsZWRcIixcbiAgICBJc05ld0ZlYXR1cmVFbmFibGVkID0gXCJpc19uZXdfZmVhdHVyZV9lbmFibGVkXCIsXG4gICAgSXNGaW5lVHVuZWRNb2RlbDhiID0gXCJpc19maW5lX3R1bmVkX21vZGVsXzhiXCIsXG4gICAgSXNJbWFnZUJhbm5lckVuYWJsZWQgPSBcImlzX2ltYWdlX2Jhbm5lcl9lbmFibGVkXCIsXG4gICAgSXNPcmRlckxvb2t1cEVuYWJsZWQgPSBcImlzX29yZGVyX2xvb2t1cF9lbmFibGVkXCIsXG4gICAgSXNTdW1tYXJpemVSZXZpZXdzRW5hYmxlZCA9IFwiaXNfc3VtbWFyaXplX3Jldmlld3NfZW5hYmxlZFwiLFxuICAgIElzR2xvYmFsU2VhcmNoRW5hYmxlZCA9IFwiaXNfZ2xvYmFsX3NlYXJjaF9lbmFibGVkXCIsXG4gICAgSXNJbWFnZVByb21wdEVuYWJsZWQgPSBcImlzX2ltYWdlX3Byb21wdF9lbmFibGVkXCIsXG4gICAgSXNXYXRlcm1hcmtFbmFibGVkID0gXCJpc193YXRlcm1hcmtfZW5hYmxlZFwiLFxuICAgIElzSW5mZXJlbmNlUmVnaW9uMCA9IFwiaXNfaW5mZXJlbmNlX3JlZ2lvbl8wXCIsXG4gICAgSXNDaGF0VmFyaWFudEVuYWJsZWQgPSBcImlzX2NoYXRfdmFyaWFudF9lbmFibGVkXCIsXG4gICAgSXNDaGF0VmFyaWFudEFFbmFibGVkID0gXCJpc19jaGF0X3ZhcmlhbnRfYV9lbmFibGVkXCIsXG4gICAgSXNDaGF0VmFyaWFudEJFbmFibGVkID0gXCJpc19jaGF0X3ZhcmlhbnRfYl9lbmFibGVkXCIsXG4gICAgSXNVc2VyUXVlcnlBbHdheXNFbmFibGVkID0gXCJpc191c2VyX3F1ZXJ5X2Fsd2F5c19lbmFibGVkXCIsXG4gICAgSXNTZWFyY2hBdXRvY29tcGxldGVFbmFibGVkID0gXCJpc19zZWFyY2hfYXV0b2NvbXBsZXRlX2VuYWJsZWRcIixcbiAgICBJc0VtcHR5RGl2UExQRW5hYmxlZCA9IFwiaXNfZW1wdHlfZGl2X3BscF9lbmFibGVkXCIsXG4gICAgSXNSZWNvbW1lbmRlZFByb2R1Y3RzRW5hYmxlZCA9IFwiaXNfcmVjb21tZW5kZWRfcHJvZHVjdHNfZW5hYmxlZFwiLFxuICAgIElzQ2hhdFNjcm9sbFBhdXNlZCA9IFwiaXNfY2hhdF9zY3JvbGxfcGF1c2VkXCIsXG4gICAgSXNTZXNzaW9uSW5TZWFyY2hSZXJhbmtlclRlc3QgPSBcImlzX3Nlc3Npb25faW5fc2VhcmNoX3JlcmFua2VyX3Rlc3RcIixcbiAgICBJc1JlZmVycmVyQmFzZWRQcm9tcHRFbmFibGVkID0gXCJpc19yZWZlcnJlcl9iYXNlZF9wcm9tcHRfZW5hYmxlZFwiLFxuICAgIElzSW5Nb2RlbEV4cGVyaW1lbnQgPSBcImlzX2luX21vZGVsX2V4cGVyaW1lbnRcIixcbiAgICBJc01vZGVsRXhwZXJpbWVudFRyZWF0bWVudCA9IFwiaXNfbW9kZWxfZXhwZXJpbWVudF90cmVhdG1lbnRcIixcbiAgICBJc0FpU3VnZ2VzdGlvbnNWYXJpYW50RW5hYmxlZCA9IFwiaXNfYWlfc3VnZ2VzdGlvbnNfdmFyaWFudF9lbmFibGVkXCIsXG4gICAgSXNBaVN1Z2dlc3Rpb25zVmFyaWFudEFFbmFibGVkID0gXCJpc19haV9zdWdnZXN0aW9uc192YXJpYW50X2FfZW5hYmxlZFwiLFxuICAgIElzQWlTdWdnZXN0aW9uc1ZhcmlhbnRCRW5hYmxlZCA9IFwiaXNfYWlfc3VnZ2VzdGlvbnNfdmFyaWFudF9iX2VuYWJsZWRcIixcbiAgICBJc0FpU3VnZ2VzdGlvbnNTdG9yZWZyb250RW5hYmxlZCA9IFwiaXNfYWlfc3VnZ2VzdGlvbnNfc3RvcmVmcm9udF9lbmFibGVkXCIsXG4gICAgSXNWb2ljZUlucHV0RW5hYmxlZCA9IFwiaXNfdm9pY2VfaW5wdXRfZW5hYmxlZFwiLFxuICAgIFVzZVVuaWZpZWRDb25maWcgPSBcInVzZV91bmlmaWVkX2NvbmZpZ1wiXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFXLGVBQWUsQ0FBQyxJQUFJIn0=
|
|
@@ -26,6 +26,7 @@ let FeatureGates = /* @__PURE__ */ function(FeatureGates$1) {
|
|
|
26
26
|
FeatureGates$1["IsAiSuggestionsVariantEnabled"] = "is_ai_suggestions_variant_enabled";
|
|
27
27
|
FeatureGates$1["IsAiSuggestionsVariantAEnabled"] = "is_ai_suggestions_variant_a_enabled";
|
|
28
28
|
FeatureGates$1["IsAiSuggestionsVariantBEnabled"] = "is_ai_suggestions_variant_b_enabled";
|
|
29
|
+
FeatureGates$1["IsAiSuggestionsStorefrontEnabled"] = "is_ai_suggestions_storefront_enabled";
|
|
29
30
|
FeatureGates$1["IsVoiceInputEnabled"] = "is_voice_input_enabled";
|
|
30
31
|
FeatureGates$1["UseUnifiedConfig"] = "use_unified_config";
|
|
31
32
|
return FeatureGates$1;
|
|
@@ -33,4 +34,4 @@ let FeatureGates = /* @__PURE__ */ function(FeatureGates$1) {
|
|
|
33
34
|
|
|
34
35
|
//#endregion
|
|
35
36
|
export { FeatureGates };
|
|
36
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZUdhdGVzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZmVhdHVyZUdhdGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEZlYXR1cmVHYXRlcyB7XG4gIElzQ2xpZW50U2Vzc2lvbkVuYWJsZWQgPSAnaXNfY2xpZW50X3Nlc3Npb25fZW5hYmxlZCcsXG4gIElzU2FsZXNBZ2VudEVuYWJsZWQgPSAnaXNfc2FsZXNfYWdlbnRfZW5hYmxlZCcsXG4gIElzTmV3RmVhdHVyZUVuYWJsZWQgPSAnaXNfbmV3X2ZlYXR1cmVfZW5hYmxlZCcsXG4gIC8vIElzRmluZVR1bmVkTW9kZWw4YiBpcyBkZWZpbmVkIGhlcmUgZm9yIHRoZSBzb2xlIHB1cnBvc2Ugb2YgY29ycmVsYXRpbmcgZXZlbnRzIHRvIGEgc3BlY2lmaWMgbW9kZWwgaW4gQW1wbGl0dWRlXG4gIElzRmluZVR1bmVkTW9kZWw4YiA9ICdpc19maW5lX3R1bmVkX21vZGVsXzhiJyxcbiAgSXNJbWFnZUJhbm5lckVuYWJsZWQgPSAnaXNfaW1hZ2VfYmFubmVyX2VuYWJsZWQnLFxuICBJc09yZGVyTG9va3VwRW5hYmxlZCA9ICdpc19vcmRlcl9sb29rdXBfZW5hYmxlZCcsXG4gIElzU3VtbWFyaXplUmV2aWV3c0VuYWJsZWQgPSAnaXNfc3VtbWFyaXplX3Jldmlld3NfZW5hYmxlZCcsXG4gIElzR2xvYmFsU2VhcmNoRW5hYmxlZCA9ICdpc19nbG9iYWxfc2VhcmNoX2VuYWJsZWQnLFxuICBJc0ltYWdlUHJvbXB0RW5hYmxlZCA9ICdpc19pbWFnZV9wcm9tcHRfZW5hYmxlZCcsXG4gIElzV2F0ZXJtYXJrRW5hYmxlZCA9ICdpc193YXRlcm1hcmtfZW5hYmxlZCcsXG4gIElzSW5mZXJlbmNlUmVnaW9uMCA9ICdpc19pbmZlcmVuY2VfcmVnaW9uXzAnLFxuICBJc0NoYXRWYXJpYW50RW5hYmxlZCA9ICdpc19jaGF0X3ZhcmlhbnRfZW5hYmxlZCcsXG4gIElzQ2hhdFZhcmlhbnRBRW5hYmxlZCA9ICdpc19jaGF0X3ZhcmlhbnRfYV9lbmFibGVkJyxcbiAgSXNDaGF0VmFyaWFudEJFbmFibGVkID0gJ2lzX2NoYXRfdmFyaWFudF9iX2VuYWJsZWQnLFxuICBJc1VzZXJRdWVyeUFsd2F5c0VuYWJsZWQgPSAnaXNfdXNlcl9xdWVyeV9hbHdheXNfZW5hYmxlZCcsXG4gIElzU2VhcmNoQXV0b2NvbXBsZXRlRW5hYmxlZCA9ICdpc19zZWFyY2hfYXV0b2NvbXBsZXRlX2VuYWJsZWQnLFxuICBJc0VtcHR5RGl2UExQRW5hYmxlZCA9ICdpc19lbXB0eV9kaXZfcGxwX2VuYWJsZWQnLFxuICBJc1JlY29tbWVuZGVkUHJvZHVjdHNFbmFibGVkID0gJ2lzX3JlY29tbWVuZGVkX3Byb2R1Y3RzX2VuYWJsZWQnLFxuICBJc0NoYXRTY3JvbGxQYXVzZWQgPSAnaXNfY2hhdF9zY3JvbGxfcGF1c2VkJyxcbiAgSXNTZXNzaW9uSW5TZWFyY2hSZXJhbmtlclRlc3QgPSAnaXNfc2Vzc2lvbl9pbl9zZWFyY2hfcmVyYW5rZXJfdGVzdCcsXG4gIElzUmVmZXJyZXJCYXNlZFByb21wdEVuYWJsZWQgPSAnaXNfcmVmZXJyZXJfYmFzZWRfcHJvbXB0X2VuYWJsZWQnLFxuICAvLyBNb2RlbCBleHBlcmltZW50IGZsYWdzXG4gIElzSW5Nb2RlbEV4cGVyaW1lbnQgPSAnaXNfaW5fbW9kZWxfZXhwZXJpbWVudCcsXG4gIElzTW9kZWxFeHBlcmltZW50VHJlYXRtZW50ID0gJ2lzX21vZGVsX2V4cGVyaW1lbnRfdHJlYXRtZW50JyxcbiAgSXNBaVN1Z2dlc3Rpb25zVmFyaWFudEVuYWJsZWQgPSAnaXNfYWlfc3VnZ2VzdGlvbnNfdmFyaWFudF9lbmFibGVkJyxcbiAgSXNBaVN1Z2dlc3Rpb25zVmFyaWFudEFFbmFibGVkID0gJ2lzX2FpX3N1Z2dlc3Rpb25zX3ZhcmlhbnRfYV9lbmFibGVkJyxcbiAgSXNBaVN1Z2dlc3Rpb25zVmFyaWFudEJFbmFibGVkID0gJ2lzX2FpX3N1Z2dlc3Rpb25zX3ZhcmlhbnRfYl9lbmFibGVkJyxcbiAgLy8gU2VydmVzIHRoZSBhZ2VudGljIHN0b3JlZnJvbnQgKEZ1bGxQYWdlU2FsZXNBZ2VudFYzIHdlbGNvbWUgb3ZlcmxheSlcbiAgLy8gaW5kZXBlbmRlbnRseSBvZiB0aGUgcGRwL3BscCB2YXJpYW50X2IgZXhwZXJpbWVudC4gVGhlIGJhY2tlbmQgc2VydmVzIHRoZVxuICAvLyBzdG9yZWZyb250IHVuZGVyIHRoaXMgZ2F0ZSBhbmQgZmFsbHMgYmFjayB0byB2YXJpYW50X2Igb25seSB1bnRpbCB0aGlzXG4gIC8vIHNoaXBzLCBzbyBhbiBvcmcgY2FuIHJ1biB0aGUgc3RvcmVmcm9udCB3aXRob3V0IG9wdGluZyBwZHAvcGxwIGludG8gdmFyaWFudF9iLlxuICBJc0FpU3VnZ2VzdGlvbnNTdG9yZWZyb250RW5hYmxlZCA9ICdpc19haV9zdWdnZXN0aW9uc19zdG9yZWZyb250X2VuYWJsZWQnLFxuICBJc1ZvaWNlSW5wdXRFbmFibGVkID0gJ2lzX3ZvaWNlX2lucHV0X2VuYWJsZWQnLFxuICAvLyBTdGF0c2lnIGV4cGVyaW1lbnRzIC8gdW5pZmllZCBnZXRXaWRnZXRDb25maWcgZW5kcG9pbnQgbWlncmF0aW9uLiBXaGVuXG4gIC8vIHRydWUsIEVudml2ZUNvbmZpZ1NlcnZpY2UgY2FsbHMgZ2V0V2lkZ2V0Q29uZmlnIChleHBlcmltZW50LWF3YXJlKVxuICAvLyBpbnN0ZWFkIG9mIHRoZSBsZWdhY3kgZ2V0UHJvZHVjdHNDb25maWdCeVZlcnNpb24gLyBnZXRDb2xvcnNBbmRGcm9udGVuZFxuICAvLyBwYXRoLlxuICBVc2VVbmlmaWVkQ29uZmlnID0gJ3VzZV91bmlmaWVkX2NvbmZpZycsXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFZLHdEQUFMO0FBQ0w7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFLQSJ9
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/application/models/graphql/queries/getProductOptionsQuery.ts
|
|
3
|
+
const getProductOptionsQuery = () => `
|
|
4
|
+
query($productId: String!) {
|
|
5
|
+
me {
|
|
6
|
+
productOptions(productId: $productId) {
|
|
7
|
+
productId
|
|
8
|
+
virtualParentId
|
|
9
|
+
title
|
|
10
|
+
options {
|
|
11
|
+
name
|
|
12
|
+
values
|
|
13
|
+
}
|
|
14
|
+
variants {
|
|
15
|
+
variantId
|
|
16
|
+
available
|
|
17
|
+
originalPrice
|
|
18
|
+
salePrice
|
|
19
|
+
imageUrl
|
|
20
|
+
url
|
|
21
|
+
options {
|
|
22
|
+
name
|
|
23
|
+
value
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
`;
|
|
30
|
+
|
|
31
|
+
//#endregion
|
|
32
|
+
exports.getProductOptionsQuery = getProductOptionsQuery;
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UHJvZHVjdE9wdGlvbnNRdWVyeS5janMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ncmFwaHFsL3F1ZXJpZXMvZ2V0UHJvZHVjdE9wdGlvbnNRdWVyeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBGZXRjaGVzIHZhcmlhbnQtbGV2ZWwgcHJvZHVjdCBkZXRhaWxzIChvcHRpb25zLCBhdmFpbGFiaWxpdHksIHByaWNpbmcsXG4vLyBpbWFnZXMpIGZvciBhIHNpbmdsZSBwcm9kdWN0LiBPbmx5IG1lYW5pbmdmdWwgZm9yIHByb2R1Y3RzIHRoYXQgb2ZmZXJcbi8vIHZhcmlhdGlvbnMg4oCUIG5vbi12YXJpYW50IFBEUCBzdXJmYWNlcyBzaG91bGQga2VlcCB1c2luZyB0aGUgUkVTVFxuLy8gL3YxL3Byb2R1Y3RzL3JldHJpZXZlIHBhdGggKENvbW1lcmNlQXBpQ2xpZW50LnJldHJpZXZlUHJvZHVjdHMpLlxuZXhwb3J0IGNvbnN0IGdldFByb2R1Y3RPcHRpb25zUXVlcnkgPSAoKSA9PiBgXG4gIHF1ZXJ5KCRwcm9kdWN0SWQ6IFN0cmluZyEpIHtcbiAgICBtZSB7XG4gICAgICBwcm9kdWN0T3B0aW9ucyhwcm9kdWN0SWQ6ICRwcm9kdWN0SWQpIHtcbiAgICAgICAgcHJvZHVjdElkXG4gICAgICAgIHZpcnR1YWxQYXJlbnRJZFxuICAgICAgICB0aXRsZVxuICAgICAgICBvcHRpb25zIHtcbiAgICAgICAgICBuYW1lXG4gICAgICAgICAgdmFsdWVzXG4gICAgICAgIH1cbiAgICAgICAgdmFyaWFudHMge1xuICAgICAgICAgIHZhcmlhbnRJZFxuICAgICAgICAgIGF2YWlsYWJsZVxuICAgICAgICAgIG9yaWdpbmFsUHJpY2VcbiAgICAgICAgICBzYWxlUHJpY2VcbiAgICAgICAgICBpbWFnZVVybFxuICAgICAgICAgIHVybFxuICAgICAgICAgIG9wdGlvbnMge1xuICAgICAgICAgICAgbmFtZVxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdFZhcmlhbnRPcHRpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdFZhcmlhbnQge1xuICB2YXJpYW50SWQ6IHN0cmluZztcbiAgYXZhaWxhYmxlOiBib29sZWFuO1xuICBvcmlnaW5hbFByaWNlPzogbnVtYmVyO1xuICBzYWxlUHJpY2U/OiBudW1iZXI7XG4gIGltYWdlVXJsPzogc3RyaW5nO1xuICB1cmw/OiBzdHJpbmc7XG4gIG9wdGlvbnM6IFByb2R1Y3RWYXJpYW50T3B0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdE9wdGlvbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWVzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0RGV0YWlscyB7XG4gIHByb2R1Y3RJZDogc3RyaW5nO1xuICB2aXJ0dWFsUGFyZW50SWQ/OiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIG9wdGlvbnM6IFByb2R1Y3RPcHRpb25bXTtcbiAgdmFyaWFudHM6IFByb2R1Y3RWYXJpYW50W107XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBSUEsTUFBYSwrQkFBK0IifQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//#region src/application/models/graphql/queries/getProductOptionsQuery.d.ts
|
|
2
|
+
interface ProductVariantOption {
|
|
3
|
+
name: string;
|
|
4
|
+
value: string;
|
|
5
|
+
}
|
|
6
|
+
interface ProductVariant {
|
|
7
|
+
variantId: string;
|
|
8
|
+
available: boolean;
|
|
9
|
+
originalPrice?: number;
|
|
10
|
+
salePrice?: number;
|
|
11
|
+
imageUrl?: string;
|
|
12
|
+
url?: string;
|
|
13
|
+
options: ProductVariantOption[];
|
|
14
|
+
}
|
|
15
|
+
interface ProductOption {
|
|
16
|
+
name: string;
|
|
17
|
+
values: string[];
|
|
18
|
+
}
|
|
19
|
+
interface ProductDetails {
|
|
20
|
+
productId: string;
|
|
21
|
+
virtualParentId?: string;
|
|
22
|
+
title: string;
|
|
23
|
+
options: ProductOption[];
|
|
24
|
+
variants: ProductVariant[];
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { ProductDetails, ProductOption, ProductVariant, ProductVariantOption };
|
|
28
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UHJvZHVjdE9wdGlvbnNRdWVyeS5kLmN0cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwvcXVlcmllcy9nZXRQcm9kdWN0T3B0aW9uc1F1ZXJ5LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlY2xhcmUgY29uc3QgZ2V0UHJvZHVjdE9wdGlvbnNRdWVyeTogKCkgPT4gc3RyaW5nO1xuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0VmFyaWFudE9wdGlvbiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RWYXJpYW50IHtcbiAgICB2YXJpYW50SWQ6IHN0cmluZztcbiAgICBhdmFpbGFibGU6IGJvb2xlYW47XG4gICAgb3JpZ2luYWxQcmljZT86IG51bWJlcjtcbiAgICBzYWxlUHJpY2U/OiBudW1iZXI7XG4gICAgaW1hZ2VVcmw/OiBzdHJpbmc7XG4gICAgdXJsPzogc3RyaW5nO1xuICAgIG9wdGlvbnM6IFByb2R1Y3RWYXJpYW50T3B0aW9uW107XG59XG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RPcHRpb24ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZXM6IHN0cmluZ1tdO1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0RGV0YWlscyB7XG4gICAgcHJvZHVjdElkOiBzdHJpbmc7XG4gICAgdmlydHVhbFBhcmVudElkPzogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgb3B0aW9uczogUHJvZHVjdE9wdGlvbltdO1xuICAgIHZhcmlhbnRzOiBQcm9kdWN0VmFyaWFudFtdO1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBQ0EsSUFBVyx1QkFBdUIsQ0FBQyxJQUFHO0FBQ3RDLElBQVcsaUJBQUssQ0FBQSxXQUFBLHFCQUFBO0FBQ2hCLElBQVcsZ0JBQU0sQ0FBQSxJQUFBO0FBQ2pCLElBQUEsaUJBQUE7Q0FBQTtPQUFBO09BQUE7Q0FBQSJ9
|