@deway-ai/web-sdk 0.41.0 → 0.42.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 -9
- package/dist/loader.d.ts +2 -2
- package/dist/loader.es.js +21 -21
- package/dist/loader.umd.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -87,7 +87,7 @@ Deway.init({
|
|
|
87
87
|
apiEndpoint: string | undefined, // Optional: Custom API endpoint
|
|
88
88
|
wsEndpoint: string | undefined, // Optional: Custom WebSocket endpoint
|
|
89
89
|
isDevelopment: boolean | undefined, // Optional: Enable dev mode logging (default: false)
|
|
90
|
-
|
|
90
|
+
autoShowBookmark: boolean | undefined, // Optional: Auto-show bubble (default: true)
|
|
91
91
|
bubbleConfig: BubbleConfig | undefined, // Optional: Bubble appearance customization
|
|
92
92
|
});
|
|
93
93
|
```
|
|
@@ -113,7 +113,7 @@ enum BubblePosition {
|
|
|
113
113
|
Deway.init({
|
|
114
114
|
appKey: 'your-app-key',
|
|
115
115
|
isDevelopment: true,
|
|
116
|
-
|
|
116
|
+
autoShowBookmark: true,
|
|
117
117
|
bubbleConfig: {
|
|
118
118
|
position: 'bottom-left'
|
|
119
119
|
}
|
|
@@ -177,17 +177,17 @@ Deway.setUserProfile({
|
|
|
177
177
|
- Profile is upserted (created if new, replaced if exists)
|
|
178
178
|
- Profile data completely replaces existing profile on each call
|
|
179
179
|
|
|
180
|
-
### `Deway.
|
|
180
|
+
### `Deway.showBookmark(config?)`
|
|
181
181
|
|
|
182
|
-
Show the AI chat
|
|
182
|
+
Show the AI chat bookmark. Optional configuration for appearance customization.
|
|
183
183
|
|
|
184
|
-
### `Deway.
|
|
184
|
+
### `Deway.hideBookmark()`
|
|
185
185
|
|
|
186
|
-
Hide the AI chat
|
|
186
|
+
Hide the AI chat bookmark.
|
|
187
187
|
|
|
188
|
-
### `Deway.
|
|
188
|
+
### `Deway.isBookmarkVisible()`
|
|
189
189
|
|
|
190
|
-
Check if the
|
|
190
|
+
Check if the bookmark is currently visible.
|
|
191
191
|
|
|
192
192
|
### `Deway.destroy()`
|
|
193
193
|
|
|
@@ -291,7 +291,7 @@ prerequisite calls were made.
|
|
|
291
291
|
|
|
292
292
|
### Bubble doesn't appear
|
|
293
293
|
|
|
294
|
-
- Check `
|
|
294
|
+
- Check `autoShowBookmark` is set to `true` OR manually call `Deway.showBookmark()`
|
|
295
295
|
- Verify `Deway.init()` was called with valid `appKey`
|
|
296
296
|
- Check browser console for initialization errors
|
|
297
297
|
|
package/dist/loader.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BookmarkConfig } from '../deway-bookmark/models/bookmark-config';
|
|
2
2
|
import { DewayConfig } from '../sdk/types';
|
|
3
3
|
import { IDeway } from '../sdk/types';
|
|
4
4
|
|
|
5
|
-
export {
|
|
5
|
+
export { BookmarkConfig }
|
|
6
6
|
|
|
7
7
|
declare const Deway: IDeway;
|
|
8
8
|
export default Deway;
|
package/dist/loader.es.js
CHANGED
|
@@ -123,7 +123,7 @@ function E(r) {
|
|
|
123
123
|
e[t / 2] = Number.parseInt(r.substr(t, 2), 16);
|
|
124
124
|
return e;
|
|
125
125
|
}
|
|
126
|
-
async function
|
|
126
|
+
async function D(r, e, t) {
|
|
127
127
|
try {
|
|
128
128
|
const i = w(r), n = E(e), o = w(t), a = await crypto.subtle.importKey("raw", i, { name: "Ed25519" }, !1, ["verify"]);
|
|
129
129
|
return await crypto.subtle.verify("Ed25519", a, o, n);
|
|
@@ -131,15 +131,15 @@ async function b(r, e, t) {
|
|
|
131
131
|
return !1;
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
-
async function
|
|
134
|
+
async function A(r, e, t, i) {
|
|
135
135
|
if (!e || !t)
|
|
136
136
|
throw new Error("SDK verification failed: Missing security headers");
|
|
137
137
|
if (await C(r) !== e)
|
|
138
138
|
throw new Error("SDK verification failed: Checksum mismatch - content tampered");
|
|
139
|
-
if (!await
|
|
139
|
+
if (!await D(i, e, t))
|
|
140
140
|
throw new Error("SDK verification failed: Invalid signature - content tampered");
|
|
141
141
|
}
|
|
142
|
-
class
|
|
142
|
+
class v {
|
|
143
143
|
cleanApiEndpoint(e) {
|
|
144
144
|
return e.trim().replace(/\/+$/, "");
|
|
145
145
|
}
|
|
@@ -162,7 +162,7 @@ class A {
|
|
|
162
162
|
const i = e.headers.get("x-sdk-checksum"), n = e.headers.get("x-sdk-version"), o = e.headers.get("x-sdk-signature"), a = await e.text();
|
|
163
163
|
if (!n || !a || !i)
|
|
164
164
|
throw Object.fromEntries(e.headers.entries()), new Error("Invalid SDK response: missing version, code, or checksum");
|
|
165
|
-
return await
|
|
165
|
+
return await A(a, i, o, t), { code: a, version: n, checksum: i, signature: o || "" };
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
class m {
|
|
@@ -240,7 +240,7 @@ class u {
|
|
|
240
240
|
return i < n;
|
|
241
241
|
}
|
|
242
242
|
}
|
|
243
|
-
class
|
|
243
|
+
class b {
|
|
244
244
|
cleanApiEndpoint(e) {
|
|
245
245
|
return e.trim().replace(/\/+$/, "");
|
|
246
246
|
}
|
|
@@ -321,9 +321,9 @@ const h = {
|
|
|
321
321
|
apiEndpoint: "https://service.deway.app",
|
|
322
322
|
publicKey: "9d3dBUvqyUQ7egd5j5uORdHSqZ7VFWOu+ud/SWt9WUY=",
|
|
323
323
|
isDevelopment: !1,
|
|
324
|
-
|
|
324
|
+
autoShowBookmark: !1
|
|
325
325
|
};
|
|
326
|
-
class
|
|
326
|
+
class x {
|
|
327
327
|
isLoaded = !1;
|
|
328
328
|
isLoading = !1;
|
|
329
329
|
cacheManager;
|
|
@@ -335,7 +335,7 @@ class B {
|
|
|
335
335
|
remoteConfigCache;
|
|
336
336
|
sdkConfigStore;
|
|
337
337
|
constructor() {
|
|
338
|
-
this.cacheManager = new s(), this.scriptExecutor = new K(), this.commandQueue = new m(), this.sdkFetcher = new
|
|
338
|
+
this.cacheManager = new s(), this.scriptExecutor = new K(), this.commandQueue = new m(), this.sdkFetcher = new v(), this.configValidator = new k(), this.sdkConfigStore = new S(), this.remoteConfigFetcher = new b(), this.remoteConfigCache = new u();
|
|
339
339
|
}
|
|
340
340
|
init(e) {
|
|
341
341
|
this.performInit(e).catch((t) => {
|
|
@@ -428,21 +428,21 @@ class B {
|
|
|
428
428
|
} catch {
|
|
429
429
|
}
|
|
430
430
|
}
|
|
431
|
-
|
|
431
|
+
show(e) {
|
|
432
432
|
try {
|
|
433
|
-
this.isLoaded && this.isSDKAvailable() ? window.Deway?.
|
|
433
|
+
this.isLoaded && this.isSDKAvailable() ? window.Deway?.show(e) : this.commandQueue.queueCommand("show", e);
|
|
434
434
|
} catch {
|
|
435
435
|
}
|
|
436
436
|
}
|
|
437
|
-
|
|
437
|
+
hide() {
|
|
438
438
|
try {
|
|
439
|
-
this.isLoaded && this.isSDKAvailable() ? window.Deway?.
|
|
439
|
+
this.isLoaded && this.isSDKAvailable() ? window.Deway?.hide() : this.commandQueue.queueCommand("hide");
|
|
440
440
|
} catch {
|
|
441
441
|
}
|
|
442
442
|
}
|
|
443
|
-
|
|
443
|
+
isVisible() {
|
|
444
444
|
try {
|
|
445
|
-
return this.isLoaded && this.isSDKAvailable() ? window.Deway?.
|
|
445
|
+
return this.isLoaded && this.isSDKAvailable() ? window.Deway?.isVisible() ?? !1 : !1;
|
|
446
446
|
} catch {
|
|
447
447
|
return !1;
|
|
448
448
|
}
|
|
@@ -457,17 +457,17 @@ class B {
|
|
|
457
457
|
return typeof window < "u" && "Deway" in window && !!window.Deway;
|
|
458
458
|
}
|
|
459
459
|
}
|
|
460
|
-
const d = new
|
|
460
|
+
const d = new x(), I = {
|
|
461
461
|
init: (r) => d.init(r),
|
|
462
462
|
identify: (r) => d.identify(r),
|
|
463
463
|
reportEvent: (r, e) => d.reportEvent(r, e),
|
|
464
464
|
setUserProfile: (r) => d.setUserProfile(r),
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
465
|
+
show: (r) => d.show(r),
|
|
466
|
+
hide: () => d.hide(),
|
|
467
|
+
isVisible: () => d.isVisible(),
|
|
468
468
|
destroy: () => d.destroy()
|
|
469
469
|
};
|
|
470
|
-
typeof window < "u" && (window.Deway =
|
|
470
|
+
typeof window < "u" && (window.Deway = I);
|
|
471
471
|
export {
|
|
472
|
-
|
|
472
|
+
I as default
|
|
473
473
|
};
|
package/dist/loader.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(l,u){typeof exports=="object"&&typeof module<"u"?module.exports=u():typeof define=="function"&&define.amd?define(u):(l=typeof globalThis<"u"?globalThis:l||self,l.Deway=u())})(this,(function(){"use strict";const l="deway-sdk-config",u=["Understanding intent","Reading web page","Browsing the docs","Enriching context","Validating understanding","Crafting response"];class C{saveConfig(e){if(window?.localStorage)try{const t=JSON.stringify(e);window.localStorage.setItem(l,t)}catch{}}loadConfig(){if(window?.localStorage)try{const e=window.localStorage.getItem(l);return e?JSON.parse(e):null}catch{return null}return null}getExcludedVendors(){return this.loadConfig()?.excludedVendors??[]}getAssistantName(){return this.loadConfig()?.assistantName??"Assistant"}getAiDisclaimer(){return this.loadConfig()?.aiDisclaimer}getThinkingMessages(){return this.loadConfig()?.thinkingMessages??u}getTalkToHumanBtnTxt(){return this.loadConfig()?.talkToHumanBtnTxt??"talk to Support"}getHumanHandoffUrl(){return this.loadConfig()?.humanHandoffUrl}getFeatureFlags(){return this.loadConfig()?.featureFlags??{}}getFeatureFlag(e){return this.getFeatureFlags()[e]??!1}getPromptSuggestions(){return this.loadConfig()?.promptSuggestions}}class s{static CACHE_KEY="deway-sdk-cache";static DB_NAME="DewaySdk";static DB_VERSION=1;static STORE_NAME="sdk";async cacheSDK(e,t,i,n){try{const d=(await this.openIndexedDB()).transaction([s.STORE_NAME],"readwrite").objectStore(s.STORE_NAME);await new Promise((g,S)=>{const f=d.put({id:"latest",code:e,version:t,checksum:i,signature:n,timestamp:Date.now()});f.onsuccess=()=>g(f.result),f.onerror=()=>S(f.error)})}catch{try{const a=JSON.stringify({code:e,version:t,checksum:i,signature:n,timestamp:Date.now()});localStorage.setItem(s.CACHE_KEY,a)}catch{}}}async getCachedSDK(){try{const i=(await this.openIndexedDB()).transaction([s.STORE_NAME],"readonly").objectStore(s.STORE_NAME),n=await new Promise((o,a)=>{const d=i.get("latest");d.onsuccess=()=>o(d.result||null),d.onerror=()=>a(d.error)});if(n)return n}catch{}try{const e=localStorage.getItem(s.CACHE_KEY);if(e)return JSON.parse(e)}catch{}return null}openIndexedDB(){return new Promise((e,t)=>{const i=indexedDB.open(s.DB_NAME,s.DB_VERSION);i.onerror=()=>t(i.error),i.onsuccess=()=>e(i.result),i.onupgradeneeded=n=>{const o=n.target.result;o.objectStoreNames.contains(s.STORE_NAME)||o.createObjectStore(s.STORE_NAME,{keyPath:"id"})}})}}async function E(r){const t=new TextEncoder().encode(r),i=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(i)).map(o=>o.toString(16).padStart(2,"0")).join("")}function w(r){const e=atob(r),t=new Uint8Array(e.length);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);return t}function
|
|
1
|
+
(function(l,u){typeof exports=="object"&&typeof module<"u"?module.exports=u():typeof define=="function"&&define.amd?define(u):(l=typeof globalThis<"u"?globalThis:l||self,l.Deway=u())})(this,(function(){"use strict";const l="deway-sdk-config",u=["Understanding intent","Reading web page","Browsing the docs","Enriching context","Validating understanding","Crafting response"];class C{saveConfig(e){if(window?.localStorage)try{const t=JSON.stringify(e);window.localStorage.setItem(l,t)}catch{}}loadConfig(){if(window?.localStorage)try{const e=window.localStorage.getItem(l);return e?JSON.parse(e):null}catch{return null}return null}getExcludedVendors(){return this.loadConfig()?.excludedVendors??[]}getAssistantName(){return this.loadConfig()?.assistantName??"Assistant"}getAiDisclaimer(){return this.loadConfig()?.aiDisclaimer}getThinkingMessages(){return this.loadConfig()?.thinkingMessages??u}getTalkToHumanBtnTxt(){return this.loadConfig()?.talkToHumanBtnTxt??"talk to Support"}getHumanHandoffUrl(){return this.loadConfig()?.humanHandoffUrl}getFeatureFlags(){return this.loadConfig()?.featureFlags??{}}getFeatureFlag(e){return this.getFeatureFlags()[e]??!1}getPromptSuggestions(){return this.loadConfig()?.promptSuggestions}}class s{static CACHE_KEY="deway-sdk-cache";static DB_NAME="DewaySdk";static DB_VERSION=1;static STORE_NAME="sdk";async cacheSDK(e,t,i,n){try{const d=(await this.openIndexedDB()).transaction([s.STORE_NAME],"readwrite").objectStore(s.STORE_NAME);await new Promise((g,S)=>{const f=d.put({id:"latest",code:e,version:t,checksum:i,signature:n,timestamp:Date.now()});f.onsuccess=()=>g(f.result),f.onerror=()=>S(f.error)})}catch{try{const a=JSON.stringify({code:e,version:t,checksum:i,signature:n,timestamp:Date.now()});localStorage.setItem(s.CACHE_KEY,a)}catch{}}}async getCachedSDK(){try{const i=(await this.openIndexedDB()).transaction([s.STORE_NAME],"readonly").objectStore(s.STORE_NAME),n=await new Promise((o,a)=>{const d=i.get("latest");d.onsuccess=()=>o(d.result||null),d.onerror=()=>a(d.error)});if(n)return n}catch{}try{const e=localStorage.getItem(s.CACHE_KEY);if(e)return JSON.parse(e)}catch{}return null}openIndexedDB(){return new Promise((e,t)=>{const i=indexedDB.open(s.DB_NAME,s.DB_VERSION);i.onerror=()=>t(i.error),i.onsuccess=()=>e(i.result),i.onupgradeneeded=n=>{const o=n.target.result;o.objectStoreNames.contains(s.STORE_NAME)||o.createObjectStore(s.STORE_NAME,{keyPath:"id"})}})}}async function E(r){const t=new TextEncoder().encode(r),i=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(i)).map(o=>o.toString(16).padStart(2,"0")).join("")}function w(r){const e=atob(r),t=new Uint8Array(e.length);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);return t}function D(r){const e=new Uint8Array(r.length/2);for(let t=0;t<r.length;t+=2)e[t/2]=Number.parseInt(r.substr(t,2),16);return e}async function A(r,e,t){try{const i=w(r),n=D(e),o=w(t),a=await crypto.subtle.importKey("raw",i,{name:"Ed25519"},!1,["verify"]);return await crypto.subtle.verify("Ed25519",a,o,n)}catch{return!1}}async function v(r,e,t,i){if(!e||!t)throw new Error("SDK verification failed: Missing security headers");if(await E(r)!==e)throw new Error("SDK verification failed: Checksum mismatch - content tampered");if(!await A(i,e,t))throw new Error("SDK verification failed: Invalid signature - content tampered")}class b{cleanApiEndpoint(e){return e.trim().replace(/\/+$/,"")}async fetchSDK(e,t,i){try{const n=this.cleanApiEndpoint(t),o=await fetch(`${n}/sdk-serve/sdk/v0`,{method:"GET",headers:{Accept:"application/javascript","deway-app-key":e,Origin:window?.location?.origin||""}});return o.ok?this.handleSuccessfulFetch(o,i):null}catch{return null}}async handleSuccessfulFetch(e,t){const i=e.headers.get("x-sdk-checksum"),n=e.headers.get("x-sdk-version"),o=e.headers.get("x-sdk-signature"),a=await e.text();if(!n||!a||!i)throw Object.fromEntries(e.headers.entries()),new Error("Invalid SDK response: missing version, code, or checksum");return await v(a,i,o,t),{code:a,version:n,checksum:i,signature:o||""}}}class m{static MAX_QUEUE_SIZE=50;commandQueue=[];queueCommand(e,...t){this.commandQueue.length>=m.MAX_QUEUE_SIZE&&this.commandQueue.shift(),this.commandQueue.push({method:e,args:t})}replayQueuedCommands(){if(this.commandQueue.length===0)return;const e=[...this.commandQueue];if(this.commandQueue=[],!!this.isSDKAvailable())for(const t of e)this.replayCommand(t)}clearQueue(){this.commandQueue=[]}isSDKAvailable(){return typeof window<"u"&&"Deway"in window&&!!window.Deway}replayCommand(e){try{const t=window.Deway,i=t?.[e.method];typeof i=="function"&&i.apply(t,e.args)}catch{}}}class h{static CACHE_KEY="deway-remote-config-cache";async cacheRemoteConfig(e,t){try{const i={config:e,ttl_seconds:t,timestamp:Date.now()};localStorage.setItem(h.CACHE_KEY,JSON.stringify(i))}catch{}}async getCachedRemoteConfig(){try{const e=localStorage.getItem(h.CACHE_KEY);return e?JSON.parse(e):null}catch{return null}}isCacheValid(e,t){const i=Date.now(),n=e+t*1e3;return i<n}}class K{cleanApiEndpoint(e){return e.trim().replace(/\/+$/,"")}async fetchRemoteConfig(e,t){try{const i=this.cleanApiEndpoint(t),n=await fetch(`${i}/sdk-remote-config-serve/`,{method:"GET",headers:{Accept:"application/json","deway-app-key":e,Origin:window?.location?.origin||""}});return n.ok?await n.json():null}catch{return null}}}class k{async executeSDK(e){return new Promise(t=>{try{if(!this.isDocumentReady()){t(!1);return}const i=document.createElement("script");i.textContent=e,i.type="text/javascript";let n=!1;const o=a=>{n||(n=!0,this.cleanupScript(i),t(a))};i.onerror=()=>{o(!1)},i.onload=()=>o(!0),document.head.appendChild(i),setTimeout(()=>{!n&&this.verifySDKLoaded()?o(!0):n||o(!1)},100)}catch{t(!1)}})}isDocumentReady(){return typeof document<"u"&&document.head!=null}verifySDKLoaded(){return typeof window<"u"&&"Deway"in window&&!!window.Deway}cleanupScript(e){try{e.parentNode&&e.parentNode.removeChild(e)}catch{}}}class x{validateConfig(e){return!(!e||!e.appKey||e.appKey.trim().length===0||e.apiEndpoint!==void 0&&!this.isValidUrl(e.apiEndpoint)||e.publicKey!==void 0&&e.publicKey.trim().length===0)}isValidUrl(e){try{return new URL(e),!0}catch{return!1}}}const y={apiEndpoint:"https://service.deway.app",publicKey:"9d3dBUvqyUQ7egd5j5uORdHSqZ7VFWOu+ud/SWt9WUY=",isDevelopment:!1,autoShowBookmark:!1};class I{isLoaded=!1;isLoading=!1;cacheManager;scriptExecutor;commandQueue;sdkFetcher;configValidator;remoteConfigFetcher;remoteConfigCache;sdkConfigStore;constructor(){this.cacheManager=new s,this.scriptExecutor=new k,this.commandQueue=new m,this.sdkFetcher=new b,this.configValidator=new x,this.sdkConfigStore=new C,this.remoteConfigFetcher=new K,this.remoteConfigCache=new h}init(e){this.performInit(e).catch(t=>{})}async performInit(e){try{if(!this.canInitialize())return;const t=this.isInitializationPayload(e),i=t?e.localConfig:e;if(!this.configValidator.validateConfig(i))return;this.isLoading=!0;const n=i.apiEndpoint||y.apiEndpoint,o=i.publicKey||y.publicKey,[a,d]=await Promise.all([this.fetchOrLoadSDK(i.appKey,n,o),this.fetchRemoteConfigWithCache(i,n)]);if(!a)return;const g=t?e:this.createInitializationPayload(d,i);if(!await this.scriptExecutor.executeSDK(a.code)||!this.initializeSDK(g))return;this.commandQueue.replayQueuedCommands(),this.isLoaded=!0}finally{this.isLoading=!1}}isInitializationPayload(e){return"localConfig"in e&&"remoteConfig"in e&&"defaults"in e}canInitialize(){return!(this.isLoaded||this.isLoading)}async fetchRemoteConfigWithCache(e,t){this.sdkConfigStore.saveConfig(e);const i=await this.remoteConfigFetcher.fetchRemoteConfig(e.appKey,t);if(i)return await this.remoteConfigCache.cacheRemoteConfig(i.config,i.ttl_seconds),i;const n=await this.remoteConfigCache.getCachedRemoteConfig();return n?{config:n.config,ttl_seconds:n.ttl_seconds}:null}createInitializationPayload(e,t){return{localConfig:t,remoteConfig:e?.config??null,defaults:y}}async fetchOrLoadSDK(e,t,i){const n=await this.sdkFetcher.fetchSDK(e,t,i);return n?(await this.cacheManager.cacheSDK(n.code,n.version,n.checksum,n.signature),n):this.loadFromCache()}async loadFromCache(){const e=await this.cacheManager.getCachedSDK();return e?{code:e.code,version:e.version}:null}initializeSDK(e){if(!this.isSDKAvailable())return!1;try{return window.Deway?.init(e),!0}catch{return!1}}identify(e){try{this.isLoaded&&this.isSDKAvailable()?window.Deway?.identify(e):this.commandQueue.queueCommand("identify",e)}catch{}}reportEvent(e,t){try{this.isLoaded&&this.isSDKAvailable()?window.Deway?.reportEvent(e,t):this.commandQueue.queueCommand("reportEvent",e,t)}catch{}}setUserProfile(e){try{this.isLoaded&&this.isSDKAvailable()?window.Deway?.setUserProfile(e):this.commandQueue.queueCommand("setUserProfile",e)}catch{}}show(e){try{this.isLoaded&&this.isSDKAvailable()?window.Deway?.show(e):this.commandQueue.queueCommand("show",e)}catch{}}hide(){try{this.isLoaded&&this.isSDKAvailable()?window.Deway?.hide():this.commandQueue.queueCommand("hide")}catch{}}isVisible(){try{return this.isLoaded&&this.isSDKAvailable()?window.Deway?.isVisible()??!1:!1}catch{return!1}}destroy(){try{this.isLoaded&&this.isSDKAvailable()?window.Deway?.destroy():this.commandQueue.queueCommand("destroy"),this.commandQueue.clearQueue()}catch{}}isSDKAvailable(){return typeof window<"u"&&"Deway"in window&&!!window.Deway}}const c=new I,p={init:r=>c.init(r),identify:r=>c.identify(r),reportEvent:(r,e)=>c.reportEvent(r,e),setUserProfile:r=>c.setUserProfile(r),show:r=>c.show(r),hide:()=>c.hide(),isVisible:()=>c.isVisible(),destroy:()=>c.destroy()};return typeof window<"u"&&(window.Deway=p),p}));
|