polymer-bundler
Version:
Process Web Components into one output file
829 lines (677 loc) • 34.9 kB
Markdown
# Change Log
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
<!-- ## Unreleased -->
<!-- Add new, unreleased changes here. -->
## 4.0.10 - 2019-06-04
* Fix "Scheme is missing" errors from `vscode-uri` dependency which was broken
from a bad patch release in
https://github.com/microsoft/vscode-uri/commit/7f15d244457fd4e09c88264c676dc915beffb634
## 4.0.9 - 2019-03-01
* Upgraded Rollup to version 1.3.0.
* Added support for `treeshake` option to remove dead JavaScript code when bundling.
## 4.0.8 - 2019-02-12
* Fixed issue involving absolute paths being rewritten as relative paths when bundled https://github.com/Polymer/tools/issues/3348.
## 4.0.7 - 2019-01-31
* URLs in bundled output will now honor developer's intent to render URLs with protocols instead of as relative URLs where applicable.
## 4.0.6 - 2019-01-18
* Fixed issue involving rewriting relative URLs involving crossing `--redirect` boundaries (polymer-bundler CLI feature).
* Removed a couple of exported functions from `url-utils`: `pathPosixRelative` and `rewriteHrefBaseUrl`.
## 4.0.5 - 2019-01-10
* Fixed issue where excluded URLs were not resolved by the analyzer when bundler was initialized, resulting in some imports not being treated as excluded.
* Fixed issue where `<script type="module" src="x.js">` tags would not inline if the referenced script contained no `import` or `export` statements.
* Removed non-essential files from published package, such as tests.
## 4.0.4 - 2018-10-18
* Fixed issue with newer version of chalk that broke `polymer-bundler -h` output. https://github.com/Polymer/tools/issues/741
## 4.0.3 - 2018-10-15
* Fix issue with multiple dynamic imports of the same fragment. https://github.com/Polymer/tools/issues/568
## 4.0.2 - 2018-06-28
* Fix NPM audit warnings.
## 4.0.1 - 2018-05-11
* Added missing `babel-types` to dependencies instead of relying on it transitively.
## 4.0.0 - 2018-05-08
* Fixed inline module scripts which used bare name specifiers to correctly resolve them using the module resolutions of the Analyzer.
## 4.0.0-pre.7 - 2018-05-03
* Dropped support for node v6. This is a soft break, as we aren't
making any changes that are known to break node v6, but we're no longer testing against it. See our [node version support policy](https://www.polymer-project.org/2.0/docs/tools/node-support)
for details.
* Added support for `import.meta.url` preservation in bundled modules.
## 4.0.0-pre.6 - 2018-04-25
- Bundled documents now have a `language` field. It will be `html` when the ast
node is an HTML Parse5 node, and `js` when the ast node is a JS babel node.
- Rewritten dynamic `import()` calls now test if a bundle has exports before
attempting to destructure bundle.
## 4.0.0-pre.5 - 2018-04-17
- Update for breaking Analyzer change.
## 4.0.0-pre.4 - 2018-04-02
- Fix issue where external script tags referencing bundled ES modules were not updated.
## 4.0.0-pre.3 - 2018-03-28
- [BREAKING] The `--in-html` and `--out-html` arguments for `bin/polymer-bundler` are now `--in-file` and `--out-file` because input filetypes are no longer limited to HTML.
- ES6 Module Bundling! Bundler can simultaneously process HTML imports and ES6 module imports, including inline `<script type="module">` scripts.
- Fixed issue where `export * from 'x'` did not export identifiers from module `x`.
## 4.0.0-pre.2 - 2018-03-20
- Upgraded to use `polymer-analyzer` version `3.0.0-pre.17`.
- Switched to `FsUrlResolver` from `PackageUrlResolver` as the default `UrlResolver` for bundling contexts. This is because `PackageUrlResolver` is intended for component analysis, not application analysis.
## 4.0.0-pre.1 - 2018-03-07
- [BREAKING] Upgraded to use `polymer-analyzer` version `3.0.0-pre.13` which requires the `ResolvedUrl` type in nearly all places where URLs are exchanged and provides strict typing on URLs used globally. Eliminated the local `UrlString` type.
- [BREAKING] Removed `relativeUrl` function from `url-utils`, shifting responsibility to `Bundler#analyzer.urlResolver.relative()`.
- [BREAKING] Removed `import-utils.ts` and migrated all HTML-specific bundling code out of it and out of `bundler.ts` into a new class `HtmlBundler`. Renamed `ast-utils.ts` to `parse5-utils.ts` since "ast" is ambiguous when we have JavaScript ASTs coming in.
- [BREAKING] `Bundle` class now has a required `type` property as first argument to its constructor, with current possible values of `html-fragment` and `es6-module`.
- [BREAKING] The `DepsIndex` type returned from `buildDepsIndex` has changed to a single map of entrypoints to dependencies.
- Added support for `<script type="module">` and bundling of ES6 modules by following `import` statements. Dynamic `import()` statements are treated similarly to the `<link rel="lazy-import">` tag in that the import target implicitly defines a new entrypoint/bundle.
- The `BundleResult` returned by `Bundler#bundle()` includes serialized contents instead of just the root AST node of bundled document.
## 3.1.1 - 2017-10-20
- Fixed an issue with moving deprecated CSS import links into templates reported in [Polymer CLI Issue #917](https://github.com/polymer/polymer-cli/issues/917).
## 3.1.0 - 2017-10-02
- Fixed [issue #596](https://github.com/Polymer/polymer-bundler/issues/596) where html import to bundle file itself was being injected due to bad path check condition in the inject step.
- Fixed [issue #600](https://github.com/Polymer/polymer-bundler/issues/600) where `<link rel=stylesheet>` inside a `<template>` was not inlined. If you want to exclude a specific stylesheet from inlining, you can add its path the the `excludes` option (or `--exclude` on command line).
## 3.0.1 - 2017-07-17
- Fixed [issue #592](https://github.com/Polymer/polymer-bundler/issues/592) where the `--manifest-out` option of `bin/polymer-bundler` did not correctly include the basis document of shell files in inlined content list.
## 3.0.0 - 2017-07-14
- BREAKING: The following changes support polymer 2.x, but will break some Polymer 1.x projects which may rely on the rewriting of relative urls within style tags. For those projects, set the `rewriteUrlsInTemplates` option to `true` or use `--rewriteUrlsInTemplates` at command-line.
- Fixed [issue #579](https://github.com/Polymer/polymer-bundler/issues/579) where `url()` values inside `<style>` tags inside of `<dom-module>` tags of inlined html imports were rewritten without consideration of the module's `assetpath` property.
- Fixed issue when stylesheet imports are inlined inside of a `<dom-module>` the url resolution now takes into consideration the `assetpath`.
## 2.3.1 - 2017-07-13
- Rolling back these changes from 2.3.0 release which break polymer 1.x bundling case and going to release them in polymer-bundler 3.x because they are breaking changes:
- Fixed [issue #579](https://github.com/Polymer/polymer-bundler/issues/579) where `url()` values inside `<style>` tags inside of `<dom-module>` tags of inlined html imports were rewritten without consideration of the module's `assetpath` property.
- Fixed issue when stylesheet imports are inlined inside of a `<dom-module>` the url resolution now takes into consideration the `assetpath`.
## 2.3.0 - 2017-07-12
- Fixed issue where inlined `<link rel="import" type="css" ...>` "stylesheet imports" (deprecated but still supported) were inlined in reverse order. Fixes [issue #575](https://github.com/Polymer/polymer-bundler/issues/575).
- Added a `missingImports` property to the `Bundle` class (part of the `BundleManifest`).
- The JSON generated by `--manifest-out` now includes a `_missing` url collection when any are encountered that could not be loaded.
- Added missing `--rewrite-urls-in-templates` option to `bin/polymer-bundler`.
- Fixed issue where HTML imports which were not inlined, because they matched an entry in the `excludes` option, were being erroneously added to the bundle's `missingImports` set.
- Fixed [issue #579](https://github.com/Polymer/polymer-bundler/issues/579) where `url()` values inside `<style>` tags inside of `<dom-module>` tags of inlined html imports were rewritten without consideration of the module's `assetpath` property.
- Fixed issue when stylesheet imports are inlined inside of a `<dom-module>` the url resolution now takes into consideration the `assetpath`.
## 2.2.0 - 2017-06-28
- Fixed issue where bundles produced by shell strategy incorrectly included eager html imports of the shell. https://github.com/Polymer/polymer-bundler/issues/471
- Fixed the `--inline-scripts` and `--inline-css` options, previously inlining happened regardless of whether the options were actually set. Important, if you use the `bin/polymer-bundler` CLI you must provide these options to inline scripts and css now.
- Fixed issue producing assetpath in application root. https://github.com/Polymer/polymer-bundler/issues/562
- Fixed issue where absolute paths were not handled properly. https://github.com/Polymer/polymer-bundler/issues/559
- Fixed issue where out-dir was essentially ignored for a single bundle case. https://github.com/Polymer/polymer-bundler/issues/560
- Fixed issue where, if a different version of polymer-analyzer was given to Bundler's constructor, it caused instanceof check failures and resulting in documents not being identified as documents; added more definitive error messaging for this scenario as stop-gap until we switch to a no instanceof version of polymer-analyzer interface.
## 2.1.0 - 2017-06-14
- Added a `--redirect` option to `bin/polymer-bundler`.
- Added a `--root` option to `bin/polymer-bundler`.
- Added support for preserving important comments of the form `<!--! ... -->` when using `stripComments`.
- The `excludes` option now supports excluding specific script and css file and containing folder urls.
- The `stripComments` behavior now removes comments inside templates.
- Fixed issue with incorrect URL rewrites in inlined CSS (when URL points outside of the package root). https://github.com/Polymer/polymer-bundler/issues/531
- Fixed error when generating source maps due to original line or column not being available. https://github.com/Polymer/polymer-bundler/issues/516
- Fixed `--manifest-out` option to include inlined scripts and styles and emit during single bundle cases. https://github.com/Polymer/polymer-bundler/issues/549 and https://github.com/Polymer/polymer-bundler/issues/550
## 2.0.3 - 2017-06-07
- Fixed issue with lazy-imports impacting bundle inlining logic. https://github.com/Polymer/polymer-bundler/issues/536
- Fixed issue with hidden div being created inside dom-modules. https://github.com/Polymer/polymer-bundler/issues/535
- Fixed issue with injected dependencies inside dom-modules in shell when using lazy-imports. https://github.com/Polymer/polymer-bundler/issues/534
## 2.0.2 - 2017-06-02
- In cases such as the shell merge strategy, imports which are not originally
part of the shell are now inserted before other imports which are dependent
on them. Fixes https://github.com/Polymer/polymer-bundler/issues/517.
## 2.0.1 - 2017-05-19
- Don't include the `by-polymer-bundler` hidden div in bundled files
if it is empty.
## 2.0.0 - 2017-05-18
- Official 2.0.0 release of polymer-bundler! 🎉
- Fixed a bug with url-rewriting in cases where base urls provided
has mix of relative and absolute pathnames.
## 2.0.0-pre.18 - 2017-05-15
- Updated dependency on `polymer-analyzer` to ^2.0.0 now that it is
out of alpha.
## 2.0.0-pre.17 - 2017-05-11
- BREAKING: Bundler's `bundle()` method now returns a `BundleResult`
instead of just a document collection. It does this to include a
copy of the provided manifest, where each bundle includes a record
of the sets of imports which were inlined during bundling.
## 2.0.0-pre.16 - 2017-05-10
- Fixed issue where an inlined import's `<link rel="lazy-import">` href
was being adjusted, but should not be adjusted when governed by the
containing dom-module's assetpath.
## 2.0.0-pre.15 - 2017-05-08
- Fixed case where an inlined import's `<link rel="lazy-import">` tags
were being moved.
- Updated `polymer-analyzer` to latest version.
## 2.0.0-pre.14 - 2017-05-03
- BREAKING: Bundler options now include `strategy` and `urlMapper`. These
have been moved out from the `generateManifest` method which now only
takes the `entrypoints` array. If you had code that used this method,
you'll need to move those parameters to your `new Bundler({...})` call.
- Added new url mapper functions to make customizing destination of shared
bundle files easier: `generateSharedBundleUrlMapper` and
`generateCountingSharedBundleUrlMapper` in `src/build-manifest`.
- Fixed an issue where `<link rel="lazy-import">` tags were being moved
out of their containing `<dom-module>` tags.
- Export all of the bundle manifest types and functions on the default
namespace of `polymer-bundler`.
## 2.0.0-pre.13 - 2017-05-01
- BREAKING: Bundler now supports "lazy imports" aka `<link rel="lazy-import">`.
URLs which are imported lazily are implicitly treated as entrypoints. This
is a breaking change because, previously, Bundler would incorrectly treat
lazy imports just like regular imports.
- BREAKING: Bundler now inlines Scripts and CSS by default. Pass `inlineCss`
and `inlineScripts` as `false` explicitly to disable.
- Fixed an issue where `exclude` option did not actually support folder names.
## 2.0.0-pre.12 - 2017-04-14
- BREAKING: Public API change. The `bundle()` method now takes a manifest
instead of entrypoints, strategy and mapper. To produce a manifest,
use new public method `generateManifest()`.
- The polymer-bundler CLI now uses the current working directory as
the package root folder for its Analyzer, allowing absolute paths to
resolve properly.
- Fixed an issue where an immediate `<style>` child of `<dom-module>` was
not moved into generated `<template>`.
- BREAKING: Added option `rewriteUrlsInTemplates` to support rewriting of urls
found in `src`, `href`, `action`, `assetpath` and `style` attributes
found inside `<template>` elements, when inlining html imports. Previously,
this was done by default. Now requires explicit option.
- BREAKING: inlinining functions in `import-utils` require an explicit
`analyzer` argument.
- BREAKING: Dropped support for node v4, added support for node v8. See our
[node version support policy]
(https://www.polymer-project.org/2.0/docs/tools/node-support) for details.
- Fixed an issue where bundler was adding `<html>`, `<head>`, and `<body>` tags
to documents that didn't have them.
- Removed unused/not-implemented options from the polymer-bundler CLI and
corresponding `Bundler` options: `strip-exclude`, `no-implicit-strip` and
`redirect`.
- Corrected the CLI usage output.
- Corrected the README.
## 2.0.0-pre.11 - 2017-03-20
- Bump dependency on analyzer
## 2.0.0-pre.10 - 2017-03-15
- Add a sourcemap option to properly handle or create sourcemaps for
script tags
## 2.0.0-pre.9 - 2017-03-07
- Bump dependency on analyzer
## 2.0.0-pre.8 - 2017-03-03
- Uses `polymer-analyzer` directly to obtain import document sources and
ASTs. This enforces agreement with the Analyzer as to which documents
should be inlined/bundled.
- Fixes issue where protocol-less URLs (those that start with `//`) were
treated as absolute paths.
- Renamed/refactored to draw a clearer distinction between ASTs and
documents.
- Fixes issue where absolute paths in urls would be rewritten in unexpected
ways because they were not resolved by the same url resolver rules used
by the Analyzer.
## 2.0.0-pre.7 - 2017-03-03
- Bump dependency on analyzer.
## 2.0.0-pre.6 - 2017-02-17
- Handle `<base href="...">` values correctly when inlining imports.
- Apply `<base target="...">` to links and forms in the same document as
appropriate.
- License comments are deduplicated properly now.
- Server-Side Include comments `<!--# ... -->` are no longer stripped.
- Fixed a bug where element attributes inside `<template>` tags were not
being rewritten when html imports were inlined.
## 2.0.0-pre.5 - 2017-02-14
- Handle base tags when resolving the dependency graph of imports.
## 2.0.0-pre.4 - 2017-02-06
- Fixed a bug where bundling using generateShellMergeStrategy would result in
builds missing imports which should have been appended to shell.
## 2.0.0-pre.3 - 2017-01-31
- Changed the way bundle documents are generated, so that bundles based on a
source file retain their HTML structure instead of always being synthesized
from a blank document.
- bundle() is the only public method on Bundler class now.
- Bundler does not explicitly throw an error if it spots a `<polymer-element>`
somewhere in a document.
- `--add-import` and `--importUrl` options have been removed. These features,
as expressed, need to be conceptually reworked to work in bundler's new
multi-bundle paradigm.
- `--abspath`/`basePath` have been removed, anticipating their reimplementation
in `polymer-build`. https://github.com/polymer/polymer-build/issues/117
## 2.0.0-pre.2 - 2017-01-17
- Minor API difference the way Bundler class is exported to make it import
friendly.
- Reduced set of files in published package.
## 2.0.0-pre.1 - 2017-01-17
- Complete rewrite of codebase in Typescript and changed from hydrolysis to
polymer-analyzer.
- Built-in support for build sharding.
- Optionally generates a manifest of each bundle's imports.
## 1.16.0 - 2017-07-14
- Fix erroneously reverse-order inlining of style imports `<link rel="import" type="css">`.
- Added `--polymer2` flag that changes some of the rewriting behaviors to support the fact that Polymer 2.x honors the `assetpath` of `<dom-module>` when interpreting style urls:
- Disables rewriting urls in inlined html imports containing `<style>` tags inside `<dom-module>` containers.
- Include consideration of container `<dom-module>` `assetpath` property when rewriting urls inside inlined style imports.
## 1.15.5 - 2017-06-01
- Add --out-request-list to bin/vulcanize help message
## 1.15.4 - 2017-03-21
- `excludes` option now honors JavaScript asset references:
- Won't attempt to load the JS (which caused errors when local file not present.)
- Won't inline excluded JS files.
- Added --out-request-list option, which writes a list of request URLs required
to vulcanize `<html file>` to a given file on success.
## 1.15.3 - 2017-01-17
- Fix for how paths are rewritten in nested import scenarios where paths to same
directory were ignored instead of treated as "." for relative path.
## 1.15.2 - 2016-12-16
- Fix for how assetpath is set when in the same directory, where assetpath attribute
for components in same directly were incorrectly set to "/".
## 1.15.1 - 2016-12-16
- Amended README and minor text fixes to CHANGELOG post release.
## 1.15.0 - 2016-12-16
- Fixed: Preserve style ordering when moving imports and links out of head tag.
- Don't actually move anything out of head until an html import is encountered.
## 1.14.12 - 2016-11-16
- Removed update-notifier dependency and functionality
- Fixed: Stopped moving links with certain rels out of the head tag to avoid breaking
favicons, manifests, and other such features.
- Speed enhancements
## 1.14.11 - 2016-04-11
- Radically simpler inlining design. Move all imports and scripts into document
body, replace imports inline.
- Add tests for more complicated inlining scenarios
## 1.14.10 - 2016-04-07
- Must use path resolution when moving `<head>` nodes
## 1.14.9 - 2016-04-05
- Try harder to preserve script ordering, move nodes from `<head>` of current
document into import inlining fragment
## 1.14.8 - 2016-03-24
- Undo hydrolysis inlining scripts
## 1.14.7 - 2016-03-01
- Fix inlining for firebase and other scripts that use `\\x3c/script` syntax
when making more scripts
## 1.14.6 - 2016-02-23
- Make sure `@license` comments always are maintained
## 1.14.5 - 2016-01-21
- Fix dom5 dependency to 1.3+
## 1.14.4 - 2016-01-21
- Make sure `<link rel="import type="css">` inlining is placed into a
`<dom-module>`'s `<template>`
## 1.14.3 - 2016-01-19
- Fix for trailing slash in `<base>` tag
## 1.14.2 - 2016-01-19
- Fix paths when preserving execution order moves scripts to body
## 1.14.1 - 2016-01-14
- Escape inline scripts
- Strip Excludes fixed to have higher precedence than Excludes
- Fix script execution order with imports, once and for all!
## 1.14.0 - 2015-10-20
- Add `output` option to write file from CLI
## 1.13.1
- Strip Excludes should be fuzzy
## 1.13.0
- Support custom hydrolysis file loaders
## 1.12.3
- Make sure `excludes` works with `redirects`
## 1.12.2
- Fix CLI spelling of `redirects`
## 1.12.1
- Fix misspelling of `redirects` in library options
## 1.12.0
- New `--redirect` flag and `redirect` argument to set up custom path mappings
## 1.11.0
- New `-add-import` flag and `addedImports` argument to add additional imports
to the target file.
- Copy `@media` queries on external CSS files into inlined styles.
- Fix excluding css files from computing dependencies.
## 1.10.5
- Fix a dumb unix path assumption for --inline-scripts and --inline-css +
absolute paths on windows.
## 1.10.4
- Fix excludes for js files and folders
## 1.10.3
- Fix regression in --strip-comments from 1.9.0
## 1.10.2
- Use URLs internally until calling hydrolysis
- Fixes a bunch of inline issues for Windows
## 1.10.1
- Typecheck inputs in library usage
- Fix README to say that `stripExcludes` is an Array not a Boolean
## 1.10.0
- Add `inputUrl` option to work around grunt and gulp plugins providing
filepaths that cannot be used as URLs to `vulcanize.process()`
## 1.9.3
- Fix abspath bug on windows machines
## 1.9.2
- Use new class API in binary
- Update dependencies
## 1.9.1
- Fix `implicitStrip` in new Class based API
## 1.9.0
- New class based API:
```js
var Vulcanize = require('vulcanize');
var vulcan = new Vulcanize(options);
vulcan.process(...);
```
- `vulcanize.setOptions` and `vulcanize.process` are deprecated
## 1.8.1
- Bump hydrolysis to 1.12.0 with proper ordering
## 1.8.0
- Make stripComments work more reliably
## 1.7.1
- Don't try to inline styles from external sources
## 1.7.0
- Inline link[rel="stylesheet"] css as well as polymer import stylesheets
## 1.6.0
- Update usage of private API of hydrolysis
- Correctly set 'implicit strip' option when used programatically
## 1.5.1
- Ignore external (http and https) resources from inlining
## 1.5.0
- Error on the use of old Polymer elements. Vulcanize 0.7.x is the last version
that will handle < Polymer 0.8.
- Rewrite urls for inlined styles
## 1.4.4
- Make sure excluded js files are totally removed (they inserted blank script
tags)
## 1.4.3
- Update dependencies and docs
- Dependency update fixes cyclic dependencies
## 1.4.2
- Fix URL rewriting from parts of imports that end up in `<body>`
## 1.4.1
- `--implicit-strip` is default
- Remove "comment normalization" when stripping, it was not self-stable
## 1.4.0
- Add `--strip-comments` to remove unnecessary comments
## 1.3.0
- Add `--inline-css` option to inline external stylesheets
## 1.2.1
- Update dependencies
## 1.2.0
- Change `--strip-exclude` to be an array of excludes to strip
- `--implicit-strip` is the old `--strip-excludes` behavior
## 1.1.0
- Add `--inline-scripts` option to inline external scripts
## 1.0.0
- Rewrite on top of [hydrolysis](https://github.com/PolymerLabs/hydrolysis) and
[dom5](https://github.com/PolymerLabs/dom5)
- Factor out `--csp` flag into [crisper](https://github.com/PolymerLabs/crisper)
- Remove html and javascript minification
## 0.7.10
- Collapse whitespace instead of removing it
- Keep unique license comments
## 0.7.9
- Honor `<base>` urls in inline styles
## 0.7.8
- Update to whacko 0.17.3
## 0.7.7
- Honor `<base>` tag
- Make all schemas "absolute" urls
## 0.7.6
- Don't rewrite urls starting with '#'
## 0.7.5
- Remove cssom, just use regexes
## 0.7.4
- Workaround for cssom not liking '{{ }}' bindings in `<style>` tags (unsupported, use `<core-style>` instead)
## 0.7.3
- Replace clean-css with cssom, which does less "optimizations"
## 0.7.2
- Disable css number rounding for crazy-sad flexbox hacks in IE 10
- Add charset=utf-8 to all scripts
- Better comment removal codepath
## 0.7.1
- Support for mobile URL Schemes "tel:" and "sms:"
- Better reporting of javascript error messages with `--strip`
- Handle buffers as input with `inputSrc`
- Rename `outputSrc` to `outputHandler`
## 0.7.0
- Upgrade to whacko 0.17.2 with template support
- add utils.searchAll to make a query that walks into `<template>` elements
## 0.6.2
- stick to whacko 0.17.1 until `<template>` support is complete
## 0.6.1
- fix bug with removing absolute imports
## 0.6.0
- Strip excluded imports by default (old behavior accessible with --no-strip-excludes flag)
## 0.5.0
- finally switch to new-world polymer license
- Add a bunch of tests for lib/vulcan
- Refactor test suites
- tests for utils and optparser modules
- Merge pull request #83 from jongeho1/undefined-element
- undefined element fix
- remove unnecessary require statement
- Handle indirect prototype references in Polymer invocation
- plumb abspath to all url rewriting
- shields!
- add travis config
- add tests!
- Add option for printing version and nag to update
- move test folder to example
- Merge branch 'master' of github.com:rush340/vulcanize into rush340-master
- Merge pull request #75 from ragingwind/remove-importerjs
- Merge pull request #77 from Polymer/use-whacko
- Keep consistent ordering of import document heads and bodies
- Don't create a whole document for inlining styles
- Switch to whacko/parse5
- fix flipped conditional
- Merge pull request #76 from ragingwind/buffer
- Support buffer in/out
- Remove importer.js
- more explicit checking of whether abspath is set
- cleaned up regex matching of root
- renamed webAbsPath to abspath
- fixed cheerio options to perform the same parsing while reading and writing
- if webAbsPath is passed in, use absolute paths everywhere
- resolve webAbsPath if relative path provided
- added recognition of double-slash paths as a remote absolute URL
- applied webAbsPath option for handling absolute paths (based on jongeho1's pull request: https://github.com/Polymer/vulcanize/pull/36)
## 0.4.3
- Release 0.4.3
- Mailto: is an absolute path
- Merge pull request #70 from rush340/htmlentities
- added missing use of CHEERIO_OPTIONS
- fixed cheerio options to perform the same parsing while reading and writing
- Merge pull request #59 from mozilla-appmaker/cheerio-write-fix
- Merge pull request #65 from tbuckley/patch-1
- Add quotes around filenames in CSS
- audit license headers
- fixed cheerio options to perform the same parsing while reading and writing
- Never decode entities
## 0.4.2
- Fix inline svgs
- Update README with --strip functionality
## 0.4.1
- Bump version to 0.4.1
- Strip comments and whitespace from all nodes
## 0.4.0
- Bump to version 0.4.0
- Replace noscript with explicit Polymer invocation, to ensure correct element registration order when CSP'ed.
## 0.3.1
- remove extraneous async module
- Fixes #34
## 0.3.0
- Hide import content from view in the main document
## 0.2.7
- always add name to polymer invocation
## 0.2.6
- bump version
- add small usage block to help
- Make --strip work with --csp
- Clean up use of get/setTextContent
- Inline stylesheet happens after import path fixup, so outputPath of rewriteURL should be the overall outputPath
## 0.2.5
- update to 0.2.5
- .text() was decoding HTML entities, read raw script node content for CSP
- Support Polymer invocation without tag name
- Fix slightly broken merge conflict
- Enable `--inline --csp` mode to smash everything into one JS file
- Upstream cheerio changed loop semantics to return "dom" nodes instead of sugared cheerio objects
- Fix #29
- Print help dialog if called without arguments
- update dependencies
## 0.2.4
- Treat config file as "defaults", commandline flags override
- Do path resolution before import processing and style inlining
## 0.2.3
- A few bug fixes
## 0.2.2
- Don't recalculate assetpath for handled elements
- Bump to 0.2.1
## 0.2.1
- unbreak assetpath generation
## 0.2.0
- Prepare vulcanize 0.2.0
- Merge pull request #25 from lborgav/patch-1
- Fixing missing letters
- Don't move external scripts around with CSP mode
- Use uglify inline_script
- Use cleancss only for stripping comments
- Merge pull request #21 from azakus/modular
- went a little too quick with the regex
- Remove byte order mark
- Make sure not to lose assetpath fix
- First draft at a split out Importer
- Inplace inline *all* imports
- Copy setTextNode since it's so tiny
- move all the option validation into optparser
- Update npm dependencies
- Split out path resolution
- Break out option parser
- Break out constants
- Add the hooks for style and script excludes
- Add changelog generation script
- Merge pull request #16 from tbuckley/master
- Include excluded script instead of its contents
- Only put a trailing slash into assetpath attribute if there is a path
- bump version
- clone all styles (minus href and rel) from `<link>` to `<style>`
- update to 0.1.13
- Skip non-JS scripts and non-CSS styles
- bump version
- Make sure to CSPify main document first, load platform.js first in the output js file.
- add test config for excluding polymer.html
- Refactor handling of inlined and excluded import insertion
- bump version
- Fix subtle path bug in stylesheets
- use uglify and clean-css to strip comments from js and css when using --strip
- Clean up
- bump version
- --csp will now operate on the input html file as well
- Fix script inlining to ignore parsing html comments
- cheerio 0.13 seems to work just fine
- inline stylesheets in the main page when using --inline
- README: add ga beacon
## 0.1.9
- Reset excludes on each run
## 0.1.8
- Bump version
- add "strip comments" functionality
- fix minor typo in helep text: s/defualts/defaults
## 0.1.7
- bump version
- add sub-import test to the top level import
- Add --config option to specify user defined excludes
- Add user-defined excludes from inling.
## 0.1.6
- bump version
- test with absolute urls
- remove console.log
- Deduplicate absolute url imports
- fix missing absolute imports
## 0.1.5
- bump to 0.1.5
- Revert "polymer-scope is no longer supported"
## 0.1.4
- reset shared buffers on each handleMainDocument call
## 0.1.3
- bump version
- move option checking to setOptions, not the bin
- Add npm installation instructions
- polymer-scope is no longer supported
## 0.1.2
## 0.1.15
- Only put a trailing slash into assetpath attribute if there is a path
## 0.1.14
- bump version
- clone all styles (minus href and rel) from `<link>` to `<style>`
## 0.1.13
- update to 0.1.13
- Skip non-JS scripts and non-CSS styles
## 0.1.12
- bump version
- Make sure to CSPify main document first, load platform.js first in the output js file.
- add test config for excluding polymer.html
- Refactor handling of inlined and excluded import insertion
## 0.1.11
- bump version
- Fix subtle path bug in stylesheets
- use uglify and clean-css to strip comments from js and css when using --strip
- Clean up
## 0.1.10
- bump version
- --csp will now operate on the input html file as well
- Fix script inlining to ignore parsing html comments
- cheerio 0.13 seems to work just fine
- inline stylesheets in the main page when using --inline
- README: add ga beacon
- Reset excludes on each run
- Bump version
- add "strip comments" functionality
- fix minor typo in helep text: s/defualts/defaults
- bump version
- add sub-import test to the top level import
- Add --config option to specify user defined excludes
- Add user-defined excludes from inling.
- bump version
- test with absolute urls
- remove console.log
- Deduplicate absolute url imports
- fix missing absolute imports
- bump to 0.1.5
- Revert "polymer-scope is no longer supported"
- reset shared buffers on each handleMainDocument call
- bump version
- move option checking to setOptions, not the bin
- Add npm installation instructions
- polymer-scope is no longer supported
- bump version
- update README to be more approachable
- add a help dialog, fix "main" in package.json
## 0.1.1
- Bump version to 0.1.1
- Fix paths from main html file if input or output directories are not current working directory
- Add style url rewriting back
- add other directories to testing
- Merge pull request #3 from akhileshgupta/inline_styles_fix
- Merge pull request #2 from akhileshgupta/concat_scripts_bugfix
- variable rename and removing the unrequired check
- fixing the use of .html(cssText) to update the styles content.
- resolving script path from outputDir during concatenation
- Merge pull request #1 from addyosmani/patch-1
- Adds npm install snippet, minor formatting changes.
## 0.1.0
- semver recommends starting at 0.1.0
- add repo info to package.json
## 0.0.1
- Update README.md
- add license top
- remove unrelated viz file
- add license files
- reference new executable path
- reference bin/vulcanize for global npm install
- split vulcan.js into vulcanize bin and lib/vulcan.js
- reorder constant variables, add missing SCRIPT_SRC
- inlineScripts now uses html text and regex, not cheerio api
- Use html() to inline scripts, text() makes HTML Entities
- Add --inline option to inline all scripts into main document (opposite of --csp)
- Update README to reflect all-in-one html files
- Try to insert inlined import exactly where the link was
- make everything from imports inlined
- update README with index-vulcanized output
- Inlined stylesheets must have URL paths rewritten, move to import processing
- inline css stylesheets into style tags in polymer elements
- assetpath is handled by polymer now
- Update README.md
- Update README.md
- Remove unused function
- fix import location finding and windows path munging
- Fix output directory for CSP js file
- find better spots for vulcanized imports and scripts
- Update to newer cheerio with fixed htmlparser
- reflect new functionality in README, fix up newline issues, refactor constants
- vulcanizer will now take in a single main document and produce a built version of that main document.
- add a semicolon to all scripts to prevent weird insertion conditions
- update README for CSP mode
- For CSP, allow an option to separate scripts into a separate file
- Process imports as whole files, no element extraction
- breaking down doc tool for analysis
- Update README for polymer-element
- update for polymer-element
- Much more useful README
- use assetpath attribute on `<element>` to fix resolvePath usage in Polymer elements