前端代码

This commit is contained in:
ChloeChen0423
2025-05-12 16:42:36 +09:00
commit 7c63f2f07b
4531 changed files with 656010 additions and 0 deletions

76
node_modules/browser-sync/dist/server/index.js generated vendored Normal file
View 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
View File

@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/server/index.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,IAAI,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC9C,IAAI,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEpC;;;GAGG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,UAAS,EAAE;IAC/B,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;IACrB,IAAI,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAElC,IAAI,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;IAEhC,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE;QACzC,KAAK,CACD,0CAA0C,EAC1C,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAC3B,CAAC;KACL;IAED,IAAI,KAAK,EAAE;QACP,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;KACtE;IAED,IAAI,QAAQ,EAAE;QACV;;WAEG;QACH,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE/B;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,MAAM,CAClB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EACtB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAC3B,CAAC;QAEF;;WAEG;QACH,EAAE,CAAC,mBAAmB,CAAC;YACnB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE;gBACxB,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;aACnC;YACD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE;gBACvB,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;aAClC;QACL,CAAC,CAAC,CAAC;QAEH;;WAEG;QACH,EAAE,CAAC,mBAAmB,CAAC;YACnB,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;KACN;IAED,SAAS,gBAAgB,CAAC,EAAE;QACxB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAS,GAAG;YACxC,CAAC,CAAC,GAAG,CACD,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EACf,sCAAsC,EACtC,IAAI,CACP,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAE9C,OAAO;QACH,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,GAAG,EAAE,QAAQ,CAAC,GAAG;KACpB,CAAC;AACN,CAAC,CAAC;AAEF;;;;GAIG;AACH,SAAS,YAAY,CAAC,EAAE;IACpB,IAAI,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEtC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;QACnB,OAAO,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;KAC1C;IAED,IAAI,KAAK,EAAE;QACP,OAAO,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;KACxC;IAED,IAAI,MAAM,EAAE;QACR,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;KACzC;AACL,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC"}

180
node_modules/browser-sync/dist/server/proxy-server.js generated vendored Normal file
View 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

View 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
View 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

View File

@ -0,0 +1 @@
{"version":3,"file":"proxy-utils.js","sourceRoot":"","sources":["../../lib/server/proxy-utils.js"],"names":[],"mappings":"AAAA,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AAEzB,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,UAAS,UAAU;IAC7C,IAAI,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC;IAC/B,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IAE3B,IAAI,IAAI,IAAI,IAAI,EAAE;QACd,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3B,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;SAC9B;KACJ;IAED,IAAI,GAAG,GAAG,IAAI,MAAM;IAChB,4BAA4B;IAC5B,mBAAmB;QACf,MAAM;QACN,GAAG;QACH,yBAAyB;QACzB,cAAc;QACd,MAAM;QACN,GAAG;QACH,2CAA2C;QAC3C,WAAW;QACX,MAAM;QACN,WAAW;QACX,GAAG;QACH,8DAA8D;QAC9D,0BAA0B;QAC1B,MAAM;QACN,8BAA8B,EAClC,GAAG,CACN,CAAC;IAEF,OAAO;QACH,KAAK,EAAE,GAAG;QACV,wJAAwJ;QACxJ,uIAAuI;QACvI,wHAAwH;QACxH,uDAAuD;QACvD,EAAE,EAAE,UAAS,GAAG,EAAE,GAAG,EAAE,KAAK;YACxB,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAEnC;;eAEG;YACH,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBAClB,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAEpE;;;eAGG;YACH,IAAI,GAAG,GAAG,IAAI,CAAC;YAEf,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACtC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC1B;YAED;;;eAGG;YACH,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAE3B;;eAEG;YACH,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;gBACX,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACrC,OAAO,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aACrD;YAED;;;eAGG;YACH,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;gBAClB,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;oBACzB,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;iBAClB;qBAAM;oBACH,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;iBACjB;aACJ;YAED;;eAEG;YACH,OAAO;gBACH,QAAQ;gBACR,GAAG;gBACH,QAAQ;gBACR,GAAG,CAAC,IAAI,IAAI,EAAE;gBACd,GAAG,CAAC,IAAI,IAAI,EAAE;aACjB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;KACJ,CAAC;AACN,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,SAAS,YAAY,CAAC,GAAG;IACnD,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,WAAW,EAAE;QAClD,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UACtD,IAAI;YAEJ,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;KACN;AACL,CAAC,CAAC;AAEF;;;;GAIG;AACH,SAAS,cAAc,CAAC,SAAS;IAC7B,IAAI,SAAS,GAAG,CAAC;QACb,iDAAiD;QACjD,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEnC,KAAK,CAAC,OAAO,CAAC,UAAS,IAAI;YACvB,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAEhC,6CAA6C;YAC7C,IAAI,OAAO,GAAG,CAAC,EAAE;gBACb,OAAO;aACV;YAED,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACzC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACf,CAAC,CAAC,EAAE,CAAC;IAEL,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;SAC7B,MAAM,CAAC,UAAS,IAAI;QACjB,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC;IAC3C,CAAC,CAAC;SACD,GAAG,CAAC,UAAS,GAAG;QACb,OAAO,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEP,IAAI,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;QAC9B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC1B;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC"}

View 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

View 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"}

View 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

View 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
View 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

View 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
View 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

File diff suppressed because one or more lines are too long