- Bumped
basisjs-tools-build
to^1.11.3
- Bumped
basisjs-tools-server
to^1.0.1
- Bumped
clap
to^1.2.2
- Bumped
basisjs-tools-build
to^1.11.2
- Moved
basisjs-tools-server
to a separate package
Warning! For now
/basisjs-tools/devpanel
doesn't work forbasis.js
(1.11.0 at the moment), since basis's devpanel should migrate to rempl.
- Bumped deps
basisjs-tools-ast
to^1.6.0
basisjs-tools-build
to^1.11.0
clap
to~1.2.0
- Added command details in debug mode to investigate problems with
getBundle
andgetAppProfile
- Bumped
socket.io
version to work onnode.js
7+ (@smelukov)
- Fixed issues that break devtool client in
Firefox
andEdge
- Devtool client doesn't use
srcdoc
for sandbox anymore since buggy in various scenarios - Fixed devtool client layout for old
Webkit
browsers - 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-gzip
option - Refactored
http
server- Moved to its own module
- Implemented symlink functionality
- Implemented middleware functionality
- Converted
rewrite
andvirtualPath
to middlewares
- Refactored
ws
server- Moved to its own module
- Improved handshake (less notifications and file reads, better warming up and file lists synchronization)
- Renamed
getFileGraph
socket command togetAppProfile
and changed to return an object (JSON) instead of string - Implemented
getBundle
socket 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
create
command that installbasis.js
in 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-resource
header) - 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
--verbose
flag (#18) - bump dependencies
- server: basic support for rewrites depends on referer path
- bump dependencies
- fix wrong version
basisjs-tools-build
to1.1.0
- server: continue split into modules
- move
sync
server to separate module - move socket actions (
handshake
,createFile
,saveFile
andreadFile
) to separate modules
- move
- server: normalize paths in
watcher
messages - update
basisjs-tools-build
to1.2.0
- fix watcher on Windows
- bump
basisjs-tools-build
version to1.0.1
- fix: warning on handshake when client sends deleted filenames (after server restart)
- refactor
fsWatcher
and related changes - avoid locations compute on
html
parse if possible
- fix
.gitignore
in app template
- update
socket.io
version (support fornode.js
4+)
- move some parts to separate packages:
basisjs-tools-config
,basisjs-tools-ast
andbasisjs-tools-build
- don't check for new version of tools for some commands
- refactoring and clean up
- update
jscs
config and code style fixes
Commands moved to package basisjs-tools-build
. See changes here.
- basic plugin support
- drop
preprocess
setting in config in favor of plugins support - don't apply preprocessors for
basisjs-tools
files - remove
--no-dot-filename-ignore
option - remove
--hot-start-cache-by-ext
option - remove
handler
option (config only) - new virtual file API
- split into modules
- use
npm
instead 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-config
to init core - less heuristics, use basis.js core as much as possible (a.e. use
basis.resource.resolveURI
to 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
,file
andoutput
path resolving -
rework path resolving:
FileManager
is now work with app files as server path (root isbase
path now) -
move
asset()
andresource()
relink tobuild
-
return promise as command result (resolve async)
-
optimize css processing (performance)
-
FIX:
file-map
handler when nobasis.l10n
used -
FIX: basis.js commit hash fetch
-
FIX: resolving of unknown basis namespace
-
l10n
- improve
l10n
markup token processing (now this feature is completely supported!) - improve
l10n
dictionary processing- split
l10n
handlers inv1
andv2
versions and related changes - new
l10n
handler that relink for all links changes - remove empty
_meta
and_meta.type
inv2
dictionaries - delete unused cultures (that not in culture list) for
v2
dictionaries
- split
- FIX:
l10n
enabled 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
l10n
dictionary type definition
-
template
- use
-js-cut-dev
option instead of-js-build-mode
to 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
,file
andoutput
path resolving - initially solution to build
Web Worker
scripts - 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-throws
option 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-names
exception when basis.js is not used - FIX:
--css-optimize-names
to 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
config
command - use
exit
module instead ofprocess.exit()
- use hi-res time for timing
basis -v
returns proper dev version now- use
<b:isolate>
in default templates (create
command) - add some tests
- improve work with CSS AST
- add support for
/deep/
combinator in css parser - use own translator instead of
csso
translator (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
htmlparser2
issue
- build: fix hash-digest for style files in theme map
- build: add read files content digest to build
<meta>
- build: fetch commit when
basisjs-tools
installed not by version tag - build: provide real config for
basis.js
1.4 - build: require
basis.js
only once (inprocessBasisFile.js
) - build: support for local
asset
function and new resolving algorithm forbasis.asset
(for basis.js 1.4) - build: better error output on
js
compress - extract: fix issue with template files in the input graph
- extract: fix template comparison (
isolate
issue) - extract: use basis core to resolve paths for
basis.js
1.4 - extract: fix
css
info collection foranim:
bindings - cli: resolve
basis.config
relative toprocess.env.PWD
when possible - cli and module refactoring
- server: load injected scripts
async
anddefer
- server: don't notify client about server internal files changes
- server: don't use
basis.js
implicit namespace extensions in client script (avoid warnings in1.4+
) - build: exit with code
8
when fatal error (instead of0
) - build: remove
--js-resolve-path
option as not working for now - build: fix
--target output-graph
- create: fix
app.js
in app template - change global config name
basis
->basisjs-tools
and migration (file path changed as well) - bump deps
- build & extract: fix
basisjsBaseURI
- extract: fix l10n dictionary path resolve for
basis.js
prior1.0
- cleanup in repo root, remove GPL license
- build: output version and commit (for non-release versions) of
basisjs-tools
andbasis.js
if possible - build: fix resolving expressions with
__dirname
inbasis.js
modules - build: robust
--js-pack
handler, ifgoogle-closure-compiler
command is not enabled, useuglify-js
- build: show extra info in non-TTY mode (i.e. file output)
- extract: pass correct
sourceOrigin
tobasis.template.makeDeclaration
but not justtrue
- better cli errors output
- build: fix build regression for
basis.js
prior1.3.0
(added in1.3.12
) - build: fix build for
basis.js
1.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.io
lib is not defined - server: unify client/server communication on sync init (
ready
/knownFiles
->handshake
) - server: new option
--inspect
to include inspecting script - server: fix internal redirects when no host in destination
- server: fix issue with
fileSync.js
on Mac OS
- server: fix
socket.io
issue when using withrequire.js
using - server: inject
socket.io
client infileSync.js
- add support for
basis.js
1.3.0 config inextract
andbuild
- update dependancies versions
- implement global config storage and
config
command - 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-image
works for style attributes - server: fix
createFile
command - server: show proxy errors in log and correct error message in response
- server: fix
UNABLE_TO_VERIFY_LEAF_SIGNATURE
issue on proxy requests
- fix path resolving by
server
whenbasisjs-tools
and app located on different drives (issue #12)
- server shows 'port already in use' warning and other errors now, but not silently exit
- fix
module.exports
values resolving on extract
Extractor
- FIX: when
basis.require
invoke for namespace it didn't reference tomodule.exports
- FIX: scope reference resolving
- FIX: crash on warning when template source is not a
basis.js
resource
Server
- NEW: support for
http
->https
proxy - disable
x-forwarded
headers for proxy by default (some servers worry about it and some redirect requests)
- fix relative path resolving in
extractor
forbasis.require
- fix
basis.js
installing bycreate app
when app name specified
- fix absolute path resolving in
extractor
forbasis.resource
andbasis.require
- some fixes in
server
message output
Common
- update dependancy lib versions
- small
server
message output improvements - fix command argument processing for
build
,create
andextract
Build & extract
style
attributes in templates are now processing- output fatal error for more than one
<link>
with same filename - name main
basis.js
file asscript.js
if present - add
require
andresource
arguments to module wrapper as 3rd party libraries could test forrequire
is present - FIX: don't warn on
<script>
with external url - FIX:
style
attributes processing (fetch resources, pack and so on) - FIX: don't merge
<style>
/<link>
withid
attribute - FIX: don't lose id attribute on replaced
<link>
- FIX: avoid warning in build app for
_theme_css_
include
Common
- brand new module
clap
as command line argument parser (refactoring of commands, removecommander
module as dependency) - add
jscs
config, base code style cleanup - rename
bin/basis.js
tobin/basis
Server
- rework server file changes watcher (more stable and robust now)
- reduce output messages (use
--verbose
flag for more messages) - colorize output messages (suppress by
--no-color
option) - use cache for
__basis_resources__
gzip - rename
__basis_resources__.js
to/basisjs-tools/resourceCache.js
- rename
__devsync__.js
to/basisjs-tools/syncFiles.js
- client/server handshake doesn't depend on
basis.js
anymore - new socket command
openFile
to open file in external editor - remove deprecated things, remove appcp client and server, clean requires
- various improvements
Build
- reduce output messages (use
--verbose
flag for more messages) - colorize output messages in non-verbose mode (suppress by
--no-color
option) - new
--css-inline-image
option to inline css images - new
--warnings
option to show warning list in summary - show matched
js
expression on extract in verbose mode - add build label
<meta>
to index file - copy unknown options in
basis-config
to build as is - add
./
prefix to relinked filenames forbasis.resource
,basis.require
andbasis.l10n.dictionary
- remove
js/merge
handler as not working for now - FIX: relative
require
filename resolving - FIX: js file translate in some cases
- FIX: left part resolving in assign expressions
- FIX: asset
html
files output path - FIX: template extractor on
MacOS
- FIX:
l10n
pack forbasis.l10n
version 2 - FIX:
l10n
dictionary filename resolving - FIX: various path related bugs
- FIX: fix regression that options in config can't be overwritten by command line
Create
- NEW: init
git
repo in app folder on app create by default - NEW: use
bower
to installbasis.js
- NEW:
app
could be created in current and existence directories now - FIX: path resolving issues
- update templates for new
basis.js
version
Server
- FIX:
getFileGraph
filename 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
javascript
translation when no pack mode - FIX:
injectToHead tries
inject node before<body>
if possible when no<head>
tag - FIX: internal
html
resources didn't parse to ast
Project
- NEW: use
update-notifier
package to notify about new version ofbasisjs-tools
is out - FIX: some fixes for
commander
, output available command list and description in help - remove
here
command
- 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.js
1.0.0) - support for new
basis.l10n
(basis.js
1.0.0)