Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

impress

Package Overview
Dependencies
Maintainers
4
Versions
719
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

impress - npm Package Compare versions

Comparing version 2.0.1 to 2.0.2

lib/schema.js

6

CHANGELOG.md

@@ -5,2 +5,8 @@ # Changelog

## [2.0.2][] - 2021-01-26
- Move utils to metautil
- Implement schemas for structures and scalars
- Fixed path separators to support windows
## [2.0.1][] - 2021-01-09

@@ -7,0 +13,0 @@

14

lib/application.js

@@ -8,6 +8,6 @@ 'use strict';

const security = require('./security.js');
const { makePrivate } = require('./utils.js');
const EMPTY_CONTEXT = Object.freeze({});
const MODULE = 2;
const win = process.platform === 'win32';

@@ -125,4 +125,4 @@ class Error extends global.Error {

const rel = fileName.substring(this.apiPath.length + 1);
if (!rel.includes('/')) return;
const [interfaceName, methodFile] = rel.split('/');
if (!rel.includes(path.sep)) return;
const [interfaceName, methodFile] = rel.split(path.sep);
if (!methodFile.endsWith('.js')) return;

@@ -206,3 +206,3 @@ const name = path.basename(methodFile, '.js');

if (typeof exports === 'function') exports = { method: exports };
iface = makePrivate(exports);
iface = metautil.makePrivate(exports);
} finally {

@@ -222,3 +222,4 @@ this.addModule(namespaces, exports, iface);

async loadFile(filePath) {
const key = filePath.substring(this.staticPath.length);
let key = filePath.substring(this.staticPath.length);
if (win) key = metautil.replace(key, path.sep, '/');
try {

@@ -235,3 +236,4 @@ const data = await fsp.readFile(filePath);

async loadResource(filePath) {
const key = filePath.substring(this.resourcesPath.length);
let key = filePath.substring(this.resourcesPath.length);
if (win) key = metautil.replace(key, path.sep, '/');
try {

@@ -238,0 +240,0 @@ const data = await fsp.readFile(filePath);

{
"name": "impress",
"version": "2.0.1",
"version": "2.0.2",
"author": "Timur Shemsedinov <timur.shemsedinov@gmail.com>",

@@ -61,3 +61,3 @@ "description": "Impress application server for Node.js and Metarhia private cloud",

"dependencies": {
"metautil": "^3.0.0",
"metautil": "^3.1.0",
"@metarhia/config": "^2.0.0",

@@ -69,5 +69,5 @@ "metacom": "1.1.0",

"devDependencies": {
"eslint": "^7.17.0",
"eslint": "^7.18.0",
"eslint-config-metarhia": "^7.0.1",
"eslint-config-prettier": "^7.1.0",
"eslint-config-prettier": "^7.2.0",
"eslint-plugin-import": "^2.22.1",

@@ -74,0 +74,0 @@ "eslint-plugin-impress": "^2.3.1",

@@ -27,9 +27,9 @@ [![impress logo](http://habrastorage.org/files/d67/1b3/be5/d671b3be591d47a9bd10fe857e9d5319.png)](https://github.com/metarhia/impress)

- Applied code need to be simple and secure, so we use code sandboxing with v8
- Applied code needs to be simple and secure, so we use code sandboxing with v8
isolated contexts, worker threads and minimal trusted npm dependencies;
- Domain code need to be separated from system code; so we use DDE, layered
- Domain code needs to be separated from system code; so we use DDE, layered
(onion) architecture, DI, SOLID:DIP principle and contract-based approach;
- Impress supports both stateful applications with RPC and client-session
sticky to servers; microservices, centralized and distributed architectire;
- No I/O is faster even then async I/O, so we hold state in memory and use
sticky to servers; microservices, centralized and distributed architecture;
- No I/O is faster even than async I/O, so we hold state in memory and use
lazy I/O for persistent storage;

@@ -40,7 +40,7 @@

- Auto API routing, just create endpoint files as an async js lambda function;
- API code live reload with file system watch (when files changes on disk);
- API code live reload with file system watch (when files change on disk);
- Graceful shutdown and application state recovery after reload;
- Minimum code size and dependencies;
- Can scale on multiple threads and servers;
- Code sandboxing for security, dependency injection and context isolation;
- Code sandboxing for security, dependency injection, and context isolation;
- Utilize multiple CPU cores and serve multiple ports with worker threads;

@@ -54,3 +54,3 @@ - Inter-process communication and shared memory used for state management;

- Database access layer for PostgreSQL and Relational db schemas;
- Persistent sessions support with authentication, groups and anonymous;
- Persistent sessions support with authentication, groups, and anonymous;
- Multiple protocols: HTTP, HTTPS, WS, WSS;

@@ -57,0 +57,0 @@ - Logging with buffering (lazy write) and rotation (keep logs N days);

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