@plucky-ai/chat-sdk 0.3.2 → 0.4.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/dist/index.cjs CHANGED
@@ -1,18 +1,30 @@
1
1
 
2
2
  //#region src/Plucky.ts
3
+ let attached = false;
3
4
  function Plucky(options) {
4
- const settingScript = document.createElement("script");
5
- settingScript.id = "plucky-settings";
6
- settingScript.textContent = `window.pluckySettings = ${JSON.stringify(options)}`;
7
- document.head.appendChild(settingScript);
8
- const initScript = document.createElement("script");
9
- initScript.id = "plucky-init";
10
- initScript.textContent = `(function(){var w=window;var ic=w.Plucky;if(typeof ic==="function"){ic('update',w.pluckySettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Plucky=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src=(window.pluckySettings.baseUrl||'https://widget.plucky.ai')+'/loader/'+window.pluckySettings.appId;var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);};if(document.readyState==='complete'){l();}else if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();`;
11
- document.head.appendChild(initScript);
5
+ if (attached) return;
6
+ attached = true;
7
+ if (!document.getElementById("plucky-settings")) {
8
+ const settingScript = document.createElement("script");
9
+ settingScript.id = "plucky-settings";
10
+ settingScript.textContent = `window.pluckySettings = ${JSON.stringify(options)}`;
11
+ document.head.appendChild(settingScript);
12
+ }
13
+ if (!document.getElementById("plucky-init")) {
14
+ const initScript = document.createElement("script");
15
+ initScript.id = "plucky-init";
16
+ initScript.textContent = `(function(){var w=window;var ic=w.Plucky;if(typeof ic==="function"){ic('update',w.pluckySettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Plucky=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src=(window.pluckySettings.baseUrl||'https://widget.plucky.ai')+'/loader/'+window.pluckySettings.appId;var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);};if(document.readyState==='complete'){l();}else if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();`;
17
+ document.head.appendChild(initScript);
18
+ }
12
19
  }
13
20
 
14
21
  //#endregion
15
22
  //#region src/index.ts
23
+ function updateSettings(settings) {
24
+ runIfLoaded((Plucky$1) => {
25
+ Plucky$1("update", settings);
26
+ });
27
+ }
16
28
  function sendMessage(args) {
17
29
  runIfLoaded((Plucky$1) => {
18
30
  Plucky$1("sendMessage", args);
@@ -43,17 +55,55 @@ function toggle() {
43
55
  Plucky$1("toggle");
44
56
  });
45
57
  }
58
+ function open() {
59
+ runIfLoaded((Plucky$1) => {
60
+ Plucky$1("open");
61
+ });
62
+ }
63
+ function close() {
64
+ runIfLoaded((Plucky$1) => {
65
+ Plucky$1("close");
66
+ });
67
+ }
68
+ function isReady() {
69
+ return isAttachedToWindow() && window.Plucky("isReady");
70
+ }
71
+ function addEventListener(event, listener) {
72
+ runIfLoaded((Plucky$1) => {
73
+ Plucky$1("addEventListener", {
74
+ event,
75
+ listener
76
+ });
77
+ });
78
+ }
79
+ function removeEventListener(event, listener) {
80
+ runIfLoaded((Plucky$1) => {
81
+ Plucky$1("removeEventListener", {
82
+ event,
83
+ listener
84
+ });
85
+ });
86
+ }
87
+ function isAttachedToWindow() {
88
+ return typeof window !== "undefined" && window.Plucky && typeof window.Plucky === "function";
89
+ }
46
90
  function runIfLoaded(fn) {
47
- if (typeof window !== "undefined" && window.Plucky) fn(window.Plucky);
91
+ if (isAttachedToWindow()) fn(window.Plucky);
48
92
  else console.warn("Window is not defined");
49
93
  }
50
94
 
51
95
  //#endregion
52
96
  exports.Plucky = Plucky;
97
+ exports.addEventListener = addEventListener;
53
98
  exports.addTools = addTools;
99
+ exports.close = close;
100
+ exports.isReady = isReady;
101
+ exports.open = open;
102
+ exports.removeEventListener = removeEventListener;
54
103
  exports.removeTools = removeTools;
55
104
  exports.sendMessage = sendMessage;
56
105
  exports.setFullscreen = setFullscreen;
57
106
  exports.setWidth = setWidth;
58
107
  exports.toggle = toggle;
108
+ exports.updateSettings = updateSettings;
59
109
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../src/Plucky.ts","../src/index.ts"],"sourcesContent":["import { type PluckySettingsParams } from '@plucky-ai/loader-types'\n\nexport function Plucky(options: PluckySettingsParams) {\n const settingScript = document.createElement('script')\n settingScript.id = 'plucky-settings'\n settingScript.textContent = `window.pluckySettings = ${JSON.stringify(options)}`\n document.head.appendChild(settingScript)\n\n const initScript = document.createElement('script')\n initScript.id = 'plucky-init'\n initScript.textContent = `(function(){var w=window;var ic=w.Plucky;if(typeof ic===\"function\"){ic('update',w.pluckySettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Plucky=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src=(window.pluckySettings.baseUrl||'https://widget.plucky.ai')+'/loader/'+window.pluckySettings.appId;var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);};if(document.readyState==='complete'){l();}else if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();`\n document.head.appendChild(initScript)\n}\n","import { ToolConfig } from '@plucky-ai/loader-types'\nimport { PluckyFunction } from './types'\n\nexport type { ToolConfig } from '@plucky-ai/loader-types'\nexport { Plucky } from './Plucky'\nexport function sendMessage(args: { content: string; createChat?: boolean }) {\n runIfLoaded((Plucky) => {\n Plucky('sendMessage', args)\n })\n}\n\nexport function addTools(tools: ToolConfig[]) {\n runIfLoaded((Plucky) => {\n Plucky('addTools', tools)\n })\n}\n\nexport function removeTools(tools: string[]) {\n runIfLoaded((Plucky) => {\n Plucky('removeTools', tools)\n })\n}\n\nexport function setWidth(px: number) {\n runIfLoaded((Plucky) => {\n Plucky('setWidth', px)\n })\n}\n\nexport function setFullscreen(fullscreen: boolean) {\n runIfLoaded((Plucky) => {\n Plucky('setFullscreen', { fullscreen })\n })\n}\n\nexport function toggle() {\n runIfLoaded((Plucky) => {\n Plucky('toggle')\n })\n}\n\nfunction runIfLoaded(fn: (arg: PluckyFunction) => void) {\n if (typeof window !== 'undefined' && window.Plucky) {\n fn(window.Plucky)\n } else {\n console.warn('Window is not defined')\n }\n}\n"],"mappings":";;AAEA,SAAgB,OAAO,SAA+B;CACpD,MAAM,gBAAgB,SAAS,cAAc,SAAS;AACtD,eAAc,KAAK;AACnB,eAAc,cAAc,2BAA2B,KAAK,UAAU,QAAQ;AAC9E,UAAS,KAAK,YAAY,cAAc;CAExC,MAAM,aAAa,SAAS,cAAc,SAAS;AACnD,YAAW,KAAK;AAChB,YAAW,cAAc;AACzB,UAAS,KAAK,YAAY,WAAW;;;;;ACNvC,SAAgB,YAAY,MAAiD;AAC3E,cAAa,aAAW;AACtB,WAAO,eAAe,KAAK;GAC3B;;AAGJ,SAAgB,SAAS,OAAqB;AAC5C,cAAa,aAAW;AACtB,WAAO,YAAY,MAAM;GACzB;;AAGJ,SAAgB,YAAY,OAAiB;AAC3C,cAAa,aAAW;AACtB,WAAO,eAAe,MAAM;GAC5B;;AAGJ,SAAgB,SAAS,IAAY;AACnC,cAAa,aAAW;AACtB,WAAO,YAAY,GAAG;GACtB;;AAGJ,SAAgB,cAAc,YAAqB;AACjD,cAAa,aAAW;AACtB,WAAO,iBAAiB,EAAE,YAAY,CAAC;GACvC;;AAGJ,SAAgB,SAAS;AACvB,cAAa,aAAW;AACtB,WAAO,SAAS;GAChB;;AAGJ,SAAS,YAAY,IAAmC;AACtD,KAAI,OAAO,WAAW,eAAe,OAAO,OAC1C,IAAG,OAAO,OAAO;KAEjB,SAAQ,KAAK,wBAAwB"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../src/Plucky.ts","../src/index.ts"],"sourcesContent":["import { type PluckySettingsParams } from '@plucky-ai/loader-types'\n\nlet attached = false\n\nexport function Plucky(options: PluckySettingsParams) {\n if (attached) return\n attached = true\n if (!document.getElementById('plucky-settings')) {\n const settingScript = document.createElement('script')\n settingScript.id = 'plucky-settings'\n settingScript.textContent = `window.pluckySettings = ${JSON.stringify(options)}`\n document.head.appendChild(settingScript)\n }\n\n if (!document.getElementById('plucky-init')) {\n const initScript = document.createElement('script')\n initScript.id = 'plucky-init'\n initScript.textContent = `(function(){var w=window;var ic=w.Plucky;if(typeof ic===\"function\"){ic('update',w.pluckySettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Plucky=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src=(window.pluckySettings.baseUrl||'https://widget.plucky.ai')+'/loader/'+window.pluckySettings.appId;var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);};if(document.readyState==='complete'){l();}else if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();`\n document.head.appendChild(initScript)\n }\n}\n","import { PluckySettingsParams, ToolConfig } from '@plucky-ai/loader-types'\nimport { PluckyFunction } from './types'\n\nexport type { ToolConfig } from '@plucky-ai/loader-types'\nexport { Plucky } from './Plucky'\n\nexport function updateSettings(settings: {\n user?: PluckySettingsParams['user']\n}) {\n runIfLoaded((Plucky) => {\n Plucky('update', settings)\n })\n}\n\nexport function sendMessage(args: { content: string; createChat?: boolean }) {\n runIfLoaded((Plucky) => {\n Plucky('sendMessage', args)\n })\n}\n\nexport function addTools(tools: ToolConfig[]) {\n runIfLoaded((Plucky) => {\n Plucky('addTools', tools)\n })\n}\n\nexport function removeTools(tools: string[]) {\n runIfLoaded((Plucky) => {\n Plucky('removeTools', tools)\n })\n}\n\nexport function setWidth(px: number) {\n runIfLoaded((Plucky) => {\n Plucky('setWidth', px)\n })\n}\n\nexport function setFullscreen(fullscreen: boolean) {\n runIfLoaded((Plucky) => {\n Plucky('setFullscreen', { fullscreen })\n })\n}\n\nexport function toggle() {\n runIfLoaded((Plucky) => {\n Plucky('toggle')\n })\n}\n\nexport function open() {\n runIfLoaded((Plucky) => {\n Plucky('open')\n })\n}\nexport function close() {\n runIfLoaded((Plucky) => {\n Plucky('close')\n })\n}\n\nexport function isReady() {\n return isAttachedToWindow() && window.Plucky('isReady')\n}\n\nexport function addEventListener(\n event: string,\n listener: (payload: any) => void,\n) {\n runIfLoaded((Plucky) => {\n Plucky('addEventListener', { event, listener })\n })\n}\n\nexport function removeEventListener(\n event: string,\n listener: (payload: any) => void,\n) {\n runIfLoaded((Plucky) => {\n Plucky('removeEventListener', { event, listener })\n })\n}\nfunction isAttachedToWindow() {\n return (\n typeof window !== 'undefined' &&\n window.Plucky &&\n typeof window.Plucky === 'function'\n )\n}\n\nfunction runIfLoaded(fn: (arg: PluckyFunction) => void) {\n if (isAttachedToWindow()) {\n fn(window.Plucky)\n } else {\n console.warn('Window is not defined')\n }\n}\n"],"mappings":";;AAEA,IAAI,WAAW;AAEf,SAAgB,OAAO,SAA+B;AACpD,KAAI,SAAU;AACd,YAAW;AACX,KAAI,CAAC,SAAS,eAAe,kBAAkB,EAAE;EAC/C,MAAM,gBAAgB,SAAS,cAAc,SAAS;AACtD,gBAAc,KAAK;AACnB,gBAAc,cAAc,2BAA2B,KAAK,UAAU,QAAQ;AAC9E,WAAS,KAAK,YAAY,cAAc;;AAG1C,KAAI,CAAC,SAAS,eAAe,cAAc,EAAE;EAC3C,MAAM,aAAa,SAAS,cAAc,SAAS;AACnD,aAAW,KAAK;AAChB,aAAW,cAAc;AACzB,WAAS,KAAK,YAAY,WAAW;;;;;;ACZzC,SAAgB,eAAe,UAE5B;AACD,cAAa,aAAW;AACtB,WAAO,UAAU,SAAS;GAC1B;;AAGJ,SAAgB,YAAY,MAAiD;AAC3E,cAAa,aAAW;AACtB,WAAO,eAAe,KAAK;GAC3B;;AAGJ,SAAgB,SAAS,OAAqB;AAC5C,cAAa,aAAW;AACtB,WAAO,YAAY,MAAM;GACzB;;AAGJ,SAAgB,YAAY,OAAiB;AAC3C,cAAa,aAAW;AACtB,WAAO,eAAe,MAAM;GAC5B;;AAGJ,SAAgB,SAAS,IAAY;AACnC,cAAa,aAAW;AACtB,WAAO,YAAY,GAAG;GACtB;;AAGJ,SAAgB,cAAc,YAAqB;AACjD,cAAa,aAAW;AACtB,WAAO,iBAAiB,EAAE,YAAY,CAAC;GACvC;;AAGJ,SAAgB,SAAS;AACvB,cAAa,aAAW;AACtB,WAAO,SAAS;GAChB;;AAGJ,SAAgB,OAAO;AACrB,cAAa,aAAW;AACtB,WAAO,OAAO;GACd;;AAEJ,SAAgB,QAAQ;AACtB,cAAa,aAAW;AACtB,WAAO,QAAQ;GACf;;AAGJ,SAAgB,UAAU;AACxB,QAAO,oBAAoB,IAAI,OAAO,OAAO,UAAU;;AAGzD,SAAgB,iBACd,OACA,UACA;AACA,cAAa,aAAW;AACtB,WAAO,oBAAoB;GAAE;GAAO;GAAU,CAAC;GAC/C;;AAGJ,SAAgB,oBACd,OACA,UACA;AACA,cAAa,aAAW;AACtB,WAAO,uBAAuB;GAAE;GAAO;GAAU,CAAC;GAClD;;AAEJ,SAAS,qBAAqB;AAC5B,QACE,OAAO,WAAW,eAClB,OAAO,UACP,OAAO,OAAO,WAAW;;AAI7B,SAAS,YAAY,IAAmC;AACtD,KAAI,oBAAoB,CACtB,IAAG,OAAO,OAAO;KAEjB,SAAQ,KAAK,wBAAwB"}
package/dist/index.d.cts CHANGED
@@ -4,6 +4,9 @@ import { PluckySettingsParams, ToolConfig, ToolConfig as ToolConfig$1 } from "@p
4
4
  declare function Plucky(options: PluckySettingsParams): void;
5
5
  //#endregion
6
6
  //#region src/index.d.ts
7
+ declare function updateSettings(settings: {
8
+ user?: PluckySettingsParams['user'];
9
+ }): void;
7
10
  declare function sendMessage(args: {
8
11
  content: string;
9
12
  createChat?: boolean;
@@ -13,6 +16,11 @@ declare function removeTools(tools: string[]): void;
13
16
  declare function setWidth(px: number): void;
14
17
  declare function setFullscreen(fullscreen: boolean): void;
15
18
  declare function toggle(): void;
19
+ declare function open(): void;
20
+ declare function close(): void;
21
+ declare function isReady(): any;
22
+ declare function addEventListener(event: string, listener: (payload: any) => void): void;
23
+ declare function removeEventListener(event: string, listener: (payload: any) => void): void;
16
24
  //#endregion
17
- export { Plucky, type ToolConfig, addTools, removeTools, sendMessage, setFullscreen, setWidth, toggle };
25
+ export { Plucky, type ToolConfig, addEventListener, addTools, close, isReady, open, removeEventListener, removeTools, sendMessage, setFullscreen, setWidth, toggle, updateSettings };
18
26
  //# sourceMappingURL=index.d.cts.map
package/dist/index.d.ts CHANGED
@@ -4,6 +4,9 @@ import { PluckySettingsParams, ToolConfig, ToolConfig as ToolConfig$1 } from "@p
4
4
  declare function Plucky(options: PluckySettingsParams): void;
5
5
  //#endregion
6
6
  //#region src/index.d.ts
7
+ declare function updateSettings(settings: {
8
+ user?: PluckySettingsParams['user'];
9
+ }): void;
7
10
  declare function sendMessage(args: {
8
11
  content: string;
9
12
  createChat?: boolean;
@@ -13,6 +16,11 @@ declare function removeTools(tools: string[]): void;
13
16
  declare function setWidth(px: number): void;
14
17
  declare function setFullscreen(fullscreen: boolean): void;
15
18
  declare function toggle(): void;
19
+ declare function open(): void;
20
+ declare function close(): void;
21
+ declare function isReady(): any;
22
+ declare function addEventListener(event: string, listener: (payload: any) => void): void;
23
+ declare function removeEventListener(event: string, listener: (payload: any) => void): void;
16
24
  //#endregion
17
- export { Plucky, type ToolConfig, addTools, removeTools, sendMessage, setFullscreen, setWidth, toggle };
25
+ export { Plucky, type ToolConfig, addEventListener, addTools, close, isReady, open, removeEventListener, removeTools, sendMessage, setFullscreen, setWidth, toggle, updateSettings };
18
26
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,17 +1,29 @@
1
1
  //#region src/Plucky.ts
2
+ let attached = false;
2
3
  function Plucky(options) {
3
- const settingScript = document.createElement("script");
4
- settingScript.id = "plucky-settings";
5
- settingScript.textContent = `window.pluckySettings = ${JSON.stringify(options)}`;
6
- document.head.appendChild(settingScript);
7
- const initScript = document.createElement("script");
8
- initScript.id = "plucky-init";
9
- initScript.textContent = `(function(){var w=window;var ic=w.Plucky;if(typeof ic==="function"){ic('update',w.pluckySettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Plucky=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src=(window.pluckySettings.baseUrl||'https://widget.plucky.ai')+'/loader/'+window.pluckySettings.appId;var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);};if(document.readyState==='complete'){l();}else if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();`;
10
- document.head.appendChild(initScript);
4
+ if (attached) return;
5
+ attached = true;
6
+ if (!document.getElementById("plucky-settings")) {
7
+ const settingScript = document.createElement("script");
8
+ settingScript.id = "plucky-settings";
9
+ settingScript.textContent = `window.pluckySettings = ${JSON.stringify(options)}`;
10
+ document.head.appendChild(settingScript);
11
+ }
12
+ if (!document.getElementById("plucky-init")) {
13
+ const initScript = document.createElement("script");
14
+ initScript.id = "plucky-init";
15
+ initScript.textContent = `(function(){var w=window;var ic=w.Plucky;if(typeof ic==="function"){ic('update',w.pluckySettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Plucky=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src=(window.pluckySettings.baseUrl||'https://widget.plucky.ai')+'/loader/'+window.pluckySettings.appId;var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);};if(document.readyState==='complete'){l();}else if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();`;
16
+ document.head.appendChild(initScript);
17
+ }
11
18
  }
12
19
 
13
20
  //#endregion
14
21
  //#region src/index.ts
22
+ function updateSettings(settings) {
23
+ runIfLoaded((Plucky$1) => {
24
+ Plucky$1("update", settings);
25
+ });
26
+ }
15
27
  function sendMessage(args) {
16
28
  runIfLoaded((Plucky$1) => {
17
29
  Plucky$1("sendMessage", args);
@@ -42,11 +54,43 @@ function toggle() {
42
54
  Plucky$1("toggle");
43
55
  });
44
56
  }
57
+ function open() {
58
+ runIfLoaded((Plucky$1) => {
59
+ Plucky$1("open");
60
+ });
61
+ }
62
+ function close() {
63
+ runIfLoaded((Plucky$1) => {
64
+ Plucky$1("close");
65
+ });
66
+ }
67
+ function isReady() {
68
+ return isAttachedToWindow() && window.Plucky("isReady");
69
+ }
70
+ function addEventListener(event, listener) {
71
+ runIfLoaded((Plucky$1) => {
72
+ Plucky$1("addEventListener", {
73
+ event,
74
+ listener
75
+ });
76
+ });
77
+ }
78
+ function removeEventListener(event, listener) {
79
+ runIfLoaded((Plucky$1) => {
80
+ Plucky$1("removeEventListener", {
81
+ event,
82
+ listener
83
+ });
84
+ });
85
+ }
86
+ function isAttachedToWindow() {
87
+ return typeof window !== "undefined" && window.Plucky && typeof window.Plucky === "function";
88
+ }
45
89
  function runIfLoaded(fn) {
46
- if (typeof window !== "undefined" && window.Plucky) fn(window.Plucky);
90
+ if (isAttachedToWindow()) fn(window.Plucky);
47
91
  else console.warn("Window is not defined");
48
92
  }
49
93
 
50
94
  //#endregion
51
- export { Plucky, addTools, removeTools, sendMessage, setFullscreen, setWidth, toggle };
95
+ export { Plucky, addEventListener, addTools, close, isReady, open, removeEventListener, removeTools, sendMessage, setFullscreen, setWidth, toggle, updateSettings };
52
96
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/Plucky.ts","../src/index.ts"],"sourcesContent":["import { type PluckySettingsParams } from '@plucky-ai/loader-types'\n\nexport function Plucky(options: PluckySettingsParams) {\n const settingScript = document.createElement('script')\n settingScript.id = 'plucky-settings'\n settingScript.textContent = `window.pluckySettings = ${JSON.stringify(options)}`\n document.head.appendChild(settingScript)\n\n const initScript = document.createElement('script')\n initScript.id = 'plucky-init'\n initScript.textContent = `(function(){var w=window;var ic=w.Plucky;if(typeof ic===\"function\"){ic('update',w.pluckySettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Plucky=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src=(window.pluckySettings.baseUrl||'https://widget.plucky.ai')+'/loader/'+window.pluckySettings.appId;var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);};if(document.readyState==='complete'){l();}else if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();`\n document.head.appendChild(initScript)\n}\n","import { ToolConfig } from '@plucky-ai/loader-types'\nimport { PluckyFunction } from './types'\n\nexport type { ToolConfig } from '@plucky-ai/loader-types'\nexport { Plucky } from './Plucky'\nexport function sendMessage(args: { content: string; createChat?: boolean }) {\n runIfLoaded((Plucky) => {\n Plucky('sendMessage', args)\n })\n}\n\nexport function addTools(tools: ToolConfig[]) {\n runIfLoaded((Plucky) => {\n Plucky('addTools', tools)\n })\n}\n\nexport function removeTools(tools: string[]) {\n runIfLoaded((Plucky) => {\n Plucky('removeTools', tools)\n })\n}\n\nexport function setWidth(px: number) {\n runIfLoaded((Plucky) => {\n Plucky('setWidth', px)\n })\n}\n\nexport function setFullscreen(fullscreen: boolean) {\n runIfLoaded((Plucky) => {\n Plucky('setFullscreen', { fullscreen })\n })\n}\n\nexport function toggle() {\n runIfLoaded((Plucky) => {\n Plucky('toggle')\n })\n}\n\nfunction runIfLoaded(fn: (arg: PluckyFunction) => void) {\n if (typeof window !== 'undefined' && window.Plucky) {\n fn(window.Plucky)\n } else {\n console.warn('Window is not defined')\n }\n}\n"],"mappings":";AAEA,SAAgB,OAAO,SAA+B;CACpD,MAAM,gBAAgB,SAAS,cAAc,SAAS;AACtD,eAAc,KAAK;AACnB,eAAc,cAAc,2BAA2B,KAAK,UAAU,QAAQ;AAC9E,UAAS,KAAK,YAAY,cAAc;CAExC,MAAM,aAAa,SAAS,cAAc,SAAS;AACnD,YAAW,KAAK;AAChB,YAAW,cAAc;AACzB,UAAS,KAAK,YAAY,WAAW;;;;;ACNvC,SAAgB,YAAY,MAAiD;AAC3E,cAAa,aAAW;AACtB,WAAO,eAAe,KAAK;GAC3B;;AAGJ,SAAgB,SAAS,OAAqB;AAC5C,cAAa,aAAW;AACtB,WAAO,YAAY,MAAM;GACzB;;AAGJ,SAAgB,YAAY,OAAiB;AAC3C,cAAa,aAAW;AACtB,WAAO,eAAe,MAAM;GAC5B;;AAGJ,SAAgB,SAAS,IAAY;AACnC,cAAa,aAAW;AACtB,WAAO,YAAY,GAAG;GACtB;;AAGJ,SAAgB,cAAc,YAAqB;AACjD,cAAa,aAAW;AACtB,WAAO,iBAAiB,EAAE,YAAY,CAAC;GACvC;;AAGJ,SAAgB,SAAS;AACvB,cAAa,aAAW;AACtB,WAAO,SAAS;GAChB;;AAGJ,SAAS,YAAY,IAAmC;AACtD,KAAI,OAAO,WAAW,eAAe,OAAO,OAC1C,IAAG,OAAO,OAAO;KAEjB,SAAQ,KAAK,wBAAwB"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/Plucky.ts","../src/index.ts"],"sourcesContent":["import { type PluckySettingsParams } from '@plucky-ai/loader-types'\n\nlet attached = false\n\nexport function Plucky(options: PluckySettingsParams) {\n if (attached) return\n attached = true\n if (!document.getElementById('plucky-settings')) {\n const settingScript = document.createElement('script')\n settingScript.id = 'plucky-settings'\n settingScript.textContent = `window.pluckySettings = ${JSON.stringify(options)}`\n document.head.appendChild(settingScript)\n }\n\n if (!document.getElementById('plucky-init')) {\n const initScript = document.createElement('script')\n initScript.id = 'plucky-init'\n initScript.textContent = `(function(){var w=window;var ic=w.Plucky;if(typeof ic===\"function\"){ic('update',w.pluckySettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Plucky=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src=(window.pluckySettings.baseUrl||'https://widget.plucky.ai')+'/loader/'+window.pluckySettings.appId;var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s, x);};if(document.readyState==='complete'){l();}else if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();`\n document.head.appendChild(initScript)\n }\n}\n","import { PluckySettingsParams, ToolConfig } from '@plucky-ai/loader-types'\nimport { PluckyFunction } from './types'\n\nexport type { ToolConfig } from '@plucky-ai/loader-types'\nexport { Plucky } from './Plucky'\n\nexport function updateSettings(settings: {\n user?: PluckySettingsParams['user']\n}) {\n runIfLoaded((Plucky) => {\n Plucky('update', settings)\n })\n}\n\nexport function sendMessage(args: { content: string; createChat?: boolean }) {\n runIfLoaded((Plucky) => {\n Plucky('sendMessage', args)\n })\n}\n\nexport function addTools(tools: ToolConfig[]) {\n runIfLoaded((Plucky) => {\n Plucky('addTools', tools)\n })\n}\n\nexport function removeTools(tools: string[]) {\n runIfLoaded((Plucky) => {\n Plucky('removeTools', tools)\n })\n}\n\nexport function setWidth(px: number) {\n runIfLoaded((Plucky) => {\n Plucky('setWidth', px)\n })\n}\n\nexport function setFullscreen(fullscreen: boolean) {\n runIfLoaded((Plucky) => {\n Plucky('setFullscreen', { fullscreen })\n })\n}\n\nexport function toggle() {\n runIfLoaded((Plucky) => {\n Plucky('toggle')\n })\n}\n\nexport function open() {\n runIfLoaded((Plucky) => {\n Plucky('open')\n })\n}\nexport function close() {\n runIfLoaded((Plucky) => {\n Plucky('close')\n })\n}\n\nexport function isReady() {\n return isAttachedToWindow() && window.Plucky('isReady')\n}\n\nexport function addEventListener(\n event: string,\n listener: (payload: any) => void,\n) {\n runIfLoaded((Plucky) => {\n Plucky('addEventListener', { event, listener })\n })\n}\n\nexport function removeEventListener(\n event: string,\n listener: (payload: any) => void,\n) {\n runIfLoaded((Plucky) => {\n Plucky('removeEventListener', { event, listener })\n })\n}\nfunction isAttachedToWindow() {\n return (\n typeof window !== 'undefined' &&\n window.Plucky &&\n typeof window.Plucky === 'function'\n )\n}\n\nfunction runIfLoaded(fn: (arg: PluckyFunction) => void) {\n if (isAttachedToWindow()) {\n fn(window.Plucky)\n } else {\n console.warn('Window is not defined')\n }\n}\n"],"mappings":";AAEA,IAAI,WAAW;AAEf,SAAgB,OAAO,SAA+B;AACpD,KAAI,SAAU;AACd,YAAW;AACX,KAAI,CAAC,SAAS,eAAe,kBAAkB,EAAE;EAC/C,MAAM,gBAAgB,SAAS,cAAc,SAAS;AACtD,gBAAc,KAAK;AACnB,gBAAc,cAAc,2BAA2B,KAAK,UAAU,QAAQ;AAC9E,WAAS,KAAK,YAAY,cAAc;;AAG1C,KAAI,CAAC,SAAS,eAAe,cAAc,EAAE;EAC3C,MAAM,aAAa,SAAS,cAAc,SAAS;AACnD,aAAW,KAAK;AAChB,aAAW,cAAc;AACzB,WAAS,KAAK,YAAY,WAAW;;;;;;ACZzC,SAAgB,eAAe,UAE5B;AACD,cAAa,aAAW;AACtB,WAAO,UAAU,SAAS;GAC1B;;AAGJ,SAAgB,YAAY,MAAiD;AAC3E,cAAa,aAAW;AACtB,WAAO,eAAe,KAAK;GAC3B;;AAGJ,SAAgB,SAAS,OAAqB;AAC5C,cAAa,aAAW;AACtB,WAAO,YAAY,MAAM;GACzB;;AAGJ,SAAgB,YAAY,OAAiB;AAC3C,cAAa,aAAW;AACtB,WAAO,eAAe,MAAM;GAC5B;;AAGJ,SAAgB,SAAS,IAAY;AACnC,cAAa,aAAW;AACtB,WAAO,YAAY,GAAG;GACtB;;AAGJ,SAAgB,cAAc,YAAqB;AACjD,cAAa,aAAW;AACtB,WAAO,iBAAiB,EAAE,YAAY,CAAC;GACvC;;AAGJ,SAAgB,SAAS;AACvB,cAAa,aAAW;AACtB,WAAO,SAAS;GAChB;;AAGJ,SAAgB,OAAO;AACrB,cAAa,aAAW;AACtB,WAAO,OAAO;GACd;;AAEJ,SAAgB,QAAQ;AACtB,cAAa,aAAW;AACtB,WAAO,QAAQ;GACf;;AAGJ,SAAgB,UAAU;AACxB,QAAO,oBAAoB,IAAI,OAAO,OAAO,UAAU;;AAGzD,SAAgB,iBACd,OACA,UACA;AACA,cAAa,aAAW;AACtB,WAAO,oBAAoB;GAAE;GAAO;GAAU,CAAC;GAC/C;;AAGJ,SAAgB,oBACd,OACA,UACA;AACA,cAAa,aAAW;AACtB,WAAO,uBAAuB;GAAE;GAAO;GAAU,CAAC;GAClD;;AAEJ,SAAS,qBAAqB;AAC5B,QACE,OAAO,WAAW,eAClB,OAAO,UACP,OAAO,OAAO,WAAW;;AAI7B,SAAS,YAAY,IAAmC;AACtD,KAAI,oBAAoB,CACtB,IAAG,OAAO,OAAO;KAEjB,SAAQ,KAAK,wBAAwB"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plucky-ai/chat-sdk",
3
- "version": "0.3.2",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "main": "./index.cjs",
6
6
  "module": "./index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plucky-ai/chat-sdk",
3
- "version": "0.3.2",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",