@onekeyfe/cross-inpage-provider-core 1.1.36 → 1.1.38

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.
@@ -50,17 +50,19 @@ declare abstract class JsBridgeBase extends CrossEventEmitter {
50
50
  remoteId?: number | string | null;
51
51
  scope?: IInjectedProviderNamesStrings;
52
52
  }): Promise<IJsonRpcResponse<unknown>> | undefined;
53
- response({ id, data, remoteId, scope, }: {
53
+ response({ id, data, remoteId, scope, peerOrigin, }: {
54
54
  id: number;
55
55
  data: unknown;
56
56
  scope?: IInjectedProviderNamesStrings;
57
57
  remoteId?: number | string | null;
58
+ peerOrigin?: string;
58
59
  }): void;
59
- responseError({ id, error, scope, remoteId, }: {
60
+ responseError({ id, error, scope, remoteId, peerOrigin, }: {
60
61
  id: number;
61
62
  error: unknown;
62
63
  scope?: IInjectedProviderNamesStrings;
63
64
  remoteId?: number | string | null;
65
+ peerOrigin?: string;
64
66
  }): void;
65
67
  abstract sendPayload(payload: IJsBridgeMessagePayload | string): void;
66
68
  }
@@ -60,6 +60,7 @@ class JsBridgeBase extends CrossEventEmitter {
60
60
  scope: message.scope,
61
61
  remoteId: message.remoteId,
62
62
  data: returnValue,
63
+ peerOrigin: message.origin,
63
64
  });
64
65
  }
65
66
  }
@@ -71,6 +72,7 @@ class JsBridgeBase extends CrossEventEmitter {
71
72
  scope: message.scope,
72
73
  remoteId: message.remoteId,
73
74
  error,
75
+ peerOrigin: message.origin,
74
76
  });
75
77
  }
76
78
  this.emit(BRIDGE_EVENTS.error, error);
@@ -137,7 +139,7 @@ class JsBridgeBase extends CrossEventEmitter {
137
139
  payload === null || payload === void 0 ? true : delete payload.reject;
138
140
  return payload;
139
141
  }
140
- send({ type, data, error, id, remoteId, sync = false, scope }) {
142
+ send({ type, data, error, id, remoteId, sync = false, scope, peerOrigin, }) {
141
143
  const executor = (resolve, reject) => {
142
144
  var _a, _b, _c;
143
145
  // TODO check resolve when calling without await
@@ -154,6 +156,7 @@ class JsBridgeBase extends CrossEventEmitter {
154
156
  error,
155
157
  type,
156
158
  origin: ((_a = globalWindow === null || globalWindow === void 0 ? void 0 : globalWindow.location) === null || _a === void 0 ? void 0 : _a.origin) || '',
159
+ peerOrigin,
157
160
  remoteId,
158
161
  scope,
159
162
  }, { resolve, reject });
@@ -228,8 +231,8 @@ class JsBridgeBase extends CrossEventEmitter {
228
231
  return;
229
232
  }
230
233
  const now = Date.now();
231
- // eslint-disable-next-line @typescript-eslint/no-for-in-array
232
- for (const id in this.callbacks) {
234
+ const callbacksLength = this.callbacks.length;
235
+ for (let id = 0; id < callbacksLength; id++) {
233
236
  const callbackInfo = this.callbacks[id];
234
237
  if (callbackInfo && callbackInfo.created) {
235
238
  if (now - callbackInfo.created > this.callbacksExpireTimeout) {
@@ -340,7 +343,7 @@ class JsBridgeBase extends CrossEventEmitter {
340
343
  });
341
344
  }
342
345
  // send response DATA to remote
343
- response({ id, data, remoteId, scope, }) {
346
+ response({ id, data, remoteId, scope, peerOrigin, }) {
344
347
  void this.send({
345
348
  type: IJsBridgeMessageTypes.RESPONSE,
346
349
  data,
@@ -348,10 +351,11 @@ class JsBridgeBase extends CrossEventEmitter {
348
351
  remoteId,
349
352
  scope,
350
353
  sync: true,
354
+ peerOrigin,
351
355
  });
352
356
  }
353
357
  // send response ERROR to remote
354
- responseError({ id, error, scope, remoteId, }) {
358
+ responseError({ id, error, scope, remoteId, peerOrigin, }) {
355
359
  void this.send({
356
360
  type: IJsBridgeMessageTypes.RESPONSE,
357
361
  error,
@@ -359,6 +363,7 @@ class JsBridgeBase extends CrossEventEmitter {
359
363
  remoteId,
360
364
  scope,
361
365
  sync: true,
366
+ peerOrigin,
362
367
  });
363
368
  }
364
369
  }
@@ -67,6 +67,7 @@ class JsBridgeBase extends CrossEventEmitter_1.CrossEventEmitter {
67
67
  scope: message.scope,
68
68
  remoteId: message.remoteId,
69
69
  data: returnValue,
70
+ peerOrigin: message.origin,
70
71
  });
71
72
  }
72
73
  }
@@ -78,6 +79,7 @@ class JsBridgeBase extends CrossEventEmitter_1.CrossEventEmitter {
78
79
  scope: message.scope,
79
80
  remoteId: message.remoteId,
80
81
  error,
82
+ peerOrigin: message.origin,
81
83
  });
82
84
  }
83
85
  this.emit(BRIDGE_EVENTS.error, error);
@@ -144,7 +146,7 @@ class JsBridgeBase extends CrossEventEmitter_1.CrossEventEmitter {
144
146
  payload === null || payload === void 0 ? true : delete payload.reject;
145
147
  return payload;
146
148
  }
147
- send({ type, data, error, id, remoteId, sync = false, scope }) {
149
+ send({ type, data, error, id, remoteId, sync = false, scope, peerOrigin, }) {
148
150
  const executor = (resolve, reject) => {
149
151
  var _a, _b, _c;
150
152
  // TODO check resolve when calling without await
@@ -161,6 +163,7 @@ class JsBridgeBase extends CrossEventEmitter_1.CrossEventEmitter {
161
163
  error,
162
164
  type,
163
165
  origin: ((_a = globalWindow === null || globalWindow === void 0 ? void 0 : globalWindow.location) === null || _a === void 0 ? void 0 : _a.origin) || '',
166
+ peerOrigin,
164
167
  remoteId,
165
168
  scope,
166
169
  }, { resolve, reject });
@@ -235,8 +238,8 @@ class JsBridgeBase extends CrossEventEmitter_1.CrossEventEmitter {
235
238
  return;
236
239
  }
237
240
  const now = Date.now();
238
- // eslint-disable-next-line @typescript-eslint/no-for-in-array
239
- for (const id in this.callbacks) {
241
+ const callbacksLength = this.callbacks.length;
242
+ for (let id = 0; id < callbacksLength; id++) {
240
243
  const callbackInfo = this.callbacks[id];
241
244
  if (callbackInfo && callbackInfo.created) {
242
245
  if (now - callbackInfo.created > this.callbacksExpireTimeout) {
@@ -347,7 +350,7 @@ class JsBridgeBase extends CrossEventEmitter_1.CrossEventEmitter {
347
350
  });
348
351
  }
349
352
  // send response DATA to remote
350
- response({ id, data, remoteId, scope, }) {
353
+ response({ id, data, remoteId, scope, peerOrigin, }) {
351
354
  void this.send({
352
355
  type: cross_inpage_provider_types_1.IJsBridgeMessageTypes.RESPONSE,
353
356
  data,
@@ -355,10 +358,11 @@ class JsBridgeBase extends CrossEventEmitter_1.CrossEventEmitter {
355
358
  remoteId,
356
359
  scope,
357
360
  sync: true,
361
+ peerOrigin,
358
362
  });
359
363
  }
360
364
  // send response ERROR to remote
361
- responseError({ id, error, scope, remoteId, }) {
365
+ responseError({ id, error, scope, remoteId, peerOrigin, }) {
362
366
  void this.send({
363
367
  type: cross_inpage_provider_types_1.IJsBridgeMessageTypes.RESPONSE,
364
368
  error,
@@ -366,6 +370,7 @@ class JsBridgeBase extends CrossEventEmitter_1.CrossEventEmitter {
366
370
  remoteId,
367
371
  scope,
368
372
  sync: true,
373
+ peerOrigin,
369
374
  });
370
375
  }
371
376
  }
@@ -11,9 +11,8 @@ function injectedProviderReceiveHandler(payload, bridge) {
11
11
  (0, loggers_1.consoleErrorInDev)('providerName (scope) is required in injectedProviderReceiveHandler.');
12
12
  return;
13
13
  }
14
- const providers = []
15
- .concat(providerHub[providerName])
16
- .filter(Boolean);
14
+ let providers = [];
15
+ providers = providers.concat(providerHub[providerName]).filter(Boolean);
17
16
  if (!providers || !providers.length) {
18
17
  (0, loggers_1.consoleErrorInDev)(`[${providerName}] provider is NOT injected to document or bridge.`, payloadData);
19
18
  return;
@@ -22,7 +21,15 @@ function injectedProviderReceiveHandler(payload, bridge) {
22
21
  providers.forEach((provider) => {
23
22
  if (provider && provider.emit) {
24
23
  provider.emit('message_low_level', payloadData);
24
+ provider.emit('message_payload_raw', payload);
25
25
  }
26
26
  });
27
+ // $private custom provider receive handler
28
+ if (providerName === '$private') {
29
+ const privateProvider = providers[0];
30
+ if (privateProvider && privateProvider.webembedReceiveHandler) {
31
+ return privateProvider.webembedReceiveHandler(payload, bridge);
32
+ }
33
+ }
27
34
  }
28
35
  exports.injectedProviderReceiveHandler = injectedProviderReceiveHandler;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const version = '1.1.36';
3
+ const version = '1.1.38';
4
4
  const versionBuild = '2020-0101-1';
5
5
  exports.default = {
6
6
  version,
@@ -1,4 +1,4 @@
1
1
  import { IJsBridgeMessagePayload } from '@onekeyfe/cross-inpage-provider-types';
2
2
  import { JsBridgeBase } from './JsBridgeBase';
3
- declare function injectedProviderReceiveHandler(payload: IJsBridgeMessagePayload, bridge?: JsBridgeBase): void;
3
+ declare function injectedProviderReceiveHandler(payload: IJsBridgeMessagePayload, bridge?: JsBridgeBase): unknown;
4
4
  export { injectedProviderReceiveHandler };
@@ -8,9 +8,8 @@ function injectedProviderReceiveHandler(payload, bridge) {
8
8
  consoleErrorInDev('providerName (scope) is required in injectedProviderReceiveHandler.');
9
9
  return;
10
10
  }
11
- const providers = []
12
- .concat(providerHub[providerName])
13
- .filter(Boolean);
11
+ let providers = [];
12
+ providers = providers.concat(providerHub[providerName]).filter(Boolean);
14
13
  if (!providers || !providers.length) {
15
14
  consoleErrorInDev(`[${providerName}] provider is NOT injected to document or bridge.`, payloadData);
16
15
  return;
@@ -19,7 +18,15 @@ function injectedProviderReceiveHandler(payload, bridge) {
19
18
  providers.forEach((provider) => {
20
19
  if (provider && provider.emit) {
21
20
  provider.emit('message_low_level', payloadData);
21
+ provider.emit('message_payload_raw', payload);
22
22
  }
23
23
  });
24
+ // $private custom provider receive handler
25
+ if (providerName === '$private') {
26
+ const privateProvider = providers[0];
27
+ if (privateProvider && privateProvider.webembedReceiveHandler) {
28
+ return privateProvider.webembedReceiveHandler(payload, bridge);
29
+ }
30
+ }
24
31
  }
25
32
  export { injectedProviderReceiveHandler };
@@ -1,4 +1,4 @@
1
- const version = '1.1.36';
1
+ const version = '1.1.38';
2
2
  const versionBuild = '2020-0101-1';
3
3
  export default {
4
4
  version,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/cross-inpage-provider-core",
3
- "version": "1.1.36",
3
+ "version": "1.1.38",
4
4
  "keywords": [
5
5
  "cross-inpage-provider"
6
6
  ],
@@ -29,12 +29,12 @@
29
29
  "build-version-info": "node ./scripts/buildVersionInfo.js"
30
30
  },
31
31
  "dependencies": {
32
- "@onekeyfe/cross-inpage-provider-errors": "1.1.36",
33
- "@onekeyfe/cross-inpage-provider-events": "1.1.36",
34
- "@onekeyfe/cross-inpage-provider-types": "1.1.36",
32
+ "@onekeyfe/cross-inpage-provider-errors": "1.1.38",
33
+ "@onekeyfe/cross-inpage-provider-events": "1.1.38",
34
+ "@onekeyfe/cross-inpage-provider-types": "1.1.38",
35
35
  "events": "^3.3.0",
36
36
  "lodash": "^4.17.21",
37
37
  "ms": "^2.1.3"
38
38
  },
39
- "gitHead": "946a3e8dd1728c16f36623759e2f737adc7cc45f"
39
+ "gitHead": "260c2345f2591463b20c0f0c855961fe509d01de"
40
40
  }