{"bin":{"purify":"./src/purify/cli.js","build-optimizer":"./src/build-optimizer/cli.js"},"bugs":{"url":"https://github.com/angular/angular-cli/issues"},"dist":{"shasum":"1c1140667ac69686a07ada535d7e0337fc19c619","tarball":"https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.8.0-rc.0.tgz","fileCount":36,"integrity":"sha512-2oCzQv+ygAOJ53TnUjAXYG3H88tEWwKpgIlxEzoFPftzYkUBxFCrsr/gP//C99V0kaHJfr7whgf5GgooAiQ6pA==","signatures":[{"sig":"MEYCIQD6m+SPb6d/kJR+J+b5nMw9IwK5XyGuGiUBPf6n4AauqAIhAIuZ+++tKDOUivzyp8uWU/npMcKpFem7l9Od0UVD6r5q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":286790,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfw4XCRA9TVsSAnZWagAAy/AP/iHJO78CaANc18D2jx8X\nfhQ878tnVke7ZogLaX0iDdNAw9wIVUUyWe8LsK6pxFwGyLjZ3SE6qxcvvJKl\n9CQPWgIlzU/gm2VV9aVzTb+rNM0dqn5Z8+sFesf8hD87Iis4r+DWQn4RQgV2\nAi5nG7sh72su7KGju/Q+IKhNiv05WKuONF9D7ublUO4xXLEXO2ovXy661qGq\nMzbGIXKVpB8ZGC66LNinUz3YTSx+pFzEDkc1fa13rXRBM789+w2xTpUrmE5q\n5SzsAwwyOL/rLMH/tBzjHm4/TPg0H/rJTrTEXrXHLBOtNCYD14TBDhd0qniJ\nMPOo1O6uHSR6vgwHL239oe3FGhZ5IqWRsyrcC023ItGikrWR30dC5nLdXmO5\nlkOXiRl3sAR9YC7+MzRcfaZEokEjxKmVEutXPxN7UWm6Ayz5DiPfmKys6kzi\nU2NnPeNjWAZyu7OBzQg4v2nvonObq3IWKTJsqFS9eQd4rYhcNr3ALTk/DN7L\njNVUUZCLgYSYXOPtFXkZKe7EoAMyhHhT1SfEvl2muSVrO916v2yHJ7rJ4oMG\nuyBRh5k/Wp7YW1cS+9nFLdyr65eS5Lqjtbi4x5tRvGGI/YFQnfhIKhCE+A4q\nxvAO3laqElmsfbRgTNiIe79jx83JqFBaVphqd3DLKehNCDzqTvc5GOP3i4U6\no/Yw\r\n=B1Ks\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","name":"@angular-devkit/build-optimizer","author":{"name":"Angular Authors"},"readme":"# Angular Build Optimizer\n\nAngular Build Optimizer contains Angular optimizations applicable to JavaScript code as a TypeScript transform pipeline.\n\n\n## Available optimizations\n\nTransformations applied depend on file content:\n\n- [Class fold](#class-fold), [Scrub file](#scrub-file) and [Prefix functions](#prefix-functions): applied to Angular apps and libraries.\n- [Import tslib](#import-tslib): applied when TypeScript helpers are found.\n\nNon-transform optimizations are applied via the [Purify Plugin](#purify-plugin).\n\nSome of these optimizations add `/*@__PURE__*/` comments.\nThese are used by [UglifyJS](https://github.com/mishoo/UglifyJS2) to identify pure functions that can potentially be dropped.\n\n\n### Class fold\n\nStatic properties are folded into ES5 classes:\n\n```typescript\n// input\nvar Clazz = (function () { function Clazz() { } return Clazz; }());\nClazz.prop = 1;\n\n// output\nvar Clazz = (function () { function Clazz() { } Clazz.prop = 1; return Clazz; }());\n```\n\n\n### Scrub file\n\nAngular decorators, property decorators and constructor parameters are removed, while leaving non-Angular ones intact.\n\n```typescript\n// input\nimport { Injectable, Input, Component } from '@angular/core';\nimport { NotInjectable, NotComponent, NotInput } from 'another-lib';\nvar Clazz = (function () { function Clazz() { } return Clazz; }());\nClazz.decorators = [{ type: Injectable }, { type: NotInjectable }];\nClazz.propDecorators = { 'ngIf': [{ type: Input }] };\nClazz.ctorParameters = function () { return [{type: Injector}]; };\nvar ComponentClazz = (function () {\n  function ComponentClazz() { }\n  __decorate([\n    Input(),\n    __metadata(\"design:type\", Object)\n  ], Clazz.prototype, \"selected\", void 0);\n  __decorate([\n    NotInput(),\n    __metadata(\"design:type\", Object)\n  ], Clazz.prototype, \"notSelected\", void 0);\n  ComponentClazz = __decorate([\n    NotComponent(),\n    Component({\n        selector: 'app-root',\n        templateUrl: './app.component.html',\n        styleUrls: ['./app.component.css']\n    })\n  ], ComponentClazz);\n  return ComponentClazz;\n}());\n\n// output\nimport { Injectable, Input, Component } from '@angular/core';\nimport { NotInjectable, NotComponent } from 'another-lib';\nvar Clazz = (function () { function Clazz() { } return Clazz; }());\nClazz.decorators = [{ type: NotInjectable }];\nvar ComponentClazz = (function () {\n  function ComponentClazz() { }\n  __decorate([\n    NotInput(),\n    __metadata(\"design:type\", Object)\n  ], Clazz.prototype, \"notSelected\", void 0);\n  ComponentClazz = __decorate([\n    NotComponent()\n  ], ComponentClazz);\n  return ComponentClazz;\n}());\n```\n\n\n### Prefix functions\n\nAdds `/*@__PURE__*/` comments to top level downleveled class declarations and instantiation.\nWebpack library imports are also marked as `/*@__PURE__*/` when used with [Purify Plugin](#purify-plugin).\n\nWarning: this transform assumes the file is a pure module. It should not be used with unpure modules.\n\n```typescript\n// input\nvar Clazz = (function () { function Clazz() { } return Clazz; }());\nvar newClazz = new Clazz();\nvar newClazzTwo = Clazz();\n\n// output\nvar Clazz = /*@__PURE__*/ (function () { function Clazz() { } return Clazz; }());\nvar newClazz = /*@__PURE__*/ new Clazz();\nvar newClazzTwo = /*@__PURE__*/ Clazz();\n```\n\n\n### Prefix Classes\n\nAdds `/*@__PURE__*/` to downleveled TypeScript classes.\n\n```typescript\n// input\nvar ReplayEvent = (function () {\n    function ReplayEvent(time, value) {\n        this.time = time;\n        this.value = value;\n    }\n    return ReplayEvent;\n}());\n\n// output\nvar ReplayEvent = /*@__PURE__*/ (function () {\n    function ReplayEvent(time, value) {\n        this.time = time;\n        this.value = value;\n    }\n    return ReplayEvent;\n}());\n```\n\n\n### Import tslib\n\nTypeScript helpers (`__extends/__decorate/__metadata/__param`) are replaced with `tslib` imports whenever found.\n\n```typescript\n// input\nvar __extends = (this && this.__extends) || function (d, b) {\n  for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n\n// output\nimport { __extends } from \"tslib\";\n```\n\n### Wrap enums\n\nWrap downleveled TypeScript enums in a function, and adds `/*@__PURE__*/` comment.\n\n```typescript\n// input\nvar ChangeDetectionStrategy;\n(function (ChangeDetectionStrategy) {\n    ChangeDetectionStrategy[ChangeDetectionStrategy[\"OnPush\"] = 0] = \"OnPush\";\n    ChangeDetectionStrategy[ChangeDetectionStrategy[\"Default\"] = 1] = \"Default\";\n})(ChangeDetectionStrategy || (ChangeDetectionStrategy = {}));\n\n// output\nvar ChangeDetectionStrategy = /*@__PURE__*/ (function () {\n  var ChangeDetectionStrategy = {};\n  ChangeDetectionStrategy[ChangeDetectionStrategy[\"OnPush\"] = 0] = \"OnPush\";\n  ChangeDetectionStrategy[ChangeDetectionStrategy[\"Default\"] = 1] = \"Default\";\n  return ChangeDetectionStrategy;\n})();\n```\n\n\n### Purify Plugin\n\nPerforms regex based replacements on all bundles that add `/*@__PURE__*/` comments to\nknown pure webpack imports (used with [Prefix functions](#prefix-functions)).\n\n\n## Library Usage\n\n```typescript\nimport { buildOptimizer } from '@angular-devkit/build-optimizer';\n\nconst transpiledContent = buildOptimizer({ content: input }).content;\n```\n\nAvailable options:\n```typescript\nexport interface BuildOptimizerOptions {\n  content?: string;\n  inputFilePath?: string;\n  outputFilePath?: string;\n  emitSourceMap?: boolean;\n  strict?: boolean;\n  isSideEffectFree?: boolean;\n}\n```\n\n\n## Webpack loader and plugin usage:\n\n```typescript\nconst PurifyPlugin = require('@angular-devkit/build-optimizer').PurifyPlugin;\n\nmodule.exports = {\n  module: {\n    rules: [\n      {\n        test: /\\.js$/,\n        loader: '@angular-devkit/build-optimizer/webpack-loader',\n        options: {\n          sourceMap: false\n        }\n      }\n    ]\n  },\n  plugins: [\n    new PurifyPlugin()\n  ]\n}\n```\n\n\n## CLI usage\n\n```bash\nbuild-optimizer input.js\nbuild-optimizer input.js output.js\npurify input.js\npurify input.js output.js\n```\n","engines":{"npm":">= 5.5.1","node":">= 8.9.0"},"license":"MIT","typings":"src/index.d.ts","_npmUser":{"name":"angular","email":"devops+npm@angular.io"},"homepage":"https://github.com/angular/angular-cli","keywords":["angular","Angular CLI","devkit","sdk","Angular DevKit"],"repository":{"url":"git+https://github.com/angular/angular-cli.git","type":"git"},"_npmVersion":"5.6.0","description":"Angular Build Optimizer","directories":{},"maintainers":[{"name":"angular","email":"angular-core+npm@google.com"},{"name":"angular-devkit","email":"hansl@google.com"}],"_nodeVersion":"8.10.0","dependencies":{"source-map":"^0.5.6","typescript":"~2.9.2","loader-utils":"^1.1.0","webpack-sources":"^1.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/build-optimizer_0.8.0-rc.0_1535053334688_0.8853740327098343","host":"s3://npm-registry-packages"},"_id":"@angular-devkit/build-optimizer@0.8.0-rc.0","version":"0.8.0-rc.0"}