@cowprotocol/widget-lib 0.2.1 → 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/index.iife.js CHANGED
@@ -1 +1 @@
1
- var cowSwapWidget=function(i){"use strict";const m="2.0",l="*",f=["connect","disconnect","close","chainChanged","accountsChanged"];class E{constructor(e){this.contentWindow=e,this.ethereumProvider=null,this.requests={},this.processEvent=t=>{t.data.jsonrpc==="2.0"&&(this.ethereumProvider?this.processRequest(t.data):this.requests[t.data.id]=t.data)},window.addEventListener("message",this.processEvent)}disconnect(){this.ethereumProvider=null,window.removeEventListener("message",this.processEvent)}onConnect(e){this.ethereumProvider=e,Object.keys(this.requests).forEach(t=>{this.processRequest(this.requests[t])}),this.requests={},f.forEach(t=>{e.on(t,s=>{this.postMessage({method:t,params:[s]})})})}processRequest(e){if(!this.ethereumProvider)return;(e.method==="enable"?this.ethereumProvider.enable():this.ethereumProvider.request(e)).then(s=>{this.postMessage({id:e.id,result:s})}).catch(s=>{this.postMessage({id:e.id,error:s})})}postMessage(e){this.contentWindow.postMessage({jsonrpc:m,...e},l)}}function v(){return typeof window>"u"||!window?"":`https://swap-dev-git-${window.location.hostname.replace("widget-configurator-git-","").replace("-cowswap.vercel.app","")}-cowswap.vercel.app`}const d={local:"http://localhost:3000",prod:"https://swap.cow.fi",dev:"https://dev.swap.cow.fi",pr:v()};var c=(n=>(n.SWAP="swap",n.LIMIT="limit",n.ADVANCED="advanced",n))(c||{});const h="_";function y(n){const e=d[n.env||"prod"],t=u(n),s=p(n);return e+"/#"+t+"?"+s}function u(n){const{chainId:e=1,sell:t,buy:s,tradeType:o=c.SWAP}=n,r=[t?.asset||h,s?.asset||h].map(encodeURIComponent).join("/");return`/${e}/widget/${o}/${r}`}function p(n){const{sell:e,buy:t,theme:s}=n,o=new URLSearchParams;return e?.amount&&o.append("sellAmount",e.amount),t?.amount&&o.append("buyAmount",t.amount),s&&o.append("theme",typeof s=="string"?s:s.baseTheme),o}const a="cowSwapWidget",w="640px",P="450px",W=20;function S(n,e={}){const{provider:t}=e,s=T(e);n.innerHTML="",n.appendChild(s);const{contentWindow:o}=s;if(!o)throw new Error("Iframe does not contain a window!");return A(o,e.appCode),M(s,e.height),t&&new E(o).onConnect(t),s.addEventListener("load",()=>{g(e,o)}),r=>g(r,o)}function T(n){const{width:e=P,height:t=w}=n,s=document.createElement("iframe");return s.src=y(n),s.width=e,s.height=t,s.style.border="0",s}function g(n,e){const t=u(n),s=p(n).toString();e.postMessage({key:a,method:"update",urlParams:{pathname:t,search:s},appParams:{...n,provider:void 0}},"*")}function A(n,e){window.addEventListener("message",t=>{t.data.key!==a||t.data.method!=="activate"||n.postMessage({key:a,method:"metaData",metaData:e?{appCode:e}:void 0},"*")})}function M(n,e=w){window.addEventListener("message",t=>{t.data.key!==a||t.data.method!=="iframeHeight"||(n.style.height=t.data.height?`${t.data.height+W}px`:e)})}return i.COWSWAP_URLS=d,i.TradeType=c,i.cowSwapWidget=S,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),i}({});
1
+ var cowSwapWidget=function(i){"use strict";const m="2.0",f="*",l=["connect","disconnect","close","chainChanged","accountsChanged"];class E{constructor(t){this.contentWindow=t,this.ethereumProvider=null,this.requests={},this.processEvent=e=>{e.data.jsonrpc==="2.0"&&(this.ethereumProvider?this.processRequest(e.data):this.requests[e.data.id]=e.data)},window.addEventListener("message",this.processEvent)}disconnect(){this.ethereumProvider=null,window.removeEventListener("message",this.processEvent)}onConnect(t){this.ethereumProvider=t,Object.keys(this.requests).forEach(e=>{this.processRequest(this.requests[e])}),this.requests={},l.forEach(e=>{t.on(e,n=>{this.postMessage({method:e,params:[n]})})})}processRequest(t){if(!this.ethereumProvider)return;(t.method==="enable"?this.ethereumProvider.enable():this.ethereumProvider.request(t)).then(n=>{this.postMessage({id:t.id,result:n})}).catch(n=>{this.postMessage({id:t.id,error:n})})}postMessage(t){this.contentWindow.postMessage({jsonrpc:m,...t},f)}}function v(){return typeof window>"u"||!window?"":`https://swap-dev-git-${window.location.hostname.replace("widget-configurator-git-","").replace("-cowswap.vercel.app","")}-cowswap.vercel.app`}const d={local:"http://localhost:3000",prod:"https://swap.cow.fi",dev:"https://dev.swap.cow.fi",pr:v()};var c=(s=>(s.SWAP="swap",s.LIMIT="limit",s.ADVANCED="advanced",s))(c||{});const h="_";function P(s){const t=d[s.env||"prod"],e=u(s),n=p(s);return t+"/#"+e+"?"+n}function u(s){const{chainId:t=1,sell:e,buy:n,tradeType:o=c.SWAP}=s,r=[(e==null?void 0:e.asset)||h,(n==null?void 0:n.asset)||h].map(encodeURIComponent).join("/");return`/${t}/widget/${o}/${r}`}function p(s){const{sell:t,buy:e,theme:n}=s,o=new URLSearchParams;return t!=null&&t.amount&&o.append("sellAmount",t.amount),e!=null&&e.amount&&o.append("buyAmount",e.amount),n&&o.append("theme",typeof n=="string"?n:n.baseTheme),o}const a="cowSwapWidget",w="640px",W="450px",S=20;function y(s,t={}){const{provider:e}=t,n=T(t);s.innerHTML="",s.appendChild(n);const{contentWindow:o}=n;if(!o)throw new Error("Iframe does not contain a window!");return A(o,t.appCode),M(n,t.height),e&&new E(o).onConnect(e),n.addEventListener("load",()=>{g(t,o)}),r=>g(r,o)}function T(s){const{width:t=W,height:e=w}=s,n=document.createElement("iframe");return n.src=P(s),n.width=t,n.height=e,n.style.border="0",n}function g(s,t){const e=u(s),n=p(s).toString();t.postMessage({key:a,method:"update",urlParams:{pathname:e,search:n},appParams:{...s,provider:void 0}},"*")}function A(s,t){window.addEventListener("message",e=>{e.data.key!==a||e.data.method!=="activate"||s.postMessage({key:a,method:"metaData",metaData:t?{appCode:t}:void 0},"*")})}function M(s,t=w){window.addEventListener("message",e=>{e.data.key!==a||e.data.method!=="iframeHeight"||(s.style.height=e.data.height?`${e.data.height+S}px`:t)})}return i.COWSWAP_URLS=d,i.TradeType=c,i.cowSwapWidget=y,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),i}({});
package/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g="2.0",m="*",l=["connect","disconnect","close","chainChanged","accountsChanged"];class f{constructor(e){this.contentWindow=e,this.ethereumProvider=null,this.requests={},this.processEvent=t=>{t.data.jsonrpc==="2.0"&&(this.ethereumProvider?this.processRequest(t.data):this.requests[t.data.id]=t.data)},window.addEventListener("message",this.processEvent)}disconnect(){this.ethereumProvider=null,window.removeEventListener("message",this.processEvent)}onConnect(e){this.ethereumProvider=e,Object.keys(this.requests).forEach(t=>{this.processRequest(this.requests[t])}),this.requests={},l.forEach(t=>{e.on(t,n=>{this.postMessage({method:t,params:[n]})})})}processRequest(e){if(!this.ethereumProvider)return;(e.method==="enable"?this.ethereumProvider.enable():this.ethereumProvider.request(e)).then(n=>{this.postMessage({id:e.id,result:n})}).catch(n=>{this.postMessage({id:e.id,error:n})})}postMessage(e){this.contentWindow.postMessage({jsonrpc:g,...e},m)}}function E(){return typeof window>"u"||!window?"":`https://swap-dev-git-${window.location.hostname.replace("widget-configurator-git-","").replace("-cowswap.vercel.app","")}-cowswap.vercel.app`}const h={local:"http://localhost:3000",prod:"https://swap.cow.fi",dev:"https://dev.swap.cow.fi",pr:E()};var r=(s=>(s.SWAP="swap",s.LIMIT="limit",s.ADVANCED="advanced",s))(r||{});const c="_";function v(s){const e=h[s.env||"prod"],t=u(s),n=p(s);return e+"/#"+t+"?"+n}function u(s){const{chainId:e=1,sell:t,buy:n,tradeType:o=r.SWAP}=s,i=[t?.asset||c,n?.asset||c].map(encodeURIComponent).join("/");return`/${e}/widget/${o}/${i}`}function p(s){const{sell:e,buy:t,theme:n}=s,o=new URLSearchParams;return e?.amount&&o.append("sellAmount",e.amount),t?.amount&&o.append("buyAmount",t.amount),n&&o.append("theme",typeof n=="string"?n:n.baseTheme),o}const a="cowSwapWidget",w="640px",y="450px",P=20;function W(s,e={}){const{provider:t}=e,n=S(e);s.innerHTML="",s.appendChild(n);const{contentWindow:o}=n;if(!o)throw new Error("Iframe does not contain a window!");return T(o,e.appCode),A(n,e.height),t&&new f(o).onConnect(t),n.addEventListener("load",()=>{d(e,o)}),i=>d(i,o)}function S(s){const{width:e=y,height:t=w}=s,n=document.createElement("iframe");return n.src=v(s),n.width=e,n.height=t,n.style.border="0",n}function d(s,e){const t=u(s),n=p(s).toString();e.postMessage({key:a,method:"update",urlParams:{pathname:t,search:n},appParams:{...s,provider:void 0}},"*")}function T(s,e){window.addEventListener("message",t=>{t.data.key!==a||t.data.method!=="activate"||s.postMessage({key:a,method:"metaData",metaData:e?{appCode:e}:void 0},"*")})}function A(s,e=w){window.addEventListener("message",t=>{t.data.key!==a||t.data.method!=="iframeHeight"||(s.style.height=t.data.height?`${t.data.height+P}px`:e)})}exports.COWSWAP_URLS=h;exports.TradeType=r;exports.cowSwapWidget=W;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g="2.0",m="*",f=["connect","disconnect","close","chainChanged","accountsChanged"];class l{constructor(t){this.contentWindow=t,this.ethereumProvider=null,this.requests={},this.processEvent=e=>{e.data.jsonrpc==="2.0"&&(this.ethereumProvider?this.processRequest(e.data):this.requests[e.data.id]=e.data)},window.addEventListener("message",this.processEvent)}disconnect(){this.ethereumProvider=null,window.removeEventListener("message",this.processEvent)}onConnect(t){this.ethereumProvider=t,Object.keys(this.requests).forEach(e=>{this.processRequest(this.requests[e])}),this.requests={},f.forEach(e=>{t.on(e,n=>{this.postMessage({method:e,params:[n]})})})}processRequest(t){if(!this.ethereumProvider)return;(t.method==="enable"?this.ethereumProvider.enable():this.ethereumProvider.request(t)).then(n=>{this.postMessage({id:t.id,result:n})}).catch(n=>{this.postMessage({id:t.id,error:n})})}postMessage(t){this.contentWindow.postMessage({jsonrpc:g,...t},m)}}function E(){return typeof window>"u"||!window?"":`https://swap-dev-git-${window.location.hostname.replace("widget-configurator-git-","").replace("-cowswap.vercel.app","")}-cowswap.vercel.app`}const h={local:"http://localhost:3000",prod:"https://swap.cow.fi",dev:"https://dev.swap.cow.fi",pr:E()};var r=(s=>(s.SWAP="swap",s.LIMIT="limit",s.ADVANCED="advanced",s))(r||{});const c="_";function v(s){const t=h[s.env||"prod"],e=p(s),n=u(s);return t+"/#"+e+"?"+n}function p(s){const{chainId:t=1,sell:e,buy:n,tradeType:o=r.SWAP}=s,i=[(e==null?void 0:e.asset)||c,(n==null?void 0:n.asset)||c].map(encodeURIComponent).join("/");return`/${t}/widget/${o}/${i}`}function u(s){const{sell:t,buy:e,theme:n}=s,o=new URLSearchParams;return t!=null&&t.amount&&o.append("sellAmount",t.amount),e!=null&&e.amount&&o.append("buyAmount",e.amount),n&&o.append("theme",typeof n=="string"?n:n.baseTheme),o}const a="cowSwapWidget",w="640px",P="450px",W=20;function y(s,t={}){const{provider:e}=t,n=S(t);s.innerHTML="",s.appendChild(n);const{contentWindow:o}=n;if(!o)throw new Error("Iframe does not contain a window!");return T(o,t.appCode),A(n,t.height),e&&new l(o).onConnect(e),n.addEventListener("load",()=>{d(t,o)}),i=>d(i,o)}function S(s){const{width:t=P,height:e=w}=s,n=document.createElement("iframe");return n.src=v(s),n.width=t,n.height=e,n.style.border="0",n}function d(s,t){const e=p(s),n=u(s).toString();t.postMessage({key:a,method:"update",urlParams:{pathname:e,search:n},appParams:{...s,provider:void 0}},"*")}function T(s,t){window.addEventListener("message",e=>{e.data.key!==a||e.data.method!=="activate"||s.postMessage({key:a,method:"metaData",metaData:t?{appCode:t}:void 0},"*")})}function A(s,t=w){window.addEventListener("message",e=>{e.data.key!==a||e.data.method!=="iframeHeight"||(s.style.height=e.data.height?`${e.data.height+W}px`:t)})}exports.COWSWAP_URLS=h;exports.TradeType=r;exports.cowSwapWidget=y;
package/index.mjs CHANGED
@@ -1,12 +1,12 @@
1
1
  const w = "2.0", m = "*", g = ["connect", "disconnect", "close", "chainChanged", "accountsChanged"];
2
- class l {
2
+ class f {
3
3
  /**
4
4
  * Creates an instance of JsonRpcManager.
5
5
  * @param contentWindow - The window for handling events.
6
6
  */
7
- constructor(e) {
8
- this.contentWindow = e, this.ethereumProvider = null, this.requests = {}, this.processEvent = (t) => {
9
- t.data.jsonrpc === "2.0" && (this.ethereumProvider ? this.processRequest(t.data) : this.requests[t.data.id] = t.data);
7
+ constructor(t) {
8
+ this.contentWindow = t, this.ethereumProvider = null, this.requests = {}, this.processEvent = (e) => {
9
+ e.data.jsonrpc === "2.0" && (this.ethereumProvider ? this.processRequest(e.data) : this.requests[e.data.id] = e.data);
10
10
  }, window.addEventListener("message", this.processEvent);
11
11
  }
12
12
  /**
@@ -19,12 +19,12 @@ class l {
19
19
  * Handles the 'connect' event and sets up event listeners for Ethereum provider events.
20
20
  * @param ethereumProvider - The Ethereum provider to connect.
21
21
  */
22
- onConnect(e) {
23
- this.ethereumProvider = e, Object.keys(this.requests).forEach((t) => {
24
- this.processRequest(this.requests[t]);
25
- }), this.requests = {}, g.forEach((t) => {
26
- e.on(t, (n) => {
27
- this.postMessage({ method: t, params: [n] });
22
+ onConnect(t) {
23
+ this.ethereumProvider = t, Object.keys(this.requests).forEach((e) => {
24
+ this.processRequest(this.requests[e]);
25
+ }), this.requests = {}, g.forEach((e) => {
26
+ t.on(e, (n) => {
27
+ this.postMessage({ method: e, params: [n] });
28
28
  });
29
29
  });
30
30
  }
@@ -32,71 +32,71 @@ class l {
32
32
  * Processes a JSON-RPC request and sends appropriate response or error via the content window.
33
33
  * @param request - The JSON-RPC request to be processed.
34
34
  */
35
- processRequest(e) {
35
+ processRequest(t) {
36
36
  if (!this.ethereumProvider)
37
37
  return;
38
- (e.method === "enable" ? this.ethereumProvider.enable() : this.ethereumProvider.request(e)).then((n) => {
39
- this.postMessage({ id: e.id, result: n });
38
+ (t.method === "enable" ? this.ethereumProvider.enable() : this.ethereumProvider.request(t)).then((n) => {
39
+ this.postMessage({ id: t.id, result: n });
40
40
  }).catch((n) => {
41
- this.postMessage({ id: e.id, error: n });
41
+ this.postMessage({ id: t.id, error: n });
42
42
  });
43
43
  }
44
- postMessage(e) {
44
+ postMessage(t) {
45
45
  this.contentWindow.postMessage(
46
46
  {
47
47
  jsonrpc: w,
48
- ...e
48
+ ...t
49
49
  },
50
50
  m
51
51
  );
52
52
  }
53
53
  }
54
- function f() {
54
+ function l() {
55
55
  return typeof window > "u" || !window ? "" : `https://swap-dev-git-${window.location.hostname.replace("widget-configurator-git-", "").replace("-cowswap.vercel.app", "")}-cowswap.vercel.app`;
56
56
  }
57
57
  const E = {
58
58
  local: "http://localhost:3000",
59
59
  prod: "https://swap.cow.fi",
60
60
  dev: "https://dev.swap.cow.fi",
61
- pr: f()
61
+ pr: l()
62
62
  };
63
63
  var d = /* @__PURE__ */ ((s) => (s.SWAP = "swap", s.LIMIT = "limit", s.ADVANCED = "advanced", s))(d || {});
64
64
  const r = "_";
65
65
  function v(s) {
66
- const e = E[s.env || "prod"], t = h(s), n = p(s);
67
- return e + "/#" + t + "?" + n;
66
+ const t = E[s.env || "prod"], e = h(s), n = p(s);
67
+ return t + "/#" + e + "?" + n;
68
68
  }
69
69
  function h(s) {
70
- const { chainId: e = 1, sell: t, buy: n, tradeType: o = d.SWAP } = s, i = [t?.asset || r, n?.asset || r].map(encodeURIComponent).join("/");
71
- return `/${e}/widget/${o}/${i}`;
70
+ const { chainId: t = 1, sell: e, buy: n, tradeType: o = d.SWAP } = s, i = [(e == null ? void 0 : e.asset) || r, (n == null ? void 0 : n.asset) || r].map(encodeURIComponent).join("/");
71
+ return `/${t}/widget/${o}/${i}`;
72
72
  }
73
73
  function p(s) {
74
- const { sell: e, buy: t, theme: n } = s, o = new URLSearchParams();
75
- return e?.amount && o.append("sellAmount", e.amount), t?.amount && o.append("buyAmount", t.amount), n && o.append("theme", typeof n == "string" ? n : n.baseTheme), o;
74
+ const { sell: t, buy: e, theme: n } = s, o = new URLSearchParams();
75
+ return t != null && t.amount && o.append("sellAmount", t.amount), e != null && e.amount && o.append("buyAmount", e.amount), n && o.append("theme", typeof n == "string" ? n : n.baseTheme), o;
76
76
  }
77
- const a = "cowSwapWidget", u = "640px", y = "450px", P = 20;
78
- function M(s, e = {}) {
79
- const { provider: t } = e, n = W(e);
77
+ const a = "cowSwapWidget", u = "640px", P = "450px", W = 20;
78
+ function M(s, t = {}) {
79
+ const { provider: e } = t, n = y(t);
80
80
  s.innerHTML = "", s.appendChild(n);
81
81
  const { contentWindow: o } = n;
82
82
  if (!o)
83
83
  throw new Error("Iframe does not contain a window!");
84
- return T(o, e.appCode), A(n, e.height), t && new l(o).onConnect(t), n.addEventListener("load", () => {
85
- c(e, o);
84
+ return T(o, t.appCode), A(n, t.height), e && new f(o).onConnect(e), n.addEventListener("load", () => {
85
+ c(t, o);
86
86
  }), (i) => c(i, o);
87
87
  }
88
- function W(s) {
89
- const { width: e = y, height: t = u } = s, n = document.createElement("iframe");
90
- return n.src = v(s), n.width = e, n.height = t, n.style.border = "0", n;
88
+ function y(s) {
89
+ const { width: t = P, height: e = u } = s, n = document.createElement("iframe");
90
+ return n.src = v(s), n.width = t, n.height = e, n.style.border = "0", n;
91
91
  }
92
- function c(s, e) {
93
- const t = h(s), n = p(s).toString();
94
- e.postMessage(
92
+ function c(s, t) {
93
+ const e = h(s), n = p(s).toString();
94
+ t.postMessage(
95
95
  {
96
96
  key: a,
97
97
  method: "update",
98
98
  urlParams: {
99
- pathname: t,
99
+ pathname: e,
100
100
  search: n
101
101
  },
102
102
  appParams: {
@@ -107,21 +107,21 @@ function c(s, e) {
107
107
  "*"
108
108
  );
109
109
  }
110
- function T(s, e) {
111
- window.addEventListener("message", (t) => {
112
- t.data.key !== a || t.data.method !== "activate" || s.postMessage(
110
+ function T(s, t) {
111
+ window.addEventListener("message", (e) => {
112
+ e.data.key !== a || e.data.method !== "activate" || s.postMessage(
113
113
  {
114
114
  key: a,
115
115
  method: "metaData",
116
- metaData: e ? { appCode: e } : void 0
116
+ metaData: t ? { appCode: t } : void 0
117
117
  },
118
118
  "*"
119
119
  );
120
120
  });
121
121
  }
122
- function A(s, e = u) {
123
- window.addEventListener("message", (t) => {
124
- t.data.key !== a || t.data.method !== "iframeHeight" || (s.style.height = t.data.height ? `${t.data.height + P}px` : e);
122
+ function A(s, t = u) {
123
+ window.addEventListener("message", (e) => {
124
+ e.data.key !== a || e.data.method !== "iframeHeight" || (s.style.height = e.data.height ? `${e.data.height + W}px` : t);
125
125
  });
126
126
  }
127
127
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cowprotocol/widget-lib",
3
- "version": "0.2.1",
3
+ "version": "0.4.0",
4
4
  "type": "commonjs",
5
5
  "description": "CoW Swap Widget Library. Allows you to easily embed a CoW Swap widget on your website.",
6
6
  "main": "index.js",
package/types.d.ts CHANGED
@@ -51,10 +51,15 @@ export declare enum TradeType {
51
51
  }
52
52
  export interface CowSwapWidgetPalette {
53
53
  baseTheme: CowSwapTheme;
54
- primaryColor: string;
55
- screenBackground: string;
56
- widgetBackground: string;
57
- textColor: string;
54
+ primary: string;
55
+ background: string;
56
+ paper: string;
57
+ text: string;
58
+ danger: string;
59
+ warning: string;
60
+ alert: string;
61
+ info: string;
62
+ success: string;
58
63
  }
59
64
  interface CowSwapWidgetConfig {
60
65
  /**
@@ -78,6 +83,10 @@ interface CowSwapWidgetConfig {
78
83
  * Network ID.
79
84
  */
80
85
  chainId: SupportedChainId;
86
+ /**
87
+ * The token lists urls to use in the widget
88
+ */
89
+ tokenLists: string[];
81
90
  /**
82
91
  * Swap, Limit or Advanced (Twap).
83
92
  */