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 0.6.0-beta.5 to 0.6.0-beta.6

lib/auth/utils/index.d.ts

10

lib/auth/authentication/login.controller.js

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

Object.defineProperty(exports, "__esModule", { value: true });
// 3p
const Ajv = require("ajv");
// FoalTS
const common_1 = require("../../common");
const core_1 = require("../../core");
const ajv = new Ajv({ removeAdditional: true });
const utils_1 = require("../utils");
function strategy(name, authenticatorClass, schema) {

@@ -24,3 +23,3 @@ return { name, authenticatorClass, schema };

logout(ctx) {
delete ctx.request.session.authentication;
utils_1.logOut(ctx);
if (this.redirect && this.redirect.logout) {

@@ -37,2 +36,3 @@ return new core_1.HttpResponseRedirect(this.redirect.logout);

}
const ajv = common_1.getAjvInstance();
const isValid = ajv.validate(strategy.schema, ctx.request.body);

@@ -48,3 +48,3 @@ if (!isValid) {

}
ctx.request.session.authentication = Object.assign({}, ctx.request.session.authentication, { userId: user.id });
utils_1.logIn(ctx, user);
const redirectPath = this.redirect && this.redirect.success;

@@ -51,0 +51,0 @@ return redirectPath ? new core_1.HttpResponseRedirect(redirectPath) : new core_1.HttpResponseNoContent();

@@ -1,3 +0,3 @@

export { EmailAuthenticator } from './email-authenticator.service';
export { EmailAuthenticator, EmailUser } from './email-authenticator.service';
export { emailSchema } from './email.schema';
export { parsePassword } from './parse-password.parser';
export * from './authentication';
export * from './authorization';
export * from './entities';
export * from './utils';

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

__export(require("./entities"));
__export(require("./utils"));

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

export { Log } from './log.hook';
export { Log, LogOptions } from './log.hook';
export { ValidateBody } from './validate-body.hook';

@@ -3,0 +3,0 @@ export { ValidateHeaders } from './validate-headers.hook';

import { HookDecorator } from '../../core';
export declare function Log(message: string, logFn?: {
(message?: any, ...optionalParams: any[]): void;
(message?: any, ...optionalParams: any[]): void;
}): HookDecorator;
export interface LogOptions {
body?: boolean;
params?: boolean;
headers?: string[] | boolean;
query?: boolean;
logFn?: typeof console.log;
}
/**
* Logs a message with optional information on the HTTP request.
*
* @param message The message to print.
* @param options Options to specify which information on the HTTP request should be printed.
*/
export declare function Log(message: string, options?: LogOptions): HookDecorator;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("../../core");
function Log(message, logFn = console.log) {
return core_1.Hook(() => logFn(message));
/**
* Logs a message with optional information on the HTTP request.
*
* @param message The message to print.
* @param options Options to specify which information on the HTTP request should be printed.
*/
function Log(message, options = {}) {
const logFn = options.logFn || console.log;
return core_1.Hook((ctx) => {
logFn(message);
if (options.body) {
logFn('Body: ', ctx.request.body);
}
if (options.params) {
logFn('Params: ', ctx.request.params);
}
if (options.query) {
logFn('Query: ', ctx.request.query);
}
if (options.headers === true) {
logFn('Headers: ', ctx.request.headers);
}
else if (Array.isArray(options.headers)) {
options.headers.forEach(header => logFn(`${header}: `, ctx.request.headers[header]));
}
});
}
exports.Log = Log;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("../../core");
const get_ajv_instance_1 = require("../utils/get-ajv-instance");
const utils_1 = require("../utils");
/**

@@ -11,3 +11,3 @@ * Hook to validate the body of the request.

function ValidateBody(schema) {
const ajv = get_ajv_instance_1.getAjvInstance();
const ajv = utils_1.getAjvInstance();
const isValid = ajv.compile(schema);

@@ -14,0 +14,0 @@ return core_1.Hook(ctx => {

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("../../core");
const get_ajv_instance_1 = require("../utils/get-ajv-instance");
const utils_1 = require("../utils");
/**

@@ -11,3 +11,3 @@ * Hook to validate the headers of the request.

function ValidateHeaders(schema) {
const ajv = get_ajv_instance_1.getAjvInstance();
const ajv = utils_1.getAjvInstance();
const isValid = ajv.compile(schema);

@@ -14,0 +14,0 @@ return core_1.Hook(ctx => {

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("../../core");
const get_ajv_instance_1 = require("../utils/get-ajv-instance");
const utils_1 = require("../utils");
/**

@@ -11,3 +11,3 @@ * Hook to validate the params of the request.

function ValidateParams(schema) {
const ajv = get_ajv_instance_1.getAjvInstance();
const ajv = utils_1.getAjvInstance();
const isValid = ajv.compile(schema);

@@ -14,0 +14,0 @@ return core_1.Hook(ctx => {

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("../../core");
const get_ajv_instance_1 = require("../utils/get-ajv-instance");
const utils_1 = require("../utils");
/**

@@ -11,3 +11,3 @@ * Hook to validate the query of the request.

function ValidateQuery(schema) {
const ajv = get_ajv_instance_1.getAjvInstance();
const ajv = utils_1.getAjvInstance();
const isValid = ajv.compile(schema);

@@ -14,0 +14,0 @@ return core_1.Hook(ctx => {

export { IResourceCollection, CollectionParams } from './resource-collection.interface';
export { EntityResourceCollection, middleware, Middleware } from './entity-resource-collection.service';
export { EntityResourceCollection, middleware, Middleware, RelationLoader } from './entity-resource-collection.service';
export { controller } from './controller.util';
export { escapeProp } from './escape-prop';
export { escape } from './escape';
export { getAjvInstance } from './get-ajv-instance';
export { render } from './render.util';
export { validate } from './validate.util';

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

exports.escape = escape_1.escape;
var get_ajv_instance_1 = require("./get-ajv-instance");
exports.getAjvInstance = get_ajv_instance_1.getAjvInstance;
var render_util_1 = require("./render.util");

@@ -11,0 +13,0 @@ exports.render = render_util_1.render;

@@ -0,10 +1,34 @@

export interface CookieOptions {
domain?: string;
expires?: Date;
httpOnly?: boolean;
maxAge?: number;
path?: string;
secure?: boolean;
sameSite?: 'strict' | 'lax';
}
export declare abstract class HttpResponse {
content?: any;
body?: any;
readonly isHttpResponse: boolean;
headers: {
abstract statusCode: number;
abstract statusMessage: string;
private cookies;
private headers;
constructor(body?: any);
setHeader(name: string, value: string): void;
getHeader(name: string): string | undefined;
getHeaders(): {
[key: string]: string;
};
abstract statusCode: number;
abstract statusMessage: string;
constructor(content?: any);
setCookie(name: string, value: string, options?: CookieOptions): void;
getCookie(name: string): {
value: string | undefined;
options: CookieOptions;
};
getCookies(): {
[key: string]: {
value: string | undefined;
options: CookieOptions;
};
};
}

@@ -14,3 +38,3 @@ export declare function isHttpResponse(obj: any): obj is HttpResponse;

readonly isHttpResponseSuccess: boolean;
constructor(content?: any);
constructor(body?: any);
}

@@ -22,3 +46,3 @@ export declare function isHttpResponseSuccess(obj: any): obj is HttpResponseSuccess;

statusMessage: string;
constructor(content?: any);
constructor(body?: any);
}

@@ -30,3 +54,3 @@ export declare function isHttpResponseOK(obj: any): obj is HttpResponseOK;

statusMessage: string;
constructor(content?: any);
constructor(body?: any);
}

@@ -43,3 +67,3 @@ export declare function isHttpResponseCreated(obj: any): obj is HttpResponseCreated;

readonly isHttpResponseRedirection: boolean;
constructor(content?: any);
constructor(body?: any);
}

@@ -52,3 +76,3 @@ export declare function isHttpResponseRedirection(obj: any): obj is HttpResponseRedirection;

statusMessage: string;
constructor(path: string, content?: any);
constructor(path: string, body?: any);
}

@@ -58,3 +82,3 @@ export declare function isHttpResponseRedirect(obj: any): obj is HttpResponseRedirect;

readonly isHttpResponseClientError: boolean;
constructor(content?: any);
constructor(body?: any);
}

@@ -66,3 +90,3 @@ export declare function isHttpResponseClientError(obj: any): obj is HttpResponseClientError;

statusMessage: string;
constructor(content?: any);
constructor(body?: any);
}

@@ -74,6 +98,3 @@ export declare function isHttpResponseBadRequest(obj: any): obj is HttpResponseBadRequest;

statusMessage: string;
headers: {
'WWW-Authenticate': string;
};
constructor(content?: any);
constructor(body?: any);
}

@@ -85,3 +106,3 @@ export declare function isHttpResponseUnauthorized(obj: any): obj is HttpResponseUnauthorized;

statusMessage: string;
constructor(content?: any);
constructor(body?: any);
}

@@ -93,3 +114,3 @@ export declare function isHttpResponseForbidden(obj: any): obj is HttpResponseForbidden;

statusMessage: string;
constructor(content?: any);
constructor(body?: any);
}

@@ -101,3 +122,3 @@ export declare function isHttpResponseNotFound(obj: any): obj is HttpResponseNotFound;

statusMessage: string;
constructor(content?: any);
constructor(body?: any);
}

@@ -109,3 +130,3 @@ export declare function isHttpResponseMethodNotAllowed(obj: any): obj is HttpResponseMethodNotAllowed;

statusMessage: string;
constructor(content?: any);
constructor(body?: any);
}

@@ -115,3 +136,3 @@ export declare function isHttpResponseConflict(obj: any): obj is HttpResponseConflict;

readonly isHttpResponseServerError: boolean;
constructor(content?: any);
constructor(body?: any);
}

@@ -123,3 +144,3 @@ export declare function isHttpResponseServerError(obj: any): obj is HttpResponseServerError;

statusMessage: string;
constructor(content?: any);
constructor(body?: any);
}

@@ -131,4 +152,4 @@ export declare function isHttpResponseInternalServerError(obj: any): obj is HttpResponseInternalServerError;

statusMessage: string;
constructor(content?: any);
constructor(body?: any);
}
export declare function isHttpResponseNotImplemented(obj: any): obj is HttpResponseNotImplemented;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class HttpResponse {
constructor(content) {
this.content = content;
constructor(body) {
this.body = body;
this.isHttpResponse = true;
this.cookies = {};
this.headers = {};
}
setHeader(name, value) {
this.headers[name] = value;
}
getHeader(name) {
return this.headers[name];
}
getHeaders() {
return Object.assign({}, this.headers);
}
setCookie(name, value, options = {}) {
this.cookies[name] = { value, options };
}
getCookie(name) {
if (!this.cookies[name]) {
return { value: undefined, options: {} };
}
const { value, options } = this.cookies[name];
return { value, options: Object.assign({}, options) };
}
getCookies() {
const cookies = {};
// tslint:disable-next-line:forin
for (const cookieName in this.cookies) {
const { value, options } = this.cookies[cookieName];
cookies[cookieName] = { value, options: Object.assign({}, options) };
}
return cookies;
}
}

@@ -18,4 +47,4 @@ exports.HttpResponse = HttpResponse;

class HttpResponseSuccess extends HttpResponse {
constructor(content) {
super(content);
constructor(body) {
super(body);
this.isHttpResponseSuccess = true;

@@ -31,4 +60,4 @@ }

class HttpResponseOK extends HttpResponseSuccess {
constructor(content) {
super(content);
constructor(body) {
super(body);
this.isHttpResponseOK = true;

@@ -46,4 +75,4 @@ this.statusCode = 200;

class HttpResponseCreated extends HttpResponseSuccess {
constructor(content) {
super(content);
constructor(body) {
super(body);
this.isHttpResponseCreated = true;

@@ -76,4 +105,4 @@ this.statusCode = 201;

class HttpResponseRedirection extends HttpResponse {
constructor(content) {
super(content);
constructor(body) {
super(body);
this.isHttpResponseRedirection = true;

@@ -89,4 +118,4 @@ }

class HttpResponseRedirect extends HttpResponseRedirection {
constructor(path, content) {
super(content);
constructor(path, body) {
super(body);
this.path = path;

@@ -106,4 +135,4 @@ this.isHttpResponseRedirect = true;

class HttpResponseClientError extends HttpResponse {
constructor(content) {
super(content);
constructor(body) {
super(body);
this.isHttpResponseClientError = true;

@@ -119,4 +148,4 @@ }

class HttpResponseBadRequest extends HttpResponseClientError {
constructor(content) {
super(content);
constructor(body) {
super(body);
this.isHttpResponseBadRequest = true;

@@ -134,10 +163,8 @@ this.statusCode = 400;

class HttpResponseUnauthorized extends HttpResponseClientError {
constructor(content) {
super(content);
constructor(body) {
super(body);
this.isHttpResponseUnauthorized = true;
this.statusCode = 401;
this.statusMessage = 'UNAUTHORIZED';
this.headers = {
'WWW-Authenticate': ''
};
this.setHeader('WWW-Authenticate', '');
}

@@ -152,4 +179,4 @@ }

class HttpResponseForbidden extends HttpResponseClientError {
constructor(content) {
super(content);
constructor(body) {
super(body);
this.isHttpResponseForbidden = true;

@@ -167,4 +194,4 @@ this.statusCode = 403;

class HttpResponseNotFound extends HttpResponseClientError {
constructor(content) {
super(content);
constructor(body) {
super(body);
this.isHttpResponseNotFound = true;

@@ -182,4 +209,4 @@ this.statusCode = 404;

class HttpResponseMethodNotAllowed extends HttpResponseClientError {
constructor(content) {
super(content);
constructor(body) {
super(body);
this.isHttpResponseMethodNotAllowed = true;

@@ -197,4 +224,4 @@ this.statusCode = 405;

class HttpResponseConflict extends HttpResponseClientError {
constructor(content) {
super(content);
constructor(body) {
super(body);
this.isHttpResponseConflict = true;

@@ -213,4 +240,4 @@ this.statusCode = 409;

class HttpResponseServerError extends HttpResponse {
constructor(content) {
super(content);
constructor(body) {
super(body);
this.isHttpResponseServerError = true;

@@ -226,4 +253,4 @@ }

class HttpResponseInternalServerError extends HttpResponseServerError {
constructor(content) {
super(content);
constructor(body) {
super(body);
this.isHttpResponseInternalServerError = true;

@@ -241,4 +268,4 @@ this.statusCode = 500;

class HttpResponseNotImplemented extends HttpResponseServerError {
constructor(content) {
super(content);
constructor(body) {
super(body);
this.isHttpResponseNotImplemented = true;

@@ -245,0 +272,0 @@ this.statusCode = 501;

@@ -21,4 +21,9 @@ "use strict";

}
res.set(response.headers);
res.status(response.statusCode);
res.set(response.getHeaders());
const cookies = response.getCookies();
// tslint:disable-next-line:forin
for (const cookieName in cookies) {
res.cookie(cookieName, cookies[cookieName].value, cookies[cookieName].options);
}
if (core_1.isHttpResponseRedirect(response)) {

@@ -28,6 +33,6 @@ res.redirect(response.path);

}
if (typeof response.content === 'number') {
response.content = response.content.toString();
if (typeof response.body === 'number') {
response.body = response.body.toString();
}
res.send(response.content);
res.send(response.body);
}

@@ -34,0 +39,0 @@ catch (err) {

{
"name": "@foal/core",
"version": "0.6.0-beta.5",
"version": "0.6.0-beta.6",
"description": "High level web framework to create enterprise-grade Node.JS applications.",

@@ -5,0 +5,0 @@ "main": "./lib/index.js",

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