ts-morph
Version:
TypeScript compiler wrapper for static analysis and code manipulation.
869 lines (471 loc) • 151 kB
Markdown
# Change Log
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
<a name="10.0.1"></a>
## [10.0.1](https://github.com/dsherret/ts-morph/compare/10.0.0...10.0.1) (2021-02-24)
### Bug Fixes
* Fix ts-morph declaration file. ([e51eb0a](https://github.com/dsherret/ts-morph/commit/e51eb0a))
<a name="10.0.0"></a>
# [10.0.0](https://github.com/dsherret/ts-morph/compare/9.1.0...10.0.0) (2021-02-24)
### Bug Fixes
* [#889](https://github.com/dsherret/ts-morph/issues/889) - Fix internal root directory check to work on windows. ([6b2963c](https://github.com/dsherret/ts-morph/commit/6b2963c))
* [#926](https://github.com/dsherret/ts-morph/issues/926) - `ExportedDeclarations` should include `SourceFile` and fixed handling of namespace exports. ([b6bda27](https://github.com/dsherret/ts-morph/commit/b6bda27))
### Features
* [#916](https://github.com/dsherret/ts-morph/issues/916) - Type - Add literal related helper properties. ([fd0acc8](https://github.com/dsherret/ts-morph/commit/fd0acc8))
* [#924](https://github.com/dsherret/ts-morph/issues/924) - NamespaceDeclaration -> ModuleDeclaration ([3dd5c72](https://github.com/dsherret/ts-morph/commit/3dd5c72))
* Add `Node#getFlags()`. ([b9769c2](https://github.com/dsherret/ts-morph/commit/b9769c2))
* Add isKnownTypesPackageName option ([#909](https://github.com/dsherret/ts-morph/issues/909)) ([398d946](https://github.com/dsherret/ts-morph/commit/398d946))
* Bundle typescript package in ts-morph/common ([#934](https://github.com/dsherret/ts-morph/issues/934)) ([1cccd02](https://github.com/dsherret/ts-morph/commit/1cccd02))
* Upgrade to TS 4.2 ([8dacc4f](https://github.com/dsherret/ts-morph/commit/8dacc4f))
### BREAKING CHANGES
* Upgraded to TS 4.2 (see TypeScript blog for breaking changes).
* ts-morph did not properly support some ambient and all shorthand ambient module declarations. Now `NamespaceDeclaration` is `ModuleDeclaration`. You will need to rename anything that references "Namespace" and change it to "Module".
* The `ExportedDeclarations` union type now properly includes `SourceFile`. It previously could have done that anyway and your code might not have handled it.
* TypeScript is now bundled with ts-morph. You may still access TypeScript via `import { ts } from "ts-morph"` as you should have been doing anyway.
* The lib files/lib.d.ts files are now served from memory regardless of the file system host. If you want the old behaviour, specify a `libFolderPath` in the `Project` constructor's options.
<a name="9.1.0"></a>
# [9.1.0](https://github.com/dsherret/ts-morph/compare/9.0.0...9.1.0) (2020-11-26)
### Features
* Add Directory#getProject() ([bef39b8](https://github.com/dsherret/ts-morph/commit/bef39b8))
* Support providing file paths to `getRelativePathTo` and `getRelativePathToAsModuleSpecifier`. ([df43d12](https://github.com/dsherret/ts-morph/commit/df43d12))
<a name="9.0.0"></a>
# [9.0.0](https://github.com/dsherret/ts-morph/compare/8.2.0...9.0.0) (2020-11-21)
### Bug Fixes
* [#878](https://github.com/dsherret/ts-morph/issues/878) - Fix tsconfig file resolution ([#883](https://github.com/dsherret/ts-morph/issues/883)) ([23ab8f5](https://github.com/dsherret/ts-morph/commit/23ab8f5), [8c7e8ba](https://github.com/dsherret/ts-morph/commit/8c7e8ba)) - Thanks [@Zzzen](https://github.com/Zzzen)!
Previously ts-morph was incorrectly resolving files based on `rootDir` and `rootDirs`, but according to the nicely updated tsconfig documentation, these options have nothing to do with file resolution ([read more](https://www.typescriptlang.org/tsconfig#rootDir)). If you run into any trouble, try using `"include": ["./your-source-dir"]` at the top level of the config file instead of `"rootDir": ["./your-source-dir"]` in compiler options or please open an issue.
### Code Refactoring
* [#838](https://github.com/dsherret/ts-morph/issues/838) - `addFilesFromTsConfig` is now inverted to `skipAddingFilesFromTsConfig`. Default behaviour is the same. ([1fda310](https://github.com/dsherret/ts-morph/commit/1fda310))
### Features
* [#858](https://github.com/dsherret/ts-morph/issues/858) - Remove `BooleanLiteral` and replace with `TrueLiteral` and `FalseLiteral`. ([97f0873](https://github.com/dsherret/ts-morph/commit/97f0873))
* [#885](https://github.com/dsherret/ts-morph/issues/885) - Upgrade to TS 4.1 ([d5395f6](https://github.com/dsherret/ts-morph/commit/d5395f6))
### Performance Improvements
* [#881](https://github.com/dsherret/ts-morph/issues/881) - Implement `getProjectVersion` on `LanguageServiceHost` ([#884](https://github.com/dsherret/ts-morph/issues/884)) ([916ffb4](https://github.com/dsherret/ts-morph/commit/916ffb4), [646f797](https://github.com/dsherret/ts-morph/commit/646f797)) - Thanks [@geremih](https://github.com/geremih)!
### BREAKING CHANGES
* Upgraded to TS 4.1.
* `addFilesFromTsConfig` is now inverted to `skipAddingFilesFromTsConfig`. Default behaviour is the same.
This was done to make the option align with the other options.
* `BooleanLiteral` is now a type alias of `TrueLiteral` and `FalseLiteral`. This was done to match the same change made in the compiler API.
<a name="8.2.0"></a>
# [8.2.0](https://github.com/dsherret/ts-morph/compare/8.1.2...8.2.0) (2020-11-12)
### Features
* Add `Project#getConfigFileParsingDiagnostics`. ([3f9f252](https://github.com/dsherret/ts-morph/commit/3f9f252))
<a name="8.1.2"></a>
## [8.1.2](https://github.com/dsherret/ts-morph/compare/8.1.1...8.1.2) (2020-10-12)
### Bug Fixes
* Fixed adding const modifier to exported enum ([#875](https://github.com/dsherret/ts-morph/issues/875)) ([b539a07](https://github.com/dsherret/ts-morph/commit/b539a07)) - Thanks [@IKatsuba](https://github.com/IKatsuba)!
<a name="8.1.1"></a>
## [8.1.1](https://github.com/dsherret/ts-morph/compare/8.1.0...8.1.1) (2020-09-21)
### Bug Fixes
* [#867](https://github.com/dsherret/ts-morph/issues/867) - Inspecting and manipulating new expressions without parenthesis would throw. ([1e5c9c0](https://github.com/dsherret/ts-morph/commit/1e5c9c0))
<a name="8.1.0"></a>
# [8.1.0](https://github.com/dsherret/ts-morph/compare/0.8.0...8.1.0) (2020-08-25)
### Features
* [#803](https://github.com/dsherret/ts-morph/issues/803) - Standardize nodes with `getExpression()` method to be `ExpressionedNode`s. ([3550cbf](https://github.com/dsherret/ts-morph/commit/3550cbf))
* Add JSDocDeprecatedTag. ([d73c480](https://github.com/dsherret/ts-morph/commit/d73c480))
<a name="8.0.0"></a>
# [8.0.0](https://github.com/dsherret/ts-morph/compare/7.3.0...8.0.0) (2020-08-20)
### Bug Fixes
* [#853](https://github.com/dsherret/ts-morph/issues/853) - Fix nested sibling transformations ([59b31b1](https://github.com/dsherret/ts-morph/commit/59b31b1)) - Thanks [@vsiao](https://github.com/vsiao)!
### Features
* [#855](https://github.com/dsherret/ts-morph/issues/855) - Add Author, Callback, Enum, Implements JSDoc tags ([f5b4bc9](https://github.com/dsherret/ts-morph/commit/f5b4bc9)) - Thanks [@ilyaulyanov](https://github.com/ilyaulyanov)!
* [#857](https://github.com/dsherret/ts-morph/issues/857) - Upgrade to TypeScript 4.0 ([67017f9](https://github.com/dsherret/ts-morph/commit/67017f9))
### BREAKING CHANGES
* Upgraded to TypeScript 4.0
* `TupleTypeNode#getElementTypeNodes()` is now `getElements()` to match the change in the compiler API.
<a name="7.3.0"></a>
# [7.3.0](https://github.com/dsherret/ts-morph/compare/7.2.0...7.3.0) (2020-08-11)
### Features
* [#842](https://github.com/dsherret/ts-morph/issues/842) - Allow calling Node.is** functions with undefined value ([fff2cf8](https://github.com/dsherret/ts-morph/commit/fff2cf8)) - Thanks [@sisisin](https://github.com/sisisin)!
<a name="7.2.0"></a>
# [7.2.0](https://github.com/dsherret/ts-morph/compare/7.1.3...7.2.0) (2020-08-09)
### Bug Fixes
* [#840](https://github.com/dsherret/ts-morph/issues/840) - Correctly add name to class without name and with extends or implements. ([ed764a7](https://github.com/dsherret/ts-morph/commit/ed764a7))
### Features
* Add quotations around enum members with invalid names ([#839](https://github.com/dsherret/ts-morph/issues/839)) ([affc253](https://github.com/dsherret/ts-morph/commit/affc253)) Thanks [@jeswr](https://github.com/jeswr)!
* Implement JSDocReadonlyTag and others ([abbf208](https://github.com/dsherret/ts-morph/commit/abbf208))
<a name="7.1.3"></a>
## [7.1.3](https://github.com/dsherret/ts-morph/compare/7.1.2...7.1.3) (2020-07-20)
### Bug Fixes
* [#835](https://github.com/dsherret/ts-morph/issues/835) - Do not create a parent directory when checking if it exists. ([698a169](https://github.com/dsherret/ts-morph/commit/698a169))
<a name="7.1.2"></a>
## [7.1.2](https://github.com/dsherret/ts-morph/compare/7.1.1...7.1.2) (2020-06-18)
### Bug Fixes
* [#827](https://github.com/dsherret/ts-morph/issues/827) - `realpathSync` should not throw ([f427e57](https://github.com/dsherret/ts-morph/commit/f427e57))
<a name="7.1.1"></a>
## [7.1.1](https://github.com/dsherret/ts-morph/compare/7.1.0...7.1.1) (2020-06-04)
### Bug Fixes
* [#823](https://github.com/dsherret/ts-morph/issues/823) - SourceFile#replaceWithText would sometimes throw when previous code had syntax errors. ([cc66fc0](https://github.com/dsherret/ts-morph/commit/cc66fc0))
<a name="7.1.0"></a>
# [7.1.0](https://github.com/dsherret/ts-morph/compare/7.0.2...7.1.0) (2020-05-16)
### Bug Fixes
* [#817](https://github.com/dsherret/ts-morph/issues/817) - Fix addJsDoc failing when there's no non-whitespace/asterisk characters in the jsdoc. ([6ba8f5a](https://github.com/dsherret/ts-morph/commit/6ba8f5a))
### Features
* [#816](https://github.com/dsherret/ts-morph/issues/816) - Update Typescript 3.9.2 ([ce8ac9c](https://github.com/dsherret/ts-morph/commit/ce8ac9c))
<a name="7.0.3"></a>
## [7.0.3](https://github.com/dsherret/ts-morph/compare/7.0.2...7.0.3) (2020-04-26)
### Bug Fixes
* [#808](https://github.com/dsherret/ts-morph/issues/808) - Unwrap would throw an error if body starts or ends with comments. ([eba6037](https://github.com/dsherret/ts-morph/commit/eba6037))
<a name="7.0.2"></a>
## [7.0.2](https://github.com/dsherret/ts-morph/compare/7.0.1...7.0.2) (2020-04-08)
### Performance Improvements
* **manipulation:** [#807](https://github.com/dsherret/ts-morph/issues/807) - Optimise getTextFromTextChanges performance ([d6f461f](https://github.com/dsherret/ts-morph/commit/d6f461f)) - Thanks [@killagu](https://github.com/killagu)!
<a name="7.0.1"></a>
## [7.0.1](https://github.com/dsherret/ts-morph/compare/7.0.0...7.0.1) (2020-03-29)
### Bug Fixes
* [#799](https://github.com/dsherret/ts-morph/issues/799) - Support renaming anonymous class declarations ([253a43f](https://github.com/dsherret/ts-morph/commit/253a43f))
<a name="7.0.0"></a>
# [7.0.0](https://github.com/dsherret/ts-morph/compare/6.0.2...7.0.0) (2020-02-23)
### Bug Fixes
* [#778](https://github.com/dsherret/ts-morph/issues/778) - Fixes error being thrown when inserting after a jsdoc and the jsdoc is the last member or statement. ([e069eff](https://github.com/dsherret/ts-morph/commit/e069eff))
* [#783](https://github.com/dsherret/ts-morph/issues/783) - Fix broken documentation links on npm. ([c997339](https://github.com/dsherret/ts-morph/commit/c997339))
### Code Refactoring
* Only support Node 10+. ([2339210](https://github.com/dsherret/ts-morph/commit/2339210))
### Features
* [#779](https://github.com/dsherret/ts-morph/issues/779) - Implement JSDocTemplateTag and JSDocThisTag. ([9bfc32e](https://github.com/dsherret/ts-morph/commit/9bfc32e))
* [#782](https://github.com/dsherret/ts-morph/issues/782) - Add `Node#getProject()` ([35f6bcf](https://github.com/dsherret/ts-morph/commit/35f6bcf))
* Support TypeScript 3.8. ([a2785b4](https://github.com/dsherret/ts-morph/commit/a2785b4))
### BREAKING CHANGES
* Only Node 10+ has full support. Some functionality might not work on older versions of Node.
* Update to TypeScript 3.8.
<a name="6.0.2"></a>
## [6.0.2](https://github.com/dsherret/ts-morph/compare/6.0.1...6.0.2) (2019-12-08)
### Bug Fixes
* Fix incorrect count when getting line count.
<a name="6.0.1"></a>
## [6.0.1](https://github.com/dsherret/ts-morph/compare/6.0.0...6.0.1) (2019-12-07)
I unpublished 6.0.0 and published this version instead.
### Bug Fixes
* `JSDocTag#getStructure()` was not including newlines at the start in the text. ([543c7e6](https://github.com/dsherret/ts-morph/commit/543c7e6))
* `Structures` should contain `JSDocTagStructure` ([f9f8bbc](https://github.com/dsherret/ts-morph/commit/f9f8bbc))
* Fix JSDoc being printed without blank lines. ([8a84ddf](https://github.com/dsherret/ts-morph/commit/8a84ddf))
* Fix JSDocTag printing an immediate text newline with a trailing whitespace. ([be44781](https://github.com/dsherret/ts-morph/commit/be44781))
* Fix JSDocTag#getStructure() not returning the whole tag text. ([c096d30](https://github.com/dsherret/ts-morph/commit/c096d30))
<a name="6.0.0"></a>
# [6.0.0](https://github.com/dsherret/ts-morph/compare/5.0.0...6.0.0) (2019-12-07)
### Bug Fixes
* **common:** Fix running in the browser. ([7d81e98](https://github.com/dsherret/ts-morph/commit/7d81e98))
* Fix bug where `Project#getRootDirectories()` might return a directory not in the project. ([e9878b1](https://github.com/dsherret/ts-morph/commit/e9878b1))
* Getting symbol exports by name should call `ts.escapeLeadingUnderscores` on the name. ([d2694ba](https://github.com/dsherret/ts-morph/commit/d2694ba))
### Code Refactoring
* [#767](https://github.com/dsherret/ts-morph/issues/767) - Rename `StructureTypeGuards` -> `Structure` ([b28ed73](https://github.com/dsherret/ts-morph/commit/b28ed73))
* `FileSystemHost#glob` is now asynchronous. A `globSync` method was added. ([942db7a](https://github.com/dsherret/ts-morph/commit/942db7a))
### Features
* [#764](https://github.com/dsherret/ts-morph/issues/764) - Prefer writing single line JS docs. Add JSDoc#isMultiLine(). ([59c8d38](https://github.com/dsherret/ts-morph/commit/59c8d38))
* **bootstrap:** Rename addSourceFiles -> addSourceFilesByPaths to match ts-morph. ([439a0d5](https://github.com/dsherret/ts-morph/commit/439a0d5))
* [#710](https://github.com/dsherret/ts-morph/issues/710) - Manipulation error now throws a custom error object. ([a8881d7](https://github.com/dsherret/ts-morph/commit/a8881d7))
* [#741](https://github.com/dsherret/ts-morph/issues/741) - `Directory#getSourceFiles` now accepts globs. ([b78cd39](https://github.com/dsherret/ts-morph/commit/b78cd39))
* [#750](https://github.com/dsherret/ts-morph/issues/750) - Creating an in-memory file system now loads the lib files by default. ([b1ff3ef](https://github.com/dsherret/ts-morph/commit/b1ff3ef))
* [#750](https://github.com/dsherret/ts-morph/issues/750) - The virtual file system host will have lib files loaded by default. ([8a8cf93](https://github.com/dsherret/ts-morph/commit/8a8cf93))
* [#760](https://github.com/dsherret/ts-morph/issues/760) - Move TypeGuards to be static members of Node (methods still exist on TypeGuards, but will be removed later). ([9b1e659](https://github.com/dsherret/ts-morph/commit/9b1e659)), closes [#728](https://github.com/dsherret/ts-morph/issues/728)
* [#763](https://github.com/dsherret/ts-morph/issues/763) - Add Directory#clear(). ([df93db3](https://github.com/dsherret/ts-morph/commit/df93db3))
* [#765](https://github.com/dsherret/ts-morph/issues/765) - Add QuestionDotTokenableNode. ([b620848](https://github.com/dsherret/ts-morph/commit/b620848))
* `SourceFile#applyTextChanges` now accepts objects of type `ts.TextChange`. ([e72c3f0](https://github.com/dsherret/ts-morph/commit/e72c3f0))
* Add `getTypeExpressionOrThrow()` to `JSDocReturnTag` and `JSDocPropertyLikeTag` ([8102360](https://github.com/dsherret/ts-morph/commit/8102360))
* Add `JSDoc#insertTags` and similar methods. ([67a2a66](https://github.com/dsherret/ts-morph/commit/67a2a66))
* Add `JSDocTag#remove()`. ([8b037aa](https://github.com/dsherret/ts-morph/commit/8b037aa))
* Add `JSDocTag#setTagName` ([688b783](https://github.com/dsherret/ts-morph/commit/688b783))
* Add JSDocTagStructure. ([aab3e9c](https://github.com/dsherret/ts-morph/commit/aab3e9c))
* Expose `InMemoryFileSystemHost`. ([2176f2c](https://github.com/dsherret/ts-morph/commit/2176f2c))
* Rename `useVirtualFileSystem` to `useInMemoryFileSystem` ([b69750c](https://github.com/dsherret/ts-morph/commit/b69750c))
* Support declare keyword on class properties. ([7a0c1ab](https://github.com/dsherret/ts-morph/commit/7a0c1ab))
* Upgrade to code-block-writer 10.1.0. ([5eaf5ff](https://github.com/dsherret/ts-morph/commit/5eaf5ff))
* Wrap `BigIntLiteral`. ([85eaa12](https://github.com/dsherret/ts-morph/commit/85eaa12))
### performance
* [#702](https://github.com/dsherret/ts-morph/issues/702) - Fix Project#addSourceFileAtPaths being needlessly slow in some scenarios. ([6db6f60](https://github.com/dsherret/ts-morph/commit/6db6f60))
### BREAKING CHANGES
* `JSDoc#setComment(...)` and `#getComment(...)` are now `setDescription(...)` and `getDescription()`. They also work according to #764.
* `StructureTypeGuards` is now `Structure`.
* PropertyDeclarationDeclaration and PropertyDeclarationStructure now can have a `declare` keyword (new in TS 3.7).
* JS docs will be written as a single line unless multi-line or starting with a newline. Additionally, getting a JS doc structure will have a newline at the start if the JS doc description is one line, but the JS doc is multi-line.
* `ProjectOptions#useVirtualFileSystem` is now `useInMemoryFileSystem`. This is a more accurate name.
* Creating a Project with `useInMemoryFileSystem: true` will now load in the lib files into the `node_modules/typescript/lib` folder.
* Due to the fix for #702, when using `Project#addSourceFileAtPaths` directories that do not have an ancestor directory with a source file included in the results will no longer be added to the project. If you want to ensure that a directory and all its subfolders are added, use `Project#addDirectoryAtPath(path, { recursive: true })`.
* `FileSystemHost#glob` is now asynchronous and `#globSync` was added.
* Renamed `Directory/Project#addExistingSourceFile` -> `addSourceFileAtPath`
* Renamed `Directory/Project#addExistingSourceFileIfExists` -> `addSourceFileAtPathIfExists`
* Renamed `Directory/Project#addExistingSourceFiles` -> `addSourceFilesAtPaths`
* Renamed `Directory/Project#addExistingDirectory` -> `addDirectoryAtPath`
* Renamed `Directory/Project#addExistingDirectoryIfExists` -> `addDirectoryAtPathIfExists`
<a name="5.0.0"></a>
# [5.0.0](https://github.com/dsherret/ts-morph/compare/4.3.3...5.0.0) (2019-11-08)
### Features
* [#733](https://github.com/dsherret/ts-morph/issues/733) - Soft rename addExistingSourceFile-like methods to addSourceFileAtPath-like. ([59fc2d5](https://github.com/dsherret/ts-morph/commit/59fc2d5)) - Thanks [@ChristianIvicevic](https://github.com/ChristianIvicevic)!
* Support TypeScript 3.7. ([d86d034](https://github.com/dsherret/ts-morph/commit/d86d034))
* TS 3.7 - Add TypeChecker#getTypeArguments and use that in Type#getTypeArguments. ([616ea3e](https://github.com/dsherret/ts-morph/commit/616ea3e))
* Update implementation for [#733](https://github.com/dsherret/ts-morph/issues/733). ([3613233](https://github.com/dsherret/ts-morph/commit/3613233))
### BREAKING CHANGES
* TypePredicateNode#getTypeNode() now possible returns undefined.
* Recommended to use the new `Project#addSourceFileAtPath(path)` methods instead of the ones like `Project#addExistingSourceFile(path)`. The old way will be deprecated in Version 6.
* TypeScript 3.7.x support only.
<a name="4.3.3"></a>
## [4.3.3](https://github.com/dsherret/ts-morph/compare/4.3.2...4.3.3) (2019-11-07)
### Bug Fixes
* Restrict 4.3 version of library to TS < 3.7 ([8ad2d5c](https://github.com/dsherret/ts-morph/commit/8ad2d5c))
<a name="4.3.2"></a>
## [4.3.2](https://github.com/dsherret/ts-morph/compare/4.3.1...4.3.2) (2019-10-22)
### Bug Fixes
* [#745](https://github.com/dsherret/ts-morph/issues/745) - Inserting a member when a comment was the last member would throw. ([d83c031](https://github.com/dsherret/ts-morph/commit/d83c031))
<a name="4.3.0"></a>
# [4.3.0](https://github.com/dsherret/ts-morph/compare/4.2.0...4.3.0) (2019-10-17)
### Bug Fixes
* [#735](https://github.com/dsherret/ts-morph/issues/735) - An unwrappable node would throw an error on unwrap if it had a leading comment. ([2cc4796](https://github.com/dsherret/ts-morph/commit/2cc4796))
### Features
* Add `Node#getWidth(true)` for including js docs in the width (similar to `Node#getStart(true)` in the compiler api). ([03dda0b](https://github.com/dsherret/ts-morph/commit/03dda0b))
<a name="4.2.0"></a>
# [4.2.0](https://github.com/dsherret/ts-morph/compare/4.1.1...4.2.0) (2019-10-05)
### Bug Fixes
* Fix abstract keyword accidentally being printed before scope. ([c7734dc](https://github.com/dsherret/ts-morph/commit/c7734dc))
* Fix message for Type#getDefaultOrThrow() ([ed1ced7](https://github.com/dsherret/ts-morph/commit/ed1ced7))
### Features
* [#655](https://github.com/dsherret/ts-morph/issues/655) - ExpressionNode - Add `getExpressionIfKind` methods. ([332fb7e](https://github.com/dsherret/ts-morph/commit/332fb7e))
* [#707](https://github.com/dsherret/ts-morph/issues/707) - Add `useTrailingCommas` manipulation setting option. ([938c05c](https://github.com/dsherret/ts-morph/commit/938c05c))
* [#712](https://github.com/dsherret/ts-morph/issues/712) - Add getParentIf and getParentIfOrThrow ([9e037b6](https://github.com/dsherret/ts-morph/commit/9e037b6)) ([@HoldYourWaffle](https://github.com/HoldYourWaffle))
* [#717](https://github.com/dsherret/ts-morph/issues/717) - Update `forgetNodesCreatedInBlock` to allow returning a value. ([fda5970](https://github.com/dsherret/ts-morph/commit/fda5970))
* [#722](https://github.com/dsherret/ts-morph/issues/722) - Wrap TypePredicateNode. ([9af7b34](https://github.com/dsherret/ts-morph/commit/9af7b34))
* Add `Node#forEachDescendantAsArray` ([2043ccb](https://github.com/dsherret/ts-morph/commit/2043ccb))
### Performance Improvements
* [#612](https://github.com/dsherret/ts-morph/issues/612) - insertOverloads should only print. ([8777007](https://github.com/dsherret/ts-morph/commit/8777007))
<a name="4.1.1"></a>
## [4.1.1](https://github.com/dsherret/ts-morph/compare/4.1.0...4.1.1) (2019-10-01)
### Bug Fixes
* [#708](https://github.com/dsherret/ts-morph/issues/708) - `getNonWhitespaceStart()` should not include the previous node's trailing comment. ([380c39b](https://github.com/dsherret/ts-morph/commit/380c39b))
* [#708](https://github.com/dsherret/ts-morph/issues/708) - Removing an IfStatement with a preceding else keyword will no longer error. ([f886605](https://github.com/dsherret/ts-morph/commit/f886605))
<a name="4.1.0"></a>
# [4.1.0](https://github.com/dsherret/ts-morph/compare/4.0.1...4.1.0) (2019-09-28)
### Features
* [#709](https://github.com/dsherret/ts-morph/issues/709) - Check and display syntax diagnostics when a manipulation error occurs. ([07c42b1](https://github.com/dsherret/ts-morph/commit/07c42b1))
* [#703](https://github.com/dsherret/ts-morph/issues/703) - Expand TypeGuards.is implementation to include all node kinds. ([ae82879](https://github.com/dsherret/ts-morph/commit/ae82879)) ([@lazarljubenovic](https://github.com/lazarljubenovic))
<a name="4.0.1"></a>
## [4.0.1](https://github.com/dsherret/ts-morph/compare/4.0.0...4.0.1) (2019-09-12)
Thanks to [@cancerberoSgx](https://github.com/cancerberoSgx) for discovering this was a node >= 11 issue.
### Bug Fixes
* [#685](https://github.com/dsherret/ts-morph/issues/685) - Fix `applyTextChanges` in node 11 and 12. ([e72b124](https://github.com/dsherret/ts-morph/commit/e72b124))
<a name="4.0.0"></a>
# [4.0.0](https://github.com/dsherret/ts-morph/compare/3.1.3...4.0.0) (2019-09-02)
### Bug Fixes
* [#667](https://github.com/dsherret/ts-morph/issues/667) - Fix typo in adding-source-files.md ([d635f69](https://github.com/dsherret/ts-morph/commit/d635f69))
* [#691](https://github.com/dsherret/ts-morph/issues/691) - JSDoc.getInnerText would sometimes get the wrong text if the first line content contained an asterisk. ([0661508](https://github.com/dsherret/ts-morph/commit/0661508)) - Thanks [@cancerberoSgx](https://github.com/cancerberoSgx)!
* [#692](https://github.com/dsherret/ts-morph/issues/692) - Fix getParent() for TS 3.6. ([37476f8](https://github.com/dsherret/ts-morph/commit/37476f8))
### Code Refactoring
* [#680](https://github.com/dsherret/ts-morph/issues/680) - Rename `SourceFile#getReferencedFiles()` to `getPathReferenceDirectives()`. ([578adc7](https://github.com/dsherret/ts-morph/commit/578adc7))
* `DiagnosticMessageChain#getNext()` now returns an array to match TS 3.6. ([4943196](https://github.com/dsherret/ts-morph/commit/4943196))
* Remove getEmitSkipped() from DirectoryEmitResult because it was not accurate. ([f42ff74](https://github.com/dsherret/ts-morph/commit/f42ff74))
* Rename CompilerExtendedComment to CompilerCommentNode. ([e3db1db](https://github.com/dsherret/ts-morph/commit/e3db1db))
### Features
* [#666](https://github.com/dsherret/ts-morph/issues/666) - Calling `Project#createSourceFile` with an existing file name now suggests to add the overwrite option. ([3022bb8](https://github.com/dsherret/ts-morph/commit/3022bb8))
* [#669](https://github.com/dsherret/ts-morph/issues/669) - Add past parent as second parameter to getParentWhile ([287158e](https://github.com/dsherret/ts-morph/commit/287158e)) - Thanks [@Validark](https://github.com/Validark)!
* [#672](https://github.com/dsherret/ts-morph/issues/672) - Add `Type#getPropertyOrThrow` ([c929c6c](https://github.com/dsherret/ts-morph/commit/c929c6c))
* [#680](https://github.com/dsherret/ts-morph/issues/680) - Add `SourceFile#getReferencedSourceFiles()`, `#getNodesReferencingOtherSourceFiles()`, and `#getLiteralsReferencingOtherSourceFiles()`. ([c245acc](https://github.com/dsherret/ts-morph/commit/c245acc))
* Upgrade to code-block-writer 10.0.0. ([5708865](https://github.com/dsherret/ts-morph/commit/5708865))
### Performance Improvements
* [#661](https://github.com/dsherret/ts-morph/issues/661) - Bundle scripts ([6efa96d](https://github.com/dsherret/ts-morph/commit/6efa96d))
### BREAKING CHANGES
* `SourceFile#getReferencedFiles()` is now `getPathReferenceDirectives()`.
This was done to prevent confusion with upcoming methods in #680. The name was chosen because it is similar to the methods `getTypeReferenceDirectives()` and `getLibReferenceDirectives()`.
* `CodeBlockWriter#indentBlock` is now `indent`. `withHangingIndentation` is now `hangingIndent`. `withHangingIndentationUnlessBlock` is now `hangingIndentUnlessBlock`.
* `DiagnosticMessageChain#getNext()` now returns an array to match TS 3.6.
* `DirectoryEmitResult#getEmitSkipped()` was removed. Check the output file paths and skipped file paths instead as that's more accurate.
* `CompilerExtendedComment` is now called `CompilerCommentNode`.
<a name="3.1.3"></a>
## [3.1.3](https://github.com/dsherret/ts-morph/compare/3.1.2...3.1.3) (2019-07-18)
### Bug Fixes
* [#665](https://github.com/dsherret/ts-morph/issues/665) - Getting descendants where jsx was used in a non-jsx file would throw an error. ([fa3c3bb](https://github.com/dsherret/ts-morph/commit/fa3c3bb))
<a name="3.1.2"></a>
## [3.1.2](https://github.com/dsherret/ts-morph/compare/3.1.1...3.1.2) (2019-07-16)
### Bug Fixes
* Fix windows glob filepaths problem due to upgrading to latest globby. ([e9665a0](https://github.com/dsherret/ts-morph/commit/e9665a0))
* Update to code-block-writer 9.4.1 (Removes accidentally added chai dependency). ([fd6534c](https://github.com/dsherret/ts-morph/commit/fd6534c))
<a name="3.1.1"></a>
## [3.1.1](https://github.com/dsherret/ts-morph/compare/3.0.0...3.1.1) (2019-07-13)
### Bug Fixes
* [#663](https://github.com/dsherret/ts-morph/issues/663) - Update globby to 10.0.1. ([07f3417](https://github.com/dsherret/ts-morph/commit/07f3417))
<a name="3.1.0"></a>
# [3.1.0](https://github.com/dsherret/ts-morph/compare/3.0.0...3.1.0) (2019-07-03)
### Features
* [#657](https://github.com/dsherret/ts-morph/issues/657) - Ability to specify the script kind when creating a source file. ([cb22219](https://github.com/dsherret/ts-morph/commit/cb22219))
* Add DirectoryEmitResult#getSkippedFilePaths(). ([e92ea8d](https://github.com/dsherret/ts-morph/commit/e92ea8d))
### Bug Fixes
* Emitting a source file not in the program will no longer crash.
<a name="3.0.0"></a>
# [3.0.0](https://github.com/dsherret/ts-morph/compare/2.3.0...3.0.0) (2019-06-29)
### Bug Fixes
* [#534](https://github.com/dsherret/ts-morph/issues/534) - Incorrect type resolution behaviour when providing a tsconfig.json file path and having a different current working directory. ([0ecce83](https://github.com/dsherret/ts-morph/commit/0ecce83))
* [#648](https://github.com/dsherret/ts-morph/issues/648) - Comment nodes are no longer accidentally returned in some scenarios. ([ad4c64c](https://github.com/dsherret/ts-morph/commit/ad4c64c))
* ClassLike and TypeElementMembered nodes would not get the correct "add" index when a comment member node was present. ([571ba69](https://github.com/dsherret/ts-morph/commit/571ba69))
* Comment node parser now correctly returns comments on next line after tailing comma in object literal expressions. ([966acb0](https://github.com/dsherret/ts-morph/commit/966acb0))
* Fix issues with `Node#getText({ trimLeadingIndentation: true })` indenting more than it should. ([a2210de](https://github.com/dsherret/ts-morph/commit/a2210de))
* ObjectLiteralExpression insert should insert around comment nodes. ([c3b9f28](https://github.com/dsherret/ts-morph/commit/c3b9f28)), closes [#605](https://github.com/dsherret/ts-morph/issues/605)
* Support nodes that may not have a source file (ex. `globalThis` node returned from a symbol) ([b9b0cb0](https://github.com/dsherret/ts-morph/commit/b9b0cb0))
### Code Refactoring
* [#619](https://github.com/dsherret/ts-morph/issues/619) - Rename `StructureTypeGuards` methods to remove word `Node` and `Declaration` in certain cases. ([92331e1](https://github.com/dsherret/ts-morph/commit/92331e1))
* [#633](https://github.com/dsherret/ts-morph/issues/633) - `Node#forEachChild` is now aligned with the compiler API (same with `forEachDescendant`). ([27fa43a](https://github.com/dsherret/ts-morph/commit/27fa43a))
* `SourceFile#getTypeReferenceDirectives()` and `#getReferencedFiles()` better reflects the compiler api. ([350bacb](https://github.com/dsherret/ts-morph/commit/350bacb))
* Remove `renameNode` and `renameLocations` from the language service. ([72f0e1d](https://github.com/dsherret/ts-morph/commit/72f0e1d))
* Rename `ObjectLiteralElementMemberStructures` to `ObjectLiteralExpressionPropertyStructures`. ([98f00d2](https://github.com/dsherret/ts-morph/commit/98f00d2))
### Features
* [#310](https://github.com/dsherret/ts-morph/issues/310) - Add `Symbol#getExportSymbol` and `TypeChecker#getExportSymbolOfSymbol`. ([5fce598](https://github.com/dsherret/ts-morph/commit/5fce598))
* [#561](https://github.com/dsherret/ts-morph/issues/561) - Add methods `Node#getLocals`, `#getLocalByName`, `#getLocalByNameOrThrow` ([c343de3](https://github.com/dsherret/ts-morph/commit/c343de3))
* [#605](https://github.com/dsherret/ts-morph/issues/605) - Add ability to insert comments on enum declarations. ([0420ae1](https://github.com/dsherret/ts-morph/commit/0420ae1))
* [#605](https://github.com/dsherret/ts-morph/issues/605) - Add insertMember-like methods to `ClassLikeDeclarationBase`. ([f55850b](https://github.com/dsherret/ts-morph/commit/f55850b))
* [#605](https://github.com/dsherret/ts-morph/issues/605) - Add insertMember-like methods to `TypeElementMemberedNode`. ([93a070d](https://github.com/dsherret/ts-morph/commit/93a070d))
* [#605](https://github.com/dsherret/ts-morph/issues/605) - ObjectLiteralExpression#insertProperties and similar methods. ([be0f046](https://github.com/dsherret/ts-morph/commit/be0f046))
* [#625](https://github.com/dsherret/ts-morph/issues/625) - Add `writer.withHangingIndent(() => {})`. Also better hanging indent printing ([a544e55](https://github.com/dsherret/ts-morph/commit/a544e55)), closes [#616](https://github.com/dsherret/ts-morph/issues/616)
* Add `Writers` alias for `WriterFunctions`. ([79c6694](https://github.com/dsherret/ts-morph/commit/79c6694))
* [#636](https://github.com/dsherret/ts-morph/issues/636) - Writers.returnStatement should do hanging indent in certain cases. ([db6602d](https://github.com/dsherret/ts-morph/commit/db6602d))
* [#638](https://github.com/dsherret/ts-morph/issues/638) - RenameLocation - Support `prefixText` and `suffixText` when renaming. ([9326100](https://github.com/dsherret/ts-morph/commit/9326100))
* `RenameLocation` - Add `getPrefixText()` and `getSuffixText()` ([3cb7a7f](https://github.com/dsherret/ts-morph/commit/3cb7a7f))
* Add `Node#getSymbolsInScope(meaning)` and `TypeChecker#getSymbolsInScope(node, meaning)`. ([25ab43d](https://github.com/dsherret/ts-morph/commit/25ab43d))
* Add TypeGuards.isCommentNode. ([89125a2](https://github.com/dsherret/ts-morph/commit/89125a2))
* Add WriterFunctions.assertion. ([37c875e](https://github.com/dsherret/ts-morph/commit/37c875e))
* Smart comma insertion when printing comma separated values with comments. ([ae62b07](https://github.com/dsherret/ts-morph/commit/ae62b07))
* Upgrade to code-block-writer 9.4.0.
### Performance Improvements
* [#615](https://github.com/dsherret/ts-morph/issues/615) - Remove some internal regular expressions. ([cfce40b](https://github.com/dsherret/ts-morph/commit/cfce40b))
* Improve performance of `SourceFile#indent()` and `deindent()`. ([17eefea](https://github.com/dsherret/ts-morph/commit/17eefea))
### BREAKING CHANGES
* `renameNode` and `renameLocations` are removed from the language service. To be consistent, the language service should not have methods that manipulate nodes.
* `SourceFile#getTypeReferenceDirectives()` and `#getReferencedFiles()` now return the objects similar to what the compiler api returns.
* `Node#forEachChild` is now aligned with the compiler API (same with `forEachDescendant`). These methods now stop when a value is returned in a callback and they will return the returned value.
* The `ObjectLiteralElementMemberStructures` alias is now called `ObjectLiteralExpressionPropertyStructures`. This is a more correct name as an object literal expression has "properties" rather than "members" in the compiler api.
* Renamed `StructureTypeGuards` methods to remove word `Node` and `Declaration` in certain cases.
<a name="2.3.0"></a>
# [2.3.0](https://github.com/dsherret/ts-morph/compare/2.2.0...2.3.0) (2019-05-30)
Thanks to [@marikaner](https://github.com/marikaner) for implementing the feature in this release!
### Features
* [#635](https://github.com/dsherret/ts-morph/issues/635) - Add `WriterFunctions.returnStatement` ([10e8be1](https://github.com/dsherret/ts-morph/commit/10e8be1))
<a name="2.2.0"></a>
# [2.2.0](https://github.com/dsherret/ts-morph/compare/2.1.2...2.2.0) (2019-05-25)
### Features
* [#628](https://github.com/dsherret/ts-morph/issues/628) - Custom module and type reference directive resolution ([c38c77f](https://github.com/dsherret/ts-morph/commit/c38c77f)) - Thanks [@DanTsk](https://github.com/DanTsk)!
* Add `Project#getModuleResolutionHost()` ([9085100](https://github.com/dsherret/ts-morph/commit/9085100))
<a name="2.1.2"></a>
## [2.1.2](https://github.com/dsherret/ts-morph/compare/2.1.1...2.1.2) (2019-05-20)
### Bug Fixes
* ObjectLiteralExpression methods would not get the correct "add" index when a comment member node was present. ([23f9276](https://github.com/dsherret/ts-morph/commit/23f9276))
<a name="2.1.1"></a>
## [2.1.1](https://github.com/dsherret/ts-morph/compare/2.1.0...2.1.1) (2019-05-20)
### Bug Fixes
* ClassLike and TypeElementMembered nodes would not get the correct "add" index when a comment member node was present. ([af41a29](https://github.com/dsherret/ts-morph/commit/af41a29))
<a name="2.1.0"></a>
# [2.1.0](https://github.com/dsherret/ts-morph/compare/2.0.0...2.1.0) (2019-04-29)
### Bug Fixes
* `TypeParameterDeclaration#getStructure()` should trim leading indentation on contraint and default. ([ec971ce](https://github.com/dsherret/ts-morph/commit/ec971ce))
* Mixin type guards should maintain the passed in type. ([616c4cc](https://github.com/dsherret/ts-morph/commit/616c4cc))
### Features
* [#567](https://github.com/dsherret/ts-morph/issues/567) - Update `#getStatement()` to work with type guards. ([02c8d89](https://github.com/dsherret/ts-morph/commit/02c8d89))
* [#614](https://github.com/dsherret/ts-morph/issues/614) - Add forEachStructureChild ([f8b0f6d](https://github.com/dsherret/ts-morph/commit/f8b0f6d))
* Add `StructureTypeGuards`. ([6138472](https://github.com/dsherret/ts-morph/commit/6138472))
* Wrap `ConditionalTypeNode`. ([5e3e74c](https://github.com/dsherret/ts-morph/commit/5e3e74c))
* Wrap `InferTypeNode`. ([ec4b3f2](https://github.com/dsherret/ts-morph/commit/ec4b3f2))
* Wrap `ThisTypeNode`. ([6655c51](https://github.com/dsherret/ts-morph/commit/6655c51))
### Performance Improvements
* Upgrade to code-block-writer 8.0.0. ([218442b](https://github.com/dsherret/ts-morph/commit/218442b))
<a name="2.0.0"></a>
# [2.0.0](https://github.com/dsherret/ts-morph/compare/1.3.2...2.0.0) (2019-04-20)
### Bug Fixes
* The code writer did not handle escaping string chars in strings. ([a87850e](https://github.com/dsherret/ts-morph/commit/a87850e))
* `Node#getDescendantStatements()` is now properly typed as possibly returning an `Expression`. ([9d26400](https://github.com/dsherret/ts-morph/commit/9d26400))
* `ReturnTypedNode` and `TypedNode`'s `#getStructure()` should return the type and return type text without leading indentation. ([4d95e64](https://github.com/dsherret/ts-morph/commit/4d95e64))
* DefinitionInfo.getDeclarationNode() should return a source file when the kind is "module" and width equal to the source file. ([967206f](https://github.com/dsherret/ts-morph/commit/967206f))
* Do not add trailing whitespace when a jsdoc's description includes a blank line. ([cf314da](https://github.com/dsherret/ts-morph/commit/cf314da))
* Fix removing class elements on object literal expressions. ([4e1464e](https://github.com/dsherret/ts-morph/commit/4e1464e))
* Getting/inserting statements on a ModuleBlock was throwing an error. ([2b8adad](https://github.com/dsherret/ts-morph/commit/2b8adad))
* `isOverload()` should return `true` for abstract methods. ([558cdd1](https://github.com/dsherret/ts-morph/commit/558cdd1))
### Chores
* `EnumMember#getStructure()` no longer returns `#value` and will only return `#initializer`. ([ed25348](https://github.com/dsherret/ts-morph/commit/ed25348))
### Code Refactoring
* FileSystemHost.isCaseSensitive() is now required in implementations. ([015a124](https://github.com/dsherret/ts-morph/commit/015a124))
* InitializerGetExpressionableNode is now InitializerExpressionGetableNode for consistency. ([27c25c9](https://github.com/dsherret/ts-morph/commit/27c25c9))
* Remove `VariableDeclarationListStructure` and `VariableDeclarationList#set` and `#getStructure` ([e6953ed](https://github.com/dsherret/ts-morph/commit/e6953ed))
* Remove InitializerSetExpressionableNode. ([990c3c1](https://github.com/dsherret/ts-morph/commit/990c3c1))
* Removed default export from library. ([f127cf4](https://github.com/dsherret/ts-morph/commit/f127cf4))
* Renamed `Type#getArrayType()` to `Type#getArrayElementType()`. ([56b4935](https://github.com/dsherret/ts-morph/commit/56b4935))
### Features
* [#470](https://github.com/dsherret/ts-morph/issues/470) - Node - Ability to get text without leading indentation. ([cd380fa](https://github.com/dsherret/ts-morph/commit/cd380fa))
* [#514](https://github.com/dsherret/ts-morph/issues/514) - Add Node#forEachChildAsArray() ([ba4cd7a](https://github.com/dsherret/ts-morph/commit/ba4cd7a))
* [#563](https://github.com/dsherret/ts-morph/issues/563) - ParameterDeclaration now implements BindingNamedNode instead of DeclarationNamedNode. ([debd09b](https://github.com/dsherret/ts-morph/commit/debd09b))
* [#573](https://github.com/dsherret/ts-morph/issues/573) - ModuledNode#getExportedDeclarations() now returns a map. ([752aaf1](https://github.com/dsherret/ts-morph/commit/752aaf1))
* [#575](https://github.com/dsherret/ts-morph/issues/575) - Extended comments ([a9cc491](https://github.com/dsherret/ts-morph/commit/a9cc491))
* [#581](https://github.com/dsherret/ts-morph/issues/581) - TraversalControl - Add ability to return a value. ([d072b63](https://github.com/dsherret/ts-morph/commit/d072b63))
* [#587](https://github.com/dsherret/ts-morph/issues/587) - SourceFile#getLineAndColumnAtPos ([b987657](https://github.com/dsherret/ts-morph/commit/b987657)) - Thanks [@cancerberoSgx](https://github.com/cancerberoSgx)!
* [#588](https://github.com/dsherret/ts-morph/issues/588) - Move `ChildOrderableNode` to `Statement`. ([b5ff9ad](https://github.com/dsherret/ts-morph/commit/b5ff9ad))
* [#595](https://github.com/dsherret/ts-morph/issues/595) - Add SourceFile#fixUnusedIdentifiers ([e4b1b64](https://github.com/dsherret/ts-morph/commit/e4b1b64)) - [@cancerberoSgx](https://github.com/cancerberoSgx)
* [#596](https://github.com/dsherret/ts-morph/issues/596) - Add `CombinedCodeAction#applyChanges()` ([2566d53](https://github.com/dsherret/ts-morph/commit/2566d53))
* [#601](https://github.com/dsherret/ts-morph/issues/601) - Add `RefactorEditInfo#applyChanges()` ([ca0ca8c](https://github.com/dsherret/ts-morph/commit/ca0ca8c)) - [@cancerberoSgx](https://github.com/cancerberoSgx)
* [#603](https://github.com/dsherret/ts-morph/issues/603) - Make `emit` async and add new `emitSync` ([8a8c1c7](https://github.com/dsherret/ts-morph/commit/8a8c1c7))
* [#606](https://github.com/dsherret/ts-morph/issues/606) - `Symbol#getXByName`-like methods are now `Symbol#getX`. ([08f0710](https://github.com/dsherret/ts-morph/commit/08f0710))
* `#addStatements`/`#insertStatements` now also accepts an array of strings or writer functions. ([d1c361a](https://github.com/dsherret/ts-morph/commit/d1c361a))
* Ability to add/insert statement structures. ([faaa2cd](https://github.com/dsherret/ts-morph/commit/faaa2cd))
* Add `Type#getArrayElementTypeOrThrow()` ([cfd420e](https://github.com/dsherret/ts-morph/commit/cfd420e))
* Add ClassMemberStructures, InterfaceMemberStructures, and Structures type aliases. ([3af3d32](https://github.com/dsherret/ts-morph/commit/3af3d32))
* Add ObjectLiteralElement. ([a40a46d](https://github.com/dsherret/ts-morph/commit/a40a46d))
* getName() should always just return the name node text. ([968c13c](https://github.com/dsherret/ts-morph/commit/968c13c))
* Removed `Project#applyFileTextChanges()`. Added `FileTextChanges#applyChanges()`. ([4c62acb](https://github.com/dsherret/ts-morph/commit/4c62acb))
* Replace `StatementedNode` with new `.statements` property / Add trivia properties to structures ([5f4943b](https://github.com/dsherret/ts-morph/commit/5f4943b))
* Wrap ClassElement. ([73ecfb1](https://github.com/dsherret/ts-morph/commit/73ecfb1))
### reactor
* [#574](https://github.com/dsherret/ts-morph/issues/574) - Target ES2015. ([1e56a01](https://github.com/dsherret/ts-morph/commit/1e56a01))
### BREAKING CHANGES
* The default export was removed. Use the named `Project` export from now on.
* ModuledNode#getExportedDeclarations() now returns a map with a key as the export name and the value as an array of declarations that are exported.
* * Removed `BodyableNodeStructure`, `BodiedNodeStructure`, `ModuledNodeStructure`.
* Removed `.bodyText`, `.classes`, `.enums` properties on structures. Replaced with `.statements` property.
* Comments are parsed as children in certain scenarios. See #575 for more details.
* `Type#getArrayType()` is now `Type#getArrayElementType()`. This was renamed to better reflect what the method does.
* * ParameterDeclaration now implements BindingNamedNode instead of DeclarationNamedNode.
* `EnumMember#getStructure()` no longer returns the `#value` and will only return `#initializer`. `#value` should be seen as more of a convenience property for setting the initializer.
* `Symbol#getXByName`-like methods were renamed to `Symbol#getX`.
* `Project#applyFileTextChanges()` has moved to `FileTextChanges#applyChanges()`.
* `SourceFile#getLineNumberAtPos` is now `SourceFile#getLineAndColumnAtPos`
* JsxText#containsOnlyWhiteSpaces() is now #containsOnlyTriviaWhiteSpaces(). `FileSystemHost` requires `realpathSync`.
* Removed `VariableDeclarationListStructure` and `VariableDeclarationList#set` and `#getStructure`. This was done to simplify the structures.
* The library now targets ES2015.
* `JsxAttributeStructure` and `JsxSpreadAttributeStructure` are now differentiated based on their `.kind` property.
* `JsxElementStructure` and `JsxSelfClosingElementStructure` are now differentiated based on their `.kind` property.
* FileSystemHost.isCaseSensitive() is now required in implementations.
* Removed DeclarationNamedNode.
* InitializerSetExpressionableNode was removed and merged with InitializerExpressionableNode.
* InitializerGetExpressionableNode was renamed to InitializerExpressionGetableNode.
* getName() always returns the name node text and now never throws.
<a name="1.3.2"></a>
## [1.3.2](https://github.com/dsherret/ts-morph/compare/1.3.1...1.3.2) (2019-03-30)
### Bug Fixes
* [#591](https://github.com/dsherret/ts-morph/issues/591) - Limit to TS < 3.4 for ts-morph version 1 ([f20e473](https://github.com/dsherret/ts-morph/commit/f20e473))
<a name="1.3.1"></a>
## [1.3.1](https://github.com/dsherret/ts-morph/compare/1.3.0...1.3.1) (2019-03-17)
### Bug Fixes
* Depend on a specific version of code-block-writer. ([ccfe90e](https://github.com/dsherret/ts-morph/commit/ccfe90e))
<a name="1.3.0"></a>
# [1.3.0](https://github.com/dsherret/ts-morph/compare/1.2.0...1.3.0) (2019-03-03)
### Bug Fixes
* [#394](https://github.com/dsherret/ts-morph/issues/394) - Handle inconsistent file path casings on case insensitive file systems. ([f7f6a3c](https://github.com/dsherret/ts-morph/commit/f7f6a3c))
* [#557](https://github.com/dsherret/ts-morph/issues/557) - ExportableNode#isNamedExport() should work when named export is done via export statement. ([7e18296](https://github.com/dsherret/ts-morph/commit/7e18296))
* [#560](https://github.com/dsherret/ts-morph/issues/560) - Type#isEnum() and isEnumLiteral() would not always return correct values. ([98c82bc](https://github.com/dsherret/ts-morph/commit/98c82bc))
### Features
* [#553](https://github.com/dsherret/ts-morph/issues/553) - VariableDeclaration now has read exportable methods like isDefaultExport(). ([0991e96](https://github.com/dsherret/ts-morph/commit/0991e96))
* Add VariableDeclaration#getVariableStatement() ([bba33ee](https://github.com/dsherret/ts-morph/commit/bba33ee))
<a name="1.2.0"></a>
# [1.2.0](https://github.com/dsherret/ts-morph/compare/1.1.0...1.2.0) (2019-02-21)
Thanks to [@Pineapples](https://github.com/Pineapples) and [@schiller-manuel](https://github.com/schiller-manuel) for their contributions for this release!
### Bug Fixes
* [#548](https://github.com/dsherret/ts-morph/issues/548) - Getting JS doc descendants by kind should find nodes. ([2fd7cac](https://github.com/dsherret/ts-morph/commit/2fd7cac))
### Features
* [#535](https://github.com/dsherret/ts-morph/issues/535) - Add getTypeExpression() to JSDocReturnTag and JSDocTypeTag ([61b71b3](https://github.com/dsherret/ts-morph/commit/61b71b3)) ([@Pineapples](https://github.com/Pineapples))
* [#538](https://github.com/dsherret/ts-morph/issues/538) - Add Type#isAny() ([1d3c2bb](https://github.com/dsherret/ts-morph/commit/1d3c2bb)) ([@schiller-manuel](https://github.com/schiller-manuel))
* [#541](https://github.com/dsherret/ts-morph/issues/541) - Add TypeChecker#getResolvedSignature() ([cf5104d](https://github.com/dsherret/ts-morph/commit/cf5104d)) [@schiller-manuel](https://github.com/schiller-manuel)
* [#543](https://github.com/dsherret/ts-morph/issues/543) - Wrap IndexedAccessTypeNode. ([a1d5696](https://github.com/dsherret/ts-morph/commit/a1d5696))
* [#547](https://github.com/dsherret/ts-morph/issues/547) - Wrap JSDocSignature and JSDocType. ([9e1b0b2](https://github.com/dsherret/ts-morph/commit/9e1b0b2))
* [#542](https://github.com/dsherret/ts-morph/issues/542) - Add Signature#getDeclaration(). ([d2bc498](https://github.com/dsherret/ts-morph/commit/d2bc498)) ([@schiller-manuel](https://github.com/schiller-manuel))
* Add aliases CallLikeExpression and JsxOpeningLikeElement. ([030c6df](https://github.com/dsherret/ts-morph/commit/030c6df))
* Add Type#isUnknown() ([30bb042](https://github.com/dsherret/ts-morph/commit/30bb042))
* Add WriterFunctions - objectType, unionType, intersectionType ([d10877f](https://github.com/dsherret/ts-morph/commit/d10877f))
* Wrap JSDocFunctionType. ([8965da3](https://github.com/dsherret/ts-morph/commit/8965da3))
<a name="1.1.0"></a>
# [1.1.0](https://github.com/dsherret/ts-morph/compare/1.0.0...1.1.0) (2019-02-14)
Thanks to [@Pineapples](https://github.com/Pineapples) for implementing these features!
### Features
* [#530](https://github.com/dsherret/ts-morph/issues/530) - Add JSDocTypeExpression ([ddc1dd3](https://github.com/dsherret/ts-morph/commit/ddc1dd3))
* [#532](https://github.com/dsherret/ts-morph/issues/532) - Expose isBracketed on JSDocPropertyLikeTag ([1acc955](https://github.com/dsherret/ts-morph/commit/1acc955))
<a name="1.0.0"></a>
# 1.0.0 (2019-02-02)
### Features
* [#527](https://github.com/dsherret/ts-morph/issues/527) - Adding namespace with quotes defaults to ambient modu