Browse Source

Updated dependencies

n1474335 4 năm trước cách đây
mục cha
commit
2b2ffb3346

+ 6 - 2
Gruntfile.js

@@ -242,6 +242,10 @@ module.exports = function (grunt) {
                     entry: Object.assign({
                         main: "./src/web/index.js"
                     }, moduleEntryPoints),
+                    output: {
+                        publicPath: "",
+                        globalObject: "this"
+                    },
                     resolve: {
                         alias: {
                             "./config/modules/OpModules.mjs": "./config/modules/Default.mjs"
@@ -302,7 +306,7 @@ module.exports = function (grunt) {
                 },
                 files: [
                     {
-                        src: "build/prod/index.html",
+                        src: ["build/prod/index.html"],
                         dest: "build/prod/index.html"
                     }
                 ]
@@ -324,7 +328,7 @@ module.exports = function (grunt) {
                 },
                 files: [
                     {
-                        src: "build/prod/index.html",
+                        src: ["build/prod/index.html"],
                         dest: `build/prod/CyberChef_v${pkg.version}.html`
                     }
                 ]

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1294 - 139
package-lock.json


+ 55 - 48
package.json

@@ -36,76 +36,80 @@
     "node >= 10"
   ],
   "devDependencies": {
-    "@babel/core": "^7.8.7",
-    "@babel/plugin-transform-runtime": "^7.8.3",
-    "@babel/preset-env": "^7.8.7",
-    "autoprefixer": "^9.7.4",
+    "@babel/core": "^7.12.10",
+    "@babel/plugin-transform-runtime": "^7.12.10",
+    "@babel/preset-env": "^7.12.10",
+    "autoprefixer": "^10.1.0",
     "babel-eslint": "^10.1.0",
-    "babel-loader": "^8.0.6",
-    "babel-plugin-dynamic-import-node": "^2.3.0",
-    "chromedriver": "^83.0.0",
-    "cli-progress": "^3.6.0",
+    "babel-loader": "^8.2.2",
+    "babel-plugin-dynamic-import-node": "^2.3.3",
+    "chromedriver": "^87.0.2",
+    "cli-progress": "^3.8.2",
     "colors": "^1.4.0",
-    "copy-webpack-plugin": "^5.1.1",
-    "css-loader": "^3.4.2",
-    "eslint": "^6.8.0",
-    "exports-loader": "^0.7.0",
-    "file-loader": "^6.0.0",
-    "grunt": "^1.1.0",
+    "copy-webpack-plugin": "^7.0.0",
+    "css-loader": "^5.0.1",
+    "eslint": "^7.15.0",
+    "exports-loader": "^1.1.1",
+    "file-loader": "^6.2.0",
+    "grunt": "^1.3.0",
     "grunt-accessibility": "~6.0.0",
     "grunt-chmod": "~1.1.1",
     "grunt-concurrent": "^3.0.0",
     "grunt-contrib-clean": "~2.0.0",
-    "grunt-contrib-connect": "^2.1.0",
+    "grunt-contrib-connect": "^3.0.0",
     "grunt-contrib-copy": "~1.0.0",
     "grunt-contrib-watch": "^1.1.0",
-    "grunt-eslint": "^22.0.0",
+    "grunt-eslint": "^23.0.0",
     "grunt-exec": "~3.0.0",
-    "grunt-webpack": "^3.1.3",
+    "grunt-webpack": "^4.0.2",
     "grunt-zip": "^0.18.2",
-    "html-webpack-plugin": "^3.2.0",
-    "imports-loader": "^0.8.0",
-    "mini-css-extract-plugin": "^0.9.0",
-    "nightwatch": "^1.3.5",
-    "node-sass": "^4.13.1",
-    "postcss-css-variables": "^0.14.0",
-    "postcss-import": "^12.0.1",
-    "postcss-loader": "^3.0.0",
+    "html-webpack-plugin": "^4.5.0",
+    "imports-loader": "^1.2.0",
+    "mini-css-extract-plugin": "^1.3.3",
+    "nightwatch": "^1.5.1",
+    "node-sass": "^5.0.0",
+    "postcss": "^8.2.1",
+    "postcss-css-variables": "^0.17.0",
+    "postcss-import": "^13.0.0",
+    "postcss-loader": "^4.1.0",
     "prompt": "^1.0.0",
-    "sass-loader": "^8.0.2",
-    "sitemap": "^6.1.0",
-    "style-loader": "^1.1.3",
-    "svg-url-loader": "^5.0.0",
-    "url-loader": "^4.0.0",
-    "webpack": "^4.42.0",
-    "webpack-bundle-analyzer": "^3.6.1",
-    "webpack-dev-server": "^3.10.3",
-    "webpack-node-externals": "^1.7.2",
-    "worker-loader": "^2.0.0"
+    "sass-loader": "^10.1.0",
+    "sitemap": "^6.3.3",
+    "style-loader": "^2.0.0",
+    "svg-url-loader": "^7.1.1",
+    "url-loader": "^4.1.1",
+    "webpack": "^5.10.0",
+    "webpack-bundle-analyzer": "^4.2.0",
+    "webpack-dev-server": "^3.11.0",
+    "webpack-node-externals": "^2.5.2",
+    "worker-loader": "^3.0.6"
   },
   "dependencies": {
-    "@babel/polyfill": "^7.8.7",
-    "@babel/runtime": "^7.8.7",
+    "@babel/polyfill": "^7.12.1",
+    "@babel/runtime": "^7.12.5",
     "arrive": "^2.4.1",
-    "avsc": "^5.4.19",
+    "avsc": "^5.5.3",
     "babel-plugin-transform-builtin-extend": "1.1.2",
     "bcryptjs": "^2.4.3",
     "bignumber.js": "^9.0.0",
     "blakejs": "^1.1.0",
-    "bootstrap": "4.5.0",
+    "bootstrap": "4.5.3",
     "bootstrap-colorpicker": "^3.2.0",
-    "bootstrap-material-design": "^4.1.2",
+    "bootstrap-material-design": "^4.1.3",
+    "browserify-zlib": "^0.2.0",
     "bson": "^4.0.3",
+    "buffer": "^6.0.3",
     "chi-squared": "^1.1.0",
     "codepage": "^1.14.0",
-    "core-js": "^3.6.4",
+    "core-js": "^3.8.1",
     "crypto-api": "^0.8.5",
+    "crypto-browserify": "^3.12.0",
     "crypto-js": "^4.0.0",
     "ctph.js": "0.0.5",
     "d3": "^5.15.0",
     "d3-hexbin": "^0.2.2",
     "diff": "^4.0.2",
-    "es6-promisify": "^6.1.0",
+    "es6-promisify": "^6.1.1",
     "escodegen": "^1.14.1",
     "esm": "^3.2.25",
     "esprima": "^4.0.1",
@@ -114,10 +118,10 @@
     "geodesy": "^1.1.3",
     "highlight.js": "^9.18.1",
     "jimp": "^0.9.5",
-    "jquery": "3.5.0",
+    "jquery": "3.5.1",
     "js-crc": "^0.2.0",
     "js-sha3": "^0.8.0",
-    "jsesc": "^2.5.2",
+    "jsesc": "^3.0.2",
     "jsonpath": "^1.0.2",
     "jsonwebtoken": "^8.5.1",
     "jsqr": "^1.2.0",
@@ -129,8 +133,8 @@
     "loglevel": "^1.6.7",
     "loglevel-message-prefix": "^3.0.0",
     "markdown-it": "^10.0.0",
-    "moment": "^2.24.0",
-    "moment-timezone": "^0.5.28",
+    "moment": "^2.29.1",
+    "moment-timezone": "^0.5.32",
     "ngeohash": "^0.6.3",
     "node-forge": "^0.9.1",
     "node-md6": "^0.1.0",
@@ -139,20 +143,22 @@
     "nwmatcher": "^1.4.4",
     "otp": "^0.1.3",
     "popper.js": "^1.16.1",
+    "process": "^0.11.10",
     "qr-image": "^3.2.0",
     "scryptsy": "^2.1.0",
     "snackbarjs": "^1.1.0",
     "sortablejs": "^1.10.2",
     "split.js": "^1.5.11",
     "ssdeep.js": "0.0.2",
+    "stream-browserify": "^3.0.0",
     "terser": "^4.3.9",
     "tesseract.js": "^2.0.2",
     "ua-parser-js": "^0.7.21",
     "unorm": "^1.6.0",
     "utf8": "^3.0.0",
     "vkbeautify": "^0.99.3",
-    "xmldom": "^0.3.0",
-    "xpath": "0.0.27",
+    "xmldom": "^0.4.0",
+    "xpath": "0.0.32",
     "xregexp": "^4.3.0",
     "zlibjs": "^0.3.1"
   },
@@ -165,6 +171,7 @@
     "testui": "grunt testui",
     "testuidev": "npx nightwatch --env=dev",
     "lint": "grunt lint",
+    "postinstall": "find ./node_modules/crypto-api/src/ \\( -type d -name .git -prune \\) -o -type f -print0 | xargs -0 sed -i '' -e '/\\.mjs/!s/\\(from \"\\.[^\"]*\\)\";/\\1.mjs\";/g'",
     "newop": "node --experimental-modules src/core/config/scripts/newOperation.mjs"
   }
 }

+ 3 - 3
src/core/operations/GenerateImage.mjs

@@ -7,10 +7,10 @@
 import Operation from "../Operation.mjs";
 import OperationError from "../errors/OperationError.mjs";
 import Utils from "../Utils.mjs";
-import {isImage} from "../lib/FileType";
-import {toBase64} from "../lib/Base64";
+import {isImage} from "../lib/FileType.mjs";
+import {toBase64} from "../lib/Base64.mjs";
 import jimp from "jimp";
-import {isWorkerEnvironment} from "../Utils";
+import {isWorkerEnvironment} from "../Utils.mjs";
 
 /**
  * Generate Image operation

+ 13 - 1
src/core/operations/XPathExpression.mjs

@@ -50,7 +50,19 @@ class XPathExpression extends Operation {
 
         let doc;
         try {
-            doc = new xmldom.DOMParser().parseFromString(input, "application/xml");
+            doc = new xmldom.DOMParser({
+                errorHandler: {
+                    warning(w) {
+                        throw w;
+                    },
+                    error(e) {
+                        throw e;
+                    },
+                    fatalError(e) {
+                        throw e;
+                    }
+                }
+            }).parseFromString(input, "application/xml");
         } catch (err) {
             throw new OperationError("Invalid input XML.");
         }

+ 5 - 5
src/web/App.mjs

@@ -4,11 +4,11 @@
  * @license Apache-2.0
  */
 
-import Utils, { debounce } from "../core/Utils";
-import {fromBase64} from "../core/lib/Base64";
-import Manager from "./Manager";
-import HTMLCategory from "./HTMLCategory";
-import HTMLOperation from "./HTMLOperation";
+import Utils, { debounce } from "../core/Utils.mjs";
+import {fromBase64} from "../core/lib/Base64.mjs";
+import Manager from "./Manager.mjs";
+import HTMLCategory from "./HTMLCategory.mjs";
+import HTMLOperation from "./HTMLOperation.mjs";
 import Split from "split.js";
 import moment from "moment-timezone";
 

+ 4 - 4
src/web/static/images/bombe.svg

@@ -9,13 +9,13 @@
 <svg version="1.2" baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
     x="0px" y="0px" width="550px" height="350px" viewBox="0 0 550 350" xml:space="preserve" onload="setup(evt)">
 <script type="text/ecmascript">
-    // <![CDATA[
+    <![CDATA[
     function setup(evt) {
         const allRotors = evt.target.ownerDocument.querySelectorAll('.rotor');
         const rotors = [];
         const initTime = Date.now();
         const tick = 360/26;
-        const speed = 1000; // Time for one full rotation of the fast rotor
+        const speed = 1000; /* Time for one full rotation of the fast rotor */
  
         for (const rotor of allRotors) {
             const row = parseInt(rotor.classList.value.match(/row(\d)/)[1], 10);
@@ -46,13 +46,13 @@
                     rotor.last = rotor.last + rotor.wait * numTicks;
                     rotor.el.setAttribute("transform", "rotate(" + rotor.pos + ", " + rotor.x + ", " + rotor.y + ")");
                 } else {
-                    // Don't bother looking at the rest
+                    /* Don't bother looking at the rest */
                     break;
                 }
             }
         }, speed/26/1.5 - 5);
     }
-    // ]]>
+    ]]>
 </script>
 <style>
     .row0 {--primary-color: #e5d41b;}

+ 1 - 1
src/web/waiters/BackgroundWorkerWaiter.mjs

@@ -4,7 +4,7 @@
  * @license Apache-2.0
  */
 
-import ChefWorker from "worker-loader?inline&fallback=false!../../core/ChefWorker.js";
+import ChefWorker from "worker-loader?inline=no-fallback!../../core/ChefWorker.js";
 
 /**
  * Waiter to handle conversations with a ChefWorker in the background.

+ 2 - 2
src/web/waiters/InputWaiter.mjs

@@ -5,8 +5,8 @@
  * @license Apache-2.0
  */
 
-import LoaderWorker from "worker-loader?inline&fallback=false!../workers/LoaderWorker.js";
-import InputWorker from "worker-loader?inline&fallback=false!../workers/InputWorker.mjs";
+import LoaderWorker from "worker-loader?inline=no-fallback!../workers/LoaderWorker.js";
+import InputWorker from "worker-loader?inline=no-fallback!../workers/InputWorker.mjs";
 import Utils, { debounce } from "../../core/Utils.mjs";
 import { toBase64 } from "../../core/lib/Base64.mjs";
 import { isImage } from "../../core/lib/FileType.mjs";

+ 1 - 1
src/web/waiters/OutputWaiter.mjs

@@ -8,7 +8,7 @@
 import Utils, { debounce } from "../../core/Utils.mjs";
 import Dish from "../../core/Dish.mjs";
 import FileSaver from "file-saver";
-import ZipWorker from "worker-loader?inline&fallback=false!../workers/ZipWorker.mjs";
+import ZipWorker from "worker-loader?inline=no-fallback!../workers/ZipWorker.mjs";
 
 /**
   * Waiter to handle events related to the output

+ 2 - 2
src/web/waiters/WorkerWaiter.mjs

@@ -5,8 +5,8 @@
  * @license Apache-2.0
  */
 
-import ChefWorker from "worker-loader?inline&fallback=false!../../core/ChefWorker.js";
-import DishWorker from "worker-loader?inline&fallback=false!../workers/DishWorker.mjs";
+import ChefWorker from "worker-loader?inline=no-fallback!../../core/ChefWorker.js";
+import DishWorker from "worker-loader?inline=no-fallback!../workers/DishWorker.mjs";
 import { debounce } from "../../core/Utils.mjs";
 
 /**

+ 48 - 26
webpack.config.js

@@ -38,7 +38,8 @@ module.exports = {
         new webpack.ProvidePlugin({
             $: "jquery",
             jQuery: "jquery",
-            log: "loglevel"
+            log: "loglevel",
+            process: "process"
         }),
         new webpack.BannerPlugin({
             banner: banner,
@@ -51,32 +52,45 @@ module.exports = {
         new MiniCssExtractPlugin({
             filename: "assets/[name].css"
         }),
-        new CopyWebpackPlugin([
-            {
-                context: "src/core/vendor/",
-                from: "tesseract/**/*",
-                to: "assets/"
-            }, {
-                context: "node_modules/tesseract.js/",
-                from: "dist/worker.min.js",
-                to: "assets/tesseract"
-            }, {
-                context: "node_modules/tesseract.js-core/",
-                from: "tesseract-core.wasm.js",
-                to: "assets/tesseract"
-            }
-        ])
+        new CopyWebpackPlugin({
+            patterns: [
+                {
+                    context: "src/core/vendor/",
+                    from: "tesseract/**/*",
+                    to: "assets/"
+                }, {
+                    context: "node_modules/tesseract.js/",
+                    from: "dist/worker.min.js",
+                    to: "assets/tesseract"
+                }, {
+                    context: "node_modules/tesseract.js-core/",
+                    from: "tesseract-core.wasm.js",
+                    to: "assets/tesseract"
+                }
+            ]
+        })
     ],
     resolve: {
+        extensions: [".mjs", ".js", ".json"], // Allows importing files without extensions
         alias: {
             jquery: "jquery/src/jquery",
         },
+        fallback: {
+            "fs": false,
+            "child_process": false,
+            "net": false,
+            "tls": false,
+            "path": false,
+            "crypto": require.resolve("crypto-browserify"),
+            "stream": require.resolve("stream-browserify"),
+            "zlib": require.resolve("browserify-zlib")
+        }
     },
     module: {
         rules: [
             {
                 test: /\.m?js$/,
-                exclude: /node_modules\/(?!jsesc|crypto-api|bootstrap)/,
+                exclude: /node_modules\/(?!crypto-api|bootstrap)/,
                 options: {
                     configFile: path.resolve(__dirname, "babel.config.js"),
                     cacheDirectory: true,
@@ -86,12 +100,26 @@ module.exports = {
                 loader: "babel-loader"
             },
             {
-                test: /forge.min.js$/,
-                loader: "imports-loader?jQuery=>null"
+                test: /forge\.min\.js$/,
+                loader: "imports-loader",
+                options: {
+                    additionalCode: "var jQuery = false;"
+                }
             },
             {
                 test: /bootstrap-material-design/,
-                loader: "imports-loader?Popper=popper.js/dist/umd/popper.js"
+                loader: "imports-loader",
+                options: {
+                    imports: "default popper.js/dist/umd/popper.js Popper"
+                }
+            },
+            {
+                test: /avsc/,
+                loader: "imports-loader",
+                options: {
+                    type: "commonjs",
+                    imports: "multiple buffer Buffer Buffer"
+                }
             },
             {
                 test: /\.css$/,
@@ -181,12 +209,6 @@ module.exports = {
             /Can't resolve 'sodium'/
         ],
     },
-    node: {
-        fs: "empty",
-        "child_process": "empty",
-        net: "empty",
-        tls: "empty"
-    },
     performance: {
         hints: false
     }

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác