@metamask/profile-sync-controller 0.0.0
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/CHANGELOG.md +10 -0
- package/LICENSE +20 -0
- package/README.md +15 -0
- package/dist/chunk-2FZSWVHT.mjs +11 -0
- package/dist/chunk-2FZSWVHT.mjs.map +1 -0
- package/dist/chunk-4NGEEDGV.mjs +126 -0
- package/dist/chunk-4NGEEDGV.mjs.map +1 -0
- package/dist/chunk-5EBUFNAN.mjs +55 -0
- package/dist/chunk-5EBUFNAN.mjs.map +1 -0
- package/dist/chunk-5XSXZTED.mjs +57 -0
- package/dist/chunk-5XSXZTED.mjs.map +1 -0
- package/dist/chunk-6X6I3HZU.js +142 -0
- package/dist/chunk-6X6I3HZU.js.map +1 -0
- package/dist/chunk-BARZBXO7.js +7 -0
- package/dist/chunk-BARZBXO7.js.map +1 -0
- package/dist/chunk-BHVT2QEA.mjs +47 -0
- package/dist/chunk-BHVT2QEA.mjs.map +1 -0
- package/dist/chunk-CFST6GWE.js +11 -0
- package/dist/chunk-CFST6GWE.js.map +1 -0
- package/dist/chunk-CYGZ4WLJ.mjs +126 -0
- package/dist/chunk-CYGZ4WLJ.mjs.map +1 -0
- package/dist/chunk-CZ7YK35S.mjs +142 -0
- package/dist/chunk-CZ7YK35S.mjs.map +1 -0
- package/dist/chunk-DEATIRII.js +1 -0
- package/dist/chunk-DEATIRII.js.map +1 -0
- package/dist/chunk-GQLHSQGZ.js +47 -0
- package/dist/chunk-GQLHSQGZ.js.map +1 -0
- package/dist/chunk-GVMIXMYB.mjs +67 -0
- package/dist/chunk-GVMIXMYB.mjs.map +1 -0
- package/dist/chunk-KHFPE566.js +49 -0
- package/dist/chunk-KHFPE566.js.map +1 -0
- package/dist/chunk-KKRIOEXD.mjs +7 -0
- package/dist/chunk-KKRIOEXD.mjs.map +1 -0
- package/dist/chunk-MKJYSWME.mjs +1 -0
- package/dist/chunk-MKJYSWME.mjs.map +1 -0
- package/dist/chunk-NRH6O4QZ.js +126 -0
- package/dist/chunk-NRH6O4QZ.js.map +1 -0
- package/dist/chunk-OF3TQWGX.js +130 -0
- package/dist/chunk-OF3TQWGX.js.map +1 -0
- package/dist/chunk-PQ5T4GHY.js +55 -0
- package/dist/chunk-PQ5T4GHY.js.map +1 -0
- package/dist/chunk-RG4II6WH.js +57 -0
- package/dist/chunk-RG4II6WH.js.map +1 -0
- package/dist/chunk-UMKBFFZ5.mjs +131 -0
- package/dist/chunk-UMKBFFZ5.mjs.map +1 -0
- package/dist/chunk-UVJVONBF.js +126 -0
- package/dist/chunk-UVJVONBF.js.map +1 -0
- package/dist/chunk-VHUU4HEY.js +67 -0
- package/dist/chunk-VHUU4HEY.js.map +1 -0
- package/dist/chunk-VXPVURGH.mjs +130 -0
- package/dist/chunk-VXPVURGH.mjs.map +1 -0
- package/dist/chunk-VZXD5DCQ.js +131 -0
- package/dist/chunk-VZXD5DCQ.js.map +1 -0
- package/dist/chunk-WJRV2JCX.mjs +49 -0
- package/dist/chunk-WJRV2JCX.mjs.map +1 -0
- package/dist/chunk-XUI43LEZ.mjs +30 -0
- package/dist/chunk-XUI43LEZ.mjs.map +1 -0
- package/dist/chunk-Z4BLTVTB.js +30 -0
- package/dist/chunk-Z4BLTVTB.js.map +1 -0
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +68 -0
- package/dist/index.mjs.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/constants.js +8 -0
- package/dist/sdk/authentication-jwt-bearer/constants.js.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/constants.mjs +8 -0
- package/dist/sdk/authentication-jwt-bearer/constants.mjs.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/flow-siwe.js +13 -0
- package/dist/sdk/authentication-jwt-bearer/flow-siwe.js.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/flow-siwe.mjs +13 -0
- package/dist/sdk/authentication-jwt-bearer/flow-siwe.mjs.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/flow-srp.js +15 -0
- package/dist/sdk/authentication-jwt-bearer/flow-srp.js.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/flow-srp.mjs +15 -0
- package/dist/sdk/authentication-jwt-bearer/flow-srp.mjs.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/services.js +23 -0
- package/dist/sdk/authentication-jwt-bearer/services.js.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/services.mjs +23 -0
- package/dist/sdk/authentication-jwt-bearer/services.mjs.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/types.js +8 -0
- package/dist/sdk/authentication-jwt-bearer/types.js.map +1 -0
- package/dist/sdk/authentication-jwt-bearer/types.mjs +8 -0
- package/dist/sdk/authentication-jwt-bearer/types.mjs.map +1 -0
- package/dist/sdk/authentication.js +26 -0
- package/dist/sdk/authentication.js.map +1 -0
- package/dist/sdk/authentication.mjs +26 -0
- package/dist/sdk/authentication.mjs.map +1 -0
- package/dist/sdk/encryption.js +10 -0
- package/dist/sdk/encryption.js.map +1 -0
- package/dist/sdk/encryption.mjs +10 -0
- package/dist/sdk/encryption.mjs.map +1 -0
- package/dist/sdk/env.js +12 -0
- package/dist/sdk/env.js.map +1 -0
- package/dist/sdk/env.mjs +12 -0
- package/dist/sdk/env.mjs.map +1 -0
- package/dist/sdk/errors.js +18 -0
- package/dist/sdk/errors.js.map +1 -0
- package/dist/sdk/errors.mjs +18 -0
- package/dist/sdk/errors.mjs.map +1 -0
- package/dist/sdk/index.js +68 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/index.mjs +68 -0
- package/dist/sdk/index.mjs.map +1 -0
- package/dist/sdk/user-storage.js +13 -0
- package/dist/sdk/user-storage.js.map +1 -0
- package/dist/sdk/user-storage.mjs +13 -0
- package/dist/sdk/user-storage.mjs.map +1 -0
- package/dist/sdk/utils/eip-6963-metamask-provider.js +10 -0
- package/dist/sdk/utils/eip-6963-metamask-provider.js.map +1 -0
- package/dist/sdk/utils/eip-6963-metamask-provider.mjs +10 -0
- package/dist/sdk/utils/eip-6963-metamask-provider.mjs.map +1 -0
- package/dist/sdk/utils/messaging-signing-snap-requests.js +16 -0
- package/dist/sdk/utils/messaging-signing-snap-requests.js.map +1 -0
- package/dist/sdk/utils/messaging-signing-snap-requests.mjs +16 -0
- package/dist/sdk/utils/messaging-signing-snap-requests.mjs.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/sdk/__fixtures__/mock-auth.d.ts +39 -0
- package/dist/types/sdk/__fixtures__/mock-auth.d.ts.map +1 -0
- package/dist/types/sdk/__fixtures__/mock-userstorage.d.ts +18 -0
- package/dist/types/sdk/__fixtures__/mock-userstorage.d.ts.map +1 -0
- package/dist/types/sdk/__fixtures__/test-utils.d.ts +25 -0
- package/dist/types/sdk/__fixtures__/test-utils.d.ts.map +1 -0
- package/dist/types/sdk/authentication-jwt-bearer/constants.d.ts +2 -0
- package/dist/types/sdk/authentication-jwt-bearer/constants.d.ts.map +1 -0
- package/dist/types/sdk/authentication-jwt-bearer/flow-siwe.d.ts +23 -0
- package/dist/types/sdk/authentication-jwt-bearer/flow-siwe.d.ts.map +1 -0
- package/dist/types/sdk/authentication-jwt-bearer/flow-srp.d.ts +17 -0
- package/dist/types/sdk/authentication-jwt-bearer/flow-srp.d.ts.map +1 -0
- package/dist/types/sdk/authentication-jwt-bearer/services.d.ts +45 -0
- package/dist/types/sdk/authentication-jwt-bearer/services.d.ts.map +1 -0
- package/dist/types/sdk/authentication-jwt-bearer/types.d.ts +60 -0
- package/dist/types/sdk/authentication-jwt-bearer/types.d.ts.map +1 -0
- package/dist/types/sdk/authentication.d.ts +29 -0
- package/dist/types/sdk/authentication.d.ts.map +1 -0
- package/dist/types/sdk/encryption.d.ts +20 -0
- package/dist/types/sdk/encryption.d.ts.map +1 -0
- package/dist/types/sdk/env.d.ts +27 -0
- package/dist/types/sdk/env.d.ts.map +1 -0
- package/dist/types/sdk/errors.d.ts +19 -0
- package/dist/types/sdk/errors.d.ts.map +1 -0
- package/dist/types/sdk/index.d.ts +7 -0
- package/dist/types/sdk/index.d.ts.map +1 -0
- package/dist/types/sdk/user-storage.d.ts +25 -0
- package/dist/types/sdk/user-storage.d.ts.map +1 -0
- package/dist/types/sdk/utils/eip-6963-metamask-provider.d.ts +25 -0
- package/dist/types/sdk/utils/eip-6963-metamask-provider.d.ts.map +1 -0
- package/dist/types/sdk/utils/messaging-signing-snap-requests.d.ts +33 -0
- package/dist/types/sdk/utils/messaging-signing-snap-requests.d.ts.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sdk/authentication.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAeO,IAAM,gBAAN,MAA2D;AAAA,EAKhE,eAAe,MAA2B;AA0C1C;AA9CA;AAEA;AAGE,uBAAK,OAAQ,KAAK,CAAC,EAAE;AAErB,QAAI,KAAK,CAAC,EAAE,0BAAuB;AACjC,yBAAK,MAAO,IAAI,iBAAiB,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AACjD;AAAA,IACF;AAEA,QAAI,KAAK,CAAC,EAAE,4BAAwB;AAClC,yBAAK,MAAO,IAAI,kBAAkB,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAClD;AAAA,IACF;AAEA,UAAM,IAAI,yBAAyB,uBAAuB;AAAA,EAC5D;AAAA,EAEA,MAAM,iBAAkC;AACtC,WAAO,MAAM,mBAAK,MAAK,eAAe;AAAA,EACxC;AAAA,EAEA,MAAM,iBAAuC;AAC3C,WAAO,MAAM,mBAAK,MAAK,eAAe;AAAA,EACxC;AAAA,EAEA,MAAM,gBAAiC;AACrC,WAAO,MAAM,mBAAK,MAAK,cAAc;AAAA,EACvC;AAAA,EAEA,MAAM,YAAY,SAAkC;AAClD,WAAO,MAAM,mBAAK,MAAK,YAAY,OAAO;AAAA,EAC5C;AAAA,EAEA,QAAQ,QAKC;AACP,0BAAK,4BAAL,WAAiB,mBAAK,QAAO,mBAAK;AAClC,uBAAK,MAAK,QAAQ,MAAM;AAAA,EAC1B;AAcF;AA1DE;AAEA;AA4CA;AAAA,gBAAW,SACT,MACA,KACkC;AAClC,MAAI,4BAAwB;AAC1B;AAAA,EACF;AAEA,QAAM,IAAI;AAAA,IACR;AAAA,EACF;AACF","sourcesContent":["import { SIWEJwtBearerAuth } from './authentication-jwt-bearer/flow-siwe';\nimport { SRPJwtBearerAuth } from './authentication-jwt-bearer/flow-srp';\nimport type { UserProfile } from './authentication-jwt-bearer/types';\nimport { AuthType } from './authentication-jwt-bearer/types';\nimport { UnsupportedAuthTypeError } from './errors';\n\n// Computing the Classes, so we only get back the public methods for the interface.\ntype Compute<T> = T extends infer U ? { [K in keyof U]: U[K] } : never;\ntype SIWEInterface = Compute<SIWEJwtBearerAuth>;\ntype SRPInterface = Compute<SRPJwtBearerAuth>;\n\ntype SiweParams = ConstructorParameters<typeof SIWEJwtBearerAuth>;\ntype SRPParams = ConstructorParameters<typeof SRPJwtBearerAuth>;\ntype JwtBearerAuthParams = SiweParams | SRPParams;\n\nexport class JwtBearerAuth implements SIWEInterface, SRPInterface {\n #type: AuthType;\n\n #sdk: SIWEJwtBearerAuth | SRPJwtBearerAuth;\n\n constructor(...args: JwtBearerAuthParams) {\n this.#type = args[0].type;\n\n if (args[0].type === AuthType.SRP) {\n this.#sdk = new SRPJwtBearerAuth(args[0], args[1]);\n return;\n }\n\n if (args[0].type === AuthType.SiWE) {\n this.#sdk = new SIWEJwtBearerAuth(args[0], args[1]);\n return;\n }\n\n throw new UnsupportedAuthTypeError('unsupported auth type');\n }\n\n async getAccessToken(): Promise<string> {\n return await this.#sdk.getAccessToken();\n }\n\n async getUserProfile(): Promise<UserProfile> {\n return await this.#sdk.getUserProfile();\n }\n\n async getIdentifier(): Promise<string> {\n return await this.#sdk.getIdentifier();\n }\n\n async signMessage(message: string): Promise<string> {\n return await this.#sdk.signMessage(message);\n }\n\n prepare(signer: {\n address: string;\n chainId: number;\n signMessage: (message: string) => Promise<string>;\n domain: string;\n }): void {\n this.#assertSIWE(this.#type, this.#sdk);\n this.#sdk.prepare(signer);\n }\n\n #assertSIWE(\n type: AuthType,\n sdk: SIWEJwtBearerAuth | SRPJwtBearerAuth,\n ): asserts sdk is SIWEJwtBearerAuth {\n if (type === AuthType.SiWE) {\n return;\n }\n\n throw new UnsupportedAuthTypeError(\n 'This method is only available via SIWE auth type',\n );\n }\n}\n\nexport { SIWEJwtBearerAuth } from './authentication-jwt-bearer/flow-siwe';\nexport { SRPJwtBearerAuth } from './authentication-jwt-bearer/flow-srp';\nexport * from './authentication-jwt-bearer/types';\n"]}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import {
|
|
2
|
+
authenticate,
|
|
3
|
+
authorizeOIDC,
|
|
4
|
+
getNonce
|
|
5
|
+
} from "./chunk-CYGZ4WLJ.mjs";
|
|
6
|
+
import {
|
|
7
|
+
getMetaMaskProviderEIP6963
|
|
8
|
+
} from "./chunk-5XSXZTED.mjs";
|
|
9
|
+
import {
|
|
10
|
+
MESSAGE_SIGNING_SNAP
|
|
11
|
+
} from "./chunk-5EBUFNAN.mjs";
|
|
12
|
+
import {
|
|
13
|
+
ValidationError
|
|
14
|
+
} from "./chunk-BHVT2QEA.mjs";
|
|
15
|
+
import {
|
|
16
|
+
SESSION_LIFETIME_MS
|
|
17
|
+
} from "./chunk-KKRIOEXD.mjs";
|
|
18
|
+
import {
|
|
19
|
+
__privateAdd,
|
|
20
|
+
__privateGet,
|
|
21
|
+
__privateMethod,
|
|
22
|
+
__privateSet
|
|
23
|
+
} from "./chunk-XUI43LEZ.mjs";
|
|
24
|
+
|
|
25
|
+
// src/sdk/authentication-jwt-bearer/flow-srp.ts
|
|
26
|
+
var defaultEIP6963SigningOptions = {
|
|
27
|
+
getIdentifier: async () => {
|
|
28
|
+
const provider = await getMetaMaskProviderEIP6963();
|
|
29
|
+
if (!provider) {
|
|
30
|
+
throw new ValidationError("No MetaMask wallet connected");
|
|
31
|
+
}
|
|
32
|
+
return await MESSAGE_SIGNING_SNAP.getPublicKey(provider);
|
|
33
|
+
},
|
|
34
|
+
signMessage: async (message) => {
|
|
35
|
+
const provider = await getMetaMaskProviderEIP6963();
|
|
36
|
+
if (!provider) {
|
|
37
|
+
throw new ValidationError("No MetaMask wallet connected");
|
|
38
|
+
}
|
|
39
|
+
if (!message.startsWith("metamask:")) {
|
|
40
|
+
throw new ValidationError('message must start with "metamask:"');
|
|
41
|
+
}
|
|
42
|
+
const formattedMessage = message;
|
|
43
|
+
return await MESSAGE_SIGNING_SNAP.signMessage(provider, formattedMessage);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
var _config, _options, _getAuthSession, getAuthSession_fn, _login, login_fn, _createSrpLoginRawMessage, createSrpLoginRawMessage_fn;
|
|
47
|
+
var SRPJwtBearerAuth = class {
|
|
48
|
+
constructor(config, options) {
|
|
49
|
+
__privateAdd(this, _getAuthSession);
|
|
50
|
+
__privateAdd(this, _login);
|
|
51
|
+
__privateAdd(this, _createSrpLoginRawMessage);
|
|
52
|
+
__privateAdd(this, _config, void 0);
|
|
53
|
+
__privateAdd(this, _options, void 0);
|
|
54
|
+
__privateSet(this, _config, config);
|
|
55
|
+
__privateSet(this, _options, {
|
|
56
|
+
storage: options.storage,
|
|
57
|
+
signing: options.signing ?? defaultEIP6963SigningOptions
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
async getAccessToken() {
|
|
61
|
+
const session = await __privateMethod(this, _getAuthSession, getAuthSession_fn).call(this);
|
|
62
|
+
if (session) {
|
|
63
|
+
return session.token.accessToken;
|
|
64
|
+
}
|
|
65
|
+
const loginResponse = await __privateMethod(this, _login, login_fn).call(this);
|
|
66
|
+
return loginResponse.token.accessToken;
|
|
67
|
+
}
|
|
68
|
+
async getUserProfile() {
|
|
69
|
+
const session = await __privateMethod(this, _getAuthSession, getAuthSession_fn).call(this);
|
|
70
|
+
if (session) {
|
|
71
|
+
return session.profile;
|
|
72
|
+
}
|
|
73
|
+
const loginResponse = await __privateMethod(this, _login, login_fn).call(this);
|
|
74
|
+
return loginResponse.profile;
|
|
75
|
+
}
|
|
76
|
+
async getIdentifier() {
|
|
77
|
+
return await __privateGet(this, _options).signing.getIdentifier();
|
|
78
|
+
}
|
|
79
|
+
async signMessage(message) {
|
|
80
|
+
return await __privateGet(this, _options).signing.signMessage(message);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
_config = new WeakMap();
|
|
84
|
+
_options = new WeakMap();
|
|
85
|
+
_getAuthSession = new WeakSet();
|
|
86
|
+
getAuthSession_fn = async function() {
|
|
87
|
+
const auth = await __privateGet(this, _options).storage.getLoginResponse();
|
|
88
|
+
if (!auth) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
const currentTime = Date.now();
|
|
92
|
+
const sessionAge = currentTime - auth.token.obtainedAt;
|
|
93
|
+
if (sessionAge < SESSION_LIFETIME_MS) {
|
|
94
|
+
return auth;
|
|
95
|
+
}
|
|
96
|
+
return null;
|
|
97
|
+
};
|
|
98
|
+
_login = new WeakSet();
|
|
99
|
+
login_fn = async function() {
|
|
100
|
+
const address = await this.getIdentifier();
|
|
101
|
+
const nonceRes = await getNonce(address, __privateGet(this, _config).env);
|
|
102
|
+
const publicKey = await __privateGet(this, _options).signing.getIdentifier();
|
|
103
|
+
const rawMessage = __privateMethod(this, _createSrpLoginRawMessage, createSrpLoginRawMessage_fn).call(this, nonceRes.nonce, publicKey);
|
|
104
|
+
const signature = await this.signMessage(rawMessage);
|
|
105
|
+
const authResponse = await authenticate(
|
|
106
|
+
rawMessage,
|
|
107
|
+
signature,
|
|
108
|
+
__privateGet(this, _config).type,
|
|
109
|
+
__privateGet(this, _config).env
|
|
110
|
+
);
|
|
111
|
+
const tokenResponse = await authorizeOIDC(
|
|
112
|
+
authResponse.token,
|
|
113
|
+
__privateGet(this, _config).env
|
|
114
|
+
);
|
|
115
|
+
const result = {
|
|
116
|
+
profile: authResponse.profile,
|
|
117
|
+
token: tokenResponse
|
|
118
|
+
};
|
|
119
|
+
await __privateGet(this, _options).storage.setLoginResponse(result);
|
|
120
|
+
return result;
|
|
121
|
+
};
|
|
122
|
+
_createSrpLoginRawMessage = new WeakSet();
|
|
123
|
+
createSrpLoginRawMessage_fn = function(nonce, publicKey) {
|
|
124
|
+
return `metamask:${nonce}:${publicKey}`;
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
export {
|
|
128
|
+
SRPJwtBearerAuth
|
|
129
|
+
};
|
|
130
|
+
//# sourceMappingURL=chunk-VXPVURGH.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sdk/authentication-jwt-bearer/flow-srp.ts"],"sourcesContent":["import { ValidationError } from '../errors';\nimport { getMetaMaskProviderEIP6963 } from '../utils/eip-6963-metamask-provider';\nimport { MESSAGE_SIGNING_SNAP } from '../utils/messaging-signing-snap-requests';\nimport { SESSION_LIFETIME_MS } from './constants';\nimport { authenticate, authorizeOIDC, getNonce } from './services';\nimport type {\n AuthConfig,\n AuthSigningOptions,\n AuthStorageOptions,\n AuthType,\n IBaseAuth,\n LoginResponse,\n UserProfile,\n} from './types';\n\ntype JwtBearerAuth_SRP_Options = {\n storage: AuthStorageOptions;\n signing?: AuthSigningOptions;\n};\n\nconst defaultEIP6963SigningOptions: AuthSigningOptions = {\n getIdentifier: async (): Promise<string> => {\n const provider = await getMetaMaskProviderEIP6963();\n if (!provider) {\n throw new ValidationError('No MetaMask wallet connected');\n }\n return await MESSAGE_SIGNING_SNAP.getPublicKey(provider);\n },\n signMessage: async (message: string): Promise<string> => {\n const provider = await getMetaMaskProviderEIP6963();\n if (!provider) {\n throw new ValidationError('No MetaMask wallet connected');\n }\n if (!message.startsWith('metamask:')) {\n throw new ValidationError('message must start with \"metamask:\"');\n }\n const formattedMessage = message as `metamask:${string}`;\n return await MESSAGE_SIGNING_SNAP.signMessage(provider, formattedMessage);\n },\n};\n\nexport class SRPJwtBearerAuth implements IBaseAuth {\n #config: AuthConfig;\n\n #options: Required<JwtBearerAuth_SRP_Options>;\n\n constructor(\n config: AuthConfig & { type: AuthType.SRP },\n options: JwtBearerAuth_SRP_Options,\n ) {\n this.#config = config;\n this.#options = {\n storage: options.storage,\n signing: options.signing ?? defaultEIP6963SigningOptions,\n };\n }\n\n async getAccessToken(): Promise<string> {\n const session = await this.#getAuthSession();\n if (session) {\n return session.token.accessToken;\n }\n\n const loginResponse = await this.#login();\n return loginResponse.token.accessToken;\n }\n\n async getUserProfile(): Promise<UserProfile> {\n const session = await this.#getAuthSession();\n if (session) {\n return session.profile;\n }\n\n const loginResponse = await this.#login();\n return loginResponse.profile;\n }\n\n async getIdentifier(): Promise<string> {\n return await this.#options.signing.getIdentifier();\n }\n\n async signMessage(message: string): Promise<string> {\n return await this.#options.signing.signMessage(message);\n }\n\n async #getAuthSession(): Promise<LoginResponse | null> {\n const auth = await this.#options.storage.getLoginResponse();\n if (!auth) {\n return null;\n }\n\n const currentTime = Date.now();\n const sessionAge = currentTime - auth.token.obtainedAt;\n if (sessionAge < SESSION_LIFETIME_MS) {\n return auth;\n }\n return null;\n }\n\n async #login(): Promise<LoginResponse> {\n // Nonce\n const address = await this.getIdentifier();\n const nonceRes = await getNonce(address, this.#config.env);\n const publicKey = await this.#options.signing.getIdentifier();\n const rawMessage = this.#createSrpLoginRawMessage(\n nonceRes.nonce,\n publicKey,\n );\n const signature = await this.signMessage(rawMessage);\n\n // Authenticate\n const authResponse = await authenticate(\n rawMessage,\n signature,\n this.#config.type,\n this.#config.env,\n );\n\n // Authorize\n const tokenResponse = await authorizeOIDC(\n authResponse.token,\n this.#config.env,\n );\n\n // Save\n const result: LoginResponse = {\n profile: authResponse.profile,\n token: tokenResponse,\n };\n\n await this.#options.storage.setLoginResponse(result);\n\n return result;\n }\n\n #createSrpLoginRawMessage(\n nonce: string,\n publicKey: string,\n ): `metamask:${string}:${string}` {\n return `metamask:${nonce}:${publicKey}` as const;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,IAAM,+BAAmD;AAAA,EACvD,eAAe,YAA6B;AAC1C,UAAM,WAAW,MAAM,2BAA2B;AAClD,QAAI,CAAC,UAAU;AACb,YAAM,IAAI,gBAAgB,8BAA8B;AAAA,IAC1D;AACA,WAAO,MAAM,qBAAqB,aAAa,QAAQ;AAAA,EACzD;AAAA,EACA,aAAa,OAAO,YAAqC;AACvD,UAAM,WAAW,MAAM,2BAA2B;AAClD,QAAI,CAAC,UAAU;AACb,YAAM,IAAI,gBAAgB,8BAA8B;AAAA,IAC1D;AACA,QAAI,CAAC,QAAQ,WAAW,WAAW,GAAG;AACpC,YAAM,IAAI,gBAAgB,qCAAqC;AAAA,IACjE;AACA,UAAM,mBAAmB;AACzB,WAAO,MAAM,qBAAqB,YAAY,UAAU,gBAAgB;AAAA,EAC1E;AACF;AAvCA;AAyCO,IAAM,mBAAN,MAA4C;AAAA,EAKjD,YACE,QACA,SACA;AAoCF,uBAAM;AAcN,uBAAM;AAoCN;AA7FA;AAEA;AAME,uBAAK,SAAU;AACf,uBAAK,UAAW;AAAA,MACd,SAAS,QAAQ;AAAA,MACjB,SAAS,QAAQ,WAAW;AAAA,IAC9B;AAAA,EACF;AAAA,EAEA,MAAM,iBAAkC;AACtC,UAAM,UAAU,MAAM,sBAAK,oCAAL;AACtB,QAAI,SAAS;AACX,aAAO,QAAQ,MAAM;AAAA,IACvB;AAEA,UAAM,gBAAgB,MAAM,sBAAK,kBAAL;AAC5B,WAAO,cAAc,MAAM;AAAA,EAC7B;AAAA,EAEA,MAAM,iBAAuC;AAC3C,UAAM,UAAU,MAAM,sBAAK,oCAAL;AACtB,QAAI,SAAS;AACX,aAAO,QAAQ;AAAA,IACjB;AAEA,UAAM,gBAAgB,MAAM,sBAAK,kBAAL;AAC5B,WAAO,cAAc;AAAA,EACvB;AAAA,EAEA,MAAM,gBAAiC;AACrC,WAAO,MAAM,mBAAK,UAAS,QAAQ,cAAc;AAAA,EACnD;AAAA,EAEA,MAAM,YAAY,SAAkC;AAClD,WAAO,MAAM,mBAAK,UAAS,QAAQ,YAAY,OAAO;AAAA,EACxD;AA0DF;AAnGE;AAEA;AAyCM;AAAA,oBAAe,iBAAkC;AACrD,QAAM,OAAO,MAAM,mBAAK,UAAS,QAAQ,iBAAiB;AAC1D,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,KAAK,IAAI;AAC7B,QAAM,aAAa,cAAc,KAAK,MAAM;AAC5C,MAAI,aAAa,qBAAqB;AACpC,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEM;AAAA,WAAM,iBAA2B;AAErC,QAAM,UAAU,MAAM,KAAK,cAAc;AACzC,QAAM,WAAW,MAAM,SAAS,SAAS,mBAAK,SAAQ,GAAG;AACzD,QAAM,YAAY,MAAM,mBAAK,UAAS,QAAQ,cAAc;AAC5D,QAAM,aAAa,sBAAK,wDAAL,WACjB,SAAS,OACT;AAEF,QAAM,YAAY,MAAM,KAAK,YAAY,UAAU;AAGnD,QAAM,eAAe,MAAM;AAAA,IACzB;AAAA,IACA;AAAA,IACA,mBAAK,SAAQ;AAAA,IACb,mBAAK,SAAQ;AAAA,EACf;AAGA,QAAM,gBAAgB,MAAM;AAAA,IAC1B,aAAa;AAAA,IACb,mBAAK,SAAQ;AAAA,EACf;AAGA,QAAM,SAAwB;AAAA,IAC5B,SAAS,aAAa;AAAA,IACtB,OAAO;AAAA,EACT;AAEA,QAAM,mBAAK,UAAS,QAAQ,iBAAiB,MAAM;AAEnD,SAAO;AACT;AAEA;AAAA,8BAAyB,SACvB,OACA,WACgC;AAChC,SAAO,YAAY,KAAK,IAAI,SAAS;AACvC;","names":[]}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunkZ4BLTVTBjs = require('./chunk-Z4BLTVTB.js');
|
|
6
|
+
|
|
7
|
+
// src/sdk/encryption.ts
|
|
8
|
+
var _aes = require('@noble/ciphers/aes');
|
|
9
|
+
var _webcrypto = require('@noble/ciphers/webcrypto');
|
|
10
|
+
var _pbkdf2 = require('@noble/hashes/pbkdf2');
|
|
11
|
+
var _sha256 = require('@noble/hashes/sha256');
|
|
12
|
+
var _utils = require('@noble/hashes/utils');
|
|
13
|
+
function byteArrayToBase64(byteArray) {
|
|
14
|
+
return Buffer.from(byteArray).toString("base64");
|
|
15
|
+
}
|
|
16
|
+
function base64ToByteArray(base64) {
|
|
17
|
+
return new Uint8Array(Buffer.from(base64, "base64"));
|
|
18
|
+
}
|
|
19
|
+
function bytesToUtf8(byteArray) {
|
|
20
|
+
const decoder = new TextDecoder("utf-8");
|
|
21
|
+
return decoder.decode(byteArray);
|
|
22
|
+
}
|
|
23
|
+
var _ALGORITHM_NONCE_SIZE, _ALGORITHM_KEY_SIZE, _PBKDF2_SALT_SIZE, _PBKDF2_ITERATIONS, _encryptStringV1, encryptStringV1_fn, _decryptStringV1, decryptStringV1_fn, _encrypt, encrypt_fn, _decrypt, decrypt_fn;
|
|
24
|
+
var EncryptorDecryptor = class {
|
|
25
|
+
constructor() {
|
|
26
|
+
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _encryptStringV1);
|
|
27
|
+
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _decryptStringV1);
|
|
28
|
+
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _encrypt);
|
|
29
|
+
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _decrypt);
|
|
30
|
+
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _ALGORITHM_NONCE_SIZE, 12);
|
|
31
|
+
// 12 bytes
|
|
32
|
+
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _ALGORITHM_KEY_SIZE, 16);
|
|
33
|
+
// 16 bytes
|
|
34
|
+
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _PBKDF2_SALT_SIZE, 16);
|
|
35
|
+
// 16 bytes
|
|
36
|
+
_chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _PBKDF2_ITERATIONS, 9e5);
|
|
37
|
+
}
|
|
38
|
+
encryptString(plaintext, password) {
|
|
39
|
+
try {
|
|
40
|
+
if (plaintext.trim().length === 0) {
|
|
41
|
+
throw new Error("No plain text provided");
|
|
42
|
+
}
|
|
43
|
+
return _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _encryptStringV1, encryptStringV1_fn).call(this, plaintext, password);
|
|
44
|
+
} catch (e) {
|
|
45
|
+
const errorMessage = e instanceof Error ? e.message : String(e);
|
|
46
|
+
throw new Error(`Unable to encrypt string - ${errorMessage}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
decryptString(encryptedDataStr, password) {
|
|
50
|
+
try {
|
|
51
|
+
const encryptedData = JSON.parse(encryptedDataStr);
|
|
52
|
+
if (encryptedData.v === "1") {
|
|
53
|
+
return _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _decryptStringV1, decryptStringV1_fn).call(this, encryptedData, password);
|
|
54
|
+
}
|
|
55
|
+
throw new Error(
|
|
56
|
+
`Unsupported encrypted data payload - ${JSON.stringify(encryptedData)}`
|
|
57
|
+
);
|
|
58
|
+
} catch (e) {
|
|
59
|
+
const errorMessage = e instanceof Error ? e.message : String(e);
|
|
60
|
+
throw new Error(`Unable to decrypt string - ${errorMessage}`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
_ALGORITHM_NONCE_SIZE = new WeakMap();
|
|
65
|
+
_ALGORITHM_KEY_SIZE = new WeakMap();
|
|
66
|
+
_PBKDF2_SALT_SIZE = new WeakMap();
|
|
67
|
+
_PBKDF2_ITERATIONS = new WeakMap();
|
|
68
|
+
_encryptStringV1 = new WeakSet();
|
|
69
|
+
encryptStringV1_fn = function(plaintext, password) {
|
|
70
|
+
const salt = _webcrypto.randomBytes.call(void 0, _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _PBKDF2_SALT_SIZE));
|
|
71
|
+
const key = _pbkdf2.pbkdf2.call(void 0, _sha256.sha256, password, salt, {
|
|
72
|
+
c: _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _PBKDF2_ITERATIONS),
|
|
73
|
+
dkLen: _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _ALGORITHM_KEY_SIZE)
|
|
74
|
+
});
|
|
75
|
+
const plaintextRaw = _utils.utf8ToBytes.call(void 0, plaintext);
|
|
76
|
+
const ciphertextAndNonceAndSalt = _utils.concatBytes.call(void 0,
|
|
77
|
+
salt,
|
|
78
|
+
_chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _encrypt, encrypt_fn).call(this, plaintextRaw, key)
|
|
79
|
+
);
|
|
80
|
+
const encryptedData = byteArrayToBase64(ciphertextAndNonceAndSalt);
|
|
81
|
+
const encryptedPayload = {
|
|
82
|
+
v: "1",
|
|
83
|
+
d: encryptedData,
|
|
84
|
+
iterations: _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _PBKDF2_ITERATIONS)
|
|
85
|
+
};
|
|
86
|
+
return JSON.stringify(encryptedPayload);
|
|
87
|
+
};
|
|
88
|
+
_decryptStringV1 = new WeakSet();
|
|
89
|
+
decryptStringV1_fn = function(data, password) {
|
|
90
|
+
const { iterations, d: base64CiphertextAndNonceAndSalt } = data;
|
|
91
|
+
const ciphertextAndNonceAndSalt = base64ToByteArray(
|
|
92
|
+
base64CiphertextAndNonceAndSalt
|
|
93
|
+
);
|
|
94
|
+
const salt = ciphertextAndNonceAndSalt.slice(0, _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _PBKDF2_SALT_SIZE));
|
|
95
|
+
const ciphertextAndNonce = ciphertextAndNonceAndSalt.slice(
|
|
96
|
+
_chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _PBKDF2_SALT_SIZE),
|
|
97
|
+
ciphertextAndNonceAndSalt.length
|
|
98
|
+
);
|
|
99
|
+
const key = _pbkdf2.pbkdf2.call(void 0, _sha256.sha256, password, salt, {
|
|
100
|
+
c: iterations,
|
|
101
|
+
dkLen: _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _ALGORITHM_KEY_SIZE)
|
|
102
|
+
});
|
|
103
|
+
return bytesToUtf8(_chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _decrypt, decrypt_fn).call(this, ciphertextAndNonce, key));
|
|
104
|
+
};
|
|
105
|
+
_encrypt = new WeakSet();
|
|
106
|
+
encrypt_fn = function(plaintext, key) {
|
|
107
|
+
const nonce = _webcrypto.randomBytes.call(void 0, _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _ALGORITHM_NONCE_SIZE));
|
|
108
|
+
const ciphertext = _aes.gcm.call(void 0, key, nonce).encrypt(plaintext);
|
|
109
|
+
return _utils.concatBytes.call(void 0, nonce, ciphertext);
|
|
110
|
+
};
|
|
111
|
+
_decrypt = new WeakSet();
|
|
112
|
+
decrypt_fn = function(ciphertextAndNonce, key) {
|
|
113
|
+
const nonce = ciphertextAndNonce.slice(0, _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _ALGORITHM_NONCE_SIZE));
|
|
114
|
+
const ciphertext = ciphertextAndNonce.slice(
|
|
115
|
+
_chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _ALGORITHM_NONCE_SIZE),
|
|
116
|
+
ciphertextAndNonce.length
|
|
117
|
+
);
|
|
118
|
+
return _aes.gcm.call(void 0, key, nonce).decrypt(ciphertext);
|
|
119
|
+
};
|
|
120
|
+
var encryption = new EncryptorDecryptor();
|
|
121
|
+
var encryption_default = encryption;
|
|
122
|
+
function createSHA256Hash(data) {
|
|
123
|
+
const hashedData = _sha256.sha256.call(void 0, data);
|
|
124
|
+
return _utils.bytesToHex.call(void 0, hashedData);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
exports.encryption_default = encryption_default; exports.createSHA256Hash = createSHA256Hash;
|
|
131
|
+
//# sourceMappingURL=chunk-VZXD5DCQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sdk/encryption.ts"],"names":[],"mappings":"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","sourcesContent":["import { gcm } from '@noble/ciphers/aes';\nimport { randomBytes } from '@noble/ciphers/webcrypto';\nimport { pbkdf2 } from '@noble/hashes/pbkdf2';\nimport { sha256 } from '@noble/hashes/sha256';\nimport { utf8ToBytes, concatBytes, bytesToHex } from '@noble/hashes/utils';\n\nexport type EncryptedPayload = {\n v: '1'; // version\n d: string; // data\n iterations: number;\n};\n\n/**\n * Converts Byte Array to Base64 String\n *\n * @param byteArray - array of bytes\n * @returns base64 string\n */\nfunction byteArrayToBase64(byteArray: Uint8Array): string {\n return Buffer.from(byteArray).toString('base64');\n}\n\n/**\n * Converts Base64 String into Byte Array\n *\n * @param base64 - base64 encoded string\n * @returns byte array\n */\nfunction base64ToByteArray(base64: string): Uint8Array {\n return new Uint8Array(Buffer.from(base64, 'base64'));\n}\n\n/**\n * Converts Bytes into UTF-8 Encoded String\n * @param byteArray - array of bytes\n * @returns uft-8 encoded string\n */\nfunction bytesToUtf8(byteArray: Uint8Array): string {\n const decoder = new TextDecoder('utf-8');\n return decoder.decode(byteArray);\n}\n\nclass EncryptorDecryptor {\n #ALGORITHM_NONCE_SIZE = 12; // 12 bytes\n\n #ALGORITHM_KEY_SIZE = 16; // 16 bytes\n\n #PBKDF2_SALT_SIZE = 16; // 16 bytes\n\n #PBKDF2_ITERATIONS = 900_000;\n\n encryptString(plaintext: string, password: string): string {\n try {\n if (plaintext.trim().length === 0) {\n throw new Error('No plain text provided');\n }\n\n return this.#encryptStringV1(plaintext, password);\n } catch (e) {\n /* istanbul ignore next */\n const errorMessage = e instanceof Error ? e.message : String(e);\n throw new Error(`Unable to encrypt string - ${errorMessage}`);\n }\n }\n\n decryptString(encryptedDataStr: string, password: string): string {\n try {\n const encryptedData: EncryptedPayload = JSON.parse(encryptedDataStr);\n if (encryptedData.v === '1') {\n return this.#decryptStringV1(encryptedData, password);\n }\n throw new Error(\n `Unsupported encrypted data payload - ${JSON.stringify(encryptedData)}`,\n );\n } catch (e) {\n /* istanbul ignore next */\n const errorMessage = e instanceof Error ? e.message : String(e);\n throw new Error(`Unable to decrypt string - ${errorMessage}`);\n }\n }\n\n #encryptStringV1(plaintext: string, password: string): string {\n const salt = randomBytes(this.#PBKDF2_SALT_SIZE);\n\n // Derive a key using PBKDF2.\n const key = pbkdf2(sha256, password, salt, {\n c: this.#PBKDF2_ITERATIONS,\n dkLen: this.#ALGORITHM_KEY_SIZE,\n });\n\n // Encrypt and prepend salt.\n const plaintextRaw = utf8ToBytes(plaintext);\n const ciphertextAndNonceAndSalt = concatBytes(\n salt,\n this.#encrypt(plaintextRaw, key),\n );\n\n // Convert to Base64\n const encryptedData = byteArrayToBase64(ciphertextAndNonceAndSalt);\n\n const encryptedPayload: EncryptedPayload = {\n v: '1',\n d: encryptedData,\n iterations: this.#PBKDF2_ITERATIONS,\n };\n\n return JSON.stringify(encryptedPayload);\n }\n\n #decryptStringV1(data: EncryptedPayload, password: string): string {\n const { iterations, d: base64CiphertextAndNonceAndSalt } = data;\n\n // Decode the base64.\n const ciphertextAndNonceAndSalt = base64ToByteArray(\n base64CiphertextAndNonceAndSalt,\n );\n\n // Create buffers of salt and ciphertextAndNonce.\n const salt = ciphertextAndNonceAndSalt.slice(0, this.#PBKDF2_SALT_SIZE);\n const ciphertextAndNonce = ciphertextAndNonceAndSalt.slice(\n this.#PBKDF2_SALT_SIZE,\n ciphertextAndNonceAndSalt.length,\n );\n\n // Derive the key using PBKDF2.\n const key = pbkdf2(sha256, password, salt, {\n c: iterations,\n dkLen: this.#ALGORITHM_KEY_SIZE,\n });\n\n // Decrypt and return result.\n return bytesToUtf8(this.#decrypt(ciphertextAndNonce, key));\n }\n\n #encrypt(plaintext: Uint8Array, key: Uint8Array): Uint8Array {\n const nonce = randomBytes(this.#ALGORITHM_NONCE_SIZE);\n\n // Encrypt and prepend nonce.\n const ciphertext = gcm(key, nonce).encrypt(plaintext);\n\n return concatBytes(nonce, ciphertext);\n }\n\n #decrypt(ciphertextAndNonce: Uint8Array, key: Uint8Array): Uint8Array {\n // Create buffers of nonce and ciphertext.\n const nonce = ciphertextAndNonce.slice(0, this.#ALGORITHM_NONCE_SIZE);\n const ciphertext = ciphertextAndNonce.slice(\n this.#ALGORITHM_NONCE_SIZE,\n ciphertextAndNonce.length,\n );\n\n // Decrypt and return result.\n return gcm(key, nonce).decrypt(ciphertext);\n }\n}\n\nconst encryption = new EncryptorDecryptor();\nexport default encryption;\n\n/**\n * Create a SHA-256 hash from a given string.\n *\n * @param data - input\n * @returns hash\n */\nexport function createSHA256Hash(data: string): string {\n const hashedData = sha256(data);\n return bytesToHex(hashedData);\n}\n"]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// src/sdk/env.ts
|
|
2
|
+
var Env = /* @__PURE__ */ ((Env2) => {
|
|
3
|
+
Env2["DEV"] = "dev";
|
|
4
|
+
Env2["UAT"] = "uat";
|
|
5
|
+
Env2["PRD"] = "prd";
|
|
6
|
+
return Env2;
|
|
7
|
+
})(Env || {});
|
|
8
|
+
var ENV_URLS = {
|
|
9
|
+
dev: {
|
|
10
|
+
authApiUrl: "https://authentication.dev-api.cx.metamask.io",
|
|
11
|
+
oidcApiUrl: "https://oidc.dev-api.cx.metamask.io",
|
|
12
|
+
userStorageApiUrl: "https://user-storage.dev-api.cx.metamask.io"
|
|
13
|
+
},
|
|
14
|
+
uat: {
|
|
15
|
+
authApiUrl: "https://authentication.uat-api.cx.metamask.io",
|
|
16
|
+
oidcApiUrl: "https://oidc.uat-api.cx.metamask.io",
|
|
17
|
+
userStorageApiUrl: "https://user-storage.uat-api.cx.metamask.io"
|
|
18
|
+
},
|
|
19
|
+
prd: {
|
|
20
|
+
authApiUrl: "https://authentication.api.cx.metamask.io",
|
|
21
|
+
oidcApiUrl: "https://oidc.api.cx.metamask.io",
|
|
22
|
+
userStorageApiUrl: "https://user-storage.api.cx.metamask.io"
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
function getEnvUrls(env) {
|
|
26
|
+
if (!ENV_URLS[env]) {
|
|
27
|
+
throw new Error("invalid environment configuration");
|
|
28
|
+
}
|
|
29
|
+
return ENV_URLS[env];
|
|
30
|
+
}
|
|
31
|
+
function getOidcClientId(env) {
|
|
32
|
+
switch (env) {
|
|
33
|
+
case "dev" /* DEV */:
|
|
34
|
+
return "f1a963d7-50dc-4cb5-8d81-f1f3654f0df3";
|
|
35
|
+
case "uat" /* UAT */:
|
|
36
|
+
return "a9de167c-c9a6-43d8-af39-d301fd44c485";
|
|
37
|
+
case "prd" /* PRD */:
|
|
38
|
+
return "1132f10a-b4e5-4390-a5f2-d9c6022db564";
|
|
39
|
+
default:
|
|
40
|
+
throw new Error("invalid env: cannot determine oidc client id");
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export {
|
|
45
|
+
Env,
|
|
46
|
+
getEnvUrls,
|
|
47
|
+
getOidcClientId
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=chunk-WJRV2JCX.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sdk/env.ts"],"sourcesContent":["export const enum Env {\n DEV = 'dev',\n UAT = 'uat',\n PRD = 'prd',\n}\n\ntype EnvUrlsEntry = {\n authApiUrl: string;\n oidcApiUrl: string;\n userStorageApiUrl: string;\n};\n\nconst ENV_URLS: Record<Env, EnvUrlsEntry> = {\n dev: {\n authApiUrl: 'https://authentication.dev-api.cx.metamask.io',\n oidcApiUrl: 'https://oidc.dev-api.cx.metamask.io',\n userStorageApiUrl: 'https://user-storage.dev-api.cx.metamask.io',\n },\n uat: {\n authApiUrl: 'https://authentication.uat-api.cx.metamask.io',\n oidcApiUrl: 'https://oidc.uat-api.cx.metamask.io',\n userStorageApiUrl: 'https://user-storage.uat-api.cx.metamask.io',\n },\n prd: {\n authApiUrl: 'https://authentication.api.cx.metamask.io',\n oidcApiUrl: 'https://oidc.api.cx.metamask.io',\n userStorageApiUrl: 'https://user-storage.api.cx.metamask.io',\n },\n};\n\n/**\n * Validates and returns correct environment endpoints\n *\n * @param env - environment field\n * @returns the correct environment url\n * @throws on invalid environment passed\n */\nexport function getEnvUrls(env: Env): EnvUrlsEntry {\n if (!ENV_URLS[env]) {\n throw new Error('invalid environment configuration');\n }\n return ENV_URLS[env];\n}\n\n/**\n * Returns the valid OIDC Client ID (used during authorization)\n *\n * @param env - environment field\n * @returns the OIDC client id for the environment\n */\nexport function getOidcClientId(env: Env): string {\n switch (env) {\n case Env.DEV:\n return 'f1a963d7-50dc-4cb5-8d81-f1f3654f0df3';\n /* istanbul ignore next */\n case Env.UAT:\n return 'a9de167c-c9a6-43d8-af39-d301fd44c485';\n /* istanbul ignore next */\n case Env.PRD:\n return '1132f10a-b4e5-4390-a5f2-d9c6022db564';\n /* istanbul ignore next */\n default:\n throw new Error('invalid env: cannot determine oidc client id');\n }\n}\n"],"mappings":";AAAO,IAAW,MAAX,kBAAWA,SAAX;AACL,EAAAA,KAAA,SAAM;AACN,EAAAA,KAAA,SAAM;AACN,EAAAA,KAAA,SAAM;AAHU,SAAAA;AAAA,GAAA;AAYlB,IAAM,WAAsC;AAAA,EAC1C,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,mBAAmB;AAAA,EACrB;AAAA,EACA,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,mBAAmB;AAAA,EACrB;AAAA,EACA,KAAK;AAAA,IACH,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,mBAAmB;AAAA,EACrB;AACF;AASO,SAAS,WAAW,KAAwB;AACjD,MAAI,CAAC,SAAS,GAAG,GAAG;AAClB,UAAM,IAAI,MAAM,mCAAmC;AAAA,EACrD;AACA,SAAO,SAAS,GAAG;AACrB;AAQO,SAAS,gBAAgB,KAAkB;AAChD,UAAQ,KAAK;AAAA,IACX,KAAK;AACH,aAAO;AAAA,IAET,KAAK;AACH,aAAO;AAAA,IAET,KAAK;AACH,aAAO;AAAA,IAET;AACE,YAAM,IAAI,MAAM,8CAA8C;AAAA,EAClE;AACF;","names":["Env"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
var __accessCheck = (obj, member, msg) => {
|
|
2
|
+
if (!member.has(obj))
|
|
3
|
+
throw TypeError("Cannot " + msg);
|
|
4
|
+
};
|
|
5
|
+
var __privateGet = (obj, member, getter) => {
|
|
6
|
+
__accessCheck(obj, member, "read from private field");
|
|
7
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
8
|
+
};
|
|
9
|
+
var __privateAdd = (obj, member, value) => {
|
|
10
|
+
if (member.has(obj))
|
|
11
|
+
throw TypeError("Cannot add the same private member more than once");
|
|
12
|
+
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
13
|
+
};
|
|
14
|
+
var __privateSet = (obj, member, value, setter) => {
|
|
15
|
+
__accessCheck(obj, member, "write to private field");
|
|
16
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
17
|
+
return value;
|
|
18
|
+
};
|
|
19
|
+
var __privateMethod = (obj, member, method) => {
|
|
20
|
+
__accessCheck(obj, member, "access private method");
|
|
21
|
+
return method;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export {
|
|
25
|
+
__privateGet,
|
|
26
|
+
__privateAdd,
|
|
27
|
+
__privateSet,
|
|
28
|
+
__privateMethod
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=chunk-XUI43LEZ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var __accessCheck = (obj, member, msg) => {
|
|
2
|
+
if (!member.has(obj))
|
|
3
|
+
throw TypeError("Cannot " + msg);
|
|
4
|
+
};
|
|
5
|
+
var __privateGet = (obj, member, getter) => {
|
|
6
|
+
__accessCheck(obj, member, "read from private field");
|
|
7
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
8
|
+
};
|
|
9
|
+
var __privateAdd = (obj, member, value) => {
|
|
10
|
+
if (member.has(obj))
|
|
11
|
+
throw TypeError("Cannot add the same private member more than once");
|
|
12
|
+
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
13
|
+
};
|
|
14
|
+
var __privateSet = (obj, member, value, setter) => {
|
|
15
|
+
__accessCheck(obj, member, "write to private field");
|
|
16
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
17
|
+
return value;
|
|
18
|
+
};
|
|
19
|
+
var __privateMethod = (obj, member, method) => {
|
|
20
|
+
__accessCheck(obj, member, "access private method");
|
|
21
|
+
return method;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
exports.__privateGet = __privateGet; exports.__privateAdd = __privateAdd; exports.__privateSet = __privateSet; exports.__privateMethod = __privateMethod;
|
|
30
|
+
//# sourceMappingURL=chunk-Z4BLTVTB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-DEATIRII.js');
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkVHUU4HEYjs = require('./chunk-VHUU4HEY.js');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _chunkUVJVONBFjs = require('./chunk-UVJVONBF.js');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
var _chunkOF3TQWGXjs = require('./chunk-OF3TQWGX.js');
|
|
11
|
+
require('./chunk-NRH6O4QZ.js');
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
var _chunkCFST6GWEjs = require('./chunk-CFST6GWE.js');
|
|
15
|
+
require('./chunk-RG4II6WH.js');
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
var _chunkPQ5T4GHYjs = require('./chunk-PQ5T4GHY.js');
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
var _chunk6X6I3HZUjs = require('./chunk-6X6I3HZU.js');
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
var _chunkVZXD5DCQjs = require('./chunk-VZXD5DCQ.js');
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
var _chunkKHFPE566js = require('./chunk-KHFPE566.js');
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
var _chunkGQLHSQGZjs = require('./chunk-GQLHSQGZ.js');
|
|
43
|
+
require('./chunk-BARZBXO7.js');
|
|
44
|
+
require('./chunk-Z4BLTVTB.js');
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
exports.AuthType = _chunkCFST6GWEjs.AuthType; exports.Env = _chunkKHFPE566js.Env; exports.JwtBearerAuth = _chunkVHUU4HEYjs.JwtBearerAuth; exports.MESSAGE_SIGNING_SNAP = _chunkPQ5T4GHYjs.MESSAGE_SIGNING_SNAP; exports.NonceRetrievalError = _chunkGQLHSQGZjs.NonceRetrievalError; exports.NotFoundError = _chunkGQLHSQGZjs.NotFoundError; exports.SIWEJwtBearerAuth = _chunkUVJVONBFjs.SIWEJwtBearerAuth; exports.SNAP_ORIGIN = _chunkPQ5T4GHYjs.SNAP_ORIGIN; exports.SRPJwtBearerAuth = _chunkOF3TQWGXjs.SRPJwtBearerAuth; exports.STORAGE_URL = _chunk6X6I3HZUjs.STORAGE_URL; exports.SignInError = _chunkGQLHSQGZjs.SignInError; exports.UnsupportedAuthTypeError = _chunkGQLHSQGZjs.UnsupportedAuthTypeError; exports.UserStorage = _chunk6X6I3HZUjs.UserStorage; exports.UserStorageError = _chunkGQLHSQGZjs.UserStorageError; exports.ValidationError = _chunkGQLHSQGZjs.ValidationError; exports.connectSnap = _chunkPQ5T4GHYjs.connectSnap; exports.createSHA256Hash = _chunkVZXD5DCQjs.createSHA256Hash; exports.getEnvUrls = _chunkKHFPE566js.getEnvUrls; exports.getOidcClientId = _chunkKHFPE566js.getOidcClientId; exports.getSnap = _chunkPQ5T4GHYjs.getSnap; exports.getSnaps = _chunkPQ5T4GHYjs.getSnaps;
|
|
68
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import "./chunk-MKJYSWME.mjs";
|
|
2
|
+
import {
|
|
3
|
+
JwtBearerAuth
|
|
4
|
+
} from "./chunk-GVMIXMYB.mjs";
|
|
5
|
+
import {
|
|
6
|
+
SIWEJwtBearerAuth
|
|
7
|
+
} from "./chunk-4NGEEDGV.mjs";
|
|
8
|
+
import {
|
|
9
|
+
SRPJwtBearerAuth
|
|
10
|
+
} from "./chunk-VXPVURGH.mjs";
|
|
11
|
+
import "./chunk-CYGZ4WLJ.mjs";
|
|
12
|
+
import {
|
|
13
|
+
AuthType
|
|
14
|
+
} from "./chunk-2FZSWVHT.mjs";
|
|
15
|
+
import "./chunk-5XSXZTED.mjs";
|
|
16
|
+
import {
|
|
17
|
+
MESSAGE_SIGNING_SNAP,
|
|
18
|
+
SNAP_ORIGIN,
|
|
19
|
+
connectSnap,
|
|
20
|
+
getSnap,
|
|
21
|
+
getSnaps
|
|
22
|
+
} from "./chunk-5EBUFNAN.mjs";
|
|
23
|
+
import {
|
|
24
|
+
STORAGE_URL,
|
|
25
|
+
UserStorage
|
|
26
|
+
} from "./chunk-CZ7YK35S.mjs";
|
|
27
|
+
import {
|
|
28
|
+
createSHA256Hash
|
|
29
|
+
} from "./chunk-UMKBFFZ5.mjs";
|
|
30
|
+
import {
|
|
31
|
+
Env,
|
|
32
|
+
getEnvUrls,
|
|
33
|
+
getOidcClientId
|
|
34
|
+
} from "./chunk-WJRV2JCX.mjs";
|
|
35
|
+
import {
|
|
36
|
+
NonceRetrievalError,
|
|
37
|
+
NotFoundError,
|
|
38
|
+
SignInError,
|
|
39
|
+
UnsupportedAuthTypeError,
|
|
40
|
+
UserStorageError,
|
|
41
|
+
ValidationError
|
|
42
|
+
} from "./chunk-BHVT2QEA.mjs";
|
|
43
|
+
import "./chunk-KKRIOEXD.mjs";
|
|
44
|
+
import "./chunk-XUI43LEZ.mjs";
|
|
45
|
+
export {
|
|
46
|
+
AuthType,
|
|
47
|
+
Env,
|
|
48
|
+
JwtBearerAuth,
|
|
49
|
+
MESSAGE_SIGNING_SNAP,
|
|
50
|
+
NonceRetrievalError,
|
|
51
|
+
NotFoundError,
|
|
52
|
+
SIWEJwtBearerAuth,
|
|
53
|
+
SNAP_ORIGIN,
|
|
54
|
+
SRPJwtBearerAuth,
|
|
55
|
+
STORAGE_URL,
|
|
56
|
+
SignInError,
|
|
57
|
+
UnsupportedAuthTypeError,
|
|
58
|
+
UserStorage,
|
|
59
|
+
UserStorageError,
|
|
60
|
+
ValidationError,
|
|
61
|
+
connectSnap,
|
|
62
|
+
createSHA256Hash,
|
|
63
|
+
getEnvUrls,
|
|
64
|
+
getOidcClientId,
|
|
65
|
+
getSnap,
|
|
66
|
+
getSnaps
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkBARZBXO7js = require('../../chunk-BARZBXO7.js');
|
|
4
|
+
require('../../chunk-Z4BLTVTB.js');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
exports.SESSION_LIFETIME_MS = _chunkBARZBXO7js.SESSION_LIFETIME_MS;
|
|
8
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkUVJVONBFjs = require('../../chunk-UVJVONBF.js');
|
|
4
|
+
require('../../chunk-NRH6O4QZ.js');
|
|
5
|
+
require('../../chunk-CFST6GWE.js');
|
|
6
|
+
require('../../chunk-KHFPE566.js');
|
|
7
|
+
require('../../chunk-GQLHSQGZ.js');
|
|
8
|
+
require('../../chunk-BARZBXO7.js');
|
|
9
|
+
require('../../chunk-Z4BLTVTB.js');
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
exports.SIWEJwtBearerAuth = _chunkUVJVONBFjs.SIWEJwtBearerAuth;
|
|
13
|
+
//# sourceMappingURL=flow-siwe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SIWEJwtBearerAuth
|
|
3
|
+
} from "../../chunk-4NGEEDGV.mjs";
|
|
4
|
+
import "../../chunk-CYGZ4WLJ.mjs";
|
|
5
|
+
import "../../chunk-2FZSWVHT.mjs";
|
|
6
|
+
import "../../chunk-WJRV2JCX.mjs";
|
|
7
|
+
import "../../chunk-BHVT2QEA.mjs";
|
|
8
|
+
import "../../chunk-KKRIOEXD.mjs";
|
|
9
|
+
import "../../chunk-XUI43LEZ.mjs";
|
|
10
|
+
export {
|
|
11
|
+
SIWEJwtBearerAuth
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=flow-siwe.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkOF3TQWGXjs = require('../../chunk-OF3TQWGX.js');
|
|
4
|
+
require('../../chunk-NRH6O4QZ.js');
|
|
5
|
+
require('../../chunk-CFST6GWE.js');
|
|
6
|
+
require('../../chunk-RG4II6WH.js');
|
|
7
|
+
require('../../chunk-PQ5T4GHY.js');
|
|
8
|
+
require('../../chunk-KHFPE566.js');
|
|
9
|
+
require('../../chunk-GQLHSQGZ.js');
|
|
10
|
+
require('../../chunk-BARZBXO7.js');
|
|
11
|
+
require('../../chunk-Z4BLTVTB.js');
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
exports.SRPJwtBearerAuth = _chunkOF3TQWGXjs.SRPJwtBearerAuth;
|
|
15
|
+
//# sourceMappingURL=flow-srp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|