Socket
Socket
Sign inDemoInstall

@foal/core

Package Overview
Dependencies
Maintainers
1
Versions
98
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@foal/core - npm Package Compare versions

Comparing version 1.6.0 to 1.7.0

lib/core/config/config-mock.d.ts

3

lib/common/hooks/validate-body.hook.js

@@ -26,3 +26,4 @@ "use strict";

core_1.Hook(validate)(target, propertyKey);
if (options.openapi === false || (options.openapi === undefined && !core_1.Config.get('settings.openapi.useHooks'))) {
if (options.openapi === false ||
(options.openapi === undefined && !core_1.Config.get2('settings.openapi.useHooks', 'boolean'))) {
return;

@@ -29,0 +30,0 @@ }

@@ -37,3 +37,4 @@ "use strict";

core_1.Hook(validate)(target, propertyKey);
if (options.openapi === false || (options.openapi === undefined && !core_1.Config.get('settings.openapi.useHooks'))) {
if (options.openapi === false ||
(options.openapi === undefined && !core_1.Config.get2('settings.openapi.useHooks', 'boolean'))) {
return;

@@ -40,0 +41,0 @@ }

@@ -29,3 +29,4 @@ "use strict";

core_1.Hook(validate)(target, propertyKey);
if (options.openapi === false || (options.openapi === undefined && !core_1.Config.get('settings.openapi.useHooks'))) {
if (options.openapi === false ||
(options.openapi === undefined && !core_1.Config.get2('settings.openapi.useHooks', 'boolean'))) {
return;

@@ -32,0 +33,0 @@ }

@@ -38,3 +38,4 @@ "use strict";

core_1.Hook(validate)(target, propertyKey);
if (options.openapi === false || (options.openapi === undefined && !core_1.Config.get('settings.openapi.useHooks'))) {
if (options.openapi === false ||
(options.openapi === undefined && !core_1.Config.get2('settings.openapi.useHooks', 'boolean'))) {
return;

@@ -41,0 +42,0 @@ }

@@ -29,3 +29,4 @@ "use strict";

core_1.Hook(validate)(target, propertyKey);
if (options.openapi === false || (options.openapi === undefined && !core_1.Config.get('settings.openapi.useHooks'))) {
if (options.openapi === false ||
(options.openapi === undefined && !core_1.Config.get2('settings.openapi.useHooks', 'boolean'))) {
return;

@@ -32,0 +33,0 @@ }

@@ -28,3 +28,4 @@ "use strict";

core_1.Hook(validate)(target, propertyKey);
if (options.openapi === false || (options.openapi === undefined && !core_1.Config.get('settings.openapi.useHooks'))) {
if (options.openapi === false ||
(options.openapi === undefined && !core_1.Config.get2('settings.openapi.useHooks', 'boolean'))) {
return;

@@ -31,0 +32,0 @@ }

@@ -35,3 +35,4 @@ "use strict";

core_1.Hook(validate)(target, propertyKey);
if (options.openapi === false || (options.openapi === undefined && !core_1.Config.get('settings.openapi.useHooks'))) {
if (options.openapi === false ||
(options.openapi === undefined && !core_1.Config.get2('settings.openapi.useHooks', 'boolean'))) {
return;

@@ -38,0 +39,0 @@ }

@@ -37,3 +37,4 @@ "use strict";

core_1.Hook(validate)(target, propertyKey);
if (options.openapi === false || (options.openapi === undefined && !core_1.Config.get('settings.openapi.useHooks'))) {
if (options.openapi === false ||
(options.openapi === undefined && !core_1.Config.get2('settings.openapi.useHooks', 'boolean'))) {
return;

@@ -40,0 +41,0 @@ }

@@ -28,3 +28,4 @@ "use strict";

core_1.Hook(validate)(target, propertyKey);
if (options.openapi === false || (options.openapi === undefined && !core_1.Config.get('settings.openapi.useHooks'))) {
if (options.openapi === false ||
(options.openapi === undefined && !core_1.Config.get2('settings.openapi.useHooks', 'boolean'))) {
return;

@@ -31,0 +32,0 @@ }

/**
* Generate a 128-bit base64url-encoded token.
* Generate a 256-bit base64url-encoded token.
*

@@ -4,0 +4,0 @@ * @export

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

/**
* Generate a 128-bit base64url-encoded token.
* Generate a 256-bit base64url-encoded token.
*

@@ -12,0 +12,0 @@ * @export

@@ -6,3 +6,3 @@ import * as Ajv from 'ajv';

/**
* Return the Ajv instance used internally by FoalTS.
* Return the Ajv instance used internally by FoalTS validation hooks.
*

@@ -14,5 +14,2 @@ * It has this default configuration:

*
* This configuration can be overrided using the file `config/default.json` or through environment
* variables: SETTINGS_AJV_COERCE_TYPES, SETTINGS_AJV_REMOVE_ADDITIONAL, SETTINGS_AJV_USE_DEFAULTS,
* SETTINGS_AJV_NULLABLE.
*

@@ -19,0 +16,0 @@ * @export

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

/**
* Return the Ajv instance used internally by FoalTS.
* Return the Ajv instance used internally by FoalTS validation hooks.
*

@@ -20,5 +20,2 @@ * It has this default configuration:

*
* This configuration can be overrided using the file `config/default.json` or through environment
* variables: SETTINGS_AJV_COERCE_TYPES, SETTINGS_AJV_REMOVE_ADDITIONAL, SETTINGS_AJV_USE_DEFAULTS,
* SETTINGS_AJV_NULLABLE.
*

@@ -31,6 +28,7 @@ * @export

exports._instanceWrapper.instance = new Ajv({
coerceTypes: core_1.Config.get('settings.ajv.coerceTypes', true),
nullable: core_1.Config.get('settings.ajv.nullable'),
removeAdditional: core_1.Config.get('settings.ajv.removeAdditional', true),
useDefaults: core_1.Config.get('settings.ajv.useDefaults', true),
allErrors: core_1.Config.get2('settings.ajv.allErrors', 'boolean'),
coerceTypes: core_1.Config.get2('settings.ajv.coerceTypes', 'boolean', true),
nullable: core_1.Config.get2('settings.ajv.nullable', 'boolean'),
removeAdditional: core_1.Config.get2('settings.ajv.removeAdditional', 'boolean|string', true),
useDefaults: core_1.Config.get2('settings.ajv.useDefaults', 'boolean|string', true),
});

@@ -37,0 +35,0 @@ }

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

const template = await util_1.promisify(fs_1.readFile)(path_1.join(__dirname, '500.debug.html'), 'utf8');
if (!core_1.Config.get('settings.debug')) {
if (!core_1.Config.get2('settings.debug', 'boolean')) {
return new core_1.HttpResponseInternalServerError(page500);

@@ -28,0 +28,0 @@ }

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

function renderToString(template, locals) {
// tslint:disable-next-line:forin
for (const key in locals) {

@@ -44,3 +43,3 @@ template = template.replace(new RegExp(`{{ ${key} }}`, 'g'), locals[key]);

const template = await util_1.promisify(fs_1.readFile)(path, 'utf8');
const templateEngine = core_1.Config.get('settings.templateEngine');
const templateEngine = core_1.Config.get2('settings.templateEngine', 'string');
if (templateEngine) {

@@ -47,0 +46,0 @@ const { renderToString, __express } = require(templateEngine);

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

const cookies = {};
// tslint:disable-next-line:forin
for (const cookieName in this.cookies) {

@@ -115,0 +114,0 @@ const { value, options } = this.cookies[cookieName];

@@ -6,4 +6,3 @@ export * from './class.interface';

export * from './routes';
export { ConfigMock } from './config-mock';
export { Config } from './config';
export * from './config';
export { createService, dependency, ServiceManager } from './service-manager';

@@ -11,6 +11,3 @@ "use strict";

__export(require("./routes"));
var config_mock_1 = require("./config-mock");
exports.ConfigMock = config_mock_1.ConfigMock;
var config_1 = require("./config");
exports.Config = config_1.Config;
__export(require("./config"));
var service_manager_1 = require("./service-manager");

@@ -17,0 +14,0 @@ exports.createService = service_manager_1.createService;

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

// Log requests.
const loggerFormat = core_1.Config.get('settings.loggerFormat', '[:date] ":method :url HTTP/:http-version" :status - :response-time ms');
const loggerFormat = core_1.Config.get2('settings.loggerFormat', 'string', '[:date] ":method :url HTTP/:http-version" :status - :response-time ms');
if (loggerFormat !== 'none') {

@@ -75,5 +75,5 @@ app.use(logger(loggerFormat));

// Serve static files.
app.use(core_1.Config.get('settings.staticPathPrefix', ''), express.static(core_1.Config.get('settings.staticPath', 'public')));
app.use(core_1.Config.get2('settings.staticPathPrefix', 'string', ''), express.static(core_1.Config.get2('settings.staticPath', 'string', 'public')));
// Parse request body.
const limit = core_1.Config.get('settings.bodyParser.limit');
const limit = core_1.Config.get2('settings.bodyParser.limit', 'number|string');
app.use(express.json({ limit }));

@@ -80,0 +80,0 @@ app.use(handleJsonErrors);

@@ -22,3 +22,5 @@ "use strict";

}
logFn(err.stack);
if (core_1.Config.get2('settings.logErrors', 'boolean', true)) {
logFn(err.stack);
}
const ctx = req.foal ? req.foal.ctx : new core_1.Context(req);

@@ -25,0 +27,0 @@ let response;

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

const cookies = response.getCookies();
// tslint:disable-next-line:forin
for (const cookieName in cookies) {

@@ -21,0 +20,0 @@ const options = cookies[cookieName].options;

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

const convertedPaths = [];
// tslint:disable-next-line:forin
for (const path in paths) {

@@ -42,3 +41,2 @@ const convertedPath = path.replace(/{.*}/g, () => '#');

const subControllerPath = utils_1.getPath(subControllerClass) || '';
// tslint:disable-next-line:forin
for (const subPath in subPaths) {

@@ -45,0 +43,0 @@ const subPathItem = subPaths[subPath];

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

completeOperation.responses = {};
// tslint:disable-next-line:forin
for (const key in responses) {

@@ -62,3 +61,2 @@ const response = responses[key];

completeOperation.callbacks = {};
// tslint:disable-next-line:forin
for (const key in callbacks) {

@@ -65,0 +63,0 @@ const callback = callbacks[key];

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

components.callbacks = {};
// tslint:disable-next-line:forin
for (const key in callbacks) {

@@ -19,3 +18,2 @@ const callback = callbacks[key];

components.examples = {};
// tslint:disable-next-line:forin
for (const key in examples) {

@@ -29,3 +27,2 @@ const example = examples[key];

components.headers = {};
// tslint:disable-next-line:forin
for (const key in headers) {

@@ -39,3 +36,2 @@ const header = headers[key];

components.links = {};
// tslint:disable-next-line:forin
for (const key in links) {

@@ -49,3 +45,2 @@ const link = links[key];

components.parameters = {};
// tslint:disable-next-line:forin
for (const key in parameters) {

@@ -59,3 +54,2 @@ const parameter = parameters[key];

components.requestBodies = {};
// tslint:disable-next-line:forin
for (const key in requestBodies) {

@@ -69,3 +63,2 @@ const requestBody = requestBodies[key];

components.responses = {};
// tslint:disable-next-line:forin
for (const key in responses) {

@@ -79,3 +72,2 @@ const response = responses[key];

components.schemas = {};
// tslint:disable-next-line:forin
for (const key in schemas) {

@@ -89,3 +81,2 @@ const schema = schemas[key];

components.securitySchemes = {};
// tslint:disable-next-line:forin
for (const key in securitySchemes) {

@@ -92,0 +83,0 @@ const scheme = securitySchemes[key];

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

function removeSessionCookie(response) {
const cookieName = core_1.Config.get('settings.session.cookie.name', constants_1.SESSION_DEFAULT_COOKIE_NAME);
const cookieName = core_1.Config.get2('settings.session.cookie.name', 'string', constants_1.SESSION_DEFAULT_COOKIE_NAME);
const options = {
domain: core_1.Config.get('settings.session.cookie.domain'),
httpOnly: core_1.Config.get('settings.session.cookie.httpOnly', constants_1.SESSION_DEFAULT_COOKIE_HTTP_ONLY),
domain: core_1.Config.get2('settings.session.cookie.domain', 'string'),
httpOnly: core_1.Config.get2('settings.session.cookie.httpOnly', 'boolean', constants_1.SESSION_DEFAULT_COOKIE_HTTP_ONLY),
maxAge: 0,
path: core_1.Config.get('settings.session.cookie.path', constants_1.SESSION_DEFAULT_COOKIE_PATH),
sameSite: core_1.Config.get('settings.session.cookie.sameSite'),
secure: core_1.Config.get('settings.session.cookie.secure')
path: core_1.Config.get2('settings.session.cookie.path', 'string', constants_1.SESSION_DEFAULT_COOKIE_PATH),
sameSite: core_1.Config.get2('settings.session.cookie.sameSite', 'string'),
secure: core_1.Config.get2('settings.session.cookie.secure', 'boolean')
};

@@ -23,0 +23,0 @@ response.setCookie(cookieName, '', options);

@@ -40,4 +40,4 @@ "use strict";

const result = {
absolute: core_1.Config.get('settings.session.expirationTimeouts.absolute', constants_1.SESSION_DEFAULT_ABSOLUTE_TIMEOUT),
inactivity: core_1.Config.get('settings.session.expirationTimeouts.inactivity', constants_1.SESSION_DEFAULT_INACTIVITY_TIMEOUT),
absolute: core_1.Config.get2('settings.session.expirationTimeouts.absolute', 'number', constants_1.SESSION_DEFAULT_ABSOLUTE_TIMEOUT),
inactivity: core_1.Config.get2('settings.session.expirationTimeouts.inactivity', 'number', constants_1.SESSION_DEFAULT_INACTIVITY_TIMEOUT),
};

@@ -44,0 +44,0 @@ if (result.absolute < 0) {

@@ -31,6 +31,3 @@ "use strict";

static verifyTokenAndGetId(token) {
const secret = core_1.Config.get('settings.session.secret');
if (!secret) {
throw new Error('[CONFIG] You must provide a secret with the configuration key settings.session.secret.');
}
const secret = core_1.Config.getOrThrow('settings.session.secret', 'string', 'You must provide a secret when using sessions.');
return common_1.verifySignedToken(token, secret);

@@ -74,6 +71,3 @@ }

getToken() {
const secret = core_1.Config.get('settings.session.secret');
if (!secret) {
throw new Error('[CONFIG] You must provide a secret with the configuration key settings.session.secret.');
}
const secret = core_1.Config.getOrThrow('settings.session.secret', 'string', 'You must provide a secret when using sessions.');
return common_1.signToken(this.sessionID, secret);

@@ -80,0 +74,0 @@ }

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

function setSessionCookie(response, token) {
const cookieName = core_1.Config.get('settings.session.cookie.name', constants_1.SESSION_DEFAULT_COOKIE_NAME);
const cookieName = core_1.Config.get2('settings.session.cookie.name', 'string', constants_1.SESSION_DEFAULT_COOKIE_NAME);
const options = {
domain: core_1.Config.get('settings.session.cookie.domain'),
httpOnly: core_1.Config.get('settings.session.cookie.httpOnly', constants_1.SESSION_DEFAULT_COOKIE_HTTP_ONLY),
domain: core_1.Config.get2('settings.session.cookie.domain', 'string'),
httpOnly: core_1.Config.get2('settings.session.cookie.httpOnly', 'boolean', constants_1.SESSION_DEFAULT_COOKIE_HTTP_ONLY),
maxAge: session_store_1.SessionStore.getExpirationTimeouts().inactivity,
path: core_1.Config.get('settings.session.cookie.path', constants_1.SESSION_DEFAULT_COOKIE_PATH),
sameSite: core_1.Config.get('settings.session.cookie.sameSite'),
secure: core_1.Config.get('settings.session.cookie.secure')
path: core_1.Config.get2('settings.session.cookie.path', 'string', constants_1.SESSION_DEFAULT_COOKIE_PATH),
sameSite: core_1.Config.get2('settings.session.cookie.sameSite', 'string'),
secure: core_1.Config.get2('settings.session.cookie.secure', 'boolean')
};

@@ -25,0 +25,0 @@ response.setCookie(cookieName, token, options);

@@ -12,3 +12,4 @@ "use strict";

token_hook_1.Token(false, options)(target, propertyKey);
if (options.openapi === false || (options.openapi === undefined && !core_1.Config.get('settings.openapi.useHooks'))) {
if (options.openapi === false ||
(options.openapi === undefined && !core_1.Config.get2('settings.openapi.useHooks', 'boolean'))) {
return;

@@ -19,3 +20,3 @@ }

in: 'cookie',
name: core_1.Config.get('settings.session.cookie.name', constants_1.SESSION_DEFAULT_COOKIE_NAME),
name: core_1.Config.get2('settings.session.cookie.name', 'string', constants_1.SESSION_DEFAULT_COOKIE_NAME),
type: 'apiKey',

@@ -22,0 +23,0 @@ };

@@ -12,3 +12,4 @@ "use strict";

token_hook_1.Token(true, options)(target, propertyKey);
if (options.openapi === false || (options.openapi === undefined && !core_1.Config.get('settings.openapi.useHooks'))) {
if (options.openapi === false ||
(options.openapi === undefined && !core_1.Config.get2('settings.openapi.useHooks', 'boolean'))) {
return;

@@ -19,3 +20,3 @@ }

in: 'cookie',
name: core_1.Config.get('settings.session.cookie.name', constants_1.SESSION_DEFAULT_COOKIE_NAME),
name: core_1.Config.get2('settings.session.cookie.name', 'string', constants_1.SESSION_DEFAULT_COOKIE_NAME),
type: 'apiKey',

@@ -22,0 +23,0 @@ };

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

return core_1.Hook(async (ctx, services) => {
const cookieName = core_1.Config.get('settings.session.cookie.name', constants_1.SESSION_DEFAULT_COOKIE_NAME);
const cookieName = core_1.Config.get2('settings.session.cookie.name', 'string', constants_1.SESSION_DEFAULT_COOKIE_NAME);
/* Validate the request */

@@ -25,0 +25,0 @@ let token;

{
"name": "@foal/core",
"version": "1.6.0",
"version": "1.7.0",
"description": "A Node.js and TypeScript framework, all-inclusive.",

@@ -80,7 +80,7 @@ "main": "./lib/index.js",

"@types/express": "~4.17.2",
"ajv": "~6.11.0",
"ajv": "~6.12.0",
"cookie-parser": "~1.4.4",
"express": "~4.17.1",
"mime": "~2.4.4",
"morgan": "~1.9.1",
"morgan": "~1.10.0",
"pump": "~3.0.0",

@@ -90,3 +90,3 @@ "reflect-metadata": "~0.1.13"

"devDependencies": {
"@foal/ejs": "^1.6.0",
"@foal/ejs": "^1.7.0",
"@types/mocha": "~2.2.43",

@@ -112,3 +112,3 @@ "@types/node": "~10.1.2",

},
"gitHead": "5691b5d649e6104b3f46da7394fee6aa850918f6"
"gitHead": "e61e82add0919f07f0224509e1613eda9cd4b404"
}
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