@angular/compiler-cli 2.2.2 → 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/index.d.ts +2 -2
  2. package/index.js +6 -6
  3. package/index.js.map +1 -1
  4. package/index.metadata.json +1 -1
  5. package/package.json +4 -4
  6. package/src/codegen.d.ts +10 -6
  7. package/src/codegen.js +75 -27
  8. package/src/codegen.js.map +1 -1
  9. package/src/extract_i18n.js +10 -1
  10. package/src/extract_i18n.js.map +1 -1
  11. package/src/extractor.d.ts +10 -5
  12. package/src/extractor.js +53 -10
  13. package/src/extractor.js.map +1 -1
  14. package/src/main.js +3 -1
  15. package/src/main.js.map +1 -1
  16. package/src/{path_mapped_compiler_host.d.ts → path_mapped_reflector_host.d.ts} +14 -7
  17. package/src/{path_mapped_compiler_host.js → path_mapped_reflector_host.js} +25 -27
  18. package/src/path_mapped_reflector_host.js.map +1 -0
  19. package/src/private_import_core.d.ts +4 -0
  20. package/src/private_import_core.js +1 -0
  21. package/src/private_import_core.js.map +1 -1
  22. package/src/private_import_core.metadata.json +1 -1
  23. package/src/{compiler_host.d.ts → reflector_host.d.ts} +34 -15
  24. package/src/reflector_host.js +324 -0
  25. package/src/reflector_host.js.map +1 -0
  26. package/src/static_reflection_capabilities.d.ts +29 -0
  27. package/src/static_reflection_capabilities.js +57 -0
  28. package/src/static_reflection_capabilities.js.map +1 -0
  29. package/src/static_reflector.d.ts +82 -0
  30. package/src/static_reflector.js +601 -0
  31. package/src/static_reflector.js.map +1 -0
  32. package/src/codegen.metadata.json +0 -1
  33. package/src/compiler_host.js +0 -226
  34. package/src/compiler_host.js.map +0 -1
  35. package/src/compiler_host.metadata.json +0 -1
  36. package/src/extractor.metadata.json +0 -1
  37. package/src/path_mapped_compiler_host.js.map +0 -1
  38. package/src/path_mapped_compiler_host.metadata.json +0 -1
package/index.d.ts CHANGED
@@ -5,8 +5,8 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
- export { AotCompilerHost, AotCompilerHost as StaticReflectorHost, StaticReflector, StaticSymbol } from '@angular/compiler';
9
8
  export { CodeGenerator } from './src/codegen';
10
- export { CompilerHost, CompilerHostContext, NodeCompilerHostContext } from './src/compiler_host';
11
9
  export { Extractor } from './src/extractor';
10
+ export { NodeReflectorHostContext, ReflectorHost, ReflectorHostContext } from './src/reflector_host';
11
+ export { StaticReflector, StaticReflectorHost, StaticSymbol } from './src/static_reflector';
12
12
  export * from '@angular/tsc-wrapped';
package/index.js CHANGED
@@ -9,15 +9,15 @@
9
9
  function __export(m) {
10
10
  for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
11
11
  }
12
- var compiler_1 = require('@angular/compiler');
13
- exports.StaticReflector = compiler_1.StaticReflector;
14
- exports.StaticSymbol = compiler_1.StaticSymbol;
15
12
  var codegen_1 = require('./src/codegen');
16
13
  exports.CodeGenerator = codegen_1.CodeGenerator;
17
- var compiler_host_1 = require('./src/compiler_host');
18
- exports.CompilerHost = compiler_host_1.CompilerHost;
19
- exports.NodeCompilerHostContext = compiler_host_1.NodeCompilerHostContext;
20
14
  var extractor_1 = require('./src/extractor');
21
15
  exports.Extractor = extractor_1.Extractor;
16
+ var reflector_host_1 = require('./src/reflector_host');
17
+ exports.NodeReflectorHostContext = reflector_host_1.NodeReflectorHostContext;
18
+ exports.ReflectorHost = reflector_host_1.ReflectorHost;
19
+ var static_reflector_1 = require('./src/static_reflector');
20
+ exports.StaticReflector = static_reflector_1.StaticReflector;
21
+ exports.StaticSymbol = static_reflector_1.StaticSymbol;
22
22
  __export(require('@angular/tsc-wrapped'));
23
23
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/Users/chuckj/src/angular/modules/@angular/compiler-cli/","sources":["index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;;;;;AAEH,yBAAqG,mBAAmB,CAAC;AAAxD,qDAAe;AAAE,+CAAuC;AACzH,wBAA4B,eAAe,CAAC;AAApC,gDAAoC;AAC5C,8BAAyE,qBAAqB,CAAC;AAAvF,oDAAY;AAAuB,0EAAoD;AAC/F,0BAAwB,iBAAiB,CAAC;AAAlC,0CAAkC;AAE1C,iBAAc,sBAAsB,CAAC,EAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"/Users/vsavkin/projects/angular/modules/@angular/compiler-cli/","sources":["index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;;;;;AAEH,wBAA4B,eAAe,CAAC;AAApC,gDAAoC;AAC5C,0BAAwB,iBAAiB,CAAC;AAAlC,0CAAkC;AAC1C,+BAA4E,sBAAsB,CAAC;AAA3F,6EAAwB;AAAE,uDAAiE;AACnG,iCAAiE,wBAAwB,CAAC;AAAlF,6DAAe;AAAuB,uDAA4C;AAE1F,iBAAc,sBAAsB,CAAC,EAAA"}
@@ -1 +1 @@
1
- {"__symbolic":"module","version":2,"metadata":{},"exports":[{"from":"@angular/compiler","export":["AotCompilerHost",{"name":"AotCompilerHost","as":"StaticReflectorHost"},"StaticReflector","StaticSymbol"]},{"from":"./src/codegen","export":["CodeGenerator"]},{"from":"./src/compiler_host","export":["CompilerHost","CompilerHostContext","NodeCompilerHostContext"]},{"from":"./src/extractor","export":["Extractor"]},{"from":"@angular/tsc-wrapped"}]}
1
+ {"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./src/codegen","export":["CodeGenerator"]},{"from":"./src/extractor","export":["Extractor"]},{"from":"./src/reflector_host","export":["NodeReflectorHostContext","ReflectorHost","ReflectorHostContext"]},{"from":"./src/static_reflector","export":["StaticReflector","StaticReflectorHost","StaticSymbol"]},{"from":"@angular/tsc-wrapped"}]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/compiler-cli",
3
- "version": "2.2.2",
3
+ "version": "2.2.3",
4
4
  "description": "Angular - the compiler CLI for Node.js",
5
5
  "main": "index.js",
6
6
  "typings": "index.d.ts",
@@ -9,14 +9,14 @@
9
9
  "ng-xi18n": "./src/extract_i18n.js"
10
10
  },
11
11
  "dependencies": {
12
- "@angular/tsc-wrapped": "^0.4.0",
12
+ "@angular/tsc-wrapped": "^0.3.0",
13
13
  "reflect-metadata": "^0.1.2",
14
14
  "minimist": "^1.2.0"
15
15
  },
16
16
  "peerDependencies": {
17
17
  "typescript": "^2.0.2",
18
- "@angular/compiler": "2.2.2",
19
- "@angular/core": "2.2.2"
18
+ "@angular/compiler": "2.2.3",
19
+ "@angular/core": "2.2.3"
20
20
  },
21
21
  "repository": {
22
22
  "type": "git",
package/src/codegen.d.ts CHANGED
@@ -12,16 +12,20 @@
12
12
  import * as compiler from '@angular/compiler';
13
13
  import { AngularCompilerOptions, NgcCliOptions } from '@angular/tsc-wrapped';
14
14
  import * as ts from 'typescript';
15
- import { CompilerHost, CompilerHostContext } from './compiler_host';
15
+ import { ReflectorHost, ReflectorHostContext } from './reflector_host';
16
+ import { StaticReflector, StaticReflectorHost, StaticSymbol } from './static_reflector';
16
17
  export declare class CodeGenerator {
17
18
  private options;
18
19
  private program;
19
20
  host: ts.CompilerHost;
21
+ private staticReflector;
20
22
  private compiler;
21
- private ngCompilerHost;
22
- constructor(options: AngularCompilerOptions, program: ts.Program, host: ts.CompilerHost, compiler: compiler.AotCompiler, ngCompilerHost: CompilerHost);
23
+ private reflectorHost;
24
+ constructor(options: AngularCompilerOptions, program: ts.Program, host: ts.CompilerHost, staticReflector: StaticReflector, compiler: compiler.OfflineCompiler, reflectorHost: StaticReflectorHost);
23
25
  private calculateEmitPath(filePath);
24
- codegen(): Promise<any>;
25
- static create(options: AngularCompilerOptions, cliOptions: NgcCliOptions, program: ts.Program, tsCompilerHost: ts.CompilerHost, compilerHostContext?: CompilerHostContext, ngCompilerHost?: CompilerHost): CodeGenerator;
26
+ codegen(options: {
27
+ transitiveModules: boolean;
28
+ }): Promise<any>;
29
+ static create(options: AngularCompilerOptions, cliOptions: NgcCliOptions, program: ts.Program, compilerHost: ts.CompilerHost, reflectorHostContext?: ReflectorHostContext, resourceLoader?: compiler.ResourceLoader, reflectorHost?: ReflectorHost): CodeGenerator;
26
30
  }
27
- export declare function excludeFilePattern(options: AngularCompilerOptions): RegExp;
31
+ export declare function extractProgramSymbols(program: ts.Program, staticReflector: StaticReflector, reflectorHost: StaticReflectorHost, options: AngularCompilerOptions): StaticSymbol[];
package/src/codegen.js CHANGED
@@ -11,20 +11,25 @@
11
11
  * Intended to be used in a build step.
12
12
  */
13
13
  var compiler = require('@angular/compiler');
14
+ var core_1 = require('@angular/core');
14
15
  var fs_1 = require('fs');
15
16
  var path = require('path');
16
- var compiler_host_1 = require('./compiler_host');
17
- var path_mapped_compiler_host_1 = require('./path_mapped_compiler_host');
17
+ var path_mapped_reflector_host_1 = require('./path_mapped_reflector_host');
18
+ var private_import_core_1 = require('./private_import_core');
19
+ var reflector_host_1 = require('./reflector_host');
20
+ var static_reflection_capabilities_1 = require('./static_reflection_capabilities');
21
+ var static_reflector_1 = require('./static_reflector');
18
22
  var GENERATED_FILES = /\.ngfactory\.ts$|\.css\.ts$|\.css\.shim\.ts$/;
19
23
  var GENERATED_OR_DTS_FILES = /\.d\.ts$|\.ngfactory\.ts$|\.css\.ts$|\.css\.shim\.ts$/;
20
24
  var PREAMBLE = "/**\n * @fileoverview This file is generated by the Angular 2 template compiler.\n * Do not edit.\n * @suppress {suspiciousCode,uselessCode,missingProperties}\n */\n /* tslint:disable */\n\n";
21
25
  var CodeGenerator = (function () {
22
- function CodeGenerator(options, program, host, compiler, ngCompilerHost) {
26
+ function CodeGenerator(options, program, host, staticReflector, compiler, reflectorHost) {
23
27
  this.options = options;
24
28
  this.program = program;
25
29
  this.host = host;
30
+ this.staticReflector = staticReflector;
26
31
  this.compiler = compiler;
27
- this.ngCompilerHost = ngCompilerHost;
32
+ this.reflectorHost = reflectorHost;
28
33
  }
29
34
  // Write codegen in a directory structure matching the sources.
30
35
  CodeGenerator.prototype.calculateEmitPath = function (filePath) {
@@ -47,11 +52,10 @@ var CodeGenerator = (function () {
47
52
  }
48
53
  return path.join(this.options.genDir, relativePath);
49
54
  };
50
- CodeGenerator.prototype.codegen = function () {
55
+ CodeGenerator.prototype.codegen = function (options) {
51
56
  var _this = this;
52
- return this.compiler
53
- .compileAll(this.program.getSourceFiles().map(function (sf) { return _this.ngCompilerHost.getCanonicalFileName(sf.fileName); }))
54
- .then(function (generatedModules) {
57
+ var staticSymbols = extractProgramSymbols(this.program, this.staticReflector, this.reflectorHost, this.options);
58
+ return this.compiler.compileModules(staticSymbols, options).then(function (generatedModules) {
55
59
  generatedModules.forEach(function (generatedModule) {
56
60
  var sourceFile = _this.program.getSourceFile(generatedModule.fileUrl);
57
61
  var emitPath = _this.calculateEmitPath(generatedModule.moduleUrl);
@@ -59,13 +63,16 @@ var CodeGenerator = (function () {
59
63
  });
60
64
  });
61
65
  };
62
- CodeGenerator.create = function (options, cliOptions, program, tsCompilerHost, compilerHostContext, ngCompilerHost) {
63
- if (!ngCompilerHost) {
64
- var usePathMapping = !!options.rootDirs && options.rootDirs.length > 0;
65
- ngCompilerHost = usePathMapping ?
66
- new path_mapped_compiler_host_1.PathMappedCompilerHost(program, tsCompilerHost, options, compilerHostContext) :
67
- new compiler_host_1.CompilerHost(program, tsCompilerHost, options, compilerHostContext);
68
- }
66
+ CodeGenerator.create = function (options, cliOptions, program, compilerHost, reflectorHostContext, resourceLoader, reflectorHost) {
67
+ resourceLoader = resourceLoader || {
68
+ get: function (s) {
69
+ if (!compilerHost.fileExists(s)) {
70
+ // TODO: We should really have a test for error cases like this!
71
+ throw new Error("Compilation failed. Resource file not found: " + s);
72
+ }
73
+ return Promise.resolve(compilerHost.readFile(s));
74
+ }
75
+ };
69
76
  var transFile = cliOptions.i18nFile;
70
77
  var locale = cliOptions.locale;
71
78
  var transContent = '';
@@ -75,21 +82,62 @@ var CodeGenerator = (function () {
75
82
  }
76
83
  transContent = fs_1.readFileSync(transFile, 'utf8');
77
84
  }
78
- var aotCompiler = compiler.createAotCompiler(ngCompilerHost, {
79
- debug: options.debug === true,
80
- translations: transContent,
81
- i18nFormat: cliOptions.i18nFormat,
82
- locale: cliOptions.locale,
83
- excludeFilePattern: options.generateCodeForLibraries === false ? GENERATED_OR_DTS_FILES :
84
- GENERATED_FILES
85
- }).compiler;
86
- return new CodeGenerator(options, program, tsCompilerHost, aotCompiler, ngCompilerHost);
85
+ var urlResolver = compiler.createOfflineCompileUrlResolver();
86
+ if (!reflectorHost) {
87
+ var usePathMapping = !!options.rootDirs && options.rootDirs.length > 0;
88
+ reflectorHost = usePathMapping ?
89
+ new path_mapped_reflector_host_1.PathMappedReflectorHost(program, compilerHost, options, reflectorHostContext) :
90
+ new reflector_host_1.ReflectorHost(program, compilerHost, options, reflectorHostContext);
91
+ }
92
+ var staticReflector = new static_reflector_1.StaticReflector(reflectorHost);
93
+ static_reflection_capabilities_1.StaticAndDynamicReflectionCapabilities.install(staticReflector);
94
+ var htmlParser = new compiler.I18NHtmlParser(new compiler.HtmlParser(), transContent, cliOptions.i18nFormat);
95
+ var config = new compiler.CompilerConfig({
96
+ genDebugInfo: options.debug === true,
97
+ defaultEncapsulation: core_1.ViewEncapsulation.Emulated,
98
+ logBindingUpdate: false,
99
+ useJit: false
100
+ });
101
+ var normalizer = new compiler.DirectiveNormalizer(resourceLoader, urlResolver, htmlParser, config);
102
+ var expressionParser = new compiler.Parser(new compiler.Lexer());
103
+ var elementSchemaRegistry = new compiler.DomElementSchemaRegistry();
104
+ var console = new private_import_core_1.Console();
105
+ var tmplParser = new compiler.TemplateParser(expressionParser, elementSchemaRegistry, htmlParser, console, []);
106
+ var resolver = new compiler.CompileMetadataResolver(new compiler.NgModuleResolver(staticReflector), new compiler.DirectiveResolver(staticReflector), new compiler.PipeResolver(staticReflector), elementSchemaRegistry, normalizer, staticReflector);
107
+ // TODO(vicb): do not pass cliOptions.i18nFormat here
108
+ var offlineCompiler = new compiler.OfflineCompiler(resolver, tmplParser, new compiler.StyleCompiler(urlResolver), new compiler.ViewCompiler(config, elementSchemaRegistry), new compiler.DirectiveWrapperCompiler(config, expressionParser, elementSchemaRegistry, console), new compiler.NgModuleCompiler(), new compiler.TypeScriptEmitter(reflectorHost), cliOptions.locale, cliOptions.i18nFormat, new compiler.AnimationParser(elementSchemaRegistry));
109
+ return new CodeGenerator(options, program, compilerHost, staticReflector, offlineCompiler, reflectorHost);
87
110
  };
88
111
  return CodeGenerator;
89
112
  }());
90
113
  exports.CodeGenerator = CodeGenerator;
91
- function excludeFilePattern(options) {
92
- return options.generateCodeForLibraries === false ? GENERATED_OR_DTS_FILES : GENERATED_FILES;
114
+ function extractProgramSymbols(program, staticReflector, reflectorHost, options) {
115
+ // Compare with false since the default should be true
116
+ var skipFileNames = options.generateCodeForLibraries === false ? GENERATED_OR_DTS_FILES : GENERATED_FILES;
117
+ var staticSymbols = [];
118
+ program.getSourceFiles()
119
+ .filter(function (sourceFile) { return !skipFileNames.test(sourceFile.fileName); })
120
+ .forEach(function (sourceFile) {
121
+ var absSrcPath = reflectorHost.getCanonicalFileName(sourceFile.fileName);
122
+ var moduleMetadata = staticReflector.getModuleMetadata(absSrcPath);
123
+ if (!moduleMetadata) {
124
+ console.log("WARNING: no metadata found for " + absSrcPath);
125
+ return;
126
+ }
127
+ var metadata = moduleMetadata['metadata'];
128
+ if (!metadata) {
129
+ return;
130
+ }
131
+ for (var _i = 0, _a = Object.keys(metadata); _i < _a.length; _i++) {
132
+ var symbol = _a[_i];
133
+ if (metadata[symbol] && metadata[symbol].__symbolic == 'error') {
134
+ // Ignore symbols that are only included to record error information.
135
+ continue;
136
+ }
137
+ staticSymbols.push(reflectorHost.findDeclaration(absSrcPath, symbol, absSrcPath));
138
+ }
139
+ });
140
+ return staticSymbols;
93
141
  }
94
- exports.excludeFilePattern = excludeFilePattern;
142
+ exports.extractProgramSymbols = extractProgramSymbols;
95
143
  //# sourceMappingURL=codegen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.js","sourceRoot":"/Users/chuckj/src/angular/modules/@angular/compiler-cli/","sources":["src/codegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codegen.js","sourceRoot":"/Users/vsavkin/projects/angular/modules/@angular/compiler-cli/","sources":["src/codegen.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,16 @@ var tsc = require('@angular/tsc-wrapped');
6
6
  var path = require('path');
7
7
  var extractor_1 = require('./extractor');
8
8
  function extract(ngOptions, cliOptions, program, host) {
9
- var extractor = extractor_1.Extractor.create(ngOptions, cliOptions.i18nFormat, program, host);
9
+ var resourceLoader = {
10
+ get: function (s) {
11
+ if (!host.fileExists(s)) {
12
+ // TODO: We should really have a test for error cases like this!
13
+ throw new Error("Compilation failed. Resource file not found: " + s);
14
+ }
15
+ return Promise.resolve(host.readFile(s));
16
+ }
17
+ };
18
+ var extractor = extractor_1.Extractor.create(ngOptions, cliOptions.i18nFormat, program, host, resourceLoader);
10
19
  var bundlePromise = extractor.extract();
11
20
  return (bundlePromise).then(function (messageBundle) {
12
21
  var ext;
@@ -1 +1 @@
1
- {"version":3,"file":"extract_i18n.js","sourceRoot":"/Users/chuckj/src/angular/modules/@angular/compiler-cli/","sources":["src/extract_i18n.ts"],"names":[],"mappings":";;AAcA,QAAO,kBAAkB,CAAC,CAAA;AAE1B,IAAY,QAAQ,WAAM,mBAAmB,CAAC,CAAA;AAC9C,IAAY,GAAG,WAAM,sBAAsB,CAAC,CAAA;AAC5C,IAAY,IAAI,WAAM,MAAM,CAAC,CAAA;AAG7B,0BAAwB,aAAa,CAAC,CAAA;AAEtC,iBACI,SAAqC,EAAE,UAAwC,EAC/E,OAAmB,EAAE,IAAqB;IAC5C,IAAM,SAAS,GAAG,qBAAS,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAEpF,IAAM,aAAa,GAAoC,SAAS,CAAC,OAAO,EAAE,CAAC;IAE3E,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAA,aAAa;QACvC,IAAI,GAAW,CAAC;QAChB,IAAI,UAA+B,CAAC;QACpC,IAAM,MAAM,GAAG,CAAC,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAE9D,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACf,KAAK,KAAK;gBACR,GAAG,GAAG,KAAK,CAAC;gBACZ,UAAU,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAChC,KAAK,CAAC;YACR,KAAK,OAAO,CAAC;YACb,KAAK,KAAK,CAAC;YACX;gBACE,IAAM,UAAU,GAAG,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC1E,GAAG,GAAG,KAAK,CAAC;gBACZ,UAAU,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,4BAA4B,CAAC,CAAC;gBACnF,KAAK,CAAC;QACV,CAAC;QAED,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAY,GAAK,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,cAAc;AACd,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;IAC5B,IAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,IAAM,OAAO,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC;IAC9C,IAAM,UAAU,GAAG,IAAI,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC1D,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC;SACjC,IAAI,CAAC,UAAC,QAAa,IAAK,OAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAtB,CAAsB,CAAC;SAC/C,KAAK,CAAC,UAAC,CAAM;QACZ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"extract_i18n.js","sourceRoot":"/Users/vsavkin/projects/angular/modules/@angular/compiler-cli/","sources":["src/extract_i18n.ts"],"names":[],"mappings":"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"}
@@ -12,12 +12,17 @@ import 'reflect-metadata';
12
12
  import * as compiler from '@angular/compiler';
13
13
  import * as tsc from '@angular/tsc-wrapped';
14
14
  import * as ts from 'typescript';
15
- import { CompilerHost } from './compiler_host';
15
+ import { ReflectorHost } from './reflector_host';
16
+ import { StaticReflector } from './static_reflector';
16
17
  export declare class Extractor {
17
- private ngExtractor;
18
- private ngCompilerHost;
18
+ private options;
19
19
  private program;
20
- constructor(ngExtractor: compiler.Extractor, ngCompilerHost: CompilerHost, program: ts.Program);
20
+ host: ts.CompilerHost;
21
+ private staticReflector;
22
+ private messageBundle;
23
+ private reflectorHost;
24
+ private metadataResolver;
25
+ constructor(options: tsc.AngularCompilerOptions, program: ts.Program, host: ts.CompilerHost, staticReflector: StaticReflector, messageBundle: compiler.MessageBundle, reflectorHost: ReflectorHost, metadataResolver: compiler.CompileMetadataResolver);
21
26
  extract(): Promise<compiler.MessageBundle>;
22
- static create(options: tsc.AngularCompilerOptions, translationsFormat: string, program: ts.Program, tsCompilerHost: ts.CompilerHost, ngCompilerHost?: CompilerHost): Extractor;
27
+ static create(options: tsc.AngularCompilerOptions, translationsFormat: string, program: ts.Program, compilerHost: ts.CompilerHost, resourceLoader: compiler.ResourceLoader, reflectorHost?: ReflectorHost): Extractor;
23
28
  }
package/src/extractor.js CHANGED
@@ -12,23 +12,66 @@
12
12
  // Must be imported first, because angular2 decorators throws on load.
13
13
  require('reflect-metadata');
14
14
  var compiler = require('@angular/compiler');
15
+ var core_1 = require('@angular/core');
15
16
  var codegen_1 = require('./codegen');
16
- var compiler_host_1 = require('./compiler_host');
17
+ var reflector_host_1 = require('./reflector_host');
18
+ var static_reflection_capabilities_1 = require('./static_reflection_capabilities');
19
+ var static_reflector_1 = require('./static_reflector');
17
20
  var Extractor = (function () {
18
- function Extractor(ngExtractor, ngCompilerHost, program) {
19
- this.ngExtractor = ngExtractor;
20
- this.ngCompilerHost = ngCompilerHost;
21
+ function Extractor(options, program, host, staticReflector, messageBundle, reflectorHost, metadataResolver) {
22
+ this.options = options;
21
23
  this.program = program;
24
+ this.host = host;
25
+ this.staticReflector = staticReflector;
26
+ this.messageBundle = messageBundle;
27
+ this.reflectorHost = reflectorHost;
28
+ this.metadataResolver = metadataResolver;
22
29
  }
23
30
  Extractor.prototype.extract = function () {
24
31
  var _this = this;
25
- return this.ngExtractor.extract(this.program.getSourceFiles().map(function (sf) { return _this.ngCompilerHost.getCanonicalFileName(sf.fileName); }));
32
+ var programSymbols = codegen_1.extractProgramSymbols(this.program, this.staticReflector, this.reflectorHost, this.options);
33
+ var _a = compiler.analyzeAndValidateNgModules(programSymbols, { transitiveModules: true }, this.metadataResolver), ngModules = _a.ngModules, files = _a.files;
34
+ return compiler.loadNgModuleDirectives(ngModules).then(function () {
35
+ var errors = [];
36
+ files.forEach(function (file) {
37
+ var compMetas = [];
38
+ file.directives.forEach(function (directiveType) {
39
+ var dirMeta = _this.metadataResolver.getDirectiveMetadata(directiveType);
40
+ if (dirMeta && dirMeta.isComponent) {
41
+ compMetas.push(dirMeta);
42
+ }
43
+ });
44
+ compMetas.forEach(function (compMeta) {
45
+ var html = compMeta.template.template;
46
+ var interpolationConfig = compiler.InterpolationConfig.fromArray(compMeta.template.interpolation);
47
+ errors.push.apply(errors, _this.messageBundle.updateFromTemplate(html, file.srcUrl, interpolationConfig));
48
+ });
49
+ });
50
+ if (errors.length) {
51
+ throw new Error(errors.map(function (e) { return e.toString(); }).join('\n'));
52
+ }
53
+ return _this.messageBundle;
54
+ });
26
55
  };
27
- Extractor.create = function (options, translationsFormat, program, tsCompilerHost, ngCompilerHost) {
28
- if (!ngCompilerHost)
29
- ngCompilerHost = new compiler_host_1.CompilerHost(program, tsCompilerHost, options);
30
- var ngExtractor = compiler.Extractor.create(ngCompilerHost, { excludeFilePattern: codegen_1.excludeFilePattern(options) }).extractor;
31
- return new Extractor(ngExtractor, ngCompilerHost, program);
56
+ Extractor.create = function (options, translationsFormat, program, compilerHost, resourceLoader, reflectorHost) {
57
+ var htmlParser = new compiler.I18NHtmlParser(new compiler.HtmlParser());
58
+ var urlResolver = compiler.createOfflineCompileUrlResolver();
59
+ if (!reflectorHost)
60
+ reflectorHost = new reflector_host_1.ReflectorHost(program, compilerHost, options);
61
+ var staticReflector = new static_reflector_1.StaticReflector(reflectorHost);
62
+ static_reflection_capabilities_1.StaticAndDynamicReflectionCapabilities.install(staticReflector);
63
+ var config = new compiler.CompilerConfig({
64
+ genDebugInfo: options.debug === true,
65
+ defaultEncapsulation: core_1.ViewEncapsulation.Emulated,
66
+ logBindingUpdate: false,
67
+ useJit: false
68
+ });
69
+ var normalizer = new compiler.DirectiveNormalizer(resourceLoader, urlResolver, htmlParser, config);
70
+ var elementSchemaRegistry = new compiler.DomElementSchemaRegistry();
71
+ var resolver = new compiler.CompileMetadataResolver(new compiler.NgModuleResolver(staticReflector), new compiler.DirectiveResolver(staticReflector), new compiler.PipeResolver(staticReflector), elementSchemaRegistry, normalizer, staticReflector);
72
+ // TODO(vicb): implicit tags & attributes
73
+ var messageBundle = new compiler.MessageBundle(htmlParser, [], {});
74
+ return new Extractor(options, program, compilerHost, staticReflector, messageBundle, reflectorHost, resolver);
32
75
  };
33
76
  return Extractor;
34
77
  }());
@@ -1 +1 @@
1
- {"version":3,"file":"extractor.js","sourceRoot":"/Users/chuckj/src/angular/modules/@angular/compiler-cli/","sources":["src/extractor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;;AAGH;;GAEG;AACH,sEAAsE;AACtE,QAAO,kBAAkB,CAAC,CAAA;AAE1B,IAAY,QAAQ,WAAM,mBAAmB,CAAC,CAAA;AAI9C,wBAAiC,WAAW,CAAC,CAAA;AAC7C,8BAA2B,iBAAiB,CAAC,CAAA;AAE7C;IACE,mBACY,WAA+B,EAAU,cAA4B,EACrE,OAAmB;QADnB,gBAAW,GAAX,WAAW,CAAoB;QAAU,mBAAc,GAAd,cAAc,CAAc;QACrE,YAAO,GAAP,OAAO,CAAY;IAAG,CAAC;IAEnC,2BAAO,GAAP;QAAA,iBAGC;QAFC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,GAAG,CAC7D,UAAA,EAAE,IAAI,OAAA,KAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAE,CAAC,QAAQ,CAAC,EAArD,CAAqD,CAAC,CAAC,CAAC;IACpE,CAAC;IAEM,gBAAM,GAAb,UACI,OAAmC,EAAE,kBAA0B,EAAE,OAAmB,EACpF,cAA+B,EAAE,cAA6B;QAChE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;YAAC,cAAc,GAAG,IAAI,4BAAY,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAClF,oIAAsB,CAC0C;QACvE,MAAM,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IACH,gBAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBY,iBAAS,YAkBrB,CAAA"}
1
+ {"version":3,"file":"extractor.js","sourceRoot":"/Users/vsavkin/projects/angular/modules/@angular/compiler-cli/","sources":["src/extractor.ts"],"names":[],"mappings":"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"}
package/src/main.js CHANGED
@@ -4,7 +4,9 @@ require('reflect-metadata');
4
4
  var tsc = require('@angular/tsc-wrapped');
5
5
  var codegen_1 = require('./codegen');
6
6
  function codegen(ngOptions, cliOptions, program, host) {
7
- return codegen_1.CodeGenerator.create(ngOptions, cliOptions, program, host).codegen();
7
+ return codegen_1.CodeGenerator.create(ngOptions, cliOptions, program, host).codegen({
8
+ transitiveModules: true
9
+ });
8
10
  }
9
11
  // CLI entry point
10
12
  if (require.main === module) {
package/src/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"/Users/chuckj/src/angular/modules/@angular/compiler-cli/","sources":["src/main.ts"],"names":[],"mappings":";;AAWA,QAAO,kBAAkB,CAAC,CAAA;AAG1B,IAAY,GAAG,WAAM,sBAAsB,CAAC,CAAA;AAE5C,wBAA4B,WAAW,CAAC,CAAA;AAExC,iBACI,SAAqC,EAAE,UAA6B,EAAE,OAAmB,EACzF,IAAqB;IACvB,MAAM,CAAC,uBAAa,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAC9E,CAAC;AAED,kBAAkB;AAClB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;IAC5B,IAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,IAAM,OAAO,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC;IAC9C,IAAM,UAAU,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC/C,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,UAAA,QAAQ,IAAI,OAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAtB,CAAsB,CAAC,CAAC,KAAK,CAAC,UAAA,CAAC;QACrF,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"/Users/vsavkin/projects/angular/modules/@angular/compiler-cli/","sources":["src/main.ts"],"names":[],"mappings":";;AAWA,QAAO,kBAAkB,CAAC,CAAA;AAG1B,IAAY,GAAG,WAAM,sBAAsB,CAAC,CAAA;AAE5C,wBAA4B,WAAW,CAAC,CAAA;AAExC,iBACI,SAAqC,EAAE,UAA6B,EAAE,OAAmB,EACzF,IAAqB;IACvB,MAAM,CAAC,uBAAa,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC;QACxE,iBAAiB,EAAE,IAAI;KACxB,CAAC,CAAC;AACL,CAAC;AAED,kBAAkB;AAClB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;IAC5B,IAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,IAAM,OAAO,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC;IAC9C,IAAM,UAAU,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC/C,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,UAAA,QAAQ,IAAI,OAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAtB,CAAsB,CAAC,CAAC,KAAK,CAAC,UAAA,CAAC;QACrF,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,23 +1,30 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google Inc. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
1
8
  import { AngularCompilerOptions, ModuleMetadata } from '@angular/tsc-wrapped';
2
9
  import * as ts from 'typescript';
3
- import { CompilerHost, CompilerHostContext } from './compiler_host';
10
+ import { ReflectorHost, ReflectorHostContext } from './reflector_host';
4
11
  /**
5
- * This version of the AotCompilerHost expects that the program will be compiled
12
+ * This version of the reflector host expects that the program will be compiled
6
13
  * and executed with a "path mapped" directory structure, where generated files
7
14
  * are in a parallel tree with the sources, and imported using a `./` relative
8
15
  * import. This requires using TS `rootDirs` option and also teaching the module
9
16
  * loader what to do.
10
17
  */
11
- export declare class PathMappedCompilerHost extends CompilerHost {
12
- constructor(program: ts.Program, compilerHost: ts.CompilerHost, options: AngularCompilerOptions, context?: CompilerHostContext);
18
+ export declare class PathMappedReflectorHost extends ReflectorHost {
19
+ constructor(program: ts.Program, compilerHost: ts.CompilerHost, options: AngularCompilerOptions, context?: ReflectorHostContext);
13
20
  getCanonicalFileName(fileName: string): string;
14
- moduleNameToFileName(m: string, containingFile: string): string;
21
+ protected resolve(m: string, containingFile: string): string;
15
22
  /**
16
23
  * We want a moduleId that will appear in import statements in the generated code.
17
24
  * These need to be in a form that system.js can load, so absolute file paths don't work.
18
25
  * Relativize the paths by checking candidate prefixes of the absolute path, to see if
19
26
  * they are resolvable by the moduleResolution strategy from the CompilerHost.
20
27
  */
21
- fileNameToModuleName(importedFile: string, containingFile: string): string;
22
- getMetadataFor(filePath: string): ModuleMetadata[];
28
+ getImportPath(containingFile: string, importedFile: string): string;
29
+ getMetadataFor(filePath: string): ModuleMetadata;
23
30
  }
@@ -13,22 +13,22 @@ var __extends = (this && this.__extends) || function (d, b) {
13
13
  };
14
14
  var path = require('path');
15
15
  var ts = require('typescript');
16
- var compiler_host_1 = require('./compiler_host');
16
+ var reflector_host_1 = require('./reflector_host');
17
17
  var EXT = /(\.ts|\.d\.ts|\.js|\.jsx|\.tsx)$/;
18
18
  var DTS = /\.d\.ts$/;
19
19
  /**
20
- * This version of the AotCompilerHost expects that the program will be compiled
20
+ * This version of the reflector host expects that the program will be compiled
21
21
  * and executed with a "path mapped" directory structure, where generated files
22
22
  * are in a parallel tree with the sources, and imported using a `./` relative
23
23
  * import. This requires using TS `rootDirs` option and also teaching the module
24
24
  * loader what to do.
25
25
  */
26
- var PathMappedCompilerHost = (function (_super) {
27
- __extends(PathMappedCompilerHost, _super);
28
- function PathMappedCompilerHost(program, compilerHost, options, context) {
26
+ var PathMappedReflectorHost = (function (_super) {
27
+ __extends(PathMappedReflectorHost, _super);
28
+ function PathMappedReflectorHost(program, compilerHost, options, context) {
29
29
  _super.call(this, program, compilerHost, options, context);
30
30
  }
31
- PathMappedCompilerHost.prototype.getCanonicalFileName = function (fileName) {
31
+ PathMappedReflectorHost.prototype.getCanonicalFileName = function (fileName) {
32
32
  if (!fileName)
33
33
  return fileName;
34
34
  // NB: the rootDirs should have been sorted longest-first
@@ -40,14 +40,7 @@ var PathMappedCompilerHost = (function (_super) {
40
40
  }
41
41
  return fileName;
42
42
  };
43
- PathMappedCompilerHost.prototype.moduleNameToFileName = function (m, containingFile) {
44
- if (!containingFile || !containingFile.length) {
45
- if (m.indexOf('.') === 0) {
46
- throw new Error('Resolution of relative paths requires a containing file.');
47
- }
48
- // Any containing file gives the same result for absolute imports
49
- containingFile = this.getCanonicalFileName(path.join(this.basePath, 'index.ts'));
50
- }
43
+ PathMappedReflectorHost.prototype.resolve = function (m, containingFile) {
51
44
  for (var _i = 0, _a = this.options.rootDirs || ['']; _i < _a.length; _i++) {
52
45
  var root = _a[_i];
53
46
  var rootedContainingFile = path.join(root, containingFile);
@@ -56,7 +49,7 @@ var PathMappedCompilerHost = (function (_super) {
56
49
  if (this.options.traceResolution) {
57
50
  console.log('resolve', m, containingFile, '=>', resolved.resolvedFileName);
58
51
  }
59
- return this.getCanonicalFileName(resolved.resolvedFileName);
52
+ return resolved.resolvedFileName;
60
53
  }
61
54
  }
62
55
  };
@@ -66,8 +59,10 @@ var PathMappedCompilerHost = (function (_super) {
66
59
  * Relativize the paths by checking candidate prefixes of the absolute path, to see if
67
60
  * they are resolvable by the moduleResolution strategy from the CompilerHost.
68
61
  */
69
- PathMappedCompilerHost.prototype.fileNameToModuleName = function (importedFile, containingFile) {
62
+ PathMappedReflectorHost.prototype.getImportPath = function (containingFile, importedFile) {
70
63
  var _this = this;
64
+ importedFile = this.resolveAssetUrl(importedFile, containingFile);
65
+ containingFile = this.resolveAssetUrl(containingFile, '');
71
66
  if (this.options.traceResolution) {
72
67
  console.log('getImportPath from containingFile', containingFile, 'to importedFile', importedFile);
73
68
  }
@@ -82,7 +77,7 @@ var PathMappedCompilerHost = (function (_super) {
82
77
  }
83
78
  }
84
79
  var resolvable = function (candidate) {
85
- var resolved = _this.moduleNameToFileName(candidate, importedFile);
80
+ var resolved = _this.getCanonicalFileName(_this.resolve(candidate, importedFile));
86
81
  return resolved && resolved.replace(EXT, '') === importedFile.replace(EXT, '');
87
82
  };
88
83
  var importModuleName = importedFile.replace(EXT, '');
@@ -107,7 +102,7 @@ var PathMappedCompilerHost = (function (_super) {
107
102
  }
108
103
  throw new Error("Unable to find any resolvable import for " + importedFile + " relative to " + containingFile);
109
104
  };
110
- PathMappedCompilerHost.prototype.getMetadataFor = function (filePath) {
105
+ PathMappedReflectorHost.prototype.getMetadataFor = function (filePath) {
111
106
  for (var _i = 0, _a = this.options.rootDirs || []; _i < _a.length; _i++) {
112
107
  var root = _a[_i];
113
108
  var rootedPath = path.join(root, filePath);
@@ -120,18 +115,21 @@ var PathMappedCompilerHost = (function (_super) {
120
115
  if (DTS.test(rootedPath)) {
121
116
  var metadataPath = rootedPath.replace(DTS, '.metadata.json');
122
117
  if (this.context.fileExists(metadataPath)) {
123
- return this.readMetadata(metadataPath, rootedPath);
118
+ var metadata = this.readMetadata(metadataPath);
119
+ return (Array.isArray(metadata) && metadata.length == 0) ? undefined : metadata;
124
120
  }
125
121
  }
126
122
  else {
127
- var sf = this.getSourceFile(rootedPath);
128
- sf.fileName = sf.fileName;
129
- var metadata = this.metadataCollector.getMetadata(sf);
130
- return metadata ? [metadata] : [];
123
+ var sf = this.program.getSourceFile(rootedPath);
124
+ if (!sf) {
125
+ throw new Error("Source file " + rootedPath + " not present in program.");
126
+ }
127
+ sf.fileName = this.getCanonicalFileName(sf.fileName);
128
+ return this.metadataCollector.getMetadata(sf);
131
129
  }
132
130
  }
133
131
  };
134
- return PathMappedCompilerHost;
135
- }(compiler_host_1.CompilerHost));
136
- exports.PathMappedCompilerHost = PathMappedCompilerHost;
137
- //# sourceMappingURL=path_mapped_compiler_host.js.map
132
+ return PathMappedReflectorHost;
133
+ }(reflector_host_1.ReflectorHost));
134
+ exports.PathMappedReflectorHost = PathMappedReflectorHost;
135
+ //# sourceMappingURL=path_mapped_reflector_host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path_mapped_reflector_host.js","sourceRoot":"/Users/vsavkin/projects/angular/modules/@angular/compiler-cli/","sources":["src/path_mapped_reflector_host.ts"],"names":[],"mappings":"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"}