Skip to content

v2.8.0

Compare
Choose a tag to compare
@petersirka petersirka released this 06 Sep 06:42
· 2058 commits to master since this release

News:

  • added: NOSQL().restore() restores a database (its package)
  • added: Mail options support a new property xoauth2 (it needs to contain a BASE64 value) for sending emails via OAuth 2.0 tokens (more in docs)
  • added: F.path.mkdir(path) creates all directories according to the path
  • added: MailMessage.send2([callback]) sends a message according to the framework configuration
  • added: a new filter for NoSQL embedded DatabaseBuilder.contains(name)
  • added: a new filter for NoSQL embedded DatabaseBuilder.empty(name)
  • added: (IMPORTANT) NoSQL counter supports daily stats (NoSQL counter files will be upgraded automatically and backwards incompatible)
  • added: (IMPORTANT) NoSQL database and counter can read data from URL
  • added: NoSQL counter db.counter.daily_sum([id], callback) for reading stats
  • added: NoSQL counter db.counter.daily_max([id], callback) for reading stats
  • added: NoSQL counter db.counter.daily_min([id], callback) for reading stats
  • added: NoSQL counter db.counter.monthly_sum([id], callback) for reading stats
  • added: NoSQL counter db.counter.monthly_max([id], callback) for reading stats
  • added: NoSQL counter db.counter.monthly_min([id], callback) for reading stats
  • added: NoSQL counter db.counter.yearly_sum([id], callback) for reading stats
  • added: NoSQL counter db.counter.yearly_max([id], callback) for reading stats
  • added: NoSQL counter db.counter.yearly_min([id], callback) for reading stats
  • added: NoSQL counter db.counter.stats_sum(top, [year], [month], [day], callback) for reading stats
  • added: NoSQL counter db.counter.stats_max(top, [year], [month], [day], callback) for reading stats
  • added: NoSQL counter db.counter.stats_min(top, [year], [month], [day], callback) for reading stats
  • added: NoSQL counter db.counter.minimum([id], callback) for reading stats
  • added: NoSQL counter db.counter.maximum([id], callback) for reading stats
  • added: NoSQL counter db.counter.min(id, value) for writing stats
  • added: NoSQL counter db.counter.max(id, value) for writing stats
  • added: NoSQL counter db.counter.sum(id, value) for writing stats (alias for db.counter.hit())
  • added: NoSQL counter: a new event stats when the stats are changed
  • added: NoSQL logging in DatabaseBuilder.log(msg, [user])
  • added: NoSQL backuping documents while they are updating/removing in DatabaseBuilder.backup([user])
  • added: CLONE(obj) alias for U.clone()
  • added: GROUP(flags, fn) alias for F.group()
  • added: F.cache.set2() it creates a persistent cache (persistent items are stored in a file)
  • added: new View Engine command @{'%config'} which reads a value from config directly
  • added: F.config['allow-filter-errors'] for filtering network unhandled errors
  • added: REDIRECT() alias for F.redirect()

Updates:

  • updated: (IMPORTANT) packages compress/decompress function supports streaming data
  • updated: (IMPORTANT) NOSQL().backup() !!! was changed !!!!
  • updated: controller.view(name/url, [model], [headers], [partial]) can render a view from URL address
  • updated: F.backup() argument path can contain String Array file list
  • updated: controller.viewCompile(body, model, [headers], [partial], [cacheKey]) add a cache key
  • updated: image.command(arg, value, [priority], [escape]) a priority argument can be escape when it contains boolean value
  • updated: U.getExtension() returns lower-case extensions
  • updated: total.js/debug watchs /workflows file
  • updated: file /workflows supports custom options, more in docs
  • updated: Array.random() algorithm (+70% faster than older)
  • updated: RESTBuilder.file(name, filetarget, [filename]) can contain filename instead of buffer
  • updated: U.streamer(beg, [end], onItem(item, index), [skip], [stream]) added a new argument stream for flushing buffer
  • updated: ErrorBuilder.addTransform(name, callback(isResponse)) by adding new argument isresponse
  • updated: sorting (framework + NoSQL embedded), now supports internationalization
  • updated: total.js/debugger by adding a new option options.watch = ['directory']
  • updated: U.streamer() supports "cancelation", just return false
  • updated: CSS auto-prefixer, added: repeating-linear-gradient, radial-gradient, repeating-radial-gradient and removed -o prefix

Fixes:

  • fixed: (IMPORTANT) long messages in WebSocket
  • fixed: (IMPORTANT) controller param in schemas
  • fixed: moved executing of MailMessage.callback() to better place
  • fixed: mail auth when options.user and options.password are blank
  • fixed: JS/CSS/HTML blocks
  • fixed: F.prototypes()
  • fixed: F.decrypt() a problem with parsing JSON and date formats
  • fided: debug.js sometimes was created a problem with output informations

Improvements:

  • improved: Date formatting (+50%)
  • improved: NoSQL performance (around 60% in some cases)