@arkstack/http 0.12.20 → 0.12.21
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.
|
@@ -2,6 +2,7 @@ import * as _$clear_router0 from "clear-router";
|
|
|
2
2
|
import { ClearHttpContext, Request, Response } from "clear-router";
|
|
3
3
|
import * as _$kanun from "kanun";
|
|
4
4
|
import { MiddlewareClass, MiddlewareInstance, RequestData } from "clear-router/types/basic";
|
|
5
|
+
import { User } from "@app/models/User";
|
|
5
6
|
|
|
6
7
|
//#region src/Response.d.ts
|
|
7
8
|
/**
|
|
@@ -413,6 +414,7 @@ type RequestSource<TUser = unknown> = {
|
|
|
413
414
|
authToken?: string;
|
|
414
415
|
req?: RequestSource<TUser>;
|
|
415
416
|
request?: RequestSource<TUser>;
|
|
417
|
+
original?: RequestSource<TUser>;
|
|
416
418
|
};
|
|
417
419
|
type ResponseSource = {
|
|
418
420
|
statusCode?: number;
|
|
@@ -435,6 +437,7 @@ type RequestOptions<TUser = unknown> = {
|
|
|
435
437
|
authUser?: TUser;
|
|
436
438
|
authToken?: string;
|
|
437
439
|
source?: unknown;
|
|
440
|
+
original?: unknown;
|
|
438
441
|
};
|
|
439
442
|
interface RequestHelper<TUser = unknown> {
|
|
440
443
|
(): Request$1;
|
|
@@ -459,20 +462,30 @@ interface OldHelper {
|
|
|
459
462
|
*
|
|
460
463
|
* @author 3m1n3nc3
|
|
461
464
|
*/
|
|
462
|
-
declare class Request$1<TUser =
|
|
465
|
+
declare class Request$1<TUser = User> extends Request {
|
|
463
466
|
readonly headers: HeaderMap;
|
|
464
467
|
readonly ip: string | null;
|
|
465
468
|
readonly source?: unknown;
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
469
|
+
private currentUser?;
|
|
470
|
+
private currentAuth?;
|
|
471
|
+
private currentAuthUser?;
|
|
472
|
+
private currentAuthToken?;
|
|
473
|
+
get user(): TUser | undefined;
|
|
474
|
+
set user(user: TUser | undefined);
|
|
475
|
+
get auth(): unknown;
|
|
476
|
+
set auth(auth: unknown);
|
|
477
|
+
get authUser(): TUser | undefined;
|
|
478
|
+
set authUser(user: TUser | undefined);
|
|
479
|
+
get authToken(): string | undefined;
|
|
480
|
+
set authToken(token: string | undefined);
|
|
470
481
|
constructor(options?: RequestOptions<TUser>);
|
|
471
482
|
static from<TUser = unknown>(source?: Request$1<TUser> | RequestSource<TUser>): Request$1<TUser> | undefined;
|
|
472
483
|
header(name: string): string;
|
|
473
484
|
bearerToken(): string | null;
|
|
474
485
|
setUser(user: TUser): this;
|
|
475
486
|
setAuthentication<TAuth>(auth: TAuth, user: TUser, token?: string): this;
|
|
487
|
+
syncFromSource(): this;
|
|
488
|
+
private getSourceRequest;
|
|
476
489
|
clearAuthentication(): this;
|
|
477
490
|
}
|
|
478
491
|
//#endregion
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference path="./app.d.ts" />
|
|
2
|
-
import { $ as arkstackHttpPlugin, A as CookieSessionDriver, B as generateSessionId, C as RequestHelper, D as SessionHelper, E as ResponseSource, F as encryptSessionValue, G as signValue, H as parseCookies, I as decodeJson, J as getSessionDriver, K as configureSession, L as decodeSignedValue, M as decodeSessionPayload, N as encodeSessionPayload, O as FileSessionDriver, P as decryptSessionValue, Q as registerResponseFlashSweep, R as encodeJson, S as RedirectHelper, T as RequestSource, U as serializeCookie, V as getCookie, W as setCookie, X as ensureSession, Y as attachViewState, Z as getSession, _ as FunctionMiddleware, _t as cookie_options, a as redirect, at as HttpContextLike, b as HeaderValue, c as isHeaders, ct as SessionDriver, d as normalizeHeaderValue, dt as SessionErrorRecord, et as kanunSessionPlugin, f as normalizeHeaders, ft as SessionErrorSource, g as ClassMiddleware, gt as SessionPayload, h as Request, ht as SessionMessageProvider, i as old, it as DatabaseSessionDriverOptions, j as BaseSessionDriver, k as DatabaseSessionDriver, l as isRecord, lt as SessionDriverResult, m as unwrapRequestSource, mt as SessionInitialState, n as web, nt as ErrorBag, o as redirectBackTarget, ot as PersistentSessionConfig, p as resolveMiddleware, pt as SessionErrorValue, q as createSessionDriver, r as webMiddlewareKey, rt as BaseSessionDriverOptions, s as resolveRedirectTarget, st as SessionConfig, t as isWebRequest, tt as Session, u as makeHeaders, ut as SessionDriverType, v as HeaderMap, vt as FlashBag, w as RequestOptions, x as OldHelper, y as HeaderSource, yt as Response, z as encodeSignedValue } from "./index-
|
|
2
|
+
import { $ as arkstackHttpPlugin, A as CookieSessionDriver, B as generateSessionId, C as RequestHelper, D as SessionHelper, E as ResponseSource, F as encryptSessionValue, G as signValue, H as parseCookies, I as decodeJson, J as getSessionDriver, K as configureSession, L as decodeSignedValue, M as decodeSessionPayload, N as encodeSessionPayload, O as FileSessionDriver, P as decryptSessionValue, Q as registerResponseFlashSweep, R as encodeJson, S as RedirectHelper, T as RequestSource, U as serializeCookie, V as getCookie, W as setCookie, X as ensureSession, Y as attachViewState, Z as getSession, _ as FunctionMiddleware, _t as cookie_options, a as redirect, at as HttpContextLike, b as HeaderValue, c as isHeaders, ct as SessionDriver, d as normalizeHeaderValue, dt as SessionErrorRecord, et as kanunSessionPlugin, f as normalizeHeaders, ft as SessionErrorSource, g as ClassMiddleware, gt as SessionPayload, h as Request, ht as SessionMessageProvider, i as old, it as DatabaseSessionDriverOptions, j as BaseSessionDriver, k as DatabaseSessionDriver, l as isRecord, lt as SessionDriverResult, m as unwrapRequestSource, mt as SessionInitialState, n as web, nt as ErrorBag, o as redirectBackTarget, ot as PersistentSessionConfig, p as resolveMiddleware, pt as SessionErrorValue, q as createSessionDriver, r as webMiddlewareKey, rt as BaseSessionDriverOptions, s as resolveRedirectTarget, st as SessionConfig, t as isWebRequest, tt as Session, u as makeHeaders, ut as SessionDriverType, v as HeaderMap, vt as FlashBag, w as RequestOptions, x as OldHelper, y as HeaderSource, yt as Response, z as encodeSignedValue } from "./index-C-YhZgaG.js";
|
|
3
3
|
export { BaseSessionDriver, BaseSessionDriverOptions, ClassMiddleware, CookieSessionDriver, DatabaseSessionDriver, DatabaseSessionDriverOptions, ErrorBag, FileSessionDriver, FlashBag, FunctionMiddleware, HeaderMap, HeaderSource, HeaderValue, HttpContextLike, OldHelper, PersistentSessionConfig, RedirectHelper, Request, RequestHelper, RequestOptions, RequestSource, Response, ResponseSource, Session, SessionConfig, SessionDriver, SessionDriverResult, SessionDriverType, SessionErrorRecord, SessionErrorSource, SessionErrorValue, SessionHelper, SessionInitialState, SessionMessageProvider, SessionPayload, arkstackHttpPlugin, attachViewState, configureSession, cookie_options, createSessionDriver, decodeJson, decodeSessionPayload, decodeSignedValue, decryptSessionValue, encodeJson, encodeSessionPayload, encodeSignedValue, encryptSessionValue, ensureSession, generateSessionId, getCookie, getSession, getSessionDriver, isHeaders, isRecord, isWebRequest, kanunSessionPlugin, makeHeaders, normalizeHeaderValue, normalizeHeaders, old, parseCookies, redirect, redirectBackTarget, registerResponseFlashSweep, resolveMiddleware, resolveRedirectTarget, serializeCookie, setCookie, signValue, unwrapRequestSource, web, webMiddlewareKey };
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as registerResponseFlashSweep, B as normalizeHeaderValue, C as parseCookies, D as attachViewState, E as signValue, F as Response, H as resolveMiddleware, I as Request, L as isHeaders, M as Session, N as ErrorBag, O as ensureSession, P as FlashBag, R as isRecord, S as getCookie, T as setCookie, U as unwrapRequestSource, V as normalizeHeaders, _ as decodeJson, a as kanunSessionPlugin, b as encodeSignedValue, c as getSessionDriver, d as CookieSessionDriver, f as BaseSessionDriver, g as encodeSessionPayload, h as decodeSessionPayload, i as arkstackHttpPlugin, j as old, k as getSession, l as FileSessionDriver, m as encryptSessionValue, n as redirectBackTarget, o as configureSession, p as decryptSessionValue, r as resolveRedirectTarget, s as createSessionDriver, t as redirect, u as DatabaseSessionDriver, v as decodeSignedValue, w as serializeCookie, x as generateSessionId, y as encodeJson, z as makeHeaders } from "./redirect-
|
|
1
|
+
import { A as registerResponseFlashSweep, B as normalizeHeaderValue, C as parseCookies, D as attachViewState, E as signValue, F as Response, H as resolveMiddleware, I as Request, L as isHeaders, M as Session, N as ErrorBag, O as ensureSession, P as FlashBag, R as isRecord, S as getCookie, T as setCookie, U as unwrapRequestSource, V as normalizeHeaders, _ as decodeJson, a as kanunSessionPlugin, b as encodeSignedValue, c as getSessionDriver, d as CookieSessionDriver, f as BaseSessionDriver, g as encodeSessionPayload, h as decodeSessionPayload, i as arkstackHttpPlugin, j as old, k as getSession, l as FileSessionDriver, m as encryptSessionValue, n as redirectBackTarget, o as configureSession, p as decryptSessionValue, r as resolveRedirectTarget, s as createSessionDriver, t as redirect, u as DatabaseSessionDriver, v as decodeSignedValue, w as serializeCookie, x as generateSessionId, y as encodeJson, z as makeHeaders } from "./redirect-CFGcSkzk.js";
|
|
2
2
|
//#region src/middlewares/web.ts
|
|
3
3
|
const webMiddlewareKey = Symbol.for("arkstack:http:web");
|
|
4
4
|
const markWebRequest = (target) => {
|
|
@@ -9,6 +9,7 @@ import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
|
9
9
|
import { Arkstack } from "@arkstack/contract";
|
|
10
10
|
//#region src/helpers.ts
|
|
11
11
|
const unwrapRequestSource = (source) => {
|
|
12
|
+
if (source.original) return unwrapRequestSource(source.original);
|
|
12
13
|
if (source.headers) return source;
|
|
13
14
|
if (source.req) return source.req;
|
|
14
15
|
if (source.request) return source.request;
|
|
@@ -65,22 +66,48 @@ var Request$1 = class Request$1 extends Request {
|
|
|
65
66
|
headers;
|
|
66
67
|
ip;
|
|
67
68
|
source;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
currentUser;
|
|
70
|
+
currentAuth;
|
|
71
|
+
currentAuthUser;
|
|
72
|
+
currentAuthToken;
|
|
73
|
+
get user() {
|
|
74
|
+
return this.getSourceRequest()?.user ?? this.currentUser;
|
|
75
|
+
}
|
|
76
|
+
set user(user) {
|
|
77
|
+
this.currentUser = user;
|
|
78
|
+
}
|
|
79
|
+
get auth() {
|
|
80
|
+
return this.getSourceRequest()?.auth ?? this.currentAuth;
|
|
81
|
+
}
|
|
82
|
+
set auth(auth) {
|
|
83
|
+
this.currentAuth = auth;
|
|
84
|
+
}
|
|
85
|
+
get authUser() {
|
|
86
|
+
return this.getSourceRequest()?.authUser ?? this.currentAuthUser;
|
|
87
|
+
}
|
|
88
|
+
set authUser(user) {
|
|
89
|
+
this.currentAuthUser = user;
|
|
90
|
+
}
|
|
91
|
+
get authToken() {
|
|
92
|
+
return this.getSourceRequest()?.authToken ?? this.currentAuthToken;
|
|
93
|
+
}
|
|
94
|
+
set authToken(token) {
|
|
95
|
+
this.currentAuthToken = token;
|
|
96
|
+
}
|
|
72
97
|
constructor(options = {}) {
|
|
73
98
|
super(options);
|
|
99
|
+
const source = options.source ?? options.original;
|
|
100
|
+
const sourceRequest = isRecord(source) ? source : void 0;
|
|
74
101
|
this.headers = normalizeHeaders(options.headers);
|
|
75
102
|
if (this.method) this.method = options.method;
|
|
76
103
|
if (this.url) this.url = options.url;
|
|
77
104
|
if (this.path) this.path = options.path;
|
|
78
|
-
this.ip = options.ip ?? null;
|
|
79
|
-
this.user = options.user;
|
|
80
|
-
this.auth = options.auth;
|
|
81
|
-
this.authUser = options.authUser;
|
|
82
|
-
this.authToken = options.authToken;
|
|
83
|
-
this.source =
|
|
105
|
+
this.ip = options.ip ?? sourceRequest?.ip ?? null;
|
|
106
|
+
this.user = options.user ?? sourceRequest?.user;
|
|
107
|
+
this.auth = options.auth ?? sourceRequest?.auth;
|
|
108
|
+
this.authUser = options.authUser ?? sourceRequest?.authUser;
|
|
109
|
+
this.authToken = options.authToken ?? sourceRequest?.authToken;
|
|
110
|
+
this.source = source;
|
|
84
111
|
globalThis.request = (key) => key ? this.input(key) : this;
|
|
85
112
|
}
|
|
86
113
|
static from(source) {
|
|
@@ -97,7 +124,7 @@ var Request$1 = class Request$1 extends Request {
|
|
|
97
124
|
auth: request.auth,
|
|
98
125
|
authUser: request.authUser,
|
|
99
126
|
authToken: request.authToken,
|
|
100
|
-
source
|
|
127
|
+
source: request
|
|
101
128
|
});
|
|
102
129
|
}
|
|
103
130
|
header(name) {
|
|
@@ -125,6 +152,18 @@ var Request$1 = class Request$1 extends Request {
|
|
|
125
152
|
}
|
|
126
153
|
return this;
|
|
127
154
|
}
|
|
155
|
+
syncFromSource() {
|
|
156
|
+
if (!isRecord(this.source)) return this;
|
|
157
|
+
const source = this.source;
|
|
158
|
+
this.user = source.user ?? this.user;
|
|
159
|
+
this.auth = source.auth ?? this.auth;
|
|
160
|
+
this.authUser = source.authUser ?? this.authUser;
|
|
161
|
+
this.authToken = source.authToken ?? this.authToken;
|
|
162
|
+
return this;
|
|
163
|
+
}
|
|
164
|
+
getSourceRequest() {
|
|
165
|
+
return isRecord(this.source) ? this.source : void 0;
|
|
166
|
+
}
|
|
128
167
|
clearAuthentication() {
|
|
129
168
|
this.auth = void 0;
|
|
130
169
|
this.authUser = void 0;
|
|
@@ -1245,7 +1284,7 @@ const arkstackHttpPlugin = definePlugin({
|
|
|
1245
1284
|
return session;
|
|
1246
1285
|
});
|
|
1247
1286
|
bind(Request$1, ({ request, ctx }) => {
|
|
1248
|
-
return request instanceof Request$1 ? request : Request$1.from(request ?? ctx);
|
|
1287
|
+
return (request instanceof Request$1 ? request : Request$1.from(request ?? ctx)).syncFromSource();
|
|
1249
1288
|
});
|
|
1250
1289
|
useHttpContext((context) => {
|
|
1251
1290
|
const session = getSession(context.ctx);
|
package/dist/setup.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as RequestHelper, D as SessionHelper, S as RedirectHelper, x as OldHelper, yt as Response } from "./index-
|
|
1
|
+
import { C as RequestHelper, D as SessionHelper, S as RedirectHelper, x as OldHelper, yt as Response } from "./index-C-YhZgaG.js";
|
|
2
2
|
//#region src/setup.d.ts
|
|
3
3
|
declare global {
|
|
4
4
|
var session: SessionHelper;
|
package/dist/setup.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { F as Response$1, I as Request$1, a as kanunSessionPlugin, i as arkstackHttpPlugin, j as old, t as redirect } from "./redirect-
|
|
1
|
+
import { F as Response$1, I as Request$1, a as kanunSessionPlugin, i as arkstackHttpPlugin, j as old, t as redirect } from "./redirect-CFGcSkzk.js";
|
|
2
2
|
import { CoreRouter } from "clear-router";
|
|
3
3
|
import { Validator } from "kanun";
|
|
4
4
|
import "dotenv/config";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arkstack/http",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.21",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "HTTP module for Arkstack, providing framework-agnostic request and response primitives.",
|
|
6
6
|
"homepage": "https://arkstack.toneflix.net/guide/http",
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"clear-router": "^2.8.6",
|
|
32
32
|
"dotenv": "17.3.1",
|
|
33
|
-
"@arkstack/
|
|
34
|
-
"@arkstack/
|
|
33
|
+
"@arkstack/contract": "^0.12.21",
|
|
34
|
+
"@arkstack/common": "^0.12.21"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"arkormx": "^2.5.6",
|