@aikidosec/firewall
Version:
Zen by Aikido is an embedded Web Application Firewall that autonomously protects Node.js apps against common and critical attacks
52 lines (51 loc) • 3.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setRateLimitGroup = exports.addRestifyMiddleware = exports.addKoaMiddleware = exports.addFastifyHook = exports.addHapiMiddleware = exports.addHonoMiddleware = exports.addExpressMiddleware = exports.shouldBlockRequest = exports.markUnsafe = exports.setUser = void 0;
/* eslint-disable no-console */
const isFirewallSupported_1 = require("./helpers/isFirewallSupported");
const shouldEnableFirewall_1 = require("./helpers/shouldEnableFirewall");
const user_1 = require("./agent/context/user");
Object.defineProperty(exports, "setUser", { enumerable: true, get: function () { return user_1.setUser; } });
const markUnsafe_1 = require("./agent/context/markUnsafe");
Object.defineProperty(exports, "markUnsafe", { enumerable: true, get: function () { return markUnsafe_1.markUnsafe; } });
const shouldBlockRequest_1 = require("./middleware/shouldBlockRequest");
Object.defineProperty(exports, "shouldBlockRequest", { enumerable: true, get: function () { return shouldBlockRequest_1.shouldBlockRequest; } });
const express_1 = require("./middleware/express");
Object.defineProperty(exports, "addExpressMiddleware", { enumerable: true, get: function () { return express_1.addExpressMiddleware; } });
const hono_1 = require("./middleware/hono");
Object.defineProperty(exports, "addHonoMiddleware", { enumerable: true, get: function () { return hono_1.addHonoMiddleware; } });
const hapi_1 = require("./middleware/hapi");
Object.defineProperty(exports, "addHapiMiddleware", { enumerable: true, get: function () { return hapi_1.addHapiMiddleware; } });
const fastify_1 = require("./middleware/fastify");
Object.defineProperty(exports, "addFastifyHook", { enumerable: true, get: function () { return fastify_1.addFastifyHook; } });
const koa_1 = require("./middleware/koa");
Object.defineProperty(exports, "addKoaMiddleware", { enumerable: true, get: function () { return koa_1.addKoaMiddleware; } });
const restify_1 = require("./middleware/restify");
Object.defineProperty(exports, "addRestifyMiddleware", { enumerable: true, get: function () { return restify_1.addRestifyMiddleware; } });
const isESM_1 = require("./helpers/isESM");
const indexImportGuard_1 = require("./helpers/indexImportGuard");
const group_1 = require("./ratelimiting/group");
Object.defineProperty(exports, "setRateLimitGroup", { enumerable: true, get: function () { return group_1.setRateLimitGroup; } });
const supported = (0, isFirewallSupported_1.default)();
const shouldEnable = (0, shouldEnableFirewall_1.default)();
const notAlreadyImported = (0, indexImportGuard_1.checkIndexImportGuard)();
if (supported && shouldEnable && notAlreadyImported) {
if ((0, isESM_1.isESM)()) {
console.warn("AIKIDO: Your application seems to be running in ESM mode. Zen does not support ESM at runtime yet.");
}
require("./agent/protect").protect();
}
// Required for ESM / TypeScript default export support
// e.g. import Zen from '@aikidosec/firewall'; would not work without this, as Zen.setUser would be undefined
exports.default = {
setUser: user_1.setUser,
markUnsafe: markUnsafe_1.markUnsafe,
shouldBlockRequest: shouldBlockRequest_1.shouldBlockRequest,
addExpressMiddleware: express_1.addExpressMiddleware,
addHonoMiddleware: hono_1.addHonoMiddleware,
addHapiMiddleware: hapi_1.addHapiMiddleware,
addFastifyHook: fastify_1.addFastifyHook,
addKoaMiddleware: koa_1.addKoaMiddleware,
addRestifyMiddleware: restify_1.addRestifyMiddleware,
setRateLimitGroup: group_1.setRateLimitGroup,
};