@gengage/assistant-fe 0.1.0
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/LICENSE +61 -0
- package/README.md +232 -0
- package/dist/assistant-fe.css +1 -0
- package/dist/chat/api.d.ts +87 -0
- package/dist/chat/api.d.ts.map +1 -0
- package/dist/chat/attachment-utils.d.ts +10 -0
- package/dist/chat/attachment-utils.d.ts.map +1 -0
- package/dist/chat/catalog.d.ts +1114 -0
- package/dist/chat/catalog.d.ts.map +1 -0
- package/dist/chat/components/AIGroupingCards.d.ts +4 -0
- package/dist/chat/components/AIGroupingCards.d.ts.map +1 -0
- package/dist/chat/components/AISuggestedSearchCards.d.ts +4 -0
- package/dist/chat/components/AISuggestedSearchCards.d.ts.map +1 -0
- package/dist/chat/components/AITopPicks.d.ts +4 -0
- package/dist/chat/components/AITopPicks.d.ts.map +1 -0
- package/dist/chat/components/CategoriesContainer.d.ts +4 -0
- package/dist/chat/components/CategoriesContainer.d.ts.map +1 -0
- package/dist/chat/components/ChatDrawer.d.ts +140 -0
- package/dist/chat/components/ChatDrawer.d.ts.map +1 -0
- package/dist/chat/components/ChoicePrompter.d.ts +16 -0
- package/dist/chat/components/ChoicePrompter.d.ts.map +1 -0
- package/dist/chat/components/ComparisonTable.d.ts +47 -0
- package/dist/chat/components/ComparisonTable.d.ts.map +1 -0
- package/dist/chat/components/FloatingComparisonButton.d.ts +11 -0
- package/dist/chat/components/FloatingComparisonButton.d.ts.map +1 -0
- package/dist/chat/components/GroundingReviewCard.d.ts +4 -0
- package/dist/chat/components/GroundingReviewCard.d.ts.map +1 -0
- package/dist/chat/components/KvkkBanner.d.ts +6 -0
- package/dist/chat/components/KvkkBanner.d.ts.map +1 -0
- package/dist/chat/components/Launcher.d.ts +25 -0
- package/dist/chat/components/Launcher.d.ts.map +1 -0
- package/dist/chat/components/PanelTopBar.d.ts +20 -0
- package/dist/chat/components/PanelTopBar.d.ts.map +1 -0
- package/dist/chat/components/ProactivePopup.d.ts +11 -0
- package/dist/chat/components/ProactivePopup.d.ts.map +1 -0
- package/dist/chat/components/ProsAndCons.d.ts +9 -0
- package/dist/chat/components/ProsAndCons.d.ts.map +1 -0
- package/dist/chat/components/ReviewHighlights.d.ts +3 -0
- package/dist/chat/components/ReviewHighlights.d.ts.map +1 -0
- package/dist/chat/components/ThumbnailsColumn.d.ts +23 -0
- package/dist/chat/components/ThumbnailsColumn.d.ts.map +1 -0
- package/dist/chat/components/actionClassifier.d.ts +13 -0
- package/dist/chat/components/actionClassifier.d.ts.map +1 -0
- package/dist/chat/components/productMentionLinker.d.ts +26 -0
- package/dist/chat/components/productMentionLinker.d.ts.map +1 -0
- package/dist/chat/components/renderUISpec.d.ts +15 -0
- package/dist/chat/components/renderUISpec.d.ts.map +1 -0
- package/dist/chat/components/typewriter.d.ts +25 -0
- package/dist/chat/components/typewriter.d.ts.map +1 -0
- package/dist/chat/extendedModeManager.d.ts +33 -0
- package/dist/chat/extendedModeManager.d.ts.map +1 -0
- package/dist/chat/index.d.ts +192 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/locales/en.d.ts +3 -0
- package/dist/chat/locales/en.d.ts.map +1 -0
- package/dist/chat/locales/index.d.ts +6 -0
- package/dist/chat/locales/index.d.ts.map +1 -0
- package/dist/chat/locales/tr.d.ts +3 -0
- package/dist/chat/locales/tr.d.ts.map +1 -0
- package/dist/chat/types.d.ts +212 -0
- package/dist/chat/types.d.ts.map +1 -0
- package/dist/chat.cjs +2 -0
- package/dist/chat.cjs.map +1 -0
- package/dist/chat.iife.js +59 -0
- package/dist/chat.iife.js.map +1 -0
- package/dist/chat.js +11 -0
- package/dist/chat.js.map +1 -0
- package/dist/common/action-router.d.ts +30 -0
- package/dist/common/action-router.d.ts.map +1 -0
- package/dist/common/activity-tracker.d.ts +38 -0
- package/dist/common/activity-tracker.d.ts.map +1 -0
- package/dist/common/analytics-events.d.ts +90 -0
- package/dist/common/analytics-events.d.ts.map +1 -0
- package/dist/common/analytics.d.ts +58 -0
- package/dist/common/analytics.d.ts.map +1 -0
- package/dist/common/api-paths.d.ts +14 -0
- package/dist/common/api-paths.d.ts.map +1 -0
- package/dist/common/client.d.ts +20 -0
- package/dist/common/client.d.ts.map +1 -0
- package/dist/common/communication-bridge.d.ts +51 -0
- package/dist/common/communication-bridge.d.ts.map +1 -0
- package/dist/common/config-schema.d.ts +241 -0
- package/dist/common/config-schema.d.ts.map +1 -0
- package/dist/common/context.d.ts +28 -0
- package/dist/common/context.d.ts.map +1 -0
- package/dist/common/customization-factories.d.ts +63 -0
- package/dist/common/customization-factories.d.ts.map +1 -0
- package/dist/common/events.d.ts +47 -0
- package/dist/common/events.d.ts.map +1 -0
- package/dist/common/global-error-toast.d.ts +6 -0
- package/dist/common/global-error-toast.d.ts.map +1 -0
- package/dist/common/index.d.ts +36 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/indexed-db.d.ts +74 -0
- package/dist/common/indexed-db.d.ts.map +1 -0
- package/dist/common/overlay.d.ts +64 -0
- package/dist/common/overlay.d.ts.map +1 -0
- package/dist/common/preflight.d.ts +12 -0
- package/dist/common/preflight.d.ts.map +1 -0
- package/dist/common/renderer/dom.d.ts +4 -0
- package/dist/common/renderer/dom.d.ts.map +1 -0
- package/dist/common/renderer/index.d.ts +5 -0
- package/dist/common/renderer/index.d.ts.map +1 -0
- package/dist/common/renderer/overrides.d.ts +24 -0
- package/dist/common/renderer/overrides.d.ts.map +1 -0
- package/dist/common/renderer/registry.d.ts +3 -0
- package/dist/common/renderer/registry.d.ts.map +1 -0
- package/dist/common/renderer/types.d.ts +20 -0
- package/dist/common/renderer/types.d.ts.map +1 -0
- package/dist/common/safe-html.d.ts +19 -0
- package/dist/common/safe-html.d.ts.map +1 -0
- package/dist/common/streaming.d.ts +32 -0
- package/dist/common/streaming.d.ts.map +1 -0
- package/dist/common/theme-utils.d.ts +16 -0
- package/dist/common/theme-utils.d.ts.map +1 -0
- package/dist/common/types.d.ts +298 -0
- package/dist/common/types.d.ts.map +1 -0
- package/dist/common/ui-theme.d.ts +10 -0
- package/dist/common/ui-theme.d.ts.map +1 -0
- package/dist/common/uuidv7.d.ts +8 -0
- package/dist/common/uuidv7.d.ts.map +1 -0
- package/dist/common/v1-protocol-adapter.d.ts +66 -0
- package/dist/common/v1-protocol-adapter.d.ts.map +1 -0
- package/dist/common/widget-base.d.ts +75 -0
- package/dist/common/widget-base.d.ts.map +1 -0
- package/dist/common.cjs +2 -0
- package/dist/common.cjs.map +1 -0
- package/dist/common.js +584 -0
- package/dist/common.js.map +1 -0
- package/dist/index-CFA70IGF.js +3626 -0
- package/dist/index-CFA70IGF.js.map +1 -0
- package/dist/index-Dfl89zpe.cjs +13 -0
- package/dist/index-Dfl89zpe.cjs.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/qna/api.d.ts +22 -0
- package/dist/qna/api.d.ts.map +1 -0
- package/dist/qna/catalog.d.ts +140 -0
- package/dist/qna/catalog.d.ts.map +1 -0
- package/dist/qna/components/ButtonRow.d.ts +16 -0
- package/dist/qna/components/ButtonRow.d.ts.map +1 -0
- package/dist/qna/components/TextInput.d.ts +12 -0
- package/dist/qna/components/TextInput.d.ts.map +1 -0
- package/dist/qna/components/renderUISpec.d.ts +8 -0
- package/dist/qna/components/renderUISpec.d.ts.map +1 -0
- package/dist/qna/index.d.ts +34 -0
- package/dist/qna/index.d.ts.map +1 -0
- package/dist/qna/locales/en.d.ts +3 -0
- package/dist/qna/locales/en.d.ts.map +1 -0
- package/dist/qna/locales/index.d.ts +6 -0
- package/dist/qna/locales/index.d.ts.map +1 -0
- package/dist/qna/locales/tr.d.ts +3 -0
- package/dist/qna/locales/tr.d.ts.map +1 -0
- package/dist/qna/types.d.ts +62 -0
- package/dist/qna/types.d.ts.map +1 -0
- package/dist/qna.cjs +2 -0
- package/dist/qna.cjs.map +1 -0
- package/dist/qna.css +1 -0
- package/dist/qna.iife.js +48 -0
- package/dist/qna.iife.js.map +1 -0
- package/dist/qna.js +435 -0
- package/dist/qna.js.map +1 -0
- package/dist/simrel/api.d.ts +26 -0
- package/dist/simrel/api.d.ts.map +1 -0
- package/dist/simrel/catalog.d.ts +319 -0
- package/dist/simrel/catalog.d.ts.map +1 -0
- package/dist/simrel/components/GroupTabs.d.ts +17 -0
- package/dist/simrel/components/GroupTabs.d.ts.map +1 -0
- package/dist/simrel/components/ProductCard.d.ts +17 -0
- package/dist/simrel/components/ProductCard.d.ts.map +1 -0
- package/dist/simrel/components/ProductGrid.d.ts +17 -0
- package/dist/simrel/components/ProductGrid.d.ts.map +1 -0
- package/dist/simrel/components/renderUISpec.d.ts +8 -0
- package/dist/simrel/components/renderUISpec.d.ts.map +1 -0
- package/dist/simrel/index.d.ts +36 -0
- package/dist/simrel/index.d.ts.map +1 -0
- package/dist/simrel/locales/en.d.ts +3 -0
- package/dist/simrel/locales/en.d.ts.map +1 -0
- package/dist/simrel/locales/index.d.ts +6 -0
- package/dist/simrel/locales/index.d.ts.map +1 -0
- package/dist/simrel/locales/tr.d.ts +3 -0
- package/dist/simrel/locales/tr.d.ts.map +1 -0
- package/dist/simrel/types.d.ts +111 -0
- package/dist/simrel/types.d.ts.map +1 -0
- package/dist/simrel.cjs +2 -0
- package/dist/simrel.cjs.map +1 -0
- package/dist/simrel.css +1 -0
- package/dist/simrel.iife.js +48 -0
- package/dist/simrel.iife.js.map +1 -0
- package/dist/simrel.js +620 -0
- package/dist/simrel.js.map +1 -0
- package/dist/types-CeON7iBO.cjs +48 -0
- package/dist/types-CeON7iBO.cjs.map +1 -0
- package/dist/types-yxW8WA7u.js +4132 -0
- package/dist/types-yxW8WA7u.js.map +1 -0
- package/package.json +100 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { ChatWidgetConfig } from '../chat/types.js';
|
|
2
|
+
import { QNAWidgetConfig } from '../qna/types.js';
|
|
3
|
+
import { SimRelWidgetConfig } from '../simrel/types.js';
|
|
4
|
+
import { AnalyticsClientConfig } from './analytics.js';
|
|
5
|
+
import { WidgetTheme } from './types.js';
|
|
6
|
+
export declare const DEFAULT_CUSTOMIZATION_LOCALE = "tr";
|
|
7
|
+
export interface AccountIdentityConfig {
|
|
8
|
+
accountId: string;
|
|
9
|
+
middlewareUrl: string;
|
|
10
|
+
locale?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface AccountIdentity {
|
|
13
|
+
ACCOUNT_ID: string;
|
|
14
|
+
MIDDLEWARE_URL: string;
|
|
15
|
+
LOCALE: string;
|
|
16
|
+
}
|
|
17
|
+
interface BaseAccountWidgetConfigInput {
|
|
18
|
+
accountId: string;
|
|
19
|
+
middlewareUrl: string;
|
|
20
|
+
sessionId: string;
|
|
21
|
+
theme?: WidgetTheme;
|
|
22
|
+
}
|
|
23
|
+
export interface FloatingChatConfigInput extends BaseAccountWidgetConfigInput {
|
|
24
|
+
locale?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface PdpQnaConfigInput extends BaseAccountWidgetConfigInput {
|
|
27
|
+
sku: string;
|
|
28
|
+
mountTarget: QNAWidgetConfig['mountTarget'];
|
|
29
|
+
}
|
|
30
|
+
export interface PdpSimRelConfigInput extends BaseAccountWidgetConfigInput {
|
|
31
|
+
sku: string;
|
|
32
|
+
mountTarget: SimRelWidgetConfig['mountTarget'];
|
|
33
|
+
}
|
|
34
|
+
type FloatingChatConfigOverrides = Omit<Partial<ChatWidgetConfig>, 'accountId' | 'middlewareUrl' | 'session' | 'variant' | 'theme' | 'locale'>;
|
|
35
|
+
type PdpQnaConfigOverrides = Omit<Partial<QNAWidgetConfig>, 'accountId' | 'middlewareUrl' | 'session' | 'pageContext' | 'mountTarget' | 'theme'>;
|
|
36
|
+
type SimRelAccountConfig = Omit<SimRelWidgetConfig, 'onAddToCart' | 'onProductNavigate'>;
|
|
37
|
+
type PdpSimRelConfigOverrides = Omit<Partial<SimRelAccountConfig>, 'accountId' | 'middlewareUrl' | 'session' | 'sku' | 'mountTarget' | 'theme'>;
|
|
38
|
+
type DefaultAnalyticsConfigOverrides = Omit<AnalyticsClientConfig, 'middlewareUrl'>;
|
|
39
|
+
/**
|
|
40
|
+
* Shared account identity factory used by all customization folders.
|
|
41
|
+
* Keeps middleware URL + locale defaults centralized in the SDK layer.
|
|
42
|
+
*/
|
|
43
|
+
export declare function createAccountIdentity(config: AccountIdentityConfig): AccountIdentity;
|
|
44
|
+
/**
|
|
45
|
+
* Shared floating-chat baseline used by account customizations.
|
|
46
|
+
* Account files only pass differences via `overrides`.
|
|
47
|
+
*/
|
|
48
|
+
export declare function createFloatingChatConfig(input: FloatingChatConfigInput, overrides?: FloatingChatConfigOverrides): ChatWidgetConfig;
|
|
49
|
+
/**
|
|
50
|
+
* Shared PDP QNA baseline used by account customizations.
|
|
51
|
+
*/
|
|
52
|
+
export declare function createPdpQnaConfig(input: PdpQnaConfigInput, overrides?: PdpQnaConfigOverrides): QNAWidgetConfig;
|
|
53
|
+
/**
|
|
54
|
+
* Shared PDP SimRel baseline used by account customizations.
|
|
55
|
+
* Host-level commerce callbacks stay in account init wrappers.
|
|
56
|
+
*/
|
|
57
|
+
export declare function createPdpSimRelConfig(input: PdpSimRelConfigInput, overrides?: PdpSimRelConfigOverrides): SimRelAccountConfig;
|
|
58
|
+
/**
|
|
59
|
+
* Shared analytics defaults for account customization wrappers.
|
|
60
|
+
*/
|
|
61
|
+
export declare function createDefaultAnalyticsConfig(middlewareUrl: string, overrides?: DefaultAnalyticsConfigOverrides): AnalyticsClientConfig;
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=customization-factories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customization-factories.d.ts","sourceRoot":"","sources":["../../src/common/customization-factories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,4BAA4B;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,uBAAwB,SAAQ,4BAA4B;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAkB,SAAQ,4BAA4B;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,oBAAqB,SAAQ,4BAA4B;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;CAChD;AAED,KAAK,2BAA2B,GAAG,IAAI,CACrC,OAAO,CAAC,gBAAgB,CAAC,EACzB,WAAW,GAAG,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAC3E,CAAC;AACF,KAAK,qBAAqB,GAAG,IAAI,CAC/B,OAAO,CAAC,eAAe,CAAC,EACxB,WAAW,GAAG,eAAe,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,OAAO,CACpF,CAAC;AACF,KAAK,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,EAAE,aAAa,GAAG,mBAAmB,CAAC,CAAC;AACzF,KAAK,wBAAwB,GAAG,IAAI,CAClC,OAAO,CAAC,mBAAmB,CAAC,EAC5B,WAAW,GAAG,eAAe,GAAG,SAAS,GAAG,KAAK,GAAG,aAAa,GAAG,OAAO,CAC5E,CAAC;AACF,KAAK,+BAA+B,GAAG,IAAI,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;AAEpF;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CAMpF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,uBAAuB,EAC9B,SAAS,GAAE,2BAAgC,GAC1C,gBAAgB,CAalB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,GAAE,qBAA0B,GAAG,eAAe,CAanH;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,oBAAoB,EAC3B,SAAS,GAAE,wBAA6B,GACvC,mBAAmB,CAarB;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,MAAM,EACrB,SAAS,GAAE,+BAAoC,GAC9C,qBAAqB,CASvB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { GengageEventDetailMap, GengageEventName } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Dispatch a typed Gengage event on window.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* dispatch('gengage:qna:action', { title: 'About shipping', type: 'query', payload: 'shipping' });
|
|
7
|
+
*/
|
|
8
|
+
export declare function dispatch<K extends GengageEventName>(name: K, detail: GengageEventDetailMap[K]): void;
|
|
9
|
+
/**
|
|
10
|
+
* Listen for a typed Gengage event on window.
|
|
11
|
+
* Returns an unsubscribe function.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* const off = listen('gengage:qna:action', (detail) => {
|
|
15
|
+
* window.gengage?.chat?.openWithAction(detail);
|
|
16
|
+
* });
|
|
17
|
+
* // Later:
|
|
18
|
+
* off();
|
|
19
|
+
*/
|
|
20
|
+
export declare function listen<K extends GengageEventName>(name: K, handler: (detail: GengageEventDetailMap[K]) => void): () => void;
|
|
21
|
+
export interface WireQNAToChatOptions {
|
|
22
|
+
onChatUnavailable?: () => void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Convenience: wire QNA → Chat automatically.
|
|
26
|
+
* Call this once after both widgets are initialised.
|
|
27
|
+
*
|
|
28
|
+
* Listens for 'gengage:qna:action' and forwards to window.gengage.chat.openWithAction().
|
|
29
|
+
* Listens for 'gengage:qna:open-chat' and forwards to window.gengage.chat.open().
|
|
30
|
+
*
|
|
31
|
+
* If chat is not available at dispatch time, emits a one-time console.warn and
|
|
32
|
+
* calls options.onChatUnavailable (every time) if provided.
|
|
33
|
+
*
|
|
34
|
+
* @returns unsubscribe function that removes both listeners.
|
|
35
|
+
*/
|
|
36
|
+
export declare function wireQNAToChat(options?: WireQNAToChatOptions): () => void;
|
|
37
|
+
/**
|
|
38
|
+
* Convenience: wire Similar Products → Chat for cross-page session continuity.
|
|
39
|
+
* Call this once after both widgets are initialised.
|
|
40
|
+
*
|
|
41
|
+
* When the user navigates to a product page, the chat widget can restore
|
|
42
|
+
* the conversation where it left off using saveSession().
|
|
43
|
+
*
|
|
44
|
+
* @returns unsubscribe function.
|
|
45
|
+
*/
|
|
46
|
+
export declare function wireSimilarToChat(): () => void;
|
|
47
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/common/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE1E;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,gBAAgB,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,IAAI,CAEpG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,gBAAgB,EAC/C,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,KAAK,IAAI,GAClD,MAAM,IAAI,CAMZ;AAED,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAChC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM,IAAI,CAgCxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,IAAI,CAO9C"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { GengageEventDetailMap } from './types.js';
|
|
2
|
+
export declare function getGlobalErrorMessage(locale?: string): string;
|
|
3
|
+
export declare function registerGlobalErrorToastListener(): void;
|
|
4
|
+
export declare function showGlobalErrorToast(detail: GengageEventDetailMap['gengage:global:error']): void;
|
|
5
|
+
export declare function dismissGlobalErrorToast(): void;
|
|
6
|
+
//# sourceMappingURL=global-error-toast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-error-toast.d.ts","sourceRoot":"","sources":["../../src/common/global-error-toast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAaxD,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED,wBAAgB,gCAAgC,IAAI,IAAI,CASvD;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAmChG;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAY9C"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export type { PageContext, SessionContext, BaseWidgetConfig, WidgetTheme, GengageWidget, StreamEvent, StreamEventMetadata, StreamEventTextChunk, StreamEventUISpec, StreamEventAction, StreamEventError, StreamEventDone, UISpec, UIElement, ActionPayload, GengageEventName, GengageEventDetailMap, } from './types.js';
|
|
2
|
+
export { BaseWidget } from './widget-base.js';
|
|
3
|
+
export type { ChatPublicAPI } from './widget-base.js';
|
|
4
|
+
export { consumeStream, streamPost } from './streaming.js';
|
|
5
|
+
export type { StreamOptions, StreamEventHandler } from './streaming.js';
|
|
6
|
+
export { dispatch, listen, wireQNAToChat, wireSimilarToChat } from './events.js';
|
|
7
|
+
export type { WireQNAToChatOptions } from './events.js';
|
|
8
|
+
export { bootstrapSession, getWindowPageContext, updatePageContext, resolveSession } from './context.js';
|
|
9
|
+
export { initOverlayWidgets, getOverlayWidgets, destroyOverlayWidgets, buildOverlayIdempotencyKey } from './overlay.js';
|
|
10
|
+
export type { OverlayWidgetsController, OverlayWidgetsOptions, OverlayChatOptions, OverlayQNAOptions, OverlaySimRelOptions, } from './overlay.js';
|
|
11
|
+
export { buildChatEndpointUrl, normalizeMiddlewareUrl } from './api-paths.js';
|
|
12
|
+
export type { ChatTransportConfig, ChatEndpointName } from './api-paths.js';
|
|
13
|
+
export { AccountRuntimeConfigSchema, AnalyticsAuthModeSchema, UnknownActionPolicySchema, parseAccountRuntimeConfig, safeParseAccountRuntimeConfig, createDefaultAccountRuntimeConfig, } from './config-schema.js';
|
|
14
|
+
export type { AccountRuntimeConfig, AnalyticsAuthMode, UnknownActionPolicy } from './config-schema.js';
|
|
15
|
+
export { routeStreamAction } from './action-router.js';
|
|
16
|
+
export type { HostActionHandlers, ActionRouterOptions } from './action-router.js';
|
|
17
|
+
export { AnalyticsClient, createAnalyticsClient } from './analytics.js';
|
|
18
|
+
export type { AnalyticsEnvelope, AnalyticsInput, AnalyticsAuthConfig, AnalyticsClientConfig } from './analytics.js';
|
|
19
|
+
export { streamStartEvent, streamChunkEvent, streamUiSpecEvent, streamDoneEvent, streamErrorEvent, llmUsageEvent, meteringIncrementEvent, meteringSummaryEvent, chatHistorySnapshotEvent, widgetHistorySnapshotEvent, basketAddEvent, checkoutStartEvent, checkoutCompleteEvent, } from './analytics-events.js';
|
|
20
|
+
export type { AnalyticsContext } from './analytics-events.js';
|
|
21
|
+
export { sanitizeHtml } from './safe-html.js';
|
|
22
|
+
export { renderUISpecWithRegistry, defaultUnknownUISpecRenderer } from './renderer/index.js';
|
|
23
|
+
export { mergeUISpecRegistry } from './renderer/index.js';
|
|
24
|
+
export type { UISpecRenderHelpers, UISpecRendererOverrides, UISpecDomComponentRenderParams, UISpecDomComponentRenderer, UISpecDomRegistry, UISpecDomUnknownRendererParams, UISpecDomUnknownRenderer, RenderUISpecWithRegistryOptions, } from './renderer/index.js';
|
|
25
|
+
export { BASE_WIDGET_THEME, withBaseTheme } from './theme-utils.js';
|
|
26
|
+
export { DEFAULT_WIDGET_THEME_TOKENS, withDefaultWidgetTheme } from './ui-theme.js';
|
|
27
|
+
export { registerGlobalErrorToastListener, showGlobalErrorToast, dismissGlobalErrorToast, getGlobalErrorMessage, } from './global-error-toast.js';
|
|
28
|
+
export { DEFAULT_CUSTOMIZATION_LOCALE, createAccountIdentity, createFloatingChatConfig, createPdpQnaConfig, createPdpSimRelConfig, createDefaultAnalyticsConfig, } from './customization-factories.js';
|
|
29
|
+
export type { AccountIdentityConfig, AccountIdentity } from './customization-factories.js';
|
|
30
|
+
export { initGengageClient } from './client.js';
|
|
31
|
+
export type { GengageClientOptions, HostActions } from './client.js';
|
|
32
|
+
export { preflightDiagnostics } from './preflight.js';
|
|
33
|
+
export type { PreflightResult, PreflightWarning } from './preflight.js';
|
|
34
|
+
export { adaptV1Event, productToNormalized, normalizeSimilarProductsResponse, normalizeProductGroupingsResponse, } from './v1-protocol-adapter.js';
|
|
35
|
+
export type { V1Product, NormalizedProduct, SimilarProductsJsonResponse, ProductGroupingsJsonResponse, } from './v1-protocol-adapter.js';
|
|
36
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { SerializableChatMessage } from '../chat/types.js';
|
|
2
|
+
import { UISpec } from './types.js';
|
|
3
|
+
export interface SessionData {
|
|
4
|
+
userId: string;
|
|
5
|
+
appId: string;
|
|
6
|
+
sessionId: string;
|
|
7
|
+
messages: SerializableChatMessage[];
|
|
8
|
+
currentThreadId: string | null;
|
|
9
|
+
lastThreadId: string | null;
|
|
10
|
+
createdAt: string;
|
|
11
|
+
/** Thread IDs that produced panel content, in creation order. */
|
|
12
|
+
panelThreads?: string[] | undefined;
|
|
13
|
+
/** Product thumbnails for ThumbnailsColumn. */
|
|
14
|
+
thumbnailEntries?: Array<{
|
|
15
|
+
sku: string;
|
|
16
|
+
imageUrl: string;
|
|
17
|
+
threadId: string;
|
|
18
|
+
}> | undefined;
|
|
19
|
+
/** Serialized panel HTML keyed by bot message ID (for panel snapshot restore). */
|
|
20
|
+
panelSnapshotHtml?: Record<string, string> | undefined;
|
|
21
|
+
}
|
|
22
|
+
export interface ContextData {
|
|
23
|
+
sessionId: string;
|
|
24
|
+
threadId: string;
|
|
25
|
+
context: Record<string, unknown>;
|
|
26
|
+
}
|
|
27
|
+
export interface PayloadData {
|
|
28
|
+
threadId: string;
|
|
29
|
+
messageId: string;
|
|
30
|
+
uiSpec: UISpec;
|
|
31
|
+
}
|
|
32
|
+
export interface FavoriteData {
|
|
33
|
+
userId: string;
|
|
34
|
+
appId: string;
|
|
35
|
+
sku: string;
|
|
36
|
+
name?: string | undefined;
|
|
37
|
+
imageUrl?: string | undefined;
|
|
38
|
+
price?: string | undefined;
|
|
39
|
+
savedAt: string;
|
|
40
|
+
}
|
|
41
|
+
export declare class GengageIndexedDB {
|
|
42
|
+
private _db;
|
|
43
|
+
private _dbName;
|
|
44
|
+
private _version;
|
|
45
|
+
constructor(dbName?: string, version?: number);
|
|
46
|
+
open(): Promise<IDBDatabase>;
|
|
47
|
+
close(): void;
|
|
48
|
+
saveSession(data: SessionData): Promise<void>;
|
|
49
|
+
loadSession(userId: string, appId: string, sessionId: string): Promise<SessionData | null>;
|
|
50
|
+
saveContext(data: ContextData): Promise<void>;
|
|
51
|
+
loadContext(sessionId: string, threadId: string): Promise<ContextData | null>;
|
|
52
|
+
/**
|
|
53
|
+
* Delete all context entries for a session whose threadId is lexicographically
|
|
54
|
+
* greater than the given threadId. Used during rollback to prune future branches.
|
|
55
|
+
*
|
|
56
|
+
* Thread IDs are UUIDv7 (lexicographically sortable by time), so string
|
|
57
|
+
* comparison is sufficient.
|
|
58
|
+
*/
|
|
59
|
+
deleteContextsAfterThread(sessionId: string, threadId: string): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Load the most recent context for a session (latest threadId).
|
|
62
|
+
* Uses lexicographic ordering of UUIDv7 threadIds for chronological sort.
|
|
63
|
+
*/
|
|
64
|
+
loadLatestContext(sessionId: string): Promise<ContextData | null>;
|
|
65
|
+
savePayload(data: PayloadData): Promise<void>;
|
|
66
|
+
loadPayload(threadId: string, messageId: string): Promise<PayloadData | null>;
|
|
67
|
+
loadPayloadsByThread(threadId: string): Promise<PayloadData[]>;
|
|
68
|
+
saveFavorite(data: FavoriteData): Promise<void>;
|
|
69
|
+
removeFavorite(userId: string, appId: string, sku: string): Promise<void>;
|
|
70
|
+
loadFavorites(userId: string, appId: string): Promise<FavoriteData[]>;
|
|
71
|
+
isFavorite(userId: string, appId: string, sku: string): Promise<boolean>;
|
|
72
|
+
private _requireDb;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=indexed-db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexed-db.d.ts","sourceRoot":"","sources":["../../src/common/indexed-db.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { GengageChat } from '../chat/index.js';
|
|
2
|
+
import { ChatI18n, ChatWidgetConfig } from '../chat/types.js';
|
|
3
|
+
import { GengageQNA } from '../qna/index.js';
|
|
4
|
+
import { QNAWidgetConfig } from '../qna/types.js';
|
|
5
|
+
import { GengageSimRel } from '../simrel/index.js';
|
|
6
|
+
import { SimRelWidgetConfig } from '../simrel/types.js';
|
|
7
|
+
import { PageContext, SessionContext, WidgetTheme } from './types.js';
|
|
8
|
+
export interface OverlayChatOptions {
|
|
9
|
+
enabled?: boolean;
|
|
10
|
+
variant?: ChatWidgetConfig['variant'];
|
|
11
|
+
mountTarget?: HTMLElement | string;
|
|
12
|
+
launcherSvg?: string;
|
|
13
|
+
hideMobileLauncher?: boolean;
|
|
14
|
+
mobileBreakpoint?: number;
|
|
15
|
+
mobileInitialState?: 'half' | 'full';
|
|
16
|
+
i18n?: Partial<ChatI18n>;
|
|
17
|
+
actionHandling?: ChatWidgetConfig['actionHandling'];
|
|
18
|
+
}
|
|
19
|
+
export interface OverlayQNAOptions {
|
|
20
|
+
enabled?: boolean;
|
|
21
|
+
mountTarget?: HTMLElement | string;
|
|
22
|
+
ctaText?: string;
|
|
23
|
+
inputPlaceholder?: QNAWidgetConfig['inputPlaceholder'];
|
|
24
|
+
}
|
|
25
|
+
export interface OverlaySimRelOptions {
|
|
26
|
+
enabled?: boolean;
|
|
27
|
+
mountTarget?: HTMLElement | string;
|
|
28
|
+
discountType?: SimRelWidgetConfig['discountType'];
|
|
29
|
+
}
|
|
30
|
+
export interface OverlayWidgetsOptions {
|
|
31
|
+
accountId: string;
|
|
32
|
+
middlewareUrl: string;
|
|
33
|
+
locale?: string;
|
|
34
|
+
session?: Partial<SessionContext>;
|
|
35
|
+
pageContext?: Partial<PageContext>;
|
|
36
|
+
sku?: string;
|
|
37
|
+
theme?: WidgetTheme;
|
|
38
|
+
idempotencyKey?: string;
|
|
39
|
+
wireQnaToChat?: boolean;
|
|
40
|
+
chat?: OverlayChatOptions;
|
|
41
|
+
qna?: OverlayQNAOptions;
|
|
42
|
+
simrel?: OverlaySimRelOptions;
|
|
43
|
+
onAddToCart?: SimRelWidgetConfig['onAddToCart'];
|
|
44
|
+
onProductNavigate?: SimRelWidgetConfig['onProductNavigate'];
|
|
45
|
+
}
|
|
46
|
+
export interface OverlayWidgetsController {
|
|
47
|
+
readonly idempotencyKey: string;
|
|
48
|
+
readonly session: SessionContext;
|
|
49
|
+
readonly chat: GengageChat | null;
|
|
50
|
+
readonly qna: GengageQNA | null;
|
|
51
|
+
readonly simrel: GengageSimRel | null;
|
|
52
|
+
openChat(options?: {
|
|
53
|
+
state?: 'half' | 'full';
|
|
54
|
+
}): void;
|
|
55
|
+
closeChat(): void;
|
|
56
|
+
updateContext(patch: Partial<PageContext>): Promise<void>;
|
|
57
|
+
updateSku(sku: string, pageType?: PageContext['pageType']): Promise<void>;
|
|
58
|
+
destroy(): void;
|
|
59
|
+
}
|
|
60
|
+
export declare function initOverlayWidgets(options: OverlayWidgetsOptions): Promise<OverlayWidgetsController>;
|
|
61
|
+
export declare function getOverlayWidgets(idempotencyKey: string): OverlayWidgetsController | null;
|
|
62
|
+
export declare function destroyOverlayWidgets(idempotencyKey: string): void;
|
|
63
|
+
export declare function buildOverlayIdempotencyKey(accountId: string): string;
|
|
64
|
+
//# sourceMappingURL=overlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/common/overlay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AccountRuntimeConfig } from './config-schema.js';
|
|
2
|
+
export interface PreflightWarning {
|
|
3
|
+
code: string;
|
|
4
|
+
message: string;
|
|
5
|
+
severity: 'warn' | 'error';
|
|
6
|
+
}
|
|
7
|
+
export interface PreflightResult {
|
|
8
|
+
ok: boolean;
|
|
9
|
+
warnings: PreflightWarning[];
|
|
10
|
+
}
|
|
11
|
+
export declare function preflightDiagnostics(config: AccountRuntimeConfig): PreflightResult;
|
|
12
|
+
//# sourceMappingURL=preflight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../src/common/preflight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAWD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,eAAe,CAoDlF"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { UISpecDomUnknownRenderer, RenderUISpecWithRegistryOptions } from './types.js';
|
|
2
|
+
export declare const defaultUnknownUISpecRenderer: UISpecDomUnknownRenderer<unknown>;
|
|
3
|
+
export declare function renderUISpecWithRegistry<TContext>(options: RenderUISpecWithRegistryOptions<TContext>): HTMLElement;
|
|
4
|
+
//# sourceMappingURL=dom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/common/renderer/dom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAE5F,eAAO,MAAM,4BAA4B,EAAE,wBAAwB,CAAC,OAAO,CAW1E,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,+BAA+B,CAAC,QAAQ,CAAC,GAAG,WAAW,CAqClH"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { renderUISpecWithRegistry, defaultUnknownUISpecRenderer } from './dom.js';
|
|
2
|
+
export { mergeUISpecRegistry } from './registry.js';
|
|
3
|
+
export type { UISpecRenderHelpers, UISpecRendererOverrides } from './overrides.js';
|
|
4
|
+
export type { UISpecDomComponentRenderParams, UISpecDomComponentRenderer, UISpecDomRegistry, UISpecDomUnknownRendererParams, UISpecDomUnknownRenderer, RenderUISpecWithRegistryOptions, } from './types.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/renderer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,YAAY,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACnF,YAAY,EACV,8BAA8B,EAC9B,0BAA0B,EAC1B,iBAAiB,EACjB,8BAA8B,EAC9B,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { UISpec } from '../types.js';
|
|
2
|
+
import { UISpecDomRegistry, UISpecDomUnknownRenderer } from './types.js';
|
|
3
|
+
export interface UISpecRenderHelpers<TContext> {
|
|
4
|
+
registry: UISpecDomRegistry<TContext>;
|
|
5
|
+
unknownRenderer?: UISpecDomUnknownRenderer<TContext>;
|
|
6
|
+
defaultRender: (spec: UISpec, context: TContext) => HTMLElement;
|
|
7
|
+
}
|
|
8
|
+
export interface UISpecRendererOverrides<TContext> {
|
|
9
|
+
/**
|
|
10
|
+
* Component-level overrides. Merged on top of the widget's default registry.
|
|
11
|
+
*/
|
|
12
|
+
registry?: Partial<UISpecDomRegistry<TContext>>;
|
|
13
|
+
/**
|
|
14
|
+
* Optional fallback for unknown component types.
|
|
15
|
+
* Defaults to the widget's built-in unknown renderer.
|
|
16
|
+
*/
|
|
17
|
+
unknownRenderer?: UISpecDomUnknownRenderer<TContext>;
|
|
18
|
+
/**
|
|
19
|
+
* Full UISpec rendering override.
|
|
20
|
+
* Use this to replace the default rendering methodology entirely.
|
|
21
|
+
*/
|
|
22
|
+
renderUISpec?: (spec: UISpec, context: TContext, helpers: UISpecRenderHelpers<TContext>) => HTMLElement;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=overrides.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overrides.d.ts","sourceRoot":"","sources":["../../../src/common/renderer/overrides.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE9E,MAAM,WAAW,mBAAmB,CAAC,QAAQ;IAC3C,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACrD,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,KAAK,WAAW,CAAC;CACjE;AAED,MAAM,WAAW,uBAAuB,CAAC,QAAQ;IAC/C;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEhD;;;OAGG;IACH,eAAe,CAAC,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAErD;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,KAAK,WAAW,CAAC;CACzG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/common/renderer/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,wBAAgB,mBAAmB,CAAC,QAAQ,EAC1C,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EACjC,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,GAC/C,iBAAiB,CAAC,QAAQ,CAAC,CAS7B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { UISpec, UIElement } from '../types.js';
|
|
2
|
+
export interface UISpecDomComponentRenderParams<TContext> {
|
|
3
|
+
elementId: string;
|
|
4
|
+
element: UIElement;
|
|
5
|
+
spec: UISpec;
|
|
6
|
+
context: TContext;
|
|
7
|
+
renderElement: (elementId: string) => HTMLElement | null;
|
|
8
|
+
}
|
|
9
|
+
export type UISpecDomComponentRenderer<TContext> = (params: UISpecDomComponentRenderParams<TContext>) => HTMLElement | null;
|
|
10
|
+
export type UISpecDomRegistry<TContext> = Record<string, UISpecDomComponentRenderer<TContext>>;
|
|
11
|
+
export type UISpecDomUnknownRendererParams<TContext> = UISpecDomComponentRenderParams<TContext>;
|
|
12
|
+
export type UISpecDomUnknownRenderer<TContext> = (params: UISpecDomUnknownRendererParams<TContext>) => HTMLElement | null;
|
|
13
|
+
export interface RenderUISpecWithRegistryOptions<TContext> {
|
|
14
|
+
spec: UISpec;
|
|
15
|
+
context: TContext;
|
|
16
|
+
registry: UISpecDomRegistry<TContext>;
|
|
17
|
+
containerClassName: string;
|
|
18
|
+
unknownRenderer?: UISpecDomUnknownRenderer<TContext>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/renderer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,WAAW,8BAA8B,CAAC,QAAQ;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,QAAQ,CAAC;IAClB,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,CAAC;CAC1D;AAED,MAAM,MAAM,0BAA0B,CAAC,QAAQ,IAAI,CACjD,MAAM,EAAE,8BAA8B,CAAC,QAAQ,CAAC,KAC7C,WAAW,GAAG,IAAI,CAAC;AAExB,MAAM,MAAM,iBAAiB,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE/F,MAAM,MAAM,8BAA8B,CAAC,QAAQ,IAAI,8BAA8B,CAAC,QAAQ,CAAC,CAAC;AAEhG,MAAM,MAAM,wBAAwB,CAAC,QAAQ,IAAI,CAC/C,MAAM,EAAE,8BAA8B,CAAC,QAAQ,CAAC,KAC7C,WAAW,GAAG,IAAI,CAAC;AAExB,MAAM,WAAW,+BAA+B,CAAC,QAAQ;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,QAAQ,CAAC;IAClB,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACtC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;CACtD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOMParser-based HTML sanitizer.
|
|
3
|
+
*
|
|
4
|
+
* Backend sends HTML in assistant messages (e.g. KVKK notice).
|
|
5
|
+
* This module strips dangerous elements/attributes while preserving
|
|
6
|
+
* safe formatting tags.
|
|
7
|
+
*
|
|
8
|
+
* WARNING: Any new injection point that uses innerHTML must call this function first.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Sanitize an HTML string for safe insertion via innerHTML.
|
|
12
|
+
*
|
|
13
|
+
* - Allowed tags are preserved; disallowed tags are removed entirely.
|
|
14
|
+
* - Unknown tags are unwrapped (children promoted).
|
|
15
|
+
* - `<a>` tags are forced to `target="_blank" rel="noopener noreferrer"`.
|
|
16
|
+
* - Only `https://` is allowed for `<img src>`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function sanitizeHtml(raw: string): string;
|
|
19
|
+
//# sourceMappingURL=safe-html.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-html.d.ts","sourceRoot":"","sources":["../../src/common/safe-html.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAsJH;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAYhD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { StreamEvent } from './types.js';
|
|
2
|
+
export type StreamEventHandler = (event: StreamEvent) => void;
|
|
3
|
+
export interface StreamOptions {
|
|
4
|
+
/** Called for each parsed StreamEvent. */
|
|
5
|
+
onEvent: StreamEventHandler;
|
|
6
|
+
/** Called once when the stream closes normally. */
|
|
7
|
+
onDone?: () => void;
|
|
8
|
+
/** Called if the stream errors or the response is non-2xx. */
|
|
9
|
+
onError?: (err: Error) => void;
|
|
10
|
+
/** AbortController signal to cancel mid-stream. */
|
|
11
|
+
signal?: AbortSignal;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Consume an NDJSON streaming response and call onEvent for each line.
|
|
15
|
+
*
|
|
16
|
+
* Usage:
|
|
17
|
+
* const controller = new AbortController();
|
|
18
|
+
* await consumeStream(response, {
|
|
19
|
+
* onEvent: (event) => { ... },
|
|
20
|
+
* signal: controller.signal,
|
|
21
|
+
* });
|
|
22
|
+
*/
|
|
23
|
+
export declare function consumeStream(response: Response, options: StreamOptions): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Convenience: POST to a streaming endpoint and consume the response.
|
|
26
|
+
*
|
|
27
|
+
* @returns an AbortController that cancels the stream when aborted.
|
|
28
|
+
*/
|
|
29
|
+
export declare function streamPost(url: string, body: unknown, options: StreamOptions & {
|
|
30
|
+
headers?: Record<string, string>;
|
|
31
|
+
}): AbortController;
|
|
32
|
+
//# sourceMappingURL=streaming.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/common/streaming.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AA0C9D,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,OAAO,EAAE,kBAAkB,CAAC;IAC5B,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,mDAAmD;IACnD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAmDD;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C7F;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,aAAa,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC5D,eAAe,CAoBjB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { WidgetTheme } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Shared baseline tokens used by account customizations.
|
|
4
|
+
*
|
|
5
|
+
* These values come from historical Gengage host defaults and are
|
|
6
|
+
* intentionally conservative so account themes can override only what differs.
|
|
7
|
+
*/
|
|
8
|
+
export declare const BASE_WIDGET_THEME: WidgetTheme;
|
|
9
|
+
/**
|
|
10
|
+
* Merge account overrides on top of the shared base theme.
|
|
11
|
+
*
|
|
12
|
+
* Account customization files should call this helper so shared defaults stay
|
|
13
|
+
* centralized under src/common.
|
|
14
|
+
*/
|
|
15
|
+
export declare function withBaseTheme(overrides: WidgetTheme): WidgetTheme;
|
|
16
|
+
//# sourceMappingURL=theme-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-utils.d.ts","sourceRoot":"","sources":["../../src/common/theme-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,WA0B/B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,WAAW,GAAG,WAAW,CAEjE"}
|