guess-webpack
Version:
Webpack plugins for the Machine Learning-driven bundler
1 lines • 8.85 kB
JavaScript
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("guess-parser"),require("googleapis"),require("flat-cache"),require("guess-ga"),require("google-oauth2-node"),require("webpack"),require("memory-fs"),require("webpack-sources"),require("lodash.template"),require("path"),require("fs"));else if("function"==typeof define&&define.amd)define(["guess-parser","googleapis","flat-cache","guess-ga","google-oauth2-node","webpack","memory-fs","webpack-sources","lodash.template","path","fs"],t);else{var r="object"==typeof exports?t(require("guess-parser"),require("googleapis"),require("flat-cache"),require("guess-ga"),require("google-oauth2-node"),require("webpack"),require("memory-fs"),require("webpack-sources"),require("lodash.template"),require("path"),require("fs")):t(e["guess-parser"],e.googleapis,e["flat-cache"],e["guess-ga"],e["google-oauth2-node"],e.webpack,e["memory-fs"],e["webpack-sources"],e["lodash.template"],e.path,e.fs);for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(global,function(e,t,r,o,n,i,u,s,c,a,f){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},r.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r.w={},r(r.s=17)}([function(t,r){t.exports=e},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.Angular="angular",e.ReactTSX="react-tsx",e.ReactJSX="react-jsx",e.PreactJSX="preact-jsx",e.Gatsby="gatsby",e.Auto="auto"}(t.Mode||(t.Mode={}))},function(e,r){e.exports=t},function(e,t){e.exports=r},function(e,t){e.exports=o},function(e,t){e.exports=n},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=r(5),n=r(4),i="https://www.googleapis.com/auth/analytics.readonly",u=r(3).load("guess-plugin"),s=function(e){return e};t.getReport=function(e){var t=e.period||{startDate:new Date,endDate:new Date(Date.now()-31536e6)},c=e.viewId+"-"+function(e){return e.startDate.getTime()+"-"+e.endDate.getTime()}(t),a=u.getKey(c);if(a)return Promise.resolve(JSON.parse(a));var f=r(2).google;return(e.jwt?Promise.resolve(new f.auth.JWT(e.jwt.client_email,null,e.jwt.private_key,[i],null)):o.auth({clientId:"329457372673-hda3mp2vghisfobn213jpj8ck1uohi2d.apps.googleusercontent.com",clientSecret:"4camaoQPOz9edR-Oz19vg-lN",scope:i}).then(function(e){var t=new f.auth.OAuth2;return t.setCredentials(e),t})).then(function(r){return n.fetch({viewId:e.viewId,auth:r,period:t,routes:e.routes.map(function(e){return e.path}),formatter:e.formatter||s})}).then(function(e){return u.setKey(c,JSON.stringify(e)),u.save(),e})}},function(e,t){e.exports=i},function(e,t){e.exports=u},function(e,t){e.exports=s},function(e,t){e.exports=c},function(e,t){e.exports=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.compressGraph=function(e,t){var r=0,o=0,n=[],i=[],u={},s={},c={chunks:n,routes:i},a=[];return Object.keys(e).forEach(function(c){void 0===s[c]&&(i[o]=c,s[c]=o++),a[s[c]]=[],e[c].forEach(function(e){void 0===s[e.route]&&(i[o]=e.route,s[e.route]=o++),void 0===u[e.chunk]&&(n[r]=e.chunk,u[e.chunk]=r++),a[s[c]].push([parseFloat(e.probability.toFixed(t)),s[e.route],u[e.chunk]])})}),{graph:a,graphMap:c}}},function(e,t){e.exports=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=r(13),n=r(12),i=r(11),u=r(10),s=r(9).ConcatSource,c=function(){function e(e){if(this._config=e,!e.data)throw new Error("Page graph not provided")}return e.prototype.execute=function(e,t){var c={},d=null;if(e.chunks.forEach(function(e){p(e)&&(d=e),l(e,function(e){var t=e.block,r=e.chunk,o=(r.files||[]).filter(function(e){return e.endsWith(".js")}).pop();!o&&r.chunks&&r.chunks[0]&&(o=r.chunks[0].files[0]),c[t.dependencies[0].module.userRequest]=o})}),!d)throw t(),new Error("Cannot find the main chunk in the runtime ML plugin");var h={},g=f(this._config.routes,this._config.data);Object.keys(g).forEach(function(e){h[e]=[],g[e].forEach(function(t){var r={probability:t.probability,route:t.route,chunk:c[t.file]};h[e].push(r)})});var v=d.files.filter(function(e){return e.endsWith(".js")}).pop(),y=e.assets[v],m=n.compressGraph(h,3),b=m.graph,w=m.graphMap,P=this._config.delegate?"guess.tpl":"runtime.tpl",_=o.readFileSync(i.join(__dirname,P)).toString(),j=u(_)({BASE_PATH:this._config.basePath,GRAPH:JSON.stringify(b),GRAPH_MAP:JSON.stringify(w),THRESHOLDS:JSON.stringify(Object.assign({},a,this._config.prefetchConfig))}),k=new(r(8));k.mkdirpSync("/src"),k.writeFileSync("/src/index.js",j,"utf-8"),k.writeFileSync("/src/guess.js",o.readFileSync(i.join(__dirname,"guess.js")).toString(),"utf-8"),k.writeFileSync("/src/runtime.js",o.readFileSync(i.join(__dirname,"runtime.js")).toString(),"utf-8");var x=r(7)({context:"/src/",mode:"production",entry:"./index.js",target:"node",output:{filename:"./output.js"}});x.inputFileSystem=k,x.outputFileSystem=k,x.resolvers.normal.fileSystem=k,x.resolvers.context.fileSystem=k,x.run(function(r,o){if(r)throw t(),r;var n=o.compilation.assets["./output.js"].source();e.assets[v]=new s(n,"\n;",y.source()),t()})},e}();t.PrefetchPlugin=c;var a={"4g":.15,"3g":.3,"2g":.45,"slow-2g":.6},f=function(e,t){var r={},o={};return e.forEach(function(e){o[e.path]=e.modulePath}),Object.keys(t).forEach(function(e){r[e]=[];var n=Object.keys(t[e]).reduce(function(r,o){return r+t[e][o]},0);Object.keys(t[e]).forEach(function(i){r[e].push({route:i,probability:t[e][i]/n,file:o[i]})}),r[e]=r[e].sort(function(e,t){return t.probability-e.probability})}),r},p=function(e){return e.canBeInitial?e.canBeInitial():"main"===e.name},l=function(e,t){var r=[];(r=e.groupsIterable?Array.from(e.groupsIterable).reduce(function(e,t){return e.concat(r.concat(t.getBlocks().map(function(e){return{chunk:t,block:e}})))},[]):(e.blocks||[]).map(function(t){return{chunk:e,block:t}})).forEach(t)}},function(e,t,r){"use strict";var o;Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),i=r(1),u=((o={})[i.Mode.Angular]=function(e){if(!e||!e.tsconfigPath)throw new Error("Path to tsconfig.json not provided");return n.parseAngularRoutes(e.tsconfigPath)},o[i.Mode.ReactTSX]=function(e){if(!e||!e.tsconfigPath)throw new Error("Path to tsconfig.json not provided");return n.parseReactTSXRoutes(e.tsconfigPath)},o[i.Mode.ReactJSX]=function(e){if(!e||!e.sourceDir)throw new Error("Source directory not provided");return n.parseReactJSXRoutes(e.sourceDir)},o[i.Mode.PreactJSX]=function(e){if(!e||!e.sourceDir)throw new Error("Source directory not provided");return n.parsePreactJSXRoutes(e.sourceDir)},o[i.Mode.Gatsby]=function(){throw new Error("Not supported")},o);t.defaultRouteProvider=function(e,t){return u[e](t)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=r(1),n=r(15),i=r(14),u=r(0),s=r(6),c=function(){function e(e){if(this._config=e,(this._config.GA||this._config.jwt)&&this._config.reportProvider)throw new Error("Only a single report provider is allowed. You have specified `GA` and/or a GA authentication provider (used by Google Analytics provider) and `reportProvider`");if(!this._config.GA&&!this._config.reportProvider)throw new Error("Report provider not specified. You should specify either a `GA` (Google Analytics view ID) or `reportProvider`.")}return e.prototype.apply=function(e){var t=this;e.plugin("emit",function(e,r){return t._execute(e,r)})},e.prototype._execute=function(e,t){var r=this;a(this._config).then(function(o){return r._getReport(o).then(function(n){return r._executePrefetchPlugin(n,o,e,t)},function(e){throw console.error(e),t(),e})})},e.prototype._getReport=function(e){return this._config.GA?s.getReport({jwt:this._config.jwt,viewId:this._config.GA,routes:e,formatter:this._config.routeFormatter,period:this._config.period}):this._config.reportProvider()},e.prototype._executePrefetchPlugin=function(e,t,r,o){var n=this._config.runtime;new i.PrefetchPlugin({data:e,basePath:n?void 0===n.basePath?"":n.basePath:"",prefetchConfig:n?n.prefetchConfig:void 0,routes:t,delegate:!!n&&!!n.delegate}).execute(r,o)},e}();t.GuessPlugin=c;var a=function(e){return!1===e.routeProvider?Promise.resolve([]):"function"==typeof e.routeProvider?Promise.resolve(e.routeProvider()):e.mode&&e.mode!==o.Mode.Auto?Promise.resolve(n.defaultRouteProvider(e.mode,e.layout)):Promise.resolve(u.parseRoutes(process.env.PWD))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(16))}])});