@aura-stack/auth 0.1.0-rc.7 → 0.1.0-rc.9
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/@types/index.cjs +15 -15
- package/dist/@types/index.d.ts +31 -7
- package/dist/@types/index.js +1 -1
- package/dist/@types/router.d.cjs +1 -1
- package/dist/@types/router.d.d.ts +7 -7
- package/dist/@types/utility.cjs +15 -15
- package/dist/@types/utility.d.ts +6 -6
- package/dist/@types/utility.js +1 -1
- package/dist/actions/callback/access-token.cjs +143 -143
- package/dist/actions/callback/access-token.d.ts +20 -15
- package/dist/actions/callback/access-token.js +4 -8
- package/dist/actions/callback/callback.cjs +455 -437
- package/dist/actions/callback/callback.d.ts +12 -10
- package/dist/actions/callback/callback.js +12 -16
- package/dist/actions/callback/userinfo.cjs +134 -131
- package/dist/actions/callback/userinfo.d.ts +9 -9
- package/dist/actions/callback/userinfo.js +6 -10
- package/dist/actions/csrfToken/csrfToken.cjs +171 -162
- package/dist/actions/csrfToken/csrfToken.d.ts +3 -3
- package/dist/actions/csrfToken/csrfToken.js +8 -12
- package/dist/actions/index.cjs +773 -746
- package/dist/actions/index.d.ts +13 -13
- package/dist/actions/index.js +18 -34
- package/dist/actions/session/session.cjs +155 -149
- package/dist/actions/session/session.d.ts +3 -3
- package/dist/actions/session/session.js +7 -11
- package/dist/actions/signIn/authorization.cjs +249 -231
- package/dist/actions/signIn/authorization.d.ts +18 -12
- package/dist/actions/signIn/authorization.js +6 -16
- package/dist/actions/signIn/signIn.cjs +423 -396
- package/dist/actions/signIn/signIn.d.ts +10 -10
- package/dist/actions/signIn/signIn.js +10 -14
- package/dist/actions/signOut/signOut.cjs +440 -417
- package/dist/actions/signOut/signOut.d.ts +3 -3
- package/dist/actions/signOut/signOut.js +11 -15
- package/dist/assert.cjs +36 -35
- package/dist/assert.d.ts +4 -4
- package/dist/assert.js +2 -10
- package/dist/chunk-256KIVJL.js +96 -85
- package/dist/chunk-42XB3YCW.js +17 -19
- package/dist/chunk-6SM22VVJ.js +10 -13
- package/dist/chunk-CAKJT3KS.js +69 -84
- package/dist/chunk-E3OXBRYF.js +17 -19
- package/dist/chunk-EBPE35JT.js +26 -28
- package/dist/chunk-FIPU4MLT.js +16 -18
- package/dist/chunk-FJUDBLCP.js +43 -50
- package/dist/chunk-FKRDCWBF.js +17 -19
- package/dist/chunk-GZU3RBTB.js +40 -51
- package/dist/chunk-HGJ4TXY4.js +100 -132
- package/dist/chunk-HMRKN75I.js +63 -63
- package/dist/chunk-IKHPGFCW.js +9 -11
- package/dist/chunk-JAPMIE6S.js +5 -7
- package/dist/chunk-KRNOMBXQ.js +17 -19
- package/dist/chunk-LLR722CL.js +70 -91
- package/dist/chunk-RLT4RFKV.js +30 -39
- package/dist/chunk-SJPDVKUS.js +88 -107
- package/dist/chunk-SMQO5WD7.js +16 -26
- package/dist/chunk-STHEPPUZ.js +6 -8
- package/dist/chunk-UJJ7R56J.js +37 -47
- package/dist/chunk-UTDLUEEG.js +25 -0
- package/dist/chunk-VFTYH33W.js +37 -54
- package/dist/chunk-XXJKNKGQ.js +23 -33
- package/dist/chunk-ZV4BH47P.js +134 -132
- package/dist/cookie.cjs +175 -169
- package/dist/cookie.d.ts +51 -23
- package/dist/cookie.js +34 -34
- package/dist/error.cjs +75 -75
- package/dist/error.d.ts +30 -30
- package/dist/error.js +8 -15
- package/dist/headers.cjs +28 -28
- package/dist/headers.d.ts +2 -2
- package/dist/headers.js +2 -6
- package/dist/index-DpfbvTZ_.d.ts +298 -249
- package/dist/index.cjs +969 -933
- package/dist/index.d.ts +31 -10
- package/dist/index.js +50 -70
- package/dist/jose.cjs +67 -52
- package/dist/jose.d.ts +8 -8
- package/dist/jose.js +5 -9
- package/dist/oauth/bitbucket.cjs +38 -38
- package/dist/oauth/bitbucket.d.ts +7 -7
- package/dist/oauth/bitbucket.js +2 -6
- package/dist/oauth/discord.cjs +48 -48
- package/dist/oauth/discord.d.ts +7 -7
- package/dist/oauth/discord.js +2 -6
- package/dist/oauth/figma.cjs +39 -39
- package/dist/oauth/figma.d.ts +7 -7
- package/dist/oauth/figma.js +2 -6
- package/dist/oauth/github.cjs +31 -31
- package/dist/oauth/github.d.ts +7 -7
- package/dist/oauth/github.js +2 -6
- package/dist/oauth/gitlab.cjs +39 -39
- package/dist/oauth/gitlab.d.ts +7 -7
- package/dist/oauth/gitlab.js +2 -6
- package/dist/oauth/index.cjs +180 -180
- package/dist/oauth/index.d.ts +26 -7
- package/dist/oauth/index.js +9 -36
- package/dist/oauth/spotify.cjs +39 -39
- package/dist/oauth/spotify.d.ts +7 -7
- package/dist/oauth/spotify.js +2 -6
- package/dist/oauth/x.cjs +39 -39
- package/dist/oauth/x.d.ts +7 -7
- package/dist/oauth/x.js +2 -6
- package/dist/response.cjs +27 -27
- package/dist/response.d.ts +2 -2
- package/dist/response.js +2 -6
- package/dist/schemas.cjs +91 -91
- package/dist/schemas.d.ts +126 -93
- package/dist/schemas.js +18 -18
- package/dist/secure.cjs +98 -95
- package/dist/secure.d.ts +17 -17
- package/dist/secure.js +4 -18
- package/dist/utils.cjs +132 -119
- package/dist/utils.d.ts +26 -11
- package/dist/utils.js +21 -21
- package/package.json +1 -1
- package/dist/chunk-X7M4CQTN.js +0 -25
package/dist/chunk-ZV4BH47P.js
CHANGED
|
@@ -1,154 +1,156 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-6SM22VVJ.js";
|
|
4
|
-
import {
|
|
5
|
-
AuthError
|
|
6
|
-
} from "./chunk-FJUDBLCP.js";
|
|
1
|
+
import { isRequest } from "./chunk-6SM22VVJ.js"
|
|
2
|
+
import { AuthError } from "./chunk-FJUDBLCP.js"
|
|
7
3
|
|
|
8
4
|
// src/cookie.ts
|
|
9
|
-
import { parse, serialize } from "cookie"
|
|
10
|
-
import { parse as parse2 } from "cookie"
|
|
11
|
-
var COOKIE_NAME = "aura-auth"
|
|
5
|
+
import { parse, serialize } from "cookie"
|
|
6
|
+
import { parse as parse2 } from "cookie"
|
|
7
|
+
var COOKIE_NAME = "aura-auth"
|
|
12
8
|
var defaultCookieOptions = {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
9
|
+
httpOnly: true,
|
|
10
|
+
sameSite: "lax",
|
|
11
|
+
path: "/",
|
|
12
|
+
maxAge: 60 * 60 * 24 * 15,
|
|
13
|
+
}
|
|
18
14
|
var defaultCookieConfig = {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
15
|
+
strategy: "standard",
|
|
16
|
+
name: COOKIE_NAME,
|
|
17
|
+
options: defaultCookieOptions,
|
|
18
|
+
}
|
|
23
19
|
var defaultStandardCookieConfig = {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
20
|
+
secure: false,
|
|
21
|
+
httpOnly: true,
|
|
22
|
+
prefix: "",
|
|
23
|
+
}
|
|
28
24
|
var defaultSecureCookieConfig = {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
25
|
+
secure: true,
|
|
26
|
+
prefix: "__Secure-",
|
|
27
|
+
}
|
|
32
28
|
var defaultHostCookieConfig = {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
29
|
+
secure: true,
|
|
30
|
+
prefix: "__Host-",
|
|
31
|
+
path: "/",
|
|
32
|
+
domain: void 0,
|
|
33
|
+
}
|
|
38
34
|
var expiredCookieOptions = {
|
|
39
|
-
...defaultCookieOptions,
|
|
40
|
-
expires: /* @__PURE__ */ new Date(0),
|
|
41
|
-
maxAge: 0
|
|
42
|
-
};
|
|
43
|
-
var defineDefaultCookieOptions = (options) => {
|
|
44
|
-
return {
|
|
45
|
-
name: options?.name ?? COOKIE_NAME,
|
|
46
|
-
prefix: options?.prefix ?? (options?.secure ? "__Secure-" : ""),
|
|
47
35
|
...defaultCookieOptions,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
36
|
+
expires: /* @__PURE__ */ new Date(0),
|
|
37
|
+
maxAge: 0,
|
|
38
|
+
}
|
|
39
|
+
var defineDefaultCookieOptions = (options) => {
|
|
40
|
+
return {
|
|
41
|
+
name: options?.name ?? COOKIE_NAME,
|
|
42
|
+
prefix: options?.prefix ?? (options?.secure ? "__Secure-" : ""),
|
|
43
|
+
...defaultCookieOptions,
|
|
44
|
+
...options,
|
|
45
|
+
}
|
|
46
|
+
}
|
|
51
47
|
var setCookie = (cookieName, value, options) => {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
48
|
+
const { prefix, name } = defineDefaultCookieOptions(options)
|
|
49
|
+
const cookieNameWithPrefix = `${prefix}${name}.${cookieName}`
|
|
50
|
+
return serialize(cookieNameWithPrefix, value, {
|
|
51
|
+
...defaultCookieOptions,
|
|
52
|
+
...options,
|
|
53
|
+
})
|
|
54
|
+
}
|
|
59
55
|
var getCookie = (petition, cookie, options, optional = false) => {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
56
|
+
const cookies = isRequest(petition) ? petition.headers.get("Cookie") : petition.headers.getSetCookie().join("; ")
|
|
57
|
+
if (!cookies) {
|
|
58
|
+
if (optional) {
|
|
59
|
+
return ""
|
|
60
|
+
}
|
|
61
|
+
throw new AuthError("invalid_request", "No cookies found. There is no active session")
|
|
64
62
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
63
|
+
const { name, prefix } = defineDefaultCookieOptions(options)
|
|
64
|
+
const parsedCookies = parse(cookies)
|
|
65
|
+
const value = parsedCookies[`${prefix}${name}.${cookie}`]
|
|
66
|
+
if (value === void 0) {
|
|
67
|
+
if (optional) {
|
|
68
|
+
return ""
|
|
69
|
+
}
|
|
70
|
+
throw new AuthError("invalid_request", `Cookie "${cookie}" not found. There is no active session`)
|
|
73
71
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
return value;
|
|
77
|
-
};
|
|
72
|
+
return value
|
|
73
|
+
}
|
|
78
74
|
var createSessionCookie = async (session, cookieOptions, jose) => {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
75
|
+
try {
|
|
76
|
+
const encoded = await jose.encodeJWT(session)
|
|
77
|
+
return setCookie("sessionToken", encoded, cookieOptions)
|
|
78
|
+
} catch (error) {
|
|
79
|
+
throw new AuthError("server_error", "Failed to create session cookie", { cause: error })
|
|
80
|
+
}
|
|
81
|
+
}
|
|
86
82
|
var secureCookieOptions = (request, cookieOptions, trustedProxyHeaders) => {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
if (!isSecure) {
|
|
98
|
-
const options = cookieOptions.options;
|
|
99
|
-
if (options?.secure) {
|
|
100
|
-
console.warn(
|
|
101
|
-
"[WARNING]: The 'Secure' attribute will be disabled for this cookie. Serve over HTTPS to enforce Secure cookies."
|
|
102
|
-
);
|
|
83
|
+
const name = cookieOptions.name ?? COOKIE_NAME
|
|
84
|
+
const isSecure = trustedProxyHeaders
|
|
85
|
+
? request.url.startsWith("https://") ||
|
|
86
|
+
request.headers.get("X-Forwarded-Proto") === "https" ||
|
|
87
|
+
request.headers.get("Forwarded")?.includes("proto=https")
|
|
88
|
+
: request.url.startsWith("https://")
|
|
89
|
+
if (!cookieOptions.options?.httpOnly) {
|
|
90
|
+
console.warn(
|
|
91
|
+
"[WARNING]: Cookie is configured without HttpOnly. This allows JavaScript access via document.cookie and increases XSS risk."
|
|
92
|
+
)
|
|
103
93
|
}
|
|
104
|
-
if (options?.
|
|
105
|
-
|
|
94
|
+
if (cookieOptions.options?.domain === "*") {
|
|
95
|
+
console.warn("[WARNING]: Cookie 'Domain' is set to '*', which is insecure. Avoid wildcard domains.")
|
|
106
96
|
}
|
|
107
|
-
if (
|
|
108
|
-
|
|
97
|
+
if (!isSecure) {
|
|
98
|
+
const options = cookieOptions.options
|
|
99
|
+
if (options?.secure) {
|
|
100
|
+
console.warn(
|
|
101
|
+
"[WARNING]: The 'Secure' attribute will be disabled for this cookie. Serve over HTTPS to enforce Secure cookies."
|
|
102
|
+
)
|
|
103
|
+
}
|
|
104
|
+
if (options?.sameSite == "none") {
|
|
105
|
+
console.warn("[WARNING]: SameSite=None without a secure connection can be blocked by browsers.")
|
|
106
|
+
}
|
|
107
|
+
if (process.env.NODE_ENV === "production") {
|
|
108
|
+
console.warn("[WARNING]: In production, ensure cookies are served over HTTPS to maintain security.")
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
...defaultCookieOptions,
|
|
112
|
+
...cookieOptions.options,
|
|
113
|
+
sameSite: options?.sameSite === "none" ? "lax" : (options?.sameSite ?? "lax"),
|
|
114
|
+
...defaultStandardCookieConfig,
|
|
115
|
+
name,
|
|
116
|
+
}
|
|
109
117
|
}
|
|
110
|
-
return
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
...defaultCookieOptions,
|
|
120
|
-
...cookieOptions.options,
|
|
121
|
-
...defaultHostCookieConfig,
|
|
122
|
-
name
|
|
123
|
-
} : { ...defaultCookieOptions, ...cookieOptions.options, ...defaultSecureCookieConfig, name };
|
|
124
|
-
};
|
|
118
|
+
return cookieOptions.strategy === "host"
|
|
119
|
+
? {
|
|
120
|
+
...defaultCookieOptions,
|
|
121
|
+
...cookieOptions.options,
|
|
122
|
+
...defaultHostCookieConfig,
|
|
123
|
+
name,
|
|
124
|
+
}
|
|
125
|
+
: { ...defaultCookieOptions, ...cookieOptions.options, ...defaultSecureCookieConfig, name }
|
|
126
|
+
}
|
|
125
127
|
var expireCookie = (name, options) => {
|
|
126
|
-
|
|
127
|
-
}
|
|
128
|
+
return setCookie(name, "", { ...options, ...expiredCookieOptions })
|
|
129
|
+
}
|
|
128
130
|
var oauthCookie = (options) => {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
131
|
+
return {
|
|
132
|
+
...options,
|
|
133
|
+
secure: options.secure,
|
|
134
|
+
httpOnly: options.httpOnly,
|
|
135
|
+
maxAge: 5 * 60,
|
|
136
|
+
expires: new Date(Date.now() + 5 * 60 * 1e3),
|
|
137
|
+
}
|
|
138
|
+
}
|
|
137
139
|
|
|
138
140
|
export {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
}
|
|
141
|
+
COOKIE_NAME,
|
|
142
|
+
defaultCookieOptions,
|
|
143
|
+
defaultCookieConfig,
|
|
144
|
+
defaultStandardCookieConfig,
|
|
145
|
+
defaultSecureCookieConfig,
|
|
146
|
+
defaultHostCookieConfig,
|
|
147
|
+
expiredCookieOptions,
|
|
148
|
+
defineDefaultCookieOptions,
|
|
149
|
+
setCookie,
|
|
150
|
+
getCookie,
|
|
151
|
+
createSessionCookie,
|
|
152
|
+
secureCookieOptions,
|
|
153
|
+
expireCookie,
|
|
154
|
+
oauthCookie,
|
|
155
|
+
parse2 as parse,
|
|
156
|
+
}
|