@paymanai/payman-typescript-ask-sdk 4.0.5 → 4.0.6
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/index.d.mts +14 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +55 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +55 -11
- package/dist/index.mjs.map +1 -1
- package/dist/index.native.js +55 -11
- package/dist/index.native.js.map +1 -1
- package/package.json +1 -1
package/dist/index.native.js
CHANGED
|
@@ -983,9 +983,28 @@ function buildRequestBody(config, userMessage, sessionId, options) {
|
|
|
983
983
|
sessionOwnerId,
|
|
984
984
|
sessionOwnerLabel: sessionOwner?.name || void 0,
|
|
985
985
|
sessionAttributes,
|
|
986
|
-
analysisMode: options?.analysisMode
|
|
986
|
+
analysisMode: options?.analysisMode,
|
|
987
|
+
locale: resolveLocale(config.locale),
|
|
988
|
+
timezone: resolveTimezone(config.timezone)
|
|
987
989
|
};
|
|
988
990
|
}
|
|
991
|
+
function resolveLocale(configured) {
|
|
992
|
+
if (configured && configured.trim().length > 0) return configured.trim();
|
|
993
|
+
if (typeof navigator !== "undefined") {
|
|
994
|
+
const navLocale = navigator.language;
|
|
995
|
+
if (navLocale && navLocale.length > 0) return navLocale;
|
|
996
|
+
}
|
|
997
|
+
return "en-US";
|
|
998
|
+
}
|
|
999
|
+
function resolveTimezone(configured) {
|
|
1000
|
+
if (configured && configured.trim().length > 0) return configured.trim();
|
|
1001
|
+
try {
|
|
1002
|
+
const zone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
1003
|
+
if (zone && zone.length > 0) return zone;
|
|
1004
|
+
} catch {
|
|
1005
|
+
}
|
|
1006
|
+
return "UTC";
|
|
1007
|
+
}
|
|
989
1008
|
function buildStreamingUrl(config) {
|
|
990
1009
|
const endpoint = config.api.streamEndpoint || DEFAULT_STREAM_ENDPOINT;
|
|
991
1010
|
const stage = config.stage || "DEV";
|
|
@@ -1433,14 +1452,24 @@ function useStreamManagerV2(config, callbacks, setMessages, setIsWaitingForRespo
|
|
|
1433
1452
|
}
|
|
1434
1453
|
|
|
1435
1454
|
// src/hooks/useChatV2.ts
|
|
1455
|
+
function getStoredOrInitialMessages(config) {
|
|
1456
|
+
if (!config.userId) return config.initialMessages ?? [];
|
|
1457
|
+
const stored = chatStore.get(config.userId);
|
|
1458
|
+
if (stored.length > 0) return stored;
|
|
1459
|
+
if (config.initialMessages?.length) {
|
|
1460
|
+
chatStore.set(config.userId, config.initialMessages);
|
|
1461
|
+
return config.initialMessages;
|
|
1462
|
+
}
|
|
1463
|
+
return [];
|
|
1464
|
+
}
|
|
1465
|
+
function getSessionIdFromMessages(messages) {
|
|
1466
|
+
return messages.find((message) => message.sessionId)?.sessionId;
|
|
1467
|
+
}
|
|
1436
1468
|
function useChatV2(config, callbacks = {}) {
|
|
1437
|
-
const [messages, setMessages] = react.useState(() =>
|
|
1438
|
-
if (config.userId) return chatStore.get(config.userId);
|
|
1439
|
-
return config.initialMessages ?? [];
|
|
1440
|
-
});
|
|
1469
|
+
const [messages, setMessages] = react.useState(() => getStoredOrInitialMessages(config));
|
|
1441
1470
|
const [isWaitingForResponse, setIsWaitingForResponse] = react.useState(false);
|
|
1442
1471
|
const sessionIdRef = react.useRef(
|
|
1443
|
-
|
|
1472
|
+
getSessionIdFromMessages(getStoredOrInitialMessages(config)) ?? config.initialSessionId ?? void 0
|
|
1444
1473
|
);
|
|
1445
1474
|
const prevUserIdRef = react.useRef(config.userId);
|
|
1446
1475
|
const callbacksRef = react.useRef(callbacks);
|
|
@@ -1684,7 +1713,7 @@ function useChatV2(config, callbacks = {}) {
|
|
|
1684
1713
|
setIsWaitingForResponse(active.isWaiting);
|
|
1685
1714
|
}
|
|
1686
1715
|
return unsubscribe;
|
|
1687
|
-
}, []);
|
|
1716
|
+
}, [config.userId]);
|
|
1688
1717
|
react.useEffect(() => {
|
|
1689
1718
|
if (!config.userId) return;
|
|
1690
1719
|
const toSave = messages.filter((m) => !m.isStreaming);
|
|
@@ -1692,6 +1721,13 @@ function useChatV2(config, callbacks = {}) {
|
|
|
1692
1721
|
chatStore.set(config.userId, toSave);
|
|
1693
1722
|
}
|
|
1694
1723
|
}, [messages, config.userId]);
|
|
1724
|
+
react.useEffect(() => {
|
|
1725
|
+
if (!config.userId || activeStreamStore.has(config.userId)) return;
|
|
1726
|
+
if (!config.initialMessages?.length || messagesRef.current.length > 0) return;
|
|
1727
|
+
chatStore.set(config.userId, config.initialMessages);
|
|
1728
|
+
setMessages(config.initialMessages);
|
|
1729
|
+
sessionIdRef.current = getSessionIdFromMessages(config.initialMessages) ?? config.initialSessionId;
|
|
1730
|
+
}, [config.initialMessages, config.initialSessionId, config.userId]);
|
|
1695
1731
|
react.useEffect(() => {
|
|
1696
1732
|
const prevUserId = prevUserIdRef.current;
|
|
1697
1733
|
prevUserIdRef.current = config.userId;
|
|
@@ -1703,11 +1739,19 @@ function useChatV2(config, callbacks = {}) {
|
|
|
1703
1739
|
setIsWaitingForResponse(false);
|
|
1704
1740
|
setUserActionState({ request: null, result: null, clearOtpTrigger: 0 });
|
|
1705
1741
|
} else if (config.userId) {
|
|
1706
|
-
const
|
|
1707
|
-
|
|
1708
|
-
|
|
1742
|
+
const active = activeStreamStore.get(config.userId);
|
|
1743
|
+
if (active) {
|
|
1744
|
+
setMessages(active.messages);
|
|
1745
|
+
setIsWaitingForResponse(active.isWaiting);
|
|
1746
|
+
sessionIdRef.current = getSessionIdFromMessages(active.messages) ?? config.initialSessionId;
|
|
1747
|
+
return;
|
|
1748
|
+
}
|
|
1749
|
+
const nextMessages = getStoredOrInitialMessages(config);
|
|
1750
|
+
setMessages(nextMessages);
|
|
1751
|
+
sessionIdRef.current = getSessionIdFromMessages(nextMessages) ?? config.initialSessionId;
|
|
1752
|
+
setIsWaitingForResponse(false);
|
|
1709
1753
|
}
|
|
1710
|
-
}, [config
|
|
1754
|
+
}, [config]);
|
|
1711
1755
|
return {
|
|
1712
1756
|
messages,
|
|
1713
1757
|
sendMessage,
|