@openfort/openfort-js 0.3.4 → 0.4.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.
package/dist/index.d.ts CHANGED
@@ -2,4 +2,7 @@ import Openfort from "./openfort";
2
2
  export * from "./key-pair";
3
3
  export * from "./openfort";
4
4
  export * from "./openfortAuth";
5
+ export * from "./signer/signer";
6
+ export * from "./signer/session.signer";
7
+ export * from "./signer/embedded.signer";
5
8
  export default Openfort;
package/dist/index.js CHANGED
@@ -21,5 +21,8 @@ const openfort_1 = __importDefault(require("./openfort"));
21
21
  __exportStar(require("./key-pair"), exports);
22
22
  __exportStar(require("./openfort"), exports);
23
23
  __exportStar(require("./openfortAuth"), exports);
24
+ __exportStar(require("./signer/signer"), exports);
25
+ __exportStar(require("./signer/session.signer"), exports);
26
+ __exportStar(require("./signer/embedded.signer"), exports);
24
27
  exports.default = openfort_1.default;
25
28
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,0DAAkC;AAElC,6CAA2B;AAC3B,6CAA2B;AAC3B,iDAA+B;AAE/B,kBAAe,kBAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,0DAAkC;AAElC,6CAA2B;AAC3B,6CAA2B;AAC3B,iDAA+B;AAC/B,kDAAgC;AAChC,0DAAwC;AACxC,2DAAyC;AAEzC,kBAAe,kBAAQ,CAAC"}
@@ -1,20 +1,13 @@
1
- import { SessionResponse, SessionsApi, TransactionIntentResponse, TransactionIntentsApi } from "./generated/api";
2
- import { KeyPair } from "./key-pair";
3
- import { Bytes } from "@ethersproject/bytes";
1
+ import { SessionResponse, SessionsApi, TransactionIntentResponse, TransactionIntentsApi } from "./generated";
2
+ import { Signer } from "./signer/signer";
4
3
  export default class Openfort {
5
4
  private readonly _configuration;
6
5
  private _sessionsApi?;
7
6
  private _transactionsApi?;
8
- private _sessionKey?;
9
- constructor(accessToken: string, basePath?: string);
10
- get sessionKey(): KeyPair;
7
+ private readonly _signer?;
8
+ constructor(publishableKey: string, signer?: Signer, basePath?: string);
11
9
  protected get sessionsApi(): SessionsApi;
12
10
  protected get transactionsApi(): TransactionIntentsApi;
13
- createSessionKey(): KeyPair;
14
- loadSessionKey(): KeyPair | null;
15
- saveSessionKey(): void;
16
- removeSessionKey(): void;
17
- signMessage(message: Bytes | string): string;
18
- sendSignatureSessionRequest(sessionId: string, signature: string, optimistic?: boolean): Promise<SessionResponse>;
19
- sendSignatureTransactionIntentRequest(transactionIntentId: string, signature: string, optimistic?: boolean): Promise<TransactionIntentResponse>;
11
+ sendSignatureSessionRequest(sessionId: string, signature?: string, optimistic?: boolean): Promise<SessionResponse>;
12
+ sendSignatureTransactionIntentRequest(transactionIntentId: string, userOp?: string, signature?: string, optimistic?: boolean): Promise<TransactionIntentResponse>;
20
13
  }
package/dist/openfort.js CHANGED
@@ -1,77 +1,46 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
- const configuration_1 = require("./generated/configuration");
13
- const api_1 = require("./generated/api");
14
- const key_pair_1 = require("./key-pair");
15
- const http_error_handler_1 = require("./utils/http-error-handler");
3
+ const generated_1 = require("./generated");
16
4
  class Openfort {
17
- constructor(accessToken, basePath) {
18
- this._configuration = new configuration_1.Configuration({ accessToken, basePath });
19
- }
20
- get sessionKey() {
21
- if (!this._sessionKey) {
22
- throw new Error("Session key is not initialized");
23
- }
24
- return this._sessionKey;
5
+ constructor(publishableKey, signer, basePath) {
6
+ this._configuration = new generated_1.Configuration({ accessToken: publishableKey, basePath });
7
+ this._signer = signer;
25
8
  }
26
9
  get sessionsApi() {
27
10
  if (!this._sessionsApi) {
28
- this._sessionsApi = new api_1.SessionsApi(this._configuration);
11
+ this._sessionsApi = new generated_1.SessionsApi(this._configuration);
29
12
  }
30
13
  return this._sessionsApi;
31
14
  }
32
15
  get transactionsApi() {
33
16
  if (!this._transactionsApi) {
34
- this._transactionsApi = new api_1.TransactionIntentsApi(this._configuration);
17
+ this._transactionsApi = new generated_1.TransactionIntentsApi(this._configuration);
35
18
  }
36
19
  return this._transactionsApi;
37
20
  }
38
- createSessionKey() {
39
- this._sessionKey = new key_pair_1.KeyPair();
40
- return this._sessionKey;
41
- }
42
- loadSessionKey() {
43
- this._sessionKey = key_pair_1.KeyPair.load();
44
- return this._sessionKey;
45
- }
46
- saveSessionKey() {
47
- return this.sessionKey.save();
48
- }
49
- removeSessionKey() {
50
- return this.sessionKey.remove();
51
- }
52
- signMessage(message) {
53
- return this.sessionKey.sign(message);
54
- }
55
21
  async sendSignatureSessionRequest(sessionId, signature, optimistic) {
22
+ if (!signature) {
23
+ if (!this._signer) {
24
+ throw new Error("No signer nor signature provided");
25
+ }
26
+ signature = await this._signer.sign(sessionId);
27
+ }
56
28
  const result = await this.sessionsApi.signatureSession(sessionId, { signature, optimistic });
57
29
  return result.data;
58
30
  }
59
- async sendSignatureTransactionIntentRequest(transactionIntentId, signature, optimistic) {
31
+ async sendSignatureTransactionIntentRequest(transactionIntentId, userOp, signature, optimistic) {
32
+ if (!signature && userOp) {
33
+ if (!this._signer) {
34
+ throw new Error("No signer nor signature provided");
35
+ }
36
+ signature = await this._signer.sign(userOp);
37
+ }
38
+ if (!signature) {
39
+ throw new Error("No signature provided");
40
+ }
60
41
  const result = await this.transactionsApi.signature(transactionIntentId, { signature, optimistic });
61
42
  return result.data;
62
43
  }
63
44
  }
64
45
  exports.default = Openfort;
65
- __decorate([
66
- (0, http_error_handler_1.httpErrorHandler)(),
67
- __metadata("design:type", Function),
68
- __metadata("design:paramtypes", [String, String, Boolean]),
69
- __metadata("design:returntype", Promise)
70
- ], Openfort.prototype, "sendSignatureSessionRequest", null);
71
- __decorate([
72
- (0, http_error_handler_1.httpErrorHandler)(),
73
- __metadata("design:type", Function),
74
- __metadata("design:paramtypes", [String, String, Boolean]),
75
- __metadata("design:returntype", Promise)
76
- ], Openfort.prototype, "sendSignatureTransactionIntentRequest", null);
77
46
  //# sourceMappingURL=openfort.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openfort.js","sourceRoot":"","sources":["../src/openfort.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,6DAAwD;AACxD,yCAA+G;AAC/G,yCAAmC;AACnC,mEAA4D;AAG5D,MAAqB,QAAQ;IAMzB,YAAY,WAAmB,EAAE,QAAiB;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,6BAAa,CAAC,EAAC,WAAW,EAAE,QAAQ,EAAC,CAAC,CAAC;IACrE,CAAC;IAED,IAAW,UAAU;QACjB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,IAAc,WAAW;QACrB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAc,eAAe;QACzB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,2BAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAEM,gBAAgB;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAO,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEM,cAAc;QACjB,IAAI,CAAC,WAAW,GAAG,kBAAO,CAAC,IAAI,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEM,cAAc;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAEM,gBAAgB;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACpC,CAAC;IAEM,WAAW,CAAC,OAAuB;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAGY,AAAN,KAAK,CAAC,2BAA2B,CACpC,SAAiB,EACjB,SAAiB,EACjB,UAAoB;QAEpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAC,SAAS,EAAE,UAAU,EAAC,CAAC,CAAC;QAC3F,OAAO,MAAM,CAAC,IAAI,CAAC;IACvB,CAAC;IAGY,AAAN,KAAK,CAAC,qCAAqC,CAC9C,mBAA2B,EAC3B,SAAiB,EACjB,UAAoB;QAEpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAC,SAAS,EAAE,UAAU,EAAC,CAAC,CAAC;QAClG,OAAO,MAAM,CAAC,IAAI,CAAC;IACvB,CAAC;CACJ;AAxED,2BAwEC;AAlBgB;IADZ,IAAA,qCAAgB,GAAE;;;;2DAQlB;AAGY;IADZ,IAAA,qCAAgB,GAAE;;;;qEAQlB"}
1
+ {"version":3,"file":"openfort.js","sourceRoot":"","sources":["../src/openfort.ts"],"names":[],"mappings":";;AAAA,2CAA0H;AAK1H,MAAqB,QAAQ;IAMzB,YAAY,cAAsB,EAAE,MAAe,EAAE,QAAiB;QAClE,IAAI,CAAC,cAAc,GAAG,IAAI,yBAAa,CAAC,EAAC,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAC,CAAC,CAAC;QACjF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,IAAc,WAAW;QACrB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,IAAI,uBAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAc,eAAe;QACzB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,iCAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,2BAA2B,CACpC,SAAiB,EACjB,SAAkB,EAClB,UAAoB;QAEpB,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACxD,CAAC;YAED,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAC,SAAS,EAAE,UAAU,EAAC,CAAC,CAAC;QAC3F,OAAO,MAAM,CAAC,IAAI,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,qCAAqC,CAC9C,mBAA2B,EAC3B,MAAe,EACf,SAAkB,EAClB,UAAoB;QAEpB,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACxD,CAAC;YAED,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAC,SAAS,EAAE,UAAU,EAAC,CAAC,CAAC;QAClG,OAAO,MAAM,CAAC,IAAI,CAAC;IACvB,CAAC;CACJ;AA7DD,2BA6DC"}
@@ -1,8 +1,15 @@
1
- import { AuthorizeWithOAuthToken200Response, OAuthApi, OAuthProvider } from "./generated/api";
1
+ import { OAuthProvider, AuthResponse } from "./generated";
2
+ export type Auth = {
3
+ player: string;
4
+ accessToken: string;
5
+ refreshToken: string;
6
+ };
2
7
  export declare class OpenfortAuth {
3
8
  private readonly _configuration;
4
9
  private _oauthApi?;
5
- constructor(accessToken: string, basePath?: string);
6
- protected get oauthApi(): OAuthApi;
7
- authorizeWithOAuthToken(provider: OAuthProvider, token: string): Promise<AuthorizeWithOAuthToken200Response>;
10
+ private readonly _publishableKey;
11
+ constructor(publishableKey: string, basePath?: string);
12
+ authorizeWithOAuthToken(provider: OAuthProvider, token: string): Promise<AuthResponse>;
13
+ verifyAndRefreshToken(token: string, refreshToken: string): Promise<Auth>;
14
+ private ecPublicKeyToPem;
8
15
  }
@@ -1,38 +1,84 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
10
24
  };
11
25
  Object.defineProperty(exports, "__esModule", { value: true });
12
26
  exports.OpenfortAuth = void 0;
13
- const configuration_1 = require("./generated/configuration");
14
- const api_1 = require("./generated/api");
15
- const http_error_handler_1 = require("./utils/http-error-handler");
27
+ const generated_1 = require("./generated");
28
+ const crypto_1 = require("crypto");
29
+ const jwt = __importStar(require("jsonwebtoken"));
16
30
  class OpenfortAuth {
17
- constructor(accessToken, basePath) {
18
- this._configuration = new configuration_1.Configuration({ accessToken, basePath });
19
- }
20
- get oauthApi() {
21
- if (!this._oauthApi) {
22
- this._oauthApi = new api_1.OAuthApi(this._configuration);
23
- }
24
- return this._oauthApi;
31
+ constructor(publishableKey, basePath) {
32
+ this._configuration = new generated_1.Configuration({ accessToken: publishableKey, basePath });
33
+ this._oauthApi = new generated_1.AuthenticationApi(this._configuration);
34
+ this._publishableKey = publishableKey;
25
35
  }
26
36
  async authorizeWithOAuthToken(provider, token) {
27
- const result = await this.oauthApi.authorizeWithOAuthToken(provider, { token });
37
+ const result = await this._oauthApi.authenticateOAuth({ provider, token });
28
38
  return result.data;
29
39
  }
40
+ async verifyAndRefreshToken(token, refreshToken) {
41
+ const jwtks = await this._oauthApi.getJwks(this._publishableKey);
42
+ if (jwtks.data.keys.length === 0) {
43
+ throw new Error("No keys found");
44
+ }
45
+ const jwtKey = jwtks.data.keys[0];
46
+ const pem = this.ecPublicKeyToPem(jwtKey);
47
+ try {
48
+ const decoded = jwt.verify(token, pem, { algorithms: [jwtKey.alg] });
49
+ const jwtIdentity = decoded;
50
+ return {
51
+ player: jwtIdentity.sub,
52
+ accessToken: token,
53
+ refreshToken,
54
+ };
55
+ }
56
+ catch (error) {
57
+ if (error instanceof jwt.TokenExpiredError) {
58
+ const newToken = await this._oauthApi.refresh({ refreshToken });
59
+ return {
60
+ player: newToken.data.player.id,
61
+ accessToken: newToken.data.token,
62
+ refreshToken: newToken.data.refreshToken,
63
+ };
64
+ }
65
+ else {
66
+ throw error;
67
+ }
68
+ }
69
+ }
70
+ ecPublicKeyToPem(jwtKey) {
71
+ const key = {
72
+ key: {
73
+ x: Buffer.from(jwtKey.x, "base64"),
74
+ y: Buffer.from(jwtKey.y, "base64"),
75
+ asymmetricKeyType: jwtKey.kty,
76
+ crv: jwtKey.crv,
77
+ },
78
+ format: "jwk",
79
+ };
80
+ return (0, crypto_1.createPublicKey)({ key: key, format: "jwk" }).export({ format: "pem", type: "spki" }).toString();
81
+ }
30
82
  }
31
83
  exports.OpenfortAuth = OpenfortAuth;
32
- __decorate([
33
- (0, http_error_handler_1.httpErrorHandler)(),
34
- __metadata("design:type", Function),
35
- __metadata("design:paramtypes", [String, String]),
36
- __metadata("design:returntype", Promise)
37
- ], OpenfortAuth.prototype, "authorizeWithOAuthToken", null);
38
84
  //# sourceMappingURL=openfortAuth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openfortAuth.js","sourceRoot":"","sources":["../src/openfortAuth.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAAwD;AACxD,yCAA4F;AAC5F,mEAA4D;AAE5D,MAAa,YAAY;IAIrB,YAAY,WAAmB,EAAE,QAAiB;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,6BAAa,CAAC,EAAC,WAAW,EAAE,QAAQ,EAAC,CAAC,CAAC;IACrE,CAAC;IAED,IAAc,QAAQ;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,IAAI,cAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAGY,AAAN,KAAK,CAAC,uBAAuB,CAChC,QAAuB,EACvB,KAAa;QAEb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,QAAQ,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC,IAAI,CAAC;IACvB,CAAC;CACJ;AAvBD,oCAuBC;AAPgB;IADZ,IAAA,qCAAgB,GAAE;;;;2DAOlB"}
1
+ {"version":3,"file":"openfortAuth.js","sourceRoot":"","sources":["../src/openfortAuth.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAIqB;AACrB,mCAAuC;AACvC,kDAAoC;AAQpC,MAAa,YAAY;IAKrB,YAAY,cAAsB,EAAE,QAAiB;QACjD,IAAI,CAAC,cAAc,GAAG,IAAI,yBAAa,CAAC,EAAC,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAC,CAAC,CAAC;QACjF,IAAI,CAAC,SAAS,GAAG,IAAI,6BAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IAC1C,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAChC,QAAuB,EACvB,KAAa;QAEb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;QACzE,OAAO,MAAM,CAAC,IAAI,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAC9B,KAAa,EACb,YAAoB;QAEpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAC,UAAU,EAAE,CAAC,MAAM,CAAC,GAAoB,CAAC,EAAC,CAAC,CAAC;YACpF,MAAM,WAAW,GAAG,OAAyB,CAAC;YAC9C,OAAO;gBACH,MAAM,EAAE,WAAW,CAAC,GAAG;gBACvB,WAAW,EAAE,KAAK;gBAClB,YAAY;aACf,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,GAAG,CAAC,iBAAiB,EAAE,CAAC;gBACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAC,YAAY,EAAC,CAAC,CAAC;gBAC9D,OAAO;oBACH,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC/B,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;oBAChC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY;iBAC3C,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC;IACL,CAAC;IAEO,gBAAgB,CAAC,MAA0D;QAC/E,MAAM,GAAG,GAAG;YACR,GAAG,EAAE;gBACD,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC;gBAClC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC;gBAClC,iBAAiB,EAAE,MAAM,CAAC,GAAG;gBAC7B,GAAG,EAAE,MAAM,CAAC,GAAG;aAClB;YACD,MAAM,EAAE,KAAK;SAChB,CAAC;QAEF,OAAO,IAAA,wBAAe,EAAC,EAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC,MAAM,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvG,CAAC;CACJ;AAjED,oCAiEC"}
@@ -0,0 +1,12 @@
1
+ import { Bytes } from "@ethersproject/bytes";
2
+ import { Signer } from "./signer";
3
+ export declare class EmbeddedSigner implements Signer {
4
+ private readonly _iframeClient;
5
+ private readonly _accountUuid?;
6
+ private readonly _recoverySharePassword?;
7
+ private _deviceID;
8
+ constructor(chainId: number, publishableKey: string, accessToken: string, accountUuid?: string, recoverySharePassword?: string);
9
+ ensureEmbeddedAccount(): Promise<string>;
10
+ sign(message: Bytes | string): Promise<string>;
11
+ dispose(): void;
12
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EmbeddedSigner = void 0;
4
+ const iframe_client_1 = require("../utils/iframe-client");
5
+ class EmbeddedSigner {
6
+ constructor(chainId, publishableKey, accessToken, accountUuid, recoverySharePassword) {
7
+ this._deviceID = null;
8
+ this._iframeClient = new iframe_client_1.IframeClient(publishableKey, accessToken, chainId);
9
+ this._accountUuid = accountUuid;
10
+ this._recoverySharePassword = recoverySharePassword;
11
+ }
12
+ async ensureEmbeddedAccount() {
13
+ if (this._deviceID) {
14
+ return this._deviceID;
15
+ }
16
+ this._deviceID = await this._iframeClient.getCurrentDevice();
17
+ if (this._deviceID) {
18
+ return this._deviceID;
19
+ }
20
+ if (!this._accountUuid) {
21
+ this._deviceID = await this._iframeClient.createAccount(this._recoverySharePassword);
22
+ }
23
+ else {
24
+ this._deviceID = await this._iframeClient.registerDevice(this._accountUuid, this._recoverySharePassword);
25
+ }
26
+ return this._deviceID;
27
+ }
28
+ async sign(message) {
29
+ console.log("Signing message", message);
30
+ await this.ensureEmbeddedAccount();
31
+ console.log("Signing message after account creation", message);
32
+ return await this._iframeClient.sign(message);
33
+ }
34
+ dispose() {
35
+ this._iframeClient.dispose();
36
+ }
37
+ }
38
+ exports.EmbeddedSigner = EmbeddedSigner;
39
+ //# sourceMappingURL=embedded.signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedded.signer.js","sourceRoot":"","sources":["../../src/signer/embedded.signer.ts"],"names":[],"mappings":";;;AAAA,0DAAoD;AAIpD,MAAa,cAAc;IAMvB,YAAY,OAAe,EAAE,cAAsB,EAAC,WAAmB,EAAE,WAAoB,EAAE,qBAA8B;QAFrH,cAAS,GAAgB,IAAI,CAAC;QAGlC,IAAI,CAAC,aAAa,GAAG,IAAI,4BAAY,CAAC,cAAc,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC5E,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,sBAAsB,GAAG,qBAAqB,CAAC;IACxD,CAAC;IAEM,KAAK,CAAC,qBAAqB;QAC9B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;QAC7D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzF,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC7G,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,OAAuB;QACrC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,OAAO,CAAC,CAAC;QAC/D,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAiB,CAAC,CAAC;IAC5D,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;CACJ;AAzCD,wCAyCC"}
@@ -0,0 +1,7 @@
1
+ import { Bytes } from "@ethersproject/bytes";
2
+ import { Signer } from "./signer";
3
+ export declare class SessionSigner implements Signer {
4
+ private readonly _sessionKey;
5
+ constructor();
6
+ sign(message: Bytes | string): Promise<string>;
7
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SessionSigner = void 0;
4
+ const key_pair_1 = require("../key-pair");
5
+ class SessionSigner {
6
+ constructor() {
7
+ this._sessionKey = key_pair_1.KeyPair.load();
8
+ if (!this._sessionKey) {
9
+ this._sessionKey = new key_pair_1.KeyPair();
10
+ this._sessionKey.save();
11
+ }
12
+ }
13
+ sign(message) {
14
+ return new Promise(resolve => {
15
+ resolve(this._sessionKey.sign(message));
16
+ });
17
+ }
18
+ }
19
+ exports.SessionSigner = SessionSigner;
20
+ //# sourceMappingURL=session.signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.signer.js","sourceRoot":"","sources":["../../src/signer/session.signer.ts"],"names":[],"mappings":";;;AAAA,0CAAoC;AAIpC,MAAa,aAAa;IAGtB;QACI,IAAI,CAAC,WAAW,GAAG,kBAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAO,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;IACL,CAAC;IAEM,IAAI,CAAC,OAAuB;QAC/B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACzB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAhBD,sCAgBC"}
@@ -0,0 +1,4 @@
1
+ import { Bytes } from "@ethersproject/bytes";
2
+ export interface Signer {
3
+ sign(message: Bytes | string): Promise<string>;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer/signer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ export declare class IframeClient {
2
+ private readonly _iframe;
3
+ private _chainId;
4
+ constructor(publishableKey: string, accessToken: string, chainId: number);
5
+ private waitForIframeLoad;
6
+ createAccount(password?: string): Promise<string>;
7
+ registerDevice(account: string, password?: string): Promise<string>;
8
+ getCurrentDevice(): Promise<string | null>;
9
+ sign(message: string): Promise<string>;
10
+ dispose(): void;
11
+ }
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IframeClient = void 0;
4
+ class IframeClient {
5
+ constructor(publishableKey, accessToken, chainId) {
6
+ if (!document) {
7
+ throw new Error("must be run in a browser");
8
+ }
9
+ this._chainId = chainId;
10
+ this._iframe = document.createElement("iframe");
11
+ this._iframe.src = "https://iframe.openfort.xyz/iframe?accessToken=" + accessToken + "&publishableKey=" + publishableKey;
12
+ this._iframe.style.display = "none";
13
+ document.body.appendChild(this._iframe);
14
+ }
15
+ waitForIframeLoad() {
16
+ if (!this._iframe.contentWindow) {
17
+ return new Promise((resolve) => {
18
+ this._iframe.onload = () => {
19
+ resolve();
20
+ };
21
+ });
22
+ }
23
+ return Promise.resolve();
24
+ }
25
+ async createAccount(password) {
26
+ await this.waitForIframeLoad();
27
+ return new Promise((resolve, reject) => {
28
+ // Function to handle message event
29
+ const handleMessage = (event) => {
30
+ if (event.data.action === "keyGenerated") {
31
+ if (event.data.success) {
32
+ resolve(event.data.deviceId);
33
+ }
34
+ else {
35
+ reject(new Error(event.data.error || "Key generation failed"));
36
+ }
37
+ window.removeEventListener("message", handleMessage);
38
+ }
39
+ };
40
+ window.addEventListener("message", handleMessage);
41
+ this._iframe.contentWindow?.postMessage({
42
+ action: "generateKey",
43
+ password: password,
44
+ chainId: this._chainId,
45
+ }, "*");
46
+ });
47
+ }
48
+ async registerDevice(account, password) {
49
+ await this.waitForIframeLoad();
50
+ return new Promise((resolve, reject) => {
51
+ const handleMessage = (event) => {
52
+ if (event.data.action === "deviceRegistered") {
53
+ if (event.data.success) {
54
+ resolve(event.data.deviceId);
55
+ }
56
+ else {
57
+ reject(new Error(event.data.error || "Device registration failed"));
58
+ }
59
+ window.removeEventListener("message", handleMessage);
60
+ }
61
+ };
62
+ window.addEventListener("message", handleMessage);
63
+ setTimeout(() => {
64
+ if (this._iframe.contentWindow) {
65
+ this._iframe.contentWindow.postMessage({
66
+ action: "registerDevice",
67
+ account: account,
68
+ password: password,
69
+ }, "*");
70
+ }
71
+ else {
72
+ console.error("No iframe content window");
73
+ }
74
+ }, 1000);
75
+ });
76
+ }
77
+ async getCurrentDevice() {
78
+ await this.waitForIframeLoad();
79
+ return new Promise((resolve) => {
80
+ const handleMessage = (event) => {
81
+ if (event.data.action === "currentDevice") {
82
+ if (event.data.success) {
83
+ resolve(event.data.deviceId);
84
+ }
85
+ else {
86
+ resolve(null);
87
+ }
88
+ window.removeEventListener("message", handleMessage);
89
+ }
90
+ };
91
+ window.addEventListener("message", handleMessage);
92
+ setTimeout(() => {
93
+ if (this._iframe.contentWindow) {
94
+ this._iframe.contentWindow.postMessage({
95
+ action: "getCurrentDevice",
96
+ }, "*");
97
+ console.log("event sent");
98
+ }
99
+ else {
100
+ console.error("No iframe content window");
101
+ }
102
+ }, 1000);
103
+ });
104
+ }
105
+ async sign(message) {
106
+ await this.waitForIframeLoad();
107
+ return new Promise((resolve, reject) => {
108
+ const handleMessage = (event) => {
109
+ if (event.data.action === "messageSigned") {
110
+ if (event.data.success) {
111
+ resolve(event.data.signature);
112
+ }
113
+ else {
114
+ reject(new Error(event.data.error || "Message sending failed"));
115
+ }
116
+ window.removeEventListener("message", handleMessage);
117
+ }
118
+ };
119
+ window.addEventListener("message", handleMessage);
120
+ setTimeout(() => {
121
+ if (this._iframe.contentWindow) {
122
+ this._iframe.contentWindow.postMessage({
123
+ action: "signMessage",
124
+ message: message,
125
+ }, "*");
126
+ }
127
+ else {
128
+ console.error("No iframe content window");
129
+ }
130
+ }, 1000);
131
+ });
132
+ }
133
+ dispose() {
134
+ document.body.removeChild(this._iframe);
135
+ }
136
+ }
137
+ exports.IframeClient = IframeClient;
138
+ //# sourceMappingURL=iframe-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iframe-client.js","sourceRoot":"","sources":["../../src/utils/iframe-client.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.3.4";
1
+ export declare const VERSION = "0.4.1";
2
2
  export declare const PACKAGE = "@openfort/openfort-js";
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PACKAGE = exports.VERSION = void 0;
4
- exports.VERSION = "0.3.4";
4
+ exports.VERSION = "0.4.1";
5
5
  exports.PACKAGE = "@openfort/openfort-js";
6
6
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfort/openfort-js",
3
- "version": "0.3.4",
3
+ "version": "0.4.1",
4
4
  "description": "",
5
5
  "author": "Openfort",
6
6
  "repository": {
@@ -25,6 +25,7 @@
25
25
  "registry": "https://registry.npmjs.org/"
26
26
  },
27
27
  "devDependencies": {
28
+ "@types/jsonwebtoken": "^9.0.6",
28
29
  "@types/node": "^20.2.1",
29
30
  "eslint": "^8.44.0",
30
31
  "eslint-config-standard-with-typescript": "^36.0.0",
@@ -39,8 +40,9 @@
39
40
  "@ethersproject/hash": "^5.7.0",
40
41
  "@ethersproject/signing-key": "^5.7.0",
41
42
  "@noble/curves": "^1.1.0",
42
- "axios": "^1.4.0",
43
+ "axios": "1.6.7",
43
44
  "es6-promise": "^4.2.8",
45
+ "jsonwebtoken": "^9.0.2",
44
46
  "path": "^0.12.7"
45
47
  }
46
48
  }