@envive-ai/react-hooks 0.2.6-alpha-9 → 0.2.6-alpha-arthur-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AmplitudeOperations-D2r56Ptr.js → AmplitudeOperations-CXU93q_4.js} +2 -2
- package/dist/{AmplitudeOperations-SkndCrhj.cjs → AmplitudeOperations-_uIb5QED.cjs} +2 -2
- package/dist/{NewOrgConfig-C9aQqGsb.js → NewOrgConfig-CUQGpmw9.js} +2 -2
- package/dist/{NewOrgConfig-CHkHRqHx.cjs → NewOrgConfig-DD0oloeK.cjs} +2 -2
- package/dist/{TrackComponentVisibleEvent-DjZUt7LR.cjs → TrackComponentVisibleEvent-D-hN3owz.cjs} +2 -2
- package/dist/{TrackComponentVisibleEvent-BIGvzk4f.js → TrackComponentVisibleEvent-D-pvNVOP.js} +2 -2
- package/dist/amplitudeContext-DFXeRauX.js +233 -0
- package/dist/amplitudeContext-DrFGH7Q7.cjs +249 -0
- package/dist/application/utils/index.d.cts +1 -1
- package/dist/atoms/app/index.d.cts +6 -6
- package/dist/atoms/app/index.d.ts +7 -7
- package/dist/atoms/atomStore/index.d.ts +1 -1
- package/dist/atoms/chat/index.d.cts +31 -31
- package/dist/atoms/chat/index.d.ts +32 -32
- package/dist/atoms/globalSearch/index.d.cts +6 -6
- package/dist/atoms/globalSearch/index.d.ts +5 -5
- package/dist/atoms/org/index.d.cts +15 -15
- package/dist/atoms/org/index.d.ts +16 -16
- package/dist/atoms/search/index.cjs +3 -3
- package/dist/atoms/search/index.d.cts +13 -13
- package/dist/atoms/search/index.d.ts +14 -14
- package/dist/atoms/search/index.js +3 -3
- package/dist/atoms/search/utils.cjs +1 -1
- package/dist/atoms/search/utils.d.ts +1 -1
- package/dist/atoms/search/utils.js +1 -1
- package/dist/{cdnContext-td-gAam0.js → cdnContext-D-qi0lub.js} +1 -1
- package/dist/{cdnContext-i5iYA8ig.cjs → cdnContext-DIVgBnsl.cjs} +1 -1
- package/dist/contexts/amplitudeContext/index.cjs +3 -3
- package/dist/contexts/amplitudeContext/index.js +3 -3
- package/dist/contexts/cdnContext/index.cjs +1 -1
- package/dist/contexts/cdnContext/index.js +1 -1
- package/dist/contexts/enviveConfigContext/index.cjs +1 -1
- package/dist/contexts/enviveConfigContext/index.d.cts +1 -1
- package/dist/contexts/enviveConfigContext/index.d.ts +1 -1
- package/dist/contexts/enviveConfigContext/index.js +1 -1
- package/dist/contexts/enviveCssContext/index.cjs +3 -3
- package/dist/contexts/enviveCssContext/index.js +3 -3
- package/dist/contexts/featureFlagContext/index.cjs +1 -1
- package/dist/contexts/featureFlagContext/index.js +1 -1
- package/dist/contexts/featureFlagServiceContext/index.cjs +1 -1
- package/dist/contexts/featureFlagServiceContext/index.js +1 -1
- package/dist/contexts/newOrgConfigContext/index.cjs +2 -2
- package/dist/contexts/newOrgConfigContext/index.js +2 -2
- package/dist/contexts/searchContext/index.cjs +3 -3
- package/dist/contexts/searchContext/index.js +3 -3
- package/dist/contexts/systemSettingsContext/index.d.cts +3 -3
- package/dist/enviveConfigContext-CIavPzcm.js +47 -0
- package/dist/enviveConfigContext-DHEs077z.cjs +62 -0
- package/dist/exceptions/index.d.cts +1 -1
- package/dist/{featureFlagServiceContext-Cvp7NlpC.js → featureFlagServiceContext-Dr8Cw23n.js} +1 -1
- package/dist/{featureFlagServiceContext-DHtkQAtq.cjs → featureFlagServiceContext-rxZhpdEj.cjs} +1 -1
- package/dist/hooks/AmplitudeOperations/index.cjs +4 -4
- package/dist/hooks/AmplitudeOperations/index.js +4 -4
- package/dist/hooks/AppDetails/index.d.cts +1 -1
- package/dist/hooks/CdnOperations/index.cjs +1 -1
- package/dist/hooks/CdnOperations/index.d.cts +1 -1
- package/dist/hooks/CdnOperations/index.js +1 -1
- package/dist/hooks/ChatToggle/index.cjs +3 -3
- package/dist/hooks/ChatToggle/index.js +3 -3
- package/dist/hooks/ChatToggleAnalytics/index.cjs +4 -4
- package/dist/hooks/ChatToggleAnalytics/index.d.cts +1 -1
- package/dist/hooks/ChatToggleAnalytics/index.d.ts +1 -1
- package/dist/hooks/ChatToggleAnalytics/index.js +4 -4
- package/dist/hooks/CustomerSupportHandoff/index.d.cts +1 -1
- package/dist/hooks/Debounce/index.d.cts +1 -1
- package/dist/hooks/Debounce/index.d.ts +1 -1
- package/dist/hooks/GrabAndScroll/index.d.cts +2 -2
- package/dist/hooks/ImageResolver/index.d.ts +1 -1
- package/dist/hooks/IsSmallScreen/index.d.cts +1 -1
- package/dist/hooks/NewOrgConfig/index.cjs +3 -3
- package/dist/hooks/NewOrgConfig/index.d.cts +2 -2
- package/dist/hooks/NewOrgConfig/index.d.ts +2 -2
- package/dist/hooks/NewOrgConfig/index.js +3 -3
- package/dist/hooks/Search/index.cjs +7 -7
- package/dist/hooks/Search/index.js +7 -7
- package/dist/hooks/SearchOperations/index.cjs +3 -3
- package/dist/hooks/SearchOperations/index.js +3 -3
- package/dist/hooks/ShopifyUrlOperations/index.d.cts +2 -2
- package/dist/hooks/ShopifyUrlOperations/index.d.ts +2 -2
- package/dist/hooks/SystemSettingsContext/index.d.cts +3 -3
- package/dist/hooks/SystemSettingsContext/index.d.ts +3 -3
- package/dist/hooks/TrackComponentVisibleEvent/index.cjs +4 -4
- package/dist/hooks/TrackComponentVisibleEvent/index.js +4 -4
- package/dist/hooks/UpdateAnalyticsProps/index.cjs +3 -3
- package/dist/hooks/UpdateAnalyticsProps/index.js +3 -3
- package/dist/hooks/utils.d.ts +1 -1
- package/dist/index-CMZcE7pk.d.cts +1 -1
- package/dist/index-CsmO1rDH.d.ts +1 -1
- package/dist/index-bEjLKG_Q.d.ts +1 -1
- package/dist/index-mv7KvWDq.d.ts +1 -1
- package/dist/interceptors/index.d.cts +1 -1
- package/dist/{newOrgConfigContext-Dt_W-wlK.js → newOrgConfigContext-BdzDnzUM.js} +2 -2
- package/dist/{newOrgConfigContext-Brsggue9.cjs → newOrgConfigContext-cWeJAT6E.cjs} +2 -2
- package/dist/nodeSelector-BYEAyrsj.d.cts +1 -1
- package/dist/{search-OWKKaQQj.js → search-CsXXamht.js} +3 -3
- package/dist/{search-CWkDtqQV.cjs → search-DHhDpeQU.cjs} +3 -3
- package/dist/{searchContext-B-rEZixl.js → searchContext-B5ZNLtvd.js} +3 -3
- package/dist/{searchContext-JCUBg-lA.cjs → searchContext-SFvF_Y8J.cjs} +3 -3
- package/dist/{searchServiceAdapter-B0h7psvh.js → searchServiceAdapter-BkvDIhV8.js} +1 -1
- package/dist/{searchServiceAdapter-BclWy4fE.cjs → searchServiceAdapter-C4zzBUl0.cjs} +1 -1
- package/dist/{utils-DQhbbAnt.js → utils-BRNaQkCK.js} +1 -1
- package/dist/{utils-CqVRbvfN.cjs → utils-Buo4KU5l.cjs} +1 -1
- package/package.json +1 -1
- package/src/contexts/amplitudeContext/amplitudeContext.tsx +4 -0
- package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +14 -7
- package/dist/amplitudeContext-B3DsV6IO.cjs +0 -248
- package/dist/amplitudeContext-S3JYCxr4.js +0 -232
- package/dist/enviveConfigContext-BZbGEgOW.js +0 -45
- package/dist/enviveConfigContext-BinpxTCy.cjs +0 -60
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
import { EventsDispatcher } from "./events-WOOrnUAx.js";
|
|
2
|
-
import { FeatureGates, LocalStorageKeys, OrgShortName, SpiffyEvent, SpiffyMetricsEventName } from "./dist-C38adNK1.js";
|
|
3
|
-
import { logger_default } from "./logger-BMVdhQOV.js";
|
|
4
|
-
import { amplitudeApiKeyAtom, contextSourceAtom, dataResidencyAtom, envAtom, identifyingPrefixAtom } from "./enviveConfig-Cwlp7-Qz.js";
|
|
5
|
-
import { orgAnalyticsGoogleAnalyticsConfigAtom } from "./org-CScQqL4k.js";
|
|
6
|
-
import { userIdAtom } from "./app-BT3g-mDp.js";
|
|
7
|
-
import { useLocalStorage } from "./localStorageContext-BFwvuEcf.js";
|
|
8
|
-
import { useEnviveConfig } from "./enviveConfigContext-BZbGEgOW.js";
|
|
9
|
-
import { useFeatureFlagService } from "./featureFlagServiceContext-Cvp7NlpC.js";
|
|
10
|
-
import React, { createContext, useCallback, useContext, useEffect, useMemo } from "react";
|
|
11
|
-
import { useAtomValue } from "jotai";
|
|
12
|
-
import { jsx } from "react/jsx-runtime";
|
|
13
|
-
import { createInstance } from "@amplitude/analytics-browser";
|
|
14
|
-
|
|
15
|
-
//#region src/contexts/amplitudeContext/amplitudeContext.tsx
|
|
16
|
-
const AmplitudeContext = createContext(null);
|
|
17
|
-
const AmplitudeProvider = ({ children }) => {
|
|
18
|
-
const userId = useAtomValue(userIdAtom);
|
|
19
|
-
const amplitudeApiKey = useAtomValue(amplitudeApiKeyAtom);
|
|
20
|
-
const dataResidency = useAtomValue(dataResidencyAtom);
|
|
21
|
-
const orgGaConfig = useAtomValue(orgAnalyticsGoogleAnalyticsConfigAtom);
|
|
22
|
-
const env = useAtomValue(envAtom);
|
|
23
|
-
const contextSource = useAtomValue(contextSourceAtom);
|
|
24
|
-
useAtomValue(identifyingPrefixAtom);
|
|
25
|
-
const { getItem } = useLocalStorage();
|
|
26
|
-
const { publicKey, featureOverrides, variantUrlOverride, variantInfoOverride, show, orgShortName, featureGates } = useEnviveConfig();
|
|
27
|
-
const { featureFlagService } = useFeatureFlagService();
|
|
28
|
-
const [amplitudeClient, setAmplitudeClient] = React.useState(void 0);
|
|
29
|
-
const [internalEventTrackingEnrichment, setInternalEventTrackingEnrichment] = React.useState(void 0);
|
|
30
|
-
const [supplementalDefaultProps, setSupplementalDefaultProps] = React.useState({});
|
|
31
|
-
const isReady = Boolean(userId && featureFlagService && amplitudeApiKey && userId);
|
|
32
|
-
const getDefaultTrackingProps = useCallback(() => {
|
|
33
|
-
const gatesProps = featureGates ? featureGates.reduce((acc, curr) => {
|
|
34
|
-
if (curr.name && curr.value != null) return {
|
|
35
|
-
...acc,
|
|
36
|
-
[`feature_gate.${curr.name}`]: curr.value
|
|
37
|
-
};
|
|
38
|
-
return acc;
|
|
39
|
-
}, {}) : {};
|
|
40
|
-
const experimentProps = {};
|
|
41
|
-
return {
|
|
42
|
-
...gatesProps,
|
|
43
|
-
...experimentProps,
|
|
44
|
-
...supplementalDefaultProps,
|
|
45
|
-
app_id: "commerce-chat-react-component",
|
|
46
|
-
chat_id: getItem(LocalStorageKeys.ChatId),
|
|
47
|
-
env: env || "unknown",
|
|
48
|
-
app_source: contextSource,
|
|
49
|
-
"org.short_name": orgShortName,
|
|
50
|
-
"user.id": userId,
|
|
51
|
-
"cdp.user_id": null,
|
|
52
|
-
"cdp.provider": null,
|
|
53
|
-
"event.source": "web-browser",
|
|
54
|
-
"event.type": "user-activity",
|
|
55
|
-
"event.id": null,
|
|
56
|
-
"event.channel": "web",
|
|
57
|
-
"event.timestamp": null
|
|
58
|
-
};
|
|
59
|
-
}, [
|
|
60
|
-
featureGates,
|
|
61
|
-
supplementalDefaultProps,
|
|
62
|
-
env,
|
|
63
|
-
contextSource,
|
|
64
|
-
orgShortName,
|
|
65
|
-
userId
|
|
66
|
-
]);
|
|
67
|
-
const eventPropsToPrefixedEventProps = useCallback((eventName, eventProps) => {
|
|
68
|
-
const prefix = eventName.toLowerCase().replace(/\s+/g, "_");
|
|
69
|
-
return Object.entries(eventProps).reduce((acc, [key, value$1]) => {
|
|
70
|
-
acc[`${prefix}.${key}`] = value$1;
|
|
71
|
-
return acc;
|
|
72
|
-
}, {});
|
|
73
|
-
}, []);
|
|
74
|
-
const amplitudeSessionReplayInit = useCallback(() => {
|
|
75
|
-
const isEnabled = Boolean(orgShortName === OrgShortName.UniqueVintage && featureFlagService?.isClientSessionEnabled() && featureFlagService?.isFeatureGateEnabled(FeatureGates.IsNewFeatureEnabled));
|
|
76
|
-
const sampleRate = 1;
|
|
77
|
-
try {
|
|
78
|
-
logger_default.logDebug(`[spiffy-ai] amplitude session-replay initializing isEnabled=${isEnabled} sampleRate=${sampleRate}`);
|
|
79
|
-
if (!isEnabled) return isEnabled;
|
|
80
|
-
return isEnabled;
|
|
81
|
-
} catch (e) {
|
|
82
|
-
logger_default.logError("[spiffy-ai] Error initializing amplitude session-replay", e);
|
|
83
|
-
return false;
|
|
84
|
-
}
|
|
85
|
-
}, [orgShortName, featureFlagService]);
|
|
86
|
-
const getEventTrackingEnrichment = useCallback(() => {
|
|
87
|
-
if (internalEventTrackingEnrichment !== void 0) return internalEventTrackingEnrichment;
|
|
88
|
-
const enrichment = {
|
|
89
|
-
name: "page-view-tracking-enrichment",
|
|
90
|
-
type: "enrichment",
|
|
91
|
-
setup: async () => void 0,
|
|
92
|
-
execute: async (event) => {
|
|
93
|
-
let enrichedEvent;
|
|
94
|
-
if (["[Amplitude] Page Viewed", `[Spiffy] ${SpiffyMetricsEventName.BundleLoaded}`].includes(event.event_type)) {
|
|
95
|
-
const globalProperties = {};
|
|
96
|
-
if (publicKey) globalProperties["globalProperties.publicKey"] = publicKey;
|
|
97
|
-
if (featureOverrides) Object.entries(featureOverrides).forEach(([key, value$1]) => {
|
|
98
|
-
globalProperties[`globalProperties.featureOverrides.${key}`] = String(value$1);
|
|
99
|
-
});
|
|
100
|
-
if (variantUrlOverride) globalProperties["globalProperties.variantUrlOverride"] = variantUrlOverride;
|
|
101
|
-
if (variantInfoOverride) globalProperties["globalProperties.variantInfoOverride"] = JSON.stringify(variantInfoOverride);
|
|
102
|
-
if (show != null) globalProperties["globalProperties.show"] = String(show);
|
|
103
|
-
const enabledFeatures = featureFlagService.getFeatureFlags();
|
|
104
|
-
const enabledFeaturesProperties = Object.entries(enabledFeatures).reduce((acc, [key, value$1]) => ({
|
|
105
|
-
...acc,
|
|
106
|
-
[`enabledFeatures.${key}`]: `${value$1}`
|
|
107
|
-
}), {});
|
|
108
|
-
const timingProperties = { "timing.enriched_at_ms": window.performance?.now() };
|
|
109
|
-
enrichedEvent = {
|
|
110
|
-
...event,
|
|
111
|
-
event_properties: {
|
|
112
|
-
...event.event_properties,
|
|
113
|
-
...getDefaultTrackingProps(),
|
|
114
|
-
...globalProperties,
|
|
115
|
-
...enabledFeaturesProperties,
|
|
116
|
-
...timingProperties
|
|
117
|
-
}
|
|
118
|
-
};
|
|
119
|
-
} else enrichedEvent = event;
|
|
120
|
-
EventsDispatcher.dispatch(SpiffyEvent.AMPLITUDE_EVENT, enrichedEvent);
|
|
121
|
-
return enrichedEvent;
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
setInternalEventTrackingEnrichment(enrichment);
|
|
125
|
-
return enrichment;
|
|
126
|
-
}, [
|
|
127
|
-
internalEventTrackingEnrichment,
|
|
128
|
-
getDefaultTrackingProps,
|
|
129
|
-
featureFlagService,
|
|
130
|
-
publicKey,
|
|
131
|
-
featureOverrides,
|
|
132
|
-
variantUrlOverride,
|
|
133
|
-
variantInfoOverride,
|
|
134
|
-
show
|
|
135
|
-
]);
|
|
136
|
-
useEffect(() => {
|
|
137
|
-
if (isReady && !amplitudeClient) {
|
|
138
|
-
const currentAmplitudeInstance = createInstance();
|
|
139
|
-
const isSessionsEnabled = amplitudeSessionReplayInit();
|
|
140
|
-
currentAmplitudeInstance.add(getEventTrackingEnrichment());
|
|
141
|
-
currentAmplitudeInstance.init(amplitudeApiKey, userId, {
|
|
142
|
-
serverZone: dataResidency,
|
|
143
|
-
trackingOptions: { ipAddress: true },
|
|
144
|
-
autocapture: {
|
|
145
|
-
attribution: true,
|
|
146
|
-
pageViews: { trackHistoryChanges: "pathOnly" },
|
|
147
|
-
sessions: isSessionsEnabled,
|
|
148
|
-
formInteractions: false,
|
|
149
|
-
fileDownloads: false
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
setAmplitudeClient(currentAmplitudeInstance);
|
|
153
|
-
}
|
|
154
|
-
}, [
|
|
155
|
-
isReady,
|
|
156
|
-
amplitudeClient,
|
|
157
|
-
amplitudeApiKey,
|
|
158
|
-
userId,
|
|
159
|
-
dataResidency,
|
|
160
|
-
amplitudeSessionReplayInit,
|
|
161
|
-
getEventTrackingEnrichment
|
|
162
|
-
]);
|
|
163
|
-
const trackEvent = useCallback(async ({ eventName, eventProps, eventGroups, alsoSendToGoogleAnalytics = false }) => {
|
|
164
|
-
logger_default.logDebug("Submitting event", eventName);
|
|
165
|
-
try {
|
|
166
|
-
const decoratedEventName = `[Spiffy] ${eventName}`;
|
|
167
|
-
if (!amplitudeClient) {
|
|
168
|
-
logger_default.logWarn("amplitude client undefined", void 0, { event_name: decoratedEventName });
|
|
169
|
-
return;
|
|
170
|
-
}
|
|
171
|
-
const eventData = JSON.stringify({
|
|
172
|
-
eventName,
|
|
173
|
-
eventProps,
|
|
174
|
-
created_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
175
|
-
});
|
|
176
|
-
const data = new TextEncoder().encode(eventData);
|
|
177
|
-
const hashBuffer = await crypto.subtle.digest("SHA-256", data);
|
|
178
|
-
const currentInsertId = Array.from(new Uint8Array(hashBuffer)).map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
179
|
-
logger_default.logDebug(`amplitude tracking ${decoratedEventName}`, null, {
|
|
180
|
-
event_name: decoratedEventName,
|
|
181
|
-
props: eventProps
|
|
182
|
-
});
|
|
183
|
-
amplitudeClient.track(decoratedEventName, {
|
|
184
|
-
...getDefaultTrackingProps(),
|
|
185
|
-
...eventProps,
|
|
186
|
-
...eventProps ? eventPropsToPrefixedEventProps(eventName, eventProps) : {}
|
|
187
|
-
}, {
|
|
188
|
-
...eventGroups,
|
|
189
|
-
insert_id: currentInsertId
|
|
190
|
-
});
|
|
191
|
-
if (alsoSendToGoogleAnalytics && orgGaConfig) {
|
|
192
|
-
logger_default.logDebug("[spiffy-ai] GA tracking", decoratedEventName);
|
|
193
|
-
if (window.dataLayer) window.dataLayer.push({
|
|
194
|
-
event: decoratedEventName,
|
|
195
|
-
eventProps
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
} catch (err) {
|
|
199
|
-
logger_default.logError("[spiffy-ai] Error tracking event", err, {
|
|
200
|
-
eventName,
|
|
201
|
-
eventProps
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
}, [
|
|
205
|
-
amplitudeClient,
|
|
206
|
-
getDefaultTrackingProps,
|
|
207
|
-
eventPropsToPrefixedEventProps,
|
|
208
|
-
orgGaConfig
|
|
209
|
-
]);
|
|
210
|
-
const value = useMemo(() => ({
|
|
211
|
-
trackEvent,
|
|
212
|
-
isReady,
|
|
213
|
-
setSupplementalDefaultProps: (props) => setSupplementalDefaultProps(props)
|
|
214
|
-
}), [
|
|
215
|
-
trackEvent,
|
|
216
|
-
isReady,
|
|
217
|
-
setSupplementalDefaultProps
|
|
218
|
-
]);
|
|
219
|
-
return /* @__PURE__ */ jsx(AmplitudeContext.Provider, {
|
|
220
|
-
value,
|
|
221
|
-
children
|
|
222
|
-
});
|
|
223
|
-
};
|
|
224
|
-
const useAmplitude = () => {
|
|
225
|
-
const context = useContext(AmplitudeContext);
|
|
226
|
-
if (!context) throw new Error("useAmplitude must be used within AmplitudeProvider");
|
|
227
|
-
return context;
|
|
228
|
-
};
|
|
229
|
-
|
|
230
|
-
//#endregion
|
|
231
|
-
export { AmplitudeProvider, useAmplitude };
|
|
232
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGl0dWRlQ29udGV4dC1TM0pZQ3hyNC5qcyIsIm5hbWVzIjpbIkFtcGxpdHVkZVByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfT4iLCJ2YWx1ZSIsImVucmljaG1lbnQ6IEVucmljaG1lbnRQbHVnaW4iLCJlbnJpY2hlZEV2ZW50OiBFdmVudCIsImdsb2JhbFByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4iLCJjdXJyZW50QW1wbGl0dWRlSW5zdGFuY2U6IEJyb3dzZXJDbGllbnQiXSwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dHMvYW1wbGl0dWRlQ29udGV4dC9hbXBsaXR1ZGVDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtcbiAgY3JlYXRlQ29udGV4dCxcbiAgdXNlQ29udGV4dCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZU1lbW8sXG4gIHVzZUVmZmVjdCxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VBdG9tVmFsdWUgfSBmcm9tIFwiam90YWlcIjtcbmltcG9ydCB7IGNyZWF0ZUluc3RhbmNlIH0gZnJvbSBcIkBhbXBsaXR1ZGUvYW5hbHl0aWNzLWJyb3dzZXJcIjtcbmltcG9ydCB7XG4gIEZlYXR1cmVHYXRlcyxcbiAgT3JnU2hvcnROYW1lLFxuICBMb2NhbFN0b3JhZ2VLZXlzLFxuICBTcGlmZnlFdmVudCxcbiAgQW1wbGl0dWRlQ29udGV4dFR5cGUsXG4gIFNwaWZmeU1ldHJpY3NFdmVudE5hbWUsXG4gIFRyYWNrRXZlbnRQYXJhbXMsXG59IGZyb20gXCJAZW52aXZlLWFpL3R5cGVzXCI7XG5pbXBvcnQge1xuICBhbXBsaXR1ZGVBcGlLZXlBdG9tLFxuICBjb250ZXh0U291cmNlQXRvbSxcbiAgZGF0YVJlc2lkZW5jeUF0b20sXG4gIGlkZW50aWZ5aW5nUHJlZml4QXRvbSxcbn0gZnJvbSBcInNyYy9hdG9tcy9lbnZpdmUvZW52aXZlQ29uZmlnXCI7XG5pbXBvcnQgeyB1c2VMb2NhbFN0b3JhZ2UgfSBmcm9tIFwic3JjL2NvbnRleHRzL2xvY2FsU3RvcmFnZUNvbnRleHRcIjtcbmltcG9ydCB7IG9yZ0FuYWx5dGljc0dvb2dsZUFuYWx5dGljc0NvbmZpZ0F0b20gfSBmcm9tIFwic3JjL2F0b21zL29yZy9vcmdBbmFseXRpY3NDb25maWdcIjtcbmltcG9ydCB7IHVzZXJJZEF0b20gfSBmcm9tIFwic3JjL2F0b21zL2FwcFwiO1xuaW1wb3J0IHsgZW52QXRvbSB9IGZyb20gXCJzcmMvYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZ1wiO1xuaW1wb3J0IExvZ2dlciBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEJyb3dzZXJDbGllbnQsXG4gIEVucmljaG1lbnRQbHVnaW4sXG4gIEV2ZW50LFxuICBTZXJ2ZXJab25lVHlwZSxcbn0gZnJvbSBcIkBhbXBsaXR1ZGUvYW5hbHl0aWNzLXR5cGVzXCI7XG5pbXBvcnQgeyB1c2VFbnZpdmVDb25maWcgfSBmcm9tIFwic3JjL2NvbnRleHRzL2Vudml2ZUNvbmZpZ0NvbnRleHQvZW52aXZlQ29uZmlnQ29udGV4dFwiO1xuaW1wb3J0IHsgdXNlRmVhdHVyZUZsYWdTZXJ2aWNlIH0gZnJvbSBcInNyYy9jb250ZXh0cy9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0L2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHRcIjtcbmltcG9ydCB7IEV2ZW50c0Rpc3BhdGNoZXIgfSBmcm9tIFwic3JjL2V2ZW50c1wiO1xuXG5jb25zdCBBbXBsaXR1ZGVDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxBbXBsaXR1ZGVDb250ZXh0VHlwZSB8IG51bGw+KG51bGwpO1xuXG5leHBvcnQgY29uc3QgQW1wbGl0dWRlUHJvdmlkZXI6IFJlYWN0LkZDPHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9PiA9ICh7XG4gIGNoaWxkcmVuLFxufSkgPT4ge1xuICBjb25zdCB1c2VySWQgPSB1c2VBdG9tVmFsdWUodXNlcklkQXRvbSk7XG4gIGNvbnN0IGFtcGxpdHVkZUFwaUtleSA9IHVzZUF0b21WYWx1ZShhbXBsaXR1ZGVBcGlLZXlBdG9tKTtcbiAgY29uc3QgZGF0YVJlc2lkZW5jeSA9IHVzZUF0b21WYWx1ZShkYXRhUmVzaWRlbmN5QXRvbSk7XG4gIGNvbnN0IG9yZ0dhQ29uZmlnID0gdXNlQXRvbVZhbHVlKG9yZ0FuYWx5dGljc0dvb2dsZUFuYWx5dGljc0NvbmZpZ0F0b20pO1xuICBjb25zdCBlbnYgPSB1c2VBdG9tVmFsdWUoZW52QXRvbSk7XG4gIGNvbnN0IGNvbnRleHRTb3VyY2UgPSB1c2VBdG9tVmFsdWUoY29udGV4dFNvdXJjZUF0b20pO1xuICBjb25zdCBpZGVudGlmeWluZ1ByZWZpeCA9IHVzZUF0b21WYWx1ZShpZGVudGlmeWluZ1ByZWZpeEF0b20pO1xuICBjb25zdCB7IGdldEl0ZW0gfSA9IHVzZUxvY2FsU3RvcmFnZSgpO1xuICBjb25zdCB7XG4gICAgcHVibGljS2V5LFxuICAgIGZlYXR1cmVPdmVycmlkZXMsXG4gICAgdmFyaWFudFVybE92ZXJyaWRlLFxuICAgIHZhcmlhbnRJbmZvT3ZlcnJpZGUsXG4gICAgc2hvdyxcbiAgICBvcmdTaG9ydE5hbWUsXG4gICAgZmVhdHVyZUdhdGVzLFxuICB9ID0gdXNlRW52aXZlQ29uZmlnKCk7XG5cbiAgY29uc3QgeyBmZWF0dXJlRmxhZ1NlcnZpY2UgfSA9IHVzZUZlYXR1cmVGbGFnU2VydmljZSgpO1xuXG4gIGNvbnN0IFthbXBsaXR1ZGVDbGllbnQsIHNldEFtcGxpdHVkZUNsaWVudF0gPSBSZWFjdC51c2VTdGF0ZTxcbiAgICBCcm93c2VyQ2xpZW50IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKTtcbiAgY29uc3QgW2ludGVybmFsRXZlbnRUcmFja2luZ0VucmljaG1lbnQsIHNldEludGVybmFsRXZlbnRUcmFja2luZ0VucmljaG1lbnRdID1cbiAgICBSZWFjdC51c2VTdGF0ZTxFbnJpY2htZW50UGx1Z2luIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBjb25zdCBbc3VwcGxlbWVudGFsRGVmYXVsdFByb3BzLCBzZXRTdXBwbGVtZW50YWxEZWZhdWx0UHJvcHNdID1cbiAgICBSZWFjdC51c2VTdGF0ZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oe30pO1xuXG4gIGNvbnN0IGlzUmVhZHkgPSBCb29sZWFuKFxuICAgIHVzZXJJZCAmJiBmZWF0dXJlRmxhZ1NlcnZpY2UgJiYgYW1wbGl0dWRlQXBpS2V5ICYmIHVzZXJJZFxuICApO1xuXG4gIGNvbnN0IGdldERlZmF1bHRUcmFja2luZ1Byb3BzID0gdXNlQ2FsbGJhY2soKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0+IHtcbiAgICBjb25zdCBnYXRlc1Byb3BzID0gZmVhdHVyZUdhdGVzXG4gICAgICA/IGZlYXR1cmVHYXRlcy5yZWR1Y2U8UmVjb3JkPHN0cmluZywgYm9vbGVhbj4+KChhY2MsIGN1cnIpID0+IHtcbiAgICAgICAgICBpZiAoY3Vyci5uYW1lICYmIGN1cnIudmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBbYGZlYXR1cmVfZ2F0ZS4ke2N1cnIubmFtZX1gXTogY3Vyci52YWx1ZSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSlcbiAgICAgIDoge307XG4gICAgY29uc3QgZXhwZXJpbWVudFByb3BzID0ge307IC8vIE5vIGRpcmVjdCBlcXVpdmFsZW50IGZvciBleHBlcmltZW50cyBpbiBFbnZpdmVDb25maWcgeWV0XG5cbiAgICBjb25zdCBvcmdMZXZlbEFtcGxpdHVkZVRyYWNraW5nUHJvcHMgPSB7XG4gICAgICAuLi5nYXRlc1Byb3BzLFxuICAgICAgLi4uZXhwZXJpbWVudFByb3BzLFxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ub3JnTGV2ZWxBbXBsaXR1ZGVUcmFja2luZ1Byb3BzLFxuICAgICAgLi4uc3VwcGxlbWVudGFsRGVmYXVsdFByb3BzLFxuICAgICAgLy8gVE9ETzogb3JnX2lkIGlzIG5vdCBkaXJlY3RseSBhdmFpbGFibGUgaW4gRW52aXZlQ29uZmlnLiBOZWVkIHRvIGZpbmQgYSBuZXcgc291cmNlIG9yIGRlcml2ZSBpdC5cbiAgICAgIC8vIG9yZ19pZDogb3JnQ29uZmlnPy5vcmc/Lm9yZz8uaWQsXG4gICAgICBhcHBfaWQ6IFwiY29tbWVyY2UtY2hhdC1yZWFjdC1jb21wb25lbnRcIixcbiAgICAgIGNoYXRfaWQ6IGdldEl0ZW0oTG9jYWxTdG9yYWdlS2V5cy5DaGF0SWQpLFxuICAgICAgZW52OiBlbnYgfHwgXCJ1bmtub3duXCIsXG4gICAgICBhcHBfc291cmNlOiBjb250ZXh0U291cmNlLFxuICAgICAgXCJvcmcuc2hvcnRfbmFtZVwiOiBvcmdTaG9ydE5hbWUsXG4gICAgICBcInVzZXIuaWRcIjogdXNlcklkLFxuICAgICAgXCJjZHAudXNlcl9pZFwiOiBudWxsLFxuICAgICAgXCJjZHAucHJvdmlkZXJcIjogbnVsbCxcbiAgICAgIFwiZXZlbnQuc291cmNlXCI6IFwid2ViLWJyb3dzZXJcIixcbiAgICAgIFwiZXZlbnQudHlwZVwiOiBcInVzZXItYWN0aXZpdHlcIixcbiAgICAgIFwiZXZlbnQuaWRcIjogbnVsbCxcbiAgICAgIFwiZXZlbnQuY2hhbm5lbFwiOiBcIndlYlwiLFxuICAgICAgXCJldmVudC50aW1lc3RhbXBcIjogbnVsbCxcbiAgICB9O1xuICB9LCBbXG4gICAgZmVhdHVyZUdhdGVzLFxuICAgIHN1cHBsZW1lbnRhbERlZmF1bHRQcm9wcyxcbiAgICBlbnYsXG4gICAgY29udGV4dFNvdXJjZSxcbiAgICBvcmdTaG9ydE5hbWUsXG4gICAgdXNlcklkLFxuICBdKTtcblxuICBjb25zdCBldmVudFByb3BzVG9QcmVmaXhlZEV2ZW50UHJvcHMgPSB1c2VDYWxsYmFjayhcbiAgICAoXG4gICAgICBldmVudE5hbWU6IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUsXG4gICAgICBldmVudFByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0+IHtcbiAgICAgIGNvbnN0IHByZWZpeCA9IGV2ZW50TmFtZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccysvZywgXCJfXCIpO1xuICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGV2ZW50UHJvcHMpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgYWNjW2Ake3ByZWZpeH0uJHtrZXl9YF0gPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcbiAgICB9LFxuICAgIFtdXG4gICk7XG5cbiAgY29uc3QgYW1wbGl0dWRlU2Vzc2lvblJlcGxheUluaXQgPSB1c2VDYWxsYmFjaygoKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgaXNFbmFibGVkID0gQm9vbGVhbihcbiAgICAgIG9yZ1Nob3J0TmFtZSA9PT0gT3JnU2hvcnROYW1lLlVuaXF1ZVZpbnRhZ2UgJiZcbiAgICAgICAgZmVhdHVyZUZsYWdTZXJ2aWNlPy5pc0NsaWVudFNlc3Npb25FbmFibGVkKCkgJiZcbiAgICAgICAgZmVhdHVyZUZsYWdTZXJ2aWNlPy5pc0ZlYXR1cmVHYXRlRW5hYmxlZChcbiAgICAgICAgICBGZWF0dXJlR2F0ZXMuSXNOZXdGZWF0dXJlRW5hYmxlZFxuICAgICAgICApXG4gICAgKTtcbiAgICBjb25zdCBzYW1wbGVSYXRlID0gMTtcblxuICAgIHRyeSB7XG4gICAgICBMb2dnZXIubG9nRGVidWcoXG4gICAgICAgIGBbc3BpZmZ5LWFpXSBhbXBsaXR1ZGUgc2Vzc2lvbi1yZXBsYXkgaW5pdGlhbGl6aW5nIGlzRW5hYmxlZD0ke2lzRW5hYmxlZH0gc2FtcGxlUmF0ZT0ke3NhbXBsZVJhdGV9YFxuICAgICAgKTtcblxuICAgICAgaWYgKCFpc0VuYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuIGlzRW5hYmxlZDtcbiAgICAgIH1cblxuICAgICAgLy8gYW1wbGl0dWRlSW5zdGFuY2UuYWRkKHNlc3Npb25SZXBsYXlQbHVnaW4oeyBzYW1wbGVSYXRlIH0pKTtcblxuICAgICAgcmV0dXJuIGlzRW5hYmxlZDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBMb2dnZXIubG9nRXJyb3IoXG4gICAgICAgIFwiW3NwaWZmeS1haV0gRXJyb3IgaW5pdGlhbGl6aW5nIGFtcGxpdHVkZSBzZXNzaW9uLXJlcGxheVwiLFxuICAgICAgICBlXG4gICAgICApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSwgW29yZ1Nob3J0TmFtZSwgZmVhdHVyZUZsYWdTZXJ2aWNlXSk7XG5cbiAgY29uc3QgZ2V0RXZlbnRUcmFja2luZ0VucmljaG1lbnQgPSB1c2VDYWxsYmFjaygoKTogRW5yaWNobWVudFBsdWdpbiA9PiB7XG4gICAgaWYgKGludGVybmFsRXZlbnRUcmFja2luZ0VucmljaG1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGludGVybmFsRXZlbnRUcmFja2luZ0VucmljaG1lbnQ7XG4gICAgfVxuXG4gICAgY29uc3QgZW5yaWNobWVudDogRW5yaWNobWVudFBsdWdpbiA9IHtcbiAgICAgIG5hbWU6IFwicGFnZS12aWV3LXRyYWNraW5nLWVucmljaG1lbnRcIixcbiAgICAgIHR5cGU6IFwiZW5yaWNobWVudFwiLFxuICAgICAgc2V0dXA6IGFzeW5jICgpID0+IHVuZGVmaW5lZCxcbiAgICAgIGV4ZWN1dGU6IGFzeW5jIChldmVudDogRXZlbnQpOiBQcm9taXNlPEV2ZW50PiA9PiB7XG4gICAgICAgIGxldCBlbnJpY2hlZEV2ZW50OiBFdmVudDtcblxuICAgICAgICBjb25zdCBldmVudHNUb0VucmljaCA9IFtcbiAgICAgICAgICBcIltBbXBsaXR1ZGVdIFBhZ2UgVmlld2VkXCIsXG4gICAgICAgICAgYFtTcGlmZnldICR7U3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5CdW5kbGVMb2FkZWR9YCxcbiAgICAgICAgXTtcblxuICAgICAgICBpZiAoZXZlbnRzVG9FbnJpY2guaW5jbHVkZXMoZXZlbnQuZXZlbnRfdHlwZSkpIHtcbiAgICAgICAgICBjb25zdCBnbG9iYWxQcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICAgICAgICBpZiAocHVibGljS2V5KSB7XG4gICAgICAgICAgICBnbG9iYWxQcm9wZXJ0aWVzW1wiZ2xvYmFsUHJvcGVydGllcy5wdWJsaWNLZXlcIl0gPSBwdWJsaWNLZXk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChmZWF0dXJlT3ZlcnJpZGVzKSB7XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhmZWF0dXJlT3ZlcnJpZGVzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgZ2xvYmFsUHJvcGVydGllc1tgZ2xvYmFsUHJvcGVydGllcy5mZWF0dXJlT3ZlcnJpZGVzLiR7a2V5fWBdID1cbiAgICAgICAgICAgICAgICBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh2YXJpYW50VXJsT3ZlcnJpZGUpIHtcbiAgICAgICAgICAgIGdsb2JhbFByb3BlcnRpZXNbXCJnbG9iYWxQcm9wZXJ0aWVzLnZhcmlhbnRVcmxPdmVycmlkZVwiXSA9XG4gICAgICAgICAgICAgIHZhcmlhbnRVcmxPdmVycmlkZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHZhcmlhbnRJbmZvT3ZlcnJpZGUpIHtcbiAgICAgICAgICAgIGdsb2JhbFByb3BlcnRpZXNbXCJnbG9iYWxQcm9wZXJ0aWVzLnZhcmlhbnRJbmZvT3ZlcnJpZGVcIl0gPVxuICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh2YXJpYW50SW5mb092ZXJyaWRlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHNob3cgIT0gbnVsbCkge1xuICAgICAgICAgICAgZ2xvYmFsUHJvcGVydGllc1tcImdsb2JhbFByb3BlcnRpZXMuc2hvd1wiXSA9IFN0cmluZyhzaG93KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBlbmFibGVkRmVhdHVyZXMgPSBmZWF0dXJlRmxhZ1NlcnZpY2UhLmdldEZlYXR1cmVGbGFncygpO1xuICAgICAgICAgIGNvbnN0IGVuYWJsZWRGZWF0dXJlc1Byb3BlcnRpZXMgPSBPYmplY3QuZW50cmllcyhcbiAgICAgICAgICAgIGVuYWJsZWRGZWF0dXJlc1xuICAgICAgICAgICkucmVkdWNlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxuICAgICAgICAgICAgKGFjYywgW2tleSwgdmFsdWVdKSA9PiAoe1xuICAgICAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgICAgIFtgZW5hYmxlZEZlYXR1cmVzLiR7a2V5fWBdOiBgJHt2YWx1ZX1gLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB7fVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCB0aW1pbmdQcm9wZXJ0aWVzID0ge1xuICAgICAgICAgICAgXCJ0aW1pbmcuZW5yaWNoZWRfYXRfbXNcIjogd2luZG93LnBlcmZvcm1hbmNlPy5ub3coKSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgZW5yaWNoZWRFdmVudCA9IHtcbiAgICAgICAgICAgIC4uLmV2ZW50LFxuICAgICAgICAgICAgZXZlbnRfcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAuLi5ldmVudC5ldmVudF9wcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAuLi5nZXREZWZhdWx0VHJhY2tpbmdQcm9wcygpLFxuICAgICAgICAgICAgICAuLi5nbG9iYWxQcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAuLi5lbmFibGVkRmVhdHVyZXNQcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAuLi50aW1pbmdQcm9wZXJ0aWVzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVucmljaGVkRXZlbnQgPSBldmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEV2ZW50c0Rpc3BhdGNoZXIuZGlzcGF0Y2goU3BpZmZ5RXZlbnQuQU1QTElUVURFX0VWRU5ULCBlbnJpY2hlZEV2ZW50KTtcblxuICAgICAgICByZXR1cm4gZW5yaWNoZWRFdmVudDtcbiAgICAgIH0sXG4gICAgfTtcbiAgICBzZXRJbnRlcm5hbEV2ZW50VHJhY2tpbmdFbnJpY2htZW50KGVucmljaG1lbnQpO1xuICAgIHJldHVybiBlbnJpY2htZW50O1xuICB9LCBbXG4gICAgaW50ZXJuYWxFdmVudFRyYWNraW5nRW5yaWNobWVudCxcbiAgICBnZXREZWZhdWx0VHJhY2tpbmdQcm9wcyxcbiAgICBmZWF0dXJlRmxhZ1NlcnZpY2UsXG4gICAgcHVibGljS2V5LFxuICAgIGZlYXR1cmVPdmVycmlkZXMsXG4gICAgdmFyaWFudFVybE92ZXJyaWRlLFxuICAgIHZhcmlhbnRJbmZvT3ZlcnJpZGUsXG4gICAgc2hvdyxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNSZWFkeSAmJiAhYW1wbGl0dWRlQ2xpZW50KSB7XG4gICAgICBjb25zdCBjdXJyZW50QW1wbGl0dWRlSW5zdGFuY2U6IEJyb3dzZXJDbGllbnQgPSBjcmVhdGVJbnN0YW5jZSgpO1xuICAgICAgY29uc3QgaXNTZXNzaW9uc0VuYWJsZWQgPSBhbXBsaXR1ZGVTZXNzaW9uUmVwbGF5SW5pdCgpO1xuICAgICAgY3VycmVudEFtcGxpdHVkZUluc3RhbmNlLmFkZChnZXRFdmVudFRyYWNraW5nRW5yaWNobWVudCgpKTtcbiAgICAgIGN1cnJlbnRBbXBsaXR1ZGVJbnN0YW5jZS5pbml0KGFtcGxpdHVkZUFwaUtleSEsIHVzZXJJZCEsIHtcbiAgICAgICAgc2VydmVyWm9uZTogZGF0YVJlc2lkZW5jeSBhcyBTZXJ2ZXJab25lVHlwZSxcbiAgICAgICAgdHJhY2tpbmdPcHRpb25zOiB7XG4gICAgICAgICAgaXBBZGRyZXNzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBhdXRvY2FwdHVyZToge1xuICAgICAgICAgIGF0dHJpYnV0aW9uOiB0cnVlLFxuICAgICAgICAgIHBhZ2VWaWV3czoge1xuICAgICAgICAgICAgdHJhY2tIaXN0b3J5Q2hhbmdlczogXCJwYXRoT25seVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2Vzc2lvbnM6IGlzU2Vzc2lvbnNFbmFibGVkLFxuICAgICAgICAgIGZvcm1JbnRlcmFjdGlvbnM6IGZhbHNlLFxuICAgICAgICAgIGZpbGVEb3dubG9hZHM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBzZXRBbXBsaXR1ZGVDbGllbnQoY3VycmVudEFtcGxpdHVkZUluc3RhbmNlKTtcbiAgICB9XG4gIH0sIFtcbiAgICBpc1JlYWR5LFxuICAgIGFtcGxpdHVkZUNsaWVudCxcbiAgICBhbXBsaXR1ZGVBcGlLZXksXG4gICAgdXNlcklkLFxuICAgIGRhdGFSZXNpZGVuY3ksXG4gICAgYW1wbGl0dWRlU2Vzc2lvblJlcGxheUluaXQsXG4gICAgZ2V0RXZlbnRUcmFja2luZ0VucmljaG1lbnQsXG4gIF0pO1xuXG4gIGNvbnN0IHRyYWNrRXZlbnQgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoe1xuICAgICAgZXZlbnROYW1lLFxuICAgICAgZXZlbnRQcm9wcyxcbiAgICAgIGV2ZW50R3JvdXBzLFxuICAgICAgYWxzb1NlbmRUb0dvb2dsZUFuYWx5dGljcyA9IGZhbHNlLFxuICAgIH06IFRyYWNrRXZlbnRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIExvZ2dlci5sb2dEZWJ1ZyhcIlN1Ym1pdHRpbmcgZXZlbnRcIiwgZXZlbnROYW1lKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRlY29yYXRlZEV2ZW50TmFtZSA9IGBbU3BpZmZ5XSAke2V2ZW50TmFtZX1gO1xuXG4gICAgICAgIGlmICghYW1wbGl0dWRlQ2xpZW50KSB7XG4gICAgICAgICAgTG9nZ2VyLmxvZ1dhcm4oXCJhbXBsaXR1ZGUgY2xpZW50IHVuZGVmaW5lZFwiLCB1bmRlZmluZWQsIHtcbiAgICAgICAgICAgIGV2ZW50X25hbWU6IGRlY29yYXRlZEV2ZW50TmFtZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBldmVudERhdGEgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgZXZlbnROYW1lLFxuICAgICAgICAgIGV2ZW50UHJvcHMsXG4gICAgICAgICAgY3JlYXRlZF9hdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuICAgICAgICBjb25zdCBkYXRhID0gZW5jb2Rlci5lbmNvZGUoZXZlbnREYXRhKTtcbiAgICAgICAgLy8gY2FsY3VsYXRlIGEgaGFzaCBvZiB0aGUgZXZlbnQgcHJvcGVydGllcyB0byB1c2UgYXMgdGhlIGluc2VydF9pZCBzbyB0aGF0IGR1cGxpY2F0ZSBldmVudHNcbiAgICAgICAgLy8gYXJlIGF1dG9tYXRpY2FsbHkgZHJvcHBlZCBieSBBbXBsaXR1ZGVcbiAgICAgICAgY29uc3QgaGFzaEJ1ZmZlciA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KFwiU0hBLTI1NlwiLCBkYXRhKTtcbiAgICAgICAgY29uc3QgaGFzaEFycmF5ID0gQXJyYXkuZnJvbShuZXcgVWludDhBcnJheShoYXNoQnVmZmVyKSk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbnNlcnRJZCA9IGhhc2hBcnJheVxuICAgICAgICAgIC5tYXAoKGIpID0+IGIudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIFwiMFwiKSlcbiAgICAgICAgICAuam9pbihcIlwiKTtcblxuICAgICAgICBMb2dnZXIubG9nRGVidWcoYGFtcGxpdHVkZSB0cmFja2luZyAke2RlY29yYXRlZEV2ZW50TmFtZX1gLCBudWxsLCB7XG4gICAgICAgICAgZXZlbnRfbmFtZTogZGVjb3JhdGVkRXZlbnROYW1lLFxuICAgICAgICAgIHByb3BzOiBldmVudFByb3BzLFxuICAgICAgICB9KTtcblxuICAgICAgICBhbXBsaXR1ZGVDbGllbnQudHJhY2soXG4gICAgICAgICAgZGVjb3JhdGVkRXZlbnROYW1lLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLmdldERlZmF1bHRUcmFja2luZ1Byb3BzKCksXG4gICAgICAgICAgICAuLi5ldmVudFByb3BzLFxuICAgICAgICAgICAgLi4uKGV2ZW50UHJvcHNcbiAgICAgICAgICAgICAgPyBldmVudFByb3BzVG9QcmVmaXhlZEV2ZW50UHJvcHMoZXZlbnROYW1lLCBldmVudFByb3BzKVxuICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLmV2ZW50R3JvdXBzLFxuICAgICAgICAgICAgaW5zZXJ0X2lkOiBjdXJyZW50SW5zZXJ0SWQsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChhbHNvU2VuZFRvR29vZ2xlQW5hbHl0aWNzICYmIG9yZ0dhQ29uZmlnKSB7XG4gICAgICAgICAgLy8gVE9ETzogQWRkIGluIHdpbmRvd0RhdGFMYXllclNlcnZpY2Ugb3IgY29udGV4dCBhbHRlcm5hdGl2ZSBhbmQgaG9vayBpdCB1cCBoZXJlXG4gICAgICAgICAgTG9nZ2VyLmxvZ0RlYnVnKFwiW3NwaWZmeS1haV0gR0EgdHJhY2tpbmdcIiwgZGVjb3JhdGVkRXZlbnROYW1lKTtcbiAgICAgICAgICBpZiAod2luZG93LmRhdGFMYXllcikge1xuICAgICAgICAgICAgKHdpbmRvdy5kYXRhTGF5ZXIgYXMgYW55W10pLnB1c2goe1xuICAgICAgICAgICAgICBldmVudDogZGVjb3JhdGVkRXZlbnROYW1lLFxuICAgICAgICAgICAgICBldmVudFByb3BzOiBldmVudFByb3BzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgTG9nZ2VyLmxvZ0Vycm9yKFwiW3NwaWZmeS1haV0gRXJyb3IgdHJhY2tpbmcgZXZlbnRcIiwgZXJyLCB7XG4gICAgICAgICAgZXZlbnROYW1lLFxuICAgICAgICAgIGV2ZW50UHJvcHMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG4gICAgW1xuICAgICAgYW1wbGl0dWRlQ2xpZW50LFxuICAgICAgZ2V0RGVmYXVsdFRyYWNraW5nUHJvcHMsXG4gICAgICBldmVudFByb3BzVG9QcmVmaXhlZEV2ZW50UHJvcHMsXG4gICAgICBvcmdHYUNvbmZpZyxcbiAgICBdXG4gICk7XG5cbiAgY29uc3QgdmFsdWUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICB0cmFja0V2ZW50LFxuICAgICAgaXNSZWFkeSxcbiAgICAgIHNldFN1cHBsZW1lbnRhbERlZmF1bHRQcm9wczogKHByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT5cbiAgICAgICAgc2V0U3VwcGxlbWVudGFsRGVmYXVsdFByb3BzKHByb3BzKSxcbiAgICB9KSxcbiAgICBbdHJhY2tFdmVudCwgaXNSZWFkeSwgc2V0U3VwcGxlbWVudGFsRGVmYXVsdFByb3BzXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEFtcGxpdHVkZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0FtcGxpdHVkZUNvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlQW1wbGl0dWRlID0gKCkgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChBbXBsaXR1ZGVDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwidXNlQW1wbGl0dWRlIG11c3QgYmUgdXNlZCB3aXRoaW4gQW1wbGl0dWRlUHJvdmlkZXJcIik7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUF1Q0EsTUFBTSxtQkFBbUIsY0FBMkMsS0FBSztBQUV6RSxNQUFhQSxxQkFBOEQsRUFDekUsZUFDSTtDQUNKLE1BQU0sU0FBUyxhQUFhLFdBQVc7Q0FDdkMsTUFBTSxrQkFBa0IsYUFBYSxvQkFBb0I7Q0FDekQsTUFBTSxnQkFBZ0IsYUFBYSxrQkFBa0I7Q0FDckQsTUFBTSxjQUFjLGFBQWEsc0NBQXNDO0NBQ3ZFLE1BQU0sTUFBTSxhQUFhLFFBQVE7Q0FDakMsTUFBTSxnQkFBZ0IsYUFBYSxrQkFBa0I7QUFDM0IsY0FBYSxzQkFBc0I7Q0FDN0QsTUFBTSxFQUFFLFlBQVksaUJBQWlCO0NBQ3JDLE1BQU0sRUFDSixXQUNBLGtCQUNBLG9CQUNBLHFCQUNBLE1BQ0EsY0FDQSxpQkFDRSxpQkFBaUI7Q0FFckIsTUFBTSxFQUFFLHVCQUF1Qix1QkFBdUI7Q0FFdEQsTUFBTSxDQUFDLGlCQUFpQixzQkFBc0IsTUFBTSxTQUVsRCxPQUFVO0NBQ1osTUFBTSxDQUFDLGlDQUFpQyxzQ0FDdEMsTUFBTSxTQUF1QyxPQUFVO0NBQ3pELE1BQU0sQ0FBQywwQkFBMEIsK0JBQy9CLE1BQU0sU0FBa0MsRUFBRSxDQUFDO0NBRTdDLE1BQU0sVUFBVSxRQUNkLFVBQVUsc0JBQXNCLG1CQUFtQixPQUNwRDtDQUVELE1BQU0sMEJBQTBCLGtCQUEyQztFQUN6RSxNQUFNLGFBQWEsZUFDZixhQUFhLFFBQWlDLEtBQUssU0FBUztBQUMxRCxPQUFJLEtBQUssUUFBUSxLQUFLLFNBQVMsS0FDN0IsUUFBTztJQUFFLEdBQUc7S0FBTSxnQkFBZ0IsS0FBSyxTQUFTLEtBQUs7SUFBTztBQUU5RCxVQUFPO0tBQ04sRUFBRSxDQUFDLEdBQ04sRUFBRTtFQUNOLE1BQU0sa0JBQWtCLEVBQUU7QUFPMUIsU0FBTztHQUpMLEdBQUc7R0FDSCxHQUFHO0dBS0gsR0FBRztHQUdILFFBQVE7R0FDUixTQUFTLFFBQVEsaUJBQWlCLE9BQU87R0FDekMsS0FBSyxPQUFPO0dBQ1osWUFBWTtHQUNaLGtCQUFrQjtHQUNsQixXQUFXO0dBQ1gsZUFBZTtHQUNmLGdCQUFnQjtHQUNoQixnQkFBZ0I7R0FDaEIsY0FBYztHQUNkLFlBQVk7R0FDWixpQkFBaUI7R0FDakIsbUJBQW1CO0dBQ3BCO0lBQ0E7RUFDRDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDRCxDQUFDO0NBRUYsTUFBTSxpQ0FBaUMsYUFFbkMsV0FDQSxlQUM0QjtFQUM1QixNQUFNLFNBQVMsVUFBVSxhQUFhLENBQUMsUUFBUSxRQUFRLElBQUk7QUFDM0QsU0FBTyxPQUFPLFFBQVEsV0FBVyxDQUFDLFFBQVEsS0FBSyxDQUFDLEtBQUtDLGFBQVc7QUFDOUQsT0FBSSxHQUFHLE9BQU8sR0FBRyxTQUFTQTtBQUMxQixVQUFPO0tBQ04sRUFBRSxDQUE0QjtJQUVuQyxFQUFFLENBQ0g7Q0FFRCxNQUFNLDZCQUE2QixrQkFBMkI7RUFDNUQsTUFBTSxZQUFZLFFBQ2hCLGlCQUFpQixhQUFhLGlCQUM1QixvQkFBb0Isd0JBQXdCLElBQzVDLG9CQUFvQixxQkFDbEIsYUFBYSxvQkFDZCxDQUNKO0VBQ0QsTUFBTSxhQUFhO0FBRW5CLE1BQUk7QUFDRixrQkFBTyxTQUNMLCtEQUErRCxVQUFVLGNBQWMsYUFDeEY7QUFFRCxPQUFJLENBQUMsVUFDSCxRQUFPO0FBS1QsVUFBTztXQUNBLEdBQUc7QUFDVixrQkFBTyxTQUNMLDJEQUNBLEVBQ0Q7QUFDRCxVQUFPOztJQUVSLENBQUMsY0FBYyxtQkFBbUIsQ0FBQztDQUV0QyxNQUFNLDZCQUE2QixrQkFBb0M7QUFDckUsTUFBSSxvQ0FBb0MsT0FDdEMsUUFBTztFQUdULE1BQU1DLGFBQStCO0dBQ25DLE1BQU07R0FDTixNQUFNO0dBQ04sT0FBTyxZQUFZO0dBQ25CLFNBQVMsT0FBTyxVQUFpQztJQUMvQyxJQUFJQztBQU9KLFFBTHVCLENBQ3JCLDJCQUNBLFlBQVksdUJBQXVCLGVBQ3BDLENBRWtCLFNBQVMsTUFBTSxXQUFXLEVBQUU7S0FDN0MsTUFBTUMsbUJBQTJDLEVBQUU7QUFFbkQsU0FBSSxVQUNGLGtCQUFpQixnQ0FBZ0M7QUFFbkQsU0FBSSxpQkFDRixRQUFPLFFBQVEsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEtBQUtILGFBQVc7QUFDekQsdUJBQWlCLHFDQUFxQyxTQUNwRCxPQUFPQSxRQUFNO09BQ2Y7QUFFSixTQUFJLG1CQUNGLGtCQUFpQix5Q0FDZjtBQUVKLFNBQUksb0JBQ0Ysa0JBQWlCLDBDQUNmLEtBQUssVUFBVSxvQkFBb0I7QUFFdkMsU0FBSSxRQUFRLEtBQ1Ysa0JBQWlCLDJCQUEyQixPQUFPLEtBQUs7S0FHMUQsTUFBTSxrQkFBa0IsbUJBQW9CLGlCQUFpQjtLQUM3RCxNQUFNLDRCQUE0QixPQUFPLFFBQ3ZDLGdCQUNELENBQUMsUUFDQyxLQUFLLENBQUMsS0FBS0EsY0FBWTtNQUN0QixHQUFHO09BQ0YsbUJBQW1CLFFBQVEsR0FBR0E7TUFDaEMsR0FDRCxFQUFFLENBQ0g7S0FFRCxNQUFNLG1CQUFtQixFQUN2Qix5QkFBeUIsT0FBTyxhQUFhLEtBQUssRUFDbkQ7QUFFRCxxQkFBZ0I7TUFDZCxHQUFHO01BQ0gsa0JBQWtCO09BQ2hCLEdBQUcsTUFBTTtPQUNULEdBQUcseUJBQXlCO09BQzVCLEdBQUc7T0FDSCxHQUFHO09BQ0gsR0FBRztPQUNKO01BQ0Y7VUFFRCxpQkFBZ0I7QUFHbEIscUJBQWlCLFNBQVMsWUFBWSxpQkFBaUIsY0FBYztBQUVyRSxXQUFPOztHQUVWO0FBQ0QscUNBQW1DLFdBQVc7QUFDOUMsU0FBTztJQUNOO0VBQ0Q7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNELENBQUM7QUFFRixpQkFBZ0I7QUFDZCxNQUFJLFdBQVcsQ0FBQyxpQkFBaUI7R0FDL0IsTUFBTUksMkJBQTBDLGdCQUFnQjtHQUNoRSxNQUFNLG9CQUFvQiw0QkFBNEI7QUFDdEQsNEJBQXlCLElBQUksNEJBQTRCLENBQUM7QUFDMUQsNEJBQXlCLEtBQUssaUJBQWtCLFFBQVM7SUFDdkQsWUFBWTtJQUNaLGlCQUFpQixFQUNmLFdBQVcsTUFDWjtJQUNELGFBQWE7S0FDWCxhQUFhO0tBQ2IsV0FBVyxFQUNULHFCQUFxQixZQUN0QjtLQUNELFVBQVU7S0FDVixrQkFBa0I7S0FDbEIsZUFBZTtLQUNoQjtJQUNGLENBQUM7QUFDRixzQkFBbUIseUJBQXlCOztJQUU3QztFQUNEO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0QsQ0FBQztDQUVGLE1BQU0sYUFBYSxZQUNqQixPQUFPLEVBQ0wsV0FDQSxZQUNBLGFBQ0EsNEJBQTRCLFlBQ1M7QUFDckMsaUJBQU8sU0FBUyxvQkFBb0IsVUFBVTtBQUM5QyxNQUFJO0dBQ0YsTUFBTSxxQkFBcUIsWUFBWTtBQUV2QyxPQUFJLENBQUMsaUJBQWlCO0FBQ3BCLG1CQUFPLFFBQVEsOEJBQThCLFFBQVcsRUFDdEQsWUFBWSxvQkFDYixDQUFDO0FBQ0Y7O0dBR0YsTUFBTSxZQUFZLEtBQUssVUFBVTtJQUMvQjtJQUNBO0lBQ0EsNkJBQVksSUFBSSxNQUFNLEVBQUMsYUFBYTtJQUNyQyxDQUFDO0dBRUYsTUFBTSxPQURVLElBQUksYUFBYSxDQUNaLE9BQU8sVUFBVTtHQUd0QyxNQUFNLGFBQWEsTUFBTSxPQUFPLE9BQU8sT0FBTyxXQUFXLEtBQUs7R0FFOUQsTUFBTSxrQkFEWSxNQUFNLEtBQUssSUFBSSxXQUFXLFdBQVcsQ0FBQyxDQUVyRCxLQUFLLE1BQU0sRUFBRSxTQUFTLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQzNDLEtBQUssR0FBRztBQUVYLGtCQUFPLFNBQVMsc0JBQXNCLHNCQUFzQixNQUFNO0lBQ2hFLFlBQVk7SUFDWixPQUFPO0lBQ1IsQ0FBQztBQUVGLG1CQUFnQixNQUNkLG9CQUNBO0lBQ0UsR0FBRyx5QkFBeUI7SUFDNUIsR0FBRztJQUNILEdBQUksYUFDQSwrQkFBK0IsV0FBVyxXQUFXLEdBQ3JELEVBQUU7SUFDUCxFQUNEO0lBQ0UsR0FBRztJQUNILFdBQVc7SUFDWixDQUNGO0FBRUQsT0FBSSw2QkFBNkIsYUFBYTtBQUU1QyxtQkFBTyxTQUFTLDJCQUEyQixtQkFBbUI7QUFDOUQsUUFBSSxPQUFPLFVBQ1QsQ0FBQyxPQUFPLFVBQW9CLEtBQUs7S0FDL0IsT0FBTztLQUNLO0tBQ2IsQ0FBQzs7V0FHQyxLQUFLO0FBQ1osa0JBQU8sU0FBUyxvQ0FBb0MsS0FBSztJQUN2RDtJQUNBO0lBQ0QsQ0FBQzs7SUFHTjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0QsQ0FDRjtDQUVELE1BQU0sUUFBUSxlQUNMO0VBQ0w7RUFDQTtFQUNBLDhCQUE4QixVQUM1Qiw0QkFBNEIsTUFBTTtFQUNyQyxHQUNEO0VBQUM7RUFBWTtFQUFTO0VBQTRCLENBQ25EO0FBRUQsUUFDRSxvQkFBQyxpQkFBaUI7RUFBZ0I7RUFDL0I7R0FDeUI7O0FBSWhDLE1BQWEscUJBQXFCO0NBQ2hDLE1BQU0sVUFBVSxXQUFXLGlCQUFpQjtBQUM1QyxLQUFJLENBQUMsUUFDSCxPQUFNLElBQUksTUFBTSxxREFBcUQ7QUFFdkUsUUFBTyJ9
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { logger_default } from "./logger-BMVdhQOV.js";
|
|
2
|
-
import { enviveConfigAtom } from "./enviveConfig-Cwlp7-Qz.js";
|
|
3
|
-
import React, { createContext, useEffect } from "react";
|
|
4
|
-
import { useAtomValue, useSetAtom } from "jotai";
|
|
5
|
-
import { jsx } from "react/jsx-runtime";
|
|
6
|
-
|
|
7
|
-
//#region src/contexts/enviveConfigContext/enviveConfigContext.tsx
|
|
8
|
-
const EnviveConfigContext = createContext(void 0);
|
|
9
|
-
const EnviveConfigProvider = ({ children, amplitudeApiKey, dataResidency, env, baseUrl, reactAppName, cdnUrl, contextSource, orgLevelApiKey, orgShortName, identifyingPrefix, featureOverrides, variantUrlOverride, variantInfoOverride, show, publicKey, featureGates }) => {
|
|
10
|
-
const setEnviveConfig = useSetAtom(enviveConfigAtom);
|
|
11
|
-
const config = {
|
|
12
|
-
amplitudeApiKey,
|
|
13
|
-
dataResidency,
|
|
14
|
-
env,
|
|
15
|
-
baseUrl,
|
|
16
|
-
reactAppName,
|
|
17
|
-
cdnUrl,
|
|
18
|
-
contextSource,
|
|
19
|
-
orgLevelApiKey,
|
|
20
|
-
orgShortName,
|
|
21
|
-
identifyingPrefix,
|
|
22
|
-
featureOverrides,
|
|
23
|
-
variantUrlOverride,
|
|
24
|
-
variantInfoOverride,
|
|
25
|
-
show,
|
|
26
|
-
publicKey,
|
|
27
|
-
featureGates
|
|
28
|
-
};
|
|
29
|
-
useEffect(() => {
|
|
30
|
-
setEnviveConfig(config);
|
|
31
|
-
logger_default.logDebug("EnviveConfigProvider: Setting EnviveConfig", config);
|
|
32
|
-
}, [setEnviveConfig, config]);
|
|
33
|
-
return /* @__PURE__ */ jsx(EnviveConfigContext.Provider, {
|
|
34
|
-
value: config,
|
|
35
|
-
children: config ? children : null
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
const useEnviveConfig = () => {
|
|
39
|
-
const config = useAtomValue(enviveConfigAtom);
|
|
40
|
-
return config ? config : {};
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
//#endregion
|
|
44
|
-
export { EnviveConfigProvider, useEnviveConfig };
|
|
45
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnQ29udGV4dC1CWmJHRWdPVy5qcyIsIm5hbWVzIjpbIkVudml2ZUNvbmZpZ1Byb3ZpZGVyOiBSZWFjdC5GQzxFbnZpdmVDb25maWdQcm92aWRlclByb3BzPiIsImNvbmZpZzogRW52aXZlQ29uZmlnIl0sInNvdXJjZXMiOlsiLi4vc3JjL2NvbnRleHRzL2Vudml2ZUNvbmZpZ0NvbnRleHQvZW52aXZlQ29uZmlnQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IGNyZWF0ZUNvbnRleHQsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVNldEF0b20sIHVzZUF0b21WYWx1ZSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IGVudml2ZUNvbmZpZ0F0b20gfSBmcm9tICcuLi8uLi9hdG9tcy9lbnZpdmUvZW52aXZlQ29uZmlnJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnLi4vLi4vYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnLCBFbnZpdmVDb25maWdQcm92aWRlclByb3BzIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5cbmNvbnN0IEVudml2ZUNvbmZpZ0NvbnRleHQgPSBjcmVhdGVDb250ZXh0PEVudml2ZUNvbmZpZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuZXhwb3J0IGNvbnN0IEVudml2ZUNvbmZpZ1Byb3ZpZGVyOiBSZWFjdC5GQzxFbnZpdmVDb25maWdQcm92aWRlclByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBhbXBsaXR1ZGVBcGlLZXksXG4gIGRhdGFSZXNpZGVuY3ksXG4gIGVudixcbiAgYmFzZVVybCxcbiAgcmVhY3RBcHBOYW1lLFxuICBjZG5VcmwsXG4gIGNvbnRleHRTb3VyY2UsXG4gIG9yZ0xldmVsQXBpS2V5LFxuICBvcmdTaG9ydE5hbWUsXG4gIGlkZW50aWZ5aW5nUHJlZml4LFxuICBmZWF0dXJlT3ZlcnJpZGVzLFxuICB2YXJpYW50VXJsT3ZlcnJpZGUsXG4gIHZhcmlhbnRJbmZvT3ZlcnJpZGUsXG4gIHNob3csXG4gIHB1YmxpY0tleSxcbiAgZmVhdHVyZUdhdGVzLCAvLyBEZXN0cnVjdHVyZSBuZXcgcHJvcFxufSkgPT4ge1xuICBjb25zdCBzZXRFbnZpdmVDb25maWcgPSB1c2VTZXRBdG9tKGVudml2ZUNvbmZpZ0F0b20pO1xuXG4gIGNvbnN0IGNvbmZpZzogRW52aXZlQ29uZmlnID0ge1xuICAgIGFtcGxpdHVkZUFwaUtleSxcbiAgICBkYXRhUmVzaWRlbmN5LFxuICAgIGVudixcbiAgICBiYXNlVXJsLFxuICAgIHJlYWN0QXBwTmFtZSxcbiAgICBjZG5VcmwsXG4gICAgY29udGV4dFNvdXJjZSxcbiAgICBvcmdMZXZlbEFwaUtleSxcbiAgICBvcmdTaG9ydE5hbWUsXG4gICAgaWRlbnRpZnlpbmdQcmVmaXgsXG4gICAgZmVhdHVyZU92ZXJyaWRlcyxcbiAgICB2YXJpYW50VXJsT3ZlcnJpZGUsXG4gICAgdmFyaWFudEluZm9PdmVycmlkZSxcbiAgICBzaG93LFxuICAgIHB1YmxpY0tleSxcbiAgICBmZWF0dXJlR2F0ZXMsIC8vIEFkZCB0byBjb25maWdcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEVudml2ZUNvbmZpZyhjb25maWcpO1xuICAgIExvZ2dlci5sb2dEZWJ1ZygnRW52aXZlQ29uZmlnUHJvdmlkZXI6IFNldHRpbmcgRW52aXZlQ29uZmlnJywgY29uZmlnKTtcbiAgfSwgW3NldEVudml2ZUNvbmZpZywgY29uZmlnXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8RW52aXZlQ29uZmlnQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y29uZmlnfT5cbiAgICAgIHtjb25maWcgPyBjaGlsZHJlbiA6IG51bGx9XG4gICAgPC9FbnZpdmVDb25maWdDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZUVudml2ZUNvbmZpZyA9ICgpOiBFbnZpdmVDb25maWcgPT4ge1xuICBjb25zdCBjb25maWcgPSB1c2VBdG9tVmFsdWUoZW52aXZlQ29uZmlnQXRvbSk7XG5cbiAgcmV0dXJuIGNvbmZpZyA/IGNvbmZpZyA6IHt9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU1BLE1BQU0sc0JBQXNCLGNBQXdDLE9BQVU7QUFFOUUsTUFBYUEsd0JBQTZELEVBQ3hFLFVBQ0EsaUJBQ0EsZUFDQSxLQUNBLFNBQ0EsY0FDQSxRQUNBLGVBQ0EsZ0JBQ0EsY0FDQSxtQkFDQSxrQkFDQSxvQkFDQSxxQkFDQSxNQUNBLFdBQ0EsbUJBQ0k7Q0FDSixNQUFNLGtCQUFrQixXQUFXLGlCQUFpQjtDQUVwRCxNQUFNQyxTQUF1QjtFQUMzQjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNEO0FBRUQsaUJBQWdCO0FBQ2Qsa0JBQWdCLE9BQU87QUFDdkIsaUJBQU8sU0FBUyw4Q0FBOEMsT0FBTztJQUNwRSxDQUFDLGlCQUFpQixPQUFPLENBQUM7QUFFN0IsUUFDRSxvQkFBQyxvQkFBb0I7RUFBUyxPQUFPO1lBQ2xDLFNBQVMsV0FBVztHQUNROztBQUluQyxNQUFhLHdCQUFzQztDQUNqRCxNQUFNLFNBQVMsYUFBYSxpQkFBaUI7QUFFN0MsUUFBTyxTQUFTLFNBQVMsRUFBRSJ9
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
2
|
-
const require_logger = require('./logger-BqHq67zN.cjs');
|
|
3
|
-
const require_enviveConfig = require('./enviveConfig-CQ_8mT-g.cjs');
|
|
4
|
-
let react = require("react");
|
|
5
|
-
react = require_chunk.__toESM(react);
|
|
6
|
-
let jotai = require("jotai");
|
|
7
|
-
jotai = require_chunk.__toESM(jotai);
|
|
8
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
|
-
react_jsx_runtime = require_chunk.__toESM(react_jsx_runtime);
|
|
10
|
-
|
|
11
|
-
//#region src/contexts/enviveConfigContext/enviveConfigContext.tsx
|
|
12
|
-
const EnviveConfigContext = (0, react.createContext)(void 0);
|
|
13
|
-
const EnviveConfigProvider = ({ children, amplitudeApiKey, dataResidency, env, baseUrl, reactAppName, cdnUrl, contextSource, orgLevelApiKey, orgShortName, identifyingPrefix, featureOverrides, variantUrlOverride, variantInfoOverride, show, publicKey, featureGates }) => {
|
|
14
|
-
const setEnviveConfig = (0, jotai.useSetAtom)(require_enviveConfig.enviveConfigAtom);
|
|
15
|
-
const config = {
|
|
16
|
-
amplitudeApiKey,
|
|
17
|
-
dataResidency,
|
|
18
|
-
env,
|
|
19
|
-
baseUrl,
|
|
20
|
-
reactAppName,
|
|
21
|
-
cdnUrl,
|
|
22
|
-
contextSource,
|
|
23
|
-
orgLevelApiKey,
|
|
24
|
-
orgShortName,
|
|
25
|
-
identifyingPrefix,
|
|
26
|
-
featureOverrides,
|
|
27
|
-
variantUrlOverride,
|
|
28
|
-
variantInfoOverride,
|
|
29
|
-
show,
|
|
30
|
-
publicKey,
|
|
31
|
-
featureGates
|
|
32
|
-
};
|
|
33
|
-
(0, react.useEffect)(() => {
|
|
34
|
-
setEnviveConfig(config);
|
|
35
|
-
require_logger.logger_default.logDebug("EnviveConfigProvider: Setting EnviveConfig", config);
|
|
36
|
-
}, [setEnviveConfig, config]);
|
|
37
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(EnviveConfigContext.Provider, {
|
|
38
|
-
value: config,
|
|
39
|
-
children: config ? children : null
|
|
40
|
-
});
|
|
41
|
-
};
|
|
42
|
-
const useEnviveConfig = () => {
|
|
43
|
-
const config = (0, jotai.useAtomValue)(require_enviveConfig.enviveConfigAtom);
|
|
44
|
-
return config ? config : {};
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
//#endregion
|
|
48
|
-
Object.defineProperty(exports, 'EnviveConfigProvider', {
|
|
49
|
-
enumerable: true,
|
|
50
|
-
get: function () {
|
|
51
|
-
return EnviveConfigProvider;
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
Object.defineProperty(exports, 'useEnviveConfig', {
|
|
55
|
-
enumerable: true,
|
|
56
|
-
get: function () {
|
|
57
|
-
return useEnviveConfig;
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnQ29udGV4dC1CaW5weFRDeS5janMiLCJuYW1lcyI6WyJFbnZpdmVDb25maWdQcm92aWRlcjogUmVhY3QuRkM8RW52aXZlQ29uZmlnUHJvdmlkZXJQcm9wcz4iLCJlbnZpdmVDb25maWdBdG9tIiwiY29uZmlnOiBFbnZpdmVDb25maWciXSwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dHMvZW52aXZlQ29uZmlnQ29udGV4dC9lbnZpdmVDb25maWdDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgY3JlYXRlQ29udGV4dCwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlU2V0QXRvbSwgdXNlQXRvbVZhbHVlIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgZW52aXZlQ29uZmlnQXRvbSB9IGZyb20gJy4uLy4uL2F0b21zL2Vudml2ZS9lbnZpdmVDb25maWcnO1xuaW1wb3J0IExvZ2dlciBmcm9tICcuLi8uLi9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBFbnZpdmVDb25maWcsIEVudml2ZUNvbmZpZ1Byb3ZpZGVyUHJvcHMgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcblxuY29uc3QgRW52aXZlQ29uZmlnQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8RW52aXZlQ29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3QgRW52aXZlQ29uZmlnUHJvdmlkZXI6IFJlYWN0LkZDPEVudml2ZUNvbmZpZ1Byb3ZpZGVyUHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGFtcGxpdHVkZUFwaUtleSxcbiAgZGF0YVJlc2lkZW5jeSxcbiAgZW52LFxuICBiYXNlVXJsLFxuICByZWFjdEFwcE5hbWUsXG4gIGNkblVybCxcbiAgY29udGV4dFNvdXJjZSxcbiAgb3JnTGV2ZWxBcGlLZXksXG4gIG9yZ1Nob3J0TmFtZSxcbiAgaWRlbnRpZnlpbmdQcmVmaXgsXG4gIGZlYXR1cmVPdmVycmlkZXMsXG4gIHZhcmlhbnRVcmxPdmVycmlkZSxcbiAgdmFyaWFudEluZm9PdmVycmlkZSxcbiAgc2hvdyxcbiAgcHVibGljS2V5LFxuICBmZWF0dXJlR2F0ZXMsIC8vIERlc3RydWN0dXJlIG5ldyBwcm9wXG59KSA9PiB7XG4gIGNvbnN0IHNldEVudml2ZUNvbmZpZyA9IHVzZVNldEF0b20oZW52aXZlQ29uZmlnQXRvbSk7XG5cbiAgY29uc3QgY29uZmlnOiBFbnZpdmVDb25maWcgPSB7XG4gICAgYW1wbGl0dWRlQXBpS2V5LFxuICAgIGRhdGFSZXNpZGVuY3ksXG4gICAgZW52LFxuICAgIGJhc2VVcmwsXG4gICAgcmVhY3RBcHBOYW1lLFxuICAgIGNkblVybCxcbiAgICBjb250ZXh0U291cmNlLFxuICAgIG9yZ0xldmVsQXBpS2V5LFxuICAgIG9yZ1Nob3J0TmFtZSxcbiAgICBpZGVudGlmeWluZ1ByZWZpeCxcbiAgICBmZWF0dXJlT3ZlcnJpZGVzLFxuICAgIHZhcmlhbnRVcmxPdmVycmlkZSxcbiAgICB2YXJpYW50SW5mb092ZXJyaWRlLFxuICAgIHNob3csXG4gICAgcHVibGljS2V5LFxuICAgIGZlYXR1cmVHYXRlcywgLy8gQWRkIHRvIGNvbmZpZ1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0RW52aXZlQ29uZmlnKGNvbmZpZyk7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKCdFbnZpdmVDb25maWdQcm92aWRlcjogU2V0dGluZyBFbnZpdmVDb25maWcnLCBjb25maWcpO1xuICB9LCBbc2V0RW52aXZlQ29uZmlnLCBjb25maWddKTtcblxuICByZXR1cm4gKFxuICAgIDxFbnZpdmVDb25maWdDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtjb25maWd9PlxuICAgICAge2NvbmZpZyA/IGNoaWxkcmVuIDogbnVsbH1cbiAgICA8L0Vudml2ZUNvbmZpZ0NvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlRW52aXZlQ29uZmlnID0gKCk6IEVudml2ZUNvbmZpZyA9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IHVzZUF0b21WYWx1ZShlbnZpdmVDb25maWdBdG9tKTtcblxuICByZXR1cm4gY29uZmlnID8gY29uZmlnIDoge307XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQU1BLE1BQU0sK0NBQThELE9BQVU7QUFFOUUsTUFBYUEsd0JBQTZELEVBQ3hFLFVBQ0EsaUJBQ0EsZUFDQSxLQUNBLFNBQ0EsY0FDQSxRQUNBLGVBQ0EsZ0JBQ0EsY0FDQSxtQkFDQSxrQkFDQSxvQkFDQSxxQkFDQSxNQUNBLFdBQ0EsbUJBQ0k7Q0FDSixNQUFNLHdDQUE2QkMsc0NBQWlCO0NBRXBELE1BQU1DLFNBQXVCO0VBQzNCO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0Q7QUFFRCw0QkFBZ0I7QUFDZCxrQkFBZ0IsT0FBTztBQUN2QixnQ0FBTyxTQUFTLDhDQUE4QyxPQUFPO0lBQ3BFLENBQUMsaUJBQWlCLE9BQU8sQ0FBQztBQUU3QixRQUNFLDJDQUFDLG9CQUFvQjtFQUFTLE9BQU87WUFDbEMsU0FBUyxXQUFXO0dBQ1E7O0FBSW5DLE1BQWEsd0JBQXNDO0NBQ2pELE1BQU0saUNBQXNCRCxzQ0FBaUI7QUFFN0MsUUFBTyxTQUFTLFNBQVMsRUFBRSJ9
|