@nguniversal/aspnetcore-engine
Advanced tools
Comparing version 11.0.0-next.1 to 11.0.0-next.2
(function (global, factory) { | ||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/compiler'), require('@angular/core'), require('@angular/platform-server'), require('@nguniversal/aspnetcore-engine/tokens'), require('fs'), require('@angular/platform-browser'), require('rxjs/operators')) : | ||
typeof define === 'function' && define.amd ? define('@nguniversal/aspnetcore-engine', ['exports', '@angular/common', '@angular/compiler', '@angular/core', '@angular/platform-server', '@nguniversal/aspnetcore-engine/tokens', 'fs', '@angular/platform-browser', 'rxjs/operators'], factory) : | ||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.nguniversal = global.nguniversal || {}, global.nguniversal.aspnetcoreEngine = {}), global.ng.common, global.ng.compiler, global.ng.core, global.ng.platformServer, global.nguniversal.aspnetcoreEngine.tokens, global.fs, global.ng.platformBrowser, global.rxjs.operators)); | ||
}(this, (function (exports, common, compiler, core, platformServer, tokens, fs, platformBrowser, operators) { 'use strict'; | ||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/compiler'), require('@angular/core'), require('@angular/platform-server'), require('@nguniversal/aspnetcore-engine/tokens'), require('@nguniversal/common/engine'), require('@angular/platform-browser'), require('rxjs/operators')) : | ||
typeof define === 'function' && define.amd ? define('@nguniversal/aspnetcore-engine', ['exports', '@angular/common', '@angular/compiler', '@angular/core', '@angular/platform-server', '@nguniversal/aspnetcore-engine/tokens', '@nguniversal/common/engine', '@angular/platform-browser', 'rxjs/operators'], factory) : | ||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.nguniversal = global.nguniversal || {}, global.nguniversal.aspnetcoreEngine = {}), global.ng.common, global.ng.compiler, global.ng.core, global.ng.platformServer, global.nguniversal.aspnetcoreEngine.tokens, global.nguniversal.common.engine, global.ng.platformBrowser, global.rxjs.operators)); | ||
}(this, (function (exports, common, compiler, core, platformServer, tokens, engine, platformBrowser, operators) { 'use strict'; | ||
@@ -308,19 +308,2 @@ /*! ***************************************************************************** | ||
/** ResourceLoader implementation for loading files */ | ||
var FileLoader = /** @class */ (function () { | ||
function FileLoader() { | ||
} | ||
FileLoader.prototype.get = function (url) { | ||
return new Promise(function (resolve, reject) { | ||
fs.readFile(url, function (err, data) { | ||
if (err) { | ||
return reject(err); | ||
} | ||
resolve(data.toString()); | ||
}); | ||
}); | ||
}; | ||
return FileLoader; | ||
}()); | ||
function _getPlatform(platformFactory, options) { | ||
@@ -413,71 +396,51 @@ var extraProviders = options.extraProviders ? options.extraProviders : []; | ||
/* @internal */ | ||
var UniversalData = /** @class */ (function () { | ||
function UniversalData() { | ||
this.appNode = ''; | ||
this.title = ''; | ||
this.scripts = ''; | ||
this.styles = ''; | ||
this.meta = ''; | ||
this.links = ''; | ||
} | ||
return UniversalData; | ||
}()); | ||
/* @internal */ | ||
var appSelector = 'app-root'; // default | ||
/* @internal */ | ||
function _getUniversalData(doc) { | ||
var STYLES = []; | ||
var SCRIPTS = []; | ||
var META = []; | ||
var LINKS = []; | ||
// tslint:disable-next-line: no-non-null-assertion | ||
for (var i = 0; i < doc.head.children.length; i++) { | ||
// tslint:disable-next-line: no-non-null-assertion | ||
var element = doc.head.children[i]; | ||
var tagName = element.tagName.toUpperCase(); | ||
switch (tagName) { | ||
case 'SCRIPT': | ||
SCRIPTS.push(element.outerHTML); | ||
break; | ||
case 'STYLE': | ||
STYLES.push(element.outerHTML); | ||
break; | ||
case 'LINK': | ||
LINKS.push(element.outerHTML); | ||
break; | ||
case 'META': | ||
META.push(element.outerHTML); | ||
break; | ||
default: | ||
break; | ||
var e_1, _a; | ||
var styles = []; | ||
var scripts = []; | ||
var meta = []; | ||
var links = []; | ||
// tslint:disable: no-non-null-assertion | ||
var elements = __spread(Array.from(doc.head.children), Array.from(doc.body.children)); | ||
try { | ||
// tslint:enable: no-non-null-assertion | ||
for (var elements_1 = __values(elements), elements_1_1 = elements_1.next(); !elements_1_1.done; elements_1_1 = elements_1.next()) { | ||
var element = elements_1_1.value; | ||
switch (element.tagName.toUpperCase()) { | ||
case 'SCRIPT': | ||
scripts.push(element.outerHTML); | ||
break; | ||
case 'STYLE': | ||
styles.push(element.outerHTML); | ||
break; | ||
case 'LINK': | ||
links.push(element.outerHTML); | ||
break; | ||
case 'META': | ||
meta.push(element.outerHTML); | ||
break; | ||
default: | ||
break; | ||
} | ||
} | ||
} | ||
for (var i = 0; i < doc.body.children.length; i++) { | ||
var element = doc.body.children[i]; | ||
var tagName = element.tagName.toUpperCase(); | ||
switch (tagName) { | ||
case 'SCRIPT': | ||
SCRIPTS.push(element.outerHTML); | ||
break; | ||
case 'STYLE': | ||
STYLES.push(element.outerHTML); | ||
break; | ||
case 'LINK': | ||
LINKS.push(element.outerHTML); | ||
break; | ||
case 'META': | ||
META.push(element.outerHTML); | ||
break; | ||
default: | ||
break; | ||
catch (e_1_1) { e_1 = { error: e_1_1 }; } | ||
finally { | ||
try { | ||
if (elements_1_1 && !elements_1_1.done && (_a = elements_1.return)) _a.call(elements_1); | ||
} | ||
finally { if (e_1) throw e_1.error; } | ||
} | ||
return { | ||
title: doc.title, | ||
// tslint:disable-next-line: no-non-null-assertion | ||
appNode: doc.querySelector(appSelector).outerHTML, | ||
scripts: SCRIPTS.join('\n'), | ||
styles: STYLES.join('\n'), | ||
meta: META.join('\n'), | ||
links: LINKS.join('\n') | ||
html: doc.querySelector(appSelector).outerHTML, | ||
globals: { | ||
title: doc.title, | ||
scripts: scripts.join('\n'), | ||
styles: styles.join('\n'), | ||
meta: meta.join('\n'), | ||
links: links.join('\n') | ||
} | ||
}; | ||
@@ -487,3 +450,3 @@ } | ||
return __awaiter(this, void 0, void 0, function () { | ||
var selector, compilerFactory, compiler$1, moduleOrFactory, extraProviders, factory, result, doc, universalData; | ||
var selector, compilerFactory, compiler$1, moduleOrFactory, extraProviders, factory, result, doc; | ||
return __generator(this, function (_a) { | ||
@@ -502,3 +465,3 @@ switch (_a.label) { | ||
providers: [ | ||
{ provide: compiler.ResourceLoader, useClass: FileLoader, deps: [] } | ||
{ provide: compiler.ResourceLoader, useClass: engine.ɵFileLoader, deps: [] } | ||
] | ||
@@ -525,14 +488,3 @@ } | ||
doc = result.moduleRef.injector.get(common.DOCUMENT); | ||
universalData = _getUniversalData(doc); | ||
return [2 /*return*/, { | ||
html: universalData.appNode, | ||
moduleRef: result.moduleRef, | ||
globals: { | ||
styles: universalData.styles, | ||
title: universalData.title, | ||
scripts: universalData.scripts, | ||
meta: universalData.meta, | ||
links: universalData.links | ||
} | ||
}]; | ||
return [2 /*return*/, Object.assign({ moduleRef: result.moduleRef }, _getUniversalData(doc))]; | ||
} | ||
@@ -539,0 +491,0 @@ }); |
@@ -1,2 +0,2 @@ | ||
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@angular/common"),require("@angular/compiler"),require("@angular/core"),require("@angular/platform-server"),require("@nguniversal/aspnetcore-engine/tokens"),require("fs"),require("@angular/platform-browser"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@nguniversal/aspnetcore-engine",["exports","@angular/common","@angular/compiler","@angular/core","@angular/platform-server","@nguniversal/aspnetcore-engine/tokens","fs","@angular/platform-browser","rxjs/operators"],r):r(((e="undefined"!=typeof globalThis?globalThis:e||self).nguniversal=e.nguniversal||{},e.nguniversal.aspnetcoreEngine={}),e.ng.common,e.ng.compiler,e.ng.core,e.ng.platformServer,e.nguniversal.aspnetcoreEngine.tokens,e.fs,e.ng.platformBrowser,e.rxjs.operators)}(this,(function(e,r,t,n,o,i,a,u,s){"use strict"; | ||
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@angular/common"),require("@angular/compiler"),require("@angular/core"),require("@angular/platform-server"),require("@nguniversal/aspnetcore-engine/tokens"),require("@nguniversal/common/engine"),require("@angular/platform-browser"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@nguniversal/aspnetcore-engine",["exports","@angular/common","@angular/compiler","@angular/core","@angular/platform-server","@nguniversal/aspnetcore-engine/tokens","@nguniversal/common/engine","@angular/platform-browser","rxjs/operators"],r):r(((e="undefined"!=typeof globalThis?globalThis:e||self).nguniversal=e.nguniversal||{},e.nguniversal.aspnetcoreEngine={}),e.ng.common,e.ng.compiler,e.ng.core,e.ng.platformServer,e.nguniversal.aspnetcoreEngine.tokens,e.nguniversal.common.engine,e.ng.platformBrowser,e.rxjs.operators)}(this,(function(e,r,n,t,o,i,a,u,l){"use strict"; | ||
/*! ***************************************************************************** | ||
@@ -15,3 +15,3 @@ Copyright (c) Microsoft Corporation. | ||
PERFORMANCE OF THIS SOFTWARE. | ||
***************************************************************************** */function l(e,r,t,n){return new(t||(t=Promise))((function(o,i){function a(e){try{s(n.next(e))}catch(e){i(e)}}function u(e){try{s(n.throw(e))}catch(e){i(e)}}function s(e){e.done?o(e.value):function r(e){return e instanceof t?e:new t((function(r){r(e)}))}(e.value).then(a,u)}s((n=n.apply(e,r||[])).next())}))}function c(e,r){var t,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 s(i){if(t)throw new TypeError("Generator is already executing.");for(;a;)try{if(t=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=r.call(e,a)}catch(e){i=[6,e],n=0}finally{t=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}function p(e,r){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var n,o,i=t.call(e),a=[];try{for(;(void 0===r||r-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return a}var f=function(){function e(){}return e.prototype.get=function(e){return new Promise((function(r,t){a.readFile(e,(function(e,n){if(e)return t(e);r(n.toString())}))}))},e}();function d(e,r){var t=function i(e,r){return e([{provide:o.INITIAL_CONFIG,useValue:{document:r.document,url:r.url}},r.extraProviders?r.extraProviders:[]])}(o.platformServer,r);return function a(e,r){return l(this,void 0,void 0,(function(){var t,i,a,l,p,f,d,h,g;return c(this,(function(c){switch(c.label){case 0:return[4,r];case 1:if(!(t=c.sent()).injector.get(u.ɵTRANSITION_ID,null))throw new Error("renderModule[Factory]() requires the use of BrowserModule.withServerTransition() to ensure\n the server-rendered app can be properly bootstrapped into a client app.");return[4,t.injector.get(n.ApplicationRef).isStable.pipe(s.first((function(e){return e}))).toPromise()];case 2:if(c.sent(),i=e.injector.get(o.PlatformState),a=t.injector.get(o.BEFORE_APP_SERIALIZED,null))try{for(l=function v(e){var r="function"==typeof Symbol&&Symbol.iterator,t=r&&e[r],n=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}(a),p=l.next();!p.done;p=l.next()){f=p.value;try{f()}catch(e){console.warn("Ignoring BEFORE_APP_SERIALIZED Exception: ",e)}}}catch(e){h={error:e}}finally{try{p&&!p.done&&(g=l.return)&&g.call(l)}finally{if(h)throw h.error}}return d=i.renderToString(),e.destroy(),[2,{html:d,moduleRef:t}]}}))}))}(t,t.bootstrapModuleFactory(e))}var h="app-root",g=new Map;function v(e,r){return l(this,void 0,void 0,(function(){var t,o;return c(this,(function(i){switch(i.label){case 0:return e instanceof n.NgModuleFactory?[2,e]:[3,1];case 1:return(t=g.get(e))?[2,t]:[4,r.compileModuleAsync(e)];case 2:return o=i.sent(),g.set(e,o),[2,o]}}))}))} | ||
***************************************************************************** */function c(e,r,n,t){return new(n||(n=Promise))((function(o,i){function a(e){try{l(t.next(e))}catch(e){i(e)}}function u(e){try{l(t.throw(e))}catch(e){i(e)}}function l(e){e.done?o(e.value):function r(e){return e instanceof n?e:new n((function(r){r(e)}))}(e.value).then(a,u)}l((t=t.apply(e,r||[])).next())}))}function s(e,r){var n,t,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 l(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,t&&(o=2&i[0]?t.return:i[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,i[1])).done)return o;switch(t=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++,t=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=r.call(e,a)}catch(e){i=[6,e],t=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}function f(e){var r="function"==typeof Symbol&&Symbol.iterator,n=r&&e[r],t=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&t>=e.length&&(e=void 0),{value:e&&e[t++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}function p(e,r){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var t,o,i=n.call(e),a=[];try{for(;(void 0===r||r-- >0)&&!(t=i.next()).done;)a.push(t.value)}catch(e){o={error:e}}finally{try{t&&!t.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}function d(){for(var e=[],r=0;r<arguments.length;r++)e=e.concat(p(arguments[r]));return e}function g(e,r){var n=function i(e,r){return e([{provide:o.INITIAL_CONFIG,useValue:{document:r.document,url:r.url}},r.extraProviders?r.extraProviders:[]])}(o.platformServer,r);return function a(e,r){return c(this,void 0,void 0,(function(){var n,i,a,c,p,d,g,v,y;return s(this,(function(s){switch(s.label){case 0:return[4,r];case 1:if(!(n=s.sent()).injector.get(u.ɵTRANSITION_ID,null))throw new Error("renderModule[Factory]() requires the use of BrowserModule.withServerTransition() to ensure\n the server-rendered app can be properly bootstrapped into a client app.");return[4,n.injector.get(t.ApplicationRef).isStable.pipe(l.first((function(e){return e}))).toPromise()];case 2:if(s.sent(),i=e.injector.get(o.PlatformState),a=n.injector.get(o.BEFORE_APP_SERIALIZED,null))try{for(c=f(a),p=c.next();!p.done;p=c.next()){d=p.value;try{d()}catch(e){console.warn("Ignoring BEFORE_APP_SERIALIZED Exception: ",e)}}}catch(e){v={error:e}}finally{try{p&&!p.done&&(y=c.return)&&y.call(c)}finally{if(v)throw v.error}}return g=i.renderToString(),e.destroy(),[2,{html:g,moduleRef:n}]}}))}))}(n,n.bootstrapModuleFactory(e))}var v="app-root";function y(e){var r,n,t=[],o=[],i=[],a=[],u=d(Array.from(e.head.children),Array.from(e.body.children));try{for(var l=f(u),c=l.next();!c.done;c=l.next()){var s=c.value;switch(s.tagName.toUpperCase()){case"SCRIPT":o.push(s.outerHTML);break;case"STYLE":t.push(s.outerHTML);break;case"LINK":a.push(s.outerHTML);break;case"META":i.push(s.outerHTML)}}}catch(e){r={error:e}}finally{try{c&&!c.done&&(n=l.return)&&n.call(l)}finally{if(r)throw r.error}}return{html:e.querySelector(v).outerHTML,globals:{title:e.title,scripts:o.join("\n"),styles:t.join("\n"),meta:i.join("\n"),links:a.join("\n")}}}var m=new Map;function h(e,r){return c(this,void 0,void 0,(function(){var n,o;return s(this,(function(i){switch(i.label){case 0:return e instanceof t.NgModuleFactory?[2,e]:[3,1];case 1:return(n=m.get(e))?[2,n]:[4,r.compileModuleAsync(e)];case 2:return o=i.sent(),m.set(e,o),[2,o]}}))}))} | ||
/** | ||
@@ -38,2 +38,2 @@ * @license | ||
*/ | ||
e.createTransferScript=function y(e){return"<script>window['TRANSFER_CACHE'] = "+JSON.stringify(e)+";<\/script>"},e.ngAspnetCoreEngine=function m(e){return l(this,void 0,void 0,(function(){var a,u,s,l,g,y,m;return c(this,(function(c){switch(c.label){case 0:if(!e.appSelector)throw new Error("appSelector is required! Pass in \" appSelector: '<"+h+"></"+h+">' \",\n for your root App component.");if(h=e.appSelector.substring(1,e.appSelector.indexOf(">")),a=o.platformDynamicServer().injector.get(n.CompilerFactory),u=a.createCompiler([{providers:[{provide:t.ResourceLoader,useClass:f,deps:[]}]}]),!(s=e.ngModule))throw new Error("You must pass in a NgModule or NgModuleFactory to be bootstrapped");return l=function b(){for(var e=[],r=0;r<arguments.length;r++)e=e.concat(p(arguments[r]));return e}(e.providers||[],[(S=e.request.origin,T=e.request.data.request,E=[{provide:i.ORIGIN_URL,useValue:S},{provide:i.REQUEST,useValue:T}],E)]),[4,v(s,u)];case 1:return[4,d(c.sent(),{document:e.document||e.appSelector,url:e.url||e.request.absoluteUrl,extraProviders:l})];case 2:return g=c.sent(),y=g.moduleRef.injector.get(r.DOCUMENT),[2,{html:(m=function w(e){for(var r=[],t=[],n=[],o=[],i=0;i<e.head.children.length;i++)switch((a=e.head.children[i]).tagName.toUpperCase()){case"SCRIPT":t.push(a.outerHTML);break;case"STYLE":r.push(a.outerHTML);break;case"LINK":o.push(a.outerHTML);break;case"META":n.push(a.outerHTML)}for(i=0;i<e.body.children.length;i++){var a;switch((a=e.body.children[i]).tagName.toUpperCase()){case"SCRIPT":t.push(a.outerHTML);break;case"STYLE":r.push(a.outerHTML);break;case"LINK":o.push(a.outerHTML);break;case"META":n.push(a.outerHTML)}}return{title:e.title,appNode:e.querySelector(h).outerHTML,scripts:t.join("\n"),styles:r.join("\n"),meta:n.join("\n"),links:o.join("\n")}}(y)).appNode,moduleRef:g.moduleRef,globals:{styles:m.styles,title:m.title,scripts:m.scripts,meta:m.meta,links:m.links}}]}var S,T,E}))}))},Object.defineProperty(e,"__esModule",{value:!0})})); | ||
e.createTransferScript=function b(e){return"<script>window['TRANSFER_CACHE'] = "+JSON.stringify(e)+";<\/script>"},e.ngAspnetCoreEngine=function w(e){return c(this,void 0,void 0,(function(){var u,l,c,f,p,m;return s(this,(function(s){switch(s.label){case 0:if(!e.appSelector)throw new Error("appSelector is required! Pass in \" appSelector: '<"+v+"></"+v+">' \",\n for your root App component.");if(v=e.appSelector.substring(1,e.appSelector.indexOf(">")),u=o.platformDynamicServer().injector.get(t.CompilerFactory),l=u.createCompiler([{providers:[{provide:n.ResourceLoader,useClass:a.ɵFileLoader,deps:[]}]}]),!(c=e.ngModule))throw new Error("You must pass in a NgModule or NgModuleFactory to be bootstrapped");return f=d(e.providers||[],[(b=e.request.origin,w=e.request.data.request,S=[{provide:i.ORIGIN_URL,useValue:b},{provide:i.REQUEST,useValue:w}],S)]),[4,h(c,l)];case 1:return[4,g(s.sent(),{document:e.document||e.appSelector,url:e.url||e.request.absoluteUrl,extraProviders:f})];case 2:return p=s.sent(),m=p.moduleRef.injector.get(r.DOCUMENT),[2,Object.assign({moduleRef:p.moduleRef},y(m))]}var b,w,S}))}))},Object.defineProperty(e,"__esModule",{value:!0})})); |
@@ -14,40 +14,31 @@ import { __awaiter } from "tslib"; | ||
import { ORIGIN_URL, REQUEST } from '@nguniversal/aspnetcore-engine/tokens'; | ||
import { FileLoader } from './file-loader'; | ||
import { ɵFileLoader } from '@nguniversal/common/engine'; | ||
import { renderModuleFactory } from './platform-server-utils'; | ||
/* @internal */ | ||
export class UniversalData { | ||
constructor() { | ||
this.appNode = ''; | ||
this.title = ''; | ||
this.scripts = ''; | ||
this.styles = ''; | ||
this.meta = ''; | ||
this.links = ''; | ||
} | ||
} | ||
/* @internal */ | ||
let appSelector = 'app-root'; // default | ||
/* @internal */ | ||
function _getUniversalData(doc) { | ||
const STYLES = []; | ||
const SCRIPTS = []; | ||
const META = []; | ||
const LINKS = []; | ||
// tslint:disable-next-line: no-non-null-assertion | ||
for (let i = 0; i < doc.head.children.length; i++) { | ||
// tslint:disable-next-line: no-non-null-assertion | ||
const element = doc.head.children[i]; | ||
const tagName = element.tagName.toUpperCase(); | ||
switch (tagName) { | ||
const styles = []; | ||
const scripts = []; | ||
const meta = []; | ||
const links = []; | ||
// tslint:disable: no-non-null-assertion | ||
const elements = [ | ||
...Array.from(doc.head.children), | ||
...Array.from(doc.body.children), | ||
]; | ||
// tslint:enable: no-non-null-assertion | ||
for (const element of elements) { | ||
switch (element.tagName.toUpperCase()) { | ||
case 'SCRIPT': | ||
SCRIPTS.push(element.outerHTML); | ||
scripts.push(element.outerHTML); | ||
break; | ||
case 'STYLE': | ||
STYLES.push(element.outerHTML); | ||
styles.push(element.outerHTML); | ||
break; | ||
case 'LINK': | ||
LINKS.push(element.outerHTML); | ||
links.push(element.outerHTML); | ||
break; | ||
case 'META': | ||
META.push(element.outerHTML); | ||
meta.push(element.outerHTML); | ||
break; | ||
@@ -58,30 +49,12 @@ default: | ||
} | ||
for (let i = 0; i < doc.body.children.length; i++) { | ||
const element = doc.body.children[i]; | ||
const tagName = element.tagName.toUpperCase(); | ||
switch (tagName) { | ||
case 'SCRIPT': | ||
SCRIPTS.push(element.outerHTML); | ||
break; | ||
case 'STYLE': | ||
STYLES.push(element.outerHTML); | ||
break; | ||
case 'LINK': | ||
LINKS.push(element.outerHTML); | ||
break; | ||
case 'META': | ||
META.push(element.outerHTML); | ||
break; | ||
default: | ||
break; | ||
} | ||
} | ||
return { | ||
title: doc.title, | ||
// tslint:disable-next-line: no-non-null-assertion | ||
appNode: doc.querySelector(appSelector).outerHTML, | ||
scripts: SCRIPTS.join('\n'), | ||
styles: STYLES.join('\n'), | ||
meta: META.join('\n'), | ||
links: LINKS.join('\n') | ||
html: doc.querySelector(appSelector).outerHTML, | ||
globals: { | ||
title: doc.title, | ||
scripts: scripts.join('\n'), | ||
styles: styles.join('\n'), | ||
meta: meta.join('\n'), | ||
links: links.join('\n') | ||
} | ||
}; | ||
@@ -102,3 +75,3 @@ } | ||
providers: [ | ||
{ provide: ResourceLoader, useClass: FileLoader, deps: [] } | ||
{ provide: ResourceLoader, useClass: ɵFileLoader, deps: [] } | ||
] | ||
@@ -122,14 +95,3 @@ } | ||
const doc = result.moduleRef.injector.get(DOCUMENT); | ||
const universalData = _getUniversalData(doc); | ||
return { | ||
html: universalData.appNode, | ||
moduleRef: result.moduleRef, | ||
globals: { | ||
styles: universalData.styles, | ||
title: universalData.title, | ||
scripts: universalData.scripts, | ||
meta: universalData.meta, | ||
links: universalData.links | ||
} | ||
}; | ||
return Object.assign({ moduleRef: result.moduleRef }, _getUniversalData(doc)); | ||
}); | ||
@@ -174,2 +136,2 @@ } | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvYXNwbmV0Y29yZS1lbmdpbmUvc3JjL21haW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFZLGVBQWUsRUFBRSxlQUFlLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxlQUFlO0FBQ2YsTUFBTSxPQUFPLGFBQWE7SUFBMUI7UUFDRSxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLFVBQUssR0FBRyxFQUFFLENBQUM7SUFDYixDQUFDO0NBQUE7QUFFRCxlQUFlO0FBQ2YsSUFBSSxXQUFXLEdBQUcsVUFBVSxDQUFDLENBQUMsVUFBVTtBQUV4QyxlQUFlO0FBQ2YsU0FBUyxpQkFBaUIsQ0FBQyxHQUFhO0lBRXRDLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUM7SUFDN0IsTUFBTSxJQUFJLEdBQWEsRUFBRSxDQUFDO0lBQzFCLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQztJQUUzQixrREFB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Q0FBQztTQUNoQjtJQUNILENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVzb3VyY2VMb2FkZXIgfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQgeyBDb21waWxlciwgQ29tcGlsZXJGYWN0b3J5LCBOZ01vZHVsZUZhY3RvcnksIFN0YXRpY1Byb3ZpZGVyLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwbGF0Zm9ybUR5bmFtaWNTZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1zZXJ2ZXInO1xuXG5pbXBvcnQgeyBPUklHSU5fVVJMLCBSRVFVRVNUIH0gZnJvbSAnQG5ndW5pdmVyc2FsL2FzcG5ldGNvcmUtZW5naW5lL3Rva2Vucyc7XG5pbXBvcnQgeyBGaWxlTG9hZGVyIH0gZnJvbSAnLi9maWxlLWxvYWRlcic7XG5pbXBvcnQgeyBJRW5naW5lT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcy9lbmdpbmUtb3B0aW9ucyc7XG5pbXBvcnQgeyBJRW5naW5lUmVuZGVyUmVzdWx0IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2VuZ2luZS1yZW5kZXItcmVzdWx0JztcbmltcG9ydCB7IHJlbmRlck1vZHVsZUZhY3RvcnkgfSBmcm9tICcuL3BsYXRmb3JtLXNlcnZlci11dGlscyc7XG5cbi8qIEBpbnRlcm5hbCAqL1xuZXhwb3J0IGNsYXNzIFVuaXZlcnNhbERhdGEge1xuICBhcHBOb2RlID0gJyc7XG4gIHRpdGxlID0gJyc7XG4gIHNjcmlwdHMgPSAnJztcbiAgc3R5bGVzID0gJyc7XG4gIG1ldGEgPSAnJztcbiAgbGlua3MgPSAnJztcbn1cblxuLyogQGludGVybmFsICovXG5sZXQgYXBwU2VsZWN0b3IgPSAnYXBwLXJvb3QnOyAvLyBkZWZhdWx0XG5cbi8qIEBpbnRlcm5hbCAqL1xuZnVuY3Rpb24gX2dldFVuaXZlcnNhbERhdGEoZG9jOiBEb2N1bWVudCk6IFVuaXZlcnNhbERhdGEge1xuXG4gIGNvbnN0IFNUWUxFUzogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgU0NSSVBUUzogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgTUVUQTogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgTElOS1M6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1ub24tbnVsbC1hc3NlcnRpb25cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBkb2MuaGVhZCEuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW5vbi1udWxsLWFzc2VydGlvblxuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2MuaGVhZCEuY2hpbGRyZW5baV07XG4gICAgY29uc3QgdGFnTmFtZSA9IGVsZW1lbnQudGFnTmFtZS50b1VwcGVyQ2FzZSgpO1xuXG4gICAgc3dpdGNoICh0YWdOYW1lKSB7XG4gICAgICBjYXNlICdTQ1JJUFQnOlxuICAgICAgICBTQ1JJUFRTLnB1c2goZWxlbWVudC5vdXRlckhUTUwpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1NUWUxFJzpcbiAgICAgICAgU1RZTEVTLnB1c2goZWxlbWVudC5vdXRlckhUTUwpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0xJTksnOlxuICAgICAgICBMSU5LUy5wdXNoKGVsZW1lbnQub3V0ZXJIVE1MKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdNRVRBJzpcbiAgICAgICAgTUVUQS5wdXNoKGVsZW1lbnQub3V0ZXJIVE1MKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGRvYy5ib2R5LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgZWxlbWVudDogRWxlbWVudCA9IGRvYy5ib2R5LmNoaWxkcmVuW2ldO1xuICAgIGNvbnN0IHRhZ05hbWUgPSBlbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKTtcblxuICAgIHN3aXRjaCAodGFnTmFtZSkge1xuICAgICAgY2FzZSAnU0NSSVBUJzpcbiAgICAgICAgU0NSSVBUUy5wdXNoKGVsZW1lbnQub3V0ZXJIVE1MKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdTVFlMRSc6XG4gICAgICAgIFNUWUxFUy5wdXNoKGVsZW1lbnQub3V0ZXJIVE1MKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdMSU5LJzpcbiAgICAgICAgTElOS1MucHVzaChlbGVtZW50Lm91dGVySFRNTCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTUVUQSc6XG4gICAgICAgIE1FVEEucHVzaChlbGVtZW50Lm91dGVySFRNTCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0aXRsZTogZG9jLnRpdGxlLFxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgYXBwTm9kZTogZG9jLnF1ZXJ5U2VsZWN0b3IoYXBwU2VsZWN0b3IpIS5vdXRlckhUTUwsXG4gICAgc2NyaXB0czogU0NSSVBUUy5qb2luKCdcXG4nKSxcbiAgICBzdHlsZXM6IFNUWUxFUy5qb2luKCdcXG4nKSxcbiAgICBtZXRhOiBNRVRBLmpvaW4oJ1xcbicpLFxuICAgIGxpbmtzOiBMSU5LUy5qb2luKCdcXG4nKVxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbmdBc3BuZXRDb3JlRW5naW5lKG9wdGlvbnM6IFJlYWRvbmx5PElFbmdpbmVPcHRpb25zPilcbiAgOiBQcm9taXNlPElFbmdpbmVSZW5kZXJSZXN1bHQ+IHtcbiAgaWYgKCFvcHRpb25zLmFwcFNlbGVjdG9yKSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBgXCIgYXBwU2VsZWN0b3I6ICc8JHthcHBTZWxlY3Rvcn0+PC8ke2FwcFNlbGVjdG9yfT4nIFwiYDtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGFwcFNlbGVjdG9yIGlzIHJlcXVpcmVkISBQYXNzIGluICR7c2VsZWN0b3J9LFxuICAgICBmb3IgeW91ciByb290IEFwcCBjb21wb25lbnQuYCk7XG4gIH1cblxuICAvLyBHcmFiIHRoZSBET00gXCJzZWxlY3RvclwiIGZyb20gdGhlIHBhc3NlZCBpbiBUZW1wbGF0ZSA8YXBwLXJvb3Q+IGZvciBleGFtcGxlID0gXCJhcHAtcm9vdFwiXG4gIGFwcFNlbGVjdG9yID0gb3B0aW9ucy5hcHBTZWxlY3Rvci5zdWJzdHJpbmcoMSwgb3B0aW9ucy5hcHBTZWxlY3Rvci5pbmRleE9mKCc+JykpO1xuXG4gIGNvbnN0IGNvbXBpbGVyRmFjdG9yeTogQ29tcGlsZXJGYWN0b3J5ID0gcGxhdGZvcm1EeW5hbWljU2VydmVyKCkuaW5qZWN0b3IuZ2V0KENvbXBpbGVyRmFjdG9yeSk7XG4gIGNvbnN0IGNvbXBpbGVyOiBDb21waWxlciA9IGNvbXBpbGVyRmFjdG9yeS5jcmVhdGVDb21waWxlcihbXG4gICAge1xuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogUmVzb3VyY2VMb2FkZXIsIHVzZUNsYXNzOiBGaWxlTG9hZGVyLCBkZXBzOiBbXSB9XG4gICAgICBdXG4gICAgfVxuICBdKTtcblxuICBjb25zdCBtb2R1bGVPckZhY3RvcnkgPSBvcHRpb25zLm5nTW9kdWxlO1xuICBpZiAoIW1vZHVsZU9yRmFjdG9yeSkge1xuICAgIHRocm93IG5ldyBFcnJvcignWW91IG11c3QgcGFzcyBpbiBhIE5nTW9kdWxlIG9yIE5nTW9kdWxlRmFjdG9yeSB0byBiZSBib290c3RyYXBwZWQnKTtcbiAgfVxuXG4gIGNvbnN0IGV4dHJhUHJvdmlkZXJzID0gW1xuICAgIC4uLihvcHRpb25zLnByb3ZpZGVycyB8fCBbXSksXG4gICAgZ2V0UmVxUmVzUHJvdmlkZXJzKG9wdGlvbnMucmVxdWVzdC5vcmlnaW4sIG9wdGlvbnMucmVxdWVzdC5kYXRhLnJlcXVlc3QpLFxuICBdO1xuXG4gIGNvbnN0IGZhY3RvcnkgPSBhd2FpdCBnZXRGYWN0b3J5KG1vZHVsZU9yRmFjdG9yeSwgY29tcGlsZXIpO1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCByZW5kZXJNb2R1bGVGYWN0b3J5KGZhY3RvcnksIHtcbiAgICBkb2N1bWVudDogb3B0aW9ucy5kb2N1bWVudCB8fCBvcHRpb25zLmFwcFNlbGVjdG9yLFxuICAgIHVybDogb3B0aW9ucy51cmwgfHwgb3B0aW9ucy5yZXF1ZXN0LmFic29sdXRlVXJsLFxuICAgIGV4dHJhUHJvdmlkZXJzLFxuICB9KTtcblxuICBjb25zdCBkb2MgPSByZXN1bHQubW9kdWxlUmVmLmluamVjdG9yLmdldChET0NVTUVOVCk7XG4gIGNvbnN0IHVuaXZlcnNhbERhdGEgPSBfZ2V0VW5pdmVyc2FsRGF0YShkb2MpO1xuXG4gIHJldHVybiB7XG4gICAgaHRtbDogdW5pdmVyc2FsRGF0YS5hcHBOb2RlLFxuICAgIG1vZHVsZVJlZjogcmVzdWx0Lm1vZHVsZVJlZixcbiAgICBnbG9iYWxzOiB7XG4gICAgICBzdHlsZXM6IHVuaXZlcnNhbERhdGEuc3R5bGVzLFxuICAgICAgdGl0bGU6IHVuaXZlcnNhbERhdGEudGl0bGUsXG4gICAgICBzY3JpcHRzOiB1bml2ZXJzYWxEYXRhLnNjcmlwdHMsXG4gICAgICBtZXRhOiB1bml2ZXJzYWxEYXRhLm1ldGEsXG4gICAgICBsaW5rczogdW5pdmVyc2FsRGF0YS5saW5rc1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgcHJvdmlkZXJzIG9mIHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZVxuICovXG5mdW5jdGlvbiBnZXRSZXFSZXNQcm92aWRlcnMob3JpZ2luOiBzdHJpbmcsIHJlcXVlc3Q6IHN0cmluZyk6IFN0YXRpY1Byb3ZpZGVyW10ge1xuICBjb25zdCBwcm92aWRlcnM6IFN0YXRpY1Byb3ZpZGVyW10gPSBbXG4gICAge1xuICAgICAgcHJvdmlkZTogT1JJR0lOX1VSTCxcbiAgICAgIHVzZVZhbHVlOiBvcmlnaW5cbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJFUVVFU1QsXG4gICAgICB1c2VWYWx1ZTogcmVxdWVzdFxuICAgIH1cbiAgXTtcblxuICByZXR1cm4gcHJvdmlkZXJzO1xufVxuXG4vKiBAaW50ZXJuYWwgKi9cbmNvbnN0IGZhY3RvcnlDYWNoZU1hcCA9IG5ldyBNYXA8VHlwZTx7fT4sIE5nTW9kdWxlRmFjdG9yeTx7fT4+KCk7XG5hc3luYyBmdW5jdGlvbiBnZXRGYWN0b3J5KFxuICBtb2R1bGVPckZhY3Rvcnk6IFR5cGU8e30+IHwgTmdNb2R1bGVGYWN0b3J5PHt9PiwgY29tcGlsZXI6IENvbXBpbGVyXG4pOiBQcm9taXNlPE5nTW9kdWxlRmFjdG9yeTx7fT4+IHtcbiAgLy8gSWYgbW9kdWxlIGhhcyBiZWVuIGNvbXBpbGVkIEFvVFxuICBpZiAobW9kdWxlT3JGYWN0b3J5IGluc3RhbmNlb2YgTmdNb2R1bGVGYWN0b3J5KSB7XG4gICAgcmV0dXJuIG1vZHVsZU9yRmFjdG9yeTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBtb2R1bGVGYWN0b3J5ID0gZmFjdG9yeUNhY2hlTWFwLmdldChtb2R1bGVPckZhY3RvcnkpO1xuICAgIC8vIElmIG1vZHVsZSBmYWN0b3J5IGlzIGNhY2hlZFxuICAgIGlmIChtb2R1bGVGYWN0b3J5KSB7XG4gICAgICByZXR1cm4gbW9kdWxlRmFjdG9yeTtcbiAgICB9XG5cbiAgICAvLyBDb21waWxlIHRoZSBtb2R1bGUgYW5kIGNhY2hlIGl0XG4gICAgY29uc3QgZmFjdG9yeSA9IGF3YWl0IGNvbXBpbGVyLmNvbXBpbGVNb2R1bGVBc3luYyhtb2R1bGVPckZhY3RvcnkpO1xuICAgIGZhY3RvcnlDYWNoZU1hcC5zZXQobW9kdWxlT3JGYWN0b3J5LCBmYWN0b3J5KTtcblxuICAgIHJldHVybiBmYWN0b3J5O1xuICB9XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvYXNwbmV0Y29yZS1lbmdpbmUvc3JjL21haW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFZLGVBQWUsRUFBRSxlQUFlLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELGVBQWU7QUFDZixJQUFJLFdBQVcsR0FBRyxVQUFVLENBQUMsQ0FBQyxVQUFVO0FBRXhDLGVBQWU7QUFDZixTQUFTLGlCQUFpQixDQUFDLEdBQWE7SUFFdEMsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBQzVCLE1BQU0sT0FBTyxHQUFhLEVBQUUsQ0FBQztJQUM3QixNQUFNLElBQUksR0FBYSxFQUFFLENBQUM7SUFDMUIsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDO0lBRTNCLHdDQUF3QztJQUN4QyxNQUFNLFFBQVEsR0FBRztRQUNmLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUssQ0FBQyxRQUFRLENBQUM7S0FDbEMsQ0FBQztJQUNGLHVDQUF1QztJQUV2QyxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEs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QUcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFcEQsdUJBQ0UsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQ3hCLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUN6QjtJQUNKLENBQUM7Q0FBQTtBQUVEOztHQUVHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxNQUFjLEVBQUUsT0FBZTtJQUN6RCxNQUFNLFNBQVMsR0FBcUI7UUFDbEM7WUFDRSxPQUFPLEVBQUUsVUFBVTtZQUNuQixRQUFRLEVBQUUsTUFBTTtTQUNqQjtRQUNEO1lBQ0UsT0FBTyxFQUFFLE9BQU87WUFDaEIsUUFBUSxFQUFFLE9BQU87U0FDbEI7S0FDRixDQUFDO0lBRUYsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELGVBQWU7QUFDZixNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQztBQUNqRSxTQUFlLFVBQVUsQ0FDdkIsZUFBK0MsRUFBRSxRQUFrQjs7UUFFbkUsa0NBQWtDO1FBQ2xDLElBQUksZUFBZSxZQUFZLGVBQWUsRUFBRTtZQUM5QyxPQUFPLGVBQWUsQ0FBQztTQUN4QjthQUFNO1lBQ0wsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUMzRCw4QkFBOEI7WUFDOUIsSUFBSSxhQUFhLEVBQUU7Z0JBQ2pCLE9BQU8sYUFBYSxDQUFDO2FBQ3RCO1lBRUQsa0NBQWtDO1lBQ2xDLE1BQU0sT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ25FLGVBQWUsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRTlDLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSZXNvdXJjZUxvYWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCB7IENvbXBpbGVyLCBDb21waWxlckZhY3RvcnksIE5nTW9kdWxlRmFjdG9yeSwgU3RhdGljUHJvdmlkZXIsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHBsYXRmb3JtRHluYW1pY1NlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLXNlcnZlcic7XG5cbmltcG9ydCB7IE9SSUdJTl9VUkwsIFJFUVVFU1QgfSBmcm9tICdAbmd1bml2ZXJzYWwvYXNwbmV0Y29yZS1lbmdpbmUvdG9rZW5zJztcbmltcG9ydCB7IMm1RmlsZUxvYWRlciB9IGZyb20gJ0BuZ3VuaXZlcnNhbC9jb21tb24vZW5naW5lJztcbmltcG9ydCB7IElFbmdpbmVPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2VuZ2luZS1vcHRpb25zJztcbmltcG9ydCB7IElFbmdpbmVSZW5kZXJSZXN1bHQgfSBmcm9tICcuL2ludGVyZmFjZXMvZW5naW5lLXJlbmRlci1yZXN1bHQnO1xuaW1wb3J0IHsgcmVuZGVyTW9kdWxlRmFjdG9yeSB9IGZyb20gJy4vcGxhdGZvcm0tc2VydmVyLXV0aWxzJztcblxuLyogQGludGVybmFsICovXG5sZXQgYXBwU2VsZWN0b3IgPSAnYXBwLXJvb3QnOyAvLyBkZWZhdWx0XG5cbi8qIEBpbnRlcm5hbCAqL1xuZnVuY3Rpb24gX2dldFVuaXZlcnNhbERhdGEoZG9jOiBEb2N1bWVudCk6IE9taXQ8SUVuZ2luZVJlbmRlclJlc3VsdCwgJ21vZHVsZVJlZic+IHtcblxuICBjb25zdCBzdHlsZXM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHNjcmlwdHM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IG1ldGE6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IGxpbmtzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlOiBuby1ub24tbnVsbC1hc3NlcnRpb25cbiAgY29uc3QgZWxlbWVudHMgPSBbXG4gICAgLi4uQXJyYXkuZnJvbShkb2MuaGVhZCEuY2hpbGRyZW4pLFxuICAgIC4uLkFycmF5LmZyb20oZG9jLmJvZHkhLmNoaWxkcmVuKSxcbiAgXTtcbiAgLy8gdHNsaW50OmVuYWJsZTogbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG5cbiAgZm9yIChjb25zdCBlbGVtZW50IG9mIGVsZW1lbnRzKSB7XG4gICAgc3dpdGNoIChlbGVtZW50LnRhZ05hbWUudG9VcHBlckNhc2UoKSkge1xuICAgICAgY2FzZSAnU0NSSVBUJzpcbiAgICAgICAgc2NyaXB0cy5wdXNoKGVsZW1lbnQub3V0ZXJIVE1MKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdTVFlMRSc6XG4gICAgICAgIHN0eWxlcy5wdXNoKGVsZW1lbnQub3V0ZXJIVE1MKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdMSU5LJzpcbiAgICAgICAgbGlua3MucHVzaChlbGVtZW50Lm91dGVySFRNTCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTUVUQSc6XG4gICAgICAgIG1ldGEucHVzaChlbGVtZW50Lm91dGVySFRNTCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW5vbi1udWxsLWFzc2VydGlvblxuICAgIGh0bWw6IGRvYy5xdWVyeVNlbGVjdG9yKGFwcFNlbGVjdG9yKSEub3V0ZXJIVE1MLFxuICAgIGdsb2JhbHM6IHtcbiAgICAgIHRpdGxlOiBkb2MudGl0bGUsXG4gICAgICBzY3JpcHRzOiBzY3JpcHRzLmpvaW4oJ1xcbicpLFxuICAgICAgc3R5bGVzOiBzdHlsZXMuam9pbignXFxuJyksXG4gICAgICBtZXRhOiBtZXRhLmpvaW4oJ1xcbicpLFxuICAgICAgbGlua3M6IGxpbmtzLmpvaW4oJ1xcbicpXG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbmdBc3BuZXRDb3JlRW5naW5lKG9wdGlvbnM6IFJlYWRvbmx5PElFbmdpbmVPcHRpb25zPilcbiAgOiBQcm9taXNlPElFbmdpbmVSZW5kZXJSZXN1bHQ+IHtcbiAgaWYgKCFvcHRpb25zLmFwcFNlbGVjdG9yKSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBgXCIgYXBwU2VsZWN0b3I6ICc8JHthcHBTZWxlY3Rvcn0+PC8ke2FwcFNlbGVjdG9yfT4nIFwiYDtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGFwcFNlbGVjdG9yIGlzIHJlcXVpcmVkISBQYXNzIGluICR7c2VsZWN0b3J9LFxuICAgICBmb3IgeW91ciByb290IEFwcCBjb21wb25lbnQuYCk7XG4gIH1cblxuICAvLyBHcmFiIHRoZSBET00gXCJzZWxlY3RvclwiIGZyb20gdGhlIHBhc3NlZCBpbiBUZW1wbGF0ZSA8YXBwLXJvb3Q+IGZvciBleGFtcGxlID0gXCJhcHAtcm9vdFwiXG4gIGFwcFNlbGVjdG9yID0gb3B0aW9ucy5hcHBTZWxlY3Rvci5zdWJzdHJpbmcoMSwgb3B0aW9ucy5hcHBTZWxlY3Rvci5pbmRleE9mKCc+JykpO1xuXG4gIGNvbnN0IGNvbXBpbGVyRmFjdG9yeTogQ29tcGlsZXJGYWN0b3J5ID0gcGxhdGZvcm1EeW5hbWljU2VydmVyKCkuaW5qZWN0b3IuZ2V0KENvbXBpbGVyRmFjdG9yeSk7XG4gIGNvbnN0IGNvbXBpbGVyOiBDb21waWxlciA9IGNvbXBpbGVyRmFjdG9yeS5jcmVhdGVDb21waWxlcihbXG4gICAge1xuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogUmVzb3VyY2VMb2FkZXIsIHVzZUNsYXNzOiDJtUZpbGVMb2FkZXIsIGRlcHM6IFtdIH1cbiAgICAgIF1cbiAgICB9XG4gIF0pO1xuXG4gIGNvbnN0IG1vZHVsZU9yRmFjdG9yeSA9IG9wdGlvbnMubmdNb2R1bGU7XG4gIGlmICghbW9kdWxlT3JGYWN0b3J5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbXVzdCBwYXNzIGluIGEgTmdNb2R1bGUgb3IgTmdNb2R1bGVGYWN0b3J5IHRvIGJlIGJvb3RzdHJhcHBlZCcpO1xuICB9XG5cbiAgY29uc3QgZXh0cmFQcm92aWRlcnMgPSBbXG4gICAgLi4uKG9wdGlvbnMucHJvdmlkZXJzIHx8IFtdKSxcbiAgICBnZXRSZXFSZXNQcm92aWRlcnMob3B0aW9ucy5yZXF1ZXN0Lm9yaWdpbiwgb3B0aW9ucy5yZXF1ZXN0LmRhdGEucmVxdWVzdCksXG4gIF07XG5cbiAgY29uc3QgZmFjdG9yeSA9IGF3YWl0IGdldEZhY3RvcnkobW9kdWxlT3JGYWN0b3J5LCBjb21waWxlcik7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlbmRlck1vZHVsZUZhY3RvcnkoZmFjdG9yeSwge1xuICAgIGRvY3VtZW50OiBvcHRpb25zLmRvY3VtZW50IHx8IG9wdGlvbnMuYXBwU2VsZWN0b3IsXG4gICAgdXJsOiBvcHRpb25zLnVybCB8fCBvcHRpb25zLnJlcXVlc3QuYWJzb2x1dGVVcmwsXG4gICAgZXh0cmFQcm92aWRlcnMsXG4gIH0pO1xuXG4gIGNvbnN0IGRvYyA9IHJlc3VsdC5tb2R1bGVSZWYuaW5qZWN0b3IuZ2V0KERPQ1VNRU5UKTtcblxuICByZXR1cm4ge1xuICAgIG1vZHVsZVJlZjogcmVzdWx0Lm1vZHVsZVJlZixcbiAgICAuLi5fZ2V0VW5pdmVyc2FsRGF0YShkb2MpLFxuICB9O1xufVxuXG4vKipcbiAqIEdldCBwcm92aWRlcnMgb2YgdGhlIHJlcXVlc3QgYW5kIHJlc3BvbnNlXG4gKi9cbmZ1bmN0aW9uIGdldFJlcVJlc1Byb3ZpZGVycyhvcmlnaW46IHN0cmluZywgcmVxdWVzdDogc3RyaW5nKTogU3RhdGljUHJvdmlkZXJbXSB7XG4gIGNvbnN0IHByb3ZpZGVyczogU3RhdGljUHJvdmlkZXJbXSA9IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBPUklHSU5fVVJMLFxuICAgICAgdXNlVmFsdWU6IG9yaWdpblxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogUkVRVUVTVCxcbiAgICAgIHVzZVZhbHVlOiByZXF1ZXN0XG4gICAgfVxuICBdO1xuXG4gIHJldHVybiBwcm92aWRlcnM7XG59XG5cbi8qIEBpbnRlcm5hbCAqL1xuY29uc3QgZmFjdG9yeUNhY2hlTWFwID0gbmV3IE1hcDxUeXBlPHt9PiwgTmdNb2R1bGVGYWN0b3J5PHt9Pj4oKTtcbmFzeW5jIGZ1bmN0aW9uIGdldEZhY3RvcnkoXG4gIG1vZHVsZU9yRmFjdG9yeTogVHlwZTx7fT4gfCBOZ01vZHVsZUZhY3Rvcnk8e30+LCBjb21waWxlcjogQ29tcGlsZXJcbik6IFByb21pc2U8TmdNb2R1bGVGYWN0b3J5PHt9Pj4ge1xuICAvLyBJZiBtb2R1bGUgaGFzIGJlZW4gY29tcGlsZWQgQW9UXG4gIGlmIChtb2R1bGVPckZhY3RvcnkgaW5zdGFuY2VvZiBOZ01vZHVsZUZhY3RvcnkpIHtcbiAgICByZXR1cm4gbW9kdWxlT3JGYWN0b3J5O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG1vZHVsZUZhY3RvcnkgPSBmYWN0b3J5Q2FjaGVNYXAuZ2V0KG1vZHVsZU9yRmFjdG9yeSk7XG4gICAgLy8gSWYgbW9kdWxlIGZhY3RvcnkgaXMgY2FjaGVkXG4gICAgaWYgKG1vZHVsZUZhY3RvcnkpIHtcbiAgICAgIHJldHVybiBtb2R1bGVGYWN0b3J5O1xuICAgIH1cblxuICAgIC8vIENvbXBpbGUgdGhlIG1vZHVsZSBhbmQgY2FjaGUgaXRcbiAgICBjb25zdCBmYWN0b3J5ID0gYXdhaXQgY29tcGlsZXIuY29tcGlsZU1vZHVsZUFzeW5jKG1vZHVsZU9yRmFjdG9yeSk7XG4gICAgZmFjdG9yeUNhY2hlTWFwLnNldChtb2R1bGVPckZhY3RvcnksIGZhY3RvcnkpO1xuXG4gICAgcmV0dXJuIGZhY3Rvcnk7XG4gIH1cbn1cbiJdfQ== |
@@ -7,20 +7,6 @@ import { __awaiter } from 'tslib'; | ||
import { ORIGIN_URL, REQUEST } from '@nguniversal/aspnetcore-engine/tokens'; | ||
import { readFile } from 'fs'; | ||
import { ɵFileLoader } from '@nguniversal/common/engine'; | ||
import { ɵTRANSITION_ID } from '@angular/platform-browser'; | ||
import { first } from 'rxjs/operators'; | ||
/** ResourceLoader implementation for loading files */ | ||
class FileLoader { | ||
get(url) { | ||
return new Promise((resolve, reject) => { | ||
readFile(url, (err, data) => { | ||
if (err) { | ||
return reject(err); | ||
} | ||
resolve(data.toString()); | ||
}); | ||
}); | ||
} | ||
} | ||
/** | ||
@@ -102,37 +88,28 @@ * @license | ||
/* @internal */ | ||
class UniversalData { | ||
constructor() { | ||
this.appNode = ''; | ||
this.title = ''; | ||
this.scripts = ''; | ||
this.styles = ''; | ||
this.meta = ''; | ||
this.links = ''; | ||
} | ||
} | ||
/* @internal */ | ||
let appSelector = 'app-root'; // default | ||
/* @internal */ | ||
function _getUniversalData(doc) { | ||
const STYLES = []; | ||
const SCRIPTS = []; | ||
const META = []; | ||
const LINKS = []; | ||
// tslint:disable-next-line: no-non-null-assertion | ||
for (let i = 0; i < doc.head.children.length; i++) { | ||
// tslint:disable-next-line: no-non-null-assertion | ||
const element = doc.head.children[i]; | ||
const tagName = element.tagName.toUpperCase(); | ||
switch (tagName) { | ||
const styles = []; | ||
const scripts = []; | ||
const meta = []; | ||
const links = []; | ||
// tslint:disable: no-non-null-assertion | ||
const elements = [ | ||
...Array.from(doc.head.children), | ||
...Array.from(doc.body.children), | ||
]; | ||
// tslint:enable: no-non-null-assertion | ||
for (const element of elements) { | ||
switch (element.tagName.toUpperCase()) { | ||
case 'SCRIPT': | ||
SCRIPTS.push(element.outerHTML); | ||
scripts.push(element.outerHTML); | ||
break; | ||
case 'STYLE': | ||
STYLES.push(element.outerHTML); | ||
styles.push(element.outerHTML); | ||
break; | ||
case 'LINK': | ||
LINKS.push(element.outerHTML); | ||
links.push(element.outerHTML); | ||
break; | ||
case 'META': | ||
META.push(element.outerHTML); | ||
meta.push(element.outerHTML); | ||
break; | ||
@@ -143,30 +120,12 @@ default: | ||
} | ||
for (let i = 0; i < doc.body.children.length; i++) { | ||
const element = doc.body.children[i]; | ||
const tagName = element.tagName.toUpperCase(); | ||
switch (tagName) { | ||
case 'SCRIPT': | ||
SCRIPTS.push(element.outerHTML); | ||
break; | ||
case 'STYLE': | ||
STYLES.push(element.outerHTML); | ||
break; | ||
case 'LINK': | ||
LINKS.push(element.outerHTML); | ||
break; | ||
case 'META': | ||
META.push(element.outerHTML); | ||
break; | ||
default: | ||
break; | ||
} | ||
} | ||
return { | ||
title: doc.title, | ||
// tslint:disable-next-line: no-non-null-assertion | ||
appNode: doc.querySelector(appSelector).outerHTML, | ||
scripts: SCRIPTS.join('\n'), | ||
styles: STYLES.join('\n'), | ||
meta: META.join('\n'), | ||
links: LINKS.join('\n') | ||
html: doc.querySelector(appSelector).outerHTML, | ||
globals: { | ||
title: doc.title, | ||
scripts: scripts.join('\n'), | ||
styles: styles.join('\n'), | ||
meta: meta.join('\n'), | ||
links: links.join('\n') | ||
} | ||
}; | ||
@@ -187,3 +146,3 @@ } | ||
providers: [ | ||
{ provide: ResourceLoader, useClass: FileLoader, deps: [] } | ||
{ provide: ResourceLoader, useClass: ɵFileLoader, deps: [] } | ||
] | ||
@@ -207,14 +166,3 @@ } | ||
const doc = result.moduleRef.injector.get(DOCUMENT); | ||
const universalData = _getUniversalData(doc); | ||
return { | ||
html: universalData.appNode, | ||
moduleRef: result.moduleRef, | ||
globals: { | ||
styles: universalData.styles, | ||
title: universalData.title, | ||
scripts: universalData.scripts, | ||
meta: universalData.meta, | ||
links: universalData.links | ||
} | ||
}; | ||
return Object.assign({ moduleRef: result.moduleRef }, _getUniversalData(doc)); | ||
}); | ||
@@ -221,0 +169,0 @@ } |
{ | ||
"name": "@nguniversal/aspnetcore-engine", | ||
"version": "11.0.0-next.1", | ||
"version": "11.0.0-next.2", | ||
"description": "ASP.NET Core Engine for running Server Angular Apps", | ||
@@ -26,4 +26,5 @@ "author": { | ||
"peerDependencies": { | ||
"@angular/common": "^11.0.0-next.3", | ||
"@angular/core": "^11.0.0-next.3", | ||
"@angular/common": "^11.0.0-rc.2", | ||
"@angular/core": "^11.0.0-rc.2", | ||
"@nguniversal/common": "11.0.0-next.2", | ||
"rxjs": "^6.5.5" | ||
@@ -30,0 +31,0 @@ }, |
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
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
0
201036
5
36
1260