UNPKG

29.4 kBMarkdownView Raw
1# Change Log
2
3All notable changes to this project will be documented in this file.
4
5The format is based on [Keep a Changelog](http://keepachangelog.com/)
6and this project adheres to [Semantic Versioning](http://semver.org/).
7
8<!-- ## Unreleased -->
9<!-- Add new, unreleased changes here. -->
10
11## [3.2.4] - 2019-07-09
12* Merge property information from constructors into associated scanned
13 properties when scanning classes
14
15## [3.2.3] - 2019-06-04
16* Fix "Scheme is missing" errors from `vscode-uri` dependency which was broken
17 from a bad patch release in
18 https://github.com/microsoft/vscode-uri/commit/7f15d244457fd4e09c88264c676dc915beffb634
19
20## [3.2.2] - 2019-01-10
21* Removed non-essential files from published package, such as tests.
22
23## [3.2.1] - 2018-12-19
24* Recognize .mjs as JavaScript files.
25
26## [3.2.0] - 2018-12-03
27* Support annotating mixin class properties and methods using
28 `MixinClass.prototype.foo` syntax.
29
30## [3.1.3] - 2018-10-15
31* Make `HtmlDocument#stringify()` faster by only cloning the ast and stringifing
32 inline documents into the cloned ast.
33* Add `prettyPrint` option to `StringifyOptions`
34* Implement behavior changes based on `prettyPrint` flag for
35 `HtmlDocument`, `JavascriptDocument`, `CssDocument`, and `JsonDocument`
36
37## [3.1.2] - 2018-08-23
38* Failing to resolve an exported identifier will now be a warning instead
39 of an uncaught exception.
40
41## [3.1.1] - 2018-08-15
42* Legacy Polymer function component features will no longer have a `_template`
43 property.
44* Functions defined within exported objects are no longer themselves emitted as
45 top-level functions.
46
47## [3.1.0] - 2018-07-25
48* The `Function` type is now exported from `index.js`.
49* `Import` features now have an `astNodePath`.
50* `WarningStringifyOptions` now takes an optional `maxCodeLines` to print.
51* Elements registered with the legacy `Polymer()` function now have
52 `isLegacyPolymerFactoryCall: true`.
53* `@extends {SuperClass}` annotations are now parsed. Previously the type was
54 not extracted if it had curly braces.
55* Expressions annotated with `@constructor` will now be scanned as classes.
56* Ephemeral super classes will now be collapsed into their child classes.
57
58## [3.0.2] - 2018-06-28
59* Better support for resolving `export {foo as bar}` statements.
60
61## [3.0.1] - 2018-05-11
62* Better support for handling errors early on in the analysis process (load,
63 parse, scan). This should solve the vast majority of Internal Error warnings.
64
65## [3.0.0] - 2018-05-08
66* `Analyzer#analyze` when called with an explicit list of files, will ignore
67 any files that do not have a known file extension, as it will not know
68 how to parse them.
69
70## [3.0.0-pre.25] - 2018-05-03
71* Dropped support for node v6. This is a soft break, as we aren't
72 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)
73 for details.
74* ScriptTagImport#isModule is true for `<script type="module" src="...">`
75* Module `<script>` imports don't inherit imports from the HTML file that
76 imports them, because unlike normal scripts, modules can be imported from
77 many HTML files, and they have their own way to import their dependencies,
78 rather than depending on HTML container files.
79
80## [3.0.0-pre.24] - 2018-04-18
81* Typings change: `ParsedDocument#astNode` had the type `any`. It now has a
82 more strict type of `{} | null | undefined`. If this breaks downstream code,
83 that code should probably use a more specific type of `ParsedDocument`, or
84 `Document<MoreSpecificParsedDocType>`.
85* Fix node module resolution for the case where components/ directory URL
86 rewriting is happening (e.g. polyserve), and a root package is importing
87 something from its own package using a path.
88
89## [3.0.0-pre.23] - 2018-04-17
90* [BREAKING] `Feature.astNode` is now an `AstNodeWithLanguage` rather than
91 being an unwrapped ast node (usually typed as `any`). This makes it easier
92 and safer to handle features which could be declared in HTML or JS. Most
93 tools will not care about these ast nodes, this mostly comes up in tools
94 like the linter, which does additional analysis of the AST.
95
96## [3.0.0-pre.22] - 2018-04-09
97* Fix module resolution in the case of root packages served from a component
98 directory.
99
100## [3.0.0-pre.21] - 2018-04-05
101* Clarify module resolution error message.
102
103## [3.0.0-pre.20] - 2018-04-03
104* Added support for parsing `import.meta` in JavaScript modules.
105
106## [3.0.0-pre.19] - 2018-03-30
107* [breaking] Removed WarningFilter.fromConfig. ProjectConfig#initializeAnalyzer
108 now does this from the other side (and cyclic deps are not a great idea).
109* Add the ability to cancel an analysis by passing in a CancelToken, which can
110 signal that the request has been cancelled. This can be useful in saving work
111 if you know that the result of the analysis won't be used.
112
113## [3.0.0-pre.18] - 2018-03-27
114* [BREAKING] Removed Analyzer.createFromDirectory, the replacement will go into
115 polymer-project-config.
116* [BREAKING] Import features will now be produced when a document has a broken
117 import (e.g. because the imported file does not exist, or it does not parse,
118 etc). We still emit a warning in such cases.
119* Recognize behaviors declared in export statements.
120* Apply node module resolution to path imports as well as "named" imports.
121
122## [3.0.0-pre.17] - 2018-03-20
123* [BREAKING] `FSUrlLoader` is now `FsUrlLoader`.
124* Reference resolution now supports javascript scoping rules, and will follow
125 javascript module imports, including aliased imports, namespace imports, and
126 re-exports. References to super classes, mixins, and behaviors use this
127 resolution system.
128* Add `nodeName` to `LocalId` references
129* Added an `Export` feature, for JS module exports.
130
131
132## [3.0.0-pre.16] - 2018-03-15
133* Import URLs which are resolved, but for which the URL loader returns
134 `canLoad() === false` result in a `not-loadable` Warning instead of
135 `could-not-load`, which is reserved for other failures, such as parser
136 errors or load errors.
137
138## [3.0.0-pre.15] - 2018-03-15
139* Now recognizes classes, behaviors, elements, and mixins that are
140 declared in an ES6 `export` declaration.
141* Document#getFeatures now supports querying by `statement`. Given the
142 canonical statement (see esutil.getCanonicalStatement), it will lookup
143 the feature at that statement. This will be used by internal
144 APIs to do scope-based dereferencing of super classes, behaviors, and mixins.
145* Added JavascriptImport#specifier for getting the original import specifier,
146 before it may have been resolved to a file-relative url by the node module
147 resolution algorithm.
148* Parse concatenated strings in expressions
149* Fixed issue where FsUrlResolver and IndirectUrlResolver didn't correctly
150 resolve protocol-relative URLs. These classes now accept a protocol option
151 which defaults to `https` that is prepended when resolving these URLs.
152
153## [3.0.0-pre.14] - 2018-03-09
154* [BREAKING] JavascriptDocument#ast is now a `babel.File` rather than a
155 `babel.Program`. Use `jsDoc.ast.program` instead of `jsDoc.ast` in the
156 unlikely case that the `Program` is required.
157* Fix bug where if a package's name was a prefix of one of its dependencies,
158 that dependency would not resolve to its components directory.
159
160## [3.0.0-pre.13] - 2018-03-05
161* Support specifying tag names in jsdoc, e.g. `@customElement fancy-button`
162* Add "bare" module specifier support for JavaScript imports and exports. ie,
163 `import * as jquery from 'jquery'`.
164
165## [3.0.0-pre.12] - 2018-02-14
166* Functions and methods will now be automatically inferred as returning `void`
167 in certain cases. This occurs when all of the following are true: 1) it has
168 no `@return` or `@returns` JSDoc annotation, 2) it is not async or a
169 generator, 3) its body contains no return statements with arguments.
170
171## [3.0.0-pre.11] - 2018-02-14
172* Support Windows line endings in JSDoc annotations
173* Support scanning of properties in namespaces
174* Support scanning of accessors in behaviors
175* `Document#getFeatures()` now supports an `excludeBackreferences`
176 option for use with inline documents to exclude the container/importer
177 document and its features from the results.
178* Support @return annotations on getters/setters on legacy Polymer function
179 calls, and fix bug where readonly was inverted.
180* Add `IndirectUrlResolver`, a URL resolver for very large codebases where
181 source files map in an arbitrary but predetermined fashion onto URL space.
182 This resolver is still experimental.
183 * It is generally true that if something has to be imported from
184 `polymer-analyzer/lib/...` then it's not yet stable. caveat importer.
185* [BREAKING] Removed the `ScriptTagBackReferenceImport` and replaced it
186 with new general-purpose `DocumentBackreference` feature used to
187 link inline/imported documents back to their containers/importers.
188
189## [3.0.0-pre.10] - 2018-02-01
190* The `UrlResolver#relative()` method now returns a `PackageRelativeUrl`
191 when called with only one argument, since the only use of this call form
192 is to reverse a resolved URL back into a simpler package relative form.
193
194## [3.0.0-pre.9] - 2018-01-26
195* [BREAKING] Document#astNode and ParsedDocument#astNode are now an
196 `AstNodeWithLanguage`, because we support inline documents in more than just
197 HTML, as we've added an HTML-in-JS scanner.
198* `MultiUrlResolver` now delegates the `relative()` method to the first
199 `UrlResolver` in its `_resolvers` array that can `resolve()` the
200 destination URL. Makes it possible now to rely on the Analyzer's
201 resolver to return a valid `PackageRelativeUrl` from a resolved URL.
202
203## [3.0.0-pre.8] - 2018-01-18
204* `FSUrlLoader#canLoad` reports false for local urls outside the loader's
205 own root; enables fall-thru support needed for use with `MultiUrlLoader`.
206* Add `Element#template` for getting the template of an element.
207* In MultiUrlLoader, proxy the first implementation of readDirectory, if any.
208* Use event annotation descriptions over their tag description.
209* `RedirectResolver` resolves URLs which start with its redirect-to.
210
211## [3.0.0-pre.7] - 2018-01-01
212* [BREAKING]: `UrlResolver#resolve()` argument order swapped so that the
213 optional `baseUrl` argument comes first instead of second. This makes
214 resolve more similar to `url.resolve`.
215* [BREAKING] Removed scriptElement and domModule from PolymerElementMixin.
216 They were always undefined.
217* `UrlResolver#resolve()` returns urls containing querystring and fragment
218 components where they were previously stripped out.
219* Add FSUrlLoader#getFilePath which will return the file path that would
220 be loaded for a given ResolvedUrl, or an error message explaining why
221 it can't be.
222* Add a `resolver` option when converting warnings to string, or when
223 using the WarningPrinter. This will resolve file urls in warnings using
224 `resolver.relative`, to avoid super long urls in warning messages.
225* Getters and setters are now detected.
226* Static methods are now detected in Polymer elements.
227* Methods and properties added to a class prototype are now detected.
228
229## [3.0.0-pre.6] - 2017-12-18
230* [BREAKING] `Analysis#getDocument` now returns a `Result` object. When
231 `result.successful` is true, `result.value` is a Document. When
232 `result.successful` is false, then `result.value` is
233 either a Warning or undefined.
234* [BREAKING] UrlResolvers must now return complete URLs, like
235 file:///path/to/paper-button/paper-button.html or
236 https://example.com/components/paper-button/paper-button.html
237* Introduce getDocumentContaining to find containing inline document for a
238 feature
239
240## [3.0.0-pre.5] - 2017-12-15
241* [BREAKING] Removed `Analyzer#resolveUrl` in favor of just exposing the
242 `UrlResolver` at `Analyzer#urlResolver.resolve`
243* [BREAKING] Polymer property types are now assumed to be possibly
244 `null|undefined` unless an explicit `@type` annotation says otherwise.
245* Add `Analyzer.createForDirectory()` for easily getting a well configured
246 analyzer for a given directory.
247* Add `Import#originalUrl` which has the original url of the import as it was
248 encountered in the document, before it was resolved relative to the base url
249 of its containing document.
250* Added `attributeType` field to Polymer property, which contains the name
251 of the Polymer property declaration `type` field Constructor.
252
253## [3.0.0-pre.4] - 2017-12-14
254
255* [BREAKING] Removed the `UrlResolver#canResolve` method. A UrlResolver should
256 return `undefined` when `resolve` is called to indicate that it can't resolve
257 a URL.
258* Add Analyzer.forDirectory() for easily getting a well configured analyzer
259 for a given directory.
260* Removed the `UrlResolver#canResolve` method. A UrlResolver should return
261 `undefined` when `resolve` is called to indicate that it can't resolve a URL.
262* Analyzer#urlResolver is a property that exposes the analyzer's url resolver,
263 for cases where more direct access to url resolution is desired.
264* Fix a situation where a warning would be reported as `[Object object]`.
265* Fix issue where inline JavaScript module import statements did not honor
266 their containing document's baseUrl; inline documents now inherit baseUrl
267 from their containing documents.
268
269## [3.0.0-pre.3] - 2017-12-08
270
271* Added missing model typings for branded `url` types to top-level package
272 exports.
273* Added `templateTypes` property to functions, extracted from `@template`
274 annotations.
275* Add `Analyzer.createForDirectory()` for easily getting a well configured
276 analyzer for a given directory.
277
278## [3.0.0-pre.2] - 2017-11-30
279
280* Added `js-import` feature with `lazy: true` for dynamic imports call
281 expressions of the form `import()`.
282* Functions will now be scanned if they have a `@global` annotation. Previously
283 they would only be scanned if they had a `@memberof` annotation. One of these
284 annotations is required because otherwise a lot of functions that aren't
285 really public are included in the analysis (e.g. because they are hidden due
286 to their scoping).
287* Function names can now be overridden with e.g. `@function MyNewName`.
288
289## [3.0.0-pre.1] - 2017-11-29
290
291* [BREAKING] Switched the underlying parser/AST for JavaScript from
292 `espree/estree` to `babylon/babel-types`. This was needed to support parsing
293 of important platform features such as dynamic imports and moves us closer to
294 supporting TypeScript.
295* When printing Warnings, use one-based indexes for lines and columns, as most
296 text editors and other tools do.
297
298## [2.7.0] - 2017-11-16
299
300* Emit more accurate super classes for Elements when generating analysis JSON.
301* Added the concept of automatically safe fixes and less-safe edit actions for
302 Warnings. This is an upstreaming of functionality originally defined in
303 polymer-linter.
304
305## [2.6.0] - 2017-11-06
306
307* Add `defaultValue` and `rest` fields to method parameters.
308
309## [2.5.0] - 2017-11-05
310
311* Use branded subtypes of string to be more careful about how we canonicalize and resolve urls. They're totally normal strings at runtime. TypeScript users that wrote their own UrlLoaders or UrlResolvers may need to make some minor changes to compile green, but since runtime isn't broken this isn't a breaking change. See src/mode/url.ts for more info.
312* Handle method rest parameters correctly.
313
314## [2.4.1] - 2017-10-31
315
316* Minor fixes for TypeScript 2.6 compatibility.
317
318## [2.4.0] - 2017-10-26
319
320* Scan for module imports in inline and external JavaScript, analyzing the entire import graph.
321* Changed the way HTML script tag containing document features are made available to the JavaScript document, by creating a ScriptTagBackReferenceImport instead of appending the HTML document features directly to JavaScript document.
322* [minor] Add an `astNode` property on `Slot`.
323* Improve handling of types of properties defined in a behavior or legacy polymer element.
324
325## [2.3.0] - 2017-09-25
326
327* Scan for CSS custom variable uses and assignments.
328* Fix value of reflectToAttribute for polymer properties.
329* Remove scriptElement from PolymerElement.
330* `html-style` features are now scanned for inside templates.
331
332## [2.2.2] - 2017-07-20
333
334* Fixed a bug where we were too aggressive in associating HTML comments with
335 nodes, such that any comment that came before a `<script>` tag e.g. could
336 become part of the description of the element defined therin.
337* Added support for recognizing instance properties in constructors.
338 * The properties must be annotated with a jsdoc tag to be recognized.
339 * Specific handling of the following tags is supported:
340 * `@public`, `@private`, `@protected`, `@type`, and `@const`
341 * The description can be combined with a visibility or type annotation. e.g.
342 * `/** @type {number} How many bacon wrapped waffles to eat. */`
343
344## [2.2.1] - 2017-07-06
345
346* Removed TypeScript from production dependencies until TypeScript analysis is fully supported.
347
348## [2.2.0] - 2017-06-22
349
350* Comments are now only associated with classes and other objects if they are touching (<2 newlines between them).
351
352## [2.1.0] - 2017-06-02
353
354* Minor bugfix: JSON.stringify(warning) had a bunch of extra unnecessary properties.
355* Track static methods on classes, emit them in analysis.json.
356* Emit `superclass` for classes in analysis.json.
357
358## [2.0.2] - 2017-05-18
359
360* Track methods on behaviors as such. They were being treated as properties.
361
362## [2.0.1] - 2017-05-15
363
364* Many errors were changed to warnings so they wouldn't stop builds from completing.
365
366## [2.0.0] - 2017-05-15
367
368* Stable release of the Polymer Analyzer.
369
370
371#### Changes since the previous prerelease version:
372
373* [BREAKING] `attributes`, `properties`, `methods`, and `events` are now Maps from the name to the value rather than arrays. This better models what's actually going on (you can't have two different properties with the same name in javascript) and it makes our inheritance modeling more efficient.
374 * Note that the serialized output format `analysis.json` is not changed, it still uses arrays.
375* Warning is now a class, not just an interface. It also now keeps track of the
376 parsed document that it came from. This fixes a race condition and API wart
377 where to print a warning you needed to load the source of the document
378 that was seen when the warning was generated.
379 * Also, thanks to using the ParsedDocument interface, printing a warning is
380 now O(size of underlined text) rather than O(size of document).
381
382## [2.0.0-alpha.42] - 2017-05-09
383
384* [minor breaking change] The paths in `@demo` annotations are no longer resolved.
385* Added `MultiUrlLoader` and `PrefixedUrlLoader` to support analysis of more complicated project layouts.
386
387## [2.0.0-alpha.41] - 2017-05-08
388
389* [BREAKING] The `ElementLike` interface in `AnalysisFormat` changed its `demos` property from `string[]` to `Demo[]`, to include more information from `@demo` annotations in Jsdocs.
390* [minor breaking change] Simplify rules for infering privacy. Now all features: classes, elements, properties, methods, etc have one set of rules for inferring privacy. Explicit js doc annotations are respected, otherwise `__foo` and `foo_` are private, `_foo` is protected, and `foo` is public.
391* Fixed issue where jsdocs syntax in HTML comments was not parsed for polymer elements.
392
393## [2.0.0-alpha.40] - 2017-04-28
394
395* Added support for new JSDoc tags: @customElement, @polymer, @mixinFunction, @appliesMixin
396
397## [2.0.0-alpha.39] - 2017-04-26
398
399* Add a Class feature kind for describing all kinds of classes. This is a superclass of the existing elements and mixins.
400* Mix mixins into mixins. A PolymerElementMixin now has all of the members it inherits other mixins it mixes.
401* Improved our modeling of inheritance:
402 * overriding inherited members now works correctly
403 * overriding a private member produces a Warning
404* Documented many fields as being readonly/immutable. This isn't complete, in fact all features and scanned features should be treated as immutable once they're created and initialized.
405* Treat behaviors more like mixins, and treat using behaviors more like inheriting from mixins. This means that a Behavior object knows about all of the properties, methods, etc that it has inherited from other Behaviors that it builds upon.
406* Emit more warnings when recognizing mixins, elements, and classes.
407
408## [2.0.0-alpha.38] - 2017-04-13
409
410* [minor breaking change] Revert of a change from alpha.37. The experimental `_fork` method on Analyzer returns an Analyzer again, not a Promise of an Analyzer.
411
412## [2.0.0-alpha.37] - 2017-04-12
413
414* [BREAKING] Analyzer.analyze() now must be passed an array of urls instead of a single url and it returns an Analysis. Use Analysis.getDocument(url) to get a Document from an Analysis.
415* [BREAKING] The `getByKind`, `getById`, `getOnlyAtId`, and `listFeatures` methods on Document and Package have been replaced with a single method: `getFeatures`. It has all of the functionality of the individual methods, just packaged as a single simple query interface.
416* [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.
417* Added `canLoad` method to `Analyzer`.
418* Handle undefined source ranges more gracefully in WarningPrinter.
419* [polymer] Negative number literals are allowed in databindings.
420
421## [2.0.0-alpha.36] - 2017-04-07
422
423* [BREAKING] Analyzer.analyze no longer takes the file's current contents as a second argument. This functionality was broken into two pieces, `filesChanged`, and `InMemoryOverlayLoader`.
424 * Added a `filesChanged` method to Analyzer letting it know when a file needs to be reloaded.
425 * Added an `InMemoryOverlayLoader` UrlLoader, for cases like a text editor where you'd like to use an in memory source of truth for a subset of files.
426* The warning printer displays the squiggle underline in the correct place on lines indented by tabs.
427* Extract className from the form `var className = Polymer({...})`
428* Do a better job of matching comments up with Polymer 2 style element declarations.
429
430## [2.0.0-alpha.35] - 2017-04-05
431
432* [minor breaking change] By default queries for features and warnings now traverse lazy imports. Added a query option to limit results only to those reachable by normal (eager) imports.
433* `generateAnalysis()` now includes PolymerBehavior information in `metadata.polymer.behaviors` collection.
434* Jsdoc `@demo` annotations are now added to `demos` collection for `Element`, `ElementMixin`, `PolymerElement` and `Behavior`.
435* Types and descriptions are now extracted from method @param and @returns jsdoc annotations.
436* Fixed caching issue such that Documents would not always have information from the latest versions of their dependencies.
437
438## [2.0.0-alpha.34] - 2017-03-20
439
440* All Documents, ParsedDocuments, and ScannedDocuments now have correct SourceRanges. This also fixes a bug whereby `getByKind('document')` would fail to filter out package-external Documents.
441* Fix an issue where package-external features could be included in queries that dot not ask for them. Specifically we were filtering based on the text in files like `../paper-button/paper-button.html` rather than the path to the file on disk like `bower_components/paper-button/paper-button.html` when determining externality.
442* Treat a directory named `build` as external, same as we do ones named `bower_components.*` or `node_modules.*`
443
444## [2.0.0-alpha.33] - 2017-03-14
445
446* Populate `astNode` on `PolymerElementMixin`.
447
448## [2.0.0-alpha.32] - 2017-03-13
449
450* Added options argument for Analyzer's experimental `_fork` method, supporting individual property overrides.
451* Parse observers and computed functions in Polymer declarations. Warn on parse errors, or using the wrong syntax (e.g. function calls in `observer`, not a function call in `computed`).
452* Correctly scan the `customElements.define(MyClass.is, MyClass)` pattern.
453
454## [2.0.0-alpha.31] - 2017-03-07
455
456* Clean up method descriptions
457
458## [2.0.0-alpha.30] - 2017-03-03
459
460* Fix typo in package.json.
461
462## [2.0.0-alpha.29] - 2017-03-03
463
464* Added a `_fork` method to Analyzer.
465* Support for method detection on polymer elements and mixins via the new `methods` property.
466* Support for function analysis (namespaced functions only for now, via the `@memberof` jsdoc tag).
467* Track privacy on elements, mixins, properties, methods, and functions on namespaces.
468 * replaced `private: boolean` with `privacy: 'public' | 'private' | 'protected'`
469 * respects `@public` `@private` and `@protected` in jsdoc
470 * considers one leading underscore to be protected, and two to be private
471 * one trailing underscore is private (closure style)
472* Track inheritance source for mixin and element members.
473* Exported all public api through the package's `main` file, so that all public api can be accessed directly off of the object returned by `require('polymer-analyzer')` without the need to add imports into `polymer-analyzer/lib/whatever`.
474* Track mixins on mixins and emit them in the Analysis. We don't mix properties into mixins yet.
475
476## [2.0.0-alpha.28] - 2017-02-24
477* Support for `@memberof` jsdoc tag
478* Fix bad mixin descriptions
479
480
481### Fixed
482* PackageUrlResolver encodes URIs returned from `resolve` method.
483* Support new properties/observers getters in Polymer 2.0 elements
484
485## [2.0.0-alpha.27] - 2017-02-24
486
487### Added
488* Support for `@extends` and `@namespace` jsdoc tags
489* Analyze inherited members for class-based elements annotated with `@extends`
490* New Namespace and Reference features
491* Mixins and namespaces are included in metadata export
492* Ability to generate metadata for a package and filter exported metadata
493* Analyze Polymer 2.0 elements that override observedAttributes
494
495### Fixed
496* Analyzer will not attempt to load or add warnings for imports which can not be resolved by its urlResolver.
497* Protocol-less URLs such as `//host/path` are properly handled instead of treated as absolute paths.
498* Infer tagnames from the static `is` getter.
499* Unified Polymer and Vanilla element scanners
500
501## [2.0.0-alpha.26] - 2017-02-22
502* Fix issue with file missing from package.json "files" array.
503
504## [2.0.0-alpha.25] - 2017-02-22
505
506### Added
507* Polymer 2.0 mixin scanner
508* [polymer] Parse polymer databinding expressions.
509 Give accurate warnings on parse errors.
510
511## [2.0.0-alpha.24] - 2017-02-14
512
513### Added
514* HTML Documents now include a `baseUrl` property which is properly resolved
515 from a `<base href="...">` tag, when present.
516* Add `localIds` to `PolymerElement`, tracking elements in its template by their id attributes.
517
518### Fixed
519
520* [Polymer] Better handle unexpected behavior reference syntax.
521
522## [2.0.0-alpha.23] - 2017-02-10
523
524### Added
525
526* [BREAKING] All methods on Document no longer return results from dependencies, but do return results from inline documents. Added a queryOptions param to all query methods to specify getting results from dependencies.
527* [BREAKING] All methods on both Document and Package no longer return results from external code. Must specify `externalPackages: true` to get features from code outside the current package.
528
529### Fixed
530
531* Properly cache warning for incorrect imports or when failing parsing an import.
532* Notice references to elements within `<template>` tags.
533
534## [2.0.0-alpha.22] - 2017-01-13
535
536### Fixed
537
538* Do not complain about ES6 module syntax, but store enough information that we can warn about referencing modules as scripts.
539
540
541## [2.0.0-alpha.21] - 2016-12-22
542
543### Added
544* Add an analyzePackage() method, for getting a queryable representation of everything in a package.
545
546### Fixed
547* Fix a deadlock when there are concurrent analysis runs of cyclic graphs.
548
549## [2.0.0-alpha.20] - 2016-12-19
550
551### Added
552* [Polymer] Extract 'listeners' from 1.0-style declarations.
553* [Polymer] Extract pseudo elements from HTML comments
554
555### Fixed
556* Fix a class of race conditions and cache invalidation errors that can occur when there are concurrent analysis runs and edits to files.
557
558## [2.0.0-alpha.19] - 2016-12-12
559
560### Added
561* Add `changeEvent` to `Attribute`.
562
563### Fixed
564* Bump JS parser up to parse ES2017 (ES8).
565* [Polymer] Property descriptors are allowed to be just a type name, like `value: String`.
566
567## [2.0.0-alpha.18] - 2016-11-21
568
569### Fixed
570* [Polymer] A number of fixes around warnings when resolving behaviors
571 * Warn, don't throw when a behavior is declared twice.
572 * Warn when there's a problem mixing behaviors into other behaviors, the same way that we warn when mixing behaviors into elements.
573
574* Fix some bugs with recursive and mutually recursive imports.
575
576### Added
577* Add `slots` to `Element`.
578
579## [2.0.0-alpha.17] - 2016-10-28 - [minor]
580
581### Added
582* Improve the way we expose the `ElementReference` type.
583
584## [2.0.0-alpha.16] - 2016-10-20
585
586### Added
587
588* Add a new default scanner for custom element references in html.
589 * Also adds a non-default scanner for all element references in html.
590 * Known bug: does not find element references inside of `<template>` elements.
591
592## [2.0.0-alpha.15] - 2016-10-15
593
594### Changed
595
596* (polymer) - computed properties are implicitly readOnly.
597
598* (editor service) - Greatly improve `getLocationForPosition` for determining the meaning of text at an HTML source location. Presently used for doing autocompletions.
599 * Handles the contents of `<template>` elements.
600 * Distinguishes attribute names from values.
601 * Understands when text is inside a comment, inline style, and inline script.
602 * Better handle many, many edge cases.