UNPKG

ts-simple-ast

Version:

TypeScript compiler wrapper for static analysis and code manipulation.

933 lines (471 loc) 108 kB
# 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="21.0.3"></a> ## [21.0.3](https://github.com/dsherret/ts-simple-ast/compare/21.0.2...21.0.3) (2019-01-31) <a name="21.0.2"></a> ## [21.0.2](https://github.com/dsherret/ts-simple-ast/compare/21.0.1...21.0.2) (2019-01-28) ### Bug Fixes * tsconfig.json with "include" and "rootDir" would not have files correctly resolved. ([b5b9af8](https://github.com/dsherret/ts-simple-ast/commit/b5b9af8)) <a name="21.0.1"></a> ## [21.0.1](https://github.com/dsherret/ts-simple-ast/compare/21.0.0...21.0.1) (2019-01-28) ### Bug Fixes * Project#getSourceFileOrThrow - Improve error message when the source file can't be found. ([811ce1c](https://github.com/dsherret/ts-simple-ast/commit/811ce1c)) <a name="21.0.0"></a> # [21.0.0](https://github.com/dsherret/ts-simple-ast/compare/20.0.0...21.0.0) (2019-01-11) ### Features * [#176](https://github.com/dsherret/ts-simple-ast/issues/176) - Support transformations using the compiler API (`Node#transform(...)`) ([3b39edb](https://github.com/dsherret/ts-simple-ast/commit/3b39edb)) * [#511](https://github.com/dsherret/ts-simple-ast/issues/511) - createSourceFile - Added ability to pass in a writer function. ([9a04103](https://github.com/dsherret/ts-simple-ast/commit/9a04103)) * [#518](https://github.com/dsherret/ts-simple-ast/issues/518) - Add SourceFile#fixMissingImports() ([28d12e3](https://github.com/dsherret/ts-simple-ast/commit/28d12e3)) * [#520](https://github.com/dsherret/ts-simple-ast/issues/520) - Search object and array binding patterns when looking for a node by a name. ([20239d7](https://github.com/dsherret/ts-simple-ast/commit/20239d7)) * [#522](https://github.com/dsherret/ts-simple-ast/issues/522) - Project should not return implicitly resolved files and directories in most scenarios. ([73c5a39](https://github.com/dsherret/ts-simple-ast/commit/73c5a39)) * [#523](https://github.com/dsherret/ts-simple-ast/issues/523) - Resolved node_module source files or directories are no longer returned from Project#getSourceFiles() and getDirectories() ([6cf2d40](https://github.com/dsherret/ts-simple-ast/commit/6cf2d40)) * Add FileTextChanges#getSourceFile() ([85deec7](https://github.com/dsherret/ts-simple-ast/commit/85deec7)) * Add LanguageService#getCombinedCodeFix(...) ([ef9f3a3](https://github.com/dsherret/ts-simple-ast/commit/ef9f3a3)) ### Performance Improvements * [#498](https://github.com/dsherret/ts-simple-ast/issues/498) - OfKind and ByKind methods should use ts.forEachChild when appropriate. ([5c249bf](https://github.com/dsherret/ts-simple-ast/commit/5c249bf)) * Make internal Es5HashSet O(1) instead of O(n) for lookups. ([a12a92c](https://github.com/dsherret/ts-simple-ast/commit/a12a92c)) ### BREAKING CHANGES * Source files implicitly resolved in the node_modules directory are no longer returned by `Project#getSourcesFiles()` and `getDirectories()`. Either add them to the project explicitly or navigate to them via methods like `.getSourceFile("node_modules/library/pathToFile.d.ts")` or `.getDirectory("node_modules")`. * Implicitly resolved files and directories are no longer returned when calling `project.getSourceFiles()` or `project.getDirectories()`. They can be added by calling `project.addExistingSourceFiles(...)`-like methods or `project.addExistingDirectory(...)`. These source files and directories are still accessible when specifying their path though (ex. `project.getSourceFile("node_modules/typescript/lib/typescript.d.ts")`) * `node.getFirstChildByKind` and `node.getChildrenOfKind` now search the parsed tree via `.forEachChild(...)` when specifying a parsed node's syntax kind. Previously it would only search the results of `node.getChildren()`. <a name="20.0.0"></a> # [20.0.0](https://github.com/dsherret/ts-simple-ast/compare/19.1.0...20.0.0) (2018-12-08) ### Code Refactoring * Remove JSDocTag.getAtToken(). ([20ccd0a](https://github.com/dsherret/ts-simple-ast/commit/20ccd0a)) ### Features * [#505](https://github.com/dsherret/ts-simple-ast/issues/505) - TypeParameteredNodeStructure - Accept strings ([a11ff0a](https://github.com/dsherret/ts-simple-ast/commit/a11ff0a)) * Support TS 3.2. ([e800f8b](https://github.com/dsherret/ts-simple-ast/commit/e800f8b)) ### BREAKING CHANGES * `JSDocTag.getAtToken()` was removed because `jsDocTag.atToken` no longer exists in ts 3.2. <a name="19.1.0"></a> # [19.1.0](https://github.com/dsherret/ts-simple-ast/compare/19.0.0...19.1.0) (2018-12-04) ### Bug Fixes * [#507](https://github.com/dsherret/ts-simple-ast/issues/507) - CompilerNodeToWrappedType sometimes resolved to any. ([91e0e1e](https://github.com/dsherret/ts-simple-ast/commit/91e0e1e)) - Huge thank you to [@Gerrit0](https://github.com/Gerrit0) for the help on this one. ### Features * [#506](https://github.com/dsherret/ts-simple-ast/issues/506) - Get variable statement by a declaration's name. ([6b94548](https://github.com/dsherret/ts-simple-ast/commit/6b94548)) * [#508](https://github.com/dsherret/ts-simple-ast/issues/508) - Expose Node.forgetDescendants. ([ee87eac](https://github.com/dsherret/ts-simple-ast/commit/ee87eac)) <a name="19.0.0"></a> # [19.0.0](https://github.com/dsherret/ts-simple-ast/compare/18.1.0...19.0.0) (2018-11-14) ### Bug Fixes * sourceFile.isFromExternalLibrary() would become out of date after a manipulation. ([43c6149](https://github.com/dsherret/ts-simple-ast/commit/43c6149)) ### Code Refactoring * Project now accepts file system host on the options object rather than as a parameter. ([7f892fb](https://github.com/dsherret/ts-simple-ast/commit/7f892fb)) * The `Options` interface was renamed to `ProjectOptions` ([15316a3](https://github.com/dsherret/ts-simple-ast/commit/15316a3)) ### Features * [#492](https://github.com/dsherret/ts-simple-ast/issues/492) - Resolve dependencies when constructing a project and providing a tsconfig. ([548ae43](https://github.com/dsherret/ts-simple-ast/commit/548ae43)) * Add SourceFile.isInNodeModules() ([0a1817c](https://github.com/dsherret/ts-simple-ast/commit/0a1817c)) ### Performance Improvements * Reuse the old program when creating a new one. ([6dc60f8](https://github.com/dsherret/ts-simple-ast/commit/6dc60f8)) ### BREAKING CHANGES * The `Options` interface was renamed to `ProjectOptions`. This was so it's less ambiguous. * The Project constructor changed to accept a file system host on the first options object parameter rather than as its own parameter. * Referenced source files in module specifiers and references are now added to the project when constructing a project and providing a tsconfig. To revert back to the old behaviour, provide the `skipFileDependencyResolution` option and set it to true. <a name="18.1.0"></a> # [18.1.0](https://github.com/dsherret/ts-simple-ast/compare/18.0.1...18.1.0) (2018-11-11) ### Bug Fixes * forEachDescendant would error when the node in the callback parameter was forgotten. ([152c785](https://github.com/dsherret/ts-simple-ast/commit/152c785)) ### Features Thanks to [@cancerberoSgx](https://github.com/cancerberoSgx) for both these features! * [#488](https://github.com/dsherret/ts-simple-ast/issues/488) - LanguageService - getSuggestionDiagnostics, getEditsForRefactor, getCodeFixesAtPosition ([9e42b10](https://github.com/dsherret/ts-simple-ast/commit/9e42b10)) * [#491](https://github.com/dsherret/ts-simple-ast/issues/491) Project - applyFileTextChanges ([4de796c](https://github.com/dsherret/ts-simple-ast/commit/4de796c)) <a name="18.0.1"></a> ## [18.0.1](https://github.com/dsherret/ts-simple-ast/compare/18.0.0...18.0.1) (2018-11-10) ### Bug Fixes * [#493](https://github.com/dsherret/ts-simple-ast/issues/493) - Renaming sometimes renamed at wrong text location. ([1f4316e](https://github.com/dsherret/ts-simple-ast/commit/1f4316e)) <a name="18.0.0"></a> # [18.0.0](https://github.com/dsherret/ts-simple-ast/compare/17.1.1...18.0.0) (2018-10-28) ### Bug Fixes * [#482](https://github.com/dsherret/ts-simple-ast/issues/482) - Import and export declaration should not include quotes in module specifier in structure ([92c7f46](https://github.com/dsherret/ts-simple-ast/commit/92c7f46) - [@cancerberoSgx](https://github.com/cancerberoSgx)) * [#483](https://github.com/dsherret/ts-simple-ast/issues/483) - `getDerivedClasses()` fails when there exists an interface that extends the class ([2bbcec5](https://github.com/dsherret/ts-simple-ast/commit/2bbcec5) - [@brianzinn](https://github.com/brianzinn)) * [#484](https://github.com/dsherret/ts-simple-ast/issues/484) - organizeImports() would sometimes throw. ([447bcfc](https://github.com/dsherret/ts-simple-ast/commit/447bcfc)) * ParameterDeclaration.getScope() should return public for readonly parameter properties with an implicit scope. ([c430eb4](https://github.com/dsherret/ts-simple-ast/commit/c430eb4)) ### Code Refactoring * `JSDocTag.getName()` should be `.getTagName()` ([c362510](https://github.com/dsherret/ts-simple-ast/commit/c362510)) ### Features * [#467](https://github.com/dsherret/ts-simple-ast/issues/467) - Move some ClassDeclaration functionality into ClassLikeDeclarationBase. ([fdb5f42](https://github.com/dsherret/ts-simple-ast/commit/fdb5f42)) * [#467](https://github.com/dsherret/ts-simple-ast/issues/467) - Wrap ClassExpression. ([92f4be3](https://github.com/dsherret/ts-simple-ast/commit/92f4be3)) * [#469](https://github.com/dsherret/ts-simple-ast/issues/469) - ClassDeclaration - Add "Extract interface" ([8b19131](https://github.com/dsherret/ts-simple-ast/commit/8b19131)) * [#471](https://github.com/dsherret/ts-simple-ast/issues/471) - Add `Project.formatDiagnosticsWithColorAndContext(diagnostics)` ([3056a1e](https://github.com/dsherret/ts-simple-ast/commit/3056a1e)) * [#472](https://github.com/dsherret/ts-simple-ast/issues/472) - Add getBodyText() to BodiedNode and BodyableNode ([e41c278](https://github.com/dsherret/ts-simple-ast/commit/e41c278)) * [#473](https://github.com/dsherret/ts-simple-ast/issues/473) - MethodDeclaration should extend QuestionTokenableNode. ([674d3d2](https://github.com/dsherret/ts-simple-ast/commit/674d3d2)) * Add `JSDocPropertyLikeTag.getName()` and `.getNameNode()` ([9804627](https://github.com/dsherret/ts-simple-ast/commit/9804627)) * Wrap ModuleBlock. ([1507c8d](https://github.com/dsherret/ts-simple-ast/commit/1507c8d)) * Wrap NamedImports and NamedExports. ([6a17fe8](https://github.com/dsherret/ts-simple-ast/commit/6a17fe8)) ### BREAKING CHANGES * `JSDocTag`'s `.getName()` is now `.getTagName()`. This was necessary because `.getName()` should return a `JSDocPropertyLikeTag`'s name. <a name="17.1.1"></a> ## [17.1.1](https://github.com/dsherret/ts-simple-ast/compare/17.1.0...17.1.1) (2018-10-20) ### Bug Fixes * [#468](https://github.com/dsherret/ts-simple-ast/issues/468) - Removing class members should not assume it's in a class. ([2c4db99](https://github.com/dsherret/ts-simple-ast/commit/2c4db99)) <a name="17.1.0"></a> # [17.1.0](https://github.com/dsherret/ts-simple-ast/compare/17.0.1...17.1.0) (2018-10-14) ### Features * [#148](https://github.com/dsherret/ts-simple-ast/issues/148), [#320](https://github.com/dsherret/ts-simple-ast/issues/320) - Add WriterFunctions.object. ([dab4cfb](https://github.com/dsherret/ts-simple-ast/commit/dab4cfb)) * Add `Project.getAmbientModules()`, `.getAmbientModule(name: string)`, and `.getAmbientModuleOrThrow(name: string)` ([7f89eea](https://github.com/dsherret/ts-simple-ast/commit/7f89eea)) <a name="17.0.1"></a> ## [17.0.1](https://github.com/dsherret/ts-simple-ast/compare/17.0.0...17.0.1) (2018-10-13) ### Bug Fixes * [#464](https://github.com/dsherret/ts-simple-ast/issues/464) - `printNode` should get the source file from the passed in node if it exists. ([3a77dbc](https://github.com/dsherret/ts-simple-ast/commit/3a77dbc)) <a name="17.0.0"></a> # [17.0.0](https://github.com/dsherret/ts-simple-ast/compare/16.0.4...17.0.0) (2018-10-12) ### Bug Fixes * Project.getSourceFileOrThrow() should always output the passed in string in the error message. ([c81081e](https://github.com/dsherret/ts-simple-ast/commit/c81081e)) * Write more with hanging indents ([#461](https://github.com/dsherret/ts-simple-ast/issues/461)) ([687e467](https://github.com/dsherret/ts-simple-ast/commit/687e467)) ### Code Refactoring * Remove CompilerNodeBrandPropertyNamesType. ([ac0040e](https://github.com/dsherret/ts-simple-ast/commit/ac0040e)) ### Features * [#153](https://github.com/dsherret/ts-simple-ast/issues/153) - Ability to insert named exports and imports with a writer. ([aa5617e](https://github.com/dsherret/ts-simple-ast/commit/aa5617e)) * [#400](https://github.com/dsherret/ts-simple-ast/issues/400) - Symbol - Add global exports. ([2bbeff9](https://github.com/dsherret/ts-simple-ast/commit/2bbeff9)) * [#445](https://github.com/dsherret/ts-simple-ast/issues/445) - SourceFile, Directory - Add moveToDirectory and copyToDirectory. ([fc806da](https://github.com/dsherret/ts-simple-ast/commit/fc806da)) * [#449](https://github.com/dsherret/ts-simple-ast/issues/449) - Wrap ImportClause. ([c66ed65](https://github.com/dsherret/ts-simple-ast/commit/c66ed65)) * [#454](https://github.com/dsherret/ts-simple-ast/issues/454) - Wrap NamespaceImport. ([001e7d0](https://github.com/dsherret/ts-simple-ast/commit/001e7d0)) * [#456](https://github.com/dsherret/ts-simple-ast/issues/456) - Relax ts dependency to 3.0.1 and 3.0.3. ([1029f75](https://github.com/dsherret/ts-simple-ast/commit/1029f75)) * ArrayLiteralExpression - Add ability to add elements with writer for each element. ([1f8b1cb](https://github.com/dsherret/ts-simple-ast/commit/1f8b1cb)) * Better error message when using a forgotten node. ([762254f](https://github.com/dsherret/ts-simple-ast/commit/762254f)) * Support TypeScript 3.1.1 and 3.1.3. ([1598b96](https://github.com/dsherret/ts-simple-ast/commit/1598b96)) ### BREAKING CHANGES * Removed CompilerNodeBrandPropertyNamesType. * More declarations are being written with hanging indents. <a name="16.0.4"></a> ## [16.0.4](https://github.com/dsherret/ts-simple-ast/compare/16.0.3...16.0.4) (2018-10-10) ### Bug Fixes * Removing last modifier should not remove preceding comments. ([3aa9390](https://github.com/dsherret/ts-simple-ast/commit/3aa9390)) <a name="16.0.3"></a> ## [16.0.3](https://github.com/dsherret/ts-simple-ast/compare/16.0.2...16.0.3) (2018-10-08) ### Bug Fixes * [#460](https://github.com/dsherret/ts-simple-ast/issues/460) - Calling setHasDeclareKeyword on interfaces and type aliases should modify them. ([7d7c8e2](https://github.com/dsherret/ts-simple-ast/commit/7d7c8e2)) <a name="16.0.2"></a> ## [16.0.2](https://github.com/dsherret/ts-simple-ast/compare/16.0.0...16.0.2) (2018-10-01) ### Bug Fixes * Export Project as named export to match declaration file. ([f529801](https://github.com/dsherret/ts-simple-ast/commit/f529801)) * Fix `sourceFile.getExportedDeclarations()` returning import identifiers in some scenarios ([295ea4a](https://github.com/dsherret/ts-simple-ast/commit/295ea4a)) <a name="16.0.1"></a> ## [16.0.1](https://github.com/dsherret/ts-simple-ast/compare/16.0.0...16.0.1) (2018-09-30) ### Bug Fixes * More robust directory creation. ([21ccc2e](https://github.com/dsherret/ts-simple-ast/commit/21ccc2e)) <a name="16.0.0"></a> # [16.0.0](https://github.com/dsherret/ts-simple-ast/compare/15.1.0...16.0.0) (2018-09-30) ### Bug Fixes * [#437](https://github.com/dsherret/ts-simple-ast/issues/437) - Fix `findReferencesAsNodes` having an undefined entry when the reference is within a string literal. ([06943a9](https://github.com/dsherret/ts-simple-ast/commit/06943a9)) * WeakCache and KeyValueCache weren't falling back to support ES5. ([eec9add](https://github.com/dsherret/ts-simple-ast/commit/eec9add)) ### Code Refactoring * [#429](https://github.com/dsherret/ts-simple-ast/issues/429) - IndexSignatureDeclaration - Return type should be nullable. ([bab0860](https://github.com/dsherret/ts-simple-ast/commit/bab0860)) * [#441](https://github.com/dsherret/ts-simple-ast/issues/441) - Make "XExtensionType" type aliases internal. ([9ad6372](https://github.com/dsherret/ts-simple-ast/commit/9ad6372)) ### Features * [#436](https://github.com/dsherret/ts-simple-ast/issues/436) - Add support for import and exports to NamespaceDeclaration ([65d4bf2](https://github.com/dsherret/ts-simple-ast/commit/65d4bf2)) * [#439](https://github.com/dsherret/ts-simple-ast/issues/439) - Improve type guards to use extension type for mixins. ([1ca6dd3](https://github.com/dsherret/ts-simple-ast/commit/1ca6dd3)) * [#443](https://github.com/dsherret/ts-simple-ast/issues/443) Better support for `global` namespace declarations ([d89fd96](https://github.com/dsherret/ts-simple-ast/commit/d89fd96)) * Add `.getSignature()` method to nodes that have a return type. ([f65c529](https://github.com/dsherret/ts-simple-ast/commit/f65c529)) * Upgrade to TypeScript 3.0.3. ([c38f5c2](https://github.com/dsherret/ts-simple-ast/commit/c38f5c2)) ### Performance Improvements * [#435](https://github.com/dsherret/ts-simple-ast/issues/435) - Memoize only before source file manipulation for some wrapped language service source file dependent objects. ([ad06259](https://github.com/dsherret/ts-simple-ast/commit/ad06259)) ### BREAKING CHANGES * Upgraded to TS 3.0.3, which has some breaking changes in it from 3.0.1. * IndexSignatureDeclaration's return type is now nullable to reflect what's done in the compiler API. * The "XExtensionType" type aliases are now internal. They were hidden because they're not useful outside the library and only create noise in the named exports. * `NamespaceDeclaration.setHasNamespaceKeyword` and `setHasModuleKeyword` are now `setDeclarationKind(kind: NamespaceDeclarationKind)`. `NamespaceDeclarationStructure.hasModuleKeyword` and `hasNamespaceKeyword` are now `declarationKind`. <a name="15.1.0"></a> # [15.1.0](https://github.com/dsherret/ts-simple-ast/compare/15.0.2...15.1.0) (2018-09-24) ### Features * [#431](https://github.com/dsherret/ts-simple-ast/issues/431) - Allow passing in a module specifier string to .getImportDeclaration and .getExportDeclaration ([20b45d2](https://github.com/dsherret/ts-simple-ast/commit/20b45d2)) <a name="15.0.2"></a> ## [15.0.2](https://github.com/dsherret/ts-simple-ast/compare/15.0.1...15.0.2) (2018-09-23) ### Bug Fixes * Fix node.findReferencesAsNodes() not returning references in initializers. ([cfeba04](https://github.com/dsherret/ts-simple-ast/commit/cfeba04)) <a name="15.0.1"></a> ## [15.0.1](https://github.com/dsherret/ts-simple-ast/compare/15.0.0...15.0.1) (2018-09-22) ### Bug Fixes * Fix getting an ambient class' structure. ([48c92b5](https://github.com/dsherret/ts-simple-ast/commit/48c92b5)) * Fix inserting get and set accessors in an ambient context. ([a282765](https://github.com/dsherret/ts-simple-ast/commit/a282765)) * Fix printing and getting structure of FunctionDeclaration in ambient contexts. ([9940658](https://github.com/dsherret/ts-simple-ast/commit/9940658)) * Fix some issues in generated ts definitions. ([0d2c00d](https://github.com/dsherret/ts-simple-ast/commit/0d2c00d)) * Getting TypeAliasDeclaration structure should use the type node and not the type. ([aea96a3](https://github.com/dsherret/ts-simple-ast/commit/aea96a3)) * IndexSignatureDeclaration.getStructure() should use the node text and not the type text. ([61f1345](https://github.com/dsherret/ts-simple-ast/commit/61f1345)) <a name="15.0.0"></a> # [15.0.0](https://github.com/dsherret/ts-simple-ast/compare/14.4.5...15.0.0) (2018-09-22) ### Bug Fixes * [#420](https://github.com/dsherret/ts-simple-ast/issues/420) - Setting enum, namespace, or type alias as a default export should be done with a separate export assignment. ([e81412c](https://github.com/dsherret/ts-simple-ast/commit/e81412c)) * [#424](https://github.com/dsherret/ts-simple-ast/issues/424) - UTF-8 bom causes incorrect indentation to be inserted. ([c4a63a1](https://github.com/dsherret/ts-simple-ast/commit/c4a63a1)) * ImportSpecifier and ExportSpecifier - Specifying an empty string to setAlias should not crash. ([a7beb66](https://github.com/dsherret/ts-simple-ast/commit/a7beb66)) ### Code Refactoring * ImportDeclaration.setDefaultImport should not rename. ([f425bd8](https://github.com/dsherret/ts-simple-ast/commit/f425bd8)) * JsxTagNamedNode.getTagName() is now getTagNameNode() for consistency. ([36d4907](https://github.com/dsherret/ts-simple-ast/commit/36d4907)) * Remove accidentally exposed properties on errors. ([caa7e68](https://github.com/dsherret/ts-simple-ast/commit/caa7e68)) * Remove typeParameter.getConstraintNode() and .getDefaultNode() ([e84c374](https://github.com/dsherret/ts-simple-ast/commit/e84c374)) ### Features * [#418](https://github.com/dsherret/ts-simple-ast/issues/418) - Add new .set methods and deprecate .fill ([da40d99](https://github.com/dsherret/ts-simple-ast/commit/da40d99)) * [#423](https://github.com/dsherret/ts-simple-ast/issues/423) - Add node.getText(true) for getting text with js docs. ([0522510](https://github.com/dsherret/ts-simple-ast/commit/0522510)) * [#45](https://github.com/dsherret/ts-simple-ast/issues/45) / [#346](https://github.com/dsherret/ts-simple-ast/issues/346) - Add .getStructure() ([2d7351c](https://github.com/dsherret/ts-simple-ast/commit/2d7351c)) -- Huge thanks to [@cancerberoSgx](https://github.com/cancerberoSgx) for all his help on this one! * [#46](https://github.com/dsherret/ts-simple-ast/issues/46) - Ability to set node from a structure using .set methods ([22d4753](https://github.com/dsherret/ts-simple-ast/commit/22d4753)) * Add ExportAssignment.setExpression ([0c6fcf0](https://github.com/dsherret/ts-simple-ast/commit/0c6fcf0)) * Add ExportAssignment.setIsExportEquals. ([43d3d84](https://github.com/dsherret/ts-simple-ast/commit/43d3d84)) * Add ExportDeclaration.removeModuleSpecifier() ([b64c665](https://github.com/dsherret/ts-simple-ast/commit/b64c665)) * Add ExportSpecifier.getName() ([b6357c6](https://github.com/dsherret/ts-simple-ast/commit/b6357c6)) * Add ExpressionedNode.setExpression ([12e0ca7](https://github.com/dsherret/ts-simple-ast/commit/12e0ca7)) * Add ImportDeclaration.removeDefaultImport() ([87dd9cf](https://github.com/dsherret/ts-simple-ast/commit/87dd9cf)) * Add ImportDeclaration.renameDefaultImport. ([1ba29be](https://github.com/dsherret/ts-simple-ast/commit/1ba29be)) * Add JsxAttribute .setInitializer & .removeInitializer ([9436954](https://github.com/dsherret/ts-simple-ast/commit/9436954)) * Add JsxSpreadAttribute.setExpression ([532131f](https://github.com/dsherret/ts-simple-ast/commit/532131f)) * Hide "Specific" structures in declaration file. ([db55c33](https://github.com/dsherret/ts-simple-ast/commit/db55c33)) * ImportDeclaration.setDefaultImport should remove the default import when providing an empty string. ([f81f90a](https://github.com/dsherret/ts-simple-ast/commit/f81f90a)) * ImportSpecifier and ExportSpecifier - .setAlias(...) does not the usages. ([5f2f7c8](https://github.com/dsherret/ts-simple-ast/commit/5f2f7c8)) * ImportSpecifier and ExportSpecifier - Add .removeAlias(). ([b594113](https://github.com/dsherret/ts-simple-ast/commit/b594113)) * ImportSpecifier and ExportSpecifier - Add removeAliasWithRename() ([576db34](https://github.com/dsherret/ts-simple-ast/commit/576db34)) * ImportSpecifier and ExportSpecifier - Renamed .setAlias to .renameAlias ([0f446b6](https://github.com/dsherret/ts-simple-ast/commit/0f446b6)) ### BREAKING CHANGES * Some properties on thrown errors were removed. See commit for details. * TypeParameterDeclaration's getConstraintNode() and getDefaultNode() are deprecated. Use getConstraint() and getDefault(). * JsxTagNamedNode.getTagName() is now .getTagNameNode() * ImportDeclaration.setDefaultImport no longer renames the identifier. Use `.renameDefaultImport` instead. * .setAlias(...) does not rename the usages. * .setAlias(...) is now .renameAlias(...). * `.fill(...)` is now `.set(...)` and will replace existing nodes. * Change to jsx spread attribute structure. <a name="14.4.5"></a> ## [14.4.5](https://github.com/dsherret/ts-simple-ast/compare/14.4.3...14.4.5) (2018-09-15) ### Bug Fixes * [#421](https://github.com/dsherret/ts-simple-ast/issues/421) - "Adding a child to an empty namespace with dot notation in the name causes brace to be lost" ([0b73d4f](https://github.com/dsherret/ts-simple-ast/commit/0b73d4f)) * Abstract methods were incorrectly returning true for .isOverload() ([ef29ee1](https://github.com/dsherret/ts-simple-ast/commit/ef29ee1)) * Fix crashes when dealing with statemented nodes that don't have a body. ([7a08ab1](https://github.com/dsherret/ts-simple-ast/commit/7a08ab1)) <a name="14.4.4"></a> ## [14.4.4](https://github.com/dsherret/ts-simple-ast/compare/14.4.3...14.4.4) (2018-09-15) ### Bug Fixes * [#421](https://github.com/dsherret/ts-simple-ast/issues/421) - "Adding a child to an empty namespace with dot notation in the name causes brace to be lost" ([0b73d4f](https://github.com/dsherret/ts-simple-ast/commit/0b73d4f)) * Abstract methods were incorrectly returning true for .isOverload() ([ef29ee1](https://github.com/dsherret/ts-simple-ast/commit/ef29ee1)) <a name="14.4.3"></a> # [14.4.3](https://github.com/dsherret/ts-simple-ast/compare/14.4.2...14.4.3) (2018-09-07) ### Bug Fixes * [#414](https://github.com/dsherret/ts-simple-ast/issues/414) - insertText() not working for namespace declaration ([ee1fa55](https://github.com/dsherret/ts-simple-ast/commit/ee1fa55)) * [#415](https://github.com/dsherret/ts-simple-ast/issues/415) - Fix "typeRoots" compiler option not working. ([5e4cd08](https://github.com/dsherret/ts-simple-ast/commit/5e4cd08)) <a name="14.4.2"></a> ## [14.4.2](https://github.com/dsherret/ts-simple-ast/compare/14.4.1...14.4.2) (2018-08-27) ### Bug Fixes * [#413](https://github.com/dsherret/ts-simple-ast/issues/413) - .addExistingSourceFiles(...) will occasionally error for certain file globs. ([15a6027](https://github.com/dsherret/ts-simple-ast/commit/15a6027)) <a name="14.4.1"></a> ## [14.4.1](https://github.com/dsherret/ts-simple-ast/compare/14.4.0...14.4.1) (2018-08-27) ### Bug Fixes * [#410](https://github.com/dsherret/ts-simple-ast/issues/410) - `sourceFile.getExportedDeclarations()` throws exception if file is empty ([8d563ac](https://github.com/dsherret/ts-simple-ast/commit/8d563ac)) <a name="14.4.0"></a> # [14.4.0](https://github.com/dsherret/ts-simple-ast/compare/14.3.0...14.4.0) (2018-08-26) ### Features * [#126](https://github.com/dsherret/ts-simple-ast/issues/126) - Ability to emit to memory. ([4f6fb5a](https://github.com/dsherret/ts-simple-ast/commit/4f6fb5a)) * [#409](https://github.com/dsherret/ts-simple-ast/issues/409) - Add ability to specify custom transformers when emitting. ([644eba5](https://github.com/dsherret/ts-simple-ast/commit/644eba5)) * Export errors. ([#402](https://github.com/dsherret/ts-simple-ast/issues/402)) ([b719ed8](https://github.com/dsherret/ts-simple-ast/commit/b719ed8)) <a name="14.3.0"></a> # [14.3.0](https://github.com/dsherret/ts-simple-ast/compare/14.2.1...14.3.0) (2018-08-25) ### Bug Fixes * Use ReadonlyArray for array inputs. ([2a5ed73](https://github.com/dsherret/ts-simple-ast/commit/2a5ed73)) ### Features * [#380](https://github.com/dsherret/ts-simple-ast/issues/380) - Expose options to rename in comments and strings ([29592c7](https://github.com/dsherret/ts-simple-ast/commit/29592c7)) * [#390](https://github.com/dsherret/ts-simple-ast/issues/390) - Add Node.getFirstAncestor and getFirstAncestorOrThrow methods. ([f83be80](https://github.com/dsherret/ts-simple-ast/commit/f83be80)) * [#406](https://github.com/dsherret/ts-simple-ast/issues/406) - Wrap ParenthesizedTypeNode. ([9429704](https://github.com/dsherret/ts-simple-ast/commit/9429704)) * [#74](https://github.com/dsherret/ts-simple-ast/issues/74) - Add more "OrThrow" methods. ([2d5c94d](https://github.com/dsherret/ts-simple-ast/commit/2d5c94d)) * Use readonly arrays for file globs ([#401](https://github.com/dsherret/ts-simple-ast/issues/401)) ([c96d987](https://github.com/dsherret/ts-simple-ast/commit/c96d987)) ### Performance Improvements * [#307](https://github.com/dsherret/ts-simple-ast/issues/307) - Reduce token parsing. ([a6c4ca4](https://github.com/dsherret/ts-simple-ast/commit/a6c4ca4)) <a name="14.2.1"></a> ## [14.2.1](https://github.com/dsherret/ts-simple-ast/compare/14.2.0...14.2.1) (2018-08-25) ### Bug Fixes * [#405](https://github.com/dsherret/ts-simple-ast/issues/405) - "Error when renaming a file when [@types](https://github.com/types) exists" ([a63400c](https://github.com/dsherret/ts-simple-ast/commit/a63400c)) <a name="14.2.0"></a> # [14.2.0](https://github.com/dsherret/ts-simple-ast/compare/14.1.0...14.2.0) (2018-08-22) ### Features * Symbol - Add .getMembers(), .getMemberByName(name), and .getMemberByNameOrThrow(name). ([6fb28b4](https://github.com/dsherret/ts-simple-ast/commit/6fb28b4)) <a name="14.1.1"></a> ## [14.1.1](https://github.com/dsherret/ts-simple-ast/compare/14.1.0...14.1.1) (2018-08-22) ### Bug Fixes * [#397](https://github.com/dsherret/ts-simple-ast/issues/397) - Fix type.getProperties() sometimes throwing an error. ([8078772](https://github.com/dsherret/ts-simple-ast/commit/8078772)) ### Docs * [#399](https://github.com/dsherret/ts-simple-ast/pull/399) - Thanks to [@Gerrit0](https://github.com/Gerrit0) for making the headers links! <a name="14.1.0"></a> # [14.1.0](https://github.com/dsherret/ts-simple-ast/compare/14.0.1...14.1.0) (2018-08-19) ### Features * Ability to add js docs with a writer function directly from the method. ([4ad9614](https://github.com/dsherret/ts-simple-ast/commit/4ad9614)) <a name="14.0.1"></a> ## [14.0.1](https://github.com/dsherret/ts-simple-ast/compare/14.0.0...14.0.1) (2018-08-19) ### Bug Fixes * DocumentRegistry - Ensure any file paths sent from the compiler api are normalized. ([1c06559](https://github.com/dsherret/ts-simple-ast/commit/1c06559)) <a name="14.0.0"></a> # [14.0.0](https://github.com/dsherret/ts-simple-ast/compare/12.7.2...14.0.0) (2018-08-18) ### Bug Fixes * [#345](https://github.com/dsherret/ts-simple-ast/issues/345) - ArrowFunction should be a FunctionLikeDeclaration. ([b3ea86f](https://github.com/dsherret/ts-simple-ast/commit/b3ea86f)) * BindingNamedNode should support BindingName. ([611ea99](https://github.com/dsherret/ts-simple-ast/commit/611ea99)) ### Code Refactoring * Deprecate `project/sourceFile.getDiagnostics()` and `program.getPreEmitDiagnostics()`. ([7e1a21b](https://github.com/dsherret/ts-simple-ast/commit/7e1a21b)) ### Features * [#381](https://github.com/dsherret/ts-simple-ast/issues/381) - getParent() and getParentOrThrow() return the correct type based on the type of the current node. ([efa7616](https://github.com/dsherret/ts-simple-ast/commit/efa7616)) * Add `program.getGlobalDiagnostics()`. ([a03d257](https://github.com/dsherret/ts-simple-ast/commit/a03d257)) ### Performance Improvements * [#393](https://github.com/dsherret/ts-simple-ast/issues/393) - Use DocumentRegistry when creating language service. ([d879071](https://github.com/dsherret/ts-simple-ast/commit/d879071)) ### BREAKING CHANGES * `project/sourceFile.getDiagnostics()` and `program.getPreEmitDiagnostics()` no longer exist. Use `project/sourceFile.getPreEmitDiagnostics()`. * Removed ability to set a specific target for specific source files (all files are stored in a ts.DocumentRegistry now so that's not possible). * `BindingNamedNode` now correctly may also return a `BindingName`. <a name="13.0.0"></a> # [13.0.0](https://github.com/dsherret/ts-simple-ast/compare/12.7.2...13.0.0) (2018-08-06) ### Bug Fixes * [#345](https://github.com/dsherret/ts-simple-ast/issues/345) - ArrowFunction should be a FunctionLikeDeclaration. ([b3ea86f](https://github.com/dsherret/ts-simple-ast/commit/b3ea86f)) ### Features * [#347](https://github.com/dsherret/ts-simple-ast/issues/347) - Add .skip() and .up() method to `forEachDescendant`. ([361bcaf](https://github.com/dsherret/ts-simple-ast/commit/361bcaf)) * [#369](https://github.com/dsherret/ts-simple-ast/issues/369) - FunctionDeclaration should have an optional name. ([176825d](https://github.com/dsherret/ts-simple-ast/commit/176825d)) * [#383](https://github.com/dsherret/ts-simple-ast/issues/383) - Update to TS 3.0 ([547eb3d](https://github.com/dsherret/ts-simple-ast/commit/547eb3d)) * Deprecate renameName on ImportSpecifier and ExportSpecifier. ([f94eed9](https://github.com/dsherret/ts-simple-ast/commit/f94eed9)) * Deprecated node.getStartColumn() and node.getEndColumn(). Renamed sourceFile.getColumnAtPos(pos) to getLengthFromLineStartAtPos(pos). ([d8b61b6](https://github.com/dsherret/ts-simple-ast/commit/d8b61b6)) * Rename CompilerApiNodeBrandPropertyNamesType to CompilerNodeBrandPropertyNamesType. ([1eb6a86](https://github.com/dsherret/ts-simple-ast/commit/1eb6a86)) * Rename sourceFile.getLineNumberFromPos(pos) to getLineNumberAtPos(pos) ([fa5849a](https://github.com/dsherret/ts-simple-ast/commit/fa5849a)) * Renamed getAliasIdentifier() to getAliasNode() on ImportSpecifier and ExportSpecifier. ([e97de72](https://github.com/dsherret/ts-simple-ast/commit/e97de72)) ### BREAKING CHANGES * getImplementations()[i].getNode() now returns the identifier instead of the parent node. This was based on a change in the compiler api. * Renamed sourceFile.getLineNumberFromPos(pos) to getLineNumberAtPos(pos) for consistency. * node.getStartColumn() and node.getEndColumn() was removed. Renamed sourceFile.getColumnAtPos(pos) to getLengthFromLineStartAtPos(pos) for correctness. * getAliasIdentifier() on ImportSpecifier and ExportSpecifier is now getAliasNode() for consistency. * renameName on ImportSpecifier and ExportSpecifier is now deprecated. Use `importSpecifier.getNameNode().rename(newName)`. * CompilerApiNodeBrandPropertyNamesType is now CompilerNodeBrandPropertyNamesType for consistency. * FunctionDeclaration now has an optional name to support cases where it does (ex. `export default function() {}`) <a name="12.7.2"></a> ## [12.7.2](https://github.com/dsherret/ts-simple-ast/compare/12.7.1...12.7.2) (2018-07-24) ### Bug Fixes * [#374](https://github.com/dsherret/ts-simple-ast/issues/374) - Surround parameter in parenthesis when there is none and setting its initializer, type, or adding a question token. ([847dab6](https://github.com/dsherret/ts-simple-ast/commit/847dab6)) <a name="12.7.1"></a> ## [12.7.1](https://github.com/dsherret/ts-simple-ast/compare/12.7.0...12.7.1) (2018-07-24) ### Bug Fixes * [#373](https://github.com/dsherret/ts-simple-ast/issues/373) - Fix setType when only a question or exclamation token exists. ([15d6a24](https://github.com/dsherret/ts-simple-ast/commit/15d6a24)) <a name="12.7.0"></a> # [12.7.0](https://github.com/dsherret/ts-simple-ast/compare/12.6.2...12.7.0) (2018-07-18) ### Features * [#370](https://github.com/dsherret/ts-simple-ast/issues/370) - Add RenameableNode. ([1d18158](https://github.com/dsherret/ts-simple-ast/commit/1d18158)) <a name="12.6.2"></a> ## [12.6.2](https://github.com/dsherret/ts-simple-ast/compare/12.6.1...12.6.2) (2018-07-17) ### Bug Fixes * [#366](https://github.com/dsherret/ts-simple-ast/issues/366) - Should be able to add a question token to a node without a type. ([c43c1e7](https://github.com/dsherret/ts-simple-ast/commit/c43c1e7)) <a name="12.6.1"></a> ## [12.6.1](https://github.com/dsherret/ts-simple-ast/compare/12.6.0...12.6.1) (2018-07-16) ### Bug Fixes * [#365](https://github.com/dsherret/ts-simple-ast/issues/365) - Replacing text of an identifier deep in a property access expression would throw. ([4a7b1e2](https://github.com/dsherret/ts-simple-ast/commit/4a7b1e2)) * [#364](https://github.com/dsherret/ts-simple-ast/issues/364) - More browser fixes (thanks [@cancerberoSgx](https://github.com/cancerberoSgx)) <a name="12.6.0"></a> # [12.6.0](https://github.com/dsherret/ts-simple-ast/compare/12.5.3...12.6.0) (2018-07-16) ### Bug Fixes * [#362](https://github.com/dsherret/ts-simple-ast/issues/362) - SyntaxList.insertChildText(...) would throw when not inserting to the child syntax list. ([738fb47](https://github.com/dsherret/ts-simple-ast/commit/738fb47)) * Should properly add statements to a case or default clause with a block. ([65d96bc](https://github.com/dsherret/ts-simple-ast/commit/65d96bc)) ### Features * [#339](https://github.com/dsherret/ts-simple-ast/issues/339) - Add Directory.addExistingSourceFiles(...). ([bb5cd6e](https://github.com/dsherret/ts-simple-ast/commit/bb5cd6e)) * [#355](https://github.com/dsherret/ts-simple-ast/issues/355) - Add `getLengthFromLineStartAtPos` to replace `getColumnAtPos` in next major. ([e82cdff](https://github.com/dsherret/ts-simple-ast/commit/e82cdff)) * [#363](https://github.com/dsherret/ts-simple-ast/issues/363) - Add type guard overloads to methods with a condition for a node. ([21da2fc](https://github.com/dsherret/ts-simple-ast/commit/21da2fc)) <a name="12.5.4"></a> ## [12.5.4](https://github.com/dsherret/ts-simple-ast/compare/12.5.3...12.5.4) (2018-07-14) ### Bug Fixes * [#362](https://github.com/dsherret/ts-simple-ast/issues/362) - SyntaxList.insertChildText(...) would throw when not inserting to the child syntax list. ([738fb47](https://github.com/dsherret/ts-simple-ast/commit/738fb47)) * Should properly add statements to a case or default clause with a block. ([65d96bc](https://github.com/dsherret/ts-simple-ast/commit/65d96bc)) <a name="12.5.3"></a> ## [12.5.3](https://github.com/dsherret/ts-simple-ast/compare/12.5.2...12.5.3) (2018-07-12) ### Bug Fixes * [#361](https://github.com/dsherret/ts-simple-ast/pull/361) - Conditionally import "globby" to allow using library in browser (thanks [@cancerberoSgx](https://github.com/cancerberoSgx)!) <a name="12.5.2"></a> ## [12.5.2](https://github.com/dsherret/ts-simple-ast/compare/12.5.1...12.5.2) (2018-07-12) ### Bug Fixes * [#359](https://github.com/dsherret/ts-simple-ast/issues/359) - Fix problems when manipulating within forEachChild or forEachDescendant. ([bc124ed](https://github.com/dsherret/ts-simple-ast/commit/bc124ed)) <a name="12.5.1"></a> ## [12.5.1](https://github.com/dsherret/ts-simple-ast/compare/12.5.0...12.5.1) (2018-07-06) ### Bug Fixes * [#356](https://github.com/dsherret/ts-simple-ast/issues/356) - Setting method as abstract in structure should not write method body. ([8f70df2](https://github.com/dsherret/ts-simple-ast/commit/8f70df2)) <a name="12.5.0"></a> # [12.5.0](https://github.com/dsherret/ts-simple-ast/compare/12.4.1...12.5.0) (2018-07-02) ### Bug Fixes * [#354](https://github.com/dsherret/ts-simple-ast/issues/354) - Support using ts-simple-ast in the browser without mocking "fs" or "fs-extra" ([795fe55](https://github.com/dsherret/ts-simple-ast/commit/795fe55)) * BooleanLiteral#setLiteralValue(value: boolean) should never return undefined. ([d1ee709](https://github.com/dsherret/ts-simple-ast/commit/d1ee709)) * NamespaceDeclaration#getDeclarationKindKeyword should never return undefined. ([0b81c00](https://github.com/dsherret/ts-simple-ast/commit/0b81c00)) ### Features * Add JSDocTag#getName(). ([0c868e9](https://github.com/dsherret/ts-simple-ast/commit/0c868e9)) * Add Symbol#getAliasedSymbolOrThrow() and Symbol#getExportByNameOrThrow(name: string). ([78c7ea3](https://github.com/dsherret/ts-simple-ast/commit/78c7ea3)) <a name="12.4.1"></a> ## [12.4.1](https://github.com/dsherret/ts-simple-ast/compare/12.4.0...12.4.1) (2018-07-02) ### Bug Fixes * [#348](https://github.com/dsherret/ts-simple-ast/issues/348) - project.getSourceFiles() would sometimes return multiple instances of the same source file. ([8888967](https://github.com/dsherret/ts-simple-ast/commit/8888967)) * [#352](https://github.com/dsherret/ts-simple-ast/issues/352) - Fixed reading relative files from tsconfig.json with multiple rootDirs ([c2e948f](https://github.com/dsherret/ts-simple-ast/commit/c2e948f)) -- Thanks [@dzinxed](https://github.com/dzinxed)! <a name="12.4.0"></a> # [12.4.0](https://github.com/dsherret/ts-simple-ast/compare/12.3.0...12.4.0) (2018-06-10) ### Features * [#342](https://github.com/dsherret/ts-simple-ast/issues/342) - Finish work on removing property assignment. ([9e35623](https://github.com/dsherret/ts-simple-ast/commit/9e35623)) * Add ability to add/insert type parameters with a default type node. ([cd05c3f](https://github.com/dsherret/ts-simple-ast/commit/cd05c3f)) * Add SourceFile.isFromExternalLibrary ([136a2da](https://github.com/dsherret/ts-simple-ast/commit/136a2da)) * Add Symbol.getEscapedName() ([4360bab](https://github.com/dsherret/ts-simple-ast/commit/4360bab)) * Add TypeParameterDeclaration - getConstraintOrThrow() and getDefaultOrThrow() ([8e8166b](https://github.com/dsherret/ts-simple-ast/commit/8e8166b)) * TypeParameterDeclaration - Add .removeDefault() and .removeConstraint() ([7a9d329](https://github.com/dsherret/ts-simple-ast/commit/7a9d329)) * TypeParameterDeclaration - Add .setDefault(text) and .setConstraint(text) ([de9d91b](https://github.com/dsherret/ts-simple-ast/commit/de9d91b)) <a name="12.3.0"></a> # [12.3.0](https://github.com/dsherret/ts-simple-ast/compare/12.2.0...12.3.0) (2018-06-09) ### Features * [#342](https://github.com/dsherret/ts-simple-ast/issues/342) - Ability to remove more object literal expression members ([e82d45f](https://github.com/dsherret/ts-simple-ast/commit/e82d45f), [9e35623](https://github.com/dsherret/ts-simple-ast/commit/9e35623)) -- Thanks [@cancerberoSgx](https://github.com/cancerberoSgx) for the help! ### Bug Fixes * [#340](https://github.com/dsherret/ts-simple-ast/pull/340) - Fix insert/remove support for Block ([@cancerberoSgx](https://github.com/cancerberoSgx)). <a name="12.2.0"></a> # [12.2.0](https://github.com/dsherret/ts-simple-ast/compare/12.1.0...12.2.0) (2018-06-04) ### Features * Add Node.getStartColumn(), Node.getEndColumn(), SourceFile.getColumnAtPos(pos). ([5119e83](https://github.com/dsherret/ts-simple-ast/commit/5119e83)) * Add UserPreferences on sourceFile.organizeImports() ([6b0a089](https://github.com/dsherret/ts-simple-ast/commit/6b0a089)) <a name="12.1.0"></a> # [12.1.0](https://github.com/dsherret/ts-simple-ast/compare/12.0.0...12.1.0) (2018-06-04) ### Features * Add ImportTypeNode. ([3d0203c](https://github.com/dsherret/ts-simple-ast/commit/3d0203c)) * ImportTypeNode - setArgument and setQualifier ([e94bbd4](https://github.com/dsherret/ts-simple-ast/commit/e94bbd4)) * Improvements to CompilerNodeToWrappedType. ([384613a](https://github.com/dsherret/ts-simple-ast/commit/384613a)) <a name="12.0.0"></a> # [12.0.0](https://github.com/dsherret/ts-simple-ast/compare/11.3.0...12.0.0) (2018-06-03) ### Code Refactoring * Remove .getReferencingNodes() found on some nodes and languageService.getDefinitionReferencingNodes() ([a20cd4e](https://github.com/dsherret/ts-simple-ast/commit/a20cd4e)) ### Features * [#302](https://github.com/dsherret/ts-simple-ast/issues/302) - Add CompilerNodeToWrappedType. ([0ce5af5](https://github.com/dsherret/ts-simple-ast/commit/0ce5af5)) * [#304](https://github.com/dsherret/ts-simple-ast/issues/304) - Improve getNodeProperty by using condition types. Add CompilerNodeToWrapperMappings. ([5bd2926](https://github.com/dsherret/ts-simple-ast/commit/5bd2926)) * [#337](https://github.com/dsherret/ts-simple-ast/issues/337) - Add DiagnosticWithLocation. ([f1f700e](https://github.com/dsherret/ts-simple-ast/commit/f1f700e)) * [#337](https://github.com/dsherret/ts-simple-ast/issues/337) - Add DocumentSpan - getOriginalTextSpan and getOriginalFileName ([254bea8](https://github.com/dsherret/ts-simple-ast/commit/254bea8)) * [#337](https://github.com/dsherret/ts-simple-ast/issues/337) - DefinitionInfo now extends DocumentSpan as done in ts 2.9. ([c1ff983](https://github.com/dsherret/ts-simple-ast/commit/c1ff983)) * [#338](https://github.com/dsherret/ts-simple-ast/issues/338) - Add Diagnostic.getLineNumber() ([4cba457](https://github.com/dsherret/ts-simple-ast/commit/4cba457)) * Add Type: isUnionOrIntersection, isClass, and isClassOrInterface. ([12c4710](https://github.com/dsherret/ts-simple-ast/commit/12c4710)) * Add UserPreferences and new organizeImports parameter ([a7864f1](https://github.com/dsherret/ts-simple-ast/commit/a7864f1)) * Update to TypeScript 2.9. ([da45aae](https://github.com/dsherret/ts-simple-ast/commit/da45aae)) ### BREAKING CHANGES * `getNodeProperty` functionality requires TS 2.8 or greater due to mapped types. * DefinitionInfo.getNode() is now DefinitionInfo.getDeclarationNode() for compatibility with DocumentSpan. * getReferencingNodes and getDefinitionReferencingNodes are both renamed to .findReferencesAsNodes(). This is so the method is more discoverable in auto complete when looking at .findReferences(). * Renamed all Type.isXType() methods to Type.isX() to match what's done in the compiler api and to remove needless repetition in name. * Updating to TypeScript 2.9 introduces some changes in behaviour and breaking changes in the compiler API declaration file. <a name="11.3.0"></a> # [11.3.0](https://github.com/dsherret/ts-simple-ast/compare/11.2.2...11.3.0) (2018-06-01) ### Features * Add .findReferencesAsNodes() to deprecate .getReferencingNodes() in next major. ([a8a731a](https://github.com/dsherret/ts-simple-ast/commit/a8a731a)) <a name="11.2.2"></a> ## [11.2.2](https://github.com/dsherret/ts-simple-ast/compare/11.2.1...11.2.2) (2018-06-01) ### Bug Fixes * [#336](https://github.com/dsherret/ts-simple-ast/issues/336) - Calling .remove() incorrectly removes next sibling's leading comments. ([aab1c1b](https://github.com/dsherret/ts-simple-ast/commit/aab1c1b)) * sourceFile.getTrailingTriviaEnd() should return the end position of the source file. ([ff6b3b3](https://github.com/dsherret/ts-simple-ast/commit/ff6b3b3)) <a name="11.2.1"></a> ## [11.2.1](https://github.com/dsherret/ts-simple-ast/compare/11.2.0...11.2.1) (2018-05-28) ### Bug Fixes * [#335](https://github.com/dsherret/ts-simple-ast/issues/335) - addStatements would throw if the containing block was only indented a portion of an indentation level. ([c93104c](https://github.com/dsherret/ts-simple-ast/commit/c93104c)) <a name="11.2.0"></a> # [11.2.0](https://github.com/dsherret/ts-simple-ast/compare/11.1.1...11.2.0) (2018-05-08) ### Features * [#251](https://github.com/dsherret/ts-simple-ast/issues/251) - Add importDeclaration.removeNamespaceImport() and .getNamespaceImportOrThrow() ([0250138](https://github.com/dsherret/ts-simple-ast/commit/0250138)) * Add ImportDeclaration.getImportClause() and .getImportClauseOrThrow() ([8d99c27](https://github.com/dsherret/ts-simple-ast/commit/8d99c27)) * Node.preprendWhitespace(textOrWriterFunction) and .appendWhitespace(textOrWriterFunction) ([a43cb65](https://github.com/dsherret/ts-simple-ast/commit/a43cb65)) * Update code-block-writer version. Adds .tab(), .tabIfLastNot(), and .isLastTab(). ([903b8ac](https://github.com/dsherret/ts-simple-ast/commit/903b8ac)) <a name="11.1.1"></a> ## [11.1.1](https://github.com/dsherret/ts-simple-ast/compare/11.1.0...11.1.1) (2018-05-05) ### Bug Fixes * [#269](https://github.com/dsherret/ts-simple-ast/issues/269) - Support "extends" in tsconfig.json. ([4964bb7](https://github.com/dsherret/ts-simple-ast/commit/4964bb7)) <a name="11.1.0"></a> # [11.1.0](https://github.com/dsherret/ts-simple-ast/compare/11.0.0...11.1.0) (2018-05-01) ### Features * Ability to add/insert an argument with a writer. ([e1bcb6a](https://github.com/dsherret/ts-simple-ast/commit/e1bcb6a)) * Ability to set a DecoratorStructure's arguments using a writer function. ([585793c](https://github.com/dsherret/ts-simple-ast/commit/585793c)) * Ability to set a IndexSignatureDeclaration's return type using a writer function. ([0d6526d](https://github.com/dsherret/ts-simple-ast/commit/0d6526d)) * Ability to set a JSDoc's description in a structure by using a writer. ([0250ae1](https://github.com/dsherret/ts-simple-ast/commit/0250ae1)) * Ability to set a PropertyAssignment's initializer using a writer function. ([b633937](https://github.com/dsherret/ts-simple-ast/commit/b633937)) * Ability to set a return type with a writer. ([3db81f8](https://github.com/dsherret/ts-simple-ast/commit/3db81f8)) * Ability to set a SourceFileStructure's bodyText using a writer function. ([792c530](https://github.com/dsherret/ts-simple-ast/commit/792c530)) * Ability to set a SpreadAssignmentStructure's expression using a writer function. ([e7e0158](https://github.com/dsherret/ts-simple-ast/commit/e7e0158)) * Ability to set a type with a writer. ([5dc3565](https://github.com/dsherret/ts-simple-ast/commit/5dc3565)) <a name="11.0.0"></a> # [11.0.0](https://github.com/dsherret/ts-simple-ast/compare