@envive-ai/react-hooks 0.3.32 → 0.3.33
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.d.cts +1 -1
- package/dist/application/commerce-api.d.ts +1 -1
- package/dist/atoms/app/index.d.cts +9 -9
- package/dist/atoms/app/index.d.ts +9 -9
- package/dist/atoms/app/variant.d.cts +8 -8
- package/dist/atoms/app/variant.d.ts +8 -8
- package/dist/atoms/chat/chatState.d.cts +20 -20
- package/dist/atoms/chat/chatState.d.ts +20 -20
- package/dist/atoms/chat/form.d.cts +2 -2
- package/dist/atoms/chat/form.d.ts +2 -2
- package/dist/atoms/chat/index.cjs +1 -1
- package/dist/atoms/chat/index.d.cts +3 -3
- package/dist/atoms/chat/index.d.ts +2 -2
- package/dist/atoms/chat/index.js +1 -1
- 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 +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.ts +3 -3
- package/dist/atoms/chat/suggestions.d.cts +2 -2
- package/dist/atoms/chat/suggestions.d.ts +2 -2
- package/dist/atoms/envive/enviveConfig.d.cts +13 -13
- package/dist/atoms/envive/enviveConfig.d.ts +13 -13
- package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
- package/dist/atoms/globalSearch/globalSearch.d.ts +6 -6
- package/dist/atoms/org/customerService.d.cts +6 -6
- package/dist/atoms/org/customerService.d.ts +6 -6
- package/dist/atoms/org/graphqlConfig.d.cts +5 -5
- package/dist/atoms/org/graphqlConfig.d.ts +5 -5
- package/dist/atoms/org/index.cjs +2 -3
- package/dist/atoms/org/index.d.cts +2 -2
- package/dist/atoms/org/index.d.ts +2 -2
- package/dist/atoms/org/index.js +3 -3
- package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
- package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
- package/dist/atoms/org/orgAnalyticsConfig.cjs +1 -3
- package/dist/atoms/org/orgAnalyticsConfig.d.cts +7 -8
- package/dist/atoms/org/orgAnalyticsConfig.d.ts +7 -8
- package/dist/atoms/org/orgAnalyticsConfig.js +2 -3
- package/dist/atoms/search/chatSearch.cjs +1 -1
- package/dist/atoms/search/chatSearch.d.cts +17 -17
- package/dist/atoms/search/chatSearch.d.ts +17 -17
- package/dist/atoms/search/chatSearch.js +1 -1
- package/dist/atoms/search/searchAPI.cjs +1 -1
- package/dist/atoms/search/searchAPI.d.cts +13 -13
- package/dist/atoms/search/searchAPI.d.ts +13 -13
- package/dist/atoms/search/searchAPI.js +1 -1
- package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
- package/dist/contexts/amplitudeContext/amplitudeContext.cjs +1 -5
- package/dist/contexts/amplitudeContext/amplitudeContext.js +1 -5
- package/dist/contexts/enviveConfigContext/enviveConfigContext.cjs +18 -23
- package/dist/contexts/enviveConfigContext/enviveConfigContext.d.cts +10 -12
- package/dist/contexts/enviveConfigContext/enviveConfigContext.d.ts +10 -12
- package/dist/contexts/enviveConfigContext/enviveConfigContext.js +18 -23
- package/dist/contexts/enviveContext/enviveContext.cjs +41 -74
- package/dist/contexts/enviveContext/enviveContext.d.cts +15 -32
- package/dist/contexts/enviveContext/enviveContext.d.ts +15 -32
- package/dist/contexts/enviveContext/enviveContext.js +41 -74
- package/dist/contexts/enviveContext/index.d.cts +2 -2
- package/dist/contexts/enviveContext/index.d.ts +2 -2
- package/dist/contexts/enviveCssContext/enviveCssContext.cjs +31 -16
- package/dist/contexts/enviveCssContext/enviveCssContext.js +31 -16
- package/dist/contexts/graphqlContext/graphqlContext.cjs +3 -212
- package/dist/contexts/graphqlContext/graphqlContext.d.cts +2 -10
- package/dist/contexts/graphqlContext/graphqlContext.d.ts +2 -10
- package/dist/contexts/graphqlContext/graphqlContext.js +3 -212
- package/dist/contexts/graphqlContext/mockV3Config.cjs +31 -16
- package/dist/contexts/graphqlContext/mockV3Config.js +31 -16
- package/dist/contexts/hardcopyContext/hardcopyContext.cjs +9 -238
- package/dist/contexts/hardcopyContext/hardcopyContext.d.cts +5 -17
- package/dist/contexts/hardcopyContext/hardcopyContext.d.ts +5 -17
- package/dist/contexts/hardcopyContext/hardcopyContext.js +9 -238
- package/dist/contexts/hardcopyContext/index.d.cts +3 -2
- package/dist/contexts/hardcopyContext/index.d.ts +3 -2
- package/dist/contexts/newOrgConfigContext/newOrgConfigContext.cjs +10 -32
- package/dist/contexts/newOrgConfigContext/newOrgConfigContext.d.cts +2 -2
- package/dist/contexts/newOrgConfigContext/newOrgConfigContext.d.ts +2 -2
- package/dist/contexts/newOrgConfigContext/newOrgConfigContext.js +12 -34
- package/dist/contexts/pageContext/mapping.d.cts +1 -1
- package/dist/contexts/pageContext/mapping.d.ts +1 -1
- package/dist/contexts/pageContext/types.d.cts +1 -1
- package/dist/contexts/salesAgentContext/chatAPI.cjs +2 -2
- package/dist/contexts/salesAgentContext/chatAPI.js +2 -2
- package/dist/contexts/salesAgentContext/salesAgentService.cjs +1 -1
- package/dist/contexts/salesAgentContext/salesAgentService.js +1 -1
- package/dist/contexts/searchContext/searchContext.cjs +1 -1
- package/dist/contexts/searchContext/searchContext.js +1 -1
- package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
- package/dist/contexts/types.d.cts +2 -2
- package/dist/contexts/types.d.ts +2 -2
- package/dist/contexts/typesV3.cjs +31 -16
- package/dist/contexts/typesV3.d.cts +62 -31
- package/dist/contexts/typesV3.d.ts +62 -31
- package/dist/contexts/typesV3.js +31 -16
- package/dist/contexts/userIdentityContext/userIdentityContext.cjs +1 -1
- package/dist/contexts/userIdentityContext/userIdentityContext.d.cts +3 -3
- package/dist/contexts/userIdentityContext/userIdentityContext.d.ts +3 -3
- package/dist/contexts/userIdentityContext/userIdentityContext.js +1 -1
- package/dist/hooks/ChatToggle/useChatToggle.cjs +1 -1
- package/dist/hooks/ChatToggle/useChatToggle.js +1 -1
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
- package/dist/hooks/GraphQLConfig/index.cjs +0 -1
- package/dist/hooks/GraphQLConfig/index.d.cts +2 -2
- package/dist/hooks/GraphQLConfig/index.d.ts +2 -2
- package/dist/hooks/GraphQLConfig/index.js +2 -2
- package/dist/hooks/GraphQLConfig/useGraphQLConfig.cjs +7 -66
- package/dist/hooks/GraphQLConfig/useGraphQLConfig.d.cts +5 -13
- package/dist/hooks/GraphQLConfig/useGraphQLConfig.d.ts +5 -13
- package/dist/hooks/GraphQLConfig/useGraphQLConfig.js +8 -66
- package/dist/hooks/Search/useSearch.cjs +3 -3
- package/dist/hooks/Search/useSearch.js +3 -3
- package/dist/services/amplitudeService/amplitudeService.cjs +4 -3
- package/dist/services/amplitudeService/amplitudeService.d.cts +1 -2
- package/dist/services/amplitudeService/amplitudeService.d.ts +1 -2
- package/dist/services/amplitudeService/amplitudeService.js +4 -3
- package/dist/services/enviveConfigService/enviveConfigService.cjs +25 -5
- package/dist/services/enviveConfigService/enviveConfigService.d.cts +24 -5
- package/dist/services/enviveConfigService/enviveConfigService.d.ts +24 -5
- package/dist/services/enviveConfigService/enviveConfigService.js +25 -6
- package/dist/services/enviveConfigService/fetchGraphQLConfig.cjs +181 -0
- package/dist/services/enviveConfigService/fetchGraphQLConfig.js +180 -0
- package/dist/services/enviveConfigService/index.cjs +2 -1
- package/dist/services/enviveConfigService/index.d.cts +2 -2
- package/dist/services/enviveConfigService/index.d.ts +2 -2
- package/dist/services/enviveConfigService/index.js +2 -2
- package/dist/services/hardcopyService/hardcopyService.cjs +232 -0
- package/dist/services/hardcopyService/hardcopyService.d.cts +39 -0
- package/dist/services/hardcopyService/hardcopyService.d.ts +39 -0
- package/dist/services/hardcopyService/hardcopyService.js +229 -0
- package/dist/services/hardcopyService/index.cjs +5 -0
- package/dist/services/hardcopyService/index.d.cts +2 -0
- package/dist/services/hardcopyService/index.d.ts +2 -0
- package/dist/services/hardcopyService/index.js +3 -0
- package/dist/services/userIdentityService/index.cjs +1 -0
- package/dist/services/userIdentityService/index.d.cts +2 -2
- package/dist/services/userIdentityService/index.d.ts +2 -2
- package/dist/services/userIdentityService/index.js +2 -2
- package/dist/services/userIdentityService/userIdentityService.cjs +13 -1
- package/dist/services/userIdentityService/userIdentityService.d.cts +12 -2
- package/dist/services/userIdentityService/userIdentityService.d.ts +12 -2
- package/dist/services/userIdentityService/userIdentityService.js +13 -2
- package/dist/types/enviveConfig.d.cts +1 -1
- package/dist/types/enviveConfig.d.ts +1 -1
- package/package.json +5 -1
- package/src/atoms/org/orgAnalyticsConfig.ts +0 -5
- package/src/contexts/amplitudeContext/amplitudeContext.tsx +0 -4
- package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +37 -49
- package/src/contexts/enviveContext/enviveContext.tsx +72 -134
- package/src/contexts/enviveCssContext/enviveCssContext.tsx +32 -17
- package/src/contexts/graphqlContext/__tests__/graphqlContext.test.tsx +3 -36
- package/src/contexts/graphqlContext/graphqlContext.tsx +4 -304
- package/src/contexts/graphqlContext/mockV3Config.ts +30 -15
- package/src/contexts/hardcopyContext/hardcopyContext.tsx +12 -270
- package/src/contexts/newOrgConfigContext/__tests__/newOrgConfigContext.test.tsx +54 -478
- package/src/contexts/newOrgConfigContext/newOrgConfigContext.tsx +9 -26
- package/src/contexts/typesV3.ts +61 -30
- package/src/contexts/userIdentityContext/userIdentityContext.tsx +2 -2
- package/src/hooks/GraphQLConfig/useGraphQLConfig.ts +2 -62
- package/src/hooks/Search/__tests__/useSearch.test.tsx +2 -2
- package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +3 -5
- package/src/services/amplitudeService/amplitudeService.ts +5 -3
- package/src/services/enviveConfigService/__tests__/fetchGraphQLConfig.test.ts +425 -0
- package/src/services/enviveConfigService/enviveConfigService.ts +41 -13
- package/src/services/enviveConfigService/fetchGraphQLConfig.ts +225 -0
- package/src/services/hardcopyService/__tests__/hardcopyService.test.ts +367 -0
- package/src/services/hardcopyService/hardcopyService.ts +271 -0
- package/src/services/hardcopyService/index.ts +1 -0
- package/src/services/userIdentityService/userIdentityService.ts +18 -0
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_logger = require('../../application/logging/logger.cjs');
|
|
3
|
+
const require_urlsParser = require('../../application/utils/urlsParser.cjs');
|
|
4
|
+
const require_snakeToCamelTransformer = require('../../application/models/utils/snakeToCamelTransformer.cjs');
|
|
5
|
+
const require_contexts_typesV3 = require('../../contexts/typesV3.cjs');
|
|
6
|
+
const require_eventNames = require('../amplitudeService/eventNames.cjs');
|
|
7
|
+
require('../../application/utils/index.cjs');
|
|
8
|
+
const require_application_commerce_api = require('../../application/commerce-api.cjs');
|
|
9
|
+
require('../amplitudeService/index.cjs');
|
|
10
|
+
let uuid = require("uuid");
|
|
11
|
+
|
|
12
|
+
//#region src/services/hardcopyService/hardcopyService.ts
|
|
13
|
+
const logger = new require_logger.default("hardcopyService");
|
|
14
|
+
const MOCK_HARDCOPY_RESPONSE = {
|
|
15
|
+
[require_contexts_typesV3.WidgetTypeV3.PromptCarouselV3]: {
|
|
16
|
+
responseId: (0, uuid.v4)(),
|
|
17
|
+
language: "en",
|
|
18
|
+
values: { promptButtonTexts: [
|
|
19
|
+
"What are your best sellers?",
|
|
20
|
+
"Show me summer dresses",
|
|
21
|
+
"Do you have free shipping?",
|
|
22
|
+
"What sizes are available?",
|
|
23
|
+
"Can I return items?"
|
|
24
|
+
] }
|
|
25
|
+
},
|
|
26
|
+
[require_contexts_typesV3.WidgetTypeV3.TitledPromptCarouselV3]: {
|
|
27
|
+
responseId: "mock-response-id",
|
|
28
|
+
language: "en",
|
|
29
|
+
values: {
|
|
30
|
+
titleLabel: "Need some help?",
|
|
31
|
+
promptButtonTexts: [
|
|
32
|
+
"What are your best sellers?",
|
|
33
|
+
"Show me summer dresses",
|
|
34
|
+
"Do you have free shipping?",
|
|
35
|
+
"What sizes are available?",
|
|
36
|
+
"Can I return items?"
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
[require_contexts_typesV3.WidgetTypeV3.SocialProofV3]: {
|
|
41
|
+
responseId: "mock-response-id",
|
|
42
|
+
language: "en",
|
|
43
|
+
values: {
|
|
44
|
+
titleLabel: "Shopping Assistant",
|
|
45
|
+
numberOfCustomersText: "123 customers",
|
|
46
|
+
customerQueryText: "found what they were looking for...",
|
|
47
|
+
primaryButtonText: "Start shopping",
|
|
48
|
+
secondaryButtonTitleText: "Popular searches",
|
|
49
|
+
secondaryButtonTexts: [
|
|
50
|
+
"Why should I buy from you?",
|
|
51
|
+
"How do I return an item?",
|
|
52
|
+
"New arrivals",
|
|
53
|
+
"Sale items",
|
|
54
|
+
"Popular items"
|
|
55
|
+
],
|
|
56
|
+
textFieldPlaceholderText: "Ask me anything..."
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
[require_contexts_typesV3.WidgetTypeV3.TypingAnimationV3]: {
|
|
60
|
+
responseId: "mock-response-id",
|
|
61
|
+
language: "en",
|
|
62
|
+
values: {
|
|
63
|
+
titleLabel: "Shopping Assistant",
|
|
64
|
+
headlineText: "Need help finding",
|
|
65
|
+
animatedTextSequence: [
|
|
66
|
+
"the perfect gift for your loved ones?",
|
|
67
|
+
"something special for the holidays?",
|
|
68
|
+
"the ideal present for someone special?"
|
|
69
|
+
],
|
|
70
|
+
hintText: "Ask me anything",
|
|
71
|
+
promptButtonTexts: [
|
|
72
|
+
"What are your best sellers?",
|
|
73
|
+
"Show me summer dresses",
|
|
74
|
+
"Do you have free shipping?",
|
|
75
|
+
"What sizes are available?"
|
|
76
|
+
],
|
|
77
|
+
textFieldAriaLabel: "Ask me anything"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
[require_contexts_typesV3.WidgetTypeV3.ChatPreviewComparisonV3]: {
|
|
81
|
+
responseId: "mock-response-id",
|
|
82
|
+
language: "en",
|
|
83
|
+
values: {
|
|
84
|
+
titleLabel: "Shopping Assistant",
|
|
85
|
+
headlineText: "Need help comparing?",
|
|
86
|
+
textFieldPlaceholderText: "Ask me anything..."
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
[require_contexts_typesV3.WidgetTypeV3.ChatPreviewLoadingV3]: {
|
|
90
|
+
responseId: "mock-response-id",
|
|
91
|
+
language: "en",
|
|
92
|
+
values: {
|
|
93
|
+
titleLabel: "Shopping Assistant",
|
|
94
|
+
textFieldPlaceholderText: "Ask me anything..."
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
[require_contexts_typesV3.WidgetTypeV3.ChatPreviewV3]: {
|
|
98
|
+
responseId: "mock-response-id",
|
|
99
|
+
language: "en",
|
|
100
|
+
values: {
|
|
101
|
+
titleLabel: "Shopping Assistant",
|
|
102
|
+
textFieldPlaceholderText: "Ask me anything..."
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
[require_contexts_typesV3.WidgetTypeV3.PromptButtonCarouselWithImageV3]: {
|
|
106
|
+
responseId: "mock-response-id",
|
|
107
|
+
language: "en",
|
|
108
|
+
values: {
|
|
109
|
+
titleLabel: "Need some help?",
|
|
110
|
+
promptButtonsTexts: [
|
|
111
|
+
"Help me find a product",
|
|
112
|
+
"What's on your mind?",
|
|
113
|
+
"Talk to a human"
|
|
114
|
+
],
|
|
115
|
+
textFieldPlaceholderText: "Ask me anything..."
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
[require_contexts_typesV3.WidgetTypeV3.ProductCardV3]: {
|
|
119
|
+
responseId: "mock-response-id",
|
|
120
|
+
language: "en",
|
|
121
|
+
values: {
|
|
122
|
+
headline: "Discover Your Perfect Style",
|
|
123
|
+
animatedText: [
|
|
124
|
+
"the perfect outfit for any occasion",
|
|
125
|
+
"trending fashion that fits your lifestyle",
|
|
126
|
+
"quality pieces that last"
|
|
127
|
+
],
|
|
128
|
+
prompts: [
|
|
129
|
+
"What are your best sellers?",
|
|
130
|
+
"Show me summer dresses",
|
|
131
|
+
"Do you have free shipping?",
|
|
132
|
+
"What sizes are available?",
|
|
133
|
+
"Can I return items?"
|
|
134
|
+
],
|
|
135
|
+
placeholder: "Ask me anything..."
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
[require_contexts_typesV3.WidgetTypeV3.FloatingChatV3]: {
|
|
139
|
+
responseId: "mock-response-id",
|
|
140
|
+
language: "en",
|
|
141
|
+
values: {
|
|
142
|
+
welcomeMessageTitle: "Welcome to Envive AI",
|
|
143
|
+
welcomeMessageText: "Your personal shopper trained on the collective knowledge of thousands of real experts!",
|
|
144
|
+
chatFooterTextFieldPlaceholderText: "Ask me anything...",
|
|
145
|
+
disclaimerText: "This is a disclaimer...",
|
|
146
|
+
leftToggleLabel: "Shop with AI",
|
|
147
|
+
rightToggleLabel: "Live support"
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
[require_contexts_typesV3.WidgetTypeV3.FullPageSalesAgentV3]: {
|
|
151
|
+
responseId: "mock-response-id",
|
|
152
|
+
language: "en",
|
|
153
|
+
values: {
|
|
154
|
+
welcomeMessageTitle: "Welcome to Envive AI",
|
|
155
|
+
welcomeMessageText: "Your personal shopper trained on the collective knowledge of thousands of real experts!",
|
|
156
|
+
chatFooterTextFieldPlaceholderText: "Ask me anything...",
|
|
157
|
+
disclaimerText: "This is a disclaimer..."
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
const convertToHardcopyResponse = (response) => ({
|
|
162
|
+
responseId: response.responseId,
|
|
163
|
+
language: response.language,
|
|
164
|
+
rawValues: response.values,
|
|
165
|
+
values: Object.fromEntries(Object.entries(response.values).map(([key, value]) => [require_snakeToCamelTransformer.toCamelCase(key), value.length === 1 ? value[0].value : value.map((v) => v.value)]))
|
|
166
|
+
});
|
|
167
|
+
var HardcopyService = class {
|
|
168
|
+
constructor(config) {
|
|
169
|
+
this.config = config;
|
|
170
|
+
}
|
|
171
|
+
async getHardcopy(request) {
|
|
172
|
+
const overrideConfigVersion = require_urlsParser.getQueryParam("spiffy_config_version") || require_urlsParser.getQueryParam("envive_config_version") || void 0;
|
|
173
|
+
const widgetTextRequest = {
|
|
174
|
+
requestId: (0, uuid.v4)(),
|
|
175
|
+
widgetType: request.widgetType,
|
|
176
|
+
context: this.config.getAppDetails(),
|
|
177
|
+
featureFlags: this.config.getFeatureFlags(),
|
|
178
|
+
language: navigator.languages[0] || "en",
|
|
179
|
+
overrideConfigVersion,
|
|
180
|
+
url: window.location.href
|
|
181
|
+
};
|
|
182
|
+
this.config.trackEvent?.({
|
|
183
|
+
eventName: require_eventNames.EnviveMetricsEventName.WidgetTextRequest,
|
|
184
|
+
eventProps: {
|
|
185
|
+
widget_type: request.widgetType,
|
|
186
|
+
request_id: widgetTextRequest.requestId
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
try {
|
|
190
|
+
const response = await require_application_commerce_api.default.getHardcopy(widgetTextRequest);
|
|
191
|
+
if (response) {
|
|
192
|
+
const convertedResponse = convertToHardcopyResponse(response);
|
|
193
|
+
logger.logDebug("converted response", convertedResponse);
|
|
194
|
+
this.config.trackEvent?.({
|
|
195
|
+
eventName: require_eventNames.EnviveMetricsEventName.WidgetTextResponse,
|
|
196
|
+
eventProps: {
|
|
197
|
+
widget_type: request.widgetType,
|
|
198
|
+
response_id: response.responseId,
|
|
199
|
+
widget_text: response.values,
|
|
200
|
+
request_id: widgetTextRequest.requestId
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
return convertedResponse;
|
|
204
|
+
}
|
|
205
|
+
} catch (error) {
|
|
206
|
+
logger.logError("error getting hardcopy from backend", error);
|
|
207
|
+
}
|
|
208
|
+
const mockResponse = MOCK_HARDCOPY_RESPONSE[request.widgetType];
|
|
209
|
+
if (mockResponse) {
|
|
210
|
+
logger.logDebug("no real response, using mock", mockResponse);
|
|
211
|
+
return mockResponse;
|
|
212
|
+
}
|
|
213
|
+
throw new Error(`No hardcopy response found for widget type: ${request.widgetType}`);
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
var MockHardcopyService = class {
|
|
217
|
+
constructor(overrides = {}) {
|
|
218
|
+
this.overrides = overrides;
|
|
219
|
+
}
|
|
220
|
+
async getHardcopy(request) {
|
|
221
|
+
const fallbackWidgetType = request.widgetType === require_contexts_typesV3.WidgetTypeV3.ProductCardV3 ? require_contexts_typesV3.WidgetTypeV3.ImagePromptCardV3 : request.widgetType;
|
|
222
|
+
const response = this.overrides[request.widgetType] ?? this.overrides[fallbackWidgetType] ?? MOCK_HARDCOPY_RESPONSE[request.widgetType];
|
|
223
|
+
if (!response) throw new Error(`No hardcopy response found for widget type: ${request.widgetType}`);
|
|
224
|
+
return response;
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
//#endregion
|
|
229
|
+
exports.HardcopyService = HardcopyService;
|
|
230
|
+
exports.MOCK_HARDCOPY_RESPONSE = MOCK_HARDCOPY_RESPONSE;
|
|
231
|
+
exports.MockHardcopyService = MockHardcopyService;
|
|
232
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlTZXJ2aWNlLmNqcyIsIm5hbWVzIjpbIkxvZ2dlciIsIk1PQ0tfSEFSRENPUFlfUkVTUE9OU0U6IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+IiwiV2lkZ2V0VHlwZVYzIiwidG9DYW1lbENhc2UiLCJjb25maWc6IEhhcmRjb3B5U2VydmljZUNvbmZpZyIsImdldFF1ZXJ5UGFyYW0iLCJ3aWRnZXRUZXh0UmVxdWVzdDogV2lkZ2V0VGV4dFJlcXVlc3QiLCJFbnZpdmVNZXRyaWNzRXZlbnROYW1lIiwiQ29tbWVyY2VBcGlDbGllbnQiLCJvdmVycmlkZXM6IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2hhcmRjb3B5U2VydmljZS9oYXJkY29weVNlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IENvbW1lcmNlQXBpQ2xpZW50IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9jb21tZXJjZS1hcGknO1xuaW1wb3J0IHsgV2lkZ2V0U3RyaW5nLCBXaWRnZXRUZXh0IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvd2lkZ2V0VGV4dCc7XG5pbXBvcnQgeyBXaWRnZXRUZXh0UmVxdWVzdCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3dpZGdldFRleHRSZXF1ZXN0JztcbmltcG9ydCB7IHRvQ2FtZWxDYXNlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy91dGlscy9zbmFrZVRvQ2FtZWxUcmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBnZXRRdWVyeVBhcmFtIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL3V0aWxzJztcbmltcG9ydCB7IFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgQXBwRGV0YWlscyB9IGZyb20gJ3NyYy9hdG9tcy9hcHAnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzVjMnO1xuaW1wb3J0IHsgRW52aXZlTWV0cmljc0V2ZW50TmFtZSwgVHJhY2tFdmVudFBhcmFtcyB9IGZyb20gJy4uL2FtcGxpdHVkZVNlcnZpY2UnO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdoYXJkY29weVNlcnZpY2UnKTtcblxuZXhwb3J0IGludGVyZmFjZSBIYXJkY29weVJlcXVlc3Qge1xuICB3aWRnZXRUeXBlOiBXaWRnZXRUeXBlVjM7XG4gIHVzZXJFdmVudDogVXNlckV2ZW50O1xufVxuXG5leHBvcnQgdHlwZSBIYXJkY29weVJlc3BvbnNlID0ge1xuICByZXNwb25zZUlkOiBzdHJpbmc7XG4gIGxhbmd1YWdlOiBzdHJpbmc7XG4gIHJhd1ZhbHVlcz86IFJlY29yZDxzdHJpbmcsIFdpZGdldFN0cmluZyB8IFdpZGdldFN0cmluZ1tdPjtcbiAgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElIYXJkY29weVNlcnZpY2Uge1xuICBnZXRIYXJkY29weShyZXF1ZXN0OiBIYXJkY29weVJlcXVlc3QpOiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhcmRjb3B5U2VydmljZUNvbmZpZyB7XG4gIGdldEFwcERldGFpbHM6ICgpID0+IEFwcERldGFpbHM7XG4gIGdldEZlYXR1cmVGbGFnczogKCkgPT4gUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gIHRyYWNrRXZlbnQ/OiAocGFyYW1zOiBUcmFja0V2ZW50UGFyYW1zKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vLyBTYW1wbGUgcmVzcG9uc2VzIHVzZWQgYm90aCBhcyBmYWxsYmFjayB3aGVuIHRoZSBiYWNrZW5kIGZhaWxzIGFuZCBieSBNb2NrSGFyZGNvcHlTZXJ2aWNlLlxuZXhwb3J0IGNvbnN0IE1PQ0tfSEFSRENPUFlfUkVTUE9OU0U6IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+ID0ge1xuICBbV2lkZ2V0VHlwZVYzLlByb21wdENhcm91c2VsVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogdXVpZCgpLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgcHJvbXB0QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgICAnQ2FuIEkgcmV0dXJuIGl0ZW1zPycsXG4gICAgICBdLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuVGl0bGVkUHJvbXB0Q2Fyb3VzZWxWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnTmVlZCBzb21lIGhlbHA/JyxcbiAgICAgIHByb21wdEJ1dHRvblRleHRzOiBbXG4gICAgICAgICdXaGF0IGFyZSB5b3VyIGJlc3Qgc2VsbGVycz8nLFxuICAgICAgICAnU2hvdyBtZSBzdW1tZXIgZHJlc3NlcycsXG4gICAgICAgICdEbyB5b3UgaGF2ZSBmcmVlIHNoaXBwaW5nPycsXG4gICAgICAgICdXaGF0IHNpemVzIGFyZSBhdmFpbGFibGU/JyxcbiAgICAgICAgJ0NhbiBJIHJldHVybiBpdGVtcz8nLFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlNvY2lhbFByb29mVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ1Nob3BwaW5nIEFzc2lzdGFudCcsXG4gICAgICBudW1iZXJPZkN1c3RvbWVyc1RleHQ6ICcxMjMgY3VzdG9tZXJzJyxcbiAgICAgIGN1c3RvbWVyUXVlcnlUZXh0OiAnZm91bmQgd2hhdCB0aGV5IHdlcmUgbG9va2luZyBmb3IuLi4nLFxuICAgICAgcHJpbWFyeUJ1dHRvblRleHQ6ICdTdGFydCBzaG9wcGluZycsXG4gICAgICBzZWNvbmRhcnlCdXR0b25UaXRsZVRleHQ6ICdQb3B1bGFyIHNlYXJjaGVzJyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvblRleHRzOiBbXG4gICAgICAgICdXaHkgc2hvdWxkIEkgYnV5IGZyb20geW91PycsXG4gICAgICAgICdIb3cgZG8gSSByZXR1cm4gYW4gaXRlbT8nLFxuICAgICAgICAnTmV3IGFycml2YWxzJyxcbiAgICAgICAgJ1NhbGUgaXRlbXMnLFxuICAgICAgICAnUG9wdWxhciBpdGVtcycsXG4gICAgICBdLFxuICAgICAgdGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlR5cGluZ0FuaW1hdGlvblYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdTaG9wcGluZyBBc3Npc3RhbnQnLFxuICAgICAgaGVhZGxpbmVUZXh0OiAnTmVlZCBoZWxwIGZpbmRpbmcnLFxuICAgICAgYW5pbWF0ZWRUZXh0U2VxdWVuY2U6IFtcbiAgICAgICAgJ3RoZSBwZXJmZWN0IGdpZnQgZm9yIHlvdXIgbG92ZWQgb25lcz8nLFxuICAgICAgICAnc29tZXRoaW5nIHNwZWNpYWwgZm9yIHRoZSBob2xpZGF5cz8nLFxuICAgICAgICAndGhlIGlkZWFsIHByZXNlbnQgZm9yIHNvbWVvbmUgc3BlY2lhbD8nLFxuICAgICAgXSxcbiAgICAgIGhpbnRUZXh0OiAnQXNrIG1lIGFueXRoaW5nJyxcbiAgICAgIHByb21wdEJ1dHRvblRleHRzOiBbXG4gICAgICAgICdXaGF0IGFyZSB5b3VyIGJlc3Qgc2VsbGVycz8nLFxuICAgICAgICAnU2hvdyBtZSBzdW1tZXIgZHJlc3NlcycsXG4gICAgICAgICdEbyB5b3UgaGF2ZSBmcmVlIHNoaXBwaW5nPycsXG4gICAgICAgICdXaGF0IHNpemVzIGFyZSBhdmFpbGFibGU/JyxcbiAgICAgIF0sXG4gICAgICB0ZXh0RmllbGRBcmlhTGFiZWw6ICdBc2sgbWUgYW55dGhpbmcnLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuQ2hhdFByZXZpZXdDb21wYXJpc29uVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ1Nob3BwaW5nIEFzc2lzdGFudCcsXG4gICAgICBoZWFkbGluZVRleHQ6ICdOZWVkIGhlbHAgY29tcGFyaW5nPycsXG4gICAgICB0ZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuQ2hhdFByZXZpZXdMb2FkaW5nVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ1Nob3BwaW5nIEFzc2lzdGFudCcsXG4gICAgICB0ZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuQ2hhdFByZXZpZXdWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5Qcm9tcHRCdXR0b25DYXJvdXNlbFdpdGhJbWFnZVYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdOZWVkIHNvbWUgaGVscD8nLFxuICAgICAgcHJvbXB0QnV0dG9uc1RleHRzOiBbJ0hlbHAgbWUgZmluZCBhIHByb2R1Y3QnLCBcIldoYXQncyBvbiB5b3VyIG1pbmQ/XCIsICdUYWxrIHRvIGEgaHVtYW4nXSxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5Qcm9kdWN0Q2FyZFYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIGhlYWRsaW5lOiAnRGlzY292ZXIgWW91ciBQZXJmZWN0IFN0eWxlJyxcbiAgICAgIGFuaW1hdGVkVGV4dDogW1xuICAgICAgICAndGhlIHBlcmZlY3Qgb3V0Zml0IGZvciBhbnkgb2NjYXNpb24nLFxuICAgICAgICAndHJlbmRpbmcgZmFzaGlvbiB0aGF0IGZpdHMgeW91ciBsaWZlc3R5bGUnLFxuICAgICAgICAncXVhbGl0eSBwaWVjZXMgdGhhdCBsYXN0JyxcbiAgICAgIF0sXG4gICAgICBwcm9tcHRzOiBbXG4gICAgICAgICdXaGF0IGFyZSB5b3VyIGJlc3Qgc2VsbGVycz8nLFxuICAgICAgICAnU2hvdyBtZSBzdW1tZXIgZHJlc3NlcycsXG4gICAgICAgICdEbyB5b3UgaGF2ZSBmcmVlIHNoaXBwaW5nPycsXG4gICAgICAgICdXaGF0IHNpemVzIGFyZSBhdmFpbGFibGU/JyxcbiAgICAgICAgJ0NhbiBJIHJldHVybiBpdGVtcz8nLFxuICAgICAgXSxcbiAgICAgIHBsYWNlaG9sZGVyOiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLkZsb2F0aW5nQ2hhdFYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGl0bGU6ICdXZWxjb21lIHRvIEVudml2ZSBBSScsXG4gICAgICB3ZWxjb21lTWVzc2FnZVRleHQ6XG4gICAgICAgICdZb3VyIHBlcnNvbmFsIHNob3BwZXIgdHJhaW5lZCBvbiB0aGUgY29sbGVjdGl2ZSBrbm93bGVkZ2Ugb2YgdGhvdXNhbmRzIG9mIHJlYWwgZXhwZXJ0cyEnLFxuICAgICAgY2hhdEZvb3RlclRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgICBkaXNjbGFpbWVyVGV4dDogJ1RoaXMgaXMgYSBkaXNjbGFpbWVyLi4uJyxcbiAgICAgIGxlZnRUb2dnbGVMYWJlbDogJ1Nob3Agd2l0aCBBSScsXG4gICAgICByaWdodFRvZ2dsZUxhYmVsOiAnTGl2ZSBzdXBwb3J0JyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLkZ1bGxQYWdlU2FsZXNBZ2VudFYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGl0bGU6ICdXZWxjb21lIHRvIEVudml2ZSBBSScsXG4gICAgICB3ZWxjb21lTWVzc2FnZVRleHQ6XG4gICAgICAgICdZb3VyIHBlcnNvbmFsIHNob3BwZXIgdHJhaW5lZCBvbiB0aGUgY29sbGVjdGl2ZSBrbm93bGVkZ2Ugb2YgdGhvdXNhbmRzIG9mIHJlYWwgZXhwZXJ0cyEnLFxuICAgICAgY2hhdEZvb3RlclRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgICBkaXNjbGFpbWVyVGV4dDogJ1RoaXMgaXMgYSBkaXNjbGFpbWVyLi4uJyxcbiAgICB9LFxuICB9LFxufTtcblxuY29uc3QgY29udmVydFRvSGFyZGNvcHlSZXNwb25zZSA9IChyZXNwb25zZTogV2lkZ2V0VGV4dCk6IEhhcmRjb3B5UmVzcG9uc2UgPT4gKHtcbiAgcmVzcG9uc2VJZDogcmVzcG9uc2UucmVzcG9uc2VJZCxcbiAgbGFuZ3VhZ2U6IHJlc3BvbnNlLmxhbmd1YWdlLFxuICByYXdWYWx1ZXM6IHJlc3BvbnNlLnZhbHVlcyxcbiAgdmFsdWVzOiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgT2JqZWN0LmVudHJpZXMocmVzcG9uc2UudmFsdWVzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW1xuICAgICAgdG9DYW1lbENhc2Uoa2V5KSxcbiAgICAgIHZhbHVlLmxlbmd0aCA9PT0gMSA/IHZhbHVlWzBdLnZhbHVlIDogdmFsdWUubWFwKHYgPT4gdi52YWx1ZSksXG4gICAgXSksXG4gICksXG59KTtcblxuZXhwb3J0IGNsYXNzIEhhcmRjb3B5U2VydmljZSBpbXBsZW1lbnRzIElIYXJkY29weVNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZzogSGFyZGNvcHlTZXJ2aWNlQ29uZmlnKSB7fVxuXG4gIGFzeW5jIGdldEhhcmRjb3B5KHJlcXVlc3Q6IEhhcmRjb3B5UmVxdWVzdCk6IFByb21pc2U8SGFyZGNvcHlSZXNwb25zZT4ge1xuICAgIGNvbnN0IG92ZXJyaWRlQ29uZmlnVmVyc2lvbiA9XG4gICAgICBnZXRRdWVyeVBhcmFtKCdzcGlmZnlfY29uZmlnX3ZlcnNpb24nKSB8fCBnZXRRdWVyeVBhcmFtKCdlbnZpdmVfY29uZmlnX3ZlcnNpb24nKSB8fCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCB3aWRnZXRUZXh0UmVxdWVzdDogV2lkZ2V0VGV4dFJlcXVlc3QgPSB7XG4gICAgICByZXF1ZXN0SWQ6IHV1aWQoKSxcbiAgICAgIHdpZGdldFR5cGU6IHJlcXVlc3Qud2lkZ2V0VHlwZSxcbiAgICAgIGNvbnRleHQ6IHRoaXMuY29uZmlnLmdldEFwcERldGFpbHMoKSxcbiAgICAgIGZlYXR1cmVGbGFnczogdGhpcy5jb25maWcuZ2V0RmVhdHVyZUZsYWdzKCksXG4gICAgICBsYW5ndWFnZTogbmF2aWdhdG9yLmxhbmd1YWdlc1swXSB8fCAnZW4nLFxuICAgICAgb3ZlcnJpZGVDb25maWdWZXJzaW9uLFxuICAgICAgdXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICB9O1xuXG4gICAgdGhpcy5jb25maWcudHJhY2tFdmVudD8uKHtcbiAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRUZXh0UmVxdWVzdCxcbiAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgd2lkZ2V0X3R5cGU6IHJlcXVlc3Qud2lkZ2V0VHlwZSxcbiAgICAgICAgcmVxdWVzdF9pZDogd2lkZ2V0VGV4dFJlcXVlc3QucmVxdWVzdElkLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IENvbW1lcmNlQXBpQ2xpZW50LmdldEhhcmRjb3B5KHdpZGdldFRleHRSZXF1ZXN0KTtcbiAgICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgICBjb25zdCBjb252ZXJ0ZWRSZXNwb25zZSA9IGNvbnZlcnRUb0hhcmRjb3B5UmVzcG9uc2UocmVzcG9uc2UpO1xuICAgICAgICBsb2dnZXIubG9nRGVidWcoJ2NvbnZlcnRlZCByZXNwb25zZScsIGNvbnZlcnRlZFJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5jb25maWcudHJhY2tFdmVudD8uKHtcbiAgICAgICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0VGV4dFJlc3BvbnNlLFxuICAgICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICAgIHdpZGdldF90eXBlOiByZXF1ZXN0LndpZGdldFR5cGUsXG4gICAgICAgICAgICByZXNwb25zZV9pZDogcmVzcG9uc2UucmVzcG9uc2VJZCxcbiAgICAgICAgICAgIHdpZGdldF90ZXh0OiByZXNwb25zZS52YWx1ZXMsXG4gICAgICAgICAgICByZXF1ZXN0X2lkOiB3aWRnZXRUZXh0UmVxdWVzdC5yZXF1ZXN0SWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjb252ZXJ0ZWRSZXNwb25zZTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLmxvZ0Vycm9yKCdlcnJvciBnZXR0aW5nIGhhcmRjb3B5IGZyb20gYmFja2VuZCcsIGVycm9yKTtcbiAgICB9XG5cbiAgICBjb25zdCBtb2NrUmVzcG9uc2UgPSBNT0NLX0hBUkRDT1BZX1JFU1BPTlNFW3JlcXVlc3Qud2lkZ2V0VHlwZV07XG4gICAgaWYgKG1vY2tSZXNwb25zZSkge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdubyByZWFsIHJlc3BvbnNlLCB1c2luZyBtb2NrJywgbW9ja1Jlc3BvbnNlKTtcbiAgICAgIHJldHVybiBtb2NrUmVzcG9uc2U7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgTm8gaGFyZGNvcHkgcmVzcG9uc2UgZm91bmQgZm9yIHdpZGdldCB0eXBlOiAke3JlcXVlc3Qud2lkZ2V0VHlwZX1gKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTW9ja0hhcmRjb3B5U2VydmljZSBpbXBsZW1lbnRzIElIYXJkY29weVNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG92ZXJyaWRlczogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4gPSB7fSkge31cblxuICBhc3luYyBnZXRIYXJkY29weShyZXF1ZXN0OiBIYXJkY29weVJlcXVlc3QpOiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+IHtcbiAgICBjb25zdCBmYWxsYmFja1dpZGdldFR5cGUgPVxuICAgICAgcmVxdWVzdC53aWRnZXRUeXBlID09PSBXaWRnZXRUeXBlVjMuUHJvZHVjdENhcmRWM1xuICAgICAgICA/IFdpZGdldFR5cGVWMy5JbWFnZVByb21wdENhcmRWM1xuICAgICAgICA6IHJlcXVlc3Qud2lkZ2V0VHlwZTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID1cbiAgICAgIHRoaXMub3ZlcnJpZGVzW3JlcXVlc3Qud2lkZ2V0VHlwZV0gPz9cbiAgICAgIHRoaXMub3ZlcnJpZGVzW2ZhbGxiYWNrV2lkZ2V0VHlwZV0gPz9cbiAgICAgIE1PQ0tfSEFSRENPUFlfUkVTUE9OU0VbcmVxdWVzdC53aWRnZXRUeXBlXTtcblxuICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gaGFyZGNvcHkgcmVzcG9uc2UgZm91bmQgZm9yIHdpZGdldCB0eXBlOiAke3JlcXVlc3Qud2lkZ2V0VHlwZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQVlBLE1BQU0sU0FBUyxJQUFJQSx1QkFBTyxrQkFBa0I7QUF5QjVDLE1BQWFDLHlCQUEwRTtFQUNwRkMsc0NBQWEsbUJBQW1CO0VBQy9CLDBCQUFrQjtFQUNsQixVQUFVO0VBQ1YsUUFBUSxFQUNOLG1CQUFtQjtHQUNqQjtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0QsRUFDRjtFQUNGO0VBQ0FBLHNDQUFhLHlCQUF5QjtFQUNyQyxZQUFZO0VBQ1osVUFBVTtFQUNWLFFBQVE7R0FDTixZQUFZO0dBQ1osbUJBQW1CO0lBQ2pCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRDtHQUNGO0VBQ0Y7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
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { WidgetTypeV3 } from "../../contexts/typesV3.cjs";
|
|
2
|
+
import { WidgetString } from "../../application/models/api/widgetText.cjs";
|
|
3
|
+
import { AppDetails } from "../../atoms/app/index.cjs";
|
|
4
|
+
import { TrackEventParams } from "../amplitudeService/amplitudeService.cjs";
|
|
5
|
+
import { UserEvent } from "../../application/models/api/userEvent.cjs";
|
|
6
|
+
|
|
7
|
+
//#region src/services/hardcopyService/hardcopyService.d.ts
|
|
8
|
+
interface HardcopyRequest {
|
|
9
|
+
widgetType: WidgetTypeV3;
|
|
10
|
+
userEvent: UserEvent;
|
|
11
|
+
}
|
|
12
|
+
type HardcopyResponse = {
|
|
13
|
+
responseId: string;
|
|
14
|
+
language: string;
|
|
15
|
+
rawValues?: Record<string, WidgetString | WidgetString[]>;
|
|
16
|
+
values: Record<string, string | string[]>;
|
|
17
|
+
};
|
|
18
|
+
interface IHardcopyService {
|
|
19
|
+
getHardcopy(request: HardcopyRequest): Promise<HardcopyResponse>;
|
|
20
|
+
}
|
|
21
|
+
interface HardcopyServiceConfig {
|
|
22
|
+
getAppDetails: () => AppDetails;
|
|
23
|
+
getFeatureFlags: () => Record<string, boolean>;
|
|
24
|
+
trackEvent?: (params: TrackEventParams) => Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
declare const MOCK_HARDCOPY_RESPONSE: Partial<Record<WidgetTypeV3, HardcopyResponse>>;
|
|
27
|
+
declare class HardcopyService implements IHardcopyService {
|
|
28
|
+
private config;
|
|
29
|
+
constructor(config: HardcopyServiceConfig);
|
|
30
|
+
getHardcopy(request: HardcopyRequest): Promise<HardcopyResponse>;
|
|
31
|
+
}
|
|
32
|
+
declare class MockHardcopyService implements IHardcopyService {
|
|
33
|
+
private overrides;
|
|
34
|
+
constructor(overrides?: Partial<Record<WidgetTypeV3, HardcopyResponse>>);
|
|
35
|
+
getHardcopy(request: HardcopyRequest): Promise<HardcopyResponse>;
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { HardcopyRequest, HardcopyResponse, HardcopyService, HardcopyServiceConfig, IHardcopyService, MOCK_HARDCOPY_RESPONSE, MockHardcopyService };
|
|
39
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlTZXJ2aWNlLmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9oYXJkY29weVNlcnZpY2UvaGFyZGNvcHlTZXJ2aWNlLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2lkZ2V0U3RyaW5nIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvd2lkZ2V0VGV4dCc7XG5pbXBvcnQgeyBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IEFwcERldGFpbHMgfSBmcm9tICdzcmMvYXRvbXMvYXBwJztcbmltcG9ydCB7IFdpZGdldFR5cGVWMyB9IGZyb20gJ3NyYy9jb250ZXh0cy90eXBlc1YzJztcbmltcG9ydCB7IFRyYWNrRXZlbnRQYXJhbXMgfSBmcm9tICcuLi9hbXBsaXR1ZGVTZXJ2aWNlJztcbmV4cG9ydCBpbnRlcmZhY2UgSGFyZGNvcHlSZXF1ZXN0IHtcbiAgICB3aWRnZXRUeXBlOiBXaWRnZXRUeXBlVjM7XG4gICAgdXNlckV2ZW50OiBVc2VyRXZlbnQ7XG59XG5leHBvcnQgdHlwZSBIYXJkY29weVJlc3BvbnNlID0ge1xuICAgIHJlc3BvbnNlSWQ6IHN0cmluZztcbiAgICBsYW5ndWFnZTogc3RyaW5nO1xuICAgIHJhd1ZhbHVlcz86IFJlY29yZDxzdHJpbmcsIFdpZGdldFN0cmluZyB8IFdpZGdldFN0cmluZ1tdPjtcbiAgICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPjtcbn07XG5leHBvcnQgaW50ZXJmYWNlIElIYXJkY29weVNlcnZpY2Uge1xuICAgIGdldEhhcmRjb3B5KHJlcXVlc3Q6IEhhcmRjb3B5UmVxdWVzdCk6IFByb21pc2U8SGFyZGNvcHlSZXNwb25zZT47XG59XG5leHBvcnQgaW50ZXJmYWNlIEhhcmRjb3B5U2VydmljZUNvbmZpZyB7XG4gICAgZ2V0QXBwRGV0YWlsczogKCkgPT4gQXBwRGV0YWlscztcbiAgICBnZXRGZWF0dXJlRmxhZ3M6ICgpID0+IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICAgIHRyYWNrRXZlbnQ/OiAocGFyYW1zOiBUcmFja0V2ZW50UGFyYW1zKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgTU9DS19IQVJEQ09QWV9SRVNQT05TRTogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj47XG5leHBvcnQgZGVjbGFyZSBjbGFzcyBIYXJkY29weVNlcnZpY2UgaW1wbGVtZW50cyBJSGFyZGNvcHlTZXJ2aWNlIHtcbiAgICBwcml2YXRlIGNvbmZpZztcbiAgICBjb25zdHJ1Y3Rvcihjb25maWc6IEhhcmRjb3B5U2VydmljZUNvbmZpZyk7XG4gICAgZ2V0SGFyZGNvcHkocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPjtcbn1cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIE1vY2tIYXJkY29weVNlcnZpY2UgaW1wbGVtZW50cyBJSGFyZGNvcHlTZXJ2aWNlIHtcbiAgICBwcml2YXRlIG92ZXJyaWRlcztcbiAgICBjb25zdHJ1Y3RvcihvdmVycmlkZXM/OiBQYXJ0aWFsPFJlY29yZDxXaWRnZXRUeXBlVjMsIEhhcmRjb3B5UmVzcG9uc2U+Pik7XG4gICAgZ2V0SGFyZGNvcHkocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUtBLElBQVcsa0JBQWtCO0NBQUM7T0FBRztPQUFBO0NBQUE7QUFDakMsSUFBVyxtQkFBaUI7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDNUIsSUFBVyxtQkFBYTtDQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDeEIsSUFBQSx3QkFBQTtDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNBLElBQVcseUJBQW9CO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQy9CLElBQVcsa0JBQVc7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUN0QixJQUFXLHNCQUFTO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUEifQ==
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { WidgetTypeV3 } from "../../contexts/typesV3.js";
|
|
2
|
+
import { WidgetString } from "../../application/models/api/widgetText.js";
|
|
3
|
+
import { AppDetails } from "../../atoms/app/index.js";
|
|
4
|
+
import { TrackEventParams } from "../amplitudeService/amplitudeService.js";
|
|
5
|
+
import { UserEvent } from "../../application/models/api/userEvent.js";
|
|
6
|
+
|
|
7
|
+
//#region src/services/hardcopyService/hardcopyService.d.ts
|
|
8
|
+
interface HardcopyRequest {
|
|
9
|
+
widgetType: WidgetTypeV3;
|
|
10
|
+
userEvent: UserEvent;
|
|
11
|
+
}
|
|
12
|
+
type HardcopyResponse = {
|
|
13
|
+
responseId: string;
|
|
14
|
+
language: string;
|
|
15
|
+
rawValues?: Record<string, WidgetString | WidgetString[]>;
|
|
16
|
+
values: Record<string, string | string[]>;
|
|
17
|
+
};
|
|
18
|
+
interface IHardcopyService {
|
|
19
|
+
getHardcopy(request: HardcopyRequest): Promise<HardcopyResponse>;
|
|
20
|
+
}
|
|
21
|
+
interface HardcopyServiceConfig {
|
|
22
|
+
getAppDetails: () => AppDetails;
|
|
23
|
+
getFeatureFlags: () => Record<string, boolean>;
|
|
24
|
+
trackEvent?: (params: TrackEventParams) => Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
declare const MOCK_HARDCOPY_RESPONSE: Partial<Record<WidgetTypeV3, HardcopyResponse>>;
|
|
27
|
+
declare class HardcopyService implements IHardcopyService {
|
|
28
|
+
private config;
|
|
29
|
+
constructor(config: HardcopyServiceConfig);
|
|
30
|
+
getHardcopy(request: HardcopyRequest): Promise<HardcopyResponse>;
|
|
31
|
+
}
|
|
32
|
+
declare class MockHardcopyService implements IHardcopyService {
|
|
33
|
+
private overrides;
|
|
34
|
+
constructor(overrides?: Partial<Record<WidgetTypeV3, HardcopyResponse>>);
|
|
35
|
+
getHardcopy(request: HardcopyRequest): Promise<HardcopyResponse>;
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { HardcopyRequest, HardcopyResponse, HardcopyService, HardcopyServiceConfig, IHardcopyService, MOCK_HARDCOPY_RESPONSE, MockHardcopyService };
|
|
39
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlTZXJ2aWNlLmQudHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2hhcmRjb3B5U2VydmljZS9oYXJkY29weVNlcnZpY2UuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXaWRnZXRTdHJpbmcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS93aWRnZXRUZXh0JztcbmltcG9ydCB7IFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgQXBwRGV0YWlscyB9IGZyb20gJ3NyYy9hdG9tcy9hcHAnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzVjMnO1xuaW1wb3J0IHsgVHJhY2tFdmVudFBhcmFtcyB9IGZyb20gJy4uL2FtcGxpdHVkZVNlcnZpY2UnO1xuZXhwb3J0IGludGVyZmFjZSBIYXJkY29weVJlcXVlc3Qge1xuICAgIHdpZGdldFR5cGU6IFdpZGdldFR5cGVWMztcbiAgICB1c2VyRXZlbnQ6IFVzZXJFdmVudDtcbn1cbmV4cG9ydCB0eXBlIEhhcmRjb3B5UmVzcG9uc2UgPSB7XG4gICAgcmVzcG9uc2VJZDogc3RyaW5nO1xuICAgIGxhbmd1YWdlOiBzdHJpbmc7XG4gICAgcmF3VmFsdWVzPzogUmVjb3JkPHN0cmluZywgV2lkZ2V0U3RyaW5nIHwgV2lkZ2V0U3RyaW5nW10+O1xuICAgIHZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+O1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgSUhhcmRjb3B5U2VydmljZSB7XG4gICAgZ2V0SGFyZGNvcHkocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSGFyZGNvcHlTZXJ2aWNlQ29uZmlnIHtcbiAgICBnZXRBcHBEZXRhaWxzOiAoKSA9PiBBcHBEZXRhaWxzO1xuICAgIGdldEZlYXR1cmVGbGFnczogKCkgPT4gUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gICAgdHJhY2tFdmVudD86IChwYXJhbXM6IFRyYWNrRXZlbnRQYXJhbXMpID0+IFByb21pc2U8dm9pZD47XG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCBNT0NLX0hBUkRDT1BZX1JFU1BPTlNFOiBQYXJ0aWFsPFJlY29yZDxXaWRnZXRUeXBlVjMsIEhhcmRjb3B5UmVzcG9uc2U+PjtcbmV4cG9ydCBkZWNsYXJlIGNsYXNzIEhhcmRjb3B5U2VydmljZSBpbXBsZW1lbnRzIElIYXJkY29weVNlcnZpY2Uge1xuICAgIHByaXZhdGUgY29uZmlnO1xuICAgIGNvbnN0cnVjdG9yKGNvbmZpZzogSGFyZGNvcHlTZXJ2aWNlQ29uZmlnKTtcbiAgICBnZXRIYXJkY29weShyZXF1ZXN0OiBIYXJkY29weVJlcXVlc3QpOiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+O1xufVxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgTW9ja0hhcmRjb3B5U2VydmljZSBpbXBsZW1lbnRzIElIYXJkY29weVNlcnZpY2Uge1xuICAgIHByaXZhdGUgb3ZlcnJpZGVzO1xuICAgIGNvbnN0cnVjdG9yKG92ZXJyaWRlcz86IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+KTtcbiAgICBnZXRIYXJkY29weShyZXF1ZXN0OiBIYXJkY29weVJlcXVlc3QpOiBQcm9taXNlPEhhcmRjb3B5UmVzcG9uc2U+O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBS0EsSUFBVyxrQkFBa0I7Q0FBQztPQUFHO09BQUE7Q0FBQTtBQUNqQyxJQUFXLG1CQUFpQjtDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUM1QixJQUFXLG1CQUFhO0NBQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUN4QixJQUFBLHdCQUFBO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ0EsSUFBVyx5QkFBb0I7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDL0IsSUFBVyxrQkFBVztDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ3RCLElBQVcsc0JBQVM7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQSJ9
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import logger_default from "../../application/logging/logger.js";
|
|
2
|
+
import { getQueryParam } from "../../application/utils/urlsParser.js";
|
|
3
|
+
import { toCamelCase } from "../../application/models/utils/snakeToCamelTransformer.js";
|
|
4
|
+
import { WidgetTypeV3 } from "../../contexts/typesV3.js";
|
|
5
|
+
import { EnviveMetricsEventName } from "../amplitudeService/eventNames.js";
|
|
6
|
+
import "../../application/utils/index.js";
|
|
7
|
+
import commerce_api_default from "../../application/commerce-api.js";
|
|
8
|
+
import "../amplitudeService/index.js";
|
|
9
|
+
import { v4 } from "uuid";
|
|
10
|
+
|
|
11
|
+
//#region src/services/hardcopyService/hardcopyService.ts
|
|
12
|
+
const logger = new logger_default("hardcopyService");
|
|
13
|
+
const MOCK_HARDCOPY_RESPONSE = {
|
|
14
|
+
[WidgetTypeV3.PromptCarouselV3]: {
|
|
15
|
+
responseId: v4(),
|
|
16
|
+
language: "en",
|
|
17
|
+
values: { promptButtonTexts: [
|
|
18
|
+
"What are your best sellers?",
|
|
19
|
+
"Show me summer dresses",
|
|
20
|
+
"Do you have free shipping?",
|
|
21
|
+
"What sizes are available?",
|
|
22
|
+
"Can I return items?"
|
|
23
|
+
] }
|
|
24
|
+
},
|
|
25
|
+
[WidgetTypeV3.TitledPromptCarouselV3]: {
|
|
26
|
+
responseId: "mock-response-id",
|
|
27
|
+
language: "en",
|
|
28
|
+
values: {
|
|
29
|
+
titleLabel: "Need some help?",
|
|
30
|
+
promptButtonTexts: [
|
|
31
|
+
"What are your best sellers?",
|
|
32
|
+
"Show me summer dresses",
|
|
33
|
+
"Do you have free shipping?",
|
|
34
|
+
"What sizes are available?",
|
|
35
|
+
"Can I return items?"
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
[WidgetTypeV3.SocialProofV3]: {
|
|
40
|
+
responseId: "mock-response-id",
|
|
41
|
+
language: "en",
|
|
42
|
+
values: {
|
|
43
|
+
titleLabel: "Shopping Assistant",
|
|
44
|
+
numberOfCustomersText: "123 customers",
|
|
45
|
+
customerQueryText: "found what they were looking for...",
|
|
46
|
+
primaryButtonText: "Start shopping",
|
|
47
|
+
secondaryButtonTitleText: "Popular searches",
|
|
48
|
+
secondaryButtonTexts: [
|
|
49
|
+
"Why should I buy from you?",
|
|
50
|
+
"How do I return an item?",
|
|
51
|
+
"New arrivals",
|
|
52
|
+
"Sale items",
|
|
53
|
+
"Popular items"
|
|
54
|
+
],
|
|
55
|
+
textFieldPlaceholderText: "Ask me anything..."
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
[WidgetTypeV3.TypingAnimationV3]: {
|
|
59
|
+
responseId: "mock-response-id",
|
|
60
|
+
language: "en",
|
|
61
|
+
values: {
|
|
62
|
+
titleLabel: "Shopping Assistant",
|
|
63
|
+
headlineText: "Need help finding",
|
|
64
|
+
animatedTextSequence: [
|
|
65
|
+
"the perfect gift for your loved ones?",
|
|
66
|
+
"something special for the holidays?",
|
|
67
|
+
"the ideal present for someone special?"
|
|
68
|
+
],
|
|
69
|
+
hintText: "Ask me anything",
|
|
70
|
+
promptButtonTexts: [
|
|
71
|
+
"What are your best sellers?",
|
|
72
|
+
"Show me summer dresses",
|
|
73
|
+
"Do you have free shipping?",
|
|
74
|
+
"What sizes are available?"
|
|
75
|
+
],
|
|
76
|
+
textFieldAriaLabel: "Ask me anything"
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
[WidgetTypeV3.ChatPreviewComparisonV3]: {
|
|
80
|
+
responseId: "mock-response-id",
|
|
81
|
+
language: "en",
|
|
82
|
+
values: {
|
|
83
|
+
titleLabel: "Shopping Assistant",
|
|
84
|
+
headlineText: "Need help comparing?",
|
|
85
|
+
textFieldPlaceholderText: "Ask me anything..."
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
[WidgetTypeV3.ChatPreviewLoadingV3]: {
|
|
89
|
+
responseId: "mock-response-id",
|
|
90
|
+
language: "en",
|
|
91
|
+
values: {
|
|
92
|
+
titleLabel: "Shopping Assistant",
|
|
93
|
+
textFieldPlaceholderText: "Ask me anything..."
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
[WidgetTypeV3.ChatPreviewV3]: {
|
|
97
|
+
responseId: "mock-response-id",
|
|
98
|
+
language: "en",
|
|
99
|
+
values: {
|
|
100
|
+
titleLabel: "Shopping Assistant",
|
|
101
|
+
textFieldPlaceholderText: "Ask me anything..."
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
[WidgetTypeV3.PromptButtonCarouselWithImageV3]: {
|
|
105
|
+
responseId: "mock-response-id",
|
|
106
|
+
language: "en",
|
|
107
|
+
values: {
|
|
108
|
+
titleLabel: "Need some help?",
|
|
109
|
+
promptButtonsTexts: [
|
|
110
|
+
"Help me find a product",
|
|
111
|
+
"What's on your mind?",
|
|
112
|
+
"Talk to a human"
|
|
113
|
+
],
|
|
114
|
+
textFieldPlaceholderText: "Ask me anything..."
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
[WidgetTypeV3.ProductCardV3]: {
|
|
118
|
+
responseId: "mock-response-id",
|
|
119
|
+
language: "en",
|
|
120
|
+
values: {
|
|
121
|
+
headline: "Discover Your Perfect Style",
|
|
122
|
+
animatedText: [
|
|
123
|
+
"the perfect outfit for any occasion",
|
|
124
|
+
"trending fashion that fits your lifestyle",
|
|
125
|
+
"quality pieces that last"
|
|
126
|
+
],
|
|
127
|
+
prompts: [
|
|
128
|
+
"What are your best sellers?",
|
|
129
|
+
"Show me summer dresses",
|
|
130
|
+
"Do you have free shipping?",
|
|
131
|
+
"What sizes are available?",
|
|
132
|
+
"Can I return items?"
|
|
133
|
+
],
|
|
134
|
+
placeholder: "Ask me anything..."
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
[WidgetTypeV3.FloatingChatV3]: {
|
|
138
|
+
responseId: "mock-response-id",
|
|
139
|
+
language: "en",
|
|
140
|
+
values: {
|
|
141
|
+
welcomeMessageTitle: "Welcome to Envive AI",
|
|
142
|
+
welcomeMessageText: "Your personal shopper trained on the collective knowledge of thousands of real experts!",
|
|
143
|
+
chatFooterTextFieldPlaceholderText: "Ask me anything...",
|
|
144
|
+
disclaimerText: "This is a disclaimer...",
|
|
145
|
+
leftToggleLabel: "Shop with AI",
|
|
146
|
+
rightToggleLabel: "Live support"
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
[WidgetTypeV3.FullPageSalesAgentV3]: {
|
|
150
|
+
responseId: "mock-response-id",
|
|
151
|
+
language: "en",
|
|
152
|
+
values: {
|
|
153
|
+
welcomeMessageTitle: "Welcome to Envive AI",
|
|
154
|
+
welcomeMessageText: "Your personal shopper trained on the collective knowledge of thousands of real experts!",
|
|
155
|
+
chatFooterTextFieldPlaceholderText: "Ask me anything...",
|
|
156
|
+
disclaimerText: "This is a disclaimer..."
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
const convertToHardcopyResponse = (response) => ({
|
|
161
|
+
responseId: response.responseId,
|
|
162
|
+
language: response.language,
|
|
163
|
+
rawValues: response.values,
|
|
164
|
+
values: Object.fromEntries(Object.entries(response.values).map(([key, value]) => [toCamelCase(key), value.length === 1 ? value[0].value : value.map((v) => v.value)]))
|
|
165
|
+
});
|
|
166
|
+
var HardcopyService = class {
|
|
167
|
+
constructor(config) {
|
|
168
|
+
this.config = config;
|
|
169
|
+
}
|
|
170
|
+
async getHardcopy(request) {
|
|
171
|
+
const overrideConfigVersion = getQueryParam("spiffy_config_version") || getQueryParam("envive_config_version") || void 0;
|
|
172
|
+
const widgetTextRequest = {
|
|
173
|
+
requestId: v4(),
|
|
174
|
+
widgetType: request.widgetType,
|
|
175
|
+
context: this.config.getAppDetails(),
|
|
176
|
+
featureFlags: this.config.getFeatureFlags(),
|
|
177
|
+
language: navigator.languages[0] || "en",
|
|
178
|
+
overrideConfigVersion,
|
|
179
|
+
url: window.location.href
|
|
180
|
+
};
|
|
181
|
+
this.config.trackEvent?.({
|
|
182
|
+
eventName: EnviveMetricsEventName.WidgetTextRequest,
|
|
183
|
+
eventProps: {
|
|
184
|
+
widget_type: request.widgetType,
|
|
185
|
+
request_id: widgetTextRequest.requestId
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
try {
|
|
189
|
+
const response = await commerce_api_default.getHardcopy(widgetTextRequest);
|
|
190
|
+
if (response) {
|
|
191
|
+
const convertedResponse = convertToHardcopyResponse(response);
|
|
192
|
+
logger.logDebug("converted response", convertedResponse);
|
|
193
|
+
this.config.trackEvent?.({
|
|
194
|
+
eventName: EnviveMetricsEventName.WidgetTextResponse,
|
|
195
|
+
eventProps: {
|
|
196
|
+
widget_type: request.widgetType,
|
|
197
|
+
response_id: response.responseId,
|
|
198
|
+
widget_text: response.values,
|
|
199
|
+
request_id: widgetTextRequest.requestId
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
return convertedResponse;
|
|
203
|
+
}
|
|
204
|
+
} catch (error) {
|
|
205
|
+
logger.logError("error getting hardcopy from backend", error);
|
|
206
|
+
}
|
|
207
|
+
const mockResponse = MOCK_HARDCOPY_RESPONSE[request.widgetType];
|
|
208
|
+
if (mockResponse) {
|
|
209
|
+
logger.logDebug("no real response, using mock", mockResponse);
|
|
210
|
+
return mockResponse;
|
|
211
|
+
}
|
|
212
|
+
throw new Error(`No hardcopy response found for widget type: ${request.widgetType}`);
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
var MockHardcopyService = class {
|
|
216
|
+
constructor(overrides = {}) {
|
|
217
|
+
this.overrides = overrides;
|
|
218
|
+
}
|
|
219
|
+
async getHardcopy(request) {
|
|
220
|
+
const fallbackWidgetType = request.widgetType === WidgetTypeV3.ProductCardV3 ? WidgetTypeV3.ImagePromptCardV3 : request.widgetType;
|
|
221
|
+
const response = this.overrides[request.widgetType] ?? this.overrides[fallbackWidgetType] ?? MOCK_HARDCOPY_RESPONSE[request.widgetType];
|
|
222
|
+
if (!response) throw new Error(`No hardcopy response found for widget type: ${request.widgetType}`);
|
|
223
|
+
return response;
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
//#endregion
|
|
228
|
+
export { HardcopyService, MOCK_HARDCOPY_RESPONSE, MockHardcopyService };
|
|
229
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFyZGNvcHlTZXJ2aWNlLmpzIiwibmFtZXMiOlsiTG9nZ2VyIiwiTU9DS19IQVJEQ09QWV9SRVNQT05TRTogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4iLCJ1dWlkIiwiY29uZmlnOiBIYXJkY29weVNlcnZpY2VDb25maWciLCJ3aWRnZXRUZXh0UmVxdWVzdDogV2lkZ2V0VGV4dFJlcXVlc3QiLCJDb21tZXJjZUFwaUNsaWVudCIsIm92ZXJyaWRlczogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvaGFyZGNvcHlTZXJ2aWNlL2hhcmRjb3B5U2VydmljZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgQ29tbWVyY2VBcGlDbGllbnQgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2NvbW1lcmNlLWFwaSc7XG5pbXBvcnQgeyBXaWRnZXRTdHJpbmcsIFdpZGdldFRleHQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS93aWRnZXRUZXh0JztcbmltcG9ydCB7IFdpZGdldFRleHRSZXF1ZXN0IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvd2lkZ2V0VGV4dFJlcXVlc3QnO1xuaW1wb3J0IHsgdG9DYW1lbENhc2UgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL3V0aWxzL3NuYWtlVG9DYW1lbFRyYW5zZm9ybWVyJztcbmltcG9ydCB7IGdldFF1ZXJ5UGFyYW0gfSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMnO1xuaW1wb3J0IHsgVXNlckV2ZW50IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBBcHBEZXRhaWxzIH0gZnJvbSAnc3JjL2F0b21zL2FwcCc7XG5pbXBvcnQgeyBXaWRnZXRUeXBlVjMgfSBmcm9tICdzcmMvY29udGV4dHMvdHlwZXNWMyc7XG5pbXBvcnQgeyBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLCBUcmFja0V2ZW50UGFyYW1zIH0gZnJvbSAnLi4vYW1wbGl0dWRlU2VydmljZSc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2hhcmRjb3B5U2VydmljZScpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhhcmRjb3B5UmVxdWVzdCB7XG4gIHdpZGdldFR5cGU6IFdpZGdldFR5cGVWMztcbiAgdXNlckV2ZW50OiBVc2VyRXZlbnQ7XG59XG5cbmV4cG9ydCB0eXBlIEhhcmRjb3B5UmVzcG9uc2UgPSB7XG4gIHJlc3BvbnNlSWQ6IHN0cmluZztcbiAgbGFuZ3VhZ2U6IHN0cmluZztcbiAgcmF3VmFsdWVzPzogUmVjb3JkPHN0cmluZywgV2lkZ2V0U3RyaW5nIHwgV2lkZ2V0U3RyaW5nW10+O1xuICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUhhcmRjb3B5U2VydmljZSB7XG4gIGdldEhhcmRjb3B5KHJlcXVlc3Q6IEhhcmRjb3B5UmVxdWVzdCk6IFByb21pc2U8SGFyZGNvcHlSZXNwb25zZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFyZGNvcHlTZXJ2aWNlQ29uZmlnIHtcbiAgZ2V0QXBwRGV0YWlsczogKCkgPT4gQXBwRGV0YWlscztcbiAgZ2V0RmVhdHVyZUZsYWdzOiAoKSA9PiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgdHJhY2tFdmVudD86IChwYXJhbXM6IFRyYWNrRXZlbnRQYXJhbXMpID0+IFByb21pc2U8dm9pZD47XG59XG5cbi8vIFNhbXBsZSByZXNwb25zZXMgdXNlZCBib3RoIGFzIGZhbGxiYWNrIHdoZW4gdGhlIGJhY2tlbmQgZmFpbHMgYW5kIGJ5IE1vY2tIYXJkY29weVNlcnZpY2UuXG5leHBvcnQgY29uc3QgTU9DS19IQVJEQ09QWV9SRVNQT05TRTogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj4gPSB7XG4gIFtXaWRnZXRUeXBlVjMuUHJvbXB0Q2Fyb3VzZWxWM106IHtcbiAgICByZXNwb25zZUlkOiB1dWlkKCksXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICBwcm9tcHRCdXR0b25UZXh0czogW1xuICAgICAgICAnV2hhdCBhcmUgeW91ciBiZXN0IHNlbGxlcnM/JyxcbiAgICAgICAgJ1Nob3cgbWUgc3VtbWVyIGRyZXNzZXMnLFxuICAgICAgICAnRG8geW91IGhhdmUgZnJlZSBzaGlwcGluZz8nLFxuICAgICAgICAnV2hhdCBzaXplcyBhcmUgYXZhaWxhYmxlPycsXG4gICAgICAgICdDYW4gSSByZXR1cm4gaXRlbXM/JyxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5UaXRsZWRQcm9tcHRDYXJvdXNlbFYzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdOZWVkIHNvbWUgaGVscD8nLFxuICAgICAgcHJvbXB0QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgICAnQ2FuIEkgcmV0dXJuIGl0ZW1zPycsXG4gICAgICBdLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuU29jaWFsUHJvb2ZWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIG51bWJlck9mQ3VzdG9tZXJzVGV4dDogJzEyMyBjdXN0b21lcnMnLFxuICAgICAgY3VzdG9tZXJRdWVyeVRleHQ6ICdmb3VuZCB3aGF0IHRoZXkgd2VyZSBsb29raW5nIGZvci4uLicsXG4gICAgICBwcmltYXJ5QnV0dG9uVGV4dDogJ1N0YXJ0IHNob3BwaW5nJyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvblRpdGxlVGV4dDogJ1BvcHVsYXIgc2VhcmNoZXMnLFxuICAgICAgc2Vjb25kYXJ5QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doeSBzaG91bGQgSSBidXkgZnJvbSB5b3U/JyxcbiAgICAgICAgJ0hvdyBkbyBJIHJldHVybiBhbiBpdGVtPycsXG4gICAgICAgICdOZXcgYXJyaXZhbHMnLFxuICAgICAgICAnU2FsZSBpdGVtcycsXG4gICAgICAgICdQb3B1bGFyIGl0ZW1zJyxcbiAgICAgIF0sXG4gICAgICB0ZXh0RmllbGRQbGFjZWhvbGRlclRleHQ6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuVHlwaW5nQW5pbWF0aW9uVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ1Nob3BwaW5nIEFzc2lzdGFudCcsXG4gICAgICBoZWFkbGluZVRleHQ6ICdOZWVkIGhlbHAgZmluZGluZycsXG4gICAgICBhbmltYXRlZFRleHRTZXF1ZW5jZTogW1xuICAgICAgICAndGhlIHBlcmZlY3QgZ2lmdCBmb3IgeW91ciBsb3ZlZCBvbmVzPycsXG4gICAgICAgICdzb21ldGhpbmcgc3BlY2lhbCBmb3IgdGhlIGhvbGlkYXlzPycsXG4gICAgICAgICd0aGUgaWRlYWwgcHJlc2VudCBmb3Igc29tZW9uZSBzcGVjaWFsPycsXG4gICAgICBdLFxuICAgICAgaGludFRleHQ6ICdBc2sgbWUgYW55dGhpbmcnLFxuICAgICAgcHJvbXB0QnV0dG9uVGV4dHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgXSxcbiAgICAgIHRleHRGaWVsZEFyaWFMYWJlbDogJ0FzayBtZSBhbnl0aGluZycsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5DaGF0UHJldmlld0NvbXBhcmlzb25WM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIGhlYWRsaW5lVGV4dDogJ05lZWQgaGVscCBjb21wYXJpbmc/JyxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5DaGF0UHJldmlld0xvYWRpbmdWM106IHtcbiAgICByZXNwb25zZUlkOiAnbW9jay1yZXNwb25zZS1pZCcsXG4gICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgdmFsdWVzOiB7XG4gICAgICB0aXRsZUxhYmVsOiAnU2hvcHBpbmcgQXNzaXN0YW50JyxcbiAgICAgIHRleHRGaWVsZFBsYWNlaG9sZGVyVGV4dDogJ0FzayBtZSBhbnl0aGluZy4uLicsXG4gICAgfSxcbiAgfSxcbiAgW1dpZGdldFR5cGVWMy5DaGF0UHJldmlld1YzXToge1xuICAgIHJlc3BvbnNlSWQ6ICdtb2NrLXJlc3BvbnNlLWlkJyxcbiAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHRpdGxlTGFiZWw6ICdTaG9wcGluZyBBc3Npc3RhbnQnLFxuICAgICAgdGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlByb21wdEJ1dHRvbkNhcm91c2VsV2l0aEltYWdlVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgdGl0bGVMYWJlbDogJ05lZWQgc29tZSBoZWxwPycsXG4gICAgICBwcm9tcHRCdXR0b25zVGV4dHM6IFsnSGVscCBtZSBmaW5kIGEgcHJvZHVjdCcsIFwiV2hhdCdzIG9uIHlvdXIgbWluZD9cIiwgJ1RhbGsgdG8gYSBodW1hbiddLFxuICAgICAgdGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICB9LFxuICB9LFxuICBbV2lkZ2V0VHlwZVYzLlByb2R1Y3RDYXJkVjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgaGVhZGxpbmU6ICdEaXNjb3ZlciBZb3VyIFBlcmZlY3QgU3R5bGUnLFxuICAgICAgYW5pbWF0ZWRUZXh0OiBbXG4gICAgICAgICd0aGUgcGVyZmVjdCBvdXRmaXQgZm9yIGFueSBvY2Nhc2lvbicsXG4gICAgICAgICd0cmVuZGluZyBmYXNoaW9uIHRoYXQgZml0cyB5b3VyIGxpZmVzdHlsZScsXG4gICAgICAgICdxdWFsaXR5IHBpZWNlcyB0aGF0IGxhc3QnLFxuICAgICAgXSxcbiAgICAgIHByb21wdHM6IFtcbiAgICAgICAgJ1doYXQgYXJlIHlvdXIgYmVzdCBzZWxsZXJzPycsXG4gICAgICAgICdTaG93IG1lIHN1bW1lciBkcmVzc2VzJyxcbiAgICAgICAgJ0RvIHlvdSBoYXZlIGZyZWUgc2hpcHBpbmc/JyxcbiAgICAgICAgJ1doYXQgc2l6ZXMgYXJlIGF2YWlsYWJsZT8nLFxuICAgICAgICAnQ2FuIEkgcmV0dXJuIGl0ZW1zPycsXG4gICAgICBdLFxuICAgICAgcGxhY2Vob2xkZXI6ICdBc2sgbWUgYW55dGhpbmcuLi4nLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuRmxvYXRpbmdDaGF0VjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgd2VsY29tZU1lc3NhZ2VUaXRsZTogJ1dlbGNvbWUgdG8gRW52aXZlIEFJJyxcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGV4dDpcbiAgICAgICAgJ1lvdXIgcGVyc29uYWwgc2hvcHBlciB0cmFpbmVkIG9uIHRoZSBjb2xsZWN0aXZlIGtub3dsZWRnZSBvZiB0aG91c2FuZHMgb2YgcmVhbCBleHBlcnRzIScsXG4gICAgICBjaGF0Rm9vdGVyVGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICAgIGRpc2NsYWltZXJUZXh0OiAnVGhpcyBpcyBhIGRpc2NsYWltZXIuLi4nLFxuICAgICAgbGVmdFRvZ2dsZUxhYmVsOiAnU2hvcCB3aXRoIEFJJyxcbiAgICAgIHJpZ2h0VG9nZ2xlTGFiZWw6ICdMaXZlIHN1cHBvcnQnLFxuICAgIH0sXG4gIH0sXG4gIFtXaWRnZXRUeXBlVjMuRnVsbFBhZ2VTYWxlc0FnZW50VjNdOiB7XG4gICAgcmVzcG9uc2VJZDogJ21vY2stcmVzcG9uc2UtaWQnLFxuICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIHZhbHVlczoge1xuICAgICAgd2VsY29tZU1lc3NhZ2VUaXRsZTogJ1dlbGNvbWUgdG8gRW52aXZlIEFJJyxcbiAgICAgIHdlbGNvbWVNZXNzYWdlVGV4dDpcbiAgICAgICAgJ1lvdXIgcGVyc29uYWwgc2hvcHBlciB0cmFpbmVkIG9uIHRoZSBjb2xsZWN0aXZlIGtub3dsZWRnZSBvZiB0aG91c2FuZHMgb2YgcmVhbCBleHBlcnRzIScsXG4gICAgICBjaGF0Rm9vdGVyVGV4dEZpZWxkUGxhY2Vob2xkZXJUZXh0OiAnQXNrIG1lIGFueXRoaW5nLi4uJyxcbiAgICAgIGRpc2NsYWltZXJUZXh0OiAnVGhpcyBpcyBhIGRpc2NsYWltZXIuLi4nLFxuICAgIH0sXG4gIH0sXG59O1xuXG5jb25zdCBjb252ZXJ0VG9IYXJkY29weVJlc3BvbnNlID0gKHJlc3BvbnNlOiBXaWRnZXRUZXh0KTogSGFyZGNvcHlSZXNwb25zZSA9PiAoe1xuICByZXNwb25zZUlkOiByZXNwb25zZS5yZXNwb25zZUlkLFxuICBsYW5ndWFnZTogcmVzcG9uc2UubGFuZ3VhZ2UsXG4gIHJhd1ZhbHVlczogcmVzcG9uc2UudmFsdWVzLFxuICB2YWx1ZXM6IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhyZXNwb25zZS52YWx1ZXMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBbXG4gICAgICB0b0NhbWVsQ2FzZShrZXkpLFxuICAgICAgdmFsdWUubGVuZ3RoID09PSAxID8gdmFsdWVbMF0udmFsdWUgOiB2YWx1ZS5tYXAodiA9PiB2LnZhbHVlKSxcbiAgICBdKSxcbiAgKSxcbn0pO1xuXG5leHBvcnQgY2xhc3MgSGFyZGNvcHlTZXJ2aWNlIGltcGxlbWVudHMgSUhhcmRjb3B5U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBIYXJkY29weVNlcnZpY2VDb25maWcpIHt9XG5cbiAgYXN5bmMgZ2V0SGFyZGNvcHkocmVxdWVzdDogSGFyZGNvcHlSZXF1ZXN0KTogUHJvbWlzZTxIYXJkY29weVJlc3BvbnNlPiB7XG4gICAgY29uc3Qgb3ZlcnJpZGVDb25maWdWZXJzaW9uID1cbiAgICAgIGdldFF1ZXJ5UGFyYW0oJ3NwaWZmeV9jb25maWdfdmVyc2lvbicpIHx8IGdldFF1ZXJ5UGFyYW0oJ2Vudml2ZV9jb25maWdfdmVyc2lvbicpIHx8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHdpZGdldFRleHRSZXF1ZXN0OiBXaWRnZXRUZXh0UmVxdWVzdCA9IHtcbiAgICAgIHJlcXVlc3RJZDogdXVpZCgpLFxuICAgICAgd2lkZ2V0VHlwZTogcmVxdWVzdC53aWRnZXRUeXBlLFxuICAgICAgY29udGV4dDogdGhpcy5jb25maWcuZ2V0QXBwRGV0YWlscygpLFxuICAgICAgZmVhdHVyZUZsYWdzOiB0aGlzLmNvbmZpZy5nZXRGZWF0dXJlRmxhZ3MoKSxcbiAgICAgIGxhbmd1YWdlOiBuYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdIHx8ICdlbicsXG4gICAgICBvdmVycmlkZUNvbmZpZ1ZlcnNpb24sXG4gICAgICB1cmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgIH07XG5cbiAgICB0aGlzLmNvbmZpZy50cmFja0V2ZW50Py4oe1xuICAgICAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLldpZGdldFRleHRSZXF1ZXN0LFxuICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICB3aWRnZXRfdHlwZTogcmVxdWVzdC53aWRnZXRUeXBlLFxuICAgICAgICByZXF1ZXN0X2lkOiB3aWRnZXRUZXh0UmVxdWVzdC5yZXF1ZXN0SWQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgQ29tbWVyY2VBcGlDbGllbnQuZ2V0SGFyZGNvcHkod2lkZ2V0VGV4dFJlcXVlc3QpO1xuICAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZFJlc3BvbnNlID0gY29udmVydFRvSGFyZGNvcHlSZXNwb25zZShyZXNwb25zZSk7XG4gICAgICAgIGxvZ2dlci5sb2dEZWJ1ZygnY29udmVydGVkIHJlc3BvbnNlJywgY29udmVydGVkUmVzcG9uc2UpO1xuICAgICAgICB0aGlzLmNvbmZpZy50cmFja0V2ZW50Py4oe1xuICAgICAgICAgIGV2ZW50TmFtZTogRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRUZXh0UmVzcG9uc2UsXG4gICAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgICAgd2lkZ2V0X3R5cGU6IHJlcXVlc3Qud2lkZ2V0VHlwZSxcbiAgICAgICAgICAgIHJlc3BvbnNlX2lkOiByZXNwb25zZS5yZXNwb25zZUlkLFxuICAgICAgICAgICAgd2lkZ2V0X3RleHQ6IHJlc3BvbnNlLnZhbHVlcyxcbiAgICAgICAgICAgIHJlcXVlc3RfaWQ6IHdpZGdldFRleHRSZXF1ZXN0LnJlcXVlc3RJZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNvbnZlcnRlZFJlc3BvbnNlO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIubG9nRXJyb3IoJ2Vycm9yIGdldHRpbmcgaGFyZGNvcHkgZnJvbSBiYWNrZW5kJywgZXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IG1vY2tSZXNwb25zZSA9IE1PQ0tfSEFSRENPUFlfUkVTUE9OU0VbcmVxdWVzdC53aWRnZXRUeXBlXTtcbiAgICBpZiAobW9ja1Jlc3BvbnNlKSB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoJ25vIHJlYWwgcmVzcG9uc2UsIHVzaW5nIG1vY2snLCBtb2NrUmVzcG9uc2UpO1xuICAgICAgcmV0dXJuIG1vY2tSZXNwb25zZTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyBoYXJkY29weSByZXNwb25zZSBmb3VuZCBmb3Igd2lkZ2V0IHR5cGU6ICR7cmVxdWVzdC53aWRnZXRUeXBlfWApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNb2NrSGFyZGNvcHlTZXJ2aWNlIGltcGxlbWVudHMgSUhhcmRjb3B5U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3ZlcnJpZGVzOiBQYXJ0aWFsPFJlY29yZDxXaWRnZXRUeXBlVjMsIEhhcmRjb3B5UmVzcG9uc2U+PiA9IHt9KSB7fVxuXG4gIGFzeW5jIGdldEhhcmRjb3B5KHJlcXVlc3Q6IEhhcmRjb3B5UmVxdWVzdCk6IFByb21pc2U8SGFyZGNvcHlSZXNwb25zZT4ge1xuICAgIGNvbnN0IGZhbGxiYWNrV2lkZ2V0VHlwZSA9XG4gICAgICByZXF1ZXN0LndpZGdldFR5cGUgPT09IFdpZGdldFR5cGVWMy5Qcm9kdWN0Q2FyZFYzXG4gICAgICAgID8gV2lkZ2V0VHlwZVYzLkltYWdlUHJvbXB0Q2FyZFYzXG4gICAgICAgIDogcmVxdWVzdC53aWRnZXRUeXBlO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPVxuICAgICAgdGhpcy5vdmVycmlkZXNbcmVxdWVzdC53aWRnZXRUeXBlXSA/P1xuICAgICAgdGhpcy5vdmVycmlkZXNbZmFsbGJhY2tXaWRnZXRUeXBlXSA/P1xuICAgICAgTU9DS19IQVJEQ09QWV9SRVNQT05TRVtyZXF1ZXN0LndpZGdldFR5cGVdO1xuXG4gICAgaWYgKCFyZXNwb25zZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBoYXJkY29weSByZXNwb25zZSBmb3VuZCBmb3Igd2lkZ2V0IHR5cGU6ICR7cmVxdWVzdC53aWRnZXRUeXBlfWApO1xuICAgIH1cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFZQSxNQUFNLFNBQVMsSUFBSUEsZUFBTyxrQkFBa0I7QUF5QjVDLE1BQWFDLHlCQUEwRTtFQUNwRixhQUFhLG1CQUFtQjtFQUMvQixZQUFZQyxJQUFNO0VBQ2xCLFVBQVU7RUFDVixRQUFRLEVBQ04sbUJBQW1CO0dBQ2pCO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDRCxFQUNGO0VBQ0Y7RUFDQSxhQUFhLHlCQUF5QjtFQUNyQyxZQUFZO0VBQ1osVUFBVTtFQUNWLFFBQVE7R0FDTixZQUFZO0dBQ1osbUJBQW1CO0lBQ2pCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRDtHQUNGO0VBQ0Y7RUFDQSxhQUFhLGdCQUFnQjtFQUM1QixZQUFZO0VBQ1osVUFBVTtFQUNWLFFBQVE7R0FDTixZQUFZO0dBQ1osdUJB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
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const require_hardcopyService = require('./hardcopyService.cjs');
|
|
2
|
+
|
|
3
|
+
exports.HardcopyService = require_hardcopyService.HardcopyService;
|
|
4
|
+
exports.MOCK_HARDCOPY_RESPONSE = require_hardcopyService.MOCK_HARDCOPY_RESPONSE;
|
|
5
|
+
exports.MockHardcopyService = require_hardcopyService.MockHardcopyService;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { HardcopyRequest, HardcopyResponse, HardcopyService, HardcopyServiceConfig, IHardcopyService, MOCK_HARDCOPY_RESPONSE, MockHardcopyService } from "./hardcopyService.cjs";
|
|
2
|
+
export { HardcopyRequest, HardcopyResponse, HardcopyService, HardcopyServiceConfig, IHardcopyService, MOCK_HARDCOPY_RESPONSE, MockHardcopyService };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { HardcopyRequest, HardcopyResponse, HardcopyService, HardcopyServiceConfig, IHardcopyService, MOCK_HARDCOPY_RESPONSE, MockHardcopyService } from "./hardcopyService.js";
|
|
2
|
+
export { HardcopyRequest, HardcopyResponse, HardcopyService, HardcopyServiceConfig, IHardcopyService, MOCK_HARDCOPY_RESPONSE, MockHardcopyService };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { UserIdentityService } from "./userIdentityService.cjs";
|
|
2
|
-
export { UserIdentityService };
|
|
1
|
+
import { IUserIdentityService, MockUserIdentityService, UserIdentityService } from "./userIdentityService.cjs";
|
|
2
|
+
export { IUserIdentityService, MockUserIdentityService, UserIdentityService };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { UserIdentityService } from "./userIdentityService.js";
|
|
2
|
-
export { UserIdentityService };
|
|
1
|
+
import { IUserIdentityService, MockUserIdentityService, UserIdentityService } from "./userIdentityService.js";
|
|
2
|
+
export { IUserIdentityService, MockUserIdentityService, UserIdentityService };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { UserIdentityService } from "./userIdentityService.js";
|
|
1
|
+
import { MockUserIdentityService, UserIdentityService } from "./userIdentityService.js";
|
|
2
2
|
|
|
3
|
-
export { UserIdentityService };
|
|
3
|
+
export { MockUserIdentityService, UserIdentityService };
|