Changelog
@aduh95/Viz.js v3.4.0 (2021-03-16)
- Bump Graphviz version to
2.47.0.
@aduh95/Viz.js v3.3.4 (2021-03-10)
- Bump Graphviz version to
2.46.1.
- Bump Emscripten version to
2.0.15.
@aduh95/Viz.js v3.3.3 (2021-02-22)
- Improve interoperability with web bundlers
(#19).
@aduh95/Viz.js v3.3.2 (2021-02-17)
- Fix
TextDecoder is not defined
in @aduh95/viz.js/sync
on older version of
Node.js.
@aduh95/Viz.js v3.3.1 (2021-02-17)
- Fix image support in
@aduh95/viz.js/sync
(#16).
- Bump Emscripten version to
2.0.14.
@aduh95/Viz.js v3.3.0 (2021-01-19)
- Bump Emscripten version to
2.0.12.
- Bump Expat version to
2.2.10.
- Bump Graphviz version to
2.46.0.
@aduh95/Viz.js v3.2.1 (2020-11-05)
- Bump Emscripten version to
2.0.8.
- Closure compiler is now disabled when building
render_sync.js
(#14).
@aduh95/Viz.js v3.2.0 (2020-10-17)
- Bump Emscripten version to
2.0.7.
- Remove engine restriction to allow use of the library on Node.js v10.x
#11.
- Split link step to better optimize output files.
- Enable Closure compiler to produce smaller dist files.
@aduh95/Viz.js v3.1.0 (2020-07-31)
- Auto-init WASM in
render.browser.js
(#9)
- Bump Emscripten version to
1.40.0.
@aduh95/Viz.js v3.0.2 (2020-07-09)
- Update Graphviz to
1.44.1.
- Bump Emscripten version to
1.39.19.
- Upgrade test tools (Deno, Mocha, Puppeteer).
@aduh95/Viz.js v3.0.1 (2020-06-09)
Fix issue with Webpack v4.
@aduh95/Viz.js v3.0.0 (2020-05-27)
Notable changes
- The library is now compiled to WASM, which shrinks the file size (Viz.js
(2.1.2 full version) brotlified: 409K; @aduh95/viz.js (3.0.0-beta.7 browser
version) brotlified: 337K; 18% decrease), should improve performances and
allows dynamic memory growth.
- The JS code is now transpiled from TypeScript, and typings are packed within
the npm package. You can find the API documentation there!
- The library is able to reset its internal error state, which makes the
v2 wiki caveat
unnecessary.
- Rendering from main thread is no longer supported on the default async API,
you must use a worker (webworker or worker_thread).
- There is a synchronous version available for legacy Node.js support.
Breaking changes and deprecations
- BREAKING: Bump required version of Node.js to v12.17.0+. Older Node.js
version may support the synchronous API.
- BREAKING: Remove
Viz.prototype.renderSVGElement
. You can use
renderString
and DOMParser
to achieve the same result.
- BREAKING: Remove
Viz.prototype.renderImageElement
. You can use
renderString
and Canvas
to achieve the same result.
- BREAKING: Remove
Module
and render
from Viz
constructor's options
(you must now specify either worker
or workerURL
).
- BREAKING: Remove lite version, Viz.js now comes in only one variant.
- BREAKING: The
full.render.js
script is replaced by the render.node.mjs
and render.browser.js
modules.
- BREAKING: The
render.node.js
module (that replaces full.render.js
)
exports a worker_thread factory when imported from the main thread. It's
available through @aduh95/viz.js/worker
specifier on Node.js and bundle
tools that support package.json
#exports
.
- BREAKING: The
render.browser.js
module (that replaces full.render.js
)
exports a function which takes a Module object as parameter. You should use it
to give the path to render.wasm
the Emscripten script. You should not import
this module from the main thread. On bundle tools that support
package.json
#exports
, you can use the specifier @aduh95/viz.js/worker
.
- BREAKING: Compiles to WebAssembly, which cannot be bundled in the
render.js
file like asm.js used to. Depending on your bundling tool, you may
need some extra config to make everything work. You might also use the
synchronous API, which bundles the asm.js code, although its usage should be
strictly limited to Node.js or webworker use.
- BREAKING: Remove ES5 dist files, all modern browsers now support ES2015
modules. If you want to support an older browser, you would need to transpile
it yourself or use an older version.
- BREAKING: On Node.js,
require('@aduh95/viz.js')
returns now a
Promise<Viz>
.
- DEPRECATED:
require('@aduh95/viz.js')
is deprecated, use
import('@aduh95/viz.js')
instead.
Added features
- Add support for Node.js
worker_threads
.
- Refactor JS files to TypeScript.
- Refactor
viz.c
to C++ to use
Emscripten's Embind.
- Use
ALLOW_MEMORY_GROW
compiler option to avoid failing on large graphs.
- Improve error handling:
- Rejects with the full error string from Graphviz.
- Remove the need of creating new instances when render fails by resetting
internal error state.
- Switch to Mocha and Puppeteer for browser testing.
- Add synchronous API using asm.js (
@aduh95/viz.js/sync
).
- Add a helper module for asynchronous API (
@aduh95/viz.js/async
).
- Upgrade deps:
- Upgrade Emscripten to 1.39.16
- Upgrade Graphviz to 2.44.0
- Upgrade Expat to 2.2.9
- Upgrade Rollup to 2.x
- Change test chain:
- Upgrade Mocha to 7.x
- Use Puppeteer instead of Selenium
Viz.js v2.1.2 (2018-12-08)
- Fix redeclared variable (#160)
Viz.js v2.1.2-pre.1 (2018-12-05)
- Fix redeclared variable (#160)
Viz.js v2.1.1 (2018-11-16)
- Add support for -n (Nop) option
(#151)
- Specify --libdir option (#153)
- Correctly forward errors not derived from Error
(#145)
Viz.js v2.0.0 (2018-05-14)
- Viz.js now has first-class support for Web Workers, and returns Promises for
all rendering functions, rather than accepting callbacks for some of its
utility functions. However, you don't have to use Web Workers: Viz.js still
works with just script tags.
- API and rendering code have been split into separate files to make it easier
to work with Viz.js in bundlers.
- New output types: JSON objects and SVG elements. For example, the
renderSVGElement function returns the promise of an SVGSVGElement object,
ready to insert into the document.
- The single Viz() function is now a class and reuses its Emscripten module
instance, improving performance across multiple calls.
- The API code is now built with Rollup, and the release includes an ES6 module.
- Added yInvert option. (Equivalent to the -y command-line option.)
- TypeScript declarations have been removed in this release.
Viz.js v2.0.0-pre.8 (2018-05-07)
- Use ".render.js" suffix instead of ".js.opaque".
- Accept a Worker instance for the worker option instead of a string. Add
workerURL option for passing the URL of a worker as a string. Less specific
detection of worker scope.
Viz.js v1.8.2 (2018-05-04)
- Make sure the Emscripten module isn't exported when Viz.js is loaded in an AMD
environment. (#130)
Viz.js v2.0.0-pre.7 (2018-05-03)
- Remove TypeScript declarations.
- Build with Rollup.
- Include ES6 module in npm release.
Viz.js v2.0.0-pre.6 (2018-05-02)
- Fix TypeScript declarations.
Viz.js v2.0.0-pre.5 (2018-04-24)
- Free layout and graph when we're done with them. Reuse the Emscripten module
instance.
- Export the Module and render functions from rendering script files.
- Use ".js.opaque" rendering script files instead of ".module".
Viz.js v2.0.0-pre.4 (2018-04-13)
- Don't wait for onload to resolve image elements.
Viz.js v2.0.0-pre.1 (2018-04-12)
- New 2.0 API. Viz is now a class, and has separate render functions that return
promises. The code generated by Emscripten is now distributed as separate
files, which can be loaded as web workers.
- Add yInvert option. (#118)
- Fix lite in IE.
- Update Emscripten version.
Viz.js v1.8.1 (2018-03-07)
- Add Travis CI configuration for testing and release
- Reorganize browser tests
- Move API docs to wiki
- Update Expat to 2.2.5
- Build with Emscripten 1.37.33
- Add TypeScript declaration file and tests
Viz.js v1.8.1-pre.5 (2018-03-07)
- Add tests for TypeScript declaration file.
- Update TypeScript declaration file.
Viz.js v1.8.1-pre.4 (2018-02-26)
- Add Travis CI configuration for testing and release
- Reorganize browser tests
- Move API docs to wiki
- Update Expat to 2.2.5
- Add Typescript support
Viz.js v1.8.0 (2017-05-20)
- Include viz-lite.js in NPM release.
(998039a,
#88)
- Use the -Oz optimization option.
(0a7096f)
- Set NO_DYNAMIC_EXECUTION, which removes uses of eval.
(e2d9ac6,
#75)
- Add version numbers for Graphviz, Expat, and Emscripten to the top of builds.
(83740b6,
1d87fe4)
- Add "browser" property to package.json.
(1f12dfe,
#83)
- Add "files" and "images" options.
(4437a03,
5e0a451)
Viz.js v1.7.1 (2017-03-03)
- Ensure that non-ASCII characters are handled correctly when using the
png-image-element format or the svgXmlToPng functions.
- Improve error reporting in svgXmlToPngImageElement.
Viz.js v1.7.0 (2017-01-31)
- Don't allow memory growth. See
#74.
- Accept the
totalMemory
option, which sets TOTAL_MEMORY when initializing the
Module. See #74.
Viz.js v1.6.0 (2017-01-26)
- Update to Graphviz 2.40.1
Viz.js v1.5.1 (2017-01-17)
- Make sure UTF8ToString is included in EXPORTED_RUNTIME_METHODS and include a
test for characters outside of basic ASCII. This addresses
#71.
- Ensure that we return after invoking the callback with an error in
svgXmlToPngImageElement.
Viz.js v1.5.0 (2017-01-16)
- Introduced viz-lite.js, a smaller build that omits Expat and the NEATO layout
plugin for a savings of about 700 KB over the regular version.
b8370ad
- Changed build settings to ensure that the -Os optimization setting is used for
Graphviz and Expat as well as Viz.js. This results in a smaller build for both
the regular and lite versions.
416776e
- A new Module instance is now created for every call of the Viz JavaScript
function. This avoids errors that could occur when freeing memory from the
Viz.js C code and when Graphviz would encounter a syntax error. See issues
#65 and
#59.
2257a40
- Memory growth is now allowed.
b1df4a9
- Introduce Viz.svgXmlToPngBase64 and add a callback API for
Viz.svgXmlToPngImageElement.
1b317da
Viz.js v1.4.1 (2016-11-21)
- Correct license in package.json.
- Expand pre.js to include more information about the software distributed as
part of Viz.js.
Viz.js v1.4.0 (2016-11-18)
- Added "scale" option for use with the "png-image-element" format. Previously,
window.devicePixelRatio or 1 would be used for this value, which is still the
default if no scale factor is specified.
- Optional support for the "png-image-element" format in IE 10 and 11. Viz.js
will check for Fabric.js, and if present, use its SVG parser. This works
around a CORS issue with data URIs in these browsers.
- Fixes for building with the latest emscripten SDK.
- More tests, and added support for cross-browser testing with Sauce Labs.
- Switch to MIT license.
Viz.js v1.3.0 (2015-11-13)
- Add Viz.svgXmlToPngImageElement and "png-image-element" format.
Viz.js v1.2.1: Fix that a previous error would cause an exception to be thrown on va… (2015-10-31)
- Fix that a previous error would cause an exception to be thrown on valid
input.
Viz.js v1.2.0 (2015-10-27)
- Add node export and use this.namespace-style global
Viz.js v1.1.0 (2015-10-23)
- Fixed that line numbers for errors were reported incorrectly, and that some
kinds of syntax errors were not reported
- Viz.js will now throw exceptions on syntax errors rather than logging to the
console
Viz.js Viz.js 0.0.3 (2014-04-12)
Includes recent fixes from vmarkovtsev.
Viz.js Viz.js 0.0.2 (2014-03-04)
Add support for layout engines other than dot via a third parameter, update to
Graphviz 2.36, other fixes.
Thanks to vmarkovtsev.
Viz.js Viz.js 0.0.1 (2013-10-26)
Rather than checking the viz.js file into the repository, it can now be found
here, released as a 'binary'.