@rudderjs/session 1.0.3 → 1.0.5
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 +13 -1
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +135 -53
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -143,7 +143,7 @@ Session data is JSON-serialised, base64url-encoded, and signed with HMAC-SHA256.
|
|
|
143
143
|
|
|
144
144
|
### `redis`
|
|
145
145
|
|
|
146
|
-
|
|
146
|
+
The cookie holds the HMAC-signed session ID; the data lives in Redis under `{prefix}{id}`. Requires `ioredis`.
|
|
147
147
|
|
|
148
148
|
```ts
|
|
149
149
|
{
|
|
@@ -155,6 +155,18 @@ Session ID is stored in the cookie; data lives in Redis under `{prefix}{id}`. Re
|
|
|
155
155
|
}
|
|
156
156
|
```
|
|
157
157
|
|
|
158
|
+
### Driver tradeoffs
|
|
159
|
+
|
|
160
|
+
| | cookie | redis |
|
|
161
|
+
| --- | --- | --- |
|
|
162
|
+
| Server-side store | none — payload lives in the cookie | required |
|
|
163
|
+
| Max size | ~4 KB | bounded by Redis |
|
|
164
|
+
| `regenerate()` invalidates the old cookie | **no** — old signed cookie remains valid until its `Max-Age` | yes — old key is deleted from Redis |
|
|
165
|
+
| `destroy()` after logout | no-op (statelessness is the tradeoff) | actual delete |
|
|
166
|
+
| Survives a redis outage | n/a | sessions become unreadable |
|
|
167
|
+
|
|
168
|
+
If you need true post-logout invalidation, a stolen-cookie kill switch, or full session-fixation defense beyond rotating the ID on login, **use the redis driver**. The cookie driver is the right choice when statelessness is the goal and the data fits — flash messages, CSRF tokens, simple "is logged in" markers — and you can accept that revocation only happens at TTL.
|
|
169
|
+
|
|
158
170
|
---
|
|
159
171
|
|
|
160
172
|
## Notes
|
package/dist/index.d.ts
CHANGED
|
@@ -57,6 +57,17 @@ export declare class SessionInstance {
|
|
|
57
57
|
has(key: string): boolean;
|
|
58
58
|
all(): Record<string, unknown>;
|
|
59
59
|
id(): string;
|
|
60
|
+
/**
|
|
61
|
+
* Mint a fresh session id and best-effort destroy the prior one server-side.
|
|
62
|
+
*
|
|
63
|
+
* **Cookie driver caveat (`session.driver = 'cookie'`):** the previous
|
|
64
|
+
* cookie remains valid until its `Max-Age` expires. The cookie driver is
|
|
65
|
+
* stateless — there is no server-side store to delete from — so a stolen
|
|
66
|
+
* pre-regenerate cookie can still be replayed within its TTL. Apps that
|
|
67
|
+
* need true post-logout invalidation (or fixation defense beyond
|
|
68
|
+
* "rotate the id on login") must use the redis driver, where `destroy()`
|
|
69
|
+
* actually removes the key. See README "Sessions" → "Driver tradeoffs".
|
|
70
|
+
*/
|
|
60
71
|
regenerate(): Promise<void>;
|
|
61
72
|
/** Whether the session data has been modified since loading. */
|
|
62
73
|
isDirty(): boolean;
|
|
@@ -79,11 +90,40 @@ export declare class Session {
|
|
|
79
90
|
static all(): Record<string, unknown>;
|
|
80
91
|
static regenerate(): Promise<void>;
|
|
81
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Test-only — run `fn` inside a session ALS context populated by `session`.
|
|
95
|
+
* Lets unit tests in other packages exercise code paths that go through the
|
|
96
|
+
* `Session` static facade (e.g. CSRF helpers, OAuth state) without standing
|
|
97
|
+
* up the full request middleware. NOT for production code.
|
|
98
|
+
*
|
|
99
|
+
* @internal
|
|
100
|
+
*/
|
|
101
|
+
export declare function _runWithSession<T>(session: SessionInstance, fn: () => T): T;
|
|
102
|
+
/** @internal Exported for tests; not part of the public API. */
|
|
103
|
+
export declare class RedisDriver implements InternalDriver {
|
|
104
|
+
private readonly redisConfig;
|
|
105
|
+
private readonly secret;
|
|
106
|
+
private clientPromise;
|
|
107
|
+
private readonly prefix;
|
|
108
|
+
constructor(redisConfig: NonNullable<SessionConfig['redis']>, secret: string);
|
|
109
|
+
private getClient;
|
|
110
|
+
private key;
|
|
111
|
+
load(cookieValue: string | undefined): Promise<SessionPayload>;
|
|
112
|
+
persist(payload: SessionPayload, ttl: number): Promise<string>;
|
|
113
|
+
destroy(id: string): Promise<void>;
|
|
114
|
+
private empty;
|
|
115
|
+
}
|
|
82
116
|
export declare function sessionMiddleware(config: SessionConfig): MiddlewareHandler;
|
|
83
117
|
/**
|
|
84
118
|
* Session middleware that reads its config from the DI container.
|
|
85
119
|
* Requires session() provider to be registered in bootstrap/providers.ts.
|
|
86
120
|
*
|
|
121
|
+
* Resolves the singleton middleware bound by `SessionProvider.boot()` to
|
|
122
|
+
* `session.middleware`, so per-route opt-ins on api routes share the same
|
|
123
|
+
* driver — and the same redis connection — as the auto-installed web group
|
|
124
|
+
* middleware. Constructing a fresh `sessionMiddleware(cfg)` per call would
|
|
125
|
+
* spin up a new RedisDriver (and a new ioredis connection) per route.
|
|
126
|
+
*
|
|
87
127
|
* Usage in routes:
|
|
88
128
|
* import { SessionMiddleware } from '@rudderjs/session'
|
|
89
129
|
* Route.get('/path', handler, [SessionMiddleware()])
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAA8B,MAAM,gBAAgB,CAAA;AAC5E,OAAO,KAAK,EAAc,WAAW,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAIrF,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,UAAU;QAClB,OAAO,EAAE,eAAe,CAAA;KACzB;CACF;AAID,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAI,QAAQ,GAAG,OAAO,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAI,MAAM,CAAA;IAChB,MAAM,EAAE;QACN,IAAI,EAAM,MAAM,CAAA;QAChB,MAAM,EAAI,OAAO,CAAA;QACjB,QAAQ,EAAE,OAAO,CAAA;QACjB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;QACnC,IAAI,EAAM,MAAM,CAAA;KACjB,CAAA;IACD,KAAK,CAAC,EAAE;QACN,MAAM,CAAC,EAAI,MAAM,CAAA;QACjB,GAAG,CAAC,EAAO,MAAM,CAAA;QACjB,IAAI,CAAC,EAAM,MAAM,CAAA;QACjB,IAAI,CAAC,EAAM,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;CACF;AAID,UAAU,cAAc;IACtB,EAAE,EAAU,MAAM,CAAA;IAClB,IAAI,EAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC;AAID,UAAU,cAAc;IACtB,sEAAsE;IACtE,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9D,mEAAmE;IACnE,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACrE,+BAA+B;IAC/B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACnC;AAID,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;gBAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createHmac, randomUUID } from 'node:crypto';
|
|
1
|
+
import { createHmac, randomUUID, timingSafeEqual } from 'node:crypto';
|
|
2
2
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
3
3
|
import { ServiceProvider, app, config, appendToGroup } from '@rudderjs/core';
|
|
4
4
|
// ─── SessionInstance ───────────────────────────────────────
|
|
@@ -11,14 +11,19 @@ export class SessionInstance {
|
|
|
11
11
|
_driver;
|
|
12
12
|
_config;
|
|
13
13
|
constructor(payload, driver, config) {
|
|
14
|
+
// Default missing fields rather than trusting the shape — legacy and
|
|
15
|
+
// corrupt redis entries (or third-party writes) may omit flash_next or
|
|
16
|
+
// data entirely, and crashing the constructor takes the whole request
|
|
17
|
+
// down on every load.
|
|
18
|
+
const flashPrev = payload.flash_next ?? {};
|
|
14
19
|
this._id = payload.id;
|
|
15
|
-
this._data = { ...payload.data };
|
|
16
|
-
this._flash = { ...
|
|
20
|
+
this._data = { ...(payload.data ?? {}) };
|
|
21
|
+
this._flash = { ...flashPrev }; // prev flash_next → current flash
|
|
17
22
|
this._flashNext = {};
|
|
18
23
|
this._driver = driver;
|
|
19
24
|
this._config = config;
|
|
20
25
|
// Flash data was consumed — mark dirty so save() clears it from the cookie
|
|
21
|
-
if (Object.keys(
|
|
26
|
+
if (Object.keys(flashPrev).length > 0)
|
|
22
27
|
this._dirty = true;
|
|
23
28
|
}
|
|
24
29
|
get(key, fallback) {
|
|
@@ -54,6 +59,17 @@ export class SessionInstance {
|
|
|
54
59
|
id() {
|
|
55
60
|
return this._id;
|
|
56
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Mint a fresh session id and best-effort destroy the prior one server-side.
|
|
64
|
+
*
|
|
65
|
+
* **Cookie driver caveat (`session.driver = 'cookie'`):** the previous
|
|
66
|
+
* cookie remains valid until its `Max-Age` expires. The cookie driver is
|
|
67
|
+
* stateless — there is no server-side store to delete from — so a stolen
|
|
68
|
+
* pre-regenerate cookie can still be replayed within its TTL. Apps that
|
|
69
|
+
* need true post-logout invalidation (or fixation defense beyond
|
|
70
|
+
* "rotate the id on login") must use the redis driver, where `destroy()`
|
|
71
|
+
* actually removes the key. See README "Sessions" → "Driver tradeoffs".
|
|
72
|
+
*/
|
|
57
73
|
async regenerate() {
|
|
58
74
|
await this._driver.destroy(this._id);
|
|
59
75
|
this._id = randomUUID();
|
|
@@ -129,27 +145,46 @@ export class Session {
|
|
|
129
145
|
return this.current().regenerate();
|
|
130
146
|
}
|
|
131
147
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
148
|
+
/**
|
|
149
|
+
* Test-only — run `fn` inside a session ALS context populated by `session`.
|
|
150
|
+
* Lets unit tests in other packages exercise code paths that go through the
|
|
151
|
+
* `Session` static facade (e.g. CSRF helpers, OAuth state) without standing
|
|
152
|
+
* up the full request middleware. NOT for production code.
|
|
153
|
+
*
|
|
154
|
+
* @internal
|
|
155
|
+
*/
|
|
156
|
+
export function _runWithSession(session, fn) {
|
|
157
|
+
return _als.run(session, fn);
|
|
137
158
|
}
|
|
138
|
-
|
|
139
|
-
|
|
159
|
+
// ─── Sign / Verify primitives ──────────────────────────────
|
|
160
|
+
// Generic HMAC-SHA256 sign+verify shared by both drivers. Cookie driver signs
|
|
161
|
+
// the base64url-encoded JSON payload; redis driver signs the session ID alone
|
|
162
|
+
// so a stolen UUID can't be replayed and an attacker-supplied ID can't fixate
|
|
163
|
+
// onto a victim's session.
|
|
164
|
+
function sign(value, secret) {
|
|
165
|
+
const hmac = createHmac('sha256', secret).update(value).digest('base64url');
|
|
166
|
+
return `${value}.${hmac}`;
|
|
167
|
+
}
|
|
168
|
+
function verify(signed, secret) {
|
|
169
|
+
const dotIdx = signed.lastIndexOf('.');
|
|
140
170
|
if (dotIdx === -1)
|
|
141
171
|
return null;
|
|
142
|
-
const
|
|
143
|
-
const hmac =
|
|
144
|
-
const expected = createHmac('sha256', secret).update(
|
|
145
|
-
|
|
146
|
-
|
|
172
|
+
const value = signed.slice(0, dotIdx);
|
|
173
|
+
const hmac = signed.slice(dotIdx + 1);
|
|
174
|
+
const expected = createHmac('sha256', secret).update(value).digest('base64url');
|
|
175
|
+
const expectedBuf = Buffer.from(expected, 'base64url');
|
|
176
|
+
const hmacBuf = Buffer.from(hmac, 'base64url');
|
|
177
|
+
if (expectedBuf.length !== hmacBuf.length)
|
|
147
178
|
return null;
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
179
|
+
return timingSafeEqual(expectedBuf, hmacBuf) ? value : null;
|
|
180
|
+
}
|
|
181
|
+
// ─── Cookie Driver ─────────────────────────────────────────
|
|
182
|
+
function signPayload(payload, secret) {
|
|
183
|
+
return sign(Buffer.from(JSON.stringify(payload)).toString('base64url'), secret);
|
|
184
|
+
}
|
|
185
|
+
function verifyPayload(cookieValue, secret) {
|
|
186
|
+
const b64 = verify(cookieValue, secret);
|
|
187
|
+
if (b64 === null)
|
|
153
188
|
return null;
|
|
154
189
|
try {
|
|
155
190
|
return JSON.parse(Buffer.from(b64, 'base64url').toString('utf8'));
|
|
@@ -172,44 +207,67 @@ class CookieDriver {
|
|
|
172
207
|
return signPayload(payload, this.secret);
|
|
173
208
|
}
|
|
174
209
|
async destroy(_id) {
|
|
175
|
-
// Cookie driver
|
|
210
|
+
// Cookie driver is stateless — there is no server-side store to delete
|
|
211
|
+
// from. The pre-regenerate cookie therefore remains valid until its
|
|
212
|
+
// Max-Age expires; this is documented on `SessionInstance.regenerate()`.
|
|
213
|
+
// Apps that need true post-logout invalidation must use the redis driver.
|
|
176
214
|
}
|
|
177
215
|
empty() {
|
|
178
216
|
return { id: randomUUID(), data: {}, flash_next: {} };
|
|
179
217
|
}
|
|
180
218
|
}
|
|
181
|
-
|
|
182
|
-
class RedisDriver {
|
|
183
|
-
|
|
184
|
-
|
|
219
|
+
/** @internal Exported for tests; not part of the public API. */
|
|
220
|
+
export class RedisDriver {
|
|
221
|
+
redisConfig;
|
|
222
|
+
secret;
|
|
223
|
+
// Cache the *promise* of a client, not the client itself. With a raw
|
|
224
|
+
// `if (!this.client)` guard, two concurrent first-request callers would
|
|
225
|
+
// both fall through and each construct a new ioredis instance — the
|
|
226
|
+
// second overwrites the first, leaking the first connection's FD and
|
|
227
|
+
// its retry timer. Caching the promise means concurrent callers all
|
|
228
|
+
// await the same in-flight connect.
|
|
229
|
+
clientPromise = null;
|
|
185
230
|
prefix;
|
|
186
|
-
constructor(
|
|
187
|
-
this.
|
|
188
|
-
this.
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
231
|
+
constructor(redisConfig, secret) {
|
|
232
|
+
this.redisConfig = redisConfig;
|
|
233
|
+
this.secret = secret;
|
|
234
|
+
this.prefix = redisConfig.prefix ?? 'session:';
|
|
235
|
+
}
|
|
236
|
+
getClient() {
|
|
237
|
+
if (!this.clientPromise) {
|
|
238
|
+
this.clientPromise = (async () => {
|
|
239
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
240
|
+
const { Redis } = await import('ioredis');
|
|
241
|
+
return this.redisConfig.url
|
|
242
|
+
? new Redis(this.redisConfig.url)
|
|
243
|
+
: new Redis({
|
|
244
|
+
host: this.redisConfig.host ?? '127.0.0.1',
|
|
245
|
+
port: this.redisConfig.port ?? 6379,
|
|
246
|
+
password: this.redisConfig.password,
|
|
247
|
+
});
|
|
248
|
+
})();
|
|
249
|
+
// If the import or constructor throws, drop the rejected promise so
|
|
250
|
+
// the next call retries instead of permanently caching the failure.
|
|
251
|
+
this.clientPromise.catch(() => { this.clientPromise = null; });
|
|
201
252
|
}
|
|
202
|
-
return this.
|
|
253
|
+
return this.clientPromise;
|
|
203
254
|
}
|
|
204
255
|
key(id) { return `${this.prefix}${id}`; }
|
|
205
256
|
async load(cookieValue) {
|
|
206
257
|
if (!cookieValue)
|
|
207
258
|
return this.empty();
|
|
259
|
+
// Verify HMAC before touching redis. An attacker who plants an unsigned
|
|
260
|
+
// ID — or guesses one — never reaches the redis lookup, and a cache miss
|
|
261
|
+
// on a valid signature still creates a fresh ID rather than fixating on
|
|
262
|
+
// the cookie-supplied value.
|
|
263
|
+
const id = verify(cookieValue, this.secret);
|
|
264
|
+
if (id === null)
|
|
265
|
+
return this.empty();
|
|
208
266
|
try {
|
|
209
267
|
const client = await this.getClient();
|
|
210
|
-
const raw = await client.get(this.key(
|
|
268
|
+
const raw = await client.get(this.key(id));
|
|
211
269
|
if (!raw)
|
|
212
|
-
return this.
|
|
270
|
+
return this.empty();
|
|
213
271
|
return JSON.parse(raw);
|
|
214
272
|
}
|
|
215
273
|
catch {
|
|
@@ -219,7 +277,7 @@ class RedisDriver {
|
|
|
219
277
|
async persist(payload, ttl) {
|
|
220
278
|
const client = await this.getClient();
|
|
221
279
|
await client.set(this.key(payload.id), JSON.stringify(payload), 'EX', ttl);
|
|
222
|
-
return payload.id;
|
|
280
|
+
return sign(payload.id, this.secret);
|
|
223
281
|
}
|
|
224
282
|
async destroy(id) {
|
|
225
283
|
try {
|
|
@@ -233,9 +291,6 @@ class RedisDriver {
|
|
|
233
291
|
empty() {
|
|
234
292
|
return { id: randomUUID(), data: {}, flash_next: {} };
|
|
235
293
|
}
|
|
236
|
-
emptyWithId(id) {
|
|
237
|
-
return { id, data: {}, flash_next: {} };
|
|
238
|
-
}
|
|
239
294
|
}
|
|
240
295
|
// ─── Helpers ───────────────────────────────────────────────
|
|
241
296
|
function parseCookie(header, name) {
|
|
@@ -264,7 +319,7 @@ function buildCookieHeader(name, value, config) {
|
|
|
264
319
|
}
|
|
265
320
|
function makeDriver(config) {
|
|
266
321
|
if (config.driver === 'redis')
|
|
267
|
-
return new RedisDriver(config.redis ?? {});
|
|
322
|
+
return new RedisDriver(config.redis ?? {}, config.secret);
|
|
268
323
|
return new CookieDriver(config.secret);
|
|
269
324
|
}
|
|
270
325
|
// ─── Session Middleware ────────────────────────────────────
|
|
@@ -279,8 +334,30 @@ export function sessionMiddleware(config) {
|
|
|
279
334
|
if (!cookieValue)
|
|
280
335
|
session.markDirty();
|
|
281
336
|
req.raw['__rjs_session'] = session;
|
|
282
|
-
|
|
283
|
-
|
|
337
|
+
// Persist regardless of whether next() throws — flash messages on error
|
|
338
|
+
// redirects, new sessions on error responses, and regenerate() must
|
|
339
|
+
// survive a thrown handler. Save errors only surface when next() did not
|
|
340
|
+
// already throw, so the original exception isn't masked by a redis blip.
|
|
341
|
+
let nextErrored = false;
|
|
342
|
+
let nextErr;
|
|
343
|
+
try {
|
|
344
|
+
await _als.run(session, next);
|
|
345
|
+
}
|
|
346
|
+
catch (err) {
|
|
347
|
+
nextErrored = true;
|
|
348
|
+
nextErr = err;
|
|
349
|
+
}
|
|
350
|
+
try {
|
|
351
|
+
await session.save(res);
|
|
352
|
+
}
|
|
353
|
+
catch (saveErr) {
|
|
354
|
+
if (!nextErrored) {
|
|
355
|
+
nextErrored = true;
|
|
356
|
+
nextErr = saveErr;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
if (nextErrored)
|
|
360
|
+
throw nextErr;
|
|
284
361
|
};
|
|
285
362
|
}
|
|
286
363
|
// ─── Zero-config middleware (reads config from DI) ─────────
|
|
@@ -288,13 +365,18 @@ export function sessionMiddleware(config) {
|
|
|
288
365
|
* Session middleware that reads its config from the DI container.
|
|
289
366
|
* Requires session() provider to be registered in bootstrap/providers.ts.
|
|
290
367
|
*
|
|
368
|
+
* Resolves the singleton middleware bound by `SessionProvider.boot()` to
|
|
369
|
+
* `session.middleware`, so per-route opt-ins on api routes share the same
|
|
370
|
+
* driver — and the same redis connection — as the auto-installed web group
|
|
371
|
+
* middleware. Constructing a fresh `sessionMiddleware(cfg)` per call would
|
|
372
|
+
* spin up a new RedisDriver (and a new ioredis connection) per route.
|
|
373
|
+
*
|
|
291
374
|
* Usage in routes:
|
|
292
375
|
* import { SessionMiddleware } from '@rudderjs/session'
|
|
293
376
|
* Route.get('/path', handler, [SessionMiddleware()])
|
|
294
377
|
*/
|
|
295
378
|
export function SessionMiddleware() {
|
|
296
|
-
|
|
297
|
-
return sessionMiddleware(config);
|
|
379
|
+
return app().make('session.middleware');
|
|
298
380
|
}
|
|
299
381
|
// ─── Service Provider Factory ──────────────────────────────
|
|
300
382
|
/**
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rudderjs/session",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"rudderjs": {
|
|
5
5
|
"provider": "SessionProvider",
|
|
6
6
|
"stage": "infrastructure"
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@rudderjs/contracts": "^1.
|
|
29
|
-
"@rudderjs/core": "^1.1.
|
|
28
|
+
"@rudderjs/contracts": "^1.4.0",
|
|
29
|
+
"@rudderjs/core": "^1.1.3"
|
|
30
30
|
},
|
|
31
31
|
"optionalDependencies": {
|
|
32
32
|
"ioredis": "^5.3.0"
|