@onekeyfe/cross-inpage-provider-core 0.0.5 → 0.0.7-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1 +1 @@
1
- # @onekeyfe/cross-inpage-provider-core
1
+ # cross-inpage-provider
@@ -2,7 +2,7 @@ import EventEmitter from 'eventemitter3';
2
2
  import { IInjectedProviderNamesStrings, IJsBridgeConfig, IJsBridgeMessagePayload, IJsonRpcResponse, IDebugLogger } from '@onekeyfe/cross-inpage-provider-types';
3
3
  declare function isLegacyExtMessage(payload: unknown): boolean;
4
4
  declare abstract class JsBridgeBase extends EventEmitter {
5
- protected constructor(config?: IJsBridgeConfig);
5
+ constructor(config?: IJsBridgeConfig);
6
6
  protected isExtUi: boolean;
7
7
  protected isInjected: boolean;
8
8
  protected sendAsString: boolean;
@@ -10,9 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import EventEmitter from 'eventemitter3';
11
11
  import isPlainObject from 'lodash/isPlainObject';
12
12
  import isString from 'lodash/isString';
13
- import { appDebugLogger } from './loggers';
13
+ import { appDebugLogger, consoleErrorInDev } from './loggers';
14
14
  import { IJsBridgeMessageTypes, } from '@onekeyfe/cross-inpage-provider-types';
15
15
  import { web3Errors } from '@onekeyfe/cross-inpage-provider-errors';
16
+ import versionInfo from './versionInfo';
16
17
  function isLegacyExtMessage(payload) {
17
18
  const payloadObj = payload;
18
19
  return (Boolean(payloadObj.name) &&
@@ -63,6 +64,7 @@ class JsBridgeBase extends EventEmitter {
63
64
  // noop
64
65
  }
65
66
  });
67
+ this.version = versionInfo.version;
66
68
  this.remoteInfo = {
67
69
  origin: '',
68
70
  remoteId: '',
@@ -74,12 +76,16 @@ class JsBridgeBase extends EventEmitter {
74
76
  this.callbacksExpireTimeout = (_a = config.timeout) !== null && _a !== void 0 ? _a : 60 * 1000;
75
77
  this.debugLogger = config.debugLogger || appDebugLogger;
76
78
  this.sendAsString = (_b = config.sendAsString) !== null && _b !== void 0 ? _b : this.sendAsString;
77
- this.version = process.env.VERSION || '';
78
79
  if (this.config.receiveHandler) {
79
80
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
80
81
  this.on(BRIDGE_EVENTS.message, this.globalOnMessage);
81
82
  }
82
- this.on(BRIDGE_EVENTS.error, (error) => console.error('JsBridge ERROR: ', error));
83
+ this.on(BRIDGE_EVENTS.error, (error) => {
84
+ var _a;
85
+ consoleErrorInDev('JsBridge ERROR: ', error, {
86
+ code: (_a = error) === null || _a === void 0 ? void 0 : _a.code,
87
+ });
88
+ });
83
89
  this.rejectExpiredCallbacks();
84
90
  }
85
91
  attachProviderInstance(provider) {
@@ -241,7 +247,7 @@ class JsBridgeBase extends EventEmitter {
241
247
  return;
242
248
  }
243
249
  if (!payload.origin && !this.isInjected) {
244
- console.error((_a = this === null || this === void 0 ? void 0 : this.constructor) === null || _a === void 0 ? void 0 : _a.name, '[payload.origin] is missing.', this);
250
+ consoleErrorInDev((_a = this === null || this === void 0 ? void 0 : this.constructor) === null || _a === void 0 ? void 0 : _a.name, '[payload.origin] is missing.', this);
245
251
  throw new Error('JsBridge ERROR: receive message [payload.origin] is required.');
246
252
  }
247
253
  if (!payload.internal && !payload.scope) {
@@ -298,7 +304,7 @@ class JsBridgeBase extends EventEmitter {
298
304
  request(info) {
299
305
  const { data, remoteId, scope } = info;
300
306
  if (data === undefined) {
301
- console.warn('JsBridge ERROR: params data field is missing. Call method like `bridge.request({ data: {...} });`');
307
+ console.warn('JsBridge ERROR: data required. Call like `bridge.request({ data: {...} });`');
302
308
  }
303
309
  return this.send({
304
310
  type: IJsBridgeMessageTypes.REQUEST,
@@ -0,0 +1,10 @@
1
+ import { IJsBridgeMessagePayload } from '@onekeyfe/cross-inpage-provider-types';
2
+ import { JsBridgeBase } from './JsBridgeBase';
3
+ declare class JsBridgeSimple extends JsBridgeBase {
4
+ sendAsString: boolean;
5
+ isInjected: boolean;
6
+ private remote;
7
+ sendPayload(payload: IJsBridgeMessagePayload | string): void;
8
+ setRemote(remote: JsBridgeBase): void;
9
+ }
10
+ export { JsBridgeSimple };
@@ -0,0 +1,19 @@
1
+ import { JsBridgeBase } from './JsBridgeBase';
2
+ class JsBridgeSimple extends JsBridgeBase {
3
+ constructor() {
4
+ super(...arguments);
5
+ this.sendAsString = true;
6
+ this.isInjected = true;
7
+ this.remote = null;
8
+ }
9
+ sendPayload(payload) {
10
+ if (!this.remote) {
11
+ throw new Error('JsBridgeSimple ERROR: remote not set.');
12
+ }
13
+ this.remote.receive(payload);
14
+ }
15
+ setRemote(remote) {
16
+ this.remote = remote;
17
+ }
18
+ }
19
+ export { JsBridgeSimple };
@@ -21,11 +21,12 @@ export declare type ConnectWalletInfo = {
21
21
  providerState: unknown;
22
22
  };
23
23
  declare abstract class ProviderBase extends EventEmitter {
24
- protected constructor(config: IInpageProviderConfig);
24
+ constructor(config: IInpageProviderConfig);
25
25
  configDebugLogger(config: DebugLoggerConfig): void;
26
26
  getConnectWalletInfo({ timeout }?: {
27
27
  timeout?: number | undefined;
28
28
  }): Promise<ConnectWalletInfo | null>;
29
+ version: string;
29
30
  isOneKey: boolean;
30
31
  protected abstract providerName: IInjectedProviderNamesStrings;
31
32
  protected readonly config: IInpageProviderConfig;
@@ -10,7 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import EventEmitter from 'eventemitter3';
11
11
  import isFunction from 'lodash/isFunction';
12
12
  import siteMetadata from './siteMetadata';
13
- import { fakeLogger, fakeDebugLogger } from './loggers';
13
+ import { fakeLogger, fakeDebugLogger, consoleErrorInDev } from './loggers';
14
+ import versionInfo from './versionInfo';
14
15
  const METHODS = {
15
16
  wallet_getConnectWalletInfo: 'wallet_getConnectWalletInfo',
16
17
  wallet_sendSiteMetadata: 'wallet_sendSiteMetadata',
@@ -19,6 +20,7 @@ class ProviderBase extends EventEmitter {
19
20
  constructor(config) {
20
21
  var _a, _b, _c;
21
22
  super();
23
+ this.version = versionInfo.version;
22
24
  this.isOneKey = true;
23
25
  this.debugLogger = fakeDebugLogger;
24
26
  this.logger = fakeLogger;
@@ -28,6 +30,7 @@ class ProviderBase extends EventEmitter {
28
30
  this.config = config;
29
31
  this.bridge = config.bridge;
30
32
  this.logger = config.logger || fakeLogger;
33
+ // TODO init this.debugLogger first, and enable debug config after extension connect
31
34
  this.debugLogger = ((_a = this.bridge) === null || _a === void 0 ? void 0 : _a.debugLogger) || fakeDebugLogger;
32
35
  (_c = (_b = this.bridge) === null || _b === void 0 ? void 0 : _b.debugLogger) === null || _c === void 0 ? void 0 : _c._attachExternalLogger(this.logger);
33
36
  setTimeout(() => {
@@ -56,7 +59,7 @@ class ProviderBase extends EventEmitter {
56
59
  window.$onekey.$debugLogger = debugLogger;
57
60
  }
58
61
  catch (error) {
59
- console.error('configDebugLogger ERROR:', error);
62
+ consoleErrorInDev('configDebugLogger ERROR:', error);
60
63
  }
61
64
  }
62
65
  getConnectWalletInfo({ timeout = 3000 } = {}) {
@@ -91,7 +94,8 @@ class ProviderBase extends EventEmitter {
91
94
  }
92
95
  }
93
96
  catch (err) {
94
- console.error('getConnectWalletInfo: ERROR', err);
97
+ // TODO wallet not installed, timeout ERROR
98
+ consoleErrorInDev('getConnectWalletInfo: ERROR', err);
95
99
  resolve(null);
96
100
  }
97
101
  finally {
@@ -19,6 +19,7 @@ const isString_1 = __importDefault(require("lodash/isString"));
19
19
  const loggers_1 = require("./loggers");
20
20
  const cross_inpage_provider_types_1 = require("@onekeyfe/cross-inpage-provider-types");
21
21
  const cross_inpage_provider_errors_1 = require("@onekeyfe/cross-inpage-provider-errors");
22
+ const versionInfo_1 = __importDefault(require("./versionInfo"));
22
23
  function isLegacyExtMessage(payload) {
23
24
  const payloadObj = payload;
24
25
  return (Boolean(payloadObj.name) &&
@@ -70,6 +71,7 @@ class JsBridgeBase extends eventemitter3_1.default {
70
71
  // noop
71
72
  }
72
73
  });
74
+ this.version = versionInfo_1.default.version;
73
75
  this.remoteInfo = {
74
76
  origin: '',
75
77
  remoteId: '',
@@ -81,12 +83,16 @@ class JsBridgeBase extends eventemitter3_1.default {
81
83
  this.callbacksExpireTimeout = (_a = config.timeout) !== null && _a !== void 0 ? _a : 60 * 1000;
82
84
  this.debugLogger = config.debugLogger || loggers_1.appDebugLogger;
83
85
  this.sendAsString = (_b = config.sendAsString) !== null && _b !== void 0 ? _b : this.sendAsString;
84
- this.version = process.env.VERSION || '';
85
86
  if (this.config.receiveHandler) {
86
87
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
87
88
  this.on(BRIDGE_EVENTS.message, this.globalOnMessage);
88
89
  }
89
- this.on(BRIDGE_EVENTS.error, (error) => console.error('JsBridge ERROR: ', error));
90
+ this.on(BRIDGE_EVENTS.error, (error) => {
91
+ var _a;
92
+ (0, loggers_1.consoleErrorInDev)('JsBridge ERROR: ', error, {
93
+ code: (_a = error) === null || _a === void 0 ? void 0 : _a.code,
94
+ });
95
+ });
90
96
  this.rejectExpiredCallbacks();
91
97
  }
92
98
  attachProviderInstance(provider) {
@@ -248,7 +254,7 @@ class JsBridgeBase extends eventemitter3_1.default {
248
254
  return;
249
255
  }
250
256
  if (!payload.origin && !this.isInjected) {
251
- console.error((_a = this === null || this === void 0 ? void 0 : this.constructor) === null || _a === void 0 ? void 0 : _a.name, '[payload.origin] is missing.', this);
257
+ (0, loggers_1.consoleErrorInDev)((_a = this === null || this === void 0 ? void 0 : this.constructor) === null || _a === void 0 ? void 0 : _a.name, '[payload.origin] is missing.', this);
252
258
  throw new Error('JsBridge ERROR: receive message [payload.origin] is required.');
253
259
  }
254
260
  if (!payload.internal && !payload.scope) {
@@ -305,7 +311,7 @@ class JsBridgeBase extends eventemitter3_1.default {
305
311
  request(info) {
306
312
  const { data, remoteId, scope } = info;
307
313
  if (data === undefined) {
308
- console.warn('JsBridge ERROR: params data field is missing. Call method like `bridge.request({ data: {...} });`');
314
+ console.warn('JsBridge ERROR: data required. Call like `bridge.request({ data: {...} });`');
309
315
  }
310
316
  return this.send({
311
317
  type: cross_inpage_provider_types_1.IJsBridgeMessageTypes.REQUEST,
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JsBridgeSimple = void 0;
4
+ const JsBridgeBase_1 = require("./JsBridgeBase");
5
+ class JsBridgeSimple extends JsBridgeBase_1.JsBridgeBase {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.sendAsString = true;
9
+ this.isInjected = true;
10
+ this.remote = null;
11
+ }
12
+ sendPayload(payload) {
13
+ if (!this.remote) {
14
+ throw new Error('JsBridgeSimple ERROR: remote not set.');
15
+ }
16
+ this.remote.receive(payload);
17
+ }
18
+ setRemote(remote) {
19
+ this.remote = remote;
20
+ }
21
+ }
22
+ exports.JsBridgeSimple = JsBridgeSimple;
@@ -17,6 +17,7 @@ const eventemitter3_1 = __importDefault(require("eventemitter3"));
17
17
  const isFunction_1 = __importDefault(require("lodash/isFunction"));
18
18
  const siteMetadata_1 = __importDefault(require("./siteMetadata"));
19
19
  const loggers_1 = require("./loggers");
20
+ const versionInfo_1 = __importDefault(require("./versionInfo"));
20
21
  const METHODS = {
21
22
  wallet_getConnectWalletInfo: 'wallet_getConnectWalletInfo',
22
23
  wallet_sendSiteMetadata: 'wallet_sendSiteMetadata',
@@ -25,6 +26,7 @@ class ProviderBase extends eventemitter3_1.default {
25
26
  constructor(config) {
26
27
  var _a, _b, _c;
27
28
  super();
29
+ this.version = versionInfo_1.default.version;
28
30
  this.isOneKey = true;
29
31
  this.debugLogger = loggers_1.fakeDebugLogger;
30
32
  this.logger = loggers_1.fakeLogger;
@@ -34,6 +36,7 @@ class ProviderBase extends eventemitter3_1.default {
34
36
  this.config = config;
35
37
  this.bridge = config.bridge;
36
38
  this.logger = config.logger || loggers_1.fakeLogger;
39
+ // TODO init this.debugLogger first, and enable debug config after extension connect
37
40
  this.debugLogger = ((_a = this.bridge) === null || _a === void 0 ? void 0 : _a.debugLogger) || loggers_1.fakeDebugLogger;
38
41
  (_c = (_b = this.bridge) === null || _b === void 0 ? void 0 : _b.debugLogger) === null || _c === void 0 ? void 0 : _c._attachExternalLogger(this.logger);
39
42
  setTimeout(() => {
@@ -62,7 +65,7 @@ class ProviderBase extends eventemitter3_1.default {
62
65
  window.$onekey.$debugLogger = debugLogger;
63
66
  }
64
67
  catch (error) {
65
- console.error('configDebugLogger ERROR:', error);
68
+ (0, loggers_1.consoleErrorInDev)('configDebugLogger ERROR:', error);
66
69
  }
67
70
  }
68
71
  getConnectWalletInfo({ timeout = 3000 } = {}) {
@@ -97,7 +100,8 @@ class ProviderBase extends eventemitter3_1.default {
97
100
  }
98
101
  }
99
102
  catch (err) {
100
- console.error('getConnectWalletInfo: ERROR', err);
103
+ // TODO wallet not installed, timeout ERROR
104
+ (0, loggers_1.consoleErrorInDev)('getConnectWalletInfo: ERROR', err);
101
105
  resolve(null);
102
106
  }
103
107
  finally {
package/dist/cjs/index.js CHANGED
@@ -25,15 +25,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
25
25
  return (mod && mod.__esModule) ? mod : { "default": mod };
26
26
  };
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.siteMetadata = exports.injectedFactory = exports.consts = void 0;
28
+ exports.versionInfo = exports.siteMetadata = exports.injectedFactory = exports.consts = void 0;
29
29
  __exportStar(require("./JsBridgeBase"), exports);
30
30
  __exportStar(require("./ProviderBase"), exports);
31
31
  __exportStar(require("./loggers"), exports);
32
32
  __exportStar(require("./injectJsBridge"), exports);
33
33
  __exportStar(require("./injectedProviderReceiveHandler"), exports);
34
+ __exportStar(require("./JsBridgeSimple"), exports);
34
35
  const consts = __importStar(require("./consts"));
35
36
  exports.consts = consts;
36
37
  const injectedFactory_1 = __importDefault(require("./injectedFactory"));
37
38
  exports.injectedFactory = injectedFactory_1.default;
38
39
  const siteMetadata_1 = __importDefault(require("./siteMetadata"));
39
40
  exports.siteMetadata = siteMetadata_1.default;
41
+ var versionInfo_1 = require("./versionInfo");
42
+ Object.defineProperty(exports, "versionInfo", { enumerable: true, get: function () { return __importDefault(versionInfo_1).default; } });
@@ -16,7 +16,7 @@ function injectJsBridge(bridgeCreator) {
16
16
  if (!((_a = window === null || window === void 0 ? void 0 : window.$onekey) === null || _a === void 0 ? void 0 : _a.jsBridge)) {
17
17
  window.$onekey = window.$onekey || {};
18
18
  window.$onekey.jsBridge = bridgeCreator();
19
- if (localStorage.getItem(consts_1.DEBUG_LOGGER_STORAGE_KEY)) {
19
+ if (typeof localStorage !== 'undefined' && localStorage.getItem(consts_1.DEBUG_LOGGER_STORAGE_KEY)) {
20
20
  console.log('===== jsBridge injected success! >>>>> ', performance.now());
21
21
  }
22
22
  }
@@ -1,20 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.injectedProviderReceiveHandler = void 0;
4
+ const loggers_1 = require("./loggers");
4
5
  function injectedProviderReceiveHandler(payload, bridge) {
5
6
  // ethereum, solana, conflux
6
7
  const providerHub = (bridge === null || bridge === void 0 ? void 0 : bridge.providersHub) || window.$onekey;
7
8
  const providerName = payload.scope;
8
9
  const payloadData = payload.data;
9
10
  if (!providerName) {
10
- console.error('providerName (scope) is required in injectedProviderReceiveHandler.');
11
+ (0, loggers_1.consoleErrorInDev)('providerName (scope) is required in injectedProviderReceiveHandler.');
11
12
  return;
12
13
  }
13
14
  const providers = []
14
15
  .concat(providerHub[providerName])
15
16
  .filter(Boolean);
16
17
  if (!providers || !providers.length) {
17
- console.error(`[${providerName}] provider is NOT injected to document.`);
18
+ (0, loggers_1.consoleErrorInDev)(`[${providerName}] provider is NOT injected to document or bridge.`);
18
19
  return;
19
20
  }
20
21
  // emit events to injected provider
@@ -3,11 +3,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.fakeLogger = exports.appDebugLogger = exports.fakeDebugLogger = void 0;
6
+ exports.consoleErrorInDev = exports.fakeLogger = exports.appDebugLogger = exports.fakeDebugLogger = void 0;
7
7
  // @ts-ignore
8
8
  const debug_1 = __importDefault(require("./debug"));
9
+ const consts_1 = require("./consts");
9
10
  // enable debugLogger:
10
11
  // localStorage.setItem('$$ONEKEY_DEBUG_LOGGER', '*');
12
+ function consoleErrorInDev(...args) {
13
+ const loggerConfig = typeof localStorage !== 'undefined' && localStorage.getItem(consts_1.DEBUG_LOGGER_STORAGE_KEY);
14
+ if (process.env.NODE_ENV !== 'production' || loggerConfig) {
15
+ console.error(...args);
16
+ }
17
+ }
18
+ exports.consoleErrorInDev = consoleErrorInDev;
11
19
  const fakeLogger = {
12
20
  // @ts-ignore
13
21
  _isFakeLogger: true,
@@ -38,6 +46,9 @@ class FakeDebugLogger {
38
46
  this.providerBase = this._createExternalLog('providerBase >>');
39
47
  this.extInjected = this._createExternalLog('extInjected >>');
40
48
  this.extContentScripts = this._createExternalLog('extContentScripts >>');
49
+ this.webview = this._createExternalLog('webview >>');
50
+ this.desktopInjected = this._createExternalLog('desktopInjected >>');
51
+ this.ethereum = this._createExternalLog('ethereum >>');
41
52
  }
42
53
  _attachExternalLogger(logger) {
43
54
  if (logger) {
@@ -77,6 +88,7 @@ class AppDebugLogger extends FakeDebugLogger {
77
88
  }
78
89
  }
79
90
  }
91
+ // TODO merge FakeDebugLogger and AppDebugLogger to single class
80
92
  const fakeDebugLogger = new FakeDebugLogger();
81
93
  exports.fakeDebugLogger = fakeDebugLogger;
82
94
  const appDebugLogger = new AppDebugLogger();
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const version = '0.0.7-alpha.2';
4
+ const versionBuild = '2020-0101-1';
5
+ exports.default = {
6
+ version,
7
+ versionBuild,
8
+ };
package/dist/index.d.ts CHANGED
@@ -3,9 +3,11 @@ export * from './ProviderBase';
3
3
  export * from './loggers';
4
4
  export * from './injectJsBridge';
5
5
  export * from './injectedProviderReceiveHandler';
6
+ export * from './JsBridgeSimple';
6
7
  import * as consts from './consts';
7
8
  export { consts };
8
9
  import injectedFactory from './injectedFactory';
9
10
  export { injectedFactory };
10
11
  import siteMetadata from './siteMetadata';
11
12
  export { siteMetadata };
13
+ export { default as versionInfo } from './versionInfo';
package/dist/index.js CHANGED
@@ -3,9 +3,11 @@ export * from './ProviderBase';
3
3
  export * from './loggers';
4
4
  export * from './injectJsBridge';
5
5
  export * from './injectedProviderReceiveHandler';
6
+ export * from './JsBridgeSimple';
6
7
  import * as consts from './consts';
7
8
  export { consts };
8
9
  import injectedFactory from './injectedFactory';
9
10
  export { injectedFactory };
10
11
  import siteMetadata from './siteMetadata';
11
12
  export { siteMetadata };
13
+ export { default as versionInfo } from './versionInfo';
@@ -13,7 +13,7 @@ function injectJsBridge(bridgeCreator) {
13
13
  if (!((_a = window === null || window === void 0 ? void 0 : window.$onekey) === null || _a === void 0 ? void 0 : _a.jsBridge)) {
14
14
  window.$onekey = window.$onekey || {};
15
15
  window.$onekey.jsBridge = bridgeCreator();
16
- if (localStorage.getItem(DEBUG_LOGGER_STORAGE_KEY)) {
16
+ if (typeof localStorage !== 'undefined' && localStorage.getItem(DEBUG_LOGGER_STORAGE_KEY)) {
17
17
  console.log('===== jsBridge injected success! >>>>> ', performance.now());
18
18
  }
19
19
  }
@@ -1,17 +1,18 @@
1
+ import { consoleErrorInDev } from './loggers';
1
2
  function injectedProviderReceiveHandler(payload, bridge) {
2
3
  // ethereum, solana, conflux
3
4
  const providerHub = (bridge === null || bridge === void 0 ? void 0 : bridge.providersHub) || window.$onekey;
4
5
  const providerName = payload.scope;
5
6
  const payloadData = payload.data;
6
7
  if (!providerName) {
7
- console.error('providerName (scope) is required in injectedProviderReceiveHandler.');
8
+ consoleErrorInDev('providerName (scope) is required in injectedProviderReceiveHandler.');
8
9
  return;
9
10
  }
10
11
  const providers = []
11
12
  .concat(providerHub[providerName])
12
13
  .filter(Boolean);
13
14
  if (!providers || !providers.length) {
14
- console.error(`[${providerName}] provider is NOT injected to document.`);
15
+ consoleErrorInDev(`[${providerName}] provider is NOT injected to document or bridge.`);
15
16
  return;
16
17
  }
17
18
  // emit events to injected provider
package/dist/loggers.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { IDebugLogger, ConsoleLike } from '@onekeyfe/cross-inpage-provider-types';
2
+ declare function consoleErrorInDev(...args: unknown[]): void;
2
3
  declare const fakeLogger: ConsoleLike;
3
4
  declare const fakeDebugLogger: IDebugLogger;
4
5
  declare const appDebugLogger: IDebugLogger;
5
- export { fakeDebugLogger, appDebugLogger, fakeLogger };
6
+ export { fakeDebugLogger, appDebugLogger, fakeLogger, consoleErrorInDev };
package/dist/loggers.js CHANGED
@@ -1,7 +1,14 @@
1
1
  // @ts-ignore
2
2
  import createDebugAsync from './debug';
3
+ import { DEBUG_LOGGER_STORAGE_KEY } from './consts';
3
4
  // enable debugLogger:
4
5
  // localStorage.setItem('$$ONEKEY_DEBUG_LOGGER', '*');
6
+ function consoleErrorInDev(...args) {
7
+ const loggerConfig = typeof localStorage !== 'undefined' && localStorage.getItem(DEBUG_LOGGER_STORAGE_KEY);
8
+ if (process.env.NODE_ENV !== 'production' || loggerConfig) {
9
+ console.error(...args);
10
+ }
11
+ }
5
12
  const fakeLogger = {
6
13
  // @ts-ignore
7
14
  _isFakeLogger: true,
@@ -31,6 +38,9 @@ class FakeDebugLogger {
31
38
  this.providerBase = this._createExternalLog('providerBase >>');
32
39
  this.extInjected = this._createExternalLog('extInjected >>');
33
40
  this.extContentScripts = this._createExternalLog('extContentScripts >>');
41
+ this.webview = this._createExternalLog('webview >>');
42
+ this.desktopInjected = this._createExternalLog('desktopInjected >>');
43
+ this.ethereum = this._createExternalLog('ethereum >>');
34
44
  }
35
45
  _attachExternalLogger(logger) {
36
46
  if (logger) {
@@ -70,6 +80,7 @@ class AppDebugLogger extends FakeDebugLogger {
70
80
  }
71
81
  }
72
82
  }
83
+ // TODO merge FakeDebugLogger and AppDebugLogger to single class
73
84
  const fakeDebugLogger = new FakeDebugLogger();
74
85
  const appDebugLogger = new AppDebugLogger();
75
- export { fakeDebugLogger, appDebugLogger, fakeLogger };
86
+ export { fakeDebugLogger, appDebugLogger, fakeLogger, consoleErrorInDev };
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ version: string;
3
+ versionBuild: string;
4
+ };
5
+ export default _default;
@@ -0,0 +1,6 @@
1
+ const version = '0.0.7-alpha.2';
2
+ const versionBuild = '2020-0101-1';
3
+ export default {
4
+ version,
5
+ versionBuild,
6
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/cross-inpage-provider-core",
3
- "version": "0.0.5",
3
+ "version": "0.0.7-alpha.2",
4
4
  "keywords": [
5
5
  "cross-inpage-provider"
6
6
  ],
@@ -24,15 +24,16 @@
24
24
  "main": "./dist/cjs/index.js",
25
25
  "scripts": {
26
26
  "prebuild": "rm -rf dist",
27
- "build": "tsc && tsc --project tsconfig.cjs.json",
28
- "start": "tsc --watch"
27
+ "build": "yarn build-version-info && tsc && tsc --project tsconfig.cjs.json",
28
+ "start": "tsc --watch",
29
+ "build-version-info": "node ./scripts/buildVersionInfo.js"
29
30
  },
30
31
  "dependencies": {
31
- "@onekeyfe/cross-inpage-provider-errors": "^0.0.5",
32
- "@onekeyfe/cross-inpage-provider-types": "^0.0.5",
32
+ "@onekeyfe/cross-inpage-provider-errors": "^0.0.7-alpha.2",
33
+ "@onekeyfe/cross-inpage-provider-types": "^0.0.7-alpha.2",
33
34
  "eventemitter3": "^4.0.7",
34
35
  "lodash": "^4.17.21",
35
36
  "ms": "^2.1.3"
36
37
  },
37
- "gitHead": "fc053fe3c2920fca734addae381339a29a09b716"
38
+ "gitHead": "ed05282b43f00a712dae7f62ea12063eb56c8cce"
38
39
  }