forked from mirrors/gecko-dev
Bug 1521864 - It should be possible to open the debugger in a tab. r=davidwalsh
Differential Revision: https://phabricator.services.mozilla.com/D20485 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
c0f6271420
commit
b7ff50f82a
25 changed files with 47199 additions and 44228 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -88,6 +88,10 @@ third_party/python/psutil/tmp/
|
|||
devtools/client/chrome.manifest
|
||||
devtools/shared/chrome.manifest
|
||||
|
||||
# Ignore debugger build directories
|
||||
devtools/client/debugger/new/assets/build
|
||||
devtools/client/debugger/new/assets/module-manifest.json
|
||||
|
||||
# Ignore node_modules directories in devtools
|
||||
devtools/**/node_modules
|
||||
|
||||
|
|
|
|||
210
devtools/client/debugger/new/assets/dictionary.txt
Normal file
210
devtools/client/debugger/new/assets/dictionary.txt
Normal file
|
|
@ -0,0 +1,210 @@
|
|||
.mozconfig
|
||||
.png
|
||||
config.yml
|
||||
1x
|
||||
7x
|
||||
8x
|
||||
addon
|
||||
Aframe
|
||||
airtable
|
||||
amelzer
|
||||
APIs
|
||||
args
|
||||
asm
|
||||
Assaf
|
||||
Asynchronicity
|
||||
AUTOCLOBBER=1
|
||||
benchmarking
|
||||
blackboxed
|
||||
blandy
|
||||
Bomsy
|
||||
ci-badge
|
||||
CLRF
|
||||
cmd
|
||||
componentDidMount
|
||||
componentWillUnmount
|
||||
contextmenu
|
||||
createClass
|
||||
CRM
|
||||
discoverable.
|
||||
dispel
|
||||
displayNames
|
||||
errored
|
||||
extns
|
||||
featureFlag
|
||||
findSource
|
||||
findSources
|
||||
fixup
|
||||
GH
|
||||
href
|
||||
intermittents
|
||||
Jiel
|
||||
Klabnik
|
||||
li
|
||||
lifecycle
|
||||
linter
|
||||
mapDispatchToProps
|
||||
mc
|
||||
mk_add_options
|
||||
MobX
|
||||
mochii
|
||||
monospace
|
||||
nuxt
|
||||
onKeyDown
|
||||
param
|
||||
prettyPrint
|
||||
profiler
|
||||
q4
|
||||
rebases
|
||||
rebasing
|
||||
retext
|
||||
runtime
|
||||
scrollbars
|
||||
secondaryPanel
|
||||
selectLocation
|
||||
selectSource
|
||||
setPopupObjectProperties
|
||||
sexualized
|
||||
sha
|
||||
ship2gecko
|
||||
Sneha
|
||||
stacktraces
|
||||
subdirectory
|
||||
svgs
|
||||
Talos
|
||||
talos
|
||||
togglePaneCollapse
|
||||
Tohm
|
||||
travis
|
||||
UIs
|
||||
un-hide
|
||||
Unselects
|
||||
unstaged
|
||||
urls
|
||||
Varenya
|
||||
waitForPaused
|
||||
webpage
|
||||
Yulia
|
||||
Yura
|
||||
Yury
|
||||
whitespace
|
||||
destructuring
|
||||
isReactComponent
|
||||
uri
|
||||
prettyprint
|
||||
hasJsx
|
||||
workerChange
|
||||
exe
|
||||
prettyprint
|
||||
tojs
|
||||
HighlightLine
|
||||
isMinified
|
||||
setInScopeLines
|
||||
updateScopeBindings
|
||||
getSplitConsole
|
||||
wasmparser
|
||||
getSymbols
|
||||
codefolding
|
||||
vscode
|
||||
Fis
|
||||
maxListeners
|
||||
Lukas
|
||||
paddings
|
||||
Moar
|
||||
pushPref
|
||||
Dont
|
||||
mozilla
|
||||
highlightLine
|
||||
welcomebox
|
||||
Quickopen
|
||||
CommandBarButton
|
||||
dbg
|
||||
getFramework
|
||||
Anshul
|
||||
sourcemap
|
||||
isPaused
|
||||
QuickOpen
|
||||
named-evals
|
||||
Greenkeeper
|
||||
headlessly
|
||||
natively
|
||||
outputed
|
||||
threadClient
|
||||
tabTarget
|
||||
bpClients
|
||||
originalToGeneratedId
|
||||
stopSourceMapWorker
|
||||
PreferencesHelper
|
||||
don't
|
||||
url
|
||||
sendPacket
|
||||
ws
|
||||
Unclickable
|
||||
takeScreenshot
|
||||
debug-brk
|
||||
ChromeUtils
|
||||
cmdOrControl
|
||||
cmdOrCtrl
|
||||
flexbox
|
||||
theme-content-color3
|
||||
getFrameScopes
|
||||
localizations
|
||||
Vue
|
||||
sourceMapURL
|
||||
onmessage
|
||||
un-mapped
|
||||
2x
|
||||
vue
|
||||
shouldComponentUpdate
|
||||
goto
|
||||
HTM
|
||||
WinCCOV
|
||||
requestLongerTimeout
|
||||
frontend
|
||||
VisibilityHandler
|
||||
unmounting
|
||||
img
|
||||
contenxt
|
||||
typeErrors
|
||||
SourceRecord
|
||||
typeErrors
|
||||
getIcon
|
||||
cheap-eval-mode
|
||||
enums
|
||||
ImmutableJS
|
||||
Fennec
|
||||
v59
|
||||
tabIndex
|
||||
react-inlinesvg
|
||||
findClosestScope
|
||||
findClosestFunction
|
||||
paren
|
||||
parens
|
||||
namespaces
|
||||
getMappedExpression
|
||||
getIn
|
||||
TypeError
|
||||
lastStatement
|
||||
defs
|
||||
BreakpointItem
|
||||
destructured
|
||||
getExtraProps
|
||||
SpiderMonkey
|
||||
mozconfig
|
||||
JIT
|
||||
checkboxes
|
||||
objectProperties
|
||||
addons
|
||||
debugBtn
|
||||
P1s
|
||||
pausePoints
|
||||
DocSearch
|
||||
220ms
|
||||
55ms
|
||||
mdn
|
||||
bytecode
|
||||
eval
|
||||
asyncStore
|
||||
CPG
|
||||
TodoMVC
|
||||
pseudocode
|
||||
96
devtools/client/debugger/new/bin/bundle.js
Normal file
96
devtools/client/debugger/new/bin/bundle.js
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
const {
|
||||
tools: { makeBundle, copyFile }
|
||||
} = require("devtools-launchpad/index");
|
||||
|
||||
const sourceMapAssets = require("devtools-source-map/assets");
|
||||
const path = require("path");
|
||||
const minimist = require("minimist");
|
||||
var fs = require("fs");
|
||||
const rimraf = require("rimraf");
|
||||
|
||||
|
||||
const projectPath = path.resolve(__dirname, "..");
|
||||
const bundlePath = path.join(projectPath, "./dist");
|
||||
|
||||
const clientPath = path.join(projectPath, "../../");
|
||||
const watch = false;
|
||||
const updateAssets = false;
|
||||
|
||||
process.env.NODE_ENV = "production"
|
||||
|
||||
function moveFile(src, dest, opts) {
|
||||
if (!fs.existsSync(src)) {
|
||||
return;
|
||||
}
|
||||
|
||||
copyFile(src, dest, opts);
|
||||
rimraf.sync(src);
|
||||
}
|
||||
|
||||
async function bundle() {
|
||||
|
||||
makeBundle({
|
||||
outputPath: bundlePath,
|
||||
projectPath,
|
||||
watch,
|
||||
updateAssets,
|
||||
onFinish: () => onBundleFinish({bundlePath, projectPath })
|
||||
})
|
||||
.then()
|
||||
.catch(err => {
|
||||
console.log(
|
||||
"[copy-assets] Uhoh, something went wrong. " +
|
||||
"The error was written to assets-error.log"
|
||||
);
|
||||
|
||||
fs.writeFileSync("assets-error.log", JSON.stringify(err, null, 2));
|
||||
});
|
||||
}
|
||||
|
||||
function onBundleFinish({ bundlePath, projectPath }) {
|
||||
console.log("[copy-assets] delete debugger.js bundle");
|
||||
|
||||
const debuggerPath = path.join(bundlePath, "debugger.js");
|
||||
if (fs.existsSync(debuggerPath)) {
|
||||
fs.unlinkSync(debuggerPath);
|
||||
}
|
||||
|
||||
console.log("[copy-assets] copy shared bundles to client/shared");
|
||||
moveFile(
|
||||
path.join(bundlePath, "source-map-worker.js"),
|
||||
path.join(clientPath, "shared/source-map/worker.js"),
|
||||
{ cwd: projectPath }
|
||||
);
|
||||
for (const filename of Object.keys(sourceMapAssets)) {
|
||||
moveFile(
|
||||
path.join(bundlePath, "source-map-worker-assets", filename),
|
||||
path.join(clientPath, "shared/source-map/assets", filename),
|
||||
{ cwd: projectPath }
|
||||
);
|
||||
}
|
||||
|
||||
moveFile(
|
||||
path.join(bundlePath, "source-map-index.js"),
|
||||
path.join(clientPath, "shared/source-map/index.js"),
|
||||
{ cwd: projectPath }
|
||||
);
|
||||
|
||||
|
||||
moveFile(
|
||||
path.join(bundlePath, "reps.js"),
|
||||
path.join(clientPath, "shared/components/reps/reps.js"),
|
||||
{ cwd: projectPath }
|
||||
);
|
||||
|
||||
moveFile(
|
||||
path.join(bundlePath, "reps.css"),
|
||||
path.join(clientPath, "shared/components/reps/reps.css"),
|
||||
{ cwd: projectPath }
|
||||
);
|
||||
|
||||
|
||||
|
||||
console.log("[copy-assets] done");
|
||||
}
|
||||
|
||||
bundle();
|
||||
29
devtools/client/debugger/new/bin/dev-server.js
Normal file
29
devtools/client/debugger/new/bin/dev-server.js
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
const toolbox = require("devtools-launchpad/index");
|
||||
const feature = require("devtools-config");
|
||||
const getConfig = require("./getConfig");
|
||||
const express = require("express");
|
||||
const serve = require("express-static");
|
||||
|
||||
const envConfig = getConfig();
|
||||
feature.setConfig(envConfig);
|
||||
|
||||
let webpackConfig = require("../webpack.config");
|
||||
|
||||
let { app } = toolbox.startDevServer(envConfig, webpackConfig, __dirname);
|
||||
|
||||
app.use("/integration/examples", express.static("test/mochitest/examples"));
|
||||
app.use("/images", serve(path.join(__dirname, "../images")));
|
||||
|
||||
// Serve devtools-reps images
|
||||
app.use("/devtools-reps/images/", serve(path.join(__dirname, "../src/shared/images")));
|
||||
|
||||
// As well as devtools-components ones, with a different path, which we are going to
|
||||
// write in the postCSS config in development mode.
|
||||
app.use("/devtools-components/images/",
|
||||
serve(path.join(__dirname, "../node_modules/devtools-components/src/images")));
|
||||
|
||||
console.log("View debugger examples here:");
|
||||
console.log("https://github.com/firefox-devtools/debugger-examples");
|
||||
23
devtools/client/debugger/new/bin/getConfig.js
Normal file
23
devtools/client/debugger/new/bin/getConfig.js
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
const merge = require("lodash/merge");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
function getConfig() {
|
||||
const firefoxConfig = require("../configs/firefox-panel.json");
|
||||
const developmentConfig = require("../configs/development.json");
|
||||
|
||||
let localConfig = {};
|
||||
if (fs.existsSync(path.resolve(__dirname, "../configs/local.json"))) {
|
||||
localConfig = require("../configs/local.json");
|
||||
}
|
||||
|
||||
if (process.env.TARGET === "firefox-panel") {
|
||||
return firefoxConfig;
|
||||
}
|
||||
|
||||
const envConfig = developmentConfig;
|
||||
|
||||
return merge({}, envConfig, localConfig);
|
||||
}
|
||||
|
||||
module.exports = getConfig;
|
||||
33
devtools/client/debugger/new/configs/development.json
Normal file
33
devtools/client/debugger/new/configs/development.json
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"title": "Debugger",
|
||||
"environment": "development",
|
||||
"favicon": "images/favicon.png",
|
||||
"theme": "light",
|
||||
"dir": "ltr",
|
||||
"defaultURL": "https://devtools-html.github.io/debugger-examples/",
|
||||
"logging": {
|
||||
"firefoxProxy": false
|
||||
},
|
||||
"chrome": {
|
||||
"debug": true,
|
||||
"host": "localhost",
|
||||
"port": 9222
|
||||
},
|
||||
"node": {
|
||||
"debug": true,
|
||||
"host": "localhost",
|
||||
"port": 9229
|
||||
},
|
||||
"firefox": {
|
||||
"webSocketConnection": false,
|
||||
"host": "localhost",
|
||||
"webSocketPort": 8116,
|
||||
"tcpPort": 6080,
|
||||
"mcPath": "./firefox"
|
||||
},
|
||||
|
||||
"development": {
|
||||
"serverPort": 8000,
|
||||
"examplesPort": 7999
|
||||
}
|
||||
}
|
||||
15
devtools/client/debugger/new/configs/firefox-panel.json
Normal file
15
devtools/client/debugger/new/configs/firefox-panel.json
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"environment": "firefox-panel",
|
||||
"logging": false,
|
||||
"clientLogging": false,
|
||||
"firefox": {
|
||||
"mcPath": "./firefox"
|
||||
},
|
||||
"workers": {
|
||||
"parserURL": "resource://devtools/client/debugger/new/parser-worker.js",
|
||||
"prettyPrintURL":
|
||||
"resource://devtools/client/debugger/new/pretty-print-worker.js",
|
||||
"searchURL": "resource://devtools/client/debugger/new/search-worker.js"
|
||||
},
|
||||
"features": {}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
|
||||
|
||||
// The excluded files below should not be required while the Debugger runs
|
||||
// in Firefox. Here, "devtools/shared/flags" is used as a dummy module.
|
||||
const EXCLUDED_FILES = {
|
||||
"../assets/panel/debugger.properties": "devtools/shared/flags",
|
||||
"devtools-connection": "devtools/shared/flags",
|
||||
"chrome-remote-interface": "devtools/shared/flags",
|
||||
"devtools-launchpad": "devtools/shared/flags"
|
||||
};
|
||||
|
||||
module.exports = Object.assign(
|
||||
{
|
||||
"./source-editor": "devtools/client/sourceeditor/editor",
|
||||
"../editor/source-editor": "devtools/client/sourceeditor/editor",
|
||||
"./test-flag": "devtools/shared/flags",
|
||||
"./fronts-device": "devtools/shared/fronts/device",
|
||||
immutable: "devtools/client/shared/vendor/immutable",
|
||||
lodash: "devtools/client/shared/vendor/lodash",
|
||||
react: "devtools/client/shared/vendor/react",
|
||||
"react-dom": "devtools/client/shared/vendor/react-dom",
|
||||
"react-dom-factories": "devtools/client/shared/vendor/react-dom-factories",
|
||||
"react-redux": "devtools/client/shared/vendor/react-redux",
|
||||
redux: "devtools/client/shared/vendor/redux",
|
||||
"prop-types": "devtools/client/shared/vendor/react-prop-types",
|
||||
"devtools-services": "Services",
|
||||
"wasmparser/dist/WasmParser": "devtools/client/shared/vendor/WasmParser",
|
||||
"wasmparser/dist/WasmDis": "devtools/client/shared/vendor/WasmDis"
|
||||
},
|
||||
EXCLUDED_FILES
|
||||
);
|
||||
41909
devtools/client/debugger/new/dist/parser-worker.js
vendored
41909
devtools/client/debugger/new/dist/parser-worker.js
vendored
File diff suppressed because one or more lines are too long
7994
devtools/client/debugger/new/dist/pretty-print-worker.js
vendored
7994
devtools/client/debugger/new/dist/pretty-print-worker.js
vendored
File diff suppressed because it is too large
Load diff
1480
devtools/client/debugger/new/dist/search-worker.js
vendored
1480
devtools/client/debugger/new/dist/search-worker.js
vendored
File diff suppressed because it is too large
Load diff
11238
devtools/client/debugger/new/dist/vendors.js
vendored
11238
devtools/client/debugger/new/dist/vendors.js
vendored
File diff suppressed because it is too large
Load diff
10
devtools/client/debugger/new/flow-typed/npm-custom/enzyme.js
vendored
Normal file
10
devtools/client/debugger/new/flow-typed/npm-custom/enzyme.js
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
|
||||
|
||||
// Using this custom definition of the enzyme module avoids generating some
|
||||
// flow errors that are unrelated to uses of enzyme itself...
|
||||
// It would be nice to clean this up.
|
||||
declare module "enzyme" {
|
||||
declare module.exports: any;
|
||||
}
|
||||
7
devtools/client/debugger/new/flow-typed/npm-custom/prettier.js
vendored
Normal file
7
devtools/client/debugger/new/flow-typed/npm-custom/prettier.js
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
|
||||
|
||||
declare module "prettier" {
|
||||
declare module.exports: any;
|
||||
}
|
||||
6
devtools/client/debugger/new/images/column-marker.svg
Normal file
6
devtools/client/debugger/new/images/column-marker.svg
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 11 13" width="11" height="13">
|
||||
<path d="M5.07.5H1.5c-.54 0-1 .46-1 1v10c0 .54.46 1 1 1h3.57c.58 0 1.15-.26 1.53-.7l3.7-5.3-3.7-5.3C6.22.76 5.65.5 5.07.5z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 431 B |
|
|
@ -3,18 +3,50 @@
|
|||
"version": "0.6.0",
|
||||
"license": "MPL-2.0",
|
||||
"repository": {
|
||||
"url": "git://github.com/devtools-html/debugger.html.git",
|
||||
"url": "git://github.com/firefox-devtools/debugger.html.git",
|
||||
"type": "git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/devtools-html/debugger.html/issues"
|
||||
"url": "https://github.com/firefox-devtools/debugger.html/issues"
|
||||
},
|
||||
"homepage": "https://github.com/devtools-html/debugger.html#readme",
|
||||
"homepage": "https://github.com/firefox-devtools/debugger.html#readme",
|
||||
"engineStrict": true,
|
||||
"engines": {
|
||||
"node": ">=7.7.0"
|
||||
"node": ">=10.15.0"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "node bin/dev-server",
|
||||
"start-app": "TARGET=application node bin/dev-server",
|
||||
"flow": "flow",
|
||||
"eslint-check": "eslint --print-config .eslintrc.js | eslint-config-prettier-check",
|
||||
"prettier": "node bin/prettier.js",
|
||||
"license-check": "devtools-license-check",
|
||||
"links": "ls -l node_modules/ | grep ^l || echo 'no linked packages'",
|
||||
"lint": "run-p lint:css lint:js lint:jsx-a11y lint:md",
|
||||
"lint:css": "stylelint \"src/components/**/*.css\"",
|
||||
"lint:js": "eslint *.js \"src/**/*.js\" \"packages/*/src/**/*.js\" --fix",
|
||||
"lint:jsx-a11y": "eslint *.js \"src/**/*.js\" \"packages/*/src/**/*.js\" --plugin=jsx-a11y --config=.eslintrc.jsx-a11y",
|
||||
"lint:md": "remark -u devtools-linters/markdown/preset -qf *.md src configs docs",
|
||||
"mochi": "mochii --mc ./firefox --interactive --default-test-path devtools/client/debugger/new",
|
||||
"mochid": "yarn mochi -- --jsdebugger --",
|
||||
"mochir": "yarn mochi -- --repeat 10 --",
|
||||
"mochih": "yarn mochi -- --headless --",
|
||||
"mochici": "mochii --mc ./firefox --ci --default-test-path devtools/client/debugger/new --headless --",
|
||||
"test": "jest",
|
||||
"test:watch": "jest --watch",
|
||||
"test:coverage": "yarn test --coverage",
|
||||
"test:all": "yarn test; yarn lint; yarn flow",
|
||||
"firefox": "start-firefox --start --location https://firefox-devtools.github.io/debugger-examples/",
|
||||
"chrome": "start-chrome --location https://firefox-devtools.github.io/debugger-examples/",
|
||||
"watch": "node bin/copy --watch --symlink",
|
||||
"copy": "node bin/copy --assets",
|
||||
"flow-coverage": "flow-coverage-report --threshold 50 -i 'src/actions/*.js' -i 'src/reducers/*.js' -i 'src/utils/*.js' -i 'src/components/*.js' -i 'src/components/**/*.js' -t html -t text",
|
||||
"flow-utils": "flow-coverage-report -i 'src/utils/*.js' -i 'src/utils/**/*.js' -t text",
|
||||
"flow-redux": "flow-coverage-report -i 'src/reducers/*.js' -i 'src/actions/*.js' -t text",
|
||||
"flow-react": "flow-coverage-report -i 'src/components/**/*.js' -t text",
|
||||
"nom": "node bin/nom",
|
||||
"diff": "node bin/diff",
|
||||
"install": "prettier --write package.json"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.0.0-beta.55",
|
||||
|
|
@ -24,7 +56,7 @@
|
|||
"babel-plugin-transform-imports": "^1.5.0",
|
||||
"codemirror": "^5.28.0",
|
||||
"devtools-environment": "^0.0.6",
|
||||
"devtools-launchpad": "^0.0.141",
|
||||
"devtools-launchpad": "^0.0.149",
|
||||
"devtools-linters": "^0.0.4",
|
||||
"devtools-reps": "0.23.0",
|
||||
"devtools-source-map": "0.16.0",
|
||||
|
|
@ -87,24 +119,24 @@
|
|||
"enzyme-adapter-react-16": "^1.1.1",
|
||||
"enzyme-to-json": "3.3.4",
|
||||
"eslint": "^5.0.0",
|
||||
"eslint-config-prettier": "^3.0.0",
|
||||
"eslint-config-prettier": "^4.0.0",
|
||||
"eslint-plugin-babel": "^5.0.0",
|
||||
"eslint-plugin-file-header": "0.0.1",
|
||||
"eslint-plugin-flowtype": "^3.0.0",
|
||||
"eslint-plugin-import": "^2.8.0",
|
||||
"eslint-plugin-jest": "^21.15.1",
|
||||
"eslint-plugin-jsx-a11y": "^6.1.2",
|
||||
"eslint-plugin-mozilla": "1.0.4",
|
||||
"eslint-plugin-mozilla": "1.1.1",
|
||||
"eslint-plugin-prettier": "^3.0.0",
|
||||
"eslint-plugin-react": "^7.2.1",
|
||||
"expect.js": "^0.3.1",
|
||||
"flow-bin": "^0.89.0",
|
||||
"flow-bin": "0.93.0",
|
||||
"glob": "^7.0.3",
|
||||
"husky": "^1.0.1",
|
||||
"jest": "^23.0.0",
|
||||
"jest-environment-jsdom": "^23.0.0",
|
||||
"jest-in-case": "^1.0.2",
|
||||
"jest-junit": "^5.0.0",
|
||||
"jest-junit": "^6.0.0",
|
||||
"jest-localstorage-mock": "^2.2.0",
|
||||
"jest-serializer-babel-ast": "^0.0.5",
|
||||
"lint-staged": "^8.0.0",
|
||||
|
|
@ -126,7 +158,7 @@
|
|||
"remark-lint-table-cell-padding": "^1.0.0",
|
||||
"remark-lint-table-pipes": "^1.0.0",
|
||||
"remark-preset-lint-recommended": "^3.0.0",
|
||||
"remark-validate-links": "^7.0.0",
|
||||
"remark-validate-links": "^8.0.0",
|
||||
"rimraf": "^2.6.1",
|
||||
"single-line-log": "^1.1.2",
|
||||
"stylelint": "^9.0.0",
|
||||
|
|
|
|||
47
devtools/client/debugger/new/postcss.config.js
Normal file
47
devtools/client/debugger/new/postcss.config.js
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
|
||||
|
||||
var mapUrl = require("postcss-url-mapper");
|
||||
const debug = require("debug")("launchpad");
|
||||
|
||||
function mapUrlProduction(url) {
|
||||
const newUrl = url.replace(
|
||||
/\/images\//,
|
||||
"resource://devtools/client/debugger/new/images/"
|
||||
);
|
||||
|
||||
debug("map url", { url, newUrl });
|
||||
return newUrl;
|
||||
}
|
||||
|
||||
function mapUrlDevelopment(url) {
|
||||
const newUrl = url
|
||||
.replace(/(chrome:\/\/|resource:\/\/)/, "/mc/")
|
||||
.replace(/devtools\/skin/, "devtools/client/themes")
|
||||
.replace(/devtools\/content/, "devtools/client");
|
||||
|
||||
debug("map url", { url, newUrl });
|
||||
return newUrl;
|
||||
}
|
||||
|
||||
module.exports = ({ file, options, env }) => {
|
||||
if (env === "production") {
|
||||
return {
|
||||
plugins: [mapUrl(mapUrlProduction)]
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
plugins: [
|
||||
require("postcss-bidirection"),
|
||||
require("autoprefixer")({
|
||||
browsers: ["last 2 Firefox versions", "last 2 Chrome versions"],
|
||||
flexbox: false,
|
||||
grid: false
|
||||
}),
|
||||
require("postcss-class-namespace")(),
|
||||
mapUrl(mapUrlDevelopment)
|
||||
]
|
||||
};
|
||||
};
|
||||
40
devtools/client/debugger/new/src/main.development.js
Normal file
40
devtools/client/debugger/new/src/main.development.js
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
|
||||
|
||||
// @flow
|
||||
|
||||
import React from "react";
|
||||
import ReactDOM from "react-dom";
|
||||
|
||||
import { isFirefoxPanel } from "devtools-environment";
|
||||
|
||||
import { onConnect } from "./client";
|
||||
import { teardownWorkers } from "./utils/bootstrap";
|
||||
import sourceQueue from "./utils/source-queue";
|
||||
|
||||
function unmountRoot() {
|
||||
const mount = document.querySelector("#mount .launchpad-root");
|
||||
ReactDOM.unmountComponentAtNode(mount);
|
||||
}
|
||||
|
||||
const { bootstrap, L10N } = require("devtools-launchpad");
|
||||
|
||||
window.L10N = L10N;
|
||||
// $FlowIgnore:
|
||||
window.L10N.setBundle(require("../../../locales/en-us/debugger.properties"));
|
||||
|
||||
bootstrap(React, ReactDOM).then(connection => {
|
||||
onConnect(connection, require("devtools-source-map"), {
|
||||
emit: eventName => console.log(`emitted: ${eventName}`),
|
||||
openLink: url => {
|
||||
const win = window.open(url, "_blank");
|
||||
win.focus();
|
||||
},
|
||||
openWorkerToolbox: worker => alert(worker.url),
|
||||
openElementInInspector: grip =>
|
||||
alert(`Opening node in Inspector: ${grip.class}`),
|
||||
openConsoleAndEvaluate: input => alert(`console.log: ${input}`)
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -7,8 +7,6 @@
|
|||
import React from "react";
|
||||
import ReactDOM from "react-dom";
|
||||
|
||||
import { isFirefoxPanel } from "devtools-environment";
|
||||
|
||||
import { onConnect } from "./client";
|
||||
import { teardownWorkers } from "./utils/bootstrap";
|
||||
import sourceQueue from "./utils/source-queue";
|
||||
|
|
@ -18,52 +16,29 @@ function unmountRoot() {
|
|||
ReactDOM.unmountComponentAtNode(mount);
|
||||
}
|
||||
|
||||
if (isFirefoxPanel()) {
|
||||
module.exports = {
|
||||
bootstrap: ({
|
||||
threadClient,
|
||||
tabTarget,
|
||||
debuggerClient,
|
||||
sourceMaps,
|
||||
panel
|
||||
}: any) => {
|
||||
return onConnect(
|
||||
{
|
||||
tab: { clientType: "firefox" },
|
||||
tabConnection: {
|
||||
tabTarget,
|
||||
threadClient,
|
||||
debuggerClient
|
||||
}
|
||||
},
|
||||
sourceMaps,
|
||||
panel
|
||||
);
|
||||
module.exports = {
|
||||
bootstrap: ({
|
||||
threadClient,
|
||||
tabTarget,
|
||||
debuggerClient,
|
||||
sourceMaps,
|
||||
panel
|
||||
}: any) =>
|
||||
onConnect(
|
||||
{
|
||||
tab: { clientType: "firefox" },
|
||||
tabConnection: {
|
||||
tabTarget,
|
||||
threadClient,
|
||||
debuggerClient
|
||||
}
|
||||
},
|
||||
destroy: () => {
|
||||
unmountRoot();
|
||||
sourceQueue.clear();
|
||||
teardownWorkers();
|
||||
}
|
||||
};
|
||||
} else {
|
||||
const { bootstrap, L10N } = require("devtools-launchpad");
|
||||
|
||||
window.L10N = L10N;
|
||||
// $FlowIgnore:
|
||||
window.L10N.setBundle(require("../assets/panel/debugger.properties"));
|
||||
|
||||
bootstrap(React, ReactDOM).then(connection => {
|
||||
onConnect(connection, require("devtools-source-map"), {
|
||||
emit: eventName => console.log(`emitted: ${eventName}`),
|
||||
openLink: url => {
|
||||
const win = window.open(url, "_blank");
|
||||
win.focus();
|
||||
},
|
||||
openWorkerToolbox: worker => alert(worker.url),
|
||||
openElementInInspector: grip =>
|
||||
alert(`Opening node in Inspector: ${grip.class}`),
|
||||
openConsoleAndEvaluate: input => alert(`console.log: ${input}`)
|
||||
});
|
||||
});
|
||||
}
|
||||
sourceMaps,
|
||||
panel
|
||||
),
|
||||
destroy: () => {
|
||||
unmountRoot();
|
||||
sourceQueue.clear();
|
||||
teardownWorkers();
|
||||
}
|
||||
};
|
||||
|
|
|
|||
98
devtools/client/debugger/new/webpack.config.js
Normal file
98
devtools/client/debugger/new/webpack.config.js
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
|
||||
|
||||
const toolbox = require("devtools-launchpad/index");
|
||||
const sourceMapAssets = require("devtools-source-map/assets");
|
||||
const CopyWebpackPlugin = require("copy-webpack-plugin");
|
||||
|
||||
const getConfig = require("./bin/getConfig");
|
||||
const mozillaCentralMappings = require("./configs/mozilla-central-mappings");
|
||||
const { NormalModuleReplacementPlugin } = require("webpack");
|
||||
const path = require("path");
|
||||
var Visualizer = require("webpack-visualizer-plugin");
|
||||
const ObjectRestSpreadPlugin = require("@sucrase/webpack-object-rest-spread-plugin");
|
||||
|
||||
const isProduction = process.env.NODE_ENV === "production";
|
||||
|
||||
/*
|
||||
* builds a path that's relative to the project path
|
||||
* returns an array so that we can prepend
|
||||
* hot-module-reloading in local development
|
||||
*/
|
||||
function getEntry(filename) {
|
||||
return [path.join(__dirname, filename)];
|
||||
}
|
||||
|
||||
const webpackConfig = {
|
||||
entry: {
|
||||
// We always generate the debugger bundle, but we will only copy the CSS
|
||||
// artifact over to mozilla-central.
|
||||
debugger: getEntry(isProduction ? "src/main.js" : "src/main.development.js"),
|
||||
"parser-worker": getEntry("src/workers/parser/worker.js"),
|
||||
"pretty-print-worker": getEntry("src/workers/pretty-print/worker.js"),
|
||||
"search-worker": getEntry("src/workers/search/worker.js"),
|
||||
"source-map-worker": getEntry("packages/devtools-source-map/src/worker.js"),
|
||||
"source-map-index": getEntry("packages/devtools-source-map/src/index.js")
|
||||
},
|
||||
|
||||
output: {
|
||||
path: path.join(__dirname, "assets/build"),
|
||||
filename: "[name].js",
|
||||
publicPath: "/assets/build"
|
||||
},
|
||||
|
||||
plugins: [
|
||||
new CopyWebpackPlugin(
|
||||
Object.entries(sourceMapAssets).map(([name, filePath]) => ({
|
||||
from: filePath,
|
||||
to: `source-map-worker-assets/${name}`
|
||||
}))
|
||||
)
|
||||
]
|
||||
};
|
||||
|
||||
if (isProduction) {
|
||||
// In the firefox panel, build the vendored dependencies as a bundle instead,
|
||||
// the other debugger modules will be transpiled to a format that is
|
||||
// compatible with the DevTools Loader.
|
||||
webpackConfig.entry.vendors = getEntry("src/vendors.js");
|
||||
webpackConfig.entry.reps = getEntry("packages/devtools-reps/src/index.js");
|
||||
}
|
||||
|
||||
const envConfig = getConfig();
|
||||
|
||||
const extra = {
|
||||
babelIncludes: ["react-aria-components"]
|
||||
};
|
||||
|
||||
webpackConfig.plugins.push(new ObjectRestSpreadPlugin());
|
||||
|
||||
if (!isProduction) {
|
||||
webpackConfig.module = webpackConfig.module || {};
|
||||
webpackConfig.module.rules = webpackConfig.module.rules || [];
|
||||
} else {
|
||||
webpackConfig.output.libraryTarget = "umd";
|
||||
|
||||
if (process.env.vis) {
|
||||
const viz = new Visualizer({
|
||||
filename: "webpack-stats.html"
|
||||
});
|
||||
webpackConfig.plugins.push(viz);
|
||||
}
|
||||
|
||||
const mappings = [
|
||||
[/\.\/mocha/, "./mochitest"],
|
||||
[/\.\.\/utils\/mocha/, "../utils/mochitest"],
|
||||
[/\.\/utils\/mocha/, "./utils/mochitest"],
|
||||
[/\.\/percy-stub/, "./percy-webpack"]
|
||||
];
|
||||
|
||||
extra.excludeMap = mozillaCentralMappings;
|
||||
|
||||
mappings.forEach(([regex, res]) => {
|
||||
webpackConfig.plugins.push(new NormalModuleReplacementPlugin(regex, res));
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = toolbox.toolboxConfig(webpackConfig, envConfig, extra);
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
|
@ -70,350 +70,12 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||
/******/ __webpack_require__.p = "/assets/build";
|
||||
/******/
|
||||
/******/ // Load entry module and return exports
|
||||
/******/ return __webpack_require__(__webpack_require__.s = 3727);
|
||||
/******/ return __webpack_require__(__webpack_require__.s = 760);
|
||||
/******/ })
|
||||
/************************************************************************/
|
||||
/******/ ({
|
||||
|
||||
/***/ 248:
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
(function(){
|
||||
var crypt = __webpack_require__(249),
|
||||
utf8 = __webpack_require__(250).utf8,
|
||||
isBuffer = __webpack_require__(251),
|
||||
bin = __webpack_require__(250).bin,
|
||||
|
||||
// The core
|
||||
md5 = function (message, options) {
|
||||
// Convert to byte array
|
||||
if (message.constructor == String)
|
||||
if (options && options.encoding === 'binary')
|
||||
message = bin.stringToBytes(message);
|
||||
else
|
||||
message = utf8.stringToBytes(message);
|
||||
else if (isBuffer(message))
|
||||
message = Array.prototype.slice.call(message, 0);
|
||||
else if (!Array.isArray(message))
|
||||
message = message.toString();
|
||||
// else, assume byte array already
|
||||
|
||||
var m = crypt.bytesToWords(message),
|
||||
l = message.length * 8,
|
||||
a = 1732584193,
|
||||
b = -271733879,
|
||||
c = -1732584194,
|
||||
d = 271733878;
|
||||
|
||||
// Swap endian
|
||||
for (var i = 0; i < m.length; i++) {
|
||||
m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |
|
||||
((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;
|
||||
}
|
||||
|
||||
// Padding
|
||||
m[l >>> 5] |= 0x80 << (l % 32);
|
||||
m[(((l + 64) >>> 9) << 4) + 14] = l;
|
||||
|
||||
// Method shortcuts
|
||||
var FF = md5._ff,
|
||||
GG = md5._gg,
|
||||
HH = md5._hh,
|
||||
II = md5._ii;
|
||||
|
||||
for (var i = 0; i < m.length; i += 16) {
|
||||
|
||||
var aa = a,
|
||||
bb = b,
|
||||
cc = c,
|
||||
dd = d;
|
||||
|
||||
a = FF(a, b, c, d, m[i+ 0], 7, -680876936);
|
||||
d = FF(d, a, b, c, m[i+ 1], 12, -389564586);
|
||||
c = FF(c, d, a, b, m[i+ 2], 17, 606105819);
|
||||
b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);
|
||||
a = FF(a, b, c, d, m[i+ 4], 7, -176418897);
|
||||
d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);
|
||||
c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);
|
||||
b = FF(b, c, d, a, m[i+ 7], 22, -45705983);
|
||||
a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);
|
||||
d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);
|
||||
c = FF(c, d, a, b, m[i+10], 17, -42063);
|
||||
b = FF(b, c, d, a, m[i+11], 22, -1990404162);
|
||||
a = FF(a, b, c, d, m[i+12], 7, 1804603682);
|
||||
d = FF(d, a, b, c, m[i+13], 12, -40341101);
|
||||
c = FF(c, d, a, b, m[i+14], 17, -1502002290);
|
||||
b = FF(b, c, d, a, m[i+15], 22, 1236535329);
|
||||
|
||||
a = GG(a, b, c, d, m[i+ 1], 5, -165796510);
|
||||
d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);
|
||||
c = GG(c, d, a, b, m[i+11], 14, 643717713);
|
||||
b = GG(b, c, d, a, m[i+ 0], 20, -373897302);
|
||||
a = GG(a, b, c, d, m[i+ 5], 5, -701558691);
|
||||
d = GG(d, a, b, c, m[i+10], 9, 38016083);
|
||||
c = GG(c, d, a, b, m[i+15], 14, -660478335);
|
||||
b = GG(b, c, d, a, m[i+ 4], 20, -405537848);
|
||||
a = GG(a, b, c, d, m[i+ 9], 5, 568446438);
|
||||
d = GG(d, a, b, c, m[i+14], 9, -1019803690);
|
||||
c = GG(c, d, a, b, m[i+ 3], 14, -187363961);
|
||||
b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);
|
||||
a = GG(a, b, c, d, m[i+13], 5, -1444681467);
|
||||
d = GG(d, a, b, c, m[i+ 2], 9, -51403784);
|
||||
c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);
|
||||
b = GG(b, c, d, a, m[i+12], 20, -1926607734);
|
||||
|
||||
a = HH(a, b, c, d, m[i+ 5], 4, -378558);
|
||||
d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);
|
||||
c = HH(c, d, a, b, m[i+11], 16, 1839030562);
|
||||
b = HH(b, c, d, a, m[i+14], 23, -35309556);
|
||||
a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);
|
||||
d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);
|
||||
c = HH(c, d, a, b, m[i+ 7], 16, -155497632);
|
||||
b = HH(b, c, d, a, m[i+10], 23, -1094730640);
|
||||
a = HH(a, b, c, d, m[i+13], 4, 681279174);
|
||||
d = HH(d, a, b, c, m[i+ 0], 11, -358537222);
|
||||
c = HH(c, d, a, b, m[i+ 3], 16, -722521979);
|
||||
b = HH(b, c, d, a, m[i+ 6], 23, 76029189);
|
||||
a = HH(a, b, c, d, m[i+ 9], 4, -640364487);
|
||||
d = HH(d, a, b, c, m[i+12], 11, -421815835);
|
||||
c = HH(c, d, a, b, m[i+15], 16, 530742520);
|
||||
b = HH(b, c, d, a, m[i+ 2], 23, -995338651);
|
||||
|
||||
a = II(a, b, c, d, m[i+ 0], 6, -198630844);
|
||||
d = II(d, a, b, c, m[i+ 7], 10, 1126891415);
|
||||
c = II(c, d, a, b, m[i+14], 15, -1416354905);
|
||||
b = II(b, c, d, a, m[i+ 5], 21, -57434055);
|
||||
a = II(a, b, c, d, m[i+12], 6, 1700485571);
|
||||
d = II(d, a, b, c, m[i+ 3], 10, -1894986606);
|
||||
c = II(c, d, a, b, m[i+10], 15, -1051523);
|
||||
b = II(b, c, d, a, m[i+ 1], 21, -2054922799);
|
||||
a = II(a, b, c, d, m[i+ 8], 6, 1873313359);
|
||||
d = II(d, a, b, c, m[i+15], 10, -30611744);
|
||||
c = II(c, d, a, b, m[i+ 6], 15, -1560198380);
|
||||
b = II(b, c, d, a, m[i+13], 21, 1309151649);
|
||||
a = II(a, b, c, d, m[i+ 4], 6, -145523070);
|
||||
d = II(d, a, b, c, m[i+11], 10, -1120210379);
|
||||
c = II(c, d, a, b, m[i+ 2], 15, 718787259);
|
||||
b = II(b, c, d, a, m[i+ 9], 21, -343485551);
|
||||
|
||||
a = (a + aa) >>> 0;
|
||||
b = (b + bb) >>> 0;
|
||||
c = (c + cc) >>> 0;
|
||||
d = (d + dd) >>> 0;
|
||||
}
|
||||
|
||||
return crypt.endian([a, b, c, d]);
|
||||
};
|
||||
|
||||
// Auxiliary functions
|
||||
md5._ff = function (a, b, c, d, x, s, t) {
|
||||
var n = a + (b & c | ~b & d) + (x >>> 0) + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
};
|
||||
md5._gg = function (a, b, c, d, x, s, t) {
|
||||
var n = a + (b & d | c & ~d) + (x >>> 0) + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
};
|
||||
md5._hh = function (a, b, c, d, x, s, t) {
|
||||
var n = a + (b ^ c ^ d) + (x >>> 0) + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
};
|
||||
md5._ii = function (a, b, c, d, x, s, t) {
|
||||
var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
};
|
||||
|
||||
// Package private blocksize
|
||||
md5._blocksize = 16;
|
||||
md5._digestsize = 16;
|
||||
|
||||
module.exports = function (message, options) {
|
||||
if (message === undefined || message === null)
|
||||
throw new Error('Illegal argument ' + message);
|
||||
|
||||
var digestbytes = crypt.wordsToBytes(md5(message, options));
|
||||
return options && options.asBytes ? digestbytes :
|
||||
options && options.asString ? bin.bytesToString(digestbytes) :
|
||||
crypt.bytesToHex(digestbytes);
|
||||
};
|
||||
|
||||
})();
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 249:
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
(function() {
|
||||
var base64map
|
||||
= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
|
||||
|
||||
crypt = {
|
||||
// Bit-wise rotation left
|
||||
rotl: function(n, b) {
|
||||
return (n << b) | (n >>> (32 - b));
|
||||
},
|
||||
|
||||
// Bit-wise rotation right
|
||||
rotr: function(n, b) {
|
||||
return (n << (32 - b)) | (n >>> b);
|
||||
},
|
||||
|
||||
// Swap big-endian to little-endian and vice versa
|
||||
endian: function(n) {
|
||||
// If number given, swap endian
|
||||
if (n.constructor == Number) {
|
||||
return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;
|
||||
}
|
||||
|
||||
// Else, assume array and swap all items
|
||||
for (var i = 0; i < n.length; i++)
|
||||
n[i] = crypt.endian(n[i]);
|
||||
return n;
|
||||
},
|
||||
|
||||
// Generate an array of any length of random bytes
|
||||
randomBytes: function(n) {
|
||||
for (var bytes = []; n > 0; n--)
|
||||
bytes.push(Math.floor(Math.random() * 256));
|
||||
return bytes;
|
||||
},
|
||||
|
||||
// Convert a byte array to big-endian 32-bit words
|
||||
bytesToWords: function(bytes) {
|
||||
for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)
|
||||
words[b >>> 5] |= bytes[i] << (24 - b % 32);
|
||||
return words;
|
||||
},
|
||||
|
||||
// Convert big-endian 32-bit words to a byte array
|
||||
wordsToBytes: function(words) {
|
||||
for (var bytes = [], b = 0; b < words.length * 32; b += 8)
|
||||
bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);
|
||||
return bytes;
|
||||
},
|
||||
|
||||
// Convert a byte array to a hex string
|
||||
bytesToHex: function(bytes) {
|
||||
for (var hex = [], i = 0; i < bytes.length; i++) {
|
||||
hex.push((bytes[i] >>> 4).toString(16));
|
||||
hex.push((bytes[i] & 0xF).toString(16));
|
||||
}
|
||||
return hex.join('');
|
||||
},
|
||||
|
||||
// Convert a hex string to a byte array
|
||||
hexToBytes: function(hex) {
|
||||
for (var bytes = [], c = 0; c < hex.length; c += 2)
|
||||
bytes.push(parseInt(hex.substr(c, 2), 16));
|
||||
return bytes;
|
||||
},
|
||||
|
||||
// Convert a byte array to a base-64 string
|
||||
bytesToBase64: function(bytes) {
|
||||
for (var base64 = [], i = 0; i < bytes.length; i += 3) {
|
||||
var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];
|
||||
for (var j = 0; j < 4; j++)
|
||||
if (i * 8 + j * 6 <= bytes.length * 8)
|
||||
base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));
|
||||
else
|
||||
base64.push('=');
|
||||
}
|
||||
return base64.join('');
|
||||
},
|
||||
|
||||
// Convert a base-64 string to a byte array
|
||||
base64ToBytes: function(base64) {
|
||||
// Remove non-base-64 characters
|
||||
base64 = base64.replace(/[^A-Z0-9+\/]/ig, '');
|
||||
|
||||
for (var bytes = [], i = 0, imod4 = 0; i < base64.length;
|
||||
imod4 = ++i % 4) {
|
||||
if (imod4 == 0) continue;
|
||||
bytes.push(((base64map.indexOf(base64.charAt(i - 1))
|
||||
& (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))
|
||||
| (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));
|
||||
}
|
||||
return bytes;
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = crypt;
|
||||
})();
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 250:
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
var charenc = {
|
||||
// UTF-8 encoding
|
||||
utf8: {
|
||||
// Convert a string to a byte array
|
||||
stringToBytes: function(str) {
|
||||
return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));
|
||||
},
|
||||
|
||||
// Convert a byte array to a string
|
||||
bytesToString: function(bytes) {
|
||||
return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));
|
||||
}
|
||||
},
|
||||
|
||||
// Binary encoding
|
||||
bin: {
|
||||
// Convert a string to a byte array
|
||||
stringToBytes: function(str) {
|
||||
for (var bytes = [], i = 0; i < str.length; i++)
|
||||
bytes.push(str.charCodeAt(i) & 0xFF);
|
||||
return bytes;
|
||||
},
|
||||
|
||||
// Convert a byte array to a string
|
||||
bytesToString: function(bytes) {
|
||||
for (var str = [], i = 0; i < bytes.length; i++)
|
||||
str.push(String.fromCharCode(bytes[i]));
|
||||
return str.join('');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = charenc;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 251:
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
/*!
|
||||
* Determine if an object is a Buffer
|
||||
*
|
||||
* @author Feross Aboukhadijeh <https://feross.org>
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
// The _isBuffer check is for Safari 5-7 support, because it's missing
|
||||
// Object.prototype.constructor. Remove this eventually
|
||||
module.exports = function (obj) {
|
||||
return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
|
||||
}
|
||||
|
||||
function isBuffer (obj) {
|
||||
return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
|
||||
}
|
||||
|
||||
// For Node v0.10 support. Remove this eventually.
|
||||
function isSlowBuffer (obj) {
|
||||
return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
|
||||
}
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 3646:
|
||||
/***/ 14:
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
|
|
@ -424,7 +86,7 @@ Object.defineProperty(exports, "__esModule", {
|
|||
});
|
||||
exports.stopSourceMapWorker = exports.startSourceMapWorker = exports.isOriginalId = exports.isGeneratedId = exports.generatedToOriginalId = exports.originalToGeneratedId = exports.getOriginalStackFrames = exports.hasMappedSource = exports.clearSourceMaps = exports.applySourceMap = exports.getOriginalSourceText = exports.getLocationScopes = exports.getFileGeneratedRange = exports.getOriginalLocation = exports.getAllGeneratedLocations = exports.getGeneratedLocation = exports.getGeneratedRanges = exports.getOriginalRanges = exports.hasOriginalURL = exports.getOriginalURLs = exports.setAssetRootURL = exports.dispatcher = undefined;
|
||||
|
||||
var _utils = __webpack_require__(3652);
|
||||
var _utils = __webpack_require__(69);
|
||||
|
||||
Object.defineProperty(exports, "originalToGeneratedId", {
|
||||
enumerable: true,
|
||||
|
|
@ -451,7 +113,7 @@ Object.defineProperty(exports, "isOriginalId", {
|
|||
}
|
||||
});
|
||||
|
||||
var _devtoolsSourceMap = __webpack_require__(3646);
|
||||
var _devtoolsSourceMap = __webpack_require__(14);
|
||||
|
||||
var self = _interopRequireWildcard(_devtoolsSourceMap);
|
||||
|
||||
|
|
@ -463,7 +125,7 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
|
|||
|
||||
const {
|
||||
workerUtils: { WorkerDispatcher }
|
||||
} = __webpack_require__(3651);
|
||||
} = __webpack_require__(16);
|
||||
|
||||
const dispatcher = exports.dispatcher = new WorkerDispatcher();
|
||||
|
||||
|
|
@ -517,15 +179,15 @@ exports.default = self;
|
|||
|
||||
/***/ }),
|
||||
|
||||
/***/ 3651:
|
||||
/***/ 16:
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
const networkRequest = __webpack_require__(3653);
|
||||
const workerUtils = __webpack_require__(3654);
|
||||
const networkRequest = __webpack_require__(27);
|
||||
const workerUtils = __webpack_require__(28);
|
||||
|
||||
module.exports = {
|
||||
networkRequest,
|
||||
|
|
@ -534,95 +196,7 @@ module.exports = {
|
|||
|
||||
/***/ }),
|
||||
|
||||
/***/ 3652:
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
|
||||
|
||||
const md5 = __webpack_require__(248);
|
||||
|
||||
function originalToGeneratedId(originalId) {
|
||||
const match = originalId.match(/(.*)\/originalSource/);
|
||||
return match ? match[1] : "";
|
||||
}
|
||||
|
||||
function generatedToOriginalId(generatedId, url) {
|
||||
return `${generatedId}/originalSource-${md5(url)}`;
|
||||
}
|
||||
|
||||
function isOriginalId(id) {
|
||||
return (/\/originalSource/.test(id)
|
||||
);
|
||||
}
|
||||
|
||||
function isGeneratedId(id) {
|
||||
return !isOriginalId(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Trims the query part or reference identifier of a URL string, if necessary.
|
||||
*/
|
||||
function trimUrlQuery(url) {
|
||||
const length = url.length;
|
||||
const q1 = url.indexOf("?");
|
||||
const q2 = url.indexOf("&");
|
||||
const q3 = url.indexOf("#");
|
||||
const q = Math.min(q1 != -1 ? q1 : length, q2 != -1 ? q2 : length, q3 != -1 ? q3 : length);
|
||||
|
||||
return url.slice(0, q);
|
||||
}
|
||||
|
||||
// Map suffix to content type.
|
||||
const contentMap = {
|
||||
js: "text/javascript",
|
||||
jsm: "text/javascript",
|
||||
mjs: "text/javascript",
|
||||
ts: "text/typescript",
|
||||
tsx: "text/typescript-jsx",
|
||||
jsx: "text/jsx",
|
||||
vue: "text/vue",
|
||||
coffee: "text/coffeescript",
|
||||
elm: "text/elm",
|
||||
cljc: "text/x-clojure",
|
||||
cljs: "text/x-clojurescript"
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns the content type for the specified URL. If no specific
|
||||
* content type can be determined, "text/plain" is returned.
|
||||
*
|
||||
* @return String
|
||||
* The content type.
|
||||
*/
|
||||
function getContentType(url) {
|
||||
url = trimUrlQuery(url);
|
||||
const dot = url.lastIndexOf(".");
|
||||
if (dot >= 0) {
|
||||
const name = url.substring(dot + 1);
|
||||
if (name in contentMap) {
|
||||
return contentMap[name];
|
||||
}
|
||||
}
|
||||
return "text/plain";
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
originalToGeneratedId,
|
||||
generatedToOriginalId,
|
||||
isOriginalId,
|
||||
isGeneratedId,
|
||||
getContentType,
|
||||
contentMapForTesting: contentMap
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 3653:
|
||||
/***/ 27:
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
|
|
@ -650,7 +224,7 @@ module.exports = networkRequest;
|
|||
|
||||
/***/ }),
|
||||
|
||||
/***/ 3654:
|
||||
/***/ 28:
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
|
||||
|
|
@ -828,10 +402,436 @@ module.exports = {
|
|||
|
||||
/***/ }),
|
||||
|
||||
/***/ 3727:
|
||||
/***/ 51:
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
var charenc = {
|
||||
// UTF-8 encoding
|
||||
utf8: {
|
||||
// Convert a string to a byte array
|
||||
stringToBytes: function(str) {
|
||||
return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));
|
||||
},
|
||||
|
||||
// Convert a byte array to a string
|
||||
bytesToString: function(bytes) {
|
||||
return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));
|
||||
}
|
||||
},
|
||||
|
||||
// Binary encoding
|
||||
bin: {
|
||||
// Convert a string to a byte array
|
||||
stringToBytes: function(str) {
|
||||
for (var bytes = [], i = 0; i < str.length; i++)
|
||||
bytes.push(str.charCodeAt(i) & 0xFF);
|
||||
return bytes;
|
||||
},
|
||||
|
||||
// Convert a byte array to a string
|
||||
bytesToString: function(bytes) {
|
||||
for (var str = [], i = 0; i < bytes.length; i++)
|
||||
str.push(String.fromCharCode(bytes[i]));
|
||||
return str.join('');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = charenc;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 69:
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
module.exports = __webpack_require__(3646);
|
||||
"use strict";
|
||||
|
||||
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
|
||||
|
||||
const md5 = __webpack_require__(80);
|
||||
|
||||
function originalToGeneratedId(originalId) {
|
||||
const match = originalId.match(/(.*)\/originalSource/);
|
||||
return match ? match[1] : "";
|
||||
}
|
||||
|
||||
function generatedToOriginalId(generatedId, url) {
|
||||
return `${generatedId}/originalSource-${md5(url)}`;
|
||||
}
|
||||
|
||||
function isOriginalId(id) {
|
||||
return (/\/originalSource/.test(id)
|
||||
);
|
||||
}
|
||||
|
||||
function isGeneratedId(id) {
|
||||
return !isOriginalId(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Trims the query part or reference identifier of a URL string, if necessary.
|
||||
*/
|
||||
function trimUrlQuery(url) {
|
||||
const length = url.length;
|
||||
const q1 = url.indexOf("?");
|
||||
const q2 = url.indexOf("&");
|
||||
const q3 = url.indexOf("#");
|
||||
const q = Math.min(q1 != -1 ? q1 : length, q2 != -1 ? q2 : length, q3 != -1 ? q3 : length);
|
||||
|
||||
return url.slice(0, q);
|
||||
}
|
||||
|
||||
// Map suffix to content type.
|
||||
const contentMap = {
|
||||
js: "text/javascript",
|
||||
jsm: "text/javascript",
|
||||
mjs: "text/javascript",
|
||||
ts: "text/typescript",
|
||||
tsx: "text/typescript-jsx",
|
||||
jsx: "text/jsx",
|
||||
vue: "text/vue",
|
||||
coffee: "text/coffeescript",
|
||||
elm: "text/elm",
|
||||
cljc: "text/x-clojure",
|
||||
cljs: "text/x-clojurescript"
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns the content type for the specified URL. If no specific
|
||||
* content type can be determined, "text/plain" is returned.
|
||||
*
|
||||
* @return String
|
||||
* The content type.
|
||||
*/
|
||||
function getContentType(url) {
|
||||
url = trimUrlQuery(url);
|
||||
const dot = url.lastIndexOf(".");
|
||||
if (dot >= 0) {
|
||||
const name = url.substring(dot + 1);
|
||||
if (name in contentMap) {
|
||||
return contentMap[name];
|
||||
}
|
||||
}
|
||||
return "text/plain";
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
originalToGeneratedId,
|
||||
generatedToOriginalId,
|
||||
isOriginalId,
|
||||
isGeneratedId,
|
||||
getContentType,
|
||||
contentMapForTesting: contentMap
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 760:
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
module.exports = __webpack_require__(14);
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 80:
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
(function(){
|
||||
var crypt = __webpack_require__(81),
|
||||
utf8 = __webpack_require__(51).utf8,
|
||||
isBuffer = __webpack_require__(82),
|
||||
bin = __webpack_require__(51).bin,
|
||||
|
||||
// The core
|
||||
md5 = function (message, options) {
|
||||
// Convert to byte array
|
||||
if (message.constructor == String)
|
||||
if (options && options.encoding === 'binary')
|
||||
message = bin.stringToBytes(message);
|
||||
else
|
||||
message = utf8.stringToBytes(message);
|
||||
else if (isBuffer(message))
|
||||
message = Array.prototype.slice.call(message, 0);
|
||||
else if (!Array.isArray(message))
|
||||
message = message.toString();
|
||||
// else, assume byte array already
|
||||
|
||||
var m = crypt.bytesToWords(message),
|
||||
l = message.length * 8,
|
||||
a = 1732584193,
|
||||
b = -271733879,
|
||||
c = -1732584194,
|
||||
d = 271733878;
|
||||
|
||||
// Swap endian
|
||||
for (var i = 0; i < m.length; i++) {
|
||||
m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |
|
||||
((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;
|
||||
}
|
||||
|
||||
// Padding
|
||||
m[l >>> 5] |= 0x80 << (l % 32);
|
||||
m[(((l + 64) >>> 9) << 4) + 14] = l;
|
||||
|
||||
// Method shortcuts
|
||||
var FF = md5._ff,
|
||||
GG = md5._gg,
|
||||
HH = md5._hh,
|
||||
II = md5._ii;
|
||||
|
||||
for (var i = 0; i < m.length; i += 16) {
|
||||
|
||||
var aa = a,
|
||||
bb = b,
|
||||
cc = c,
|
||||
dd = d;
|
||||
|
||||
a = FF(a, b, c, d, m[i+ 0], 7, -680876936);
|
||||
d = FF(d, a, b, c, m[i+ 1], 12, -389564586);
|
||||
c = FF(c, d, a, b, m[i+ 2], 17, 606105819);
|
||||
b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);
|
||||
a = FF(a, b, c, d, m[i+ 4], 7, -176418897);
|
||||
d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);
|
||||
c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);
|
||||
b = FF(b, c, d, a, m[i+ 7], 22, -45705983);
|
||||
a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);
|
||||
d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);
|
||||
c = FF(c, d, a, b, m[i+10], 17, -42063);
|
||||
b = FF(b, c, d, a, m[i+11], 22, -1990404162);
|
||||
a = FF(a, b, c, d, m[i+12], 7, 1804603682);
|
||||
d = FF(d, a, b, c, m[i+13], 12, -40341101);
|
||||
c = FF(c, d, a, b, m[i+14], 17, -1502002290);
|
||||
b = FF(b, c, d, a, m[i+15], 22, 1236535329);
|
||||
|
||||
a = GG(a, b, c, d, m[i+ 1], 5, -165796510);
|
||||
d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);
|
||||
c = GG(c, d, a, b, m[i+11], 14, 643717713);
|
||||
b = GG(b, c, d, a, m[i+ 0], 20, -373897302);
|
||||
a = GG(a, b, c, d, m[i+ 5], 5, -701558691);
|
||||
d = GG(d, a, b, c, m[i+10], 9, 38016083);
|
||||
c = GG(c, d, a, b, m[i+15], 14, -660478335);
|
||||
b = GG(b, c, d, a, m[i+ 4], 20, -405537848);
|
||||
a = GG(a, b, c, d, m[i+ 9], 5, 568446438);
|
||||
d = GG(d, a, b, c, m[i+14], 9, -1019803690);
|
||||
c = GG(c, d, a, b, m[i+ 3], 14, -187363961);
|
||||
b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);
|
||||
a = GG(a, b, c, d, m[i+13], 5, -1444681467);
|
||||
d = GG(d, a, b, c, m[i+ 2], 9, -51403784);
|
||||
c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);
|
||||
b = GG(b, c, d, a, m[i+12], 20, -1926607734);
|
||||
|
||||
a = HH(a, b, c, d, m[i+ 5], 4, -378558);
|
||||
d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);
|
||||
c = HH(c, d, a, b, m[i+11], 16, 1839030562);
|
||||
b = HH(b, c, d, a, m[i+14], 23, -35309556);
|
||||
a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);
|
||||
d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);
|
||||
c = HH(c, d, a, b, m[i+ 7], 16, -155497632);
|
||||
b = HH(b, c, d, a, m[i+10], 23, -1094730640);
|
||||
a = HH(a, b, c, d, m[i+13], 4, 681279174);
|
||||
d = HH(d, a, b, c, m[i+ 0], 11, -358537222);
|
||||
c = HH(c, d, a, b, m[i+ 3], 16, -722521979);
|
||||
b = HH(b, c, d, a, m[i+ 6], 23, 76029189);
|
||||
a = HH(a, b, c, d, m[i+ 9], 4, -640364487);
|
||||
d = HH(d, a, b, c, m[i+12], 11, -421815835);
|
||||
c = HH(c, d, a, b, m[i+15], 16, 530742520);
|
||||
b = HH(b, c, d, a, m[i+ 2], 23, -995338651);
|
||||
|
||||
a = II(a, b, c, d, m[i+ 0], 6, -198630844);
|
||||
d = II(d, a, b, c, m[i+ 7], 10, 1126891415);
|
||||
c = II(c, d, a, b, m[i+14], 15, -1416354905);
|
||||
b = II(b, c, d, a, m[i+ 5], 21, -57434055);
|
||||
a = II(a, b, c, d, m[i+12], 6, 1700485571);
|
||||
d = II(d, a, b, c, m[i+ 3], 10, -1894986606);
|
||||
c = II(c, d, a, b, m[i+10], 15, -1051523);
|
||||
b = II(b, c, d, a, m[i+ 1], 21, -2054922799);
|
||||
a = II(a, b, c, d, m[i+ 8], 6, 1873313359);
|
||||
d = II(d, a, b, c, m[i+15], 10, -30611744);
|
||||
c = II(c, d, a, b, m[i+ 6], 15, -1560198380);
|
||||
b = II(b, c, d, a, m[i+13], 21, 1309151649);
|
||||
a = II(a, b, c, d, m[i+ 4], 6, -145523070);
|
||||
d = II(d, a, b, c, m[i+11], 10, -1120210379);
|
||||
c = II(c, d, a, b, m[i+ 2], 15, 718787259);
|
||||
b = II(b, c, d, a, m[i+ 9], 21, -343485551);
|
||||
|
||||
a = (a + aa) >>> 0;
|
||||
b = (b + bb) >>> 0;
|
||||
c = (c + cc) >>> 0;
|
||||
d = (d + dd) >>> 0;
|
||||
}
|
||||
|
||||
return crypt.endian([a, b, c, d]);
|
||||
};
|
||||
|
||||
// Auxiliary functions
|
||||
md5._ff = function (a, b, c, d, x, s, t) {
|
||||
var n = a + (b & c | ~b & d) + (x >>> 0) + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
};
|
||||
md5._gg = function (a, b, c, d, x, s, t) {
|
||||
var n = a + (b & d | c & ~d) + (x >>> 0) + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
};
|
||||
md5._hh = function (a, b, c, d, x, s, t) {
|
||||
var n = a + (b ^ c ^ d) + (x >>> 0) + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
};
|
||||
md5._ii = function (a, b, c, d, x, s, t) {
|
||||
var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;
|
||||
return ((n << s) | (n >>> (32 - s))) + b;
|
||||
};
|
||||
|
||||
// Package private blocksize
|
||||
md5._blocksize = 16;
|
||||
md5._digestsize = 16;
|
||||
|
||||
module.exports = function (message, options) {
|
||||
if (message === undefined || message === null)
|
||||
throw new Error('Illegal argument ' + message);
|
||||
|
||||
var digestbytes = crypt.wordsToBytes(md5(message, options));
|
||||
return options && options.asBytes ? digestbytes :
|
||||
options && options.asString ? bin.bytesToString(digestbytes) :
|
||||
crypt.bytesToHex(digestbytes);
|
||||
};
|
||||
|
||||
})();
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 81:
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
(function() {
|
||||
var base64map
|
||||
= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
|
||||
|
||||
crypt = {
|
||||
// Bit-wise rotation left
|
||||
rotl: function(n, b) {
|
||||
return (n << b) | (n >>> (32 - b));
|
||||
},
|
||||
|
||||
// Bit-wise rotation right
|
||||
rotr: function(n, b) {
|
||||
return (n << (32 - b)) | (n >>> b);
|
||||
},
|
||||
|
||||
// Swap big-endian to little-endian and vice versa
|
||||
endian: function(n) {
|
||||
// If number given, swap endian
|
||||
if (n.constructor == Number) {
|
||||
return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;
|
||||
}
|
||||
|
||||
// Else, assume array and swap all items
|
||||
for (var i = 0; i < n.length; i++)
|
||||
n[i] = crypt.endian(n[i]);
|
||||
return n;
|
||||
},
|
||||
|
||||
// Generate an array of any length of random bytes
|
||||
randomBytes: function(n) {
|
||||
for (var bytes = []; n > 0; n--)
|
||||
bytes.push(Math.floor(Math.random() * 256));
|
||||
return bytes;
|
||||
},
|
||||
|
||||
// Convert a byte array to big-endian 32-bit words
|
||||
bytesToWords: function(bytes) {
|
||||
for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)
|
||||
words[b >>> 5] |= bytes[i] << (24 - b % 32);
|
||||
return words;
|
||||
},
|
||||
|
||||
// Convert big-endian 32-bit words to a byte array
|
||||
wordsToBytes: function(words) {
|
||||
for (var bytes = [], b = 0; b < words.length * 32; b += 8)
|
||||
bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);
|
||||
return bytes;
|
||||
},
|
||||
|
||||
// Convert a byte array to a hex string
|
||||
bytesToHex: function(bytes) {
|
||||
for (var hex = [], i = 0; i < bytes.length; i++) {
|
||||
hex.push((bytes[i] >>> 4).toString(16));
|
||||
hex.push((bytes[i] & 0xF).toString(16));
|
||||
}
|
||||
return hex.join('');
|
||||
},
|
||||
|
||||
// Convert a hex string to a byte array
|
||||
hexToBytes: function(hex) {
|
||||
for (var bytes = [], c = 0; c < hex.length; c += 2)
|
||||
bytes.push(parseInt(hex.substr(c, 2), 16));
|
||||
return bytes;
|
||||
},
|
||||
|
||||
// Convert a byte array to a base-64 string
|
||||
bytesToBase64: function(bytes) {
|
||||
for (var base64 = [], i = 0; i < bytes.length; i += 3) {
|
||||
var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];
|
||||
for (var j = 0; j < 4; j++)
|
||||
if (i * 8 + j * 6 <= bytes.length * 8)
|
||||
base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));
|
||||
else
|
||||
base64.push('=');
|
||||
}
|
||||
return base64.join('');
|
||||
},
|
||||
|
||||
// Convert a base-64 string to a byte array
|
||||
base64ToBytes: function(base64) {
|
||||
// Remove non-base-64 characters
|
||||
base64 = base64.replace(/[^A-Z0-9+\/]/ig, '');
|
||||
|
||||
for (var bytes = [], i = 0, imod4 = 0; i < base64.length;
|
||||
imod4 = ++i % 4) {
|
||||
if (imod4 == 0) continue;
|
||||
bytes.push(((base64map.indexOf(base64.charAt(i - 1))
|
||||
& (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))
|
||||
| (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));
|
||||
}
|
||||
return bytes;
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = crypt;
|
||||
})();
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 82:
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
/*!
|
||||
* Determine if an object is a Buffer
|
||||
*
|
||||
* @author Feross Aboukhadijeh <https://feross.org>
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
// The _isBuffer check is for Safari 5-7 support, because it's missing
|
||||
// Object.prototype.constructor. Remove this eventually
|
||||
module.exports = function (obj) {
|
||||
return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
|
||||
}
|
||||
|
||||
function isBuffer (obj) {
|
||||
return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
|
||||
}
|
||||
|
||||
// For Node v0.10 support. Remove this eventually.
|
||||
function isSlowBuffer (obj) {
|
||||
return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
|
||||
}
|
||||
|
||||
|
||||
/***/ })
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue