Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@nguniversal/common

Package Overview
Dependencies
Maintainers
3
Versions
134
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nguniversal/common - npm Package Compare versions

Comparing version 11.0.1 to 11.1.0-next.0

esm2015/engine/src/inline-css-processor.js

192

bundles/common-engine.umd.js
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('fs'), require('util'), require('@angular/compiler'), require('@angular/core'), require('@angular/platform-server')) :
typeof define === 'function' && define.amd ? define('@nguniversal/common/engine', ['exports', 'fs', 'util', '@angular/compiler', '@angular/core', '@angular/platform-server'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.nguniversal = global.nguniversal || {}, global.nguniversal.common = global.nguniversal.common || {}, global.nguniversal.common.engine = {}), global.fs, global.util, global.ng.compiler, global.ng.core, global.ng.platformServer));
}(this, (function (exports, fs, util, compiler, core, platformServer) { 'use strict';
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/compiler'), require('@angular/core'), require('@angular/platform-server'), require('path'), require('fs'), require('util'), require('critters')) :
typeof define === 'function' && define.amd ? define('@nguniversal/common/engine', ['exports', '@angular/compiler', '@angular/core', '@angular/platform-server', 'path', 'fs', 'util', 'critters'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.nguniversal = global.nguniversal || {}, global.nguniversal.common = global.nguniversal.common || {}, global.nguniversal.common.engine = {}), global.ng.compiler, global.ng.core, global.ng.platformServer, global.path, global.fs, global.util, global.critters));
}(this, (function (exports, compiler, core, platformServer, path, fs, util, Critters) { 'use strict';
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
var readFile = util.promisify(fs.readFile);
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
/** ResourceLoader implementation for loading files */
var FileLoader = /** @class */ (function () {
function FileLoader() {
}
FileLoader.prototype.get = function (url) {
return readFile(url, 'utf-8');
};
return FileLoader;
}());
var Critters__default = /*#__PURE__*/_interopDefaultLegacy(Critters);

@@ -328,2 +313,93 @@ /*! *****************************************************************************

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
var readFile = util.promisify(fs.readFile);
/** ResourceLoader implementation for loading files */
var FileLoader = /** @class */ (function () {
function FileLoader() {
}
FileLoader.prototype.get = function (url) {
return readFile(url, 'utf-8');
};
return FileLoader;
}());
var CrittersExtended = /** @class */ (function (_super) {
__extends(CrittersExtended, _super);
function CrittersExtended(optionsExtended, resourceCache) {
var _this = _super.call(this, {
logger: {
warn: function (s) { return _this.warnings.push(s); },
error: function (s) { return _this.errors.push(s); },
log: function () { },
info: function () { },
},
path: optionsExtended.outputPath,
publicPath: optionsExtended.deployUrl,
compress: !!optionsExtended.minify,
pruneSource: false,
reduceInlineStyles: false,
mergeStylesheets: false,
preload: 'media',
noscriptFallback: true,
}) || this;
_this.optionsExtended = optionsExtended;
_this.resourceCache = resourceCache;
_this.warnings = [];
_this.errors = [];
return _this;
}
CrittersExtended.prototype.readFile = function (path) {
return __awaiter(this, void 0, void 0, function () {
var resourceContent;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
resourceContent = this.resourceCache.get(path);
if (!(resourceContent === undefined)) return [3 /*break*/, 2];
return [4 /*yield*/, readFile(path, 'utf-8')];
case 1:
resourceContent = _a.sent();
this.resourceCache.set(path, resourceContent);
_a.label = 2;
case 2: return [2 /*return*/, resourceContent];
}
});
});
};
return CrittersExtended;
}(Critters__default['default']));
var InlineCriticalCssProcessor = /** @class */ (function () {
function InlineCriticalCssProcessor(options) {
this.options = options;
this.resourceCache = new Map();
}
InlineCriticalCssProcessor.prototype.process = function (html, options) {
return __awaiter(this, void 0, void 0, function () {
var critters, content;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
critters = new CrittersExtended(Object.assign(Object.assign({}, this.options), options), this.resourceCache);
return [4 /*yield*/, critters.process(html)];
case 1:
content = _a.sent();
return [2 /*return*/, {
content: content,
errors: critters.errors,
warnings: critters.warnings,
}];
}
});
});
};
return InlineCriticalCssProcessor;
}());
/**
* A common rendering engine utility. This abstracts the logic

@@ -340,2 +416,5 @@ * for handling the platformServer compiler, the module cache, and

this.templateCache = new Map();
this.inlineCriticalCssProcessor = new InlineCriticalCssProcessor({
minify: true,
});
}

@@ -354,34 +433,48 @@ /** Return an instance of the platformServer compiler */

CommonEngine.prototype.render = function (opts) {
var _a;
return __awaiter(this, void 0, void 0, function () {
var doc, _a, _b, extraProviders, moduleOrFactory, factory;
var extraProviders, doc, moduleOrFactory, factory, html, _b, content, errors, warnings;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
_a = opts.document;
if (_a) return [3 /*break*/, 3];
_b = opts.documentFilePath;
if (!_b) return [3 /*break*/, 2];
extraProviders = __spread((opts.providers || []), (this.providers || []));
doc = opts.document;
if (!(!doc && opts.documentFilePath)) return [3 /*break*/, 2];
return [4 /*yield*/, this.getDocument(opts.documentFilePath)];
case 1:
_b = (_c.sent());
doc = _c.sent();
_c.label = 2;
case 2:
_a = _b;
_c.label = 3;
case 3:
doc = _a;
extraProviders = __spread((opts.providers || []), (this.providers || []), [
{
if (doc) {
extraProviders.push({
provide: platformServer.INITIAL_CONFIG,
useValue: {
document: doc,
document: opts.inlineCriticalCss
// Workaround for https://github.com/GoogleChromeLabs/critters/issues/64
? doc.replace(/ media=\"print\" onload=\"this\.media='all'"><noscript><link .+?><\/noscript>/g, '>')
: doc,
url: opts.url
}
}
]);
});
}
moduleOrFactory = this.moduleOrFactory || opts.bootstrap;
return [4 /*yield*/, this.getFactory(moduleOrFactory)];
case 3:
factory = _c.sent();
return [4 /*yield*/, platformServer.renderModuleFactory(factory, { extraProviders: extraProviders })];
case 4:
factory = _c.sent();
return [2 /*return*/, platformServer.renderModuleFactory(factory, { extraProviders: extraProviders })];
html = _c.sent();
if (!opts.inlineCriticalCss) {
return [2 /*return*/, html];
}
return [4 /*yield*/, this.inlineCriticalCssProcessor.process(html, {
outputPath: (_a = opts.publicPath) !== null && _a !== void 0 ? _a : (opts.documentFilePath ? path.dirname(opts.documentFilePath) : undefined),
})];
case 5:
_b = _c.sent(), content = _b.content, errors = _b.errors, warnings = _b.warnings;
// tslint:disable-next-line: no-console
warnings.forEach(function (m) { return console.warn(m); });
// tslint:disable-next-line: no-console
errors.forEach(function (m) { return console.error(m); });
return [2 /*return*/, content];
}

@@ -395,4 +488,4 @@ });

var moduleFactory, factory;
return __generator(this, function (_a) {
switch (_a.label) {
return __generator(this, function (_b) {
switch (_b.label) {
case 0:

@@ -409,3 +502,3 @@ if (!(moduleOrFactory instanceof core.NgModuleFactory)) return [3 /*break*/, 1];

case 2:
factory = _a.sent();
factory = _b.sent();
this.factoryCacheMap.set(moduleOrFactory, factory);

@@ -421,4 +514,4 @@ return [2 /*return*/, factory];

var doc;
return __generator(this, function (_a) {
switch (_a.label) {
return __generator(this, function (_b) {
switch (_b.label) {
case 0:

@@ -429,5 +522,5 @@ doc = this.templateCache.get(filePath);

case 1:
doc = _a.sent();
doc = _b.sent();
this.templateCache.set(filePath, doc);
_a.label = 2;
_b.label = 2;
case 2: return [2 /*return*/, doc];

@@ -466,10 +559,2 @@ }

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
/**
* Generated bundle index. Do not edit.

@@ -480,2 +565,3 @@ */

exports.ɵFileLoader = FileLoader;
exports.ɵInlineCriticalCssProcessor = InlineCriticalCssProcessor;

@@ -482,0 +568,0 @@ Object.defineProperty(exports, '__esModule', { value: true });

@@ -1,2 +0,16 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fs"),require("util"),require("@angular/compiler"),require("@angular/core"),require("@angular/platform-server")):"function"==typeof define&&define.amd?define("@nguniversal/common/engine",["exports","fs","util","@angular/compiler","@angular/core","@angular/platform-server"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).nguniversal=e.nguniversal||{},e.nguniversal.common=e.nguniversal.common||{},e.nguniversal.common.engine={}),e.fs,e.util,e.ng.compiler,e.ng.core,e.ng.platformServer)}(this,(function(e,t,r,n,o,i){"use strict";
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/compiler"),require("@angular/core"),require("@angular/platform-server"),require("path"),require("fs"),require("util"),require("critters")):"function"==typeof define&&define.amd?define("@nguniversal/common/engine",["exports","@angular/compiler","@angular/core","@angular/platform-server","path","fs","util","critters"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).nguniversal=e.nguniversal||{},e.nguniversal.common=e.nguniversal.common||{},e.nguniversal.common.engine={}),e.ng.compiler,e.ng.core,e.ng.platformServer,e.path,e.fs,e.util,e.critters)}(this,(function(e,t,r,n,o,i,c,u){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=a(u),l=function(e,t){return(l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */function f(e,t,r,n){return new(r||(r=Promise))((function(o,i){function c(e){try{a(n.next(e))}catch(e){i(e)}}function u(e){try{a(n.throw(e))}catch(e){i(e)}}function a(e){e.done?o(e.value):function t(e){return e instanceof r?e:new r((function(t){t(e)}))}(e.value).then(c,u)}a((n=n.apply(e,t||[])).next())}))}function p(e,t){var r,n,o,i,c={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function a(i){if(r)throw new TypeError("Generator is already executing.");for(;c;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return c.label++,{value:i[1],done:!1};case 5:c.label++,n=i[1],i=[0];continue;case 7:i=c.ops.pop(),c.trys.pop();continue;default:if(!((o=(o=c.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){c=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){c.label=i[1];break}if(6===i[0]&&c.label<o[1]){c.label=o[1],o=i;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(i);break}o[2]&&c.ops.pop(),c.trys.pop();continue}i=t.call(e,c)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}function h(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),c=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)c.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return c}
/**

@@ -8,3 +22,4 @@ * @license

* found in the LICENSE file at https://angular.io/license
*/var a=r.promisify(t.readFile),u=function(){function e(){}return e.prototype.get=function(e){return a(e,"utf-8")},e}();function c(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{c(n.next(e))}catch(e){i(e)}}function u(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){e.done?o(e.value):function t(e){return e instanceof r?e:new r((function(t){t(e)}))}(e.value).then(a,u)}c((n=n.apply(e,t||[])).next())}))}function l(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function c(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}function s(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a}var f=function(){function e(e,t){void 0===t&&(t=[]),this.moduleOrFactory=e,this.providers=t,this.factoryCacheMap=new Map,this.templateCache=new Map}return e.prototype.getCompiler=function(){return i.platformDynamicServer().injector.get(o.CompilerFactory).createCompiler([{providers:[{provide:n.ResourceLoader,useClass:u,deps:[]}]}])},e.prototype.render=function(e){return c(this,void 0,void 0,(function(){var t,r,n,o;return l(this,(function(a){switch(a.label){case 0:return(t=e.document)?[3,3]:(r=e.documentFilePath)?[4,this.getDocument(e.documentFilePath)]:[3,2];case 1:r=a.sent(),a.label=2;case 2:t=r,a.label=3;case 3:return n=function u(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(s(arguments[t]));return e}(e.providers||[],this.providers||[],[{provide:i.INITIAL_CONFIG,useValue:{document:t,url:e.url}}]),[4,this.getFactory(this.moduleOrFactory||e.bootstrap)];case 4:return o=a.sent(),[2,i.renderModuleFactory(o,{extraProviders:n})]}}))}))},e.prototype.getFactory=function(e){return c(this,void 0,void 0,(function(){var t,r;return l(this,(function(n){switch(n.label){case 0:return e instanceof o.NgModuleFactory?[2,e]:[3,1];case 1:return(t=this.factoryCacheMap.get(e))?[2,t]:[4,this.getCompiler().compileModuleAsync(e)];case 2:return r=n.sent(),this.factoryCacheMap.set(e,r),[2,r]}}))}))},e.prototype.getDocument=function(e){return c(this,void 0,void 0,(function(){var t;return l(this,(function(r){switch(r.label){case 0:return(t=this.templateCache.get(e))?[3,2]:[4,a(e,"utf-8")];case 1:t=r.sent(),this.templateCache.set(e,t),r.label=2;case 2:return[2,t]}}))}))},e}();
*/
var d=c.promisify(i.readFile),y=function(){function e(){}return e.prototype.get=function(e){return d(e,"utf-8")},e}(),v=function(e){function t(t,r){var n=e.call(this,{logger:{warn:function(e){return n.warnings.push(e)},error:function(e){return n.errors.push(e)},log:function(){},info:function(){}},path:t.outputPath,publicPath:t.deployUrl,compress:!!t.minify,pruneSource:!1,reduceInlineStyles:!1,mergeStylesheets:!1,preload:"media",noscriptFallback:!0})||this;return n.optionsExtended=t,n.resourceCache=r,n.warnings=[],n.errors=[],n}return function r(e,t){function r(){this.constructor=e}l(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}(t,e),t.prototype.readFile=function(e){return f(this,void 0,void 0,(function(){var t;return p(this,(function(r){switch(r.label){case 0:return void 0!==(t=this.resourceCache.get(e))?[3,2]:[4,d(e,"utf-8")];case 1:t=r.sent(),this.resourceCache.set(e,t),r.label=2;case 2:return[2,t]}}))}))},t}(s.default),m=function(){function e(e){this.options=e,this.resourceCache=new Map}return e.prototype.process=function(e,t){return f(this,void 0,void 0,(function(){var r;return p(this,(function(n){switch(n.label){case 0:return[4,(r=new v(Object.assign(Object.assign({},this.options),t),this.resourceCache)).process(e)];case 1:return[2,{content:n.sent(),errors:r.errors,warnings:r.warnings}]}}))}))},e}(),g=function(){function e(e,t){void 0===t&&(t=[]),this.moduleOrFactory=e,this.providers=t,this.factoryCacheMap=new Map,this.templateCache=new Map,this.inlineCriticalCssProcessor=new m({minify:!0})}return e.prototype.getCompiler=function(){return n.platformDynamicServer().injector.get(r.CompilerFactory).createCompiler([{providers:[{provide:t.ResourceLoader,useClass:y,deps:[]}]}])},e.prototype.render=function(e){var t;return f(this,void 0,void 0,(function(){var r,i,c,u,a,s,l;return p(this,(function(f){switch(f.label){case 0:return r=function p(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(h(arguments[t]));return e}(e.providers||[],this.providers||[]),(i=e.document)||!e.documentFilePath?[3,2]:[4,this.getDocument(e.documentFilePath)];case 1:i=f.sent(),f.label=2;case 2:return i&&r.push({provide:n.INITIAL_CONFIG,useValue:{document:e.inlineCriticalCss?i.replace(/ media=\"print\" onload=\"this\.media='all'"><noscript><link .+?><\/noscript>/g,">"):i,url:e.url}}),[4,this.getFactory(this.moduleOrFactory||e.bootstrap)];case 3:return c=f.sent(),[4,n.renderModuleFactory(c,{extraProviders:r})];case 4:return u=f.sent(),e.inlineCriticalCss?[4,this.inlineCriticalCssProcessor.process(u,{outputPath:null!==(t=e.publicPath)&&void 0!==t?t:e.documentFilePath?o.dirname(e.documentFilePath):void 0})]:[2,u];case 5:return a=f.sent(),s=a.content,l=a.errors,a.warnings.forEach((function(e){return console.warn(e)})),l.forEach((function(e){return console.error(e)})),[2,s]}}))}))},e.prototype.getFactory=function(e){return f(this,void 0,void 0,(function(){var t,n;return p(this,(function(o){switch(o.label){case 0:return e instanceof r.NgModuleFactory?[2,e]:[3,1];case 1:return(t=this.factoryCacheMap.get(e))?[2,t]:[4,this.getCompiler().compileModuleAsync(e)];case 2:return n=o.sent(),this.factoryCacheMap.set(e,n),[2,n]}}))}))},e.prototype.getDocument=function(e){return f(this,void 0,void 0,(function(){var t;return p(this,(function(r){switch(r.label){case 0:return(t=this.templateCache.get(e))?[3,2]:[4,d(e,"utf-8")];case 1:t=r.sent(),this.templateCache.set(e,t),r.label=2;case 2:return[2,t]}}))}))},e}();
/**

@@ -31,8 +46,2 @@ * @license

*/
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/e.ɵCommonEngine=f,e.ɵFileLoader=u,Object.defineProperty(e,"__esModule",{value:!0})}));
e.ɵCommonEngine=g,e.ɵFileLoader=y,e.ɵInlineCriticalCssProcessor=m,Object.defineProperty(e,"__esModule",{value:!0})}));

@@ -8,2 +8,12 @@

declare interface InlineCriticalCssProcessOptions {
outputPath?: string;
}
declare interface InlineCriticalCssProcessorOptions {
minify?: boolean;
deployUrl?: string;
}
/**

@@ -21,2 +31,3 @@ * A common rendering engine utility. This abstracts the logic

private templateCache;
private inlineCriticalCssProcessor;
constructor(moduleOrFactory?: Type<{}> | NgModuleFactory<{}> | undefined, providers?: StaticProvider[]);

@@ -39,2 +50,13 @@ /**

export declare class ɵInlineCriticalCssProcessor {
protected readonly options: InlineCriticalCssProcessorOptions;
private readonly resourceCache;
constructor(options: InlineCriticalCssProcessorOptions);
process(html: string, options: InlineCriticalCssProcessOptions): Promise<{
content: string;
warnings: string[];
errors: string[];
}>;
}
/** These are the allowed options for the render */

@@ -47,4 +69,14 @@ export declare interface ɵRenderOptions {

documentFilePath?: string;
/**
* Reduce render blocking requests by inlining critical CSS.
* Defaults to false.
*/
inlineCriticalCss?: boolean;
/**
* Base path location of index file.
* Defaults to the 'documentFilePath' dirname when not provided.
*/
publicPath?: string;
}
export { }

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

{"__symbolic":"module","version":4,"metadata":{"ɵFileLoader":{"__symbolic":"class","members":{"get":[{"__symbolic":"method"}]}},"ɵCommonEngine":{"__symbolic":"class","members":{"getCompiler":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Type","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":42,"character":45,"module":"./engine"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"@angular/core","name":"StaticProvider","line":43,"character":33}]}]}],"render":[{"__symbolic":"method"}],"getFactory":[{"__symbolic":"method"}],"getDocument":[{"__symbolic":"method"}]}},"ɵRenderOptions":{"__symbolic":"interface"}},"origins":{"ɵFileLoader":"./engine","ɵCommonEngine":"./engine","ɵRenderOptions":"./engine"},"importAs":"@nguniversal/common/engine"}
{"__symbolic":"module","version":4,"metadata":{"ɵCommonEngine":{"__symbolic":"class","members":{"getCompiler":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Type","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":55,"character":45,"module":"./engine"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"@angular/core","name":"StaticProvider","line":56,"character":33}]}]}],"render":[{"__symbolic":"method"}],"getFactory":[{"__symbolic":"method"}],"getDocument":[{"__symbolic":"method"}]}},"ɵRenderOptions":{"__symbolic":"interface"},"ɵFileLoader":{"__symbolic":"class","members":{"get":[{"__symbolic":"method"}]}},"ɵInlineCriticalCssProcessor":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"process":[{"__symbolic":"method"}]}}},"origins":{"ɵCommonEngine":"./engine","ɵRenderOptions":"./engine","ɵFileLoader":"./engine","ɵInlineCriticalCssProcessor":"./engine"},"importAs":"@nguniversal/common/engine"}

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

*/
export { FileLoader as ɵFileLoader, CommonEngine as ɵCommonEngine, } from './src/index';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2NvbW1vbi9lbmdpbmUvcHJpdmF0ZV9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUNMLFVBQVUsSUFBSSxXQUFXLEVBQ3pCLFlBQVksSUFBSSxhQUFhLEdBRTlCLE1BQU0sYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmV4cG9ydCB7XG4gIEZpbGVMb2FkZXIgYXMgybVGaWxlTG9hZGVyLFxuICBDb21tb25FbmdpbmUgYXMgybVDb21tb25FbmdpbmUsXG4gIFJlbmRlck9wdGlvbnMgYXMgybVSZW5kZXJPcHRpb25zLFxufSBmcm9tICcuL3NyYy9pbmRleCc7XG4iXX0=
export { CommonEngine as ɵCommonEngine, } from './src/engine';
export { FileLoader as ɵFileLoader, } from './src/file-loader';
export { InlineCriticalCssProcessor as ɵInlineCriticalCssProcessor, } from './src/inline-css-processor';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2NvbW1vbi9lbmdpbmUvcHJpdmF0ZV9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUNMLFlBQVksSUFBSSxhQUFhLEdBRTlCLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFDTCxVQUFVLElBQUksV0FBVyxHQUMxQixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sRUFDTCwwQkFBMEIsSUFBSSwyQkFBMkIsR0FDMUQsTUFBTSw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQge1xuICBDb21tb25FbmdpbmUgYXMgybVDb21tb25FbmdpbmUsXG4gIFJlbmRlck9wdGlvbnMgYXMgybVSZW5kZXJPcHRpb25zLFxufSBmcm9tICcuL3NyYy9lbmdpbmUnO1xuXG5leHBvcnQge1xuICBGaWxlTG9hZGVyIGFzIMm1RmlsZUxvYWRlcixcbn0gZnJvbSAnLi9zcmMvZmlsZS1sb2FkZXInO1xuXG5leHBvcnQge1xuICBJbmxpbmVDcml0aWNhbENzc1Byb2Nlc3NvciBhcyDJtUlubGluZUNyaXRpY2FsQ3NzUHJvY2Vzc29yLFxufSBmcm9tICcuL3NyYy9pbmxpbmUtY3NzLXByb2Nlc3Nvcic7XG4iXX0=

@@ -12,3 +12,5 @@ import { __awaiter } from "tslib";

import { INITIAL_CONFIG, platformDynamicServer, renderModuleFactory } from '@angular/platform-server';
import { dirname } from 'path';
import { FileLoader } from './file-loader';
import { InlineCriticalCssProcessor } from './inline-css-processor';
import { readFile } from './utils';

@@ -26,2 +28,5 @@ /**

this.templateCache = new Map();
this.inlineCriticalCssProcessor = new InlineCriticalCssProcessor({
minify: true,
});
}

@@ -40,19 +45,39 @@ /** Return an instance of the platformServer compiler */

render(opts) {
var _a;
return __awaiter(this, void 0, void 0, function* () {
// if opts.document dosen't exist then opts.documentFilePath must
const doc = opts.document || opts.documentFilePath && (yield this.getDocument(opts.documentFilePath));
const extraProviders = [
...(opts.providers || []),
...(this.providers || []),
{
];
let doc = opts.document;
if (!doc && opts.documentFilePath) {
doc = yield this.getDocument(opts.documentFilePath);
}
if (doc) {
extraProviders.push({
provide: INITIAL_CONFIG,
useValue: {
document: doc,
document: opts.inlineCriticalCss
// Workaround for https://github.com/GoogleChromeLabs/critters/issues/64
? doc.replace(/ media=\"print\" onload=\"this\.media='all'"><noscript><link .+?><\/noscript>/g, '>')
: doc,
url: opts.url
}
}
];
});
}
const moduleOrFactory = this.moduleOrFactory || opts.bootstrap;
const factory = yield this.getFactory(moduleOrFactory);
return renderModuleFactory(factory, { extraProviders });
const html = yield renderModuleFactory(factory, { extraProviders });
if (!opts.inlineCriticalCss) {
return html;
}
const { content, errors, warnings } = yield this.inlineCriticalCssProcessor.process(html, {
outputPath: (_a = opts.publicPath) !== null && _a !== void 0 ? _a : (opts.documentFilePath ? dirname(opts.documentFilePath) : undefined),
});
// tslint:disable-next-line: no-console
warnings.forEach(m => console.warn(m));
// tslint:disable-next-line: no-console
errors.forEach(m => console.error(m));
return content;
});

@@ -93,2 +118,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9jb21tb24vZW5naW5lL3NyYy9lbmdpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQVksZUFBZSxFQUFFLGVBQWUsRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQVduQzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFjdkIsWUFBb0IsZUFBZ0QsRUFDaEQsWUFBOEIsRUFBRTtRQURoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUM7UUFDaEQsY0FBUyxHQUFULFNBQVMsQ0FBdUI7UUFKNUMsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQztRQUMzRCxrQkFBYSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0lBR0ssQ0FBQztJQWJ4RCx3REFBd0Q7SUFDeEQsV0FBVztRQUNULE1BQU0sZUFBZSxHQUFvQixxQkFBcUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFL0YsT0FBTyxlQUFlLENBQUMsY0FBYyxDQUFDO1lBQ3BDLEVBQUMsU0FBUyxFQUFFLENBQUMsRUFBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDLEVBQUM7U0FDekUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQVFEOzs7T0FHRztJQUNHLE1BQU0sQ0FBQyxJQUFtQjs7WUFDOUIsaUVBQWlFO1lBQ2pFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFJLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQSxDQUFDO1lBQ3BHLE1BQU0sY0FBYyxHQUFHO2dCQUNyQixHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7Z0JBQ3pCLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztnQkFDekI7b0JBQ0UsT0FBTyxFQUFFLGNBQWM7b0JBQ3ZCLFFBQVEsRUFBRTt3QkFDUixRQUFRLEVBQUUsR0FBRzt3QkFDYixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7cUJBQ2Q7aUJBQ0Y7YUFDRixDQUFDO1lBRUYsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQy9ELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUV2RCxPQUFPLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxFQUFDLGNBQWMsRUFBQyxDQUFDLENBQUM7UUFDeEQsQ0FBQztLQUFBO0lBRUQscURBQXFEO0lBQy9DLFVBQVUsQ0FBQyxlQUErQzs7WUFDOUQsa0NBQWtDO1lBQ2xDLElBQUksZUFBZSxZQUFZLGVBQWUsRUFBRTtnQkFDOUMsT0FBTyxlQUFlLENBQUM7YUFDeEI7aUJBQU07Z0JBQ0wsb0JBQW9CO2dCQUNwQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFFaEUsOEJBQThCO2dCQUM5QixJQUFJLGFBQWEsRUFBRTtvQkFDakIsT0FBTyxhQUFhLENBQUM7aUJBQ3RCO2dCQUVELGtDQUFrQztnQkFDbEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQzdFLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFFbkQsT0FBTyxPQUFPLENBQUM7YUFDaEI7UUFDSCxDQUFDO0tBQUE7SUFFRCw2REFBNkQ7SUFDdkQsV0FBVyxDQUFDLFFBQWdCOztZQUNoQyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUUzQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNSLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUN2QztZQUVELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7IFJlc291cmNlTG9hZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0IHsgQ29tcGlsZXIsIENvbXBpbGVyRmFjdG9yeSwgTmdNb2R1bGVGYWN0b3J5LCBTdGF0aWNQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU5JVElBTF9DT05GSUcsIHBsYXRmb3JtRHluYW1pY1NlcnZlciwgcmVuZGVyTW9kdWxlRmFjdG9yeSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLXNlcnZlcic7XG5cbmltcG9ydCB7IEZpbGVMb2FkZXIgfSBmcm9tICcuL2ZpbGUtbG9hZGVyJztcbmltcG9ydCB7IHJlYWRGaWxlIH0gZnJvbSAnLi91dGlscyc7XG5cbi8qKiBUaGVzZSBhcmUgdGhlIGFsbG93ZWQgb3B0aW9ucyBmb3IgdGhlIHJlbmRlciAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJPcHRpb25zIHtcbiAgYm9vdHN0cmFwOiBUeXBlPHt9PiB8IE5nTW9kdWxlRmFjdG9yeTx7fT47XG4gIHByb3ZpZGVycz86IFN0YXRpY1Byb3ZpZGVyW107XG4gIHVybD86IHN0cmluZztcbiAgZG9jdW1lbnQ/OiBzdHJpbmc7XG4gIGRvY3VtZW50RmlsZVBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBjb21tb24gcmVuZGVyaW5nIGVuZ2luZSB1dGlsaXR5LiBUaGlzIGFic3RyYWN0cyB0aGUgbG9naWNcbiAqIGZvciBoYW5kbGluZyB0aGUgcGxhdGZvcm1TZXJ2ZXIgY29tcGlsZXIsIHRoZSBtb2R1bGUgY2FjaGUsIGFuZFxuICogdGhlIGRvY3VtZW50IGxvYWRlclxuICovXG5leHBvcnQgY2xhc3MgQ29tbW9uRW5naW5lIHtcblxuICAvKiogUmV0dXJuIGFuIGluc3RhbmNlIG9mIHRoZSBwbGF0Zm9ybVNlcnZlciBjb21waWxlciAqL1xuICBnZXRDb21waWxlcigpOiBDb21waWxlciB7XG4gICAgY29uc3QgY29tcGlsZXJGYWN0b3J5OiBDb21waWxlckZhY3RvcnkgPSBwbGF0Zm9ybUR5bmFtaWNTZXJ2ZXIoKS5pbmplY3Rvci5nZXQoQ29tcGlsZXJGYWN0b3J5KTtcblxuICAgIHJldHVybiBjb21waWxlckZhY3RvcnkuY3JlYXRlQ29tcGlsZXIoW1xuICAgICAge3Byb3ZpZGVyczogW3twcm92aWRlOiBSZXNvdXJjZUxvYWRlciwgdXNlQ2xhc3M6IEZpbGVMb2FkZXIsIGRlcHM6IFtdfV19XG4gICAgXSk7XG4gIH1cblxuICBwcml2YXRlIGZhY3RvcnlDYWNoZU1hcCA9IG5ldyBNYXA8VHlwZTx7fT4sIE5nTW9kdWxlRmFjdG9yeTx7fT4+KCk7XG4gIHByaXZhdGUgdGVtcGxhdGVDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2R1bGVPckZhY3Rvcnk/OiBUeXBlPHt9PiB8IE5nTW9kdWxlRmFjdG9yeTx7fT4sXG4gICAgICAgICAgICAgIHByaXZhdGUgcHJvdmlkZXJzOiBTdGF0aWNQcm92aWRlcltdID0gW10pIHt9XG5cbiAgLyoqXG4gICAqIFJlbmRlciBhbiBIVE1MIGRvY3VtZW50IGZvciBhIHNwZWNpZmljIFVSTCB3aXRoIHNwZWNpZmllZFxuICAgKiByZW5kZXIgb3B0aW9uc1xuICAgKi9cbiAgYXN5bmMgcmVuZGVyKG9wdHM6IFJlbmRlck9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIC8vIGlmIG9wdHMuZG9jdW1lbnQgZG9zZW4ndCBleGlzdCB0aGVuIG9wdHMuZG9jdW1lbnRGaWxlUGF0aCBtdXN0XG4gICAgY29uc3QgZG9jID0gb3B0cy5kb2N1bWVudCB8fCBvcHRzLmRvY3VtZW50RmlsZVBhdGggJiYgYXdhaXQgdGhpcy5nZXREb2N1bWVudChvcHRzLmRvY3VtZW50RmlsZVBhdGgpO1xuICAgIGNvbnN0IGV4dHJhUHJvdmlkZXJzID0gW1xuICAgICAgLi4uKG9wdHMucHJvdmlkZXJzIHx8IFtdKSxcbiAgICAgIC4uLih0aGlzLnByb3ZpZGVycyB8fCBbXSksXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IElOSVRJQUxfQ09ORklHLFxuICAgICAgICB1c2VWYWx1ZToge1xuICAgICAgICAgIGRvY3VtZW50OiBkb2MsXG4gICAgICAgICAgdXJsOiBvcHRzLnVybFxuICAgICAgICB9XG4gICAgICB9XG4gICAgXTtcblxuICAgIGNvbnN0IG1vZHVsZU9yRmFjdG9yeSA9IHRoaXMubW9kdWxlT3JGYWN0b3J5IHx8IG9wdHMuYm9vdHN0cmFwO1xuICAgIGNvbnN0IGZhY3RvcnkgPSBhd2FpdCB0aGlzLmdldEZhY3RvcnkobW9kdWxlT3JGYWN0b3J5KTtcblxuICAgIHJldHVybiByZW5kZXJNb2R1bGVGYWN0b3J5KGZhY3RvcnksIHtleHRyYVByb3ZpZGVyc30pO1xuICB9XG5cbiAgLyoqIFJldHVybiB0aGUgZmFjdG9yeSBmb3IgYSBnaXZlbiBlbmdpbmUgaW5zdGFuY2UgKi9cbiAgYXN5bmMgZ2V0RmFjdG9yeShtb2R1bGVPckZhY3Rvcnk6IFR5cGU8e30+IHwgTmdNb2R1bGVGYWN0b3J5PHt9Pik6IFByb21pc2U8TmdNb2R1bGVGYWN0b3J5PHt9Pj4ge1xuICAgIC8vIElmIG1vZHVsZSBoYXMgYmVlbiBjb21waWxlZCBBb1RcbiAgICBpZiAobW9kdWxlT3JGYWN0b3J5IGluc3RhbmNlb2YgTmdNb2R1bGVGYWN0b3J5KSB7XG4gICAgICByZXR1cm4gbW9kdWxlT3JGYWN0b3J5O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB3ZSdyZSBpbiBKSVQgbW9kZVxuICAgICAgY29uc3QgbW9kdWxlRmFjdG9yeSA9IHRoaXMuZmFjdG9yeUNhY2hlTWFwLmdldChtb2R1bGVPckZhY3RvcnkpO1xuXG4gICAgICAvLyBJZiBtb2R1bGUgZmFjdG9yeSBpcyBjYWNoZWRcbiAgICAgIGlmIChtb2R1bGVGYWN0b3J5KSB7XG4gICAgICAgIHJldHVybiBtb2R1bGVGYWN0b3J5O1xuICAgICAgfVxuXG4gICAgICAvLyBDb21waWxlIHRoZSBtb2R1bGUgYW5kIGNhY2hlIGl0XG4gICAgICBjb25zdCBmYWN0b3J5ID0gYXdhaXQgdGhpcy5nZXRDb21waWxlcigpLmNvbXBpbGVNb2R1bGVBc3luYyhtb2R1bGVPckZhY3RvcnkpO1xuICAgICAgdGhpcy5mYWN0b3J5Q2FjaGVNYXAuc2V0KG1vZHVsZU9yRmFjdG9yeSwgZmFjdG9yeSk7XG5cbiAgICAgIHJldHVybiBmYWN0b3J5O1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXRyaWV2ZSB0aGUgZG9jdW1lbnQgZnJvbSB0aGUgY2FjaGUgb3IgdGhlIGZpbGVzeXN0ZW0gKi9cbiAgYXN5bmMgZ2V0RG9jdW1lbnQoZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgbGV0IGRvYyA9IHRoaXMudGVtcGxhdGVDYWNoZS5nZXQoZmlsZVBhdGgpO1xuXG4gICAgaWYgKCFkb2MpIHtcbiAgICAgIGRvYyA9IGF3YWl0IHJlYWRGaWxlKGZpbGVQYXRoLCAndXRmLTgnKTtcbiAgICAgIHRoaXMudGVtcGxhdGVDYWNoZS5zZXQoZmlsZVBhdGgsIGRvYyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRvYztcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9jb21tb24vZW5naW5lL3NyYy9lbmdpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQVksZUFBZSxFQUFFLGVBQWUsRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBcUJuQzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFldkIsWUFBb0IsZUFBZ0QsRUFDaEQsWUFBOEIsRUFBRTtRQURoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUM7UUFDaEQsY0FBUyxHQUFULFNBQVMsQ0FBdUI7UUFMNUMsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQztRQUMzRCxrQkFBYSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBS2hELElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLDBCQUEwQixDQUFDO1lBQy9ELE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQWxCRCx3REFBd0Q7SUFDeEQsV0FBVztRQUNULE1BQU0sZUFBZSxHQUFvQixxQkFBcUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFL0YsT0FBTyxlQUFlLENBQUMsY0FB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LENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQzdFLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFFbkQsT0FBTyxPQUFPLENBQUM7YUFDaEI7UUFDSCxDQUFDO0tBQUE7SUFFRCw2REFBNkQ7SUFDdkQsV0FBVyxDQUFDLFFBQWdCOztZQUNoQyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUUzQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNSLEdBQUcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUN2QztZQUVELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7IFJlc291cmNlTG9hZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0IHsgQ29tcGlsZXIsIENvbXBpbGVyRmFjdG9yeSwgTmdNb2R1bGVGYWN0b3J5LCBTdGF0aWNQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU5JVElBTF9DT05GSUcsIHBsYXRmb3JtRHluYW1pY1NlcnZlciwgcmVuZGVyTW9kdWxlRmFjdG9yeSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLXNlcnZlcic7XG5pbXBvcnQgeyBkaXJuYW1lIH0gZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IEZpbGVMb2FkZXIgfSBmcm9tICcuL2ZpbGUtbG9hZGVyJztcbmltcG9ydCB7IElubGluZUNyaXRpY2FsQ3NzUHJvY2Vzc29yIH0gZnJvbSAnLi9pbmxpbmUtY3NzLXByb2Nlc3Nvcic7XG5pbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gJy4vdXRpbHMnO1xuXG4vKiogVGhlc2UgYXJlIHRoZSBhbGxvd2VkIG9wdGlvbnMgZm9yIHRoZSByZW5kZXIgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyT3B0aW9ucyB7XG4gIGJvb3RzdHJhcDogVHlwZTx7fT4gfCBOZ01vZHVsZUZhY3Rvcnk8e30+O1xuICBwcm92aWRlcnM/OiBTdGF0aWNQcm92aWRlcltdO1xuICB1cmw/OiBzdHJpbmc7XG4gIGRvY3VtZW50Pzogc3RyaW5nO1xuICBkb2N1bWVudEZpbGVQYXRoPzogc3RyaW5nO1xuICAvKipcbiAgICogUmVkdWNlIHJlbmRlciBibG9ja2luZyByZXF1ZXN0cyBieSBpbmxpbmluZyBjcml0aWNhbCBDU1MuXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKi9cbiAgaW5saW5lQ3JpdGljYWxDc3M/OiBib29sZWFuO1xuICAvKipcbiAgICogQmFzZSBwYXRoIGxvY2F0aW9uIG9mIGluZGV4IGZpbGUuXG4gICAqIERlZmF1bHRzIHRvIHRoZSAnZG9jdW1lbnRGaWxlUGF0aCcgZGlybmFtZSB3aGVuIG5vdCBwcm92aWRlZC5cbiAgICovXG4gIHB1YmxpY1BhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBjb21tb24gcmVuZGVyaW5nIGVuZ2luZSB1dGlsaXR5LiBUaGlzIGFic3RyYWN0cyB0aGUgbG9naWNcbiAqIGZvciBoYW5kbGluZyB0aGUgcGxhdGZvcm1TZXJ2ZXIgY29tcGlsZXIsIHRoZSBtb2R1bGUgY2FjaGUsIGFuZFxuICogdGhlIGRvY3VtZW50IGxvYWRlclxuICovXG5leHBvcnQgY2xhc3MgQ29tbW9uRW5naW5lIHtcblxuICAvKiogUmV0dXJuIGFuIGluc3RhbmNlIG9mIHRoZSBwbGF0Zm9ybVNlcnZlciBjb21waWxlciAqL1xuICBnZXRDb21waWxlcigpOiBDb21waWxlciB7XG4gICAgY29uc3QgY29tcGlsZXJGYWN0b3J5OiBDb21waWxlckZhY3RvcnkgPSBwbGF0Zm9ybUR5bmFtaWNTZXJ2ZXIoKS5pbmplY3Rvci5nZXQoQ29tcGlsZXJGYWN0b3J5KTtcblxuICAgIHJldHVybiBjb21waWxlckZhY3RvcnkuY3JlYXRlQ29tcGlsZXIoW1xuICAgICAgeyBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFJlc291cmNlTG9hZGVyLCB1c2VDbGFzczogRmlsZUxvYWRlciwgZGVwczogW10gfV0gfVxuICAgIF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmYWN0b3J5Q2FjaGVNYXAgPSBuZXcgTWFwPFR5cGU8e30+LCBOZ01vZHVsZUZhY3Rvcnk8e30+PigpO1xuICBwcml2YXRlIHRlbXBsYXRlQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBwcml2YXRlIGlubGluZUNyaXRpY2FsQ3NzUHJvY2Vzc29yOiBJbmxpbmVDcml0aWNhbENzc1Byb2Nlc3NvcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZHVsZU9yRmFjdG9yeT86IFR5cGU8e30+IHwgTmdNb2R1bGVGYWN0b3J5PHt9PixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwcm92aWRlcnM6IFN0YXRpY1Byb3ZpZGVyW10gPSBbXSkge1xuICAgIHRoaXMuaW5saW5lQ3JpdGljYWxDc3NQcm9jZXNzb3IgPSBuZXcgSW5saW5lQ3JpdGljYWxDc3NQcm9jZXNzb3Ioe1xuICAgICAgbWluaWZ5OiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciBhbiBIVE1MIGRvY3VtZW50IGZvciBhIHNwZWNpZmljIFVSTCB3aXRoIHNwZWNpZmllZFxuICAgKiByZW5kZXIgb3B0aW9uc1xuICAgKi9cbiAgYXN5bmMgcmVuZGVyKG9wdHM6IFJlbmRlck9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIC8vIGlmIG9wdHMuZG9jdW1lbnQgZG9zZW4ndCBleGlzdCB0aGVuIG9wdHMuZG9jdW1lbnRGaWxlUGF0aCBtdXN0XG4gICAgY29uc3QgZXh0cmFQcm92aWRlcnMgPSBbXG4gICAgICAuLi4ob3B0cy5wcm92aWRlcnMgfHwgW10pLFxuICAgICAgLi4uKHRoaXMucHJvdmlkZXJzIHx8IFtdKSxcbiAgICBdO1xuXG4gICAgbGV0IGRvYyA9IG9wdHMuZG9jdW1lbnQ7XG4gICAgaWYgKCFkb2MgJiYgb3B0cy5kb2N1bWVudEZpbGVQYXRoKSB7XG4gICAgICBkb2MgPSBhd2FpdCB0aGlzLmdldERvY3VtZW50KG9wdHMuZG9jdW1lbnRGaWxlUGF0aCk7XG4gICAgfVxuXG4gICAgaWYgKGRvYykge1xuICAgICAgZXh0cmFQcm92aWRlcnMucHVzaCh7XG4gICAgICAgIHByb3ZpZGU6IElOSVRJQUxfQ09ORklHLFxuICAgICAgICB1c2VWYWx1ZToge1xuICAgICAgICAgIGRvY3VtZW50OiBvcHRzLmlubGluZUNyaXRpY2FsQ3NzXG4gICAgICAgICAgICAvLyBXb3JrYXJvdW5kIGZvciBodHRwczovL2dpdGh1Yi5jb20vR29vZ2xlQ2hyb21lTGFicy9jcml0dGVycy9pc3N1ZXMvNjRcbiAgICAgICAgICAgID8gZG9jLnJlcGxhY2UoLyBtZWRpYT1cXFwicHJpbnRcXFwiIG9ubG9hZD1cXFwidGhpc1xcLm1lZGlhPSdhbGwnXCI+PG5vc2NyaXB0PjxsaW5rIC4rPz48XFwvbm9zY3JpcHQ+L2csICc+JylcbiAgICAgICAgICAgIDogZG9jLFxuICAgICAgICAgIHVybDogb3B0cy51cmxcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgbW9kdWxlT3JGYWN0b3J5ID0gdGhpcy5tb2R1bGVPckZhY3RvcnkgfHwgb3B0cy5ib290c3RyYXA7XG4gICAgY29uc3QgZmFjdG9yeSA9IGF3YWl0IHRoaXMuZ2V0RmFjdG9yeShtb2R1bGVPckZhY3RvcnkpO1xuXG4gICAgY29uc3QgaHRtbCA9IGF3YWl0IHJlbmRlck1vZHVsZUZhY3RvcnkoZmFjdG9yeSwgeyBleHRyYVByb3ZpZGVycyB9KTtcbiAgICBpZiAoIW9wdHMuaW5saW5lQ3JpdGljYWxDc3MpIHtcbiAgICAgIHJldHVybiBodG1sO1xuICAgIH1cblxuICAgIGNvbnN0IHsgY29udGVudCwgZXJyb3JzLCB3YXJuaW5ncyB9ID0gYXdhaXQgdGhpcy5pbmxpbmVDcml0aWNhbENzc1Byb2Nlc3Nvci5wcm9jZXNzKGh0bWwsIHtcbiAgICAgIG91dHB1dFBhdGg6IG9wdHMucHVibGljUGF0aCA/PyAob3B0cy5kb2N1bWVudEZpbGVQYXRoID8gZGlybmFtZShvcHRzLmRvY3VtZW50RmlsZVBhdGgpIDogdW5kZWZpbmVkKSxcbiAgICB9KTtcblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxuICAgIHdhcm5pbmdzLmZvckVhY2gobSA9PiBjb25zb2xlLndhcm4obSkpO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tY29uc29sZVxuICAgIGVycm9ycy5mb3JFYWNoKG0gPT4gY29uc29sZS5lcnJvcihtKSk7XG5cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIC8qKiBSZXR1cm4gdGhlIGZhY3RvcnkgZm9yIGEgZ2l2ZW4gZW5naW5lIGluc3RhbmNlICovXG4gIGFzeW5jIGdldEZhY3RvcnkobW9kdWxlT3JGYWN0b3J5OiBUeXBlPHt9PiB8IE5nTW9kdWxlRmFjdG9yeTx7fT4pOiBQcm9taXNlPE5nTW9kdWxlRmFjdG9yeTx7fT4+IHtcbiAgICAvLyBJZiBtb2R1bGUgaGFzIGJlZW4gY29tcGlsZWQgQW9UXG4gICAgaWYgKG1vZHVsZU9yRmFjdG9yeSBpbnN0YW5jZW9mIE5nTW9kdWxlRmFjdG9yeSkge1xuICAgICAgcmV0dXJuIG1vZHVsZU9yRmFjdG9yeTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gd2UncmUgaW4gSklUIG1vZGVcbiAgICAgIGNvbnN0IG1vZHVsZUZhY3RvcnkgPSB0aGlzLmZhY3RvcnlDYWNoZU1hcC5nZXQobW9kdWxlT3JGYWN0b3J5KTtcblxuICAgICAgLy8gSWYgbW9kdWxlIGZhY3RvcnkgaXMgY2FjaGVkXG4gICAgICBpZiAobW9kdWxlRmFjdG9yeSkge1xuICAgICAgICByZXR1cm4gbW9kdWxlRmFjdG9yeTtcbiAgICAgIH1cblxuICAgICAgLy8gQ29tcGlsZSB0aGUgbW9kdWxlIGFuZCBjYWNoZSBpdFxuICAgICAgY29uc3QgZmFjdG9yeSA9IGF3YWl0IHRoaXMuZ2V0Q29tcGlsZXIoKS5jb21waWxlTW9kdWxlQXN5bmMobW9kdWxlT3JGYWN0b3J5KTtcbiAgICAgIHRoaXMuZmFjdG9yeUNhY2hlTWFwLnNldChtb2R1bGVPckZhY3RvcnksIGZhY3RvcnkpO1xuXG4gICAgICByZXR1cm4gZmFjdG9yeTtcbiAgICB9XG4gIH1cblxuICAvKiogUmV0cmlldmUgdGhlIGRvY3VtZW50IGZyb20gdGhlIGNhY2hlIG9yIHRoZSBmaWxlc3lzdGVtICovXG4gIGFzeW5jIGdldERvY3VtZW50KGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGxldCBkb2MgPSB0aGlzLnRlbXBsYXRlQ2FjaGUuZ2V0KGZpbGVQYXRoKTtcblxuICAgIGlmICghZG9jKSB7XG4gICAgICBkb2MgPSBhd2FpdCByZWFkRmlsZShmaWxlUGF0aCwgJ3V0Zi04Jyk7XG4gICAgICB0aGlzLnRlbXBsYXRlQ2FjaGUuc2V0KGZpbGVQYXRoLCBkb2MpO1xuICAgIH1cblxuICAgIHJldHVybiBkb2M7XG4gIH1cbn1cbiJdfQ==

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

import { readFile as readFile$1 } from 'fs';
import { promisify } from 'util';
import { __awaiter } from 'tslib';

@@ -7,2 +5,6 @@ import { ResourceLoader } from '@angular/compiler';

import { platformDynamicServer, INITIAL_CONFIG, renderModuleFactory } from '@angular/platform-server';
import { dirname } from 'path';
import { readFile as readFile$1 } from 'fs';
import { promisify } from 'util';
import Critters from 'critters';

@@ -26,2 +28,61 @@ /**

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
class CrittersExtended extends Critters {
constructor(optionsExtended, resourceCache) {
super({
logger: {
warn: (s) => this.warnings.push(s),
error: (s) => this.errors.push(s),
log: () => { },
info: () => { },
},
path: optionsExtended.outputPath,
publicPath: optionsExtended.deployUrl,
compress: !!optionsExtended.minify,
pruneSource: false,
reduceInlineStyles: false,
mergeStylesheets: false,
preload: 'media',
noscriptFallback: true,
});
this.optionsExtended = optionsExtended;
this.resourceCache = resourceCache;
this.warnings = [];
this.errors = [];
}
readFile(path) {
return __awaiter(this, void 0, void 0, function* () {
let resourceContent = this.resourceCache.get(path);
if (resourceContent === undefined) {
resourceContent = yield readFile(path, 'utf-8');
this.resourceCache.set(path, resourceContent);
}
return resourceContent;
});
}
}
class InlineCriticalCssProcessor {
constructor(options) {
this.options = options;
this.resourceCache = new Map();
}
process(html, options) {
return __awaiter(this, void 0, void 0, function* () {
const critters = new CrittersExtended(Object.assign(Object.assign({}, this.options), options), this.resourceCache);
const content = yield critters.process(html);
return {
content,
errors: critters.errors,
warnings: critters.warnings,
};
});
}
}
/**
* A common rendering engine utility. This abstracts the logic

@@ -37,2 +98,5 @@ * for handling the platformServer compiler, the module cache, and

this.templateCache = new Map();
this.inlineCriticalCssProcessor = new InlineCriticalCssProcessor({
minify: true,
});
}

@@ -51,19 +115,39 @@ /** Return an instance of the platformServer compiler */

render(opts) {
var _a;
return __awaiter(this, void 0, void 0, function* () {
// if opts.document dosen't exist then opts.documentFilePath must
const doc = opts.document || opts.documentFilePath && (yield this.getDocument(opts.documentFilePath));
const extraProviders = [
...(opts.providers || []),
...(this.providers || []),
{
];
let doc = opts.document;
if (!doc && opts.documentFilePath) {
doc = yield this.getDocument(opts.documentFilePath);
}
if (doc) {
extraProviders.push({
provide: INITIAL_CONFIG,
useValue: {
document: doc,
document: opts.inlineCriticalCss
// Workaround for https://github.com/GoogleChromeLabs/critters/issues/64
? doc.replace(/ media=\"print\" onload=\"this\.media='all'"><noscript><link .+?><\/noscript>/g, '>')
: doc,
url: opts.url
}
}
];
});
}
const moduleOrFactory = this.moduleOrFactory || opts.bootstrap;
const factory = yield this.getFactory(moduleOrFactory);
return renderModuleFactory(factory, { extraProviders });
const html = yield renderModuleFactory(factory, { extraProviders });
if (!opts.inlineCriticalCss) {
return html;
}
const { content, errors, warnings } = yield this.inlineCriticalCssProcessor.process(html, {
outputPath: (_a = opts.publicPath) !== null && _a !== void 0 ? _a : (opts.documentFilePath ? dirname(opts.documentFilePath) : undefined),
});
// tslint:disable-next-line: no-console
warnings.forEach(m => console.warn(m));
// tslint:disable-next-line: no-console
errors.forEach(m => console.error(m));
return content;
});

@@ -130,14 +214,6 @@ }

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
/**
* Generated bundle index. Do not edit.
*/
export { CommonEngine as ɵCommonEngine, FileLoader as ɵFileLoader };
export { CommonEngine as ɵCommonEngine, FileLoader as ɵFileLoader, InlineCriticalCssProcessor as ɵInlineCriticalCssProcessor };
//# sourceMappingURL=engine.js.map
{
"name": "@nguniversal/common",
"version": "11.0.1",
"version": "11.1.0-next.0",
"description": "Angular Universal common utilities",

@@ -14,7 +14,8 @@ "license": "MIT",

"dependencies": {
"critters": "0.0.6",
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/common": "^11.0.3",
"@angular/core": "^11.0.3"
"@angular/common": "^11.1.0-next.2",
"@angular/core": "^11.1.0-next.2"
},

@@ -21,0 +22,0 @@ "ng-update": {

@@ -225,3 +225,3 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

type: dependencies_1.NodeDependencyType.Dev,
version: '^11.0.1',
version: '^11.1.0-next.0',
});

@@ -228,0 +228,0 @@ return host;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc