exisjs 0.7.4 → 0.7.6
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/dist/cli/commands/build.d.ts +4 -2
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +80 -22
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +229 -64
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +5 -2
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/generate.d.ts +1 -0
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +25 -0
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +65 -15
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/index.js +20 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/manifest.d.ts.map +1 -1
- package/dist/cli/manifest.js +118 -17
- package/dist/cli/manifest.js.map +1 -1
- package/dist/cli/resolve-aliases.d.ts +1 -1
- package/dist/cli/resolve-aliases.d.ts.map +1 -1
- package/dist/cli/resolve-aliases.js +30 -13
- package/dist/cli/resolve-aliases.js.map +1 -1
- package/dist/config/config.d.ts +3 -1
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js.map +1 -1
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +8 -0
- package/dist/config/env.js.map +1 -1
- package/dist/config/types.d.ts +2 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/decorators/constants.d.ts +2 -0
- package/dist/decorators/constants.d.ts.map +1 -1
- package/dist/decorators/middleware.d.ts +65 -2
- package/dist/decorators/middleware.d.ts.map +1 -1
- package/dist/decorators/middleware.js +148 -62
- package/dist/decorators/middleware.js.map +1 -1
- package/dist/decorators/params.d.ts +5 -0
- package/dist/decorators/params.d.ts.map +1 -1
- package/dist/decorators/params.js +11 -1
- package/dist/decorators/params.js.map +1 -1
- package/dist/decorators/response.d.ts.map +1 -1
- package/dist/decorators/response.js +32 -22
- package/dist/decorators/response.js.map +1 -1
- package/dist/di/container.d.ts.map +1 -1
- package/dist/di/container.js +6 -1
- package/dist/di/container.js.map +1 -1
- package/dist/docs/content/boundaries.mdx +33 -3
- package/dist/docs/content/cli/commands.mdx +1 -1
- package/dist/docs/content/config.mdx +26 -0
- package/dist/docs/content/controllers.mdx +127 -10
- package/dist/docs/content/decorators.mdx +22 -4
- package/dist/docs/content/errors.mdx +38 -2
- package/dist/docs/content/introduction.mdx +7 -7
- package/dist/docs/content/middleware.mdx +269 -6
- package/dist/docs/content/requests.mdx +217 -10
- package/dist/docs/content/responses.mdx +323 -34
- package/dist/docs/content/routing.mdx +46 -0
- package/dist/docs/content/security.mdx +17 -4
- package/dist/docs/content/structure.mdx +91 -12
- package/dist/docs/content/validation.mdx +226 -11
- package/dist/docs/reference/context.mdx +11 -0
- package/dist/docs/reference/decorators.mdx +14 -4
- package/dist/docs/reference/error.mdx +44 -0
- package/dist/docs/reference/logger.mdx +175 -43
- package/dist/docs/reference/middleware.mdx +31 -0
- package/dist/docs/reference/router.mdx +22 -0
- package/dist/docs/reference/validator.mdx +83 -23
- package/dist/error/errors.d.ts.map +1 -1
- package/dist/error/errors.js +95 -43
- package/dist/error/errors.js.map +1 -1
- package/dist/error/index.d.ts +1 -0
- package/dist/error/index.d.ts.map +1 -1
- package/dist/error/index.js +11 -1
- package/dist/error/index.js.map +1 -1
- package/dist/error/overlay.d.ts +42 -0
- package/dist/error/overlay.d.ts.map +1 -0
- package/dist/error/overlay.js +306 -0
- package/dist/error/overlay.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/start-server.js +49 -7
- package/dist/lib/start-server.js.map +1 -1
- package/dist/logger/index.d.ts +1 -1
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +9 -1
- package/dist/logger/index.js.map +1 -1
- package/dist/middleware/guard.d.ts +2 -2
- package/dist/middleware/guard.d.ts.map +1 -1
- package/dist/middleware/guard.js.map +1 -1
- package/dist/middleware/ip-filter.d.ts +1 -0
- package/dist/middleware/ip-filter.d.ts.map +1 -1
- package/dist/middleware/ip-filter.js +2 -0
- package/dist/middleware/ip-filter.js.map +1 -1
- package/dist/middleware/middleware.d.ts +2 -2
- package/dist/middleware/middleware.d.ts.map +1 -1
- package/dist/middleware/middleware.js +20 -2
- package/dist/middleware/middleware.js.map +1 -1
- package/dist/middleware/rate-limit.d.ts.map +1 -1
- package/dist/middleware/rate-limit.js +9 -0
- package/dist/middleware/rate-limit.js.map +1 -1
- package/dist/middleware/security.d.ts +43 -1
- package/dist/middleware/security.d.ts.map +1 -1
- package/dist/middleware/security.js +101 -0
- package/dist/middleware/security.js.map +1 -1
- package/dist/response/index.d.ts +229 -6
- package/dist/response/index.d.ts.map +1 -1
- package/dist/response/index.js +272 -2
- package/dist/response/index.js.map +1 -1
- package/dist/router/boundary.d.ts +25 -5
- package/dist/router/boundary.d.ts.map +1 -1
- package/dist/router/boundary.js.map +1 -1
- package/dist/router/controller-registrar.d.ts.map +1 -1
- package/dist/router/controller-registrar.js +56 -1
- package/dist/router/controller-registrar.js.map +1 -1
- package/dist/router/index.d.ts +2 -2
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +2 -1
- package/dist/router/index.js.map +1 -1
- package/dist/router/route-builder.d.ts +70 -36
- package/dist/router/route-builder.d.ts.map +1 -1
- package/dist/router/route-builder.js +13 -15
- package/dist/router/route-builder.js.map +1 -1
- package/dist/router/route-scanner.d.ts +1 -0
- package/dist/router/route-scanner.d.ts.map +1 -1
- package/dist/router/route-scanner.js +217 -10
- package/dist/router/route-scanner.js.map +1 -1
- package/dist/router/router.d.ts.map +1 -1
- package/dist/router/router.js +35 -17
- package/dist/router/router.js.map +1 -1
- package/dist/router/types.d.ts +11 -1
- package/dist/router/types.d.ts.map +1 -1
- package/dist/sanitize/index.d.ts +6 -6
- package/dist/sanitize/index.d.ts.map +1 -1
- package/dist/sanitize/index.js +8 -8
- package/dist/sanitize/index.js.map +1 -1
- package/dist/server/app.d.ts +2 -0
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +14 -0
- package/dist/server/app.js.map +1 -1
- package/dist/server/bootstrapper.d.ts.map +1 -1
- package/dist/server/bootstrapper.js +91 -30
- package/dist/server/bootstrapper.js.map +1 -1
- package/dist/server/cluster.d.ts.map +1 -1
- package/dist/server/cluster.js +13 -2
- package/dist/server/cluster.js.map +1 -1
- package/dist/server/context.d.ts +8 -0
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/context.js +50 -6
- package/dist/server/context.js.map +1 -1
- package/dist/server/engines/node-engine.d.ts.map +1 -1
- package/dist/server/engines/node-engine.js +1 -0
- package/dist/server/engines/node-engine.js.map +1 -1
- package/dist/server/lifecycle.d.ts +22 -0
- package/dist/server/lifecycle.d.ts.map +1 -0
- package/dist/server/lifecycle.js +106 -0
- package/dist/server/lifecycle.js.map +1 -0
- package/dist/server/request-handler.d.ts +1 -0
- package/dist/server/request-handler.d.ts.map +1 -1
- package/dist/server/request-handler.js +42 -18
- package/dist/server/request-handler.js.map +1 -1
- package/dist/server/request.d.ts +6 -0
- package/dist/server/request.d.ts.map +1 -1
- package/dist/server/request.js +112 -33
- package/dist/server/request.js.map +1 -1
- package/dist/server/response.d.ts +13 -2
- package/dist/server/response.d.ts.map +1 -1
- package/dist/server/response.js +250 -10
- package/dist/server/response.js.map +1 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +6 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/mocks.d.ts.map +1 -1
- package/dist/testing/mocks.js +15 -3
- package/dist/testing/mocks.js.map +1 -1
- package/dist/utils/logger.d.ts +8 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +184 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/validator/tex-types.d.ts +2 -1
- package/dist/validator/tex-types.d.ts.map +1 -1
- package/dist/validator/tex-types.js +2 -1
- package/dist/validator/tex-types.js.map +1 -1
- package/dist/validator/tex.d.ts +38 -22
- package/dist/validator/tex.d.ts.map +1 -1
- package/dist/validator/tex.js +490 -40
- package/dist/validator/tex.js.map +1 -1
- package/package.json +10 -10
- package/dist/dev/error-overlay.d.ts +0 -3
- package/dist/dev/error-overlay.d.ts.map +0 -1
- package/dist/dev/error-overlay.js +0 -118
- package/dist/dev/error-overlay.js.map +0 -1
|
@@ -1,46 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BlockSuspiciousProbes = void 0;
|
|
36
4
|
exports.Use = Use;
|
|
37
5
|
exports.UseGuards = UseGuards;
|
|
38
6
|
exports.UseInterceptors = UseInterceptors;
|
|
39
7
|
exports.UseFilters = UseFilters;
|
|
40
8
|
exports.Idempotent = Idempotent;
|
|
41
9
|
exports.Timeout = Timeout;
|
|
10
|
+
exports.RateLimit = RateLimit;
|
|
11
|
+
exports.Cors = Cors;
|
|
12
|
+
exports.IpFilter = IpFilter;
|
|
13
|
+
exports.Compress = Compress;
|
|
14
|
+
exports.Dedupe = Dedupe;
|
|
15
|
+
exports.BlockProbes = BlockProbes;
|
|
42
16
|
const constants_1 = require("./constants");
|
|
43
17
|
const metadata_1 = require("./core/metadata");
|
|
18
|
+
const rate_limit_1 = require("../middleware/rate-limit");
|
|
19
|
+
const middleware_1 = require("../middleware/middleware");
|
|
20
|
+
const security_1 = require("../middleware/security");
|
|
21
|
+
const ip_filter_1 = require("../middleware/ip-filter");
|
|
22
|
+
const compression_1 = require("../middleware/compression");
|
|
23
|
+
const dedupe_1 = require("../middleware/dedupe");
|
|
24
|
+
const idempotency_1 = require("../middleware/idempotency");
|
|
25
|
+
const security_2 = require("../middleware/security");
|
|
44
26
|
/**
|
|
45
27
|
* Classifies a handler item into middleware, guard, interceptor, or filter.
|
|
46
28
|
*/
|
|
@@ -164,9 +146,45 @@ function UseInterceptors(...interceptors) {
|
|
|
164
146
|
function UseFilters(...filters) {
|
|
165
147
|
return Use(...filters);
|
|
166
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Helper to apply a middleware factory at either class or method level.
|
|
151
|
+
*/
|
|
152
|
+
function applyMiddlewareDecorator(target, contextOrPropertyKey, descriptor, middlewareFactory, unshift = false) {
|
|
153
|
+
const isStandard = typeof contextOrPropertyKey === 'object' && contextOrPropertyKey !== null;
|
|
154
|
+
const kind = isStandard ? contextOrPropertyKey.kind : undefined;
|
|
155
|
+
if (kind === 'class' ||
|
|
156
|
+
(!isStandard && typeof target === 'function' && !contextOrPropertyKey)) {
|
|
157
|
+
const proto = target.prototype || target;
|
|
158
|
+
const classMiddlewares = metadata_1.MetadataEngine.init(proto, constants_1.MIDDLEWARE_REGISTRY, { _classMiddlewares: [] });
|
|
159
|
+
if (!classMiddlewares._classMiddlewares) {
|
|
160
|
+
classMiddlewares._classMiddlewares = [];
|
|
161
|
+
}
|
|
162
|
+
if (unshift) {
|
|
163
|
+
classMiddlewares._classMiddlewares.unshift(middlewareFactory);
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
classMiddlewares._classMiddlewares.push(middlewareFactory);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
const fn = isStandard
|
|
171
|
+
? target
|
|
172
|
+
: descriptor
|
|
173
|
+
? descriptor.value
|
|
174
|
+
: target[contextOrPropertyKey];
|
|
175
|
+
const methodMiddlewares = metadata_1.MetadataEngine.init(fn, constants_1.METHOD_MIDDLEWARES, []);
|
|
176
|
+
if (unshift) {
|
|
177
|
+
methodMiddlewares.unshift(middlewareFactory);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
methodMiddlewares.push(middlewareFactory);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
167
184
|
/**
|
|
168
185
|
* Idempotency Decorator.
|
|
169
186
|
* Caches responses based on the provided Idempotency-Key header.
|
|
187
|
+
* Works on both Controller classes and individual route methods.
|
|
170
188
|
*
|
|
171
189
|
* Example:
|
|
172
190
|
* @Post('/checkout')
|
|
@@ -174,26 +192,14 @@ function UseFilters(...filters) {
|
|
|
174
192
|
* checkout() {}
|
|
175
193
|
*/
|
|
176
194
|
function Idempotent(options = {}) {
|
|
195
|
+
const handler = (0, idempotency_1.idempotent)(options);
|
|
177
196
|
return function (target, contextOrPropertyKey, descriptor) {
|
|
178
|
-
|
|
179
|
-
const fn = isStandard
|
|
180
|
-
? target
|
|
181
|
-
: descriptor
|
|
182
|
-
? descriptor.value
|
|
183
|
-
: target[contextOrPropertyKey];
|
|
184
|
-
const methodMiddlewares = metadata_1.MetadataEngine.init(fn, constants_1.METHOD_MIDDLEWARES, []);
|
|
185
|
-
// Defer import to avoid circular dependencies
|
|
186
|
-
const middlewareProxy = async (req, res, next) => {
|
|
187
|
-
const { Idempotent: IdempotentMiddleware } = await Promise.resolve().then(() => __importStar(require('../middleware/idempotency')));
|
|
188
|
-
const handler = IdempotentMiddleware(options);
|
|
189
|
-
return handler(req, res, next);
|
|
190
|
-
};
|
|
191
|
-
methodMiddlewares.push(middlewareProxy);
|
|
197
|
+
applyMiddlewareDecorator(target, contextOrPropertyKey, descriptor, handler);
|
|
192
198
|
};
|
|
193
199
|
}
|
|
194
200
|
/**
|
|
195
|
-
* Route-Level Timeout Decorator.
|
|
196
|
-
* Configures an explicit timeout override for a
|
|
201
|
+
* Route-Level / Controller-Level Timeout Decorator.
|
|
202
|
+
* Configures an explicit timeout override for a route method or entire controller.
|
|
197
203
|
*
|
|
198
204
|
* Example:
|
|
199
205
|
* @Post('/heavy-task')
|
|
@@ -201,20 +207,100 @@ function Idempotent(options = {}) {
|
|
|
201
207
|
* heavyTask() {}
|
|
202
208
|
*/
|
|
203
209
|
function Timeout(msOrOptions) {
|
|
210
|
+
const handler = (0, security_1.routeTimeout)(msOrOptions);
|
|
204
211
|
return function (target, contextOrPropertyKey, descriptor) {
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
212
|
+
applyMiddlewareDecorator(target, contextOrPropertyKey, descriptor, handler, true);
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Rate Limiting Decorator.
|
|
217
|
+
* Enforces request rate limits on a Controller class or route method.
|
|
218
|
+
*
|
|
219
|
+
* Example:
|
|
220
|
+
* @Get('/sensitive-data')
|
|
221
|
+
* @RateLimit({ max: 10, windowMs: 60000 })
|
|
222
|
+
* getSensitiveData() {}
|
|
223
|
+
*/
|
|
224
|
+
function RateLimit(options = {}) {
|
|
225
|
+
const handler = (0, rate_limit_1.rateLimit)(options);
|
|
226
|
+
return function (target, contextOrPropertyKey, descriptor) {
|
|
227
|
+
applyMiddlewareDecorator(target, contextOrPropertyKey, descriptor, handler);
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* CORS Decorator.
|
|
232
|
+
* Configures Cross-Origin Resource Sharing on a Controller class or route method.
|
|
233
|
+
*
|
|
234
|
+
* Example:
|
|
235
|
+
* @Get('/public-api')
|
|
236
|
+
* @Cors({ origin: '*' })
|
|
237
|
+
* getPublicData() {}
|
|
238
|
+
*/
|
|
239
|
+
function Cors(options = {}) {
|
|
240
|
+
const handler = (0, middleware_1.cors)(options);
|
|
241
|
+
return function (target, contextOrPropertyKey, descriptor) {
|
|
242
|
+
applyMiddlewareDecorator(target, contextOrPropertyKey, descriptor, handler, true);
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* IP Filter Decorator.
|
|
247
|
+
* Enforces IP/CIDR allowlist and denylist on a Controller class or route method.
|
|
248
|
+
*
|
|
249
|
+
* Example:
|
|
250
|
+
* @Controller('/admin')
|
|
251
|
+
* @IpFilter({ allow: ['127.0.0.1', '10.0.0.0/8'] })
|
|
252
|
+
* export class AdminController {}
|
|
253
|
+
*/
|
|
254
|
+
function IpFilter(options) {
|
|
255
|
+
const handler = (0, ip_filter_1.ipFilter)(options);
|
|
256
|
+
return function (target, contextOrPropertyKey, descriptor) {
|
|
257
|
+
applyMiddlewareDecorator(target, contextOrPropertyKey, descriptor, handler);
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Compression Decorator.
|
|
262
|
+
* Enables automatic gzip/brotli response compression on a Controller class or route method.
|
|
263
|
+
*
|
|
264
|
+
* Example:
|
|
265
|
+
* @Get('/large-dataset')
|
|
266
|
+
* @Compress()
|
|
267
|
+
* getDataset() {}
|
|
268
|
+
*/
|
|
269
|
+
function Compress() {
|
|
270
|
+
const handler = (0, compression_1.compression)();
|
|
271
|
+
return function (target, contextOrPropertyKey, descriptor) {
|
|
272
|
+
applyMiddlewareDecorator(target, contextOrPropertyKey, descriptor, handler);
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Request Deduplication Decorator.
|
|
277
|
+
* Prevents duplicate parallel requests sharing the same key.
|
|
278
|
+
*
|
|
279
|
+
* Example:
|
|
280
|
+
* @Post('/order/charge')
|
|
281
|
+
* @Dedupe({ keyGenerator: (req) => req.user?.id || req.ip })
|
|
282
|
+
* chargeOrder() {}
|
|
283
|
+
*/
|
|
284
|
+
function Dedupe(options) {
|
|
285
|
+
const handler = (0, dedupe_1.dedupeMiddleware)(options);
|
|
286
|
+
return function (target, contextOrPropertyKey, descriptor) {
|
|
287
|
+
applyMiddlewareDecorator(target, contextOrPropertyKey, descriptor, handler);
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Security Scanner Noise Suppression & Blackhole Decorator.
|
|
292
|
+
* Intercepts exploit probes (`.env`, `/.git`, `/.DS_Store`) and blackholes them.
|
|
293
|
+
*
|
|
294
|
+
* Example:
|
|
295
|
+
* @Controller('/api')
|
|
296
|
+
* @BlockProbes({ statusCode: 404, silent: true })
|
|
297
|
+
* export default class ApiController {}
|
|
298
|
+
*/
|
|
299
|
+
function BlockProbes(options) {
|
|
300
|
+
const handler = (0, security_2.blockSuspiciousProbes)(options);
|
|
301
|
+
return function (target, contextOrPropertyKey, descriptor) {
|
|
302
|
+
applyMiddlewareDecorator(target, contextOrPropertyKey, descriptor, handler);
|
|
218
303
|
};
|
|
219
304
|
}
|
|
305
|
+
exports.BlockSuspiciousProbes = BlockProbes;
|
|
220
306
|
//# sourceMappingURL=middleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/decorators/middleware.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/decorators/middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,11 @@ export declare const Next: () => ParameterDecorator;
|
|
|
43
43
|
export declare const Ip: () => ParameterDecorator;
|
|
44
44
|
export declare const UploadedFile: (nameOrPipe?: string | any, ...pipes: any[]) => ParameterDecorator;
|
|
45
45
|
export declare const UploadedFiles: (nameOrPipe?: string | any, ...pipes: any[]) => ParameterDecorator;
|
|
46
|
+
export declare const Cookies: (nameOrPipe?: string | any, ...pipes: any[]) => ParameterDecorator;
|
|
47
|
+
export declare const Cookie: (nameOrPipe?: string | any, ...pipes: any[]) => ParameterDecorator;
|
|
48
|
+
export declare const State: (nameOrPipe?: string | any, ...pipes: any[]) => ParameterDecorator;
|
|
49
|
+
export declare const AppCtx: () => ParameterDecorator;
|
|
50
|
+
export declare const Fields: (nameOrPipe?: string | any, ...pipes: any[]) => ParameterDecorator;
|
|
46
51
|
export declare const Res: (options?: {
|
|
47
52
|
passthrough?: boolean;
|
|
48
53
|
}) => any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/decorators/params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAS3C,MAAM,WAAW,2BAA2B;IAC1C,GAAG,EAAE,GAAG,CAAA;IACR,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,GAAG,CAAA;IACT,GAAG,EAAE,GAAG,CAAA;IACR,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC1B,YAAY,EAAE,MAAM;QAClB,UAAU,EAAE,MAAM,GAAG,CAAA;QACrB,WAAW,EAAE,MAAM,GAAG,CAAA;QACtB,OAAO,EAAE,MAAM,GAAG,CAAA;KACnB,CAAA;CACF;AAED,MAAM,MAAM,kBAAkB,CAAC,KAAK,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,CAC3D,IAAI,EAAE,KAAK,EACX,GAAG,EAAE,2BAA2B,KAC7B,OAAO,CAAA;AAEZ;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,GAAG,GAAG,EAC9C,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC,GACjC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,kBAAkB,CAAA;AACxD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,GAAG,GAAG,EACzB,GAAG,KAAK,EAAE,GAAG,EAAE,GACd,kBAAkB,CAAA;AA2DrB,eAAO,MAAM,KAAK,GAAI,aAAa,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,uBACX,CAAA;AAErD,eAAO,MAAM,IAAI,GAAI,aAAa,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,uBAO9D,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,aAAa,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,uBACZ,CAAA;AACtD,eAAO,MAAM,SAAS,GAAI,aAAa,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,uBAChB,CAAA;AACpD,eAAO,MAAM,GAAG,0BAAoC,CAAA;AACpD,eAAO,MAAM,MAAM,0BAAuC,CAAA;AAC1D,eAAO,MAAM,MAAM,0BAAuC,CAAA;AAC1D,eAAO,MAAM,OAAO,0BAAwC,CAAA;AAC5D,eAAO,MAAM,IAAI,0BAAqC,CAAA;AACtD,eAAO,MAAM,EAAE,0BAAmC,CAAA;AAClD,eAAO,MAAM,YAAY,GAAI,aAAa,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,uBACX,CAAA;AAC5D,eAAO,MAAM,aAAa,GAAI,aAAa,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,uBACX,CAAA;
|
|
1
|
+
{"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/decorators/params.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.QueryParam = exports.Res = exports.UploadedFiles = exports.UploadedFile = exports.Ip = exports.Next = exports.Session = exports.Stream = exports.Socket = exports.Req = exports.HostParam = exports.Headers = exports.Body = exports.Param = void 0;
|
|
3
|
+
exports.QueryParam = exports.Res = exports.Fields = exports.AppCtx = exports.State = exports.Cookie = exports.Cookies = exports.UploadedFiles = exports.UploadedFile = exports.Ip = exports.Next = exports.Session = exports.Stream = exports.Socket = exports.Req = exports.HostParam = exports.Headers = exports.Body = exports.Param = void 0;
|
|
4
4
|
exports.createParamDecorator = createParamDecorator;
|
|
5
5
|
exports.Query = Query;
|
|
6
6
|
const constants_1 = require("./constants");
|
|
@@ -69,6 +69,16 @@ const UploadedFile = (nameOrPipe, ...pipes) => createParamDecorator('uploadedFil
|
|
|
69
69
|
exports.UploadedFile = UploadedFile;
|
|
70
70
|
const UploadedFiles = (nameOrPipe, ...pipes) => createParamDecorator('uploadedFiles', nameOrPipe, ...pipes);
|
|
71
71
|
exports.UploadedFiles = UploadedFiles;
|
|
72
|
+
const Cookies = (nameOrPipe, ...pipes) => createParamDecorator('cookies', nameOrPipe, ...pipes);
|
|
73
|
+
exports.Cookies = Cookies;
|
|
74
|
+
const Cookie = (nameOrPipe, ...pipes) => createParamDecorator('cookie', nameOrPipe, ...pipes);
|
|
75
|
+
exports.Cookie = Cookie;
|
|
76
|
+
const State = (nameOrPipe, ...pipes) => createParamDecorator('state', nameOrPipe, ...pipes);
|
|
77
|
+
exports.State = State;
|
|
78
|
+
const AppCtx = () => createParamDecorator('app');
|
|
79
|
+
exports.AppCtx = AppCtx;
|
|
80
|
+
const Fields = (nameOrPipe, ...pipes) => createParamDecorator('fields', nameOrPipe, ...pipes);
|
|
81
|
+
exports.Fields = Fields;
|
|
72
82
|
const Res = (options) => {
|
|
73
83
|
return function (target, propertyKey, parameterIndex) {
|
|
74
84
|
const fn = target[propertyKey];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"params.js","sourceRoot":"","sources":["../../src/decorators/params.ts"],"names":[],"mappings":";;;AAoDA,oDAsDC;
|
|
1
|
+
{"version":3,"file":"params.js","sourceRoot":"","sources":["../../src/decorators/params.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/decorators/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAG3C;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAa1C;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,CAcvD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAClD,GAAG,CAaL;AAED,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,mBAAgB,KAAG,
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/decorators/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAG3C;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAa1C;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,CAcvD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAClD,GAAG,CAaL;AAED,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,mBAAgB,KAAG,GAexD,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,GAAG,aAAa,MAAM,EAAE,KAAG,GAmBtD,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,GAAG,OAAO,MAAM,EAAE,KAAG,GAkB1C,CAAA"}
|
|
@@ -55,38 +55,48 @@ function Returns(schema) {
|
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
57
|
const Redirect = (url, statusCode = 302) => {
|
|
58
|
-
return function (target, propertyKey) {
|
|
59
|
-
const
|
|
60
|
-
fn
|
|
61
|
-
|
|
58
|
+
return function (target, propertyKey, descriptor) {
|
|
59
|
+
const isStandard = typeof propertyKey === 'object' && propertyKey !== null;
|
|
60
|
+
const fn = isStandard
|
|
61
|
+
? target
|
|
62
|
+
: (descriptor?.value ?? (propertyKey ? target[propertyKey] : target));
|
|
63
|
+
if (fn) {
|
|
64
|
+
fn[constants_1.ROUTE_METADATA_PROP] = fn[constants_1.ROUTE_METADATA_PROP] || {};
|
|
65
|
+
fn[constants_1.ROUTE_METADATA_PROP].redirect = { url, statusCode };
|
|
66
|
+
}
|
|
62
67
|
};
|
|
63
68
|
};
|
|
64
69
|
exports.Redirect = Redirect;
|
|
65
70
|
const Permissions = (...permissions) => {
|
|
66
|
-
return function (target, propertyKey) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
fn
|
|
70
|
-
fn
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
proto[constants_1.ROUTE_METADATA_PROP].permissions = permissions;
|
|
71
|
+
return function (target, propertyKey, descriptor) {
|
|
72
|
+
const isStandard = typeof propertyKey === 'object' && propertyKey !== null;
|
|
73
|
+
if (propertyKey && !isStandard) {
|
|
74
|
+
const fn = descriptor?.value ?? target[propertyKey];
|
|
75
|
+
if (fn) {
|
|
76
|
+
fn[constants_1.ROUTE_METADATA_PROP] = fn[constants_1.ROUTE_METADATA_PROP] || {};
|
|
77
|
+
fn[constants_1.ROUTE_METADATA_PROP].permissions = permissions;
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
76
80
|
}
|
|
81
|
+
const proto = typeof target === 'function' ? target.prototype : target;
|
|
82
|
+
proto[constants_1.ROUTE_METADATA_PROP] = proto[constants_1.ROUTE_METADATA_PROP] || {};
|
|
83
|
+
proto[constants_1.ROUTE_METADATA_PROP].permissions = permissions;
|
|
77
84
|
};
|
|
78
85
|
};
|
|
79
86
|
exports.Permissions = Permissions;
|
|
80
87
|
const Hosts = (...hosts) => {
|
|
81
|
-
return function (target, propertyKey) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
fn
|
|
85
|
-
fn
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
88
|
+
return function (target, propertyKey, descriptor) {
|
|
89
|
+
const isStandard = typeof propertyKey === 'object' && propertyKey !== null;
|
|
90
|
+
if (propertyKey && !isStandard) {
|
|
91
|
+
const fn = descriptor?.value ?? target[propertyKey];
|
|
92
|
+
if (fn) {
|
|
93
|
+
fn[constants_1.ROUTE_METADATA_PROP] = fn[constants_1.ROUTE_METADATA_PROP] || {};
|
|
94
|
+
fn[constants_1.ROUTE_METADATA_PROP].hosts = hosts;
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
89
97
|
}
|
|
98
|
+
const proto = typeof target === 'function' ? target.prototype : target;
|
|
99
|
+
proto[constants_1.CONTROLLER_HOST] = hosts;
|
|
90
100
|
};
|
|
91
101
|
};
|
|
92
102
|
exports.Hosts = Hosts;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/decorators/response.ts"],"names":[],"mappings":";;;AAeA,4BAaC;AAED,wBAcC;AAcD,0BAeC;AAxED,2CAAkE;AAElE;;;;;;;;;;;GAWG;AACH,SAAgB,QAAQ,CAAC,IAAY;IACnC,OAAO,UACL,MAAW,EACX,oBAA4C,EAC5C,UAAqC;QAErC,MAAM,UAAU,GACd,OAAO,oBAAoB,KAAK,QAAQ,IAAI,oBAAoB,KAAK,IAAI,CAAA;QAC3E,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAA;QAEjD,EAAE,CAAC,+BAAmB,CAAC,GAAG,EAAE,CAAC,+BAAmB,CAAC,IAAI,EAAE,CAAA;QACvD,EAAE,CAAC,+BAAmB,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAA;IACzC,CAAC,CAAA;AACH,CAAC;AAED,SAAgB,MAAM,CAAC,IAAY,EAAE,KAAa;IAChD,OAAO,UACL,MAAW,EACX,oBAA4C,EAC5C,UAAqC;QAErC,MAAM,UAAU,GACd,OAAO,oBAAoB,KAAK,QAAQ,IAAI,oBAAoB,KAAK,IAAI,CAAA;QAC3E,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAA;QAEjD,EAAE,CAAC,+BAAmB,CAAC,GAAG,EAAE,CAAC,+BAAmB,CAAC,IAAI,EAAE,CAAA;QACvD,EAAE,CAAC,+BAAmB,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,+BAAmB,CAAC,CAAC,OAAO,IAAI,EAAE,CAAA;QACvE,EAAE,CAAC,+BAAmB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;IAC/C,CAAC,CAAA;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,OAAO,CACrB,MAAmD;IAEnD,OAAO,UACL,MAAW,EACX,oBAA4C,EAC5C,UAAqC;QAErC,MAAM,UAAU,GACd,OAAO,oBAAoB,KAAK,QAAQ,IAAI,oBAAoB,KAAK,IAAI,CAAA;QAC3E,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAA;QAEjD,EAAE,CAAC,+BAAmB,CAAC,GAAG,EAAE,CAAC,+BAAmB,CAAC,IAAI,EAAE,CAAA;QACvD,EAAE,CAAC,+BAAmB,CAAC,CAAC,cAAc,GAAG,MAAM,CAAA;IACjD,CAAC,CAAA;AACH,CAAC;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,UAAU,GAAG,GAAG,EAAO,EAAE;IAC7D,OAAO,
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/decorators/response.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/di/container.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,GAAG,IAC/B,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;AAE/C,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,CAAA;CAC9C;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,CAAE,SAAQ,YAAY;IACpD,QAAQ,EAAE,CAAC,CAAA;CACZ;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,CAAE,SAAQ,YAAY;IACtD,UAAU,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,CAAE,SAAQ,YAAY;IACpD,QAAQ,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;CACpC;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAC9B,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAE9D,eAAO,MAAM,eAAe,eAAqC,CAAA;AACjE,eAAO,MAAM,iBAAiB,eAAuC,CAAA;AACrE,eAAO,MAAM,cAAc,eAA6B,CAAA;AAExD,qBAAa,SAAS;IACpB,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,cAAc,CAAgC;IAEtD,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI;IAK1E,UAAU,IAAI,IAAI;IAIlB,gBAAgB,CAAC,CAAC,EAChB,WAAW,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EACtC,YAAY,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,GACrC,CAAC;IAmDJ,OAAO,CAAC,CAAC,EACP,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,YAAY,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,GACrC,CAAC;
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/di/container.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,GAAG,IAC/B,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;AAE/C,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,CAAA;CAC9C;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,CAAE,SAAQ,YAAY;IACpD,QAAQ,EAAE,CAAC,CAAA;CACZ;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,CAAE,SAAQ,YAAY;IACtD,UAAU,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,CAAE,SAAQ,YAAY;IACpD,QAAQ,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;CACpC;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAC9B,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAE9D,eAAO,MAAM,eAAe,eAAqC,CAAA;AACjE,eAAO,MAAM,iBAAiB,eAAuC,CAAA;AACrE,eAAO,MAAM,cAAc,eAA6B,CAAA;AAExD,qBAAa,SAAS;IACpB,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,cAAc,CAAgC;IAEtD,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI;IAK1E,UAAU,IAAI,IAAI;IAIlB,gBAAgB,CAAC,CAAC,EAChB,WAAW,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EACtC,YAAY,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,GACrC,CAAC;IAmDJ,OAAO,CAAC,CAAC,EACP,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,YAAY,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,GACrC,CAAC;CAkGL"}
|
package/dist/di/container.js
CHANGED
|
@@ -96,7 +96,12 @@ class Container {
|
|
|
96
96
|
}
|
|
97
97
|
let resolvedValue;
|
|
98
98
|
let scope = 'singleton';
|
|
99
|
-
if (
|
|
99
|
+
if (typeof provider === 'function') {
|
|
100
|
+
const classScope = provider.prototype?.[exports.SCOPE_METADATA] || 'singleton';
|
|
101
|
+
scope = classScope;
|
|
102
|
+
resolvedValue = this.instantiateClass(provider, requestCache);
|
|
103
|
+
}
|
|
104
|
+
else if (provider && typeof provider === 'object') {
|
|
100
105
|
if ('scope' in provider && provider.scope) {
|
|
101
106
|
scope = provider.scope;
|
|
102
107
|
}
|
package/dist/di/container.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/di/container.ts"],"names":[],"mappings":";;;AAsBa,QAAA,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;AACpD,QAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;AACxD,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;AAExD,MAAa,SAAS;IAAtB;QACU,cAAS,GAAG,IAAI,GAAG,EAAsB,CAAA;QACzC,mBAAc,GAAG,IAAI,GAAG,EAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/di/container.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,20 +21,22 @@ A `boundary.ts` has two distinct, independent parts:
|
|
|
21
21
|
| Signature | Detected as | Execution timing |
|
|
22
22
|
|---|---|---|
|
|
23
23
|
| `(req, res, next)` | Chain Step | Runs in file/declaration order, before the route |
|
|
24
|
+
| `beforeHandle(req, res)` | Boundary Guard Hook | Immediately before the route handler. Short-circuits on `false` or when sending headers |
|
|
25
|
+
| `afterHandle(req, res, data)` | Response Hook | Immediately after the route handler. Mutates returned payload or logs audit data |
|
|
24
26
|
| `(ctx, next)` — default export (functional) or class method `handle(ctx, next)` (OOP) | Request Wrapper | Wraps around all chain steps and the nested route/boundary |
|
|
25
27
|
|
|
26
28
|
---
|
|
27
29
|
|
|
28
30
|
## 1. Functional Paradigm
|
|
29
31
|
|
|
30
|
-
In functional style, export `config = defineBoundary(...)`, export named middleware functions `(req, res, next)` for chain steps, and optionally provide a `default export` function `(ctx, next)` as an onion-style wrapper.
|
|
32
|
+
In functional style, export `config = defineBoundary(...)`, export named middleware functions `(req, res, next)` for chain steps, and optionally provide a `default export` function `(ctx, next)` as an onion-style wrapper. You can also configure `beforeHandle` and `afterHandle` hooks directly inside `defineBoundary({ ... })`.
|
|
31
33
|
|
|
32
34
|
```typescript filename="src/http/admin/boundary.ts"
|
|
33
35
|
import { defineBoundary } from 'exisjs/router'
|
|
34
36
|
import type { Request, Response, Next, BoundaryContext } from 'exisjs/router'
|
|
35
37
|
import { UnauthorizedError } from 'exisjs/error'
|
|
36
38
|
|
|
37
|
-
// 1. Configuration (CORS, Headers, Exclusions, DI Providers)
|
|
39
|
+
// 1. Configuration (CORS, Headers, Exclusions, Hooks, DI Providers)
|
|
38
40
|
export const config = defineBoundary({
|
|
39
41
|
cors: {
|
|
40
42
|
origin: ['https://admin.yourdomain.com'],
|
|
@@ -47,6 +49,20 @@ export const config = defineBoundary({
|
|
|
47
49
|
'/admin/health',
|
|
48
50
|
{ path: '/admin/public/*', method: 'GET' }
|
|
49
51
|
],
|
|
52
|
+
|
|
53
|
+
// Pre-handler hook: Return false to reject with 403, or send custom response
|
|
54
|
+
beforeHandle(req, res) {
|
|
55
|
+
if (!req.headers['x-admin-token']) {
|
|
56
|
+
res.status(401).json({ error: 'Missing admin access token' })
|
|
57
|
+
return false
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
// Post-handler hook: Transform outgoing response payload or perform async audit
|
|
62
|
+
afterHandle(req, res, data) {
|
|
63
|
+
res.setHeader('X-Audited', 'true')
|
|
64
|
+
return { ...data, auditedAt: Date.now() }
|
|
65
|
+
},
|
|
50
66
|
})
|
|
51
67
|
|
|
52
68
|
// 2. Chain Step (auto-detected by (req, res, next) signature)
|
|
@@ -78,7 +94,7 @@ export default async function (ctx: BoundaryContext, next: Next) {
|
|
|
78
94
|
|
|
79
95
|
## 2. Class-Based (OOP) Paradigm
|
|
80
96
|
|
|
81
|
-
In OOP style, decorate a class with `@Boundary(...)`. Named methods taking `(req, res, next)` are auto-detected as chain steps, and a method named `handle(ctx, next)` serves as the request wrapper.
|
|
97
|
+
In OOP style, decorate a class with `@Boundary(...)`. Named methods taking `(req, res, next)` are auto-detected as chain steps, `beforeHandle(req, res)` and `afterHandle(req, res, data)` act as lifecycle hooks, and a method named `handle(ctx, next)` serves as the request wrapper.
|
|
82
98
|
|
|
83
99
|
```typescript filename="src/http/admin/boundary.ts"
|
|
84
100
|
import { Boundary } from 'exisjs/decorators'
|
|
@@ -96,6 +112,20 @@ import { UnauthorizedError } from 'exisjs/error'
|
|
|
96
112
|
exclude: ['/admin/health'],
|
|
97
113
|
})
|
|
98
114
|
export default class AdminBoundary {
|
|
115
|
+
// Pre-handler hook
|
|
116
|
+
beforeHandle(req: Request, res: Response) {
|
|
117
|
+
if (!req.headers['x-admin-token']) {
|
|
118
|
+
res.status(401).json({ error: 'Missing admin access token' })
|
|
119
|
+
return false
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// Post-handler hook
|
|
124
|
+
afterHandle(req: Request, res: Response, data: any) {
|
|
125
|
+
res.setHeader('X-Audited', 'true')
|
|
126
|
+
return { ...data, auditedAt: Date.now() }
|
|
127
|
+
}
|
|
128
|
+
|
|
99
129
|
// Chain step
|
|
100
130
|
requireAuth(req: Request, res: Response, next: Next) {
|
|
101
131
|
if (!req.headers['x-api-key']) {
|
|
@@ -132,7 +132,7 @@ $ npx exisjs routes [options]
|
|
|
132
132
|
|
|
133
133
|
### `exisjs init`
|
|
134
134
|
|
|
135
|
-
Initializes a new ExisJS project in the current directory using
|
|
135
|
+
Initializes a new ExisJS project in the current directory using `create-exisjs`.
|
|
136
136
|
|
|
137
137
|
```bash
|
|
138
138
|
$ npx exisjs init
|
|
@@ -219,3 +219,29 @@ If you are building a multi-tenant B2B application, do not boot multiple ExisJS
|
|
|
219
219
|
1. **Row-Level Tenancy (Recommended)**: Run a single `App` connected to a single database. Use request context or middleware to inject the `tenantId` and scope all queries via Prisma/SQL.
|
|
220
220
|
2. **Factory-Based Clients**: If you need true database-per-tenant isolation, do not use the zero-config singleton exports (like `import { db } from 'exisjs/prisma'`). Instead, manually construct the client factories inside a tenant-resolution middleware and attach them to the request context (`req.tenantDb`).
|
|
221
221
|
3. **Containerized Deployments**: Run separate Node.js processes (Docker containers) for each tenant, passing tenant-specific `DATABASE_URL`s to each container.
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## 9. Graceful Shutdown & Zero-Downtime Deployments
|
|
226
|
+
|
|
227
|
+
When deploying in Kubernetes, Docker Swarm, AWS ECS, or PM2, containers receive `SIGTERM` signals when being replaced. ExisJS handles graceful shutdown out of the box:
|
|
228
|
+
|
|
229
|
+
1. **Stops Accepting New Connections**: Immediately closes the server listener so load balancers stop routing new traffic to the terminating instance.
|
|
230
|
+
2. **Closes Idle Keep-Alive Connections**: Closes lingering idle HTTP keep-alive sockets instantly via `server.closeIdleConnections()`, preventing the process from hanging.
|
|
231
|
+
3. **Drains In-Flight Requests**: Grants in-flight requests time to finish before terminating.
|
|
232
|
+
4. **Lifecycle Teardown**: Automatically invokes your application's `onStop(app)` hook so you can cleanly disconnect databases, Redis pools, or message brokers.
|
|
233
|
+
|
|
234
|
+
```typescript filename="src/http/server.ts"
|
|
235
|
+
import { exis } from 'exisjs'
|
|
236
|
+
import { db } from './db'
|
|
237
|
+
|
|
238
|
+
export default exis({
|
|
239
|
+
async onStart(app) {
|
|
240
|
+
await db.connect()
|
|
241
|
+
},
|
|
242
|
+
async onStop(app) {
|
|
243
|
+
// Cleanly close database pools when SIGTERM or SIGINT is received
|
|
244
|
+
await db.disconnect()
|
|
245
|
+
}
|
|
246
|
+
})
|
|
247
|
+
```
|