@aeternity/aepp-sdk 9.0.1 → 10.0.0-beta.1

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.
Files changed (137) hide show
  1. package/dist/aepp-sdk.browser-script.js +1 -1
  2. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +0 -9
  3. package/dist/aepp-sdk.browser-script.js.map +1 -1
  4. package/dist/aepp-sdk.browser.js +1 -1
  5. package/dist/aepp-sdk.browser.js.map +1 -1
  6. package/dist/aepp-sdk.js +1 -1
  7. package/dist/aepp-sdk.js.map +1 -1
  8. package/es/account/base.js +30 -122
  9. package/es/account/base.js.map +1 -1
  10. package/es/account/memory.js +17 -19
  11. package/es/account/memory.js.map +1 -1
  12. package/es/account/multiple.js +73 -164
  13. package/es/account/multiple.js.map +1 -1
  14. package/es/ae/aens.js +164 -599
  15. package/es/ae/aens.js.map +1 -1
  16. package/es/ae/contract.js +82 -759
  17. package/es/ae/contract.js.map +1 -1
  18. package/es/ae/index.js +78 -315
  19. package/es/ae/index.js.map +1 -1
  20. package/es/ae/oracle.js +130 -498
  21. package/es/ae/oracle.js.map +1 -1
  22. package/es/chain/index.js +1 -1
  23. package/es/chain/index.js.map +1 -1
  24. package/es/chain/node.js +288 -1008
  25. package/es/chain/node.js.map +1 -1
  26. package/es/channel/handlers.js +597 -1086
  27. package/es/channel/handlers.js.map +1 -1
  28. package/es/channel/index.js +203 -451
  29. package/es/channel/index.js.map +1 -1
  30. package/es/channel/internal.js +129 -301
  31. package/es/channel/internal.js.map +1 -1
  32. package/es/contract/aci/index.js +319 -480
  33. package/es/contract/aci/index.js.map +1 -1
  34. package/es/contract/aci/transformation.js +35 -711
  35. package/es/contract/aci/transformation.js.map +1 -1
  36. package/es/contract/compiler.js +129 -203
  37. package/es/contract/compiler.js.map +1 -1
  38. package/es/contract/ga/helpers.js +16 -114
  39. package/es/contract/ga/helpers.js.map +1 -1
  40. package/es/contract/ga/index.js +101 -242
  41. package/es/contract/ga/index.js.map +1 -1
  42. package/es/contract/index.js +1 -1
  43. package/es/contract/index.js.map +1 -1
  44. package/es/index.js +1 -2
  45. package/es/index.js.map +1 -1
  46. package/es/node-pool/index.js +54 -73
  47. package/es/node-pool/index.js.map +1 -1
  48. package/es/node.js +56 -157
  49. package/es/node.js.map +1 -1
  50. package/es/other.d.ts +1 -1
  51. package/es/tx/builder/helpers.js +38 -75
  52. package/es/tx/builder/helpers.js.map +1 -1
  53. package/es/tx/builder/index.js +196 -294
  54. package/es/tx/builder/index.js.map +1 -1
  55. package/es/tx/builder/schema.js +577 -459
  56. package/es/tx/builder/schema.js.map +1 -1
  57. package/es/tx/index.js +1 -1
  58. package/es/tx/index.js.map +1 -1
  59. package/es/tx/tx-object.js +105 -132
  60. package/es/tx/tx-object.js.map +1 -1
  61. package/es/tx/tx.js +808 -1628
  62. package/es/tx/tx.js.map +1 -1
  63. package/es/tx/validator.js +132 -268
  64. package/es/tx/validator.js.map +1 -1
  65. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +17 -21
  66. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +1 -1
  67. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +38 -74
  68. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +1 -1
  69. package/es/utils/aepp-wallet-communication/content-script-bridge.js +14 -15
  70. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +1 -1
  71. package/es/utils/aepp-wallet-communication/helpers.js +60 -105
  72. package/es/utils/aepp-wallet-communication/helpers.js.map +1 -1
  73. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +179 -510
  74. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +1 -1
  75. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +70 -89
  76. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +1 -1
  77. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +353 -600
  78. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +1 -1
  79. package/es/utils/aepp-wallet-communication/schema.js +43 -39
  80. package/es/utils/aepp-wallet-communication/schema.js.map +1 -1
  81. package/es/utils/aepp-wallet-communication/wallet-detector.js +32 -58
  82. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +1 -1
  83. package/es/utils/amount-formatter.js +41 -61
  84. package/es/utils/amount-formatter.js.map +1 -1
  85. package/es/utils/async-init.js +28 -64
  86. package/es/utils/async-init.js.map +1 -1
  87. package/es/utils/bignumber.js +3 -11
  88. package/es/utils/bignumber.js.map +1 -1
  89. package/es/utils/bytes.js +5 -9
  90. package/es/utils/bytes.js.map +1 -1
  91. package/es/utils/crypto.js +47 -62
  92. package/es/utils/crypto.js.map +1 -1
  93. package/es/utils/hd-wallet.js +45 -81
  94. package/es/utils/hd-wallet.js.map +1 -1
  95. package/es/utils/json-big.js +16 -49
  96. package/es/utils/json-big.js.map +1 -1
  97. package/es/utils/keystore.js +81 -246
  98. package/es/utils/keystore.js.map +1 -1
  99. package/es/utils/mptree.js +88 -134
  100. package/es/utils/mptree.js.map +1 -1
  101. package/es/utils/other.js +10 -60
  102. package/es/utils/other.js.map +1 -1
  103. package/es/utils/semver-satisfies.js +9 -28
  104. package/es/utils/semver-satisfies.js.map +1 -1
  105. package/es/utils/string.js +4 -13
  106. package/es/utils/string.js.map +1 -1
  107. package/es/utils/swagger.js +85 -224
  108. package/es/utils/swagger.js.map +1 -1
  109. package/package.json +44 -40
  110. package/src/account/multiple.js +18 -19
  111. package/src/ae/aens.js +25 -21
  112. package/src/ae/contract.js +32 -163
  113. package/src/ae/index.js +3 -3
  114. package/src/ae/oracle.js +18 -14
  115. package/src/chain/node.js +2 -4
  116. package/src/channel/handlers.js +0 -1
  117. package/src/channel/index.js +4 -5
  118. package/src/contract/aci/index.js +221 -102
  119. package/src/contract/aci/transformation.js +30 -422
  120. package/src/contract/compiler.js +45 -4
  121. package/src/contract/ga/helpers.js +1 -8
  122. package/src/contract/ga/index.js +13 -11
  123. package/src/index.js +0 -2
  124. package/src/node-pool/index.js +21 -12
  125. package/src/node.js +22 -26
  126. package/src/tx/builder/index.js +2 -1
  127. package/src/tx/builder/schema.js +2 -1
  128. package/src/tx/tx.js +147 -143
  129. package/src/tx/validator.js +9 -7
  130. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +1 -3
  131. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +3 -3
  132. package/src/utils/aepp-wallet-communication/schema.js +1 -3
  133. package/src/utils/bignumber.ts +2 -1
  134. package/src/utils/other.ts +1 -1
  135. package/src/utils/semver-satisfies.ts +1 -1
  136. package/src/utils/swagger.js +14 -7
  137. package/src/contract/aci/helpers.js +0 -140
@@ -1,21 +1,3 @@
1
- import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
2
- import _typeof from "@babel/runtime-corejs3/helpers/typeof";
3
-
4
- function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); if (enumerableOnly) { symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
5
-
6
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context4; _forEachInstanceProperty(_context4 = ownKeys(Object(source), true)).call(_context4, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context5; _forEachInstanceProperty(_context5 = ownKeys(Object(source))).call(_context5, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
7
-
8
- import _startsWithInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/starts-with";
9
- import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
10
- import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
11
- import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
12
- import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
13
- import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
14
- import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
15
- import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
16
- import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
17
- import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
18
-
19
1
  /*
20
2
  * ISC License (ISC)
21
3
  * Copyright (c) 2018 aeternity developers
@@ -68,14 +50,14 @@ function isConnected() {
68
50
 
69
51
 
70
52
  function connect(onMessage) {
71
- var origin = this.origin;
72
- var receiveDirection = this.receiveDirection;
73
- var debug = this.debug;
74
- var forceOrigin = this.forceOrigin;
53
+ const origin = this.origin;
54
+ const receiveDirection = this.receiveDirection;
55
+ const debug = this.debug;
56
+ const forceOrigin = this.forceOrigin;
75
57
  if (this.listener) throw new Error('You already connected');
76
58
 
77
- this.listener = function (msg, source) {
78
- if (!msg || _typeof(msg.data) !== 'object') return;
59
+ this.listener = (msg, source) => {
60
+ if (!msg || typeof msg.data !== 'object') return;
79
61
  if (!forceOrigin && origin && origin !== msg.origin) return;
80
62
  if (debug) console.log('Receive message: ', msg);
81
63
 
@@ -114,7 +96,7 @@ function disconnect() {
114
96
 
115
97
 
116
98
  function sendMessage(msg) {
117
- var message = this.sendDirection ? {
99
+ const message = this.sendDirection ? {
118
100
  type: this.sendDirection,
119
101
  data: msg
120
102
  } : msg;
@@ -122,14 +104,10 @@ function sendMessage(msg) {
122
104
  this.postFn(message);
123
105
  }
124
106
 
125
- var getTarget = function getTarget() {
126
- var _context;
127
-
128
- var isExtensionContext = _typeof(getBrowserAPI(true).extension) === 'object';
129
-
130
- var isWeb = window && window.location && _startsWithInstanceProperty(_context = window.location.protocol).call(_context, 'http');
131
-
132
- var isContentScript = isExtensionContext && isWeb;
107
+ const getTarget = () => {
108
+ const isExtensionContext = typeof getBrowserAPI(true).extension === 'object';
109
+ const isWeb = window && window.location && window.location.protocol.startsWith('http');
110
+ const isContentScript = isExtensionContext && isWeb;
133
111
  if (isContentScript) return window; // When we is the main page we need to decide the target by our self
134
112
  // Probably can be implemented some algo for checking DOM for Iframes and somehow decide which Iframe to talk
135
113
 
@@ -153,59 +131,45 @@ var getTarget = function getTarget() {
153
131
 
154
132
 
155
133
  export default stampit({
156
- init: function init() {
157
- var _context2,
158
- _context3,
159
- _this = this;
160
-
161
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
162
- _ref$connectionInfo = _ref.connectionInfo,
163
- connectionInfo = _ref$connectionInfo === void 0 ? {} : _ref$connectionInfo,
164
- _ref$target = _ref.target,
165
- target = _ref$target === void 0 ? getTarget() : _ref$target,
166
- _ref$self = _ref.self,
167
- self = _ref$self === void 0 ? window : _ref$self,
168
- origin = _ref.origin,
169
- sendDirection = _ref.sendDirection,
170
- _ref$receiveDirection = _ref.receiveDirection,
171
- receiveDirection = _ref$receiveDirection === void 0 ? MESSAGE_DIRECTION.to_aepp : _ref$receiveDirection,
172
- _ref$debug = _ref.debug,
173
- debug = _ref$debug === void 0 ? false : _ref$debug,
174
- _ref$forceOrigin = _ref.forceOrigin,
175
- forceOrigin = _ref$forceOrigin === void 0 ? false : _ref$forceOrigin;
176
-
177
- if (sendDirection && !_includesInstanceProperty(_context2 = _Object$keys(MESSAGE_DIRECTION)).call(_context2, sendDirection)) throw new Error("sendDirection must be one of [".concat(_Object$keys(MESSAGE_DIRECTION), "]"));
178
- if (!_includesInstanceProperty(_context3 = _Object$keys(MESSAGE_DIRECTION)).call(_context3, receiveDirection)) throw new Error("receiveDirection must be one of [".concat(_Object$keys(MESSAGE_DIRECTION), "]"));
179
- this.connectionInfo = _objectSpread({
180
- id: uuid()
181
- }, connectionInfo);
182
- var selfP = self;
183
- var targetP = target;
134
+ init() {
135
+ let {
136
+ connectionInfo = {},
137
+ target = getTarget(),
138
+ self = window,
139
+ origin,
140
+ sendDirection,
141
+ receiveDirection = MESSAGE_DIRECTION.to_aepp,
142
+ debug = false,
143
+ forceOrigin = false
144
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
145
+ if (sendDirection && !Object.keys(MESSAGE_DIRECTION).includes(sendDirection)) throw new Error(`sendDirection must be one of [${Object.keys(MESSAGE_DIRECTION)}]`);
146
+ if (!Object.keys(MESSAGE_DIRECTION).includes(receiveDirection)) throw new Error(`receiveDirection must be one of [${Object.keys(MESSAGE_DIRECTION)}]`);
147
+ this.connectionInfo = {
148
+ id: uuid(),
149
+ ...connectionInfo
150
+ };
151
+ const selfP = self;
152
+ const targetP = target;
184
153
  this.origin = origin;
185
154
  this.debug = debug;
186
155
  this.forceOrigin = forceOrigin;
187
156
  this.sendDirection = sendDirection;
188
157
  this.receiveDirection = receiveDirection;
189
158
 
190
- this.subscribeFn = function (listener) {
191
- return selfP.addEventListener('message', listener, false);
192
- };
159
+ this.subscribeFn = listener => selfP.addEventListener('message', listener, false);
193
160
 
194
- this.unsubscribeFn = function (listener) {
195
- return selfP.removeEventListener('message', listener, false);
196
- };
161
+ this.unsubscribeFn = listener => selfP.removeEventListener('message', listener, false);
197
162
 
198
- this.postFn = function (msg) {
199
- return targetP.postMessage(msg, _this.origin || '*');
200
- };
163
+ this.postFn = msg => targetP.postMessage(msg, this.origin || '*');
201
164
 
202
165
  if (!this.connectionInfo.id) throw new Error('ID required.');
203
166
  },
167
+
204
168
  methods: {
205
- connect: connect,
206
- sendMessage: sendMessage,
207
- disconnect: disconnect,
208
- isConnected: isConnected
169
+ connect,
170
+ sendMessage,
171
+ disconnect,
172
+ isConnected
209
173
  }
210
174
  }, WalletConnection);
211
175
  //# sourceMappingURL=browser-window-message.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/utils/aepp-wallet-communication/connection/browser-window-message.js"],"names":["stampit","WalletConnection","v4","uuid","MESSAGE_DIRECTION","getBrowserAPI","isInIframe","isConnected","listener","connect","onMessage","origin","receiveDirection","debug","forceOrigin","Error","msg","source","data","console","log","type","subscribeFn","disconnect","unsubscribeFn","sendMessage","message","sendDirection","postFn","getTarget","isExtensionContext","extension","isWeb","window","location","protocol","isContentScript","parent","undefined","init","connectionInfo","target","self","to_aepp","id","selfP","targetP","addEventListener","removeEventListener","postMessage","methods"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,OAAP,MAAoB,WAApB;AACA,OAAOC,gBAAP,MAA6B,GAA7B;AACA,SAASC,EAAE,IAAIC,IAAf,QAA2B,MAA3B;AACA,SAASC,iBAAT,QAAkC,WAAlC;AACA,SAASC,aAAT,EAAwBC,UAAxB,QAA0C,YAA1C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,WAAT,GAAwB;AACtB,SAAO,KAAKC,QAAZ;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,OAAT,CAAkBC,SAAlB,EAA6B;AAC3B,MAAMC,MAAM,GAAG,KAAKA,MAApB;AACA,MAAMC,gBAAgB,GAAG,KAAKA,gBAA9B;AACA,MAAMC,KAAK,GAAG,KAAKA,KAAnB;AACA,MAAMC,WAAW,GAAG,KAAKA,WAAzB;AACA,MAAI,KAAKN,QAAT,EAAmB,MAAM,IAAIO,KAAJ,CAAU,uBAAV,CAAN;;AAEnB,OAAKP,QAAL,GAAgB,UAACQ,GAAD,EAAMC,MAAN,EAAiB;AAC/B,QAAI,CAACD,GAAD,IAAQ,QAAOA,GAAG,CAACE,IAAX,MAAoB,QAAhC,EAA0C;AAC1C,QAAI,CAACJ,WAAD,IAAgBH,MAAhB,IAA0BA,MAAM,KAAKK,GAAG,CAACL,MAA7C,EAAqD;AACrD,QAAIE,KAAJ,EAAWM,OAAO,CAACC,GAAR,CAAY,mBAAZ,EAAiCJ,GAAjC;;AACX,QAAIA,GAAG,CAACE,IAAJ,CAASG,IAAb,EAAmB;AACjB,UAAIL,GAAG,CAACE,IAAJ,CAASG,IAAT,KAAkBT,gBAAtB,EAAwC;AACxCF,MAAAA,SAAS,CAACM,GAAG,CAACE,IAAJ,CAASA,IAAV,EAAgBF,GAAG,CAACL,MAApB,EAA4BK,GAAG,CAACC,MAAhC,CAAT;AACD,KAHD,MAGO;AACLP,MAAAA,SAAS,CAACM,GAAG,CAACE,IAAL,EAAWF,GAAG,CAACL,MAAf,EAAuBK,GAAG,CAACC,MAA3B,CAAT;AACD;AACF,GAVD;;AAWA,OAAKK,WAAL,CAAiB,KAAKd,QAAtB;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASe,UAAT,GAAuB;AACrB,MAAI,CAAC,KAAKf,QAAV,EAAoB,MAAM,IAAIO,KAAJ,CAAU,iDAAV,CAAN;AACpB,OAAKS,aAAL,CAAmB,KAAKhB,QAAxB;AACA,OAAKA,QAAL,GAAgB,IAAhB;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASiB,WAAT,CAAsBT,GAAtB,EAA2B;AACzB,MAAMU,OAAO,GAAG,KAAKC,aAAL,GAAqB;AAAEN,IAAAA,IAAI,EAAE,KAAKM,aAAb;AAA4BT,IAAAA,IAAI,EAAEF;AAAlC,GAArB,GAA+DA,GAA/E;AACA,MAAI,KAAKH,KAAT,EAAgBM,OAAO,CAACC,GAAR,CAAY,gBAAZ,EAA8BM,OAA9B;AAChB,OAAKE,MAAL,CAAYF,OAAZ;AACD;;AAED,IAAMG,SAAS,GAAG,SAAZA,SAAY,GAAM;AAAA;;AACtB,MAAMC,kBAAkB,GAAG,QAAOzB,aAAa,CAAC,IAAD,CAAb,CAAoB0B,SAA3B,MAAyC,QAApE;;AACA,MAAMC,KAAK,GAAGC,MAAM,IAAIA,MAAM,CAACC,QAAjB,IAA6B,uCAAAD,MAAM,CAACC,QAAP,CAAgBC,QAAhB,iBAAoC,MAApC,CAA3C;;AACA,MAAMC,eAAe,GAAGN,kBAAkB,IAAIE,KAA9C;AACA,MAAII,eAAJ,EAAqB,OAAOH,MAAP,CAJC,CAKtB;AACA;;AACA,SAAO3B,UAAU,KAAK2B,MAAM,CAACI,MAAZ,GAAqBC,SAAtC;AACD,CARD;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAetC,OAAO,CAAC;AACrBuC,EAAAA,IADqB,kBAC6J;AAAA;AAAA;AAAA;;AAAA,mFAAJ,EAAI;AAAA,mCAA1KC,cAA0K;AAAA,QAA1KA,cAA0K,oCAAzJ,EAAyJ;AAAA,2BAArJC,MAAqJ;AAAA,QAArJA,MAAqJ,4BAA5IZ,SAAS,EAAmI;AAAA,yBAA/Ha,IAA+H;AAAA,QAA/HA,IAA+H,0BAAxHT,MAAwH;AAAA,QAAhHtB,MAAgH,QAAhHA,MAAgH;AAAA,QAAxGgB,aAAwG,QAAxGA,aAAwG;AAAA,qCAAzFf,gBAAyF;AAAA,QAAzFA,gBAAyF,sCAAtER,iBAAiB,CAACuC,OAAoD;AAAA,0BAA3C9B,KAA2C;AAAA,QAA3CA,KAA2C,2BAAnC,KAAmC;AAAA,gCAA5BC,WAA4B;AAAA,QAA5BA,WAA4B,iCAAd,KAAc;;AAChL,QAAIa,aAAa,IAAI,CAAC,mDAAYvB,iBAAZ,mBAAwCuB,aAAxC,CAAtB,EAA8E,MAAM,IAAIZ,KAAJ,yCAA2C,aAAYX,iBAAZ,CAA3C,OAAN;AAC9E,QAAI,CAAC,mDAAYA,iBAAZ,mBAAwCQ,gBAAxC,CAAL,EAAgE,MAAM,IAAIG,KAAJ,4CAA8C,aAAYX,iBAAZ,CAA9C,OAAN;AAChE,SAAKoC,cAAL;AAAwBI,MAAAA,EAAE,EAAEzC,IAAI;AAAhC,OAAuCqC,cAAvC;AAEA,QAAMK,KAAK,GAAGH,IAAd;AACA,QAAMI,OAAO,GAAGL,MAAhB;AACA,SAAK9B,MAAL,GAAcA,MAAd;AACA,SAAKE,KAAL,GAAaA,KAAb;AACA,SAAKC,WAAL,GAAmBA,WAAnB;AACA,SAAKa,aAAL,GAAqBA,aAArB;AACA,SAAKf,gBAAL,GAAwBA,gBAAxB;;AACA,SAAKU,WAAL,GAAmB,UAACd,QAAD;AAAA,aAAcqC,KAAK,CAACE,gBAAN,CAAuB,SAAvB,EAAkCvC,QAAlC,EAA4C,KAA5C,CAAd;AAAA,KAAnB;;AACA,SAAKgB,aAAL,GAAqB,UAAChB,QAAD;AAAA,aAAcqC,KAAK,CAACG,mBAAN,CAA0B,SAA1B,EAAqCxC,QAArC,EAA+C,KAA/C,CAAd;AAAA,KAArB;;AACA,SAAKoB,MAAL,GAAc,UAACZ,GAAD;AAAA,aAAS8B,OAAO,CAACG,WAAR,CAAoBjC,GAApB,EAAyB,KAAI,CAACL,MAAL,IAAe,GAAxC,CAAT;AAAA,KAAd;;AACA,QAAI,CAAC,KAAK6B,cAAL,CAAoBI,EAAzB,EAA6B,MAAM,IAAI7B,KAAJ,CAAU,cAAV,CAAN;AAC9B,GAjBoB;AAkBrBmC,EAAAA,OAAO,EAAE;AAAEzC,IAAAA,OAAO,EAAPA,OAAF;AAAWgB,IAAAA,WAAW,EAAXA,WAAX;AAAwBF,IAAAA,UAAU,EAAVA,UAAxB;AAAoChB,IAAAA,WAAW,EAAXA;AAApC;AAlBY,CAAD,EAmBnBN,gBAnBmB,CAAtB","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Browser window Post Message connector module\n *\n * This is the complement to {@link module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection}.\n * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-window-message\n * @export BrowserWindowMessageConnection\n * @example import BrowserWindowMessageConnection from '@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-window-message'\n */\nimport stampit from '@stamp/it'\nimport WalletConnection from '.'\nimport { v4 as uuid } from 'uuid'\nimport { MESSAGE_DIRECTION } from '../schema'\nimport { getBrowserAPI, isInIframe } from '../helpers'\n\n/**\n * Check if connected\n * @function isConnected\n * @instance\n * @rtype () => Boolean\n * @return {Boolean} Is connected\n */\nfunction isConnected () {\n return this.listener\n}\n\n/**\n * Connect\n * @function connect\n * @instance\n * @rtype (onMessage: Function) => void\n * @param {Function} onMessage - Message handler\n * @return {void}\n */\nfunction connect (onMessage) {\n const origin = this.origin\n const receiveDirection = this.receiveDirection\n const debug = this.debug\n const forceOrigin = this.forceOrigin\n if (this.listener) throw new Error('You already connected')\n\n this.listener = (msg, source) => {\n if (!msg || typeof msg.data !== 'object') return\n if (!forceOrigin && origin && origin !== msg.origin) return\n if (debug) console.log('Receive message: ', msg)\n if (msg.data.type) {\n if (msg.data.type !== receiveDirection) return\n onMessage(msg.data.data, msg.origin, msg.source)\n } else {\n onMessage(msg.data, msg.origin, msg.source)\n }\n }\n this.subscribeFn(this.listener)\n}\n\n/**\n * Disconnect\n * @function disconnect\n * @instance\n * @rtype () => void\n * @return {void}\n */\nfunction disconnect () {\n if (!this.listener) throw new Error('You dont have connection. Please connect before')\n this.unsubscribeFn(this.listener)\n this.listener = null\n}\n\n/**\n * Send message\n * @function sendMessage\n * @instance\n * @rtype (msg: Object) => void\n * @param {Object} msg - Message\n * @return {void}\n */\nfunction sendMessage (msg) {\n const message = this.sendDirection ? { type: this.sendDirection, data: msg } : msg\n if (this.debug) console.log('Send message: ', message)\n this.postFn(message)\n}\n\nconst getTarget = () => {\n const isExtensionContext = typeof getBrowserAPI(true).extension === 'object'\n const isWeb = window && window.location && window.location.protocol.startsWith('http')\n const isContentScript = isExtensionContext && isWeb\n if (isContentScript) return window\n // When we is the main page we need to decide the target by our self\n // Probably can be implemented some algo for checking DOM for Iframes and somehow decide which Iframe to talk\n return isInIframe() ? window.parent : undefined\n}\n\n/**\n * BrowserWindowMessageConnection\n * @function\n * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-window-message\n * @rtype Stamp\n * @param {Object} [params={}] - Initializer object\n * @param {Object} [params.target=window.parent] - Target window for message\n * @param {Object} [params.self=window] - Host window for message\n * @param {Object} [params.origin] - Origin of receiver\n * @param {Object} [params.sendDirection] - Optional field for wrapping messages in additional structure({ type: 'to_aepp' || 'to_waellet', data }).Used for handling messages netween content script and page\n * @param {Object} [params.receiveDirection='to_aepp'] - Optional(default: 'to_aepp') field for unwrapping messages from additional structure({ type: 'to_aepp' || 'to_waellet', data }).Used for handling messages netween content script and page\n * @param {Object} [params.connectionInfo={}] - Connection info object\n * @param {Boolean} [params.debug=false] - Debug flag\n * @return {Object}\n */\nexport default stampit({\n init ({ connectionInfo = {}, target = getTarget(), self = window, origin, sendDirection, receiveDirection = MESSAGE_DIRECTION.to_aepp, debug = false, forceOrigin = false } = {}) {\n if (sendDirection && !Object.keys(MESSAGE_DIRECTION).includes(sendDirection)) throw new Error(`sendDirection must be one of [${Object.keys(MESSAGE_DIRECTION)}]`)\n if (!Object.keys(MESSAGE_DIRECTION).includes(receiveDirection)) throw new Error(`receiveDirection must be one of [${Object.keys(MESSAGE_DIRECTION)}]`)\n this.connectionInfo = { id: uuid(), ...connectionInfo }\n\n const selfP = self\n const targetP = target\n this.origin = origin\n this.debug = debug\n this.forceOrigin = forceOrigin\n this.sendDirection = sendDirection\n this.receiveDirection = receiveDirection\n this.subscribeFn = (listener) => selfP.addEventListener('message', listener, false)\n this.unsubscribeFn = (listener) => selfP.removeEventListener('message', listener, false)\n this.postFn = (msg) => targetP.postMessage(msg, this.origin || '*')\n if (!this.connectionInfo.id) throw new Error('ID required.')\n },\n methods: { connect, sendMessage, disconnect, isConnected }\n}, WalletConnection)\n"],"file":"browser-window-message.js"}
1
+ {"version":3,"sources":["../../../../src/utils/aepp-wallet-communication/connection/browser-window-message.js"],"names":["stampit","WalletConnection","v4","uuid","MESSAGE_DIRECTION","getBrowserAPI","isInIframe","isConnected","listener","connect","onMessage","origin","receiveDirection","debug","forceOrigin","Error","msg","source","data","console","log","type","subscribeFn","disconnect","unsubscribeFn","sendMessage","message","sendDirection","postFn","getTarget","isExtensionContext","extension","isWeb","window","location","protocol","startsWith","isContentScript","parent","undefined","init","connectionInfo","target","self","to_aepp","Object","keys","includes","id","selfP","targetP","addEventListener","removeEventListener","postMessage","methods"],"mappings":"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","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Browser window Post Message connector module\n *\n * This is the complement to {@link module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection}.\n * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-window-message\n * @export BrowserWindowMessageConnection\n * @example import BrowserWindowMessageConnection from '@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-window-message'\n */\nimport stampit from '@stamp/it'\nimport WalletConnection from '.'\nimport { v4 as uuid } from 'uuid'\nimport { MESSAGE_DIRECTION } from '../schema'\nimport { getBrowserAPI, isInIframe } from '../helpers'\n\n/**\n * Check if connected\n * @function isConnected\n * @instance\n * @rtype () => Boolean\n * @return {Boolean} Is connected\n */\nfunction isConnected () {\n return this.listener\n}\n\n/**\n * Connect\n * @function connect\n * @instance\n * @rtype (onMessage: Function) => void\n * @param {Function} onMessage - Message handler\n * @return {void}\n */\nfunction connect (onMessage) {\n const origin = this.origin\n const receiveDirection = this.receiveDirection\n const debug = this.debug\n const forceOrigin = this.forceOrigin\n if (this.listener) throw new Error('You already connected')\n\n this.listener = (msg, source) => {\n if (!msg || typeof msg.data !== 'object') return\n if (!forceOrigin && origin && origin !== msg.origin) return\n if (debug) console.log('Receive message: ', msg)\n if (msg.data.type) {\n if (msg.data.type !== receiveDirection) return\n onMessage(msg.data.data, msg.origin, msg.source)\n } else {\n onMessage(msg.data, msg.origin, msg.source)\n }\n }\n this.subscribeFn(this.listener)\n}\n\n/**\n * Disconnect\n * @function disconnect\n * @instance\n * @rtype () => void\n * @return {void}\n */\nfunction disconnect () {\n if (!this.listener) throw new Error('You dont have connection. Please connect before')\n this.unsubscribeFn(this.listener)\n this.listener = null\n}\n\n/**\n * Send message\n * @function sendMessage\n * @instance\n * @rtype (msg: Object) => void\n * @param {Object} msg - Message\n * @return {void}\n */\nfunction sendMessage (msg) {\n const message = this.sendDirection ? { type: this.sendDirection, data: msg } : msg\n if (this.debug) console.log('Send message: ', message)\n this.postFn(message)\n}\n\nconst getTarget = () => {\n const isExtensionContext = typeof getBrowserAPI(true).extension === 'object'\n const isWeb = window && window.location && window.location.protocol.startsWith('http')\n const isContentScript = isExtensionContext && isWeb\n if (isContentScript) return window\n // When we is the main page we need to decide the target by our self\n // Probably can be implemented some algo for checking DOM for Iframes and somehow decide which Iframe to talk\n return isInIframe() ? window.parent : undefined\n}\n\n/**\n * BrowserWindowMessageConnection\n * @function\n * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-window-message\n * @rtype Stamp\n * @param {Object} [params={}] - Initializer object\n * @param {Object} [params.target=window.parent] - Target window for message\n * @param {Object} [params.self=window] - Host window for message\n * @param {Object} [params.origin] - Origin of receiver\n * @param {Object} [params.sendDirection] - Optional field for wrapping messages in additional structure({ type: 'to_aepp' || 'to_waellet', data }).Used for handling messages netween content script and page\n * @param {Object} [params.receiveDirection='to_aepp'] - Optional(default: 'to_aepp') field for unwrapping messages from additional structure({ type: 'to_aepp' || 'to_waellet', data }).Used for handling messages netween content script and page\n * @param {Object} [params.connectionInfo={}] - Connection info object\n * @param {Boolean} [params.debug=false] - Debug flag\n * @return {Object}\n */\nexport default stampit({\n init ({ connectionInfo = {}, target = getTarget(), self = window, origin, sendDirection, receiveDirection = MESSAGE_DIRECTION.to_aepp, debug = false, forceOrigin = false } = {}) {\n if (sendDirection && !Object.keys(MESSAGE_DIRECTION).includes(sendDirection)) throw new Error(`sendDirection must be one of [${Object.keys(MESSAGE_DIRECTION)}]`)\n if (!Object.keys(MESSAGE_DIRECTION).includes(receiveDirection)) throw new Error(`receiveDirection must be one of [${Object.keys(MESSAGE_DIRECTION)}]`)\n this.connectionInfo = { id: uuid(), ...connectionInfo }\n\n const selfP = self\n const targetP = target\n this.origin = origin\n this.debug = debug\n this.forceOrigin = forceOrigin\n this.sendDirection = sendDirection\n this.receiveDirection = receiveDirection\n this.subscribeFn = (listener) => selfP.addEventListener('message', listener, false)\n this.unsubscribeFn = (listener) => selfP.removeEventListener('message', listener, false)\n this.postFn = (msg) => targetP.postMessage(msg, this.origin || '*')\n if (!this.connectionInfo.id) throw new Error('ID required.')\n },\n methods: { connect, sendMessage, disconnect, isConnected }\n}, WalletConnection)\n"],"file":"browser-window-message.js"}
@@ -31,18 +31,15 @@ import stampit from '@stamp/it';
31
31
  */
32
32
 
33
33
  function run() {
34
- var _this = this;
34
+ const allowCrossOrigin = this.allowCrossOrigin; // Connect to extension using runtime
35
35
 
36
- var allowCrossOrigin = this.allowCrossOrigin; // Connect to extension using runtime
37
-
38
- this.extConnection.connect(function (msg) {
39
- _this.pageConnection.sendMessage(msg);
36
+ this.extConnection.connect(msg => {
37
+ this.pageConnection.sendMessage(msg);
40
38
  }); // Connect to page using window.postMessage
41
39
 
42
- this.pageConnection.connect(function (msg, origin, source) {
40
+ this.pageConnection.connect((msg, origin, source) => {
43
41
  if (!allowCrossOrigin && source !== window) return;
44
-
45
- _this.extConnection.sendMessage(msg);
42
+ this.extConnection.sendMessage(msg);
46
43
  });
47
44
  }
48
45
  /**
@@ -72,11 +69,12 @@ function stop() {
72
69
 
73
70
 
74
71
  export default stampit({
75
- init: function init(_ref) {
76
- var pageConnection = _ref.pageConnection,
77
- extConnection = _ref.extConnection,
78
- _ref$allowCrossOrigin = _ref.allowCrossOrigin,
79
- allowCrossOrigin = _ref$allowCrossOrigin === void 0 ? false : _ref$allowCrossOrigin;
72
+ init(_ref) {
73
+ let {
74
+ pageConnection,
75
+ extConnection,
76
+ allowCrossOrigin = false
77
+ } = _ref;
80
78
  if (!window) throw new Error('Window object not found, you can run bridge only in browser');
81
79
  if (!pageConnection) throw new Error('pageConnection required');
82
80
  if (!extConnection) throw new Error('extConnection required');
@@ -84,9 +82,10 @@ export default stampit({
84
82
  this.pageConnection = pageConnection;
85
83
  this.extConnection = extConnection;
86
84
  },
85
+
87
86
  methods: {
88
- run: run,
89
- stop: stop
87
+ run,
88
+ stop
90
89
  }
91
90
  });
92
91
  //# sourceMappingURL=content-script-bridge.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/aepp-wallet-communication/content-script-bridge.js"],"names":["stampit","run","allowCrossOrigin","extConnection","connect","msg","pageConnection","sendMessage","origin","source","window","stop","disconnect","init","Error","methods"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,OAAP,MAAoB,WAApB;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,GAAT,GAAgB;AAAA;;AACd,MAAMC,gBAAgB,GAAG,KAAKA,gBAA9B,CADc,CAEd;;AACA,OAAKC,aAAL,CAAmBC,OAAnB,CAA2B,UAACC,GAAD,EAAS;AAClC,IAAA,KAAI,CAACC,cAAL,CAAoBC,WAApB,CAAgCF,GAAhC;AACD,GAFD,EAHc,CAMd;;AACA,OAAKC,cAAL,CAAoBF,OAApB,CAA4B,UAACC,GAAD,EAAMG,MAAN,EAAcC,MAAd,EAAyB;AACnD,QAAI,CAACP,gBAAD,IAAqBO,MAAM,KAAKC,MAApC,EAA4C;;AAC5C,IAAA,KAAI,CAACP,aAAL,CAAmBI,WAAnB,CAA+BF,GAA/B;AACD,GAHD;AAID;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASM,IAAT,GAAiB;AACf,OAAKR,aAAL,CAAmBS,UAAnB;AACA,OAAKN,cAAL,CAAoBM,UAApB;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAeZ,OAAO,CAAC;AACrBa,EAAAA,IADqB,sBAC8C;AAAA,QAA3DP,cAA2D,QAA3DA,cAA2D;AAAA,QAA3CH,aAA2C,QAA3CA,aAA2C;AAAA,qCAA5BD,gBAA4B;AAAA,QAA5BA,gBAA4B,sCAAT,KAAS;AACjE,QAAI,CAACQ,MAAL,EAAa,MAAM,IAAII,KAAJ,CAAU,6DAAV,CAAN;AACb,QAAI,CAACR,cAAL,EAAqB,MAAM,IAAIQ,KAAJ,CAAU,yBAAV,CAAN;AACrB,QAAI,CAACX,aAAL,EAAoB,MAAM,IAAIW,KAAJ,CAAU,wBAAV,CAAN;AACpB,SAAKZ,gBAAL,GAAwBA,gBAAxB;AACA,SAAKI,cAAL,GAAsBA,cAAtB;AACA,SAAKH,aAAL,GAAqBA,aAArB;AACD,GARoB;AASrBY,EAAAA,OAAO,EAAE;AAAEd,IAAAA,GAAG,EAAHA,GAAF;AAAOU,IAAAA,IAAI,EAAJA;AAAP;AATY,CAAD,CAAtB","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Content Script Bridge module\n *\n * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/content-script-bridge\n * @export ContentScriptBridge\n * @example import ContentScriptBridge from '@aeternity/aepp-sdk/es/utils/wallet-communication/content-script-bridge\n */\nimport stampit from '@stamp/it'\n\n/**\n * Start message proxy\n * @function run\n * @instance\n * @return {void}\n */\nfunction run () {\n const allowCrossOrigin = this.allowCrossOrigin\n // Connect to extension using runtime\n this.extConnection.connect((msg) => {\n this.pageConnection.sendMessage(msg)\n })\n // Connect to page using window.postMessage\n this.pageConnection.connect((msg, origin, source) => {\n if (!allowCrossOrigin && source !== window) return\n this.extConnection.sendMessage(msg)\n })\n}\n\n/**\n * Stop message proxy\n * @function stop\n * @instance\n * @return {void}\n */\nfunction stop () {\n this.extConnection.disconnect()\n this.pageConnection.disconnect()\n}\n\n/**\n * ContentScriptBridge stamp\n * Provide functionality to easly redirect messages from page to extension and from extension to page through content script\n * Using Runtime(Extension) and WindowPostMessage(Web-Page) connections\n * @function\n * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/content-script-bridge\n * @rtype Stamp\n * @param {Object} params - Initializer object\n * @param {Object} params.pageConnection - Page connection object(@link module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-window-message)\n * @param {Object} params.extConnection - Extension connection object(module: @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-runtime)\n * @return {Object}\n */\nexport default stampit({\n init ({ pageConnection, extConnection, allowCrossOrigin = false }) {\n if (!window) throw new Error('Window object not found, you can run bridge only in browser')\n if (!pageConnection) throw new Error('pageConnection required')\n if (!extConnection) throw new Error('extConnection required')\n this.allowCrossOrigin = allowCrossOrigin\n this.pageConnection = pageConnection\n this.extConnection = extConnection\n },\n methods: { run, stop }\n})\n"],"file":"content-script-bridge.js"}
1
+ {"version":3,"sources":["../../../src/utils/aepp-wallet-communication/content-script-bridge.js"],"names":["stampit","run","allowCrossOrigin","extConnection","connect","msg","pageConnection","sendMessage","origin","source","window","stop","disconnect","init","Error","methods"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,OAAP,MAAoB,WAApB;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,GAAT,GAAgB;AACd,QAAMC,gBAAgB,GAAG,KAAKA,gBAA9B,CADc,CAEd;;AACA,OAAKC,aAAL,CAAmBC,OAAnB,CAA4BC,GAAD,IAAS;AAClC,SAAKC,cAAL,CAAoBC,WAApB,CAAgCF,GAAhC;AACD,GAFD,EAHc,CAMd;;AACA,OAAKC,cAAL,CAAoBF,OAApB,CAA4B,CAACC,GAAD,EAAMG,MAAN,EAAcC,MAAd,KAAyB;AACnD,QAAI,CAACP,gBAAD,IAAqBO,MAAM,KAAKC,MAApC,EAA4C;AAC5C,SAAKP,aAAL,CAAmBI,WAAnB,CAA+BF,GAA/B;AACD,GAHD;AAID;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASM,IAAT,GAAiB;AACf,OAAKR,aAAL,CAAmBS,UAAnB;AACA,OAAKN,cAAL,CAAoBM,UAApB;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAeZ,OAAO,CAAC;AACrBa,EAAAA,IAAI,OAA+D;AAAA,QAA7D;AAAEP,MAAAA,cAAF;AAAkBH,MAAAA,aAAlB;AAAiCD,MAAAA,gBAAgB,GAAG;AAApD,KAA6D;AACjE,QAAI,CAACQ,MAAL,EAAa,MAAM,IAAII,KAAJ,CAAU,6DAAV,CAAN;AACb,QAAI,CAACR,cAAL,EAAqB,MAAM,IAAIQ,KAAJ,CAAU,yBAAV,CAAN;AACrB,QAAI,CAACX,aAAL,EAAoB,MAAM,IAAIW,KAAJ,CAAU,wBAAV,CAAN;AACpB,SAAKZ,gBAAL,GAAwBA,gBAAxB;AACA,SAAKI,cAAL,GAAsBA,cAAtB;AACA,SAAKH,aAAL,GAAqBA,aAArB;AACD,GARoB;;AASrBY,EAAAA,OAAO,EAAE;AAAEd,IAAAA,GAAF;AAAOU,IAAAA;AAAP;AATY,CAAD,CAAtB","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Content Script Bridge module\n *\n * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/content-script-bridge\n * @export ContentScriptBridge\n * @example import ContentScriptBridge from '@aeternity/aepp-sdk/es/utils/wallet-communication/content-script-bridge\n */\nimport stampit from '@stamp/it'\n\n/**\n * Start message proxy\n * @function run\n * @instance\n * @return {void}\n */\nfunction run () {\n const allowCrossOrigin = this.allowCrossOrigin\n // Connect to extension using runtime\n this.extConnection.connect((msg) => {\n this.pageConnection.sendMessage(msg)\n })\n // Connect to page using window.postMessage\n this.pageConnection.connect((msg, origin, source) => {\n if (!allowCrossOrigin && source !== window) return\n this.extConnection.sendMessage(msg)\n })\n}\n\n/**\n * Stop message proxy\n * @function stop\n * @instance\n * @return {void}\n */\nfunction stop () {\n this.extConnection.disconnect()\n this.pageConnection.disconnect()\n}\n\n/**\n * ContentScriptBridge stamp\n * Provide functionality to easly redirect messages from page to extension and from extension to page through content script\n * Using Runtime(Extension) and WindowPostMessage(Web-Page) connections\n * @function\n * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/content-script-bridge\n * @rtype Stamp\n * @param {Object} params - Initializer object\n * @param {Object} params.pageConnection - Page connection object(@link module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-window-message)\n * @param {Object} params.extConnection - Extension connection object(module: @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-runtime)\n * @return {Object}\n */\nexport default stampit({\n init ({ pageConnection, extConnection, allowCrossOrigin = false }) {\n if (!window) throw new Error('Window object not found, you can run bridge only in browser')\n if (!pageConnection) throw new Error('pageConnection required')\n if (!extConnection) throw new Error('extConnection required')\n this.allowCrossOrigin = allowCrossOrigin\n this.pageConnection = pageConnection\n this.extConnection = extConnection\n },\n methods: { run, stop }\n})\n"],"file":"content-script-bridge.js"}
@@ -1,30 +1,13 @@
1
- import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
2
- import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
3
- import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
4
- import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
5
- import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
6
- import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
7
- import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
8
- import _typeof from "@babel/runtime-corejs3/helpers/typeof";
9
- import _asyncToGenerator from "@babel/runtime-corejs3/helpers/asyncToGenerator";
10
- import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
11
- import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
12
- import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
13
- import _regeneratorRuntime from "@babel/runtime-corejs3/regenerator";
14
-
15
- function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); if (enumerableOnly) { symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
16
-
17
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context3; _forEachInstanceProperty(_context3 = ownKeys(Object(source), true)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context4; _forEachInstanceProperty(_context4 = ownKeys(Object(source))).call(_context4, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
18
-
19
1
  /**
20
2
  * Browser helper functions
21
3
  */
22
4
  import { isAccountBase } from '../../account/base';
23
- export var getBrowserAPI = function getBrowserAPI() {
24
- var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
25
- var _window = window,
26
- chrome = _window.chrome,
27
- browser = _window.browser; // Chrome, Opera support
5
+ export const getBrowserAPI = function () {
6
+ let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
7
+ const {
8
+ chrome,
9
+ browser
10
+ } = window; // Chrome, Opera support
28
11
 
29
12
  if (typeof chrome !== 'undefined' && chrome === Object(chrome)) return chrome; // Firefox support
30
13
 
@@ -32,114 +15,86 @@ export var getBrowserAPI = function getBrowserAPI() {
32
15
  if (!force) throw new Error('Browser is not detected');
33
16
  return {};
34
17
  };
35
- export var isInIframe = function isInIframe() {
36
- return window !== window.parent;
37
- };
18
+ export const isInIframe = () => window !== window.parent;
38
19
  /**
39
20
  * RPC helper functions
40
21
  */
41
22
 
42
- export var sendMessage = function sendMessage(connection) {
43
- var messageId = 0;
23
+ export const sendMessage = connection => {
24
+ let messageId = 0;
44
25
  return function (_ref) {
45
- var id = _ref.id,
46
- method = _ref.method,
47
- params = _ref.params,
48
- result = _ref.result,
49
- error = _ref.error;
50
- var isNotificationOrResponse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
26
+ let {
27
+ id,
28
+ method,
29
+ params,
30
+ result,
31
+ error
32
+ } = _ref;
33
+ let isNotificationOrResponse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
51
34
  // Increment id for each request
52
35
  isNotificationOrResponse || (messageId += 1);
53
36
  id = isNotificationOrResponse ? id || null : messageId;
54
- var msgData = params ? {
55
- params: params
37
+ const msgData = params ? {
38
+ params
56
39
  } : result ? {
57
- result: result
40
+ result
58
41
  } : {
59
- error: error
42
+ error
60
43
  };
61
- connection.sendMessage(_objectSpread(_objectSpread({
62
- jsonrpc: '2.0'
63
- }, id ? {
64
- id: id
65
- } : {}), {}, {
66
- method: method
67
- }, msgData));
44
+ connection.sendMessage({
45
+ jsonrpc: '2.0',
46
+ ...(id ? {
47
+ id
48
+ } : {}),
49
+ method,
50
+ ...msgData
51
+ });
68
52
  return id;
69
53
  };
70
54
  };
71
- export var getHandler = function getHandler(schema, msg) {
72
- var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
73
- _ref2$debug = _ref2.debug,
74
- debug = _ref2$debug === void 0 ? false : _ref2$debug;
75
-
76
- var handler = schema[msg.method];
55
+ export const getHandler = function (schema, msg) {
56
+ let {
57
+ debug = false
58
+ } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
59
+ const handler = schema[msg.method];
77
60
 
78
61
  if (!handler || typeof handler !== 'function') {
79
- debug && console.log("Unknown message method ".concat(msg.method));
80
- return function () {
81
- return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
82
- return _regeneratorRuntime.wrap(function _callee$(_context) {
83
- while (1) {
84
- switch (_context.prev = _context.next) {
85
- case 0:
86
- return _context.abrupt("return", true);
87
-
88
- case 1:
89
- case "end":
90
- return _context.stop();
91
- }
92
- }
93
- }, _callee);
94
- }));
95
- };
62
+ debug && console.log(`Unknown message method ${msg.method}`);
63
+ return () => async () => true;
96
64
  }
97
65
 
98
66
  return handler;
99
67
  };
100
- export var message = function message(method) {
101
- var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
68
+ export const message = function (method) {
69
+ let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
102
70
  return {
103
- method: method,
104
- params: params
71
+ method,
72
+ params
105
73
  };
106
74
  };
107
- export var responseMessage = function responseMessage(id, method) {
108
- var _ref4 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
109
- error = _ref4.error,
110
- result = _ref4.result;
111
-
112
- return _objectSpread({
113
- id: id,
114
- method: method
115
- }, error ? {
116
- error: error
117
- } : {
118
- result: result
119
- });
120
- };
121
- export var sendResponseMessage = function sendResponseMessage(client) {
122
- return function (id, method, data) {
123
- return client.sendMessage(responseMessage(id, method, data), true);
75
+ export const responseMessage = function (id, method) {
76
+ let {
77
+ error,
78
+ result
79
+ } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
80
+ return {
81
+ id,
82
+ method,
83
+ ...(error ? {
84
+ error
85
+ } : {
86
+ result
87
+ })
124
88
  };
125
89
  };
126
- export var voidFn = function voidFn() {
127
- return undefined;
128
- };
129
- export var isValidAccounts = function isValidAccounts(accounts) {
130
- var _context2;
131
-
132
- return _filterInstanceProperty(_context2 = ['', 'connected', 'current']).call(_context2, function (k) {
133
- return _typeof(k ? accounts[k] : accounts) === 'object';
134
- }).length === 3;
135
- };
136
- export var resolveOnAccount = function resolveOnAccount(addresses, onAccount) {
137
- var opt = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
90
+ export const sendResponseMessage = client => (id, method, data) => client.sendMessage(responseMessage(id, method, data), true);
91
+ export const voidFn = () => undefined;
92
+ export const isValidAccounts = accounts => ['', 'connected', 'current'].filter(k => typeof (k ? accounts[k] : accounts) === 'object').length === 3;
93
+ export const resolveOnAccount = function (addresses, onAccount) {
94
+ let opt = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
138
95
 
139
- if (!_findInstanceProperty(addresses).call(addresses, function (a) {
140
- return a === onAccount;
141
- })) {
142
- if (_typeof(opt.onAccount) !== 'object' || !isAccountBase(opt.onAccount)) throw new Error('Provided onAccount should be an AccountBase');
96
+ if (!addresses.find(a => a === onAccount)) {
97
+ if (typeof opt.onAccount !== 'object' || !isAccountBase(opt.onAccount)) throw new Error('Provided onAccount should be an AccountBase');
143
98
  onAccount = opt.onAccount;
144
99
  }
145
100
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/aepp-wallet-communication/helpers.js"],"names":["isAccountBase","getBrowserAPI","force","window","chrome","browser","Object","Error","isInIframe","parent","sendMessage","connection","messageId","id","method","params","result","error","isNotificationOrResponse","msgData","jsonrpc","getHandler","schema","msg","debug","handler","console","log","message","responseMessage","sendResponseMessage","client","data","voidFn","undefined","isValidAccounts","accounts","k","length","resolveOnAccount","addresses","onAccount","opt","a"],"mappings":"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","sourcesContent":["/**\n * Browser helper functions\n */\nimport { isAccountBase } from '../../account/base'\n\nexport const getBrowserAPI = (force = false) => {\n const { chrome, browser } = window\n // Chrome, Opera support\n if (typeof chrome !== 'undefined' && chrome === Object(chrome)) return chrome\n // Firefox support\n if (typeof browser !== 'undefined' && browser === Object(browser)) return browser\n if (!force) throw new Error('Browser is not detected')\n return {}\n}\n\nexport const isInIframe = () => window !== window.parent\n\n/**\n * RPC helper functions\n */\nexport const sendMessage = (connection) => {\n let messageId = 0\n\n return ({ id, method, params, result, error }, isNotificationOrResponse = false) => {\n // Increment id for each request\n isNotificationOrResponse || (messageId += 1)\n id = isNotificationOrResponse ? (id || null) : messageId\n const msgData = params\n ? { params }\n : result\n ? { result }\n : { error }\n connection.sendMessage({\n jsonrpc: '2.0',\n ...id ? { id } : {},\n method,\n ...msgData\n })\n return id\n }\n}\n\nexport const getHandler = (schema, msg, { debug = false } = {}) => {\n const handler = schema[msg.method]\n if (!handler || typeof handler !== 'function') {\n debug && console.log(`Unknown message method ${msg.method}`)\n return () => async () => true\n }\n return handler\n}\n\nexport const message = (method, params = {}) => ({ method, params })\n\nexport const responseMessage = (id, method, { error, result } = {}) => ({ id, method, ...(error ? { error } : { result }) })\n\nexport const sendResponseMessage = (client) => (id, method, data) => client.sendMessage(responseMessage(id, method, data), true)\n\nexport const voidFn = () => undefined\n\nexport const isValidAccounts = (accounts) => (['', 'connected', 'current'].filter(k => typeof (k ? accounts[k] : accounts) === 'object')).length === 3\n\nexport const resolveOnAccount = (addresses, onAccount, opt = {}) => {\n if (!addresses.find(a => a === onAccount)) {\n if (typeof opt.onAccount !== 'object' || !isAccountBase(opt.onAccount)) throw new Error('Provided onAccount should be an AccountBase')\n onAccount = opt.onAccount\n }\n return onAccount\n}\n"],"file":"helpers.js"}
1
+ {"version":3,"sources":["../../../src/utils/aepp-wallet-communication/helpers.js"],"names":["isAccountBase","getBrowserAPI","force","chrome","browser","window","Object","Error","isInIframe","parent","sendMessage","connection","messageId","id","method","params","result","error","isNotificationOrResponse","msgData","jsonrpc","getHandler","schema","msg","debug","handler","console","log","message","responseMessage","sendResponseMessage","client","data","voidFn","undefined","isValidAccounts","accounts","filter","k","length","resolveOnAccount","addresses","onAccount","opt","find","a"],"mappings":"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","sourcesContent":["/**\n * Browser helper functions\n */\nimport { isAccountBase } from '../../account/base'\n\nexport const getBrowserAPI = (force = false) => {\n const { chrome, browser } = window\n // Chrome, Opera support\n if (typeof chrome !== 'undefined' && chrome === Object(chrome)) return chrome\n // Firefox support\n if (typeof browser !== 'undefined' && browser === Object(browser)) return browser\n if (!force) throw new Error('Browser is not detected')\n return {}\n}\n\nexport const isInIframe = () => window !== window.parent\n\n/**\n * RPC helper functions\n */\nexport const sendMessage = (connection) => {\n let messageId = 0\n\n return ({ id, method, params, result, error }, isNotificationOrResponse = false) => {\n // Increment id for each request\n isNotificationOrResponse || (messageId += 1)\n id = isNotificationOrResponse ? (id || null) : messageId\n const msgData = params\n ? { params }\n : result\n ? { result }\n : { error }\n connection.sendMessage({\n jsonrpc: '2.0',\n ...id ? { id } : {},\n method,\n ...msgData\n })\n return id\n }\n}\n\nexport const getHandler = (schema, msg, { debug = false } = {}) => {\n const handler = schema[msg.method]\n if (!handler || typeof handler !== 'function') {\n debug && console.log(`Unknown message method ${msg.method}`)\n return () => async () => true\n }\n return handler\n}\n\nexport const message = (method, params = {}) => ({ method, params })\n\nexport const responseMessage = (id, method, { error, result } = {}) => ({ id, method, ...(error ? { error } : { result }) })\n\nexport const sendResponseMessage = (client) => (id, method, data) => client.sendMessage(responseMessage(id, method, data), true)\n\nexport const voidFn = () => undefined\n\nexport const isValidAccounts = (accounts) => (['', 'connected', 'current'].filter(k => typeof (k ? accounts[k] : accounts) === 'object')).length === 3\n\nexport const resolveOnAccount = (addresses, onAccount, opt = {}) => {\n if (!addresses.find(a => a === onAccount)) {\n if (typeof opt.onAccount !== 'object' || !isAccountBase(opt.onAccount)) throw new Error('Provided onAccount should be an AccountBase')\n onAccount = opt.onAccount\n }\n return onAccount\n}\n"],"file":"helpers.js"}