@c9up/ream 0.2.27 → 0.2.29
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 +1 -0
- package/dist/Codemods.d.ts +16 -0
- package/dist/Codemods.d.ts.map +1 -1
- package/dist/Codemods.js +182 -0
- package/dist/Codemods.js.map +1 -1
- package/dist/Ignitor.d.ts +11 -1
- package/dist/Ignitor.d.ts.map +1 -1
- package/dist/Ignitor.js +27 -21
- package/dist/Ignitor.js.map +1 -1
- package/dist/bodyparser/BodyParserMiddleware.d.ts.map +1 -1
- package/dist/bodyparser/BodyParserMiddleware.js +3 -0
- package/dist/bodyparser/BodyParserMiddleware.js.map +1 -1
- package/dist/bodyparser/qsParse.d.ts +10 -1
- package/dist/bodyparser/qsParse.d.ts.map +1 -1
- package/dist/bodyparser/qsParse.js +53 -15
- package/dist/bodyparser/qsParse.js.map +1 -1
- package/dist/codemods/source.d.ts +57 -0
- package/dist/codemods/source.d.ts.map +1 -0
- package/dist/codemods/source.js +282 -0
- package/dist/codemods/source.js.map +1 -0
- package/dist/graphql/GraphQLEngine.d.ts.map +1 -1
- package/dist/graphql/GraphQLEngine.js +3 -2
- package/dist/graphql/GraphQLEngine.js.map +1 -1
- package/dist/http/Exception.d.ts +14 -1
- package/dist/http/Exception.d.ts.map +1 -1
- package/dist/http/Exception.js +10 -2
- package/dist/http/Exception.js.map +1 -1
- package/dist/http/HttpContext.d.ts +11 -0
- package/dist/http/HttpContext.d.ts.map +1 -1
- package/dist/http/HttpContext.js +2 -1
- package/dist/http/HttpContext.js.map +1 -1
- package/dist/http/RedirectBuilder.d.ts +9 -3
- package/dist/http/RedirectBuilder.d.ts.map +1 -1
- package/dist/http/RedirectBuilder.js +39 -37
- package/dist/http/RedirectBuilder.js.map +1 -1
- package/dist/http/Request.d.ts +42 -17
- package/dist/http/Request.d.ts.map +1 -1
- package/dist/http/Request.js +65 -29
- package/dist/http/Request.js.map +1 -1
- package/dist/http/SseStream.js +6 -7
- package/dist/http/SseStream.js.map +1 -1
- package/dist/http/permissions.d.ts +19 -0
- package/dist/http/permissions.d.ts.map +1 -0
- package/dist/http/permissions.js +28 -0
- package/dist/http/permissions.js.map +1 -0
- package/dist/http-client/HttpClient.d.ts +111 -0
- package/dist/http-client/HttpClient.d.ts.map +1 -0
- package/dist/http-client/HttpClient.js +386 -0
- package/dist/http-client/HttpClient.js.map +1 -0
- package/dist/http-client/addresses.d.ts +14 -0
- package/dist/http-client/addresses.d.ts.map +1 -0
- package/dist/http-client/addresses.js +57 -0
- package/dist/http-client/addresses.js.map +1 -0
- package/dist/http-client/fake.d.ts +50 -0
- package/dist/http-client/fake.d.ts.map +1 -0
- package/dist/http-client/fake.js +95 -0
- package/dist/http-client/fake.js.map +1 -0
- package/dist/http-client/index.d.ts +7 -0
- package/dist/http-client/index.d.ts.map +1 -0
- package/dist/http-client/index.js +7 -0
- package/dist/http-client/index.js.map +1 -0
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/middleware/Pipeline.d.ts.map +1 -1
- package/dist/middleware/Pipeline.js +6 -3
- package/dist/middleware/Pipeline.js.map +1 -1
- package/dist/native/generated.d.ts +108 -3
- package/dist/native/generated.d.ts.map +1 -1
- package/dist/rpc/RpcProvider.d.ts +6 -0
- package/dist/rpc/RpcProvider.d.ts.map +1 -1
- package/dist/rpc/RpcProvider.js +4 -1
- package/dist/rpc/RpcProvider.js.map +1 -1
- package/dist/rpc/RpcRouter.d.ts +27 -14
- package/dist/rpc/RpcRouter.d.ts.map +1 -1
- package/dist/rpc/RpcRouter.js +95 -38
- package/dist/rpc/RpcRouter.js.map +1 -1
- package/dist/scheduler/locks/RedisLockBackend.d.ts.map +1 -1
- package/dist/scheduler/locks/RedisLockBackend.js +13 -2
- package/dist/scheduler/locks/RedisLockBackend.js.map +1 -1
- package/dist/security/CookieSigner.d.ts.map +1 -1
- package/dist/security/CookieSigner.js +17 -3
- package/dist/security/CookieSigner.js.map +1 -1
- package/dist/security/SignedUrl.d.ts.map +1 -1
- package/dist/security/SignedUrl.js +6 -1
- package/dist/security/SignedUrl.js.map +1 -1
- package/dist/server/Server.d.ts +75 -9
- package/dist/server/Server.d.ts.map +1 -1
- package/dist/server/Server.js +60 -9
- package/dist/server/Server.js.map +1 -1
- package/dist/server/nativeGrpc.d.ts +27 -0
- package/dist/server/nativeGrpc.d.ts.map +1 -0
- package/dist/server/nativeGrpc.js +47 -0
- package/dist/server/nativeGrpc.js.map +1 -0
- package/dist/server/nativeLimits.d.ts +49 -0
- package/dist/server/nativeLimits.d.ts.map +1 -0
- package/dist/server/nativeLimits.js +67 -0
- package/dist/server/nativeLimits.js.map +1 -0
- package/dist/session/Session.d.ts +45 -0
- package/dist/session/Session.d.ts.map +1 -1
- package/dist/session/Session.js +31 -2
- package/dist/session/Session.js.map +1 -1
- package/dist/session/SessionMiddleware.d.ts.map +1 -1
- package/dist/session/SessionMiddleware.js +52 -13
- package/dist/session/SessionMiddleware.js.map +1 -1
- package/dist/session/config.d.ts +5 -0
- package/dist/session/config.d.ts.map +1 -1
- package/dist/session/config.js +8 -0
- package/dist/session/config.js.map +1 -1
- package/dist/session/drivers/CookieDriver.d.ts +12 -3
- package/dist/session/drivers/CookieDriver.d.ts.map +1 -1
- package/dist/session/drivers/CookieDriver.js +20 -6
- package/dist/session/drivers/CookieDriver.js.map +1 -1
- package/dist/session/drivers/DatabaseDriver.d.ts +2 -0
- package/dist/session/drivers/DatabaseDriver.d.ts.map +1 -1
- package/dist/session/drivers/DatabaseDriver.js +6 -0
- package/dist/session/drivers/DatabaseDriver.js.map +1 -1
- package/dist/session/drivers/FileDriver.d.ts +8 -0
- package/dist/session/drivers/FileDriver.d.ts.map +1 -1
- package/dist/session/drivers/FileDriver.js +85 -11
- package/dist/session/drivers/FileDriver.js.map +1 -1
- package/dist/session/drivers/MemoryDriver.d.ts +2 -0
- package/dist/session/drivers/MemoryDriver.d.ts.map +1 -1
- package/dist/session/drivers/MemoryDriver.js +21 -5
- package/dist/session/drivers/MemoryDriver.js.map +1 -1
- package/dist/session/drivers/RedisDriver.d.ts +2 -0
- package/dist/session/drivers/RedisDriver.d.ts.map +1 -1
- package/dist/session/drivers/RedisDriver.js +6 -0
- package/dist/session/drivers/RedisDriver.js.map +1 -1
- package/dist/session/errors.d.ts +27 -0
- package/dist/session/errors.d.ts.map +1 -1
- package/dist/session/errors.js +33 -0
- package/dist/session/errors.js.map +1 -1
- package/dist/session/templateTags.d.ts +14 -0
- package/dist/session/templateTags.d.ts.map +1 -1
- package/dist/session/templateTags.js +45 -17
- package/dist/session/templateTags.js.map +1 -1
- package/dist/storage/StaticMiddleware.d.ts.map +1 -1
- package/dist/storage/StaticMiddleware.js +29 -18
- package/dist/storage/StaticMiddleware.js.map +1 -1
- package/events.darwin-arm64.node +0 -0
- package/events.darwin-x64.node +0 -0
- package/events.linux-arm64-gnu.node +0 -0
- package/events.linux-x64-gnu.node +0 -0
- package/events.win32-x64-msvc.node +0 -0
- package/index.darwin-arm64.node +0 -0
- package/index.darwin-x64.node +0 -0
- package/index.linux-arm64-gnu.node +0 -0
- package/index.linux-x64-gnu.node +0 -0
- package/index.win32-x64-msvc.node +0 -0
- package/package.json +11 -2
- package/scheduler.darwin-arm64.node +0 -0
- package/scheduler.darwin-x64.node +0 -0
- package/scheduler.linux-arm64-gnu.node +0 -0
- package/scheduler.linux-x64-gnu.node +0 -0
- package/scheduler.win32-x64-msvc.node +0 -0
- package/src/Codemods.ts +265 -0
- package/src/Ignitor.ts +48 -20
- package/src/bodyparser/BodyParserMiddleware.ts +3 -0
- package/src/bodyparser/qsParse.ts +69 -14
- package/src/codemods/source.ts +303 -0
- package/src/graphql/GraphQLEngine.ts +3 -2
- package/src/http/Exception.ts +17 -2
- package/src/http/HttpContext.ts +14 -1
- package/src/http/RedirectBuilder.ts +48 -37
- package/src/http/Request.ts +87 -29
- package/src/http/SseStream.ts +6 -7
- package/src/http/permissions.ts +31 -0
- package/src/http-client/HttpClient.ts +505 -0
- package/src/http-client/addresses.ts +58 -0
- package/src/http-client/fake.ts +141 -0
- package/src/http-client/index.ts +21 -0
- package/src/index.ts +9 -1
- package/src/middleware/Pipeline.ts +7 -3
- package/src/native/generated.ts +123 -3
- package/src/rpc/RpcProvider.ts +10 -1
- package/src/rpc/RpcRouter.ts +126 -42
- package/src/scheduler/locks/RedisLockBackend.ts +12 -4
- package/src/security/CookieSigner.ts +17 -3
- package/src/security/SignedUrl.ts +6 -1
- package/src/server/Server.ts +103 -9
- package/src/server/nativeGrpc.ts +59 -0
- package/src/server/nativeLimits.ts +94 -0
- package/src/session/Session.ts +72 -2
- package/src/session/SessionMiddleware.ts +53 -14
- package/src/session/config.ts +7 -0
- package/src/session/drivers/CookieDriver.ts +21 -6
- package/src/session/drivers/DatabaseDriver.ts +10 -0
- package/src/session/drivers/FileDriver.ts +91 -11
- package/src/session/drivers/MemoryDriver.ts +20 -5
- package/src/session/drivers/RedisDriver.ts +7 -0
- package/src/session/errors.ts +48 -0
- package/src/session/templateTags.ts +57 -0
- package/src/storage/StaticMiddleware.ts +28 -18
package/dist/server/Server.js
CHANGED
|
@@ -5,26 +5,42 @@
|
|
|
5
5
|
* - server.use([() => import('#middleware/...')]) — lazy class middleware
|
|
6
6
|
* - server.errorHandler(() => import('#exceptions/handler')) — custom exception handler
|
|
7
7
|
*/
|
|
8
|
+
import { ReamError } from '../errors/ReamError.js';
|
|
9
|
+
function checkGrpcLimit(name, value) {
|
|
10
|
+
if (value === undefined || value === -1 || (Number.isSafeInteger(value) && value >= 0))
|
|
11
|
+
return;
|
|
12
|
+
throw new ReamError('E_SERVER_GRPC_INVALID_LIMIT', `${name} must be a whole number of bytes, or -1 for no limit — got ${value}.`);
|
|
13
|
+
}
|
|
8
14
|
export class Server {
|
|
9
15
|
#router;
|
|
10
16
|
#serverMiddleware = [];
|
|
11
17
|
#errorHandlerImporter;
|
|
12
18
|
#resolvedErrorHandler;
|
|
13
19
|
#trustedProxies = [];
|
|
20
|
+
#grpcHandler;
|
|
21
|
+
#grpcLimits = {};
|
|
14
22
|
constructor(router) {
|
|
15
23
|
this.#router = router;
|
|
16
24
|
}
|
|
17
25
|
/**
|
|
18
|
-
* Configure the trusted
|
|
19
|
-
* pre-resolve `request.ip` once per request — JS reads
|
|
20
|
-
* matching in TS.
|
|
26
|
+
* Configure the trusted proxies. The Rust HyperServer uses them to
|
|
27
|
+
* pre-resolve `request.ip()` / `request.ips()` once per request — JS reads
|
|
28
|
+
* the fields, no CIDR matching in TS.
|
|
29
|
+
*
|
|
30
|
+
* The chain is the socket peer, then the `X-Forwarded-For` entries read
|
|
31
|
+
* right to left; it stops at the first hop that is not a trusted proxy, and
|
|
32
|
+
* its last entry is the client IP. Proxies append what they saw, so the
|
|
33
|
+
* left-most entry — the one a client writes itself — is only reached when
|
|
34
|
+
* every hop after it is trusted. `X-Real-IP` is never read.
|
|
35
|
+
*
|
|
36
|
+
* Entries: addresses or CIDR ranges, IPv4 or IPv6 (`'10.0.0.0/8'`,
|
|
37
|
+
* `'fd00::/8'`), IPv4 netmasks (`'10.0.0.0/255.0.0.0'`), the named ranges
|
|
38
|
+
* `'loopback'`, `'linklocal'`, `'uniquelocal'`, or `'*'` to trust every hop
|
|
39
|
+
* (the left-most entry wins — any client can choose its IP). An entry that is
|
|
40
|
+
* none of these makes the server refuse to start.
|
|
21
41
|
*
|
|
22
|
-
* Empty list (default
|
|
23
|
-
*
|
|
24
|
-
* Apps deployed behind a reverse proxy must list the proxy's CIDR
|
|
25
|
-
* (`'10.0.0.0/8'`, `'192.0.2.0/24'`, etc.) or pass the `'*'` sentinel
|
|
26
|
-
* for permissive mode (accepts spoofing as the explicit trade-off when
|
|
27
|
-
* proxy CIDRs can't be enumerated).
|
|
42
|
+
* Empty list (default) is **strict fail-closed**: `X-Forwarded-For` is
|
|
43
|
+
* ignored and only the socket peer is used.
|
|
28
44
|
*/
|
|
29
45
|
trustedProxies(cidrs) {
|
|
30
46
|
this.#trustedProxies = [...cidrs];
|
|
@@ -34,6 +50,41 @@ export class Server {
|
|
|
34
50
|
getTrustedProxies() {
|
|
35
51
|
return this.#trustedProxies;
|
|
36
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Serve gRPC on the HTTP port. Once a handler is set, a request whose
|
|
55
|
+
* content-type is `application/grpc*` is a gRPC call handed to it — ahead
|
|
56
|
+
* of the router and the middleware, which never see it. The native server
|
|
57
|
+
* still applies its rate limiter and security filter first. Without a
|
|
58
|
+
* handler such a request stays an ordinary HTTP request.
|
|
59
|
+
*
|
|
60
|
+
* No AdonisJS counterpart: it serves on Node's `http.Server`, where gRPC
|
|
61
|
+
* would attach a library of its own. Here the native server owns the
|
|
62
|
+
* socket, so the gRPC branch is part of it, and this is how a package
|
|
63
|
+
* reaches it — `@c9up/neutrino` registers its dispatcher here.
|
|
64
|
+
*
|
|
65
|
+
* One handler per server: a second one throws. Two packages both serving
|
|
66
|
+
* gRPC is a conflict to resolve, not to settle by load order.
|
|
67
|
+
*/
|
|
68
|
+
grpc(handler, limits = {}) {
|
|
69
|
+
if (this.#grpcHandler) {
|
|
70
|
+
throw new ReamError('E_SERVER_GRPC_ALREADY_SET', 'A gRPC handler is already registered.', {
|
|
71
|
+
hint: 'Only one package can serve gRPC on the HTTP port.',
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
checkGrpcLimit('maxReceiveMessageLength', limits.maxReceiveMessageLength);
|
|
75
|
+
checkGrpcLimit('maxSendMessageLength', limits.maxSendMessageLength);
|
|
76
|
+
this.#grpcHandler = handler;
|
|
77
|
+
this.#grpcLimits = { ...limits };
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
/** The message bounds given with the gRPC handler (consumed by Ignitor at boot). */
|
|
81
|
+
getGrpcLimits() {
|
|
82
|
+
return { ...this.#grpcLimits };
|
|
83
|
+
}
|
|
84
|
+
/** The gRPC handler, if one is set (consumed by Ignitor at boot). */
|
|
85
|
+
getGrpcHandler() {
|
|
86
|
+
return this.#grpcHandler;
|
|
87
|
+
}
|
|
37
88
|
/**
|
|
38
89
|
* Register global server middleware.
|
|
39
90
|
* Accepts lazy imports of middleware classes (AdonisJS pattern):
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/server/Server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/server/Server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The gRPC handler as the native server calls it.
|
|
3
|
+
*
|
|
4
|
+
* The native server numbers each call and, separately, reports the numbers
|
|
5
|
+
* of the calls a client gave up on — a reset stream or a closed connection —
|
|
6
|
+
* before the handler answered. This turns those reports into the `signal` of
|
|
7
|
+
* each {@link GrpcCall}, so that a handler can stop the work it started.
|
|
8
|
+
*
|
|
9
|
+
* Calls reach JavaScript in increasing id order, but a cancel travels on its
|
|
10
|
+
* own queue and can arrive before its call: one for an id not seen yet is
|
|
11
|
+
* kept until that call arrives; one for an id already seen and finished is
|
|
12
|
+
* dropped.
|
|
13
|
+
*/
|
|
14
|
+
import type { GrpcCall, GrpcHandler, GrpcReply } from './Server.js';
|
|
15
|
+
/** A call as the native server hands it over: numbered, without a signal. */
|
|
16
|
+
export interface NativeGrpcCall extends Omit<GrpcCall, 'signal'> {
|
|
17
|
+
id: number;
|
|
18
|
+
}
|
|
19
|
+
export type NativeGrpcHandler = (call: NativeGrpcCall) => Promise<GrpcReply>;
|
|
20
|
+
export interface CancellableGrpc {
|
|
21
|
+
/** Give to the native server's `onGrpc`. */
|
|
22
|
+
onCall: NativeGrpcHandler;
|
|
23
|
+
/** Give to the native server's `onGrpcCancel`. */
|
|
24
|
+
onCancel: (id: number) => void;
|
|
25
|
+
}
|
|
26
|
+
export declare function cancellableGrpc(handler: GrpcHandler): CancellableGrpc;
|
|
27
|
+
//# sourceMappingURL=nativeGrpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeGrpc.d.ts","sourceRoot":"","sources":["../../src/server/nativeGrpc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEnE,6EAA6E;AAC7E,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC9D,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;AAE5E,MAAM,WAAW,eAAe;IAC9B,4CAA4C;IAC5C,MAAM,EAAE,iBAAiB,CAAA;IACzB,kDAAkD;IAClD,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/B;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,eAAe,CA4BrE"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The gRPC handler as the native server calls it.
|
|
3
|
+
*
|
|
4
|
+
* The native server numbers each call and, separately, reports the numbers
|
|
5
|
+
* of the calls a client gave up on — a reset stream or a closed connection —
|
|
6
|
+
* before the handler answered. This turns those reports into the `signal` of
|
|
7
|
+
* each {@link GrpcCall}, so that a handler can stop the work it started.
|
|
8
|
+
*
|
|
9
|
+
* Calls reach JavaScript in increasing id order, but a cancel travels on its
|
|
10
|
+
* own queue and can arrive before its call: one for an id not seen yet is
|
|
11
|
+
* kept until that call arrives; one for an id already seen and finished is
|
|
12
|
+
* dropped.
|
|
13
|
+
*/
|
|
14
|
+
export function cancellableGrpc(handler) {
|
|
15
|
+
const running = new Map();
|
|
16
|
+
// Cancels that arrived before their call.
|
|
17
|
+
const early = new Set();
|
|
18
|
+
let lastSeen = 0;
|
|
19
|
+
return {
|
|
20
|
+
async onCall({ id, ...call }) {
|
|
21
|
+
lastSeen = Math.max(lastSeen, id);
|
|
22
|
+
const controller = new AbortController();
|
|
23
|
+
for (const cancelled of early) {
|
|
24
|
+
if (cancelled > id)
|
|
25
|
+
continue;
|
|
26
|
+
early.delete(cancelled);
|
|
27
|
+
if (cancelled === id)
|
|
28
|
+
controller.abort();
|
|
29
|
+
}
|
|
30
|
+
running.set(id, controller);
|
|
31
|
+
try {
|
|
32
|
+
return await handler({ ...call, signal: controller.signal });
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
running.delete(id);
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
onCancel(id) {
|
|
39
|
+
const controller = running.get(id);
|
|
40
|
+
if (controller !== undefined)
|
|
41
|
+
controller.abort();
|
|
42
|
+
else if (id > lastSeen)
|
|
43
|
+
early.add(id);
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=nativeGrpc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeGrpc.js","sourceRoot":"","sources":["../../src/server/nativeGrpc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAkBH,MAAM,UAAU,eAAe,CAAC,OAAoB;IAClD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAA;IAClD,0CAA0C;IAC1C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAC/B,IAAI,QAAQ,GAAG,CAAC,CAAA;IAEhB,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;YAC1B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YACjC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;YACxC,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;gBAC9B,IAAI,SAAS,GAAG,EAAE;oBAAE,SAAQ;gBAC5B,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBACvB,IAAI,SAAS,KAAK,EAAE;oBAAE,UAAU,CAAC,KAAK,EAAE,CAAA;YAC1C,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;YAC3B,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;YAC9D,CAAC;oBAAS,CAAC;gBACT,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACpB,CAAC;QACH,CAAC;QACD,QAAQ,CAAC,EAAE;YACT,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAClC,IAAI,UAAU,KAAK,SAAS;gBAAE,UAAU,CAAC,KAAK,EAAE,CAAA;iBAC3C,IAAI,EAAE,GAAG,QAAQ;gBAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACvC,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The limits the native server applies at the socket, read from the
|
|
3
|
+
* application's configuration.
|
|
4
|
+
*
|
|
5
|
+
* - Body limits come from `config/bodyparser.ts`: the native server enforces
|
|
6
|
+
* each section's `limit` WHILE reading the body, so nothing past it is ever
|
|
7
|
+
* buffered. The request still reaches routing, without its body and marked
|
|
8
|
+
* `bodyTooLarge`; reading the body then throws the 413 the body parser
|
|
9
|
+
* raises. The body parser keeps its own check; the two read one config.
|
|
10
|
+
* - Timeouts and the connection cap come from `config/app.ts` → `http`, where
|
|
11
|
+
* an AdonisJS app sets `headersTimeout`, `requestTimeout` and
|
|
12
|
+
* `keepAliveTimeout` for Node's server. `maxConnections` has no AdonisJS
|
|
13
|
+
* option (Node's `server.maxConnections` is left unbounded there); it is a
|
|
14
|
+
* deliberate DoS bound, and past it new clients wait in the listen backlog.
|
|
15
|
+
*
|
|
16
|
+
* Why the body limits are applied natively at all (NAPI constraint): the
|
|
17
|
+
* native server hands JS a request whose body is already read, where AdonisJS
|
|
18
|
+
* leaves the body in Node's stream until the parser pulls it. Without a limit
|
|
19
|
+
* at the read, every body is buffered before any JS-side limit can apply.
|
|
20
|
+
*/
|
|
21
|
+
import type { BodyParserConfig } from '../bodyparser/BodyParserMiddleware.js';
|
|
22
|
+
/** One body-parser section as the native server takes it (bytes). */
|
|
23
|
+
export interface NativeBodyLimit {
|
|
24
|
+
limit?: number;
|
|
25
|
+
types?: string[];
|
|
26
|
+
}
|
|
27
|
+
/** Body limits per body-parser section; an omitted section keeps its default. */
|
|
28
|
+
export interface NativeBodyLimits {
|
|
29
|
+
json?: NativeBodyLimit;
|
|
30
|
+
form?: NativeBodyLimit;
|
|
31
|
+
raw?: NativeBodyLimit;
|
|
32
|
+
multipart?: NativeBodyLimit;
|
|
33
|
+
}
|
|
34
|
+
/** Timeouts in milliseconds (`0` disables one) and the connection cap (`0` = unbounded). */
|
|
35
|
+
export interface NativeConnectionConfig {
|
|
36
|
+
headersTimeout?: number;
|
|
37
|
+
requestTimeout?: number;
|
|
38
|
+
keepAliveTimeout?: number;
|
|
39
|
+
maxConnections?: number;
|
|
40
|
+
}
|
|
41
|
+
/** Translate `config/bodyparser.ts` into the native server's body limits. */
|
|
42
|
+
export declare function nativeBodyLimits(config: BodyParserConfig): NativeBodyLimits;
|
|
43
|
+
/**
|
|
44
|
+
* Pick the connection settings out of the `http` block of `config/app.ts`.
|
|
45
|
+
* Throws on a value that is not a whole number of milliseconds (or
|
|
46
|
+
* connections) the native server can hold, rather than letting it wrap.
|
|
47
|
+
*/
|
|
48
|
+
export declare function nativeConnectionConfig(http: unknown): NativeConnectionConfig;
|
|
49
|
+
//# sourceMappingURL=nativeLimits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeLimits.d.ts","sourceRoot":"","sources":["../../src/server/nativeLimits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAA;AAI7E,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,GAAG,CAAC,EAAE,eAAe,CAAA;IACrB,SAAS,CAAC,EAAE,eAAe,CAAA;CAC5B;AAED,4FAA4F;AAC5F,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAID,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAW3E;AAWD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,sBAAsB,CAgB5E"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The limits the native server applies at the socket, read from the
|
|
3
|
+
* application's configuration.
|
|
4
|
+
*
|
|
5
|
+
* - Body limits come from `config/bodyparser.ts`: the native server enforces
|
|
6
|
+
* each section's `limit` WHILE reading the body, so nothing past it is ever
|
|
7
|
+
* buffered. The request still reaches routing, without its body and marked
|
|
8
|
+
* `bodyTooLarge`; reading the body then throws the 413 the body parser
|
|
9
|
+
* raises. The body parser keeps its own check; the two read one config.
|
|
10
|
+
* - Timeouts and the connection cap come from `config/app.ts` → `http`, where
|
|
11
|
+
* an AdonisJS app sets `headersTimeout`, `requestTimeout` and
|
|
12
|
+
* `keepAliveTimeout` for Node's server. `maxConnections` has no AdonisJS
|
|
13
|
+
* option (Node's `server.maxConnections` is left unbounded there); it is a
|
|
14
|
+
* deliberate DoS bound, and past it new clients wait in the listen backlog.
|
|
15
|
+
*
|
|
16
|
+
* Why the body limits are applied natively at all (NAPI constraint): the
|
|
17
|
+
* native server hands JS a request whose body is already read, where AdonisJS
|
|
18
|
+
* leaves the body in Node's stream until the parser pulls it. Without a limit
|
|
19
|
+
* at the read, every body is buffered before any JS-side limit can apply.
|
|
20
|
+
*/
|
|
21
|
+
import { parseSize } from '../bodyparser/parseSize.js';
|
|
22
|
+
import { ReamError } from '../errors/ReamError.js';
|
|
23
|
+
const SECTIONS = ['json', 'form', 'raw', 'multipart'];
|
|
24
|
+
/** Translate `config/bodyparser.ts` into the native server's body limits. */
|
|
25
|
+
export function nativeBodyLimits(config) {
|
|
26
|
+
const limits = {};
|
|
27
|
+
for (const section of SECTIONS) {
|
|
28
|
+
const given = config[section];
|
|
29
|
+
if (!given)
|
|
30
|
+
continue;
|
|
31
|
+
const native = {};
|
|
32
|
+
if (given.limit !== undefined)
|
|
33
|
+
native.limit = parseSize(given.limit);
|
|
34
|
+
if (given.types !== undefined)
|
|
35
|
+
native.types = [...given.types];
|
|
36
|
+
limits[section] = native;
|
|
37
|
+
}
|
|
38
|
+
return limits;
|
|
39
|
+
}
|
|
40
|
+
const CONNECTION_KEYS = [
|
|
41
|
+
'headersTimeout',
|
|
42
|
+
'requestTimeout',
|
|
43
|
+
'keepAliveTimeout',
|
|
44
|
+
'maxConnections',
|
|
45
|
+
];
|
|
46
|
+
const MAX_U32 = 2 ** 32 - 1;
|
|
47
|
+
/**
|
|
48
|
+
* Pick the connection settings out of the `http` block of `config/app.ts`.
|
|
49
|
+
* Throws on a value that is not a whole number of milliseconds (or
|
|
50
|
+
* connections) the native server can hold, rather than letting it wrap.
|
|
51
|
+
*/
|
|
52
|
+
export function nativeConnectionConfig(http) {
|
|
53
|
+
const config = {};
|
|
54
|
+
if (typeof http !== 'object' || http === null)
|
|
55
|
+
return config;
|
|
56
|
+
for (const key of CONNECTION_KEYS) {
|
|
57
|
+
const value = Reflect.get(http, key);
|
|
58
|
+
if (value === undefined)
|
|
59
|
+
continue;
|
|
60
|
+
if (typeof value !== 'number' || !Number.isInteger(value) || value < 0 || value > MAX_U32) {
|
|
61
|
+
throw new ReamError('E_IGNITOR_INVALID_HTTP_CONFIG', `\`http.${key}\` must be a whole number between 0 and ${MAX_U32}, received ${String(value)}.`, { hint: 'Timeouts are in milliseconds; 0 disables the bound.' });
|
|
62
|
+
}
|
|
63
|
+
config[key] = value;
|
|
64
|
+
}
|
|
65
|
+
return config;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=nativeLimits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeLimits.js","sourceRoot":"","sources":["../../src/server/nativeLimits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAwBlD,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAU,CAAA;AAE9D,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,MAAM,MAAM,GAAqB,EAAE,CAAA;IACnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAC7B,IAAI,CAAC,KAAK;YAAE,SAAQ;QACpB,MAAM,MAAM,GAAoB,EAAE,CAAA;QAClC,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACpE,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QAC9D,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAA;IAC1B,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,eAAe,GAAG;IACtB,gBAAgB;IAChB,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;CACR,CAAA;AAEV,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AAE3B;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAa;IAClD,MAAM,MAAM,GAA2B,EAAE,CAAA;IACzC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,MAAM,CAAA;IAC5D,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,MAAM,KAAK,GAAY,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC7C,IAAI,KAAK,KAAK,SAAS;YAAE,SAAQ;QACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;YAC1F,MAAM,IAAI,SAAS,CACjB,+BAA+B,EAC/B,UAAU,GAAG,2CAA2C,OAAO,cAAc,MAAM,CAAC,KAAK,CAAC,GAAG,EAC7F,EAAE,IAAI,EAAE,qDAAqD,EAAE,CAChE,CAAA;QACH,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACrB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Backed by pluggable drivers (cookie, memory, redis).
|
|
11
11
|
*/
|
|
12
|
+
import type { CookieOptions } from '../http/Response.js';
|
|
12
13
|
import type { SessionRedisClientSource } from './drivers/RedisDriver.js';
|
|
13
14
|
import { ReadOnlyValuesStore } from './ReadOnlyValuesStore.js';
|
|
14
15
|
export interface SessionDriver {
|
|
@@ -23,8 +24,27 @@ export interface SessionDriver {
|
|
|
23
24
|
*/
|
|
24
25
|
read(sessionId: string): Promise<Record<string, unknown> | null>;
|
|
25
26
|
write(sessionId: string, data: Record<string, unknown>, ttl: number): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Write only over an entry that is still there, in one step; `false` when it
|
|
29
|
+
* is gone, and nothing written.
|
|
30
|
+
*
|
|
31
|
+
* What `commit()` uses for a session that existed when the request came in.
|
|
32
|
+
* A request still running when the same session was logged out, rotated or
|
|
33
|
+
* destroyed everywhere would otherwise write its stale copy back — the user
|
|
34
|
+
* id included — and undo the logout. Upstream writes unconditionally and has
|
|
35
|
+
* that race; this is the named deviation that closes it.
|
|
36
|
+
*
|
|
37
|
+
* Required, and checked when the store is attached: a read followed by a
|
|
38
|
+
* write leaves the race open between the two calls.
|
|
39
|
+
*/
|
|
40
|
+
update(sessionId: string, data: Record<string, unknown>, ttl: number): Promise<boolean>;
|
|
26
41
|
destroy(sessionId: string): Promise<void>;
|
|
27
42
|
touch(sessionId: string, ttl: number): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* The session lives with the client, not here: nothing on the server can
|
|
45
|
+
* delete a copy of it. Only the cookie store sets it.
|
|
46
|
+
*/
|
|
47
|
+
readonly stateless?: boolean;
|
|
28
48
|
}
|
|
29
49
|
/** One session belonging to a tagged user (AdonisJS `TaggedSession`). */
|
|
30
50
|
export interface TaggedSession {
|
|
@@ -105,7 +125,18 @@ export interface SessionConfig {
|
|
|
105
125
|
client?: SessionRedisClientSource;
|
|
106
126
|
/** `redis` driver only — key prefix. Defaults to `ream:session:`. */
|
|
107
127
|
prefix?: string;
|
|
128
|
+
/**
|
|
129
|
+
* Attributes of the session cookie, for every store. Defaults:
|
|
130
|
+
* `{ path: '/', httpOnly: true, sameSite: 'lax' }`, and `secure` on when
|
|
131
|
+
* `NODE_ENV` is production. Its lifetime comes from {@link age} and
|
|
132
|
+
* {@link clearWithBrowser}, not from here. `httpOnly: false` is refused: a
|
|
133
|
+
* script able to read the session cookie is what turns an XSS into an
|
|
134
|
+
* account takeover.
|
|
135
|
+
*/
|
|
136
|
+
cookie?: SessionCookieOptions;
|
|
108
137
|
}
|
|
138
|
+
/** The session cookie attributes an application may set. */
|
|
139
|
+
export type SessionCookieOptions = Pick<CookieOptions, 'path' | 'httpOnly' | 'secure' | 'sameSite' | 'domain' | 'partitioned' | 'priority'>;
|
|
109
140
|
export declare class Session {
|
|
110
141
|
#private;
|
|
111
142
|
constructor(sessionId: string, data?: Record<string, unknown>);
|
|
@@ -126,6 +157,12 @@ export declare class Session {
|
|
|
126
157
|
regenerate(): void;
|
|
127
158
|
/** @internal — read by SessionMiddleware to detect a mid-request rotation. */
|
|
128
159
|
wasRegenerated(): boolean;
|
|
160
|
+
/**
|
|
161
|
+
* @internal — the stored entry was gone by the time {@link commit} ran: it
|
|
162
|
+
* was logged out, rotated or destroyed by another request meanwhile. Nothing
|
|
163
|
+
* was written, and the middleware must not hand the browser this id again.
|
|
164
|
+
*/
|
|
165
|
+
wasLost(): boolean;
|
|
129
166
|
/** @internal — the id captured at request arrival; used to destroy the old driver entry post-regenerate. */
|
|
130
167
|
originalSessionId(): string;
|
|
131
168
|
/** Get a session value. */
|
|
@@ -311,6 +348,14 @@ export declare class Session {
|
|
|
311
348
|
* id pointing at a row nobody asked for.
|
|
312
349
|
*/
|
|
313
350
|
commit(): Promise<void>;
|
|
351
|
+
/**
|
|
352
|
+
* Whether ending this session on the server ends every copy of it.
|
|
353
|
+
*
|
|
354
|
+
* False under the cookie store, where the session travels with the client:
|
|
355
|
+
* a logout replaces the cookie in one browser and cannot reach a copy. What
|
|
356
|
+
* an auth guard reads to refuse signing in on a store it cannot revoke.
|
|
357
|
+
*/
|
|
358
|
+
get revocable(): boolean;
|
|
314
359
|
/**
|
|
315
360
|
* Whether the store behind this session can tag sessions with a user
|
|
316
361
|
* (AdonisJS `supportsTagging`). False under the cookie and file drivers.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../src/session/Session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../src/session/Session.ts"],"names":[],"mappings":"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"}
|
package/dist/session/Session.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Backed by pluggable drivers (cookie, memory, redis).
|
|
11
11
|
*/
|
|
12
|
-
import { E_SESSION_NOT_READY, E_SESSION_TAGGING_NOT_SUPPORTED } from './errors.js';
|
|
12
|
+
import { E_SESSION_NOT_READY, E_SESSION_STORE_NOT_CONDITIONAL, E_SESSION_TAGGING_NOT_SUPPORTED, } from './errors.js';
|
|
13
13
|
import { ReadOnlyValuesStore } from './ReadOnlyValuesStore.js';
|
|
14
14
|
/** Whether a driver carries the tagging half of the contract. */
|
|
15
15
|
export function supportsTagging(driver) {
|
|
@@ -73,6 +73,8 @@ export class Session {
|
|
|
73
73
|
#ttl = 0;
|
|
74
74
|
/** Whether {@link initiate} already ran, so a second call is a no-op. */
|
|
75
75
|
#initiated = false;
|
|
76
|
+
/** The entry vanished while this request ran — see {@link wasLost}. */
|
|
77
|
+
#lost = false;
|
|
76
78
|
constructor(sessionId, data = {}) {
|
|
77
79
|
this.#sessionId = sessionId;
|
|
78
80
|
this.#originalSessionId = sessionId;
|
|
@@ -116,6 +118,14 @@ export class Session {
|
|
|
116
118
|
wasRegenerated() {
|
|
117
119
|
return this.#regenerated;
|
|
118
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* @internal — the stored entry was gone by the time {@link commit} ran: it
|
|
123
|
+
* was logged out, rotated or destroyed by another request meanwhile. Nothing
|
|
124
|
+
* was written, and the middleware must not hand the browser this id again.
|
|
125
|
+
*/
|
|
126
|
+
wasLost() {
|
|
127
|
+
return this.#lost;
|
|
128
|
+
}
|
|
119
129
|
/** @internal — the id captured at request arrival; used to destroy the old driver entry post-regenerate. */
|
|
120
130
|
originalSessionId() {
|
|
121
131
|
return this.#originalSessionId;
|
|
@@ -408,6 +418,11 @@ export class Session {
|
|
|
408
418
|
* {@link initiate} / {@link commit} then have nothing to do.
|
|
409
419
|
*/
|
|
410
420
|
setStore(driver, options) {
|
|
421
|
+
// A store written in JavaScript, or against the older contract, reaches
|
|
422
|
+
// here without the method the type requires.
|
|
423
|
+
if (typeof Reflect.get(driver, 'update') !== 'function') {
|
|
424
|
+
throw new E_SESSION_STORE_NOT_CONDITIONAL();
|
|
425
|
+
}
|
|
411
426
|
this.#driver = driver;
|
|
412
427
|
this.#fresh = options.fresh;
|
|
413
428
|
this.#ttl = options.ttl;
|
|
@@ -456,12 +471,26 @@ export class Session {
|
|
|
456
471
|
return;
|
|
457
472
|
}
|
|
458
473
|
if (this.#dirty) {
|
|
459
|
-
|
|
474
|
+
if (this.#fresh) {
|
|
475
|
+
await driver.write(this.#sessionId, this.toJSON(), this.#ttl);
|
|
476
|
+
return;
|
|
477
|
+
}
|
|
478
|
+
this.#lost = !(await driver.update(this.#sessionId, this.toJSON(), this.#ttl));
|
|
460
479
|
return;
|
|
461
480
|
}
|
|
462
481
|
if (!this.#fresh)
|
|
463
482
|
await driver.touch(this.#sessionId, this.#ttl);
|
|
464
483
|
}
|
|
484
|
+
/**
|
|
485
|
+
* Whether ending this session on the server ends every copy of it.
|
|
486
|
+
*
|
|
487
|
+
* False under the cookie store, where the session travels with the client:
|
|
488
|
+
* a logout replaces the cookie in one browser and cannot reach a copy. What
|
|
489
|
+
* an auth guard reads to refuse signing in on a store it cannot revoke.
|
|
490
|
+
*/
|
|
491
|
+
get revocable() {
|
|
492
|
+
return this.#driver !== undefined && this.#driver.stateless !== true;
|
|
493
|
+
}
|
|
465
494
|
/**
|
|
466
495
|
* Whether the store behind this session can tag sessions with a user
|
|
467
496
|
* (AdonisJS `supportsTagging`). False under the cookie and file drivers.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Session.js","sourceRoot":"","sources":["../../src/session/Session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Session.js","sourceRoot":"","sources":["../../src/session/Session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionMiddleware.d.ts","sourceRoot":"","sources":["../../src/session/SessionMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"SessionMiddleware.d.ts","sourceRoot":"","sources":["../../src/session/SessionMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AA+BrD,MAAM,CAAC,OAAO,OAAO,iBAAiB;;gBAKxB,cAAc,GAAE,kBAAkB,GAAG,SAAqB;IA8EhE,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;CAiJzD"}
|