api-machine 1.2.1 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/LICENSE.md +20 -20
- package/README.md +275 -275
- package/authentication/auth-flow.d.ts +13 -0
- package/authentication/auth-flow.js +3 -0
- package/authentication/auth-flow.js.map +1 -0
- package/authentication/auth-step.d.ts +0 -0
- package/authentication/auth-step.js +2 -0
- package/authentication/auth-step.js.map +1 -0
- package/authentication/authentication-scheme.d.ts +57 -5
- package/authentication/authentication-scheme.js +77 -1
- package/authentication/authentication-scheme.js.map +1 -1
- package/authentication/index.d.ts +2 -2
- package/authentication/index.js +4 -2
- package/authentication/index.js.map +1 -1
- package/authentication/middleware/bearer-authentication.d.ts +6 -3
- package/authentication/middleware/bearer-authentication.js +8 -38
- package/authentication/middleware/bearer-authentication.js.map +1 -1
- package/authentication/schemes/bearer-authentication-scheme.d.ts +24 -10
- package/authentication/schemes/bearer-authentication-scheme.js +51 -11
- package/authentication/schemes/bearer-authentication-scheme.js.map +1 -1
- package/authentication/schemes/client-credentials-oauth2-scheme.d.ts +64 -0
- package/authentication/schemes/client-credentials-oauth2-scheme.js +99 -0
- package/authentication/schemes/client-credentials-oauth2-scheme.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +2 -1
- package/router/base.d.ts +8 -4
- package/router/base.js +15 -10
- package/router/base.js.map +1 -1
- package/router/endpoint.d.ts +1 -3
- package/router/endpoint.js +1 -0
- package/router/endpoint.js.map +1 -1
- package/router/router.js +3 -1
- package/router/router.js.map +1 -1
- package/router/validation-middleware.d.ts +1 -1
- package/server/server.d.ts +6 -0
- package/server/server.js +10 -0
- package/server/server.js.map +1 -1
- package/session/drivers/in-memory-session-driver.d.ts +22 -0
- package/session/drivers/in-memory-session-driver.js +46 -0
- package/session/drivers/in-memory-session-driver.js.map +1 -0
- package/session/drivers/index.d.ts +1 -0
- package/session/drivers/index.js +6 -0
- package/session/drivers/index.js.map +1 -0
- package/session/index.d.ts +3 -0
- package/session/index.js +8 -0
- package/session/index.js.map +1 -0
- package/session/session-driver.d.ts +10 -0
- package/session/session-driver.js +7 -0
- package/session/session-driver.js.map +1 -0
- package/session/session.d.ts +3 -0
- package/session/session.js +3 -0
- package/session/session.js.map +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "api-machine",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "api-machine",
|
|
5
5
|
"typescript-template": {
|
|
6
6
|
"base": "1.0.1",
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"auto-oas": "^1.3.0",
|
|
13
13
|
"cors": "^2.8.5",
|
|
14
14
|
"express": "^5.1.0",
|
|
15
|
+
"hidi": "^2.2.0",
|
|
15
16
|
"swagger-ui-express": "^5.0.1",
|
|
16
17
|
"valsan": "^2.3.0"
|
|
17
18
|
},
|
package/router/base.d.ts
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { Router as ExpressRouter, RequestHandler } from 'express';
|
|
2
2
|
import { AuthenticationScheme } from '../authentication/authentication-scheme';
|
|
3
|
+
import { DependencyContainer } from 'hidi';
|
|
3
4
|
export declare abstract class BaseApiRoute {
|
|
4
5
|
path: string;
|
|
5
6
|
fullPath: string;
|
|
6
7
|
name: string;
|
|
7
8
|
description?: string;
|
|
8
9
|
routeType: 'router' | 'endpoint';
|
|
10
|
+
/**
|
|
11
|
+
* Dependency container for this route
|
|
12
|
+
*/
|
|
13
|
+
container: DependencyContainer;
|
|
9
14
|
/**
|
|
10
15
|
* Optional array of Express middleware to apply
|
|
11
16
|
*/
|
|
@@ -21,7 +26,8 @@ export declare abstract class BaseApiRoute {
|
|
|
21
26
|
* @internal
|
|
22
27
|
*/
|
|
23
28
|
parentRoute?: BaseApiRoute;
|
|
24
|
-
|
|
29
|
+
register(_parentRouter: ExpressRouter, _parentPath: string): Promise<void>;
|
|
30
|
+
inject(): void;
|
|
25
31
|
getName(): string;
|
|
26
32
|
registerRoutePath(parentPath: string): void;
|
|
27
33
|
/**
|
|
@@ -31,6 +37,4 @@ export declare abstract class BaseApiRoute {
|
|
|
31
37
|
*/
|
|
32
38
|
getEffectiveAuthentication(): AuthenticationScheme | undefined | null;
|
|
33
39
|
}
|
|
34
|
-
export type ApiRoute =
|
|
35
|
-
new (): BaseApiRoute;
|
|
36
|
-
};
|
|
40
|
+
export type ApiRoute = new (...params: ConstructorParameters<typeof BaseApiRoute>) => BaseApiRoute;
|
package/router/base.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseApiRoute = void 0;
|
|
4
|
+
const hidi_1 = require("hidi");
|
|
4
5
|
class BaseApiRoute {
|
|
5
6
|
path;
|
|
6
7
|
fullPath;
|
|
7
8
|
name;
|
|
8
9
|
description;
|
|
9
10
|
routeType;
|
|
11
|
+
/**
|
|
12
|
+
* Dependency container for this route
|
|
13
|
+
*/
|
|
14
|
+
container = new hidi_1.DependencyContainer();
|
|
10
15
|
/**
|
|
11
16
|
* Optional array of Express middleware to apply
|
|
12
17
|
*/
|
|
@@ -23,6 +28,15 @@ class BaseApiRoute {
|
|
|
23
28
|
*/
|
|
24
29
|
// eslint-disable-next-line no-use-before-define
|
|
25
30
|
parentRoute;
|
|
31
|
+
async register(_parentRouter, _parentPath) {
|
|
32
|
+
if (this.authentication !== undefined) {
|
|
33
|
+
this.container.register('auth', this.authentication);
|
|
34
|
+
}
|
|
35
|
+
this.inject();
|
|
36
|
+
}
|
|
37
|
+
inject() {
|
|
38
|
+
// Override in subclasses to register dependencies
|
|
39
|
+
}
|
|
26
40
|
getName() {
|
|
27
41
|
return this.name || this.constructor.name;
|
|
28
42
|
}
|
|
@@ -44,16 +58,7 @@ class BaseApiRoute {
|
|
|
44
58
|
* @returns The authentication scheme to use, or undefined if public
|
|
45
59
|
*/
|
|
46
60
|
getEffectiveAuthentication() {
|
|
47
|
-
|
|
48
|
-
if (this.authentication !== undefined) {
|
|
49
|
-
return this.authentication;
|
|
50
|
-
}
|
|
51
|
-
// Otherwise, cascade to parent
|
|
52
|
-
if (this.parentRoute) {
|
|
53
|
-
return this.parentRoute.getEffectiveAuthentication();
|
|
54
|
-
}
|
|
55
|
-
// No authentication at any level
|
|
56
|
-
return undefined;
|
|
61
|
+
return this.container.get('auth');
|
|
57
62
|
}
|
|
58
63
|
}
|
|
59
64
|
exports.BaseApiRoute = BaseApiRoute;
|
package/router/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/router/base.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/router/base.ts"],"names":[],"mappings":";;;AAEA,+BAA2C;AAE3C,MAAsB,YAAY;IAC1B,IAAI,CAAS;IACb,QAAQ,CAAS;IACjB,IAAI,CAAS;IACb,WAAW,CAAU;IACrB,SAAS,CAAwB;IAExC;;OAEG;IACI,SAAS,GAAwB,IAAI,0BAAmB,EAAE,CAAC;IAElE;;OAEG;IACI,UAAU,GAAqB,EAAE,CAAC;IAEzC;;;;OAIG;IACI,cAAc,CAA+B;IAEpD;;;OAGG;IACH,gDAAgD;IACzC,WAAW,CAAgB;IAE3B,KAAK,CAAC,QAAQ,CACpB,aAA4B,EAC5B,WAAmB;QAEnB,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAEM,MAAM;QACZ,kDAAkD;IACnD,CAAC;IAEM,OAAO;QACb,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC3C,CAAC;IAEM,iBAAiB,CAAC,UAAkB;QAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QAChB,CAAC;aACI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC;QAED,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACI,0BAA0B;QAIhC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;CACD;AA5ED,oCA4EC"}
|
package/router/endpoint.d.ts
CHANGED
|
@@ -43,6 +43,4 @@ export declare abstract class BaseApiEndpoint extends BaseApiRoute {
|
|
|
43
43
|
abstract handle(request: ApiRequest, response: ApiResponse, next: ApiNextFunction): Promise<ApiResponseData>;
|
|
44
44
|
checkRequest(request: ApiRequest): Promise<void>;
|
|
45
45
|
}
|
|
46
|
-
export type ApiEndpoint =
|
|
47
|
-
new (): BaseApiEndpoint;
|
|
48
|
-
};
|
|
46
|
+
export type ApiEndpoint = new (...params: ConstructorParameters<typeof BaseApiEndpoint>) => BaseApiEndpoint;
|
package/router/endpoint.js
CHANGED
|
@@ -44,6 +44,7 @@ class BaseApiEndpoint extends base_1.BaseApiRoute {
|
|
|
44
44
|
return this.tag || this.constructor.name.replace(/Endpoint$/, '');
|
|
45
45
|
}
|
|
46
46
|
async register(parentRouter, parentPath) {
|
|
47
|
+
await super.register(parentRouter, parentPath);
|
|
47
48
|
if (!this.name) {
|
|
48
49
|
this.name = this.constructor.name.replace(/Endpoint$/, '');
|
|
49
50
|
}
|
package/router/endpoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/router/endpoint.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/router/endpoint.ts"],"names":[],"mappings":"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"}
|
package/router/router.js
CHANGED
|
@@ -13,6 +13,7 @@ class BaseApiRouter extends base_1.BaseApiRoute {
|
|
|
13
13
|
return this.name || this.constructor.name.replace(/Router$/, '');
|
|
14
14
|
}
|
|
15
15
|
async register(parent, parentPath) {
|
|
16
|
+
await super.register(parent, parentPath);
|
|
16
17
|
this.router = (0, express_1.Router)();
|
|
17
18
|
this.registerRoutePath(parentPath);
|
|
18
19
|
// Collect non-authentication middleware
|
|
@@ -32,7 +33,8 @@ class BaseApiRouter extends base_1.BaseApiRoute {
|
|
|
32
33
|
// First pass: register all endpoints and track their methods
|
|
33
34
|
for (const route of routes) {
|
|
34
35
|
const instance = new route();
|
|
35
|
-
// Set parent
|
|
36
|
+
// Set parent for auth and dependency cascading
|
|
37
|
+
instance.container.setParent(this.container);
|
|
36
38
|
instance.parentRoute = this;
|
|
37
39
|
if (instance.routeType === 'endpoint') {
|
|
38
40
|
instance.tag = tag;
|
package/router/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/router/router.ts"],"names":[],"mappings":";;;AAAA,qCAAkD;AAClD,iCAAgD;AAChD,yCAA6D;AAE7D,MAAsB,aAAc,SAAQ,mBAAY;IAC9C,SAAS,GAAG,QAAiB,CAAC;IAC7B,MAAM,CAAgB;IAEzB,gBAAgB,GAAmB,EAAE,CAAC;IAEnC,cAAc,GAAoC,EAAE,CAAC;IAExD,MAAM;QACZ,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/router/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { ApiRequest, BaseApiEndpoint } from './endpoint';
|
|
|
4
4
|
* Runs a valsan ObjectValSan on a value,
|
|
5
5
|
* throws with error details if validation fails.
|
|
6
6
|
*/
|
|
7
|
-
export declare function runSanitizer(sanitizer: ObjectSanitizer | ObjectValSan | ArrayValSan, value: any): Promise<Record<string, unknown> |
|
|
7
|
+
export declare function runSanitizer(sanitizer: ObjectSanitizer | ObjectValSan | ArrayValSan, value: any): Promise<unknown[] | Record<string, unknown> | undefined>;
|
|
8
8
|
/**
|
|
9
9
|
* Validates and sanitizes request parts
|
|
10
10
|
* (body, query, params, headers) if the
|
package/server/server.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import express from 'express';
|
|
3
3
|
import http from 'http';
|
|
4
|
+
import { DependencyContainer } from 'hidi';
|
|
4
5
|
import { RestServerOptions } from './server-options';
|
|
5
6
|
import { ApiRouter, BaseApiRouter } from '../router';
|
|
6
7
|
import { AuthenticationScheme } from '../authentication/authentication-scheme';
|
|
@@ -11,6 +12,10 @@ export declare abstract class RestServer {
|
|
|
11
12
|
version: string;
|
|
12
13
|
router: ApiRouter;
|
|
13
14
|
routerInstance: BaseApiRouter;
|
|
15
|
+
/**
|
|
16
|
+
* Dependency container for the server
|
|
17
|
+
*/
|
|
18
|
+
container: DependencyContainer;
|
|
14
19
|
readonly port: number;
|
|
15
20
|
readonly maxPayloadSizeMB: number;
|
|
16
21
|
readonly maxUrlEncodedSizeMB: number;
|
|
@@ -23,6 +28,7 @@ export declare abstract class RestServer {
|
|
|
23
28
|
constructor(options: Partial<RestServerOptions>);
|
|
24
29
|
start(): Promise<void>;
|
|
25
30
|
stop(): Promise<void>;
|
|
31
|
+
inject(): Promise<void>;
|
|
26
32
|
protected createRouter(): Promise<void>;
|
|
27
33
|
protected registerAuthentication(): Promise<void>;
|
|
28
34
|
protected registerRoutes(): Promise<void>;
|
package/server/server.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.RestServer = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const express_1 = tslib_1.__importDefault(require("express"));
|
|
6
6
|
const cors_1 = tslib_1.__importDefault(require("cors"));
|
|
7
|
+
const hidi_1 = require("hidi");
|
|
7
8
|
const server_options_1 = require("./server-options");
|
|
8
9
|
const error_1 = require("../error");
|
|
9
10
|
const routes_1 = require("../oas/routes");
|
|
@@ -13,6 +14,10 @@ class RestServer {
|
|
|
13
14
|
version = '';
|
|
14
15
|
router;
|
|
15
16
|
routerInstance;
|
|
17
|
+
/**
|
|
18
|
+
* Dependency container for the server
|
|
19
|
+
*/
|
|
20
|
+
container = new hidi_1.DependencyContainer();
|
|
16
21
|
port;
|
|
17
22
|
maxPayloadSizeMB;
|
|
18
23
|
maxUrlEncodedSizeMB;
|
|
@@ -36,6 +41,7 @@ class RestServer {
|
|
|
36
41
|
this.authentication = options.authentication;
|
|
37
42
|
}
|
|
38
43
|
async start() {
|
|
44
|
+
await this.inject();
|
|
39
45
|
await this.setupExpress();
|
|
40
46
|
await this.createRouter();
|
|
41
47
|
await this.registerAuthentication();
|
|
@@ -50,8 +56,12 @@ class RestServer {
|
|
|
50
56
|
this.listener.close();
|
|
51
57
|
}
|
|
52
58
|
}
|
|
59
|
+
async inject() {
|
|
60
|
+
// Register dependencies
|
|
61
|
+
}
|
|
53
62
|
async createRouter() {
|
|
54
63
|
this.routerInstance = new this.router();
|
|
64
|
+
this.routerInstance.container.setParent(this.container);
|
|
55
65
|
}
|
|
56
66
|
async registerAuthentication() {
|
|
57
67
|
// Set server authentication on router instance if not already set
|
package/server/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":";;;;AAAA,8DAA8B;AAC9B,wDAAwB;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SessionDriver, SessionRequest } from '../session-driver';
|
|
2
|
+
import { Session } from '../session';
|
|
3
|
+
/**
|
|
4
|
+
* In-memory session driver implementation for development and testing
|
|
5
|
+
*/
|
|
6
|
+
export declare class InMemorySessionDriver extends SessionDriver {
|
|
7
|
+
protected sessions: Map<string, Session>;
|
|
8
|
+
/**
|
|
9
|
+
* Register a session
|
|
10
|
+
*/
|
|
11
|
+
createSession(session: Session): void;
|
|
12
|
+
/**
|
|
13
|
+
* Clear all sessions
|
|
14
|
+
*/
|
|
15
|
+
clear(): void;
|
|
16
|
+
/**
|
|
17
|
+
* Get the number of registered sessions
|
|
18
|
+
*/
|
|
19
|
+
getSessionCount(): number;
|
|
20
|
+
getSession(request: SessionRequest): Promise<Session>;
|
|
21
|
+
checkSession(request: SessionRequest): Promise<void>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InMemorySessionDriver = void 0;
|
|
4
|
+
const session_driver_1 = require("../session-driver");
|
|
5
|
+
/**
|
|
6
|
+
* In-memory session driver implementation for development and testing
|
|
7
|
+
*/
|
|
8
|
+
class InMemorySessionDriver extends session_driver_1.SessionDriver {
|
|
9
|
+
sessions = new Map();
|
|
10
|
+
/**
|
|
11
|
+
* Register a session
|
|
12
|
+
*/
|
|
13
|
+
createSession(session) {
|
|
14
|
+
this.sessions.set(session.id, session);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Clear all sessions
|
|
18
|
+
*/
|
|
19
|
+
clear() {
|
|
20
|
+
this.sessions.clear();
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get the number of registered sessions
|
|
24
|
+
*/
|
|
25
|
+
getSessionCount() {
|
|
26
|
+
return this.sessions.size;
|
|
27
|
+
}
|
|
28
|
+
async getSession(request) {
|
|
29
|
+
const sessionId = request.sessionId || 'default-session';
|
|
30
|
+
const session = this.sessions.get(sessionId) || {
|
|
31
|
+
id: sessionId,
|
|
32
|
+
};
|
|
33
|
+
return session;
|
|
34
|
+
}
|
|
35
|
+
async checkSession(request) {
|
|
36
|
+
const sessionId = request.sessionId;
|
|
37
|
+
if (!sessionId) {
|
|
38
|
+
throw new Error('No session ID provided');
|
|
39
|
+
}
|
|
40
|
+
if (!this.sessions.has(sessionId)) {
|
|
41
|
+
throw new Error('Session not found');
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.InMemorySessionDriver = InMemorySessionDriver;
|
|
46
|
+
//# sourceMappingURL=in-memory-session-driver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-session-driver.js","sourceRoot":"","sources":["../../../../src/session/drivers/in-memory-session-driver.ts"],"names":[],"mappings":";;;AAAA,sDAAkE;AAGlE;;GAEG;AACH,MAAa,qBAAsB,SAAQ,8BAAa;IAC7C,QAAQ,GAAyB,IAAI,GAAG,EAAE,CAAC;IAErD;;OAEG;IACI,aAAa,CAAC,OAAgB;QACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,KAAK;QACX,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,eAAe;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAuB;QACvC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,iBAAiB,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI;YAC/C,EAAE,EAAE,SAAS;SACb,CAAC;QAEF,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAuB;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACtC,CAAC;IACF,CAAC;CACD;AA3CD,sDA2CC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { InMemorySessionDriver } from './in-memory-session-driver';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InMemorySessionDriver = void 0;
|
|
4
|
+
var in_memory_session_driver_1 = require("./in-memory-session-driver");
|
|
5
|
+
Object.defineProperty(exports, "InMemorySessionDriver", { enumerable: true, get: function () { return in_memory_session_driver_1.InMemorySessionDriver; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/session/drivers/index.ts"],"names":[],"mappings":";;;AAAA,uEAAmE;AAA1D,iIAAA,qBAAqB,OAAA"}
|
package/session/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InMemorySessionDriver = exports.SessionDriver = void 0;
|
|
4
|
+
var session_driver_1 = require("./session-driver");
|
|
5
|
+
Object.defineProperty(exports, "SessionDriver", { enumerable: true, get: function () { return session_driver_1.SessionDriver; } });
|
|
6
|
+
var drivers_1 = require("./drivers");
|
|
7
|
+
Object.defineProperty(exports, "InMemorySessionDriver", { enumerable: true, get: function () { return drivers_1.InMemorySessionDriver; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/session/index.ts"],"names":[],"mappings":";;;AACA,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,qCAAkD;AAAzC,gHAAA,qBAAqB,OAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Session } from './session';
|
|
2
|
+
export interface SessionRequest {
|
|
3
|
+
sessionId?: string;
|
|
4
|
+
}
|
|
5
|
+
export declare abstract class SessionDriver {
|
|
6
|
+
abstract createSession(session: Session): void;
|
|
7
|
+
abstract clear(): void;
|
|
8
|
+
abstract getSession(options: SessionRequest): Promise<Session>;
|
|
9
|
+
abstract checkSession(options: SessionRequest): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-driver.js","sourceRoot":"","sources":["../../../src/session/session-driver.ts"],"names":[],"mappings":";;;AAMA,MAAsB,aAAa;CAKlC;AALD,sCAKC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/session/session.ts"],"names":[],"mappings":""}
|