@c9up/ream 0.1.31 → 0.1.33
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/README.md +4 -1
- package/dist/Application.d.ts +27 -0
- package/dist/Application.d.ts.map +1 -1
- package/dist/Application.js +29 -0
- package/dist/Application.js.map +1 -1
- package/dist/ErrorBoundary.d.ts.map +1 -1
- package/dist/ErrorBoundary.js +13 -1
- package/dist/ErrorBoundary.js.map +1 -1
- package/dist/HttpKernel.d.ts +8 -0
- package/dist/HttpKernel.d.ts.map +1 -1
- package/dist/HttpKernel.js +35 -12
- package/dist/HttpKernel.js.map +1 -1
- package/dist/Ignitor.d.ts +8 -0
- package/dist/Ignitor.d.ts.map +1 -1
- package/dist/Ignitor.js +39 -0
- package/dist/Ignitor.js.map +1 -1
- package/dist/bodyparser/BodyParserMiddleware.d.ts +11 -4
- package/dist/bodyparser/BodyParserMiddleware.d.ts.map +1 -1
- package/dist/bodyparser/BodyParserMiddleware.js +55 -43
- package/dist/bodyparser/BodyParserMiddleware.js.map +1 -1
- package/dist/bodyparser/qsParse.d.ts +52 -0
- package/dist/bodyparser/qsParse.d.ts.map +1 -0
- package/dist/bodyparser/qsParse.js +161 -0
- package/dist/bodyparser/qsParse.js.map +1 -0
- package/dist/bootstrap/hyper-server.d.ts.map +1 -1
- package/dist/bootstrap/hyper-server.js +2 -8
- package/dist/bootstrap/hyper-server.js.map +1 -1
- package/dist/container/Container.d.ts +41 -0
- package/dist/container/Container.d.ts.map +1 -1
- package/dist/container/Container.js +193 -26
- package/dist/container/Container.js.map +1 -1
- package/dist/container/ContainerResolver.d.ts +46 -0
- package/dist/container/ContainerResolver.d.ts.map +1 -0
- package/dist/container/ContainerResolver.js +60 -0
- package/dist/container/ContainerResolver.js.map +1 -0
- package/dist/container/ContextualBindingsBuilder.d.ts +20 -0
- package/dist/container/ContextualBindingsBuilder.d.ts.map +1 -0
- package/dist/container/ContextualBindingsBuilder.js +31 -0
- package/dist/container/ContextualBindingsBuilder.js.map +1 -0
- package/dist/container/types.d.ts +9 -6
- package/dist/container/types.d.ts.map +1 -1
- package/dist/decorators/Service.d.ts +1 -5
- package/dist/decorators/Service.d.ts.map +1 -1
- package/dist/decorators/Service.js +10 -1
- package/dist/decorators/Service.js.map +1 -1
- package/dist/events/Emitter.d.ts +66 -6
- package/dist/events/Emitter.d.ts.map +1 -1
- package/dist/events/Emitter.js +165 -28
- package/dist/events/Emitter.js.map +1 -1
- package/dist/graphql/GraphQLEngine.d.ts.map +1 -1
- package/dist/graphql/GraphQLEngine.js +5 -5
- package/dist/graphql/GraphQLEngine.js.map +1 -1
- package/dist/helpers/duration.d.ts +32 -0
- package/dist/helpers/duration.d.ts.map +1 -0
- package/dist/helpers/duration.js +74 -0
- package/dist/helpers/duration.js.map +1 -0
- package/dist/helpers/napi-loader.d.ts +10 -1
- package/dist/helpers/napi-loader.d.ts.map +1 -1
- package/dist/helpers/napi-loader.js +18 -3
- package/dist/helpers/napi-loader.js.map +1 -1
- package/dist/helpers/types.d.ts +1 -1
- package/dist/helpers/types.d.ts.map +1 -1
- package/dist/http/Exception.d.ts.map +1 -1
- package/dist/http/Exception.js +17 -5
- package/dist/http/Exception.js.map +1 -1
- package/dist/http/HttpContext.d.ts +16 -5
- package/dist/http/HttpContext.d.ts.map +1 -1
- package/dist/http/HttpContext.js +4 -2
- package/dist/http/HttpContext.js.map +1 -1
- package/dist/http/RedirectBuilder.d.ts +48 -2
- package/dist/http/RedirectBuilder.d.ts.map +1 -1
- package/dist/http/RedirectBuilder.js +95 -14
- package/dist/http/RedirectBuilder.js.map +1 -1
- package/dist/http/Request.d.ts +128 -8
- package/dist/http/Request.d.ts.map +1 -1
- package/dist/http/Request.js +259 -8
- package/dist/http/Request.js.map +1 -1
- package/dist/http/Response.d.ts +74 -3
- package/dist/http/Response.d.ts.map +1 -1
- package/dist/http/Response.js +177 -4
- package/dist/http/Response.js.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/router/Router.d.ts +36 -7
- package/dist/router/Router.d.ts.map +1 -1
- package/dist/router/Router.js +66 -22
- package/dist/router/Router.js.map +1 -1
- package/dist/security/CookieSigner.d.ts +35 -4
- package/dist/security/CookieSigner.d.ts.map +1 -1
- package/dist/security/CookieSigner.js +99 -10
- package/dist/security/CookieSigner.js.map +1 -1
- package/dist/server/Server.d.ts +2 -3
- package/dist/server/Server.d.ts.map +1 -1
- package/dist/server/Server.js +30 -13
- package/dist/server/Server.js.map +1 -1
- package/dist/session/ReadOnlyValuesStore.d.ts +24 -0
- package/dist/session/ReadOnlyValuesStore.d.ts.map +1 -0
- package/dist/session/ReadOnlyValuesStore.js +45 -0
- package/dist/session/ReadOnlyValuesStore.js.map +1 -0
- package/dist/session/Session.d.ts +181 -9
- package/dist/session/Session.d.ts.map +1 -1
- package/dist/session/Session.js +284 -33
- package/dist/session/Session.js.map +1 -1
- package/dist/session/SessionMiddleware.d.ts.map +1 -1
- package/dist/session/SessionMiddleware.js +87 -33
- package/dist/session/SessionMiddleware.js.map +1 -1
- package/dist/session/drivers/DatabaseDriver.d.ts +66 -0
- package/dist/session/drivers/DatabaseDriver.d.ts.map +1 -0
- package/dist/session/drivers/DatabaseDriver.js +132 -0
- package/dist/session/drivers/DatabaseDriver.js.map +1 -0
- package/dist/session/drivers/FileDriver.d.ts +22 -0
- package/dist/session/drivers/FileDriver.d.ts.map +1 -0
- package/dist/session/drivers/FileDriver.js +66 -0
- package/dist/session/drivers/FileDriver.js.map +1 -0
- package/dist/session/drivers/MemoryDriver.d.ts +10 -2
- package/dist/session/drivers/MemoryDriver.d.ts.map +1 -1
- package/dist/session/drivers/MemoryDriver.js +70 -0
- package/dist/session/drivers/MemoryDriver.js.map +1 -1
- package/dist/session/drivers/RedisDriver.d.ts +10 -2
- package/dist/session/drivers/RedisDriver.d.ts.map +1 -1
- package/dist/session/drivers/RedisDriver.js +58 -0
- package/dist/session/drivers/RedisDriver.js.map +1 -1
- package/dist/session/templateTags.d.ts +42 -0
- package/dist/session/templateTags.d.ts.map +1 -0
- package/dist/session/templateTags.js +101 -0
- package/dist/session/templateTags.js.map +1 -0
- package/dist/testing/RequestBuilder.d.ts +38 -1
- package/dist/testing/RequestBuilder.d.ts.map +1 -1
- package/dist/testing/RequestBuilder.js +40 -1
- package/dist/testing/RequestBuilder.js.map +1 -1
- package/dist/testing/TestClient.d.ts +3 -1
- package/dist/testing/TestClient.d.ts.map +1 -1
- package/dist/testing/TestClient.js +3 -1
- package/dist/testing/TestClient.js.map +1 -1
- package/dist/types/helpers.d.ts +1 -1
- package/dist/types/helpers.d.ts.map +1 -1
- package/dist/utils/Macroable.d.ts +14 -5
- package/dist/utils/Macroable.d.ts.map +1 -1
- package/dist/utils/Macroable.js +20 -18
- package/dist/utils/Macroable.js.map +1 -1
- package/events.win32-x64-msvc.node +0 -0
- package/index.win32-x64-msvc.node +0 -0
- package/package.json +1 -1
- package/scheduler.win32-x64-msvc.node +0 -0
- package/src/Application.ts +39 -0
- package/src/ErrorBoundary.ts +13 -1
- package/src/HttpKernel.ts +45 -19
- package/src/Ignitor.ts +39 -0
- package/src/bodyparser/BodyParserMiddleware.ts +66 -44
- package/src/bodyparser/qsParse.ts +179 -0
- package/src/bootstrap/hyper-server.ts +2 -9
- package/src/container/Container.ts +265 -25
- package/src/container/ContainerResolver.ts +84 -0
- package/src/container/ContextualBindingsBuilder.ts +41 -0
- package/src/container/types.ts +11 -7
- package/src/decorators/Service.ts +16 -3
- package/src/events/Emitter.ts +200 -25
- package/src/graphql/GraphQLEngine.ts +7 -8
- package/src/helpers/duration.ts +71 -0
- package/src/helpers/napi-loader.ts +19 -3
- package/src/helpers/types.ts +4 -1
- package/src/http/Exception.ts +17 -5
- package/src/http/HttpContext.ts +20 -5
- package/src/http/RedirectBuilder.ts +126 -11
- package/src/http/Request.ts +283 -13
- package/src/http/Response.ts +213 -6
- package/src/index.ts +17 -3
- package/src/router/Router.ts +98 -33
- package/src/security/CookieSigner.ts +102 -10
- package/src/server/Server.ts +36 -16
- package/src/session/ReadOnlyValuesStore.ts +52 -0
- package/src/session/Session.ts +364 -37
- package/src/session/SessionMiddleware.ts +93 -30
- package/src/session/drivers/DatabaseDriver.ts +184 -0
- package/src/session/drivers/FileDriver.ts +82 -0
- package/src/session/drivers/MemoryDriver.ts +75 -2
- package/src/session/drivers/RedisDriver.ts +77 -2
- package/src/session/templateTags.ts +124 -0
- package/src/testing/RequestBuilder.ts +76 -0
- package/src/testing/TestClient.ts +10 -2
- package/src/types/helpers.ts +4 -1
- package/src/utils/Macroable.ts +23 -8
- package/dist/utils/inflect.d.ts +0 -17
- package/dist/utils/inflect.d.ts.map +0 -1
- package/dist/utils/inflect.js +0 -32
- package/dist/utils/inflect.js.map +0 -1
- package/src/utils/inflect.ts +0 -29
|
@@ -28,30 +28,100 @@ function isSameOriginOrRelative(referer, requestUrl) {
|
|
|
28
28
|
export class RedirectBuilder {
|
|
29
29
|
#response;
|
|
30
30
|
#status = 302;
|
|
31
|
-
#qs =
|
|
31
|
+
#qs = {};
|
|
32
32
|
#forwardQs = false;
|
|
33
33
|
#requestUrl;
|
|
34
34
|
#requestReferer;
|
|
35
35
|
#routeUrlResolver;
|
|
36
|
+
#session;
|
|
37
|
+
#isAjax = false;
|
|
38
|
+
#hasRoute = true;
|
|
36
39
|
constructor(response, options) {
|
|
37
40
|
this.#response = response;
|
|
38
41
|
this.#requestUrl = options?.requestUrl;
|
|
39
42
|
this.#requestReferer = options?.requestReferer;
|
|
40
43
|
this.#routeUrlResolver = options?.routeUrlResolver;
|
|
44
|
+
this.#session = options?.session;
|
|
45
|
+
this.#isAjax = options?.isAjax ?? false;
|
|
46
|
+
this.#hasRoute = options?.hasRoute ?? true;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Remember where the user was heading, then carry on redirecting — AdonisJS'
|
|
50
|
+
* `withIntendedUrl` (a macro `@adonisjs/session` adds to Redirect).
|
|
51
|
+
*
|
|
52
|
+
* Only a GET, non-XHR, route-matched request is stored, exactly as upstream:
|
|
53
|
+
* remembering a POST would replay it as a GET after login, and remembering a
|
|
54
|
+
* 404 would send the user back to a dead end.
|
|
55
|
+
*/
|
|
56
|
+
withIntendedUrl(method = 'GET') {
|
|
57
|
+
if (this.#session &&
|
|
58
|
+
method.toUpperCase() === 'GET' &&
|
|
59
|
+
!this.#isAjax &&
|
|
60
|
+
this.#hasRoute &&
|
|
61
|
+
this.#requestUrl) {
|
|
62
|
+
this.#session.setIntendedUrl(this.#requestUrl);
|
|
63
|
+
}
|
|
64
|
+
return this;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Redirect to the remembered URL, consuming it — AdonisJS' `toIntended`.
|
|
68
|
+
*
|
|
69
|
+
* The stored value is validated before use: it is written from a request URL,
|
|
70
|
+
* but a session store is not a trust boundary, and a redirect to an absolute
|
|
71
|
+
* off-site URL is an open redirect. Anything not same-origin or relative
|
|
72
|
+
* falls back, which is what `back()` already does with the Referer.
|
|
73
|
+
*/
|
|
74
|
+
toIntended(fallback = '/') {
|
|
75
|
+
const intended = this.#session?.pullIntendedUrl() ?? null;
|
|
76
|
+
this.toPath(this.#safeIntended(intended, fallback));
|
|
77
|
+
}
|
|
78
|
+
/** `toIntended`, falling back to a named route — AdonisJS' `toIntendedRoute`. */
|
|
79
|
+
toIntendedRoute(name, params) {
|
|
80
|
+
const intended = this.#session?.pullIntendedUrl() ?? null;
|
|
81
|
+
const safe = intended === null ? null : this.#safeIntended(intended, null);
|
|
82
|
+
if (safe !== null) {
|
|
83
|
+
this.toPath(safe);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
this.toRoute(name, params);
|
|
87
|
+
}
|
|
88
|
+
#safeIntended(intended, fallback) {
|
|
89
|
+
if (!intended)
|
|
90
|
+
return fallback;
|
|
91
|
+
if (this.#requestUrl && !isSameOriginOrRelative(intended, this.#requestUrl)) {
|
|
92
|
+
return fallback;
|
|
93
|
+
}
|
|
94
|
+
// A protocol-relative `//evil.com` is absolute to a browser even though it
|
|
95
|
+
// looks relative — reject it whether or not a request URL is known.
|
|
96
|
+
if (intended.startsWith('//'))
|
|
97
|
+
return fallback;
|
|
98
|
+
return intended;
|
|
41
99
|
}
|
|
42
100
|
/** Set redirect status code. */
|
|
43
101
|
status(code) {
|
|
44
102
|
this.#status = code;
|
|
45
103
|
return this;
|
|
46
104
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (qs) {
|
|
50
|
-
this.#qs = qs;
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
105
|
+
withQs(name, value) {
|
|
106
|
+
if (name === undefined) {
|
|
53
107
|
this.#forwardQs = true;
|
|
108
|
+
return this;
|
|
54
109
|
}
|
|
110
|
+
if (typeof name === 'boolean') {
|
|
111
|
+
this.#forwardQs = name;
|
|
112
|
+
return this;
|
|
113
|
+
}
|
|
114
|
+
if (typeof name === 'string') {
|
|
115
|
+
this.#qs[name] = value;
|
|
116
|
+
return this;
|
|
117
|
+
}
|
|
118
|
+
Object.assign(this.#qs, name);
|
|
119
|
+
return this;
|
|
120
|
+
}
|
|
121
|
+
/** Drop every value added with {@link withQs}, and stop forwarding. */
|
|
122
|
+
clearQs() {
|
|
123
|
+
this.#qs = {};
|
|
124
|
+
this.#forwardQs = false;
|
|
55
125
|
return this;
|
|
56
126
|
}
|
|
57
127
|
/** Redirect to an absolute or relative path. */
|
|
@@ -83,16 +153,27 @@ export class RedirectBuilder {
|
|
|
83
153
|
this.toPath(fallback);
|
|
84
154
|
}
|
|
85
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Forwarded query string first, explicit values on top — the order AdonisJS
|
|
158
|
+
* uses, so `withQs()` plus `withQs('page', 2)` overrides an inbound `page`
|
|
159
|
+
* rather than being overridden by it.
|
|
160
|
+
*/
|
|
86
161
|
#appendQs(path) {
|
|
87
|
-
|
|
88
|
-
if (this.#
|
|
89
|
-
qs = new URLSearchParams(this.#qs).toString();
|
|
90
|
-
}
|
|
91
|
-
else if (this.#forwardQs && this.#requestUrl) {
|
|
162
|
+
const params = new URLSearchParams();
|
|
163
|
+
if (this.#forwardQs && this.#requestUrl) {
|
|
92
164
|
const qsIdx = this.#requestUrl.indexOf('?');
|
|
93
|
-
if (qsIdx !== -1)
|
|
94
|
-
|
|
165
|
+
if (qsIdx !== -1) {
|
|
166
|
+
for (const [key, value] of new URLSearchParams(this.#requestUrl.slice(qsIdx + 1))) {
|
|
167
|
+
params.append(key, value);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
for (const [key, value] of Object.entries(this.#qs)) {
|
|
172
|
+
if (value === undefined || value === null)
|
|
173
|
+
continue;
|
|
174
|
+
params.set(key, String(value));
|
|
95
175
|
}
|
|
176
|
+
const qs = params.toString();
|
|
96
177
|
if (!qs)
|
|
97
178
|
return path;
|
|
98
179
|
return path.includes('?') ? `${path}&${qs}` : `${path}?${qs}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedirectBuilder.js","sourceRoot":"","sources":["../../src/http/RedirectBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,SAAS,sBAAsB,CAAC,OAAe,EAAE,UAAmB;IAClE,8EAA8E;IAC9E,6EAA6E;IAC7E,+EAA+E;IAC/E,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAChG,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAA;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;QAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAA;QAC/B,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"RedirectBuilder.js","sourceRoot":"","sources":["../../src/http/RedirectBuilder.ts"],"names":[],"mappings":"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"}
|
package/dist/http/Request.d.ts
CHANGED
|
@@ -74,7 +74,7 @@ export declare class Request extends Macroable {
|
|
|
74
74
|
* state-changing routes. `undefined` when the middleware never ran.
|
|
75
75
|
*/
|
|
76
76
|
csrfProtected?: boolean;
|
|
77
|
-
constructor(raw: RawRequest, params?: Dict);
|
|
77
|
+
constructor(raw: RawRequest, params?: Dict<string | string[]>);
|
|
78
78
|
/**
|
|
79
79
|
* The HTTP method, honouring `_method` form spoofing when enabled (AdonisJS
|
|
80
80
|
* `method`). With spoofing enabled and a real POST, the `_method` field
|
|
@@ -138,6 +138,17 @@ export declare class Request extends Macroable {
|
|
|
138
138
|
* so it's an explicit opt-in (same stance as {@link setMethodSpoofing}).
|
|
139
139
|
*/
|
|
140
140
|
setTrustProxy(enabled: boolean): void;
|
|
141
|
+
/**
|
|
142
|
+
* The HTTP/2 `:authority` pseudo-header, falling back to `Host` (AdonisJS
|
|
143
|
+
* `authority`).
|
|
144
|
+
*
|
|
145
|
+
* Deliberately does NOT consult `X-Forwarded-Host` and ignores trust-proxy,
|
|
146
|
+
* as Adonis does: no proxy convention forwards the original `:authority`,
|
|
147
|
+
* so honouring a forwarded header here would let a proxy rewrite the value
|
|
148
|
+
* you validate a redirect target against. Use {@link host} when you do want
|
|
149
|
+
* the proxy-aware value.
|
|
150
|
+
*/
|
|
151
|
+
authority(): string | null;
|
|
141
152
|
/**
|
|
142
153
|
* The request host including port (AdonisJS `host`). Honours
|
|
143
154
|
* `X-Forwarded-Host` ONLY when trust-proxy is enabled; otherwise the `Host`
|
|
@@ -182,8 +193,19 @@ export declare class Request extends Macroable {
|
|
|
182
193
|
* (tampered / not signed).
|
|
183
194
|
*/
|
|
184
195
|
cookie(name: string, defaultValue?: string): string | null;
|
|
185
|
-
/**
|
|
186
|
-
|
|
196
|
+
/**
|
|
197
|
+
* An unsigned cookie (AdonisJS `plainCookie`), unpacked.
|
|
198
|
+
*
|
|
199
|
+
* `response.plainCookie()` writes a base64url JSON envelope, so this reads
|
|
200
|
+
* the value BACK WITH ITS TYPE — an object stays an object, a number a
|
|
201
|
+
* number. A cookie set by something else, or written with `encode: false`,
|
|
202
|
+
* comes back as the raw string.
|
|
203
|
+
*
|
|
204
|
+
* Pass `encoded: false` to skip unpacking entirely.
|
|
205
|
+
*/
|
|
206
|
+
plainCookie<T = string>(name: string, defaultValue?: T, options?: {
|
|
207
|
+
encoded?: boolean;
|
|
208
|
+
}): T | null;
|
|
187
209
|
/**
|
|
188
210
|
* Encrypted cookie value, decrypted with APP_KEY (AdonisJS `encryptedCookie`).
|
|
189
211
|
* Returns `defaultValue` (or null) when absent, undecryptable, or no
|
|
@@ -207,10 +229,87 @@ export declare class Request extends Macroable {
|
|
|
207
229
|
header(key: string, defaultValue?: string): string | undefined;
|
|
208
230
|
/** Get all request headers. */
|
|
209
231
|
headers(): Readonly<Dict>;
|
|
210
|
-
/**
|
|
232
|
+
/**
|
|
233
|
+
* Get a single route parameter.
|
|
234
|
+
*
|
|
235
|
+
* The catch-all `*` is an ARRAY of segments (AdonisJS hands it that way), so
|
|
236
|
+
* it is returned joined here — `param('*')` reading `undefined` because the
|
|
237
|
+
* value was not a string would be worse than the path it describes.
|
|
238
|
+
* Use {@link params} to get the segments themselves.
|
|
239
|
+
*/
|
|
211
240
|
param(key: string, defaultValue?: string): string | undefined;
|
|
212
|
-
/** Get all route parameters. */
|
|
213
|
-
params(): Readonly<Dict
|
|
241
|
+
/** Get all route parameters; `*` holds its segments as an array. */
|
|
242
|
+
params(): Readonly<Dict<string | string[]>>;
|
|
243
|
+
/**
|
|
244
|
+
* The request id from `x-request-id` (AdonisJS `id`).
|
|
245
|
+
*
|
|
246
|
+
* Absent when the proxy or client did not set one — it is not invented here,
|
|
247
|
+
* because a correlation id nobody else knows correlates nothing.
|
|
248
|
+
*/
|
|
249
|
+
id(): string | undefined;
|
|
250
|
+
/** The URL split into path and raw query string (AdonisJS `parsedUrl`). */
|
|
251
|
+
parsedUrl(): {
|
|
252
|
+
pathname: string;
|
|
253
|
+
search: string;
|
|
254
|
+
query: string;
|
|
255
|
+
};
|
|
256
|
+
/** `X-Requested-With: xmlhttprequest` (AdonisJS `ajax`). */
|
|
257
|
+
ajax(): boolean;
|
|
258
|
+
/** Whether the client sent `X-Pjax` (AdonisJS `pjax`). */
|
|
259
|
+
pjax(): boolean;
|
|
260
|
+
/**
|
|
261
|
+
* Whether this is a speculative prefetch or prerender rather than a real
|
|
262
|
+
* navigation (AdonisJS `prefetch`).
|
|
263
|
+
*
|
|
264
|
+
* Worth checking before anything with a side effect: a browser may fetch a
|
|
265
|
+
* link the user never clicks, and counting that as a visit — or worse, acting
|
|
266
|
+
* on it — attributes an intention nobody had.
|
|
267
|
+
*/
|
|
268
|
+
prefetch(): boolean;
|
|
269
|
+
/**
|
|
270
|
+
* The full URL — `protocol://host/path` (AdonisJS `completeUrl`).
|
|
271
|
+
*
|
|
272
|
+
* Pass `true` to keep the query string.
|
|
273
|
+
*/
|
|
274
|
+
completeUrl(includeQueryString?: boolean): string;
|
|
275
|
+
/**
|
|
276
|
+
* Where the user came from, per the `Referer` header — but only when it
|
|
277
|
+
* points somewhere we trust (AdonisJS `getPreviousUrl`).
|
|
278
|
+
*
|
|
279
|
+
* A referrer is attacker-controlled, so redirecting back to it unchecked is
|
|
280
|
+
* an open redirect. The host must be this request's own or one of
|
|
281
|
+
* `allowedHosts`; anything else falls back.
|
|
282
|
+
*/
|
|
283
|
+
getPreviousUrl(allowedHosts?: string[], fallback?: string): string;
|
|
284
|
+
/** Every media type the client accepts, best first (AdonisJS `types`). */
|
|
285
|
+
types(): string[];
|
|
286
|
+
/** Every language the client accepts, best first (AdonisJS `languages`). */
|
|
287
|
+
languages(): string[];
|
|
288
|
+
/** Every charset the client accepts, best first (AdonisJS `charsets`). */
|
|
289
|
+
charsets(): string[];
|
|
290
|
+
/**
|
|
291
|
+
* The best of the offered charsets per `Accept-Charset` (AdonisJS
|
|
292
|
+
* `charset`), or null when none matches. The plural {@link charsets} lists
|
|
293
|
+
* everything the client will take.
|
|
294
|
+
*/
|
|
295
|
+
charset<T extends string>(charsets: T[]): T | null;
|
|
296
|
+
/** Every encoding the client accepts, best first (AdonisJS `encodings`). */
|
|
297
|
+
encodings(): string[];
|
|
298
|
+
/**
|
|
299
|
+
* The best of the offered encodings per `Accept-Encoding` (AdonisJS
|
|
300
|
+
* `encoding`), or null when none matches.
|
|
301
|
+
*/
|
|
302
|
+
encoding<T extends string>(encodings: T[]): T | null;
|
|
303
|
+
/** Every cookie, parsed (AdonisJS `cookiesList`). */
|
|
304
|
+
cookiesList(): Dict;
|
|
305
|
+
/**
|
|
306
|
+
* A JSON-safe view of the request (AdonisJS `serialize`), for logs and error
|
|
307
|
+
* reports. Carries no body: it may hold credentials, and a log line is the
|
|
308
|
+
* last place they should land.
|
|
309
|
+
*/
|
|
310
|
+
serialize(): Record<string, unknown>;
|
|
311
|
+
/** Same as {@link serialize} — what `JSON.stringify(request)` uses. */
|
|
312
|
+
toJSON(): Record<string, unknown>;
|
|
214
313
|
/** Get parsed query string as an object. */
|
|
215
314
|
qs(): Dict<unknown>;
|
|
216
315
|
/** Get the parsed request body. */
|
|
@@ -261,14 +360,14 @@ export declare class Request extends Macroable {
|
|
|
261
360
|
* Aliases (`'json'` ↔ `application/json`, `'html'` ↔ `text/html`,
|
|
262
361
|
* `'xml'` ↔ any subtype containing `xml`) are honoured.
|
|
263
362
|
*/
|
|
264
|
-
accepts(types:
|
|
363
|
+
accepts<T extends string>(types: T[]): T | null;
|
|
265
364
|
/**
|
|
266
365
|
* Language negotiation from Accept-Language honouring RFC 4647 / 7231
|
|
267
366
|
* quality values. Returns the first offered language whose tag (or its
|
|
268
367
|
* primary subtag) matches the highest-q client entry, falling back to
|
|
269
368
|
* `langs[0]` when nothing matches and the client header is empty/absent.
|
|
270
369
|
*/
|
|
271
|
-
language(langs:
|
|
370
|
+
language<T extends string>(langs: T[]): T | null;
|
|
272
371
|
/** Get an uploaded file by field name. */
|
|
273
372
|
file(fieldName: string, options?: import('../bodyparser/MultipartFile.js').FileValidationOptions): import('../bodyparser/MultipartFile.js').MultipartFile | null;
|
|
274
373
|
/** Get all uploaded files for a field name. */
|
|
@@ -287,6 +386,27 @@ export declare class Request extends Macroable {
|
|
|
287
386
|
setFiles(files: import('../bodyparser/MultipartFile.js').MultipartFile[]): void;
|
|
288
387
|
/** @internal Set the parsed body (called by BodyParser middleware). */
|
|
289
388
|
setParsedBody(body: Dict<unknown>): void;
|
|
389
|
+
/**
|
|
390
|
+
* Replace the request body (AdonisJS `updateBody`) — what a middleware that
|
|
391
|
+
* sanitizes or normalises input calls. {@link all} is recomputed from the
|
|
392
|
+
* query string and the new body on the next read.
|
|
393
|
+
*
|
|
394
|
+
* {@link original} keeps the first-seen input: flash old-input must show
|
|
395
|
+
* what the user actually sent, not what a middleware rewrote it into.
|
|
396
|
+
*/
|
|
397
|
+
updateBody(body: Dict<unknown>): void;
|
|
398
|
+
/**
|
|
399
|
+
* Replace the query string data (AdonisJS `updateQs`). {@link all} is
|
|
400
|
+
* recomputed on the next read; the raw query string is left alone, so
|
|
401
|
+
* `parsedUrl()` still reports what the client sent.
|
|
402
|
+
*/
|
|
403
|
+
updateQs(data: Dict<unknown>): void;
|
|
404
|
+
/**
|
|
405
|
+
* Replace the raw body (AdonisJS `updateRawBody`) — what the bodyparser
|
|
406
|
+
* sets when it cannot parse the body, or for multipart. Does NOT reparse:
|
|
407
|
+
* the parsed body is whatever {@link updateBody} last set.
|
|
408
|
+
*/
|
|
409
|
+
updateRawBody(rawBody: string): void;
|
|
290
410
|
/**
|
|
291
411
|
* @internal Store the validated + transformed payload (called by the
|
|
292
412
|
* validation middleware after a route validator passes).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../../src/http/Request.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../../src/http/Request.ts"],"names":[],"mappings":"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"}
|