@take-out/better-auth-utils 0.4.3 → 0.4.4
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/cjs/createAuthClient.cjs +140 -89
- package/dist/cjs/createAuthClient.native.js +185 -141
- package/dist/cjs/createAuthClient.native.js.map +1 -1
- package/dist/cjs/index.cjs +7 -5
- package/dist/cjs/index.native.js +7 -5
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/server.cjs +57 -42
- package/dist/cjs/server.native.js +137 -92
- package/dist/cjs/server.native.js.map +1 -1
- package/dist/esm/createAuthClient.mjs +126 -77
- package/dist/esm/createAuthClient.mjs.map +1 -1
- package/dist/esm/createAuthClient.native.js +171 -129
- package/dist/esm/createAuthClient.native.js.map +1 -1
- package/dist/esm/server.mjs +45 -32
- package/dist/esm/server.mjs.map +1 -1
- package/dist/esm/server.native.js +125 -82
- package/dist/esm/server.native.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,133 +1,173 @@
|
|
|
1
1
|
import { createRemoteJWKSet, jwtVerify } from "jose";
|
|
2
2
|
function _assert_this_initialized(self) {
|
|
3
|
-
if (self === void 0)
|
|
3
|
+
if (self === void 0) {
|
|
4
|
+
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
5
|
+
}
|
|
4
6
|
return self;
|
|
5
7
|
}
|
|
6
8
|
function _call_super(_this, derived, args) {
|
|
7
|
-
|
|
9
|
+
derived = _get_prototype_of(derived);
|
|
10
|
+
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
8
11
|
}
|
|
9
12
|
function _class_call_check(instance, Constructor) {
|
|
10
|
-
if (!(instance instanceof Constructor))
|
|
13
|
+
if (!(instance instanceof Constructor)) {
|
|
14
|
+
throw new TypeError("Cannot call a class as a function");
|
|
15
|
+
}
|
|
11
16
|
}
|
|
12
17
|
function _construct(Parent, args, Class) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
if (_is_native_reflect_construct()) {
|
|
19
|
+
_construct = Reflect.construct;
|
|
20
|
+
} else {
|
|
21
|
+
_construct = function construct(Parent2, args2, Class2) {
|
|
22
|
+
var a = [null];
|
|
23
|
+
a.push.apply(a, args2);
|
|
24
|
+
var Constructor = Function.bind.apply(Parent2, a);
|
|
25
|
+
var instance = new Constructor();
|
|
26
|
+
if (Class2) _set_prototype_of(instance, Class2.prototype);
|
|
27
|
+
return instance;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return _construct.apply(null, arguments);
|
|
20
31
|
}
|
|
21
32
|
function _get_prototype_of(o) {
|
|
22
|
-
|
|
33
|
+
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o2) {
|
|
23
34
|
return o2.__proto__ || Object.getPrototypeOf(o2);
|
|
24
|
-
}
|
|
35
|
+
};
|
|
36
|
+
return _get_prototype_of(o);
|
|
25
37
|
}
|
|
26
38
|
function _inherits(subClass, superClass) {
|
|
27
|
-
if (typeof superClass
|
|
39
|
+
if (typeof superClass !== "function" && superClass !== null) {
|
|
40
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
41
|
+
}
|
|
28
42
|
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
29
43
|
constructor: {
|
|
30
44
|
value: subClass,
|
|
31
|
-
writable:
|
|
32
|
-
configurable:
|
|
45
|
+
writable: true,
|
|
46
|
+
configurable: true
|
|
33
47
|
}
|
|
34
|
-
})
|
|
48
|
+
});
|
|
49
|
+
if (superClass) _set_prototype_of(subClass, superClass);
|
|
35
50
|
}
|
|
36
51
|
function _instanceof(left, right) {
|
|
37
|
-
|
|
52
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
53
|
+
return !!right[Symbol.hasInstance](left);
|
|
54
|
+
} else {
|
|
55
|
+
return left instanceof right;
|
|
56
|
+
}
|
|
38
57
|
}
|
|
39
58
|
function _is_native_function(fn) {
|
|
40
59
|
return Function.toString.call(fn).indexOf("[native code]") !== -1;
|
|
41
60
|
}
|
|
42
61
|
function _possible_constructor_return(self, call) {
|
|
43
|
-
|
|
62
|
+
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
63
|
+
return call;
|
|
64
|
+
}
|
|
65
|
+
return _assert_this_initialized(self);
|
|
44
66
|
}
|
|
45
67
|
function _set_prototype_of(o, p) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
68
|
+
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o2, p2) {
|
|
69
|
+
o2.__proto__ = p2;
|
|
70
|
+
return o2;
|
|
71
|
+
};
|
|
72
|
+
return _set_prototype_of(o, p);
|
|
49
73
|
}
|
|
50
74
|
function _type_of(obj) {
|
|
51
75
|
"@swc/helpers - typeof";
|
|
52
76
|
|
|
53
|
-
return obj && typeof Symbol
|
|
77
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
54
78
|
}
|
|
55
79
|
function _wrap_native_super(Class) {
|
|
56
|
-
var _cache = typeof Map
|
|
57
|
-
|
|
80
|
+
var _cache = typeof Map === "function" ? /* @__PURE__ */new Map() : void 0;
|
|
81
|
+
_wrap_native_super = function wrapNativeSuper(Class2) {
|
|
58
82
|
if (Class2 === null || !_is_native_function(Class2)) return Class2;
|
|
59
|
-
if (typeof Class2
|
|
60
|
-
|
|
83
|
+
if (typeof Class2 !== "function") {
|
|
84
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
85
|
+
}
|
|
86
|
+
if (typeof _cache !== "undefined") {
|
|
61
87
|
if (_cache.has(Class2)) return _cache.get(Class2);
|
|
62
88
|
_cache.set(Class2, Wrapper);
|
|
63
89
|
}
|
|
64
90
|
function Wrapper() {
|
|
65
91
|
return _construct(Class2, arguments, _get_prototype_of(this).constructor);
|
|
66
92
|
}
|
|
67
|
-
|
|
93
|
+
Wrapper.prototype = Object.create(Class2.prototype, {
|
|
68
94
|
constructor: {
|
|
69
95
|
value: Wrapper,
|
|
70
|
-
enumerable:
|
|
71
|
-
writable:
|
|
72
|
-
configurable:
|
|
96
|
+
enumerable: false,
|
|
97
|
+
writable: true,
|
|
98
|
+
configurable: true
|
|
73
99
|
}
|
|
74
|
-
})
|
|
75
|
-
|
|
100
|
+
});
|
|
101
|
+
return _set_prototype_of(Wrapper, Class2);
|
|
102
|
+
};
|
|
103
|
+
return _wrap_native_super(Class);
|
|
76
104
|
}
|
|
77
105
|
function _is_native_reflect_construct() {
|
|
78
106
|
try {
|
|
79
107
|
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
|
|
80
|
-
} catch {}
|
|
108
|
+
} catch (_) {}
|
|
81
109
|
return (_is_native_reflect_construct = function () {
|
|
82
110
|
return !!result;
|
|
83
111
|
})();
|
|
84
112
|
}
|
|
85
113
|
var NotAuthenticatedError = /* @__PURE__ */function (Error1) {
|
|
86
|
-
|
|
114
|
+
"use strict";
|
|
87
115
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
116
|
+
_inherits(NotAuthenticatedError2, Error1);
|
|
117
|
+
function NotAuthenticatedError2() {
|
|
118
|
+
_class_call_check(this, NotAuthenticatedError2);
|
|
119
|
+
return _call_super(this, NotAuthenticatedError2, arguments);
|
|
120
|
+
}
|
|
121
|
+
return NotAuthenticatedError2;
|
|
122
|
+
}(_wrap_native_super(Error));
|
|
123
|
+
var InvalidTokenError = /* @__PURE__ */function (Error1) {
|
|
124
|
+
"use strict";
|
|
96
125
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
126
|
+
_inherits(InvalidTokenError2, Error1);
|
|
127
|
+
function InvalidTokenError2() {
|
|
128
|
+
_class_call_check(this, InvalidTokenError2);
|
|
129
|
+
return _call_super(this, InvalidTokenError2, arguments);
|
|
130
|
+
}
|
|
131
|
+
return InvalidTokenError2;
|
|
132
|
+
}(_wrap_native_super(Error));
|
|
103
133
|
async function getAuthDataFromRequest(authServer, req, tokenOptions) {
|
|
104
|
-
var authHeader = req.headers.get("authorization")
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
134
|
+
var authHeader = req.headers.get("authorization");
|
|
135
|
+
var cookie = authHeader === null || authHeader === void 0 ? void 0 : authHeader.split("Bearer ")[1];
|
|
136
|
+
var newHeaders = new Headers(req.headers);
|
|
137
|
+
if (cookie) {
|
|
138
|
+
newHeaders.set("Cookie", cookie);
|
|
139
|
+
}
|
|
108
140
|
try {
|
|
109
141
|
var session = await authServer.api.getSession({
|
|
110
142
|
headers: newHeaders
|
|
111
143
|
});
|
|
112
|
-
if (session
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
144
|
+
if (session === null || session === void 0 ? void 0 : session.user) {
|
|
145
|
+
return {
|
|
146
|
+
id: session.user.id,
|
|
147
|
+
email: session.user.email || void 0,
|
|
148
|
+
role: session.user.role === "admin" ? "admin" : void 0
|
|
149
|
+
};
|
|
150
|
+
}
|
|
117
151
|
} catch (err) {
|
|
118
|
-
console.warn(
|
|
152
|
+
console.warn(`Error validating session`, err);
|
|
119
153
|
}
|
|
120
|
-
var jwtToken = authHeader
|
|
121
|
-
if (jwtToken)
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
154
|
+
var jwtToken = authHeader === null || authHeader === void 0 ? void 0 : authHeader.replace("Bearer ", "");
|
|
155
|
+
if (jwtToken) {
|
|
156
|
+
try {
|
|
157
|
+
var payload = await validateToken(jwtToken, tokenOptions);
|
|
158
|
+
var userId = (payload === null || payload === void 0 ? void 0 : payload.id) || (payload === null || payload === void 0 ? void 0 : payload.sub);
|
|
159
|
+
if (userId) {
|
|
160
|
+
return {
|
|
161
|
+
id: userId,
|
|
162
|
+
email: payload.email,
|
|
163
|
+
role: payload.role === "admin" ? "admin" : void 0
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
} catch (err) {
|
|
167
|
+
if (!_instanceof(err, InvalidTokenError)) {
|
|
168
|
+
throw err;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
131
171
|
}
|
|
132
172
|
return null;
|
|
133
173
|
}
|
|
@@ -137,18 +177,20 @@ async function validateToken(token, options) {
|
|
|
137
177
|
forceIssuer = process.env.FORCE_ISSUER || "",
|
|
138
178
|
jwksPath = "/api/auth/jwks"
|
|
139
179
|
} = options || {};
|
|
140
|
-
if (!baseUrl)
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
180
|
+
if (!baseUrl) {
|
|
181
|
+
throw new Error(`No baseURL!`);
|
|
182
|
+
}
|
|
183
|
+
var normalizedBaseUrl = removeTrailingSlash(baseUrl);
|
|
184
|
+
var url = `${forceIssuer || normalizedBaseUrl}${jwksPath}`;
|
|
185
|
+
var JWKS = createRemoteJWKSet(new URL(url));
|
|
144
186
|
try {
|
|
145
187
|
var verifyOptions = forceIssuer ? {} : {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
188
|
+
issuer: normalizedBaseUrl,
|
|
189
|
+
audience: normalizedBaseUrl
|
|
190
|
+
};
|
|
191
|
+
var {
|
|
192
|
+
payload
|
|
193
|
+
} = await jwtVerify(token, JWKS, verifyOptions);
|
|
152
194
|
return payload;
|
|
153
195
|
} catch (error) {
|
|
154
196
|
throw new InvalidTokenError(`${error}`);
|
|
@@ -156,9 +198,10 @@ async function validateToken(token, options) {
|
|
|
156
198
|
}
|
|
157
199
|
async function isValidJWT(token, options) {
|
|
158
200
|
try {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
201
|
+
await validateToken(token, options);
|
|
202
|
+
return true;
|
|
203
|
+
} catch (e) {
|
|
204
|
+
return false;
|
|
162
205
|
}
|
|
163
206
|
}
|
|
164
207
|
function removeTrailingSlash(str) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createRemoteJWKSet","jwtVerify","_assert_this_initialized","self","ReferenceError","_call_super","_this","derived","args","_get_prototype_of","_possible_constructor_return","_is_native_reflect_construct","Reflect","construct","constructor","apply","_class_call_check","instance","Constructor","TypeError","_construct","Parent","Class","Parent2","args2","Class2","a","push","Function","bind","_set_prototype_of","prototype","arguments","o","Object","setPrototypeOf","getPrototypeOf","o2","__proto__","_inherits","subClass","superClass","create","value","writable","configurable","_instanceof","left","right","Symbol","hasInstance","_is_native_function","fn","toString","call","indexOf","_type_of","p","p2","obj"
|
|
1
|
+
{"version":3,"names":["createRemoteJWKSet","jwtVerify","_assert_this_initialized","self","ReferenceError","_call_super","_this","derived","args","_get_prototype_of","_possible_constructor_return","_is_native_reflect_construct","Reflect","construct","constructor","apply","_class_call_check","instance","Constructor","TypeError","_construct","Parent","Class","Parent2","args2","Class2","a","push","Function","bind","_set_prototype_of","prototype","arguments","o","Object","setPrototypeOf","getPrototypeOf","o2","__proto__","_inherits","subClass","superClass","create","value","writable","configurable","_instanceof","left","right","Symbol","hasInstance","_is_native_function","fn","toString","call","indexOf","_type_of","p","p2","obj"],"sources":["../../src/server.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@take-out/better-auth-utils",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"description": "Better auth utilities and client for React/React Native applications",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@take-out/helpers": "0.4.
|
|
41
|
+
"@take-out/helpers": "0.4.4",
|
|
42
42
|
"jose": "^6.0.10"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"react": "*"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@tamagui/build": "2.0.0-rc.
|
|
49
|
+
"@tamagui/build": "2.0.0-rc.38-1775848301302",
|
|
50
50
|
"@types/node": "24.0.3",
|
|
51
51
|
"@types/react": "^19.0.8",
|
|
52
52
|
"oxfmt": "^0.16.0",
|