@spinajs/http 2.0.485 → 2.0.487
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 +370 -5
- package/lib/cjs/base-controller.d.ts +35 -0
- package/lib/cjs/base-controller.d.ts.map +1 -0
- package/lib/cjs/base-controller.js +100 -0
- package/lib/cjs/base-controller.js.map +1 -0
- package/lib/cjs/cache.d.ts +25 -3
- package/lib/cjs/cache.d.ts.map +1 -1
- package/lib/cjs/cache.js +26 -9
- package/lib/cjs/cache.js.map +1 -1
- package/lib/cjs/cli/GenerateControllerCache.d.ts +13 -4
- package/lib/cjs/cli/GenerateControllerCache.d.ts.map +1 -1
- package/lib/cjs/cli/GenerateControllerCache.js +37 -10
- package/lib/cjs/cli/GenerateControllerCache.js.map +1 -1
- package/lib/cjs/controller-sources.d.ts +36 -0
- package/lib/cjs/controller-sources.d.ts.map +1 -0
- package/lib/cjs/controller-sources.js +73 -0
- package/lib/cjs/controller-sources.js.map +1 -0
- package/lib/cjs/controllers.d.ts +19 -36
- package/lib/cjs/controllers.d.ts.map +1 -1
- package/lib/cjs/controllers.js +98 -302
- package/lib/cjs/controllers.js.map +1 -1
- package/lib/cjs/exceptions.d.ts +12 -0
- package/lib/cjs/exceptions.d.ts.map +1 -1
- package/lib/cjs/exceptions.js +15 -1
- package/lib/cjs/exceptions.js.map +1 -1
- package/lib/cjs/index.d.ts +4 -0
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +4 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/middlewares/RequestId.d.ts.map +1 -1
- package/lib/cjs/middlewares/RequestId.js +4 -0
- package/lib/cjs/middlewares/RequestId.js.map +1 -1
- package/lib/cjs/route-builder.d.ts +61 -0
- package/lib/cjs/route-builder.d.ts.map +1 -0
- package/lib/cjs/route-builder.js +228 -0
- package/lib/cjs/route-builder.js.map +1 -0
- package/lib/mjs/base-controller.d.ts +35 -0
- package/lib/mjs/base-controller.d.ts.map +1 -0
- package/lib/mjs/base-controller.js +93 -0
- package/lib/mjs/base-controller.js.map +1 -0
- package/lib/mjs/cache.d.ts +25 -3
- package/lib/mjs/cache.d.ts.map +1 -1
- package/lib/mjs/cache.js +25 -10
- package/lib/mjs/cache.js.map +1 -1
- package/lib/mjs/cli/GenerateControllerCache.d.ts +13 -4
- package/lib/mjs/cli/GenerateControllerCache.d.ts.map +1 -1
- package/lib/mjs/cli/GenerateControllerCache.js +39 -12
- package/lib/mjs/cli/GenerateControllerCache.js.map +1 -1
- package/lib/mjs/controller-sources.d.ts +36 -0
- package/lib/mjs/controller-sources.d.ts.map +1 -0
- package/lib/mjs/controller-sources.js +69 -0
- package/lib/mjs/controller-sources.js.map +1 -0
- package/lib/mjs/controllers.d.ts +19 -36
- package/lib/mjs/controllers.d.ts.map +1 -1
- package/lib/mjs/controllers.js +95 -298
- package/lib/mjs/controllers.js.map +1 -1
- package/lib/mjs/exceptions.d.ts +12 -0
- package/lib/mjs/exceptions.d.ts.map +1 -1
- package/lib/mjs/exceptions.js +12 -0
- package/lib/mjs/exceptions.js.map +1 -1
- package/lib/mjs/index.d.ts +4 -0
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +4 -0
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/middlewares/RequestId.d.ts.map +1 -1
- package/lib/mjs/middlewares/RequestId.js +4 -0
- package/lib/mjs/middlewares/RequestId.js.map +1 -1
- package/lib/mjs/route-builder.d.ts +61 -0
- package/lib/mjs/route-builder.d.ts.map +1 -0
- package/lib/mjs/route-builder.js +216 -0
- package/lib/mjs/route-builder.js.map +1 -0
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +12 -12
package/lib/cjs/controllers.js
CHANGED
|
@@ -12,270 +12,62 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.Controllers =
|
|
16
|
-
const node_async_hooks_1 = require("node:async_hooks");
|
|
17
|
-
const util_1 = require("@spinajs/util");
|
|
15
|
+
exports.Controllers = void 0;
|
|
18
16
|
const express_1 = __importDefault(require("express"));
|
|
19
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
20
17
|
const di_1 = require("@spinajs/di");
|
|
21
|
-
const exceptions_1 = require("@spinajs/exceptions");
|
|
22
|
-
const reflection_1 = require("@spinajs/reflection");
|
|
23
18
|
const log_1 = require("@spinajs/log");
|
|
24
|
-
const validation_1 = require("@spinajs/validation");
|
|
25
|
-
const configuration_1 = require("@spinajs/configuration");
|
|
26
19
|
const server_js_1 = require("./server.js");
|
|
27
|
-
const
|
|
28
|
-
const decorators_js_1 = require("./decorators.js");
|
|
29
|
-
const util_2 = require("@spinajs/util");
|
|
20
|
+
const util_1 = require("@spinajs/util");
|
|
30
21
|
const cache_js_1 = require("./cache.js");
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
|
|
22
|
+
const base_controller_js_1 = require("./base-controller.js");
|
|
23
|
+
const controller_sources_js_1 = require("./controller-sources.js");
|
|
24
|
+
const exceptions_js_1 = require("./exceptions.js");
|
|
25
|
+
class Controllers extends di_1.AsyncService {
|
|
26
|
+
constructor() {
|
|
27
|
+
super(...arguments);
|
|
28
|
+
/**
|
|
29
|
+
* Tracks which controller types have already been route-registered so
|
|
30
|
+
* {@link add} is idempotent.
|
|
31
|
+
*/
|
|
32
|
+
this.RegisteredTypes = new Set();
|
|
33
|
+
}
|
|
34
34
|
/**
|
|
35
|
-
*
|
|
35
|
+
* Merged, deduped controller list from all registered
|
|
36
|
+
* {@link ControllerSource} services (no instances until `resolve()` patches
|
|
37
|
+
* them in). Kept as a public accessor for API compatibility — http-swagger
|
|
38
|
+
* and app code read it to enumerate controllers.
|
|
36
39
|
*/
|
|
37
|
-
get
|
|
38
|
-
return this.
|
|
40
|
+
get Controllers() {
|
|
41
|
+
return (this._listed ??= this.listControllers());
|
|
39
42
|
}
|
|
40
43
|
/**
|
|
41
|
-
*
|
|
44
|
+
* Resolves all registered controller discovery services. Override point
|
|
45
|
+
* for tests and for apps that want full control over discovery.
|
|
42
46
|
*/
|
|
43
|
-
|
|
44
|
-
return
|
|
47
|
+
async getSources() {
|
|
48
|
+
return (await di_1.DI.resolve(Array.ofType(controller_sources_js_1.ControllerSource)));
|
|
45
49
|
}
|
|
46
50
|
/**
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
51
|
+
* Gathers controllers from every source and dedupes them: for the same
|
|
52
|
+
* type an entry with a real on-disk file wins over a `<di>` / `<dynamic>`
|
|
53
|
+
* sentinel (the file path feeds ControllersCache source parsing).
|
|
50
54
|
*/
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
this._router = express_1.default.Router();
|
|
62
|
-
for (const [, route] of this.Descriptor.Routes) {
|
|
63
|
-
const handlers = [];
|
|
64
|
-
let path = '';
|
|
65
|
-
if (route.Path) {
|
|
66
|
-
if (route.Path === '/') {
|
|
67
|
-
path = `/${this.BasePath}`;
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
if (this.BasePath === '/') {
|
|
71
|
-
path = `/${route.Path}`;
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
path = `/${this.BasePath}/${route.Path}`;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
path = `/${this.BasePath}/${String(route.Method)}`;
|
|
55
|
+
async listControllers() {
|
|
56
|
+
const sources = await this.getSources();
|
|
57
|
+
const lists = await Promise.all(sources.map((s) => s.getControllers()));
|
|
58
|
+
const byType = new Map();
|
|
59
|
+
const untyped = [];
|
|
60
|
+
for (const ci of lists.flat()) {
|
|
61
|
+
if (!ci.type) {
|
|
62
|
+
untyped.push(ci);
|
|
63
|
+
continue;
|
|
80
64
|
}
|
|
81
|
-
|
|
82
|
-
if (
|
|
83
|
-
|
|
65
|
+
const existing = byType.get(ci.type);
|
|
66
|
+
if (!existing || (!(0, cache_js_1.isOnDiskSource)(existing.file) && (0, cache_js_1.isOnDiskSource)(ci.file))) {
|
|
67
|
+
byType.set(ci.type, ci);
|
|
84
68
|
}
|
|
85
|
-
const middlewares = await Promise.all(this.Descriptor.Middlewares.concat(route.Middlewares || []).map((m) => {
|
|
86
|
-
return self._container.resolve(m.Type, m.Options);
|
|
87
|
-
}));
|
|
88
|
-
const policies = await Promise.all(this.Descriptor.Policies.concat(route.Policies || [])
|
|
89
|
-
.map((m) => {
|
|
90
|
-
if (lodash_1.default.isString(m.Type)) {
|
|
91
|
-
const policyType = this._cfg.get(m.Type);
|
|
92
|
-
if (!di_1.DI.checkType(interfaces_js_1.BasePolicy, policyType)) {
|
|
93
|
-
self._log.warn(`No policy named ${policyType} is registered ( check your configuration at ${m.Type})`);
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
self._log.trace(`Policy ${policyType} is used in controller ${self.constructor.name}::${String(route.Method)} at path ${path}`);
|
|
98
|
-
return self._container.resolve(policyType, m.Options);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
self._log.trace(`Policy ${m.Type.name} is used in controller ${self.constructor.name}::${String(route.Method)} at path ${path}`);
|
|
103
|
-
return self._container.resolve(m.Type, m.Options);
|
|
104
|
-
}
|
|
105
|
-
})
|
|
106
|
-
.filter((x) => x !== null));
|
|
107
|
-
const enabledMiddlewares = middlewares.filter((m) => m.isEnabled(route, this));
|
|
108
|
-
this._log.trace(`Registering route ${route.Type.toUpperCase()} ${this.constructor.name}::${String(route.Method)} at ${path}`);
|
|
109
|
-
// Execute all policies for route
|
|
110
|
-
// If at least ONE policy returns no error allow route to execute
|
|
111
|
-
// It allows to use multiple access to resource eg. token access & session
|
|
112
|
-
handlers.push((req, _res, next) => {
|
|
113
|
-
// Only policies enabled for this concrete route participate in the gate.
|
|
114
|
-
// A route whose policies are ALL disabled has no active authorization
|
|
115
|
-
// check, so it is allowed through — same semantics as having no policies
|
|
116
|
-
// at all. Computing this up front is what prevents the request from
|
|
117
|
-
// hanging: `Promise.allSettled([])` resolves to `[]`, which matches
|
|
118
|
-
// neither the fulfilled nor the rejected branch below, so `next` would
|
|
119
|
-
// never be called.
|
|
120
|
-
const enabledPolicies = policies.filter((p) => p.isEnabled(route, this));
|
|
121
|
-
if (enabledPolicies.length === 0) {
|
|
122
|
-
next();
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
Promise.allSettled(enabledPolicies
|
|
126
|
-
.map((p) => {
|
|
127
|
-
return p
|
|
128
|
-
.execute(req, route, this)
|
|
129
|
-
.then(() => {
|
|
130
|
-
this._log.trace(`Policy succeded for route ${self.constructor.name}:${String(route.Method)} ${self.BasePath}/${String(route.Path || route.Method)}, policy: ${p.constructor.name}`);
|
|
131
|
-
})
|
|
132
|
-
.catch((err) => {
|
|
133
|
-
this._log.trace(`Policy failed for route ${self.constructor.name}:${String(route.Method)} ${self.BasePath}/${String(route.Path || route.Method)} error ${err}, policy: ${p.constructor.name}`);
|
|
134
|
-
throw err;
|
|
135
|
-
});
|
|
136
|
-
})).then((results) => {
|
|
137
|
-
const fullfilled = results.find(r => r.status === 'fulfilled');
|
|
138
|
-
if (fullfilled) {
|
|
139
|
-
this._log.trace(`Policy for route ${self.constructor.name}:${String(route.Method)} ${self.BasePath}/${String(route.Path || route.Method)} succeded, continue execution`);
|
|
140
|
-
next();
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
// Every policy rejected — forward the first failure to the express
|
|
144
|
-
// error handler. Use next(err) directly (not `throw next(...)`,
|
|
145
|
-
// which would reject this .then() with `undefined` as an unhandled
|
|
146
|
-
// rejection while the error was already forwarded).
|
|
147
|
-
const failed = results.find(r => r.status === 'rejected');
|
|
148
|
-
next(failed ? failed.reason : new exceptions_1.UnexpectedServerError('Policy evaluation produced no result'));
|
|
149
|
-
})
|
|
150
|
-
// Guard against unexpected throws in the settle/handler chain so the
|
|
151
|
-
// request can never stall without a response.
|
|
152
|
-
.catch((err) => next(err));
|
|
153
|
-
});
|
|
154
|
-
handlers.push(...enabledMiddlewares.map((m) => _invokeAction(m, m.onBefore.bind(m), route)));
|
|
155
|
-
const acionWrapper = async (req, res, next) => {
|
|
156
|
-
try {
|
|
157
|
-
await this._actionLocalStorage.run(req.storage, async () => {
|
|
158
|
-
const args = (await _extractRouteArgs(route, req, res)).concat([req, res, next]);
|
|
159
|
-
try {
|
|
160
|
-
const result = this[route.Method].call(this, ...args);
|
|
161
|
-
if ((0, util_1.isPromise)(result)) {
|
|
162
|
-
result
|
|
163
|
-
.then((r) => {
|
|
164
|
-
if (r instanceof interfaces_js_1.Response) {
|
|
165
|
-
enabledMiddlewares.forEach((x) => x.onResponse(r, route, this));
|
|
166
|
-
}
|
|
167
|
-
res.locals.response = r;
|
|
168
|
-
next();
|
|
169
|
-
})
|
|
170
|
-
.catch((err) => {
|
|
171
|
-
next(err);
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
if (result instanceof interfaces_js_1.Response) {
|
|
176
|
-
enabledMiddlewares.forEach((x) => x.onResponse(result, route, this));
|
|
177
|
-
}
|
|
178
|
-
res.locals.response = result;
|
|
179
|
-
next();
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
catch (err) {
|
|
183
|
-
next(err);
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
catch (err) {
|
|
188
|
-
next(err);
|
|
189
|
-
}
|
|
190
|
-
};
|
|
191
|
-
Object.defineProperty(acionWrapper, 'name', {
|
|
192
|
-
value: this.constructor.name,
|
|
193
|
-
writable: true,
|
|
194
|
-
});
|
|
195
|
-
handlers.push(acionWrapper);
|
|
196
|
-
handlers.push(...enabledMiddlewares.map((m) => _invokeAction(m, m.onAfter.bind(m), route)));
|
|
197
|
-
// register to express router
|
|
198
|
-
if (route.InternalType === 'unknown') {
|
|
199
|
-
this._log.warn(`Unknown route type for ${this.constructor.name}::${String(route.Method)} at path ${path}`);
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
handlers.push((0, response_js_1.__handle_response__)());
|
|
203
|
-
handlers.push((0, error_js_1.__handle_error__)());
|
|
204
|
-
this._router[route.InternalType](path, handlers);
|
|
205
69
|
}
|
|
206
|
-
|
|
207
|
-
const wrapper = (req, res, next) => {
|
|
208
|
-
action(req, res, route, self)
|
|
209
|
-
.then(() => {
|
|
210
|
-
next();
|
|
211
|
-
})
|
|
212
|
-
.catch((err) => {
|
|
213
|
-
next(err);
|
|
214
|
-
});
|
|
215
|
-
};
|
|
216
|
-
Object.defineProperty(wrapper, 'name', {
|
|
217
|
-
value: source.constructor.name,
|
|
218
|
-
writable: true,
|
|
219
|
-
});
|
|
220
|
-
return wrapper;
|
|
221
|
-
}
|
|
222
|
-
async function _extractRouteArgs(route, req, res) {
|
|
223
|
-
const callArgs = new Array(route.Parameters.size);
|
|
224
|
-
const argsCache = new Map();
|
|
225
|
-
let callData = {
|
|
226
|
-
Payload: {},
|
|
227
|
-
};
|
|
228
|
-
// Sort parameters by priority (higher priority first)
|
|
229
|
-
// Get all parameters as array, resolve their handlers to check priority, then sort
|
|
230
|
-
const paramsWithPriority = await Promise.all(Array.from(route.Parameters.values()).map(async (param) => {
|
|
231
|
-
const handler = await (0, util_2.tryGetHash)(argsCache, param.Type, () => di_1.DI.resolve(param.Type));
|
|
232
|
-
return { param, handler, priority: handler?.Priority ?? 0 };
|
|
233
|
-
}));
|
|
234
|
-
// Sort by priority descending (higher priority first)
|
|
235
|
-
const sortedParams = paramsWithPriority.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
|
|
236
|
-
for (const { param, handler: routeArgsHandler } of sortedParams) {
|
|
237
|
-
if (!routeArgsHandler) {
|
|
238
|
-
throw new exceptions_1.UnexpectedServerError(`Route parameter not registered for parameter: ${param.Name},
|
|
239
|
-
in method: ${String(route.Method)},
|
|
240
|
-
in controller: ${self.constructor.name}. Check if you have registered it in DI container.`);
|
|
241
|
-
}
|
|
242
|
-
const { Args, CallData } = await routeArgsHandler.extract(callData, callArgs, param, req, res, route);
|
|
243
|
-
callData = CallData;
|
|
244
|
-
callArgs[param.Index] = Args;
|
|
245
|
-
}
|
|
246
|
-
return callArgs;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
exports.BaseController = BaseController;
|
|
251
|
-
__decorate([
|
|
252
|
-
(0, di_1.Autoinject)(di_1.Container),
|
|
253
|
-
__metadata("design:type", Object)
|
|
254
|
-
], BaseController.prototype, "_container", void 0);
|
|
255
|
-
__decorate([
|
|
256
|
-
(0, di_1.Autoinject)(),
|
|
257
|
-
__metadata("design:type", validation_1.DataValidator)
|
|
258
|
-
], BaseController.prototype, "_validator", void 0);
|
|
259
|
-
__decorate([
|
|
260
|
-
(0, log_1.Logger)('http'),
|
|
261
|
-
__metadata("design:type", log_1.Log)
|
|
262
|
-
], BaseController.prototype, "_log", void 0);
|
|
263
|
-
__decorate([
|
|
264
|
-
(0, di_1.Autoinject)(),
|
|
265
|
-
__metadata("design:type", node_async_hooks_1.AsyncLocalStorage)
|
|
266
|
-
], BaseController.prototype, "_actionLocalStorage", void 0);
|
|
267
|
-
__decorate([
|
|
268
|
-
(0, di_1.Autoinject)(configuration_1.Configuration),
|
|
269
|
-
__metadata("design:type", configuration_1.Configuration)
|
|
270
|
-
], BaseController.prototype, "_cfg", void 0);
|
|
271
|
-
class Controllers extends di_1.AsyncService {
|
|
272
|
-
constructor() {
|
|
273
|
-
super(...arguments);
|
|
274
|
-
/**
|
|
275
|
-
* Tracks which controller types have already been route-registered so
|
|
276
|
-
* {@link add} is idempotent.
|
|
277
|
-
*/
|
|
278
|
-
this.RegisteredTypes = new Set();
|
|
70
|
+
return [...byType.values(), ...untyped];
|
|
279
71
|
}
|
|
280
72
|
/**
|
|
281
73
|
* Dynamically register a controller after startup. Equivalent to having
|
|
@@ -295,16 +87,26 @@ class Controllers extends di_1.AsyncService {
|
|
|
295
87
|
this.Log.trace(`Controller ${type.name} already registered, skipping`);
|
|
296
88
|
return;
|
|
297
89
|
}
|
|
298
|
-
di_1.DI.register(type).as(BaseController);
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
90
|
+
di_1.DI.register(type).as(base_controller_js_1.BaseController);
|
|
91
|
+
try {
|
|
92
|
+
const instance = (await di_1.DI.resolve(type));
|
|
93
|
+
const ci = new di_1.ClassInfo();
|
|
94
|
+
ci.name = type.name;
|
|
95
|
+
ci.type = type;
|
|
96
|
+
ci.instance = instance;
|
|
97
|
+
// Source file was captured at decoration time by the route decorators.
|
|
98
|
+
// Sentinel only if nothing was captured (no route decorators ran).
|
|
99
|
+
ci.file = instance.Descriptor?.SourceFile ?? '<dynamic>';
|
|
100
|
+
await this.register(ci);
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
// Roll back so the broken type is not silently mounted by a later
|
|
104
|
+
// Array.ofType(BaseController) resolve, and so a fixed retry can
|
|
105
|
+
// register cleanly.
|
|
106
|
+
di_1.DI.unregister(type);
|
|
107
|
+
di_1.DI.uncache(base_controller_js_1.BaseController);
|
|
108
|
+
throw err;
|
|
109
|
+
}
|
|
308
110
|
}
|
|
309
111
|
async register(controller) {
|
|
310
112
|
this.Log.trace(`Loading controller: ${controller.name}`);
|
|
@@ -312,32 +114,35 @@ class Controllers extends di_1.AsyncService {
|
|
|
312
114
|
this.Log.trace(`Controller ${controller.name} already registered, skipping`);
|
|
313
115
|
return;
|
|
314
116
|
}
|
|
315
|
-
const parameters = await this.ControllersCache.getCache(controller);
|
|
316
117
|
if (!controller.instance) {
|
|
317
|
-
|
|
318
|
-
return;
|
|
118
|
+
throw new exceptions_js_1.ControllerRegistrationException(`Controller ${controller.name} in file ${controller.file} is not resolved. Make sure it is decorated with @injectable and has a public constructor without required parameters`);
|
|
319
119
|
}
|
|
120
|
+
const parameters = await this.ControllersCache.getCache(controller);
|
|
320
121
|
if (!controller.instance.Descriptor) {
|
|
321
122
|
this.Log.warn(`Controller ${controller.name} in file ${controller.file} dont have descriptor or routes defined`);
|
|
322
123
|
}
|
|
323
124
|
else {
|
|
324
125
|
for (const [name, route] of controller.instance.Descriptor.Routes) {
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
rParam.Name = pName;
|
|
331
|
-
}
|
|
126
|
+
let member = parameters[name];
|
|
127
|
+
if (!member) {
|
|
128
|
+
const action = controller.instance[name];
|
|
129
|
+
if (typeof action !== 'function') {
|
|
130
|
+
throw new exceptions_js_1.RouteRegistrationException(`Controller ${controller.name} does not have member ${String(name)} for route ${route.Path}`);
|
|
332
131
|
}
|
|
132
|
+
// Route inherited from a base class declared in another source file
|
|
133
|
+
// — the parsed source of THIS class has no such member. Extract
|
|
134
|
+
// parameter names from the runtime function instead.
|
|
135
|
+
member = (0, cache_js_1.parseFnParamNames)(action);
|
|
333
136
|
}
|
|
334
|
-
|
|
335
|
-
|
|
137
|
+
for (const [index, rParam] of route.Parameters) {
|
|
138
|
+
const pName = member[index];
|
|
139
|
+
if (pName) {
|
|
140
|
+
rParam.Name = pName;
|
|
141
|
+
}
|
|
336
142
|
}
|
|
337
143
|
}
|
|
338
144
|
if (!controller.instance.Router) {
|
|
339
|
-
|
|
340
|
-
return;
|
|
145
|
+
throw new exceptions_js_1.ControllerRegistrationException(`Controller ${controller.name} in file ${controller.file} has no router instance. Check if it extends BaseController and super.resolve() is called in resolve method`);
|
|
341
146
|
}
|
|
342
147
|
this.ControllersRouter.use(controller.instance.Router);
|
|
343
148
|
if (controller.type) {
|
|
@@ -351,34 +156,28 @@ class Controllers extends di_1.AsyncService {
|
|
|
351
156
|
// one mounts onto Express exactly once. Dynamic adds land here too,
|
|
352
157
|
// which is how `add()` avoids the old Express-stack juggling.
|
|
353
158
|
this.ControllersRouter = express_1.default.Router();
|
|
354
|
-
//
|
|
355
|
-
//
|
|
356
|
-
//
|
|
357
|
-
//
|
|
358
|
-
//
|
|
359
|
-
//
|
|
360
|
-
//
|
|
361
|
-
// collection by the time we get here.
|
|
362
|
-
// Resolving `Array.ofType(BaseController)` then instantiates everything
|
|
363
|
-
// in a single pass — file-scanned + bootstrap-registered, with class
|
|
364
|
-
// identity dedupe (multiple `as(BaseController)` calls for the same type
|
|
365
|
-
// resolve to one singleton).
|
|
159
|
+
// Discovery is delegated to ControllerSource services (filesystem scan,
|
|
160
|
+
// DI registry, custom app sources). All lists are merged and deduped in
|
|
161
|
+
// listControllers(); each discovered type is registered as
|
|
162
|
+
// `BaseController` below, then resolving `Array.ofType(BaseController)`
|
|
163
|
+
// instantiates everything in a single pass with class-identity dedupe
|
|
164
|
+
// (multiple `as(BaseController)` calls for the same type resolve to one
|
|
165
|
+
// singleton).
|
|
366
166
|
const listed = await this.Controllers;
|
|
367
167
|
// Remember the original file path per type so the second loop can preserve
|
|
368
168
|
// it. Without this every controller would end up tagged `<di>`, breaking
|
|
369
169
|
// ControllersCache.getCache() which expects a real on-disk source file.
|
|
370
170
|
const fileByType = new Map();
|
|
371
|
-
for (const ci of (0,
|
|
171
|
+
for (const ci of (0, util_1.uniqueBy)(listed, (c) => c.name)) {
|
|
372
172
|
if (!ci.type) {
|
|
373
173
|
this.Log.warn(`Controller ${ci.name} in file ${ci.file} has no type. Make sure it is decorated with @injectable and has a public constructor without required parameters`);
|
|
374
174
|
continue;
|
|
375
175
|
}
|
|
376
|
-
;
|
|
377
176
|
fileByType.set(ci.type, ci);
|
|
378
|
-
di_1.DI.register(ci.type).as(BaseController);
|
|
177
|
+
di_1.DI.register(ci.type).as(base_controller_js_1.BaseController);
|
|
379
178
|
this.Log.trace(`Controller ${ci.name} from ${ci.file} registered as BaseController`);
|
|
380
179
|
}
|
|
381
|
-
const instances = (await di_1.DI.resolve(Array.ofType(BaseController)));
|
|
180
|
+
const instances = (await di_1.DI.resolve(Array.ofType(base_controller_js_1.BaseController)));
|
|
382
181
|
// Report on scanned controllers that someone else derives from. Both
|
|
383
182
|
// outcomes are otherwise invisible: an override leaves no trace at all, and
|
|
384
183
|
// an accidental shadow leaves two controllers answering the same paths.
|
|
@@ -406,16 +205,17 @@ class Controllers extends di_1.AsyncService {
|
|
|
406
205
|
for (const instance of instances) {
|
|
407
206
|
const type = instance.constructor;
|
|
408
207
|
const originalCi = fileByType.get(type);
|
|
409
|
-
const ci = originalCi ??
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
208
|
+
const ci = originalCi ??
|
|
209
|
+
Object.assign(new di_1.ClassInfo(), {
|
|
210
|
+
name: type.name,
|
|
211
|
+
type,
|
|
212
|
+
instance,
|
|
213
|
+
// For DI-registered controllers without a file scan entry, fall back
|
|
214
|
+
// to the source file captured at decoration time by `Controller()`.
|
|
215
|
+
// Only sentinel '<di>' if nothing was captured (abstract base, or no
|
|
216
|
+
// route decorators ran).
|
|
217
|
+
file: instance.Descriptor?.SourceFile ?? '<di>',
|
|
218
|
+
});
|
|
419
219
|
// The file-scanned entry has no instance (List, not Resolve) — patch it.
|
|
420
220
|
if (!ci.instance)
|
|
421
221
|
ci.instance = instance;
|
|
@@ -431,10 +231,6 @@ class Controllers extends di_1.AsyncService {
|
|
|
431
231
|
}
|
|
432
232
|
}
|
|
433
233
|
exports.Controllers = Controllers;
|
|
434
|
-
__decorate([
|
|
435
|
-
(0, reflection_1.ListFromFiles)('/**/!(*.d).{ts,js}', 'system.dirs.controllers'),
|
|
436
|
-
__metadata("design:type", Promise)
|
|
437
|
-
], Controllers.prototype, "Controllers", void 0);
|
|
438
234
|
__decorate([
|
|
439
235
|
(0, log_1.Logger)('http'),
|
|
440
236
|
__metadata("design:type", log_1.Log)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../src/controllers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uDAAqD;AACrD,wCAA0C;AAE1C,sDAA8B;AAE9B,oDAAuB;AAEvB,oCAAoG;AACpG,oDAA4D;AAC5D,oDAAoD;AACpD,sCAA2C;AAC3C,oDAAoD;AACpD,0DAAuD;AACvD,2CAAyC;AAEzC,mDAAuO;AACvO,mDAA+D;AAC/D,wCAAqD;AACrD,yCAAoD;AACpD,+CAAoD;AACpD,yCAA8C;AAI9C,MAAsB,cAAe,SAAQ,iBAAY;IAyBvD;;OAEG;IACH,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACnB,OAAO,OAAO,CAAC,WAAW,CAAC,4CAA4B,EAAE,IAAI,CAA0B,CAAC;IAC1F,CAAC;IAED;;;;OAIG;IACH,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACnG,CAAC;IAEM,KAAK,CAAC,OAAO;QAElB,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QAEtB,MAAM,IAAI,GAAG,IAAI,CAAC;QAIlB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW,CAAC,IAAI,+EAA+E,CAAC,CAAC;YACnI,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAC;QAEhC,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAA6D,EAAE,CAAC;YAE9E,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;oBACvB,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;wBAC1B,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC1B,CAAC;yBAAM,CAAC;wBACN,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC3C,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,CAAC;YAED,+BAA+B;YAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,EAAE,CAAC;gBACnD,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,GAAG,IAAI,EAAE,CAAC;YACrE,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAwB,EAAE,EAAE;gBAC3F,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YACpD,CAAC,CAAC,CACH,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;iBAClD,GAAG,CAAC,CAAC,CAAoB,EAAE,EAAE;gBAC5B,IAAI,gBAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAS,CAAC,CAAC,IAAI,CAAC,CAAC;oBACjD,IAAI,CAAC,OAAE,CAAC,SAAS,CAAC,0BAAU,EAAE,UAAU,CAAC,EAAE,CAAC;wBAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,UAAU,gDAAgD,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;wBACvG,OAAO,IAAI,CAAC;oBACd,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,UAAU,0BAA0B,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;wBAChI,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAa,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;oBACpE,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,0BAA0B,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;oBACjI,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAa,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAC7B,CAAC;YACF,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YAE/E,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAE9H,iCAAiC;YACjC,iEAAiE;YACjE,0EAA0E;YAC1E,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAoB,EAAE,IAAsB,EAAE,IAA0B,EAAE,EAAE;gBACzF,yEAAyE;gBACzE,sEAAsE;gBACtE,yEAAyE;gBACzE,oEAAoE;gBACpE,oEAAoE;gBACpE,uEAAuE;gBACvE,mBAAmB;gBACnB,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;gBACzE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,IAAI,EAAE,CAAC;oBACP,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,UAAU,CAAC,eAAe;qBAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACT,OAAO,CAAC;yBACL,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;yBACzB,IAAI,CAAC,GAAG,EAAE;wBACT,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;oBACtL,CAAC,CAAC;yBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;wBAC/L,MAAM,GAAG,CAAC;oBACZ,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;oBACnB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;oBAC/D,IAAI,UAAU,EAAE,CAAC;wBACf,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;wBACzK,IAAI,EAAE,CAAC;wBACP,OAAO;oBACT,CAAC;oBAED,mEAAmE;oBACnE,gEAAgE;oBAChE,mEAAmE;oBACnE,oDAAoD;oBACpD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAsC,CAAC;oBAC/F,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,kCAAqB,CAAC,sCAAsC,CAAC,CAAC,CAAC;gBACnG,CAAC,CAAC;oBACF,qEAAqE;oBACrE,8CAA8C;qBAC7C,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YAE7F,MAAM,YAAY,GAAG,KAAK,EAAE,GAAa,EAAE,GAAqB,EAAE,IAA0B,EAAE,EAAE;gBAC9F,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;wBACzD,MAAM,IAAI,GAAG,CAAC,MAAM,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;wBAEjF,IAAI,CAAC;4BACH,MAAM,MAAM,GAAI,IAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;4BAE/D,IAAI,IAAA,gBAAS,EAAC,MAAM,CAAC,EAAE,CAAC;gCACtB,MAAM;qCACH,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;oCACV,IAAI,CAAC,YAAY,wBAAQ,EAAE,CAAC;wCAC1B,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;oCAClE,CAAC;oCACD,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;oCACxB,IAAI,EAAE,CAAC;gCACT,CAAC,CAAC;qCACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oCACb,IAAI,CAAC,GAAG,CAAC,CAAC;gCACZ,CAAC,CAAC,CAAC;4BACP,CAAC;iCAAM,CAAC;gCACN,IAAI,MAAM,YAAY,wBAAQ,EAAE,CAAC;oCAC/B,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;gCACvE,CAAC;gCACD,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC;gCAC7B,IAAI,EAAE,CAAC;4BACT,CAAC;wBACH,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,IAAI,CAAC,GAAG,CAAC,CAAC;wBACZ,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE;gBAC1C,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;gBAC5B,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YAEH,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YAE5F,6BAA6B;YAC7B,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;gBAC3G,OAAO;YACT,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,IAAA,iCAAmB,GAAE,CAAC,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC,IAAA,2BAAgB,GAAE,CAAC,CAAC;YAEjC,IAAI,CAAC,OAAe,CAAC,KAAK,CAAC,YAAsB,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtE,CAAC;QAED,SAAS,aAAa,CAAC,MAAW,EAAE,MAAW,EAAE,KAAa;YAC5D,MAAM,OAAO,GAAG,CAAC,GAAoB,EAAE,GAAqB,EAAE,IAA0B,EAAE,EAAE;gBAC1F,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;qBAC1B,IAAI,CAAC,GAAG,EAAE;oBACT,IAAI,EAAE,CAAC;gBACT,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;oBAClB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACZ,CAAC,CAAC,CAAC;YACP,CAAC,CAAC;YAEF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE;gBACrC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI;gBAC9B,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,KAAK,UAAU,iBAAiB,CAAC,KAAa,EAAE,GAAY,EAAE,GAAqB;YACjF,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqC,CAAC;YAE/D,IAAI,QAAQ,GAAG;gBACb,OAAO,EAAE,EAAE;aACZ,CAAC;YAEF,sDAAsD;YACtD,mFAAmF;YACnF,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACxD,MAAM,OAAO,GAAG,MAAM,IAAA,iBAAU,EAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,OAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAC;YAC9D,CAAC,CAAC,CACH,CAAC;YAEF,sDAAsD;YACtD,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;YAE9F,KAAK,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,YAAY,EAAE,CAAC;gBAChE,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtB,MAAM,IAAI,kCAAqB,CAAC,iDAAiD,KAAK,CAAC,IAAI;yBAC5E,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;6BAChB,IAAI,CAAC,WAAW,CAAC,IAAI,oDAAoD,CAAC,CAAC;gBAChG,CAAC;gBAED,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAEtG,QAAQ,GAAG,QAAQ,CAAC;gBACpB,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YAC/B,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;CACF;AAjRD,wCAiRC;AAxQW;IADT,IAAA,eAAU,EAAC,cAAS,CAAC;;kDACY;AAGxB;IADT,IAAA,eAAU,GAAE;8BACU,0BAAa;kDAAC;AAG3B;IADT,IAAA,YAAM,EAAC,MAAM,CAAC;8BACE,SAAG;4CAAC;AAGX;IADT,IAAA,eAAU,GAAE;8BACmB,oCAAiB;2DAA6B;AAGpE;IADT,IAAA,eAAU,EAAC,6BAAa,CAAC;8BACT,6BAAa;4CAAC;AA8PjC,MAAa,WAAY,SAAQ,iBAAY;IAA7C;;QAgCE;;;WAGG;QACO,oBAAe,GAA+B,IAAI,GAAG,EAAE,CAAC;IA8KpE,CAAC;IA5KC;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,GAAG,CAAC,IAA2B;QAC1C,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,+BAA+B,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,OAAE,CAAC,QAAQ,CAAC,IAAW,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAmB,CAAC;QAE5D,MAAM,EAAE,GAAG,IAAI,cAAS,EAAkB,CAAC;QAC3C,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACpB,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;QACf,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACvB,uEAAuE;QACvE,mEAAmE;QACnE,EAAE,CAAC,IAAI,GAAG,QAAQ,CAAC,UAAU,EAAE,UAAU,IAAI,WAAW,CAAC;QAEzD,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,UAAqC;QACzD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QAEzD,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,UAAU,CAAC,IAAI,+BAA+B,CAAC,CAAC;YAC7E,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpE,IAAG,CAAC,UAAU,CAAC,QAAQ,EAAC,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,IAAI,YAAY,UAAU,CAAC,IAAI,uHAAuH,CAAC,CAAC;YAC/L,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,IAAI,YAAY,UAAU,CAAC,IAAI,yCAAyC,CAAC,CAAC;QACnH,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBAClE,IAAI,UAAU,CAAC,IAAc,CAAC,EAAE,CAAC;oBAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,IAAc,CAAC,CAAC;oBAE1C,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;wBAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC5B,IAAI,KAAK,EAAE,CAAC;4BACV,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;wBACtB,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,UAAU,CAAC,IAAI,yBAAyB,IAAc,cAAc,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjH,CAAC;YACH,CAAC;YAGD,IAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAC,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,IAAI,YAAY,UAAU,CAAC,IAAI,6GAA6G,CAAC,CAAC;gBACrL,OAAO;YACT,CAAC;YAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAO;QAElB,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QAEtB,sEAAsE;QACtE,oEAAoE;QACpE,8DAA8D;QAC9D,IAAI,CAAC,iBAAiB,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAC;QAE1C,wCAAwC;QACxC,wEAAwE;QACxE,wEAAwE;QACxE,yCAAyC;QACzC,wEAAwE;QACxE,wEAAwE;QACxE,qEAAqE;QACrE,0CAA0C;QAC1C,wEAAwE;QACxE,qEAAqE;QACrE,yEAAyE;QACzE,6BAA6B;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;QAEtC,2EAA2E;QAC3E,yEAAyE;QACzE,wEAAwE;QACxE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoD,CAAC;QAE/E,KAAK,MAAM,EAAE,IAAI,IAAA,eAAQ,EAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,EAAE,CAAC,IAAI,EAAC,CAAC;gBACZ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC,IAAI,mHAAmH,CAAC,CAAC;gBAC3K,SAAS;YACX,CAAC;YAAA,CAAC;YAEF,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAA6B,EAAE,EAAE,CAAC,CAAC;YACrD,OAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,IAAI,+BAA+B,CAAC,CAAC;QACvF,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,MAAM,OAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAqB,CAAC;QAEvF,qEAAqE;QACrE,4EAA4E;QAC5E,wEAAwE;QACxE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAoC,CAAC,CAAC,CAAC;QAEtF,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;YACpC,0EAA0E;YAC1E,sEAAsE;YACtE,iEAAiE;YACjE,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;YAEtF,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,SAAS;YACX,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,wEAAwE;gBACxE,4DAA4D;gBAC5D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,kBAAkB,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YACtF,CAAC;iBAAM,CAAC;gBACN,sEAAsE;gBACtE,sEAAsE;gBACtE,kEAAkE;gBAClE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,WAAW,CAAC,IAAI,YAAY,EAAE,CAAC,IAAI,4DAA4D,UAAU,CAAC,WAAW,CAAC,IAAI,QAAQ,EAAE,CAAC,IAAI,kFAAkF,CAAC,CAAC;YACtQ,CAAC;QACH,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAoC,CAAC;YAC3D,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,EAAE,GAAG,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,cAAS,EAAkB,EAAE;gBACtE,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI;gBACJ,QAAQ;gBACR,qEAAqE;gBACrE,oEAAoE;gBACpE,qEAAqE;gBACrE,yBAAyB;gBACzB,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,UAAU,IAAI,MAAM;aACV,CAAC,CAAC;YACzC,yEAAyE;YACzE,IAAI,CAAC,EAAE,CAAC,QAAQ;gBAAE,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QAED,yEAAyE;QACzE,sEAAsE;QACtE,+DAA+D;QAC/D,iEAAiE;QACjE,mEAAmE;QACnE,gDAAgD;QAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1C,CAAC;CACF;AAlND,kCAkNC;AA1MQ;IADN,IAAA,0BAAa,EAAC,oBAAoB,EAAE,yBAAyB,CAAC;;gDACA;AAGrD;IADT,IAAA,YAAM,EAAC,MAAM,CAAC;8BACC,SAAG;wCAAC;AAGV;IADT,IAAA,eAAU,EAAC,cAAS,CAAC;;8CACW;AAGvB;IADT,IAAA,eAAU,GAAE;8BACM,sBAAU;2CAAC;AAGpB;IADT,IAAA,eAAU,GAAE;8BACgB,iCAAsB;qDAAC"}
|
|
1
|
+
{"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../src/controllers.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/exceptions.d.ts
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import { Exception } from '@spinajs/exceptions';
|
|
2
2
|
export declare class EntityTooLargeException extends Exception {
|
|
3
3
|
}
|
|
4
|
+
/**
|
|
5
|
+
* Controller-level registration failure (unresolved instance, missing router).
|
|
6
|
+
* Thrown during startup — fail fast, do not start with broken controllers.
|
|
7
|
+
*/
|
|
8
|
+
export declare class ControllerRegistrationException extends Exception {
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Route-level registration failure (unknown route type, unresolvable policy,
|
|
12
|
+
* missing route member). Thrown during startup — fail fast.
|
|
13
|
+
*/
|
|
14
|
+
export declare class RouteRegistrationException extends Exception {
|
|
15
|
+
}
|
|
4
16
|
//# sourceMappingURL=exceptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../src/exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,qBAAa,uBAAwB,SAAQ,SAAS;CAAG"}
|
|
1
|
+
{"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../src/exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,qBAAa,uBAAwB,SAAQ,SAAS;CAAG;AAEzD;;;GAGG;AACH,qBAAa,+BAAgC,SAAQ,SAAS;CAAG;AAEjE;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,SAAS;CAAG"}
|
package/lib/cjs/exceptions.js
CHANGED
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EntityTooLargeException = void 0;
|
|
3
|
+
exports.RouteRegistrationException = exports.ControllerRegistrationException = exports.EntityTooLargeException = void 0;
|
|
4
4
|
const exceptions_1 = require("@spinajs/exceptions");
|
|
5
5
|
class EntityTooLargeException extends exceptions_1.Exception {
|
|
6
6
|
}
|
|
7
7
|
exports.EntityTooLargeException = EntityTooLargeException;
|
|
8
|
+
/**
|
|
9
|
+
* Controller-level registration failure (unresolved instance, missing router).
|
|
10
|
+
* Thrown during startup — fail fast, do not start with broken controllers.
|
|
11
|
+
*/
|
|
12
|
+
class ControllerRegistrationException extends exceptions_1.Exception {
|
|
13
|
+
}
|
|
14
|
+
exports.ControllerRegistrationException = ControllerRegistrationException;
|
|
15
|
+
/**
|
|
16
|
+
* Route-level registration failure (unknown route type, unresolvable policy,
|
|
17
|
+
* missing route member). Thrown during startup — fail fast.
|
|
18
|
+
*/
|
|
19
|
+
class RouteRegistrationException extends exceptions_1.Exception {
|
|
20
|
+
}
|
|
21
|
+
exports.RouteRegistrationException = RouteRegistrationException;
|
|
8
22
|
//# sourceMappingURL=exceptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../src/exceptions.ts"],"names":[],"mappings":";;;AAAA,oDAAgD;AAEhD,MAAa,uBAAwB,SAAQ,sBAAS;CAAG;AAAzD,0DAAyD"}
|
|
1
|
+
{"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../src/exceptions.ts"],"names":[],"mappings":";;;AAAA,oDAAgD;AAEhD,MAAa,uBAAwB,SAAQ,sBAAS;CAAG;AAAzD,0DAAyD;AAEzD;;;GAGG;AACH,MAAa,+BAAgC,SAAQ,sBAAS;CAAG;AAAjE,0EAAiE;AAEjE;;;GAGG;AACH,MAAa,0BAA2B,SAAQ,sBAAS;CAAG;AAA5D,gEAA4D"}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -3,6 +3,10 @@ export * from './response-methods/index.js';
|
|
|
3
3
|
export * from './decorators.js';
|
|
4
4
|
export * from './responses.js';
|
|
5
5
|
export * from './route-args/index.js';
|
|
6
|
+
export * from './exceptions.js';
|
|
7
|
+
export * from './base-controller.js';
|
|
8
|
+
export * from './controller-sources.js';
|
|
9
|
+
export * from './route-builder.js';
|
|
6
10
|
export * from './controllers.js';
|
|
7
11
|
export * from './server.js';
|
|
8
12
|
export * from './transformers/index.js';
|
package/lib/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -19,6 +19,10 @@ __exportStar(require("./response-methods/index.js"), exports);
|
|
|
19
19
|
__exportStar(require("./decorators.js"), exports);
|
|
20
20
|
__exportStar(require("./responses.js"), exports);
|
|
21
21
|
__exportStar(require("./route-args/index.js"), exports);
|
|
22
|
+
__exportStar(require("./exceptions.js"), exports);
|
|
23
|
+
__exportStar(require("./base-controller.js"), exports);
|
|
24
|
+
__exportStar(require("./controller-sources.js"), exports);
|
|
25
|
+
__exportStar(require("./route-builder.js"), exports);
|
|
22
26
|
__exportStar(require("./controllers.js"), exports);
|
|
23
27
|
__exportStar(require("./server.js"), exports);
|
|
24
28
|
__exportStar(require("./transformers/index.js"), exports);
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,8DAA4C;AAC5C,kDAAgC;AAChC,iDAA+B;AAC/B,wDAAsC;AACtC,mDAAiC;AACjC,8CAA4B;AAC5B,0DAAwC;AACxC,8DAA4C;AAC5C,iDAA+B;AAC/B,6CAA2B;AAC3B,4DAA0C;AAC1C,gEAA8C;AAC9C,6DAA2C;AAC3C,+DAA6C;AAC7C,wDAAsC;AACtC,sEAAoD;AACpD,gEAA8C;AAC9C,8DAA4C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,8DAA4C;AAC5C,kDAAgC;AAChC,iDAA+B;AAC/B,wDAAsC;AACtC,kDAAgC;AAChC,uDAAqC;AACrC,0DAAwC;AACxC,qDAAmC;AACnC,mDAAiC;AACjC,8CAA4B;AAC5B,0DAAwC;AACxC,8DAA4C;AAC5C,iDAA+B;AAC/B,6CAA2B;AAC3B,4DAA0C;AAC1C,gEAA8C;AAC9C,6DAA2C;AAC3C,+DAA6C;AAC7C,wDAAsC;AACtC,sEAAoD;AACpD,gEAA8C;AAC9C,8DAA4C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestId.d.ts","sourceRoot":"","sources":["../../../src/middlewares/RequestId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAMzE,qBACa,SAAU,SAAQ,gBAAgB;;IAMtC,KAAK,IAAI,IAAI;IAQb,MAAM,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI;
|
|
1
|
+
{"version":3,"file":"RequestId.d.ts","sourceRoot":"","sources":["../../../src/middlewares/RequestId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAMzE,qBACa,SAAU,SAAQ,gBAAgB;;IAMtC,KAAK,IAAI,IAAI;IAQb,MAAM,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI;CA0BtG"}
|