Starting to rejig it

This commit is contained in:
n1073645 2019-12-02 14:15:21 +00:00
parent 3fa3c31e31
commit 9f3b185f77
40 changed files with 131 additions and 82 deletions

View file

@ -8,6 +8,7 @@ import Operation from "../Operation.mjs";
import Utils from "../Utils.mjs"; import Utils from "../Utils.mjs";
import {DELIM_OPTIONS} from "../lib/Delim.mjs"; import {DELIM_OPTIONS} from "../lib/Delim.mjs";
import OperationError from "../errors/OperationError.mjs"; import OperationError from "../errors/OperationError.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* A1Z26 Cipher Decode operation * A1Z26 Cipher Decode operation
@ -33,7 +34,7 @@ class A1Z26CipherDecode extends Operation {
value: DELIM_OPTIONS value: DELIM_OPTIONS
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\s*([12]?[0-9] )+[12]?[0-9]\\s*$", match: "^\\s*([12]?[0-9] )+[12]?[0-9]\\s*$",
flags: "", flags: "",
@ -64,7 +65,7 @@ class A1Z26CipherDecode extends Operation {
flags: "", flags: "",
args: ["CRLF"] args: ["CRLF"]
} }
]; ]);
} }
/** /**

View file

@ -5,6 +5,7 @@
*/ */
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import magicObject from "../lib/MagicObject.mjs";
import { import {
BACON_ALPHABETS, BACON_ALPHABETS,
BACON_TRANSLATION_CASE, BACON_TRANSLATION_AMNZ, BACON_TRANSLATIONS, BACON_CLEARER_MAP, BACON_NORMALIZE_MAP, BACON_TRANSLATION_CASE, BACON_TRANSLATION_AMNZ, BACON_TRANSLATIONS, BACON_CLEARER_MAP, BACON_NORMALIZE_MAP,
@ -44,7 +45,7 @@ class BaconCipherDecode extends Operation {
"value": false "value": false
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\s*([01]{5}\\s?)+$", match: "^\\s*([01]{5}\\s?)+$",
flags: "", flags: "",
@ -85,7 +86,7 @@ class BaconCipherDecode extends Operation {
flags: "", flags: "",
args: ["Complete", "A/B", true] args: ["Complete", "A/B", true]
} }
]; ]);
} }
/** /**

View file

@ -6,6 +6,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import OperationError from "../errors/OperationError.mjs"; import OperationError from "../errors/OperationError.mjs";
import magicObject from "../lib/MagicObject.mjs";
import Bzip2 from "libbzip2-wasm"; import Bzip2 from "libbzip2-wasm";
import { isWorkerEnvironment } from "../Utils.mjs"; import { isWorkerEnvironment } from "../Utils.mjs";
@ -33,13 +34,13 @@ class Bzip2Decompress extends Operation {
value: false value: false
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
"match": "^\\x42\\x5a\\x68", "match": "^\\x42\\x5a\\x68",
"flags": "", "flags": "",
"args": [] "args": []
} }
]; ]);
} }
/** /**

View file

@ -6,6 +6,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import OperationError from "../errors/OperationError.mjs"; import OperationError from "../errors/OperationError.mjs";
import magicObject from "../lib/MagicObject.mjs";
import Utils from "../Utils.mjs"; import Utils from "../Utils.mjs";
/** /**
@ -42,7 +43,7 @@ class CSVToJSON extends Operation {
value: ["Array of dictionaries", "Array of arrays"] value: ["Array of dictionaries", "Array of arrays"]
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\s*([A-Z\\s]*,){5}", match: "^\\s*([A-Z\\s]*,){5}",
flags: "i", flags: "i",
@ -53,7 +54,7 @@ class CSVToJSON extends Operation {
flags: "i", flags: "i",
args: [",", "\r\n", "Array of arrays"] args: [",", "\r\n", "Array of arrays"]
} }
]; ]);
} }
/** /**

View file

@ -7,6 +7,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import OperationError from "../errors/OperationError.mjs"; import OperationError from "../errors/OperationError.mjs";
import Utils from "../Utils.mjs"; import Utils from "../Utils.mjs";
import magicObject from "../lib/MagicObject.mjs";
import {fromHex} from "../lib/Hex.mjs"; import {fromHex} from "../lib/Hex.mjs";
/** /**
@ -37,7 +38,7 @@ class ChangeIPFormat extends Operation {
"value": ["Dotted Decimal", "Decimal", "Octal", "Hex"] "value": ["Dotted Decimal", "Decimal", "Octal", "Hex"]
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\s*([0-9]{1,3}\\.){3}[0-9]{1,3}$", match: "^\\s*([0-9]{1,3}\\.){3}[0-9]{1,3}$",
flags: "", flags: "",
@ -53,7 +54,7 @@ class ChangeIPFormat extends Operation {
flags: "", flags: "",
args: ["Dotted Decimal", "Hex"] args: ["Dotted Decimal", "Hex"]
} }
]; ]);
} }
/** /**

View file

@ -6,6 +6,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import OperationError from "../errors/OperationError.mjs"; import OperationError from "../errors/OperationError.mjs";
import magicObject from "../lib/MagicObject.mjs";
import cptable from "codepage"; import cptable from "codepage";
/** /**
@ -26,13 +27,13 @@ class CitrixCTX1Decode extends Operation {
this.inputType = "ArrayBuffer"; this.inputType = "ArrayBuffer";
this.outputType = "string"; this.outputType = "string";
this.args = []; this.args = [];
this.patterns = [ this.checks = new magicObject([
{ {
match: "([A-Z]{4}){10,}", match: "([A-Z]{4}){10,}",
flags: "", flags: "",
args: [] args: []
} }
]; ]);
} }
/** /**

View file

@ -5,6 +5,7 @@
*/ */
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* Dechunk HTTP response operation * Dechunk HTTP response operation
@ -24,13 +25,13 @@ class DechunkHTTPResponse extends Operation {
this.inputType = "string"; this.inputType = "string";
this.outputType = "string"; this.outputType = "string";
this.args = []; this.args = [];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\s*[0-9A-F]+\r\n", match: "^\\s*[0-9A-F]+\r\n",
flags: "i", flags: "i",
args: [] args: []
} }
]; ]);
} }
/** /**

View file

@ -5,6 +5,7 @@
*/ */
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* Decode NetBIOS Name operation * Decode NetBIOS Name operation
@ -30,13 +31,13 @@ class DecodeNetBIOSName extends Operation {
"value": 65 "value": 65
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\s*\\S{32}$", match: "^\\s*\\S{32}$",
flags: "", flags: "",
args: [65] args: [65]
} }
]; ]);
} }
/** /**

View file

@ -5,6 +5,7 @@
*/ */
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* Escape Unicode Characters operation * Escape Unicode Characters operation
@ -44,7 +45,7 @@ class EscapeUnicodeCharacters extends Operation {
"value": true "value": true
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "\\\\u(?:[\\da-f]{4,6})", match: "\\\\u(?:[\\da-f]{4,6})",
flags: "i", flags: "i",
@ -60,7 +61,7 @@ class EscapeUnicodeCharacters extends Operation {
flags: "i", flags: "i",
args: ["U+"] args: ["U+"]
}, },
]; ]);
} }
/** /**

View file

@ -5,6 +5,7 @@
*/ */
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* Format MAC addresses operation * Format MAC addresses operation
@ -55,13 +56,13 @@ class FormatMACAddresses extends Operation {
"value": false "value": false
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\s*([0-9a-f]{2}:){5}[0-9a-f]{2}$", match: "^\\s*([0-9a-f]{2}:){5}[0-9a-f]{2}$",
flags: "i", flags: "i",
args: ["Both", true, true, true, true, true] args: ["Both", true, true, true, true, true]
} }
]; ]);
} }
/** /**

View file

@ -9,6 +9,7 @@ import Utils from "../Utils.mjs";
import OperationError from "../errors/OperationError.mjs"; import OperationError from "../errors/OperationError.mjs";
import {ENCODING_SCHEME, ENCODING_LOOKUP, FORMAT} from "../lib/BCD.mjs"; import {ENCODING_SCHEME, ENCODING_LOOKUP, FORMAT} from "../lib/BCD.mjs";
import BigNumber from "bignumber.js"; import BigNumber from "bignumber.js";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* From BCD operation * From BCD operation
@ -49,13 +50,13 @@ class FromBCD extends Operation {
"value": FORMAT "value": FORMAT
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^(?:\\d{4} ){3,}\\d{4}$", match: "^(?:\\d{4} ){3,}\\d{4}$",
flags: "", flags: "",
args: ["8 4 2 1", true, false, "Nibbles"] args: ["8 4 2 1", true, false, "Nibbles"]
}, }
]; ]);
} }
/** /**

View file

@ -6,6 +6,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import Utils from "../Utils.mjs"; import Utils from "../Utils.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* From Base32 operation * From Base32 operation
@ -36,13 +37,13 @@ class FromBase32 extends Operation {
value: true value: true
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^(?:[A-Z2-7]{8})+(?:[A-Z2-7]{2}={6}|[A-Z2-7]{4}={4}|[A-Z2-7]{5}={3}|[A-Z2-7]{7}={1})?$", match: "^(?:[A-Z2-7]{8})+(?:[A-Z2-7]{2}={6}|[A-Z2-7]{4}={4}|[A-Z2-7]{5}={3}|[A-Z2-7]{7}={1})?$",
flags: "", flags: "",
args: ["A-Z2-7=", false] args: ["A-Z2-7=", false]
}, },
]; ]);
} }
/** /**

View file

@ -8,6 +8,7 @@ import Operation from "../Operation.mjs";
import Utils from "../Utils.mjs"; import Utils from "../Utils.mjs";
import OperationError from "../errors/OperationError.mjs"; import OperationError from "../errors/OperationError.mjs";
import {ALPHABET_OPTIONS} from "../lib/Base58.mjs"; import {ALPHABET_OPTIONS} from "../lib/Base58.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* From Base58 operation * From Base58 operation
@ -38,7 +39,7 @@ class FromBase58 extends Operation {
"value": true "value": true
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^[1-9A-HJ-NP-Za-km-z]{20,}$", match: "^[1-9A-HJ-NP-Za-km-z]{20,}$",
flags: "", flags: "",
@ -49,7 +50,7 @@ class FromBase58 extends Operation {
flags: "", flags: "",
args: ["rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz", false] args: ["rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz", false]
}, },
]; ]);
} }
/** /**

View file

@ -6,6 +6,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import {fromBase64, ALPHABET_OPTIONS} from "../lib/Base64.mjs"; import {fromBase64, ALPHABET_OPTIONS} from "../lib/Base64.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* From Base64 operation * From Base64 operation
@ -36,7 +37,7 @@ class FromBase64 extends Operation {
value: true value: true
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\s*(?:[A-Z\\d+/]{4})+(?:[A-Z\\d+/]{2}==|[A-Z\\d+/]{3}=)?\\s*$", match: "^\\s*(?:[A-Z\\d+/]{4})+(?:[A-Z\\d+/]{2}==|[A-Z\\d+/]{3}=)?\\s*$",
flags: "i", flags: "i",
@ -102,7 +103,7 @@ class FromBase64 extends Operation {
flags: "i", flags: "i",
args: ["./0-9A-Za-z", true] args: ["./0-9A-Za-z", true]
}, },
]; ]);
} }
/** /**

View file

@ -8,6 +8,7 @@ import Operation from "../Operation.mjs";
import Utils from "../Utils.mjs"; import Utils from "../Utils.mjs";
import {BIN_DELIM_OPTIONS} from "../lib/Delim.mjs"; import {BIN_DELIM_OPTIONS} from "../lib/Delim.mjs";
import {fromBinary} from "../lib/Binary.mjs"; import {fromBinary} from "../lib/Binary.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* From Binary operation * From Binary operation
@ -33,7 +34,7 @@ class FromBinary extends Operation {
"value": BIN_DELIM_OPTIONS "value": BIN_DELIM_OPTIONS
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^(?:[01]{8})+$", match: "^(?:[01]{8})+$",
flags: "", flags: "",
@ -69,7 +70,7 @@ class FromBinary extends Operation {
flags: "", flags: "",
args: ["CRLF"] args: ["CRLF"]
}, },
]; ]);
} }
/** /**

View file

@ -7,6 +7,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import {DELIM_OPTIONS} from "../lib/Delim.mjs"; import {DELIM_OPTIONS} from "../lib/Delim.mjs";
import {fromDecimal} from "../lib/Decimal.mjs"; import {fromDecimal} from "../lib/Decimal.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* From Decimal operation * From Decimal operation
@ -36,7 +37,7 @@ class FromDecimal extends Operation {
"value": false "value": false
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^(?:\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])(?: (?:\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5]))*$", match: "^(?:\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])(?: (?:\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5]))*$",
flags: "", flags: "",
@ -67,7 +68,7 @@ class FromDecimal extends Operation {
flags: "", flags: "",
args: ["CRLF", false] args: ["CRLF", false]
}, },
]; ]);
} }
/** /**

View file

@ -6,6 +6,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import Utils from "../Utils.mjs"; import Utils from "../Utils.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* From HTML Entity operation * From HTML Entity operation
@ -25,13 +26,13 @@ class FromHTMLEntity extends Operation {
this.inputType = "string"; this.inputType = "string";
this.outputType = "string"; this.outputType = "string";
this.args = []; this.args = [];
this.patterns = [ this.checks = new magicObject([
{ {
match: "&(?:#\\d{2,3}|#x[\\da-f]{2}|[a-z]{2,6});", match: "&(?:#\\d{2,3}|#x[\\da-f]{2}|[a-z]{2,6});",
flags: "i", flags: "i",
args: [] args: []
}, },
]; ]);
} }
/** /**

View file

@ -7,6 +7,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import {fromHex, FROM_HEX_DELIM_OPTIONS} from "../lib/Hex.mjs"; import {fromHex, FROM_HEX_DELIM_OPTIONS} from "../lib/Hex.mjs";
import Utils from "../Utils.mjs"; import Utils from "../Utils.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* From Hex operation * From Hex operation
@ -32,7 +33,7 @@ class FromHex extends Operation {
value: FROM_HEX_DELIM_OPTIONS value: FROM_HEX_DELIM_OPTIONS
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^(?:[\\dA-F]{2})+$", match: "^(?:[\\dA-F]{2})+$",
flags: "i", flags: "i",
@ -78,7 +79,7 @@ class FromHex extends Operation {
flags: "i", flags: "i",
args: ["\\x"] args: ["\\x"]
} }
]; ]);
} }
/** /**

View file

@ -7,6 +7,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import Utils from "../Utils.mjs"; import Utils from "../Utils.mjs";
import {fromHex} from "../lib/Hex.mjs"; import {fromHex} from "../lib/Hex.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* From Hex Content operation * From Hex Content operation
@ -26,13 +27,13 @@ class FromHexContent extends Operation {
this.inputType = "string"; this.inputType = "string";
this.outputType = "byteArray"; this.outputType = "byteArray";
this.args = []; this.args = [];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\s*.*?\\|([0-9a-f]{2})+\\|.*$", match: "^\\s*.*?\\|([0-9a-f]{2})+\\|.*$",
flags: "i", flags: "i",
args: [] args: []
} }
]; ]);
} }
/** /**

View file

@ -7,6 +7,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import { fromHex } from "../lib/Hex.mjs"; import { fromHex } from "../lib/Hex.mjs";
import { isWorkerEnvironment } from "../Utils.mjs"; import { isWorkerEnvironment } from "../Utils.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
@ -27,13 +28,13 @@ class FromHexdump extends Operation {
this.inputType = "string"; this.inputType = "string";
this.outputType = "byteArray"; this.outputType = "byteArray";
this.args = []; this.args = [];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^(?:(?:[\\dA-F]{4,16}h?:?)?[ \\t]*((?:[\\dA-F]{2} ){1,8}(?:[ \\t]|[\\dA-F]{2}-)(?:[\\dA-F]{2} ){1,8}|(?:[\\dA-F]{4} )*[\\dA-F]{4}|(?:[\\dA-F]{2} )*[\\dA-F]{2})[^\\n]*\\n?){2,}$", match: "^(?:(?:[\\dA-F]{4,16}h?:?)?[ \\t]*((?:[\\dA-F]{2} ){1,8}(?:[ \\t]|[\\dA-F]{2}-)(?:[\\dA-F]{2} ){1,8}|(?:[\\dA-F]{4} )*[\\dA-F]{4}|(?:[\\dA-F]{2} )*[\\dA-F]{2})[^\\n]*\\n?){2,}$",
flags: "i", flags: "i",
args: [] args: []
}, },
]; ]);
} }
/** /**

View file

@ -7,6 +7,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import Utils from "../Utils.mjs"; import Utils from "../Utils.mjs";
import {LETTER_DELIM_OPTIONS, WORD_DELIM_OPTIONS} from "../lib/Delim.mjs"; import {LETTER_DELIM_OPTIONS, WORD_DELIM_OPTIONS} from "../lib/Delim.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* From Morse Code operation * From Morse Code operation
@ -37,13 +38,13 @@ class FromMorseCode extends Operation {
"value": WORD_DELIM_OPTIONS "value": WORD_DELIM_OPTIONS
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "(?:^[-. \\n]{5,}$|^[_. \\n]{5,}$|^(?:dash|dot| |\\n){5,}$)", match: "(?:^[-. \\n]{5,}$|^[_. \\n]{5,}$|^(?:dash|dot| |\\n){5,}$)",
flags: "i", flags: "i",
args: ["Space", "Line feed"] args: ["Space", "Line feed"]
}, },
]; ]);
} }
/** /**

View file

@ -7,6 +7,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import Utils from "../Utils.mjs"; import Utils from "../Utils.mjs";
import {DELIM_OPTIONS} from "../lib/Delim.mjs"; import {DELIM_OPTIONS} from "../lib/Delim.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* From Octal operation * From Octal operation
@ -32,7 +33,7 @@ class FromOctal extends Operation {
"value": DELIM_OPTIONS "value": DELIM_OPTIONS
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^(?:[0-7]{1,2}|[123][0-7]{2})(?: (?:[0-7]{1,2}|[123][0-7]{2}))*$", match: "^(?:[0-7]{1,2}|[123][0-7]{2})(?: (?:[0-7]{1,2}|[123][0-7]{2}))*$",
flags: "", flags: "",
@ -63,7 +64,7 @@ class FromOctal extends Operation {
flags: "", flags: "",
args: ["CRLF"] args: ["CRLF"]
}, },
]; ]);
} }
/** /**

View file

@ -9,6 +9,7 @@
*/ */
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* From Quoted Printable operation * From Quoted Printable operation
@ -28,13 +29,13 @@ class FromQuotedPrintable extends Operation {
this.inputType = "string"; this.inputType = "string";
this.outputType = "byteArray"; this.outputType = "byteArray";
this.args = []; this.args = [];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^[\\x21-\\x3d\\x3f-\\x7e \\t]{0,76}(?:=[\\da-f]{2}|=\\r?\\n)(?:[\\x21-\\x3d\\x3f-\\x7e \\t]|=[\\da-f]{2}|=\\r?\\n)*$", match: "^[\\x21-\\x3d\\x3f-\\x7e \\t]{0,76}(?:=[\\da-f]{2}|=\\r?\\n)(?:[\\x21-\\x3d\\x3f-\\x7e \\t]|=[\\da-f]{2}|=\\r?\\n)*$",
flags: "i", flags: "i",
args: [] args: []
}, },
]; ]);
} }
/** /**

View file

@ -8,6 +8,7 @@ import Operation from "../Operation.mjs";
import moment from "moment-timezone"; import moment from "moment-timezone";
import {UNITS} from "../lib/DateTime.mjs"; import {UNITS} from "../lib/DateTime.mjs";
import OperationError from "../errors/OperationError.mjs"; import OperationError from "../errors/OperationError.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* From UNIX Timestamp operation * From UNIX Timestamp operation
@ -33,7 +34,7 @@ class FromUNIXTimestamp extends Operation {
"value": UNITS "value": UNITS
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^1?\\d{9}$", match: "^1?\\d{9}$",
flags: "", flags: "",
@ -54,7 +55,7 @@ class FromUNIXTimestamp extends Operation {
flags: "", flags: "",
args: ["Nanoseconds (ns)"] args: ["Nanoseconds (ns)"]
}, },
]; ]);
} }
/** /**

View file

@ -6,6 +6,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import zlibAndGzip from "zlibjs/bin/zlib_and_gzip.min.js"; import zlibAndGzip from "zlibjs/bin/zlib_and_gzip.min.js";
import magicObject from "../lib/MagicObject.mjs";
const Zlib = zlibAndGzip.Zlib; const Zlib = zlibAndGzip.Zlib;
@ -27,13 +28,13 @@ class Gunzip extends Operation {
this.inputType = "ArrayBuffer"; this.inputType = "ArrayBuffer";
this.outputType = "ArrayBuffer"; this.outputType = "ArrayBuffer";
this.args = []; this.args = [];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\x1f\\x8b\\x08", match: "^\\x1f\\x8b\\x08",
flags: "", flags: "",
args: [] args: []
}, },
]; ]);
} }
/** /**

View file

@ -6,6 +6,7 @@
import r from "jsrsasign"; import r from "jsrsasign";
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* Object Identifier to Hex operation * Object Identifier to Hex operation
@ -25,13 +26,13 @@ class ObjectIdentifierToHex extends Operation {
this.inputType = "string"; this.inputType = "string";
this.outputType = "string"; this.outputType = "string";
this.args = []; this.args = [];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\s*([0-9]{1,3}.?)+^\\s*$", match: "^\\s*([0-9]{1,3}.?)+^\\s*$",
flags: "", flags: "",
args: [] args: []
} }
]; ]);
} }
/** /**

View file

@ -9,6 +9,7 @@ import Utils from "../Utils.mjs";
import OperationError from "../errors/OperationError.mjs"; import OperationError from "../errors/OperationError.mjs";
import {strToIpv6, ipv6ToStr, ipv4ToStr, IPV6_REGEX} from "../lib/IP.mjs"; import {strToIpv6, ipv6ToStr, ipv4ToStr, IPV6_REGEX} from "../lib/IP.mjs";
import BigNumber from "bignumber.js"; import BigNumber from "bignumber.js";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* Parse IPv6 address operation * Parse IPv6 address operation
@ -28,13 +29,13 @@ class ParseIPv6Address extends Operation {
this.inputType = "string"; this.inputType = "string";
this.outputType = "string"; this.outputType = "string";
this.args = []; this.args = [];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\s*([a-f\\d]{4}:?)+\\s*$", match: "^\\s*([a-f\\d]{4}:?)+\\s*$",
flags: "i", flags: "i",
args: [] args: []
} }
]; ]);
} }
/** /**

View file

@ -8,6 +8,7 @@ import Operation from "../Operation.mjs";
import OperationError from "../errors/OperationError.mjs"; import OperationError from "../errors/OperationError.mjs";
import { isImage } from "../lib/FileType.mjs"; import { isImage } from "../lib/FileType.mjs";
import { parseQrCode } from "../lib/QRCode.mjs"; import { parseQrCode } from "../lib/QRCode.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* Parse QR Code operation * Parse QR Code operation
@ -33,14 +34,14 @@ class ParseQRCode extends Operation {
"value": false "value": false
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
"match": "^(?:\\xff\\xd8\\xff|\\x89\\x50\\x4e\\x47|\\x47\\x49\\x46|.{8}\\x57\\x45\\x42\\x50|\\x42\\x4d)", "match": "^(?:\\xff\\xd8\\xff|\\x89\\x50\\x4e\\x47|\\x47\\x49\\x46|.{8}\\x57\\x45\\x42\\x50|\\x42\\x4d)",
"flags": "", "flags": "",
"args": [false], "args": [false],
"useful": true "useful": true
} }
]; ]);
} }
/** /**

View file

@ -9,6 +9,7 @@ import OperationError from "../errors/OperationError.mjs";
import Utils from "../Utils.mjs"; import Utils from "../Utils.mjs";
import { fromBase64 } from "../lib/Base64.mjs"; import { fromBase64 } from "../lib/Base64.mjs";
import { fromHex, toHexFast } from "../lib/Hex.mjs"; import { fromHex, toHexFast } from "../lib/Hex.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* Parse SSH Host Key operation * Parse SSH Host Key operation
@ -38,13 +39,13 @@ class ParseSSHHostKey extends Operation {
] ]
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\s*([A-F\\d]{2}[,;:]){15,}[A-F\\d]{2}\\s*$", match: "^\\s*([A-F\\d]{2}[,;:]){15,}[A-F\\d]{2}\\s*$",
flags: "i", flags: "i",
args: ["Hex"] args: ["Hex"]
} }
]; ]);
} }
/** /**

View file

@ -6,6 +6,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import OperationError from "../errors/OperationError.mjs"; import OperationError from "../errors/OperationError.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* Parse UNIX file permissions operation * Parse UNIX file permissions operation
@ -25,13 +26,13 @@ class ParseUNIXFilePermissions extends Operation {
this.inputType = "string"; this.inputType = "string";
this.outputType = "string"; this.outputType = "string";
this.args = []; this.args = [];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\s*d[rxw-]{9}\\s*$", match: "^\\s*d[rxw-]{9}\\s*$",
flags: "", flags: "",
args: [] args: []
} }
]; ]);
} }
/** /**

View file

@ -6,6 +6,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import UAParser from "ua-parser-js"; import UAParser from "ua-parser-js";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* Parse User Agent operation * Parse User Agent operation
@ -25,13 +26,13 @@ class ParseUserAgent extends Operation {
this.inputType = "string"; this.inputType = "string";
this.outputType = "string"; this.outputType = "string";
this.args = []; this.args = [];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^(User-Agent:|Mozilla\\/)[^\\n\\r]+\\s*$", match: "^(User-Agent:|Mozilla\\/)[^\\n\\r]+\\s*$",
flags: "i", flags: "i",
args: [] args: []
} }
]; ]);
} }
/** /**

View file

@ -10,6 +10,7 @@ import { toHex } from "../lib/Hex.mjs";
import { formatByteStr, formatDnStr } from "../lib/PublicKey.mjs"; import { formatByteStr, formatDnStr } from "../lib/PublicKey.mjs";
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import Utils from "../Utils.mjs"; import Utils from "../Utils.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* Parse X.509 certificate operation * Parse X.509 certificate operation
@ -35,7 +36,7 @@ class ParseX509Certificate extends Operation {
"value": ["PEM", "DER Hex", "Base64", "Raw"] "value": ["PEM", "DER Hex", "Base64", "Raw"]
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
"match": "^-+BEGIN CERTIFICATE-+\\r?\\n[\\da-z+/\\n\\r]+-+END CERTIFICATE-+\\r?\\n?$", "match": "^-+BEGIN CERTIFICATE-+\\r?\\n[\\da-z+/\\n\\r]+-+END CERTIFICATE-+\\r?\\n?$",
"flags": "i", "flags": "i",
@ -43,7 +44,7 @@ class ParseX509Certificate extends Operation {
"PEM" "PEM"
] ]
} }
]; ]);
} }
/** /**

View file

@ -5,6 +5,7 @@
*/ */
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* Remove line numbers operation * Remove line numbers operation
@ -23,13 +24,13 @@ class RemoveLineNumbers extends Operation {
this.inputType = "string"; this.inputType = "string";
this.outputType = "string"; this.outputType = "string";
this.args = []; this.args = [];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\s*([0-9]+ .*?(\\n))+[0-9] .+$", match: "^\\s*([0-9]+ .*?(\\n))+[0-9] .+$",
flags: "", flags: "",
args: [] args: []
} }
]; ]);
} }
/** /**

View file

@ -10,6 +10,7 @@ import Operation from "../Operation.mjs";
import OperationError from "../errors/OperationError.mjs"; import OperationError from "../errors/OperationError.mjs";
import Utils from "../Utils.mjs"; import Utils from "../Utils.mjs";
import {isImage} from "../lib/FileType.mjs"; import {isImage} from "../lib/FileType.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* Render Image operation * Render Image operation
@ -35,14 +36,14 @@ class RenderImage extends Operation {
"value": ["Raw", "Base64", "Hex"] "value": ["Raw", "Base64", "Hex"]
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
"match": "^(?:\\xff\\xd8\\xff|\\x89\\x50\\x4e\\x47|\\x47\\x49\\x46|.{8}\\x57\\x45\\x42\\x50|\\x42\\x4d)", "match": "^(?:\\xff\\xd8\\xff|\\x89\\x50\\x4e\\x47|\\x47\\x49\\x46|.{8}\\x57\\x45\\x42\\x50|\\x42\\x4d)",
"flags": "", "flags": "",
"args": ["Raw"], "args": ["Raw"],
"useful": true "useful": true
} }
]; ]);
} }
/** /**

View file

@ -6,6 +6,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import Utils from "../Utils.mjs"; import Utils from "../Utils.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* Strip HTML tags operation * Strip HTML tags operation
@ -36,13 +37,13 @@ class StripHTMLTags extends Operation {
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^<html>(\\S|\\s)*</html>$", match: "^<html>(\\S|\\s)*</html>$",
flags: "i", flags: "i",
args: [true, true] args: [true, true]
} }
]; ]);
} }
/** /**

View file

@ -5,6 +5,7 @@
*/ */
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* Strip HTTP headers operation * Strip HTTP headers operation
@ -24,13 +25,13 @@ class StripHTTPHeaders extends Operation {
this.inputType = "string"; this.inputType = "string";
this.outputType = "string"; this.outputType = "string";
this.args = []; this.args = [];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\s*HTTP(.|\\s)+?(\\r?\\n){2}", match: "^\\s*HTTP(.|\\s)+?(\\r?\\n){2}",
flags: "", flags: "",
args: [] args: []
} }
]; ]);
} }
/** /**

View file

@ -5,6 +5,7 @@
*/ */
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* URL Decode operation * URL Decode operation
@ -24,13 +25,22 @@ class URLDecode extends Operation {
this.inputType = "string"; this.inputType = "string";
this.outputType = "string"; this.outputType = "string";
this.args = []; this.args = [];
this.patterns = [ this.checks = new magicObject([
{ {
match: ".*(?:%[\\da-f]{2}.*){4}", match: ".*(?:%[\\da-f]{2}.*){4}",
flags: "i", flags: "i",
args: [],
}
],
[
{
match: "^(?:(http(s)?|ftp):\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$",
flags: "i",
shouldMatch: true,
args: [] args: []
}, }
]; ]
);
} }
/** /**

View file

@ -7,6 +7,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import Utils from "../Utils.mjs"; import Utils from "../Utils.mjs";
import Stream from "../lib/Stream.mjs"; import Stream from "../lib/Stream.mjs";
import magicObject from "../lib/MagicObject.mjs";
/** /**
* Untar operation * Untar operation
@ -27,13 +28,13 @@ class Untar extends Operation {
this.outputType = "List<File>"; this.outputType = "List<File>";
this.presentType = "html"; this.presentType = "html";
this.args = []; this.args = [];
this.patterns = [ this.checks = new magicObject([
{ {
"match": "^.{257}\\x75\\x73\\x74\\x61\\x72", "match": "^.{257}\\x75\\x73\\x74\\x61\\x72",
"flags": "", "flags": "",
"args": [] "args": []
} }
]; ]);
} }
/** /**

View file

@ -7,6 +7,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import Utils from "../Utils.mjs"; import Utils from "../Utils.mjs";
import unzip from "zlibjs/bin/unzip.min.js"; import unzip from "zlibjs/bin/unzip.min.js";
import magicObject from "../lib/MagicObject.mjs";
const Zlib = unzip.Zlib; const Zlib = unzip.Zlib;
@ -40,13 +41,13 @@ class Unzip extends Operation {
value: false value: false
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\x50\\x4b(?:\\x03|\\x05|\\x07)(?:\\x04|\\x06|\\x08)", match: "^\\x50\\x4b(?:\\x03|\\x05|\\x07)(?:\\x04|\\x06|\\x08)",
flags: "", flags: "",
args: ["", false] args: ["", false]
}, },
]; ]);
} }
/** /**

View file

@ -7,6 +7,7 @@
import Operation from "../Operation.mjs"; import Operation from "../Operation.mjs";
import {INFLATE_BUFFER_TYPE} from "../lib/Zlib.mjs"; import {INFLATE_BUFFER_TYPE} from "../lib/Zlib.mjs";
import zlibAndGzip from "zlibjs/bin/zlib_and_gzip.min.js"; import zlibAndGzip from "zlibjs/bin/zlib_and_gzip.min.js";
import magicObject from "../lib/MagicObject.mjs";
const Zlib = zlibAndGzip.Zlib; const Zlib = zlibAndGzip.Zlib;
@ -59,13 +60,13 @@ class ZlibInflate extends Operation {
value: false value: false
} }
]; ];
this.patterns = [ this.checks = new magicObject([
{ {
match: "^\\x78(\\x01|\\x9c|\\xda|\\x5e)", match: "^\\x78(\\x01|\\x9c|\\xda|\\x5e)",
flags: "", flags: "",
args: [0, 0, "Adaptive", false, false] args: [0, 0, "Adaptive", false, false]
}, },
]; ]);
} }
/** /**