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 3.2.4 to 3.3.0

decorators/initializer.d.ts

4

bootstrap/bootstrap.js

@@ -17,2 +17,3 @@ "use strict";

const wrap_injectable_1 = require("../utils/wrap-injectable");
const decorators_1 = require("../decorators");
const defaultMask = /\.(handler|controller)\./;

@@ -28,2 +29,3 @@ exports.bootstrap = fastify_plugin_1.default(async (fastify, config) => {

await loadControllers({ controllers: [...controllers], skipBroken }, fastify);
await Promise.all(decorators_1.readyMap.values());
}, {

@@ -73,2 +75,2 @@ fastify: '^3.0.0',

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2Jvb3RzdHJhcC9ib290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gsbURBQWdDO0FBQ2hDLDJCQUFpQztBQUNqQywrQkFBNEI7QUFJNUIseURBQXNEO0FBQ3RELHdDQUEyRDtBQUMzRCw4REFBMEQ7QUFFMUQsTUFBTSxXQUFXLEdBQUcsMEJBQTBCLENBQUM7QUFFbEMsUUFBQSxTQUFTLEdBQXdDLHdCQUFFLENBQWtCLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDeEcseUJBQVcsQ0FBQyxHQUFHLENBQUMsOEJBQW9CLEVBQUUsZ0NBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO0lBQ3BELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFFckMsSUFBSSxXQUFXLElBQUksTUFBTTtRQUFFLGVBQWUsQ0FBQyxNQUF3QixDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDM0csSUFBSSxhQUFhLElBQUksTUFBTTtRQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFdEYsTUFBTSxlQUFlLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xGLENBQUMsRUFBRTtJQUNDLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLElBQUksRUFBRSxtQkFBbUI7Q0FDNUIsQ0FBQyxDQUFDO0FBRUgsS0FBSyxVQUFVLGVBQWUsQ0FBQyxNQUE2QixFQUFFLE9BQXdCO0lBQ2xGLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6RyxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsTUFBc0I7SUFDM0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksWUFBWSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN0RixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFFMUUsT0FBTyxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDdEUsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLFVBQXVELEVBQUUsT0FBd0IsRUFBRSxNQUF1QjtJQUM5SCxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQzlCLE9BQU8sVUFBVSxDQUFDLGlCQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDaEQ7U0FBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtRQUMzQixNQUFNLElBQUksU0FBUyxDQUFDLGdFQUFnRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0tBQ2pHO0FBQ0wsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsVUFBdUQ7SUFDN0UsT0FBTyxVQUFVLElBQUksaUJBQU8sSUFBSSxVQUFVLENBQUM7QUFDL0MsQ0FBQztBQUVELFFBQVEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFZLEVBQUUsTUFBYztJQUM5QyxNQUFNLGlCQUFpQixHQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFM0MsS0FBSyxJQUFJLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEtBQUssU0FBUyxFQUFFLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNsRywwRkFBMEY7UUFDMUYsS0FBSyxNQUFNLFFBQVEsSUFBSSxnQkFBVyxDQUFDLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ2xFLE1BQU0sWUFBWSxHQUFHLFdBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRWxELElBQUksUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUN4QixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDeEM7aUJBQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sWUFBWSxDQUFDO2FBQ3RCO1NBQ0o7S0FDSjtBQUNMLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxNQUFjO0lBQzlCLHVEQUF1RDtJQUN2RCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVO1FBQzdCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTztRQUN6QixDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBGYXN0aWZ5SW5zdGFuY2UsIEZhc3RpZnlQbHVnaW5Bc3luYyB9IGZyb20gJ2Zhc3RpZnknO1xuaW1wb3J0IGZwIGZyb20gJ2Zhc3RpZnktcGx1Z2luJztcbmltcG9ydCB7IHJlYWRkaXJTeW5jIH0gZnJvbSAnZnMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tICcuLi9kZWNvcmF0b3JzL2hlbHBlcnMvaW5qZWN0LWRlcGVuZGVuY2llcyc7XG5pbXBvcnQgdHlwZSB7IEJvb3RzdHJhcENvbmZpZywgSW5qZWN0YWJsZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB0eXBlIHsgQXV0b0xvYWRDb25maWcsIENvbnRyb2xsZXJzTGlzdENvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvYm9vdHN0cmFwLWNvbmZpZyc7XG5pbXBvcnQgeyBpbmplY3RhYmxlcyB9IGZyb20gJy4uL3JlZ2lzdHJ5L2luamVjdGFibGVzJztcbmltcG9ydCB7IENSRUFUT1IsIEZhc3RpZnlJbnN0YW5jZVRva2VuIH0gZnJvbSAnLi4vc3ltYm9scyc7XG5pbXBvcnQgeyB3cmFwSW5qZWN0YWJsZSB9IGZyb20gJy4uL3V0aWxzL3dyYXAtaW5qZWN0YWJsZSc7XG5cbmNvbnN0IGRlZmF1bHRNYXNrID0gL1xcLihoYW5kbGVyfGNvbnRyb2xsZXIpXFwuLztcblxuZXhwb3J0IGNvbnN0IGJvb3RzdHJhcDogRmFzdGlmeVBsdWdpbkFzeW5jPEJvb3RzdHJhcENvbmZpZz4gPSBmcDxCb290c3RyYXBDb25maWc+KGFzeW5jIChmYXN0aWZ5LCBjb25maWcpID0+IHtcbiAgICBpbmplY3RhYmxlcy5zZXQoRmFzdGlmeUluc3RhbmNlVG9rZW4sIHdyYXBJbmplY3RhYmxlKGZhc3RpZnkpKTtcbiAgICBjb25zdCBjb250cm9sbGVycyA9IG5ldyBTZXQ8Q29uc3RydWN0b3I8dW5rbm93bj4+KCk7XG4gICAgY29uc3Qgc2tpcEJyb2tlbiA9IGNvbmZpZy5za2lwQnJva2VuO1xuXG4gICAgaWYgKCdkaXJlY3RvcnknIGluIGNvbmZpZykgYXV0b0xvYWRNb2R1bGVzKGNvbmZpZyBhcyBBdXRvTG9hZENvbmZpZykuZm9yRWFjaChjb250cm9sbGVycy5hZGQsIGNvbnRyb2xsZXJzKTtcbiAgICBpZiAoJ2NvbnRyb2xsZXJzJyBpbiBjb25maWcpIGNvbmZpZy5jb250cm9sbGVycy5mb3JFYWNoKGNvbnRyb2xsZXJzLmFkZCwgY29udHJvbGxlcnMpO1xuXG4gICAgYXdhaXQgbG9hZENvbnRyb2xsZXJzKHsgY29udHJvbGxlcnM6IFsuLi5jb250cm9sbGVyc10sIHNraXBCcm9rZW4gfSwgZmFzdGlmeSk7XG59LCB7XG4gICAgZmFzdGlmeTogJ14zLjAuMCcsXG4gICAgbmFtZTogJ2Zhc3RpZnlEZWNvcmF0b3JzJyxcbn0pO1xuXG5hc3luYyBmdW5jdGlvbiBsb2FkQ29udHJvbGxlcnMoY29uZmlnOiBDb250cm9sbGVyc0xpc3RDb25maWcsIGZhc3RpZnk6IEZhc3RpZnlJbnN0YW5jZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKGNvbmZpZy5jb250cm9sbGVycy5tYXAoY29udHJvbGxlciA9PiBsb2FkQ29udHJvbGxlcihjb250cm9sbGVyLCBmYXN0aWZ5LCBjb25maWcpKSk7XG59XG5cbmZ1bmN0aW9uIGF1dG9Mb2FkTW9kdWxlcyhjb25maWc6IEF1dG9Mb2FkQ29uZmlnKTogSW5qZWN0YWJsZUNvbnRyb2xsZXJbXSB7XG4gICAgY29uc3QgZmxhZ3MgPSBjb25maWcubWFzayBpbnN0YW5jZW9mIFJlZ0V4cCA/IGNvbmZpZy5tYXNrLmZsYWdzLnJlcGxhY2UoJ2cnLCAnJykgOiAnJztcbiAgICBjb25zdCBmaWx0ZXIgPSBjb25maWcubWFzayA/IG5ldyBSZWdFeHAoY29uZmlnLm1hc2ssIGZsYWdzKSA6IGRlZmF1bHRNYXNrO1xuXG4gICAgcmV0dXJuIFsuLi5maW5kTW9kdWxlcyhjb25maWcuZGlyZWN0b3J5LCBmaWx0ZXIpXS5tYXAobG9hZE1vZHVsZSk7XG59XG5cbmZ1bmN0aW9uIGxvYWRDb250cm9sbGVyKGNvbnRyb2xsZXI6IENvbnN0cnVjdG9yPHVua25vd24+IHwgSW5qZWN0YWJsZUNvbnRyb2xsZXIsIGZhc3RpZnk6IEZhc3RpZnlJbnN0YW5jZSwgY29uZmlnOiBCb290c3RyYXBDb25maWcpIHtcbiAgICBpZiAodmVyaWZ5Q29udHJvbGxlcihjb250cm9sbGVyKSkge1xuICAgICAgICByZXR1cm4gY29udHJvbGxlcltDUkVBVE9SXS5yZWdpc3RlcihmYXN0aWZ5KTtcbiAgICB9IGVsc2UgaWYgKCFjb25maWcuc2tpcEJyb2tlbikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBMb2FkZWQgZmlsZSBpcyBpbmNvcnJlY3QgbW9kdWxlIGFuZCBjYW4gbm90IGJlIGJvb3RzdHJhcHBlZDogJHttb2R1bGV9YCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB2ZXJpZnlDb250cm9sbGVyKGNvbnRyb2xsZXI6IENvbnN0cnVjdG9yPHVua25vd24+IHwgSW5qZWN0YWJsZUNvbnRyb2xsZXIpOiBjb250cm9sbGVyIGlzIENvbnN0cnVjdG9yPHVua25vd24+ICYgSW5qZWN0YWJsZUNvbnRyb2xsZXIge1xuICAgIHJldHVybiBjb250cm9sbGVyICYmIENSRUFUT1IgaW4gY29udHJvbGxlcjtcbn1cblxuZnVuY3Rpb24qIGZpbmRNb2R1bGVzKHBhdGg6IHN0cmluZywgZmlsdGVyOiBSZWdFeHApOiBJdGVyYWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCBkaXJlY3Rvcmllc1RvUmVhZDogc3RyaW5nW10gPSBbcGF0aF07XG5cbiAgICBmb3IgKGxldCBkaXJQYXRoID0gZGlyZWN0b3JpZXNUb1JlYWQucG9wKCk7IGRpclBhdGggIT09IHVuZGVmaW5lZDsgZGlyUGF0aCA9IGRpcmVjdG9yaWVzVG9SZWFkLnBvcCgpKSB7XG4gICAgICAgIC8vIFRPRE86IGNhbiBiZSByZXBsYWNlZCB3aXRoIGZvciBhd2FpdCAoY29uc3QgZmlsZVBhdGggb2YgZnMub3BlbmRpcikgaW4gTm9kZS5qcyA+PSAxMi4xMlxuICAgICAgICBmb3IgKGNvbnN0IGZpbGVQYXRoIG9mIHJlYWRkaXJTeW5jKGRpclBhdGgsIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KSkge1xuICAgICAgICAgICAgY29uc3QgZnVsbEZpbGVQYXRoID0gam9pbihkaXJQYXRoLCBmaWxlUGF0aC5uYW1lKTtcblxuICAgICAgICAgICAgaWYgKGZpbGVQYXRoLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgICAgICAgICBkaXJlY3Rvcmllc1RvUmVhZC5wdXNoKGZ1bGxGaWxlUGF0aCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZpbHRlci50ZXN0KChmaWxlUGF0aC5uYW1lKSkpIHtcbiAgICAgICAgICAgICAgICB5aWVsZCBmdWxsRmlsZVBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIGxvYWRNb2R1bGUobW9kdWxlOiBzdHJpbmcpOiBJbmplY3RhYmxlQ29udHJvbGxlciB7XG4gICAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlcyAqL1xuICAgIHJldHVybiByZXF1aXJlKG1vZHVsZSkuX19lc01vZHVsZVxuICAgICAgICA/IHJlcXVpcmUobW9kdWxlKS5kZWZhdWx0XG4gICAgICAgIDogcmVxdWlyZShtb2R1bGUpO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2Jvb3RzdHJhcC9ib290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gsbURBQWdDO0FBQ2hDLDJCQUFpQztBQUNqQywrQkFBNEI7QUFJNUIseURBQXNEO0FBQ3RELHdDQUEyRDtBQUMzRCw4REFBMEQ7QUFDMUQsOENBQXlDO0FBRXpDLE1BQU0sV0FBVyxHQUFHLDBCQUEwQixDQUFDO0FBRWxDLFFBQUEsU0FBUyxHQUF3Qyx3QkFBRSxDQUFrQixLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQ3hHLHlCQUFXLENBQUMsR0FBRyxDQUFDLDhCQUFvQixFQUFFLGdDQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMvRCxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBd0IsQ0FBQztJQUNwRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBRXJDLElBQUksV0FBVyxJQUFJLE1BQU07UUFBRSxlQUFlLENBQUMsTUFBd0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzNHLElBQUksYUFBYSxJQUFJLE1BQU07UUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRXRGLE1BQU0sZUFBZSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsR0FBRyxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5RSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQ3pDLENBQUMsRUFBRTtJQUNDLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLElBQUksRUFBRSxtQkFBbUI7Q0FDNUIsQ0FBQyxDQUFDO0FBRUgsS0FBSyxVQUFVLGVBQWUsQ0FBQyxNQUE2QixFQUFFLE9BQXdCO0lBQ2xGLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6RyxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsTUFBc0I7SUFDM0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksWUFBWSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN0RixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFFMUUsT0FBTyxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDdEUsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLFVBQXVELEVBQUUsT0FBd0IsRUFBRSxNQUF1QjtJQUM5SCxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQzlCLE9BQU8sVUFBVSxDQUFDLGlCQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDaEQ7U0FBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtRQUMzQixNQUFNLElBQUksU0FBUyxDQUFDLGdFQUFnRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0tBQ2pHO0FBQ0wsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsVUFBdUQ7SUFDN0UsT0FBTyxVQUFVLElBQUksaUJBQU8sSUFBSSxVQUFVLENBQUM7QUFDL0MsQ0FBQztBQUVELFFBQVEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFZLEVBQUUsTUFBYztJQUM5QyxNQUFNLGlCQUFpQixHQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFM0MsS0FBSyxJQUFJLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEtBQUssU0FBUyxFQUFFLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNsRywwRkFBMEY7UUFDMUYsS0FBSyxNQUFNLFFBQVEsSUFBSSxnQkFBVyxDQUFDLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ2xFLE1BQU0sWUFBWSxHQUFHLFdBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRWxELElBQUksUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUN4QixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDeEM7aUJBQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sWUFBWSxDQUFDO2FBQ3RCO1NBQ0o7S0FDSjtBQUNMLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxNQUFjO0lBQzlCLHVEQUF1RDtJQUN2RCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVO1FBQzdCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTztRQUN6QixDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBGYXN0aWZ5SW5zdGFuY2UsIEZhc3RpZnlQbHVnaW5Bc3luYyB9IGZyb20gJ2Zhc3RpZnknO1xuaW1wb3J0IGZwIGZyb20gJ2Zhc3RpZnktcGx1Z2luJztcbmltcG9ydCB7IHJlYWRkaXJTeW5jIH0gZnJvbSAnZnMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tICcuLi9kZWNvcmF0b3JzL2hlbHBlcnMvaW5qZWN0LWRlcGVuZGVuY2llcyc7XG5pbXBvcnQgdHlwZSB7IEJvb3RzdHJhcENvbmZpZywgSW5qZWN0YWJsZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB0eXBlIHsgQXV0b0xvYWRDb25maWcsIENvbnRyb2xsZXJzTGlzdENvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvYm9vdHN0cmFwLWNvbmZpZyc7XG5pbXBvcnQgeyBpbmplY3RhYmxlcyB9IGZyb20gJy4uL3JlZ2lzdHJ5L2luamVjdGFibGVzJztcbmltcG9ydCB7IENSRUFUT1IsIEZhc3RpZnlJbnN0YW5jZVRva2VuIH0gZnJvbSAnLi4vc3ltYm9scyc7XG5pbXBvcnQgeyB3cmFwSW5qZWN0YWJsZSB9IGZyb20gJy4uL3V0aWxzL3dyYXAtaW5qZWN0YWJsZSc7XG5pbXBvcnQgeyByZWFkeU1hcCB9IGZyb20gXCIuLi9kZWNvcmF0b3JzXCI7XG5cbmNvbnN0IGRlZmF1bHRNYXNrID0gL1xcLihoYW5kbGVyfGNvbnRyb2xsZXIpXFwuLztcblxuZXhwb3J0IGNvbnN0IGJvb3RzdHJhcDogRmFzdGlmeVBsdWdpbkFzeW5jPEJvb3RzdHJhcENvbmZpZz4gPSBmcDxCb290c3RyYXBDb25maWc+KGFzeW5jIChmYXN0aWZ5LCBjb25maWcpID0+IHtcbiAgICBpbmplY3RhYmxlcy5zZXQoRmFzdGlmeUluc3RhbmNlVG9rZW4sIHdyYXBJbmplY3RhYmxlKGZhc3RpZnkpKTtcbiAgICBjb25zdCBjb250cm9sbGVycyA9IG5ldyBTZXQ8Q29uc3RydWN0b3I8dW5rbm93bj4+KCk7XG4gICAgY29uc3Qgc2tpcEJyb2tlbiA9IGNvbmZpZy5za2lwQnJva2VuO1xuXG4gICAgaWYgKCdkaXJlY3RvcnknIGluIGNvbmZpZykgYXV0b0xvYWRNb2R1bGVzKGNvbmZpZyBhcyBBdXRvTG9hZENvbmZpZykuZm9yRWFjaChjb250cm9sbGVycy5hZGQsIGNvbnRyb2xsZXJzKTtcbiAgICBpZiAoJ2NvbnRyb2xsZXJzJyBpbiBjb25maWcpIGNvbmZpZy5jb250cm9sbGVycy5mb3JFYWNoKGNvbnRyb2xsZXJzLmFkZCwgY29udHJvbGxlcnMpO1xuXG4gICAgYXdhaXQgbG9hZENvbnRyb2xsZXJzKHsgY29udHJvbGxlcnM6IFsuLi5jb250cm9sbGVyc10sIHNraXBCcm9rZW4gfSwgZmFzdGlmeSk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocmVhZHlNYXAudmFsdWVzKCkpO1xufSwge1xuICAgIGZhc3RpZnk6ICdeMy4wLjAnLFxuICAgIG5hbWU6ICdmYXN0aWZ5RGVjb3JhdG9ycycsXG59KTtcblxuYXN5bmMgZnVuY3Rpb24gbG9hZENvbnRyb2xsZXJzKGNvbmZpZzogQ29udHJvbGxlcnNMaXN0Q29uZmlnLCBmYXN0aWZ5OiBGYXN0aWZ5SW5zdGFuY2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChjb25maWcuY29udHJvbGxlcnMubWFwKGNvbnRyb2xsZXIgPT4gbG9hZENvbnRyb2xsZXIoY29udHJvbGxlciwgZmFzdGlmeSwgY29uZmlnKSkpO1xufVxuXG5mdW5jdGlvbiBhdXRvTG9hZE1vZHVsZXMoY29uZmlnOiBBdXRvTG9hZENvbmZpZyk6IEluamVjdGFibGVDb250cm9sbGVyW10ge1xuICAgIGNvbnN0IGZsYWdzID0gY29uZmlnLm1hc2sgaW5zdGFuY2VvZiBSZWdFeHAgPyBjb25maWcubWFzay5mbGFncy5yZXBsYWNlKCdnJywgJycpIDogJyc7XG4gICAgY29uc3QgZmlsdGVyID0gY29uZmlnLm1hc2sgPyBuZXcgUmVnRXhwKGNvbmZpZy5tYXNrLCBmbGFncykgOiBkZWZhdWx0TWFzaztcblxuICAgIHJldHVybiBbLi4uZmluZE1vZHVsZXMoY29uZmlnLmRpcmVjdG9yeSwgZmlsdGVyKV0ubWFwKGxvYWRNb2R1bGUpO1xufVxuXG5mdW5jdGlvbiBsb2FkQ29udHJvbGxlcihjb250cm9sbGVyOiBDb25zdHJ1Y3Rvcjx1bmtub3duPiB8IEluamVjdGFibGVDb250cm9sbGVyLCBmYXN0aWZ5OiBGYXN0aWZ5SW5zdGFuY2UsIGNvbmZpZzogQm9vdHN0cmFwQ29uZmlnKSB7XG4gICAgaWYgKHZlcmlmeUNvbnRyb2xsZXIoY29udHJvbGxlcikpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXJbQ1JFQVRPUl0ucmVnaXN0ZXIoZmFzdGlmeSk7XG4gICAgfSBlbHNlIGlmICghY29uZmlnLnNraXBCcm9rZW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgTG9hZGVkIGZpbGUgaXMgaW5jb3JyZWN0IG1vZHVsZSBhbmQgY2FuIG5vdCBiZSBib290c3RyYXBwZWQ6ICR7bW9kdWxlfWApO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gdmVyaWZ5Q29udHJvbGxlcihjb250cm9sbGVyOiBDb25zdHJ1Y3Rvcjx1bmtub3duPiB8IEluamVjdGFibGVDb250cm9sbGVyKTogY29udHJvbGxlciBpcyBDb25zdHJ1Y3Rvcjx1bmtub3duPiAmIEluamVjdGFibGVDb250cm9sbGVyIHtcbiAgICByZXR1cm4gY29udHJvbGxlciAmJiBDUkVBVE9SIGluIGNvbnRyb2xsZXI7XG59XG5cbmZ1bmN0aW9uKiBmaW5kTW9kdWxlcyhwYXRoOiBzdHJpbmcsIGZpbHRlcjogUmVnRXhwKTogSXRlcmFibGU8c3RyaW5nPiB7XG4gICAgY29uc3QgZGlyZWN0b3JpZXNUb1JlYWQ6IHN0cmluZ1tdID0gW3BhdGhdO1xuXG4gICAgZm9yIChsZXQgZGlyUGF0aCA9IGRpcmVjdG9yaWVzVG9SZWFkLnBvcCgpOyBkaXJQYXRoICE9PSB1bmRlZmluZWQ7IGRpclBhdGggPSBkaXJlY3Rvcmllc1RvUmVhZC5wb3AoKSkge1xuICAgICAgICAvLyBUT0RPOiBjYW4gYmUgcmVwbGFjZWQgd2l0aCBmb3IgYXdhaXQgKGNvbnN0IGZpbGVQYXRoIG9mIGZzLm9wZW5kaXIpIGluIE5vZGUuanMgPj0gMTIuMTJcbiAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiByZWFkZGlyU3luYyhkaXJQYXRoLCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZ1bGxGaWxlUGF0aCA9IGpvaW4oZGlyUGF0aCwgZmlsZVBhdGgubmFtZSk7XG5cbiAgICAgICAgICAgIGlmIChmaWxlUGF0aC5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgICAgICAgICAgZGlyZWN0b3JpZXNUb1JlYWQucHVzaChmdWxsRmlsZVBhdGgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXIudGVzdCgoZmlsZVBhdGgubmFtZSkpKSB7XG4gICAgICAgICAgICAgICAgeWllbGQgZnVsbEZpbGVQYXRoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiBsb2FkTW9kdWxlKG1vZHVsZTogc3RyaW5nKTogSW5qZWN0YWJsZUNvbnRyb2xsZXIge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXMgKi9cbiAgICByZXR1cm4gcmVxdWlyZShtb2R1bGUpLl9fZXNNb2R1bGVcbiAgICAgICAgPyByZXF1aXJlKG1vZHVsZSkuZGVmYXVsdFxuICAgICAgICA6IHJlcXVpcmUobW9kdWxlKTtcbn1cbiJdfQ==

@@ -7,2 +7,6 @@ # Changelog

## 3.3.0
### Added
- support for services that need an async setup ([#58](https://github.com/L2jLiga/fastify-decorators/issues/58))
## 3.2.4

@@ -9,0 +13,0 @@ ### Fixed

@@ -28,2 +28,2 @@ "use strict";

exports.createErrorsHandler = createErrorsHandler;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWVycm9ycy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2RlY29yYXRvcnMvaGVscGVycy9jcmVhdGUtZXJyb3JzLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBS0gsU0FBZ0IsbUJBQW1CLENBQy9CLGFBQTZCLEVBQUUsYUFBa0I7SUFFakQsT0FBTyxLQUFLLFVBQVUsWUFBWSxDQUFDLEtBQVksRUFBRSxPQUF1QixFQUFFLEtBQW1CO1FBQ3pGLEtBQUssTUFBTSxPQUFPLElBQUksYUFBYSxFQUFFO1lBQ2pDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsSUFBSTtvQkFDQSxNQUFNLGFBQWEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDaEUsT0FBTztpQkFDVjtnQkFBQyxPQUFPLENBQUMsRUFBRTtvQkFDUixLQUFLLEdBQUcsQ0FBQyxDQUFDO2lCQUNiO2FBQ0o7U0FDSjtRQUVELE1BQU0sS0FBSyxDQUFDO0lBQ2hCLENBQUMsQ0FBQTtBQUNMLENBQUM7QUFqQkQsa0RBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB0eXBlIHsgRmFzdGlmeVJlcGx5LCBGYXN0aWZ5UmVxdWVzdCB9IGZyb20gJ2Zhc3RpZnknO1xuaW1wb3J0IHR5cGUgeyBFcnJvckhhbmRsZXIgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVycm9yc0hhbmRsZXIoXG4gICAgZXJyb3JIYW5kbGVyczogRXJyb3JIYW5kbGVyW10sIGNsYXNzSW5zdGFuY2U6IGFueVxuKTogKGVycm9yOiBFcnJvciwgcmVxdWVzdDogRmFzdGlmeVJlcXVlc3QsIHJlcGx5OiBGYXN0aWZ5UmVwbHkpID0+IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBhc3luYyBmdW5jdGlvbiBlcnJvckhhbmRsZXIoZXJyb3I6IEVycm9yLCByZXF1ZXN0OiBGYXN0aWZ5UmVxdWVzdCwgcmVwbHk6IEZhc3RpZnlSZXBseSkge1xuICAgICAgICBmb3IgKGNvbnN0IGhhbmRsZXIgb2YgZXJyb3JIYW5kbGVycykge1xuICAgICAgICAgICAgaWYgKGhhbmRsZXIuYWNjZXB0cyhlcnJvcikpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBjbGFzc0luc3RhbmNlW2hhbmRsZXIuaGFuZGxlck5hbWVdKGVycm9yLCByZXF1ZXN0LCByZXBseSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yID0gZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWVycm9ycy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2RlY29yYXRvcnMvaGVscGVycy9jcmVhdGUtZXJyb3JzLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBS0gsU0FBZ0IsbUJBQW1CLENBQy9CLGFBQTZCLEVBQUUsYUFBa0I7SUFFakQsT0FBTyxLQUFLLFVBQVUsWUFBWSxDQUFDLEtBQVksRUFBRSxPQUF1QixFQUFFLEtBQW1CO1FBQ3pGLEtBQUssTUFBTSxPQUFPLElBQUksYUFBYSxFQUFFO1lBQ2pDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsSUFBSTtvQkFDQSxNQUFNLGFBQWEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDaEUsT0FBTztpQkFDVjtnQkFBQyxPQUFPLENBQUMsRUFBRTtvQkFDUixLQUFLLEdBQUcsQ0FBQyxDQUFDO2lCQUNiO2FBQ0o7U0FDSjtRQUVELE1BQU0sS0FBSyxDQUFDO0lBQ2hCLENBQUMsQ0FBQTtBQUNMLENBQUM7QUFqQkQsa0RBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB0eXBlIHsgRmFzdGlmeVJlcGx5LCBGYXN0aWZ5UmVxdWVzdCB9IGZyb20gJ2Zhc3RpZnknO1xuaW1wb3J0IHR5cGUgeyBFcnJvckhhbmRsZXIgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVycm9yc0hhbmRsZXIoXG4gICAgZXJyb3JIYW5kbGVyczogRXJyb3JIYW5kbGVyW10sIGNsYXNzSW5zdGFuY2U6IGFueVxuKTogKGVycm9yOiBFcnJvciwgcmVxdWVzdDogRmFzdGlmeVJlcXVlc3QsIHJlcGx5OiBGYXN0aWZ5UmVwbHkpID0+IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBhc3luYyBmdW5jdGlvbiBlcnJvckhhbmRsZXIoZXJyb3I6IEVycm9yLCByZXF1ZXN0OiBGYXN0aWZ5UmVxdWVzdCwgcmVwbHk6IEZhc3RpZnlSZXBseSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGhhbmRsZXIgb2YgZXJyb3JIYW5kbGVycykge1xuICAgICAgICAgICAgaWYgKGhhbmRsZXIuYWNjZXB0cyhlcnJvcikpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBjbGFzc0luc3RhbmNlW2hhbmRsZXIuaGFuZGxlck5hbWVdKGVycm9yLCByZXF1ZXN0LCByZXBseSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yID0gZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG59XG4iXX0=

@@ -70,2 +70,2 @@ "use strict";

exports.controllerMethodDecoratorsFactory = controllerMethodDecoratorsFactory;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1kZWNvcmF0b3JzLmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZGVjb3JhdG9ycy9oZWxwZXJzL3JlcXVlc3QtZGVjb3JhdG9ycy5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUlILDJDQUF5RTtBQUN6RSx5REFBZ0Y7QUFDaEYsbUVBQThEO0FBSzlELFNBQVMsV0FBVyxDQUFDLFNBQStCLEdBQUcsRUFBRSxVQUFpQyxFQUFFO0lBQ3hGLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUTtRQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBRWhFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztBQUNsQyxDQUFDO0FBRUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBa0MsQ0FBQTtBQUMxRSxTQUFTLFNBQVMsQ0FBQyxNQUFXLEVBQUUsT0FBdUIsRUFBRSxHQUFHLElBQWU7SUFDdkUsSUFBSSxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQUUsT0FBTyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEYsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDNUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxQyxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQ3BDLE1BQW1CO0lBRW5CLE9BQU8sVUFBVSxhQUFvQyxFQUFFLE9BQStCO1FBQ2xGLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFbkQsT0FBTyxVQUFVLE1BQVcsRUFBRSxPQUF5QjtZQUNuRCxJQUFJLE9BQU8sRUFBRTtnQkFDVCxpQ0FBaUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDbkUsT0FBTzthQUNWO1lBRUQsTUFBTSxDQUFDLGlCQUFPLENBQUMsR0FBRztnQkFDZCxRQUFRLEVBQUUsQ0FBQyxRQUF5QixFQUFFLEVBQUU7b0JBQ3BDLElBQUksMkJBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTt3QkFDbEIsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsZUFBSyxDQUFDLEVBQUU7NEJBQzlCLGtFQUFrRTs0QkFDbEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUF1QixFQUFFLEdBQUcsSUFBZSxFQUFFLEVBQUU7Z0NBQ3hFLE9BQU8sU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDOzRCQUNoRixDQUFDLENBQUM7eUJBQ0w7cUJBQ0o7b0JBQ0QsSUFBSSxtQ0FBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRTt3QkFDMUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUU7NEJBQ3RELE1BQU0sYUFBYSxHQUFHLDJDQUFtQixDQUFDLE1BQU0sQ0FBQyx3QkFBYyxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDOzRCQUV2RyxPQUFPLGFBQWEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7d0JBQ2xELENBQUMsQ0FBQTtxQkFDSjtvQkFDRCxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLFVBQVUsT0FBTyxFQUFFLEdBQUcsSUFBSTt3QkFDbkUsT0FBTyxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN4RCxDQUFDLENBQUMsQ0FBQTtnQkFDTixDQUFDO2FBQ0osQ0FBQztRQUNOLENBQUMsQ0FBQztJQUNOLENBQUMsQ0FBQztBQUNOLENBQUM7QUFwQ0QsNERBb0NDO0FBRUQsU0FBZ0IsaUNBQWlDLENBQUMsTUFBbUIsRUFBRSxNQUF5QixFQUFFLEVBQUUsV0FBVyxFQUFPLEVBQUUsT0FBd0I7SUFDNUksaUNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU1QixXQUFXLENBQUMsa0JBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN2QixHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUc7UUFDZixNQUFNO1FBQ04sT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1FBQ3ZCLGFBQWEsRUFBRSxPQUFPO0tBQ3pCLENBQUMsQ0FBQztBQUNQLENBQUM7QUFURCw4RUFTQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZhc3RpZnlJbnN0YW5jZSwgRmFzdGlmeVJlcXVlc3QsIFJvdXRlU2hvcnRoYW5kT3B0aW9ucyB9IGZyb20gJ2Zhc3RpZnknO1xuaW1wb3J0IHR5cGUgeyBSZXF1ZXN0SGFuZGxlciwgUm91dGVDb25maWcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENSRUFUT1IsIEVSUk9SX0hBTkRMRVJTLCBIQU5ETEVSUywgSE9PS1MgfSBmcm9tICcuLi8uLi9zeW1ib2xzJztcbmltcG9ydCB7IGVuc3VyZUhhbmRsZXJzLCBoYXNFcnJvckhhbmRsZXJzLCBoYXNIb29rcyB9IGZyb20gJy4vY2xhc3MtcHJvcGVydGllcyc7XG5pbXBvcnQgeyBjcmVhdGVFcnJvcnNIYW5kbGVyIH0gZnJvbSAnLi9jcmVhdGUtZXJyb3JzLWhhbmRsZXInO1xuaW1wb3J0IHR5cGUgeyBIdHRwTWV0aG9kcyB9IGZyb20gJy4vaHR0cC1tZXRob2RzJztcblxudHlwZSBQYXJzZWRSb3V0ZUNvbmZpZyA9IFJvdXRlQ29uZmlnICYgeyBvcHRpb25zOiBSb3V0ZVNob3J0aGFuZE9wdGlvbnMgfTtcblxuZnVuY3Rpb24gcGFyc2VDb25maWcoY29uZmlnOiBzdHJpbmcgfCBSb3V0ZUNvbmZpZyA9ICcvJywgb3B0aW9uczogUm91dGVTaG9ydGhhbmRPcHRpb25zID0ge30pOiBQYXJzZWRSb3V0ZUNvbmZpZyB7XG4gICAgaWYgKHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnKSByZXR1cm4geyB1cmw6IGNvbmZpZywgb3B0aW9ucyB9O1xuXG4gICAgcmV0dXJuIHsgb3B0aW9ucywgLi4uY29uZmlnIH07XG59XG5cbmNvbnN0IHJlcXVlc3RIYW5kbGVyc0NhY2hlID0gbmV3IFdlYWtNYXA8RmFzdGlmeVJlcXVlc3QsIFJlcXVlc3RIYW5kbGVyPigpXG5mdW5jdGlvbiBnZXRUYXJnZXQoVGFyZ2V0OiBhbnksIHJlcXVlc3Q6IEZhc3RpZnlSZXF1ZXN0LCAuLi5yZXN0OiB1bmtub3duW10pIHtcbiAgICBpZiAocmVxdWVzdEhhbmRsZXJzQ2FjaGUuaGFzKHJlcXVlc3QpKSByZXR1cm4gcmVxdWVzdEhhbmRsZXJzQ2FjaGUuZ2V0KHJlcXVlc3QpO1xuICAgIGNvbnN0IHRhcmdldCA9IG5ldyBUYXJnZXQocmVxdWVzdCwgLi4ucmVzdCk7XG4gICAgcmVxdWVzdEhhbmRsZXJzQ2FjaGUuc2V0KHJlcXVlc3QsIHRhcmdldCk7XG4gICAgcmV0dXJuIHRhcmdldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcXVlc3REZWNvcmF0b3JzRmFjdG9yeShcbiAgICBtZXRob2Q6IEh0dHBNZXRob2RzXG4pOiAocm91dGVPckNvbmZpZz86IChzdHJpbmcgfCBSb3V0ZUNvbmZpZyksIG9wdGlvbnM/OiBSb3V0ZVNob3J0aGFuZE9wdGlvbnMpID0+ICh0YXJnZXQ6IGFueSwgcHJvcEtleT86IChzdHJpbmcgfCBzeW1ib2wpKSA9PiB2b2lkIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHJvdXRlT3JDb25maWc/OiBzdHJpbmcgfCBSb3V0ZUNvbmZpZywgb3B0aW9ucz86IFJvdXRlU2hvcnRoYW5kT3B0aW9ucyk6ICh0YXJnZXQ6IGFueSwgcHJvcEtleT86IHN0cmluZyB8IHN5bWJvbCkgPT4gdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHBhcnNlQ29uZmlnKHJvdXRlT3JDb25maWcsIG9wdGlvbnMpO1xuXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBhbnksIHByb3BLZXk/OiBzdHJpbmcgfCBzeW1ib2wpOiB2b2lkIHtcbiAgICAgICAgICAgIGlmIChwcm9wS2V5KSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlck1ldGhvZERlY29yYXRvcnNGYWN0b3J5KG1ldGhvZCwgY29uZmlnLCB0YXJnZXQsIHByb3BLZXkpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGFyZ2V0W0NSRUFUT1JdID0ge1xuICAgICAgICAgICAgICAgIHJlZ2lzdGVyOiAoaW5zdGFuY2U6IEZhc3RpZnlJbnN0YW5jZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaGFzSG9va3ModGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBob29rIG9mIHRhcmdldFtIT09LU10pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHdlIGtub3cgdGhhdCBob29rLm5hbWUgaXMgbmFtZSBvZiBGYXN0aWZ5IGhvb2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcub3B0aW9uc1tob29rLm5hbWVdID0gKHJlcXVlc3Q6IEZhc3RpZnlSZXF1ZXN0LCAuLi5yZXN0OiB1bmtub3duW10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdldFRhcmdldCh0YXJnZXQsIHJlcXVlc3QsIHJlc3QpW2hvb2suaGFuZGxlck5hbWVdKHJlcXVlc3QsIC4uLnJlc3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc0Vycm9ySGFuZGxlcnModGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLm9wdGlvbnMuZXJyb3JIYW5kbGVyID0gKGVycm9yLCByZXF1ZXN0LCAuLi5yZXN0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JzSGFuZGxlciA9IGNyZWF0ZUVycm9yc0hhbmRsZXIodGFyZ2V0W0VSUk9SX0hBTkRMRVJTXSwgZ2V0VGFyZ2V0KHRhcmdldCwgcmVxdWVzdCwgLi4ucmVzdCkpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yc0hhbmRsZXIoZXJyb3IsIHJlcXVlc3QsIC4uLnJlc3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlW21ldGhvZF0oY29uZmlnLnVybCwgY29uZmlnLm9wdGlvbnMsIGZ1bmN0aW9uIChyZXF1ZXN0LCAuLi5yZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2V0VGFyZ2V0KHRhcmdldCwgcmVxdWVzdCwgLi4ucmVzdCkuaGFuZGxlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRyb2xsZXJNZXRob2REZWNvcmF0b3JzRmFjdG9yeShtZXRob2Q6IEh0dHBNZXRob2RzLCBjb25maWc6IFBhcnNlZFJvdXRlQ29uZmlnLCB7IGNvbnN0cnVjdG9yIH06IGFueSwgcHJvcEtleTogc3RyaW5nIHwgc3ltYm9sKTogdm9pZCB7XG4gICAgZW5zdXJlSGFuZGxlcnMoY29uc3RydWN0b3IpO1xuXG4gICAgY29uc3RydWN0b3JbSEFORExFUlNdLnB1c2goe1xuICAgICAgICB1cmw6IGNvbmZpZy51cmwsXG4gICAgICAgIG1ldGhvZCxcbiAgICAgICAgb3B0aW9uczogY29uZmlnLm9wdGlvbnMsXG4gICAgICAgIGhhbmRsZXJNZXRob2Q6IHByb3BLZXksXG4gICAgfSk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1kZWNvcmF0b3JzLmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZGVjb3JhdG9ycy9oZWxwZXJzL3JlcXVlc3QtZGVjb3JhdG9ycy5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUlILDJDQUF5RTtBQUN6RSx5REFBZ0Y7QUFDaEYsbUVBQThEO0FBSzlELFNBQVMsV0FBVyxDQUFDLFNBQStCLEdBQUcsRUFBRSxVQUFpQyxFQUFFO0lBQ3hGLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUTtRQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBRWhFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztBQUNsQyxDQUFDO0FBRUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBa0MsQ0FBQTtBQUMxRSxTQUFTLFNBQVMsQ0FBQyxNQUFXLEVBQUUsT0FBdUIsRUFBRSxHQUFHLElBQWU7SUFDdkUsSUFBSSxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQUUsT0FBTyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEYsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDNUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxQyxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQ3BDLE1BQW1CO0lBRW5CLE9BQU8sVUFBVSxhQUFvQyxFQUFFLE9BQStCO1FBQ2xGLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFbkQsT0FBTyxVQUFVLE1BQVcsRUFBRSxPQUF5QjtZQUNuRCxJQUFJLE9BQU8sRUFBRTtnQkFDVCxpQ0FBaUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDbkUsT0FBTzthQUNWO1lBRUQsTUFBTSxDQUFDLGlCQUFPLENBQUMsR0FBRztnQkFDZCxRQUFRLEVBQUUsQ0FBQyxRQUF5QixFQUFFLEVBQUU7b0JBQ3BDLElBQUksMkJBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTt3QkFDbEIsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsZUFBSyxDQUFDLEVBQUU7NEJBQzlCLGtFQUFrRTs0QkFDbEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUF1QixFQUFFLEdBQUcsSUFBZSxFQUFFLEVBQUU7Z0NBQ3hFLE9BQU8sU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDOzRCQUNoRixDQUFDLENBQUM7eUJBQ0w7cUJBQ0o7b0JBQ0QsSUFBSSxtQ0FBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRTt3QkFDMUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUU7NEJBQ3RELE1BQU0sYUFBYSxHQUFHLDJDQUFtQixDQUFDLE1BQU0sQ0FBQyx3QkFBYyxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDOzRCQUV2RyxPQUFPLGFBQWEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7d0JBQ2xELENBQUMsQ0FBQTtxQkFDSjtvQkFDRCxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLFVBQVUsT0FBTyxFQUFFLEdBQUcsSUFBSTt3QkFDbkUsT0FBTyxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN4RCxDQUFDLENBQUMsQ0FBQTtnQkFDTixDQUFDO2FBQ0osQ0FBQztRQUNOLENBQUMsQ0FBQztJQUNOLENBQUMsQ0FBQztBQUNOLENBQUM7QUFwQ0QsNERBb0NDO0FBRUQsU0FBZ0IsaUNBQWlDLENBQUMsTUFBbUIsRUFBRSxNQUF5QixFQUFFLEVBQUUsV0FBVyxFQUFPLEVBQUUsT0FBd0I7SUFDNUksaUNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU1QixXQUFXLENBQUMsa0JBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN2QixHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUc7UUFDZixNQUFNO1FBQ04sT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1FBQ3ZCLGFBQWEsRUFBRSxPQUFPO0tBQ3pCLENBQUMsQ0FBQztBQUNQLENBQUM7QUFURCw4RUFTQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZhc3RpZnlJbnN0YW5jZSwgRmFzdGlmeVJlcXVlc3QsIFJvdXRlU2hvcnRoYW5kT3B0aW9ucyB9IGZyb20gJ2Zhc3RpZnknO1xuaW1wb3J0IHR5cGUgeyBSZXF1ZXN0SGFuZGxlciwgUm91dGVDb25maWcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENSRUFUT1IsIEVSUk9SX0hBTkRMRVJTLCBIQU5ETEVSUywgSE9PS1MgfSBmcm9tICcuLi8uLi9zeW1ib2xzJztcbmltcG9ydCB7IGVuc3VyZUhhbmRsZXJzLCBoYXNFcnJvckhhbmRsZXJzLCBoYXNIb29rcyB9IGZyb20gJy4vY2xhc3MtcHJvcGVydGllcyc7XG5pbXBvcnQgeyBjcmVhdGVFcnJvcnNIYW5kbGVyIH0gZnJvbSAnLi9jcmVhdGUtZXJyb3JzLWhhbmRsZXInO1xuaW1wb3J0IHR5cGUgeyBIdHRwTWV0aG9kcyB9IGZyb20gJy4vaHR0cC1tZXRob2RzJztcblxudHlwZSBQYXJzZWRSb3V0ZUNvbmZpZyA9IFJvdXRlQ29uZmlnICYgeyBvcHRpb25zOiBSb3V0ZVNob3J0aGFuZE9wdGlvbnMgfTtcblxuZnVuY3Rpb24gcGFyc2VDb25maWcoY29uZmlnOiBzdHJpbmcgfCBSb3V0ZUNvbmZpZyA9ICcvJywgb3B0aW9uczogUm91dGVTaG9ydGhhbmRPcHRpb25zID0ge30pOiBQYXJzZWRSb3V0ZUNvbmZpZyB7XG4gICAgaWYgKHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnKSByZXR1cm4geyB1cmw6IGNvbmZpZywgb3B0aW9ucyB9O1xuXG4gICAgcmV0dXJuIHsgb3B0aW9ucywgLi4uY29uZmlnIH07XG59XG5cbmNvbnN0IHJlcXVlc3RIYW5kbGVyc0NhY2hlID0gbmV3IFdlYWtNYXA8RmFzdGlmeVJlcXVlc3QsIFJlcXVlc3RIYW5kbGVyPigpXG5mdW5jdGlvbiBnZXRUYXJnZXQoVGFyZ2V0OiBhbnksIHJlcXVlc3Q6IEZhc3RpZnlSZXF1ZXN0LCAuLi5yZXN0OiB1bmtub3duW10pOiBhbnkge1xuICAgIGlmIChyZXF1ZXN0SGFuZGxlcnNDYWNoZS5oYXMocmVxdWVzdCkpIHJldHVybiByZXF1ZXN0SGFuZGxlcnNDYWNoZS5nZXQocmVxdWVzdCk7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IFRhcmdldChyZXF1ZXN0LCAuLi5yZXN0KTtcbiAgICByZXF1ZXN0SGFuZGxlcnNDYWNoZS5zZXQocmVxdWVzdCwgdGFyZ2V0KTtcbiAgICByZXR1cm4gdGFyZ2V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVxdWVzdERlY29yYXRvcnNGYWN0b3J5KFxuICAgIG1ldGhvZDogSHR0cE1ldGhvZHNcbik6IChyb3V0ZU9yQ29uZmlnPzogKHN0cmluZyB8IFJvdXRlQ29uZmlnKSwgb3B0aW9ucz86IFJvdXRlU2hvcnRoYW5kT3B0aW9ucykgPT4gKHRhcmdldDogYW55LCBwcm9wS2V5PzogKHN0cmluZyB8IHN5bWJvbCkpID0+IHZvaWQge1xuICAgIHJldHVybiBmdW5jdGlvbiAocm91dGVPckNvbmZpZz86IHN0cmluZyB8IFJvdXRlQ29uZmlnLCBvcHRpb25zPzogUm91dGVTaG9ydGhhbmRPcHRpb25zKTogKHRhcmdldDogYW55LCBwcm9wS2V5Pzogc3RyaW5nIHwgc3ltYm9sKSA9PiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gcGFyc2VDb25maWcocm91dGVPckNvbmZpZywgb3B0aW9ucyk7XG5cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IGFueSwgcHJvcEtleT86IHN0cmluZyB8IHN5bWJvbCk6IHZvaWQge1xuICAgICAgICAgICAgaWYgKHByb3BLZXkpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyTWV0aG9kRGVjb3JhdG9yc0ZhY3RvcnkobWV0aG9kLCBjb25maWcsIHRhcmdldCwgcHJvcEtleSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0YXJnZXRbQ1JFQVRPUl0gPSB7XG4gICAgICAgICAgICAgICAgcmVnaXN0ZXI6IChpbnN0YW5jZTogRmFzdGlmeUluc3RhbmNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChoYXNIb29rcyh0YXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGhvb2sgb2YgdGFyZ2V0W0hPT0tTXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3Igd2Uga25vdyB0aGF0IGhvb2submFtZSBpcyBuYW1lIG9mIEZhc3RpZnkgaG9va1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5vcHRpb25zW2hvb2submFtZV0gPSAocmVxdWVzdDogRmFzdGlmeVJlcXVlc3QsIC4uLnJlc3Q6IHVua25vd25bXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2V0VGFyZ2V0KHRhcmdldCwgcmVxdWVzdCwgcmVzdClbaG9vay5oYW5kbGVyTmFtZV0ocmVxdWVzdCwgLi4ucmVzdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoaGFzRXJyb3JIYW5kbGVycyh0YXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWcub3B0aW9ucy5lcnJvckhhbmRsZXIgPSAoZXJyb3IsIHJlcXVlc3QsIC4uLnJlc3QpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvcnNIYW5kbGVyID0gY3JlYXRlRXJyb3JzSGFuZGxlcih0YXJnZXRbRVJST1JfSEFORExFUlNdLCBnZXRUYXJnZXQodGFyZ2V0LCByZXF1ZXN0LCAuLi5yZXN0KSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3JzSGFuZGxlcihlcnJvciwgcmVxdWVzdCwgLi4ucmVzdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2VbbWV0aG9kXShjb25maWcudXJsLCBjb25maWcub3B0aW9ucywgZnVuY3Rpb24gKHJlcXVlc3QsIC4uLnJlc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBnZXRUYXJnZXQodGFyZ2V0LCByZXF1ZXN0LCAuLi5yZXN0KS5oYW5kbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udHJvbGxlck1ldGhvZERlY29yYXRvcnNGYWN0b3J5KG1ldGhvZDogSHR0cE1ldGhvZHMsIGNvbmZpZzogUGFyc2VkUm91dGVDb25maWcsIHsgY29uc3RydWN0b3IgfTogYW55LCBwcm9wS2V5OiBzdHJpbmcgfCBzeW1ib2wpOiB2b2lkIHtcbiAgICBlbnN1cmVIYW5kbGVycyhjb25zdHJ1Y3Rvcik7XG5cbiAgICBjb25zdHJ1Y3RvcltIQU5ETEVSU10ucHVzaCh7XG4gICAgICAgIHVybDogY29uZmlnLnVybCxcbiAgICAgICAgbWV0aG9kLFxuICAgICAgICBvcHRpb25zOiBjb25maWcub3B0aW9ucyxcbiAgICAgICAgaGFuZGxlck1ldGhvZDogcHJvcEtleSxcbiAgICB9KTtcbn1cbiJdfQ==

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

export { Inject } from './inject';
export { Initializer, readyMap } from './initializer';
export { Hook } from './hook';

@@ -12,0 +13,0 @@ export { ErrorHandler } from './error-handler';

@@ -10,3 +10,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.PUT = exports.POST = exports.PATCH = exports.OPTIONS = exports.HEAD = exports.GET = exports.DELETE = exports.ALL = exports.Controller = exports.ErrorHandler = exports.Hook = exports.Inject = exports.Service = void 0;
exports.PUT = exports.POST = exports.PATCH = exports.OPTIONS = exports.HEAD = exports.GET = exports.DELETE = exports.ALL = exports.Controller = exports.ErrorHandler = exports.Hook = exports.readyMap = exports.Initializer = exports.Inject = exports.Service = void 0;
var service_1 = require("./service");

@@ -16,2 +16,5 @@ Object.defineProperty(exports, "Service", { enumerable: true, get: function () { return service_1.Service; } });

Object.defineProperty(exports, "Inject", { enumerable: true, get: function () { return inject_1.Inject; } });
var initializer_1 = require("./initializer");
Object.defineProperty(exports, "Initializer", { enumerable: true, get: function () { return initializer_1.Initializer; } });
Object.defineProperty(exports, "readyMap", { enumerable: true, get: function () { return initializer_1.readyMap; } });
var hook_1 = require("./hook");

@@ -32,2 +35,2 @@ Object.defineProperty(exports, "Hook", { enumerable: true, get: function () { return hook_1.Hook; } });

Object.defineProperty(exports, "PUT", { enumerable: true, get: function () { return request_handlers_1.PUT; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZGVjb3JhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCxxQ0FBb0M7QUFBM0Isa0dBQUEsT0FBTyxPQUFBO0FBQ2hCLG1DQUFrQztBQUF6QixnR0FBQSxNQUFNLE9BQUE7QUFDZiwrQkFBOEI7QUFBckIsNEZBQUEsSUFBSSxPQUFBO0FBQ2IsaURBQStDO0FBQXRDLDZHQUFBLFlBQVksT0FBQTtBQUVyQiwyQ0FBMEM7QUFBakMsd0dBQUEsVUFBVSxPQUFBO0FBRW5CLHVEQUF1RjtBQUE5RSx1R0FBQSxHQUFHLE9BQUE7QUFBRSwwR0FBQSxNQUFNLE9BQUE7QUFBRSx1R0FBQSxHQUFHLE9BQUE7QUFBRSx3R0FBQSxJQUFJLE9BQUE7QUFBRSwyR0FBQSxPQUFPLE9BQUE7QUFBRSx5R0FBQSxLQUFLLE9BQUE7QUFBRSx3R0FBQSxJQUFJLE9BQUE7QUFBRSx1R0FBQSxHQUFHLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IHsgU2VydmljZSB9IGZyb20gJy4vc2VydmljZSc7XG5leHBvcnQgeyBJbmplY3QgfSBmcm9tICcuL2luamVjdCc7XG5leHBvcnQgeyBIb29rIH0gZnJvbSAnLi9ob29rJztcbmV4cG9ydCB7IEVycm9ySGFuZGxlciB9IGZyb20gJy4vZXJyb3ItaGFuZGxlcic7XG5cbmV4cG9ydCB7IENvbnRyb2xsZXIgfSBmcm9tICcuL2NvbnRyb2xsZXInO1xuXG5leHBvcnQgeyBBTEwsIERFTEVURSwgR0VULCBIRUFELCBPUFRJT05TLCBQQVRDSCwgUE9TVCwgUFVUIH0gZnJvbSAnLi9yZXF1ZXN0LWhhbmRsZXJzJztcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZGVjb3JhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCxxQ0FBb0M7QUFBM0Isa0dBQUEsT0FBTyxPQUFBO0FBQ2hCLG1DQUFrQztBQUF6QixnR0FBQSxNQUFNLE9BQUE7QUFDZiw2Q0FBc0Q7QUFBN0MsMEdBQUEsV0FBVyxPQUFBO0FBQUUsdUdBQUEsUUFBUSxPQUFBO0FBQzlCLCtCQUE4QjtBQUFyQiw0RkFBQSxJQUFJLE9BQUE7QUFDYixpREFBK0M7QUFBdEMsNkdBQUEsWUFBWSxPQUFBO0FBRXJCLDJDQUEwQztBQUFqQyx3R0FBQSxVQUFVLE9BQUE7QUFFbkIsdURBQXVGO0FBQTlFLHVHQUFBLEdBQUcsT0FBQTtBQUFFLDBHQUFBLE1BQU0sT0FBQTtBQUFFLHVHQUFBLEdBQUcsT0FBQTtBQUFFLHdHQUFBLElBQUksT0FBQTtBQUFFLDJHQUFBLE9BQU8sT0FBQTtBQUFFLHlHQUFBLEtBQUssT0FBQTtBQUFFLHdHQUFBLElBQUksT0FBQTtBQUFFLHVHQUFBLEdBQUcsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgeyBTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlJztcbmV4cG9ydCB7IEluamVjdCB9IGZyb20gJy4vaW5qZWN0JztcbmV4cG9ydCB7IEluaXRpYWxpemVyLCByZWFkeU1hcCB9IGZyb20gJy4vaW5pdGlhbGl6ZXInO1xuZXhwb3J0IHsgSG9vayB9IGZyb20gJy4vaG9vayc7XG5leHBvcnQgeyBFcnJvckhhbmRsZXIgfSBmcm9tICcuL2Vycm9yLWhhbmRsZXInO1xuXG5leHBvcnQgeyBDb250cm9sbGVyIH0gZnJvbSAnLi9jb250cm9sbGVyJztcblxuZXhwb3J0IHsgQUxMLCBERUxFVEUsIEdFVCwgSEVBRCwgT1BUSU9OUywgUEFUQ0gsIFBPU1QsIFBVVCB9IGZyb20gJy4vcmVxdWVzdC1oYW5kbGVycyc7XG4iXX0=

@@ -24,7 +24,7 @@ "use strict";

target.prototype[symbols_1.INJECTABLES] = injectablesMap;
if (!cacheResult)
return inject_dependencies_1.createWithInjectedDependencies(target, injectablesMap, cacheResult);
if (instance)
if (instance && cacheResult)
return instance;
instance = inject_dependencies_1.createWithInjectedDependencies(target, injectablesMap, cacheResult);
if (target[symbols_1.INITIALIZER])
target[symbols_1.INITIALIZER](instance);
return instance;

@@ -36,2 +36,2 @@ },

exports.Service = Service;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9kZWNvcmF0b3JzL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgseURBQXNEO0FBQ3RELHdDQUFrRDtBQUNsRCx1RUFBK0U7QUFPL0UsU0FBZ0IsT0FBTyxDQUFDLGVBQWlDO0lBQ3JELE9BQU8sQ0FBQyxNQUFXLEVBQUUsRUFBRTtRQUNuQixJQUFJLFFBQWlCLENBQUM7UUFFdEIseUJBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLElBQUksZUFBZTtZQUFFLHlCQUFXLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5RCxNQUFNLENBQUMsaUJBQU8sQ0FBQyxHQUFHO1lBQ2QsUUFBUSxDQUFDLGNBQWMsR0FBRyx5QkFBVyxFQUFFLFdBQVcsR0FBRyxJQUFJO2dCQUNyRCxNQUFNLENBQUMscUJBQVcsQ0FBQyxHQUFHLGNBQWMsQ0FBQztnQkFDckMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxxQkFBVyxDQUFDLEdBQUcsY0FBYyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsV0FBVztvQkFBRSxPQUFPLG9EQUE4QixDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQzdGLElBQUksUUFBUTtvQkFBRSxPQUFPLFFBQVEsQ0FBQztnQkFFOUIsUUFBUSxHQUFHLG9EQUE4QixDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBRS9FLE9BQU8sUUFBUSxDQUFDO1lBQ3BCLENBQUM7U0FDSixDQUFDO0lBQ04sQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQW5CRCwwQkFtQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQW5kcmV5IENoYWxraW4gPEwyakxpZ2FAZ21haWwuY29tPiAoaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EpLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhL2Zhc3RpZnktZGVjb3JhdG9ycy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgaW5qZWN0YWJsZXMgfSBmcm9tICcuLi9yZWdpc3RyeS9pbmplY3RhYmxlcyc7XG5pbXBvcnQgeyBDUkVBVE9SLCBJTkpFQ1RBQkxFUyB9IGZyb20gJy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgY3JlYXRlV2l0aEluamVjdGVkRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi9oZWxwZXJzL2luamVjdC1kZXBlbmRlbmNpZXMnO1xuXG4vKipcbiAqIERlY29yYXRvciBmb3IgbWFraW5nIGNsYXNzZXMgaW5qZWN0YWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gU2VydmljZSgpOiBDbGFzc0RlY29yYXRvcjtcbmV4cG9ydCBmdW5jdGlvbiBTZXJ2aWNlKGluamVjdGFibGVUb2tlbjogc3RyaW5nIHwgc3ltYm9sKTogQ2xhc3NEZWNvcmF0b3I7XG5leHBvcnQgZnVuY3Rpb24gU2VydmljZShpbmplY3RhYmxlVG9rZW4/OiBzdHJpbmcgfCBzeW1ib2wpOiB1bmtub3duIHtcbiAgICByZXR1cm4gKHRhcmdldDogYW55KSA9PiB7XG4gICAgICAgIGxldCBpbnN0YW5jZTogdW5rbm93bjtcblxuICAgICAgICBpbmplY3RhYmxlcy5zZXQodGFyZ2V0LCB0YXJnZXQpO1xuICAgICAgICBpZiAoaW5qZWN0YWJsZVRva2VuKSBpbmplY3RhYmxlcy5zZXQoaW5qZWN0YWJsZVRva2VuLCB0YXJnZXQpO1xuICAgICAgICB0YXJnZXRbQ1JFQVRPUl0gPSB7XG4gICAgICAgICAgICByZWdpc3RlcihpbmplY3RhYmxlc01hcCA9IGluamVjdGFibGVzLCBjYWNoZVJlc3VsdCA9IHRydWUpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRbSU5KRUNUQUJMRVNdID0gaW5qZWN0YWJsZXNNYXA7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LnByb3RvdHlwZVtJTkpFQ1RBQkxFU10gPSBpbmplY3RhYmxlc01hcDtcbiAgICAgICAgICAgICAgICBpZiAoIWNhY2hlUmVzdWx0KSByZXR1cm4gY3JlYXRlV2l0aEluamVjdGVkRGVwZW5kZW5jaWVzKHRhcmdldCwgaW5qZWN0YWJsZXNNYXAsIGNhY2hlUmVzdWx0KTtcbiAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UpIHJldHVybiBpbnN0YW5jZTtcblxuICAgICAgICAgICAgICAgIGluc3RhbmNlID0gY3JlYXRlV2l0aEluamVjdGVkRGVwZW5kZW5jaWVzKHRhcmdldCwgaW5qZWN0YWJsZXNNYXAsIGNhY2hlUmVzdWx0KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9kZWNvcmF0b3JzL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgseURBQXNEO0FBQ3RELHdDQUErRDtBQUMvRCx1RUFBK0U7QUFPL0UsU0FBZ0IsT0FBTyxDQUFDLGVBQWlDO0lBQ3JELE9BQU8sQ0FBQyxNQUFXLEVBQUUsRUFBRTtRQUNuQixJQUFJLFFBQWlCLENBQUM7UUFFdEIseUJBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLElBQUksZUFBZTtZQUFFLHlCQUFXLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5RCxNQUFNLENBQUMsaUJBQU8sQ0FBQyxHQUFHO1lBQ2QsUUFBUSxDQUFDLGNBQWMsR0FBRyx5QkFBVyxFQUFFLFdBQVcsR0FBRyxJQUFJO2dCQUNyRCxNQUFNLENBQUMscUJBQVcsQ0FBQyxHQUFHLGNBQWMsQ0FBQztnQkFDckMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxxQkFBVyxDQUFDLEdBQUcsY0FBYyxDQUFDO2dCQUUvQyxJQUFJLFFBQVEsSUFBSSxXQUFXO29CQUFFLE9BQU8sUUFBUSxDQUFDO2dCQUM3QyxRQUFRLEdBQUcsb0RBQThCLENBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFFL0UsSUFBSSxNQUFNLENBQUMscUJBQVcsQ0FBQztvQkFDbkIsTUFBTSxDQUFDLHFCQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFbEMsT0FBTyxRQUFRLENBQUM7WUFFcEIsQ0FBQztTQUNKLENBQUM7SUFDTixDQUFDLENBQUM7QUFDTixDQUFDO0FBdEJELDBCQXNCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBpbmplY3RhYmxlcyB9IGZyb20gJy4uL3JlZ2lzdHJ5L2luamVjdGFibGVzJztcbmltcG9ydCB7IENSRUFUT1IsIElOSVRJQUxJWkVSLCBJTkpFQ1RBQkxFUyB9IGZyb20gJy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgY3JlYXRlV2l0aEluamVjdGVkRGVwZW5kZW5jaWVzIH0gZnJvbSAnLi9oZWxwZXJzL2luamVjdC1kZXBlbmRlbmNpZXMnO1xuXG4vKipcbiAqIERlY29yYXRvciBmb3IgbWFraW5nIGNsYXNzZXMgaW5qZWN0YWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gU2VydmljZSgpOiBDbGFzc0RlY29yYXRvcjtcbmV4cG9ydCBmdW5jdGlvbiBTZXJ2aWNlKGluamVjdGFibGVUb2tlbjogc3RyaW5nIHwgc3ltYm9sKTogQ2xhc3NEZWNvcmF0b3I7XG5leHBvcnQgZnVuY3Rpb24gU2VydmljZShpbmplY3RhYmxlVG9rZW4/OiBzdHJpbmcgfCBzeW1ib2wpOiB1bmtub3duIHtcbiAgICByZXR1cm4gKHRhcmdldDogYW55KSA9PiB7XG4gICAgICAgIGxldCBpbnN0YW5jZTogdW5rbm93bjtcblxuICAgICAgICBpbmplY3RhYmxlcy5zZXQodGFyZ2V0LCB0YXJnZXQpO1xuICAgICAgICBpZiAoaW5qZWN0YWJsZVRva2VuKSBpbmplY3RhYmxlcy5zZXQoaW5qZWN0YWJsZVRva2VuLCB0YXJnZXQpO1xuICAgICAgICB0YXJnZXRbQ1JFQVRPUl0gPSB7XG4gICAgICAgICAgICByZWdpc3RlcihpbmplY3RhYmxlc01hcCA9IGluamVjdGFibGVzLCBjYWNoZVJlc3VsdCA9IHRydWUpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRbSU5KRUNUQUJMRVNdID0gaW5qZWN0YWJsZXNNYXA7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LnByb3RvdHlwZVtJTkpFQ1RBQkxFU10gPSBpbmplY3RhYmxlc01hcDtcblxuICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZSAmJiBjYWNoZVJlc3VsdCkgcmV0dXJuIGluc3RhbmNlO1xuICAgICAgICAgICAgICAgIGluc3RhbmNlID0gY3JlYXRlV2l0aEluamVjdGVkRGVwZW5kZW5jaWVzKHRhcmdldCwgaW5qZWN0YWJsZXNNYXAsIGNhY2hlUmVzdWx0KTtcblxuICAgICAgICAgICAgICAgIGlmICh0YXJnZXRbSU5JVElBTElaRVJdKVxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRbSU5JVElBTElaRVJdKGluc3RhbmNlKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcblxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9O1xufVxuIl19

@@ -47,5 +47,64 @@ <h1 style="text-align: center">Fastify decorators</h1>

### Async service initialization
It's possible that some services may require async initialization, for example to setup database connection.
For such reasons library provides the special decorator called `@Initializer`.
Usage is quite simple, just annotate your async method with it:
*database.service.ts*:
```typescript
import { Initializer, Service } from 'fastify-decorators';
import { join } from 'path';
import { createConnection, Connection } from 'typeorm';
import { Message } from '../entity/message';
@Service()
export class ConnectionService {
connection!: Connection;
@Initializer()
async init(): Promise<void> {
this._connection = await createConnection({
type: 'sqljs',
autoSave: true,
location: join(process.cwd(), 'db', 'database.db'),
entities: [Message],
logging: ['query', 'schema'],
synchronize: true
});
}
}
```
Services may depend on other async services for their init, for such reasons `@Initializer` accepts array of such services:
```typescript
import { Initializer, Service } from 'fastify-decorators';
import { Message } from '../entity/message';
import { ConnectionService } from '../services/connection.service';
import { Repository } from "typeorm";
@Service()
export class MessageFacade {
private repository!: Repository<Message>;
constructor(private connectionService: ConnectionService) {
}
@Initializer([ConnectionService])
async init(): Promise<void> {
// because we added ConnectionService as a dependency, we are sure it was properly initialized if it reaches
// this point
this.repository = this.connectionService.connection.getRepository(Message);
}
async getMessages(): Promise<Message[]> {
return this.repository.find();
}
}
```
## Injecting into Controllers
The easiest way to inject dependencies to controllers is using contructors:
The easiest way to inject dependencies to controllers is using constructors:

@@ -52,0 +111,0 @@ *sample.controller.ts*:

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

export { Inject } from './decorators';
export { Initializer } from './decorators';
export { Hook } from './decorators';

@@ -18,0 +19,0 @@ export { ErrorHandler } from './decorators';

@@ -10,3 +10,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.PUT = exports.POST = exports.PATCH = exports.OPTIONS = exports.HEAD = exports.GET = exports.DELETE = exports.ALL = exports.FastifyInstanceToken = exports.getInstanceByToken = exports.ErrorHandler = exports.Hook = exports.Inject = exports.Service = exports.ControllerType = exports.Controller = exports.RequestHandler = exports.bootstrap = void 0;
exports.PUT = exports.POST = exports.PATCH = exports.OPTIONS = exports.HEAD = exports.GET = exports.DELETE = exports.ALL = exports.FastifyInstanceToken = exports.getInstanceByToken = exports.ErrorHandler = exports.Hook = exports.Initializer = exports.Inject = exports.Service = exports.ControllerType = exports.Controller = exports.RequestHandler = exports.bootstrap = void 0;
var bootstrap_1 = require("./bootstrap/bootstrap");

@@ -25,5 +25,7 @@ Object.defineProperty(exports, "bootstrap", { enumerable: true, get: function () { return bootstrap_1.bootstrap; } });

var decorators_4 = require("./decorators");
Object.defineProperty(exports, "Hook", { enumerable: true, get: function () { return decorators_4.Hook; } });
Object.defineProperty(exports, "Initializer", { enumerable: true, get: function () { return decorators_4.Initializer; } });
var decorators_5 = require("./decorators");
Object.defineProperty(exports, "ErrorHandler", { enumerable: true, get: function () { return decorators_5.ErrorHandler; } });
Object.defineProperty(exports, "Hook", { enumerable: true, get: function () { return decorators_5.Hook; } });
var decorators_6 = require("./decorators");
Object.defineProperty(exports, "ErrorHandler", { enumerable: true, get: function () { return decorators_6.ErrorHandler; } });
var utils_1 = require("./utils");

@@ -33,18 +35,18 @@ Object.defineProperty(exports, "getInstanceByToken", { enumerable: true, get: function () { return utils_1.getInstanceByToken; } });

Object.defineProperty(exports, "FastifyInstanceToken", { enumerable: true, get: function () { return symbols_1.FastifyInstanceToken; } });
var decorators_6 = require("./decorators");
Object.defineProperty(exports, "ALL", { enumerable: true, get: function () { return decorators_6.ALL; } });
var decorators_7 = require("./decorators");
Object.defineProperty(exports, "DELETE", { enumerable: true, get: function () { return decorators_7.DELETE; } });
Object.defineProperty(exports, "ALL", { enumerable: true, get: function () { return decorators_7.ALL; } });
var decorators_8 = require("./decorators");
Object.defineProperty(exports, "GET", { enumerable: true, get: function () { return decorators_8.GET; } });
Object.defineProperty(exports, "DELETE", { enumerable: true, get: function () { return decorators_8.DELETE; } });
var decorators_9 = require("./decorators");
Object.defineProperty(exports, "HEAD", { enumerable: true, get: function () { return decorators_9.HEAD; } });
Object.defineProperty(exports, "GET", { enumerable: true, get: function () { return decorators_9.GET; } });
var decorators_10 = require("./decorators");
Object.defineProperty(exports, "OPTIONS", { enumerable: true, get: function () { return decorators_10.OPTIONS; } });
Object.defineProperty(exports, "HEAD", { enumerable: true, get: function () { return decorators_10.HEAD; } });
var decorators_11 = require("./decorators");
Object.defineProperty(exports, "PATCH", { enumerable: true, get: function () { return decorators_11.PATCH; } });
Object.defineProperty(exports, "OPTIONS", { enumerable: true, get: function () { return decorators_11.OPTIONS; } });
var decorators_12 = require("./decorators");
Object.defineProperty(exports, "POST", { enumerable: true, get: function () { return decorators_12.POST; } });
Object.defineProperty(exports, "PATCH", { enumerable: true, get: function () { return decorators_12.PATCH; } });
var decorators_13 = require("./decorators");
Object.defineProperty(exports, "PUT", { enumerable: true, get: function () { return decorators_13.PUT; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsbURBQWtEO0FBQXpDLHNHQUFBLFNBQVMsT0FBQTtBQUVsQiwyQ0FBOEM7QUFBckMsNEdBQUEsY0FBYyxPQUFBO0FBRXZCLDJDQUEwQztBQUFqQyx3R0FBQSxVQUFVLE9BQUE7QUFDbkIsdUNBQTRDO0FBQW5DLDBHQUFBLGNBQWMsT0FBQTtBQUd2QiwyQ0FBdUM7QUFBOUIscUdBQUEsT0FBTyxPQUFBO0FBQ2hCLDJDQUFzQztBQUE3QixvR0FBQSxNQUFNLE9BQUE7QUFDZiwyQ0FBb0M7QUFBM0Isa0dBQUEsSUFBSSxPQUFBO0FBQ2IsMkNBQTRDO0FBQW5DLDBHQUFBLFlBQVksT0FBQTtBQUVyQixpQ0FBNkM7QUFBcEMsMkdBQUEsa0JBQWtCLE9BQUE7QUFDM0IscUNBQWlEO0FBQXhDLCtHQUFBLG9CQUFvQixPQUFBO0FBRTdCLDJDQUFtQztBQUExQixpR0FBQSxHQUFHLE9BQUE7QUFDWiwyQ0FBc0M7QUFBN0Isb0dBQUEsTUFBTSxPQUFBO0FBQ2YsMkNBQW1DO0FBQTFCLGlHQUFBLEdBQUcsT0FBQTtBQUNaLDJDQUFvQztBQUEzQixrR0FBQSxJQUFJLE9BQUE7QUFDYiw0Q0FBdUM7QUFBOUIsc0dBQUEsT0FBTyxPQUFBO0FBQ2hCLDRDQUFxQztBQUE1QixvR0FBQSxLQUFLLE9BQUE7QUFDZCw0Q0FBb0M7QUFBM0IsbUdBQUEsSUFBSSxPQUFBO0FBQ2IsNENBQW1DO0FBQTFCLGtHQUFBLEdBQUcsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbmRyZXkgQ2hhbGtpbiA8TDJqTGlnYUBnbWFpbC5jb20+IChodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYSkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL0wyakxpZ2EvZmFzdGlmeS1kZWNvcmF0b3JzL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgeyBib290c3RyYXAgfSBmcm9tICcuL2Jvb3RzdHJhcC9ib290c3RyYXAnO1xuZXhwb3J0IHsgQm9vdHN0cmFwQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmV4cG9ydCB7IFJlcXVlc3RIYW5kbGVyIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IHsgQ29udHJvbGxlciB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5leHBvcnQgeyBDb250cm9sbGVyVHlwZSB9IGZyb20gJy4vcmVnaXN0cnknO1xuZXhwb3J0IHsgQ29udHJvbGxlckNvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCB7IFNlcnZpY2UgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuZXhwb3J0IHsgSW5qZWN0IH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IEhvb2sgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuZXhwb3J0IHsgRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcblxuZXhwb3J0IHsgZ2V0SW5zdGFuY2VCeVRva2VuIH0gZnJvbSAnLi91dGlscyc7XG5leHBvcnQgeyBGYXN0aWZ5SW5zdGFuY2VUb2tlbiB9IGZyb20gJy4vc3ltYm9scyc7XG5cbmV4cG9ydCB7IEFMTCB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5leHBvcnQgeyBERUxFVEUgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuZXhwb3J0IHsgR0VUIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IEhFQUQgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuZXhwb3J0IHsgT1BUSU9OUyB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5leHBvcnQgeyBQQVRDSCB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5leHBvcnQgeyBQT1NUIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IFBVVCB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5leHBvcnQgeyBSb3V0ZUNvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG4iXX0=
Object.defineProperty(exports, "POST", { enumerable: true, get: function () { return decorators_13.POST; } });
var decorators_14 = require("./decorators");
Object.defineProperty(exports, "PUT", { enumerable: true, get: function () { return decorators_14.PUT; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsbURBQWtEO0FBQXpDLHNHQUFBLFNBQVMsT0FBQTtBQUVsQiwyQ0FBOEM7QUFBckMsNEdBQUEsY0FBYyxPQUFBO0FBRXZCLDJDQUEwQztBQUFqQyx3R0FBQSxVQUFVLE9BQUE7QUFDbkIsdUNBQTRDO0FBQW5DLDBHQUFBLGNBQWMsT0FBQTtBQUd2QiwyQ0FBdUM7QUFBOUIscUdBQUEsT0FBTyxPQUFBO0FBQ2hCLDJDQUFzQztBQUE3QixvR0FBQSxNQUFNLE9BQUE7QUFDZiwyQ0FBMkM7QUFBbEMseUdBQUEsV0FBVyxPQUFBO0FBQ3BCLDJDQUFvQztBQUEzQixrR0FBQSxJQUFJLE9BQUE7QUFDYiwyQ0FBNEM7QUFBbkMsMEdBQUEsWUFBWSxPQUFBO0FBRXJCLGlDQUE2QztBQUFwQywyR0FBQSxrQkFBa0IsT0FBQTtBQUMzQixxQ0FBaUQ7QUFBeEMsK0dBQUEsb0JBQW9CLE9BQUE7QUFFN0IsMkNBQW1DO0FBQTFCLGlHQUFBLEdBQUcsT0FBQTtBQUNaLDJDQUFzQztBQUE3QixvR0FBQSxNQUFNLE9BQUE7QUFDZiwyQ0FBbUM7QUFBMUIsaUdBQUEsR0FBRyxPQUFBO0FBQ1osNENBQW9DO0FBQTNCLG1HQUFBLElBQUksT0FBQTtBQUNiLDRDQUF1QztBQUE5QixzR0FBQSxPQUFPLE9BQUE7QUFDaEIsNENBQXFDO0FBQTVCLG9HQUFBLEtBQUssT0FBQTtBQUNkLDRDQUFvQztBQUEzQixtR0FBQSxJQUFJLE9BQUE7QUFDYiw0Q0FBbUM7QUFBMUIsa0dBQUEsR0FBRyxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCB7IGJvb3RzdHJhcCB9IGZyb20gJy4vYm9vdHN0cmFwL2Jvb3RzdHJhcCc7XG5leHBvcnQgeyBCb290c3RyYXBDb25maWcgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuZXhwb3J0IHsgUmVxdWVzdEhhbmRsZXIgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgeyBDb250cm9sbGVyIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IENvbnRyb2xsZXJUeXBlIH0gZnJvbSAnLi9yZWdpc3RyeSc7XG5leHBvcnQgeyBDb250cm9sbGVyQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IHsgU2VydmljZSB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5leHBvcnQgeyBJbmplY3QgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuZXhwb3J0IHsgSW5pdGlhbGl6ZXIgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuZXhwb3J0IHsgSG9vayB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5leHBvcnQgeyBFcnJvckhhbmRsZXIgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuXG5leHBvcnQgeyBnZXRJbnN0YW5jZUJ5VG9rZW4gfSBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCB7IEZhc3RpZnlJbnN0YW5jZVRva2VuIH0gZnJvbSAnLi9zeW1ib2xzJztcblxuZXhwb3J0IHsgQUxMIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IERFTEVURSB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5leHBvcnQgeyBHRVQgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuZXhwb3J0IHsgSEVBRCB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5leHBvcnQgeyBPUFRJT05TIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IFBBVENIIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IFBPU1QgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuZXhwb3J0IHsgUFVUIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCB7IFJvdXRlQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbiJdfQ==
{
"name": "fastify-decorators",
"version": "3.2.4",
"version": "3.3.0",
"description": "Set of Typescript decorators to build Fastify server with controllers, services and hooks",

@@ -51,4 +51,5 @@ "main": "index.js",

"Tobias Mühl (https://github.com/tobiasmuehl)",
"Муравьёв Семён <s01@ngs.ru> (https://github.com/Zulcom)"
"Муравьёв Семён <s01@ngs.ru> (https://github.com/Zulcom)",
"Mihai Voicescu <mihaivo@intern.pch> (https://github.com/mihai1voicescu)"
]
}

@@ -177,7 +177,7 @@ # Fastify decorators

[Getting Started]: https://github.com/L2jLiga/fastify-decorators/blob/v3.2.4/lib/docs/Getting-Started.md
[Request Handler]: https://github.com/L2jLiga/fastify-decorators/blob/v3.2.4/lib/docs/Request-Handlers.md
[Controllers]: https://github.com/L2jLiga/fastify-decorators/blob/v3.2.4/lib/docs/Controllers.md
[Dependency Injection]: https://github.com/L2jLiga/fastify-decorators/blob/v3.2.4/lib/docs/Dependency-Injection.md
[Testing]: https://github.com/L2jLiga/fastify-decorators/blob/v3.2.4/lib/docs/Testing.md
[Migration guide (V3)]: https://github.com/L2jLiga/fastify-decorators/blob/v3.2.4/lib/docs/Migration-to-v3.md
[Getting Started]: https://github.com/L2jLiga/fastify-decorators/blob/v3.3.0/lib/docs/Getting-Started.md
[Request Handler]: https://github.com/L2jLiga/fastify-decorators/blob/v3.3.0/lib/docs/Request-Handlers.md
[Controllers]: https://github.com/L2jLiga/fastify-decorators/blob/v3.3.0/lib/docs/Controllers.md
[Dependency Injection]: https://github.com/L2jLiga/fastify-decorators/blob/v3.3.0/lib/docs/Dependency-Injection.md
[Testing]: https://github.com/L2jLiga/fastify-decorators/blob/v3.3.0/lib/docs/Testing.md
[Migration guide (V3)]: https://github.com/L2jLiga/fastify-decorators/blob/v3.3.0/lib/docs/Migration-to-v3.md

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

export declare const INJECTABLES: unique symbol;
export declare const INITIALIZER: unique symbol;
export declare const ERROR_HANDLERS: unique symbol;

@@ -12,0 +13,0 @@ export declare const HANDLERS: unique symbol;

@@ -10,5 +10,6 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.FastifyInstanceToken = exports.HOOKS = exports.HANDLERS = exports.ERROR_HANDLERS = exports.INJECTABLES = exports.CREATOR = void 0;
exports.FastifyInstanceToken = exports.HOOKS = exports.HANDLERS = exports.ERROR_HANDLERS = exports.INITIALIZER = exports.INJECTABLES = exports.CREATOR = void 0;
exports.CREATOR = Symbol('fastify-decorators.creator');
exports.INJECTABLES = Symbol('fastify-decorators.injectables');
exports.INITIALIZER = Symbol('fastify-decorators.initializer');
exports.ERROR_HANDLERS = Symbol('fastify-decorators.error-handlers');

@@ -18,2 +19,2 @@ exports.HANDLERS = Symbol('fastify-decorators.handlers');

exports.FastifyInstanceToken = Symbol('Token to inject FastifyInstance');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3ltYm9scy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFVSxRQUFBLE9BQU8sR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztBQUMvQyxRQUFBLFdBQVcsR0FBRyxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztBQUN2RCxRQUFBLGNBQWMsR0FBRyxNQUFNLENBQUMsbUNBQW1DLENBQUMsQ0FBQztBQUM3RCxRQUFBLFFBQVEsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUNqRCxRQUFBLEtBQUssR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUU5QyxRQUFBLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBjb25zdCBDUkVBVE9SID0gU3ltYm9sKCdmYXN0aWZ5LWRlY29yYXRvcnMuY3JlYXRvcicpO1xuZXhwb3J0IGNvbnN0IElOSkVDVEFCTEVTID0gU3ltYm9sKCdmYXN0aWZ5LWRlY29yYXRvcnMuaW5qZWN0YWJsZXMnKTtcbmV4cG9ydCBjb25zdCBFUlJPUl9IQU5ETEVSUyA9IFN5bWJvbCgnZmFzdGlmeS1kZWNvcmF0b3JzLmVycm9yLWhhbmRsZXJzJyk7XG5leHBvcnQgY29uc3QgSEFORExFUlMgPSBTeW1ib2woJ2Zhc3RpZnktZGVjb3JhdG9ycy5oYW5kbGVycycpO1xuZXhwb3J0IGNvbnN0IEhPT0tTID0gU3ltYm9sKCdmYXN0aWZ5LWRlY29yYXRvcnMuaGFuZGxlcnMnKTtcblxuZXhwb3J0IGNvbnN0IEZhc3RpZnlJbnN0YW5jZVRva2VuID0gU3ltYm9sKCdUb2tlbiB0byBpbmplY3QgRmFzdGlmeUluc3RhbmNlJyk7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3ltYm9scy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFVSxRQUFBLE9BQU8sR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztBQUMvQyxRQUFBLFdBQVcsR0FBRyxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztBQUN2RCxRQUFBLFdBQVcsR0FBRyxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztBQUN2RCxRQUFBLGNBQWMsR0FBRyxNQUFNLENBQUMsbUNBQW1DLENBQUMsQ0FBQztBQUM3RCxRQUFBLFFBQVEsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUNqRCxRQUFBLEtBQUssR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUU5QyxRQUFBLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFuZHJleSBDaGFsa2luIDxMMmpMaWdhQGdtYWlsLmNvbT4gKGh0dHBzOi8vZ2l0aHViLmNvbS9MMmpMaWdhKS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTDJqTGlnYS9mYXN0aWZ5LWRlY29yYXRvcnMvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBjb25zdCBDUkVBVE9SID0gU3ltYm9sKCdmYXN0aWZ5LWRlY29yYXRvcnMuY3JlYXRvcicpO1xuZXhwb3J0IGNvbnN0IElOSkVDVEFCTEVTID0gU3ltYm9sKCdmYXN0aWZ5LWRlY29yYXRvcnMuaW5qZWN0YWJsZXMnKTtcbmV4cG9ydCBjb25zdCBJTklUSUFMSVpFUiA9IFN5bWJvbCgnZmFzdGlmeS1kZWNvcmF0b3JzLmluaXRpYWxpemVyJyk7XG5leHBvcnQgY29uc3QgRVJST1JfSEFORExFUlMgPSBTeW1ib2woJ2Zhc3RpZnktZGVjb3JhdG9ycy5lcnJvci1oYW5kbGVycycpO1xuZXhwb3J0IGNvbnN0IEhBTkRMRVJTID0gU3ltYm9sKCdmYXN0aWZ5LWRlY29yYXRvcnMuaGFuZGxlcnMnKTtcbmV4cG9ydCBjb25zdCBIT09LUyA9IFN5bWJvbCgnZmFzdGlmeS1kZWNvcmF0b3JzLmhhbmRsZXJzJyk7XG5cbmV4cG9ydCBjb25zdCBGYXN0aWZ5SW5zdGFuY2VUb2tlbiA9IFN5bWJvbCgnVG9rZW4gdG8gaW5qZWN0IEZhc3RpZnlJbnN0YW5jZScpO1xuIl19

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

export { Inject } from './inject';
export { Initializer, readyMap } from './initializer';
export { Hook } from './hook';

@@ -12,0 +13,0 @@ export { ErrorHandler } from './error-handler';

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

export { Inject } from './decorators';
export { Initializer } from './decorators';
export { Hook } from './decorators';

@@ -18,0 +19,0 @@ export { ErrorHandler } from './decorators';

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

export declare const INJECTABLES: unique symbol;
export declare const INITIALIZER: unique symbol;
export declare const ERROR_HANDLERS: unique symbol;

@@ -12,0 +13,0 @@ export declare const HANDLERS: unique symbol;

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

export { Inject } from './inject';
export { Initializer, readyMap } from './initializer';
export { Hook } from './hook';

@@ -12,0 +13,0 @@ export { ErrorHandler } from './error-handler';

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

export { Inject } from './decorators';
export { Initializer } from './decorators';
export { Hook } from './decorators';

@@ -18,0 +19,0 @@ export { ErrorHandler } from './decorators';

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

export declare const INJECTABLES: unique symbol;
export declare const INITIALIZER: unique symbol;
export declare const ERROR_HANDLERS: unique symbol;

@@ -12,0 +13,0 @@ export declare const HANDLERS: unique symbol;

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

import { InjectableController } from '../../interfaces';
import { Injectables } from '../../interfaces/injectable-class';
import { ControllerType } from '../../registry';

@@ -24,4 +25,4 @@ /**

export declare const ControllerTypeStrategies: {
readonly 0: (instance: FastifyInstance<any, any, any, any>, constructor: InjectableController, injectablesMap: Map<any, any>, cacheResult: boolean) => void;
readonly 1: (instance: FastifyInstance<any, any, any, any>, constructor: InjectableController, injectablesMap: Map<any, any>, cacheResult: boolean) => void;
readonly 0: (instance: FastifyInstance, constructor: InjectableController, injectablesMap: Injectables, cacheResult: boolean) => void;
readonly 1: (instance: FastifyInstance, constructor: InjectableController, injectablesMap: Injectables, cacheResult: boolean) => void;
};

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

import { InjectableController } from '../../interfaces';
import { Injectables } from '../../interfaces/injectable-class';
import { ControllerType } from '../../registry';

@@ -24,4 +25,4 @@ /**

export declare const ControllerTypeStrategies: {
readonly 0: (instance: FastifyInstance<any, any, any, any>, constructor: InjectableController, injectablesMap: Map<any, any>, cacheResult: boolean) => void;
readonly 1: (instance: FastifyInstance<any, any, any, any>, constructor: InjectableController, injectablesMap: Map<any, any>, cacheResult: boolean) => void;
readonly 0: (instance: FastifyInstance, constructor: InjectableController, injectablesMap: Injectables, cacheResult: boolean) => void;
readonly 1: (instance: FastifyInstance, constructor: InjectableController, injectablesMap: Injectables, cacheResult: boolean) => void;
};

@@ -18,3 +18,3 @@ /**

[CREATOR]: {
register(instance?: FastifyInstance, injectables?: Injectables, cacheResult?: boolean): PromiseLike<void>;
register(instance?: FastifyInstance, injectables?: Injectables, cacheResult?: boolean): Promise<void>;
};

@@ -21,0 +21,0 @@ }

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