Socket
Socket
Sign inDemoInstall

@angular/compiler

Package Overview
Dependencies
Maintainers
1
Versions
837
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@angular/compiler - npm Package Compare versions

Comparing version 2.1.0 to 2.2.0-beta.0

src/directive_wrapper_compiler.d.ts

43

bundles/compiler-testing.umd.js
/**
* @license Angular v2.1.0
* @license Angular v2.2.0-beta.0
* (c) 2010-2016 Google, Inc. https://angular.io/

@@ -75,43 +75,2 @@ * License: MIT

}
var NumberWrapper = (function () {
function NumberWrapper() {
}
NumberWrapper.toFixed = function (n, fractionDigits) { return n.toFixed(fractionDigits); };
NumberWrapper.equal = function (a, b) { return a === b; };
NumberWrapper.parseIntAutoRadix = function (text) {
var result = parseInt(text);
if (isNaN(result)) {
throw new Error('Invalid integer literal when parsing ' + text);
}
return result;
};
NumberWrapper.parseInt = function (text, radix) {
if (radix == 10) {
if (/^(\-|\+)?[0-9]+$/.test(text)) {
return parseInt(text, radix);
}
}
else if (radix == 16) {
if (/^(\-|\+)?[0-9ABCDEFabcdef]+$/.test(text)) {
return parseInt(text, radix);
}
}
else {
var result = parseInt(text, radix);
if (!isNaN(result)) {
return result;
}
}
throw new Error('Invalid integer literal when parsing ' + text + ' in base ' + radix);
};
Object.defineProperty(NumberWrapper, "NaN", {
get: function () { return NaN; },
enumerable: true,
configurable: true
});
NumberWrapper.isNumeric = function (value) { return !isNaN(value - parseFloat(value)); };
NumberWrapper.isNaN = function (value) { return isNaN(value); };
NumberWrapper.isInteger = function (value) { return Number.isInteger(value); };
return NumberWrapper;
}());

@@ -118,0 +77,0 @@ var __extends = (this && this.__extends) || function (d, b) {

@@ -23,2 +23,33 @@ /**

*/
export * from './src/index';
export * from './src/template_parser/template_ast';
export { TEMPLATE_TRANSFORMS } from './src/template_parser/template_parser';
export { CompilerConfig, RenderTypes } from './src/config';
export * from './src/compile_metadata';
export * from './src/offline_compiler';
export { RuntimeCompiler } from './src/runtime_compiler';
export * from './src/url_resolver';
export * from './src/resource_loader';
export * from './src/compiler';
export { DirectiveResolver } from './src/directive_resolver';
export { PipeResolver } from './src/pipe_resolver';
export { NgModuleResolver } from './src/ng_module_resolver';
export { DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig } from './src/ml_parser/interpolation_config';
export { ElementSchemaRegistry } from './src/schema/element_schema_registry';
export * from './src/i18n/index';
export * from './src/template_parser/template_ast';
export * from './src/directive_normalizer';
export * from './src/expression_parser/lexer';
export * from './src/expression_parser/parser';
export * from './src/metadata_resolver';
export * from './src/ml_parser/html_parser';
export * from './src/ml_parser/interpolation_config';
export { NgModuleCompiler } from './src/ng_module_compiler';
export { DirectiveWrapperCompiler } from './src/directive_wrapper_compiler';
export * from './src/output/path_util';
export * from './src/output/ts_emitter';
export * from './src/parse_util';
export * from './src/schema/dom_element_schema_registry';
export * from './src/selector';
export * from './src/style_compiler';
export * from './src/template_parser/template_parser';
export { ViewCompiler } from './src/view_compiler/view_compiler';

@@ -23,3 +23,34 @@ /**

*/
export * from './src/index';
export * from './src/template_parser/template_ast';
export { TEMPLATE_TRANSFORMS } from './src/template_parser/template_parser';
export { CompilerConfig, RenderTypes } from './src/config';
export * from './src/compile_metadata';
export * from './src/offline_compiler';
export { RuntimeCompiler } from './src/runtime_compiler';
export * from './src/url_resolver';
export * from './src/resource_loader';
export * from './src/compiler';
export { DirectiveResolver } from './src/directive_resolver';
export { PipeResolver } from './src/pipe_resolver';
export { NgModuleResolver } from './src/ng_module_resolver';
export { DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig } from './src/ml_parser/interpolation_config';
export { ElementSchemaRegistry } from './src/schema/element_schema_registry';
export * from './src/i18n/index';
export * from './src/template_parser/template_ast';
export * from './src/directive_normalizer';
export * from './src/expression_parser/lexer';
export * from './src/expression_parser/parser';
export * from './src/metadata_resolver';
export * from './src/ml_parser/html_parser';
export * from './src/ml_parser/interpolation_config';
export { NgModuleCompiler } from './src/ng_module_compiler';
export { DirectiveWrapperCompiler } from './src/directive_wrapper_compiler';
export * from './src/output/path_util';
export * from './src/output/ts_emitter';
export * from './src/parse_util';
export * from './src/schema/dom_element_schema_registry';
export * from './src/selector';
export * from './src/style_compiler';
export * from './src/template_parser/template_parser';
export { ViewCompiler } from './src/view_compiler/view_compiler';
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./src/index"}]}
{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./src/template_parser/template_ast"},{"from":"./src/template_parser/template_parser","export":["TEMPLATE_TRANSFORMS"]},{"from":"./src/config","export":["CompilerConfig","RenderTypes"]},{"from":"./src/compile_metadata"},{"from":"./src/offline_compiler"},{"from":"./src/runtime_compiler","export":["RuntimeCompiler"]},{"from":"./src/url_resolver"},{"from":"./src/resource_loader"},{"from":"./src/compiler"},{"from":"./src/directive_resolver","export":["DirectiveResolver"]},{"from":"./src/pipe_resolver","export":["PipeResolver"]},{"from":"./src/ng_module_resolver","export":["NgModuleResolver"]},{"from":"./src/ml_parser/interpolation_config","export":["DEFAULT_INTERPOLATION_CONFIG","InterpolationConfig"]},{"from":"./src/schema/element_schema_registry","export":["ElementSchemaRegistry"]},{"from":"./src/i18n/index"},{"from":"./src/template_parser/template_ast"},{"from":"./src/directive_normalizer"},{"from":"./src/expression_parser/lexer"},{"from":"./src/expression_parser/parser"},{"from":"./src/metadata_resolver"},{"from":"./src/ml_parser/html_parser"},{"from":"./src/ml_parser/interpolation_config"},{"from":"./src/ng_module_compiler","export":["NgModuleCompiler"]},{"from":"./src/directive_wrapper_compiler","export":["DirectiveWrapperCompiler"]},{"from":"./src/output/path_util"},{"from":"./src/output/ts_emitter"},{"from":"./src/parse_util"},{"from":"./src/schema/dom_element_schema_registry"},{"from":"./src/selector"},{"from":"./src/style_compiler"},{"from":"./src/template_parser/template_parser"},{"from":"./src/view_compiler/view_compiler","export":["ViewCompiler"]}]}
{
"name": "@angular/compiler",
"version": "2.1.0",
"version": "2.2.0-beta.0",
"description": "Angular - the compiler library",

@@ -11,3 +11,3 @@ "main": "bundles/compiler.umd.js",

"peerDependencies": {
"@angular/core": "2.1.0"
"@angular/core": "2.2.0-beta.0"
},

@@ -14,0 +14,0 @@ "repository": {

@@ -36,2 +36,3 @@ /**

var _ANIMATION_FACTORY_VIEW_VAR = o.variable('view');
var _ANIMATION_FACTORY_VIEW_CONTEXT = _ANIMATION_FACTORY_VIEW_VAR.prop('animationContext');
var _ANIMATION_FACTORY_RENDERER_VAR = _ANIMATION_FACTORY_VIEW_VAR.prop('renderer');

@@ -154,3 +155,3 @@ var _ANIMATION_CURRENT_STATE_VAR = o.variable('currentState');

var statements = [];
statements.push(_ANIMATION_FACTORY_VIEW_VAR
statements.push(_ANIMATION_FACTORY_VIEW_CONTEXT
.callMethod('cancelActiveAnimation', [

@@ -203,9 +204,12 @@ _ANIMATION_FACTORY_ELEMENT_VAR, o.literal(this.animationName),

.toStmt());
statements.push(_ANIMATION_FACTORY_VIEW_VAR
statements.push(_ANIMATION_FACTORY_VIEW_CONTEXT
.callMethod('queueAnimation', [
_ANIMATION_FACTORY_ELEMENT_VAR, o.literal(this.animationName),
_ANIMATION_PLAYER_VAR, _ANIMATION_TIME_VAR,
_ANIMATION_CURRENT_STATE_VAR, _ANIMATION_NEXT_STATE_VAR
_ANIMATION_PLAYER_VAR
])
.toStmt());
statements.push(new o.ReturnStatement(o.importExpr(resolveIdentifier(Identifiers.AnimationTransition)).instantiate([
_ANIMATION_PLAYER_VAR, _ANIMATION_CURRENT_STATE_VAR, _ANIMATION_NEXT_STATE_VAR,
_ANIMATION_TIME_VAR
])));
return o.fn([

@@ -216,3 +220,3 @@ new o.FnParam(_ANIMATION_FACTORY_VIEW_VAR.name, o.importType(resolveIdentifier(Identifiers.AppView), [o.DYNAMIC_TYPE])),

new o.FnParam(_ANIMATION_NEXT_STATE_VAR.name, o.DYNAMIC_TYPE)
], statements);
], statements, o.importType(resolveIdentifier(Identifiers.AnimationTransition)));
};

@@ -219,0 +223,0 @@ _AnimationBuilder.prototype.build = function (ast) {

@@ -15,4 +15,3 @@ /**

import { ListWrapper, StringMapWrapper } from '../facade/collection';
import { isArray, isBlank, isPresent, isString, isStringMap } from '../facade/lang';
import { Math } from '../facade/math';
import { isBlank, isPresent } from '../facade/lang';
import { ParseError } from '../parse_util';

@@ -97,3 +96,3 @@ import { ANY_STATE, FILL_STYLE_FLAG } from '../private_import_core';

// TODO (matsko): change this when we get CSS class integration support
if (isStringMap(stylesEntry)) {
if (typeof stylesEntry === 'object' && stylesEntry !== null) {
styleValues.push(stylesEntry);

@@ -157,4 +156,3 @@ }

function _normalizeAnimationEntry(entry) {
return isArray(entry) ? new CompileAnimationSequenceMetadata(entry) :
entry;
return Array.isArray(entry) ? new CompileAnimationSequenceMetadata(entry) : entry;
}

@@ -164,3 +162,3 @@ function _normalizeStyleMetadata(entry, stateStyles, errors) {

entry.styles.forEach(function (styleEntry) {
if (isString(styleEntry)) {
if (typeof styleEntry === 'string') {
ListWrapper.addAll(normalizedStyles, _resolveStylesFromState(styleEntry, stateStyles, errors));

@@ -181,6 +179,6 @@ }

function _mergeAnimationStyles(stylesList, newItem) {
if (isStringMap(newItem) && stylesList.length > 0) {
if (typeof newItem === 'object' && newItem !== null && stylesList.length > 0) {
var lastIndex = stylesList.length - 1;
var lastItem = stylesList[lastIndex];
if (isStringMap(lastItem)) {
if (typeof lastItem === 'object' && lastItem !== null) {
stylesList[lastIndex] = StringMapWrapper.merge(lastItem, newItem);

@@ -263,3 +261,3 @@ return;

value.styles.forEach(function (stylesEntry) {
if (isStringMap(stylesEntry)) {
if (typeof stylesEntry === 'object' && stylesEntry !== null) {
styles.push(stylesEntry);

@@ -453,3 +451,3 @@ }

var easing = null;
if (isString(exp)) {
if (typeof exp === 'string') {
var matches = exp.match(regex);

@@ -456,0 +454,0 @@ if (matches === null) {

@@ -9,3 +9,3 @@ /**

import { isDevMode } from '@angular/core';
import { isArray, isBlank, isPresent, isString } from '../src/facade/lang';
import { isBlank, isPresent } from '../src/facade/lang';
export function assertArrayOfStrings(identifier, value) {

@@ -15,7 +15,7 @@ if (!isDevMode() || isBlank(value)) {

}
if (!isArray(value)) {
if (!Array.isArray(value)) {
throw new Error("Expected '" + identifier + "' to be an array of strings.");
}
for (var i = 0; i < value.length; i += 1) {
if (!isString(value[i])) {
if (typeof value[i] !== 'string') {
throw new Error("Expected '" + identifier + "' to be an array of strings.");

@@ -33,3 +33,3 @@ }

export function assertInterpolationSymbols(identifier, value) {
if (isPresent(value) && !(isArray(value) && value.length == 2)) {
if (isPresent(value) && !(Array.isArray(value) && value.length == 2)) {
throw new Error("Expected '" + identifier + "' to be an array, [start, end].");

@@ -36,0 +36,0 @@ }

@@ -15,3 +15,3 @@ /**

import { ListWrapper, MapWrapper } from './facade/collection';
import { isPresent, isStringMap, normalizeBlank, normalizeBool } from './facade/lang';
import { isPresent, normalizeBlank, normalizeBool } from './facade/lang';
import { CssSelector } from './selector';

@@ -456,3 +456,3 @@ import { sanitizeIdentifier, splitAtColon } from './util';

export function isStaticSymbol(value) {
return isStringMap(value) && isPresent(value['name']) && isPresent(value['filePath']);
return typeof value === 'object' && value !== null && value['name'] && value['filePath'];
}

@@ -459,0 +459,0 @@ export var ProviderMeta = (function () {

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":1,"metadata":{"isStaticSymbol":{"__symbolic":"function","parameters":["value"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./facade/lang","name":"isStringMap"},"arguments":[{"__symbolic":"reference","name":"value"}]},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./facade/lang","name":"isPresent"},"arguments":[{"__symbolic":"index","expression":{"__symbolic":"reference","name":"value"},"index":"name"}]}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"./facade/lang","name":"isPresent"},"arguments":[{"__symbolic":"index","expression":{"__symbolic":"reference","name":"value"},"index":"filePath"}]}}}}}
{"__symbolic":"module","version":1,"metadata":{"isStaticSymbol":{"__symbolic":"function","parameters":["value"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":596,"character":9},"right":"object"},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"value"},"right":null}},"right":{"__symbolic":"index","expression":{"__symbolic":"reference","name":"value"},"index":"name"}},"right":{"__symbolic":"index","expression":{"__symbolic":"reference","name":"value"},"index":"filePath"}}}}}

@@ -9,13 +9,2 @@ /**

import { Compiler, CompilerFactory, CompilerOptions, PlatformRef, Provider, Type } from '@angular/core';
export * from './template_parser/template_ast';
export { TEMPLATE_TRANSFORMS } from './template_parser/template_parser';
export { CompilerConfig, RenderTypes } from './config';
export * from './compile_metadata';
export * from './offline_compiler';
export { RuntimeCompiler } from './runtime_compiler';
export * from './url_resolver';
export * from './resource_loader';
export { DirectiveResolver } from './directive_resolver';
export { PipeResolver } from './pipe_resolver';
export { NgModuleResolver } from './ng_module_resolver';
/**

@@ -22,0 +11,0 @@ * A set of providers that provide `RuntimeCompiler` and its dependencies to use for

@@ -9,33 +9,23 @@ /**

import { COMPILER_OPTIONS, Compiler, CompilerFactory, Inject, Injectable, Optional, PLATFORM_INITIALIZER, ReflectiveInjector, TRANSLATIONS, TRANSLATIONS_FORMAT, ViewEncapsulation, createPlatformFactory, isDevMode, platformCore } from '@angular/core';
export * from './template_parser/template_ast';
export { TEMPLATE_TRANSFORMS } from './template_parser/template_parser';
export { CompilerConfig, RenderTypes } from './config';
export * from './compile_metadata';
export * from './offline_compiler';
export { RuntimeCompiler } from './runtime_compiler';
export * from './url_resolver';
export * from './resource_loader';
export { DirectiveResolver } from './directive_resolver';
export { PipeResolver } from './pipe_resolver';
export { NgModuleResolver } from './ng_module_resolver';
import { TemplateParser } from './template_parser/template_parser';
import { HtmlParser } from './ml_parser/html_parser';
import { CompilerConfig } from './config';
import { DirectiveNormalizer } from './directive_normalizer';
import { DirectiveResolver } from './directive_resolver';
import { DirectiveWrapperCompiler } from './directive_wrapper_compiler';
import { Lexer } from './expression_parser/lexer';
import { Parser } from './expression_parser/parser';
import * as i18n from './i18n/index';
import { CompileMetadataResolver } from './metadata_resolver';
import { StyleCompiler } from './style_compiler';
import { ViewCompiler } from './view_compiler/view_compiler';
import { HtmlParser } from './ml_parser/html_parser';
import { NgModuleCompiler } from './ng_module_compiler';
import { CompilerConfig } from './config';
import { NgModuleResolver } from './ng_module_resolver';
import { PipeResolver } from './pipe_resolver';
import { Console, ReflectionCapabilities, Reflector, ReflectorReader, reflector } from './private_import_core';
import { ResourceLoader } from './resource_loader';
import { RuntimeCompiler } from './runtime_compiler';
import { DomElementSchemaRegistry } from './schema/dom_element_schema_registry';
import { ElementSchemaRegistry } from './schema/element_schema_registry';
import { DomElementSchemaRegistry } from './schema/dom_element_schema_registry';
import { UrlResolver, DEFAULT_PACKAGE_URL_PROVIDER } from './url_resolver';
import { Parser } from './expression_parser/parser';
import { Lexer } from './expression_parser/lexer';
import { DirectiveResolver } from './directive_resolver';
import { PipeResolver } from './pipe_resolver';
import { NgModuleResolver } from './ng_module_resolver';
import { Console, Reflector, reflector, ReflectorReader, ReflectionCapabilities } from './private_import_core';
import { ResourceLoader } from './resource_loader';
import * as i18n from './i18n/index';
import { StyleCompiler } from './style_compiler';
import { TemplateParser } from './template_parser/template_parser';
import { DEFAULT_PACKAGE_URL_PROVIDER, UrlResolver } from './url_resolver';
import { ViewCompiler } from './view_compiler/view_compiler';
var _NO_RESOURCE_LOADER = {

@@ -76,2 +66,3 @@ get: function (url) {

NgModuleCompiler,
DirectiveWrapperCompiler,
{ provide: CompilerConfig, useValue: new CompilerConfig() },

@@ -78,0 +69,0 @@ RuntimeCompiler,

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":1,"metadata":{"COMPILER_PROVIDERS":{"__symbolic":"error","message":"Function call not supported","line":64,"character":16},"RuntimeCompilerFactory":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"COMPILER_OPTIONS"}]}]],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"@angular/core","name":"CompilerOptions"}]}]}],"createCompiler":[{"__symbolic":"method"}]}},"platformCoreDynamic":{"__symbolic":"error","message":"Reference to a non-exported function","line":128,"character":9,"context":{"name":"_initReflector"}}},"exports":[{"from":"./template_parser/template_ast"},{"from":"./template_parser/template_parser","export":["TEMPLATE_TRANSFORMS"]},{"from":"./config","export":["CompilerConfig","RenderTypes"]},{"from":"./compile_metadata"},{"from":"./offline_compiler"},{"from":"./runtime_compiler","export":["RuntimeCompiler"]},{"from":"./url_resolver"},{"from":"./resource_loader"},{"from":"./directive_resolver","export":["DirectiveResolver"]},{"from":"./pipe_resolver","export":["PipeResolver"]},{"from":"./ng_module_resolver","export":["NgModuleResolver"]}]}
{"__symbolic":"module","version":1,"metadata":{"COMPILER_PROVIDERS":{"__symbolic":"error","message":"Function call not supported","line":52,"character":16},"RuntimeCompilerFactory":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"COMPILER_OPTIONS"}]}]],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"@angular/core","name":"CompilerOptions"}]}]}],"createCompiler":[{"__symbolic":"method"}]}},"platformCoreDynamic":{"__symbolic":"error","message":"Reference to a non-exported function","line":117,"character":9,"context":{"name":"_initReflector"}}}}

@@ -10,3 +10,3 @@ /**

import * as chars from '../chars';
import { NumberWrapper, StringJoiner, isPresent } from '../facade/lang';
import { NumberWrapper, isPresent } from '../facade/lang';
export var TokenType;

@@ -260,3 +260,3 @@ (function (TokenType) {

this.advance(); // Skip initial quote.
var buffer;
var buffer = '';
var marker = this.index;

@@ -266,7 +266,5 @@ var input = this.input;

if (this.peek == chars.$BACKSLASH) {
if (buffer == null)
buffer = new StringJoiner();
buffer.add(input.substring(marker, this.index));
buffer += input.substring(marker, this.index);
this.advance();
var unescapedCode;
var unescapedCode = void 0;
if (this.peek == chars.$u) {

@@ -289,3 +287,3 @@ // 4 character hex code for unicode character.

}
buffer.add(String.fromCharCode(unescapedCode));
buffer += String.fromCharCode(unescapedCode);
marker = this.index;

@@ -302,9 +300,3 @@ }

this.advance(); // Skip terminating quote.
// Compute the unescaped string value.
var unescaped = last;
if (buffer != null) {
buffer.add(last);
unescaped = buffer.toString();
}
return newStringToken(start, unescaped);
return newStringToken(start, buffer + last);
};

@@ -311,0 +303,0 @@ _Scanner.prototype.error = function (message, offset) {

@@ -5,7 +5,2 @@ export declare class MapWrapper {

}): Map<string, T>;
static toStringMap<T>(m: Map<string, T>): {
[key: string]: T;
};
static createFromPairs(pairs: any[]): Map<any, any>;
static iterable<T>(m: T): T;
static keys<K>(m: Map<K, any>): K[];

@@ -12,0 +7,0 @@ static values<V>(m: Map<any, V>): V[];

@@ -8,52 +8,3 @@ /**

*/
import { getSymbolIterator, isArray, isBlank, isJsObject, isPresent } from './lang';
// Safari and Internet Explorer do not support the iterable parameter to the
// Map constructor. We work around that by manually adding the items.
var createMapFromPairs = (function () {
try {
if (new Map([[1, 2]]).size === 1) {
return function createMapFromPairs(pairs) { return new Map(pairs); };
}
}
catch (e) {
}
return function createMapAndPopulateFromPairs(pairs) {
var map = new Map();
for (var i = 0; i < pairs.length; i++) {
var pair = pairs[i];
map.set(pair[0], pair[1]);
}
return map;
};
})();
var createMapFromMap = (function () {
try {
if (new Map(new Map())) {
return function createMapFromMap(m) { return new Map(m); };
}
}
catch (e) {
}
return function createMapAndPopulateFromMap(m) {
var map = new Map();
m.forEach(function (v, k) { map.set(k, v); });
return map;
};
})();
var _clearValues = (function () {
if ((new Map()).keys().next) {
return function _clearValues(m) {
var keyIterator = m.keys();
var k;
while (!((k = keyIterator.next()).done)) {
m.set(k.value, null);
}
};
}
else {
return function _clearValuesWithForeEach(m) {
m.forEach(function (v, k) { m.set(k, null); });
};
}
})();
import { getSymbolIterator, isBlank, isJsObject, isPresent } from './lang';
// Safari doesn't implement MapIterator.next(), which is used is Traceur's polyfill of Array.from

@@ -90,9 +41,2 @@ // TODO(mlaval): remove the work around once we have a working polyfill of Array.from

};
MapWrapper.toStringMap = function (m) {
var r = {};
m.forEach(function (v, k) { return r[k] = v; });
return r;
};
MapWrapper.createFromPairs = function (pairs) { return createMapFromPairs(pairs); };
MapWrapper.iterable = function (m) { return m; };
MapWrapper.keys = function (m) { return _arrayFromMap(m, false); };

@@ -256,3 +200,3 @@ MapWrapper.values = function (m) { return _arrayFromMap(m, true); };

var item = source[i];
if (isArray(item)) {
if (Array.isArray(item)) {
_flattenArray(item, target);

@@ -270,3 +214,3 @@ }

return false;
return isArray(obj) ||
return Array.isArray(obj) ||
(!(obj instanceof Map) &&

@@ -290,3 +234,3 @@ getSymbolIterator() in obj); // JS Iterable have a Symbol.iterator prop

export function iterateListLike(obj, fn) {
if (isArray(obj)) {
if (Array.isArray(obj)) {
for (var i = 0; i < obj.length; i++) {

@@ -298,3 +242,3 @@ fn(obj[i]);

var iterator = obj[getSymbolIterator()]();
var item;
var item = void 0;
while (!((item = iterator.next()).done)) {

@@ -301,0 +245,0 @@ fn(item.value);

@@ -36,36 +36,12 @@

export declare function isBlank(obj: any): boolean;
export declare function isBoolean(obj: any): boolean;
export declare function isNumber(obj: any): boolean;
export declare function isString(obj: any): obj is string;
export declare function isFunction(obj: any): boolean;
export declare function isType(obj: any): boolean;
export declare function isStringMap(obj: any): obj is Object;
export declare function isStrictStringMap(obj: any): boolean;
export declare function isArray(obj: any): boolean;
export declare function isDate(obj: any): obj is Date;
export declare function noop(): void;
export declare function stringify(token: any): string;
export declare class StringJoiner {
parts: string[];
constructor(parts?: string[]);
add(part: string): void;
toString(): string;
}
export declare class NumberWrapper {
static toFixed(n: number, fractionDigits: number): string;
static equal(a: number, b: number): boolean;
static parseIntAutoRadix(text: string): number;
static parseInt(text: string, radix: number): number;
static NaN: number;
static isNumeric(value: any): boolean;
static isNaN(value: any): boolean;
static isInteger(value: any): boolean;
}
export declare var RegExp: RegExpConstructor;
export declare class FunctionWrapper {
static apply(fn: Function, posArgs: any): any;
static bind(fn: Function, scope: any): Function;
}
export declare function looseIdentical(a: any, b: any): boolean;
export declare function getMapKey<T>(value: T): T;
export declare function normalizeBlank(obj: Object): any;

@@ -76,14 +52,5 @@ export declare function normalizeBool(obj: boolean): boolean;

export declare function warn(obj: Error | Object): void;
export declare class Json {
static parse(s: string): Object;
static stringify(data: Object): string;
}
export declare function setValueOnPath(global: any, path: string, value: any): void;
export declare function getSymbolIterator(): string | symbol;
export declare function evalExpression(sourceUrl: string, expr: string, declarations: string, vars: {
[key: string]: any;
}): any;
export declare function isPrimitive(obj: any): boolean;
export declare function hasConstructor(value: Object, type: any): boolean;
export declare function escape(s: string): string;
export declare function escapeRegExp(s: string): string;

@@ -43,27 +43,6 @@ /**

}
export function isBoolean(obj) {
return typeof obj === 'boolean';
}
export function isNumber(obj) {
return typeof obj === 'number';
}
export function isString(obj) {
return typeof obj === 'string';
}
export function isFunction(obj) {
return typeof obj === 'function';
}
export function isType(obj) {
return isFunction(obj);
}
export function isStringMap(obj) {
return typeof obj === 'object' && obj !== null;
}
var STRING_MAP_PROTO = Object.getPrototypeOf({});
export function isStrictStringMap(obj) {
return isStringMap(obj) && Object.getPrototypeOf(obj) === STRING_MAP_PROTO;
return typeof obj === 'object' && obj !== null && Object.getPrototypeOf(obj) === STRING_MAP_PROTO;
}
export function isArray(obj) {
return Array.isArray(obj);
}
export function isDate(obj) {

@@ -90,16 +69,5 @@ return obj instanceof Date && !isNaN(obj.valueOf());

}
export var StringJoiner = (function () {
function StringJoiner(parts) {
if (parts === void 0) { parts = []; }
this.parts = parts;
}
StringJoiner.prototype.add = function (part) { this.parts.push(part); };
StringJoiner.prototype.toString = function () { return this.parts.join(''); };
return StringJoiner;
}());
export var NumberWrapper = (function () {
function NumberWrapper() {
}
NumberWrapper.toFixed = function (n, fractionDigits) { return n.toFixed(fractionDigits); };
NumberWrapper.equal = function (a, b) { return a === b; };
NumberWrapper.parseIntAutoRadix = function (text) {

@@ -131,20 +99,5 @@ var result = parseInt(text);

};
Object.defineProperty(NumberWrapper, "NaN", {
get: function () { return NaN; },
enumerable: true,
configurable: true
});
NumberWrapper.isNumeric = function (value) { return !isNaN(value - parseFloat(value)); };
NumberWrapper.isNaN = function (value) { return isNaN(value); };
NumberWrapper.isInteger = function (value) { return Number.isInteger(value); };
return NumberWrapper;
}());
export var RegExp = _global.RegExp;
export var FunctionWrapper = (function () {
function FunctionWrapper() {
}
FunctionWrapper.apply = function (fn, posArgs) { return fn.apply(null, posArgs); };
FunctionWrapper.bind = function (fn, scope) { return fn.bind(scope); };
return FunctionWrapper;
}());
// JS has NaN !== NaN

@@ -154,7 +107,2 @@ export function looseIdentical(a, b) {

}
// JS considers NaN is the same as NaN for map Key (while NaN !== NaN otherwise)
// see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map
export function getMapKey(value) {
return value;
}
export function normalizeBlank(obj) {

@@ -175,13 +123,2 @@ return isBlank(obj) ? null : obj;

}
// Can't be all uppercase as our transpiler would think it is a special directive...
export var Json = (function () {
function Json() {
}
Json.parse = function (s) { return _global.JSON.parse(s); };
Json.stringify = function (data) {
// Dart doesn't take 3 arguments
return _global.JSON.stringify(data, null, 2);
};
return Json;
}());
export function setValueOnPath(global, path, value) {

@@ -224,21 +161,5 @@ var parts = path.split('.');

}
export function evalExpression(sourceUrl, expr, declarations, vars) {
var fnBody = declarations + "\nreturn " + expr + "\n//# sourceURL=" + sourceUrl;
var fnArgNames = [];
var fnArgValues = [];
for (var argName in vars) {
fnArgNames.push(argName);
fnArgValues.push(vars[argName]);
}
return new (Function.bind.apply(Function, [void 0].concat(fnArgNames.concat(fnBody))))().apply(void 0, fnArgValues);
}
export function isPrimitive(obj) {
return !isJsObject(obj);
}
export function hasConstructor(value, type) {
return value.constructor === type;
}
export function escape(s) {
return _global.encodeURI(s);
}
export function escapeRegExp(s) {

@@ -245,0 +166,0 @@ return s.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":1,"metadata":{"getTypeNameForDebugging":{"__symbolic":"function","parameters":["type"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"index","expression":{"__symbolic":"reference","name":"type"},"index":"name"},"right":{"__symbolic":"error","message":"Expression form not supported","line":61,"character":25}}},"isPresent":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"undefined"}},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":null}}},"isBlank":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"undefined"}},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"obj"},"right":null}}},"isBoolean":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":80,"character":9},"right":"boolean"}},"isNumber":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":84,"character":9},"right":"number"}},"isString":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":88,"character":9},"right":"string"}},"isFunction":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":92,"character":9},"right":"function"}},"isType":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isFunction"},"arguments":[{"__symbolic":"reference","name":"obj"}]}},"isStringMap":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":100,"character":9},"right":"object"},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":null}}},"isStrictStringMap":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isStringMap"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"right":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{}]}}}},"isArray":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Array"},"member":"isArray"},"arguments":[{"__symbolic":"reference","name":"obj"}]}},"isDate":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"Date"}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"obj"},"member":"valueOf"}}]}}}},"RegExp":{"__symbolic":"error","message":"Reference to a local symbol","line":55,"character":4,"context":{"name":"_global"}},"looseIdentical":{"__symbolic":"function","parameters":["a","b"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"a"},"right":{"__symbolic":"reference","name":"b"}},"right":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":198,"character":20},"right":"number"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":198,"character":45},"right":"number"}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"a"}]}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"b"}]}}}},"getMapKey":{"__symbolic":"function","parameters":["value"],"value":{"__symbolic":"reference","name":"value"}},"normalizeBlank":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"if","condition":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isBlank"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"thenExpression":null,"elseExpression":{"__symbolic":"reference","name":"obj"}}},"normalizeBool":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"if","condition":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isBlank"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"thenExpression":false,"elseExpression":{"__symbolic":"reference","name":"obj"}}},"isJsObject":{"__symbolic":"function","parameters":["o"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"o"},"right":null},"right":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":216,"character":24},"right":"function"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":216,"character":51},"right":"object"}}}},"isPrimitive":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isJsObject"},"arguments":[{"__symbolic":"reference","name":"obj"}]}}},"hasConstructor":{"__symbolic":"function","parameters":["value","type"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"value"},"member":"constructor"},"right":{"__symbolic":"reference","name":"type"}}},"escape":{"__symbolic":"function","parameters":["s"],"value":{"__symbolic":"error","message":"Reference to a local symbol","line":55,"character":4,"context":{"name":"_global"}}},"escapeRegExp":{"__symbolic":"function","parameters":["s"],"value":{"__symbolic":"error","message":"Expression form not supported","line":300,"character":19}}}}
{"__symbolic":"module","version":1,"metadata":{"getTypeNameForDebugging":{"__symbolic":"function","parameters":["type"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"index","expression":{"__symbolic":"reference","name":"type"},"index":"name"},"right":{"__symbolic":"error","message":"Expression form not supported","line":61,"character":25}}},"isPresent":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"undefined"}},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":null}}},"isBlank":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"undefined"}},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"obj"},"right":null}}},"isStrictStringMap":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":81,"character":9},"right":"object"},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":null}},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"right":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{}]}}}},"isDate":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"Date"}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"obj"},"member":"valueOf"}}]}}}},"looseIdentical":{"__symbolic":"function","parameters":["a","b"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"a"},"right":{"__symbolic":"reference","name":"b"}},"right":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":143,"character":20},"right":"number"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":143,"character":45},"right":"number"}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"a"}]}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"b"}]}}}},"normalizeBlank":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"if","condition":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isBlank"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"thenExpression":null,"elseExpression":{"__symbolic":"reference","name":"obj"}}},"normalizeBool":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"if","condition":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isBlank"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"thenExpression":false,"elseExpression":{"__symbolic":"reference","name":"obj"}}},"isJsObject":{"__symbolic":"function","parameters":["o"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"o"},"right":null},"right":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":155,"character":24},"right":"function"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":155,"character":51},"right":"object"}}}},"isPrimitive":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isJsObject"},"arguments":[{"__symbolic":"reference","name":"obj"}]}}},"escapeRegExp":{"__symbolic":"function","parameters":["s"],"value":{"__symbolic":"error","message":"Expression form not supported","line":210,"character":19}}}}

@@ -62,2 +62,5 @@ import { CompileIdentifierMetadata, CompileTokenMetadata } from './compile_metadata';

static TRANSLATIONS_FORMAT: IdentifierSpec;
static setBindingDebugInfo: IdentifierSpec;
static setBindingDebugInfoForChanges: IdentifierSpec;
static AnimationTransition: IdentifierSpec;
}

@@ -64,0 +67,0 @@ export declare function resolveIdentifier(identifier: IdentifierSpec): CompileIdentifierMetadata;

@@ -8,5 +8,5 @@ /**

*/
import { ANALYZE_FOR_ENTRY_COMPONENTS, ChangeDetectionStrategy, ChangeDetectorRef, ComponentFactory, ComponentFactoryResolver, ElementRef, Injector, LOCALE_ID as LOCALE_ID_, NgModuleFactory, QueryList, RenderComponentType, Renderer, SecurityContext, SimpleChange, TRANSLATIONS_FORMAT as TRANSLATIONS_FORMAT_, TemplateRef, ViewContainerRef, ViewEncapsulation } from '@angular/core';
import { ANALYZE_FOR_ENTRY_COMPONENTS, ChangeDetectionStrategy, ChangeDetectorRef, ComponentFactory, ComponentFactoryResolver, ElementRef, Injector, LOCALE_ID, NgModuleFactory, QueryList, RenderComponentType, Renderer, SecurityContext, SimpleChange, TRANSLATIONS_FORMAT, TemplateRef, ViewContainerRef, ViewEncapsulation } from '@angular/core';
import { CompileIdentifierMetadata, CompileTokenMetadata } from './compile_metadata';
import { AnimationGroupPlayer, AnimationKeyframe, AnimationSequencePlayer, AnimationStyles, AppElement, AppView, ChangeDetectorStatus, CodegenComponentFactoryResolver, DebugAppView, DebugContext, EMPTY_ARRAY, EMPTY_MAP, NgModuleInjector, NoOpAnimationPlayer, StaticNodeDebugInfo, TemplateRef_, UNINITIALIZED, ValueUnwrapper, ViewType, ViewUtils, balanceAnimationKeyframes, castByValue, checkBinding, clearStyles, collectAndResolveStyles, devModeEqual, flattenNestedViewRenderNodes, interpolate, prepareFinalAnimationStyles, pureProxy1, pureProxy10, pureProxy2, pureProxy3, pureProxy4, pureProxy5, pureProxy6, pureProxy7, pureProxy8, pureProxy9, reflector, registerModuleFactory, renderStyles } from './private_import_core';
import { AnimationGroupPlayer, AnimationKeyframe, AnimationSequencePlayer, AnimationStyles, AnimationTransition, AppElement, AppView, ChangeDetectorStatus, CodegenComponentFactoryResolver, DebugAppView, DebugContext, NgModuleInjector, NoOpAnimationPlayer, StaticNodeDebugInfo, TemplateRef_, UNINITIALIZED, ValueUnwrapper, ViewType, balanceAnimationKeyframes, clearStyles, collectAndResolveStyles, devModeEqual, prepareFinalAnimationStyles, reflector, registerModuleFactory, renderStyles, view_utils } from './private_import_core';
import { assetUrl } from './util';

@@ -28,3 +28,3 @@ var APP_VIEW_MODULE_URL = assetUrl('core', 'linker/view');

moduleUrl: assetUrl('core', 'linker/view_utils'),
runtime: ViewUtils
runtime: view_utils.ViewUtils
};

@@ -153,3 +153,3 @@ Identifiers.AppView = { name: 'AppView', moduleUrl: APP_VIEW_MODULE_URL, runtime: AppView };

moduleUrl: VIEW_UTILS_MODULE_URL,
runtime: checkBinding
runtime: view_utils.checkBinding
};

@@ -159,3 +159,3 @@ Identifiers.flattenNestedViewRenderNodes = {

moduleUrl: VIEW_UTILS_MODULE_URL,
runtime: flattenNestedViewRenderNodes
runtime: view_utils.flattenNestedViewRenderNodes
};

@@ -166,3 +166,3 @@ Identifiers.devModeEqual = { name: 'devModeEqual', moduleUrl: CD_MODULE_URL, runtime: devModeEqual };

moduleUrl: VIEW_UTILS_MODULE_URL,
runtime: interpolate
runtime: view_utils.interpolate
};

@@ -172,3 +172,3 @@ Identifiers.castByValue = {

moduleUrl: VIEW_UTILS_MODULE_URL,
runtime: castByValue
runtime: view_utils.castByValue
};

@@ -178,17 +178,21 @@ Identifiers.EMPTY_ARRAY = {

moduleUrl: VIEW_UTILS_MODULE_URL,
runtime: EMPTY_ARRAY
runtime: view_utils.EMPTY_ARRAY
};
Identifiers.EMPTY_MAP = { name: 'EMPTY_MAP', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: EMPTY_MAP };
Identifiers.EMPTY_MAP = {
name: 'EMPTY_MAP',
moduleUrl: VIEW_UTILS_MODULE_URL,
runtime: view_utils.EMPTY_MAP
};
Identifiers.pureProxies = [
null,
{ name: 'pureProxy1', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: pureProxy1 },
{ name: 'pureProxy2', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: pureProxy2 },
{ name: 'pureProxy3', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: pureProxy3 },
{ name: 'pureProxy4', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: pureProxy4 },
{ name: 'pureProxy5', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: pureProxy5 },
{ name: 'pureProxy6', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: pureProxy6 },
{ name: 'pureProxy7', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: pureProxy7 },
{ name: 'pureProxy8', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: pureProxy8 },
{ name: 'pureProxy9', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: pureProxy9 },
{ name: 'pureProxy10', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: pureProxy10 },
{ name: 'pureProxy1', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: view_utils.pureProxy1 },
{ name: 'pureProxy2', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: view_utils.pureProxy2 },
{ name: 'pureProxy3', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: view_utils.pureProxy3 },
{ name: 'pureProxy4', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: view_utils.pureProxy4 },
{ name: 'pureProxy5', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: view_utils.pureProxy5 },
{ name: 'pureProxy6', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: view_utils.pureProxy6 },
{ name: 'pureProxy7', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: view_utils.pureProxy7 },
{ name: 'pureProxy8', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: view_utils.pureProxy8 },
{ name: 'pureProxy9', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: view_utils.pureProxy9 },
{ name: 'pureProxy10', moduleUrl: VIEW_UTILS_MODULE_URL, runtime: view_utils.pureProxy10 },
];

@@ -253,3 +257,3 @@ Identifiers.SecurityContext = {

moduleUrl: assetUrl('core', 'i18n/tokens'),
runtime: LOCALE_ID_
runtime: LOCALE_ID
};

@@ -259,4 +263,19 @@ Identifiers.TRANSLATIONS_FORMAT = {

moduleUrl: assetUrl('core', 'i18n/tokens'),
runtime: TRANSLATIONS_FORMAT_
runtime: TRANSLATIONS_FORMAT
};
Identifiers.setBindingDebugInfo = {
name: 'setBindingDebugInfo',
moduleUrl: VIEW_UTILS_MODULE_URL,
runtime: view_utils.setBindingDebugInfo
};
Identifiers.setBindingDebugInfoForChanges = {
name: 'setBindingDebugInfoForChanges',
moduleUrl: VIEW_UTILS_MODULE_URL,
runtime: view_utils.setBindingDebugInfoForChanges
};
Identifiers.AnimationTransition = {
name: 'AnimationTransition',
moduleUrl: assetUrl('core', 'animation/animation_transition'),
runtime: AnimationTransition
};
return Identifiers;

@@ -263,0 +282,0 @@ }());

@@ -0,2 +1,9 @@

/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { LifecycleHooks } from './private_import_core';
export declare function hasLifecycleHook(hook: LifecycleHooks, token: any): boolean;

@@ -8,30 +8,26 @@ /**

*/
import { AfterContentChecked, AfterContentInit, AfterViewChecked, AfterViewInit, DoCheck, OnChanges, OnDestroy, OnInit } from '@angular/core';
import { MapWrapper } from './facade/collection';
import { LifecycleHooks, reflector } from './private_import_core';
var LIFECYCLE_INTERFACES = MapWrapper.createFromPairs([
[LifecycleHooks.OnInit, OnInit],
[LifecycleHooks.OnDestroy, OnDestroy],
[LifecycleHooks.DoCheck, DoCheck],
[LifecycleHooks.OnChanges, OnChanges],
[LifecycleHooks.AfterContentInit, AfterContentInit],
[LifecycleHooks.AfterContentChecked, AfterContentChecked],
[LifecycleHooks.AfterViewInit, AfterViewInit],
[LifecycleHooks.AfterViewChecked, AfterViewChecked],
]);
var LIFECYCLE_PROPS = MapWrapper.createFromPairs([
[LifecycleHooks.OnInit, 'ngOnInit'],
[LifecycleHooks.OnDestroy, 'ngOnDestroy'],
[LifecycleHooks.DoCheck, 'ngDoCheck'],
[LifecycleHooks.OnChanges, 'ngOnChanges'],
[LifecycleHooks.AfterContentInit, 'ngAfterContentInit'],
[LifecycleHooks.AfterContentChecked, 'ngAfterContentChecked'],
[LifecycleHooks.AfterViewInit, 'ngAfterViewInit'],
[LifecycleHooks.AfterViewChecked, 'ngAfterViewChecked'],
]);
export function hasLifecycleHook(hook, token) {
var lcInterface = LIFECYCLE_INTERFACES.get(hook);
var lcProp = LIFECYCLE_PROPS.get(hook);
return reflector.hasLifecycleHook(token, lcInterface, lcProp);
return reflector.hasLifecycleHook(token, getHookName(hook));
}
function getHookName(hook) {
switch (hook) {
case LifecycleHooks.OnInit:
return 'ngOnInit';
case LifecycleHooks.OnDestroy:
return 'ngOnDestroy';
case LifecycleHooks.DoCheck:
return 'ngDoCheck';
case LifecycleHooks.OnChanges:
return 'ngOnChanges';
case LifecycleHooks.AfterContentInit:
return 'ngAfterContentInit';
case LifecycleHooks.AfterContentChecked:
return 'ngAfterContentChecked';
case LifecycleHooks.AfterViewInit:
return 'ngAfterViewInit';
case LifecycleHooks.AfterViewChecked:
return 'ngAfterViewChecked';
}
}
//# sourceMappingURL=lifecycle_reflector.js.map

@@ -35,3 +35,3 @@ /**

getAnimationMetadata(value: AnimationMetadata): cpl.CompileAnimationMetadata;
getDirectiveMetadata(directiveType: Type<any>, throwIfNotFound?: boolean): cpl.CompileDirectiveMetadata;
getDirectiveMetadata(directiveType: any, throwIfNotFound?: boolean): cpl.CompileDirectiveMetadata;
getNgModuleMetadata(moduleType: any, throwIfNotFound?: boolean): cpl.CompileNgModuleMetadata;

@@ -38,0 +38,0 @@ private _verifyModule(moduleMeta);

@@ -17,3 +17,3 @@ /**

import { DirectiveResolver } from './directive_resolver';
import { isBlank, isPresent, isString, stringify } from './facade/lang';
import { isBlank, isPresent, stringify } from './facade/lang';
import { Identifiers, resolveIdentifierToken } from './identifiers';

@@ -507,3 +507,3 @@ import { hasLifecycleHook } from './lifecycle_reflector';

var compileToken;
if (isString(token)) {
if (typeof token === 'string') {
compileToken = new cpl.CompileTokenMetadata({ value: token });

@@ -510,0 +510,0 @@ }

import { CompileNgModuleMetadata, StaticSymbol } from './compile_metadata';
import { DirectiveNormalizer } from './directive_normalizer';
import { DirectiveWrapperCompiler } from './directive_wrapper_compiler';
import { CompileMetadataResolver } from './metadata_resolver';

@@ -15,5 +16,5 @@ import { NgModuleCompiler } from './ng_module_compiler';

export declare class NgModulesSummary {
ngModuleByComponent: Map<StaticSymbol, CompileNgModuleMetadata>;
ngModuleByDirective: Map<StaticSymbol, CompileNgModuleMetadata>;
ngModules: CompileNgModuleMetadata[];
constructor(ngModuleByComponent: Map<StaticSymbol, CompileNgModuleMetadata>, ngModules: CompileNgModuleMetadata[]);
constructor(ngModuleByDirective: Map<StaticSymbol, CompileNgModuleMetadata>, ngModules: CompileNgModuleMetadata[]);
}

@@ -27,2 +28,3 @@ export declare function analyzeModules(ngModules: StaticSymbol[], metadataResolver: CompileMetadataResolver): NgModulesSummary;

private _viewCompiler;
private _dirWrapperCompiler;
private _ngModuleCompiler;

@@ -34,7 +36,8 @@ private _outputEmitter;

private _animationCompiler;
constructor(_metadataResolver: CompileMetadataResolver, _directiveNormalizer: DirectiveNormalizer, _templateParser: TemplateParser, _styleCompiler: StyleCompiler, _viewCompiler: ViewCompiler, _ngModuleCompiler: NgModuleCompiler, _outputEmitter: OutputEmitter, _localeId: string, _translationFormat: string);
constructor(_metadataResolver: CompileMetadataResolver, _directiveNormalizer: DirectiveNormalizer, _templateParser: TemplateParser, _styleCompiler: StyleCompiler, _viewCompiler: ViewCompiler, _dirWrapperCompiler: DirectiveWrapperCompiler, _ngModuleCompiler: NgModuleCompiler, _outputEmitter: OutputEmitter, _localeId: string, _translationFormat: string);
analyzeModules(ngModules: StaticSymbol[]): NgModulesSummary;
clearCache(): void;
compile(moduleUrl: string, ngModulesSummary: NgModulesSummary, components: StaticSymbol[], ngModules: StaticSymbol[]): Promise<SourceModule[]>;
compile(moduleUrl: string, ngModulesSummary: NgModulesSummary, directives: StaticSymbol[], ngModules: StaticSymbol[]): Promise<SourceModule[]>;
private _compileModule(ngModuleType, targetStatements);
private _compileDirectiveWrapper(directiveType, targetStatements);
private _compileComponentFactory(compMeta, fileSuffix, targetStatements);

@@ -41,0 +44,0 @@ private _compileComponent(compMeta, directives, pipes, schemas, componentStyles, fileSuffix, targetStatements);

@@ -13,3 +13,3 @@ /**

import * as o from './output/output_ast';
import { ComponentFactoryDependency, ViewFactoryDependency } from './view_compiler/view_compiler';
import { ComponentFactoryDependency, DirectiveWrapperDependency, ViewFactoryDependency } from './view_compiler/view_compiler';
export var SourceModule = (function () {

@@ -23,4 +23,4 @@ function SourceModule(moduleUrl, source) {

export var NgModulesSummary = (function () {
function NgModulesSummary(ngModuleByComponent, ngModules) {
this.ngModuleByComponent = ngModuleByComponent;
function NgModulesSummary(ngModuleByDirective, ngModules) {
this.ngModuleByDirective = ngModuleByDirective;
this.ngModules = ngModules;

@@ -31,3 +31,3 @@ }

export function analyzeModules(ngModules, metadataResolver) {
var ngModuleByComponent = new Map();
var ngModuleByDirective = new Map();
var modules = [];

@@ -38,11 +38,9 @@ ngModules.forEach(function (ngModule) {

ngModuleMeta.declaredDirectives.forEach(function (dirMeta) {
if (dirMeta.isComponent) {
ngModuleByComponent.set(dirMeta.type.reference, ngModuleMeta);
}
ngModuleByDirective.set(dirMeta.type.reference, ngModuleMeta);
});
});
return new NgModulesSummary(ngModuleByComponent, modules);
return new NgModulesSummary(ngModuleByDirective, modules);
}
export var OfflineCompiler = (function () {
function OfflineCompiler(_metadataResolver, _directiveNormalizer, _templateParser, _styleCompiler, _viewCompiler, _ngModuleCompiler, _outputEmitter, _localeId, _translationFormat) {
function OfflineCompiler(_metadataResolver, _directiveNormalizer, _templateParser, _styleCompiler, _viewCompiler, _dirWrapperCompiler, _ngModuleCompiler, _outputEmitter, _localeId, _translationFormat) {
this._metadataResolver = _metadataResolver;

@@ -53,2 +51,3 @@ this._directiveNormalizer = _directiveNormalizer;

this._viewCompiler = _viewCompiler;
this._dirWrapperCompiler = _dirWrapperCompiler;
this._ngModuleCompiler = _ngModuleCompiler;

@@ -68,3 +67,3 @@ this._outputEmitter = _outputEmitter;

};
OfflineCompiler.prototype.compile = function (moduleUrl, ngModulesSummary, components, ngModules) {
OfflineCompiler.prototype.compile = function (moduleUrl, ngModulesSummary, directives, ngModules) {
var _this = this;

@@ -77,7 +76,12 @@ var fileSuffix = _splitTypescriptSuffix(moduleUrl)[1];

exportedVars.push.apply(exportedVars, ngModules.map(function (ngModuleType) { return _this._compileModule(ngModuleType, statements); }));
// compile directive wrappers
exportedVars.push.apply(exportedVars, directives.map(function (directiveType) { return _this._compileDirectiveWrapper(directiveType, statements); }));
// compile components
return Promise
.all(components.map(function (compType) {
var compMeta = _this._metadataResolver.getDirectiveMetadata(compType);
var ngModule = ngModulesSummary.ngModuleByComponent.get(compType);
.all(directives.map(function (dirType) {
var compMeta = _this._metadataResolver.getDirectiveMetadata(dirType);
if (!compMeta.isComponent) {
return Promise.resolve(null);
}
var ngModule = ngModulesSummary.ngModuleByDirective.get(dirType);
if (!ngModule) {

@@ -130,2 +134,8 @@ throw new Error("Cannot determine the module for component " + compMeta.type.name + "!");

};
OfflineCompiler.prototype._compileDirectiveWrapper = function (directiveType, targetStatements) {
var dirMeta = this._metadataResolver.getDirectiveMetadata(directiveType);
var dirCompileResult = this._dirWrapperCompiler.compile(dirMeta);
targetStatements.push.apply(targetStatements, dirCompileResult.statements);
return dirCompileResult.dirWrapperClassVar;
};
OfflineCompiler.prototype._compileComponentFactory = function (compMeta, fileSuffix, targetStatements) {

@@ -178,2 +188,6 @@ var hostMeta = createHostComponentMeta(compMeta);

}
else if (dep instanceof DirectiveWrapperDependency) {
var dwd = dep;
dwd.placeholder.moduleUrl = _ngfactoryModuleUrl(dwd.dir.moduleUrl);
}
});

@@ -188,4 +202,4 @@ return compileResult.statements;

}
function _ngfactoryModuleUrl(compUrl) {
var urlWithSuffix = _splitTypescriptSuffix(compUrl);
function _ngfactoryModuleUrl(dirUrl) {
var urlWithSuffix = _splitTypescriptSuffix(dirUrl);
return urlWithSuffix[0] + ".ngfactory" + urlWithSuffix[1];

@@ -192,0 +206,0 @@ }

import * as o from './output_ast';
export declare var CATCH_ERROR_VAR: o.ReadVarExpr;
export declare var CATCH_STACK_VAR: o.ReadVarExpr;
export declare const CATCH_ERROR_VAR: o.ReadVarExpr;
export declare const CATCH_STACK_VAR: o.ReadVarExpr;
export declare abstract class OutputEmitter {

@@ -5,0 +5,0 @@ abstract emitStatements(moduleUrl: string, stmts: o.Statement[], exportedVars: string[]): string;

@@ -8,3 +8,3 @@ /**

*/
import { isBlank, isPresent, isString } from '../facade/lang';
import { isBlank, isPresent } from '../facade/lang';
import * as o from './output_ast';

@@ -245,3 +245,3 @@ var _SINGLE_QUOTE_ESCAPE_STRING_RE = /'|\\|\n|\r|\$/g;

var value = ast.value;
if (isString(value)) {
if (typeof value === 'string') {
ctx.print(escapeIdentifier(value, this._escapeDollarInStrings));

@@ -248,0 +248,0 @@ }

@@ -13,3 +13,3 @@ /**

};
import { isPresent, isString } from '../facade/lang';
import { isPresent } from '../facade/lang';
//// Types

@@ -199,3 +199,3 @@ export var TypeModifier;

_super.call(this, type);
if (isString(name)) {
if (typeof name === 'string') {
this.name = name;

@@ -274,3 +274,3 @@ this.builtin = null;

this.args = args;
if (isString(method)) {
if (typeof method === 'string') {
this.name = method;

@@ -277,0 +277,0 @@ this.builtin = null;

@@ -85,3 +85,3 @@ /**

};
var superClass = _classStmt.parent.visitExpression(_visitor, _ctx);
var superClass = _classStmt.parent ? _classStmt.parent.visitExpression(_visitor, _ctx) : Object;
ctor.prototype = Object.create(superClass.prototype, propertyDescriptors);

@@ -88,0 +88,0 @@ return ctor;

@@ -13,6 +13,16 @@ /**

};
import { evalExpression, isPresent } from '../facade/lang';
import { isPresent } from '../facade/lang';
import { sanitizeIdentifier } from '../util';
import { EmitterVisitorContext } from './abstract_emitter';
import { AbstractJsEmitterVisitor } from './abstract_js_emitter';
function evalExpression(sourceUrl, expr, declarations, vars) {
var fnBody = declarations + "\nreturn " + expr + "\n//# sourceURL=" + sourceUrl;
var fnArgNames = [];
var fnArgValues = [];
for (var argName in vars) {
fnArgNames.push(argName);
fnArgValues.push(vars[argName]);
}
return new (Function.bind.apply(Function, [void 0].concat(fnArgNames.concat(fnBody))))().apply(void 0, fnArgValues);
}
export function jitStatements(sourceUrl, statements, resultVar) {

@@ -19,0 +29,0 @@ var converter = new JitEmitterVisitor();

@@ -13,3 +13,3 @@ /**

};
import { isArray, isBlank, isPresent } from '../facade/lang';
import { isBlank, isPresent } from '../facade/lang';
import { AbstractEmitterVisitor, CATCH_ERROR_VAR, CATCH_STACK_VAR, EmitterVisitorContext } from './abstract_emitter';

@@ -21,9 +21,3 @@ import * as o from './output_ast';

var ctx = EmitterVisitorContext.createRoot([]);
var asts;
if (isArray(ast)) {
asts = ast;
}
else {
asts = [ast];
}
var asts = Array.isArray(ast) ? ast : [ast];
asts.forEach(function (ast) {

@@ -30,0 +24,0 @@ if (ast instanceof o.Statement) {

@@ -26,7 +26,3 @@ /**

export declare const ViewType: typeof r.ViewType;
export declare const MAX_INTERPOLATION_VALUES: typeof r.MAX_INTERPOLATION_VALUES;
export declare const checkBinding: typeof r.checkBinding;
export declare const flattenNestedViewRenderNodes: typeof r.flattenNestedViewRenderNodes;
export declare const interpolate: typeof r.interpolate;
export declare const ViewUtils: typeof r.ViewUtils;
export declare const view_utils: typeof r.view_utils;
export declare const DebugContext: typeof r.DebugContext;

@@ -40,15 +36,2 @@ export declare const StaticNodeDebugInfo: typeof r.StaticNodeDebugInfo;

export declare const RenderDebugInfo: typeof r.RenderDebugInfo;
export declare const EMPTY_ARRAY: typeof r.EMPTY_ARRAY;
export declare const EMPTY_MAP: typeof r.EMPTY_MAP;
export declare const pureProxy1: typeof r.pureProxy1;
export declare const pureProxy2: typeof r.pureProxy2;
export declare const pureProxy3: typeof r.pureProxy3;
export declare const pureProxy4: typeof r.pureProxy4;
export declare const pureProxy5: typeof r.pureProxy5;
export declare const pureProxy6: typeof r.pureProxy6;
export declare const pureProxy7: typeof r.pureProxy7;
export declare const pureProxy8: typeof r.pureProxy8;
export declare const pureProxy9: typeof r.pureProxy9;
export declare const pureProxy10: typeof r.pureProxy10;
export declare const castByValue: typeof r.castByValue;
export declare type Console = typeof r._Console;

@@ -86,1 +69,2 @@ export declare const Console: typeof r.Console;

export declare const ComponentStillLoadingError: typeof r.ComponentStillLoadingError;
export declare const AnimationTransition: typeof r.AnimationTransition;

@@ -21,7 +21,3 @@ /**

export var ViewType = r.ViewType;
export var MAX_INTERPOLATION_VALUES = r.MAX_INTERPOLATION_VALUES;
export var checkBinding = r.checkBinding;
export var flattenNestedViewRenderNodes = r.flattenNestedViewRenderNodes;
export var interpolate = r.interpolate;
export var ViewUtils = r.ViewUtils;
export var view_utils = r.view_utils;
export var DebugContext = r.DebugContext;

@@ -34,15 +30,2 @@ export var StaticNodeDebugInfo = r.StaticNodeDebugInfo;

export var RenderDebugInfo = r.RenderDebugInfo;
export var EMPTY_ARRAY = r.EMPTY_ARRAY;
export var EMPTY_MAP = r.EMPTY_MAP;
export var pureProxy1 = r.pureProxy1;
export var pureProxy2 = r.pureProxy2;
export var pureProxy3 = r.pureProxy3;
export var pureProxy4 = r.pureProxy4;
export var pureProxy5 = r.pureProxy5;
export var pureProxy6 = r.pureProxy6;
export var pureProxy7 = r.pureProxy7;
export var pureProxy8 = r.pureProxy8;
export var pureProxy9 = r.pureProxy9;
export var pureProxy10 = r.pureProxy10;
export var castByValue = r.castByValue;
export var Console = r.Console;

@@ -69,2 +52,3 @@ export var reflector = r.reflector;

export var ComponentStillLoadingError = r.ComponentStillLoadingError;
export var AnimationTransition = r.AnimationTransition;
//# sourceMappingURL=private_import_core.js.map

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":1,"metadata":{"isDefaultChangeDetectionStrategy":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"isDefaultChangeDetectionStrategy"},"ChangeDetectorStatus":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"ChangeDetectorStatus"},"LifecycleHooks":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"LifecycleHooks"},"LIFECYCLE_HOOKS_VALUES":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"LIFECYCLE_HOOKS_VALUES"},"ReflectorReader":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"ReflectorReader"},"AppElement":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"AppElement"},"CodegenComponentFactoryResolver":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"CodegenComponentFactoryResolver"},"AppView":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"AppView"},"DebugAppView":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"DebugAppView"},"NgModuleInjector":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"NgModuleInjector"},"registerModuleFactory":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"registerModuleFactory"},"ViewType":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"ViewType"},"MAX_INTERPOLATION_VALUES":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"MAX_INTERPOLATION_VALUES"},"checkBinding":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"checkBinding"},"flattenNestedViewRenderNodes":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"flattenNestedViewRenderNodes"},"interpolate":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"interpolate"},"ViewUtils":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"ViewUtils"},"DebugContext":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"DebugContext"},"StaticNodeDebugInfo":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"StaticNodeDebugInfo"},"devModeEqual":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"devModeEqual"},"UNINITIALIZED":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"UNINITIALIZED"},"ValueUnwrapper":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"ValueUnwrapper"},"TemplateRef_":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"TemplateRef_"},"RenderDebugInfo":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"RenderDebugInfo"},"EMPTY_ARRAY":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"EMPTY_ARRAY"},"EMPTY_MAP":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"EMPTY_MAP"},"pureProxy1":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"pureProxy1"},"pureProxy2":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"pureProxy2"},"pureProxy3":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"pureProxy3"},"pureProxy4":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"pureProxy4"},"pureProxy5":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"pureProxy5"},"pureProxy6":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"pureProxy6"},"pureProxy7":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"pureProxy7"},"pureProxy8":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"pureProxy8"},"pureProxy9":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"pureProxy9"},"pureProxy10":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"pureProxy10"},"castByValue":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"castByValue"},"Console":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"Console"},"reflector":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"reflector"},"Reflector":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"Reflector"},"ReflectionCapabilities":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"ReflectionCapabilities"},"NoOpAnimationPlayer":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"NoOpAnimationPlayer"},"AnimationPlayer":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"AnimationPlayer"},"AnimationSequencePlayer":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"AnimationSequencePlayer"},"AnimationGroupPlayer":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"AnimationGroupPlayer"},"AnimationKeyframe":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"AnimationKeyframe"},"AnimationStyles":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"AnimationStyles"},"ANY_STATE":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"ANY_STATE"},"DEFAULT_STATE":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"DEFAULT_STATE"},"EMPTY_STATE":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"EMPTY_STATE"},"FILL_STYLE_FLAG":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"FILL_STYLE_FLAG"},"prepareFinalAnimationStyles":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"prepareFinalAnimationStyles"},"balanceAnimationKeyframes":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"balanceAnimationKeyframes"},"clearStyles":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"clearStyles"},"collectAndResolveStyles":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"collectAndResolveStyles"},"renderStyles":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"renderStyles"},"ViewMetadata":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"ViewMetadata"},"ComponentStillLoadingError":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"ComponentStillLoadingError"}}}
{"__symbolic":"module","version":1,"metadata":{"isDefaultChangeDetectionStrategy":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"isDefaultChangeDetectionStrategy"},"ChangeDetectorStatus":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"ChangeDetectorStatus"},"LifecycleHooks":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"LifecycleHooks"},"LIFECYCLE_HOOKS_VALUES":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"LIFECYCLE_HOOKS_VALUES"},"ReflectorReader":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"ReflectorReader"},"AppElement":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"AppElement"},"CodegenComponentFactoryResolver":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"CodegenComponentFactoryResolver"},"AppView":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"AppView"},"DebugAppView":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"DebugAppView"},"NgModuleInjector":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"NgModuleInjector"},"registerModuleFactory":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"registerModuleFactory"},"ViewType":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"ViewType"},"view_utils":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"view_utils"},"DebugContext":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"DebugContext"},"StaticNodeDebugInfo":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"StaticNodeDebugInfo"},"devModeEqual":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"devModeEqual"},"UNINITIALIZED":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"UNINITIALIZED"},"ValueUnwrapper":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"ValueUnwrapper"},"TemplateRef_":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"TemplateRef_"},"RenderDebugInfo":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"RenderDebugInfo"},"Console":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"Console"},"reflector":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"reflector"},"Reflector":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"Reflector"},"ReflectionCapabilities":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"ReflectionCapabilities"},"NoOpAnimationPlayer":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"NoOpAnimationPlayer"},"AnimationPlayer":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"AnimationPlayer"},"AnimationSequencePlayer":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"AnimationSequencePlayer"},"AnimationGroupPlayer":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"AnimationGroupPlayer"},"AnimationKeyframe":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"AnimationKeyframe"},"AnimationStyles":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"AnimationStyles"},"ANY_STATE":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"ANY_STATE"},"DEFAULT_STATE":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"DEFAULT_STATE"},"EMPTY_STATE":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"EMPTY_STATE"},"FILL_STYLE_FLAG":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"FILL_STYLE_FLAG"},"prepareFinalAnimationStyles":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"prepareFinalAnimationStyles"},"balanceAnimationKeyframes":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"balanceAnimationKeyframes"},"clearStyles":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"clearStyles"},"collectAndResolveStyles":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"collectAndResolveStyles"},"renderStyles":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"renderStyles"},"ViewMetadata":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"ViewMetadata"},"ComponentStillLoadingError":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"ComponentStillLoadingError"},"AnimationTransition":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"___core_private__"},"member":"AnimationTransition"}}}

@@ -15,3 +15,3 @@ /**

import { ListWrapper, MapWrapper } from './facade/collection';
import { isArray, isBlank, isPresent, normalizeBlank } from './facade/lang';
import { isBlank, isPresent, normalizeBlank } from './facade/lang';
import { Identifiers, resolveIdentifierToken } from './identifiers';

@@ -395,3 +395,3 @@ import { ParseError } from './parse_util';

providers.forEach(function (provider) {
if (isArray(provider)) {
if (Array.isArray(provider)) {
_normalizeProviders(provider, sourceSpan, targetErrors, targetProviders);

@@ -398,0 +398,0 @@ }

@@ -11,2 +11,3 @@ /**

import { DirectiveNormalizer } from './directive_normalizer';
import { DirectiveWrapperCompiler } from './directive_wrapper_compiler';
import { CompileMetadataResolver } from './metadata_resolver';

@@ -34,9 +35,11 @@ import { NgModuleCompiler } from './ng_module_compiler';

private _ngModuleCompiler;
private _directiveWrapperCompiler;
private _compilerConfig;
private _compiledTemplateCache;
private _compiledHostTemplateCache;
private _compiledDirectiveWrapperCache;
private _compiledNgModuleCache;
private _animationParser;
private _animationCompiler;
constructor(_injector: Injector, _metadataResolver: CompileMetadataResolver, _templateNormalizer: DirectiveNormalizer, _templateParser: TemplateParser, _styleCompiler: StyleCompiler, _viewCompiler: ViewCompiler, _ngModuleCompiler: NgModuleCompiler, _compilerConfig: CompilerConfig);
constructor(_injector: Injector, _metadataResolver: CompileMetadataResolver, _templateNormalizer: DirectiveNormalizer, _templateParser: TemplateParser, _styleCompiler: StyleCompiler, _viewCompiler: ViewCompiler, _ngModuleCompiler: NgModuleCompiler, _directiveWrapperCompiler: DirectiveWrapperCompiler, _compilerConfig: CompilerConfig);
injector: Injector;

@@ -52,6 +55,8 @@ compileModuleSync<T>(moduleType: Type<T>): NgModuleFactory<T>;

clearCache(): void;
private _createCompiledHostTemplate(compType);
private _createCompiledHostTemplate(compType, ngModule);
private _createCompiledTemplate(compMeta, ngModule);
private _assertComponentKnown(compType, isHost);
private _assertComponentLoaded(compType, isHost);
private _assertDirectiveWrapper(dirType);
private _compileDirectiveWrapper(dirMeta, moduleMeta);
private _compileTemplate(template);

@@ -58,0 +63,0 @@ private _resolveStylesCompileResult(result, externalStylesheetsByModuleUrl);

@@ -14,2 +14,3 @@ /**

import { DirectiveNormalizer } from './directive_normalizer';
import { DirectiveWrapperCompiler } from './directive_wrapper_compiler';
import { stringify } from './facade/lang';

@@ -25,3 +26,3 @@ import { CompileMetadataResolver } from './metadata_resolver';

import { SyncAsyncResult } from './util';
import { ComponentFactoryDependency, ViewCompiler, ViewFactoryDependency } from './view_compiler/view_compiler';
import { ComponentFactoryDependency, DirectiveWrapperDependency, ViewCompiler, ViewFactoryDependency } from './view_compiler/view_compiler';
/**

@@ -37,3 +38,3 @@ * An internal module of the Angular compiler that begins with component types,

export var RuntimeCompiler = (function () {
function RuntimeCompiler(_injector, _metadataResolver, _templateNormalizer, _templateParser, _styleCompiler, _viewCompiler, _ngModuleCompiler, _compilerConfig) {
function RuntimeCompiler(_injector, _metadataResolver, _templateNormalizer, _templateParser, _styleCompiler, _viewCompiler, _ngModuleCompiler, _directiveWrapperCompiler, _compilerConfig) {
this._injector = _injector;

@@ -46,5 +47,7 @@ this._metadataResolver = _metadataResolver;

this._ngModuleCompiler = _ngModuleCompiler;
this._directiveWrapperCompiler = _directiveWrapperCompiler;
this._compilerConfig = _compilerConfig;
this._compiledTemplateCache = new Map();
this._compiledHostTemplateCache = new Map();
this._compiledDirectiveWrapperCache = new Map();
this._compiledNgModuleCache = new Map();

@@ -83,6 +86,6 @@ this._animationParser = new AnimationParser();

var templates = new Set();
moduleMeta.transitiveModule.modules.forEach(function (moduleMeta) {
moduleMeta.declaredDirectives.forEach(function (dirMeta) {
moduleMeta.transitiveModule.modules.forEach(function (localModuleMeta) {
localModuleMeta.declaredDirectives.forEach(function (dirMeta) {
if (dirMeta.isComponent) {
var template = _this._createCompiledHostTemplate(dirMeta.type.reference);
var template = _this._createCompiledHostTemplate(dirMeta.type.reference, localModuleMeta);
templates.add(template);

@@ -122,3 +125,3 @@ componentFactories.push(template.proxyComponentFactory);

else {
ngModuleFactory = jitStatements(moduleMeta_1.type.name + ".ngfactory.js", compileResult.statements, compileResult.ngModuleFactoryVar);
ngModuleFactory = jitStatements("/" + moduleMeta_1.type.name + "/module.ngfactory.js", compileResult.statements, compileResult.ngModuleFactoryVar);
}

@@ -137,8 +140,18 @@ this._compiledNgModuleCache.set(moduleMeta_1.type.reference, ngModuleFactory);

var ngModule = this._metadataResolver.getNgModuleMetadata(mainModule);
var moduleByDirective = new Map();
ngModule.transitiveModule.modules.forEach(function (localModuleMeta) {
localModuleMeta.declaredDirectives.forEach(function (dirMeta) {
moduleByDirective.set(dirMeta.type.reference, localModuleMeta);
_this._compileDirectiveWrapper(dirMeta, localModuleMeta);
if (dirMeta.isComponent) {
templates.add(_this._createCompiledTemplate(dirMeta, localModuleMeta));
}
});
});
ngModule.transitiveModule.modules.forEach(function (localModuleMeta) {
localModuleMeta.declaredDirectives.forEach(function (dirMeta) {
if (dirMeta.isComponent) {
dirMeta.entryComponents.forEach(function (entryComponentType) {
templates.add(_this._createCompiledHostTemplate(entryComponentType.reference));
var moduleMeta = moduleByDirective.get(entryComponentType.reference);
templates.add(_this._createCompiledHostTemplate(entryComponentType.reference, moduleMeta));
});

@@ -148,4 +161,4 @@ }

localModuleMeta.entryComponents.forEach(function (entryComponentType) {
templates.add(_this._createCompiledHostTemplate(entryComponentType.reference));
// TODO: what about entryComponents of entryComponents?
var moduleMeta = moduleByDirective.get(entryComponentType.reference);
templates.add(_this._createCompiledHostTemplate(entryComponentType.reference, moduleMeta));
});

@@ -189,3 +202,6 @@ });

};
RuntimeCompiler.prototype._createCompiledHostTemplate = function (compType) {
RuntimeCompiler.prototype._createCompiledHostTemplate = function (compType, ngModule) {
if (!ngModule) {
throw new Error("Component " + stringify(compType) + " is not part of any NgModule or the module has not been imported into your module.");
}
var compiledTemplate = this._compiledHostTemplateCache.get(compType);

@@ -196,3 +212,3 @@ if (!compiledTemplate) {

var hostMeta = createHostComponentMeta(compMeta);
compiledTemplate = new CompiledTemplate(true, compMeta.selector, compMeta.type, [compMeta], [], [], this._templateNormalizer.normalizeDirective(hostMeta));
compiledTemplate = new CompiledTemplate(true, compMeta.selector, compMeta.type, ngModule, [compMeta], this._templateNormalizer.normalizeDirective(hostMeta));
this._compiledHostTemplateCache.set(compType, compiledTemplate);

@@ -206,3 +222,3 @@ }

assertComponent(compMeta);
compiledTemplate = new CompiledTemplate(false, compMeta.selector, compMeta.type, ngModule.transitiveModule.directives, ngModule.transitiveModule.pipes, ngModule.schemas, this._templateNormalizer.normalizeDirective(compMeta));
compiledTemplate = new CompiledTemplate(false, compMeta.selector, compMeta.type, ngModule, ngModule.transitiveModule.directives, this._templateNormalizer.normalizeDirective(compMeta));
this._compiledTemplateCache.set(compMeta.type.reference, compiledTemplate);

@@ -216,8 +232,3 @@ }

if (!compiledTemplate) {
if (isHost) {
throw new Error("Illegal state: Compiled view for component " + stringify(compType) + " does not exist!");
}
else {
throw new Error("Component " + stringify(compType) + " is not part of any NgModule or the module has not been imported into your module.");
}
throw new Error("Illegal state: Compiled view for component " + stringify(compType) + " does not exist!");
}

@@ -233,2 +244,21 @@ return compiledTemplate;

};
RuntimeCompiler.prototype._assertDirectiveWrapper = function (dirType) {
var dirWrapper = this._compiledDirectiveWrapperCache.get(dirType);
if (!dirWrapper) {
throw new Error("Illegal state: Directive wrapper for " + stringify(dirType) + " has not been compiled!");
}
return dirWrapper;
};
RuntimeCompiler.prototype._compileDirectiveWrapper = function (dirMeta, moduleMeta) {
var compileResult = this._directiveWrapperCompiler.compile(dirMeta);
var statements = compileResult.statements;
var directiveWrapperClass;
if (!this._compilerConfig.useJit) {
directiveWrapperClass = interpretStatements(statements, compileResult.dirWrapperClassVar);
}
else {
directiveWrapperClass = jitStatements("/" + moduleMeta.type.name + "/" + dirMeta.type.name + "/wrapper.ngfactory.js", statements, compileResult.dirWrapperClassVar);
}
this._compiledDirectiveWrapperCache.set(dirMeta.type.reference, directiveWrapperClass);
};
RuntimeCompiler.prototype._compileTemplate = function (template) {

@@ -263,2 +293,6 @@ var _this = this;

}
else if (dep instanceof DirectiveWrapperDependency) {
var dwd = dep;
dwd.placeholder.reference = _this._assertDirectiveWrapper(dwd.dir.reference);
}
});

@@ -272,3 +306,3 @@ var statements = stylesCompileResult.componentStylesheet.statements.concat(compileResult.statements);

else {
factory = jitStatements("" + template.compType.name + (template.isHost ? '_Host' : '') + ".ngfactory.js", statements, compileResult.viewFactoryVar);
factory = jitStatements("/" + template.ngModule.type.name + "/" + template.compType.name + "/" + (template.isHost ? 'host' : 'component') + ".ngfactory.js", statements, compileResult.viewFactoryVar);
}

@@ -292,3 +326,3 @@ template.compiled(factory);

else {
return jitStatements(result.meta.moduleUrl + ".css.js", result.statements, result.stylesVar);
return jitStatements("/" + result.meta.moduleUrl + ".css.js", result.statements, result.stylesVar);
}

@@ -308,2 +342,3 @@ };

{ type: NgModuleCompiler, },
{ type: DirectiveWrapperCompiler, },
{ type: CompilerConfig, },

@@ -314,8 +349,7 @@ ];

var CompiledTemplate = (function () {
function CompiledTemplate(isHost, selector, compType, viewDirectivesAndComponents, viewPipes, schemas, _normalizeResult) {
function CompiledTemplate(isHost, selector, compType, ngModule, viewDirectiveAndComponents, _normalizeResult) {
var _this = this;
this.isHost = isHost;
this.compType = compType;
this.viewPipes = viewPipes;
this.schemas = schemas;
this.ngModule = ngModule;
this._viewFactory = null;

@@ -328,3 +362,5 @@ this.loading = null;

this.viewDirectives = [];
viewDirectivesAndComponents.forEach(function (dirMeta) {
this.viewPipes = ngModule.transitiveModule.pipes;
this.schemas = ngModule.schemas;
viewDirectiveAndComponents.forEach(function (dirMeta) {
if (dirMeta.isComponent) {

@@ -331,0 +367,0 @@ _this.viewComponentTypes.push(dirMeta.type.reference);

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":1,"metadata":{"RuntimeCompiler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector"},{"__symbolic":"reference","module":"./metadata_resolver","name":"CompileMetadataResolver"},{"__symbolic":"reference","module":"./directive_normalizer","name":"DirectiveNormalizer"},{"__symbolic":"reference","module":"./template_parser/template_parser","name":"TemplateParser"},{"__symbolic":"reference","module":"./style_compiler","name":"StyleCompiler"},{"__symbolic":"reference","module":"./view_compiler/view_compiler","name":"ViewCompiler"},{"__symbolic":"reference","module":"./ng_module_compiler","name":"NgModuleCompiler"},{"__symbolic":"reference","module":"./config","name":"CompilerConfig"}]}],"compileModuleSync":[{"__symbolic":"method"}],"compileModuleAsync":[{"__symbolic":"method"}],"compileModuleAndAllComponentsSync":[{"__symbolic":"method"}],"compileModuleAndAllComponentsAsync":[{"__symbolic":"method"}],"_compileModuleAndComponents":[{"__symbolic":"method"}],"_compileModuleAndAllComponents":[{"__symbolic":"method"}],"_compileModule":[{"__symbolic":"method"}],"_compileComponents":[{"__symbolic":"method"}],"clearCacheFor":[{"__symbolic":"method"}],"clearCache":[{"__symbolic":"method"}],"_createCompiledHostTemplate":[{"__symbolic":"method"}],"_createCompiledTemplate":[{"__symbolic":"method"}],"_assertComponentKnown":[{"__symbolic":"method"}],"_assertComponentLoaded":[{"__symbolic":"method"}],"_compileTemplate":[{"__symbolic":"method"}],"_resolveStylesCompileResult":[{"__symbolic":"method"}],"_resolveAndEvalStylesCompileResult":[{"__symbolic":"method"}]}}}}
{"__symbolic":"module","version":1,"metadata":{"RuntimeCompiler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector"},{"__symbolic":"reference","module":"./metadata_resolver","name":"CompileMetadataResolver"},{"__symbolic":"reference","module":"./directive_normalizer","name":"DirectiveNormalizer"},{"__symbolic":"reference","module":"./template_parser/template_parser","name":"TemplateParser"},{"__symbolic":"reference","module":"./style_compiler","name":"StyleCompiler"},{"__symbolic":"reference","module":"./view_compiler/view_compiler","name":"ViewCompiler"},{"__symbolic":"reference","module":"./ng_module_compiler","name":"NgModuleCompiler"},{"__symbolic":"reference","module":"./directive_wrapper_compiler","name":"DirectiveWrapperCompiler"},{"__symbolic":"reference","module":"./config","name":"CompilerConfig"}]}],"compileModuleSync":[{"__symbolic":"method"}],"compileModuleAsync":[{"__symbolic":"method"}],"compileModuleAndAllComponentsSync":[{"__symbolic":"method"}],"compileModuleAndAllComponentsAsync":[{"__symbolic":"method"}],"_compileModuleAndComponents":[{"__symbolic":"method"}],"_compileModuleAndAllComponents":[{"__symbolic":"method"}],"_compileModule":[{"__symbolic":"method"}],"_compileComponents":[{"__symbolic":"method"}],"clearCacheFor":[{"__symbolic":"method"}],"clearCache":[{"__symbolic":"method"}],"_createCompiledHostTemplate":[{"__symbolic":"method"}],"_createCompiledTemplate":[{"__symbolic":"method"}],"_assertComponentKnown":[{"__symbolic":"method"}],"_assertComponentLoaded":[{"__symbolic":"method"}],"_assertDirectiveWrapper":[{"__symbolic":"method"}],"_compileDirectiveWrapper":[{"__symbolic":"method"}],"_compileTemplate":[{"__symbolic":"method"}],"_resolveStylesCompileResult":[{"__symbolic":"method"}],"_resolveAndEvalStylesCompileResult":[{"__symbolic":"method"}]}}}}

@@ -17,3 +17,3 @@ /**

import { Parser } from '../expression_parser/parser';
import { isPresent, isString } from '../facade/lang';
import { isPresent } from '../facade/lang';
import { I18NHtmlParser } from '../i18n/i18n_html_parser';

@@ -27,3 +27,3 @@ import { Identifiers, identifierToken, resolveIdentifierToken } from '../identifiers';

import { ParseError, ParseErrorLevel, ParseSourceSpan } from '../parse_util';
import { Console, MAX_INTERPOLATION_VALUES } from '../private_import_core';
import { Console, view_utils } from '../private_import_core';
import { ProviderElementContext, ProviderViewContext } from '../provider_analyzer';

@@ -224,4 +224,4 @@ import { ElementSchemaRegistry } from '../schema/element_schema_registry';

if (isPresent(ast) &&
ast.ast.expressions.length > MAX_INTERPOLATION_VALUES) {
throw new Error("Only support at most " + MAX_INTERPOLATION_VALUES + " interpolation values!");
ast.ast.expressions.length > view_utils.MAX_INTERPOLATION_VALUES) {
throw new Error("Only support at most " + view_utils.MAX_INTERPOLATION_VALUES + " interpolation values!");
}

@@ -674,3 +674,3 @@ return ast;

var expression = hostProps[propName];
if (isString(expression)) {
if (typeof expression === 'string') {
var exprAst = _this._parseBinding(expression, sourceSpan);

@@ -690,3 +690,3 @@ targetPropertyAsts.push(_this._createElementPropertyAst(elementName, propName, exprAst, sourceSpan));

var expression = hostListeners[propName];
if (isString(expression)) {
if (typeof expression === 'string') {
_this._parseEventOrAnimationEvent(propName, expression, sourceSpan, [], targetEventAsts);

@@ -693,0 +693,0 @@ }

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":1,"metadata":{"TEMPLATE_TRANSFORMS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["TemplateTransforms"]},"TemplateParser":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"TEMPLATE_TRANSFORMS"}]}]],"parameters":[{"__symbolic":"reference","module":"../expression_parser/parser","name":"Parser"},{"__symbolic":"reference","module":"../schema/element_schema_registry","name":"ElementSchemaRegistry"},{"__symbolic":"reference","module":"../i18n/i18n_html_parser","name":"I18NHtmlParser"},{"__symbolic":"reference","module":"../private_import_core","name":"Console"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"./template_ast","name":"TemplateAstVisitor"}]}]}],"parse":[{"__symbolic":"method"}],"tryParse":[{"__symbolic":"method"}],"tryParseHtml":[{"__symbolic":"method"}],"expandHtml":[{"__symbolic":"method"}],"getInterpolationConfig":[{"__symbolic":"method"}],"_assertNoReferenceDuplicationOnTemplate":[{"__symbolic":"method"}]}},"splitClasses":{"__symbolic":"function","parameters":["classAttrValue"],"value":{"__symbolic":"error","message":"Expression form not supported","line":1125,"character":37}}}}
{"__symbolic":"module","version":1,"metadata":{"TEMPLATE_TRANSFORMS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"OpaqueToken"},"arguments":["TemplateTransforms"]},"TemplateParser":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"TEMPLATE_TRANSFORMS"}]}]],"parameters":[{"__symbolic":"reference","module":"../expression_parser/parser","name":"Parser"},{"__symbolic":"reference","module":"../schema/element_schema_registry","name":"ElementSchemaRegistry"},{"__symbolic":"reference","module":"../i18n/i18n_html_parser","name":"I18NHtmlParser"},{"__symbolic":"reference","module":"../private_import_core","name":"Console"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"./template_ast","name":"TemplateAstVisitor"}]}]}],"parse":[{"__symbolic":"method"}],"tryParse":[{"__symbolic":"method"}],"tryParseHtml":[{"__symbolic":"method"}],"expandHtml":[{"__symbolic":"method"}],"getInterpolationConfig":[{"__symbolic":"method"}],"_assertNoReferenceDuplicationOnTemplate":[{"__symbolic":"method"}]}},"splitClasses":{"__symbolic":"function","parameters":["classAttrValue"],"value":{"__symbolic":"error","message":"Expression form not supported","line":1126,"character":37}}}}

@@ -8,3 +8,3 @@ /**

*/
import { isArray, isBlank, isPresent, isPrimitive, isStrictStringMap } from './facade/lang';
import { isBlank, isPresent, isPrimitive, isStrictStringMap } from './facade/lang';
import * as o from './output/output_ast';

@@ -38,14 +38,12 @@ export var MODULE_SUFFIX = '';

export function visitValue(value, visitor, context) {
if (isArray(value)) {
if (Array.isArray(value)) {
return visitor.visitArray(value, context);
}
else if (isStrictStringMap(value)) {
if (isStrictStringMap(value)) {
return visitor.visitStringMap(value, context);
}
else if (isBlank(value) || isPrimitive(value)) {
if (isBlank(value) || isPrimitive(value)) {
return visitor.visitPrimitive(value, context);
}
else {
return visitor.visitOther(value, context);
}
return visitor.visitOther(value, context);
}

@@ -52,0 +50,0 @@ export var ValueTransformer = (function () {

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":1,"metadata":{"MODULE_SUFFIX":"","camelCaseToDashCase":{"__symbolic":"function","parameters":["input"],"value":{"__symbolic":"error","message":"Reference to a local symbol","line":14,"character":4,"context":{"name":"CAMEL_CASE_REGEXP"}}},"splitAtColon":{"__symbolic":"function","parameters":["input","defaultValues"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":28,"character":9,"context":{"name":"_splitAt"}}},"splitAtPeriod":{"__symbolic":"function","parameters":["input","defaultValues"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":28,"character":9,"context":{"name":"_splitAt"}}},"sanitizeIdentifier":{"__symbolic":"function","parameters":["name"],"value":{"__symbolic":"error","message":"Expression form not supported","line":35,"character":22}}}}
{"__symbolic":"module","version":1,"metadata":{"MODULE_SUFFIX":"","camelCaseToDashCase":{"__symbolic":"function","parameters":["input"],"value":{"__symbolic":"error","message":"Reference to a local symbol","line":14,"character":6,"context":{"name":"CAMEL_CASE_REGEXP"}}},"splitAtColon":{"__symbolic":"function","parameters":["input","defaultValues"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":28,"character":9,"context":{"name":"_splitAt"}}},"splitAtPeriod":{"__symbolic":"function","parameters":["input","defaultValues"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":28,"character":9,"context":{"name":"_splitAt"}}},"sanitizeIdentifier":{"__symbolic":"function","parameters":["name"],"value":{"__symbolic":"error","message":"Expression form not supported","line":35,"character":22}}}}

@@ -8,6 +8,7 @@ /**

*/
import { CompileDirectiveMetadata, CompileIdentifierMetadata, CompileTokenMetadata } from '../compile_metadata';
import { CompileDirectiveMetadata, CompileTokenMetadata } from '../compile_metadata';
import * as o from '../output/output_ast';
import { ProviderAst, ReferenceAst, TemplateAst } from '../template_parser/template_ast';
import { CompileView } from './compile_view';
import { ComponentFactoryDependency, DirectiveWrapperDependency, ViewFactoryDependency } from './deps';
export declare class CompileNode {

@@ -29,2 +30,3 @@ parent: CompileElement;

hasEmbeddedView: boolean;
private _targetDependencies;
static createNull(): CompileElement;

@@ -36,2 +38,3 @@ private _compViewExpr;

instances: Map<any, o.Expression>;
directiveWrapperInstance: Map<any, o.Expression>;
private _resolvedProviders;

@@ -46,5 +49,5 @@ private _queryCount;

};
constructor(parent: CompileElement, view: CompileView, nodeIndex: number, renderNode: o.Expression, sourceAst: TemplateAst, component: CompileDirectiveMetadata, _directives: CompileDirectiveMetadata[], _resolvedProvidersArray: ProviderAst[], hasViewContainer: boolean, hasEmbeddedView: boolean, references: ReferenceAst[]);
constructor(parent: CompileElement, view: CompileView, nodeIndex: number, renderNode: o.Expression, sourceAst: TemplateAst, component: CompileDirectiveMetadata, _directives: CompileDirectiveMetadata[], _resolvedProvidersArray: ProviderAst[], hasViewContainer: boolean, hasEmbeddedView: boolean, references: ReferenceAst[], _targetDependencies: Array<ViewFactoryDependency | ComponentFactoryDependency | DirectiveWrapperDependency>);
private _createAppElement();
createComponentFactoryResolver(entryComponents: CompileIdentifierMetadata[]): void;
private _createComponentFactoryResolver();
setComponentView(compViewExpr: o.Expression): void;

@@ -51,0 +54,0 @@ setEmbeddedView(embeddedView: CompileView): void;

@@ -13,3 +13,4 @@ /**

};
import { CompileDiDependencyMetadata, CompileProviderMetadata, CompileTokenMetadata } from '../compile_metadata';
import { CompileDiDependencyMetadata, CompileIdentifierMetadata, CompileProviderMetadata, CompileTokenMetadata } from '../compile_metadata';
import { DirectiveWrapperCompiler } from '../directive_wrapper_compiler';
import { ListWrapper, MapWrapper } from '../facade/collection';

@@ -25,2 +26,3 @@ import { isPresent } from '../facade/lang';

import { InjectMethodVars } from './constants';
import { ComponentFactoryDependency, DirectiveWrapperDependency } from './deps';
import { getPropertyInView, injectFromViewParentInjector } from './util';

@@ -41,3 +43,3 @@ export var CompileNode = (function () {

__extends(CompileElement, _super);
function CompileElement(parent, view, nodeIndex, renderNode, sourceAst, component, _directives, _resolvedProvidersArray, hasViewContainer, hasEmbeddedView, references) {
function CompileElement(parent, view, nodeIndex, renderNode, sourceAst, component, _directives, _resolvedProvidersArray, hasViewContainer, hasEmbeddedView, references, _targetDependencies) {
var _this = this;

@@ -50,4 +52,6 @@ _super.call(this, parent, view, nodeIndex, renderNode, sourceAst);

this.hasEmbeddedView = hasEmbeddedView;
this._targetDependencies = _targetDependencies;
this._compViewExpr = null;
this.instances = new Map();
this.directiveWrapperInstance = new Map();
this._queryCount = 0;

@@ -68,5 +72,8 @@ this._queries = new Map();

}
if (this.component) {
this._createComponentFactoryResolver();
}
}
CompileElement.createNull = function () {
return new CompileElement(null, null, null, null, null, null, [], [], false, false, []);
return new CompileElement(null, null, null, null, null, null, [], [], false, false, [], []);
};

@@ -87,3 +94,9 @@ CompileElement.prototype._createAppElement = function () {

};
CompileElement.prototype.createComponentFactoryResolver = function (entryComponents) {
CompileElement.prototype._createComponentFactoryResolver = function () {
var _this = this;
var entryComponents = this.component.entryComponents.map(function (entryComponent) {
var id = new CompileIdentifierMetadata({ name: entryComponent.name });
_this._targetDependencies.push(new ComponentFactoryDependency(entryComponent, id));
return id;
});
if (!entryComponents || entryComponents.length === 0) {

@@ -137,2 +150,4 @@ return;

MapWrapper.values(this._resolvedProviders).forEach(function (resolvedProvider) {
var isDirectiveWrapper = resolvedProvider.providerType === ProviderAstType.Component ||
resolvedProvider.providerType === ProviderAstType.Directive;
var providerValueExpressions = resolvedProvider.providers.map(function (provider) {

@@ -150,4 +165,12 @@ if (isPresent(provider.useExisting)) {

var depsExpr = deps.map(function (dep) { return _this._getDependency(resolvedProvider.providerType, dep); });
return o.importExpr(provider.useClass)
.instantiate(depsExpr, o.importType(provider.useClass));
if (isDirectiveWrapper) {
var directiveWrapperIdentifier = new CompileIdentifierMetadata({ name: DirectiveWrapperCompiler.dirWrapperClassName(provider.useClass) });
_this._targetDependencies.push(new DirectiveWrapperDependency(provider.useClass, directiveWrapperIdentifier));
return o.importExpr(directiveWrapperIdentifier)
.instantiate(depsExpr, o.importType(directiveWrapperIdentifier));
}
else {
return o.importExpr(provider.useClass)
.instantiate(depsExpr, o.importType(provider.useClass));
}
}

@@ -160,3 +183,9 @@ else {

var instance = createProviderProperty(propName, resolvedProvider, providerValueExpressions, resolvedProvider.multiProvider, resolvedProvider.eager, _this);
_this.instances.set(resolvedProvider.token.reference, instance);
if (isDirectiveWrapper) {
_this.directiveWrapperInstance.set(resolvedProvider.token.reference, instance);
_this.instances.set(resolvedProvider.token.reference, instance.prop('context'));
}
else {
_this.instances.set(resolvedProvider.token.reference, instance);
}
});

@@ -163,0 +192,0 @@ for (var i = 0; i < this._directives.length; i++) {

@@ -24,2 +24,3 @@ /**

methodName: string;
isAnimation: boolean;
constructor(compileElement: CompileElement, eventTarget: string, eventName: string, eventPhase: string, listenerIndex: number);

@@ -29,3 +30,3 @@ addAction(hostEvent: BoundEventAst, directive: CompileDirectiveMetadata, directiveInstance: o.Expression): void;

listenToRenderer(): void;
listenToAnimation(): void;
listenToAnimation(animationTransitionVar: o.ReadVarExpr): o.Statement;
listenToDirective(directiveInstance: o.Expression, observablePropName: string): void;

@@ -32,0 +33,0 @@ }

@@ -42,2 +42,7 @@ /**

});
Object.defineProperty(CompileEventListener.prototype, "isAnimation", {
get: function () { return !!this.eventPhase; },
enumerable: true,
configurable: true
});
CompileEventListener.prototype.addAction = function (hostEvent, directive, directiveInstance) {

@@ -92,12 +97,7 @@ if (isPresent(directive) && directive.isComponent) {

};
CompileEventListener.prototype.listenToAnimation = function () {
var outputListener = o.THIS_EXPR.callMethod('eventHandler', [o.THIS_EXPR.prop(this._methodName).callMethod(o.BuiltinMethod.Bind, [o.THIS_EXPR])]);
// tie the property callback method to the view animations map
var stmt = o.THIS_EXPR
.callMethod('registerAnimationOutput', [
this.compileElement.renderNode, o.literal(this.eventName),
o.literal(this.eventPhase), outputListener
])
CompileEventListener.prototype.listenToAnimation = function (animationTransitionVar) {
var callbackMethod = this.eventPhase == 'start' ? 'onStart' : 'onDone';
return animationTransitionVar
.callMethod(callbackMethod, [o.THIS_EXPR.prop(this.methodName).callMethod(o.BuiltinMethod.Bind, [o.THIS_EXPR])])
.toStmt();
this.compileElement.view.createMethod.addStmt(stmt);
};

@@ -143,6 +143,5 @@ CompileEventListener.prototype.listenToDirective = function (directiveInstance, observablePropName) {

eventListeners.forEach(function (listener) {
if (listener.eventPhase) {
listener.listenToAnimation();
}
else {
// the animation listeners are handled within property_binder.ts to
// allow them to be placed next to the animation factory statements
if (!listener.isAnimation) {
listener.listenToRenderer();

@@ -149,0 +148,0 @@ }

@@ -9,3 +9,3 @@ /**

import * as cdAst from '../expression_parser/ast';
import { isArray, isBlank, isPresent } from '../facade/lang';
import { isBlank, isPresent } from '../facade/lang';
import { Identifiers, resolveIdentifier } from '../identifiers';

@@ -410,3 +410,3 @@ import * as o from '../output/output_ast';

function flattenStatements(arg, output) {
if (isArray(arg)) {
if (Array.isArray(arg)) {
arg.forEach(function (entry) { return flattenStatements(entry, output); });

@@ -413,0 +413,0 @@ }

@@ -10,6 +10,5 @@ /**

import * as o from '../output/output_ast';
import { DirectiveAst, ProviderAst } from '../template_parser/template_ast';
import { ProviderAst } from '../template_parser/template_ast';
import { CompileElement } from './compile_element';
import { CompileView } from './compile_view';
export declare function bindDirectiveDetectChangesLifecycleCallbacks(directiveAst: DirectiveAst, directiveInstance: o.Expression, compileElement: CompileElement): void;
export declare function bindDirectiveAfterContentLifecycleCallbacks(directiveMeta: CompileDirectiveMetadata, directiveInstance: o.Expression, compileElement: CompileElement): void;

@@ -16,0 +15,0 @@ export declare function bindDirectiveAfterViewLifecycleCallbacks(directiveMeta: CompileDirectiveMetadata, directiveInstance: o.Expression, compileElement: CompileElement): void;

@@ -13,16 +13,2 @@ /**

var NOT_THROW_ON_CHANGES = o.not(DetectChangesVars.throwOnChange);
export function bindDirectiveDetectChangesLifecycleCallbacks(directiveAst, directiveInstance, compileElement) {
var view = compileElement.view;
var detectChangesInInputsMethod = view.detectChangesInInputsMethod;
var lifecycleHooks = directiveAst.directive.type.lifecycleHooks;
if (lifecycleHooks.indexOf(LifecycleHooks.OnChanges) !== -1 && directiveAst.inputs.length > 0) {
detectChangesInInputsMethod.addStmt(new o.IfStmt(DetectChangesVars.changes.notIdentical(o.NULL_EXPR), [directiveInstance.callMethod('ngOnChanges', [DetectChangesVars.changes]).toStmt()]));
}
if (lifecycleHooks.indexOf(LifecycleHooks.OnInit) !== -1) {
detectChangesInInputsMethod.addStmt(new o.IfStmt(STATE_IS_NEVER_CHECKED.and(NOT_THROW_ON_CHANGES), [directiveInstance.callMethod('ngOnInit', []).toStmt()]));
}
if (lifecycleHooks.indexOf(LifecycleHooks.DoCheck) !== -1) {
detectChangesInInputsMethod.addStmt(new o.IfStmt(NOT_THROW_ON_CHANGES, [directiveInstance.callMethod('ngDoCheck', []).toStmt()]));
}
}
export function bindDirectiveAfterContentLifecycleCallbacks(directiveMeta, directiveInstance, compileElement) {

@@ -29,0 +15,0 @@ var view = compileElement.view;

@@ -5,5 +5,6 @@ import * as o from '../output/output_ast';

import { CompileView } from './compile_view';
import { CompileEventListener } from './event_binder';
export declare function bindRenderText(boundText: BoundTextAst, compileNode: CompileNode, view: CompileView): void;
export declare function bindRenderInputs(boundProps: BoundElementPropertyAst[], compileElement: CompileElement): void;
export declare function bindDirectiveHostProps(directiveAst: DirectiveAst, directiveInstance: o.Expression, compileElement: CompileElement): void;
export declare function bindDirectiveInputs(directiveAst: DirectiveAst, directiveInstance: o.Expression, compileElement: CompileElement): void;
export declare function bindRenderInputs(boundProps: BoundElementPropertyAst[], compileElement: CompileElement, eventListeners: CompileEventListener[]): void;
export declare function bindDirectiveHostProps(directiveAst: DirectiveAst, directiveInstance: o.Expression, compileElement: CompileElement, eventListeners: CompileEventListener[]): void;
export declare function bindDirectiveInputs(directiveAst: DirectiveAst, directiveWrapperInstance: o.Expression, compileElement: CompileElement): void;

@@ -12,5 +12,4 @@ /**

import * as o from '../output/output_ast';
import { EMPTY_STATE as EMPTY_ANIMATION_STATE, LifecycleHooks, isDefaultChangeDetectionStrategy } from '../private_import_core';
import { EMPTY_STATE as EMPTY_ANIMATION_STATE, isDefaultChangeDetectionStrategy } from '../private_import_core';
import { PropertyBindingType } from '../template_parser/template_ast';
import { camelCaseToDashCase } from '../util';
import { CompileBinding } from './compile_binding';

@@ -25,7 +24,13 @@ import { DetectChangesVars, ViewProperties } from './constants';

}
function bind(view, currValExpr, fieldExpr, parsedExpression, context, actions, method, bindingIndex) {
var EvalResult = (function () {
function EvalResult(forceUpdate) {
this.forceUpdate = forceUpdate;
}
return EvalResult;
}());
function evalCdAst(view, currValExpr, parsedExpression, context, method, bindingIndex) {
var checkExpression = convertCdExpressionToIr(view, context, parsedExpression, DetectChangesVars.valUnwrapper, bindingIndex);
if (!checkExpression.expression) {
// e.g. an empty expression was given
return;
return null;
}

@@ -37,2 +42,19 @@ if (checkExpression.temporaryCount) {

}
if (checkExpression.needsValueUnwrapper) {
var initValueUnwrapperStmt = DetectChangesVars.valUnwrapper.callMethod('reset', []).toStmt();
method.addStmt(initValueUnwrapperStmt);
}
method.addStmt(currValExpr.set(checkExpression.expression).toDeclStmt(null, [o.StmtModifier.Final]));
if (checkExpression.needsValueUnwrapper) {
return new EvalResult(DetectChangesVars.valUnwrapper.prop('hasWrappedValue'));
}
else {
return new EvalResult(null);
}
}
function bind(view, currValExpr, fieldExpr, parsedExpression, context, actions, method, bindingIndex) {
var evalResult = evalCdAst(view, currValExpr, parsedExpression, context, method, bindingIndex);
if (!evalResult) {
return;
}
// private is fine here as no child view will reference the cached value...

@@ -43,12 +65,7 @@ view.fields.push(new o.ClassField(fieldExpr.name, null, [o.StmtModifier.Private]));

.toStmt());
if (checkExpression.needsValueUnwrapper) {
var initValueUnwrapperStmt = DetectChangesVars.valUnwrapper.callMethod('reset', []).toStmt();
method.addStmt(initValueUnwrapperStmt);
}
method.addStmt(currValExpr.set(checkExpression.expression).toDeclStmt(null, [o.StmtModifier.Final]));
var condition = o.importExpr(resolveIdentifier(Identifiers.checkBinding)).callFn([
DetectChangesVars.throwOnChange, fieldExpr, currValExpr
]);
if (checkExpression.needsValueUnwrapper) {
condition = DetectChangesVars.valUnwrapper.prop('hasWrappedValue').or(condition);
if (evalResult.forceUpdate) {
condition = evalResult.forceUpdate.or(condition);
}

@@ -67,3 +84,3 @@ method.addStmt(new o.IfStmt(condition, actions.concat([o.THIS_EXPR.prop(fieldExpr.name).set(currValExpr).toStmt()])));

}
function bindAndWriteToRenderer(boundProps, context, compileElement, isHostProp) {
function bindAndWriteToRenderer(boundProps, context, compileElement, isHostProp, eventListeners) {
var view = compileElement.view;

@@ -113,23 +130,30 @@ var renderNode = compileElement.renderNode;

case PropertyBindingType.Animation:
var animationName = boundProp.name;
var targetViewExpr = o.THIS_EXPR;
if (isHostProp) {
targetViewExpr = compileElement.appElement.prop('componentView');
}
compileMethod = view.animationBindingsMethod;
var animationFnExpr = targetViewExpr.prop('componentType').prop('animations').key(o.literal(animationName));
var detachStmts_1 = [];
var animationName_1 = boundProp.name;
var targetViewExpr = isHostProp ? compileElement.appElement.prop('componentView') : o.THIS_EXPR;
var animationFnExpr = targetViewExpr.prop('componentType').prop('animations').key(o.literal(animationName_1));
// it's important to normalize the void value as `void` explicitly
// so that the styles data can be obtained from the stringmap
var emptyStateValue = o.literal(EMPTY_ANIMATION_STATE);
// void => ...
var oldRenderVar = o.variable('oldRenderVar');
updateStmts.push(oldRenderVar.set(oldRenderValue).toDeclStmt());
updateStmts.push(new o.IfStmt(oldRenderVar.equals(o.importExpr(resolveIdentifier(Identifiers.UNINITIALIZED))), [oldRenderVar.set(emptyStateValue).toStmt()]));
// ... => void
var newRenderVar = o.variable('newRenderVar');
updateStmts.push(newRenderVar.set(renderValue).toDeclStmt());
updateStmts.push(new o.IfStmt(newRenderVar.equals(o.importExpr(resolveIdentifier(Identifiers.UNINITIALIZED))), [newRenderVar.set(emptyStateValue).toStmt()]));
updateStmts.push(animationFnExpr.callFn([o.THIS_EXPR, renderNode, oldRenderVar, newRenderVar]).toStmt());
view.detachMethod.addStmt(animationFnExpr.callFn([o.THIS_EXPR, renderNode, oldRenderValue, emptyStateValue])
.toStmt());
var unitializedValue = o.importExpr(resolveIdentifier(Identifiers.UNINITIALIZED));
var animationTransitionVar_1 = o.variable('animationTransition_' + animationName_1);
updateStmts.push(animationTransitionVar_1
.set(animationFnExpr.callFn([
o.THIS_EXPR, renderNode, oldRenderValue.equals(unitializedValue)
.conditional(emptyStateValue, oldRenderValue),
renderValue.equals(unitializedValue).conditional(emptyStateValue, renderValue)
]))
.toDeclStmt());
detachStmts_1.push(animationTransitionVar_1
.set(animationFnExpr.callFn([o.THIS_EXPR, renderNode, oldRenderValue, emptyStateValue]))
.toDeclStmt());
eventListeners.forEach(function (listener) {
if (listener.isAnimation && listener.eventName === animationName_1) {
var animationStmt = listener.listenToAnimation(animationTransitionVar_1);
updateStmts.push(animationStmt);
detachStmts_1.push(animationStmt);
}
});
view.detachMethod.addStmts(detachStmts_1);
break;

@@ -167,25 +191,12 @@ }

}
export function bindRenderInputs(boundProps, compileElement) {
bindAndWriteToRenderer(boundProps, compileElement.view.componentContext, compileElement, false);
export function bindRenderInputs(boundProps, compileElement, eventListeners) {
bindAndWriteToRenderer(boundProps, compileElement.view.componentContext, compileElement, false, eventListeners);
}
export function bindDirectiveHostProps(directiveAst, directiveInstance, compileElement) {
bindAndWriteToRenderer(directiveAst.hostProperties, directiveInstance, compileElement, true);
export function bindDirectiveHostProps(directiveAst, directiveInstance, compileElement, eventListeners) {
bindAndWriteToRenderer(directiveAst.hostProperties, directiveInstance, compileElement, true, eventListeners);
}
export function bindDirectiveInputs(directiveAst, directiveInstance, compileElement) {
if (directiveAst.inputs.length === 0) {
return;
}
export function bindDirectiveInputs(directiveAst, directiveWrapperInstance, compileElement) {
var view = compileElement.view;
var detectChangesInInputsMethod = view.detectChangesInInputsMethod;
detectChangesInInputsMethod.resetDebugInfo(compileElement.nodeIndex, compileElement.sourceAst);
var lifecycleHooks = directiveAst.directive.type.lifecycleHooks;
var calcChangesMap = lifecycleHooks.indexOf(LifecycleHooks.OnChanges) !== -1;
var isOnPushComp = directiveAst.directive.isComponent &&
!isDefaultChangeDetectionStrategy(directiveAst.directive.changeDetection);
if (calcChangesMap) {
detectChangesInInputsMethod.addStmt(DetectChangesVars.changes.set(o.NULL_EXPR).toStmt());
}
if (isOnPushComp) {
detectChangesInInputsMethod.addStmt(DetectChangesVars.changed.set(o.literal(false)).toStmt());
}
directiveAst.inputs.forEach(function (input) {

@@ -195,43 +206,29 @@ var bindingIndex = view.bindings.length;

detectChangesInInputsMethod.resetDebugInfo(compileElement.nodeIndex, input);
var fieldExpr = createBindFieldExpr(bindingIndex);
var currValExpr = createCurrValueExpr(bindingIndex);
var statements = [directiveInstance.prop(input.directiveName).set(currValExpr).toStmt()];
if (calcChangesMap) {
statements.push(new o.IfStmt(DetectChangesVars.changes.identical(o.NULL_EXPR), [DetectChangesVars.changes
.set(o.literalMap([], new o.MapType(o.importType(resolveIdentifier(Identifiers.SimpleChange)))))
.toStmt()]));
statements.push(DetectChangesVars.changes.key(o.literal(input.directiveName))
.set(o.importExpr(resolveIdentifier(Identifiers.SimpleChange))
.instantiate([fieldExpr, currValExpr]))
.toStmt());
var evalResult = evalCdAst(view, currValExpr, input.value, view.componentContext, detectChangesInInputsMethod, bindingIndex);
if (!evalResult) {
return;
}
if (isOnPushComp) {
statements.push(DetectChangesVars.changed.set(o.literal(true)).toStmt());
}
if (view.genConfig.logBindingUpdate) {
statements.push(logBindingUpdateStmt(compileElement.renderNode, input.directiveName, currValExpr));
}
bind(view, currValExpr, fieldExpr, input.value, view.componentContext, statements, detectChangesInInputsMethod, bindingIndex);
detectChangesInInputsMethod.addStmt(directiveWrapperInstance
.callMethod("check_" + input.directiveName, [
currValExpr, DetectChangesVars.throwOnChange,
evalResult.forceUpdate || o.literal(false)
])
.toStmt());
});
if (isOnPushComp) {
detectChangesInInputsMethod.addStmt(new o.IfStmt(DetectChangesVars.changed, [
compileElement.appElement.prop('componentView').callMethod('markAsCheckOnce', []).toStmt()
]));
}
var isOnPushComp = directiveAst.directive.isComponent &&
!isDefaultChangeDetectionStrategy(directiveAst.directive.changeDetection);
var directiveDetectChangesExpr = directiveWrapperInstance.callMethod('detectChangesInternal', [o.THIS_EXPR, compileElement.renderNode, DetectChangesVars.throwOnChange]);
var directiveDetectChangesStmt = isOnPushComp ?
new o.IfStmt(directiveDetectChangesExpr, [compileElement.appElement.prop('componentView')
.callMethod('markAsCheckOnce', [])
.toStmt()]) :
directiveDetectChangesExpr.toStmt();
detectChangesInInputsMethod.addStmt(directiveDetectChangesStmt);
}
function logBindingUpdateStmt(renderNode, propName, value) {
var tryStmt = o.THIS_EXPR.prop('renderer')
.callMethod('setBindingDebugInfo', [
renderNode, o.literal("ng-reflect-" + camelCaseToDashCase(propName)),
value.isBlank().conditional(o.NULL_EXPR, value.callMethod('toString', []))
])
return o.importExpr(resolveIdentifier(Identifiers.setBindingDebugInfo))
.callFn([o.THIS_EXPR.prop('renderer'), renderNode, o.literal(propName), value])
.toStmt();
var catchStmt = o.THIS_EXPR.prop('renderer')
.callMethod('setBindingDebugInfo', [
renderNode, o.literal("ng-reflect-" + camelCaseToDashCase(propName)),
o.literal('[ERROR] Exception while trying to serialize the value')
])
.toStmt();
return new o.TryCatchStmt([tryStmt], [catchStmt]);
}
//# sourceMappingURL=property_binder.js.map

@@ -8,2 +8,7 @@ /**

*/
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
import { isPresent } from '../facade/lang';

@@ -27,13 +32,30 @@ import { Identifiers, resolveIdentifier } from '../identifiers';

}
if (property instanceof o.ReadPropExpr) {
var readPropExpr_1 = property;
return property.visitExpression(new _ReplaceViewTransformer(viewProp, definedView), null);
}
}
var _ReplaceViewTransformer = (function (_super) {
__extends(_ReplaceViewTransformer, _super);
function _ReplaceViewTransformer(_viewExpr, _view) {
_super.call(this);
this._viewExpr = _viewExpr;
this._view = _view;
}
_ReplaceViewTransformer.prototype._isThis = function (expr) {
return expr instanceof o.ReadVarExpr && expr.builtin === o.BuiltinVar.This;
};
_ReplaceViewTransformer.prototype.visitReadVarExpr = function (ast, context) {
return this._isThis(ast) ? this._viewExpr : ast;
};
_ReplaceViewTransformer.prototype.visitReadPropExpr = function (ast, context) {
if (this._isThis(ast.receiver)) {
// Note: Don't cast for members of the AppView base class...
if (definedView.fields.some(function (field) { return field.name == readPropExpr_1.name; }) ||
definedView.getters.some(function (field) { return field.name == readPropExpr_1.name; })) {
viewProp = viewProp.cast(definedView.classType);
if (this._view.fields.some(function (field) { return field.name == ast.name; }) ||
this._view.getters.some(function (field) { return field.name == ast.name; })) {
return this._viewExpr.cast(this._view.classType).prop(ast.name);
}
}
return o.replaceVarInExpression(o.THIS_EXPR.name, viewProp, property);
}
}
return _super.prototype.visitReadPropExpr.call(this, ast, context);
};
return _ReplaceViewTransformer;
}(o.ExpressionTransformer));
export function injectFromViewParentInjector(token, optional) {

@@ -40,0 +62,0 @@ var args = [createDiTokenExpression(token)];

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":1,"metadata":{"getViewFactoryName":{"__symbolic":"function","parameters":["component","embeddedTemplateIndex"],"value":{"__symbolic":"error","message":"Expression form not supported","line":55,"character":9}}}}
{"__symbolic":"module","version":1,"metadata":{"getViewFactoryName":{"__symbolic":"function","parameters":["component","embeddedTemplateIndex"],"value":{"__symbolic":"error","message":"Expression form not supported","line":68,"character":9}}}}

@@ -10,3 +10,3 @@ /**

import { bindDirectiveOutputs, bindRenderOutputs, collectEventListeners } from './event_binder';
import { bindDirectiveAfterContentLifecycleCallbacks, bindDirectiveAfterViewLifecycleCallbacks, bindDirectiveDetectChangesLifecycleCallbacks, bindInjectableDestroyLifecycleCallbacks, bindPipeDestroyLifecycleCallbacks } from './lifecycle_binder';
import { bindDirectiveAfterContentLifecycleCallbacks, bindDirectiveAfterViewLifecycleCallbacks, bindInjectableDestroyLifecycleCallbacks, bindPipeDestroyLifecycleCallbacks } from './lifecycle_binder';
import { bindDirectiveHostProps, bindDirectiveInputs, bindRenderInputs, bindRenderText } from './property_binder';

@@ -39,9 +39,9 @@ export function bindView(view, parsedTemplate) {

});
bindRenderInputs(ast.inputs, compileElement);
bindRenderInputs(ast.inputs, compileElement, eventListeners);
bindRenderOutputs(eventListeners);
ast.directives.forEach(function (directiveAst) {
var directiveInstance = compileElement.instances.get(directiveAst.directive.type.reference);
bindDirectiveInputs(directiveAst, directiveInstance, compileElement);
bindDirectiveDetectChangesLifecycleCallbacks(directiveAst, directiveInstance, compileElement);
bindDirectiveHostProps(directiveAst, directiveInstance, compileElement);
var directiveWrapperInstance = compileElement.directiveWrapperInstance.get(directiveAst.directive.type.reference);
bindDirectiveInputs(directiveAst, directiveWrapperInstance, compileElement);
bindDirectiveHostProps(directiveAst, directiveInstance, compileElement, eventListeners);
bindDirectiveOutputs(directiveAst, directiveInstance, eventListeners);

@@ -68,4 +68,4 @@ });

var directiveInstance = compileElement.instances.get(directiveAst.directive.type.reference);
bindDirectiveInputs(directiveAst, directiveInstance, compileElement);
bindDirectiveDetectChangesLifecycleCallbacks(directiveAst, directiveInstance, compileElement);
var directiveWrapperInstance = compileElement.directiveWrapperInstance.get(directiveAst.directive.type.reference);
bindDirectiveInputs(directiveAst, directiveWrapperInstance, compileElement);
bindDirectiveOutputs(directiveAst, directiveInstance, eventListeners);

@@ -72,0 +72,0 @@ bindDirectiveAfterContentLifecycleCallbacks(directiveAst.directive, directiveInstance, compileElement);

@@ -1,16 +0,6 @@

import { CompileIdentifierMetadata } from '../compile_metadata';
import * as o from '../output/output_ast';
import { TemplateAst } from '../template_parser/template_ast';
import { CompileView } from './compile_view';
export declare class ViewFactoryDependency {
comp: CompileIdentifierMetadata;
placeholder: CompileIdentifierMetadata;
constructor(comp: CompileIdentifierMetadata, placeholder: CompileIdentifierMetadata);
}
export declare class ComponentFactoryDependency {
comp: CompileIdentifierMetadata;
placeholder: CompileIdentifierMetadata;
constructor(comp: CompileIdentifierMetadata, placeholder: CompileIdentifierMetadata);
}
export declare function buildView(view: CompileView, template: TemplateAst[], targetDependencies: Array<ViewFactoryDependency | ComponentFactoryDependency>): number;
import { ComponentFactoryDependency, DirectiveWrapperDependency, ViewFactoryDependency } from './deps';
export declare function buildView(view: CompileView, template: TemplateAst[], targetDependencies: Array<ViewFactoryDependency | ComponentFactoryDependency | DirectiveWrapperDependency>): number;
export declare function finishView(view: CompileView, targetStatements: o.Statement[]): void;

@@ -20,2 +20,3 @@ /**

import { ChangeDetectorStatusEnum, DetectChangesVars, InjectMethodVars, ViewConstructorVars, ViewEncapsulationEnum, ViewProperties, ViewTypeEnum } from './constants';
import { ViewFactoryDependency } from './deps';
import { createFlatArray, getViewFactoryName } from './util';

@@ -28,16 +29,2 @@ var IMPLICIT_TEMPLATE_VAR = '\$implicit';

var rootSelectorVar = o.variable('rootSelector');
export var ViewFactoryDependency = (function () {
function ViewFactoryDependency(comp, placeholder) {
this.comp = comp;
this.placeholder = placeholder;
}
return ViewFactoryDependency;
}());
export var ComponentFactoryDependency = (function () {
function ComponentFactoryDependency(comp, placeholder) {
this.comp = comp;
this.placeholder = placeholder;
}
return ComponentFactoryDependency;
}());
export function buildView(view, template, targetDependencies) {

@@ -148,3 +135,2 @@ var builderVisitor = new ViewBuilderVisitor(view, targetDependencies);

ViewBuilderVisitor.prototype.visitElement = function (ast, parent) {
var _this = this;
var nodeIndex = this.view.nodes.length;

@@ -182,3 +168,3 @@ var createRenderNodeExpr;

}
var compileElement = new CompileElement(parent, this.view, nodeIndex, renderNode, ast, component, directives, ast.providers, ast.hasViewContainer, false, ast.references);
var compileElement = new CompileElement(parent, this.view, nodeIndex, renderNode, ast, component, directives, ast.providers, ast.hasViewContainer, false, ast.references, this.targetDependencies);
this.view.nodes.push(compileElement);

@@ -189,8 +175,2 @@ var compViewExpr = null;

this.targetDependencies.push(new ViewFactoryDependency(component.type, nestedComponentIdentifier));
var entryComponentIdentifiers = component.entryComponents.map(function (entryComponent) {
var id = new CompileIdentifierMetadata({ name: entryComponent.name });
_this.targetDependencies.push(new ComponentFactoryDependency(entryComponent, id));
return id;
});
compileElement.createComponentFactoryResolver(entryComponentIdentifiers);
compViewExpr = o.variable("compView_" + nodeIndex); // fix highlighting: `

@@ -235,3 +215,3 @@ compileElement.setComponentView(compViewExpr);

var directives = ast.directives.map(function (directiveAst) { return directiveAst.directive; });
var compileElement = new CompileElement(parent, this.view, nodeIndex, renderNode, ast, null, directives, ast.providers, ast.hasViewContainer, true, ast.references);
var compileElement = new CompileElement(parent, this.view, nodeIndex, renderNode, ast, null, directives, ast.providers, ast.hasViewContainer, true, ast.references, this.targetDependencies);
this.view.nodes.push(compileElement);

@@ -238,0 +218,0 @@ this.nestedViewCount++;

@@ -6,15 +6,14 @@ import { AnimationEntryCompileResult } from '../animation/animation_compiler';

import { TemplateAst } from '../template_parser/template_ast';
import { ComponentFactoryDependency, ViewFactoryDependency } from './view_builder';
export { ComponentFactoryDependency, ViewFactoryDependency } from './view_builder';
import { ComponentFactoryDependency, DirectiveWrapperDependency, ViewFactoryDependency } from './deps';
export { ComponentFactoryDependency, DirectiveWrapperDependency, ViewFactoryDependency } from './deps';
export declare class ViewCompileResult {
statements: o.Statement[];
viewFactoryVar: string;
dependencies: Array<ViewFactoryDependency | ComponentFactoryDependency>;
constructor(statements: o.Statement[], viewFactoryVar: string, dependencies: Array<ViewFactoryDependency | ComponentFactoryDependency>);
dependencies: Array<ViewFactoryDependency | ComponentFactoryDependency | DirectiveWrapperDependency>;
constructor(statements: o.Statement[], viewFactoryVar: string, dependencies: Array<ViewFactoryDependency | ComponentFactoryDependency | DirectiveWrapperDependency>);
}
export declare class ViewCompiler {
private _genConfig;
private _animationCompiler;
constructor(_genConfig: CompilerConfig);
compileComponent(component: CompileDirectiveMetadata, template: TemplateAst[], styles: o.Expression, pipes: CompilePipeMetadata[], compiledAnimations: AnimationEntryCompileResult[]): ViewCompileResult;
}

@@ -9,3 +9,2 @@ /**

import { Injectable } from '@angular/core';
import { AnimationCompiler } from '../animation/animation_compiler';
import { CompilerConfig } from '../config';

@@ -16,3 +15,3 @@ import { CompileElement } from './compile_element';

import { buildView, finishView } from './view_builder';
export { ComponentFactoryDependency, ViewFactoryDependency } from './view_builder';
export { ComponentFactoryDependency, DirectiveWrapperDependency, ViewFactoryDependency } from './deps';
export var ViewCompileResult = (function () {

@@ -29,3 +28,2 @@ function ViewCompileResult(statements, viewFactoryVar, dependencies) {

this._genConfig = _genConfig;
this._animationCompiler = new AnimationCompiler();
}

@@ -32,0 +30,0 @@ ViewCompiler.prototype.compileComponent = function (component, template, styles, pipes, compiledAnimations) {

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":1,"metadata":{"ViewCompiler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../config","name":"CompilerConfig"}]}],"compileComponent":[{"__symbolic":"method"}]}}},"exports":[{"from":"./view_builder","export":["ComponentFactoryDependency","ViewFactoryDependency"]}]}
{"__symbolic":"module","version":1,"metadata":{"ViewCompiler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../config","name":"CompilerConfig"}]}],"compileComponent":[{"__symbolic":"method"}]}}},"exports":[{"from":"./deps","export":["ComponentFactoryDependency","DirectiveWrapperDependency","ViewFactoryDependency"]}]}

@@ -36,36 +36,12 @@

export declare function isBlank(obj: any): boolean;
export declare function isBoolean(obj: any): boolean;
export declare function isNumber(obj: any): boolean;
export declare function isString(obj: any): obj is string;
export declare function isFunction(obj: any): boolean;
export declare function isType(obj: any): boolean;
export declare function isStringMap(obj: any): obj is Object;
export declare function isStrictStringMap(obj: any): boolean;
export declare function isArray(obj: any): boolean;
export declare function isDate(obj: any): obj is Date;
export declare function noop(): void;
export declare function stringify(token: any): string;
export declare class StringJoiner {
parts: string[];
constructor(parts?: string[]);
add(part: string): void;
toString(): string;
}
export declare class NumberWrapper {
static toFixed(n: number, fractionDigits: number): string;
static equal(a: number, b: number): boolean;
static parseIntAutoRadix(text: string): number;
static parseInt(text: string, radix: number): number;
static NaN: number;
static isNumeric(value: any): boolean;
static isNaN(value: any): boolean;
static isInteger(value: any): boolean;
}
export declare var RegExp: RegExpConstructor;
export declare class FunctionWrapper {
static apply(fn: Function, posArgs: any): any;
static bind(fn: Function, scope: any): Function;
}
export declare function looseIdentical(a: any, b: any): boolean;
export declare function getMapKey<T>(value: T): T;
export declare function normalizeBlank(obj: Object): any;

@@ -76,14 +52,5 @@ export declare function normalizeBool(obj: boolean): boolean;

export declare function warn(obj: Error | Object): void;
export declare class Json {
static parse(s: string): Object;
static stringify(data: Object): string;
}
export declare function setValueOnPath(global: any, path: string, value: any): void;
export declare function getSymbolIterator(): string | symbol;
export declare function evalExpression(sourceUrl: string, expr: string, declarations: string, vars: {
[key: string]: any;
}): any;
export declare function isPrimitive(obj: any): boolean;
export declare function hasConstructor(value: Object, type: any): boolean;
export declare function escape(s: string): string;
export declare function escapeRegExp(s: string): string;

@@ -43,27 +43,6 @@ /**

}
export function isBoolean(obj) {
return typeof obj === 'boolean';
}
export function isNumber(obj) {
return typeof obj === 'number';
}
export function isString(obj) {
return typeof obj === 'string';
}
export function isFunction(obj) {
return typeof obj === 'function';
}
export function isType(obj) {
return isFunction(obj);
}
export function isStringMap(obj) {
return typeof obj === 'object' && obj !== null;
}
var STRING_MAP_PROTO = Object.getPrototypeOf({});
export function isStrictStringMap(obj) {
return isStringMap(obj) && Object.getPrototypeOf(obj) === STRING_MAP_PROTO;
return typeof obj === 'object' && obj !== null && Object.getPrototypeOf(obj) === STRING_MAP_PROTO;
}
export function isArray(obj) {
return Array.isArray(obj);
}
export function isDate(obj) {

@@ -90,16 +69,5 @@ return obj instanceof Date && !isNaN(obj.valueOf());

}
export var StringJoiner = (function () {
function StringJoiner(parts) {
if (parts === void 0) { parts = []; }
this.parts = parts;
}
StringJoiner.prototype.add = function (part) { this.parts.push(part); };
StringJoiner.prototype.toString = function () { return this.parts.join(''); };
return StringJoiner;
}());
export var NumberWrapper = (function () {
function NumberWrapper() {
}
NumberWrapper.toFixed = function (n, fractionDigits) { return n.toFixed(fractionDigits); };
NumberWrapper.equal = function (a, b) { return a === b; };
NumberWrapper.parseIntAutoRadix = function (text) {

@@ -131,20 +99,5 @@ var result = parseInt(text);

};
Object.defineProperty(NumberWrapper, "NaN", {
get: function () { return NaN; },
enumerable: true,
configurable: true
});
NumberWrapper.isNumeric = function (value) { return !isNaN(value - parseFloat(value)); };
NumberWrapper.isNaN = function (value) { return isNaN(value); };
NumberWrapper.isInteger = function (value) { return Number.isInteger(value); };
return NumberWrapper;
}());
export var RegExp = _global.RegExp;
export var FunctionWrapper = (function () {
function FunctionWrapper() {
}
FunctionWrapper.apply = function (fn, posArgs) { return fn.apply(null, posArgs); };
FunctionWrapper.bind = function (fn, scope) { return fn.bind(scope); };
return FunctionWrapper;
}());
// JS has NaN !== NaN

@@ -154,7 +107,2 @@ export function looseIdentical(a, b) {

}
// JS considers NaN is the same as NaN for map Key (while NaN !== NaN otherwise)
// see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map
export function getMapKey(value) {
return value;
}
export function normalizeBlank(obj) {

@@ -175,13 +123,2 @@ return isBlank(obj) ? null : obj;

}
// Can't be all uppercase as our transpiler would think it is a special directive...
export var Json = (function () {
function Json() {
}
Json.parse = function (s) { return _global.JSON.parse(s); };
Json.stringify = function (data) {
// Dart doesn't take 3 arguments
return _global.JSON.stringify(data, null, 2);
};
return Json;
}());
export function setValueOnPath(global, path, value) {

@@ -224,21 +161,5 @@ var parts = path.split('.');

}
export function evalExpression(sourceUrl, expr, declarations, vars) {
var fnBody = declarations + "\nreturn " + expr + "\n//# sourceURL=" + sourceUrl;
var fnArgNames = [];
var fnArgValues = [];
for (var argName in vars) {
fnArgNames.push(argName);
fnArgValues.push(vars[argName]);
}
return new (Function.bind.apply(Function, [void 0].concat(fnArgNames.concat(fnBody))))().apply(void 0, fnArgValues);
}
export function isPrimitive(obj) {
return !isJsObject(obj);
}
export function hasConstructor(value, type) {
return value.constructor === type;
}
export function escape(s) {
return _global.encodeURI(s);
}
export function escapeRegExp(s) {

@@ -245,0 +166,0 @@ return s.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":1,"metadata":{"getTypeNameForDebugging":{"__symbolic":"function","parameters":["type"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"index","expression":{"__symbolic":"reference","name":"type"},"index":"name"},"right":{"__symbolic":"error","message":"Expression form not supported","line":61,"character":25}}},"isPresent":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"undefined"}},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":null}}},"isBlank":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"undefined"}},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"obj"},"right":null}}},"isBoolean":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":80,"character":9},"right":"boolean"}},"isNumber":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":84,"character":9},"right":"number"}},"isString":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":88,"character":9},"right":"string"}},"isFunction":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":92,"character":9},"right":"function"}},"isType":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isFunction"},"arguments":[{"__symbolic":"reference","name":"obj"}]}},"isStringMap":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":100,"character":9},"right":"object"},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":null}}},"isStrictStringMap":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isStringMap"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"right":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{}]}}}},"isArray":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Array"},"member":"isArray"},"arguments":[{"__symbolic":"reference","name":"obj"}]}},"isDate":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"Date"}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"obj"},"member":"valueOf"}}]}}}},"RegExp":{"__symbolic":"error","message":"Reference to a local symbol","line":55,"character":4,"context":{"name":"_global"}},"looseIdentical":{"__symbolic":"function","parameters":["a","b"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"a"},"right":{"__symbolic":"reference","name":"b"}},"right":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":198,"character":20},"right":"number"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":198,"character":45},"right":"number"}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"a"}]}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"b"}]}}}},"getMapKey":{"__symbolic":"function","parameters":["value"],"value":{"__symbolic":"reference","name":"value"}},"normalizeBlank":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"if","condition":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isBlank"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"thenExpression":null,"elseExpression":{"__symbolic":"reference","name":"obj"}}},"normalizeBool":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"if","condition":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isBlank"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"thenExpression":false,"elseExpression":{"__symbolic":"reference","name":"obj"}}},"isJsObject":{"__symbolic":"function","parameters":["o"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"o"},"right":null},"right":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":216,"character":24},"right":"function"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":216,"character":51},"right":"object"}}}},"isPrimitive":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isJsObject"},"arguments":[{"__symbolic":"reference","name":"obj"}]}}},"hasConstructor":{"__symbolic":"function","parameters":["value","type"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"value"},"member":"constructor"},"right":{"__symbolic":"reference","name":"type"}}},"escape":{"__symbolic":"function","parameters":["s"],"value":{"__symbolic":"error","message":"Reference to a local symbol","line":55,"character":4,"context":{"name":"_global"}}},"escapeRegExp":{"__symbolic":"function","parameters":["s"],"value":{"__symbolic":"error","message":"Expression form not supported","line":300,"character":19}}}}
{"__symbolic":"module","version":1,"metadata":{"getTypeNameForDebugging":{"__symbolic":"function","parameters":["type"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"index","expression":{"__symbolic":"reference","name":"type"},"index":"name"},"right":{"__symbolic":"error","message":"Expression form not supported","line":61,"character":25}}},"isPresent":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"undefined"}},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":null}}},"isBlank":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"undefined"}},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"obj"},"right":null}}},"isStrictStringMap":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":81,"character":9},"right":"object"},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"obj"},"right":null}},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"right":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getPrototypeOf"},"arguments":[{}]}}}},"isDate":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"reference","name":"Date"}},"right":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"obj"},"member":"valueOf"}}]}}}},"looseIdentical":{"__symbolic":"function","parameters":["a","b"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"a"},"right":{"__symbolic":"reference","name":"b"}},"right":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":143,"character":20},"right":"number"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":143,"character":45},"right":"number"}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"a"}]}},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"reference","name":"b"}]}}}},"normalizeBlank":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"if","condition":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isBlank"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"thenExpression":null,"elseExpression":{"__symbolic":"reference","name":"obj"}}},"normalizeBool":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"if","condition":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isBlank"},"arguments":[{"__symbolic":"reference","name":"obj"}]},"thenExpression":false,"elseExpression":{"__symbolic":"reference","name":"obj"}}},"isJsObject":{"__symbolic":"function","parameters":["o"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"o"},"right":null},"right":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":155,"character":24},"right":"function"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":155,"character":51},"right":"object"}}}},"isPrimitive":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isJsObject"},"arguments":[{"__symbolic":"reference","name":"obj"}]}}},"escapeRegExp":{"__symbolic":"function","parameters":["s"],"value":{"__symbolic":"error","message":"Expression form not supported","line":210,"character":19}}}}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc