Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

fastify-decorators

Package Overview
Dependencies
Maintainers
1
Versions
52
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fastify-decorators - npm Package Compare versions

Comparing version 4.0.0-next.2 to 4.0.0-next.3

decorators/helpers/swagger-helper.d.ts

20

bootstrap/bootstrap.js

@@ -9,6 +9,7 @@ /**

import fp from 'fastify-plugin';
import { opendirSync, lstatSync } from 'node:fs';
import { lstatSync, opendirSync } from 'node:fs';
import { hooksRegistry } from '../plugins/index.js';
import { CREATOR } from '../symbols/index.js';
import { transformAndWait } from '../utils/transform-and-wait.js';
import { isValidRegistrable } from '../utils/validators.js';
const defaultMask = /\.(handler|controller)\./;

@@ -18,5 +19,5 @@ export const bootstrap = fp(async (fastify, config) => {

if ('directory' in config)
await transformAndWait(autoLoadModules(config), loadController.bind(fastify, config));
await transformAndWait(autoLoadModules(config), loadRegistrable.bind(fastify, config));
if ('controllers' in config)
await transformAndWait(config.controllers, loadController.bind(fastify, config));
await transformAndWait(config.controllers, loadRegistrable.bind(fastify, config));
await transformAndWait(hooksRegistry.appReady, (hook) => hook(fastify));

@@ -61,13 +62,10 @@ fastify.addHook('onClose', () => transformAndWait(hooksRegistry.appDestroy, (hook) => hook(fastify)));

}
function loadController(config, controller) {
if (isValidController(controller)) {
return controller[CREATOR].register(this, config.prefix);
function loadRegistrable(config, constructable) {
if (isValidRegistrable(constructable)) {
return constructable[CREATOR].register(this, config.prefix);
}
else if (!config.skipBroken) {
throw new TypeError(`Loaded file is incorrect module and can not be bootstrapped: ${controller}`);
throw new TypeError(`Loaded file is incorrect module and can not be bootstrapped: ${constructable}`);
}
}
function isValidController(controller) {
return controller && CREATOR in controller;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2Jvb3RzdHJhcC9ib290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0gsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQVksTUFBTSxTQUFTLENBQUM7QUFJM0QsT0FBTyxFQUFFLGFBQWEsRUFBZSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVsRSxNQUFNLFdBQVcsR0FBRywwQkFBMEIsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQXdDLEVBQUUsQ0FDOUQsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtJQUN4QixNQUFNLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRXZFLElBQUksV0FBVyxJQUFJLE1BQU07UUFBRSxNQUFNLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2pILElBQUksYUFBYSxJQUFJLE1BQU07UUFBRSxNQUFNLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUU5RyxNQUFNLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFD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UUFDN0IsTUFBTSxJQUFJLFNBQVMsQ0FBQyxnRUFBZ0UsVUFBVSxFQUFFLENBQUMsQ0FBQztLQUNuRztBQUNILENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLFVBQWtDO0lBQzNELE9BQU8sVUFBVSxJQUFJLE9BQU8sSUFBSSxVQUFVLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZhc3RpZnlJbnN0YW5jZSwgRmFzdGlmeVBsdWdpbkFzeW5jIH0gZnJvbSAnZmFzdGlmeSc7XG5pbXBvcnQgZnAgZnJvbSAnZmFzdGlmeS1wbHVnaW4nO1xuaW1wb3J0IHsgb3BlbmRpclN5bmMsIGxzdGF0U3luYywgUGF0aExpa2UgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB0eXBlIHsgQXV0b0xvYWRDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Jvb3RzdHJhcC1jb25maWcuanMnO1xuaW1wb3J0IHsgQ29uc3RydWN0YWJsZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uc3RydWN0YWJsZS5qcyc7XG5pbXBvcnQgdHlwZSB7IEJvb3RzdHJhcENvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvaW5kZXguanMnO1xuaW1wb3J0IHsgaG9va3NSZWdpc3RyeSwgUmVnaXN0cmFibGUgfSBmcm9tICcuLi9wbHVnaW5zL2luZGV4LmpzJztcbmltcG9ydCB7IENSRUFUT1IgfSBmcm9tICcuLi9zeW1ib2xzL2luZGV4LmpzJztcbmltcG9ydCB7IHRyYW5zZm9ybUFuZFdhaXQgfSBmcm9tICcuLi91dGlscy90cmFuc2Zvcm0tYW5kLXdhaXQuanMnO1xuXG5jb25zdCBkZWZhdWx0TWFzayA9IC9cXC4oaGFuZGxlcnxjb250cm9sbGVyKVxcLi87XG5cbmV4cG9ydCBjb25zdCBib290c3RyYXA6IEZhc3RpZnlQbHVnaW5Bc3luYzxCb290c3RyYXBDb25maWc+ID0gZnA8Qm9vdHN0cmFwQ29uZmlnPihcbiAgYXN5bmMgKGZhc3RpZnksIGNvbmZpZykgPT4ge1xuICAgIGF3YWl0IHRyYW5zZm9ybUFuZFdhaXQoaG9va3NSZWdpc3RyeS5hcHBJbml0LCAoaG9vaykgPT4gaG9vayhmYXN0aWZ5KSk7XG5cbiAgICBpZiAoJ2RpcmVjdG9yeScgaW4gY29uZmlnKSBhd2FpdCB0cmFuc2Zvcm1BbmRXYWl0KGF1dG9Mb2FkTW9kdWxlcyhjb25maWcpLCBsb2FkQ29udHJvbGxlci5iaW5kKGZhc3RpZnksIGNvbmZpZykpO1xuICAgIGlmICgnY29udHJvbGxlcnMnIGluIGNvbmZpZykgYXdhaXQgdHJhbnNmb3JtQW5kV2FpdChjb25maWcuY29udHJvbGxlcnMsIGxvYWRDb250cm9sbGVyLmJpbmQoZmFzdGlmeSwgY29uZmlnKSk7XG5cbiAgICBhd2FpdCB0cmFuc2Zvcm1BbmRXYWl0KGhvb2tzUmVnaXN0cnkuYXBwUmVhZHksIChob29rKSA9PiBob29rKGZhc3RpZnkpKTtcblxuICAgIGZhc3RpZnkuYWRkSG9vaygnb25DbG9zZScsICgpID0+IHRyYW5zZm9ybUFuZFdhaXQoaG9va3NSZWdpc3RyeS5hcHBEZXN0cm95LCAoaG9vaykgPT4gaG9vayhmYXN0aWZ5KSkpO1xuICB9LFxuICB7XG4gICAgZmFzdGlmeTogJ14zLjAuMCB8fCBeNC4wLjAtYWxwaGEuMCB8fCBeNC4wLjAtcmMuMCB8fCBeNC4wLjAnLFxuICAgIG5hbWU6ICdmYXN0aWZ5RGVjb3JhdG9ycycsXG4gIH0sXG4pO1xuXG5mdW5jdGlvbiBhdXRvTG9hZE1vZHVsZXMoY29uZmlnOiBBdXRvTG9hZENvbmZpZyk6IEFzeW5jSXRlcmFibGU8Q29uc3RydWN0YWJsZTx1bmtub3duPj4ge1xuICBjb25zdCBmbGFncyA9IGNvbmZpZy5tYXNrIGluc3RhbmNlb2YgUmVnRXhwID8gY29uZmlnLm1hc2suZmxhZ3MucmVwbGFjZSgnZycsICcnKSA6ICcnO1xuICBjb25zdCBmaWx0ZXIgPSBjb25maWcubWFzayA/IG5ldyBSZWdFeHAoY29uZmlnLm1hc2ssIGZsYWdzKSA6IGRlZmF1bHRNYXNrO1xuXG4gIHJldHVybiByZWFkTW9kdWxlc1JlY3Vyc2l2ZWx5KHBhcnNlUGF0aChjb25maWcuZGlyZWN0b3J5KSwgZmlsdGVyKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VQYXRoKGRpcmVjdG9yeTogUGF0aExpa2UpOiBVUkwge1xuICBjb25zdCB1cmxMaWtlID0gZGlyZWN0b3J5LnRvU3RyaW5nKCd1dGY4Jyk7XG4gIGNvbnN0IHVybCA9IHVybExpa2Uuc3RhcnRzV2l0aCgnZmlsZTovLycpID8gbmV3IFVSTCh1cmxMaWtlKSA6IG5ldyBVUkwoJ2ZpbGU6Ly8nICsgdXJsTGlrZSk7XG5cbiAgaWYgKGxzdGF0U3luYyh1cmwpLmlzRmlsZSgpKSB1cmwucGF0aG5hbWUgKz0gJy4vLi4nO1xuICByZXR1cm4gdXJsO1xufVxuXG5hc3luYyBmdW5jdGlvbiogcmVhZE1vZHVsZXNSZWN1cnNpdmVseShwYXJlbnRVcmw6IFVSTCwgZmlsdGVyOiBSZWdFeHApOiBBc3luY0l0ZXJhYmxlPENvbnN0cnVjdGFibGU8dW5rbm93bj4+IHtcbiAgY29uc3QgZGlyID0gb3BlbmRpclN5bmMocGFyZW50VXJsKTtcbiAgcGFyZW50VXJsLnBhdGhuYW1lICs9ICcvJztcblxuICB0cnkge1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCBkaXJlbnQgPSBhd2FpdCBkaXIucmVhZCgpO1xuICAgICAgaWYgKGRpcmVudCA9PSBudWxsKSByZXR1cm47XG5cbiAgICAgIGNvbnN0IGZ1bGxGaWxlUGF0aCA9IG5ldyBVUkwoZGlyZW50Lm5hbWUsIHBhcmVudFVybCk7XG4gICAgICBpZiAoZGlyZW50LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgeWllbGQqIHJlYWRNb2R1bGVzUmVjdXJzaXZlbHkoZnVsbEZpbGVQYXRoLCBmaWx0ZXIpO1xuICAgICAgfSBlbHNlIGlmIChmaWx0ZXIudGVzdChkaXJlbnQubmFtZSkpIHtcbiAgICAgICAgeWllbGQgaW1wb3J0KGZ1bGxGaWxlUGF0aC50b1N0cmluZygpKS50aGVuKChtKSA9PiBtLmRlZmF1bHQpO1xuICAgICAgfVxuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBkaXIuY2xvc2UoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBsb2FkQ29udHJvbGxlcih0aGlzOiBGYXN0aWZ5SW5zdGFuY2UsIGNvbmZpZzogQm9vdHN0cmFwQ29uZmlnLCBjb250cm9sbGVyOiBDb25zdHJ1Y3RhYmxlPHVua25vd24+KSB7XG4gIGlmIChpc1ZhbGlkQ29udHJvbGxlcihjb250cm9sbGVyKSkge1xuICAgIHJldHVybiBjb250cm9sbGVyW0NSRUFUT1JdLnJlZ2lzdGVyKHRoaXMsIGNvbmZpZy5wcmVmaXgpO1xuICB9IGVsc2UgaWYgKCFjb25maWcuc2tpcEJyb2tlbikge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYExvYWRlZCBmaWxlIGlzIGluY29ycmVjdCBtb2R1bGUgYW5kIGNhbiBub3QgYmUgYm9vdHN0cmFwcGVkOiAke2NvbnRyb2xsZXJ9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNWYWxpZENvbnRyb2xsZXIoY29udHJvbGxlcjogQ29uc3RydWN0YWJsZTx1bmtub3duPik6IGNvbnRyb2xsZXIgaXMgUmVnaXN0cmFibGUge1xuICByZXR1cm4gY29udHJvbGxlciAmJiBDUkVBVE9SIGluIGNvbnRyb2xsZXI7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2Jvb3RzdHJhcC9ib290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0gsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQVksTUFBTSxTQUFTLENBQUM7QUFHM0QsT0FBTyxFQUFpQixhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsTUFBTSxXQUFXLEdBQUcsMEJBQTBCLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUF3QyxFQUFFLENBQzlELEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDeEIsTUFBTSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUV2RSxJQUFJLFdBQVcsSUFBSSxNQUFNO1FBQUUsTUFBTSxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNsSCxJQUFJLGFBQWEsSUFBSSxNQUFNO1FBQUUsTUFBTSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFL0csTUFBTSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUV4RSxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hHLENBQUMsRUFDRDtJQUNFLE9BQU8sRUFBRSxtREFBbUQ7SUFDNUQsSUFBSSxFQUFFLG1CQUFtQjtDQUMxQixDQUNGLENBQUM7QUFFRixTQUFTLGVBQWUsQ0FBQyxNQUFzQjtJQUM3QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxZQUFZLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3RGLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUUxRSxPQUFPLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDckUsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLFNBQW1CO0lBQ3BDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUU1RixJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUU7UUFBRSxHQUFHLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQztJQUNwRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxLQUFLLFNBQVMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLFNBQWMsRUFBRSxNQUFjO0lBQ25FLE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuQyxTQUFTLENBQUMsUUFBUSxJQUFJLEdBQUcsQ0FBQztJQUUxQixJQUFJO1FBQ0YsT0FBTyxJQUFJLEVBQUU7WUFDWCxNQUFNLE1BQU0sR0FBRyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQyxJQUFJLE1BQU0sSUFBSSxJQUFJO2dCQUFFLE9BQU87WUFFM0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNyRCxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDeEIsS0FBSyxDQUFDLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ3JEO2lCQUFNLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ25DLE1BQU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzlEO1NBQ0Y7S0FDRjtZQUFTO1FBQ1IsTUFBTSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7S0FDbkI7QUFDSCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQTJCLE1BQXVCLEVBQUUsYUFBK0I7SUFDekcsSUFBSSxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUNyQyxPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUM3RDtTQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO1FBQzdCLE1BQU0sSUFBSSxTQUFTLENBQUMsZ0VBQWdFLGFBQWEsRUFBRSxDQUFDLENBQUM7S0FDdEc7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB0eXBlIHsgRmFzdGlmeUluc3RhbmNlLCBGYXN0aWZ5UGx1Z2luQXN5bmMgfSBmcm9tICdmYXN0aWZ5JztcbmltcG9ydCBmcCBmcm9tICdmYXN0aWZ5LXBsdWdpbic7XG5pbXBvcnQgeyBsc3RhdFN5bmMsIG9wZW5kaXJTeW5jLCBQYXRoTGlrZSB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHR5cGUgeyBBdXRvTG9hZENvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvYm9vdHN0cmFwLWNvbmZpZy5qcyc7XG5pbXBvcnQgdHlwZSB7IEJvb3RzdHJhcENvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvaW5kZXguanMnO1xuaW1wb3J0IHsgQ29uc3RydWN0YWJsZSwgaG9va3NSZWdpc3RyeSB9IGZyb20gJy4uL3BsdWdpbnMvaW5kZXguanMnO1xuaW1wb3J0IHsgQ1JFQVRPUiB9IGZyb20gJy4uL3N5bWJvbHMvaW5kZXguanMnO1xuaW1wb3J0IHsgdHJhbnNmb3JtQW5kV2FpdCB9IGZyb20gJy4uL3V0aWxzL3RyYW5zZm9ybS1hbmQtd2FpdC5qcyc7XG5pbXBvcnQgeyBpc1ZhbGlkUmVnaXN0cmFibGUgfSBmcm9tICcuLi91dGlscy92YWxpZGF0b3JzLmpzJztcblxuY29uc3QgZGVmYXVsdE1hc2sgPSAvXFwuKGhhbmRsZXJ8Y29udHJvbGxlcilcXC4vO1xuXG5leHBvcnQgY29uc3QgYm9vdHN0cmFwOiBGYXN0aWZ5UGx1Z2luQXN5bmM8Qm9vdHN0cmFwQ29uZmlnPiA9IGZwPEJvb3RzdHJhcENvbmZpZz4oXG4gIGFzeW5jIChmYXN0aWZ5LCBjb25maWcpID0+IHtcbiAgICBhd2FpdCB0cmFuc2Zvcm1BbmRXYWl0KGhvb2tzUmVnaXN0cnkuYXBwSW5pdCwgKGhvb2spID0+IGhvb2soZmFzdGlmeSkpO1xuXG4gICAgaWYgKCdkaXJlY3RvcnknIGluIGNvbmZpZykgYXdhaXQgdHJhbnNmb3JtQW5kV2FpdChhdXRvTG9hZE1vZHVsZXMoY29uZmlnKSwgbG9hZFJlZ2lzdHJhYmxlLmJpbmQoZmFzdGlmeSwgY29uZmlnKSk7XG4gICAgaWYgKCdjb250cm9sbGVycycgaW4gY29uZmlnKSBhd2FpdCB0cmFuc2Zvcm1BbmRXYWl0KGNvbmZpZy5jb250cm9sbGVycywgbG9hZFJlZ2lzdHJhYmxlLmJpbmQoZmFzdGlmeSwgY29uZmlnKSk7XG5cbiAgICBhd2FpdCB0cmFuc2Zvcm1BbmRXYWl0KGhvb2tzUmVnaXN0cnkuYXBwUmVhZHksIChob29rKSA9PiBob29rKGZhc3RpZnkpKTtcblxuICAgIGZhc3RpZnkuYWRkSG9vaygnb25DbG9zZScsICgpID0+IHRyYW5zZm9ybUFuZFdhaXQoaG9va3NSZWdpc3RyeS5hcHBEZXN0cm95LCAoaG9vaykgPT4gaG9vayhmYXN0aWZ5KSkpO1xuICB9LFxuICB7XG4gICAgZmFzdGlmeTogJ14zLjAuMCB8fCBeNC4wLjAtYWxwaGEuMCB8fCBeNC4wLjAtcmMuMCB8fCBeNC4wLjAnLFxuICAgIG5hbWU6ICdmYXN0aWZ5RGVjb3JhdG9ycycsXG4gIH0sXG4pO1xuXG5mdW5jdGlvbiBhdXRvTG9hZE1vZHVsZXMoY29uZmlnOiBBdXRvTG9hZENvbmZpZyk6IEFzeW5jSXRlcmFibGU8Q29uc3RydWN0YWJsZTx1bmtub3duPj4ge1xuICBjb25zdCBmbGFncyA9IGNvbmZpZy5tYXNrIGluc3RhbmNlb2YgUmVnRXhwID8gY29uZmlnLm1hc2suZmxhZ3MucmVwbGFjZSgnZycsICcnKSA6ICcnO1xuICBjb25zdCBmaWx0ZXIgPSBjb25maWcubWFzayA/IG5ldyBSZWdFeHAoY29uZmlnLm1hc2ssIGZsYWdzKSA6IGRlZmF1bHRNYXNrO1xuXG4gIHJldHVybiByZWFkTW9kdWxlc1JlY3Vyc2l2ZWx5KHBhcnNlUGF0aChjb25maWcuZGlyZWN0b3J5KSwgZmlsdGVyKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VQYXRoKGRpcmVjdG9yeTogUGF0aExpa2UpOiBVUkwge1xuICBjb25zdCB1cmxMaWtlID0gZGlyZWN0b3J5LnRvU3RyaW5nKCd1dGY4Jyk7XG4gIGNvbnN0IHVybCA9IHVybExpa2Uuc3RhcnRzV2l0aCgnZmlsZTovLycpID8gbmV3IFVSTCh1cmxMaWtlKSA6IG5ldyBVUkwoJ2ZpbGU6Ly8nICsgdXJsTGlrZSk7XG5cbiAgaWYgKGxzdGF0U3luYyh1cmwpLmlzRmlsZSgpKSB1cmwucGF0aG5hbWUgKz0gJy4vLi4nO1xuICByZXR1cm4gdXJsO1xufVxuXG5hc3luYyBmdW5jdGlvbiogcmVhZE1vZHVsZXNSZWN1cnNpdmVseShwYXJlbnRVcmw6IFVSTCwgZmlsdGVyOiBSZWdFeHApOiBBc3luY0l0ZXJhYmxlPENvbnN0cnVjdGFibGU8dW5rbm93bj4+IHtcbiAgY29uc3QgZGlyID0gb3BlbmRpclN5bmMocGFyZW50VXJsKTtcbiAgcGFyZW50VXJsLnBhdGhuYW1lICs9ICcvJztcblxuICB0cnkge1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCBkaXJlbnQgPSBhd2FpdCBkaXIucmVhZCgpO1xuICAgICAgaWYgKGRpcmVudCA9PSBudWxsKSByZXR1cm47XG5cbiAgICAgIGNvbnN0IGZ1bGxGaWxlUGF0aCA9IG5ldyBVUkwoZGlyZW50Lm5hbWUsIHBhcmVudFVybCk7XG4gICAgICBpZiAoZGlyZW50LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgeWllbGQqIHJlYWRNb2R1bGVzUmVjdXJzaXZlbHkoZnVsbEZpbGVQYXRoLCBmaWx0ZXIpO1xuICAgICAgfSBlbHNlIGlmIChmaWx0ZXIudGVzdChkaXJlbnQubmFtZSkpIHtcbiAgICAgICAgeWllbGQgaW1wb3J0KGZ1bGxGaWxlUGF0aC50b1N0cmluZygpKS50aGVuKChtKSA9PiBtLmRlZmF1bHQpO1xuICAgICAgfVxuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBkaXIuY2xvc2UoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBsb2FkUmVnaXN0cmFibGU8VD4odGhpczogRmFzdGlmeUluc3RhbmNlLCBjb25maWc6IEJvb3RzdHJhcENvbmZpZywgY29uc3RydWN0YWJsZTogQ29uc3RydWN0YWJsZTxUPik6IFByb21pc2U8dm9pZD4gfCB2b2lkIHtcbiAgaWYgKGlzVmFsaWRSZWdpc3RyYWJsZShjb25zdHJ1Y3RhYmxlKSkge1xuICAgIHJldHVybiBjb25zdHJ1Y3RhYmxlW0NSRUFUT1JdLnJlZ2lzdGVyKHRoaXMsIGNvbmZpZy5wcmVmaXgpO1xuICB9IGVsc2UgaWYgKCFjb25maWcuc2tpcEJyb2tlbikge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYExvYWRlZCBmaWxlIGlzIGluY29ycmVjdCBtb2R1bGUgYW5kIGNhbiBub3QgYmUgYm9vdHN0cmFwcGVkOiAke2NvbnN0cnVjdGFibGV9YCk7XG4gIH1cbn1cbiJdfQ==

@@ -15,7 +15,7 @@ /**

config = { route: config };
return { type: ControllerType.SINGLETON, route: '/', ...config };
return { type: ControllerType.SINGLETON, route: '/', tags: [], ...config };
}
export function Controller(config) {
return (controller) => {
const { route, type } = makeConfig(config);
const { route, type, tags } = makeConfig(config);
injectControllerOptions(controller);

@@ -25,3 +25,3 @@ controller[CREATOR].register = async (instance, prefix = '') => {

await instance.register(async (instance) => {
controllerInstance = ControllerTypeStrategies[type](instance, controller);
controllerInstance = ControllerTypeStrategies[type](instance, controller, tags);
}, { prefix: prefix + route });

@@ -32,2 +32,2 @@ return controllerInstance;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9kZWNvcmF0b3JzL2NvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBS0gsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUzRSxTQUFTLFVBQVUsQ0FBQyxNQUFrQztJQUNwRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVE7UUFBRSxNQUFNLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFFM0QsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztBQUNuRSxDQUFDO0FBUUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxNQUFrQztJQUMzRCxPQUFPLENBQUMsVUFBdUIsRUFBUSxFQUFFO1FBQ3ZDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTNDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXBDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEdBQUcsS0FBSyxFQUFFLFFBQXlCLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxFQUFFO1lBQzlFLElBQUksa0JBQWtCLENBQUM7WUFFdkIsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUNyQixLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLGtCQUFrQixHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUM1RSxDQUFDLEVBQ0QsRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLEtBQUssRUFBRSxDQUMzQixDQUFDO1lBRUYsT0FBTyxrQkFBa0IsQ0FBQztRQUM1QixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB0eXBlIHsgRmFzdGlmeUluc3RhbmNlIH0gZnJvbSAnZmFzdGlmeSc7XG5pbXBvcnQgdHlwZSB7IENvbnRyb2xsZXJDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2luZGV4LmpzJztcbmltcG9ydCB7IFJlZ2lzdHJhYmxlIH0gZnJvbSAnLi4vcGx1Z2lucy9zaGFyZWQtaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgeyBDb250cm9sbGVyVHlwZSB9IGZyb20gJy4uL3JlZ2lzdHJ5L2NvbnRyb2xsZXItdHlwZS5qcyc7XG5pbXBvcnQgeyBDUkVBVE9SIH0gZnJvbSAnLi4vc3ltYm9scy9pbmRleC5qcyc7XG5pbXBvcnQgeyBpbmplY3RDb250cm9sbGVyT3B0aW9ucyB9IGZyb20gJy4vaGVscGVycy9pbmplY3QtY29udHJvbGxlci1vcHRpb25zLmpzJztcbmltcG9ydCB7IENvbnRyb2xsZXJUeXBlU3RyYXRlZ2llcyB9IGZyb20gJy4vc3RyYXRlZ2llcy9jb250cm9sbGVyLXR5cGUuanMnO1xuXG5mdW5jdGlvbiBtYWtlQ29uZmlnKGNvbmZpZz86IHN0cmluZyB8IENvbnRyb2xsZXJDb25maWcpOiBDb250cm9sbGVyQ29uZmlnICYgeyB0eXBlOiBDb250cm9sbGVyVHlwZSB9IHtcbiAgaWYgKHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnKSBjb25maWcgPSB7IHJvdXRlOiBjb25maWcgfTtcblxuICByZXR1cm4geyB0eXBlOiBDb250cm9sbGVyVHlwZS5TSU5HTEVUT04sIHJvdXRlOiAnLycsIC4uLmNvbmZpZyB9O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgcmVnaXN0ZXIgbWV0aG9kIG9uIGNvbnRyb2xsZXIgdG8gYWxsb3cgYm9vdHN0cmFwIGl0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDb250cm9sbGVyKCk6IENsYXNzRGVjb3JhdG9yO1xuZXhwb3J0IGZ1bmN0aW9uIENvbnRyb2xsZXIocm91dGU6IHN0cmluZyk6IENsYXNzRGVjb3JhdG9yO1xuZXhwb3J0IGZ1bmN0aW9uIENvbnRyb2xsZXIoY29uZmlnOiBDb250cm9sbGVyQ29uZmlnKTogQ2xhc3NEZWNvcmF0b3I7XG5leHBvcnQgZnVuY3Rpb24gQ29udHJvbGxlcihjb25maWc/OiBzdHJpbmcgfCBDb250cm9sbGVyQ29uZmlnKTogdW5rbm93biB7XG4gIHJldHVybiAoY29udHJvbGxlcjogUmVnaXN0cmFibGUpOiB2b2lkID0+IHtcbiAgICBjb25zdCB7IHJvdXRlLCB0eXBlIH0gPSBtYWtlQ29uZmlnKGNvbmZpZyk7XG5cbiAgICBpbmplY3RDb250cm9sbGVyT3B0aW9ucyhjb250cm9sbGVyKTtcblxuICAgIGNvbnRyb2xsZXJbQ1JFQVRPUl0ucmVnaXN0ZXIgPSBhc3luYyAoaW5zdGFuY2U6IEZhc3RpZnlJbnN0YW5jZSwgcHJlZml4ID0gJycpID0+IHtcbiAgICAgIGxldCBjb250cm9sbGVySW5zdGFuY2U7XG5cbiAgICAgIGF3YWl0IGluc3RhbmNlLnJlZ2lzdGVyKFxuICAgICAgICBhc3luYyAoaW5zdGFuY2UpID0+IHtcbiAgICAgICAgICBjb250cm9sbGVySW5zdGFuY2UgPSBDb250cm9sbGVyVHlwZVN0cmF0ZWdpZXNbdHlwZV0oaW5zdGFuY2UsIGNvbnRyb2xsZXIpO1xuICAgICAgICB9LFxuICAgICAgICB7IHByZWZpeDogcHJlZml4ICsgcm91dGUgfSxcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBjb250cm9sbGVySW5zdGFuY2U7XG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9kZWNvcmF0b3JzL2NvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBS0gsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUzRSxTQUFTLFVBQVUsQ0FBQyxNQUFrQztJQUNwRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVE7UUFBRSxNQUFNLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFFM0QsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQzdFLENBQUM7QUFRRCxNQUFNLFVBQVUsVUFBVSxDQUFDLE1BQWtDO0lBQzNELE9BQU8sQ0FBQyxVQUF1QixFQUFRLEVBQUU7UUFDdkMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpELHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXBDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEdBQUcsS0FBSyxFQUFFLFFBQXlCLEVBQUUsTUFBTSxHQUFHLEVBQUUsRUFBRSxFQUFFO1lBQzlFLElBQUksa0JBQWtCLENBQUM7WUFFdkIsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUNyQixLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLGtCQUFrQixHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbEYsQ0FBQyxFQUNELEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxLQUFLLEVBQUUsQ0FDM0IsQ0FBQztZQUVGLE9BQU8sa0JBQWtCLENBQUM7UUFDNUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZhc3RpZnlJbnN0YW5jZSB9IGZyb20gJ2Zhc3RpZnknO1xuaW1wb3J0IHR5cGUgeyBDb250cm9sbGVyQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pbmRleC5qcyc7XG5pbXBvcnQgeyBSZWdpc3RyYWJsZSB9IGZyb20gJy4uL3BsdWdpbnMvc2hhcmVkLWludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgQ29udHJvbGxlclR5cGUgfSBmcm9tICcuLi9yZWdpc3RyeS9jb250cm9sbGVyLXR5cGUuanMnO1xuaW1wb3J0IHsgQ1JFQVRPUiB9IGZyb20gJy4uL3N5bWJvbHMvaW5kZXguanMnO1xuaW1wb3J0IHsgaW5qZWN0Q29udHJvbGxlck9wdGlvbnMgfSBmcm9tICcuL2hlbHBlcnMvaW5qZWN0LWNvbnRyb2xsZXItb3B0aW9ucy5qcyc7XG5pbXBvcnQgeyBDb250cm9sbGVyVHlwZVN0cmF0ZWdpZXMgfSBmcm9tICcuL3N0cmF0ZWdpZXMvY29udHJvbGxlci10eXBlLmpzJztcblxuZnVuY3Rpb24gbWFrZUNvbmZpZyhjb25maWc/OiBzdHJpbmcgfCBDb250cm9sbGVyQ29uZmlnKTogUmVxdWlyZWQ8Q29udHJvbGxlckNvbmZpZz4ge1xuICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ3N0cmluZycpIGNvbmZpZyA9IHsgcm91dGU6IGNvbmZpZyB9O1xuXG4gIHJldHVybiB7IHR5cGU6IENvbnRyb2xsZXJUeXBlLlNJTkdMRVRPTiwgcm91dGU6ICcvJywgdGFnczogW10sIC4uLmNvbmZpZyB9O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgcmVnaXN0ZXIgbWV0aG9kIG9uIGNvbnRyb2xsZXIgdG8gYWxsb3cgYm9vdHN0cmFwIGl0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDb250cm9sbGVyKCk6IENsYXNzRGVjb3JhdG9yO1xuZXhwb3J0IGZ1bmN0aW9uIENvbnRyb2xsZXIocm91dGU6IHN0cmluZyk6IENsYXNzRGVjb3JhdG9yO1xuZXhwb3J0IGZ1bmN0aW9uIENvbnRyb2xsZXIoY29uZmlnOiBDb250cm9sbGVyQ29uZmlnKTogQ2xhc3NEZWNvcmF0b3I7XG5leHBvcnQgZnVuY3Rpb24gQ29udHJvbGxlcihjb25maWc/OiBzdHJpbmcgfCBDb250cm9sbGVyQ29uZmlnKTogdW5rbm93biB7XG4gIHJldHVybiAoY29udHJvbGxlcjogUmVnaXN0cmFibGUpOiB2b2lkID0+IHtcbiAgICBjb25zdCB7IHJvdXRlLCB0eXBlLCB0YWdzIH0gPSBtYWtlQ29uZmlnKGNvbmZpZyk7XG5cbiAgICBpbmplY3RDb250cm9sbGVyT3B0aW9ucyhjb250cm9sbGVyKTtcblxuICAgIGNvbnRyb2xsZXJbQ1JFQVRPUl0ucmVnaXN0ZXIgPSBhc3luYyAoaW5zdGFuY2U6IEZhc3RpZnlJbnN0YW5jZSwgcHJlZml4ID0gJycpID0+IHtcbiAgICAgIGxldCBjb250cm9sbGVySW5zdGFuY2U7XG5cbiAgICAgIGF3YWl0IGluc3RhbmNlLnJlZ2lzdGVyKFxuICAgICAgICBhc3luYyAoaW5zdGFuY2UpID0+IHtcbiAgICAgICAgICBjb250cm9sbGVySW5zdGFuY2UgPSBDb250cm9sbGVyVHlwZVN0cmF0ZWdpZXNbdHlwZV0oaW5zdGFuY2UsIGNvbnRyb2xsZXIsIHRhZ3MpO1xuICAgICAgICB9LFxuICAgICAgICB7IHByZWZpeDogcHJlZml4ICsgcm91dGUgfSxcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBjb250cm9sbGVySW5zdGFuY2U7XG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==

@@ -8,5 +8,5 @@ /**

*/
import type { Constructable } from '../interfaces/constructable.js';
import type { Constructable } from '../plugins/index.js';
export declare function ErrorHandler(): PropertyDecorator;
export declare function ErrorHandler(code: string): PropertyDecorator;
export declare function ErrorHandler<T extends Error>(configuration: Constructable<T>): PropertyDecorator;

@@ -27,2 +27,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9kZWNvcmF0b3JzL2Vycm9yLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBSUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBS3BFLE1BQU0sVUFBVSxZQUFZLENBQTZCLFNBQXNCO0lBQzdFLE9BQU8sVUFBVSxFQUFFLFdBQVcsRUFBTyxFQUFFLFdBQTRCO1FBQ2pFLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWpDLElBQUksU0FBUyxJQUFJLElBQUksRUFBRTtZQUNyQixXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztTQUMzRTthQUFNLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFO1lBQ3hDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksS0FBSyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztTQUNySDthQUFNO1lBQ0wsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLEtBQUssWUFBWSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztTQUM5RztJQUNILENBQUMsQ0FBQztBQUNKLENBQUM7QUFNRCxTQUFTLGNBQWMsQ0FBQyxPQUFnRCxFQUFFLFdBQTRCO0lBQ3BHLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7QUFDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdGFibGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbnN0cnVjdGFibGUuanMnO1xuaW1wb3J0IHR5cGUgeyBJRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pbmRleC5qcyc7XG5pbXBvcnQgeyBFUlJPUl9IQU5ETEVSUyB9IGZyb20gJy4uL3N5bWJvbHMvaW5kZXguanMnO1xuaW1wb3J0IHsgZW5zdXJlRXJyb3JIYW5kbGVycyB9IGZyb20gJy4vaGVscGVycy9jbGFzcy1wcm9wZXJ0aWVzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIEVycm9ySGFuZGxlcigpOiBQcm9wZXJ0eURlY29yYXRvcjtcbmV4cG9ydCBmdW5jdGlvbiBFcnJvckhhbmRsZXIoY29kZTogc3RyaW5nKTogUHJvcGVydHlEZWNvcmF0b3I7XG5leHBvcnQgZnVuY3Rpb24gRXJyb3JIYW5kbGVyPFQgZXh0ZW5kcyBFcnJvcj4oY29uZmlndXJhdGlvbjogQ29uc3RydWN0YWJsZTxUPik6IFByb3BlcnR5RGVjb3JhdG9yO1xuZXhwb3J0IGZ1bmN0aW9uIEVycm9ySGFuZGxlcjxUIGV4dGVuZHMgRXJyb3JDb25zdHJ1Y3Rvcj4ocGFyYW1ldGVyPzogVCB8IHN0cmluZyk6IFByb3BlcnR5RGVjb3JhdG9yIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh7IGNvbnN0cnVjdG9yIH06IGFueSwgaGFuZGxlck5hbWU6IHN0cmluZyB8IHN5bWJvbCkge1xuICAgIGVuc3VyZUVycm9ySGFuZGxlcnMoY29uc3RydWN0b3IpO1xuXG4gICAgaWYgKHBhcmFtZXRlciA9PSBudWxsKSB7XG4gICAgICBjb25zdHJ1Y3RvcltFUlJPUl9IQU5ETEVSU10ucHVzaChoYW5kbGVyRmFjdG9yeSgoKSA9PiB0cnVlLCBoYW5kbGVyTmFtZSkpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHBhcmFtZXRlciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0cnVjdG9yW0VSUk9SX0hBTkRMRVJTXS5wdXNoKGhhbmRsZXJGYWN0b3J5KChlcnJvcj86IEVycm9yV2l0aENvZGUpID0+IGVycm9yPy5jb2RlID09PSBwYXJhbWV0ZXIsIGhhbmRsZXJOYW1lKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0cnVjdG9yW0VSUk9SX0hBTkRMRVJTXS5wdXNoKGhhbmRsZXJGYWN0b3J5KChlcnJvcj86IEVycm9yKSA9PiBlcnJvciBpbnN0YW5jZW9mIHBhcmFtZXRlciwgaGFuZGxlck5hbWUpKTtcbiAgICB9XG4gIH07XG59XG5cbmludGVyZmFjZSBFcnJvcldpdGhDb2RlIGV4dGVuZHMgRXJyb3Ige1xuICBjb2RlPzogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVyRmFjdG9yeShhY2NlcHRzOiA8VCBleHRlbmRzIEVycm9yPihlcnJvcj86IFQpID0+IGJvb2xlYW4sIGhhbmRsZXJOYW1lOiBzdHJpbmcgfCBzeW1ib2wpOiBJRXJyb3JIYW5kbGVyIHtcbiAgcmV0dXJuIHsgYWNjZXB0cywgaGFuZGxlck5hbWUgfTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9kZWNvcmF0b3JzL2Vycm9yLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBSUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBS3BFLE1BQU0sVUFBVSxZQUFZLENBQTZCLFNBQXNCO0lBQzdFLE9BQU8sVUFBVSxFQUFFLFdBQVcsRUFBd0IsRUFBRSxXQUE0QjtRQUNsRixtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVqQyxJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDckIsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDM0U7YUFBTSxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRTtZQUN4QyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEtBQXFCLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEtBQUssU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDckg7YUFBTTtZQUNMLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDOUc7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDO0FBTUQsU0FBUyxjQUFjLENBQUMsT0FBZ0QsRUFBRSxXQUE0QjtJQUNwRyxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO0FBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBJRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pbmRleC5qcyc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdGFibGUgfSBmcm9tICcuLi9wbHVnaW5zL2luZGV4LmpzJztcbmltcG9ydCB7IEVSUk9SX0hBTkRMRVJTIH0gZnJvbSAnLi4vc3ltYm9scy9pbmRleC5qcyc7XG5pbXBvcnQgeyBlbnN1cmVFcnJvckhhbmRsZXJzIH0gZnJvbSAnLi9oZWxwZXJzL2NsYXNzLXByb3BlcnRpZXMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gRXJyb3JIYW5kbGVyKCk6IFByb3BlcnR5RGVjb3JhdG9yO1xuZXhwb3J0IGZ1bmN0aW9uIEVycm9ySGFuZGxlcihjb2RlOiBzdHJpbmcpOiBQcm9wZXJ0eURlY29yYXRvcjtcbmV4cG9ydCBmdW5jdGlvbiBFcnJvckhhbmRsZXI8VCBleHRlbmRzIEVycm9yPihjb25maWd1cmF0aW9uOiBDb25zdHJ1Y3RhYmxlPFQ+KTogUHJvcGVydHlEZWNvcmF0b3I7XG5leHBvcnQgZnVuY3Rpb24gRXJyb3JIYW5kbGVyPFQgZXh0ZW5kcyBFcnJvckNvbnN0cnVjdG9yPihwYXJhbWV0ZXI/OiBUIHwgc3RyaW5nKTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICByZXR1cm4gZnVuY3Rpb24gKHsgY29uc3RydWN0b3IgfTogeyBjb25zdHJ1Y3RvcjogYW55IH0sIGhhbmRsZXJOYW1lOiBzdHJpbmcgfCBzeW1ib2wpIHtcbiAgICBlbnN1cmVFcnJvckhhbmRsZXJzKGNvbnN0cnVjdG9yKTtcblxuICAgIGlmIChwYXJhbWV0ZXIgPT0gbnVsbCkge1xuICAgICAgY29uc3RydWN0b3JbRVJST1JfSEFORExFUlNdLnB1c2goaGFuZGxlckZhY3RvcnkoKCkgPT4gdHJ1ZSwgaGFuZGxlck5hbWUpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBwYXJhbWV0ZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdHJ1Y3RvcltFUlJPUl9IQU5ETEVSU10ucHVzaChoYW5kbGVyRmFjdG9yeSgoZXJyb3I/OiBFcnJvcldpdGhDb2RlKSA9PiBlcnJvcj8uY29kZSA9PT0gcGFyYW1ldGVyLCBoYW5kbGVyTmFtZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdHJ1Y3RvcltFUlJPUl9IQU5ETEVSU10ucHVzaChoYW5kbGVyRmFjdG9yeSgoZXJyb3I/OiBFcnJvcikgPT4gZXJyb3IgaW5zdGFuY2VvZiBwYXJhbWV0ZXIsIGhhbmRsZXJOYW1lKSk7XG4gICAgfVxuICB9O1xufVxuXG5pbnRlcmZhY2UgRXJyb3JXaXRoQ29kZSBleHRlbmRzIEVycm9yIHtcbiAgY29kZT86IHN0cmluZztcbn1cblxuZnVuY3Rpb24gaGFuZGxlckZhY3RvcnkoYWNjZXB0czogPFQgZXh0ZW5kcyBFcnJvcj4oZXJyb3I/OiBUKSA9PiBib29sZWFuLCBoYW5kbGVyTmFtZTogc3RyaW5nIHwgc3ltYm9sKTogSUVycm9ySGFuZGxlciB7XG4gIHJldHVybiB7IGFjY2VwdHMsIGhhbmRsZXJOYW1lIH07XG59XG4iXX0=

@@ -8,3 +8,3 @@ /**

*/
import { IErrorHandler, IHandler, IHook } from '../../interfaces/controller.js';
import { IErrorHandler, IHandler, IHook } from '../../interfaces/index.js';
import { ERROR_HANDLERS, HANDLERS, HOOKS } from '../../symbols/index.js';

@@ -16,3 +16,3 @@ export declare function ensureHandlers(val: {

};
export declare function hasHandlers<Constructor>(val: Constructor): val is Constructor & {
export declare function hasHandlers<Class>(val: Class): val is Class & {
[HANDLERS]: IHandler[];

@@ -25,3 +25,3 @@ };

};
export declare function hasErrorHandlers<T>(val: T): val is T & {
export declare function hasErrorHandlers<Class>(val: Class): val is Class & {
[ERROR_HANDLERS]: IErrorHandler[];

@@ -34,4 +34,4 @@ };

};
export declare function hasHooks<T>(val: T): val is T & {
export declare function hasHooks<Class>(val: Class): val is Class & {
[HOOKS]: IHook[];
};

@@ -48,2 +48,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtcHJvcGVydGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9kZWNvcmF0b3JzL2hlbHBlcnMvY2xhc3MtcHJvcGVydGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFHSCxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RSxNQUFNLFVBQVUsY0FBYyxDQUFDLEdBQWdDO0lBQzdELElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxHQUFHLENBQUMsRUFBRTtRQUN0QixPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUU7WUFDcEMsS0FBSyxFQUFFLEVBQUU7WUFDVCxVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsS0FBSztZQUNuQixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQUM7S0FDSjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFjLEdBQWdCO0lBQ3ZELE9BQU8sUUFBUSxJQUFJLEdBQUcsQ0FBQztBQUN6QixDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEdBQTJDO0lBQzdFLElBQUksQ0FBQyxDQUFDLGNBQWMsSUFBSSxHQUFHLENBQUMsRUFBRTtRQUM1QixPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxjQUFjLEVBQUU7WUFDMUMsS0FBSyxFQUFFLEVBQUU7WUFDVCxVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsS0FBSztZQUNuQixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQUM7S0FDSjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUksR0FBTTtJQUN4QyxPQUFPLGNBQWMsSUFBSSxHQUFHLENBQUM7QUFDL0IsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsR0FBMEI7SUFDcEQsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxFQUFFO1FBQ25CLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRTtZQUNqQyxLQUFLLEVBQUUsRUFBRTtZQUNULFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFlBQVksRUFBRSxLQUFLO1lBQ25CLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUMsQ0FBQztLQUNKO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRLENBQUksR0FBTTtJQUNoQyxPQUFPLEtBQUssSUFBSSxHQUFHLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBJRXJyb3JIYW5kbGVyLCBJSGFuZGxlciwgSUhvb2sgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2NvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHsgRVJST1JfSEFORExFUlMsIEhBTkRMRVJTLCBIT09LUyB9IGZyb20gJy4uLy4uL3N5bWJvbHMvaW5kZXguanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlSGFuZGxlcnModmFsOiB7IFtIQU5ETEVSU10/OiBJSGFuZGxlcltdIH0pOiBhc3NlcnRzIHZhbCBpcyB7IFtIQU5ETEVSU106IElIYW5kbGVyW10gfSB7XG4gIGlmICghKEhBTkRMRVJTIGluIHZhbCkpIHtcbiAgICBSZWZsZWN0LmRlZmluZVByb3BlcnR5KHZhbCwgSEFORExFUlMsIHtcbiAgICAgIHZhbHVlOiBbXSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSGFuZGxlcnM8Q29uc3RydWN0b3I+KHZhbDogQ29uc3RydWN0b3IpOiB2YWwgaXMgQ29uc3RydWN0b3IgJiB7IFtIQU5ETEVSU106IElIYW5kbGVyW10gfSB7XG4gIHJldHVybiBIQU5ETEVSUyBpbiB2YWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVFcnJvckhhbmRsZXJzKHZhbDogeyBbRVJST1JfSEFORExFUlNdPzogSUVycm9ySGFuZGxlcltdIH0pOiBhc3NlcnRzIHZhbCBpcyB7IFtFUlJPUl9IQU5ETEVSU106IElFcnJvckhhbmRsZXJbXSB9IHtcbiAgaWYgKCEoRVJST1JfSEFORExFUlMgaW4gdmFsKSkge1xuICAgIFJlZmxlY3QuZGVmaW5lUHJvcGVydHkodmFsLCBFUlJPUl9IQU5ETEVSUywge1xuICAgICAgdmFsdWU6IFtdLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNFcnJvckhhbmRsZXJzPFQ+KHZhbDogVCk6IHZhbCBpcyBUICYgeyBbRVJST1JfSEFORExFUlNdOiBJRXJyb3JIYW5kbGVyW10gfSB7XG4gIHJldHVybiBFUlJPUl9IQU5ETEVSUyBpbiB2YWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVIb29rcyh2YWw6IHsgW0hPT0tTXT86IElIb29rW10gfSk6IGFzc2VydHMgdmFsIGlzIHsgW0hPT0tTXTogSUhvb2tbXSB9IHtcbiAgaWYgKCEoSE9PS1MgaW4gdmFsKSkge1xuICAgIFJlZmxlY3QuZGVmaW5lUHJvcGVydHkodmFsLCBIT09LUywge1xuICAgICAgdmFsdWU6IFtdLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNIb29rczxUPih2YWw6IFQpOiB2YWwgaXMgVCAmIHsgW0hPT0tTXTogSUhvb2tbXSB9IHtcbiAgcmV0dXJuIEhPT0tTIGluIHZhbDtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtcHJvcGVydGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9kZWNvcmF0b3JzL2hlbHBlcnMvY2xhc3MtcHJvcGVydGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFHSCxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RSxNQUFNLFVBQVUsY0FBYyxDQUFDLEdBQWdDO0lBQzdELElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxHQUFHLENBQUMsRUFBRTtRQUN0QixPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUU7WUFDcEMsS0FBSyxFQUFFLEVBQUU7WUFDVCxVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsS0FBSztZQUNuQixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQUM7S0FDSjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFRLEdBQVU7SUFDM0MsT0FBTyxRQUFRLElBQUksR0FBRyxDQUFDO0FBQ3pCLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsR0FBMkM7SUFDN0UsSUFBSSxDQUFDLENBQUMsY0FBYyxJQUFJLEdBQUcsQ0FBQyxFQUFFO1FBQzVCLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLGNBQWMsRUFBRTtZQUMxQyxLQUFLLEVBQUUsRUFBRTtZQUNULFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFlBQVksRUFBRSxLQUFLO1lBQ25CLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUMsQ0FBQztLQUNKO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBUSxHQUFVO0lBQ2hELE9BQU8sY0FBYyxJQUFJLEdBQUcsQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUEwQjtJQUNwRCxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEVBQUU7UUFDbkIsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFO1lBQ2pDLEtBQUssRUFBRSxFQUFFO1lBQ1QsVUFBVSxFQUFFLEtBQUs7WUFDakIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQyxDQUFDO0tBQ0o7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBUSxHQUFVO0lBQ3hDLE9BQU8sS0FBSyxJQUFJLEdBQUcsQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7IElFcnJvckhhbmRsZXIsIElIYW5kbGVyLCBJSG9vayB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaW5kZXguanMnO1xuaW1wb3J0IHsgRVJST1JfSEFORExFUlMsIEhBTkRMRVJTLCBIT09LUyB9IGZyb20gJy4uLy4uL3N5bWJvbHMvaW5kZXguanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlSGFuZGxlcnModmFsOiB7IFtIQU5ETEVSU10/OiBJSGFuZGxlcltdIH0pOiBhc3NlcnRzIHZhbCBpcyB7IFtIQU5ETEVSU106IElIYW5kbGVyW10gfSB7XG4gIGlmICghKEhBTkRMRVJTIGluIHZhbCkpIHtcbiAgICBSZWZsZWN0LmRlZmluZVByb3BlcnR5KHZhbCwgSEFORExFUlMsIHtcbiAgICAgIHZhbHVlOiBbXSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSGFuZGxlcnM8Q2xhc3M+KHZhbDogQ2xhc3MpOiB2YWwgaXMgQ2xhc3MgJiB7IFtIQU5ETEVSU106IElIYW5kbGVyW10gfSB7XG4gIHJldHVybiBIQU5ETEVSUyBpbiB2YWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVFcnJvckhhbmRsZXJzKHZhbDogeyBbRVJST1JfSEFORExFUlNdPzogSUVycm9ySGFuZGxlcltdIH0pOiBhc3NlcnRzIHZhbCBpcyB7IFtFUlJPUl9IQU5ETEVSU106IElFcnJvckhhbmRsZXJbXSB9IHtcbiAgaWYgKCEoRVJST1JfSEFORExFUlMgaW4gdmFsKSkge1xuICAgIFJlZmxlY3QuZGVmaW5lUHJvcGVydHkodmFsLCBFUlJPUl9IQU5ETEVSUywge1xuICAgICAgdmFsdWU6IFtdLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNFcnJvckhhbmRsZXJzPENsYXNzPih2YWw6IENsYXNzKTogdmFsIGlzIENsYXNzICYgeyBbRVJST1JfSEFORExFUlNdOiBJRXJyb3JIYW5kbGVyW10gfSB7XG4gIHJldHVybiBFUlJPUl9IQU5ETEVSUyBpbiB2YWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVIb29rcyh2YWw6IHsgW0hPT0tTXT86IElIb29rW10gfSk6IGFzc2VydHMgdmFsIGlzIHsgW0hPT0tTXTogSUhvb2tbXSB9IHtcbiAgaWYgKCEoSE9PS1MgaW4gdmFsKSkge1xuICAgIFJlZmxlY3QuZGVmaW5lUHJvcGVydHkodmFsLCBIT09LUywge1xuICAgICAgdmFsdWU6IFtdLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNIb29rczxDbGFzcz4odmFsOiBDbGFzcyk6IHZhbCBpcyBDbGFzcyAmIHsgW0hPT0tTXTogSUhvb2tbXSB9IHtcbiAgcmV0dXJuIEhPT0tTIGluIHZhbDtcbn1cbiJdfQ==

@@ -9,3 +9,3 @@ /**

import type { FastifyReply, FastifyRequest } from 'fastify';
import { IErrorHandler } from '../../interfaces/controller.js';
import { IErrorHandler } from '../../interfaces/index.js';
export declare function createErrorsHandler(errorHandlers: IErrorHandler[], classInstance: Record<string, (error: Error, request: FastifyRequest, reply: FastifyReply) => void>): (error: Error, request: FastifyRequest, reply: FastifyReply) => Promise<void>;

@@ -17,2 +17,2 @@ export function createErrorsHandler(errorHandlers, classInstance) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWVycm9ycy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2RlY29yYXRvcnMvaGVscGVycy9jcmVhdGUtZXJyb3JzLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxhQUE4QixFQUM5QixhQUFtRztJQUVuRyxPQUFPLEtBQUssVUFBVSxZQUFZLENBQUMsS0FBWSxFQUFFLE9BQXVCLEVBQUUsS0FBbUI7UUFDM0YsS0FBSyxNQUFNLE9BQU8sSUFBSSxhQUFhLEVBQUU7WUFDbkMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUMxQixJQUFJO29CQUNGLE1BQU0sYUFBYSxDQUFDLE9BQU8sQ0FBQyxXQUFxQixDQUFDLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDMUUsT0FBTztpQkFDUjtnQkFBQyxPQUFPLENBQUMsRUFBRTtvQkFDVixLQUFLLEdBQUcsQ0FBVSxDQUFDO2lCQUNwQjthQUNGO1NBQ0Y7UUFFRCxNQUFNLEtBQUssQ0FBQztJQUNkLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cbmltcG9ydCB0eXBlIHsgRmFzdGlmeVJlcGx5LCBGYXN0aWZ5UmVxdWVzdCB9IGZyb20gJ2Zhc3RpZnknO1xuaW1wb3J0IHsgSUVycm9ySGFuZGxlciB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvY29udHJvbGxlci5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFcnJvcnNIYW5kbGVyKFxuICBlcnJvckhhbmRsZXJzOiBJRXJyb3JIYW5kbGVyW10sXG4gIGNsYXNzSW5zdGFuY2U6IFJlY29yZDxzdHJpbmcsIChlcnJvcjogRXJyb3IsIHJlcXVlc3Q6IEZhc3RpZnlSZXF1ZXN0LCByZXBseTogRmFzdGlmeVJlcGx5KSA9PiB2b2lkPixcbik6IChlcnJvcjogRXJyb3IsIHJlcXVlc3Q6IEZhc3RpZnlSZXF1ZXN0LCByZXBseTogRmFzdGlmeVJlcGx5KSA9PiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIGVycm9ySGFuZGxlcihlcnJvcjogRXJyb3IsIHJlcXVlc3Q6IEZhc3RpZnlSZXF1ZXN0LCByZXBseTogRmFzdGlmeVJlcGx5KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIGVycm9ySGFuZGxlcnMpIHtcbiAgICAgIGlmIChoYW5kbGVyLmFjY2VwdHMoZXJyb3IpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgY2xhc3NJbnN0YW5jZVtoYW5kbGVyLmhhbmRsZXJOYW1lIGFzIHN0cmluZ10oZXJyb3IsIHJlcXVlc3QsIHJlcGx5KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBlcnJvciA9IGUgYXMgRXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBlcnJvcjtcbiAgfTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWVycm9ycy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2RlY29yYXRvcnMvaGVscGVycy9jcmVhdGUtZXJyb3JzLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxhQUE4QixFQUM5QixhQUFtRztJQUVuRyxPQUFPLEtBQUssVUFBVSxZQUFZLENBQUMsS0FBWSxFQUFFLE9BQXVCLEVBQUUsS0FBbUI7UUFDM0YsS0FBSyxNQUFNLE9BQU8sSUFBSSxhQUFhLEVBQUU7WUFDbkMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUMxQixJQUFJO29CQUNGLE1BQU0sYUFBYSxDQUFDLE9BQU8sQ0FBQyxXQUFxQixDQUFDLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDMUUsT0FBTztpQkFDUjtnQkFBQyxPQUFPLENBQUMsRUFBRTtvQkFDVixLQUFLLEdBQUcsQ0FBVSxDQUFDO2lCQUNwQjthQUNGO1NBQ0Y7UUFFRCxNQUFNLEtBQUssQ0FBQztJQUNkLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cbmltcG9ydCB0eXBlIHsgRmFzdGlmeVJlcGx5LCBGYXN0aWZ5UmVxdWVzdCB9IGZyb20gJ2Zhc3RpZnknO1xuaW1wb3J0IHsgSUVycm9ySGFuZGxlciB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaW5kZXguanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRXJyb3JzSGFuZGxlcihcbiAgZXJyb3JIYW5kbGVyczogSUVycm9ySGFuZGxlcltdLFxuICBjbGFzc0luc3RhbmNlOiBSZWNvcmQ8c3RyaW5nLCAoZXJyb3I6IEVycm9yLCByZXF1ZXN0OiBGYXN0aWZ5UmVxdWVzdCwgcmVwbHk6IEZhc3RpZnlSZXBseSkgPT4gdm9pZD4sXG4pOiAoZXJyb3I6IEVycm9yLCByZXF1ZXN0OiBGYXN0aWZ5UmVxdWVzdCwgcmVwbHk6IEZhc3RpZnlSZXBseSkgPT4gUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBhc3luYyBmdW5jdGlvbiBlcnJvckhhbmRsZXIoZXJyb3I6IEVycm9yLCByZXF1ZXN0OiBGYXN0aWZ5UmVxdWVzdCwgcmVwbHk6IEZhc3RpZnlSZXBseSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiBlcnJvckhhbmRsZXJzKSB7XG4gICAgICBpZiAoaGFuZGxlci5hY2NlcHRzKGVycm9yKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IGNsYXNzSW5zdGFuY2VbaGFuZGxlci5oYW5kbGVyTmFtZSBhcyBzdHJpbmddKGVycm9yLCByZXF1ZXN0LCByZXBseSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgZXJyb3IgPSBlIGFzIEVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhyb3cgZXJyb3I7XG4gIH07XG59XG4iXX0=

@@ -8,3 +8,3 @@ /**

*/
import { Registrable } from '../../plugins/shared-interfaces.js';
import { Registrable } from '../../plugins/index.js';
export declare function injectControllerOptions(controller: unknown): asserts controller is Registrable;

@@ -18,2 +18,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LWNvbnRyb2xsZXItb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9kZWNvcmF0b3JzL2hlbHBlcnMvaW5qZWN0LWNvbnRyb2xsZXItb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFHSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLFVBQW1CO0lBQ3pELElBQUksVUFBVSxZQUFZLFFBQVEsRUFBRTtRQUNsQyxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLEVBQUU7WUFDNUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDM0Q7UUFFRCxPQUFPO0tBQ1I7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7QUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBSZWdpc3RyYWJsZSB9IGZyb20gJy4uLy4uL3BsdWdpbnMvc2hhcmVkLWludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgQ1JFQVRPUiB9IGZyb20gJy4uLy4uL3N5bWJvbHMvaW5kZXguanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Q29udHJvbGxlck9wdGlvbnMoY29udHJvbGxlcjogdW5rbm93bik6IGFzc2VydHMgY29udHJvbGxlciBpcyBSZWdpc3RyYWJsZSB7XG4gIGlmIChjb250cm9sbGVyIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICBpZiAoIShDUkVBVE9SIGluIGNvbnRyb2xsZXIpKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29udHJvbGxlciwgQ1JFQVRPUiwgeyB2YWx1ZToge30gfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHVzYWdlIG9mIEBDb250cm9sbGVyIGRlY29yYXRvcicpO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LWNvbnRyb2xsZXItb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9kZWNvcmF0b3JzL2hlbHBlcnMvaW5qZWN0LWNvbnRyb2xsZXItb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFHSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLFVBQW1CO0lBQ3pELElBQUksVUFBVSxZQUFZLFFBQVEsRUFBRTtRQUNsQyxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLEVBQUU7WUFDNUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDM0Q7UUFFRCxPQUFPO0tBQ1I7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7QUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBSZWdpc3RyYWJsZSB9IGZyb20gJy4uLy4uL3BsdWdpbnMvaW5kZXguanMnO1xuaW1wb3J0IHsgQ1JFQVRPUiB9IGZyb20gJy4uLy4uL3N5bWJvbHMvaW5kZXguanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Q29udHJvbGxlck9wdGlvbnMoY29udHJvbGxlcjogdW5rbm93bik6IGFzc2VydHMgY29udHJvbGxlciBpcyBSZWdpc3RyYWJsZSB7XG4gIGlmIChjb250cm9sbGVyIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICBpZiAoIShDUkVBVE9SIGluIGNvbnRyb2xsZXIpKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29udHJvbGxlciwgQ1JFQVRPUiwgeyB2YWx1ZToge30gfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHVzYWdlIG9mIEBDb250cm9sbGVyIGRlY29yYXRvcicpO1xufVxuIl19

@@ -9,4 +9,3 @@ /**

import type { RouteShorthandOptions } from 'fastify';
import { HttpMethods } from '../../interfaces/http-methods.js';
import { RouteConfig } from '../../interfaces/route-config.js';
import { HttpMethods, RouteConfig } from '../../interfaces/index.js';
declare type ParsedRouteConfig = {

@@ -13,0 +12,0 @@ url: string;

@@ -8,3 +8,3 @@ /**

*/
import { hooksRegistry } from '../../plugins/life-cycle.js';
import { hooksRegistry } from '../../plugins/index.js';
import { CREATOR, ERROR_HANDLERS, HANDLERS, HOOKS } from '../../symbols/index.js';

@@ -79,2 +79,2 @@ import { transformAndWait } from '../../utils/transform-and-wait.js';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1kZWNvcmF0b3JzLmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZGVjb3JhdG9ycy9oZWxwZXJzL3JlcXVlc3QtZGVjb3JhdG9ycy5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQU1ILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUlqRSxTQUFTLFdBQVcsQ0FBQyxTQUErQixHQUFHLEVBQUUsVUFBaUMsRUFBRTtJQUMxRixJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVE7UUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUVoRSxNQUFNLE1BQU0sR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ3RDLE9BQU87UUFDTCxHQUFHLE1BQU07UUFDVCxPQUFPLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUU7S0FDL0IsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLG9CQUFvQixHQUFHLElBQUksT0FBTyxFQUFrQyxDQUFDO0FBRTNFLEtBQUssVUFBVSxTQUFTLENBQUMsTUFBVyxFQUFFLE9BQXVCLEVBQUUsR0FBRyxJQUFlO0lBQy9FLElBQUksb0JBQW9CLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUFFLE9BQU8sb0JBQW9CLENBQUMsR0FB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Q0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUNyRSxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO2FBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsaUNBQWlDLENBQUMsTUFBbUIsRUFBRSxNQUF5QixFQUFFLEVBQUUsV0FBVyxFQUFPLEVBQUUsT0FBd0I7SUFDOUksY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTVCLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDekIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHO1FBQ2YsTUFBTTtRQUNOLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztRQUN2QixhQUFhLEVBQUUsT0FBTztLQUN2QixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB0eXBlIHsgRmFzdGlmeUluc3RhbmNlLCBGYXN0aWZ5UmVxdWVzdCwgUm91dGVTaG9ydGhhbmRPcHRpb25zIH0gZnJvbSAnZmFzdGlmeSc7XG5pbXBvcnQgeyBIdHRwTWV0aG9kcyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaHR0cC1tZXRob2RzLmpzJztcbmltcG9ydCB7IFJlcXVlc3RIYW5kbGVyLCBSZXF1ZXN0SG9vayB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcmVxdWVzdC1oYW5kbGVyLmpzJztcbmltcG9ydCB7IFJvdXRlQ29uZmlnIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yb3V0ZS1jb25maWcuanMnO1xuaW1wb3J0IHsgaG9va3NSZWdpc3RyeSB9IGZyb20gJy4uLy4uL3BsdWdpbnMvbGlmZS1jeWNsZS5qcyc7XG5pbXBvcnQgeyBDUkVBVE9SLCBFUlJPUl9IQU5ETEVSUywgSEFORExFUlMsIEhPT0tTIH0gZnJvbSAnLi4vLi4vc3ltYm9scy9pbmRleC5qcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1BbmRXYWl0IH0gZnJvbSAnLi4vLi4vdXRpbHMvdHJhbnNmb3JtLWFuZC13YWl0LmpzJztcbmltcG9ydCB7IGVuc3VyZUhhbmRsZXJzLCBoYXNFcnJvckhhbmRsZXJzLCBoYXNIb29rcyB9IGZyb20gJy4vY2xhc3MtcHJvcGVydGllcy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVFcnJvcnNIYW5kbGVyIH0gZnJvbSAnLi9jcmVhdGUtZXJyb3JzLWhhbmRsZXIuanMnO1xuXG50eXBlIFBhcnNlZFJvdXRlQ29uZmlnID0geyB1cmw6IHN0cmluZzsgb3B0aW9uczogUm91dGVTaG9ydGhhbmRPcHRpb25zIH07XG5cbmZ1bmN0aW9uIHBhcnNlQ29uZmlnKGNvbmZpZzogc3RyaW5nIHwgUm91dGVDb25maWcgPSAnLycsIG9wdGlvbnM6IFJvdXRlU2hvcnRoYW5kT3B0aW9ucyA9IHt9KTogUGFyc2VkUm91dGVDb25maWcge1xuICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ3N0cmluZycpIHJldHVybiB7IHVybDogY29uZmlnLCBvcHRpb25zIH07XG5cbiAgY29uc3QgcGFyc2VkID0geyBvcHRpb25zLCAuLi5jb25maWcgfTtcbiAgcmV0dXJuIHtcbiAgICAuLi5wYXJzZWQsXG4gICAgb3B0aW9uczogeyAuLi5wYXJzZWQub3B0aW9ucyB9LFxuICB9O1xufVxuXG5jb25zdCByZXF1ZXN0SGFuZGxlcnNDYWNoZSA9IG5ldyBXZWFrTWFwPEZhc3RpZnlSZXF1ZXN0LCBSZXF1ZXN0SGFuZGxlcj4oKTtcblxuYXN5bmMgZnVuY3Rpb24gZ2V0VGFyZ2V0KFRhcmdldDogYW55LCByZXF1ZXN0OiBGYXN0aWZ5UmVxdWVzdCwgLi4ucmVzdDogdW5rbm93bltdKSB7XG4gIGlmIChyZXF1ZXN0SGFuZGxlcnNDYWNoZS5oYXMocmVxdWVzdCkpIHJldHVybiByZXF1ZXN0SGFuZGxlcnNDYWNoZS5nZXQocmVxdWVzdCk7XG4gIGNvbnN0IHRhcmdldCA9IG5ldyBUYXJnZXQocmVxdWVzdCwgLi4ucmVzdCk7XG4gIGF3YWl0IHRyYW5zZm9ybUFuZFdhaXQoaG9va3NSZWdpc3RyeS5hZnRlckNvbnRyb2xsZXJDcmVhdGlvbiwgKGhvb2spID0+IGhvb2sodGFyZ2V0LCBUYXJnZXQpKTtcbiAgcmVxdWVzdEhhbmRsZXJzQ2FjaGUuc2V0KHJlcXVlc3QsIHRhcmdldCk7XG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXF1ZXN0RGVjb3JhdG9yc0ZhY3RvcnkoXG4gIG1ldGhvZDogSHR0cE1ldGhvZHMsXG4pOiAocm91dGVPckNvbmZpZz86IHN0cmluZyB8IFJvdXRlQ29uZmlnLCBvcHRpb25zPzogUm91dGVTaG9ydGhhbmRPcHRpb25zKSA9PiAodGFyZ2V0OiBhbnksIHByb3BLZXk/OiBzdHJpbmcgfCBzeW1ib2wpID0+IHZvaWQge1xuICByZXR1cm4gZnVuY3Rpb24gKHJvdXRlT3JDb25maWc/OiBzdHJpbmcgfCBSb3V0ZUNvbmZpZywgb3B0aW9ucz86IFJvdXRlU2hvcnRoYW5kT3B0aW9ucyk6ICh0YXJnZXQ6IGFueSwgcHJvcEtleT86IHN0cmluZyB8IHN5bWJvbCkgPT4gdm9pZCB7XG4gICAgY29uc3QgY29uZmlnID0gcGFyc2VDb25maWcocm91dGVPckNvbmZpZywgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBwcm9wS2V5Pzogc3RyaW5nIHwgc3ltYm9sKTogdm9pZCB7XG4gICAgICBpZiAocHJvcEtleSkge1xuICAgICAgICBjb250cm9sbGVyTWV0aG9kRGVjb3JhdG9yc0ZhY3RvcnkobWV0aG9kLCBjb25maWcsIHRhcmdldCwgcHJvcEtleSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0W0NSRUFUT1JdID0ge1xuICAgICAgICByZWdpc3RlcjogKGluc3RhbmNlOiBGYXN0aWZ5SW5zdGFuY2UpID0+IHtcbiAgICAgICAgICBpZiAoaGFzSG9va3ModGFyZ2V0KSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBob29rIG9mIHRhcmdldFtIT09LU10gYXMgUmVxdWVzdEhvb2tbXSkge1xuICAgICAgICAgICAgICBjb25zdCBob29rRm4gPSAocmVxdWVzdDogRmFzdGlmeVJlcXVlc3QsIC4uLnJlc3Q6IHVua25vd25bXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRUYXJnZXQodGFyZ2V0LCByZXF1ZXN0LCAuLi5yZXN0KS50aGVuKCh0KSA9PiB0W2hvb2suaGFuZGxlck5hbWVdKHJlcXVlc3QsIC4uLnJlc3QpKTtcbiAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBjb25maWcub3B0aW9uc1tob29rLm5hbWVdO1xuICAgICAgICAgICAgICBpZiAob3B0aW9uID09IG51bGwpIGNvbmZpZy5vcHRpb25zW2hvb2submFtZV0gPSBob29rRm47XG4gICAgICAgICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9uKSkgb3B0aW9uLnB1c2goaG9va0ZuKTtcbiAgICAgICAgICAgICAgZWxzZSBjb25maWcub3B0aW9uc1tob29rLm5hbWVdID0gW29wdGlvbiBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiB2b2lkLCBob29rRm5dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaGFzRXJyb3JIYW5kbGVycyh0YXJnZXQpKSB7XG4gICAgICAgICAgICBjb25maWcub3B0aW9ucy5lcnJvckhhbmRsZXIgPSBhc3luYyAoZXJyb3IsIHJlcXVlc3QsIC4uLnJlc3QpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZXJyb3JzSGFuZGxlciA9IGNyZWF0ZUVycm9yc0hhbmRsZXIodGFyZ2V0W0VSUk9SX0hBTkRMRVJTXSwgYXdhaXQgZ2V0VGFyZ2V0KHRhcmdldCwgcmVxdWVzdCwgLi4ucmVzdCkpO1xuXG4gICAgICAgICAgICAgIHJldHVybiBlcnJvcnNIYW5kbGVyKGVycm9yLCByZXF1ZXN0LCAuLi5yZXN0KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIGluc3RhbmNlW21ldGhvZF0oY29uZmlnLnVybCwgY29uZmlnLm9wdGlvbnMsIGZ1bmN0aW9uIChyZXF1ZXN0LCAuLi5yZXN0KSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0VGFyZ2V0KHRhcmdldCwgcmVxdWVzdCwgLi4ucmVzdCkudGhlbigodCkgPT4gdC5oYW5kbGUoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250cm9sbGVyTWV0aG9kRGVjb3JhdG9yc0ZhY3RvcnkobWV0aG9kOiBIdHRwTWV0aG9kcywgY29uZmlnOiBQYXJzZWRSb3V0ZUNvbmZpZywgeyBjb25zdHJ1Y3RvciB9OiBhbnksIHByb3BLZXk6IHN0cmluZyB8IHN5bWJvbCk6IHZvaWQge1xuICBlbnN1cmVIYW5kbGVycyhjb25zdHJ1Y3Rvcik7XG5cbiAgY29uc3RydWN0b3JbSEFORExFUlNdLnB1c2goe1xuICAgIHVybDogY29uZmlnLnVybCxcbiAgICBtZXRob2QsXG4gICAgb3B0aW9uczogY29uZmlnLm9wdGlvbnMsXG4gICAgaGFuZGxlck1ldGhvZDogcHJvcEtleSxcbiAgfSk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1kZWNvcmF0b3JzLmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZGVjb3JhdG9ycy9oZWxwZXJzL3JlcXVlc3QtZGVjb3JhdG9ycy5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUlILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUlqRSxTQUFTLFdBQVcsQ0FBQyxTQUErQixHQUFHLEVBQUUsVUFBaUMsRUFBRTtJQUMxRixJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVE7UUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUVoRSxNQUFNLE1BQU0sR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ3RDLE9BQU87UUFDTCxHQUFHLE1BQU07UUFDVCxPQUFPLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUU7S0FDL0IsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLG9CQUFvQixHQUFHLElBQUksT0FBTyxFQUFrQyxDQUFDO0FBRTNFLEtBQUssVUFBVSxTQUFTLENBQUMsTUFBVyxFQUFFLE9BQXVCLEVBQUUsR0FBRyxJQUFlO0lBQy9FLElBQUksb0JBQW9CLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUFFLE9BQU8sb0JBQW9CLENBQUMsR0FB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Q0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUNyRSxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO2FBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsaUNBQWlDLENBQUMsTUFBbUIsRUFBRSxNQUF5QixFQUFFLEVBQUUsV0FBVyxFQUFPLEVBQUUsT0FBd0I7SUFDOUksY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTVCLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDekIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHO1FBQ2YsTUFBTTtRQUNOLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztRQUN2QixhQUFhLEVBQUUsT0FBTztLQUN2QixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB0eXBlIHsgRmFzdGlmeUluc3RhbmNlLCBGYXN0aWZ5UmVxdWVzdCwgUm91dGVTaG9ydGhhbmRPcHRpb25zIH0gZnJvbSAnZmFzdGlmeSc7XG5pbXBvcnQgeyBIdHRwTWV0aG9kcywgUmVxdWVzdEhhbmRsZXIsIFJlcXVlc3RIb29rLCBSb3V0ZUNvbmZpZyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaW5kZXguanMnO1xuaW1wb3J0IHsgaG9va3NSZWdpc3RyeSB9IGZyb20gJy4uLy4uL3BsdWdpbnMvaW5kZXguanMnO1xuaW1wb3J0IHsgQ1JFQVRPUiwgRVJST1JfSEFORExFUlMsIEhBTkRMRVJTLCBIT09LUyB9IGZyb20gJy4uLy4uL3N5bWJvbHMvaW5kZXguanMnO1xuaW1wb3J0IHsgdHJhbnNmb3JtQW5kV2FpdCB9IGZyb20gJy4uLy4uL3V0aWxzL3RyYW5zZm9ybS1hbmQtd2FpdC5qcyc7XG5pbXBvcnQgeyBlbnN1cmVIYW5kbGVycywgaGFzRXJyb3JIYW5kbGVycywgaGFzSG9va3MgfSBmcm9tICcuL2NsYXNzLXByb3BlcnRpZXMuanMnO1xuaW1wb3J0IHsgY3JlYXRlRXJyb3JzSGFuZGxlciB9IGZyb20gJy4vY3JlYXRlLWVycm9ycy1oYW5kbGVyLmpzJztcblxudHlwZSBQYXJzZWRSb3V0ZUNvbmZpZyA9IHsgdXJsOiBzdHJpbmc7IG9wdGlvbnM6IFJvdXRlU2hvcnRoYW5kT3B0aW9ucyB9O1xuXG5mdW5jdGlvbiBwYXJzZUNvbmZpZyhjb25maWc6IHN0cmluZyB8IFJvdXRlQ29uZmlnID0gJy8nLCBvcHRpb25zOiBSb3V0ZVNob3J0aGFuZE9wdGlvbnMgPSB7fSk6IFBhcnNlZFJvdXRlQ29uZmlnIHtcbiAgaWYgKHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnKSByZXR1cm4geyB1cmw6IGNvbmZpZywgb3B0aW9ucyB9O1xuXG4gIGNvbnN0IHBhcnNlZCA9IHsgb3B0aW9ucywgLi4uY29uZmlnIH07XG4gIHJldHVybiB7XG4gICAgLi4ucGFyc2VkLFxuICAgIG9wdGlvbnM6IHsgLi4ucGFyc2VkLm9wdGlvbnMgfSxcbiAgfTtcbn1cblxuY29uc3QgcmVxdWVzdEhhbmRsZXJzQ2FjaGUgPSBuZXcgV2Vha01hcDxGYXN0aWZ5UmVxdWVzdCwgUmVxdWVzdEhhbmRsZXI+KCk7XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFRhcmdldChUYXJnZXQ6IGFueSwgcmVxdWVzdDogRmFzdGlmeVJlcXVlc3QsIC4uLnJlc3Q6IHVua25vd25bXSkge1xuICBpZiAocmVxdWVzdEhhbmRsZXJzQ2FjaGUuaGFzKHJlcXVlc3QpKSByZXR1cm4gcmVxdWVzdEhhbmRsZXJzQ2FjaGUuZ2V0KHJlcXVlc3QpO1xuICBjb25zdCB0YXJnZXQgPSBuZXcgVGFyZ2V0KHJlcXVlc3QsIC4uLnJlc3QpO1xuICBhd2FpdCB0cmFuc2Zvcm1BbmRXYWl0KGhvb2tzUmVnaXN0cnkuYWZ0ZXJDb250cm9sbGVyQ3JlYXRpb24sIChob29rKSA9PiBob29rKHRhcmdldCwgVGFyZ2V0KSk7XG4gIHJlcXVlc3RIYW5kbGVyc0NhY2hlLnNldChyZXF1ZXN0LCB0YXJnZXQpO1xuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVxdWVzdERlY29yYXRvcnNGYWN0b3J5KFxuICBtZXRob2Q6IEh0dHBNZXRob2RzLFxuKTogKHJvdXRlT3JDb25maWc/OiBzdHJpbmcgfCBSb3V0ZUNvbmZpZywgb3B0aW9ucz86IFJvdXRlU2hvcnRoYW5kT3B0aW9ucykgPT4gKHRhcmdldDogYW55LCBwcm9wS2V5Pzogc3RyaW5nIHwgc3ltYm9sKSA9PiB2b2lkIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChyb3V0ZU9yQ29uZmlnPzogc3RyaW5nIHwgUm91dGVDb25maWcsIG9wdGlvbnM/OiBSb3V0ZVNob3J0aGFuZE9wdGlvbnMpOiAodGFyZ2V0OiBhbnksIHByb3BLZXk/OiBzdHJpbmcgfCBzeW1ib2wpID0+IHZvaWQge1xuICAgIGNvbnN0IGNvbmZpZyA9IHBhcnNlQ29uZmlnKHJvdXRlT3JDb25maWcsIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IGFueSwgcHJvcEtleT86IHN0cmluZyB8IHN5bWJvbCk6IHZvaWQge1xuICAgICAgaWYgKHByb3BLZXkpIHtcbiAgICAgICAgY29udHJvbGxlck1ldGhvZERlY29yYXRvcnNGYWN0b3J5KG1ldGhvZCwgY29uZmlnLCB0YXJnZXQsIHByb3BLZXkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRhcmdldFtDUkVBVE9SXSA9IHtcbiAgICAgICAgcmVnaXN0ZXI6IChpbnN0YW5jZTogRmFzdGlmeUluc3RhbmNlKSA9PiB7XG4gICAgICAgICAgaWYgKGhhc0hvb2tzKHRhcmdldCkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaG9vayBvZiB0YXJnZXRbSE9PS1NdIGFzIFJlcXVlc3RIb29rW10pIHtcbiAgICAgICAgICAgICAgY29uc3QgaG9va0ZuID0gKHJlcXVlc3Q6IEZhc3RpZnlSZXF1ZXN0LCAuLi5yZXN0OiB1bmtub3duW10pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0VGFyZ2V0KHRhcmdldCwgcmVxdWVzdCwgLi4ucmVzdCkudGhlbigodCkgPT4gdFtob29rLmhhbmRsZXJOYW1lXShyZXF1ZXN0LCAuLi5yZXN0KSk7XG4gICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gY29uZmlnLm9wdGlvbnNbaG9vay5uYW1lXTtcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbiA9PSBudWxsKSBjb25maWcub3B0aW9uc1tob29rLm5hbWVdID0gaG9va0ZuO1xuICAgICAgICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbikpIG9wdGlvbi5wdXNoKGhvb2tGbik7XG4gICAgICAgICAgICAgIGVsc2UgY29uZmlnLm9wdGlvbnNbaG9vay5uYW1lXSA9IFtvcHRpb24gYXMgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdm9pZCwgaG9va0ZuXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGhhc0Vycm9ySGFuZGxlcnModGFyZ2V0KSkge1xuICAgICAgICAgICAgY29uZmlnLm9wdGlvbnMuZXJyb3JIYW5kbGVyID0gYXN5bmMgKGVycm9yLCByZXF1ZXN0LCAuLi5yZXN0KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGVycm9yc0hhbmRsZXIgPSBjcmVhdGVFcnJvcnNIYW5kbGVyKHRhcmdldFtFUlJPUl9IQU5ETEVSU10sIGF3YWl0IGdldFRhcmdldCh0YXJnZXQsIHJlcXVlc3QsIC4uLnJlc3QpKTtcblxuICAgICAgICAgICAgICByZXR1cm4gZXJyb3JzSGFuZGxlcihlcnJvciwgcmVxdWVzdCwgLi4ucmVzdCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpbnN0YW5jZVttZXRob2RdKGNvbmZpZy51cmwsIGNvbmZpZy5vcHRpb25zLCBmdW5jdGlvbiAocmVxdWVzdCwgLi4ucmVzdCkge1xuICAgICAgICAgICAgcmV0dXJuIGdldFRhcmdldCh0YXJnZXQsIHJlcXVlc3QsIC4uLnJlc3QpLnRoZW4oKHQpID0+IHQuaGFuZGxlKCkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udHJvbGxlck1ldGhvZERlY29yYXRvcnNGYWN0b3J5KG1ldGhvZDogSHR0cE1ldGhvZHMsIGNvbmZpZzogUGFyc2VkUm91dGVDb25maWcsIHsgY29uc3RydWN0b3IgfTogYW55LCBwcm9wS2V5OiBzdHJpbmcgfCBzeW1ib2wpOiB2b2lkIHtcbiAgZW5zdXJlSGFuZGxlcnMoY29uc3RydWN0b3IpO1xuXG4gIGNvbnN0cnVjdG9yW0hBTkRMRVJTXS5wdXNoKHtcbiAgICB1cmw6IGNvbmZpZy51cmwsXG4gICAgbWV0aG9kLFxuICAgIG9wdGlvbnM6IGNvbmZpZy5vcHRpb25zLFxuICAgIGhhbmRsZXJNZXRob2Q6IHByb3BLZXksXG4gIH0pO1xufVxuIl19

@@ -11,3 +11,4 @@ /**

import { ControllerType } from '../../registry/controller-type.js';
declare type ControllerFactory = (instance: FastifyInstance, constructor: Registrable) => unknown;
import { TagObject } from '../helpers/swagger-helper.js';
declare type ControllerFactory = (instance: FastifyInstance, constructor: Registrable, tags: TagObject[]) => unknown;
/**

@@ -19,8 +20,11 @@ * Various strategies which can be applied to controller

* There are few available strategies:
* SINGLETON strategy creates one instance of controller which will handle all requests
* REQUEST strategy will create new instance for each request/hook
* - *SINGLETON* strategy creates one instance of controller which will handle all requests
* - *REQUEST* strategy will create new instance for each request/hook
*
* By default controllers use SINGLETON strategy
* By default, controllers use *SINGLETON* strategy
*
* @see Controller
* @see ControllerConfig
*/
export declare const ControllerTypeStrategies: Record<ControllerType, ControllerFactory>;
export {};

@@ -14,2 +14,3 @@ /**

import { createErrorsHandler } from '../helpers/create-errors-handler.js';
import { injectTagsIntoSwagger } from '../helpers/swagger-helper.js';
const controllersCache = new WeakMap();

@@ -32,9 +33,14 @@ function targetFactory(constructor) {

* There are few available strategies:
* SINGLETON strategy creates one instance of controller which will handle all requests
* REQUEST strategy will create new instance for each request/hook
* - *SINGLETON* strategy creates one instance of controller which will handle all requests
* - *REQUEST* strategy will create new instance for each request/hook
*
* By default controllers use SINGLETON strategy
* By default, controllers use *SINGLETON* strategy
*
* @see Controller
* @see ControllerConfig
*/
export const ControllerTypeStrategies = {
[ControllerType.SINGLETON]: async (instance, constructor) => {
[ControllerType.SINGLETON]: async (instance, constructor, tags) => {
if (tags.length > 0)
injectTagsIntoSwagger(instance, tags);
await transformAndWait(hooksRegistry.beforeControllerCreation, (hook) => hook(constructor));

@@ -44,3 +50,3 @@ const controllerInstance = new constructor();

if (hasHandlers(constructor))
registerHandlers(constructor[HANDLERS], instance, controllerInstance);
registerHandlers(constructor[HANDLERS], instance, controllerInstance, tags);
if (hasErrorHandlers(constructor))

@@ -52,3 +58,5 @@ registerErrorHandlers(constructor[ERROR_HANDLERS], instance, controllerInstance);

},
[ControllerType.REQUEST]: async (instance, constructor) => {
[ControllerType.REQUEST]: async (instance, constructor, tags) => {
if (tags.length > 0)
injectTagsIntoSwagger(instance, tags);
await transformAndWait(hooksRegistry.beforeControllerCreation, (hook) => hook(constructor));

@@ -59,3 +67,3 @@ const factory = targetFactory(constructor);

const { url, method, handlerMethod, options } = handler;
instance[method](url, options, async function (request, ...args) {
instance[method](url, tags.length > 0 ? { ...options, schema: { tags: tags.map((tag) => tag.name), ...options.schema } } : options, async function (request, ...args) {
const controllerInstance = await factory(request);

@@ -78,5 +86,5 @@ return controllerInstance[handlerMethod](request, ...args);

};
function registerHandlers(handlers, instance, controllerInstance) {
function registerHandlers(handlers, instance, controllerInstance, tags) {
handlers.forEach((handler) => {
instance[handler.method](handler.url, handler.options, controllerInstance[handler.handlerMethod].bind(controllerInstance));
instance[handler.method](handler.url, tags.length > 0 ? { ...handler.options, schema: { tags: tags.map((it) => it.name), ...handler.options.schema } } : handler.options, (...args) => controllerInstance[handler.handlerMethod](...args));
});

@@ -86,3 +94,3 @@ }

hooks.forEach((hook) => {
instance.addHook(hook.name, controllerInstance[hook.handlerName].bind(controllerInstance));
instance.addHook(hook.name, (...args) => controllerInstance[hook.handlerName](...args));
});

@@ -93,2 +101,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2RlY29yYXRvcnMvc3RyYXRlZ2llcy9jb250cm9sbGVyLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBSUgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTFFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7QUFFaEUsU0FBUyxhQUFhLENBQUMsV0FBd0I7SUFDN0MsT0FBTyxLQUFLLFVBQVUsU0FBUyxDQUFDLE9BQXVCO1FBQ3JELElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztZQUFFLE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sTUFBTSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDakMsTUFBTSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNuRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENB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Y2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBGYXN0aWZ5SW5zdGFuY2UsIEZhc3RpZnlSZXBseSwgRmFzdGlmeVJlcXVlc3QgfSBmcm9tICdmYXN0aWZ5JztcbmltcG9ydCB0eXBlIHsgSUVycm9ySGFuZGxlciwgSUhhbmRsZXIsIElIb29rIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pbmRleC5qcyc7XG5pbXBvcnQgeyBob29rc1JlZ2lzdHJ5IH0gZnJvbSAnLi4vLi4vcGx1Z2lucy9saWZlLWN5Y2xlLmpzJztcbmltcG9ydCB7IFJlZ2lzdHJhYmxlIH0gZnJvbSAnLi4vLi4vcGx1Z2lucy9zaGFyZWQtaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgeyBDb250cm9sbGVyVHlwZSB9IGZyb20gJy4uLy4uL3JlZ2lzdHJ5L2NvbnRyb2xsZXItdHlwZS5qcyc7XG5pbXBvcnQgeyBFUlJPUl9IQU5ETEVSUywgSEFORExFUlMsIEhPT0tTIH0gZnJvbSAnLi4vLi4vc3ltYm9scy9pbmRleC5qcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1BbmRXYWl0IH0gZnJvbSAnLi4vLi4vdXRpbHMvdHJhbnNmb3JtLWFuZC13YWl0LmpzJztcbmltcG9ydCB7IGhhc0Vycm9ySGFuZGxlcnMsIGhhc0hhbmRsZXJzLCBoYXNIb29rcyB9IGZyb20gJy4uL2hlbHBlcnMvY2xhc3MtcHJvcGVydGllcy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVFcnJvcnNIYW5kbGVyIH0gZnJvbSAnLi4vaGVscGVycy9jcmVhdGUtZXJyb3JzLWhhbmRsZXIuanMnO1xuXG5jb25zdCBjb250cm9sbGVyc0NhY2hlID0gbmV3IFdlYWtNYXA8RmFzdGlmeVJlcXVlc3QsIHVua25vd24+KCk7XG5cbmZ1bmN0aW9uIHRhcmdldEZhY3RvcnkoY29uc3RydWN0b3I6IFJlZ2lzdHJhYmxlKSB7XG4gIHJldHVybiBhc3luYyBmdW5jdGlvbiBnZXRUYXJnZXQocmVxdWVzdDogRmFzdGlmeVJlcXVlc3QpIHtcbiAgICBpZiAoY29udHJvbGxlcnNDYWNoZS5oYXMocmVxdWVzdCkpIHJldHVybiBjb250cm9sbGVyc0NhY2hlLmdldChyZXF1ZXN0KTtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgY29uc3RydWN0b3IoKTtcbiAgICBhd2FpdCB0cmFuc2Zvcm1BbmRXYWl0KGhvb2tzUmVnaXN0cnkuYWZ0ZXJDb250cm9sbGVyQ3JlYXRpb24sIChob29rKSA9PiBob29rKHRhcmdldCwgY29uc3RydWN0b3IpKTtcbiAgICBjb250cm9sbGVyc0NhY2hlLnNldChyZXF1ZXN0LCB0YXJnZXQpO1xuICAgIHJldHVybiB0YXJnZXQ7XG4gIH07XG59XG5cbnR5cGUgQ29udHJvbGxlckZhY3RvcnkgPSAoaW5zdGFuY2U6IEZhc3RpZnlJbnN0YW5jZSwgY29uc3RydWN0b3I6IFJlZ2lzdHJhYmxlKSA9PiB1bmtub3duO1xuXG4vKipcbiAqIFZhcmlvdXMgc3RyYXRlZ2llcyB3aGljaCBjYW4gYmUgYXBwbGllZCB0byBjb250cm9sbGVyXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqXG4gKiBUaGVyZSBhcmUgZmV3IGF2YWlsYWJsZSBzdHJhdGVnaWVzOlxuICogICBTSU5HTEVUT04gc3RyYXRlZ3kgY3JlYXRlcyBvbmUgaW5zdGFuY2Ugb2YgY29udHJvbGxlciB3aGljaCB3aWxsIGhhbmRsZSBhbGwgcmVxdWVzdHNcbiAqICAgUkVRVUVTVCBzdHJhdGVneSB3aWxsIGNyZWF0ZSBuZXcgaW5zdGFuY2UgZm9yIGVhY2ggcmVxdWVzdC9ob29rXG4gKlxuICogQnkgZGVmYXVsdCBjb250cm9sbGVycyB1c2UgU0lOR0xFVE9OIHN0cmF0ZWd5XG4gKi9cbmV4cG9ydCBjb25zdCBDb250cm9sbGVyVHlwZVN0cmF0ZWdpZXM6IFJlY29yZDxDb250cm9sbGVyVHlwZSwgQ29udHJvbGxlckZhY3Rvcnk+ID0ge1xuICBbQ29udHJvbGxlclR5cGUuU0lOR0xFVE9OXTogYXN5bmMgKGluc3RhbmNlLCBjb25zdHJ1Y3RvcikgPT4ge1xuICAgIGF3YWl0IHRyYW5zZm9ybUFuZFdhaXQoaG9va3NSZWdpc3RyeS5iZWZvcmVDb250cm9sbGVyQ3JlYXRpb24sIChob29rKSA9PiBob29rKGNvbnN0cnVjdG9yKSk7XG4gICAgY29uc3QgY29udHJvbGxlckluc3RhbmNlID0gbmV3IGNvbnN0cnVjdG9yKCk7XG4gICAgYXdhaXQgdHJhbnNmb3JtQW5kV2FpdChob29rc1JlZ2lzdHJ5LmFmdGVyQ29udHJvbGxlckNyZWF0aW9uLCAoaG9vaykgPT4gaG9vayhjb250cm9sbGVySW5zdGFuY2UsIGNvbnN0cnVjdG9yKSk7XG5cbiAgICBpZiAoaGFzSGFuZGxlcnMoY29uc3RydWN0b3IpKSByZWdpc3RlckhhbmRsZXJzKGNvbnN0cnVjdG9yW0hBTkRMRVJTXSwgaW5zdGFuY2UsIGNvbnRyb2xsZXJJbnN0YW5jZSk7XG4gICAgaWYgKGhhc0Vycm9ySGFuZGxlcnMoY29uc3RydWN0b3IpKSByZWdpc3RlckVycm9ySGFuZGxlcnMoY29uc3RydWN0b3JbRVJST1JfSEFORExFUlNdLCBpbnN0YW5jZSwgY29udHJvbGxlckluc3RhbmNlKTtcbiAgICBpZiAoaGFzSG9va3MoY29uc3RydWN0b3IpKSByZWdpc3Rlckhvb2tzKGNvbnN0cnVjdG9yW0hPT0tTXSwgaW5zdGFuY2UsIGNvbnRyb2xsZXJJbnN0YW5jZSk7XG5cbiAgICByZXR1cm4gY29udHJvbGxlckluc3RhbmNlO1xuICB9LFxuXG4gIFtDb250cm9sbGVyVHlwZS5SRVFVRVNUXTogYXN5bmMgKGluc3RhbmNlLCBjb25zdHJ1Y3RvcikgPT4ge1xuICAgIGF3YWl0IHRyYW5zZm9ybUFuZFdhaXQoaG9va3NSZWdpc3RyeS5iZWZvcmVDb250cm9sbGVyQ3JlYXRpb24sIChob29rKSA9PiBob29rKGNvbnN0cnVjdG9yKSk7XG4gICAgY29uc3QgZmFjdG9yeSA9IHRhcmdldEZhY3RvcnkoY29uc3RydWN0b3IpO1xuXG4gICAgaWYgKGhhc0hhbmRsZXJzKGNvbnN0cnVjdG9yKSlcbiAgICAgIGNvbnN0cnVjdG9yW0hBTkRMRVJTXS5mb3JFYWNoKChoYW5kbGVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgdXJsLCBtZXRob2QsIGhhbmRsZXJNZXRob2QsIG9wdGlvbnMgfSA9IGhhbmRsZXI7XG5cbiAgICAgICAgaW5zdGFuY2VbbWV0aG9kXSh1cmwsIG9wdGlvbnMsIGFzeW5jIGZ1bmN0aW9uIChyZXF1ZXN0LCAuLi5hcmdzKSB7XG4gICAgICAgICAgY29uc3QgY29udHJvbGxlckluc3RhbmNlID0gYXdhaXQgZmFjdG9yeShyZXF1ZXN0KTtcbiAgICAgICAgICByZXR1cm4gY29udHJvbGxlckluc3RhbmNlW2hhbmRsZXJNZXRob2RdKHJlcXVlc3QsIC4uLmFyZ3MpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgaWYgKGhhc0Vycm9ySGFuZGxlcnMoY29uc3RydWN0b3IpKVxuICAgICAgaW5zdGFuY2Uuc2V0RXJyb3JIYW5kbGVyKGFzeW5jIChlcnJvciwgcmVxdWVzdCwgLi4ucmVzdCkgPT4ge1xuICAgICAgICBjb25zdCBjb250cm9sbGVySW5zdGFuY2UgPSBhd2FpdCBmYWN0b3J5KHJlcXVlc3QpO1xuICAgICAgICBjb25zdCBlcnJvcnNIYW5kbGVyID0gY3JlYXRlRXJyb3JzSGFuZGxlcihjb25zdHJ1Y3RvcltFUlJPUl9IQU5ETEVSU10sIGNvbnRyb2xsZXJJbnN0YW5jZSk7XG5cbiAgICAgICAgcmV0dXJuIGVycm9yc0hhbmRsZXIoZXJyb3IsIHJlcXVlc3QsIC4uLnJlc3QpO1xuICAgICAgfSk7XG5cbiAgICBpZiAoaGFzSG9va3MoY29uc3RydWN0b3IpKVxuICAgICAgY29uc3RydWN0b3JbSE9PS1NdLmZvckVhY2goKGhvb2spID0+XG4gICAgICAgIGluc3RhbmNlLmFkZEhvb2soaG9vay5uYW1lIGFzICdvblJlcXVlc3QnLCBhc3luYyAocmVxdWVzdDogRmFzdGlmeVJlcXVlc3QsIC4uLnJlc3Q6IHVua25vd25bXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRyb2xsZXJJbnN0YW5jZSA9IGF3YWl0IGZhY3RvcnkocmVxdWVzdCk7XG4gICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXJJbnN0YW5jZVtob29rLmhhbmRsZXJOYW1lXShyZXF1ZXN0LCAuLi5yZXN0KTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9LFxufTtcblxuZnVuY3Rpb24gcmVnaXN0ZXJIYW5kbGVycyhcbiAgaGFuZGxlcnM6IElIYW5kbGVyW10sXG4gIGluc3RhbmNlOiBGYXN0aWZ5SW5zdGFuY2UsXG4gIGNvbnRyb2xsZXJJbnN0YW5jZTogUmVjb3JkPHN0cmluZywgKHJlcXVlc3Q6IEZhc3RpZnlSZXF1ZXN0LCByZXBseTogRmFzdGlmeVJlcGx5KSA9PiB2b2lkPixcbik6IHZvaWQge1xuICBoYW5kbGVycy5mb3JFYWNoKChoYW5kbGVyKSA9PiB7XG4gICAgaW5zdGFuY2VbaGFuZGxlci5tZXRob2RdKGhhbmRsZXIudXJsLCBoYW5kbGVyLm9wdGlvbnMsIGNvbnRyb2xsZXJJbnN0YW5jZVtoYW5kbGVyLmhhbmRsZXJNZXRob2QgYXMgc3RyaW5nXS5iaW5kKGNvbnRyb2xsZXJJbnN0YW5jZSkpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVnaXN0ZXJIb29rcyhcbiAgaG9va3M6IElIb29rW10sXG4gIGluc3RhbmNlOiBGYXN0aWZ5SW5zdGFuY2UsXG4gIGNvbnRyb2xsZXJJbnN0YW5jZTogUmVjb3JkPHN0cmluZywgKHJlcXVlc3Q6IEZhc3RpZnlSZXF1ZXN0LCByZXBseTogRmFzdGlmeVJlcGx5KSA9PiB2b2lkPixcbik6IHZvaWQge1xuICBob29rcy5mb3JFYWNoKChob29rKSA9PiB7XG4gICAgaW5zdGFuY2UuYWRkSG9vayhob29rLm5hbWUgYXMgJ29uUmVxdWVzdCcsIGNvbnRyb2xsZXJJbnN0YW5jZVtob29rLmhhbmRsZXJOYW1lIGFzIHN0cmluZ10uYmluZChjb250cm9sbGVySW5zdGFuY2UpKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyRXJyb3JIYW5kbGVycyhcbiAgZXJyb3JIYW5kbGVyczogSUVycm9ySGFuZGxlcltdLFxuICBpbnN0YW5jZTogRmFzdGlmeUluc3RhbmNlLFxuICBjbGFzc0luc3RhbmNlOiBSZWNvcmQ8c3RyaW5nLCAoZXJyb3I6IEVycm9yLCByZXF1ZXN0OiBGYXN0aWZ5UmVxdWVzdCwgcmVwbHk6IEZhc3RpZnlSZXBseSkgPT4gdm9pZD4sXG4pIHtcbiAgaW5zdGFuY2Uuc2V0RXJyb3JIYW5kbGVyKGNyZWF0ZUVycm9yc0hhbmRsZXIoZXJyb3JIYW5kbGVycywgY2xhc3NJbnN0YW5jZSkpO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2RlY29yYXRvcnMvc3RyYXRlZ2llcy9jb250cm9sbGVyLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBSUgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBYSxNQUFNLDhCQUE4QixDQUFDO0FBRWhGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7QUFFaEUsU0FBUyxhQUFhLENBQUMsV0FBd0I7SUFDN0MsT0FBTyxLQUFLLFVBQVUsU0FBUyxDQUFDLE9BQXVCO1FBQ3JELElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztZQUFFLE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sTUFBTSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDakMsTUFBTSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNuRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFJRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQThDO0lBQ2pGLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ2hFLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQUUscUJBQXFCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTNELE1BQU0sZ0JBQWdCLENBQUMsYUFBYSxDQUFDLHdCQUF3QixFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUM1RixNQUFNLGtCQUFrQixHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDN0MsTUFBTSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRS9HLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQztZQUFFLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUcsSUFBSSxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7WUFBRSxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDcEgsSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDO1lBQUUsYUFBYSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUUzRixPQUFPLGtCQUFrQixDQUFDO0lBQzVCLENBQUM7SUFFRCxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUM5RCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUUzRCxNQUFNLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDNUYsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTNDLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQztZQUMxQixXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3hDLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUM7Z0JBRXhELFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FDZCxHQUFHLEVBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUM3SCxLQUFLLFdBQVcsT0FBTyxFQUFFLEdBQUcsSUFBSTtvQkFDOUIsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDbEQsT0FBTyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDN0QsQ0FBQyxDQUNGLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksZ0JBQWdCLENBQUMsV0FBVyxDQUFDO1lBQy9CLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRTtnQkFDekQsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDbEQsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLENBQUM7Z0JBRTNGLE9BQU8sYUFBYSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNoRCxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQztZQUN2QixXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDbEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBbUIsRUFBRSxLQUFLLEVBQUUsT0FBdUIsRUFBRSxHQUFHLElBQWUsRUFBRSxFQUFFO2dCQUMvRixNQUFNLGtCQUFrQixHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNsRCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNoRSxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztDQUNGLENBQUM7QUFFRixTQUFTLGdCQUFnQixDQUN2QixRQUFvQixFQUNwQixRQUF5QixFQUN6QixrQkFBMEYsRUFDMUYsSUFBaUI7SUFFakIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQzNCLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQ3RCLE9BQU8sQ0FBQyxHQUFHLEVBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUNuSixDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsYUFBdUIsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQzFFLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FDcEIsS0FBYyxFQUNkLFFBQXlCLEVBQ3pCLGtCQUF5RztJQUV6RyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDckIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBbUIsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBcUIsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNuSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUM1QixhQUE4QixFQUM5QixRQUF5QixFQUN6QixhQUFtRztJQUVuRyxRQUFRLENBQUMsZUFBZSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO0FBQzlFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBGYXN0aWZ5SW5zdGFuY2UsIEZhc3RpZnlSZXBseSwgRmFzdGlmeVJlcXVlc3QsIEZhc3RpZnlTY2hlbWEgfSBmcm9tICdmYXN0aWZ5JztcbmltcG9ydCB0eXBlIHsgSUVycm9ySGFuZGxlciwgSUhhbmRsZXIsIElIb29rIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pbmRleC5qcyc7XG5pbXBvcnQgeyBob29rc1JlZ2lzdHJ5IH0gZnJvbSAnLi4vLi4vcGx1Z2lucy9saWZlLWN5Y2xlLmpzJztcbmltcG9ydCB7IFJlZ2lzdHJhYmxlIH0gZnJvbSAnLi4vLi4vcGx1Z2lucy9zaGFyZWQtaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgeyBDb250cm9sbGVyVHlwZSB9IGZyb20gJy4uLy4uL3JlZ2lzdHJ5L2NvbnRyb2xsZXItdHlwZS5qcyc7XG5pbXBvcnQgeyBFUlJPUl9IQU5ETEVSUywgSEFORExFUlMsIEhPT0tTIH0gZnJvbSAnLi4vLi4vc3ltYm9scy9pbmRleC5qcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1BbmRXYWl0IH0gZnJvbSAnLi4vLi4vdXRpbHMvdHJhbnNmb3JtLWFuZC13YWl0LmpzJztcbmltcG9ydCB7IGhhc0Vycm9ySGFuZGxlcnMsIGhhc0hhbmRsZXJzLCBoYXNIb29rcyB9IGZyb20gJy4uL2hlbHBlcnMvY2xhc3MtcHJvcGVydGllcy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVFcnJvcnNIYW5kbGVyIH0gZnJvbSAnLi4vaGVscGVycy9jcmVhdGUtZXJyb3JzLWhhbmRsZXIuanMnO1xuaW1wb3J0IHsgaW5qZWN0VGFnc0ludG9Td2FnZ2VyLCBUYWdPYmplY3QgfSBmcm9tICcuLi9oZWxwZXJzL3N3YWdnZXItaGVscGVyLmpzJztcblxuY29uc3QgY29udHJvbGxlcnNDYWNoZSA9IG5ldyBXZWFrTWFwPEZhc3RpZnlSZXF1ZXN0LCB1bmtub3duPigpO1xuXG5mdW5jdGlvbiB0YXJnZXRGYWN0b3J5KGNvbnN0cnVjdG9yOiBSZWdpc3RyYWJsZSkge1xuICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gZ2V0VGFyZ2V0KHJlcXVlc3Q6IEZhc3RpZnlSZXF1ZXN0KSB7XG4gICAgaWYgKGNvbnRyb2xsZXJzQ2FjaGUuaGFzKHJlcXVlc3QpKSByZXR1cm4gY29udHJvbGxlcnNDYWNoZS5nZXQocmVxdWVzdCk7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IGNvbnN0cnVjdG9yKCk7XG4gICAgYXdhaXQgdHJhbnNmb3JtQW5kV2FpdChob29rc1JlZ2lzdHJ5LmFmdGVyQ29udHJvbGxlckNyZWF0aW9uLCAoaG9vaykgPT4gaG9vayh0YXJnZXQsIGNvbnN0cnVjdG9yKSk7XG4gICAgY29udHJvbGxlcnNDYWNoZS5zZXQocmVxdWVzdCwgdGFyZ2V0KTtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9O1xufVxuXG50eXBlIENvbnRyb2xsZXJGYWN0b3J5ID0gKGluc3RhbmNlOiBGYXN0aWZ5SW5zdGFuY2UsIGNvbnN0cnVjdG9yOiBSZWdpc3RyYWJsZSwgdGFnczogVGFnT2JqZWN0W10pID0+IHVua25vd247XG5cbi8qKlxuICogVmFyaW91cyBzdHJhdGVnaWVzIHdoaWNoIGNhbiBiZSBhcHBsaWVkIHRvIGNvbnRyb2xsZXJcbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICpcbiAqIFRoZXJlIGFyZSBmZXcgYXZhaWxhYmxlIHN0cmF0ZWdpZXM6XG4gKiAtICpTSU5HTEVUT04qIHN0cmF0ZWd5IGNyZWF0ZXMgb25lIGluc3RhbmNlIG9mIGNvbnRyb2xsZXIgd2hpY2ggd2lsbCBoYW5kbGUgYWxsIHJlcXVlc3RzXG4gKiAtICpSRVFVRVNUKiBzdHJhdGVneSB3aWxsIGNyZWF0ZSBuZXcgaW5zdGFuY2UgZm9yIGVhY2ggcmVxdWVzdC9ob29rXG4gKlxuICogQnkgZGVmYXVsdCwgY29udHJvbGxlcnMgdXNlICpTSU5HTEVUT04qIHN0cmF0ZWd5XG4gKlxuICogQHNlZSBDb250cm9sbGVyXG4gKiBAc2VlIENvbnRyb2xsZXJDb25maWdcbiAqL1xuZXhwb3J0IGNvbnN0IENvbnRyb2xsZXJUeXBlU3RyYXRlZ2llczogUmVjb3JkPENvbnRyb2xsZXJUeXBlLCBDb250cm9sbGVyRmFjdG9yeT4gPSB7XG4gIFtDb250cm9sbGVyVHlwZS5TSU5HTEVUT05dOiBhc3luYyAoaW5zdGFuY2UsIGNvbnN0cnVjdG9yLCB0YWdzKSA9PiB7XG4gICAgaWYgKHRhZ3MubGVuZ3RoID4gMCkgaW5qZWN0VGFnc0ludG9Td2FnZ2VyKGluc3RhbmNlLCB0YWdzKTtcblxuICAgIGF3YWl0IHRyYW5zZm9ybUFuZFdhaXQoaG9va3NSZWdpc3RyeS5iZWZvcmVDb250cm9sbGVyQ3JlYXRpb24sIChob29rKSA9PiBob29rKGNvbnN0cnVjdG9yKSk7XG4gICAgY29uc3QgY29udHJvbGxlckluc3RhbmNlID0gbmV3IGNvbnN0cnVjdG9yKCk7XG4gICAgYXdhaXQgdHJhbnNmb3JtQW5kV2FpdChob29rc1JlZ2lzdHJ5LmFmdGVyQ29udHJvbGxlckNyZWF0aW9uLCAoaG9vaykgPT4gaG9vayhjb250cm9sbGVySW5zdGFuY2UsIGNvbnN0cnVjdG9yKSk7XG5cbiAgICBpZiAoaGFzSGFuZGxlcnMoY29uc3RydWN0b3IpKSByZWdpc3RlckhhbmRsZXJzKGNvbnN0cnVjdG9yW0hBTkRMRVJTXSwgaW5zdGFuY2UsIGNvbnRyb2xsZXJJbnN0YW5jZSwgdGFncyk7XG4gICAgaWYgKGhhc0Vycm9ySGFuZGxlcnMoY29uc3RydWN0b3IpKSByZWdpc3RlckVycm9ySGFuZGxlcnMoY29uc3RydWN0b3JbRVJST1JfSEFORExFUlNdLCBpbnN0YW5jZSwgY29udHJvbGxlckluc3RhbmNlKTtcbiAgICBpZiAoaGFzSG9va3MoY29uc3RydWN0b3IpKSByZWdpc3Rlckhvb2tzKGNvbnN0cnVjdG9yW0hPT0tTXSwgaW5zdGFuY2UsIGNvbnRyb2xsZXJJbnN0YW5jZSk7XG5cbiAgICByZXR1cm4gY29udHJvbGxlckluc3RhbmNlO1xuICB9LFxuXG4gIFtDb250cm9sbGVyVHlwZS5SRVFVRVNUXTogYXN5bmMgKGluc3RhbmNlLCBjb25zdHJ1Y3RvciwgdGFncykgPT4ge1xuICAgIGlmICh0YWdzLmxlbmd0aCA+IDApIGluamVjdFRhZ3NJbnRvU3dhZ2dlcihpbnN0YW5jZSwgdGFncyk7XG5cbiAgICBhd2FpdCB0cmFuc2Zvcm1BbmRXYWl0KGhvb2tzUmVnaXN0cnkuYmVmb3JlQ29udHJvbGxlckNyZWF0aW9uLCAoaG9vaykgPT4gaG9vayhjb25zdHJ1Y3RvcikpO1xuICAgIGNvbnN0IGZhY3RvcnkgPSB0YXJnZXRGYWN0b3J5KGNvbnN0cnVjdG9yKTtcblxuICAgIGlmIChoYXNIYW5kbGVycyhjb25zdHJ1Y3RvcikpXG4gICAgICBjb25zdHJ1Y3RvcltIQU5ETEVSU10uZm9yRWFjaCgoaGFuZGxlcikgPT4ge1xuICAgICAgICBjb25zdCB7IHVybCwgbWV0aG9kLCBoYW5kbGVyTWV0aG9kLCBvcHRpb25zIH0gPSBoYW5kbGVyO1xuXG4gICAgICAgIGluc3RhbmNlW21ldGhvZF0oXG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIHRhZ3MubGVuZ3RoID4gMCA/IHsgLi4ub3B0aW9ucywgc2NoZW1hOiB7IHRhZ3M6IHRhZ3MubWFwKCh0YWcpID0+IHRhZy5uYW1lKSwgLi4ub3B0aW9ucy5zY2hlbWEgfSBhcyBGYXN0aWZ5U2NoZW1hIH0gOiBvcHRpb25zLFxuICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIChyZXF1ZXN0LCAuLi5hcmdzKSB7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sbGVySW5zdGFuY2UgPSBhd2FpdCBmYWN0b3J5KHJlcXVlc3QpO1xuICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXJJbnN0YW5jZVtoYW5kbGVyTWV0aG9kXShyZXF1ZXN0LCAuLi5hcmdzKTtcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICBpZiAoaGFzRXJyb3JIYW5kbGVycyhjb25zdHJ1Y3RvcikpXG4gICAgICBpbnN0YW5jZS5zZXRFcnJvckhhbmRsZXIoYXN5bmMgKGVycm9yLCByZXF1ZXN0LCAuLi5yZXN0KSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXJJbnN0YW5jZSA9IGF3YWl0IGZhY3RvcnkocmVxdWVzdCk7XG4gICAgICAgIGNvbnN0IGVycm9yc0hhbmRsZXIgPSBjcmVhdGVFcnJvcnNIYW5kbGVyKGNvbnN0cnVjdG9yW0VSUk9SX0hBTkRMRVJTXSwgY29udHJvbGxlckluc3RhbmNlKTtcblxuICAgICAgICByZXR1cm4gZXJyb3JzSGFuZGxlcihlcnJvciwgcmVxdWVzdCwgLi4ucmVzdCk7XG4gICAgICB9KTtcblxuICAgIGlmIChoYXNIb29rcyhjb25zdHJ1Y3RvcikpXG4gICAgICBjb25zdHJ1Y3RvcltIT09LU10uZm9yRWFjaCgoaG9vaykgPT5cbiAgICAgICAgaW5zdGFuY2UuYWRkSG9vayhob29rLm5hbWUgYXMgJ29uUmVxdWVzdCcsIGFzeW5jIChyZXF1ZXN0OiBGYXN0aWZ5UmVxdWVzdCwgLi4ucmVzdDogdW5rbm93bltdKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udHJvbGxlckluc3RhbmNlID0gYXdhaXQgZmFjdG9yeShyZXF1ZXN0KTtcbiAgICAgICAgICByZXR1cm4gY29udHJvbGxlckluc3RhbmNlW2hvb2suaGFuZGxlck5hbWVdKHJlcXVlc3QsIC4uLnJlc3QpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH0sXG59O1xuXG5mdW5jdGlvbiByZWdpc3RlckhhbmRsZXJzKFxuICBoYW5kbGVyczogSUhhbmRsZXJbXSxcbiAgaW5zdGFuY2U6IEZhc3RpZnlJbnN0YW5jZSxcbiAgY29udHJvbGxlckluc3RhbmNlOiBSZWNvcmQ8c3RyaW5nLCAocmVxdWVzdDogRmFzdGlmeVJlcXVlc3QsIHJlcGx5OiBGYXN0aWZ5UmVwbHkpID0+IHZvaWQ+LFxuICB0YWdzOiBUYWdPYmplY3RbXSxcbik6IHZvaWQge1xuICBoYW5kbGVycy5mb3JFYWNoKChoYW5kbGVyKSA9PiB7XG4gICAgaW5zdGFuY2VbaGFuZGxlci5tZXRob2RdKFxuICAgICAgaGFuZGxlci51cmwsXG4gICAgICB0YWdzLmxlbmd0aCA+IDAgPyB7IC4uLmhhbmRsZXIub3B0aW9ucywgc2NoZW1hOiB7IHRhZ3M6IHRhZ3MubWFwKChpdCkgPT4gaXQubmFtZSksIC4uLmhhbmRsZXIub3B0aW9ucy5zY2hlbWEgfSBhcyBGYXN0aWZ5U2NoZW1hIH0gOiBoYW5kbGVyLm9wdGlvbnMsXG4gICAgICAoLi4uYXJncykgPT4gY29udHJvbGxlckluc3RhbmNlW2hhbmRsZXIuaGFuZGxlck1ldGhvZCBhcyBzdHJpbmddKC4uLmFyZ3MpLFxuICAgICk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZWdpc3Rlckhvb2tzKFxuICBob29rczogSUhvb2tbXSxcbiAgaW5zdGFuY2U6IEZhc3RpZnlJbnN0YW5jZSxcbiAgY29udHJvbGxlckluc3RhbmNlOiBSZWNvcmQ8c3RyaW5nLCAocmVxdWVzdDogRmFzdGlmeVJlcXVlc3QsIHJlcGx5OiBGYXN0aWZ5UmVwbHksIGRvbmU6IHVua25vd24pID0+IHZvaWQ+LFxuKTogdm9pZCB7XG4gIGhvb2tzLmZvckVhY2goKGhvb2spID0+IHtcbiAgICBpbnN0YW5jZS5hZGRIb29rKGhvb2submFtZSBhcyAnb25SZXF1ZXN0JywgKC4uLmFyZ3MpID0+IGNvbnRyb2xsZXJJbnN0YW5jZVtob29rLmhhbmRsZXJOYW1lIGFzIHN0cmluZ10oLi4uYXJncykpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVnaXN0ZXJFcnJvckhhbmRsZXJzKFxuICBlcnJvckhhbmRsZXJzOiBJRXJyb3JIYW5kbGVyW10sXG4gIGluc3RhbmNlOiBGYXN0aWZ5SW5zdGFuY2UsXG4gIGNsYXNzSW5zdGFuY2U6IFJlY29yZDxzdHJpbmcsIChlcnJvcjogRXJyb3IsIHJlcXVlc3Q6IEZhc3RpZnlSZXF1ZXN0LCByZXBseTogRmFzdGlmeVJlcGx5KSA9PiB2b2lkPixcbikge1xuICBpbnN0YW5jZS5zZXRFcnJvckhhbmRsZXIoY3JlYXRlRXJyb3JzSGFuZGxlcihlcnJvckhhbmRsZXJzLCBjbGFzc0luc3RhbmNlKSk7XG59XG4iXX0=

@@ -46,1 +46,23 @@ <h1 style="text-align: center">Fastify decorators</h1>

```
### Using custom class loader
By default, fastify-decorators uses own DI mechanism for getting controller instances.
This mechanism depends on `reflect-metadata` and provide basic abilities like constructor injection and injection to class fields via decorators.
You can read more about built-in DI at [Services and dependency injection](Services%20and%20dependency%20injection.md)
In case when built-in DI does not suitable it's possible to write own custom loader for classes and pass it via `classLoader` option.
Signature is `(clazz: Constructor<C>) => C`.
```typescript
import 'reflect-metadata';
import { Container } from 'typedi';
app.register(bootstrap, {
// ...other options...
classLoader(clazz) {
return Container.get(clazz);
},
});
```

@@ -10,3 +10,3 @@ /**

import type { PathLike } from 'node:fs';
import type { Constructable } from './constructable.js';
import { Constructable } from '../plugins/index.js';
/**

@@ -13,0 +13,0 @@ * Config for application bootstrap

@@ -9,2 +9,2 @@ /**

export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9pbnRlcmZhY2VzL2Jvb3RzdHJhcC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB0eXBlIHsgUGF0aExpa2UgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0YWJsZSB9IGZyb20gJy4vY29uc3RydWN0YWJsZS5qcyc7XG5cbi8qKlxuICogQ29uZmlnIGZvciBhcHBsaWNhdGlvbiBib290c3RyYXBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRvTG9hZENvbmZpZyB7XG4gIC8qKlxuICAgKiBQYXRoIHRvIGRpcmVjdG9yeSB3aGljaCBjb250YWlucyBmaWxlcyB0byBsb2FkXG4gICAqL1xuICBkaXJlY3Rvcnk6IFBhdGhMaWtlO1xuXG4gIC8qKlxuICAgKiBNYXNrIHVzZWQgdG8gZmlsdGVyIGZpbGVzIHRvIGxvYWRcbiAgICogQGRlZmF1bHQgL1xcLihoYW5kbGVyfGNvbnRyb2xsZXIpXFwuL1xuICAgKi9cbiAgbWFzaz86IHN0cmluZyB8IFJlZ0V4cDtcblxuICAvKipcbiAgICogQnkgZGVmYXVsdCBhcHBsaWNhdGlvbiB3aWxsIGZhaWxzIHRvIGJvb3RzdHJhcCBpZiBvbmUgb3IgbW9yZSBvZiBsb2FkZWQgZmlsZXMgZG9lcyBub3QgY29udGFpbiB2YWxpZCBjb250cm9sbGVyIG9yIGhhbmRsZXJcbiAgICogVGhpcyBvcHRpb24gYWxsb3dzIHRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBza2lwQnJva2VuPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2xvYmFsIHByZWZpeCB0byBiZSBhcHBsaWVkIGZvciBhbGwgcm91dGVzXG4gICAqL1xuICBwcmVmaXg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJvbGxlcnNMaXN0Q29uZmlnIHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgQ29udHJvbGxlciBjbGFzc2VzIHRvIGJvb3RzdHJhcFxuICAgKi9cbiAgY29udHJvbGxlcnM6IENvbnN0cnVjdGFibGU8dW5rbm93bj5bXTtcblxuICAvKipcbiAgICogQnkgZGVmYXVsdCBhcHBsaWNhdGlvbiB3aWxsIGZhaWxzIHRvIGJvb3RzdHJhcCBpZiBvbmUgb3IgbW9yZSBvZiBsb2FkZWQgZmlsZXMgZG9lcyBub3QgY29udGFpbiB2YWxpZCBjb250cm9sbGVyIG9yIGhhbmRsZXJcbiAgICogVGhpcyBvcHRpb24gYWxsb3dzIHRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBza2lwQnJva2VuPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2xvYmFsIHByZWZpeCB0byBiZSBhcHBsaWVkIGZvciBhbGwgcm91dGVzXG4gICAqL1xuICBwcmVmaXg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEJvb3RzdHJhcENvbmZpZyA9IEF1dG9Mb2FkQ29uZmlnIHwgQ29udHJvbGxlcnNMaXN0Q29uZmlnO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9pbnRlcmZhY2VzL2Jvb3RzdHJhcC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB0eXBlIHsgUGF0aExpa2UgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IENvbnN0cnVjdGFibGUgfSBmcm9tICcuLi9wbHVnaW5zL2luZGV4LmpzJztcblxuLyoqXG4gKiBDb25maWcgZm9yIGFwcGxpY2F0aW9uIGJvb3RzdHJhcFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9Mb2FkQ29uZmlnIHtcbiAgLyoqXG4gICAqIFBhdGggdG8gZGlyZWN0b3J5IHdoaWNoIGNvbnRhaW5zIGZpbGVzIHRvIGxvYWRcbiAgICovXG4gIGRpcmVjdG9yeTogUGF0aExpa2U7XG5cbiAgLyoqXG4gICAqIE1hc2sgdXNlZCB0byBmaWx0ZXIgZmlsZXMgdG8gbG9hZFxuICAgKiBAZGVmYXVsdCAvXFwuKGhhbmRsZXJ8Y29udHJvbGxlcilcXC4vXG4gICAqL1xuICBtYXNrPzogc3RyaW5nIHwgUmVnRXhwO1xuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0IGFwcGxpY2F0aW9uIHdpbGwgZmFpbHMgdG8gYm9vdHN0cmFwIGlmIG9uZSBvciBtb3JlIG9mIGxvYWRlZCBmaWxlcyBkb2VzIG5vdCBjb250YWluIHZhbGlkIGNvbnRyb2xsZXIgb3IgaGFuZGxlclxuICAgKiBUaGlzIG9wdGlvbiBhbGxvd3MgdG8gY2hhbmdlIHRoaXMgYmVoYXZpb3JcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHNraXBCcm9rZW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBHbG9iYWwgcHJlZml4IHRvIGJlIGFwcGxpZWQgZm9yIGFsbCByb3V0ZXNcbiAgICovXG4gIHByZWZpeD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250cm9sbGVyc0xpc3RDb25maWcge1xuICAvKipcbiAgICogTGlzdCBvZiBDb250cm9sbGVyIGNsYXNzZXMgdG8gYm9vdHN0cmFwXG4gICAqL1xuICBjb250cm9sbGVyczogQ29uc3RydWN0YWJsZTx1bmtub3duPltdO1xuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0IGFwcGxpY2F0aW9uIHdpbGwgZmFpbHMgdG8gYm9vdHN0cmFwIGlmIG9uZSBvciBtb3JlIG9mIGxvYWRlZCBmaWxlcyBkb2VzIG5vdCBjb250YWluIHZhbGlkIGNvbnRyb2xsZXIgb3IgaGFuZGxlclxuICAgKiBUaGlzIG9wdGlvbiBhbGxvd3MgdG8gY2hhbmdlIHRoaXMgYmVoYXZpb3JcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHNraXBCcm9rZW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBHbG9iYWwgcHJlZml4IHRvIGJlIGFwcGxpZWQgZm9yIGFsbCByb3V0ZXNcbiAgICovXG4gIHByZWZpeD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQm9vdHN0cmFwQ29uZmlnID0gQXV0b0xvYWRDb25maWcgfCBDb250cm9sbGVyc0xpc3RDb25maWc7XG4iXX0=

@@ -8,2 +8,3 @@ /**

*/
import { TagObject } from '../decorators/helpers/swagger-helper.js';
import type { ControllerType } from '../registry/controller-type.js';

@@ -22,2 +23,9 @@ /**

type?: ControllerType;
/**
* List of tags to group endpoints in swagger
*
* by default this list is empty, adding tags here will add same tags to all methods inside controller.
* In case if method has own set of tags they will have higher priority instead of controller tags
*/
tags?: TagObject[];
}

@@ -9,2 +9,2 @@ /**

export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvaW50ZXJmYWNlcy9jb250cm9sbGVyLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBDb250cm9sbGVyVHlwZSB9IGZyb20gJy4uL3JlZ2lzdHJ5L2NvbnRyb2xsZXItdHlwZS5qcyc7XG5cbi8qKlxuICogQ29uZmlnIGZvciBjb250cm9sbGVyc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRyb2xsZXJDb25maWcge1xuICAvKipcbiAgICogQ29udHJvbGxlciBiYXNlIHJvdXRlXG4gICAqL1xuICByb3V0ZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb250cm9sbGVyIHR5cGVcbiAgICovXG4gIHR5cGU/OiBDb250cm9sbGVyVHlwZTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvaW50ZXJmYWNlcy9jb250cm9sbGVyLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgVGFnT2JqZWN0IH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9oZWxwZXJzL3N3YWdnZXItaGVscGVyLmpzJztcbmltcG9ydCB0eXBlIHsgQ29udHJvbGxlclR5cGUgfSBmcm9tICcuLi9yZWdpc3RyeS9jb250cm9sbGVyLXR5cGUuanMnO1xuXG4vKipcbiAqIENvbmZpZyBmb3IgY29udHJvbGxlcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250cm9sbGVyQ29uZmlnIHtcbiAgLyoqXG4gICAqIENvbnRyb2xsZXIgYmFzZSByb3V0ZVxuICAgKi9cbiAgcm91dGU6IHN0cmluZztcblxuICAvKipcbiAgICogQ29udHJvbGxlciB0eXBlXG4gICAqL1xuICB0eXBlPzogQ29udHJvbGxlclR5cGU7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgdGFncyB0byBncm91cCBlbmRwb2ludHMgaW4gc3dhZ2dlclxuICAgKlxuICAgKiBieSBkZWZhdWx0IHRoaXMgbGlzdCBpcyBlbXB0eSwgYWRkaW5nIHRhZ3MgaGVyZSB3aWxsIGFkZCBzYW1lIHRhZ3MgdG8gYWxsIG1ldGhvZHMgaW5zaWRlIGNvbnRyb2xsZXIuXG4gICAqIEluIGNhc2UgaWYgbWV0aG9kIGhhcyBvd24gc2V0IG9mIHRhZ3MgdGhleSB3aWxsIGhhdmUgaGlnaGVyIHByaW9yaXR5IGluc3RlYWQgb2YgY29udHJvbGxlciB0YWdzXG4gICAqL1xuICB0YWdzPzogVGFnT2JqZWN0W107XG59XG4iXX0=
{
"name": "fastify-decorators",
"version": "4.0.0-next.2",
"version": "4.0.0-next.3",
"description": "Framework aimed to provide useful TypeScript decorators to implement controllers, services and request handlers, built with Fastify.",

@@ -49,3 +49,3 @@ "type": "module",

"dependencies": {
"fastify-plugin": "^2.0.0 || ^3.0.0"
"fastify-plugin": "^2.0.0 || ^3.0.0 || ^4.0.0"
},

@@ -52,0 +52,0 @@ "peerDependencies": {

@@ -8,5 +8,4 @@ /**

*/
export * from './controllers.js';
export * from './life-cycle.js';
export * from './shared-interfaces.js';
export * from '../decorators/helpers/class-properties.js';

@@ -8,6 +8,5 @@ /**

*/
export * from './controllers.js';
export * from './life-cycle.js';
export * from './shared-interfaces.js';
export * from '../decorators/helpers/class-properties.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvcGx1Z2lucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxjQUFjLDJDQUEyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJvbGxlcnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWZlLWN5Y2xlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmVkLWludGVyZmFjZXMuanMnO1xuXG5leHBvcnQgKiBmcm9tICcuLi9kZWNvcmF0b3JzL2hlbHBlcnMvY2xhc3MtcHJvcGVydGllcy5qcyc7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvcGx1Z2lucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsY0FBYywyQ0FBMkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpZmUtY3ljbGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQtaW50ZXJmYWNlcy5qcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4uL2RlY29yYXRvcnMvaGVscGVycy9jbGFzcy1wcm9wZXJ0aWVzLmpzJztcbiJdfQ==
import { FastifyInstance } from 'fastify';
import type { CREATOR } from '../symbols/index.js';
export { CREATOR } from '../symbols/index.js';
export interface Registrable {
export interface Constructable<T> {
new (...args: any): T;
}
export interface Registrable<T = any> extends Constructable<T> {
[CREATOR]: {
register(instance?: FastifyInstance, prefix?: string): Promise<void>;
};
new (): any;
new (...args: unknown[]): any;
}
export { CREATOR } from '../symbols/index.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvcGx1Z2lucy9zaGFyZWQtaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYXN0aWZ5SW5zdGFuY2UgfSBmcm9tICdmYXN0aWZ5JztcbmltcG9ydCB0eXBlIHsgQ1JFQVRPUiB9IGZyb20gJy4uL3N5bWJvbHMvaW5kZXguanMnO1xuXG5leHBvcnQgeyBDUkVBVE9SIH0gZnJvbSAnLi4vc3ltYm9scy9pbmRleC5qcyc7XG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdHJhYmxlIHtcbiAgW0NSRUFUT1JdOiB7XG4gICAgcmVnaXN0ZXIoaW5zdGFuY2U/OiBGYXN0aWZ5SW5zdGFuY2UsIHByZWZpeD86IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG4gIH07XG5cbiAgbmV3ICgpOiBhbnk7XG5cbiAgbmV3ICguLi5hcmdzOiB1bmtub3duW10pOiBhbnk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvcGx1Z2lucy9zaGFyZWQtaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYXN0aWZ5SW5zdGFuY2UgfSBmcm9tICdmYXN0aWZ5JztcbmltcG9ydCB0eXBlIHsgQ1JFQVRPUiB9IGZyb20gJy4uL3N5bWJvbHMvaW5kZXguanMnO1xuXG5leHBvcnQgeyBDUkVBVE9SIH0gZnJvbSAnLi4vc3ltYm9scy9pbmRleC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RydWN0YWJsZTxUPiB7XG4gIG5ldyAoLi4uYXJnczogYW55KTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RyYWJsZTxUID0gYW55PiBleHRlbmRzIENvbnN0cnVjdGFibGU8VD4ge1xuICBbQ1JFQVRPUl06IHtcbiAgICByZWdpc3RlcihpbnN0YW5jZT86IEZhc3RpZnlJbnN0YW5jZSwgcHJlZml4Pzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbiAgfTtcbn1cbiJdfQ==

@@ -1,2 +0,2 @@

[![Fastify decorators](https://raw.githubusercontent.com/L2jLiga/fastify-decorators/v4.0.0-next.2/assets/logo.png)](https://github.com/L2jLiga/fastify-decorators)
[![Fastify decorators](https://raw.githubusercontent.com/L2jLiga/fastify-decorators/v4.0.0-next.3/assets/logo.png)](https://github.com/L2jLiga/fastify-decorators)

@@ -9,3 +9,3 @@ [![npm version](https://badge.fury.io/js/fastify-decorators.svg?colorB=brightgreen)](https://www.npmjs.com/package/fastify-decorators)

[![Node.js CI](https://github.com/L2jLiga/fastify-decorators/workflows/Node.js%20CI/badge.svg)](https://github.com/L2jLiga/fastify-decorators/actions?query=workflow%3A%22Node.js+CI%22)
[![codecov](https://codecov.io/gh/L2jLiga/fastify-decorators/branch/v3/graph/badge.svg)](https://codecov.io/gh/L2jLiga/fastify-decorators)
[![codecov](https://codecov.io/gh/L2jLiga/fastify-decorators/branch/v4/graph/badge.svg)](https://codecov.io/gh/L2jLiga/fastify-decorators)
[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/L2jLiga/fastify-decorators.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/L2jLiga/fastify-decorators/context:javascript)

@@ -15,4 +15,2 @@

**NOTE**: fastify-decorators was developed with fastify `^3.0.0` and may not work with other versions.
## Benefits

@@ -38,2 +36,12 @@

## Fastify versions support
| Fastify Decorators | Fastify |
| :----------------: | :-------: |
| 1.x | 2.x |
| 2.x | 2.x |
| < 3.12.x | 3.x |
| >= 3.12.x | 3.x & 4.x |
| 4.x | 4.x |
## IDE Support

@@ -257,6 +265,6 @@

[fastify resty]: https://github.com/FastifyResty/fastify-resty
[bootstrapping]: https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.2/https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.2/docs/Bootstrapping.md
[controllers]: https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.2/https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.2/docs/Controllers.md
[request handlers]: https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.2/https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.2/docs/Request%20Handlers.md
[testing]: https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.2/https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.2/docs/Testing.md
[migration guide (v4)]: https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.2/https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.2/docs/Migration%20to%20v4.md
[bootstrapping]: https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.3/https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.3/docs/Bootstrapping.md
[controllers]: https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.3/https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.3/docs/Controllers.md
[request handlers]: https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.3/https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.3/docs/Request%20Handlers.md
[testing]: https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.3/https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.3/docs/Testing.md
[migration guide (v4)]: https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.3/https://github.com/L2jLiga/fastify-decorators/blob/v4.0.0-next.3/docs/Migration%20to%20v4.md

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc