- Bumped
basisjs-tools-buildto^1.11.3 - Bumped
basisjs-tools-serverto^1.0.1 - Bumped
clapto^1.2.2
- Bumped
basisjs-tools-buildto^1.11.2
- Moved
basisjs-tools-serverto a separate package
Warning! For now
/basisjs-tools/devpaneldoesn't work forbasis.js(1.11.0 at the moment), since basis's devpanel should migrate to rempl.
- Bumped deps
basisjs-tools-astto^1.6.0basisjs-tools-buildto^1.11.0clapto~1.2.0
- Added command details in debug mode to investigate problems with
getBundleandgetAppProfile - Bumped
socket.ioversion to work onnode.js7+ (@smelukov)
- Fixed issues that break devtool client in
FirefoxandEdge - Devtool client doesn't use
srcdocfor sandbox anymore since buggy in various scenarios - Fixed devtool client layout for old
Webkitbrowsers - Tweaked inspect client indicator to fit for small height page
- Implemented remote devtool functionality
- New set of socket commands to communicate with inspecting application
- Special interface to manage inspecting sessions (available at
/basisjs-tools/devtool)
- Added
--no-gzipoption - Refactored
httpserver- Moved to its own module
- Implemented symlink functionality
- Implemented middleware functionality
- Converted
rewriteandvirtualPathto middlewares
- Refactored
wsserver- Moved to its own module
- Improved handshake (less notifications and file reads, better warming up and file lists synchronization)
- Renamed
getFileGraphsocket command togetAppProfileand changed to return an object (JSON) instead of string - Implemented
getBundlesocket command that return a build bundle of app
- Extended plugin API:
- Added
addSocketCommand()method - Added
addMiddleware()method - Added
addSymlink()method - Added
error()method - Renamed
logMsg()tolog()andlogWarn()towarn()
- Added
- Fixed
createcommand that installbasis.jsin wrong place
- Improved server file watch and synchronization
- On request for file that doesn't exist it adds to await queue and notify client when file creates (for requests with
x-basis-resourceheader) - Add file for await queue on file deletion when file is watching
- Reset resource content (set to
undefined) on file deletion
- On request for file that doesn't exist it adds to await queue and notify client when file creates (for requests with
- Improved open file in editor
- Use
open-in-editor - Added special url
/basisjs-tools/open-in-editor?file=filename:line:col
- Use
- server: fix start with
--verboseflag (#18) - bump dependencies
- server: basic support for rewrites depends on referer path
- bump dependencies
- fix wrong version
basisjs-tools-buildto1.1.0
- server: continue split into modules
- move
syncserver to separate module - move socket actions (
handshake,createFile,saveFileandreadFile) to separate modules
- move
- server: normalize paths in
watchermessages - update
basisjs-tools-buildto1.2.0
- fix watcher on Windows
- bump
basisjs-tools-buildversion to1.0.1
- fix: warning on handshake when client sends deleted filenames (after server restart)
- refactor
fsWatcherand related changes - avoid locations compute on
htmlparse if possible
- fix
.gitignorein app template
- update
socket.ioversion (support fornode.js4+)
- move some parts to separate packages:
basisjs-tools-config,basisjs-tools-astandbasisjs-tools-build - don't check for new version of tools for some commands
- refactoring and clean up
- update
jscsconfig and code style fixes
Commands moved to package basisjs-tools-build. See changes here.
- basic plugin support
- drop
preprocesssetting in config in favor of plugins support - don't apply preprocessors for
basisjs-toolsfiles - remove
--no-dot-filename-ignoreoption - remove
--hot-start-cache-by-extoption - remove
handleroption (config only) - new virtual file API
- split into modules
- use
npminstead ofbower - fix: npm spawn on windows
This version supports for basis.js 1.3 and greater only. For basis.js prior 1.3, please, use basisjs-tools 1.3.
Extract
-
support for basis.js 1.4
- since 1.4 use
basis-configto init core - less heuristics, use basis.js core as much as possible (a.e. use
basis.resource.resolveURIto resolve all paths instead of custom logic)
- since 1.4 use
-
improve handler skipping
-
consider file read and JSON parse errors as fatal
-
FIX:
base,fileandoutputpath resolving -
rework path resolving:
FileManageris now work with app files as server path (root isbasepath now) -
move
asset()andresource()relink tobuild -
return promise as command result (resolve async)
-
optimize css processing (performance)
-
FIX:
file-maphandler when nobasis.l10nused -
FIX: basis.js commit hash fetch
-
FIX: resolving of unknown basis namespace
-
l10n
- improve
l10nmarkup token processing (now this feature is completely supported!) - improve
l10ndictionary processing- split
l10nhandlers inv1andv2versions and related changes - new
l10nhandler that relink for all links changes - remove empty
_metaand_meta.typeinv2dictionaries - delete unused cultures (that not in culture list) for
v2dictionaries
- split
- FIX:
l10nenabled check
- improve
-
locations & warnings
- warn about file not found for files that refer for those files
- collect start positions for some tokens on javascript parse
- lint javascript: unused names (definitions) and implicit usage of global names
- add location info to inline scripts and styles
- collect location info for attributes in html
- various fixes and improvements for template warnings
- no warnings for removed template parts
- fix warnings copy on template analyse
- add location for css warnings
- correct warning locations for styles embed in other files
- reduce duplicates in style warnings
- use value parts location map if provided (from basis.js) for correct classes position in attributes
- use styles offset map if provided (from basis.js) for correct class token positions
- add originator and isolate prefix into template and style warnings
- remove class name isolate prefixes in some warnings
- improve warnings output on css info collect
- better warning for non-resolved argument in
dictionary.token() - new warning for mismatched paths in
l10ndictionary type definition
-
template
- use
-js-cut-devoption instead of-js-build-modeto optimize template size - add support for basis.template declaration
v3(new bindings format) - fatal error on missed style files in isolated templates
- fix working with template theme defines
- take in account theme fallbacks
- no redundant templates
- correct style theme distribution
- better support for template inline styles
- fix issue when one template used as several explicit defines
- fix issue when resource reused for explicit define
- move template implicit define injection to build
- use
Build
- support for basis.js 1.4
- improve handler skipping
- consider file read and json parse errors as fatal
- fix exit code on errors (important for automation)
- fix
base,fileandoutputpath resolving - initially solution to build
Web Workerscripts - pretty offset for html injections
- improve style theme choosing on app build startup
- improve logging
- log translated resources
- move summary handler aside
- log inline file in flow
- better output for
css/translate
- make throw optimisation safe and optional (apply only when
--js-optimize-throwsoption is set) - NEW: option
--same-filenames - NEW: option
--tmpl-default-theme - FIX: unknown type for
0.css - FIX: asset relink for resource files
- FIX:
--css-optimize-namesexception when basis.js is not used - FIX:
--css-optimize-namesto work correctly withanim:bindings - FIX: CSS corruption on CSS pack, when files contains shared subtrees
- FIX: bug with class name renaming (
--css-optimize-names)
Server
- move proxy and request rewriting to separate module
- fix issue with url resolving when server runs inside
basisjs-tools - make case sensitive filename check universal (os-independant)
Other
- new command
lint - fix broken
configcommand - use
exitmodule instead ofprocess.exit() - use hi-res time for timing
basis -vreturns proper dev version now- use
<b:isolate>in default templates (createcommand) - add some tests
- improve work with CSS AST
- add support for
/deep/combinator in css parser - use own translator instead of
cssotranslator (performance, less memory consumption) - new own fast walker
- add support for
- improve javascript scope processing
- move aside everything not connected with scope from
ast/scope - recognise some common global names
- correct process scope for catch clause
- move aside everything not connected with scope from
- build: hot fix for broken
htmlparser2issue
- build: fix hash-digest for style files in theme map
- build: add read files content digest to build
<meta> - build: fetch commit when
basisjs-toolsinstalled not by version tag - build: provide real config for
basis.js1.4 - build: require
basis.jsonly once (inprocessBasisFile.js) - build: support for local
assetfunction and new resolving algorithm forbasis.asset(for basis.js 1.4) - build: better error output on
jscompress - extract: fix issue with template files in the input graph
- extract: fix template comparison (
isolateissue) - extract: use basis core to resolve paths for
basis.js1.4 - extract: fix
cssinfo collection foranim:bindings - cli: resolve
basis.configrelative toprocess.env.PWDwhen possible - cli and module refactoring
- server: load injected scripts
asyncanddefer - server: don't notify client about server internal files changes
- server: don't use
basis.jsimplicit namespace extensions in client script (avoid warnings in1.4+) - build: exit with code
8when fatal error (instead of0) - build: remove
--js-resolve-pathoption as not working for now - build: fix
--target output-graph - create: fix
app.jsin app template - change global config name
basis->basisjs-toolsand migration (file path changed as well) - bump deps
- build & extract: fix
basisjsBaseURI - extract: fix l10n dictionary path resolve for
basis.jsprior1.0 - cleanup in repo root, remove GPL license
- build: output version and commit (for non-release versions) of
basisjs-toolsandbasis.jsif possible - build: fix resolving expressions with
__dirnameinbasis.jsmodules - build: robust
--js-packhandler, ifgoogle-closure-compilercommand is not enabled, useuglify-js - build: show extra info in non-TTY mode (i.e. file output)
- extract: pass correct
sourceOrigintobasis.template.makeDeclarationbut not justtrue - better cli errors output
- build: fix build regression for
basis.jsprior1.3.0(added in1.3.12) - build: fix build for
basis.js1.3.0 with modules that create a sandbox (for examplebasis.devpanel)
- build & extract: set up env for
basis.js(uses since1.3.0) - server: show error message instead of exception when
socket.iolib is not defined - server: unify client/server communication on sync init (
ready/knownFiles->handshake) - server: new option
--inspectto include inspecting script - server: fix internal redirects when no host in destination
- server: fix issue with
fileSync.json Mac OS
- server: fix
socket.ioissue when using withrequire.jsusing - server: inject
socket.ioclient infileSync.js - add support for
basis.js1.3.0 config inextractandbuild
- update dependancies versions
- implement global config storage and
configcommand - create: update templates
- create: use create.templates option in config to specify optional paths for templates
- server: tweak init output
- server: don't load socket.io through XHR, but using
<script>(faster load, less noise in console)
- extractor: fix nested templates issue
- extractor: temporary solution for preprocessors to process file content on extract
- fix preprocessor relative paths resolving to config location
- server: add support for preprocessors
- extractor: add support for virtual resources
- server: fix crash on proxy error handling
- build: make
--css-inline-imageworks for style attributes - server: fix
createFilecommand - server: show proxy errors in log and correct error message in response
- server: fix
UNABLE_TO_VERIFY_LEAF_SIGNATUREissue on proxy requests
- fix path resolving by
serverwhenbasisjs-toolsand app located on different drives (issue #12)
- server shows 'port already in use' warning and other errors now, but not silently exit
- fix
module.exportsvalues resolving on extract
Extractor
- FIX: when
basis.requireinvoke for namespace it didn't reference tomodule.exports - FIX: scope reference resolving
- FIX: crash on warning when template source is not a
basis.jsresource
Server
- NEW: support for
http->httpsproxy - disable
x-forwardedheaders for proxy by default (some servers worry about it and some redirect requests)
- fix relative path resolving in
extractorforbasis.require - fix
basis.jsinstalling bycreate appwhen app name specified
- fix absolute path resolving in
extractorforbasis.resourceandbasis.require - some fixes in
servermessage output
Common
- update dependancy lib versions
- small
servermessage output improvements - fix command argument processing for
build,createandextract
Build & extract
styleattributes in templates are now processing- output fatal error for more than one
<link>with same filename - name main
basis.jsfile asscript.jsif present - add
requireandresourcearguments to module wrapper as 3rd party libraries could test forrequireis present - FIX: don't warn on
<script>with external url - FIX:
styleattributes processing (fetch resources, pack and so on) - FIX: don't merge
<style>/<link>withidattribute - FIX: don't lose id attribute on replaced
<link> - FIX: avoid warning in build app for
_theme_css_include
Common
- brand new module
clapas command line argument parser (refactoring of commands, removecommandermodule as dependency) - add
jscsconfig, base code style cleanup - rename
bin/basis.jstobin/basis
Server
- rework server file changes watcher (more stable and robust now)
- reduce output messages (use
--verboseflag for more messages) - colorize output messages (suppress by
--no-coloroption) - use cache for
__basis_resources__gzip - rename
__basis_resources__.jsto/basisjs-tools/resourceCache.js - rename
__devsync__.jsto/basisjs-tools/syncFiles.js - client/server handshake doesn't depend on
basis.jsanymore - new socket command
openFileto open file in external editor - remove deprecated things, remove appcp client and server, clean requires
- various improvements
Build
- reduce output messages (use
--verboseflag for more messages) - colorize output messages in non-verbose mode (suppress by
--no-coloroption) - new
--css-inline-imageoption to inline css images - new
--warningsoption to show warning list in summary - show matched
jsexpression on extract in verbose mode - add build label
<meta>to index file - copy unknown options in
basis-configto build as is - add
./prefix to relinked filenames forbasis.resource,basis.requireandbasis.l10n.dictionary - remove
js/mergehandler as not working for now - FIX: relative
requirefilename resolving - FIX: js file translate in some cases
- FIX: left part resolving in assign expressions
- FIX: asset
htmlfiles output path - FIX: template extractor on
MacOS - FIX:
l10npack forbasis.l10nversion 2 - FIX:
l10ndictionary filename resolving - FIX: various path related bugs
- FIX: fix regression that options in config can't be overwritten by command line
Create
- NEW: init
gitrepo in app folder on app create by default - NEW: use
bowerto installbasis.js - NEW:
appcould be created in current and existence directories now - FIX: path resolving issues
- update templates for new
basis.jsversion
Server
- FIX:
getFileGraphfilename resolving doesn't ignore search part in url - FIX: make server more stable for non-function callbacks in socket commands
- prevent browsers to cache any files by default
- rework files sync
client.js(__dev_sync__.js) to not depend on basis.js
Extract/build
- FIX: image resources in
<link>tag is not resolving - FIX: inline
javascripttranslation when no pack mode - FIX:
injectToHead triesinject node before<body>if possible when no<head>tag - FIX: internal
htmlresources didn't parse to ast
Project
- NEW: use
update-notifierpackage to notify about new version ofbasisjs-toolsis out - FIX: some fixes for
commander, output available command list and description in help - remove
herecommand
- add support for local version of basis.require in javascript resources
- fix stat handler in extractor
- fix basis.resource resolving
- fix basis.require relink
- fix basis.l10n.dictionary filename resolving
- hot fix for basis.js 0.9 apps
- rework processing of autoload
- replace config function in basis.js for config object
- add support for noConflict in basis-config
- add support for extProto in basis-config
- new basis resource layout
- support for new
basis.require(basis.js1.0.0) - support for new
basis.l10n(basis.js1.0.0)