You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

@angular/compiler-cli

Package Overview
Dependencies
Maintainers
1
Versions
1020
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@angular/compiler-cli - npm Package Compare versions

Comparing version
5.2.9
to
5.2.10
+2
-2
package.json
{
"name": "@angular/compiler-cli",
"version": "5.2.9",
"version": "5.2.10",
"description": "Angular - the compiler CLI for Node.js",

@@ -19,3 +19,3 @@ "main": "index.js",

"typescript": ">=2.4.2 <2.7",
"@angular/compiler": "5.2.9"
"@angular/compiler": "5.2.10"
},

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

@@ -47,2 +47,7 @@ "use strict";

exports.TypeScriptNodeEmitter = TypeScriptNodeEmitter;
function escapeLiteral(value) {
return value.replace(/(\"|\\)/g, '\\$1').replace(/(\n)|(\r)/g, function (v, n, r) {
return n ? '\\n' : '\\r';
});
}
function createLiteral(value) {

@@ -56,3 +61,12 @@ if (value === null) {

else {
return ts.createLiteral(value);
var result = ts.createLiteral(value);
if (ts.isStringLiteral(result) && result.text.indexOf('\\') >= 0) {
// Hack to avoid problems cause indirectly by:
// https://github.com/Microsoft/TypeScript/issues/20192
// This avoids the string escaping normally performed for a string relying on that
// TypeScript just emits the text raw for a numeric literal.
result.kind = ts.SyntaxKind.NumericLiteral;
result.text = "\"" + escapeLiteral(result.text) + "\"";
}
return result;
}

@@ -59,0 +73,0 @@ }

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

{"version":3,"file":"node_emitter.js","sourceRoot":"","sources":["../../../../../packages/compiler-cli/src/transformers/node_emitter.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH,8CAAmpB;AACnpB,+BAAiC;AAIjC,IAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,IAAM,gBAAgB,GAAG,OAAO,CAAC;AACjC,IAAM,gBAAgB,GAAG,OAAO,CAAC;AACjC,IAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAErD;IAAA;IAgCA,CAAC;IA/BC,gDAAgB,GAAhB,UAAiB,UAAyB,EAAE,KAAkB,EAAE,QAAiB;QAE/E,IAAM,SAAS,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC5C,2FAA2F;QAC3F,SAAS;QACT,IAAM,UAAU,GAAU,EAAE,CAAC,MAAM,OAAT,EAAE,EACrB,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,EAApC,CAAoC,CAAC,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,IAAI,IAAI,EAAZ,CAAY,CAAC,CAAC,CAAC;QAC7F,IAAM,aAAa,GAAmB,EAAE,CAAC;QACzC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACb,IAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACtE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC;QACD,IAAM,eAAe,GACb,aAAa,QAAK,SAAS,CAAC,YAAY,EAAE,EAAK,SAAS,CAAC,UAAU,EAAE,EAAK,UAAU,CAAC,CAAC;QAC9F,SAAS,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAM,aAAa,GAAG,EAAE,CAAC,oBAAoB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAC3E,MAAM,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,oEAAoE;IACpE,sDAAsB,GAAtB,UAAuB,UAAyB,EAAE,OAAe;QAC/D,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,IAAM,WAAW,GAAG,EAAE,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;QAC7D,EAAE,CAAC,2BAA2B,CAC1B,WAAW,EACX,CAAC,EAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,sBAAsB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QACrF,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC1D,MAAM,CAAC,WAAW,CAAC;IACrB,CAAC;IACH,4BAAC;AAAD,CAAC,AAhCD,IAgCC;AAhCY,sDAAqB;AAuClC,uBAAuB,KAAU;IAC/B,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;IACzB,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;GAEG;AACH;IAAA;QACU,aAAQ,GAAG,IAAI,GAAG,EAAiB,CAAC;QACpC,yBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACjD,eAAU,GAAG,IAAI,GAAG,EAAwC,CAAC;QAC7D,qBAAgB,GAAG,IAAI,GAAG,EAAuC,CAAC;IAyc5E,CAAC;IAvcC,0CAAY,GAAZ;QACE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;aACvC,GAAG,CACA,UAAC,EAA6B;gBAA5B,wBAAgB,EAAE,iBAAS;YAAM,OAAA,EAAE,CAAC,uBAAuB;YACzD,gBAAgB,CAAC,SAAS;YAC1B,eAAe,CAAC,SAAS,EAAE,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAC/B,UAAC,EAAU;oBAAT,cAAI,EAAE,UAAE;gBAAM,OAAA,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC;YAAlC,CAAkC,CAAC,CAAC;YACnF,qBAAqB,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAJvB,CAIuB,CAAC,CAAC;IACtE,CAAC;IAED,wCAAU,GAAV;QACE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;aACjD,GAAG,CACA,UAAC,EAAmB;gBAAlB,iBAAS,EAAE,cAAM;YAAM,OAAA,EAAE,CAAC,uBAAuB;YAC/C,gBAAgB,CAAC,SAAS;YAC1B,eAAe,CAAC,SAAS;YACzB,kBAAkB,CAAC,EAAE,CAAC,kBAAkB;YACpC,UAAU,CAAgB,SAAiB,EAC3C,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1D,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAN1B,CAM0B,CAAC,CAAC;IAC/D,CAAC;IAED,wCAAU,GAAV,cAAe,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEtC,6CAAe,GAAf,UAAgB,UAA0B;QAA1C,iBAsCC;QArCC,IAAI,kBAAkB,GAAsB,SAAS,CAAC;QACtD,IAAI,gBAAgB,GAAsB,SAAS,CAAC;QACpD,IAAI,SAAS,GAAgC,SAAS,CAAC;QAEvD,IAAM,qBAAqB,GAAG;YAC5B,EAAE,CAAC,CAAC,SAAS,IAAI,kBAAkB,IAAI,gBAAgB,CAAC,CAAC,CAAC;gBACxD,EAAE,CAAC,CAAC,kBAAkB,IAAI,gBAAgB,CAAC,CAAC,CAAC;oBAC3C,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;gBACpD,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,EAAE,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;oBACpD,6DAA6D;oBAC7D,EAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;oBACtE,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;oBAClD,6DAA6D;oBAC7D,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,IAAM,SAAS,GAAG,UAAC,MAAe;YAChC,IAAM,MAAM,GAAG,KAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACX,IAAM,KAAK,GAAG,KAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACzC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACV,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG;wBAC5E,KAAK,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC/B,qBAAqB,EAAE,CAAC;wBACxB,kBAAkB,GAAG,MAAM,CAAC;wBAC5B,SAAS,GAAG,KAAK,CAAC;oBACpB,CAAC;oBACD,gBAAgB,GAAG,MAAM,CAAC;gBAC5B,CAAC;YACH,CAAC;YACD,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACrC,CAAC,CAAC;QACF,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9B,qBAAqB,EAAE,CAAC;IAC1B,CAAC;IAEO,oCAAM,GAAd,UAAkC,MAAY,EAAE,MAAc;QAC5D,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,CAAC,MAAyB,CAAC;IACnC,CAAC;IAEO,2CAAa,GAArB,UAAsB,IAAU;QAC9B,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YACpB,IAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7B,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACrC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC7B,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBACb,IAAI,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC7C,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;wBACZ,MAAM,GAAG,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,UAAA,GAAG,IAAI,OAAA,GAAG,EAAH,CAAG,CAAC,CAAC;wBACtE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAC1C,CAAC;oBACD,MAAM,CAAC,EAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,QAAA,EAAC,CAAC;gBAChE,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAEO,0CAAY,GAApB,UAAqB,IAAe;QAClC,IAAI,SAAS,GAAkB,EAAE,CAAC;QAClC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5C,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,CAAC,SAAS,CAAC;IACnB,CAAC;IAED,mBAAmB;IACnB,iDAAmB,GAAnB,UAAoB,IAAoB;QACtC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAY,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,YAAY,uBAAY;YAC7E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACf,uBAAuB;YACjB,IAAA,qBAAqC,EAApC,gBAAI,EAAE,0BAAU,CAAqB;YAC5C,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;gBACf,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAChD,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACf,SAAS,GAAG,EAAE,CAAC;oBACf,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBAC7C,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC;gBAC9C,MAAM,CAAC,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,IAAM,WAAW,GAAG,EAAE,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,yBAAyB,CAC9E,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,UAAU,CAAC,SAAS,EACpB,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;QAE3E,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5C,2EAA2E;YAC3E,yDAAyD;YACzD,IAAM,SAAS,GACX,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,eAAe,CAAA,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;YAClF,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAC1B,IAAI,EAAE,EAAE,CAAC,uBAAuB;YACtB,cAAc,CAAC,SAAS,EAAE,aAAa,CAAC,SAAS,EACjD,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxF,MAAM,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,sDAAwB,GAAxB,UAAyB,IAAyB,EAAE,OAAY;QAC9D,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EAAE,EAAE,CAAC,yBAAyB;QACxB,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QACnD,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,SAAS,EACxE,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,UAAA,CAAC,IAAI,OAAA,EAAE,CAAC,eAAe;QACnB,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC,SAAS;QACrD,oBAAoB,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAFtC,CAEsC,CAAC;QAChD,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,iDAAmB,GAAnB,UAAoB,IAAyB;QAC3C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,6CAAe,GAAf,UAAgB,IAAqB;QACnC,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,mDAAqB,GAArB,UAAsB,IAAe;QAArC,iBA4CC;QA3CC,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAC1B,UAAA,KAAK,IAAI,OAAA,EAAE,CAAC,cAAc;QACtB,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI;QACjE,mBAAmB,CAAC,SAAS;QAC7B,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,EAHjC,CAGiC,CAAC,CAAC;QAChD,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAC5B,UAAA,MAAM,IAAI,OAAA,EAAE,CAAC,iBAAiB;QAC1B,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAA,EAAE;QACtF,UAAU,CAAC,SAAS,EAAE,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAFnD,CAEmD,CAAC,CAAC;QAEnE,IAAM,WAAW,GACb,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,EAAE,CAAC,iBAAiB;YACjB,gBAAgB,CAAC,SAAS;YAC1B,eAAe,CAAC,SAAS;YACzB,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAC9C,UAAA,CAAC,IAAI,OAAA,EAAE,CAAC,eAAe;YACnB,gBAAgB,CAAC,SAAS;YAC1B,eAAe,CAAC,SAAS;YACzB,oBAAoB,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAHtC,CAGsC,CAAC,EAChD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpF,EAAE,CAAC;QAEP,8EAA8E;QAC9E,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,IAAI,EAAX,CAAW,CAAC;aACrC,GAAG,CACA,UAAA,MAAM,IAAI,OAAA,EAAE,CAAC,YAAY;QACrB,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC,SAAS;QACrD,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,IAAM,CAAA,uBAAuB;QAClE,mBAAmB,CAAC,SAAS,EAAE,oBAAoB,CAAC,SAAS,EAC7D,MAAM,CAAC,MAAM,CAAC,GAAG,CACb,UAAA,CAAC,IAAI,OAAA,EAAE,CAAC,eAAe;QACnB,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC,SAAS;QACrD,oBAAoB,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAFtC,CAEsC,CAAC;QAChD,UAAU,CAAC,SAAS,EAAE,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EARnD,CAQmD,CAAC,CAAC;QACvF,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EAAE,EAAE,CAAC,sBAAsB;QACrB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,SAAS,EAC/E,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,oBAAoB,CACpB,EAAE,CAAC,UAAU,CAAC,cAAc,EAC5B,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1D,EAAE,EACF,MAAM,QAAK,OAAO,EAAK,WAAW,EAAK,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,yCAAW,GAAX,UAAY,IAAY;QACtB,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EACJ,EAAE,CAAC,QAAQ,CACP,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAChF,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC5E,SAAS,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,+CAAiB,GAAjB,UAAkB,IAAkB;QAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EAAE,EAAE,CAAC,SAAS,CACR,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EACrC,EAAE,CAAC,iBAAiB,CAChB,gBAAgB,EAAE,IAAI,CAAC,sBAAsB,CACvB,CAAC,EAAE,CAAC,uBAAuB;YACvB,eAAe,CAAC,SAAS,EACzB,CAAC,EAAE,CAAC,yBAAyB,CACzB,gBAAgB,EAAE,UAAU,CAAC,SAAS,EACtC,EAAE,CAAC,oBAAoB,CACnB,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EACrC,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACtD,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,4CAAc,GAAd,UAAe,IAAe;QAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,8CAAgB,GAAhB,UAAiB,IAAiB,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpD,oBAAoB;IACpB,8CAAgB,GAAhB,UAAiB,IAAiB;QAChC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACrB,KAAK,qBAAU,CAAC,IAAI;gBAClB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAClE,KAAK,qBAAU,CAAC,UAAU;gBACxB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAClE,KAAK,qBAAU,CAAC,UAAU;gBACxB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAClE,KAAK,qBAAU,CAAC,KAAK;gBACnB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC7C,CAAC;IAED,+CAAiB,GAAjB,UAAkB,IAAkB;QAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EAAE,EAAE,CAAC,gBAAgB,CACf,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,+CAAiB,GAAjB,UAAkB,IAAkB;QAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EACJ,EAAE,CAAC,gBAAgB,CACf,EAAE,CAAC,mBAAmB,CAClB,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EACtF,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,gDAAkB,GAAlB,UAAmB,IAAmB;QACpC,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EAAE,EAAE,CAAC,gBAAgB,CACf,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAC7E,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,mDAAqB,GAArB,UAAsB,IAAsB;QAA5C,iBAOC;QANC,IAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EACJ,EAAE,CAAC,UAAU,CACT,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC;QAC9E,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,eAAe,CAAC,KAAI,EAAE,IAAI,CAAC,EAA/B,CAA+B,CAAC,CAAC,CAAC,CAAC;IACjG,CAAC;IAED,qDAAuB,GAAvB,UAAwB,IAAwB;QAAhD,iBAKC;QAJC,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EAAE,EAAE,CAAC,UAAU,CACT,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,mBAAmB,CAAC,SAAS,EAClE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,eAAe,CAAC,KAAI,EAAE,IAAI,CAAC,EAA/B,CAA+B,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,kDAAoB,GAApB,UAAqB,IAAqB;QAA1C,iBAKC;QAJC,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EAAE,EAAE,CAAC,SAAS,CACR,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,mBAAmB,CAAC,SAAS,EACzE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,eAAe,CAAC,KAAI,EAAE,IAAI,CAAC,EAA/B,CAA+B,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,8CAAgB,GAAhB,UAAiB,IAAiB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5F,+CAAiB,GAAjB,UAAkB,IAAkB;QAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,kDAAoB,GAApB,UAAqB,IAAqB;QACxC,0EAA0E;QAC1E,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EACJ,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,iBAAiB,CAC/B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EACrF,IAAI,CAAC,SAAW,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,0CAAY,GAAZ,UAAa,IAAa;QACxB,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EAAE,EAAE,CAAC,YAAY,CACX,EAAE,CAAC,UAAU,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,oDAAsB,GAAtB,UAAuB,IAAmB;QACxC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,2CAAa,GAAb,UAAc,IAAc;QAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,+CAAiB,GAAjB,UAAkB,IAAkB;QAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EAAE,EAAE,CAAC,wBAAwB;QACvB,eAAe,CAAC,SAAS,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS;QAC7E,oBAAoB,CAAC,SAAS,EAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,UAAA,CAAC,IAAI,OAAA,EAAE,CAAC,eAAe;QACnB,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC,SAAS;QACrD,oBAAoB,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAFtC,CAEsC,CAAC;QAChD,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,qDAAuB,GAAvB,UAAwB,IAAwB;QAC9C,IAAI,cAAiC,CAAC;QACtC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtB,KAAK,yBAAc,CAAC,GAAG;gBACrB,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC;gBACvD,KAAK,CAAC;YACR,KAAK,yBAAc,CAAC,MAAM;gBACxB,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC;gBAChD,KAAK,CAAC;YACR,KAAK,yBAAc,CAAC,YAAY;gBAC9B,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,sBAAsB,CAAC;gBACtD,KAAK,CAAC;YACR,KAAK,yBAAc,CAAC,MAAM;gBACxB,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gBAC1C,KAAK,CAAC;YACR,KAAK,yBAAc,CAAC,MAAM;gBACxB,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC;gBACjD,KAAK,CAAC;YACR,KAAK,yBAAc,CAAC,SAAS;gBAC3B,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC;gBACvD,KAAK,CAAC;YACR,KAAK,yBAAc,CAAC,KAAK;gBACvB,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;gBAC7C,KAAK,CAAC;YACR,KAAK,yBAAc,CAAC,WAAW;gBAC7B,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC;gBACnD,KAAK,CAAC;YACR,KAAK,yBAAc,CAAC,KAAK;gBACvB,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gBAC1C,KAAK,CAAC;YACR,KAAK,yBAAc,CAAC,MAAM;gBACxB,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC5C,KAAK,CAAC;YACR,KAAK,yBAAc,CAAC,QAAQ;gBAC1B,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;gBAC7C,KAAK,CAAC;YACR,KAAK,yBAAc,CAAC,SAAS;gBAC3B,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,sBAAsB,CAAC;gBACtD,KAAK,CAAC;YACR,KAAK,yBAAc,CAAC,YAAY;gBAC9B,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,4BAA4B,CAAC;gBAC5D,KAAK,CAAC;YACR,KAAK,yBAAc,CAAC,EAAE;gBACpB,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;gBAC3C,KAAK,CAAC;YACR,KAAK,yBAAc,CAAC,IAAI;gBACtB,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;gBACzC,KAAK,CAAC;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,uBAAqB,IAAI,CAAC,QAAU,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,YAAY,CAC1B,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,cAAc,EACpD,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,+CAAiB,GAAjB,UAAkB,IAAkB;QAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,8CAAgB,GAAhB,UAAiB,IAAiB;QAChC,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EACJ,EAAE,CAAC,mBAAmB,CAClB,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,mDAAqB,GAArB,UAAsB,IAAsB;QAA5C,iBAGC;QAFC,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,eAAe,CAAC,KAAI,EAAE,IAAI,CAAC,EAAjC,CAAiC,CAAC,CAAC,CAAC,CAAC;IACjG,CAAC;IAED,iDAAmB,GAAnB,UAAoB,IAAoB;QAAxC,iBAQC;QAPC,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CACnC,UAAA,KAAK,IAAI,OAAA,EAAE,CAAC,wBAAwB,CAChC,KAAK,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACnD,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7B,KAAK,CAAC,GAAG,EACb,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,KAAI,EAAE,IAAI,CAAC,CAAC,EAJnC,CAImC,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,4CAAc,GAAd,UAAe,IAAe;QAA9B,iBAOC;QANC,MAAM,CAAC,IAAI,CAAC,MAAM,CACd,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,eAAe,CAAC,KAAI,EAAE,IAAI,CAAC,EAA7B,CAA6B,CAAC;aAC7C,MAAM,CACH,UAAC,IAAI,EAAE,KAAK;YACR,OAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;QAArE,CAAqE,EACzE,IAAI,CAAC,CAAC,CAAC;IAC3B,CAAC;IAEO,8CAAgB,GAAxB,UAAyB,UAAuB;QAC9C,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC;IAEO,oDAAsB,GAA9B,UAA+B,MAAsB,EAAE,UAAuB;QAA9E,iBAIC;QAHC,MAAM,CAAC,EAAE,CAAC,WAAW,CAChB,MAAM,QAAK,UAAU,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,cAAc,CAAC,KAAI,EAAE,IAAI,CAAC,EAA/B,CAA+B,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,IAAI,IAAI,EAAT,CAAS,CAAC,EAC5F,CAAC;IACL,CAAC;IAEO,8CAAgB,GAAxB,UAAyB,KAAwB;QACxC,IAAA,iBAAI,EAAE,6BAAU,CAAU;QACjC,IAAI,WAAW,GAAuB,IAAI,CAAC;QAC3C,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACf,IAAI,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACvD,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;gBACnB,MAAM,GAAG,MAAI,IAAI,CAAC,oBAAoB,CAAC,IAAM,CAAC;gBAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACpD,CAAC;YACD,WAAW,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;QACD,mEAAmE;QACnE,IAAI,MAAM,GACN,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,WAAW,EAAE,IAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAM,CAAC,CAAC;QAC7F,MAAM,CAAC,MAAM,CAAC;IAChB,CAAC;IACH,0BAAC;AAAD,CAAC,AA7cD,IA6cC;AAGD,uBAAuB,SAA+D;IACpF,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;IACxB,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1B,KAAK,wBAAa,CAAC,IAAI;gBACrB,MAAM,CAAC,MAAM,CAAC;YAChB,KAAK,wBAAa,CAAC,WAAW;gBAC5B,MAAM,CAAC,QAAQ,CAAC;YAClB,KAAK,wBAAa,CAAC,mBAAmB;gBACpC,MAAM,CAAC,WAAW,CAAC;QACvB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;AACtD,CAAC","sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {AssertNotNull, BinaryOperator, BinaryOperatorExpr, BuiltinMethod, BuiltinVar, CastExpr, ClassStmt, CommaExpr, CommentStmt, CompileIdentifierMetadata, ConditionalExpr, DeclareFunctionStmt, DeclareVarStmt, ExpressionStatement, ExpressionVisitor, ExternalExpr, ExternalReference, FunctionExpr, IfStmt, InstantiateExpr, InvokeFunctionExpr, InvokeMethodExpr, LiteralArrayExpr, LiteralExpr, LiteralMapExpr, NotExpr, ParseSourceFile, ParseSourceSpan, ReadKeyExpr, ReadPropExpr, ReadVarExpr, ReturnStatement, Statement, StatementVisitor, StaticSymbol, StmtModifier, ThrowStmt, TryCatchStmt, WriteKeyExpr, WritePropExpr, WriteVarExpr} from '@angular/compiler';\nimport * as ts from 'typescript';\n\nexport interface Node { sourceSpan: ParseSourceSpan|null; }\n\nconst METHOD_THIS_NAME = 'this';\nconst CATCH_ERROR_NAME = 'error';\nconst CATCH_STACK_NAME = 'stack';\nconst _VALID_IDENTIFIER_RE = /^[$A-Z_][0-9A-Z_$]*$/i;\n\nexport class TypeScriptNodeEmitter {\n updateSourceFile(sourceFile: ts.SourceFile, stmts: Statement[], preamble?: string):\n [ts.SourceFile, Map<ts.Node, Node>] {\n const converter = new _NodeEmitterVisitor();\n // [].concat flattens the result so that each `visit...` method can also return an array of\n // stmts.\n const statements: any[] = [].concat(\n ...stmts.map(stmt => stmt.visitStatement(converter, null)).filter(stmt => stmt != null));\n const preambleStmts: ts.Statement[] = [];\n if (preamble) {\n const commentStmt = this.createCommentStatement(sourceFile, preamble);\n preambleStmts.push(commentStmt);\n }\n const sourceStatments =\n [...preambleStmts, ...converter.getReexports(), ...converter.getImports(), ...statements];\n converter.updateSourceMap(sourceStatments);\n const newSourceFile = ts.updateSourceFileNode(sourceFile, sourceStatments);\n return [newSourceFile, converter.getNodeMap()];\n }\n\n /** Creates a not emitted statement containing the given comment. */\n createCommentStatement(sourceFile: ts.SourceFile, comment: string): ts.Statement {\n if (comment.startsWith('/*') && comment.endsWith('*/')) {\n comment = comment.substr(2, comment.length - 4);\n }\n const commentStmt = ts.createNotEmittedStatement(sourceFile);\n ts.setSyntheticLeadingComments(\n commentStmt,\n [{kind: ts.SyntaxKind.MultiLineCommentTrivia, text: comment, pos: -1, end: -1}]);\n ts.setEmitFlags(commentStmt, ts.EmitFlags.CustomPrologue);\n return commentStmt;\n }\n}\n\n// A recorded node is a subtype of the node that is marked as being recoreded. This is used\n// to ensure that NodeEmitterVisitor.record has been called on all nodes returned by the\n// NodeEmitterVisitor\ntype RecordedNode<T extends ts.Node = ts.Node> = (T & { __recorded: any; }) | null;\n\nfunction createLiteral(value: any) {\n if (value === null) {\n return ts.createNull();\n } else if (value === undefined) {\n return ts.createIdentifier('undefined');\n } else {\n return ts.createLiteral(value);\n }\n}\n\n/**\n * Visits an output ast and produces the corresponding TypeScript synthetic nodes.\n */\nclass _NodeEmitterVisitor implements StatementVisitor, ExpressionVisitor {\n private _nodeMap = new Map<ts.Node, Node>();\n private _importsWithPrefixes = new Map<string, string>();\n private _reexports = new Map<string, {name: string, as: string}[]>();\n private _templateSources = new Map<ParseSourceFile, ts.SourceMapSource>();\n\n getReexports(): ts.Statement[] {\n return Array.from(this._reexports.entries())\n .map(\n ([exportedFilePath, reexports]) => ts.createExportDeclaration(\n /* decorators */ undefined,\n /* modifiers */ undefined, ts.createNamedExports(reexports.map(\n ({name, as}) => ts.createExportSpecifier(name, as))),\n /* moduleSpecifier */ createLiteral(exportedFilePath)));\n }\n\n getImports(): ts.Statement[] {\n return Array.from(this._importsWithPrefixes.entries())\n .map(\n ([namespace, prefix]) => ts.createImportDeclaration(\n /* decorators */ undefined,\n /* modifiers */ undefined,\n /* importClause */ ts.createImportClause(\n /* name */<ts.Identifier>(undefined as any),\n ts.createNamespaceImport(ts.createIdentifier(prefix))),\n /* moduleSpecifier */ createLiteral(namespace)));\n }\n\n getNodeMap() { return this._nodeMap; }\n\n updateSourceMap(statements: ts.Statement[]) {\n let lastRangeStartNode: ts.Node|undefined = undefined;\n let lastRangeEndNode: ts.Node|undefined = undefined;\n let lastRange: ts.SourceMapRange|undefined = undefined;\n\n const recordLastSourceRange = () => {\n if (lastRange && lastRangeStartNode && lastRangeEndNode) {\n if (lastRangeStartNode == lastRangeEndNode) {\n ts.setSourceMapRange(lastRangeEndNode, lastRange);\n } else {\n ts.setSourceMapRange(lastRangeStartNode, lastRange);\n // Only emit the pos for the first node emitted in the range.\n ts.setEmitFlags(lastRangeStartNode, ts.EmitFlags.NoTrailingSourceMap);\n ts.setSourceMapRange(lastRangeEndNode, lastRange);\n // Only emit emit end for the last node emitted in the range.\n ts.setEmitFlags(lastRangeEndNode, ts.EmitFlags.NoLeadingSourceMap);\n }\n }\n };\n\n const visitNode = (tsNode: ts.Node) => {\n const ngNode = this._nodeMap.get(tsNode);\n if (ngNode) {\n const range = this.sourceRangeOf(ngNode);\n if (range) {\n if (!lastRange || range.source != lastRange.source || range.pos != lastRange.pos ||\n range.end != lastRange.end) {\n recordLastSourceRange();\n lastRangeStartNode = tsNode;\n lastRange = range;\n }\n lastRangeEndNode = tsNode;\n }\n }\n ts.forEachChild(tsNode, visitNode);\n };\n statements.forEach(visitNode);\n recordLastSourceRange();\n }\n\n private record<T extends ts.Node>(ngNode: Node, tsNode: T|null): RecordedNode<T> {\n if (tsNode && !this._nodeMap.has(tsNode)) {\n this._nodeMap.set(tsNode, ngNode);\n }\n return tsNode as RecordedNode<T>;\n }\n\n private sourceRangeOf(node: Node): ts.SourceMapRange|null {\n if (node.sourceSpan) {\n const span = node.sourceSpan;\n if (span.start.file == span.end.file) {\n const file = span.start.file;\n if (file.url) {\n let source = this._templateSources.get(file);\n if (!source) {\n source = ts.createSourceMapSource(file.url, file.content, pos => pos);\n this._templateSources.set(file, source);\n }\n return {pos: span.start.offset, end: span.end.offset, source};\n }\n }\n }\n return null;\n }\n\n private getModifiers(stmt: Statement) {\n let modifiers: ts.Modifier[] = [];\n if (stmt.hasModifier(StmtModifier.Exported)) {\n modifiers.push(ts.createToken(ts.SyntaxKind.ExportKeyword));\n }\n return modifiers;\n }\n\n // StatementVisitor\n visitDeclareVarStmt(stmt: DeclareVarStmt) {\n if (stmt.hasModifier(StmtModifier.Exported) && stmt.value instanceof ExternalExpr &&\n !stmt.type) {\n // check for a reexport\n const {name, moduleName} = stmt.value.value;\n if (moduleName) {\n let reexports = this._reexports.get(moduleName);\n if (!reexports) {\n reexports = [];\n this._reexports.set(moduleName, reexports);\n }\n reexports.push({name: name !, as: stmt.name});\n return null;\n }\n }\n\n const varDeclList = ts.createVariableDeclarationList([ts.createVariableDeclaration(\n ts.createIdentifier(stmt.name),\n /* type */ undefined,\n (stmt.value && stmt.value.visitExpression(this, null)) || undefined)]);\n\n if (stmt.hasModifier(StmtModifier.Exported)) {\n // Note: We need to add an explicit variable and export declaration so that\n // the variable can be referred in the same file as well.\n const tsVarStmt =\n this.record(stmt, ts.createVariableStatement(/* modifiers */[], varDeclList));\n const exportStmt = this.record(\n stmt, ts.createExportDeclaration(\n /*decorators*/ undefined, /*modifiers*/ undefined,\n ts.createNamedExports([ts.createExportSpecifier(stmt.name, stmt.name)])));\n return [tsVarStmt, exportStmt];\n }\n return this.record(stmt, ts.createVariableStatement(this.getModifiers(stmt), varDeclList));\n }\n\n visitDeclareFunctionStmt(stmt: DeclareFunctionStmt, context: any) {\n return this.record(\n stmt, ts.createFunctionDeclaration(\n /* decorators */ undefined, this.getModifiers(stmt),\n /* asteriskToken */ undefined, stmt.name, /* typeParameters */ undefined,\n stmt.params.map(\n p => ts.createParameter(\n /* decorators */ undefined, /* modifiers */ undefined,\n /* dotDotDotToken */ undefined, p.name)),\n /* type */ undefined, this._visitStatements(stmt.statements)));\n }\n\n visitExpressionStmt(stmt: ExpressionStatement) {\n return this.record(stmt, ts.createStatement(stmt.expr.visitExpression(this, null)));\n }\n\n visitReturnStmt(stmt: ReturnStatement) {\n return this.record(\n stmt, ts.createReturn(stmt.value ? stmt.value.visitExpression(this, null) : undefined));\n }\n\n visitDeclareClassStmt(stmt: ClassStmt) {\n const modifiers = this.getModifiers(stmt);\n const fields = stmt.fields.map(\n field => ts.createProperty(\n /* decorators */ undefined, /* modifiers */ undefined, field.name,\n /* questionToken */ undefined,\n /* type */ undefined, ts.createNull()));\n const getters = stmt.getters.map(\n getter => ts.createGetAccessor(\n /* decorators */ undefined, /* modifiers */ undefined, getter.name, /* parameters */[],\n /* type */ undefined, this._visitStatements(getter.body)));\n\n const constructor =\n (stmt.constructorMethod && [ts.createConstructor(\n /* decorators */ undefined,\n /* modifiers */ undefined,\n /* parameters */ stmt.constructorMethod.params.map(\n p => ts.createParameter(\n /* decorators */ undefined,\n /* modifiers */ undefined,\n /* dotDotDotToken */ undefined, p.name)),\n this._visitStatements(stmt.constructorMethod.body))]) ||\n [];\n\n // TODO {chuckj}: Determine what should be done for a method with a null name.\n const methods = stmt.methods.filter(method => method.name)\n .map(\n method => ts.createMethod(\n /* decorators */ undefined, /* modifiers */ undefined,\n /* astriskToken */ undefined, method.name !/* guarded by filter */,\n /* questionToken */ undefined, /* typeParameters */ undefined,\n method.params.map(\n p => ts.createParameter(\n /* decorators */ undefined, /* modifiers */ undefined,\n /* dotDotDotToken */ undefined, p.name)),\n /* type */ undefined, this._visitStatements(method.body)));\n return this.record(\n stmt, ts.createClassDeclaration(\n /* decorators */ undefined, modifiers, stmt.name, /* typeParameters*/ undefined,\n stmt.parent && [ts.createHeritageClause(\n ts.SyntaxKind.ExtendsKeyword,\n [stmt.parent.visitExpression(this, null)])] ||\n [],\n [...fields, ...getters, ...constructor, ...methods]));\n }\n\n visitIfStmt(stmt: IfStmt) {\n return this.record(\n stmt,\n ts.createIf(\n stmt.condition.visitExpression(this, null), this._visitStatements(stmt.trueCase),\n stmt.falseCase && stmt.falseCase.length && this._visitStatements(stmt.falseCase) ||\n undefined));\n }\n\n visitTryCatchStmt(stmt: TryCatchStmt): RecordedNode<ts.TryStatement> {\n return this.record(\n stmt, ts.createTry(\n this._visitStatements(stmt.bodyStmts),\n ts.createCatchClause(\n CATCH_ERROR_NAME, this._visitStatementsPrefix(\n [ts.createVariableStatement(\n /* modifiers */ undefined,\n [ts.createVariableDeclaration(\n CATCH_STACK_NAME, /* type */ undefined,\n ts.createPropertyAccess(\n ts.createIdentifier(CATCH_ERROR_NAME),\n ts.createIdentifier(CATCH_STACK_NAME)))])],\n stmt.catchStmts)),\n /* finallyBlock */ undefined));\n }\n\n visitThrowStmt(stmt: ThrowStmt) {\n return this.record(stmt, ts.createThrow(stmt.error.visitExpression(this, null)));\n }\n\n visitCommentStmt(stmt: CommentStmt) { return null; }\n\n // ExpressionVisitor\n visitReadVarExpr(expr: ReadVarExpr) {\n switch (expr.builtin) {\n case BuiltinVar.This:\n return this.record(expr, ts.createIdentifier(METHOD_THIS_NAME));\n case BuiltinVar.CatchError:\n return this.record(expr, ts.createIdentifier(CATCH_ERROR_NAME));\n case BuiltinVar.CatchStack:\n return this.record(expr, ts.createIdentifier(CATCH_STACK_NAME));\n case BuiltinVar.Super:\n return this.record(expr, ts.createSuper());\n }\n if (expr.name) {\n return this.record(expr, ts.createIdentifier(expr.name));\n }\n throw Error(`Unexpected ReadVarExpr form`);\n }\n\n visitWriteVarExpr(expr: WriteVarExpr): RecordedNode<ts.BinaryExpression> {\n return this.record(\n expr, ts.createAssignment(\n ts.createIdentifier(expr.name), expr.value.visitExpression(this, null)));\n }\n\n visitWriteKeyExpr(expr: WriteKeyExpr): RecordedNode<ts.BinaryExpression> {\n return this.record(\n expr,\n ts.createAssignment(\n ts.createElementAccess(\n expr.receiver.visitExpression(this, null), expr.index.visitExpression(this, null)),\n expr.value.visitExpression(this, null)));\n }\n\n visitWritePropExpr(expr: WritePropExpr): RecordedNode<ts.BinaryExpression> {\n return this.record(\n expr, ts.createAssignment(\n ts.createPropertyAccess(expr.receiver.visitExpression(this, null), expr.name),\n expr.value.visitExpression(this, null)));\n }\n\n visitInvokeMethodExpr(expr: InvokeMethodExpr): RecordedNode<ts.CallExpression> {\n const methodName = getMethodName(expr);\n return this.record(\n expr,\n ts.createCall(\n ts.createPropertyAccess(expr.receiver.visitExpression(this, null), methodName),\n /* typeArguments */ undefined, expr.args.map(arg => arg.visitExpression(this, null))));\n }\n\n visitInvokeFunctionExpr(expr: InvokeFunctionExpr): RecordedNode<ts.CallExpression> {\n return this.record(\n expr, ts.createCall(\n expr.fn.visitExpression(this, null), /* typeArguments */ undefined,\n expr.args.map(arg => arg.visitExpression(this, null))));\n }\n\n visitInstantiateExpr(expr: InstantiateExpr): RecordedNode<ts.NewExpression> {\n return this.record(\n expr, ts.createNew(\n expr.classExpr.visitExpression(this, null), /* typeArguments */ undefined,\n expr.args.map(arg => arg.visitExpression(this, null))));\n }\n\n visitLiteralExpr(expr: LiteralExpr) { return this.record(expr, createLiteral(expr.value)); }\n\n visitExternalExpr(expr: ExternalExpr) {\n return this.record(expr, this._visitIdentifier(expr.value));\n }\n\n visitConditionalExpr(expr: ConditionalExpr): RecordedNode<ts.ParenthesizedExpression> {\n // TODO {chuckj}: Review use of ! on falseCase. Should it be non-nullable?\n return this.record(\n expr,\n ts.createParen(ts.createConditional(\n expr.condition.visitExpression(this, null), expr.trueCase.visitExpression(this, null),\n expr.falseCase !.visitExpression(this, null))));\n }\n\n visitNotExpr(expr: NotExpr): RecordedNode<ts.PrefixUnaryExpression> {\n return this.record(\n expr, ts.createPrefix(\n ts.SyntaxKind.ExclamationToken, expr.condition.visitExpression(this, null)));\n }\n\n visitAssertNotNullExpr(expr: AssertNotNull): RecordedNode<ts.Expression> {\n return expr.condition.visitExpression(this, null);\n }\n\n visitCastExpr(expr: CastExpr): RecordedNode<ts.Expression> {\n return expr.value.visitExpression(this, null);\n }\n\n visitFunctionExpr(expr: FunctionExpr) {\n return this.record(\n expr, ts.createFunctionExpression(\n /* modifiers */ undefined, /* astriskToken */ undefined, /* name */ undefined,\n /* typeParameters */ undefined,\n expr.params.map(\n p => ts.createParameter(\n /* decorators */ undefined, /* modifiers */ undefined,\n /* dotDotDotToken */ undefined, p.name)),\n /* type */ undefined, this._visitStatements(expr.statements)));\n }\n\n visitBinaryOperatorExpr(expr: BinaryOperatorExpr): RecordedNode<ts.ParenthesizedExpression> {\n let binaryOperator: ts.BinaryOperator;\n switch (expr.operator) {\n case BinaryOperator.And:\n binaryOperator = ts.SyntaxKind.AmpersandAmpersandToken;\n break;\n case BinaryOperator.Bigger:\n binaryOperator = ts.SyntaxKind.GreaterThanToken;\n break;\n case BinaryOperator.BiggerEquals:\n binaryOperator = ts.SyntaxKind.GreaterThanEqualsToken;\n break;\n case BinaryOperator.Divide:\n binaryOperator = ts.SyntaxKind.SlashToken;\n break;\n case BinaryOperator.Equals:\n binaryOperator = ts.SyntaxKind.EqualsEqualsToken;\n break;\n case BinaryOperator.Identical:\n binaryOperator = ts.SyntaxKind.EqualsEqualsEqualsToken;\n break;\n case BinaryOperator.Lower:\n binaryOperator = ts.SyntaxKind.LessThanToken;\n break;\n case BinaryOperator.LowerEquals:\n binaryOperator = ts.SyntaxKind.LessThanEqualsToken;\n break;\n case BinaryOperator.Minus:\n binaryOperator = ts.SyntaxKind.MinusToken;\n break;\n case BinaryOperator.Modulo:\n binaryOperator = ts.SyntaxKind.PercentToken;\n break;\n case BinaryOperator.Multiply:\n binaryOperator = ts.SyntaxKind.AsteriskToken;\n break;\n case BinaryOperator.NotEquals:\n binaryOperator = ts.SyntaxKind.ExclamationEqualsToken;\n break;\n case BinaryOperator.NotIdentical:\n binaryOperator = ts.SyntaxKind.ExclamationEqualsEqualsToken;\n break;\n case BinaryOperator.Or:\n binaryOperator = ts.SyntaxKind.BarBarToken;\n break;\n case BinaryOperator.Plus:\n binaryOperator = ts.SyntaxKind.PlusToken;\n break;\n default:\n throw new Error(`Unknown operator: ${expr.operator}`);\n }\n return this.record(\n expr, ts.createParen(ts.createBinary(\n expr.lhs.visitExpression(this, null), binaryOperator,\n expr.rhs.visitExpression(this, null))));\n }\n\n visitReadPropExpr(expr: ReadPropExpr): RecordedNode<ts.PropertyAccessExpression> {\n return this.record(\n expr, ts.createPropertyAccess(expr.receiver.visitExpression(this, null), expr.name));\n }\n\n visitReadKeyExpr(expr: ReadKeyExpr): RecordedNode<ts.ElementAccessExpression> {\n return this.record(\n expr,\n ts.createElementAccess(\n expr.receiver.visitExpression(this, null), expr.index.visitExpression(this, null)));\n }\n\n visitLiteralArrayExpr(expr: LiteralArrayExpr): RecordedNode<ts.ArrayLiteralExpression> {\n return this.record(\n expr, ts.createArrayLiteral(expr.entries.map(entry => entry.visitExpression(this, null))));\n }\n\n visitLiteralMapExpr(expr: LiteralMapExpr): RecordedNode<ts.ObjectLiteralExpression> {\n return this.record(\n expr, ts.createObjectLiteral(expr.entries.map(\n entry => ts.createPropertyAssignment(\n entry.quoted || !_VALID_IDENTIFIER_RE.test(entry.key) ?\n ts.createLiteral(entry.key) :\n entry.key,\n entry.value.visitExpression(this, null)))));\n }\n\n visitCommaExpr(expr: CommaExpr): RecordedNode<ts.Expression> {\n return this.record(\n expr, expr.parts.map(e => e.visitExpression(this, null))\n .reduce<ts.Expression|null>(\n (left, right) =>\n left ? ts.createBinary(left, ts.SyntaxKind.CommaToken, right) : right,\n null));\n }\n\n private _visitStatements(statements: Statement[]): ts.Block {\n return this._visitStatementsPrefix([], statements);\n }\n\n private _visitStatementsPrefix(prefix: ts.Statement[], statements: Statement[]) {\n return ts.createBlock([\n ...prefix, ...statements.map(stmt => stmt.visitStatement(this, null)).filter(f => f != null)\n ]);\n }\n\n private _visitIdentifier(value: ExternalReference): ts.Expression {\n const {name, moduleName} = value;\n let prefixIdent: ts.Identifier|null = null;\n if (moduleName) {\n let prefix = this._importsWithPrefixes.get(moduleName);\n if (prefix == null) {\n prefix = `i${this._importsWithPrefixes.size}`;\n this._importsWithPrefixes.set(moduleName, prefix);\n }\n prefixIdent = ts.createIdentifier(prefix);\n }\n // name can only be null during JIT which never executes this code.\n let result: ts.Expression =\n prefixIdent ? ts.createPropertyAccess(prefixIdent, name !) : ts.createIdentifier(name !);\n return result;\n }\n}\n\n\nfunction getMethodName(methodRef: {name: string | null; builtin: BuiltinMethod | null}): string {\n if (methodRef.name) {\n return methodRef.name;\n } else {\n switch (methodRef.builtin) {\n case BuiltinMethod.Bind:\n return 'bind';\n case BuiltinMethod.ConcatArray:\n return 'concat';\n case BuiltinMethod.SubscribeObservable:\n return 'subscribe';\n }\n }\n throw new Error('Unexpected method reference form');\n}\n"]}
{"version":3,"file":"node_emitter.js","sourceRoot":"","sources":["../../../../../packages/compiler-cli/src/transformers/node_emitter.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {AssertNotNull, BinaryOperator, BinaryOperatorExpr, BuiltinMethod, BuiltinVar, CastExpr, ClassStmt, CommaExpr, CommentStmt, CompileIdentifierMetadata, ConditionalExpr, DeclareFunctionStmt, DeclareVarStmt, ExpressionStatement, ExpressionVisitor, ExternalExpr, ExternalReference, FunctionExpr, IfStmt, InstantiateExpr, InvokeFunctionExpr, InvokeMethodExpr, LiteralArrayExpr, LiteralExpr, LiteralMapExpr, NotExpr, ParseSourceFile, ParseSourceSpan, ReadKeyExpr, ReadPropExpr, ReadVarExpr, ReturnStatement, Statement, StatementVisitor, StaticSymbol, StmtModifier, ThrowStmt, TryCatchStmt, WriteKeyExpr, WritePropExpr, WriteVarExpr} from '@angular/compiler';\nimport * as ts from 'typescript';\n\nexport interface Node { sourceSpan: ParseSourceSpan|null; }\n\nconst METHOD_THIS_NAME = 'this';\nconst CATCH_ERROR_NAME = 'error';\nconst CATCH_STACK_NAME = 'stack';\nconst _VALID_IDENTIFIER_RE = /^[$A-Z_][0-9A-Z_$]*$/i;\n\nexport class TypeScriptNodeEmitter {\n updateSourceFile(sourceFile: ts.SourceFile, stmts: Statement[], preamble?: string):\n [ts.SourceFile, Map<ts.Node, Node>] {\n const converter = new _NodeEmitterVisitor();\n // [].concat flattens the result so that each `visit...` method can also return an array of\n // stmts.\n const statements: any[] = [].concat(\n ...stmts.map(stmt => stmt.visitStatement(converter, null)).filter(stmt => stmt != null));\n const preambleStmts: ts.Statement[] = [];\n if (preamble) {\n const commentStmt = this.createCommentStatement(sourceFile, preamble);\n preambleStmts.push(commentStmt);\n }\n const sourceStatments =\n [...preambleStmts, ...converter.getReexports(), ...converter.getImports(), ...statements];\n converter.updateSourceMap(sourceStatments);\n const newSourceFile = ts.updateSourceFileNode(sourceFile, sourceStatments);\n return [newSourceFile, converter.getNodeMap()];\n }\n\n /** Creates a not emitted statement containing the given comment. */\n createCommentStatement(sourceFile: ts.SourceFile, comment: string): ts.Statement {\n if (comment.startsWith('/*') && comment.endsWith('*/')) {\n comment = comment.substr(2, comment.length - 4);\n }\n const commentStmt = ts.createNotEmittedStatement(sourceFile);\n ts.setSyntheticLeadingComments(\n commentStmt,\n [{kind: ts.SyntaxKind.MultiLineCommentTrivia, text: comment, pos: -1, end: -1}]);\n ts.setEmitFlags(commentStmt, ts.EmitFlags.CustomPrologue);\n return commentStmt;\n }\n}\n\n// A recorded node is a subtype of the node that is marked as being recoreded. This is used\n// to ensure that NodeEmitterVisitor.record has been called on all nodes returned by the\n// NodeEmitterVisitor\ntype RecordedNode<T extends ts.Node = ts.Node> = (T & { __recorded: any; }) | null;\n\nfunction escapeLiteral(value: string): string {\n return value.replace(/(\\\"|\\\\)/g, '\\\\$1').replace(/(\\n)|(\\r)/g, function(v, n, r) {\n return n ? '\\\\n' : '\\\\r';\n });\n}\n\nfunction createLiteral(value: any) {\n if (value === null) {\n return ts.createNull();\n } else if (value === undefined) {\n return ts.createIdentifier('undefined');\n } else {\n const result = ts.createLiteral(value);\n if (ts.isStringLiteral(result) && result.text.indexOf('\\\\') >= 0) {\n // Hack to avoid problems cause indirectly by:\n // https://github.com/Microsoft/TypeScript/issues/20192\n // This avoids the string escaping normally performed for a string relying on that\n // TypeScript just emits the text raw for a numeric literal.\n (result as any).kind = ts.SyntaxKind.NumericLiteral;\n result.text = `\"${escapeLiteral(result.text)}\"`;\n }\n return result;\n }\n}\n\n/**\n * Visits an output ast and produces the corresponding TypeScript synthetic nodes.\n */\nclass _NodeEmitterVisitor implements StatementVisitor, ExpressionVisitor {\n private _nodeMap = new Map<ts.Node, Node>();\n private _importsWithPrefixes = new Map<string, string>();\n private _reexports = new Map<string, {name: string, as: string}[]>();\n private _templateSources = new Map<ParseSourceFile, ts.SourceMapSource>();\n\n getReexports(): ts.Statement[] {\n return Array.from(this._reexports.entries())\n .map(\n ([exportedFilePath, reexports]) => ts.createExportDeclaration(\n /* decorators */ undefined,\n /* modifiers */ undefined, ts.createNamedExports(reexports.map(\n ({name, as}) => ts.createExportSpecifier(name, as))),\n /* moduleSpecifier */ createLiteral(exportedFilePath)));\n }\n\n getImports(): ts.Statement[] {\n return Array.from(this._importsWithPrefixes.entries())\n .map(\n ([namespace, prefix]) => ts.createImportDeclaration(\n /* decorators */ undefined,\n /* modifiers */ undefined,\n /* importClause */ ts.createImportClause(\n /* name */<ts.Identifier>(undefined as any),\n ts.createNamespaceImport(ts.createIdentifier(prefix))),\n /* moduleSpecifier */ createLiteral(namespace)));\n }\n\n getNodeMap() { return this._nodeMap; }\n\n updateSourceMap(statements: ts.Statement[]) {\n let lastRangeStartNode: ts.Node|undefined = undefined;\n let lastRangeEndNode: ts.Node|undefined = undefined;\n let lastRange: ts.SourceMapRange|undefined = undefined;\n\n const recordLastSourceRange = () => {\n if (lastRange && lastRangeStartNode && lastRangeEndNode) {\n if (lastRangeStartNode == lastRangeEndNode) {\n ts.setSourceMapRange(lastRangeEndNode, lastRange);\n } else {\n ts.setSourceMapRange(lastRangeStartNode, lastRange);\n // Only emit the pos for the first node emitted in the range.\n ts.setEmitFlags(lastRangeStartNode, ts.EmitFlags.NoTrailingSourceMap);\n ts.setSourceMapRange(lastRangeEndNode, lastRange);\n // Only emit emit end for the last node emitted in the range.\n ts.setEmitFlags(lastRangeEndNode, ts.EmitFlags.NoLeadingSourceMap);\n }\n }\n };\n\n const visitNode = (tsNode: ts.Node) => {\n const ngNode = this._nodeMap.get(tsNode);\n if (ngNode) {\n const range = this.sourceRangeOf(ngNode);\n if (range) {\n if (!lastRange || range.source != lastRange.source || range.pos != lastRange.pos ||\n range.end != lastRange.end) {\n recordLastSourceRange();\n lastRangeStartNode = tsNode;\n lastRange = range;\n }\n lastRangeEndNode = tsNode;\n }\n }\n ts.forEachChild(tsNode, visitNode);\n };\n statements.forEach(visitNode);\n recordLastSourceRange();\n }\n\n private record<T extends ts.Node>(ngNode: Node, tsNode: T|null): RecordedNode<T> {\n if (tsNode && !this._nodeMap.has(tsNode)) {\n this._nodeMap.set(tsNode, ngNode);\n }\n return tsNode as RecordedNode<T>;\n }\n\n private sourceRangeOf(node: Node): ts.SourceMapRange|null {\n if (node.sourceSpan) {\n const span = node.sourceSpan;\n if (span.start.file == span.end.file) {\n const file = span.start.file;\n if (file.url) {\n let source = this._templateSources.get(file);\n if (!source) {\n source = ts.createSourceMapSource(file.url, file.content, pos => pos);\n this._templateSources.set(file, source);\n }\n return {pos: span.start.offset, end: span.end.offset, source};\n }\n }\n }\n return null;\n }\n\n private getModifiers(stmt: Statement) {\n let modifiers: ts.Modifier[] = [];\n if (stmt.hasModifier(StmtModifier.Exported)) {\n modifiers.push(ts.createToken(ts.SyntaxKind.ExportKeyword));\n }\n return modifiers;\n }\n\n // StatementVisitor\n visitDeclareVarStmt(stmt: DeclareVarStmt) {\n if (stmt.hasModifier(StmtModifier.Exported) && stmt.value instanceof ExternalExpr &&\n !stmt.type) {\n // check for a reexport\n const {name, moduleName} = stmt.value.value;\n if (moduleName) {\n let reexports = this._reexports.get(moduleName);\n if (!reexports) {\n reexports = [];\n this._reexports.set(moduleName, reexports);\n }\n reexports.push({name: name !, as: stmt.name});\n return null;\n }\n }\n\n const varDeclList = ts.createVariableDeclarationList([ts.createVariableDeclaration(\n ts.createIdentifier(stmt.name),\n /* type */ undefined,\n (stmt.value && stmt.value.visitExpression(this, null)) || undefined)]);\n\n if (stmt.hasModifier(StmtModifier.Exported)) {\n // Note: We need to add an explicit variable and export declaration so that\n // the variable can be referred in the same file as well.\n const tsVarStmt =\n this.record(stmt, ts.createVariableStatement(/* modifiers */[], varDeclList));\n const exportStmt = this.record(\n stmt, ts.createExportDeclaration(\n /*decorators*/ undefined, /*modifiers*/ undefined,\n ts.createNamedExports([ts.createExportSpecifier(stmt.name, stmt.name)])));\n return [tsVarStmt, exportStmt];\n }\n return this.record(stmt, ts.createVariableStatement(this.getModifiers(stmt), varDeclList));\n }\n\n visitDeclareFunctionStmt(stmt: DeclareFunctionStmt, context: any) {\n return this.record(\n stmt, ts.createFunctionDeclaration(\n /* decorators */ undefined, this.getModifiers(stmt),\n /* asteriskToken */ undefined, stmt.name, /* typeParameters */ undefined,\n stmt.params.map(\n p => ts.createParameter(\n /* decorators */ undefined, /* modifiers */ undefined,\n /* dotDotDotToken */ undefined, p.name)),\n /* type */ undefined, this._visitStatements(stmt.statements)));\n }\n\n visitExpressionStmt(stmt: ExpressionStatement) {\n return this.record(stmt, ts.createStatement(stmt.expr.visitExpression(this, null)));\n }\n\n visitReturnStmt(stmt: ReturnStatement) {\n return this.record(\n stmt, ts.createReturn(stmt.value ? stmt.value.visitExpression(this, null) : undefined));\n }\n\n visitDeclareClassStmt(stmt: ClassStmt) {\n const modifiers = this.getModifiers(stmt);\n const fields = stmt.fields.map(\n field => ts.createProperty(\n /* decorators */ undefined, /* modifiers */ undefined, field.name,\n /* questionToken */ undefined,\n /* type */ undefined, ts.createNull()));\n const getters = stmt.getters.map(\n getter => ts.createGetAccessor(\n /* decorators */ undefined, /* modifiers */ undefined, getter.name, /* parameters */[],\n /* type */ undefined, this._visitStatements(getter.body)));\n\n const constructor =\n (stmt.constructorMethod && [ts.createConstructor(\n /* decorators */ undefined,\n /* modifiers */ undefined,\n /* parameters */ stmt.constructorMethod.params.map(\n p => ts.createParameter(\n /* decorators */ undefined,\n /* modifiers */ undefined,\n /* dotDotDotToken */ undefined, p.name)),\n this._visitStatements(stmt.constructorMethod.body))]) ||\n [];\n\n // TODO {chuckj}: Determine what should be done for a method with a null name.\n const methods = stmt.methods.filter(method => method.name)\n .map(\n method => ts.createMethod(\n /* decorators */ undefined, /* modifiers */ undefined,\n /* astriskToken */ undefined, method.name !/* guarded by filter */,\n /* questionToken */ undefined, /* typeParameters */ undefined,\n method.params.map(\n p => ts.createParameter(\n /* decorators */ undefined, /* modifiers */ undefined,\n /* dotDotDotToken */ undefined, p.name)),\n /* type */ undefined, this._visitStatements(method.body)));\n return this.record(\n stmt, ts.createClassDeclaration(\n /* decorators */ undefined, modifiers, stmt.name, /* typeParameters*/ undefined,\n stmt.parent && [ts.createHeritageClause(\n ts.SyntaxKind.ExtendsKeyword,\n [stmt.parent.visitExpression(this, null)])] ||\n [],\n [...fields, ...getters, ...constructor, ...methods]));\n }\n\n visitIfStmt(stmt: IfStmt) {\n return this.record(\n stmt,\n ts.createIf(\n stmt.condition.visitExpression(this, null), this._visitStatements(stmt.trueCase),\n stmt.falseCase && stmt.falseCase.length && this._visitStatements(stmt.falseCase) ||\n undefined));\n }\n\n visitTryCatchStmt(stmt: TryCatchStmt): RecordedNode<ts.TryStatement> {\n return this.record(\n stmt, ts.createTry(\n this._visitStatements(stmt.bodyStmts),\n ts.createCatchClause(\n CATCH_ERROR_NAME, this._visitStatementsPrefix(\n [ts.createVariableStatement(\n /* modifiers */ undefined,\n [ts.createVariableDeclaration(\n CATCH_STACK_NAME, /* type */ undefined,\n ts.createPropertyAccess(\n ts.createIdentifier(CATCH_ERROR_NAME),\n ts.createIdentifier(CATCH_STACK_NAME)))])],\n stmt.catchStmts)),\n /* finallyBlock */ undefined));\n }\n\n visitThrowStmt(stmt: ThrowStmt) {\n return this.record(stmt, ts.createThrow(stmt.error.visitExpression(this, null)));\n }\n\n visitCommentStmt(stmt: CommentStmt) { return null; }\n\n // ExpressionVisitor\n visitReadVarExpr(expr: ReadVarExpr) {\n switch (expr.builtin) {\n case BuiltinVar.This:\n return this.record(expr, ts.createIdentifier(METHOD_THIS_NAME));\n case BuiltinVar.CatchError:\n return this.record(expr, ts.createIdentifier(CATCH_ERROR_NAME));\n case BuiltinVar.CatchStack:\n return this.record(expr, ts.createIdentifier(CATCH_STACK_NAME));\n case BuiltinVar.Super:\n return this.record(expr, ts.createSuper());\n }\n if (expr.name) {\n return this.record(expr, ts.createIdentifier(expr.name));\n }\n throw Error(`Unexpected ReadVarExpr form`);\n }\n\n visitWriteVarExpr(expr: WriteVarExpr): RecordedNode<ts.BinaryExpression> {\n return this.record(\n expr, ts.createAssignment(\n ts.createIdentifier(expr.name), expr.value.visitExpression(this, null)));\n }\n\n visitWriteKeyExpr(expr: WriteKeyExpr): RecordedNode<ts.BinaryExpression> {\n return this.record(\n expr,\n ts.createAssignment(\n ts.createElementAccess(\n expr.receiver.visitExpression(this, null), expr.index.visitExpression(this, null)),\n expr.value.visitExpression(this, null)));\n }\n\n visitWritePropExpr(expr: WritePropExpr): RecordedNode<ts.BinaryExpression> {\n return this.record(\n expr, ts.createAssignment(\n ts.createPropertyAccess(expr.receiver.visitExpression(this, null), expr.name),\n expr.value.visitExpression(this, null)));\n }\n\n visitInvokeMethodExpr(expr: InvokeMethodExpr): RecordedNode<ts.CallExpression> {\n const methodName = getMethodName(expr);\n return this.record(\n expr,\n ts.createCall(\n ts.createPropertyAccess(expr.receiver.visitExpression(this, null), methodName),\n /* typeArguments */ undefined, expr.args.map(arg => arg.visitExpression(this, null))));\n }\n\n visitInvokeFunctionExpr(expr: InvokeFunctionExpr): RecordedNode<ts.CallExpression> {\n return this.record(\n expr, ts.createCall(\n expr.fn.visitExpression(this, null), /* typeArguments */ undefined,\n expr.args.map(arg => arg.visitExpression(this, null))));\n }\n\n visitInstantiateExpr(expr: InstantiateExpr): RecordedNode<ts.NewExpression> {\n return this.record(\n expr, ts.createNew(\n expr.classExpr.visitExpression(this, null), /* typeArguments */ undefined,\n expr.args.map(arg => arg.visitExpression(this, null))));\n }\n\n visitLiteralExpr(expr: LiteralExpr) { return this.record(expr, createLiteral(expr.value)); }\n\n visitExternalExpr(expr: ExternalExpr) {\n return this.record(expr, this._visitIdentifier(expr.value));\n }\n\n visitConditionalExpr(expr: ConditionalExpr): RecordedNode<ts.ParenthesizedExpression> {\n // TODO {chuckj}: Review use of ! on falseCase. Should it be non-nullable?\n return this.record(\n expr,\n ts.createParen(ts.createConditional(\n expr.condition.visitExpression(this, null), expr.trueCase.visitExpression(this, null),\n expr.falseCase !.visitExpression(this, null))));\n }\n\n visitNotExpr(expr: NotExpr): RecordedNode<ts.PrefixUnaryExpression> {\n return this.record(\n expr, ts.createPrefix(\n ts.SyntaxKind.ExclamationToken, expr.condition.visitExpression(this, null)));\n }\n\n visitAssertNotNullExpr(expr: AssertNotNull): RecordedNode<ts.Expression> {\n return expr.condition.visitExpression(this, null);\n }\n\n visitCastExpr(expr: CastExpr): RecordedNode<ts.Expression> {\n return expr.value.visitExpression(this, null);\n }\n\n visitFunctionExpr(expr: FunctionExpr) {\n return this.record(\n expr, ts.createFunctionExpression(\n /* modifiers */ undefined, /* astriskToken */ undefined, /* name */ undefined,\n /* typeParameters */ undefined,\n expr.params.map(\n p => ts.createParameter(\n /* decorators */ undefined, /* modifiers */ undefined,\n /* dotDotDotToken */ undefined, p.name)),\n /* type */ undefined, this._visitStatements(expr.statements)));\n }\n\n visitBinaryOperatorExpr(expr: BinaryOperatorExpr): RecordedNode<ts.ParenthesizedExpression> {\n let binaryOperator: ts.BinaryOperator;\n switch (expr.operator) {\n case BinaryOperator.And:\n binaryOperator = ts.SyntaxKind.AmpersandAmpersandToken;\n break;\n case BinaryOperator.Bigger:\n binaryOperator = ts.SyntaxKind.GreaterThanToken;\n break;\n case BinaryOperator.BiggerEquals:\n binaryOperator = ts.SyntaxKind.GreaterThanEqualsToken;\n break;\n case BinaryOperator.Divide:\n binaryOperator = ts.SyntaxKind.SlashToken;\n break;\n case BinaryOperator.Equals:\n binaryOperator = ts.SyntaxKind.EqualsEqualsToken;\n break;\n case BinaryOperator.Identical:\n binaryOperator = ts.SyntaxKind.EqualsEqualsEqualsToken;\n break;\n case BinaryOperator.Lower:\n binaryOperator = ts.SyntaxKind.LessThanToken;\n break;\n case BinaryOperator.LowerEquals:\n binaryOperator = ts.SyntaxKind.LessThanEqualsToken;\n break;\n case BinaryOperator.Minus:\n binaryOperator = ts.SyntaxKind.MinusToken;\n break;\n case BinaryOperator.Modulo:\n binaryOperator = ts.SyntaxKind.PercentToken;\n break;\n case BinaryOperator.Multiply:\n binaryOperator = ts.SyntaxKind.AsteriskToken;\n break;\n case BinaryOperator.NotEquals:\n binaryOperator = ts.SyntaxKind.ExclamationEqualsToken;\n break;\n case BinaryOperator.NotIdentical:\n binaryOperator = ts.SyntaxKind.ExclamationEqualsEqualsToken;\n break;\n case BinaryOperator.Or:\n binaryOperator = ts.SyntaxKind.BarBarToken;\n break;\n case BinaryOperator.Plus:\n binaryOperator = ts.SyntaxKind.PlusToken;\n break;\n default:\n throw new Error(`Unknown operator: ${expr.operator}`);\n }\n return this.record(\n expr, ts.createParen(ts.createBinary(\n expr.lhs.visitExpression(this, null), binaryOperator,\n expr.rhs.visitExpression(this, null))));\n }\n\n visitReadPropExpr(expr: ReadPropExpr): RecordedNode<ts.PropertyAccessExpression> {\n return this.record(\n expr, ts.createPropertyAccess(expr.receiver.visitExpression(this, null), expr.name));\n }\n\n visitReadKeyExpr(expr: ReadKeyExpr): RecordedNode<ts.ElementAccessExpression> {\n return this.record(\n expr,\n ts.createElementAccess(\n expr.receiver.visitExpression(this, null), expr.index.visitExpression(this, null)));\n }\n\n visitLiteralArrayExpr(expr: LiteralArrayExpr): RecordedNode<ts.ArrayLiteralExpression> {\n return this.record(\n expr, ts.createArrayLiteral(expr.entries.map(entry => entry.visitExpression(this, null))));\n }\n\n visitLiteralMapExpr(expr: LiteralMapExpr): RecordedNode<ts.ObjectLiteralExpression> {\n return this.record(\n expr, ts.createObjectLiteral(expr.entries.map(\n entry => ts.createPropertyAssignment(\n entry.quoted || !_VALID_IDENTIFIER_RE.test(entry.key) ?\n ts.createLiteral(entry.key) :\n entry.key,\n entry.value.visitExpression(this, null)))));\n }\n\n visitCommaExpr(expr: CommaExpr): RecordedNode<ts.Expression> {\n return this.record(\n expr, expr.parts.map(e => e.visitExpression(this, null))\n .reduce<ts.Expression|null>(\n (left, right) =>\n left ? ts.createBinary(left, ts.SyntaxKind.CommaToken, right) : right,\n null));\n }\n\n private _visitStatements(statements: Statement[]): ts.Block {\n return this._visitStatementsPrefix([], statements);\n }\n\n private _visitStatementsPrefix(prefix: ts.Statement[], statements: Statement[]) {\n return ts.createBlock([\n ...prefix, ...statements.map(stmt => stmt.visitStatement(this, null)).filter(f => f != null)\n ]);\n }\n\n private _visitIdentifier(value: ExternalReference): ts.Expression {\n const {name, moduleName} = value;\n let prefixIdent: ts.Identifier|null = null;\n if (moduleName) {\n let prefix = this._importsWithPrefixes.get(moduleName);\n if (prefix == null) {\n prefix = `i${this._importsWithPrefixes.size}`;\n this._importsWithPrefixes.set(moduleName, prefix);\n }\n prefixIdent = ts.createIdentifier(prefix);\n }\n // name can only be null during JIT which never executes this code.\n let result: ts.Expression =\n prefixIdent ? ts.createPropertyAccess(prefixIdent, name !) : ts.createIdentifier(name !);\n return result;\n }\n}\n\n\nfunction getMethodName(methodRef: {name: string | null; builtin: BuiltinMethod | null}): string {\n if (methodRef.name) {\n return methodRef.name;\n } else {\n switch (methodRef.builtin) {\n case BuiltinMethod.Bind:\n return 'bind';\n case BuiltinMethod.ConcatArray:\n return 'concat';\n case BuiltinMethod.SubscribeObservable:\n return 'subscribe';\n }\n }\n throw new Error('Unexpected method reference form');\n}\n"]}

@@ -19,3 +19,3 @@ "use strict";

*/
exports.VERSION = new compiler_1.Version('5.2.9');
exports.VERSION = new compiler_1.Version('5.2.10');
//# sourceMappingURL=version.js.map

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

{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../packages/compiler-cli/src/version.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH;;;;GAIG;AAEH,8CAA0C;AAC1C;;GAEG;AACU,QAAA,OAAO,GAAG,IAAI,kBAAO,CAAC,mBAAmB,CAAC,CAAC","sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the common package.\n */\n\nimport {Version} from '@angular/compiler';\n/**\n * @stable\n */\nexport const VERSION = new Version('5.2.9');\n"]}
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../packages/compiler-cli/src/version.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH;;;;GAIG;AAEH,8CAA0C;AAC1C;;GAEG;AACU,QAAA,OAAO,GAAG,IAAI,kBAAO,CAAC,mBAAmB,CAAC,CAAC","sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the common package.\n */\n\nimport {Version} from '@angular/compiler';\n/**\n * @stable\n */\nexport const VERSION = new Version('5.2.10');\n"]}