@keplr-wallet/router 0.9.5 → 0.10.0-rc.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.
@@ -30,6 +30,11 @@ export declare abstract class Message<R> {
30
30
  * And, message manager should check that this origin is set properly.
31
31
  */
32
32
  readonly origin: string;
33
+ /**
34
+ * You can put values here that can be helpful when processing in the router.
35
+ * In logic, these values should not be used.
36
+ */
37
+ routerMeta?: Record<string, any>;
33
38
  /**
34
39
  * Ask for approval if message is sent externally.
35
40
  */
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;GAQG;AACH,MAAsB,OAAO;IA2B3B;;OAEG;IACH,eAAe,CACb,IAAqC,EACrC,OAAsB;QAEtB,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AApCD,0BAoCC"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;GAQG;AACH,MAAsB,OAAO;IAiC3B;;OAEG;IACH,eAAe,CACb,IAAqC,EACrC,OAAsB;QAEtB,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA1CD,0BA0CC"}
@@ -33,9 +33,10 @@ class Router {
33
33
  this.guards.push(guard);
34
34
  }
35
35
  handleMessage(message, sender) {
36
+ var _a;
36
37
  return __awaiter(this, void 0, void 0, function* () {
37
38
  const msg = this.msgRegistry.parseMessage(json_uint8_array_1.JSONUint8Array.unwrap(message));
38
- const env = this.envProducer(sender);
39
+ const env = this.envProducer(sender, (_a = msg.routerMeta) !== null && _a !== void 0 ? _a : {});
39
40
  for (const guard of this.guards) {
40
41
  yield guard(env, msg, sender);
41
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,0CAA8C;AAC9C,0DAAqD;AAErD,MAAsB,MAAM;IAQ1B,YAA+B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QAP7C,gBAAW,GAAoB,IAAI,0BAAe,EAAE,CAAC;QACrD,sBAAiB,GAAyB,IAAI,GAAG,EAAE,CAAC;QAEpD,WAAM,GAAY,EAAE,CAAC;QAErB,SAAI,GAAG,EAAE,CAAC;IAEsC,CAAC;IAEpD,eAAe,CACpB,MAAqE;QAErE,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEM,UAAU,CAAC,KAAa,EAAE,OAAgB;QAC/C,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACrC,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;SACrD;QAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAEM,QAAQ,CAAC,KAAY;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAMe,aAAa,CAC3B,OAAY,EACZ,MAAqB;;YAErB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,iCAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAErC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC/B,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;aAC/B;YAED,mBAAmB;YACnB,GAAG,CAAC,aAAa,EAAE,CAAC;YAEpB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;aAChC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;aACtC;YAED,OAAO,iCAAc,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC;KAAA;CACF;AAzDD,wBAyDC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,0CAA8C;AAC9C,0DAAqD;AAErD,MAAsB,MAAM;IAQ1B,YAA+B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QAP7C,gBAAW,GAAoB,IAAI,0BAAe,EAAE,CAAC;QACrD,sBAAiB,GAAyB,IAAI,GAAG,EAAE,CAAC;QAEpD,WAAM,GAAY,EAAE,CAAC;QAErB,SAAI,GAAG,EAAE,CAAC;IAEsC,CAAC;IAEpD,eAAe,CACpB,MAAqE;QAErE,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEM,UAAU,CAAC,KAAa,EAAE,OAAgB;QAC/C,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACrC,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;SACrD;QAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAEM,QAAQ,CAAC,KAAY;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAMe,aAAa,CAC3B,OAAY,EACZ,MAAqB;;;YAErB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,iCAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,QAAE,GAAG,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC;YAE3D,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC/B,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;aAC/B;YAED,mBAAmB;YACnB,GAAG,CAAC,aAAa,EAAE,CAAC;YAEpB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;aAChC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;aACtC;YAED,OAAO,iCAAc,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;;KACrD;CACF;AAzDD,wBAyDC"}
package/build/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference types="firefox-webext-browser" />
2
2
  import { Message } from "./message";
3
- export declare type MessageSender = Pick<browser.runtime.MessageSender, "id" | "url">;
3
+ export declare type MessageSender = Pick<browser.runtime.MessageSender, "id" | "url" | "tab">;
4
4
  export declare type FnRequestInteractionOptions = {
5
5
  forceOpenWindow?: boolean;
6
6
  channel?: string;
@@ -10,7 +10,7 @@ export interface Env {
10
10
  readonly isInternalMsg: boolean;
11
11
  readonly requestInteraction: FnRequestInteraction;
12
12
  }
13
- export declare type EnvProducer = (sender: MessageSender) => Env;
13
+ export declare type EnvProducer = (sender: MessageSender, routerMeta: Record<string, any>) => Env;
14
14
  export interface MessageRequester {
15
15
  sendMessage<M extends Message<unknown>>(port: string, msg: M): Promise<M extends Message<infer R> ? R : never>;
16
16
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/router",
3
- "version": "0.9.5",
3
+ "version": "0.10.0-rc.1",
4
4
  "main": "build/index.js",
5
5
  "author": "chainapsis",
6
6
  "license": "Apache-2.0",
@@ -16,5 +16,5 @@
16
16
  "lint-test": "eslint \"src/**/*\" && prettier --check \"src/**/*\"",
17
17
  "lint-fix": "eslint --fix \"src/**/*\" && prettier --write \"src/**/*\""
18
18
  },
19
- "gitHead": "dd57ef30d7e0c75e5c16e91da65caffdeca7e1d0"
19
+ "gitHead": "f89ffe39a4e59875ff5450010ed81ab09cd0b908"
20
20
  }
package/src/message.ts CHANGED
@@ -36,6 +36,12 @@ export abstract class Message<R> {
36
36
  */
37
37
  public readonly origin!: string;
38
38
 
39
+ /**
40
+ * You can put values here that can be helpful when processing in the router.
41
+ * In logic, these values should not be used.
42
+ */
43
+ public routerMeta?: Record<string, any>;
44
+
39
45
  /**
40
46
  * Ask for approval if message is sent externally.
41
47
  */
@@ -41,7 +41,7 @@ export abstract class Router {
41
41
  sender: MessageSender
42
42
  ): Promise<unknown> {
43
43
  const msg = this.msgRegistry.parseMessage(JSONUint8Array.unwrap(message));
44
- const env = this.envProducer(sender);
44
+ const env = this.envProducer(sender, msg.routerMeta ?? {});
45
45
 
46
46
  for (const guard of this.guards) {
47
47
  await guard(env, msg, sender);
package/src/types.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  import { Message } from "./message";
2
2
 
3
- export type MessageSender = Pick<browser.runtime.MessageSender, "id" | "url">;
3
+ export type MessageSender = Pick<
4
+ browser.runtime.MessageSender,
5
+ "id" | "url" | "tab"
6
+ >;
4
7
 
5
8
  export type FnRequestInteractionOptions = {
6
9
  forceOpenWindow?: boolean;
@@ -18,7 +21,10 @@ export interface Env {
18
21
  readonly requestInteraction: FnRequestInteraction;
19
22
  }
20
23
 
21
- export type EnvProducer = (sender: MessageSender) => Env;
24
+ export type EnvProducer = (
25
+ sender: MessageSender,
26
+ routerMeta: Record<string, any>
27
+ ) => Env;
22
28
 
23
29
  export interface MessageRequester {
24
30
  sendMessage<M extends Message<unknown>>(