前端代码
This commit is contained in:
76
node_modules/browser-sync/dist/server/index.js
generated
vendored
Normal file
76
node_modules/browser-sync/dist/server/index.js
generated
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
"use strict";
|
||||
var enableDestroy = require("server-destroy");
|
||||
var _ = require("../lodash.custom");
|
||||
/**
|
||||
* Browsersync server
|
||||
* Three available modes: Snippet, Server or Proxy
|
||||
*/
|
||||
module.exports.plugin = function (bs) {
|
||||
var debug = bs.debug;
|
||||
var proxy = bs.options.get("proxy");
|
||||
var type = bs.options.get("mode");
|
||||
var bsServer = createServer(bs);
|
||||
if (type === "server" || type === "snippet") {
|
||||
debug("Static Server running ({magenta:%s}) ...", bs.options.get("scheme"));
|
||||
}
|
||||
if (proxy) {
|
||||
debug("Proxy running, proxing: {magenta:%s}", proxy.get("target"));
|
||||
}
|
||||
if (bsServer) {
|
||||
/**
|
||||
* Allow server to be destroyed gracefully
|
||||
*/
|
||||
enableDestroy(bsServer.server);
|
||||
/**
|
||||
* Listen on the available port
|
||||
*/
|
||||
bsServer.server.listen(bs.options.get("port"), bs.options.get("listen"));
|
||||
/**
|
||||
* Hack to deal with https://github.com/socketio/socket.io/issues/1602#issuecomment-224270022
|
||||
*/
|
||||
bs.registerCleanupTask(function () {
|
||||
if (bs.io && bs.io.sockets) {
|
||||
setCloseReceived(bs.io.sockets);
|
||||
}
|
||||
if (bs.ui && bs.ui.socket) {
|
||||
setCloseReceived(bs.ui.socket);
|
||||
}
|
||||
});
|
||||
/**
|
||||
* Destroy the server on cleanup
|
||||
*/
|
||||
bs.registerCleanupTask(function () {
|
||||
bsServer.server.destroy();
|
||||
});
|
||||
}
|
||||
function setCloseReceived(io) {
|
||||
Object.keys(io.sockets).forEach(function (key) {
|
||||
_.set(io.sockets[key], "conn.transport.socket._closeReceived", true);
|
||||
});
|
||||
}
|
||||
debug("Running mode: %s", type.toUpperCase());
|
||||
return {
|
||||
server: bsServer.server,
|
||||
app: bsServer.app
|
||||
};
|
||||
};
|
||||
/**
|
||||
* Launch the server for serving the client JS plus static files
|
||||
* @param {BrowserSync} bs
|
||||
* @returns {{staticServer: (http.Server), proxyServer: (http.Server)}}
|
||||
*/
|
||||
function createServer(bs) {
|
||||
var proxy = bs.options.get("proxy");
|
||||
var server = bs.options.get("server");
|
||||
if (!proxy && !server) {
|
||||
return require("./snippet-server")(bs);
|
||||
}
|
||||
if (proxy) {
|
||||
return require("./proxy-server")(bs);
|
||||
}
|
||||
if (server) {
|
||||
return require("./static-server")(bs);
|
||||
}
|
||||
}
|
||||
module.exports.createServer = createServer;
|
||||
//# sourceMappingURL=index.js.map
|
1
node_modules/browser-sync/dist/server/index.js.map
generated
vendored
Normal file
1
node_modules/browser-sync/dist/server/index.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/server/index.js"],"names":[],"mappings":"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"}
|
180
node_modules/browser-sync/dist/server/proxy-server.js
generated
vendored
Normal file
180
node_modules/browser-sync/dist/server/proxy-server.js
generated
vendored
Normal file
@ -0,0 +1,180 @@
|
||||
"use strict";
|
||||
var httpProxy = require("http-proxy");
|
||||
var utils = require("./utils");
|
||||
var proxyUtils = require("./proxy-utils");
|
||||
var Immutable = require("immutable");
|
||||
var Map = require("immutable").Map;
|
||||
var List = require("immutable").List;
|
||||
/**
|
||||
* Default options that are passed along to http-proxy
|
||||
*/
|
||||
var defaultHttpProxyOptions = Map({
|
||||
/**
|
||||
* This ensures targets are more likely to
|
||||
* accept each request
|
||||
*/
|
||||
changeOrigin: true,
|
||||
/**
|
||||
* This handles redirects
|
||||
*/
|
||||
autoRewrite: true,
|
||||
/**
|
||||
* This allows our self-signed certs to be used for development
|
||||
*/
|
||||
secure: false,
|
||||
ws: true
|
||||
});
|
||||
var defaultCookieOptions = Map({
|
||||
stripDomain: true
|
||||
});
|
||||
var ProxyOption = Immutable.Record({
|
||||
route: "",
|
||||
target: "",
|
||||
rewriteRules: true,
|
||||
/**
|
||||
* Functions to be called on proxy request
|
||||
* with args [proxyReq, req, res, options]
|
||||
*/
|
||||
proxyReq: List([]),
|
||||
/**
|
||||
* Functions to be called on proxy response
|
||||
* with args [proxyRes, req, res]
|
||||
*/
|
||||
proxyRes: List([]),
|
||||
/**
|
||||
* Functions to be called on proxy response
|
||||
* with args [proxyReq, req, socket, options, head]
|
||||
*/
|
||||
proxyReqWs: List([]),
|
||||
errHandler: undefined,
|
||||
url: Map({}),
|
||||
proxyOptions: Map(defaultHttpProxyOptions),
|
||||
cookies: Map(defaultCookieOptions),
|
||||
ws: false,
|
||||
middleware: List([]),
|
||||
reqHeaders: undefined
|
||||
});
|
||||
/**
|
||||
* @param {BrowserSync} bs
|
||||
* @param {String} scripts
|
||||
* @returns {*}
|
||||
*/
|
||||
module.exports = function createProxyServer(bs) {
|
||||
var opt = new ProxyOption().mergeDeep(bs.options.get("proxy"));
|
||||
var proxy = httpProxy.createProxyServer(opt
|
||||
.get("proxyOptions")
|
||||
.set("target", opt.get("target"))
|
||||
.toJS());
|
||||
var target = opt.get("target");
|
||||
var proxyReq = getProxyReqFunctions(opt.get("proxyReq"), opt, bs);
|
||||
var proxyRes = getProxyResFunctions(opt.get("proxyRes"), opt);
|
||||
var proxyResWs = opt.get("proxyReqWs");
|
||||
bs.options = bs.options.update("middleware", function (mw) {
|
||||
return mw.concat({
|
||||
id: "Browsersync Proxy",
|
||||
route: opt.get("route"),
|
||||
handle: function (req, res) {
|
||||
proxy.web(req, res, {
|
||||
target: target
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
var app = utils.getBaseApp(bs);
|
||||
/**
|
||||
* @type {*|{server, app}}
|
||||
*/
|
||||
var browserSyncServer = utils.getServer(app, bs.options);
|
||||
browserSyncServer.proxy = proxy;
|
||||
if (opt.get("ws")) {
|
||||
// debug(`+ ws upgrade for: ${x.get("target")}`);
|
||||
browserSyncServer.server.on("upgrade", function (req, socket, head) {
|
||||
proxy.ws(req, socket, head);
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Add any user provided functions for proxyReq, proxyReqWs and proxyRes
|
||||
*/
|
||||
applyFns("proxyReq", proxyReq);
|
||||
applyFns("proxyRes", proxyRes);
|
||||
applyFns("proxyReqWs", proxyResWs);
|
||||
/**
|
||||
* Handle Proxy errors
|
||||
*/
|
||||
proxy.on("error", function (err) {
|
||||
if (typeof opt.get("errHandler") === "function") {
|
||||
opt.get("errHandler").call(null, err);
|
||||
}
|
||||
});
|
||||
/**
|
||||
* Apply functions to proxy events
|
||||
* @param {string} name - the name of the http-proxy event
|
||||
* @param {Array} fns - functions to call on each event
|
||||
*/
|
||||
function applyFns(name, fns) {
|
||||
if (!List.isList(fns))
|
||||
fns = [fns];
|
||||
proxy.on(name, function () {
|
||||
var args = arguments;
|
||||
fns.forEach(function (fn) {
|
||||
if (typeof fn === "function") {
|
||||
fn.apply(null, args);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
return browserSyncServer;
|
||||
};
|
||||
/**
|
||||
* @param resFns
|
||||
* @returns {*}
|
||||
*/
|
||||
function getProxyResFunctions(resFns, opt) {
|
||||
if (opt.getIn(["cookies", "stripDomain"])) {
|
||||
return resFns.push(proxyUtils.checkCookies);
|
||||
}
|
||||
return resFns;
|
||||
}
|
||||
/**
|
||||
* @param reqFns
|
||||
* @returns {*}
|
||||
*/
|
||||
function getProxyReqFunctions(reqFns, opt, bs) {
|
||||
var reqHeaders = opt.getIn(["reqHeaders"]);
|
||||
if (!reqHeaders) {
|
||||
return reqFns;
|
||||
}
|
||||
/**
|
||||
* Back-compat for old `reqHeaders` option here a
|
||||
* function was given that returned an object
|
||||
* where key:value was header-name:header-value
|
||||
* This didn't really work as it clobbered all other headers,
|
||||
* but it remains for the unlucky few who used it.
|
||||
*/
|
||||
if (typeof reqHeaders === "function") {
|
||||
var output = reqHeaders.call(bs, opt.toJS());
|
||||
if (Object.keys(output).length) {
|
||||
return reqFns.concat(function (proxyReq) {
|
||||
Object.keys(output).forEach(function (key) {
|
||||
proxyReq.setHeader(key, output[key]);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Now, if {key:value} given, set the each header
|
||||
*
|
||||
* eg: reqHeaders: {
|
||||
* 'is-dev': 'true'
|
||||
* }
|
||||
*/
|
||||
if (Map.isMap(reqHeaders)) {
|
||||
return reqFns.concat(function (proxyReq) {
|
||||
reqHeaders.forEach(function (value, key) {
|
||||
proxyReq.setHeader(key, value);
|
||||
});
|
||||
});
|
||||
}
|
||||
return reqFns;
|
||||
}
|
||||
//# sourceMappingURL=proxy-server.js.map
|
1
node_modules/browser-sync/dist/server/proxy-server.js.map
generated
vendored
Normal file
1
node_modules/browser-sync/dist/server/proxy-server.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"proxy-server.js","sourceRoot":"","sources":["../../lib/server/proxy-server.js"],"names":[],"mappings":"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"}
|
134
node_modules/browser-sync/dist/server/proxy-utils.js
generated
vendored
Normal file
134
node_modules/browser-sync/dist/server/proxy-utils.js
generated
vendored
Normal file
@ -0,0 +1,134 @@
|
||||
var url = require("url");
|
||||
module.exports.rewriteLinks = function (userServer) {
|
||||
var host = userServer.hostname;
|
||||
var string = host;
|
||||
var port = userServer.port;
|
||||
if (host && port) {
|
||||
if (parseInt(port, 10) !== 80) {
|
||||
string = host + ":" + port;
|
||||
}
|
||||
}
|
||||
var reg = new RegExp(
|
||||
// a simple, but exact match
|
||||
"https?:\\\\/\\\\/" +
|
||||
string +
|
||||
"|" +
|
||||
// following ['"] + exact
|
||||
"('|\")\\/\\/" +
|
||||
string +
|
||||
"|" +
|
||||
// exact match with optional trailing slash
|
||||
"https?://" +
|
||||
string +
|
||||
"(?!:)(/)?" +
|
||||
"|" +
|
||||
// following ['"] + exact + possible multiple (imr srcset etc)
|
||||
"('|\")(https?://|/|\\.)?" +
|
||||
string +
|
||||
"(?!:)(/)?(.*?)(?=[ ,'\"\\s])", "g");
|
||||
return {
|
||||
match: reg,
|
||||
//match: new RegExp("https?:\\\\/\\\\/" + string + "|https?://" + string + "(\/)?|('|\")(https?://|/|\\.)?" + string + "(\/)?(.*?)(?=[ ,'\"\\s])", "g"),
|
||||
//match: new RegExp("https?:\\\\?/\\\\?/" + string + "(\/)?|('|\")(https?://|\\\\?/|\\.)?" + string + "(\/)?(.*?)(?=[ ,'\"\\s])", "g"),
|
||||
//match: new RegExp('https?://' + string + '(\/)?|(\'|")(https?://|/|\\.)?' + string + '(\/)?(.*?)(?=[ ,\'"\\s])', 'g'),
|
||||
//match: new RegExp("https?:\\\\/\\\\/" + string, "g"),
|
||||
fn: function (req, res, match) {
|
||||
var proxyUrl = req.headers["host"];
|
||||
/**
|
||||
* Reject subdomains
|
||||
*/
|
||||
if (match[0] === ".") {
|
||||
return match;
|
||||
}
|
||||
var captured = match[0] === "'" || match[0] === '"' ? match[0] : "";
|
||||
/**
|
||||
* allow http https
|
||||
* @type {string}
|
||||
*/
|
||||
var pre = "//";
|
||||
if (match[0] === "'" || match[0] === '"') {
|
||||
match = match.slice(1);
|
||||
}
|
||||
/**
|
||||
* parse the url
|
||||
* @type {number|*}
|
||||
*/
|
||||
var out = url.parse(match);
|
||||
/**
|
||||
* If host not set, just do a simple replace
|
||||
*/
|
||||
if (!out.host) {
|
||||
string = string.replace(/^(\/)/, "");
|
||||
return captured + match.replace(string, proxyUrl);
|
||||
}
|
||||
/**
|
||||
* Only add trailing slash if one was
|
||||
* present in the original match
|
||||
*/
|
||||
if (out.path === "/") {
|
||||
if (match.slice(-1) === "/") {
|
||||
out.path = "/";
|
||||
}
|
||||
else {
|
||||
out.path = "";
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Finally append all of parsed url
|
||||
*/
|
||||
return [
|
||||
captured,
|
||||
pre,
|
||||
proxyUrl,
|
||||
out.path || "",
|
||||
out.hash || ""
|
||||
].join("");
|
||||
}
|
||||
};
|
||||
};
|
||||
/**
|
||||
* Remove 'domain' from any cookies
|
||||
* @param {Object} res
|
||||
*/
|
||||
module.exports.checkCookies = function checkCookies(res) {
|
||||
if (typeof res.headers["set-cookie"] !== "undefined") {
|
||||
res.headers["set-cookie"] = res.headers["set-cookie"].map(function (item) {
|
||||
return rewriteCookies(item);
|
||||
});
|
||||
}
|
||||
};
|
||||
/**
|
||||
* Remove the domain from any cookies.
|
||||
* @param rawCookie
|
||||
* @returns {string}
|
||||
*/
|
||||
function rewriteCookies(rawCookie) {
|
||||
var objCookie = (function () {
|
||||
// simple parse function (does not remove quotes)
|
||||
var obj = {};
|
||||
var pairs = rawCookie.split(/; */);
|
||||
pairs.forEach(function (pair) {
|
||||
var eqIndex = pair.indexOf("=");
|
||||
// skip things that don't look like key=value
|
||||
if (eqIndex < 0) {
|
||||
return;
|
||||
}
|
||||
var key = pair.substr(0, eqIndex).trim();
|
||||
obj[key] = pair.substr(eqIndex + 1, pair.length).trim();
|
||||
});
|
||||
return obj;
|
||||
})();
|
||||
var pairs = Object.keys(objCookie)
|
||||
.filter(function (item) {
|
||||
return item.toLowerCase() !== "domain";
|
||||
})
|
||||
.map(function (key) {
|
||||
return key + "=" + objCookie[key];
|
||||
});
|
||||
if (rawCookie.match(/httponly/i)) {
|
||||
pairs.push("HttpOnly");
|
||||
}
|
||||
return pairs.join("; ");
|
||||
}
|
||||
module.exports.rewriteCookies = rewriteCookies;
|
||||
//# sourceMappingURL=proxy-utils.js.map
|
1
node_modules/browser-sync/dist/server/proxy-utils.js.map
generated
vendored
Normal file
1
node_modules/browser-sync/dist/server/proxy-utils.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"proxy-utils.js","sourceRoot":"","sources":["../../lib/server/proxy-utils.js"],"names":[],"mappings":"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"}
|
14
node_modules/browser-sync/dist/server/serve-static-wrapper.js
generated
vendored
Normal file
14
node_modules/browser-sync/dist/server/serve-static-wrapper.js
generated
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
function default_1() {
|
||||
const serveStatic = require("serve-static");
|
||||
/**
|
||||
* Adding a custom mime-type for wasm whilst we wait for
|
||||
* the `send` package to be updated.
|
||||
*/
|
||||
const send = require("send");
|
||||
send.mime.define({ "application/wasm": ["wasm"] });
|
||||
return serveStatic;
|
||||
}
|
||||
exports.default = default_1;
|
||||
//# sourceMappingURL=serve-static-wrapper.js.map
|
1
node_modules/browser-sync/dist/server/serve-static-wrapper.js.map
generated
vendored
Normal file
1
node_modules/browser-sync/dist/server/serve-static-wrapper.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"serve-static-wrapper.js","sourceRoot":"","sources":["../../lib/server/serve-static-wrapper.ts"],"names":[],"mappings":";;AAAA;IACI,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE5C;;;OAGG;IACH,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEnD,OAAO,WAAW,CAAC;AACvB,CAAC;AAXD,4BAWC"}
|
14
node_modules/browser-sync/dist/server/snippet-server.js
generated
vendored
Normal file
14
node_modules/browser-sync/dist/server/snippet-server.js
generated
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
"use strict";
|
||||
var connect = require("connect");
|
||||
var serverUtils = require("./utils.js");
|
||||
/**
|
||||
* Create a server for the snippet
|
||||
* @param {BrowserSync} bs
|
||||
* @param scripts
|
||||
* @returns {*}
|
||||
*/
|
||||
module.exports = function createSnippetServer(bs, scripts) {
|
||||
var app = serverUtils.getBaseApp(bs, bs.options, scripts);
|
||||
return serverUtils.getServer(app, bs.options);
|
||||
};
|
||||
//# sourceMappingURL=snippet-server.js.map
|
1
node_modules/browser-sync/dist/server/snippet-server.js.map
generated
vendored
Normal file
1
node_modules/browser-sync/dist/server/snippet-server.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"snippet-server.js","sourceRoot":"","sources":["../../lib/server/snippet-server.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,IAAI,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACjC,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAExC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,GAAG,SAAS,mBAAmB,CAAC,EAAE,EAAE,OAAO;IACrD,IAAI,GAAG,GAAG,WAAW,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1D,OAAO,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC,CAAC"}
|
73
node_modules/browser-sync/dist/server/static-server.js
generated
vendored
Normal file
73
node_modules/browser-sync/dist/server/static-server.js
generated
vendored
Normal file
@ -0,0 +1,73 @@
|
||||
var serverUtils = require("./utils.js");
|
||||
var resolve = require("path").resolve;
|
||||
var utils = require("../utils.js");
|
||||
var serveStatic = require("./serve-static-wrapper").default();
|
||||
var serveIndex = require("serve-index");
|
||||
/**
|
||||
* @param {BrowserSync} bs
|
||||
* @returns {*}
|
||||
*/
|
||||
module.exports = function createServer(bs) {
|
||||
var options = bs.options;
|
||||
var server = options.get("server");
|
||||
var basedirs = utils.arrayify(server.get("baseDir"));
|
||||
var serveStaticOptions = server.get("serveStaticOptions").toJS(); // passed to 3rd party
|
||||
var _serveStatic = 0;
|
||||
var _routes = 0;
|
||||
bs.options = bs.options
|
||||
/**
|
||||
* Add directory Middleware if given in server.directory
|
||||
*/
|
||||
.update("middleware", function (mw) {
|
||||
if (!server.get("directory")) {
|
||||
return mw;
|
||||
}
|
||||
return mw.concat({
|
||||
route: "",
|
||||
handle: serveIndex(resolve(basedirs[0]), {
|
||||
icons: true,
|
||||
view: "details"
|
||||
}),
|
||||
id: "Browsersync Server Directory Middleware"
|
||||
});
|
||||
})
|
||||
/**
|
||||
* Add middleware for server.baseDir Option
|
||||
*/
|
||||
.update("middleware", function (mw) {
|
||||
return mw.concat(basedirs.map(function (root) {
|
||||
return {
|
||||
route: "",
|
||||
id: "Browsersync Server ServeStatic Middleware - " +
|
||||
_serveStatic++,
|
||||
handle: serveStatic(resolve(root), serveStaticOptions)
|
||||
};
|
||||
}));
|
||||
})
|
||||
/**
|
||||
* Add middleware for server.routes
|
||||
*/
|
||||
.update("middleware", function (mw) {
|
||||
if (!server.get("routes")) {
|
||||
return mw;
|
||||
}
|
||||
return mw.concat(server.get("routes").map(function (root, urlPath) {
|
||||
// strip trailing slash
|
||||
if (urlPath[urlPath.length - 1] === "/") {
|
||||
urlPath = urlPath.slice(0, -1);
|
||||
}
|
||||
return {
|
||||
route: urlPath,
|
||||
id: "Browsersync Server Routes Middleware - " +
|
||||
_routes++,
|
||||
handle: serveStatic(resolve(root))
|
||||
};
|
||||
}));
|
||||
});
|
||||
var app = serverUtils.getBaseApp(bs);
|
||||
/**
|
||||
* Finally, return the server + App
|
||||
*/
|
||||
return serverUtils.getServer(app, bs.options);
|
||||
};
|
||||
//# sourceMappingURL=static-server.js.map
|
1
node_modules/browser-sync/dist/server/static-server.js.map
generated
vendored
Normal file
1
node_modules/browser-sync/dist/server/static-server.js.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"static-server.js","sourceRoot":"","sources":["../../lib/server/static-server.js"],"names":[],"mappings":"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"}
|
439
node_modules/browser-sync/dist/server/utils.js
generated
vendored
Normal file
439
node_modules/browser-sync/dist/server/utils.js
generated
vendored
Normal file
@ -0,0 +1,439 @@
|
||||
"use strict";
|
||||
var fs = require("fs");
|
||||
var path = require("path");
|
||||
var join = require("path").join;
|
||||
var connect = require("connect");
|
||||
var Immutable = require("immutable");
|
||||
var http = require("http");
|
||||
var https = require("https");
|
||||
var Map = require("immutable").Map;
|
||||
var fromJS = require("immutable").fromJS;
|
||||
var List = require("immutable").List;
|
||||
var snippet = require("./../snippet").utils;
|
||||
var _ = require("../lodash.custom");
|
||||
var serveStatic = require("./serve-static-wrapper").default();
|
||||
var serveIndex = require("serve-index");
|
||||
var logger = require("../logger");
|
||||
var snippetUtils = require("../snippet").utils;
|
||||
var lrSnippet = require("resp-modifier");
|
||||
var certPath = join(__dirname, "..", "..", "certs");
|
||||
function getCa(options) {
|
||||
var caOption = options.getIn(["https", "ca"]);
|
||||
// if not provided, use Browsersync self-signed
|
||||
if (typeof caOption === "undefined") {
|
||||
return fs.readFileSync(join(certPath, "server.csr"));
|
||||
}
|
||||
// if a string was given, read that file from disk
|
||||
if (typeof caOption === "string") {
|
||||
return fs.readFileSync(caOption);
|
||||
}
|
||||
// if an array was given, read all
|
||||
if (List.isList(caOption)) {
|
||||
return caOption.toArray().map(function (x) {
|
||||
return fs.readFileSync(x);
|
||||
});
|
||||
}
|
||||
}
|
||||
function getKey(options) {
|
||||
return fs.readFileSync(options.getIn(["https", "key"]) || join(certPath, "server.key"));
|
||||
}
|
||||
function getCert(options) {
|
||||
return fs.readFileSync(options.getIn(["https", "cert"]) || join(certPath, "server.crt"));
|
||||
}
|
||||
function getHttpsServerDefaults(options) {
|
||||
return fromJS({
|
||||
key: getKey(options),
|
||||
cert: getCert(options),
|
||||
ca: getCa(options),
|
||||
passphrase: options.getIn(["https", "passphrase"], "")
|
||||
});
|
||||
}
|
||||
function getPFXDefaults(options) {
|
||||
return fromJS({
|
||||
pfx: fs.readFileSync(options.getIn(["https", "pfx"]))
|
||||
});
|
||||
}
|
||||
var serverUtils = {
|
||||
/**
|
||||
* @param options
|
||||
* @returns {{key, cert}}
|
||||
*/
|
||||
getHttpsOptions: function (options) {
|
||||
var userOption = options.get("https");
|
||||
if (Map.isMap(userOption)) {
|
||||
if (userOption.has("pfx")) {
|
||||
return userOption.mergeDeep(getPFXDefaults(options));
|
||||
}
|
||||
return userOption.mergeDeep(getHttpsServerDefaults(options));
|
||||
}
|
||||
return getHttpsServerDefaults(options);
|
||||
},
|
||||
/**
|
||||
* Get either http or https server
|
||||
* or use the httpModule provided in options if present
|
||||
*/
|
||||
getServer: function (app, options) {
|
||||
return {
|
||||
server: (function () {
|
||||
var httpModule = serverUtils.getHttpModule(options);
|
||||
if (options.get("scheme") === "https" ||
|
||||
options.get("httpModule") === "http2") {
|
||||
var opts = serverUtils.getHttpsOptions(options);
|
||||
return httpModule.createServer(opts.toJS(), app);
|
||||
}
|
||||
return httpModule.createServer(app);
|
||||
})(),
|
||||
app: app
|
||||
};
|
||||
},
|
||||
getHttpModule: function (options) {
|
||||
/**
|
||||
* Users may provide a string to be used by nodes
|
||||
* require lookup.
|
||||
*/
|
||||
var httpModule = options.get("httpModule");
|
||||
if (typeof httpModule === "string") {
|
||||
/**
|
||||
* Note, this could throw, but let that happen as
|
||||
* the error message good enough.
|
||||
*/
|
||||
var maybe = require.resolve(httpModule);
|
||||
return require(maybe);
|
||||
}
|
||||
if (options.get("scheme") === "https") {
|
||||
return https;
|
||||
}
|
||||
return http;
|
||||
},
|
||||
getMiddlewares: function (bs) {
|
||||
var clientJs = bs.pluginManager.hook("client:js", {
|
||||
port: bs.options.get("port"),
|
||||
options: bs.options
|
||||
});
|
||||
var scripts = bs.pluginManager.get("client:script")(bs.options.toJS(), clientJs, "middleware");
|
||||
var defaultMiddlewares = [
|
||||
{
|
||||
id: "Browsersync HTTP Protocol",
|
||||
route: require("../config").httpProtocol.path,
|
||||
handle: require("../http-protocol").middleware(bs)
|
||||
},
|
||||
{
|
||||
id: "Browsersync IE8 Support",
|
||||
route: "",
|
||||
handle: snippet.isOldIe(bs.options.get("excludedFileTypes").toJS())
|
||||
},
|
||||
{
|
||||
id: "Browsersync Response Modifier",
|
||||
route: "",
|
||||
handle: serverUtils.getSnippetMiddleware(bs)
|
||||
},
|
||||
{
|
||||
id: "Browsersync Client - versioned",
|
||||
route: bs.options.getIn(["scriptPaths", "versioned"]),
|
||||
handle: scripts
|
||||
},
|
||||
{
|
||||
id: "Browsersync Client",
|
||||
route: bs.options.getIn(["scriptPaths", "path"]),
|
||||
handle: scripts
|
||||
}
|
||||
];
|
||||
/**
|
||||
* Add cors middleware to the front of the stack
|
||||
* if a user provided a 'cors' flag
|
||||
*/
|
||||
if (bs.options.get("cors")) {
|
||||
defaultMiddlewares.unshift({
|
||||
id: "Browsersync CORS support",
|
||||
route: "",
|
||||
handle: serverUtils.getCorsMiddlewware()
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Add connect-history-api-fallback if 'single' argument given
|
||||
*/
|
||||
if (bs.options.get("single")) {
|
||||
defaultMiddlewares.unshift({
|
||||
id: "Browsersync SPA support",
|
||||
route: "",
|
||||
handle: require("connect-history-api-fallback")()
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Add serve static middleware
|
||||
*/
|
||||
if (bs.options.get("serveStatic")) {
|
||||
var ssMiddlewares = serverUtils.getServeStaticMiddlewares(bs.options.get("serveStatic"), bs.options.get("serveStaticOptions", Immutable.Map({})).toJS());
|
||||
var withErrors = ssMiddlewares.filter(function (x) {
|
||||
return x.get("errors").size > 0;
|
||||
});
|
||||
var withoutErrors = ssMiddlewares.filter(function (x) {
|
||||
return x.get("errors").size === 0;
|
||||
});
|
||||
if (withErrors.size) {
|
||||
withErrors.forEach(function (item) {
|
||||
logger.logger.error("%s %s", chalk.red("Warning!"), item.getIn(["errors", 0, "data", "message"]));
|
||||
});
|
||||
}
|
||||
if (withoutErrors.size) {
|
||||
withoutErrors.forEach(function (item) {
|
||||
defaultMiddlewares.push.apply(defaultMiddlewares, item.get("items").toJS());
|
||||
});
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Add user-provided middlewares
|
||||
*/
|
||||
var userMiddlewares = bs.options
|
||||
.get("middleware")
|
||||
.map(normaliseMiddleware)
|
||||
.toArray();
|
||||
var beforeMiddlewares = userMiddlewares.filter(function (x) {
|
||||
return x.override;
|
||||
});
|
||||
var afterMiddlewares = userMiddlewares
|
||||
.filter(function (x) {
|
||||
return !x.override;
|
||||
})
|
||||
.concat(bs.options.get("mode") !== "proxy" &&
|
||||
userMiddlewares.length === 0 && {
|
||||
id: "Browsersync 404/index support",
|
||||
route: "",
|
||||
handle: serveIndex(bs.options.get("cwd"), {
|
||||
icons: true,
|
||||
view: "details"
|
||||
})
|
||||
});
|
||||
const mwStack = []
|
||||
.concat(beforeMiddlewares, defaultMiddlewares, afterMiddlewares)
|
||||
.filter(Boolean);
|
||||
return mwStack;
|
||||
function normaliseMiddleware(item) {
|
||||
/**
|
||||
* Object given in options, which
|
||||
* ended up being a Map
|
||||
*/
|
||||
if (Map.isMap(item)) {
|
||||
return item.toJS();
|
||||
}
|
||||
/**
|
||||
* Single function
|
||||
*/
|
||||
if (typeof item === "function") {
|
||||
return {
|
||||
route: "",
|
||||
handle: item
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Plain obj
|
||||
*/
|
||||
if (item.route !== undefined && item.handle) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
},
|
||||
getBaseApp: function (bs) {
|
||||
var app = connect();
|
||||
var middlewares = serverUtils.getMiddlewares(bs);
|
||||
/**
|
||||
* Add all internal middlewares
|
||||
*/
|
||||
middlewares.forEach(function (item) {
|
||||
app.stack.push(item);
|
||||
});
|
||||
return app;
|
||||
},
|
||||
getSnippetMiddleware: function (bs) {
|
||||
var rules = [];
|
||||
var blacklist = List([])
|
||||
.concat(bs.options.getIn(["snippetOptions", "ignorePaths"]))
|
||||
.concat(bs.options.getIn(["snippetOptions", "blacklist"]))
|
||||
.filter(Boolean);
|
||||
var whitelist = List([]).concat(bs.options.getIn(["snippetOptions", "whitelist"]));
|
||||
// Snippet
|
||||
if (bs.options.get("snippet")) {
|
||||
rules.push(snippetUtils.getRegex(bs.options.get("snippet"), bs.options.get("snippetOptions")));
|
||||
}
|
||||
// User
|
||||
bs.options.get("rewriteRules").forEach(function (rule) {
|
||||
if (Map.isMap(rule)) {
|
||||
rules.push(rule.toJS());
|
||||
}
|
||||
if (_.isPlainObject(rule)) {
|
||||
rules.push(rule);
|
||||
}
|
||||
});
|
||||
// Proxy
|
||||
if (bs.options.get("proxy")) {
|
||||
var proxyRule = require("./proxy-utils").rewriteLinks(bs.options.getIn(["proxy", "url"]).toJS());
|
||||
rules.push(proxyRule);
|
||||
}
|
||||
var lr = lrSnippet.create({
|
||||
rules: rules,
|
||||
blacklist: blacklist.toArray(),
|
||||
whitelist: whitelist.toArray()
|
||||
});
|
||||
return lr.middleware;
|
||||
},
|
||||
getCorsMiddlewware: function () {
|
||||
return function (req, res, next) {
|
||||
// Website you wish to allow to connect
|
||||
res.setHeader("Access-Control-Allow-Origin", "*");
|
||||
// Request methods you wish to allow
|
||||
res.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS, PUT, PATCH, DELETE");
|
||||
// Request headers you wish to allow
|
||||
res.setHeader("Access-Control-Allow-Headers", "X-Requested-With,content-type");
|
||||
// Set to true if you need the website to include cookies in the requests sent
|
||||
// to the API (e.g. in case you use sessions)
|
||||
res.setHeader("Access-Control-Allow-Credentials", true);
|
||||
next();
|
||||
};
|
||||
},
|
||||
/**
|
||||
* @param ssOption
|
||||
* @param serveStaticOptions
|
||||
* @returns {*}
|
||||
*/
|
||||
getServeStaticMiddlewares: function (ssOption, serveStaticOptions) {
|
||||
return ssOption.map(function (dir, i) {
|
||||
/**
|
||||
* When a user gives a plain string only, eg:
|
||||
* serveStatic: ['./temp']
|
||||
* ->
|
||||
* This means a middleware will be created with
|
||||
* route: ''
|
||||
* handle: serveStatic('./temp', options)
|
||||
*/
|
||||
if (_.isString(dir)) {
|
||||
return getFromString(dir);
|
||||
}
|
||||
/**
|
||||
* If a user gave an object eg:
|
||||
* serveStatic: [{route: "", dir: ["test", "./tmp"]}]
|
||||
* ->
|
||||
* This means we need to create a middle for each route + dir combo
|
||||
*/
|
||||
if (Immutable.Map.isMap(dir)) {
|
||||
return getFromMap(dir, i);
|
||||
}
|
||||
/**
|
||||
* At this point, an item in the serveStatic array was not a string
|
||||
* or an object so we return an error that can be logged
|
||||
*/
|
||||
return fromJS({
|
||||
items: [],
|
||||
errors: [
|
||||
{
|
||||
type: "Invalid Type",
|
||||
data: {
|
||||
message: "Only strings and Objects (with route+dir) are supported for the ServeStatic option"
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
});
|
||||
/**
|
||||
* @param {string} x
|
||||
* @returns {string}
|
||||
*/
|
||||
function getRoute(x) {
|
||||
if (x === "")
|
||||
return "";
|
||||
return x[0] === "/" ? x : "/" + x;
|
||||
}
|
||||
/**
|
||||
* @param dir
|
||||
* @returns {Map}
|
||||
*/
|
||||
function getFromString(dir) {
|
||||
return fromJS({
|
||||
items: [
|
||||
{
|
||||
route: "",
|
||||
handle: serveStatic(dir, serveStaticOptions)
|
||||
}
|
||||
],
|
||||
errors: []
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @param dir
|
||||
* @returns {Map}
|
||||
*/
|
||||
function getFromMap(dir) {
|
||||
var ssOptions = (function () {
|
||||
if (dir.get("options")) {
|
||||
return dir.get("options").toJS();
|
||||
}
|
||||
return {};
|
||||
})();
|
||||
var route = Immutable.List([])
|
||||
.concat(dir.get("route"))
|
||||
.filter(_.isString);
|
||||
var _dir = Immutable.List([])
|
||||
.concat(dir.get("dir"))
|
||||
.filter(_.isString);
|
||||
if (_dir.size === 0) {
|
||||
return fromJS({
|
||||
items: [],
|
||||
errors: [
|
||||
{
|
||||
type: "Invalid Object",
|
||||
data: {
|
||||
message: "Serve Static requires a 'dir' property when using an Object"
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
var ssItems = (function () {
|
||||
/**
|
||||
* iterate over every 'route' item
|
||||
* @type {Immutable.List<any>|Immutable.List<*>|Immutable.List<any>|*}
|
||||
*/
|
||||
var routeItems = (function () {
|
||||
/**
|
||||
* If no 'route' was given, assume we want to match all
|
||||
* paths
|
||||
*/
|
||||
if (route.size === 0) {
|
||||
return _dir.map(function (dirString) {
|
||||
return Map({
|
||||
route: "",
|
||||
dir: dirString
|
||||
});
|
||||
});
|
||||
}
|
||||
return route.reduce(function (acc, routeString) {
|
||||
/**
|
||||
* For each 'route' item, also iterate through 'dirs'
|
||||
* @type {Immutable.Iterable<K, M>}
|
||||
*/
|
||||
var perDir = _dir.map(function (dirString) {
|
||||
return Map({
|
||||
route: getRoute(routeString),
|
||||
dir: dirString
|
||||
});
|
||||
});
|
||||
return acc.concat(perDir);
|
||||
}, List([]));
|
||||
})();
|
||||
/**
|
||||
* Now create a serverStatic Middleware for each item
|
||||
*/
|
||||
return routeItems.map(function (routeItem) {
|
||||
return routeItem.merge({
|
||||
handle: serveStatic(routeItem.get("dir"), ssOptions)
|
||||
});
|
||||
});
|
||||
})();
|
||||
return fromJS({
|
||||
items: ssItems,
|
||||
errors: []
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
module.exports = serverUtils;
|
||||
//# sourceMappingURL=utils.js.map
|
1
node_modules/browser-sync/dist/server/utils.js.map
generated
vendored
Normal file
1
node_modules/browser-sync/dist/server/utils.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user