Socket
Socket
Sign inDemoInstall

@foal/core

Package Overview
Dependencies
60
Maintainers
1
Versions
96
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.1.2 to 2.2.0

lib/common/utils/display-server-url.util.d.ts

1

lib/common/utils/index.d.ts
export { controller } from './controller.util';
export { displayServerURL } from './display-server-url.util';
export { escapeProp } from './escape-prop';

@@ -3,0 +4,0 @@ export { escape } from './escape';

4

lib/common/utils/index.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.verifyPassword = exports.render = exports.renderError = exports.isInFile = exports.hashPassword = exports.getAjvInstance = exports.escape = exports.escapeProp = exports.controller = void 0;
exports.verifyPassword = exports.render = exports.renderError = exports.isInFile = exports.hashPassword = exports.getAjvInstance = exports.escape = exports.escapeProp = exports.displayServerURL = exports.controller = void 0;
var controller_util_1 = require("./controller.util");
Object.defineProperty(exports, "controller", { enumerable: true, get: function () { return controller_util_1.controller; } });
var display_server_url_util_1 = require("./display-server-url.util");
Object.defineProperty(exports, "displayServerURL", { enumerable: true, get: function () { return display_server_url_util_1.displayServerURL; } });
var escape_prop_1 = require("./escape-prop");

@@ -7,0 +9,0 @@ Object.defineProperty(exports, "escapeProp", { enumerable: true, get: function () { return escape_prop_1.escapeProp; } });

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

*/
export { Log, LogOptions, UserRequired, ValidateBody, ValidateCookie, ValidateHeader, ValidatePathParam, ValidateQueryParam, controller, convertBase64ToBase64url, escape, escapeProp, generateSignedToken, generateToken, getAjvInstance, hashPassword, isInFile, render, renderError, signToken, verifyPassword, verifySignedToken, } from './common';
export { Log, LogOptions, UserRequired, ValidateBody, ValidateCookie, ValidateHeader, ValidatePathParam, ValidateQueryParam, controller, displayServerURL, convertBase64ToBase64url, escape, escapeProp, generateSignedToken, generateToken, getAjvInstance, hashPassword, isInFile, render, renderError, signToken, verifyPassword, verifySignedToken, } from './common';
export { ApiCallback, ApiDefineCallback, ApiDefineExample, ApiDefineHeader, ApiDefineLink, ApiDefineParameter, ApiDefineRequestBody, ApiDefineResponse, ApiDefineSchema, ApiDefineSecurityScheme, ApiDefineTag, ApiDeprecated, ApiExternalDoc, ApiInfo, ApiOperation, ApiOperationDescription, ApiOperationId, ApiOperationSummary, ApiParameter, ApiRequestBody, ApiResponse, ApiSecurityRequirement, ApiServer, ApiUseTag, All, Class, ClassOrAbstractClass, Config, ConfigNotFoundError, ConfigTypeError, Context, CookieOptions, Delete, Dependency, Env, Get, Head, Hook, HookDecorator, HookFunction, HookPostFunction, HttpMethod, HttpResponse, HttpResponseBadRequest, HttpResponseClientError, HttpResponseConflict, HttpResponseCreated, HttpResponseForbidden, HttpResponseInternalServerError, HttpResponseMethodNotAllowed, HttpResponseMovedPermanently, HttpResponseNoContent, HttpResponseNotFound, HttpResponseNotImplemented, HttpResponseOK, HttpResponseRedirect, HttpResponseRedirection, HttpResponseServerError, HttpResponseSuccess, HttpResponseTooManyRequests, HttpResponseUnauthorized, IApiAbstractParameter, IApiAbstractSecurityScheme, IApiApiKeySecurityScheme, IApiAuthorizationCodeOAuthFlow, IApiCallback, IApiClientCredentialsOAuthFlow, IApiComponents, IApiContact, IApiCookieParameter, IApiDiscriminator, IApiEncoding, IApiExample, IApiExternalDocumentation, IApiHeader, IApiHeaderParameter, IApiHttpSecurityScheme, IApiImplicitOAuthFlow, IApiInfo, IApiLicense, IApiLink, IApiMediaType, IApiOAuth2SecurityScheme, IApiOAuthFlow, IApiOAuthFlows, IApiOpenIdConnectSecurityScheme, IApiOperation, IApiParameter, IApiPasswordOAuthFlow, IApiPathItem, IApiPathParameter, IApiPaths, IApiQueryParameter, IApiReference, IApiRequestBody, IApiResponse, IApiResponses, IApiSchema, IApiSecurityRequirement, IApiSecurityScheme, IApiServer, IApiServerVariable, IApiTag, IApiXML, IAppController, IController, IOpenAPI, MergeHooks, OpenApi, OpenApiDecorator, Options, Patch, Post, Put, ServiceManager, createController, createOpenApiDocument, createService, dependency, getApiCallbacks, getApiCompleteOperation, getApiComponents, getApiDeprecated, getApiExternalDocs, getApiInfo, getApiOperation, getApiOperationDescription, getApiOperationId, getApiOperationSummary, getApiParameters, getApiRequestBody, getApiResponses, getApiSecurity, getApiServers, getApiTags, getApiUsedTags, getHookFunction, getHookFunctions, getHttpMethod, getPath, isHttpResponse, isHttpResponseBadRequest, isHttpResponseClientError, isHttpResponseConflict, isHttpResponseCreated, isHttpResponseForbidden, isHttpResponseInternalServerError, isHttpResponseMethodNotAllowed, isHttpResponseMovedPermanently, isHttpResponseNoContent, isHttpResponseNotFound, isHttpResponseNotImplemented, isHttpResponseOK, isHttpResponseRedirect, isHttpResponseRedirection, isHttpResponseServerError, isHttpResponseSuccess, isHttpResponseTooManyRequests, isHttpResponseUnauthorized, } from './core';
export { OPENAPI_SERVICE_ID, createApp, } from './express';
export { Session, SessionAlreadyExists, SessionState, SessionStore, Store, UseSessions, createSession, readSession, } from './sessions';

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

Object.defineProperty(exports, "__esModule", { value: true });
exports.readSession = exports.createSession = exports.UseSessions = exports.Store = exports.SessionStore = exports.SessionAlreadyExists = exports.Session = exports.createApp = exports.OPENAPI_SERVICE_ID = exports.isHttpResponseUnauthorized = exports.isHttpResponseTooManyRequests = exports.isHttpResponseSuccess = exports.isHttpResponseServerError = exports.isHttpResponseRedirection = exports.isHttpResponseRedirect = exports.isHttpResponseOK = exports.isHttpResponseNotImplemented = exports.isHttpResponseNotFound = exports.isHttpResponseNoContent = exports.isHttpResponseMovedPermanently = exports.isHttpResponseMethodNotAllowed = exports.isHttpResponseInternalServerError = exports.isHttpResponseForbidden = exports.isHttpResponseCreated = exports.isHttpResponseConflict = exports.isHttpResponseClientError = exports.isHttpResponseBadRequest = exports.isHttpResponse = exports.getPath = exports.getHttpMethod = exports.getHookFunctions = exports.getHookFunction = exports.getApiUsedTags = exports.getApiTags = exports.getApiServers = exports.getApiSecurity = exports.getApiResponses = exports.getApiRequestBody = exports.getApiParameters = exports.getApiOperationSummary = exports.getApiOperationId = exports.getApiOperationDescription = exports.getApiOperation = exports.getApiInfo = exports.getApiExternalDocs = exports.getApiDeprecated = exports.getApiComponents = exports.getApiCompleteOperation = exports.getApiCallbacks = exports.dependency = exports.createService = exports.createOpenApiDocument = exports.createController = exports.ServiceManager = exports.Put = exports.Post = exports.Patch = exports.Options = exports.OpenApi = exports.MergeHooks = exports.HttpResponseUnauthorized = exports.HttpResponseTooManyRequests = exports.HttpResponseSuccess = exports.HttpResponseServerError = exports.HttpResponseRedirection = exports.HttpResponseRedirect = exports.HttpResponseOK = exports.HttpResponseNotImplemented = exports.HttpResponseNotFound = exports.HttpResponseNoContent = exports.HttpResponseMovedPermanently = exports.HttpResponseMethodNotAllowed = exports.HttpResponseInternalServerError = exports.HttpResponseForbidden = exports.HttpResponseCreated = exports.HttpResponseConflict = exports.HttpResponseClientError = exports.HttpResponseBadRequest = exports.HttpResponse = exports.Hook = exports.Head = exports.Get = exports.Env = exports.Dependency = exports.Delete = exports.Context = exports.ConfigTypeError = exports.ConfigNotFoundError = exports.Config = exports.All = exports.ApiUseTag = exports.ApiServer = exports.ApiSecurityRequirement = exports.ApiResponse = exports.ApiRequestBody = exports.ApiParameter = exports.ApiOperationSummary = exports.ApiOperationId = exports.ApiOperationDescription = exports.ApiOperation = exports.ApiInfo = exports.ApiExternalDoc = exports.ApiDeprecated = exports.ApiDefineTag = exports.ApiDefineSecurityScheme = exports.ApiDefineSchema = exports.ApiDefineResponse = exports.ApiDefineRequestBody = exports.ApiDefineParameter = exports.ApiDefineLink = exports.ApiDefineHeader = exports.ApiDefineExample = exports.ApiDefineCallback = exports.ApiCallback = exports.verifySignedToken = exports.verifyPassword = exports.signToken = exports.renderError = exports.render = exports.isInFile = exports.hashPassword = exports.getAjvInstance = exports.generateToken = exports.generateSignedToken = exports.escapeProp = exports.escape = exports.convertBase64ToBase64url = exports.controller = exports.ValidateQueryParam = exports.ValidatePathParam = exports.ValidateHeader = exports.ValidateCookie = exports.ValidateBody = exports.UserRequired = exports.Log = void 0;
exports.readSession = exports.createSession = exports.UseSessions = exports.Store = exports.SessionStore = exports.SessionAlreadyExists = exports.Session = exports.createApp = exports.OPENAPI_SERVICE_ID = exports.isHttpResponseUnauthorized = exports.isHttpResponseTooManyRequests = exports.isHttpResponseSuccess = exports.isHttpResponseServerError = exports.isHttpResponseRedirection = exports.isHttpResponseRedirect = exports.isHttpResponseOK = exports.isHttpResponseNotImplemented = exports.isHttpResponseNotFound = exports.isHttpResponseNoContent = exports.isHttpResponseMovedPermanently = exports.isHttpResponseMethodNotAllowed = exports.isHttpResponseInternalServerError = exports.isHttpResponseForbidden = exports.isHttpResponseCreated = exports.isHttpResponseConflict = exports.isHttpResponseClientError = exports.isHttpResponseBadRequest = exports.isHttpResponse = exports.getPath = exports.getHttpMethod = exports.getHookFunctions = exports.getHookFunction = exports.getApiUsedTags = exports.getApiTags = exports.getApiServers = exports.getApiSecurity = exports.getApiResponses = exports.getApiRequestBody = exports.getApiParameters = exports.getApiOperationSummary = exports.getApiOperationId = exports.getApiOperationDescription = exports.getApiOperation = exports.getApiInfo = exports.getApiExternalDocs = exports.getApiDeprecated = exports.getApiComponents = exports.getApiCompleteOperation = exports.getApiCallbacks = exports.dependency = exports.createService = exports.createOpenApiDocument = exports.createController = exports.ServiceManager = exports.Put = exports.Post = exports.Patch = exports.Options = exports.OpenApi = exports.MergeHooks = exports.HttpResponseUnauthorized = exports.HttpResponseTooManyRequests = exports.HttpResponseSuccess = exports.HttpResponseServerError = exports.HttpResponseRedirection = exports.HttpResponseRedirect = exports.HttpResponseOK = exports.HttpResponseNotImplemented = exports.HttpResponseNotFound = exports.HttpResponseNoContent = exports.HttpResponseMovedPermanently = exports.HttpResponseMethodNotAllowed = exports.HttpResponseInternalServerError = exports.HttpResponseForbidden = exports.HttpResponseCreated = exports.HttpResponseConflict = exports.HttpResponseClientError = exports.HttpResponseBadRequest = exports.HttpResponse = exports.Hook = exports.Head = exports.Get = exports.Env = exports.Dependency = exports.Delete = exports.Context = exports.ConfigTypeError = exports.ConfigNotFoundError = exports.Config = exports.All = exports.ApiUseTag = exports.ApiServer = exports.ApiSecurityRequirement = exports.ApiResponse = exports.ApiRequestBody = exports.ApiParameter = exports.ApiOperationSummary = exports.ApiOperationId = exports.ApiOperationDescription = exports.ApiOperation = exports.ApiInfo = exports.ApiExternalDoc = exports.ApiDeprecated = exports.ApiDefineTag = exports.ApiDefineSecurityScheme = exports.ApiDefineSchema = exports.ApiDefineResponse = exports.ApiDefineRequestBody = exports.ApiDefineParameter = exports.ApiDefineLink = exports.ApiDefineHeader = exports.ApiDefineExample = exports.ApiDefineCallback = exports.ApiCallback = exports.verifySignedToken = exports.verifyPassword = exports.signToken = exports.renderError = exports.render = exports.isInFile = exports.hashPassword = exports.getAjvInstance = exports.generateToken = exports.generateSignedToken = exports.escapeProp = exports.escape = exports.convertBase64ToBase64url = exports.displayServerURL = exports.controller = exports.ValidateQueryParam = exports.ValidatePathParam = exports.ValidateHeader = exports.ValidateCookie = exports.ValidateBody = exports.UserRequired = exports.Log = void 0;
try {

@@ -27,2 +27,3 @@ const version = process.versions.node;

Object.defineProperty(exports, "controller", { enumerable: true, get: function () { return common_1.controller; } });
Object.defineProperty(exports, "displayServerURL", { enumerable: true, get: function () { return common_1.displayServerURL; } });
Object.defineProperty(exports, "convertBase64ToBase64url", { enumerable: true, get: function () { return common_1.convertBase64ToBase64url; } });

@@ -29,0 +30,0 @@ Object.defineProperty(exports, "escape", { enumerable: true, get: function () { return common_1.escape; } });

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

export declare const SESSION_DEFAULT_SAME_SITE_ON_CSRF_ENABLED: 'strict' | 'lax' | 'none';
export declare const SESSION_USER_COOKIE_NAME: string;
export declare const SESSION_DEFAULT_INACTIVITY_TIMEOUT: number;
export declare const SESSION_DEFAULT_ABSOLUTE_TIMEOUT: number;
export declare const SESSION_DEFAULT_GARBAGE_COLLECTOR_PERIODICITY = 50;

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

Object.defineProperty(exports, "__esModule", { value: true });
exports.SESSION_DEFAULT_GARBAGE_COLLECTOR_PERIODICITY = exports.SESSION_DEFAULT_ABSOLUTE_TIMEOUT = exports.SESSION_DEFAULT_INACTIVITY_TIMEOUT = exports.SESSION_DEFAULT_SAME_SITE_ON_CSRF_ENABLED = exports.SESSION_DEFAULT_CSRF_COOKIE_NAME = exports.SESSION_DEFAULT_COOKIE_NAME = exports.SESSION_DEFAULT_COOKIE_HTTP_ONLY = exports.SESSION_DEFAULT_COOKIE_PATH = void 0;
exports.SESSION_DEFAULT_GARBAGE_COLLECTOR_PERIODICITY = exports.SESSION_DEFAULT_ABSOLUTE_TIMEOUT = exports.SESSION_DEFAULT_INACTIVITY_TIMEOUT = exports.SESSION_USER_COOKIE_NAME = exports.SESSION_DEFAULT_SAME_SITE_ON_CSRF_ENABLED = exports.SESSION_DEFAULT_CSRF_COOKIE_NAME = exports.SESSION_DEFAULT_COOKIE_NAME = exports.SESSION_DEFAULT_COOKIE_HTTP_ONLY = exports.SESSION_DEFAULT_COOKIE_PATH = void 0;
exports.SESSION_DEFAULT_COOKIE_PATH = '/';

@@ -13,2 +13,3 @@ exports.SESSION_DEFAULT_COOKIE_HTTP_ONLY = true;

exports.SESSION_DEFAULT_SAME_SITE_ON_CSRF_ENABLED = 'lax';
exports.SESSION_USER_COOKIE_NAME = 'user';
// Expiration timeouts in seconds

@@ -15,0 +16,0 @@ exports.SESSION_DEFAULT_INACTIVITY_TIMEOUT = 15 * 60; // 15 minutes

@@ -7,5 +7,8 @@ import { HttpResponse } from '../core';

*
* If the `user` argument is true, it also deletes the "user" cookie.
*
* @export
* @param {HttpResponse} response - The HTTP response
* @param {boolean} [user] - Specify if the "user" cookie should be deleted.
*/
export declare function removeSessionCookie(response: HttpResponse): void;
export declare function removeSessionCookie(response: HttpResponse, user?: boolean): void;

@@ -12,6 +12,9 @@ "use strict";

*
* If the `user` argument is true, it also deletes the "user" cookie.
*
* @export
* @param {HttpResponse} response - The HTTP response
* @param {boolean} [user] - Specify if the "user" cookie should be deleted.
*/
function removeSessionCookie(response) {
function removeSessionCookie(response, user) {
const cookieName = core_1.Config.get('settings.session.cookie.name', 'string', constants_1.SESSION_DEFAULT_COOKIE_NAME);

@@ -35,3 +38,6 @@ const csrfEnabled = core_1.Config.get('settings.session.csrf.enabled', 'boolean', false);

}
if (user) {
response.setCookie(constants_1.SESSION_USER_COOKIE_NAME, '', Object.assign(Object.assign({}, options), { httpOnly: false }));
}
}
exports.removeSessionCookie = removeSessionCookie;

@@ -8,6 +8,9 @@ import { HttpResponse } from '../core';

*
* If a "user" argument is provided, it also sends its value in a "user" cookie.
*
* @export
* @param {HttpResponse} response - The HTTP response.
* @param {Session} session - The session object.
* @param {string} [user] - The content of the "user" cookie if any.
*/
export declare function setSessionCookie(response: HttpResponse, session: Session): void;
export declare function setSessionCookie(response: HttpResponse, session: Session, user?: string): void;

@@ -12,7 +12,10 @@ "use strict";

*
* If a "user" argument is provided, it also sends its value in a "user" cookie.
*
* @export
* @param {HttpResponse} response - The HTTP response.
* @param {Session} session - The session object.
* @param {string} [user] - The content of the "user" cookie if any.
*/
function setSessionCookie(response, session) {
function setSessionCookie(response, session, user) {
const cookieName = core_1.Config.get('settings.session.cookie.name', 'string', constants_1.SESSION_DEFAULT_COOKIE_NAME);

@@ -36,3 +39,6 @@ const csrfEnabled = core_1.Config.get('settings.session.csrf.enabled', 'boolean', false);

}
if (user) {
response.setCookie(constants_1.SESSION_USER_COOKIE_NAME, user, Object.assign(Object.assign({}, options), { httpOnly: false }));
}
}
exports.setSessionCookie = setSessionCookie;

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

import { Class, HookDecorator } from '../core';
import { Class, Context, HookDecorator, ServiceManager } from '../core';
import { SessionStore } from './session-store';

@@ -12,3 +12,4 @@ export interface UseSessionOptions {

create?: boolean;
userCookie?: (ctx: Context, services: ServiceManager) => string | Promise<string>;
}
export declare function UseSessions(options?: UseSessionOptions): HookDecorator;

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

if (options.cookie) {
remove_session_cookie_1.removeSessionCookie(response);
remove_session_cookie_1.removeSessionCookie(response, !!options.userCookie);
}

@@ -42,3 +42,4 @@ return;

if (options.cookie) {
set_session_cookie_1.setSessionCookie(response, ctx.session);
const userCookie = options.userCookie ? await options.userCookie(ctx, services) : undefined;
set_session_cookie_1.setSessionCookie(response, ctx.session, userCookie);
}

@@ -84,3 +85,3 @@ }

if (options.cookie) {
remove_session_cookie_1.removeSessionCookie(response);
remove_session_cookie_1.removeSessionCookie(response, !!options.userCookie);
}

@@ -114,3 +115,3 @@ return response;

if (options.cookie) {
remove_session_cookie_1.removeSessionCookie(response);
remove_session_cookie_1.removeSessionCookie(response, !!options.userCookie);
}

@@ -117,0 +118,0 @@ return response;

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

@@ -93,3 +93,3 @@ "main": "./lib/index.js",

"ejs": "~2.6.2",
"mocha": "~8.2.0",
"mocha": "~8.3.0",
"nyc": "~15.1.0",

@@ -104,3 +104,3 @@ "rimraf": "~2.6.2",

},
"gitHead": "c049ebebba293e7790e96a988bb9db34c5b25e67"
"gitHead": "303ee320fcf468317a13a9868934566bf11f0ddc"
}

@@ -45,3 +45,3 @@ <p align="center">

But while offering all these incredible features, the framework remains simple. Complexity and unnecessary abstractions are put aside to provide the most intuitive and expressive syntax. We believe that concise and elegant code is the best way to develop an application and maintain it in the future. It also allows you to spend more time coding rather than trying to understand how the framework works.
But while offering all these features, the framework remains simple. Complexity and unnecessary abstractions are put aside to provide the most intuitive and expressive syntax. We believe that concise and elegant code is the best way to develop an application and maintain it in the future. It also allows you to spend more time coding rather than trying to understand how the framework works.

@@ -48,0 +48,0 @@ And last but not least, the framework is entirely written in TypeScript. The language brings you optional static type-checking along with the latest ECMAScript features. This allows you to detect most silly errors during compilation and improve the quality of your code. It also offers you autocompletion and a well documented API.

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc