@crossmint/common-sdk-auth 1.0.3 → 1.0.5
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/CrossmintAuth.cjs +1 -14
- package/dist/CrossmintAuth.js +1 -14
- package/dist/chunk-3XL5CEDG.js +1 -0
- package/dist/chunk-6R7OYJL5.cjs +1 -0
- package/dist/chunk-ATVCM6P4.js +0 -0
- package/dist/chunk-AVI4AQKJ.cjs +1 -0
- package/dist/chunk-DUTPQ56Q.js +1 -0
- package/dist/chunk-GMVKBAFQ.cjs +1 -0
- package/dist/chunk-H23FMBUL.js +0 -0
- package/dist/chunk-H6HI5RYD.js +1 -0
- package/dist/chunk-IFDKINXX.cjs +1 -0
- package/dist/chunk-JIP2LL37.cjs +1 -0
- package/dist/chunk-LEC76ZOA.cjs +1 -0
- package/dist/chunk-LEZ3ABWL.js +0 -0
- package/dist/chunk-NQMKBUHU.js +1 -0
- package/dist/chunk-O5JEEJXH.cjs +1 -0
- package/dist/chunk-QWSUJZEA.js +1 -0
- package/dist/chunk-T3DE6MR3.cjs +1 -0
- package/dist/chunk-UDDCAABA.js +0 -0
- package/dist/chunk-VQHFGGR7.js +0 -0
- package/dist/chunk-W2LLJPST.cjs +1 -0
- package/dist/chunk-ZSLB6Y6N.cjs +1 -0
- package/dist/index.cjs +1 -35
- package/dist/index.js +1 -35
- package/dist/types/authmaterial.cjs +1 -2
- package/dist/types/authmaterial.js +1 -2
- package/dist/types/cookies.cjs +1 -2
- package/dist/types/cookies.js +1 -2
- package/dist/types/errors.cjs +1 -8
- package/dist/types/errors.js +1 -8
- package/dist/types/index.cjs +1 -12
- package/dist/types/index.js +1 -12
- package/dist/types/user.cjs +1 -2
- package/dist/types/user.js +1 -2
- package/dist/utils/constants.cjs +1 -18
- package/dist/utils/constants.js +1 -18
- package/dist/utils/index.cjs +1 -23
- package/dist/utils/index.js +1 -23
- package/dist/utils/isEmailValid.cjs +1 -8
- package/dist/utils/isEmailValid.js +1 -8
- package/package.json +3 -4
- package/dist/CrossmintAuth.cjs.map +0 -1
- package/dist/CrossmintAuth.js.map +0 -1
- package/dist/chunk-2FARFC7B.js +0 -10
- package/dist/chunk-2FARFC7B.js.map +0 -1
- package/dist/chunk-36V4M66O.js +0 -104
- package/dist/chunk-36V4M66O.js.map +0 -1
- package/dist/chunk-3W57CWB3.js +0 -1
- package/dist/chunk-3W57CWB3.js.map +0 -1
- package/dist/chunk-45JIGU2A.cjs +0 -1
- package/dist/chunk-45JIGU2A.cjs.map +0 -1
- package/dist/chunk-55V5CK24.cjs +0 -10
- package/dist/chunk-55V5CK24.cjs.map +0 -1
- package/dist/chunk-5BYL6R7Z.cjs +0 -1
- package/dist/chunk-5BYL6R7Z.cjs.map +0 -1
- package/dist/chunk-5GNH6BCI.cjs +0 -1
- package/dist/chunk-5GNH6BCI.cjs.map +0 -1
- package/dist/chunk-6TUZARPA.cjs +0 -21
- package/dist/chunk-6TUZARPA.cjs.map +0 -1
- package/dist/chunk-ALL2PU4Z.cjs +0 -104
- package/dist/chunk-ALL2PU4Z.cjs.map +0 -1
- package/dist/chunk-C4KO2HLL.js +0 -25
- package/dist/chunk-C4KO2HLL.js.map +0 -1
- package/dist/chunk-GWB5ILON.js +0 -8
- package/dist/chunk-GWB5ILON.js.map +0 -1
- package/dist/chunk-KQWSJPGM.js +0 -1
- package/dist/chunk-KQWSJPGM.js.map +0 -1
- package/dist/chunk-L2T5Q65Q.cjs +0 -25
- package/dist/chunk-L2T5Q65Q.cjs.map +0 -1
- package/dist/chunk-MM7AVGU7.js +0 -1
- package/dist/chunk-MM7AVGU7.js.map +0 -1
- package/dist/chunk-MSC2ZBTE.cjs +0 -1
- package/dist/chunk-MSC2ZBTE.cjs.map +0 -1
- package/dist/chunk-O2CWSOMO.cjs +0 -1
- package/dist/chunk-O2CWSOMO.cjs.map +0 -1
- package/dist/chunk-TANCQXPG.cjs +0 -8
- package/dist/chunk-TANCQXPG.cjs.map +0 -1
- package/dist/chunk-XUFXB7CW.js +0 -1
- package/dist/chunk-XUFXB7CW.js.map +0 -1
- package/dist/chunk-YTCA276R.js +0 -1
- package/dist/chunk-YTCA276R.js.map +0 -1
- package/dist/chunk-ZUGE62LA.js +0 -21
- package/dist/chunk-ZUGE62LA.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/types/authmaterial.cjs.map +0 -1
- package/dist/types/authmaterial.js.map +0 -1
- package/dist/types/cookies.cjs.map +0 -1
- package/dist/types/cookies.js.map +0 -1
- package/dist/types/errors.cjs.map +0 -1
- package/dist/types/errors.js.map +0 -1
- package/dist/types/index.cjs.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/types/user.cjs.map +0 -1
- package/dist/types/user.js.map +0 -1
- package/dist/utils/constants.cjs.map +0 -1
- package/dist/utils/constants.js.map +0 -1
- package/dist/utils/index.cjs.map +0 -1
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/isEmailValid.cjs.map +0 -1
- package/dist/utils/isEmailValid.js.map +0 -1
- package/src/CrossmintAuth.test.ts +0 -38
- package/src/CrossmintAuth.ts +0 -103
- package/src/index.ts +0 -3
- package/src/types/authmaterial.ts +0 -34
- package/src/types/cookies.ts +0 -13
- package/src/types/errors.ts +0 -1
- package/src/types/index.ts +0 -4
- package/src/types/user.ts +0 -16
- package/src/utils/constants.ts +0 -9
- package/src/utils/index.ts +0 -2
- package/src/utils/isEmailValid.ts +0 -5
package/dist/chunk-ALL2PU4Z.cjs
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
var _chunkTANCQXPGcjs = require('./chunk-TANCQXPG.cjs');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _chunk6TUZARPAcjs = require('./chunk-6TUZARPA.cjs');
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var _chunkL2T5Q65Qcjs = require('./chunk-L2T5Q65Q.cjs');
|
|
12
|
-
|
|
13
|
-
// src/CrossmintAuth.ts
|
|
14
|
-
var _commonsdkbase = require('@crossmint/common-sdk-base');
|
|
15
|
-
var CrossmintAuth = class _CrossmintAuth {
|
|
16
|
-
constructor(crossmint, apiClient, options = {}) {
|
|
17
|
-
var _a;
|
|
18
|
-
this.crossmint = crossmint;
|
|
19
|
-
this.apiClient = apiClient;
|
|
20
|
-
this.refreshRoute = (_a = options.refreshRoute) != null ? _a : null;
|
|
21
|
-
}
|
|
22
|
-
static from(crossmint, options = {}) {
|
|
23
|
-
return new _CrossmintAuth(crossmint, _CrossmintAuth.defaultApiClient(crossmint), options);
|
|
24
|
-
}
|
|
25
|
-
getJwksUri() {
|
|
26
|
-
return `${this.apiClient.baseUrl}/.well-known/jwks.json`;
|
|
27
|
-
}
|
|
28
|
-
refreshAuthMaterial(refreshToken) {
|
|
29
|
-
return _chunkL2T5Q65Qcjs.__async.call(void 0, this, null, function* () {
|
|
30
|
-
if (this.refreshRoute != null) {
|
|
31
|
-
return yield this.refreshFromCustomRoute(refreshToken);
|
|
32
|
-
}
|
|
33
|
-
if (refreshToken != null) {
|
|
34
|
-
return yield this.refresh(refreshToken);
|
|
35
|
-
}
|
|
36
|
-
throw new (0, _chunkTANCQXPGcjs.CrossmintAuthenticationError)("Refresh token missing from parameters");
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
refresh(refreshToken) {
|
|
40
|
-
return _chunkL2T5Q65Qcjs.__async.call(void 0, this, null, function* () {
|
|
41
|
-
const result = yield this.apiClient.post(`${_chunk6TUZARPAcjs.AUTH_SDK_ROOT_ENDPOINT}/refresh`, {
|
|
42
|
-
body: JSON.stringify({ refresh: refreshToken }),
|
|
43
|
-
headers: {
|
|
44
|
-
"Content-Type": "application/json"
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
if (!result.ok) {
|
|
48
|
-
throw new (0, _chunkTANCQXPGcjs.CrossmintAuthenticationError)(result.statusText);
|
|
49
|
-
}
|
|
50
|
-
const resultJson = yield result.json();
|
|
51
|
-
return {
|
|
52
|
-
jwt: resultJson.jwt,
|
|
53
|
-
refreshToken: resultJson.refresh,
|
|
54
|
-
user: resultJson.user
|
|
55
|
-
};
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
refreshFromCustomRoute(refreshToken) {
|
|
59
|
-
return _chunkL2T5Q65Qcjs.__async.call(void 0, this, null, function* () {
|
|
60
|
-
if (!this.refreshRoute) {
|
|
61
|
-
throw new Error("Custom refresh route is not set");
|
|
62
|
-
}
|
|
63
|
-
const result = yield fetch(this.refreshRoute, {
|
|
64
|
-
method: "POST",
|
|
65
|
-
body: JSON.stringify({ refresh: refreshToken }),
|
|
66
|
-
headers: {
|
|
67
|
-
"Content-Type": "application/json"
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
const resultJson = yield result.json();
|
|
71
|
-
if (!result.ok) {
|
|
72
|
-
throw new (0, _chunkTANCQXPGcjs.CrossmintAuthenticationError)(resultJson.message);
|
|
73
|
-
}
|
|
74
|
-
return resultJson;
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
logoutFromDefaultRoute(refreshToken) {
|
|
78
|
-
return _chunkL2T5Q65Qcjs.__async.call(void 0, this, null, function* () {
|
|
79
|
-
return yield this.apiClient.post(`${_chunk6TUZARPAcjs.AUTH_SDK_ROOT_ENDPOINT}/logout`, {
|
|
80
|
-
headers: {
|
|
81
|
-
"Content-Type": "application/json"
|
|
82
|
-
},
|
|
83
|
-
body: JSON.stringify({
|
|
84
|
-
refresh: refreshToken
|
|
85
|
-
})
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
static defaultApiClient(crossmint) {
|
|
90
|
-
return new (0, _commonsdkbase.CrossmintApiClient)(crossmint, {
|
|
91
|
-
internalConfig: {
|
|
92
|
-
sdkMetadata: {
|
|
93
|
-
name: _chunk6TUZARPAcjs.SDK_NAME,
|
|
94
|
-
version: _chunk6TUZARPAcjs.SDK_VERSION
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
exports.CrossmintAuth = CrossmintAuth;
|
|
104
|
-
//# sourceMappingURL=chunk-ALL2PU4Z.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/CrossmintAuth.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,SAAyB,0BAA0B;AAQ5C,IAAM,gBAAN,MAAM,eAAc;AAAA,EAKvB,YAAY,WAAsB,WAA+B,UAAgC,CAAC,GAAG;AAbzG;AAcQ,SAAK,YAAY;AACjB,SAAK,YAAY;AACjB,SAAK,gBAAe,aAAQ,iBAAR,YAAwB;AAAA,EAChD;AAAA,EAEA,OAAc,KAAK,WAAsB,UAAgC,CAAC,GAAkB;AACxF,WAAO,IAAI,eAAc,WAAW,eAAc,iBAAiB,SAAS,GAAG,OAAO;AAAA,EAC1F;AAAA,EAEO,aAAa;AAChB,WAAO,GAAG,KAAK,UAAU,OAAO;AAAA,EACpC;AAAA,EAEgB,oBAAoB,cAAsD;AAAA;AACtF,UAAI,KAAK,gBAAgB,MAAM;AAC3B,eAAO,MAAM,KAAK,uBAAuB,YAAY;AAAA,MACzD;AAEA,UAAI,gBAAgB,MAAM;AACtB,eAAO,MAAM,KAAK,QAAQ,YAAY;AAAA,MAC1C;AAEA,YAAM,IAAI,6BAA6B,uCAAuC;AAAA,IAClF;AAAA;AAAA,EAEgB,QAAQ,cAAqD;AAAA;AACzE,YAAM,SAAS,MAAM,KAAK,UAAU,KAAK,GAAG,sBAAsB,YAAY;AAAA,QAC1E,MAAM,KAAK,UAAU,EAAE,SAAS,aAAa,CAAC;AAAA,QAC9C,SAAS;AAAA,UACL,gBAAgB;AAAA,QACpB;AAAA,MACJ,CAAC;AAED,UAAI,CAAC,OAAO,IAAI;AACZ,cAAM,IAAI,6BAA6B,OAAO,UAAU;AAAA,MAC5D;AAEA,YAAM,aAAc,MAAM,OAAO,KAAK;AAEtC,aAAO;AAAA,QACH,KAAK,WAAW;AAAA,QAChB,cAAc,WAAW;AAAA,QACzB,MAAM,WAAW;AAAA,MACrB;AAAA,IACJ;AAAA;AAAA,EAEc,uBAAuB,cAAsD;AAAA;AACvF,UAAI,CAAC,KAAK,cAAc;AACpB,cAAM,IAAI,MAAM,iCAAiC;AAAA,MACrD;AAEA,YAAM,SAAS,MAAM,MAAM,KAAK,cAAc;AAAA,QAC1C,QAAQ;AAAA,QACR,MAAM,KAAK,UAAU,EAAE,SAAS,aAAa,CAAC;AAAA,QAC9C,SAAS;AAAA,UACL,gBAAgB;AAAA,QACpB;AAAA,MACJ,CAAC;AAED,YAAM,aAAa,MAAM,OAAO,KAAK;AACrC,UAAI,CAAC,OAAO,IAAI;AACZ,cAAM,IAAI,6BAA6B,WAAW,OAAO;AAAA,MAC7D;AAEA,aAAO;AAAA,IACX;AAAA;AAAA,EAEgB,uBAAuB,cAAsB;AAAA;AACzD,aAAO,MAAM,KAAK,UAAU,KAAK,GAAG,sBAAsB,WAAW;AAAA,QACjE,SAAS;AAAA,UACL,gBAAgB;AAAA,QACpB;AAAA,QACA,MAAM,KAAK,UAAU;AAAA,UACjB,SAAS;AAAA,QACb,CAAC;AAAA,MACL,CAAC;AAAA,IACL;AAAA;AAAA,EAEA,OAAO,iBAAiB,WAA0C;AAC9D,WAAO,IAAI,mBAAmB,WAAW;AAAA,MACrC,gBAAgB;AAAA,QACZ,aAAa;AAAA,UACT,MAAM;AAAA,UACN,SAAS;AAAA,QACb;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AACJ","sourcesContent":["import { type Crossmint, CrossmintApiClient } from \"@crossmint/common-sdk-base\";\nimport { AUTH_SDK_ROOT_ENDPOINT, SDK_NAME, SDK_VERSION } from \"./utils/constants\";\nimport { type AuthMaterialWithUser, CrossmintAuthenticationError, type AuthMaterialResponse } from \"./types\";\n\nexport type CrossmintAuthOptions = {\n refreshRoute?: string;\n};\n\nexport class CrossmintAuth {\n protected crossmint: Crossmint;\n protected apiClient: CrossmintApiClient;\n protected refreshRoute: string | null;\n\n constructor(crossmint: Crossmint, apiClient: CrossmintApiClient, options: CrossmintAuthOptions = {}) {\n this.crossmint = crossmint;\n this.apiClient = apiClient;\n this.refreshRoute = options.refreshRoute ?? null;\n }\n\n public static from(crossmint: Crossmint, options: CrossmintAuthOptions = {}): CrossmintAuth {\n return new CrossmintAuth(crossmint, CrossmintAuth.defaultApiClient(crossmint), options);\n }\n\n public getJwksUri() {\n return `${this.apiClient.baseUrl}/.well-known/jwks.json`;\n }\n\n protected async refreshAuthMaterial(refreshToken?: string): Promise<AuthMaterialWithUser> {\n if (this.refreshRoute != null) {\n return await this.refreshFromCustomRoute(refreshToken);\n }\n\n if (refreshToken != null) {\n return await this.refresh(refreshToken);\n }\n\n throw new CrossmintAuthenticationError(\"Refresh token missing from parameters\");\n }\n\n protected async refresh(refreshToken: string): Promise<AuthMaterialWithUser> {\n const result = await this.apiClient.post(`${AUTH_SDK_ROOT_ENDPOINT}/refresh`, {\n body: JSON.stringify({ refresh: refreshToken }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (!result.ok) {\n throw new CrossmintAuthenticationError(result.statusText);\n }\n\n const resultJson = (await result.json()) as AuthMaterialResponse;\n\n return {\n jwt: resultJson.jwt,\n refreshToken: resultJson.refresh,\n user: resultJson.user,\n };\n }\n\n private async refreshFromCustomRoute(refreshToken?: string): Promise<AuthMaterialWithUser> {\n if (!this.refreshRoute) {\n throw new Error(\"Custom refresh route is not set\");\n }\n\n const result = await fetch(this.refreshRoute, {\n method: \"POST\",\n body: JSON.stringify({ refresh: refreshToken }),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n const resultJson = await result.json();\n if (!result.ok) {\n throw new CrossmintAuthenticationError(resultJson.message);\n }\n\n return resultJson;\n }\n\n protected async logoutFromDefaultRoute(refreshToken: string) {\n return await this.apiClient.post(`${AUTH_SDK_ROOT_ENDPOINT}/logout`, {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n refresh: refreshToken,\n }),\n });\n }\n\n static defaultApiClient(crossmint: Crossmint): CrossmintApiClient {\n return new CrossmintApiClient(crossmint, {\n internalConfig: {\n sdkMetadata: {\n name: SDK_NAME,\n version: SDK_VERSION,\n },\n },\n });\n }\n}\n"]}
|
package/dist/chunk-C4KO2HLL.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
var __async = (__this, __arguments, generator) => {
|
|
2
|
-
return new Promise((resolve, reject) => {
|
|
3
|
-
var fulfilled = (value) => {
|
|
4
|
-
try {
|
|
5
|
-
step(generator.next(value));
|
|
6
|
-
} catch (e) {
|
|
7
|
-
reject(e);
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
var rejected = (value) => {
|
|
11
|
-
try {
|
|
12
|
-
step(generator.throw(value));
|
|
13
|
-
} catch (e) {
|
|
14
|
-
reject(e);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export {
|
|
23
|
-
__async
|
|
24
|
-
};
|
|
25
|
-
//# sourceMappingURL=chunk-C4KO2HLL.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/chunk-GWB5ILON.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/errors.ts"],"sourcesContent":["export class CrossmintAuthenticationError extends Error {}\n"],"mappings":";AAAO,IAAM,+BAAN,cAA2C,MAAM;AAAC;","names":[]}
|
package/dist/chunk-KQWSJPGM.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=chunk-KQWSJPGM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/chunk-L2T5Q65Q.cjs
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var __async = (__this, __arguments, generator) => {
|
|
2
|
-
return new Promise((resolve, reject) => {
|
|
3
|
-
var fulfilled = (value) => {
|
|
4
|
-
try {
|
|
5
|
-
step(generator.next(value));
|
|
6
|
-
} catch (e) {
|
|
7
|
-
reject(e);
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
var rejected = (value) => {
|
|
11
|
-
try {
|
|
12
|
-
step(generator.throw(value));
|
|
13
|
-
} catch (e) {
|
|
14
|
-
reject(e);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
exports.__async = __async;
|
|
25
|
-
//# sourceMappingURL=chunk-L2T5Q65Q.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
package/dist/chunk-MM7AVGU7.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=chunk-MM7AVGU7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/chunk-MSC2ZBTE.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";//# sourceMappingURL=chunk-MSC2ZBTE.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
package/dist/chunk-O2CWSOMO.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";//# sourceMappingURL=chunk-O2CWSOMO.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
package/dist/chunk-TANCQXPG.cjs
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/types/errors.ts
|
|
2
|
-
var CrossmintAuthenticationError = class extends Error {
|
|
3
|
-
};
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
exports.CrossmintAuthenticationError = CrossmintAuthenticationError;
|
|
8
|
-
//# sourceMappingURL=chunk-TANCQXPG.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/errors.ts"],"names":[],"mappings":";AAAO,IAAM,+BAAN,cAA2C,MAAM;AAAC","sourcesContent":["export class CrossmintAuthenticationError extends Error {}\n"]}
|
package/dist/chunk-XUFXB7CW.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=chunk-XUFXB7CW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/chunk-YTCA276R.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=chunk-YTCA276R.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/chunk-ZUGE62LA.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// package.json
|
|
2
|
-
var name = "@crossmint/common-sdk-auth";
|
|
3
|
-
var version = "1.0.3";
|
|
4
|
-
|
|
5
|
-
// src/utils/constants.ts
|
|
6
|
-
var SDK_VERSION = version;
|
|
7
|
-
var SDK_NAME = name;
|
|
8
|
-
var CROSSMINT_API_VERSION = "2024-09-26";
|
|
9
|
-
var AUTH_SDK_ROOT_ENDPOINT = `api/${CROSSMINT_API_VERSION}/session/sdk/auth`;
|
|
10
|
-
var SESSION_PREFIX = "crossmint-jwt";
|
|
11
|
-
var REFRESH_TOKEN_PREFIX = "crossmint-refresh-token";
|
|
12
|
-
|
|
13
|
-
export {
|
|
14
|
-
SDK_VERSION,
|
|
15
|
-
SDK_NAME,
|
|
16
|
-
CROSSMINT_API_VERSION,
|
|
17
|
-
AUTH_SDK_ROOT_ENDPOINT,
|
|
18
|
-
SESSION_PREFIX,
|
|
19
|
-
REFRESH_TOKEN_PREFIX
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=chunk-ZUGE62LA.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../package.json","../src/utils/constants.ts"],"sourcesContent":["{\n \"name\": \"@crossmint/common-sdk-auth\",\n \"version\": \"1.0.3\",\n \"repository\": \"https://github.com/Crossmint/crossmint-sdk\",\n \"license\": \"Apache-2.0\",\n \"author\": \"Paella Labs Inc\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n },\n \"files\": [\"dist\", \"src\", \"LICENSE\"],\n \"scripts\": {\n \"build\": \"tsup\",\n \"dev\": \"tsup --watch\",\n \"test\": \"vitest run\"\n },\n \"dependencies\": {\n \"@crossmint/client-sdk-base\": \"workspace:*\",\n \"@crossmint/common-sdk-base\": \"workspace:*\"\n }\n}\n","import { version, name } from \"../../package.json\";\n\nexport const SDK_VERSION = version;\nexport const SDK_NAME = name;\nexport const CROSSMINT_API_VERSION = \"2024-09-26\";\nexport const AUTH_SDK_ROOT_ENDPOINT = `api/${CROSSMINT_API_VERSION}/session/sdk/auth`;\n\nexport const SESSION_PREFIX = \"crossmint-jwt\";\nexport const REFRESH_TOKEN_PREFIX = \"crossmint-refresh-token\";\n"],"mappings":";AACI,WAAQ;AACR,cAAW;;;ACAR,IAAM,cAAc;AACpB,IAAM,WAAW;AACjB,IAAM,wBAAwB;AAC9B,IAAM,yBAAyB,OAAO,qBAAqB;AAE3D,IAAM,iBAAiB;AACvB,IAAM,uBAAuB;","names":[]}
|
package/dist/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
package/dist/types/errors.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/types/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
package/dist/types/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/types/user.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
package/dist/types/user.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/utils/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
package/dist/utils/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
-
import { CrossmintAuth } from "./CrossmintAuth";
|
|
3
|
-
import { type Crossmint, CrossmintApiClient } from "@crossmint/common-sdk-base";
|
|
4
|
-
|
|
5
|
-
vi.mock("@crossmint/common-sdk-base");
|
|
6
|
-
|
|
7
|
-
describe("CrossmintAuth", () => {
|
|
8
|
-
let crossmintAuth: CrossmintAuth;
|
|
9
|
-
const mockCrossmint = { projectId: "test-project-id" };
|
|
10
|
-
const mockApiClient = {
|
|
11
|
-
baseUrl: "https://api.crossmint.com",
|
|
12
|
-
get: vi.fn(),
|
|
13
|
-
post: vi.fn(),
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
beforeEach(() => {
|
|
17
|
-
vi.resetAllMocks();
|
|
18
|
-
vi.mocked(CrossmintApiClient).mockReturnValue(mockApiClient as unknown as CrossmintApiClient);
|
|
19
|
-
crossmintAuth = CrossmintAuth.from(mockCrossmint as unknown as Crossmint);
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
afterEach(() => {
|
|
23
|
-
vi.restoreAllMocks();
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
describe("from", () => {
|
|
27
|
-
it("should create a new CrossmintAuth instance", () => {
|
|
28
|
-
expect(crossmintAuth).toBeInstanceOf(CrossmintAuth);
|
|
29
|
-
expect(CrossmintApiClient).toHaveBeenCalledWith(mockCrossmint, expect.any(Object));
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
describe("getJwksUri", () => {
|
|
34
|
-
it("should return the correct JWKS URI", () => {
|
|
35
|
-
expect(crossmintAuth.getJwksUri()).toBe("https://api.crossmint.com/.well-known/jwks.json");
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
});
|
package/src/CrossmintAuth.ts
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { type Crossmint, CrossmintApiClient } from "@crossmint/common-sdk-base";
|
|
2
|
-
import { AUTH_SDK_ROOT_ENDPOINT, SDK_NAME, SDK_VERSION } from "./utils/constants";
|
|
3
|
-
import { type AuthMaterialWithUser, CrossmintAuthenticationError, type AuthMaterialResponse } from "./types";
|
|
4
|
-
|
|
5
|
-
export type CrossmintAuthOptions = {
|
|
6
|
-
refreshRoute?: string;
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
export class CrossmintAuth {
|
|
10
|
-
protected crossmint: Crossmint;
|
|
11
|
-
protected apiClient: CrossmintApiClient;
|
|
12
|
-
protected refreshRoute: string | null;
|
|
13
|
-
|
|
14
|
-
constructor(crossmint: Crossmint, apiClient: CrossmintApiClient, options: CrossmintAuthOptions = {}) {
|
|
15
|
-
this.crossmint = crossmint;
|
|
16
|
-
this.apiClient = apiClient;
|
|
17
|
-
this.refreshRoute = options.refreshRoute ?? null;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
public static from(crossmint: Crossmint, options: CrossmintAuthOptions = {}): CrossmintAuth {
|
|
21
|
-
return new CrossmintAuth(crossmint, CrossmintAuth.defaultApiClient(crossmint), options);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
public getJwksUri() {
|
|
25
|
-
return `${this.apiClient.baseUrl}/.well-known/jwks.json`;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
protected async refreshAuthMaterial(refreshToken?: string): Promise<AuthMaterialWithUser> {
|
|
29
|
-
if (this.refreshRoute != null) {
|
|
30
|
-
return await this.refreshFromCustomRoute(refreshToken);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
if (refreshToken != null) {
|
|
34
|
-
return await this.refresh(refreshToken);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
throw new CrossmintAuthenticationError("Refresh token missing from parameters");
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
protected async refresh(refreshToken: string): Promise<AuthMaterialWithUser> {
|
|
41
|
-
const result = await this.apiClient.post(`${AUTH_SDK_ROOT_ENDPOINT}/refresh`, {
|
|
42
|
-
body: JSON.stringify({ refresh: refreshToken }),
|
|
43
|
-
headers: {
|
|
44
|
-
"Content-Type": "application/json",
|
|
45
|
-
},
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
if (!result.ok) {
|
|
49
|
-
throw new CrossmintAuthenticationError(result.statusText);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const resultJson = (await result.json()) as AuthMaterialResponse;
|
|
53
|
-
|
|
54
|
-
return {
|
|
55
|
-
jwt: resultJson.jwt,
|
|
56
|
-
refreshToken: resultJson.refresh,
|
|
57
|
-
user: resultJson.user,
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
private async refreshFromCustomRoute(refreshToken?: string): Promise<AuthMaterialWithUser> {
|
|
62
|
-
if (!this.refreshRoute) {
|
|
63
|
-
throw new Error("Custom refresh route is not set");
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const result = await fetch(this.refreshRoute, {
|
|
67
|
-
method: "POST",
|
|
68
|
-
body: JSON.stringify({ refresh: refreshToken }),
|
|
69
|
-
headers: {
|
|
70
|
-
"Content-Type": "application/json",
|
|
71
|
-
},
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
const resultJson = await result.json();
|
|
75
|
-
if (!result.ok) {
|
|
76
|
-
throw new CrossmintAuthenticationError(resultJson.message);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return resultJson;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
protected async logoutFromDefaultRoute(refreshToken: string) {
|
|
83
|
-
return await this.apiClient.post(`${AUTH_SDK_ROOT_ENDPOINT}/logout`, {
|
|
84
|
-
headers: {
|
|
85
|
-
"Content-Type": "application/json",
|
|
86
|
-
},
|
|
87
|
-
body: JSON.stringify({
|
|
88
|
-
refresh: refreshToken,
|
|
89
|
-
}),
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
static defaultApiClient(crossmint: Crossmint): CrossmintApiClient {
|
|
94
|
-
return new CrossmintApiClient(crossmint, {
|
|
95
|
-
internalConfig: {
|
|
96
|
-
sdkMetadata: {
|
|
97
|
-
name: SDK_NAME,
|
|
98
|
-
version: SDK_VERSION,
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { SDKExternalUser } from "./user";
|
|
2
|
-
|
|
3
|
-
export type AuthMaterialBasic = {
|
|
4
|
-
jwt?: string;
|
|
5
|
-
refreshToken: string;
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export type AuthMaterial = {
|
|
9
|
-
jwt: string;
|
|
10
|
-
refreshToken: RefreshToken;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export type AuthMaterialWithUser = AuthMaterial & {
|
|
14
|
-
user: SDKExternalUser;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export type AuthMaterialResponse = {
|
|
18
|
-
jwt: string;
|
|
19
|
-
refresh: RefreshToken;
|
|
20
|
-
user: SDKExternalUser;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export type AuthSession = {
|
|
24
|
-
jwt: string;
|
|
25
|
-
refreshToken: RefreshToken;
|
|
26
|
-
userId: string;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
interface RefreshToken {
|
|
30
|
-
secret: string;
|
|
31
|
-
expiresAt: string;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export type OAuthProvider = "google";
|
package/src/types/cookies.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export type CookieData = {
|
|
2
|
-
name: string;
|
|
3
|
-
value: string;
|
|
4
|
-
options?: CookieOptions;
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
export type CookieOptions = {
|
|
8
|
-
expiresAt?: string;
|
|
9
|
-
httpOnly?: boolean;
|
|
10
|
-
secure?: boolean;
|
|
11
|
-
sameSite?: "Lax" | "Strict" | "None";
|
|
12
|
-
domain?: string;
|
|
13
|
-
};
|
package/src/types/errors.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export class CrossmintAuthenticationError extends Error {}
|
package/src/types/index.ts
DELETED
package/src/types/user.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export type FarcasterMetadata = {
|
|
2
|
-
fid: string;
|
|
3
|
-
username: string;
|
|
4
|
-
bio: string;
|
|
5
|
-
displayName: string;
|
|
6
|
-
pfpUrl: string;
|
|
7
|
-
custody: string;
|
|
8
|
-
verifications: string[];
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export type SDKExternalUser = {
|
|
12
|
-
id: string;
|
|
13
|
-
email?: string;
|
|
14
|
-
phoneNumber?: string;
|
|
15
|
-
farcaster?: FarcasterMetadata;
|
|
16
|
-
};
|
package/src/utils/constants.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { version, name } from "../../package.json";
|
|
2
|
-
|
|
3
|
-
export const SDK_VERSION = version;
|
|
4
|
-
export const SDK_NAME = name;
|
|
5
|
-
export const CROSSMINT_API_VERSION = "2024-09-26";
|
|
6
|
-
export const AUTH_SDK_ROOT_ENDPOINT = `api/${CROSSMINT_API_VERSION}/session/sdk/auth`;
|
|
7
|
-
|
|
8
|
-
export const SESSION_PREFIX = "crossmint-jwt";
|
|
9
|
-
export const REFRESH_TOKEN_PREFIX = "crossmint-refresh-token";
|
package/src/utils/index.ts
DELETED