@kindly-ai/react-native 0.1.9 → 0.2.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 +7 -3
- package/android/src/main/java/com/kindlyai/reactnative/KindlyReactNativeModule.kt +2 -1
- package/ios/KindlyReactNativeImpl.swift +5 -4
- package/lib/module/index.js +12 -2
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts +12 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +14 -4
package/README.md
CHANGED
|
@@ -27,9 +27,13 @@ import { KindlySDK, hexColor } from '@kindly-ai/react-native';
|
|
|
27
27
|
KindlySDK.start({
|
|
28
28
|
botKey: 'your-bot-key',
|
|
29
29
|
languageCode: 'en',
|
|
30
|
-
// Optional: invoked by the SDK when it needs an authenticated JWT
|
|
31
|
-
//
|
|
32
|
-
|
|
30
|
+
// Optional: invoked by the SDK when it needs an authenticated JWT for
|
|
31
|
+
// the current chat session. `chatId` is the backend-generated identifier
|
|
32
|
+
// — include it when calling your auth backend so the token is scoped to
|
|
33
|
+
// this chat. Return null for anonymous chats.
|
|
34
|
+
authTokenCallback: async (chatId) => {
|
|
35
|
+
return await yourAuthBackend.getKindlyJWT({ chatId });
|
|
36
|
+
},
|
|
33
37
|
});
|
|
34
38
|
|
|
35
39
|
// 2. Open the chat UI when the user wants it
|
|
@@ -97,7 +97,7 @@ class KindlyReactNativeModule(reactContext: ReactApplicationContext) :
|
|
|
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.
|
|
@@ -68,9 +68,10 @@ import UIKit
|
|
|
68
68
|
hasAuthCallback: Bool) {
|
|
69
69
|
let lang = languageCode ?? "en"
|
|
70
70
|
|
|
71
|
-
let authCallback: AuthTokenCallback? = hasAuthCallback ? { [weak self]
|
|
72
|
-
// Build a UUID-keyed pending entry, fire the JS event
|
|
73
|
-
//
|
|
71
|
+
let authCallback: AuthTokenCallback? = hasAuthCallback ? { [weak self] chatId, promise in
|
|
72
|
+
// Build a UUID-keyed pending entry, fire the JS event (with chatId
|
|
73
|
+
// forwarded so the JS callback matches the native SDK contract),
|
|
74
|
+
// block native for up to 5s waiting for `respondToAuthToken(requestId:token:)`.
|
|
74
75
|
guard let self = self else {
|
|
75
76
|
promise.reject(NSError(domain: "KindlyReactNative",
|
|
76
77
|
code: -1,
|
|
@@ -84,7 +85,7 @@ import UIKit
|
|
|
84
85
|
self.authPending[requestId] = PendingAuth(semaphore: semaphore, token: nil)
|
|
85
86
|
self.pendingLock.unlock()
|
|
86
87
|
|
|
87
|
-
self.emit(name: "KindlyGetAuthToken", body: ["requestId": requestId])
|
|
88
|
+
self.emit(name: "KindlyGetAuthToken", body: ["requestId": requestId, "chatId": chatId])
|
|
88
89
|
|
|
89
90
|
// Wait off the calling thread (KindlyChatClient invokes the auth
|
|
90
91
|
// callback on a background queue; blocking is OK there).
|
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);
|
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","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,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
|
/**
|
|
@@ -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
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);
|