mirror of
https://github.com/gchq/CyberChef.git
synced 2025-04-20 23:06:16 -04:00
Removed treatAsUTF8 option
This commit is contained in:
parent
4e512a9a7b
commit
e9d7a8363c
9 changed files with 24 additions and 42 deletions
|
@ -41,8 +41,7 @@ class Chef {
|
||||||
log.debug("Chef baking");
|
log.debug("Chef baking");
|
||||||
const startTime = Date.now(),
|
const startTime = Date.now(),
|
||||||
recipe = new Recipe(recipeConfig),
|
recipe = new Recipe(recipeConfig),
|
||||||
containsFc = recipe.containsFlowControl(),
|
containsFc = recipe.containsFlowControl();
|
||||||
notUTF8 = options && "treatAsUtf8" in options && !options.treatAsUtf8;
|
|
||||||
let error = false,
|
let error = false,
|
||||||
progress = 0;
|
progress = 0;
|
||||||
|
|
||||||
|
@ -75,7 +74,7 @@ class Chef {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
dish: rawDish,
|
dish: rawDish,
|
||||||
result: await this.dish.get(returnType, notUTF8),
|
result: await this.dish.get(returnType),
|
||||||
type: Dish.enumLookup(this.dish.type),
|
type: Dish.enumLookup(this.dish.type),
|
||||||
progress: progress,
|
progress: progress,
|
||||||
duration: Date.now() - startTime,
|
duration: Date.now() - startTime,
|
||||||
|
|
|
@ -128,10 +128,9 @@ class Dish {
|
||||||
* If running in a browser, get is asynchronous.
|
* If running in a browser, get is asynchronous.
|
||||||
*
|
*
|
||||||
* @param {number} type - The data type of value, see Dish enums.
|
* @param {number} type - The data type of value, see Dish enums.
|
||||||
* @param {boolean} [notUTF8=false] - Do not treat strings as UTF8.
|
|
||||||
* @returns {* | Promise} - (Browser) A promise | (Node) value of dish in given type
|
* @returns {* | Promise} - (Browser) A promise | (Node) value of dish in given type
|
||||||
*/
|
*/
|
||||||
get(type, notUTF8=false) {
|
get(type) {
|
||||||
if (typeof type === "string") {
|
if (typeof type === "string") {
|
||||||
type = Dish.typeEnum(type);
|
type = Dish.typeEnum(type);
|
||||||
}
|
}
|
||||||
|
@ -140,13 +139,13 @@ class Dish {
|
||||||
|
|
||||||
// Node environment => _translate is sync
|
// Node environment => _translate is sync
|
||||||
if (isNodeEnvironment()) {
|
if (isNodeEnvironment()) {
|
||||||
this._translate(type, notUTF8);
|
this._translate(type);
|
||||||
return this.value;
|
return this.value;
|
||||||
|
|
||||||
// Browser environment => _translate is async
|
// Browser environment => _translate is async
|
||||||
} else {
|
} else {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
this._translate(type, notUTF8)
|
this._translate(type)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
resolve(this.value);
|
resolve(this.value);
|
||||||
})
|
})
|
||||||
|
@ -190,12 +189,11 @@ class Dish {
|
||||||
* @Node
|
* @Node
|
||||||
*
|
*
|
||||||
* @param {number} type - The data type of value, see Dish enums.
|
* @param {number} type - The data type of value, see Dish enums.
|
||||||
* @param {boolean} [notUTF8=false] - Do not treat strings as UTF8.
|
|
||||||
* @returns {Dish | Promise} - (Browser) A promise | (Node) value of dish in given type
|
* @returns {Dish | Promise} - (Browser) A promise | (Node) value of dish in given type
|
||||||
*/
|
*/
|
||||||
presentAs(type, notUTF8=false) {
|
presentAs(type) {
|
||||||
const clone = this.clone();
|
const clone = this.clone();
|
||||||
return clone.get(type, notUTF8);
|
return clone.get(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -414,17 +412,16 @@ class Dish {
|
||||||
* If running in the browser, _translate is asynchronous.
|
* If running in the browser, _translate is asynchronous.
|
||||||
*
|
*
|
||||||
* @param {number} toType - The data type of value, see Dish enums.
|
* @param {number} toType - The data type of value, see Dish enums.
|
||||||
* @param {boolean} [notUTF8=false] - Do not treat strings as UTF8.
|
|
||||||
* @returns {Promise || undefined}
|
* @returns {Promise || undefined}
|
||||||
*/
|
*/
|
||||||
_translate(toType, notUTF8=false) {
|
_translate(toType) {
|
||||||
log.debug(`Translating Dish from ${Dish.enumLookup(this.type)} to ${Dish.enumLookup(toType)}`);
|
log.debug(`Translating Dish from ${Dish.enumLookup(this.type)} to ${Dish.enumLookup(toType)}`);
|
||||||
|
|
||||||
// Node environment => translate is sync
|
// Node environment => translate is sync
|
||||||
if (isNodeEnvironment()) {
|
if (isNodeEnvironment()) {
|
||||||
this._toArrayBuffer();
|
this._toArrayBuffer();
|
||||||
this.type = Dish.ARRAY_BUFFER;
|
this.type = Dish.ARRAY_BUFFER;
|
||||||
this._fromArrayBuffer(toType, notUTF8);
|
this._fromArrayBuffer(toType);
|
||||||
|
|
||||||
// Browser environment => translate is async
|
// Browser environment => translate is async
|
||||||
} else {
|
} else {
|
||||||
|
@ -486,18 +483,17 @@ class Dish {
|
||||||
* Convert this.value to the given type from ArrayBuffer
|
* Convert this.value to the given type from ArrayBuffer
|
||||||
*
|
*
|
||||||
* @param {number} toType - the Dish enum to convert to
|
* @param {number} toType - the Dish enum to convert to
|
||||||
* @param {boolean} [notUTF8=false] - Do not treat strings as UTF8.
|
|
||||||
*/
|
*/
|
||||||
_fromArrayBuffer(toType, notUTF8) {
|
_fromArrayBuffer(toType) {
|
||||||
|
|
||||||
// Using 'bind' here to allow this.value to be mutated within translation functions
|
// Using 'bind' here to allow this.value to be mutated within translation functions
|
||||||
const toTypeFunctions = {
|
const toTypeFunctions = {
|
||||||
[Dish.STRING]: () => DishString.fromArrayBuffer.bind(this)(notUTF8),
|
[Dish.STRING]: () => DishString.fromArrayBuffer.bind(this)(),
|
||||||
[Dish.NUMBER]: () => DishNumber.fromArrayBuffer.bind(this)(notUTF8),
|
[Dish.NUMBER]: () => DishNumber.fromArrayBuffer.bind(this)(),
|
||||||
[Dish.HTML]: () => DishHTML.fromArrayBuffer.bind(this)(notUTF8),
|
[Dish.HTML]: () => DishHTML.fromArrayBuffer.bind(this)(),
|
||||||
[Dish.ARRAY_BUFFER]: () => {},
|
[Dish.ARRAY_BUFFER]: () => {},
|
||||||
[Dish.BIG_NUMBER]: () => DishBigNumber.fromArrayBuffer.bind(this)(notUTF8),
|
[Dish.BIG_NUMBER]: () => DishBigNumber.fromArrayBuffer.bind(this)(),
|
||||||
[Dish.JSON]: () => DishJSON.fromArrayBuffer.bind(this)(notUTF8),
|
[Dish.JSON]: () => DishJSON.fromArrayBuffer.bind(this)(),
|
||||||
[Dish.FILE]: () => DishFile.fromArrayBuffer.bind(this)(),
|
[Dish.FILE]: () => DishFile.fromArrayBuffer.bind(this)(),
|
||||||
[Dish.LIST_FILE]: () => DishListFile.fromArrayBuffer.bind(this)(),
|
[Dish.LIST_FILE]: () => DishListFile.fromArrayBuffer.bind(this)(),
|
||||||
[Dish.BYTE_ARRAY]: () => DishByteArray.fromArrayBuffer.bind(this)(),
|
[Dish.BYTE_ARRAY]: () => DishByteArray.fromArrayBuffer.bind(this)(),
|
||||||
|
|
|
@ -24,12 +24,11 @@ class DishBigNumber extends DishType {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* convert the given value from a ArrayBuffer
|
* convert the given value from a ArrayBuffer
|
||||||
* @param {boolean} notUTF8
|
|
||||||
*/
|
*/
|
||||||
static fromArrayBuffer(notUTF8) {
|
static fromArrayBuffer() {
|
||||||
DishBigNumber.checkForValue(this.value);
|
DishBigNumber.checkForValue(this.value);
|
||||||
try {
|
try {
|
||||||
this.value = new BigNumber(Utils.arrayBufferToStr(this.value, !notUTF8));
|
this.value = new BigNumber(Utils.arrayBufferToStr(this.value));
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
this.value = new BigNumber(NaN);
|
this.value = new BigNumber(NaN);
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,11 +22,10 @@ class DishJSON extends DishType {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* convert the given value from a ArrayBuffer
|
* convert the given value from a ArrayBuffer
|
||||||
* @param {boolean} notUTF8
|
|
||||||
*/
|
*/
|
||||||
static fromArrayBuffer(notUTF8) {
|
static fromArrayBuffer() {
|
||||||
DishJSON.checkForValue(this.value);
|
DishJSON.checkForValue(this.value);
|
||||||
this.value = JSON.parse(Utils.arrayBufferToStr(this.value, !notUTF8));
|
this.value = JSON.parse(Utils.arrayBufferToStr(this.value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,11 +23,10 @@ class DishNumber extends DishType {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* convert the given value from a ArrayBuffer
|
* convert the given value from a ArrayBuffer
|
||||||
* @param {boolean} notUTF8
|
|
||||||
*/
|
*/
|
||||||
static fromArrayBuffer(notUTF8) {
|
static fromArrayBuffer() {
|
||||||
DishNumber.checkForValue(this.value);
|
DishNumber.checkForValue(this.value);
|
||||||
this.value = this.value ? parseFloat(Utils.arrayBufferToStr(this.value, !notUTF8)) : 0;
|
this.value = this.value ? parseFloat(Utils.arrayBufferToStr(this.value)) : 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,11 +23,10 @@ class DishString extends DishType {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* convert the given value from a ArrayBuffer
|
* convert the given value from a ArrayBuffer
|
||||||
* @param {boolean} notUTF8
|
|
||||||
*/
|
*/
|
||||||
static fromArrayBuffer(notUTF8) {
|
static fromArrayBuffer() {
|
||||||
DishString.checkForValue(this.value);
|
DishString.checkForValue(this.value);
|
||||||
this.value = this.value ? Utils.arrayBufferToStr(this.value, !notUTF8) : "";
|
this.value = this.value ? Utils.arrayBufferToStr(this.value) : "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,9 +29,8 @@ class DishType {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* convert the given value from a ArrayBuffer
|
* convert the given value from a ArrayBuffer
|
||||||
* @param {boolean} notUTF8
|
|
||||||
*/
|
*/
|
||||||
static fromArrayBuffer(notUTF8=undefined) {
|
static fromArrayBuffer() {
|
||||||
throw new Error("fromArrayBuffer has not been implemented");
|
throw new Error("fromArrayBuffer has not been implemented");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,13 +483,6 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="checkbox option-item">
|
|
||||||
<label for="treatAsUtf8">
|
|
||||||
<input type="checkbox" option="treatAsUtf8" id="treatAsUtf8" checked>
|
|
||||||
Treat output as UTF-8 if possible
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="checkbox option-item">
|
<div class="checkbox option-item">
|
||||||
<label for="wordWrap">
|
<label for="wordWrap">
|
||||||
<input type="checkbox" option="wordWrap" id="wordWrap" checked>
|
<input type="checkbox" option="wordWrap" id="wordWrap" checked>
|
||||||
|
|
|
@ -42,7 +42,6 @@ function main() {
|
||||||
const defaultOptions = {
|
const defaultOptions = {
|
||||||
updateUrl: true,
|
updateUrl: true,
|
||||||
showHighlighter: true,
|
showHighlighter: true,
|
||||||
treatAsUtf8: true,
|
|
||||||
wordWrap: true,
|
wordWrap: true,
|
||||||
showErrors: true,
|
showErrors: true,
|
||||||
errorTimeout: 4000,
|
errorTimeout: 4000,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue