@xylex-group/athena 2.12.0 → 2.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +1190 -1184
- package/bin/athena-js.js +104 -76
- package/dist/admin.cjs +45 -0
- package/dist/admin.cjs.map +1 -0
- package/dist/admin.d.cts +64 -0
- package/dist/admin.d.ts +64 -0
- package/dist/admin.js +41 -0
- package/dist/admin.js.map +1 -0
- package/dist/athena-auth-url-oLux_57a.d.cts +377 -0
- package/dist/athena-auth-url-oLux_57a.d.ts +377 -0
- package/dist/browser.cjs +33 -46
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.d.cts +12 -10
- package/dist/browser.d.ts +12 -10
- package/dist/browser.js +33 -46
- package/dist/browser.js.map +1 -1
- package/dist/cli/index.cjs +150 -48
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts +14 -5
- package/dist/cli/index.d.ts +14 -5
- package/dist/cli/index.js +150 -49
- package/dist/cli/index.js.map +1 -1
- package/dist/{client-QUbAs7E8.d.ts → client-BJjUwDSg.d.cts} +109 -1448
- package/dist/{client-C3x75Zgn.d.cts → client-DVOKSYDI.d.ts} +109 -1448
- package/dist/cookies.cjs +18 -0
- package/dist/cookies.cjs.map +1 -1
- package/dist/cookies.d.cts +2 -1
- package/dist/cookies.d.ts +2 -1
- package/dist/cookies.js +17 -1
- package/dist/cookies.js.map +1 -1
- package/dist/{index-CVcQCGyG.d.ts → index-CFL9xbFR.d.cts} +2 -0
- package/dist/{index-CVcQCGyG.d.cts → index-UKJpunc6.d.ts} +2 -0
- package/dist/index.cjs +101 -46
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -10
- package/dist/index.d.ts +13 -10
- package/dist/index.js +101 -47
- package/dist/index.js.map +1 -1
- package/dist/{model-form-CD1uhWSh.d.cts → model-form-Dw4zEL5a.d.cts} +2 -2
- package/dist/{model-form-Dm69I-oO.d.ts → model-form-yRg71q3H.d.ts} +2 -2
- package/dist/{module-CW3tWJ10.d.ts → module-DBteUIob.d.ts} +12 -9
- package/dist/{module-Cxcurfes.d.cts → module-yoX49uQC.d.cts} +12 -9
- package/dist/next/client.cjs +452 -46
- package/dist/next/client.cjs.map +1 -1
- package/dist/next/client.d.cts +7 -4
- package/dist/next/client.d.ts +7 -4
- package/dist/next/client.js +430 -47
- package/dist/next/client.js.map +1 -1
- package/dist/next/server.cjs +292 -46
- package/dist/next/server.cjs.map +1 -1
- package/dist/next/server.d.cts +81 -5
- package/dist/next/server.d.ts +81 -5
- package/dist/next/server.js +280 -47
- package/dist/next/server.js.map +1 -1
- package/dist/organization.cjs +72 -0
- package/dist/organization.cjs.map +1 -0
- package/dist/organization.d.cts +43 -0
- package/dist/organization.d.ts +43 -0
- package/dist/organization.js +70 -0
- package/dist/organization.js.map +1 -0
- package/dist/payload-BzVbUgY_.d.cts +219 -0
- package/dist/payload-DEOWN_oo.d.ts +219 -0
- package/dist/{pipeline-BAwb6Vzm.d.ts → pipeline-Bj6RWt1A.d.ts} +1 -1
- package/dist/{pipeline-B14jVK7J.d.cts → pipeline-Dwck-wZO.d.cts} +1 -1
- package/dist/react.cjs +2 -10
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +26 -7
- package/dist/react.d.ts +26 -7
- package/dist/react.js +2 -10
- package/dist/react.js.map +1 -1
- package/dist/session-cookie-detection-BqOp9mO6.d.cts +46 -0
- package/dist/session-cookie-detection-BqOp9mO6.d.ts +46 -0
- package/dist/social-providers.cjs +4189 -0
- package/dist/social-providers.cjs.map +1 -0
- package/dist/social-providers.d.cts +4948 -0
- package/dist/social-providers.d.ts +4948 -0
- package/dist/social-providers.js +4117 -0
- package/dist/social-providers.js.map +1 -0
- package/dist/{types-Cq4-NoB4.d.ts → types-BRP7sfSF.d.ts} +50 -2
- package/dist/{types-Dr849HD6.d.cts → types-BU8uJH_b.d.cts} +50 -2
- package/dist/{types-CwJCPpLD.d.ts → types-CH78O90i.d.cts} +2 -2
- package/dist/{types-CwJCPpLD.d.cts → types-CH78O90i.d.ts} +2 -2
- package/dist/{types-DMOoYnPS.d.cts → types-CjC9_5ZQ.d.cts} +3 -3
- package/dist/{types-BcVmPBP-.d.ts → types-DPgejxYC.d.ts} +3 -3
- package/dist/types-eAKAh71s.d.cts +1476 -0
- package/dist/types-eAKAh71s.d.ts +1476 -0
- package/dist/utils.cjs +438 -12
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +76 -11
- package/dist/utils.d.ts +76 -11
- package/dist/utils.js +390 -13
- package/dist/utils.js.map +1 -1
- package/package.json +49 -22
- package/dist/shared-0Kdc74lu.d.ts +0 -35
- package/dist/shared-C0wVICRv.d.cts +0 -35
package/dist/next/server.cjs
CHANGED
|
@@ -138,6 +138,22 @@ function parseCookies(cookieHeader) {
|
|
|
138
138
|
});
|
|
139
139
|
return cookieMap;
|
|
140
140
|
}
|
|
141
|
+
|
|
142
|
+
// src/cookies/session-cookie-detection.ts
|
|
143
|
+
var SESSION_COOKIE_PATTERNS = [
|
|
144
|
+
/(?:^|;\s*)(?:__Secure-)?better-auth\.session_token=/,
|
|
145
|
+
/(?:^|;\s*)(?:__Secure-)?better-auth-session_token=/,
|
|
146
|
+
/(?:^|;\s*)(?:__Secure-)?athena-auth\.session-token=/,
|
|
147
|
+
/(?:^|;\s*)(?:__Secure-)?athena-auth-session-token=/,
|
|
148
|
+
/(?:^|;\s*)(?:__Secure-)?athena-auth\.session_token=/,
|
|
149
|
+
/(?:^|;\s*)(?:__Secure-)?athena-auth-session_token=/
|
|
150
|
+
];
|
|
151
|
+
function hasAuthSessionCookie(cookieHeader) {
|
|
152
|
+
if (!cookieHeader) {
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
return SESSION_COOKIE_PATTERNS.some((pattern) => pattern.test(cookieHeader));
|
|
156
|
+
}
|
|
141
157
|
var getSessionCookie = (request2, config) => {
|
|
142
158
|
const cookies = (request2 instanceof Headers || !("headers" in request2) ? request2 : request2.headers).get("cookie");
|
|
143
159
|
if (!cookies) {
|
|
@@ -162,7 +178,7 @@ var getSessionCookie = (request2, config) => {
|
|
|
162
178
|
|
|
163
179
|
// src/utils/athena-request-headers.ts
|
|
164
180
|
var NO_CACHE_HEADER_VALUE = "no-cache";
|
|
165
|
-
var API_KEY_HEADER_CANDIDATES = ["x-api-key", "apikey"];
|
|
181
|
+
var API_KEY_HEADER_CANDIDATES = ["X-Athena-Key", "x-athena-key", "X-Api-Key", "x-api-key", "apikey"];
|
|
166
182
|
var ATHENA_KEY_HEADER_CANDIDATES = ["X-Athena-Key", "x-athena-key"];
|
|
167
183
|
var SESSION_TOKEN_HEADER_CANDIDATES = ["X-Athena-Auth-Session-Token"];
|
|
168
184
|
var BEARER_MIRROR_HEADER_CANDIDATES = ["X-Athena-Auth-Bearer-Token"];
|
|
@@ -264,14 +280,6 @@ function buildServiceRequestHeaders(profile, sdkHeaderValue, config, options, ex
|
|
|
264
280
|
});
|
|
265
281
|
}
|
|
266
282
|
function applyAthenaApiKeyHeaders(headers, apiKey, athenaKey) {
|
|
267
|
-
if (apiKey) {
|
|
268
|
-
if (!hasHeaderIgnoreCase(headers, "apikey")) {
|
|
269
|
-
headers.apikey = apiKey;
|
|
270
|
-
}
|
|
271
|
-
if (!hasHeaderIgnoreCase(headers, "x-api-key")) {
|
|
272
|
-
headers["x-api-key"] = apiKey;
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
283
|
const resolvedAthenaKey = normalizeHeaderValue(athenaKey) ?? normalizeHeaderValue(apiKey);
|
|
276
284
|
if (resolvedAthenaKey && !hasHeaderIgnoreCase(headers, "X-Athena-Key")) {
|
|
277
285
|
headers["X-Athena-Key"] = resolvedAthenaKey;
|
|
@@ -397,7 +405,7 @@ function buildAthenaRequestHeaders(input) {
|
|
|
397
405
|
|
|
398
406
|
// package.json
|
|
399
407
|
var package_default = {
|
|
400
|
-
version: "2.
|
|
408
|
+
version: "2.13.0"
|
|
401
409
|
};
|
|
402
410
|
|
|
403
411
|
// src/sdk-version.ts
|
|
@@ -2826,38 +2834,6 @@ async function withRetry(config, fn) {
|
|
|
2826
2834
|
throw new Error("withRetry reached an unexpected state");
|
|
2827
2835
|
}
|
|
2828
2836
|
|
|
2829
|
-
// src/db/module.ts
|
|
2830
|
-
function createDbModule(input) {
|
|
2831
|
-
const db = {
|
|
2832
|
-
from: input.from,
|
|
2833
|
-
select(table, first, second) {
|
|
2834
|
-
if (first && typeof first === "object" && !Array.isArray(first)) {
|
|
2835
|
-
return input.from(table).select(void 0, first);
|
|
2836
|
-
}
|
|
2837
|
-
return input.from(table).select(first, second);
|
|
2838
|
-
},
|
|
2839
|
-
insert(table, values, options) {
|
|
2840
|
-
return Array.isArray(values) ? input.from(table).insert(values, options) : input.from(table).insert(values, options);
|
|
2841
|
-
},
|
|
2842
|
-
upsert(table, values, options) {
|
|
2843
|
-
return Array.isArray(values) ? input.from(table).upsert(values, options) : input.from(table).upsert(values, options);
|
|
2844
|
-
},
|
|
2845
|
-
update(table, values, options) {
|
|
2846
|
-
return input.from(table).update(values, options);
|
|
2847
|
-
},
|
|
2848
|
-
delete(table, options) {
|
|
2849
|
-
return input.from(table).delete(options);
|
|
2850
|
-
},
|
|
2851
|
-
rpc(fn, args, options) {
|
|
2852
|
-
return input.rpc(fn, args, options);
|
|
2853
|
-
},
|
|
2854
|
-
query(query, options) {
|
|
2855
|
-
return input.query(query, options);
|
|
2856
|
-
}
|
|
2857
|
-
};
|
|
2858
|
-
return db;
|
|
2859
|
-
}
|
|
2860
|
-
|
|
2861
2837
|
// src/storage/file.ts
|
|
2862
2838
|
function createStorageFileModule(base, config = {}) {
|
|
2863
2839
|
const upload = async (input, options) => {
|
|
@@ -8436,7 +8412,30 @@ function createClientFromConfig(config, sourceConfig) {
|
|
|
8436
8412
|
config.experimental,
|
|
8437
8413
|
queryTracer
|
|
8438
8414
|
);
|
|
8439
|
-
const
|
|
8415
|
+
const untypedDbFrom = from;
|
|
8416
|
+
const db = {
|
|
8417
|
+
from,
|
|
8418
|
+
select(table, first, second) {
|
|
8419
|
+
if (first && typeof first === "object" && !Array.isArray(first)) {
|
|
8420
|
+
return untypedDbFrom(table).select(void 0, first);
|
|
8421
|
+
}
|
|
8422
|
+
return untypedDbFrom(table).select(first, second);
|
|
8423
|
+
},
|
|
8424
|
+
insert(table, values, options) {
|
|
8425
|
+
return Array.isArray(values) ? untypedDbFrom(table).insert(values, options) : untypedDbFrom(table).insert(values, options);
|
|
8426
|
+
},
|
|
8427
|
+
upsert(table, values, options) {
|
|
8428
|
+
return Array.isArray(values) ? untypedDbFrom(table).upsert(values, options) : untypedDbFrom(table).upsert(values, options);
|
|
8429
|
+
},
|
|
8430
|
+
update(table, values, options) {
|
|
8431
|
+
return untypedDbFrom(table).update(values, options);
|
|
8432
|
+
},
|
|
8433
|
+
delete(table, options) {
|
|
8434
|
+
return untypedDbFrom(table).delete(options);
|
|
8435
|
+
},
|
|
8436
|
+
rpc,
|
|
8437
|
+
query
|
|
8438
|
+
};
|
|
8440
8439
|
const chat = createChatModule({
|
|
8441
8440
|
baseUrl: config.chatUrl,
|
|
8442
8441
|
apiKey: config.apiKey,
|
|
@@ -8587,7 +8586,9 @@ function createClientFromConfig(config, sourceConfig) {
|
|
|
8587
8586
|
var AthenaClient = class {
|
|
8588
8587
|
/** Create a fluent builder for a strongly-typed Athena SDK client. */
|
|
8589
8588
|
static builder() {
|
|
8590
|
-
return createAthenaClientBuilder(
|
|
8589
|
+
return createAthenaClientBuilder(
|
|
8590
|
+
(config) => createClientFromInput(config)
|
|
8591
|
+
);
|
|
8591
8592
|
}
|
|
8592
8593
|
static fromEnvironment(options = {}) {
|
|
8593
8594
|
const env = options.env ?? process.env;
|
|
@@ -8618,11 +8619,12 @@ var AthenaClient = class {
|
|
|
8618
8619
|
});
|
|
8619
8620
|
}
|
|
8620
8621
|
};
|
|
8621
|
-
function createClient(
|
|
8622
|
+
function createClient(...args) {
|
|
8623
|
+
const [configOrUrl, apiKey, options] = args;
|
|
8622
8624
|
if (typeof configOrUrl === "string" || configOrUrl === null || configOrUrl === void 0) {
|
|
8623
8625
|
return createClientFromInput({
|
|
8624
8626
|
url: configOrUrl,
|
|
8625
|
-
key: "",
|
|
8627
|
+
key: apiKey ?? "",
|
|
8626
8628
|
...options
|
|
8627
8629
|
});
|
|
8628
8630
|
}
|
|
@@ -8758,6 +8760,237 @@ function buildSessionClientOptions(context, options) {
|
|
|
8758
8760
|
};
|
|
8759
8761
|
}
|
|
8760
8762
|
|
|
8763
|
+
// src/next/session-bridge/constants.ts
|
|
8764
|
+
var ATHENA_AUTH_SESSION_BRIDGE_ROUTE = "/api/athena-auth/session";
|
|
8765
|
+
var ATHENA_AUTH_SESSION_COOKIE_NAME = "athena-auth.session-token";
|
|
8766
|
+
var ATHENA_AUTH_SESSION_COOKIE_NAMES = [
|
|
8767
|
+
ATHENA_AUTH_SESSION_COOKIE_NAME,
|
|
8768
|
+
"athena-auth.session_token"
|
|
8769
|
+
];
|
|
8770
|
+
|
|
8771
|
+
// src/next/session-bridge/client.ts
|
|
8772
|
+
var JSON_CONTENT_TYPE = "application/json";
|
|
8773
|
+
function isBrowserRuntime() {
|
|
8774
|
+
return typeof globalThis !== "undefined" && "window" in globalThis;
|
|
8775
|
+
}
|
|
8776
|
+
async function persistAthenaAuthSessionOnAppHost(payload, options) {
|
|
8777
|
+
if (!(payload && isBrowserRuntime())) {
|
|
8778
|
+
return;
|
|
8779
|
+
}
|
|
8780
|
+
const route = options?.route ?? ATHENA_AUTH_SESSION_BRIDGE_ROUTE;
|
|
8781
|
+
const fetchImpl = options?.fetch ?? fetch;
|
|
8782
|
+
const response = await fetchImpl(route, {
|
|
8783
|
+
body: JSON.stringify(payload),
|
|
8784
|
+
credentials: "same-origin",
|
|
8785
|
+
headers: {
|
|
8786
|
+
"Content-Type": JSON_CONTENT_TYPE
|
|
8787
|
+
},
|
|
8788
|
+
method: "POST"
|
|
8789
|
+
});
|
|
8790
|
+
if (!response.ok) {
|
|
8791
|
+
throw new Error("Failed to persist the Athena Auth session on the app host");
|
|
8792
|
+
}
|
|
8793
|
+
}
|
|
8794
|
+
async function clearAthenaAuthSessionOnAppHost(options) {
|
|
8795
|
+
if (!isBrowserRuntime()) {
|
|
8796
|
+
return;
|
|
8797
|
+
}
|
|
8798
|
+
const route = options?.route ?? ATHENA_AUTH_SESSION_BRIDGE_ROUTE;
|
|
8799
|
+
const fetchImpl = options?.fetch ?? fetch;
|
|
8800
|
+
const response = await fetchImpl(route, {
|
|
8801
|
+
credentials: "same-origin",
|
|
8802
|
+
method: "DELETE"
|
|
8803
|
+
});
|
|
8804
|
+
if (!response.ok) {
|
|
8805
|
+
throw new Error("Failed to clear the Athena Auth session on the app host");
|
|
8806
|
+
}
|
|
8807
|
+
}
|
|
8808
|
+
|
|
8809
|
+
// src/next/session-bridge/payload.ts
|
|
8810
|
+
function resolveSessionBridgePayload(payload) {
|
|
8811
|
+
const token = payload?.session?.token ?? payload?.token;
|
|
8812
|
+
if (typeof token !== "string") {
|
|
8813
|
+
return null;
|
|
8814
|
+
}
|
|
8815
|
+
const normalizedToken = token.trim();
|
|
8816
|
+
if (!normalizedToken) {
|
|
8817
|
+
return null;
|
|
8818
|
+
}
|
|
8819
|
+
return {
|
|
8820
|
+
token: normalizedToken,
|
|
8821
|
+
expiresAt: typeof payload?.session?.expiresAt === "string" ? payload.session.expiresAt : void 0
|
|
8822
|
+
};
|
|
8823
|
+
}
|
|
8824
|
+
|
|
8825
|
+
// src/next/session-bridge/cookie.ts
|
|
8826
|
+
var EXPIRED_AT = /* @__PURE__ */ new Date(0);
|
|
8827
|
+
function resolveRequestIsSecure(request2) {
|
|
8828
|
+
const forwardedProto = request2.headers.get("x-forwarded-proto")?.trim();
|
|
8829
|
+
if (forwardedProto) {
|
|
8830
|
+
const first = forwardedProto.split(",")[0]?.trim().toLowerCase();
|
|
8831
|
+
if (first === "https") return true;
|
|
8832
|
+
if (first === "http") return false;
|
|
8833
|
+
}
|
|
8834
|
+
return new URL(request2.url).protocol === "https:";
|
|
8835
|
+
}
|
|
8836
|
+
function resolveSessionCookieExpiresAt(value) {
|
|
8837
|
+
if (typeof value !== "string") {
|
|
8838
|
+
return void 0;
|
|
8839
|
+
}
|
|
8840
|
+
const expiresAt = new Date(value);
|
|
8841
|
+
return Number.isNaN(expiresAt.getTime()) ? void 0 : expiresAt;
|
|
8842
|
+
}
|
|
8843
|
+
function serializeCookie(name, value, options) {
|
|
8844
|
+
const parts = [
|
|
8845
|
+
`${encodeURIComponent(name)}=${encodeURIComponent(value)}`,
|
|
8846
|
+
`Path=${options.path}`,
|
|
8847
|
+
"HttpOnly",
|
|
8848
|
+
`SameSite=${options.sameSite === "none" ? "None" : options.sameSite === "strict" ? "Strict" : "Lax"}`
|
|
8849
|
+
];
|
|
8850
|
+
if (options.secure) {
|
|
8851
|
+
parts.push("Secure");
|
|
8852
|
+
}
|
|
8853
|
+
if (options.expires) {
|
|
8854
|
+
parts.push(`Expires=${options.expires.toUTCString()}`);
|
|
8855
|
+
}
|
|
8856
|
+
return parts.join("; ");
|
|
8857
|
+
}
|
|
8858
|
+
function resolveBridgeCookieConfig(options) {
|
|
8859
|
+
return {
|
|
8860
|
+
cookieName: options?.cookieName ?? ATHENA_AUTH_SESSION_COOKIE_NAME,
|
|
8861
|
+
cookieNames: options?.cookieNames ?? ATHENA_AUTH_SESSION_COOKIE_NAMES,
|
|
8862
|
+
cookiePath: options?.cookiePath ?? "/",
|
|
8863
|
+
sameSite: options?.sameSite ?? "lax"
|
|
8864
|
+
};
|
|
8865
|
+
}
|
|
8866
|
+
function appendSessionCookie(headers, request2, token, expiresAt, options) {
|
|
8867
|
+
const config = resolveBridgeCookieConfig(options);
|
|
8868
|
+
const secure = options?.secure ?? resolveRequestIsSecure(request2);
|
|
8869
|
+
headers.append(
|
|
8870
|
+
"set-cookie",
|
|
8871
|
+
serializeCookie(config.cookieName, token, {
|
|
8872
|
+
path: config.cookiePath,
|
|
8873
|
+
sameSite: config.sameSite,
|
|
8874
|
+
secure,
|
|
8875
|
+
expires: expiresAt
|
|
8876
|
+
})
|
|
8877
|
+
);
|
|
8878
|
+
}
|
|
8879
|
+
function appendClearSessionCookies(headers, request2, options) {
|
|
8880
|
+
const config = resolveBridgeCookieConfig(options);
|
|
8881
|
+
const secure = options?.secure ?? resolveRequestIsSecure(request2);
|
|
8882
|
+
const names = /* @__PURE__ */ new Set([config.cookieName, ...config.cookieNames]);
|
|
8883
|
+
for (const name of names) {
|
|
8884
|
+
headers.append(
|
|
8885
|
+
"set-cookie",
|
|
8886
|
+
serializeCookie(name, "", {
|
|
8887
|
+
path: config.cookiePath,
|
|
8888
|
+
sameSite: config.sameSite,
|
|
8889
|
+
secure,
|
|
8890
|
+
expires: EXPIRED_AT
|
|
8891
|
+
})
|
|
8892
|
+
);
|
|
8893
|
+
}
|
|
8894
|
+
}
|
|
8895
|
+
|
|
8896
|
+
// src/next/session-bridge/handlers.ts
|
|
8897
|
+
function json(body, init) {
|
|
8898
|
+
const headers = init?.headers ?? new Headers();
|
|
8899
|
+
if (!headers.has("content-type")) {
|
|
8900
|
+
headers.set("content-type", "application/json; charset=utf-8");
|
|
8901
|
+
}
|
|
8902
|
+
return new Response(JSON.stringify(body), {
|
|
8903
|
+
status: init?.status ?? 200,
|
|
8904
|
+
headers
|
|
8905
|
+
});
|
|
8906
|
+
}
|
|
8907
|
+
function resolveRoute(options) {
|
|
8908
|
+
return options?.route ?? ATHENA_AUTH_SESSION_BRIDGE_ROUTE;
|
|
8909
|
+
}
|
|
8910
|
+
async function handleAthenaAuthSessionBridgePost(request2, options) {
|
|
8911
|
+
const payload = await request2.json().catch(() => null);
|
|
8912
|
+
const token = typeof payload?.token === "string" ? payload.token.trim() : "";
|
|
8913
|
+
if (!token) {
|
|
8914
|
+
return json(
|
|
8915
|
+
{
|
|
8916
|
+
error: "Missing Athena Auth session token"
|
|
8917
|
+
},
|
|
8918
|
+
{ status: 400 }
|
|
8919
|
+
);
|
|
8920
|
+
}
|
|
8921
|
+
const headers = new Headers();
|
|
8922
|
+
appendSessionCookie(
|
|
8923
|
+
headers,
|
|
8924
|
+
request2,
|
|
8925
|
+
token,
|
|
8926
|
+
resolveSessionCookieExpiresAt(payload?.expiresAt),
|
|
8927
|
+
options
|
|
8928
|
+
);
|
|
8929
|
+
return json(
|
|
8930
|
+
{
|
|
8931
|
+
ok: true,
|
|
8932
|
+
route: resolveRoute(options)
|
|
8933
|
+
},
|
|
8934
|
+
{ headers }
|
|
8935
|
+
);
|
|
8936
|
+
}
|
|
8937
|
+
function handleAthenaAuthSessionBridgeDelete(request2, options) {
|
|
8938
|
+
const headers = new Headers();
|
|
8939
|
+
appendClearSessionCookies(headers, request2, options);
|
|
8940
|
+
return json(
|
|
8941
|
+
{
|
|
8942
|
+
ok: true,
|
|
8943
|
+
route: resolveRoute(options)
|
|
8944
|
+
},
|
|
8945
|
+
{ headers }
|
|
8946
|
+
);
|
|
8947
|
+
}
|
|
8948
|
+
function createAthenaAuthSessionBridgeHandlers(options) {
|
|
8949
|
+
return {
|
|
8950
|
+
POST: (request2) => handleAthenaAuthSessionBridgePost(request2, options),
|
|
8951
|
+
DELETE: (request2) => handleAthenaAuthSessionBridgeDelete(request2, options)
|
|
8952
|
+
};
|
|
8953
|
+
}
|
|
8954
|
+
function normalizePathname(pathname) {
|
|
8955
|
+
if (pathname.length > 1 && pathname.endsWith("/")) {
|
|
8956
|
+
return pathname.slice(0, -1);
|
|
8957
|
+
}
|
|
8958
|
+
return pathname || "/";
|
|
8959
|
+
}
|
|
8960
|
+
function isAthenaAuthSessionBridgePath(request2, options) {
|
|
8961
|
+
const pathname = normalizePathname(new URL(request2.url).pathname);
|
|
8962
|
+
const route = normalizePathname(resolveRoute(options));
|
|
8963
|
+
if (pathname === route) {
|
|
8964
|
+
return true;
|
|
8965
|
+
}
|
|
8966
|
+
const matchPaths = options?.matchPaths ?? ["session"];
|
|
8967
|
+
const segments = pathname.split("/").filter(Boolean);
|
|
8968
|
+
const tail = segments[segments.length - 1];
|
|
8969
|
+
return typeof tail === "string" && matchPaths.includes(tail);
|
|
8970
|
+
}
|
|
8971
|
+
function createAthenaAuthSessionBridgePathHandlers(options) {
|
|
8972
|
+
const notFound = () => json(
|
|
8973
|
+
{
|
|
8974
|
+
error: "Not found"
|
|
8975
|
+
},
|
|
8976
|
+
{ status: 404 }
|
|
8977
|
+
);
|
|
8978
|
+
return {
|
|
8979
|
+
POST: async (request2) => {
|
|
8980
|
+
if (!isAthenaAuthSessionBridgePath(request2, options)) {
|
|
8981
|
+
return notFound();
|
|
8982
|
+
}
|
|
8983
|
+
return handleAthenaAuthSessionBridgePost(request2, options);
|
|
8984
|
+
},
|
|
8985
|
+
DELETE: (request2) => {
|
|
8986
|
+
if (!isAthenaAuthSessionBridgePath(request2, options)) {
|
|
8987
|
+
return notFound();
|
|
8988
|
+
}
|
|
8989
|
+
return handleAthenaAuthSessionBridgeDelete(request2, options);
|
|
8990
|
+
}
|
|
8991
|
+
};
|
|
8992
|
+
}
|
|
8993
|
+
|
|
8761
8994
|
// src/next/server.ts
|
|
8762
8995
|
function resolveUserId(session) {
|
|
8763
8996
|
return session?.user?.id ?? null;
|
|
@@ -8796,7 +9029,20 @@ async function resolveAthenaServerContext(options) {
|
|
|
8796
9029
|
};
|
|
8797
9030
|
}
|
|
8798
9031
|
|
|
9032
|
+
exports.ATHENA_AUTH_SESSION_BRIDGE_ROUTE = ATHENA_AUTH_SESSION_BRIDGE_ROUTE;
|
|
9033
|
+
exports.ATHENA_AUTH_SESSION_COOKIE_NAME = ATHENA_AUTH_SESSION_COOKIE_NAME;
|
|
9034
|
+
exports.ATHENA_AUTH_SESSION_COOKIE_NAMES = ATHENA_AUTH_SESSION_COOKIE_NAMES;
|
|
9035
|
+
exports.SESSION_COOKIE_PATTERNS = SESSION_COOKIE_PATTERNS;
|
|
9036
|
+
exports.clearAthenaAuthSessionOnAppHost = clearAthenaAuthSessionOnAppHost;
|
|
9037
|
+
exports.createAthenaAuthSessionBridgeHandlers = createAthenaAuthSessionBridgeHandlers;
|
|
9038
|
+
exports.createAthenaAuthSessionBridgePathHandlers = createAthenaAuthSessionBridgePathHandlers;
|
|
8799
9039
|
exports.createAthenaServerClient = createAthenaServerClient;
|
|
9040
|
+
exports.handleAthenaAuthSessionBridgeDelete = handleAthenaAuthSessionBridgeDelete;
|
|
9041
|
+
exports.handleAthenaAuthSessionBridgePost = handleAthenaAuthSessionBridgePost;
|
|
9042
|
+
exports.hasAuthSessionCookie = hasAuthSessionCookie;
|
|
9043
|
+
exports.isAthenaAuthSessionBridgePath = isAthenaAuthSessionBridgePath;
|
|
9044
|
+
exports.persistAthenaAuthSessionOnAppHost = persistAthenaAuthSessionOnAppHost;
|
|
8800
9045
|
exports.resolveAthenaServerContext = resolveAthenaServerContext;
|
|
9046
|
+
exports.resolveSessionBridgePayload = resolveSessionBridgePayload;
|
|
8801
9047
|
//# sourceMappingURL=server.cjs.map
|
|
8802
9048
|
//# sourceMappingURL=server.cjs.map
|