@crossmint/common-sdk-auth 0.2.3 → 1.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.
Files changed (109) hide show
  1. package/dist/CrossmintAuth.cjs +14 -0
  2. package/dist/CrossmintAuth.cjs.map +1 -0
  3. package/dist/CrossmintAuth.d.cts +22 -0
  4. package/dist/CrossmintAuth.d.ts +22 -0
  5. package/dist/CrossmintAuth.js +14 -0
  6. package/dist/CrossmintAuth.js.map +1 -0
  7. package/dist/chunk-2FARFC7B.js +10 -0
  8. package/dist/chunk-2FARFC7B.js.map +1 -0
  9. package/dist/chunk-3W57CWB3.js +1 -0
  10. package/dist/chunk-3W57CWB3.js.map +1 -0
  11. package/dist/chunk-45JIGU2A.cjs +1 -0
  12. package/dist/chunk-45JIGU2A.cjs.map +1 -0
  13. package/dist/chunk-4PIHTPSZ.cjs +104 -0
  14. package/dist/chunk-4PIHTPSZ.cjs.map +1 -0
  15. package/dist/chunk-55V5CK24.cjs +10 -0
  16. package/dist/chunk-55V5CK24.cjs.map +1 -0
  17. package/dist/chunk-5BYL6R7Z.cjs +1 -0
  18. package/dist/chunk-5BYL6R7Z.cjs.map +1 -0
  19. package/dist/chunk-5GNH6BCI.cjs +1 -0
  20. package/dist/chunk-5GNH6BCI.cjs.map +1 -0
  21. package/dist/chunk-C4KO2HLL.js +25 -0
  22. package/dist/chunk-C4KO2HLL.js.map +1 -0
  23. package/dist/chunk-GWB5ILON.js +8 -0
  24. package/dist/chunk-GWB5ILON.js.map +1 -0
  25. package/dist/chunk-HI6HUSN4.cjs +21 -0
  26. package/dist/chunk-HI6HUSN4.cjs.map +1 -0
  27. package/dist/chunk-I5QD4ENM.js +21 -0
  28. package/dist/chunk-I5QD4ENM.js.map +1 -0
  29. package/dist/chunk-KQWSJPGM.js +1 -0
  30. package/dist/chunk-KQWSJPGM.js.map +1 -0
  31. package/dist/chunk-L2T5Q65Q.cjs +25 -0
  32. package/dist/chunk-L2T5Q65Q.cjs.map +1 -0
  33. package/dist/chunk-MM7AVGU7.js +1 -0
  34. package/dist/chunk-MM7AVGU7.js.map +1 -0
  35. package/dist/chunk-MSC2ZBTE.cjs +1 -0
  36. package/dist/chunk-MSC2ZBTE.cjs.map +1 -0
  37. package/dist/chunk-O2CWSOMO.cjs +1 -0
  38. package/dist/chunk-O2CWSOMO.cjs.map +1 -0
  39. package/dist/chunk-RFWGAJ6T.js +104 -0
  40. package/dist/chunk-RFWGAJ6T.js.map +1 -0
  41. package/dist/chunk-TANCQXPG.cjs +8 -0
  42. package/dist/chunk-TANCQXPG.cjs.map +1 -0
  43. package/dist/chunk-XUFXB7CW.js +1 -0
  44. package/dist/chunk-XUFXB7CW.js.map +1 -0
  45. package/dist/chunk-YTCA276R.js +1 -0
  46. package/dist/chunk-YTCA276R.js.map +1 -0
  47. package/dist/index.cjs +34 -1
  48. package/dist/index.cjs.map +1 -1
  49. package/dist/index.d.cts +8 -73
  50. package/dist/index.d.ts +8 -73
  51. package/dist/index.js +34 -1
  52. package/dist/index.js.map +1 -1
  53. package/dist/types/authmaterial.cjs +2 -0
  54. package/dist/types/authmaterial.cjs.map +1 -0
  55. package/dist/types/authmaterial.d.cts +30 -0
  56. package/dist/types/authmaterial.d.ts +30 -0
  57. package/dist/types/authmaterial.js +2 -0
  58. package/dist/types/authmaterial.js.map +1 -0
  59. package/dist/types/cookies.cjs +2 -0
  60. package/dist/types/cookies.cjs.map +1 -0
  61. package/dist/types/cookies.d.cts +14 -0
  62. package/dist/types/cookies.d.ts +14 -0
  63. package/dist/types/cookies.js +2 -0
  64. package/dist/types/cookies.js.map +1 -0
  65. package/dist/types/errors.cjs +8 -0
  66. package/dist/types/errors.cjs.map +1 -0
  67. package/dist/types/errors.d.cts +4 -0
  68. package/dist/types/errors.d.ts +4 -0
  69. package/dist/types/errors.js +8 -0
  70. package/dist/types/errors.js.map +1 -0
  71. package/dist/types/index.cjs +12 -0
  72. package/dist/types/index.cjs.map +1 -0
  73. package/dist/types/index.d.cts +4 -0
  74. package/dist/types/index.d.ts +4 -0
  75. package/dist/types/index.js +12 -0
  76. package/dist/types/index.js.map +1 -0
  77. package/dist/types/user.cjs +2 -0
  78. package/dist/types/user.cjs.map +1 -0
  79. package/dist/types/user.d.cts +17 -0
  80. package/dist/types/user.d.ts +17 -0
  81. package/dist/types/user.js +2 -0
  82. package/dist/types/user.js.map +1 -0
  83. package/dist/utils/constants.cjs +18 -0
  84. package/dist/utils/constants.cjs.map +1 -0
  85. package/dist/utils/constants.d.cts +8 -0
  86. package/dist/utils/constants.d.ts +8 -0
  87. package/dist/utils/constants.js +18 -0
  88. package/dist/utils/constants.js.map +1 -0
  89. package/dist/utils/index.cjs +23 -0
  90. package/dist/utils/index.cjs.map +1 -0
  91. package/dist/utils/index.d.cts +2 -0
  92. package/dist/utils/index.d.ts +2 -0
  93. package/dist/utils/index.js +23 -0
  94. package/dist/utils/index.js.map +1 -0
  95. package/dist/utils/isEmailValid.cjs +8 -0
  96. package/dist/utils/isEmailValid.cjs.map +1 -0
  97. package/dist/utils/isEmailValid.d.cts +3 -0
  98. package/dist/utils/isEmailValid.d.ts +3 -0
  99. package/dist/utils/isEmailValid.js +8 -0
  100. package/dist/utils/isEmailValid.js.map +1 -0
  101. package/package.json +6 -4
  102. package/src/CrossmintAuth.test.ts +38 -0
  103. package/src/CrossmintAuth.ts +103 -0
  104. package/src/index.ts +1 -1
  105. package/src/types/cookies.ts +9 -1
  106. package/src/utils/constants.ts +7 -1
  107. package/src/services/CrossmintAuthService.ts +0 -40
  108. package/src/services/index.ts +0 -2
  109. package/src/services/logger.ts +0 -5
@@ -0,0 +1,14 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunk4PIHTPSZcjs = require('./chunk-4PIHTPSZ.cjs');
4
+ require('./chunk-O2CWSOMO.cjs');
5
+ require('./chunk-5BYL6R7Z.cjs');
6
+ require('./chunk-MSC2ZBTE.cjs');
7
+ require('./chunk-TANCQXPG.cjs');
8
+ require('./chunk-45JIGU2A.cjs');
9
+ require('./chunk-HI6HUSN4.cjs');
10
+ require('./chunk-L2T5Q65Q.cjs');
11
+
12
+
13
+ exports.CrossmintAuth = _chunk4PIHTPSZcjs.CrossmintAuth;
14
+ //# sourceMappingURL=CrossmintAuth.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { Crossmint, CrossmintApiClient } from '@crossmint/common-sdk-base';
2
+ import { AuthMaterialWithUser } from './types/authmaterial.cjs';
3
+ import './types/user.cjs';
4
+
5
+ type CrossmintAuthOptions = {
6
+ refreshRoute?: string;
7
+ };
8
+ declare class CrossmintAuth {
9
+ protected crossmint: Crossmint;
10
+ protected apiClient: CrossmintApiClient;
11
+ protected refreshRoute: string | null;
12
+ constructor(crossmint: Crossmint, apiClient: CrossmintApiClient, options?: CrossmintAuthOptions);
13
+ static from(crossmint: Crossmint, options?: CrossmintAuthOptions): CrossmintAuth;
14
+ getJwksUri(): string;
15
+ protected refreshAuthMaterial(refreshToken?: string): Promise<AuthMaterialWithUser>;
16
+ protected refresh(refreshToken: string): Promise<AuthMaterialWithUser>;
17
+ private refreshFromCustomRoute;
18
+ protected logoutFromDefaultRoute(refreshToken?: string): Promise<Response>;
19
+ static defaultApiClient(crossmint: Crossmint): CrossmintApiClient;
20
+ }
21
+
22
+ export { CrossmintAuth, type CrossmintAuthOptions };
@@ -0,0 +1,22 @@
1
+ import { Crossmint, CrossmintApiClient } from '@crossmint/common-sdk-base';
2
+ import { AuthMaterialWithUser } from './types/authmaterial.js';
3
+ import './types/user.js';
4
+
5
+ type CrossmintAuthOptions = {
6
+ refreshRoute?: string;
7
+ };
8
+ declare class CrossmintAuth {
9
+ protected crossmint: Crossmint;
10
+ protected apiClient: CrossmintApiClient;
11
+ protected refreshRoute: string | null;
12
+ constructor(crossmint: Crossmint, apiClient: CrossmintApiClient, options?: CrossmintAuthOptions);
13
+ static from(crossmint: Crossmint, options?: CrossmintAuthOptions): CrossmintAuth;
14
+ getJwksUri(): string;
15
+ protected refreshAuthMaterial(refreshToken?: string): Promise<AuthMaterialWithUser>;
16
+ protected refresh(refreshToken: string): Promise<AuthMaterialWithUser>;
17
+ private refreshFromCustomRoute;
18
+ protected logoutFromDefaultRoute(refreshToken?: string): Promise<Response>;
19
+ static defaultApiClient(crossmint: Crossmint): CrossmintApiClient;
20
+ }
21
+
22
+ export { CrossmintAuth, type CrossmintAuthOptions };
@@ -0,0 +1,14 @@
1
+ import {
2
+ CrossmintAuth
3
+ } from "./chunk-RFWGAJ6T.js";
4
+ import "./chunk-YTCA276R.js";
5
+ import "./chunk-3W57CWB3.js";
6
+ import "./chunk-XUFXB7CW.js";
7
+ import "./chunk-GWB5ILON.js";
8
+ import "./chunk-KQWSJPGM.js";
9
+ import "./chunk-I5QD4ENM.js";
10
+ import "./chunk-C4KO2HLL.js";
11
+ export {
12
+ CrossmintAuth
13
+ };
14
+ //# sourceMappingURL=CrossmintAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,10 @@
1
+ // src/utils/isEmailValid.ts
2
+ function isEmailValid(email) {
3
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
4
+ return emailRegex.test(email);
5
+ }
6
+
7
+ export {
8
+ isEmailValid
9
+ };
10
+ //# sourceMappingURL=chunk-2FARFC7B.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/isEmailValid.ts"],"sourcesContent":["export function isEmailValid(email: string): boolean {\n // Regular expression for basic email validation\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailRegex.test(email);\n}\n"],"mappings":";AAAO,SAAS,aAAa,OAAwB;AAEjD,QAAM,aAAa;AACnB,SAAO,WAAW,KAAK,KAAK;AAChC;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-3W57CWB3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1 @@
1
+ "use strict";//# sourceMappingURL=chunk-45JIGU2A.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,104 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkTANCQXPGcjs = require('./chunk-TANCQXPG.cjs');
4
+
5
+
6
+
7
+
8
+ var _chunkHI6HUSN4cjs = require('./chunk-HI6HUSN4.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(`${_chunkHI6HUSN4cjs.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(`${_chunkHI6HUSN4cjs.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: _chunkHI6HUSN4cjs.SDK_NAME,
94
+ version: _chunkHI6HUSN4cjs.SDK_VERSION
95
+ }
96
+ }
97
+ });
98
+ }
99
+ };
100
+
101
+
102
+
103
+ exports.CrossmintAuth = CrossmintAuth;
104
+ //# sourceMappingURL=chunk-4PIHTPSZ.cjs.map
@@ -0,0 +1 @@
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,cAAuB;AAAA;AAC1D,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"]}
@@ -0,0 +1,10 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/utils/isEmailValid.ts
2
+ function isEmailValid(email) {
3
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
4
+ return emailRegex.test(email);
5
+ }
6
+
7
+
8
+
9
+ exports.isEmailValid = isEmailValid;
10
+ //# sourceMappingURL=chunk-55V5CK24.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/isEmailValid.ts"],"names":[],"mappings":";AAAO,SAAS,aAAa,OAAwB;AAEjD,QAAM,aAAa;AACnB,SAAO,WAAW,KAAK,KAAK;AAChC","sourcesContent":["export function isEmailValid(email: string): boolean {\n // Regular expression for basic email validation\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailRegex.test(email);\n}\n"]}
@@ -0,0 +1 @@
1
+ "use strict";//# sourceMappingURL=chunk-5BYL6R7Z.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ "use strict";//# sourceMappingURL=chunk-5GNH6BCI.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,8 @@
1
+ // src/types/errors.ts
2
+ var CrossmintAuthenticationError = class extends Error {
3
+ };
4
+
5
+ export {
6
+ CrossmintAuthenticationError
7
+ };
8
+ //# sourceMappingURL=chunk-GWB5ILON.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/errors.ts"],"sourcesContent":["export class CrossmintAuthenticationError extends Error {}\n"],"mappings":";AAAO,IAAM,+BAAN,cAA2C,MAAM;AAAC;","names":[]}
@@ -0,0 +1,21 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// package.json
2
+ var name = "@crossmint/common-sdk-auth";
3
+ var version = "1.0.0";
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
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+ exports.SDK_VERSION = SDK_VERSION; exports.SDK_NAME = SDK_NAME; exports.CROSSMINT_API_VERSION = CROSSMINT_API_VERSION; exports.AUTH_SDK_ROOT_ENDPOINT = AUTH_SDK_ROOT_ENDPOINT; exports.SESSION_PREFIX = SESSION_PREFIX; exports.REFRESH_TOKEN_PREFIX = REFRESH_TOKEN_PREFIX;
21
+ //# sourceMappingURL=chunk-HI6HUSN4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../package.json","../src/utils/constants.ts"],"names":[],"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","sourcesContent":["{\n \"name\": \"@crossmint/common-sdk-auth\",\n \"version\": \"1.0.0\",\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"]}
@@ -0,0 +1,21 @@
1
+ // package.json
2
+ var name = "@crossmint/common-sdk-auth";
3
+ var version = "1.0.0";
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-I5QD4ENM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../package.json","../src/utils/constants.ts"],"sourcesContent":["{\n \"name\": \"@crossmint/common-sdk-auth\",\n \"version\": \"1.0.0\",\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":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-KQWSJPGM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,25 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-MM7AVGU7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1 @@
1
+ "use strict";//# sourceMappingURL=chunk-MSC2ZBTE.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ "use strict";//# sourceMappingURL=chunk-O2CWSOMO.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,104 @@
1
+ import {
2
+ CrossmintAuthenticationError
3
+ } from "./chunk-GWB5ILON.js";
4
+ import {
5
+ AUTH_SDK_ROOT_ENDPOINT,
6
+ SDK_NAME,
7
+ SDK_VERSION
8
+ } from "./chunk-I5QD4ENM.js";
9
+ import {
10
+ __async
11
+ } from "./chunk-C4KO2HLL.js";
12
+
13
+ // src/CrossmintAuth.ts
14
+ import { CrossmintApiClient } from "@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 __async(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 CrossmintAuthenticationError("Refresh token missing from parameters");
37
+ });
38
+ }
39
+ refresh(refreshToken) {
40
+ return __async(this, null, function* () {
41
+ const result = yield this.apiClient.post(`${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 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 __async(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 CrossmintAuthenticationError(resultJson.message);
73
+ }
74
+ return resultJson;
75
+ });
76
+ }
77
+ logoutFromDefaultRoute(refreshToken) {
78
+ return __async(this, null, function* () {
79
+ return yield this.apiClient.post(`${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 CrossmintApiClient(crossmint, {
91
+ internalConfig: {
92
+ sdkMetadata: {
93
+ name: SDK_NAME,
94
+ version: SDK_VERSION
95
+ }
96
+ }
97
+ });
98
+ }
99
+ };
100
+
101
+ export {
102
+ CrossmintAuth
103
+ };
104
+ //# sourceMappingURL=chunk-RFWGAJ6T.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/CrossmintAuth.ts"],"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"],"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,cAAuB;AAAA;AAC1D,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;","names":[]}
@@ -0,0 +1,8 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/errors.ts"],"names":[],"mappings":";AAAO,IAAM,+BAAN,cAA2C,MAAM;AAAC","sourcesContent":["export class CrossmintAuthenticationError extends Error {}\n"]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-XUFXB7CW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-YTCA276R.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/index.cjs CHANGED
@@ -1,2 +1,35 @@
1
- "use strict";var m=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var I=(e,t)=>{for(var r in t)m(e,r,{get:t[r],enumerable:!0})},U=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of d(t))!w.call(e,o)&&o!==r&&m(e,o,{get:()=>t[o],enumerable:!(s=S(t,o))||s.enumerable});return e};var k=e=>U(m({},"__esModule",{value:!0}),e);var i=(e,t,r)=>new Promise((s,o)=>{var E=n=>{try{c(r.next(n))}catch(h){o(h)}},x=n=>{try{c(r.throw(n))}catch(h){o(h)}},c=n=>n.done?s(n.value):Promise.resolve(n.value).then(E,x);c((r=r.apply(e,t)).next())});var T={};I(T,{AUTH_SERVICE:()=>f,CrossmintAuthService:()=>g,CrossmintAuthenticationError:()=>p,REFRESH_TOKEN_PREFIX:()=>P,SESSION_PREFIX:()=>A,authLogger:()=>u,isEmailValid:()=>R});module.exports=k(T);var a=require("@crossmint/client-sdk-base");var l=require("@crossmint/client-sdk-base");var f="AUTH_SDK",A="crossmint-jwt",P="crossmint-refresh-token";var u=new l.SDKLogger(f);var g=class extends a.BaseCrossmintService{constructor(){super(...arguments);this.apiErrorService=new a.APIErrorService({});this.logger=u}getJWKSUri(){return`${this.crossmintBaseUrl}/.well-known/jwks.json`}refreshAuthMaterial(r){return i(this,null,function*(){let s=yield this.fetchCrossmintAPI("2024-09-26/session/sdk/auth/refresh",{method:"POST",body:JSON.stringify({refresh:r})},"Error fetching new refresh and access tokans.");return{jwt:s.jwt,refreshToken:s.refresh,user:s.user}})}getUserFromServer(r){return i(this,null,function*(){return(yield this.fetchCrossmintAPI(`sdk/auth/user/${r}`,{method:"GET"},"Error fetching user.")).user})}getUserFromClient(r){return i(this,null,function*(){return yield this.fetchCrossmintAPI("sdk/auth/user",{method:"GET"},"Error fetching user.",r)})}};function R(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}var p=class extends Error{};0&&(module.exports={AUTH_SERVICE,CrossmintAuthService,CrossmintAuthenticationError,REFRESH_TOKEN_PREFIX,SESSION_PREFIX,authLogger,isEmailValid});
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-5GNH6BCI.cjs');
2
+
3
+
4
+ var _chunk55V5CK24cjs = require('./chunk-55V5CK24.cjs');
5
+
6
+
7
+ var _chunk4PIHTPSZcjs = require('./chunk-4PIHTPSZ.cjs');
8
+ require('./chunk-O2CWSOMO.cjs');
9
+ require('./chunk-5BYL6R7Z.cjs');
10
+ require('./chunk-MSC2ZBTE.cjs');
11
+
12
+
13
+ var _chunkTANCQXPGcjs = require('./chunk-TANCQXPG.cjs');
14
+ require('./chunk-45JIGU2A.cjs');
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+ var _chunkHI6HUSN4cjs = require('./chunk-HI6HUSN4.cjs');
23
+ require('./chunk-L2T5Q65Q.cjs');
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+ exports.AUTH_SDK_ROOT_ENDPOINT = _chunkHI6HUSN4cjs.AUTH_SDK_ROOT_ENDPOINT; exports.CROSSMINT_API_VERSION = _chunkHI6HUSN4cjs.CROSSMINT_API_VERSION; exports.CrossmintAuth = _chunk4PIHTPSZcjs.CrossmintAuth; exports.CrossmintAuthenticationError = _chunkTANCQXPGcjs.CrossmintAuthenticationError; exports.REFRESH_TOKEN_PREFIX = _chunkHI6HUSN4cjs.REFRESH_TOKEN_PREFIX; exports.SDK_NAME = _chunkHI6HUSN4cjs.SDK_NAME; exports.SDK_VERSION = _chunkHI6HUSN4cjs.SDK_VERSION; exports.SESSION_PREFIX = _chunkHI6HUSN4cjs.SESSION_PREFIX; exports.isEmailValid = _chunk55V5CK24cjs.isEmailValid;
2
35
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/services/CrossmintAuthService.ts","../src/services/logger.ts","../src/utils/constants.ts","../src/utils/isEmailValid.ts","../src/types/errors.ts"],"sourcesContent":["export * from \"./services\";\nexport * from \"./utils\";\nexport * from \"./types\";\n","import { APIErrorService, BaseCrossmintService } from \"@crossmint/client-sdk-base\";\n\nimport { authLogger } from \"./logger\";\nimport type { AuthMaterialWithUser } from \"@/types\";\n\nexport class CrossmintAuthService extends BaseCrossmintService {\n protected apiErrorService = new APIErrorService<never>({});\n protected logger = authLogger;\n\n public getJWKSUri() {\n return `${this.crossmintBaseUrl}/.well-known/jwks.json`;\n }\n\n async refreshAuthMaterial(refreshToken: string): Promise<AuthMaterialWithUser> {\n const result = await this.fetchCrossmintAPI(\n \"2024-09-26/session/sdk/auth/refresh\",\n { method: \"POST\", body: JSON.stringify({ refresh: refreshToken }) },\n \"Error fetching new refresh and access tokans.\"\n );\n\n return {\n jwt: result.jwt,\n refreshToken: result.refresh,\n user: result.user,\n };\n }\n\n async getUserFromServer(externalUserId: string) {\n const result = await this.fetchCrossmintAPI(\n `sdk/auth/user/${externalUserId}`,\n { method: \"GET\" },\n \"Error fetching user.\"\n );\n\n return result.user;\n }\n async getUserFromClient(jwt: string) {\n return await this.fetchCrossmintAPI(\"sdk/auth/user\", { method: \"GET\" }, \"Error fetching user.\", jwt);\n }\n}\n","import { SDKLogger } from \"@crossmint/client-sdk-base\";\n\nimport { AUTH_SERVICE } from \"../utils/constants\";\n\nexport const authLogger = new SDKLogger(AUTH_SERVICE);\n","export const AUTH_SERVICE = \"AUTH_SDK\";\nexport const SESSION_PREFIX = \"crossmint-jwt\";\nexport const REFRESH_TOKEN_PREFIX = \"crossmint-refresh-token\";\n","export function isEmailValid(email: string): boolean {\n // Regular expression for basic email validation\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailRegex.test(email);\n}\n","export class CrossmintAuthenticationError extends Error {}\n"],"mappings":"snBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,EAAA,yBAAAC,EAAA,iCAAAC,EAAA,yBAAAC,EAAA,mBAAAC,EAAA,eAAAC,EAAA,iBAAAC,IAAA,eAAAC,EAAAT,GCAA,IAAAU,EAAsD,sCCAtD,IAAAC,EAA0B,sCCAnB,IAAMC,EAAe,WACfC,EAAiB,gBACjBC,EAAuB,0BDE7B,IAAMC,EAAa,IAAI,YAAUC,CAAY,EDC7C,IAAMC,EAAN,cAAmC,sBAAqB,CAAxD,kCACH,KAAU,gBAAkB,IAAI,kBAAuB,CAAC,CAAC,EACzD,KAAU,OAASC,EAEZ,YAAa,CAChB,MAAO,GAAG,KAAK,gBAAgB,wBACnC,CAEM,oBAAoBC,EAAqD,QAAAC,EAAA,sBAC3E,IAAMC,EAAS,MAAM,KAAK,kBACtB,sCACA,CAAE,OAAQ,OAAQ,KAAM,KAAK,UAAU,CAAE,QAASF,CAAa,CAAC,CAAE,EAClE,+CACJ,EAEA,MAAO,CACH,IAAKE,EAAO,IACZ,aAAcA,EAAO,QACrB,KAAMA,EAAO,IACjB,CACJ,GAEM,kBAAkBC,EAAwB,QAAAF,EAAA,sBAO5C,OANe,MAAM,KAAK,kBACtB,iBAAiBE,CAAc,GAC/B,CAAE,OAAQ,KAAM,EAChB,sBACJ,GAEc,IAClB,GACM,kBAAkBC,EAAa,QAAAH,EAAA,sBACjC,OAAO,MAAM,KAAK,kBAAkB,gBAAiB,CAAE,OAAQ,KAAM,EAAG,uBAAwBG,CAAG,CACvG,GACJ,EGvCO,SAASC,EAAaC,EAAwB,CAGjD,MADmB,6BACD,KAAKA,CAAK,CAChC,CCJO,IAAMC,EAAN,cAA2C,KAAM,CAAC","names":["src_exports","__export","AUTH_SERVICE","CrossmintAuthService","CrossmintAuthenticationError","REFRESH_TOKEN_PREFIX","SESSION_PREFIX","authLogger","isEmailValid","__toCommonJS","import_client_sdk_base","import_client_sdk_base","AUTH_SERVICE","SESSION_PREFIX","REFRESH_TOKEN_PREFIX","authLogger","AUTH_SERVICE","CrossmintAuthService","authLogger","refreshToken","__async","result","externalUserId","jwt","isEmailValid","email","CrossmintAuthenticationError"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}