
Big day is here! I'm very happy to announce a new version of Total.js framework. This version brings really great new features, bug fixes and core elements for Total.js v4. Total.js is very complex Node.js framework, maybe without any direct competition (due to features). So enjoy this version with more than a hundred changes!
$ npm install total.jsThis version of Total.js framework is sponsored by LabLynx, Inc.
Finally, this version of Total.js framework supports session module. The module is very sophisticated and designed for the best performance and usage. In dozens of applications, we needed the users to have full control of managing their open sessions. So, with the session module, the users are able to cancel their existing sessions for a specific device or browser.
ClusterRedisThe module is a bit specific because it works only with two identifiers id (e.g. userid) and sessionid. Session data is loaded when needed, so the module stores only the identifiers, with some additional data, to HDD. Read the documentation for more information or learn from examples.
Example of real usage:

We have improved routing with few details.
Simplified Authorize/Unauhorize flags:
Improved dynamic schemas:
Better handling (404) not existing static files:
Schemas have been improved a lot. We have added new methods, properties and functionality, which make coding more convenient, than ever before.
Number2 with default value null, not 0schema.define('parentid', UID)(null)Patch method
v3.3.0 finally brings PATCH HTTP method support in Total.js schemas. If the request contains PATCH method, the framework enables a special validation for received data only (not for the entire schema).
Schemas support middleware:
This was a missing feature for most of Total.js products. Preferences are a simple object for storing persistent data. Preferences are persistent and they work in Cluster.
Usage:
PartsThis was great idea. Primary we use Total.js components for extending of existing apps. Now a developer can specify parts in the views, where the parts from components will be rendered.
A component declaration:
Usage in views:
Very helpful method for logging operations. More information in documentation. The method stores the data below:
.html static filesVery important change, you don't need to use LOCALIZE() method. This version performs localization and minification for all .html static files automatically. You can disable this behavior in config file:
Finally, we have extended Total.js framework by adding PROXY() method, which can register proxy routing to external source. Example:
ACTION() simulates a request to a route, read documentationMAIN for storing of some main data of the applicationREPO for storing of some repository data of the applicationFUNC for storing of global functionsSESSION() for obtaining of session instanceMODIFY() as alias for F.modify()VIEWCOMPILE() as alias for F.view_compile()$ACTION() executes a schema operation directly, read documentationString.parseCSV([delimiter]) for parsing CSV filesString.parseUA([structured]) for parsing user-agentUID()This version brings a new generator for unique identificators with 100% backward compatibilty. Example:
keep-aliveWorks only with http protocol, but can increase performance for repeated requests.
We have added a support for ImageMagick v7, but you need to enable it:
We have fixed small bugs (not critical). All fixes are mentioned in changelog.
We will prepare Total.js v4. Currently, we are working on new open-source products. Stay tuned and Follow us on Twitter.
We are looking for sponsors who can help us improve Total.js platform. We have created a lot of great open-source products which you can use without any fees. Are you interested? Contact us.