@envive-ai/react-hooks 0.3.63 → 0.3.65
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/models/featureGates.cjs +2 -2
- package/dist/application/models/featureGates.d.cts +2 -2
- package/dist/application/models/featureGates.d.ts +2 -2
- package/dist/application/models/featureGates.js +2 -2
- package/dist/application/utils/elementObserver.d.cts +2 -2
- package/dist/atoms/app/index.d.cts +7 -7
- package/dist/atoms/app/index.d.ts +1 -1
- package/dist/atoms/app/variant.d.ts +6 -6
- package/dist/atoms/chat/chatState.d.cts +19 -19
- package/dist/atoms/chat/chatState.d.ts +19 -19
- package/dist/atoms/chat/form.d.cts +2 -2
- package/dist/atoms/chat/form.d.ts +3 -3
- package/dist/atoms/chat/index.d.ts +3 -3
- package/dist/atoms/chat/lastMessage.d.cts +2 -2
- package/dist/atoms/chat/lastMessage.d.ts +2 -2
- package/dist/atoms/chat/messageQueue.d.ts +7 -7
- package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
- package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
- package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
- package/dist/atoms/chat/renderedWidgetRefs.d.ts +3 -3
- package/dist/atoms/chat/replies.d.cts +3 -3
- package/dist/atoms/chat/suggestions.d.ts +3 -3
- package/dist/atoms/envive/enviveConfig.d.cts +14 -14
- package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
- package/dist/atoms/org/customerService.d.cts +6 -6
- package/dist/atoms/org/customerService.d.ts +6 -6
- package/dist/atoms/org/graphqlConfig.d.cts +4 -4
- package/dist/atoms/org/graphqlConfig.d.ts +4 -4
- package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
- package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
- package/dist/atoms/org/orgAnalyticsConfig.d.cts +4 -4
- package/dist/atoms/org/orgAnalyticsConfig.d.ts +4 -4
- package/dist/atoms/search/types.d.cts +1 -1
- package/dist/atoms/search/utils.d.cts +1 -1
- package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
- package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
- package/dist/contexts/pageContext/pageContext.cjs +12 -24
- package/dist/contexts/pageContext/pageContext.js +12 -24
- package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
- package/dist/contexts/types.d.cts +1 -1
- package/dist/contexts/types.d.ts +1 -1
- package/dist/contexts/typesV3.cjs +8 -1
- package/dist/contexts/typesV3.d.cts +23 -6
- package/dist/contexts/typesV3.d.ts +23 -6
- package/dist/contexts/typesV3.js +8 -2
- package/dist/hooks/Intersection/useIntersection.cjs +9 -2
- package/dist/hooks/Intersection/useIntersection.d.cts +2 -2
- package/dist/hooks/Intersection/useIntersection.d.ts +2 -2
- package/dist/hooks/Intersection/useIntersection.js +9 -2
- package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.cts +2 -2
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.cjs +12 -3
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.cts +2 -1
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.ts +2 -1
- package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.js +13 -4
- package/dist/hooks/WidgetLoadDiagnostics/index.cjs +4 -0
- package/dist/hooks/WidgetLoadDiagnostics/index.d.cts +2 -0
- package/dist/hooks/WidgetLoadDiagnostics/index.d.ts +2 -0
- package/dist/hooks/WidgetLoadDiagnostics/index.js +3 -0
- package/dist/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.cjs +122 -0
- package/dist/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.d.cts +48 -0
- package/dist/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.d.ts +48 -0
- package/dist/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.js +120 -0
- package/dist/hooks/utils.d.cts +1 -1
- package/dist/hooks/utils.d.ts +1 -1
- package/dist/services/amplitudeService/eventNames.cjs +2 -1
- package/dist/services/amplitudeService/eventNames.d.cts +2 -1
- package/dist/services/amplitudeService/eventNames.d.ts +2 -1
- package/dist/services/amplitudeService/eventNames.js +2 -1
- package/dist/services/enviveConfigService/enviveConfigService.cjs +21 -35
- package/dist/services/enviveConfigService/enviveConfigService.d.cts +1 -2
- package/dist/services/enviveConfigService/enviveConfigService.d.ts +1 -2
- package/dist/services/enviveConfigService/enviveConfigService.js +21 -35
- package/dist/services/enviveConfigService/fetchBootstrapConfig.cjs +15 -16
- package/dist/services/enviveConfigService/fetchBootstrapConfig.js +15 -16
- package/dist/services/enviveConfigService/fetchGraphQLConfig.cjs +1 -69
- package/dist/services/enviveConfigService/fetchGraphQLConfig.js +2 -69
- package/dist/services/featureFlagService/index.cjs +7 -5
- package/dist/services/featureFlagService/index.d.cts +2 -1
- package/dist/services/featureFlagService/index.d.ts +2 -1
- package/dist/services/featureFlagService/index.js +7 -5
- package/dist/services/ga4ProjectionService/ga4EventSchema.cjs +3 -2
- package/dist/services/ga4ProjectionService/ga4EventSchema.js +3 -2
- package/dist/services/hardcopyService/hardcopyService.cjs +12 -3
- package/dist/services/hardcopyService/hardcopyService.d.cts +3 -1
- package/dist/services/hardcopyService/hardcopyService.d.ts +3 -1
- package/dist/services/hardcopyService/hardcopyService.js +12 -3
- package/package.json +5 -1
- package/src/application/models/featureGates.ts +11 -8
- package/src/contexts/pageContext/__tests__/pageContext.test.tsx +4 -59
- package/src/contexts/pageContext/pageContext.tsx +20 -41
- package/src/contexts/typesV3.ts +22 -4
- package/src/hooks/Intersection/useIntersection.ts +11 -0
- package/src/hooks/TrackComponentVisibleEvent/__tests__/useTrackComponentVisibleEvent.test.tsx +64 -0
- package/src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts +23 -4
- package/src/hooks/WidgetLoadDiagnostics/__tests__/useWidgetLoadDiagnostics.test.ts +161 -0
- package/src/hooks/WidgetLoadDiagnostics/index.ts +5 -0
- package/src/hooks/WidgetLoadDiagnostics/useWidgetLoadDiagnostics.ts +178 -0
- package/src/services/amplitudeService/eventNames.ts +4 -0
- package/src/services/enviveConfigService/__tests__/enviveConfigService.test.ts +72 -158
- package/src/services/enviveConfigService/__tests__/fetchBootstrapConfig.test.ts +111 -13
- package/src/services/enviveConfigService/__tests__/fetchGraphQLConfig.test.ts +161 -490
- package/src/services/enviveConfigService/enviveConfigService.ts +51 -87
- package/src/services/enviveConfigService/fetchBootstrapConfig.ts +74 -66
- package/src/services/enviveConfigService/fetchGraphQLConfig.ts +0 -120
- package/src/services/featureFlagService/__tests__/getFeatureFlagOverrides.test.ts +54 -0
- package/src/services/featureFlagService/index.ts +19 -6
- package/src/services/ga4ProjectionService/ga4EventSchema.ts +5 -0
- package/src/services/hardcopyService/__tests__/hardcopyService.test.ts +16 -5
- package/src/services/hardcopyService/hardcopyService.ts +10 -2
- package/dist/application/models/graphql/queries/getWidgetConfigQuery.cjs +0 -42
- package/dist/application/models/graphql/queries/getWidgetConfigQuery.js +0 -41
- package/src/application/models/graphql/queries/getWidgetConfigQuery.ts +0 -55
|
@@ -92,6 +92,7 @@ describe('HardcopyService', () => {
|
|
|
92
92
|
titleLabel: 'Hello World',
|
|
93
93
|
promptButtonTexts: ['Prompt 1', 'Prompt 2'],
|
|
94
94
|
},
|
|
95
|
+
servedFrom: 'api',
|
|
95
96
|
});
|
|
96
97
|
});
|
|
97
98
|
|
|
@@ -383,7 +384,11 @@ describe('HardcopyService', () => {
|
|
|
383
384
|
userEvent: {} as any,
|
|
384
385
|
});
|
|
385
386
|
|
|
386
|
-
expect(result).
|
|
387
|
+
expect(result).toEqual({
|
|
388
|
+
...MOCK_HARDCOPY_RESPONSE[WidgetTypeV3.PromptCarouselV3],
|
|
389
|
+
servedFrom: 'static',
|
|
390
|
+
fallbackReason: 'error',
|
|
391
|
+
});
|
|
387
392
|
});
|
|
388
393
|
|
|
389
394
|
it('returns the MOCK_HARDCOPY_RESPONSE entry when the API returns falsy', async () => {
|
|
@@ -394,7 +399,11 @@ describe('HardcopyService', () => {
|
|
|
394
399
|
userEvent: {} as any,
|
|
395
400
|
});
|
|
396
401
|
|
|
397
|
-
expect(result).
|
|
402
|
+
expect(result).toEqual({
|
|
403
|
+
...MOCK_HARDCOPY_RESPONSE[WidgetTypeV3.SocialProofV3],
|
|
404
|
+
servedFrom: 'static',
|
|
405
|
+
fallbackReason: 'error',
|
|
406
|
+
});
|
|
398
407
|
});
|
|
399
408
|
|
|
400
409
|
it('does not fire WidgetTextResponse when falling back to mock', async () => {
|
|
@@ -437,9 +446,11 @@ describe('HardcopyService', () => {
|
|
|
437
446
|
|
|
438
447
|
await vi.advanceTimersByTimeAsync(HARDCOPY_TIMEOUT_MS);
|
|
439
448
|
|
|
440
|
-
await expect(resultPromise).resolves.
|
|
441
|
-
MOCK_HARDCOPY_RESPONSE[WidgetTypeV3.PromptCarouselV3],
|
|
442
|
-
|
|
449
|
+
await expect(resultPromise).resolves.toEqual({
|
|
450
|
+
...MOCK_HARDCOPY_RESPONSE[WidgetTypeV3.PromptCarouselV3],
|
|
451
|
+
servedFrom: 'static',
|
|
452
|
+
fallbackReason: 'timeout',
|
|
453
|
+
});
|
|
443
454
|
} finally {
|
|
444
455
|
vi.useRealTimers();
|
|
445
456
|
}
|
|
@@ -49,6 +49,10 @@ export type HardcopyResponse = {
|
|
|
49
49
|
language: string;
|
|
50
50
|
rawValues?: Record<string, WidgetString | WidgetString[]>;
|
|
51
51
|
values: Record<string, string | string[]>;
|
|
52
|
+
// How the copy was served, for widget-load diagnostics: 'api' = live backend response,
|
|
53
|
+
// 'static' = fell back to the bundled MOCK_HARDCOPY_RESPONSE after a backend error or timeout.
|
|
54
|
+
servedFrom?: 'api' | 'static';
|
|
55
|
+
fallbackReason?: 'timeout' | 'error';
|
|
52
56
|
};
|
|
53
57
|
|
|
54
58
|
export interface IHardcopyService {
|
|
@@ -265,6 +269,8 @@ export class HardcopyService implements IHardcopyService {
|
|
|
265
269
|
},
|
|
266
270
|
});
|
|
267
271
|
|
|
272
|
+
// Reason the API path failed, surfaced on the static fallback for widget-load diagnostics.
|
|
273
|
+
let fallbackReason: 'timeout' | 'error' | undefined;
|
|
268
274
|
try {
|
|
269
275
|
const response = await withTimeout(
|
|
270
276
|
CommerceApiClient.getHardcopy(widgetTextRequest),
|
|
@@ -287,16 +293,18 @@ export class HardcopyService implements IHardcopyService {
|
|
|
287
293
|
: {}),
|
|
288
294
|
},
|
|
289
295
|
});
|
|
290
|
-
return convertedResponse;
|
|
296
|
+
return { ...convertedResponse, servedFrom: 'api' };
|
|
291
297
|
}
|
|
292
298
|
} catch (error) {
|
|
293
299
|
logger.logError('error getting hardcopy from backend', error);
|
|
300
|
+
fallbackReason =
|
|
301
|
+
error instanceof Error && error.message.includes('timed out') ? 'timeout' : 'error';
|
|
294
302
|
}
|
|
295
303
|
|
|
296
304
|
const mockResponse = MOCK_HARDCOPY_RESPONSE[request.widgetType];
|
|
297
305
|
if (mockResponse) {
|
|
298
306
|
logger.logDebug('no real response, using mock', mockResponse);
|
|
299
|
-
return mockResponse;
|
|
307
|
+
return { ...mockResponse, servedFrom: 'static', fallbackReason: fallbackReason ?? 'error' };
|
|
300
308
|
}
|
|
301
309
|
throw new Error(`No hardcopy response found for widget type: ${request.widgetType}`);
|
|
302
310
|
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
//#region src/application/models/graphql/queries/getWidgetConfigQuery.ts
|
|
3
|
-
const getWidgetConfigQuery = () => `
|
|
4
|
-
query($userId: String!, $version: String, $gateNames: [String!], $source: String) {
|
|
5
|
-
me {
|
|
6
|
-
org {
|
|
7
|
-
id
|
|
8
|
-
shortName
|
|
9
|
-
displayName
|
|
10
|
-
domain
|
|
11
|
-
createdAt
|
|
12
|
-
updatedAt
|
|
13
|
-
}
|
|
14
|
-
getWidgetConfig(userId: $userId, version: $version, gateNames: $gateNames, source: $source) {
|
|
15
|
-
productsConfig {
|
|
16
|
-
frontend { values }
|
|
17
|
-
colors { values }
|
|
18
|
-
v_three_config { values }
|
|
19
|
-
}
|
|
20
|
-
gates {
|
|
21
|
-
name
|
|
22
|
-
value
|
|
23
|
-
groupName
|
|
24
|
-
}
|
|
25
|
-
experimentAssignments {
|
|
26
|
-
layerName
|
|
27
|
-
namespace
|
|
28
|
-
allocatedExperimentName
|
|
29
|
-
groupName
|
|
30
|
-
}
|
|
31
|
-
resolution {
|
|
32
|
-
baseVersion
|
|
33
|
-
baseVersionSource
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
`;
|
|
39
|
-
|
|
40
|
-
//#endregion
|
|
41
|
-
exports.getWidgetConfigQuery = getWidgetConfigQuery;
|
|
42
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0V2lkZ2V0Q29uZmlnUXVlcnkuY2pzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbC9xdWVyaWVzL2dldFdpZGdldENvbmZpZ1F1ZXJ5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFN0YXRzaWctZXhwZXJpbWVudC1hd2FyZSB1bmlmaWVkIGNvbmZpZyBlbmRwb2ludCDigJQgdGhlIHNpbmdsZSBzb3VyY2Ugb2Zcbi8vIHNlc3Npb24gY29uZmlnLiBSZXR1cm5zIHByb2R1Y3RzQ29uZmlnLCB0aGUgcmVzb2x1dGlvbiBtZXRhZGF0YSBweW1vbm8gdXNlZFxuLy8gdG8gcGljayB0aGUgdmVyc2lvbiAodGhlIGNsaWVudCB0aHJlYWRzIGByZXNvbHV0aW9uLmJhc2VWZXJzaW9uYCBpbnRvXG4vLyBkb3duc3RyZWFtIGluZmVyZW5jZSByZXF1ZXN0cyBzbyB0aGV5J3JlIHNjb3BlZCB0byB0aGUgdmVyc2lvbiB0aGF0IHByb2R1Y2VkXG4vLyB0aGUgcmVuZGVyZWQgd2lkZ2V0cyksIEFORCB0aGUgb3JnIGlkZW50aXR5ICsgZmVhdHVyZSBnYXRlcyArIGV4cGVyaW1lbnRcbi8vIGFzc2lnbm1lbnRzIHRoYXQgdXNlZCB0byBjb21lIGZyb20gUkVTVCBgL3YxL29yZy9jb25maWdgLiBQdWxsaW5nIGFsbCBvZiBpdFxuLy8gaGVyZSBsZXRzIHRoZSBjbGllbnQgZHJvcCB0aGUgc2VwYXJhdGUgb3JnL2NvbmZpZyBjYWxsLlxuLy9cbi8vIHVzZXJJZCBpcyByZXF1aXJlZCBieSB0aGUgc2NoZW1hIChTdHJpbmchKSBhbmQgZmVlZHMgU3RhdHNpZyBsYXllclxuLy8gcmVzb2x1dGlvbiBzZXJ2ZXItc2lkZS4gc291cmNlIGZlZWRzIFN0YXRzaWcgdXNlciBwcm9wZXJ0aWVzLlxuLy9cbi8vIGdhdGVOYW1lcyBzZWxlY3RzIHdoaWNoIGZlYXR1cmUgZ2F0ZXMgdG8gZXZhbHVhdGUgYW5kIHJldHVybiDigJQgcGFzcyB0aGUgc2FtZVxuLy8gbGlzdCB0aGUgYXBwIGNoZWNrcyAodGhlIGBGZWF0dXJlR2F0ZXNgIGVudW0gdmFsdWVzKTsgdGhlIHJlc29sdmVyIHJldHVybnMgYW5cbi8vIGVtcHR5IGBnYXRlc2AgbGlzdCB3aGVuIG5vbmUgYXJlIHJlcXVlc3RlZC5cbi8vXG4vLyB2ZXJzaW9uIGlzIG9wdGlvbmFsOyB3aGVuIG9taXR0ZWQgKG5vIGBzcGlmZnlfY29uZmlnX3ZlcnNpb25gIC9cbi8vIGBlbnZpdmVfY29uZmlnX3ZlcnNpb25gIFVSTCBwYXJhbSkgdGhlIHJlc29sdmVyIHVzZXMgU3RhdHNpZyBidWNrZXRpbmcuXG4vLyBXaGVuIHNldCwgaXQgYnlwYXNzZXMgdGhlIG1lcmNoYW50IGV4cGVyaW1lbnQgYW5kIHBpbnMgdG8gdGhhdCBleGFjdCB2ZXJzaW9uXG4vLyAoZW1wdHkgZXhwZXJpbWVudEFzc2lnbm1lbnRzKSDigJQgdGhlIFFBIC8gcm9sbGJhY2sgYWZmb3JkYW5jZS5cbmV4cG9ydCBjb25zdCBnZXRXaWRnZXRDb25maWdRdWVyeSA9ICgpID0+IGBcbiAgcXVlcnkoJHVzZXJJZDogU3RyaW5nISwgJHZlcnNpb246IFN0cmluZywgJGdhdGVOYW1lczogW1N0cmluZyFdLCAkc291cmNlOiBTdHJpbmcpIHtcbiAgICBtZSB7XG4gICAgICBvcmcge1xuICAgICAgICBpZFxuICAgICAgICBzaG9ydE5hbWVcbiAgICAgICAgZGlzcGxheU5hbWVcbiAgICAgICAgZG9tYWluXG4gICAgICAgIGNyZWF0ZWRBdFxuICAgICAgICB1cGRhdGVkQXRcbiAgICAgIH1cbiAgICAgIGdldFdpZGdldENvbmZpZyh1c2VySWQ6ICR1c2VySWQsIHZlcnNpb246ICR2ZXJzaW9uLCBnYXRlTmFtZXM6ICRnYXRlTmFtZXMsIHNvdXJjZTogJHNvdXJjZSkge1xuICAgICAgICBwcm9kdWN0c0NvbmZpZyB7XG4gICAgICAgICAgZnJvbnRlbmQgeyB2YWx1ZXMgfVxuICAgICAgICAgIGNvbG9ycyB7IHZhbHVlcyB9XG4gICAgICAgICAgdl90aHJlZV9jb25maWcgeyB2YWx1ZXMgfVxuICAgICAgICB9XG4gICAgICAgIGdhdGVzIHtcbiAgICAgICAgICBuYW1lXG4gICAgICAgICAgdmFsdWVcbiAgICAgICAgICBncm91cE5hbWVcbiAgICAgICAgfVxuICAgICAgICBleHBlcmltZW50QXNzaWdubWVudHMge1xuICAgICAgICAgIGxheWVyTmFtZVxuICAgICAgICAgIG5hbWVzcGFjZVxuICAgICAgICAgIGFsbG9jYXRlZEV4cGVyaW1lbnROYW1lXG4gICAgICAgICAgZ3JvdXBOYW1lXG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x1dGlvbiB7XG4gICAgICAgICAgYmFzZVZlcnNpb25cbiAgICAgICAgICBiYXNlVmVyc2lvblNvdXJjZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuIl0sIm1hcHBpbmdzIjoiOztBQW1CQSxNQUFhLDZCQUE2QiJ9
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
//#region src/application/models/graphql/queries/getWidgetConfigQuery.ts
|
|
2
|
-
const getWidgetConfigQuery = () => `
|
|
3
|
-
query($userId: String!, $version: String, $gateNames: [String!], $source: String) {
|
|
4
|
-
me {
|
|
5
|
-
org {
|
|
6
|
-
id
|
|
7
|
-
shortName
|
|
8
|
-
displayName
|
|
9
|
-
domain
|
|
10
|
-
createdAt
|
|
11
|
-
updatedAt
|
|
12
|
-
}
|
|
13
|
-
getWidgetConfig(userId: $userId, version: $version, gateNames: $gateNames, source: $source) {
|
|
14
|
-
productsConfig {
|
|
15
|
-
frontend { values }
|
|
16
|
-
colors { values }
|
|
17
|
-
v_three_config { values }
|
|
18
|
-
}
|
|
19
|
-
gates {
|
|
20
|
-
name
|
|
21
|
-
value
|
|
22
|
-
groupName
|
|
23
|
-
}
|
|
24
|
-
experimentAssignments {
|
|
25
|
-
layerName
|
|
26
|
-
namespace
|
|
27
|
-
allocatedExperimentName
|
|
28
|
-
groupName
|
|
29
|
-
}
|
|
30
|
-
resolution {
|
|
31
|
-
baseVersion
|
|
32
|
-
baseVersionSource
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
`;
|
|
38
|
-
|
|
39
|
-
//#endregion
|
|
40
|
-
export { getWidgetConfigQuery };
|
|
41
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0V2lkZ2V0Q29uZmlnUXVlcnkuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ncmFwaHFsL3F1ZXJpZXMvZ2V0V2lkZ2V0Q29uZmlnUXVlcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU3RhdHNpZy1leHBlcmltZW50LWF3YXJlIHVuaWZpZWQgY29uZmlnIGVuZHBvaW50IOKAlCB0aGUgc2luZ2xlIHNvdXJjZSBvZlxuLy8gc2Vzc2lvbiBjb25maWcuIFJldHVybnMgcHJvZHVjdHNDb25maWcsIHRoZSByZXNvbHV0aW9uIG1ldGFkYXRhIHB5bW9ubyB1c2VkXG4vLyB0byBwaWNrIHRoZSB2ZXJzaW9uICh0aGUgY2xpZW50IHRocmVhZHMgYHJlc29sdXRpb24uYmFzZVZlcnNpb25gIGludG9cbi8vIGRvd25zdHJlYW0gaW5mZXJlbmNlIHJlcXVlc3RzIHNvIHRoZXkncmUgc2NvcGVkIHRvIHRoZSB2ZXJzaW9uIHRoYXQgcHJvZHVjZWRcbi8vIHRoZSByZW5kZXJlZCB3aWRnZXRzKSwgQU5EIHRoZSBvcmcgaWRlbnRpdHkgKyBmZWF0dXJlIGdhdGVzICsgZXhwZXJpbWVudFxuLy8gYXNzaWdubWVudHMgdGhhdCB1c2VkIHRvIGNvbWUgZnJvbSBSRVNUIGAvdjEvb3JnL2NvbmZpZ2AuIFB1bGxpbmcgYWxsIG9mIGl0XG4vLyBoZXJlIGxldHMgdGhlIGNsaWVudCBkcm9wIHRoZSBzZXBhcmF0ZSBvcmcvY29uZmlnIGNhbGwuXG4vL1xuLy8gdXNlcklkIGlzIHJlcXVpcmVkIGJ5IHRoZSBzY2hlbWEgKFN0cmluZyEpIGFuZCBmZWVkcyBTdGF0c2lnIGxheWVyXG4vLyByZXNvbHV0aW9uIHNlcnZlci1zaWRlLiBzb3VyY2UgZmVlZHMgU3RhdHNpZyB1c2VyIHByb3BlcnRpZXMuXG4vL1xuLy8gZ2F0ZU5hbWVzIHNlbGVjdHMgd2hpY2ggZmVhdHVyZSBnYXRlcyB0byBldmFsdWF0ZSBhbmQgcmV0dXJuIOKAlCBwYXNzIHRoZSBzYW1lXG4vLyBsaXN0IHRoZSBhcHAgY2hlY2tzICh0aGUgYEZlYXR1cmVHYXRlc2AgZW51bSB2YWx1ZXMpOyB0aGUgcmVzb2x2ZXIgcmV0dXJucyBhblxuLy8gZW1wdHkgYGdhdGVzYCBsaXN0IHdoZW4gbm9uZSBhcmUgcmVxdWVzdGVkLlxuLy9cbi8vIHZlcnNpb24gaXMgb3B0aW9uYWw7IHdoZW4gb21pdHRlZCAobm8gYHNwaWZmeV9jb25maWdfdmVyc2lvbmAgL1xuLy8gYGVudml2ZV9jb25maWdfdmVyc2lvbmAgVVJMIHBhcmFtKSB0aGUgcmVzb2x2ZXIgdXNlcyBTdGF0c2lnIGJ1Y2tldGluZy5cbi8vIFdoZW4gc2V0LCBpdCBieXBhc3NlcyB0aGUgbWVyY2hhbnQgZXhwZXJpbWVudCBhbmQgcGlucyB0byB0aGF0IGV4YWN0IHZlcnNpb25cbi8vIChlbXB0eSBleHBlcmltZW50QXNzaWdubWVudHMpIOKAlCB0aGUgUUEgLyByb2xsYmFjayBhZmZvcmRhbmNlLlxuZXhwb3J0IGNvbnN0IGdldFdpZGdldENvbmZpZ1F1ZXJ5ID0gKCkgPT4gYFxuICBxdWVyeSgkdXNlcklkOiBTdHJpbmchLCAkdmVyc2lvbjogU3RyaW5nLCAkZ2F0ZU5hbWVzOiBbU3RyaW5nIV0sICRzb3VyY2U6IFN0cmluZykge1xuICAgIG1lIHtcbiAgICAgIG9yZyB7XG4gICAgICAgIGlkXG4gICAgICAgIHNob3J0TmFtZVxuICAgICAgICBkaXNwbGF5TmFtZVxuICAgICAgICBkb21haW5cbiAgICAgICAgY3JlYXRlZEF0XG4gICAgICAgIHVwZGF0ZWRBdFxuICAgICAgfVxuICAgICAgZ2V0V2lkZ2V0Q29uZmlnKHVzZXJJZDogJHVzZXJJZCwgdmVyc2lvbjogJHZlcnNpb24sIGdhdGVOYW1lczogJGdhdGVOYW1lcywgc291cmNlOiAkc291cmNlKSB7XG4gICAgICAgIHByb2R1Y3RzQ29uZmlnIHtcbiAgICAgICAgICBmcm9udGVuZCB7IHZhbHVlcyB9XG4gICAgICAgICAgY29sb3JzIHsgdmFsdWVzIH1cbiAgICAgICAgICB2X3RocmVlX2NvbmZpZyB7IHZhbHVlcyB9XG4gICAgICAgIH1cbiAgICAgICAgZ2F0ZXMge1xuICAgICAgICAgIG5hbWVcbiAgICAgICAgICB2YWx1ZVxuICAgICAgICAgIGdyb3VwTmFtZVxuICAgICAgICB9XG4gICAgICAgIGV4cGVyaW1lbnRBc3NpZ25tZW50cyB7XG4gICAgICAgICAgbGF5ZXJOYW1lXG4gICAgICAgICAgbmFtZXNwYWNlXG4gICAgICAgICAgYWxsb2NhdGVkRXhwZXJpbWVudE5hbWVcbiAgICAgICAgICBncm91cE5hbWVcbiAgICAgICAgfVxuICAgICAgICByZXNvbHV0aW9uIHtcbiAgICAgICAgICBiYXNlVmVyc2lvblxuICAgICAgICAgIGJhc2VWZXJzaW9uU291cmNlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG4iXSwibWFwcGluZ3MiOiI7QUFtQkEsTUFBYSw2QkFBNkIifQ==
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
// Statsig-experiment-aware unified config endpoint — the single source of
|
|
2
|
-
// session config. Returns productsConfig, the resolution metadata pymono used
|
|
3
|
-
// to pick the version (the client threads `resolution.baseVersion` into
|
|
4
|
-
// downstream inference requests so they're scoped to the version that produced
|
|
5
|
-
// the rendered widgets), AND the org identity + feature gates + experiment
|
|
6
|
-
// assignments that used to come from REST `/v1/org/config`. Pulling all of it
|
|
7
|
-
// here lets the client drop the separate org/config call.
|
|
8
|
-
//
|
|
9
|
-
// userId is required by the schema (String!) and feeds Statsig layer
|
|
10
|
-
// resolution server-side. source feeds Statsig user properties.
|
|
11
|
-
//
|
|
12
|
-
// gateNames selects which feature gates to evaluate and return — pass the same
|
|
13
|
-
// list the app checks (the `FeatureGates` enum values); the resolver returns an
|
|
14
|
-
// empty `gates` list when none are requested.
|
|
15
|
-
//
|
|
16
|
-
// version is optional; when omitted (no `spiffy_config_version` /
|
|
17
|
-
// `envive_config_version` URL param) the resolver uses Statsig bucketing.
|
|
18
|
-
// When set, it bypasses the merchant experiment and pins to that exact version
|
|
19
|
-
// (empty experimentAssignments) — the QA / rollback affordance.
|
|
20
|
-
export const getWidgetConfigQuery = () => `
|
|
21
|
-
query($userId: String!, $version: String, $gateNames: [String!], $source: String) {
|
|
22
|
-
me {
|
|
23
|
-
org {
|
|
24
|
-
id
|
|
25
|
-
shortName
|
|
26
|
-
displayName
|
|
27
|
-
domain
|
|
28
|
-
createdAt
|
|
29
|
-
updatedAt
|
|
30
|
-
}
|
|
31
|
-
getWidgetConfig(userId: $userId, version: $version, gateNames: $gateNames, source: $source) {
|
|
32
|
-
productsConfig {
|
|
33
|
-
frontend { values }
|
|
34
|
-
colors { values }
|
|
35
|
-
v_three_config { values }
|
|
36
|
-
}
|
|
37
|
-
gates {
|
|
38
|
-
name
|
|
39
|
-
value
|
|
40
|
-
groupName
|
|
41
|
-
}
|
|
42
|
-
experimentAssignments {
|
|
43
|
-
layerName
|
|
44
|
-
namespace
|
|
45
|
-
allocatedExperimentName
|
|
46
|
-
groupName
|
|
47
|
-
}
|
|
48
|
-
resolution {
|
|
49
|
-
baseVersion
|
|
50
|
-
baseVersionSource
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
`;
|