@kindly-ai/react-native 0.1.10 → 1.0.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/README.md +9 -4
- package/android/build.gradle +1 -1
- package/android/maven-repo/ai/kindly/sdk/2.0.4-beta/sdk-2.0.4-beta.aar +0 -0
- package/android/maven-repo/ai/kindly/sdk/{2.0.0/sdk-2.0.0.pom → 2.0.4-beta/sdk-2.0.4-beta.pom} +1 -1
- package/android/src/main/java/com/kindlyai/reactnative/KindlyReactNativeModule.kt +4 -2
- package/ios/KindlyReactNative.mm +2 -0
- package/ios/KindlyReactNativeImpl.swift +7 -5
- package/lib/module/NativeKindlyReactNative.js.map +1 -1
- package/lib/module/index.js +21 -4
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/NativeKindlyReactNative.d.ts +1 -1
- package/lib/typescript/src/NativeKindlyReactNative.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +21 -3
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/NativeKindlyReactNative.ts +6 -1
- package/src/index.tsx +24 -5
- package/android/maven-repo/ai/kindly/sdk/2.0.0/sdk-2.0.0.aar +0 -0
package/README.md
CHANGED
|
@@ -26,10 +26,15 @@ import { KindlySDK, hexColor } from '@kindly-ai/react-native';
|
|
|
26
26
|
// 1. Initialize once on app start
|
|
27
27
|
KindlySDK.start({
|
|
28
28
|
botKey: 'your-bot-key',
|
|
29
|
+
market: 'general', // required — your market slug (Settings → General → Details & markets)
|
|
29
30
|
languageCode: 'en',
|
|
30
|
-
// Optional: invoked by the SDK when it needs an authenticated JWT
|
|
31
|
-
//
|
|
32
|
-
|
|
31
|
+
// Optional: invoked by the SDK when it needs an authenticated JWT for
|
|
32
|
+
// the current chat session. `chatId` is the backend-generated identifier
|
|
33
|
+
// — include it when calling your auth backend so the token is scoped to
|
|
34
|
+
// this chat. Return null for anonymous chats.
|
|
35
|
+
authTokenCallback: async (chatId) => {
|
|
36
|
+
return await yourAuthBackend.getKindlyJWT({ chatId });
|
|
37
|
+
},
|
|
33
38
|
});
|
|
34
39
|
|
|
35
40
|
// 2. Open the chat UI when the user wants it
|
|
@@ -54,7 +59,7 @@ KindlySDK.setDelegate({
|
|
|
54
59
|
|
|
55
60
|
| Method | Purpose |
|
|
56
61
|
|---|---|
|
|
57
|
-
| `start({botKey, languageCode?, authTokenCallback?})` | Initialize the SDK. Must be called before any other method. |
|
|
62
|
+
| `start({botKey, market, languageCode?, authTokenCallback?})` | Initialize the SDK. Must be called before any other method. `market` is **required** (Markets feature); the SDK loads that market's settings with no fallback. |
|
|
58
63
|
| `displayChat({languageCode?, triggerDialogueId?})` | Show the chat UI. |
|
|
59
64
|
| `launchChat({triggerDialogueId?})` | Connect (if needed) and show chat. Recommended on Android. |
|
|
60
65
|
| `closeChat()` | Dismiss the UI without ending the session. |
|
package/android/build.gradle
CHANGED
|
@@ -125,7 +125,7 @@ dependencies {
|
|
|
125
125
|
// `scripts/bundle-native-sdks.yml` at bundle time to match the just-
|
|
126
126
|
// released Android SDK version (`git describe --tags --abbrev=0` on
|
|
127
127
|
// the public release repo).
|
|
128
|
-
implementation "ai.kindly:sdk:2.0.
|
|
128
|
+
implementation "ai.kindly:sdk:2.0.4-beta"
|
|
129
129
|
|
|
130
130
|
// Required by the AuthTokenCallback bridge in KindlyReactNativeModule.kt
|
|
131
131
|
// (`CompletableDeferred`, `runBlocking`, `withTimeoutOrNull`).
|
|
Binary file
|
package/android/maven-repo/ai/kindly/sdk/{2.0.0/sdk-2.0.0.pom → 2.0.4-beta/sdk-2.0.4-beta.pom}
RENAMED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<modelVersion>4.0.0</modelVersion>
|
|
4
4
|
<groupId>ai.kindly</groupId>
|
|
5
5
|
<artifactId>sdk</artifactId>
|
|
6
|
-
<version>2.0.
|
|
6
|
+
<version>2.0.4-beta</version>
|
|
7
7
|
<packaging>aar</packaging>
|
|
8
8
|
<name>Kindly SDK</name>
|
|
9
9
|
<description>Kindly Chat SDK for Android — customer support chat widget</description>
|
|
@@ -92,12 +92,12 @@ class KindlyReactNativeModule(reactContext: ReactApplicationContext) :
|
|
|
92
92
|
|
|
93
93
|
// MARK: - Lifecycle
|
|
94
94
|
|
|
95
|
-
override fun start(botKey: String, languageCode: String?, hasAuthCallback: Boolean) {
|
|
95
|
+
override fun start(botKey: String, languageCode: String?, market: String, hasAuthCallback: Boolean) {
|
|
96
96
|
val app = context.applicationContext as? Application
|
|
97
97
|
if (app == null) return
|
|
98
98
|
|
|
99
99
|
val authCallback: AuthTokenCallback? = if (hasAuthCallback) {
|
|
100
|
-
{
|
|
100
|
+
{ chatId: String ->
|
|
101
101
|
val deferred = CompletableDeferred<String>()
|
|
102
102
|
val requestId = UUID.randomUUID().toString()
|
|
103
103
|
val pending = CompletableDeferred<String?>()
|
|
@@ -105,6 +105,7 @@ class KindlyReactNativeModule(reactContext: ReactApplicationContext) :
|
|
|
105
105
|
|
|
106
106
|
emitEvent("KindlyGetAuthToken", Arguments.createMap().apply {
|
|
107
107
|
putString("requestId", requestId)
|
|
108
|
+
putString("chatId", chatId)
|
|
108
109
|
})
|
|
109
110
|
|
|
110
111
|
// Fan out to the SDK's deferred — the SDK consumes it on its own thread.
|
|
@@ -123,6 +124,7 @@ class KindlyReactNativeModule(reactContext: ReactApplicationContext) :
|
|
|
123
124
|
application = app,
|
|
124
125
|
botKey = botKey,
|
|
125
126
|
languageCode = languageCode ?: "en",
|
|
127
|
+
market = market,
|
|
126
128
|
authTokenCallback = authCallback,
|
|
127
129
|
)
|
|
128
130
|
}
|
package/ios/KindlyReactNative.mm
CHANGED
|
@@ -100,9 +100,11 @@ static __weak KindlyReactNative *_sharedInstance;
|
|
|
100
100
|
|
|
101
101
|
- (void)start:(NSString *)botKey
|
|
102
102
|
languageCode:(NSString *_Nullable)languageCode
|
|
103
|
+
market:(NSString *)market
|
|
103
104
|
hasAuthCallback:(BOOL)hasAuthCallback {
|
|
104
105
|
[_impl startWithBotKey:botKey
|
|
105
106
|
languageCode:languageCode
|
|
107
|
+
market:market
|
|
106
108
|
hasAuthCallback:hasAuthCallback];
|
|
107
109
|
}
|
|
108
110
|
|
|
@@ -65,12 +65,14 @@ import UIKit
|
|
|
65
65
|
|
|
66
66
|
@objc public func start(botKey: String,
|
|
67
67
|
languageCode: String?,
|
|
68
|
+
market: String,
|
|
68
69
|
hasAuthCallback: Bool) {
|
|
69
70
|
let lang = languageCode ?? "en"
|
|
70
71
|
|
|
71
|
-
let authCallback: AuthTokenCallback? = hasAuthCallback ? { [weak self]
|
|
72
|
-
// Build a UUID-keyed pending entry, fire the JS event
|
|
73
|
-
//
|
|
72
|
+
let authCallback: AuthTokenCallback? = hasAuthCallback ? { [weak self] chatId, promise in
|
|
73
|
+
// Build a UUID-keyed pending entry, fire the JS event (with chatId
|
|
74
|
+
// forwarded so the JS callback matches the native SDK contract),
|
|
75
|
+
// block native for up to 5s waiting for `respondToAuthToken(requestId:token:)`.
|
|
74
76
|
guard let self = self else {
|
|
75
77
|
promise.reject(NSError(domain: "KindlyReactNative",
|
|
76
78
|
code: -1,
|
|
@@ -84,7 +86,7 @@ import UIKit
|
|
|
84
86
|
self.authPending[requestId] = PendingAuth(semaphore: semaphore, token: nil)
|
|
85
87
|
self.pendingLock.unlock()
|
|
86
88
|
|
|
87
|
-
self.emit(name: "KindlyGetAuthToken", body: ["requestId": requestId])
|
|
89
|
+
self.emit(name: "KindlyGetAuthToken", body: ["requestId": requestId, "chatId": chatId])
|
|
88
90
|
|
|
89
91
|
// Wait off the calling thread (KindlyChatClient invokes the auth
|
|
90
92
|
// callback on a background queue; blocking is OK there).
|
|
@@ -103,7 +105,7 @@ import UIKit
|
|
|
103
105
|
}
|
|
104
106
|
} : nil
|
|
105
107
|
|
|
106
|
-
KindlyChatClient.start(botKey: botKey, languageCode: lang, authTokenCallback: authCallback)
|
|
108
|
+
KindlyChatClient.start(botKey: botKey, languageCode: lang, market: market, authTokenCallback: authCallback)
|
|
107
109
|
}
|
|
108
110
|
|
|
109
111
|
// displayChat / launchChat / closeChat MUST be invoked from the main
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeKindlyReactNative.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,mBAAmB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeKindlyReactNative.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,mBAAmB,QAAQ,cAAc;AA6ElD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,mBAAmB,CAAC","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -14,7 +14,17 @@
|
|
|
14
14
|
import { NativeEventEmitter, NativeModules, Platform } from 'react-native';
|
|
15
15
|
import NativeKindly from "./NativeKindlyReactNative.js";
|
|
16
16
|
|
|
17
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Callback invoked by the SDK when it needs a fresh JWT auth token.
|
|
19
|
+
*
|
|
20
|
+
* The SDK provides `chatId` — the backend-generated identifier for the
|
|
21
|
+
* current chat session (set by the `/connect` response). Include it when
|
|
22
|
+
* calling your auth backend so the JWT can be scoped to this chat. This
|
|
23
|
+
* matches the Web / iOS / Android SDK contract exactly.
|
|
24
|
+
*
|
|
25
|
+
* Return `null` if a token can't be provided — the SDK treats the chat as
|
|
26
|
+
* anonymous.
|
|
27
|
+
*/
|
|
18
28
|
|
|
19
29
|
/** Callback invoked when a handover to a human agent is initiated. */
|
|
20
30
|
|
|
@@ -86,7 +96,7 @@ function attachListeners() {
|
|
|
86
96
|
return;
|
|
87
97
|
}
|
|
88
98
|
try {
|
|
89
|
-
const token = await authTokenCallback();
|
|
99
|
+
const token = await authTokenCallback(event.chatId);
|
|
90
100
|
NativeKindly.respondToAuthToken(event.requestId, token);
|
|
91
101
|
} catch {
|
|
92
102
|
NativeKindly.respondToAuthToken(event.requestId, null);
|
|
@@ -118,11 +128,18 @@ function attachListeners() {
|
|
|
118
128
|
* (`KindlyChatClient`) and Android (`ChatKindlySDK`) SDKs.
|
|
119
129
|
*/
|
|
120
130
|
export class KindlySDK {
|
|
121
|
-
/**
|
|
131
|
+
/**
|
|
132
|
+
* Initialize the SDK. Must be called before any other method.
|
|
133
|
+
*
|
|
134
|
+
* `market` is **required** — a bot serves different UI/greeting/responses per location
|
|
135
|
+
* (the "Markets" feature). Pass the market slug configured in the Kindly platform
|
|
136
|
+
* (Settings → General → Details & markets). The SDK loads that market's settings; if they
|
|
137
|
+
* can't be loaded the chat won't load — there is no fallback to another market.
|
|
138
|
+
*/
|
|
122
139
|
static start(args) {
|
|
123
140
|
attachListeners();
|
|
124
141
|
authTokenCallback = args.authTokenCallback ?? null;
|
|
125
|
-
NativeKindly.start(args.botKey, args.languageCode ?? null, args.authTokenCallback != null);
|
|
142
|
+
NativeKindly.start(args.botKey, args.languageCode ?? null, args.market, args.authTokenCallback != null);
|
|
126
143
|
}
|
|
127
144
|
|
|
128
145
|
/** Show the chat UI. */
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","NativeModules","Platform","NativeKindly","hexColor","hex","cleaned","replace","v","parseInt","length","Error","eventEmitter","OS","KindlyReactNative","undefined","authTokenCallback","handoverCallback","onButtonPressed","shouldHandleLink","shouldHandleNotification","listenersAttached","attachListeners","addListener","raw","event","respondToAuthToken","requestId","token","button","chatLog","value","url","respondToShouldHandle","notification","KindlySDK","start","args","botKey","languageCode","displayChat","triggerDialogueId","launchChat","closeChat","endChat","kill","setLanguage","sendMessage","text","options","newContext","setCustomTheme","theme","colors","Object","keys","forEach","k","clearCustomTheme","setNewContext","context","clearNewContext","saveAuthToken","setAPNSDeviceToken","saveNotificationToken","handleNotification","data","isKindlyNotification","triggerDialogue","dialogueId","clearTriggerDialogue","handleUrl","callHandover","callback","isChatDisplayed","setVerboseLogging","enabled","setCrashReporting","setAllowCameraAccess","setAllowPhotoLibraryAccess","setAutoMatchStatusBarColor","setForceOverrideStatusBarColor","setDelegate","clearDelegate"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,kBAAkB,EAAEC,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAC1E,OAAOC,YAAY,MAAM,8BAA2B;;AAEpD;;AAGA;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;;AAKA;;AAqBA;AACA;AACA;AACA;AACA,OAAO,SAASC,QAAQA,CAACC,GAAW,EAAU;EAC5C,MAAMC,OAAO,GAAGD,GAAG,CAACE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;EACrC,MAAMC,CAAC,GAAGC,QAAQ,CAACH,OAAO,EAAE,EAAE,CAAC;EAC/B,IAAIA,OAAO,CAACI,MAAM,KAAK,CAAC,EAAE;IACxB,OAAO,CAAC,UAAU,GAAGF,CAAC,MAAM,CAAC;EAC/B;EACA,IAAIF,OAAO,CAACI,MAAM,KAAK,CAAC,EAAE;IACxB,OAAOF,CAAC,KAAK,CAAC;EAChB;EACA,MAAM,IAAIG,KAAK,CAAC,iDAAiDN,GAAG,GAAG,CAAC;AAC1E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMO,YAAY,GAAG,IAAIZ,kBAAkB,CACzCE,QAAQ,CAACW,EAAE,KAAK,KAAK,GAChBZ,aAAa,CAACa,iBAAiB,GAChCC,SACN,CAAC;AAED,IAAIC,iBAA2C,GAAG,IAAI;AACtD,IAAIC,gBAAyC,GAAG,IAAI;AACpD,IAAIC,eAAmD,GAAG,IAAI;AAC9D,IAAIC,gBAAoD,GAAG,IAAI;AAC/D,IAAIC,wBAAoE,GAAG,IAAI;AAE/E,IAAIC,iBAAiB,GAAG,KAAK;AAE7B,SAASC,eAAeA,CAAA,EAAS;EAC/B,IAAID,iBAAiB,EAAE;EACvBA,iBAAiB,GAAG,IAAI;;EAExB;EACA;EACA;EACAT,YAAY,CAACW,WAAW,CAAC,oBAAoB,EAAE,MAAOC,GAAY,IAAK;IACrE,MAAMC,KAAK,GAAGD,
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","NativeModules","Platform","NativeKindly","hexColor","hex","cleaned","replace","v","parseInt","length","Error","eventEmitter","OS","KindlyReactNative","undefined","authTokenCallback","handoverCallback","onButtonPressed","shouldHandleLink","shouldHandleNotification","listenersAttached","attachListeners","addListener","raw","event","respondToAuthToken","requestId","token","chatId","button","chatLog","value","url","respondToShouldHandle","notification","KindlySDK","start","args","botKey","languageCode","market","displayChat","triggerDialogueId","launchChat","closeChat","endChat","kill","setLanguage","sendMessage","text","options","newContext","setCustomTheme","theme","colors","Object","keys","forEach","k","clearCustomTheme","setNewContext","context","clearNewContext","saveAuthToken","setAPNSDeviceToken","saveNotificationToken","handleNotification","data","isKindlyNotification","triggerDialogue","dialogueId","clearTriggerDialogue","handleUrl","callHandover","callback","isChatDisplayed","setVerboseLogging","enabled","setCrashReporting","setAllowCameraAccess","setAllowPhotoLibraryAccess","setAutoMatchStatusBarColor","setForceOverrideStatusBarColor","setDelegate","clearDelegate"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { TurboModule } from 'react-native';
|
|
2
2
|
export interface Spec extends TurboModule {
|
|
3
|
-
start(botKey: string, languageCode: string | null, hasAuthCallback: boolean): void;
|
|
3
|
+
start(botKey: string, languageCode: string | null, market: string, hasAuthCallback: boolean): void;
|
|
4
4
|
displayChat(languageCode: string | null, triggerDialogueId: string | null): void;
|
|
5
5
|
launchChat(triggerDialogueId: string | null): void;
|
|
6
6
|
closeChat(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeKindlyReactNative.d.ts","sourceRoot":"","sources":["../../../src/NativeKindlyReactNative.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IAEvC,KAAK,
|
|
1
|
+
{"version":3,"file":"NativeKindlyReactNative.d.ts","sourceRoot":"","sources":["../../../src/NativeKindlyReactNative.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Callback invoked by the SDK when it needs a fresh JWT auth token.
|
|
3
|
+
*
|
|
4
|
+
* The SDK provides `chatId` — the backend-generated identifier for the
|
|
5
|
+
* current chat session (set by the `/connect` response). Include it when
|
|
6
|
+
* calling your auth backend so the JWT can be scoped to this chat. This
|
|
7
|
+
* matches the Web / iOS / Android SDK contract exactly.
|
|
8
|
+
*
|
|
9
|
+
* Return `null` if a token can't be provided — the SDK treats the chat as
|
|
10
|
+
* anonymous.
|
|
11
|
+
*/
|
|
12
|
+
export type AuthTokenCallback = (chatId: string) => Promise<string | null>;
|
|
3
13
|
/** Callback invoked when a handover to a human agent is initiated. */
|
|
4
14
|
export type HandoverCallback = () => void;
|
|
5
15
|
/**
|
|
@@ -59,9 +69,17 @@ export declare function hexColor(hex: string): number;
|
|
|
59
69
|
* (`KindlyChatClient`) and Android (`ChatKindlySDK`) SDKs.
|
|
60
70
|
*/
|
|
61
71
|
export declare class KindlySDK {
|
|
62
|
-
/**
|
|
72
|
+
/**
|
|
73
|
+
* Initialize the SDK. Must be called before any other method.
|
|
74
|
+
*
|
|
75
|
+
* `market` is **required** — a bot serves different UI/greeting/responses per location
|
|
76
|
+
* (the "Markets" feature). Pass the market slug configured in the Kindly platform
|
|
77
|
+
* (Settings → General → Details & markets). The SDK loads that market's settings; if they
|
|
78
|
+
* can't be loaded the chat won't load — there is no fallback to another market.
|
|
79
|
+
*/
|
|
63
80
|
static start(args: {
|
|
64
81
|
botKey: string;
|
|
82
|
+
market: string;
|
|
65
83
|
languageCode?: string;
|
|
66
84
|
authTokenCallback?: AuthTokenCallback;
|
|
67
85
|
}): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAcA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -19,7 +19,12 @@ import { TurboModuleRegistry } from 'react-native';
|
|
|
19
19
|
|
|
20
20
|
export interface Spec extends TurboModule {
|
|
21
21
|
// Lifecycle
|
|
22
|
-
start(
|
|
22
|
+
start(
|
|
23
|
+
botKey: string,
|
|
24
|
+
languageCode: string | null,
|
|
25
|
+
market: string,
|
|
26
|
+
hasAuthCallback: boolean
|
|
27
|
+
): void;
|
|
23
28
|
displayChat(languageCode: string | null, triggerDialogueId: string | null): void;
|
|
24
29
|
launchChat(triggerDialogueId: string | null): void;
|
|
25
30
|
closeChat(): void;
|
package/src/index.tsx
CHANGED
|
@@ -12,8 +12,18 @@
|
|
|
12
12
|
import { NativeEventEmitter, NativeModules, Platform } from 'react-native';
|
|
13
13
|
import NativeKindly from './NativeKindlyReactNative';
|
|
14
14
|
|
|
15
|
-
/**
|
|
16
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Callback invoked by the SDK when it needs a fresh JWT auth token.
|
|
17
|
+
*
|
|
18
|
+
* The SDK provides `chatId` — the backend-generated identifier for the
|
|
19
|
+
* current chat session (set by the `/connect` response). Include it when
|
|
20
|
+
* calling your auth backend so the JWT can be scoped to this chat. This
|
|
21
|
+
* matches the Web / iOS / Android SDK contract exactly.
|
|
22
|
+
*
|
|
23
|
+
* Return `null` if a token can't be provided — the SDK treats the chat as
|
|
24
|
+
* anonymous.
|
|
25
|
+
*/
|
|
26
|
+
export type AuthTokenCallback = (chatId: string) => Promise<string | null>;
|
|
17
27
|
|
|
18
28
|
/** Callback invoked when a handover to a human agent is initiated. */
|
|
19
29
|
export type HandoverCallback = () => void;
|
|
@@ -114,13 +124,13 @@ function attachListeners(): void {
|
|
|
114
124
|
// `(...args: readonly Object[]) => unknown` — we widen each event-shape
|
|
115
125
|
// type inside the handler instead of trying to fight the parameter type.
|
|
116
126
|
eventEmitter.addListener('KindlyGetAuthToken', async (raw: unknown) => {
|
|
117
|
-
const event = raw as { requestId: string };
|
|
127
|
+
const event = raw as { requestId: string; chatId: string };
|
|
118
128
|
if (authTokenCallback == null) {
|
|
119
129
|
NativeKindly.respondToAuthToken(event.requestId, null);
|
|
120
130
|
return;
|
|
121
131
|
}
|
|
122
132
|
try {
|
|
123
|
-
const token = await authTokenCallback();
|
|
133
|
+
const token = await authTokenCallback(event.chatId);
|
|
124
134
|
NativeKindly.respondToAuthToken(event.requestId, token);
|
|
125
135
|
} catch {
|
|
126
136
|
NativeKindly.respondToAuthToken(event.requestId, null);
|
|
@@ -167,9 +177,17 @@ function attachListeners(): void {
|
|
|
167
177
|
* (`KindlyChatClient`) and Android (`ChatKindlySDK`) SDKs.
|
|
168
178
|
*/
|
|
169
179
|
export class KindlySDK {
|
|
170
|
-
/**
|
|
180
|
+
/**
|
|
181
|
+
* Initialize the SDK. Must be called before any other method.
|
|
182
|
+
*
|
|
183
|
+
* `market` is **required** — a bot serves different UI/greeting/responses per location
|
|
184
|
+
* (the "Markets" feature). Pass the market slug configured in the Kindly platform
|
|
185
|
+
* (Settings → General → Details & markets). The SDK loads that market's settings; if they
|
|
186
|
+
* can't be loaded the chat won't load — there is no fallback to another market.
|
|
187
|
+
*/
|
|
171
188
|
static start(args: {
|
|
172
189
|
botKey: string;
|
|
190
|
+
market: string;
|
|
173
191
|
languageCode?: string;
|
|
174
192
|
authTokenCallback?: AuthTokenCallback;
|
|
175
193
|
}): void {
|
|
@@ -178,6 +196,7 @@ export class KindlySDK {
|
|
|
178
196
|
NativeKindly.start(
|
|
179
197
|
args.botKey,
|
|
180
198
|
args.languageCode ?? null,
|
|
199
|
+
args.market,
|
|
181
200
|
args.authTokenCallback != null
|
|
182
201
|
);
|
|
183
202
|
}
|
|
Binary file
|