GeezerVison is showing github.com — fix · toolgood/ToolGood.Algorithm@d3c8deb
File treeExpand file treeCollapse file tree Open diff view settings JavaScript/src/Internals/Functions/CsharpWeb csharp/ToolGood.Algorithm/Internals/Functions/CsharpWeb java/toolgood.algorithm/src/main/java/toolgood/algorithm/internals/functions/csharpWeb
Expand file treeCollapse file tree Open diff view settings Collapse file Copy file name to clipboardExpand all lines: JavaScript/src/Internals/Functions/CsharpWeb/Function_BASE64TOTEXT.js +16-9Lines changed: 16 additions & 9 deletions | Original file line number | Diff line number | Diff line change |
|---|
| 1 | 1 | import { Function_1 } from '../Function_1.js'; | 2 | 2 | import { Operand } from '../../../Operand.js'; | 3 | 3 |
| | 4 | +/** | | 5 | + * Function_BASE64TOTEXT | | 6 | + */ | | 7 | +export class Function_BASE64TOTEXT extends Function_1 { | | 8 | + /** | | 9 | + * @param {FunctionBase[]} funcs | | 10 | + */ | | 11 | + constructor(funcs) { | | 12 | + super(funcs); | | 13 | + } | 4 | 14 |
| 5 | | -class Function_BASE64TOTEXT extends Function_1 { | 6 | 15 | get Name() { | 7 | 16 | return "Base64ToText"; | 8 | 17 | } | 9 | 18 |
| 10 | | - constructor(a) { | 11 | | - super(a); | 12 | | - } | 13 | | - | | 19 | + /** | | 20 | + * @param {AlgorithmEngine} engine | | 21 | + * @param {Function} tempParameter | | 22 | + * @returns {Operand} | | 23 | + */ | 14 | 24 | evaluate(engine, tempParameter) { | 15 | 25 | let args1 = this.getText_1(engine, tempParameter); | 16 | 26 | if (args1.IsError) { return args1; } | @@ -19,10 +29,7 @@ class Function_BASE64TOTEXT extends Function_1 { | 19 | 29 | let t = buffer.toString('utf-8'); | 20 | 30 | return Operand.Create(t); | 21 | 31 | } catch (e) { | 22 | | - return this.functionError(); | | 32 | + return this.parameterError(1); | 23 | 33 | } | 24 | 34 | } | 25 | 35 | } | 26 | | - | 27 | | -export { Function_BASE64TOTEXT }; | 28 | | - | |
Collapse file Copy file name to clipboardExpand all lines: JavaScript/src/Internals/Functions/CsharpWeb/Function_BASE64URLTOTEXT.js +16-9Lines changed: 16 additions & 9 deletions | Original file line number | Diff line number | Diff line change |
|---|
| 1 | 1 | import { Function_1 } from '../Function_1.js'; | 2 | 2 | import { Operand } from '../../../Operand.js'; | 3 | 3 |
| | 4 | +/** | | 5 | + * Function_BASE64URLTOTEXT | | 6 | + */ | | 7 | +export class Function_BASE64URLTOTEXT extends Function_1 { | | 8 | + /** | | 9 | + * @param {FunctionBase[]} funcs | | 10 | + */ | | 11 | + constructor(funcs) { | | 12 | + super(funcs); | | 13 | + } | 4 | 14 |
| 5 | | -class Function_BASE64URLTOTEXT extends Function_1 { | 6 | 15 | get Name() { | 7 | 16 | return "Base64UrlToText"; | 8 | 17 | } | 9 | 18 |
| 10 | | - constructor(a) { | 11 | | - super(a); | 12 | | - } | 13 | | - | | 19 | + /** | | 20 | + * @param {AlgorithmEngine} engine | | 21 | + * @param {Function} tempParameter | | 22 | + * @returns {Operand} | | 23 | + */ | 14 | 24 | evaluate(engine, tempParameter) { | 15 | 25 | let args1 = this.getText_1(engine, tempParameter); | 16 | 26 | if (args1.IsError) { return args1; } | @@ -26,10 +36,7 @@ class Function_BASE64URLTOTEXT extends Function_1 { | 26 | 36 | let t = buffer.toString('utf-8'); | 27 | 37 | return Operand.Create(t); | 28 | 38 | } catch (e) { | 29 | | - return this.functionError(); | | 39 | + return this.parameterError(1); | 30 | 40 | } | 31 | 41 | } | 32 | 42 | } | 33 | | - | 34 | | -export { Function_BASE64URLTOTEXT }; | 35 | | - | |
Collapse file Copy file name to clipboardExpand all lines: JavaScript/src/Internals/Functions/CsharpWeb/Function_HTMLDECODE.js +49-42Lines changed: 49 additions & 42 deletions | Original file line number | Diff line number | Diff line change |
|---|
| 1 | 1 | import { Function_1 } from '../Function_1.js'; | 2 | 2 | import { Operand } from '../../../Operand.js'; | 3 | 3 |
| | 4 | +/** | | 5 | + * Function_HTMLDECODE | | 6 | + */ | | 7 | +export class Function_HTMLDECODE extends Function_1 { | | 8 | + /** | | 9 | + * @param {FunctionBase[]} funcs | | 10 | + */ | | 11 | + constructor(funcs) { | | 12 | + super(funcs); | | 13 | + } | 4 | 14 |
| 5 | | -class Function_HTMLDECODE extends Function_1 { | 6 | 15 | get Name() { | 7 | 16 | return "HtmlDecode"; | 8 | 17 | } | 9 | 18 |
| 10 | | - constructor(a) { | 11 | | - super(a); | 12 | | - } | 13 | | - | | 19 | + /** | | 20 | + * @param {AlgorithmEngine} engine | | 21 | + * @param {Function} tempParameter | | 22 | + * @returns {Operand} | | 23 | + */ | 14 | 24 | evaluate(engine, tempParameter) { | 15 | 25 | let args1 = this.getText_1(engine, tempParameter); | 16 | 26 | if (args1.IsError) { return args1; } | 17 | 27 | let s = args1.TextValue; | 18 | | - let r = Function_HTMLDECODE.HtmlDecode(s); | | 28 | + let r = htmlDecode(s); | 19 | 29 | return Operand.Create(r); | 20 | 30 | } | | 31 | +} | 21 | 32 |
| 22 | | - static HtmlDecode(input) { | 23 | | - if (input == null) return ''; | 24 | | - const entities = { | 25 | | - 'amp': '&', 'lt': '<', 'gt': '>', 'quot': '"', 'apos': "'", | 26 | | - 'nbsp': '\u00A0', 'iexcl': '\u00A1', 'cent': '\u00A2', 'pound': '\u00A3', | 27 | | - 'curren': '\u00A4', 'yen': '\u00A5', 'brvbar': '\u00A6', 'sect': '\u00A7', | 28 | | - 'uml': '\u00A8', 'copy': '\u00A9', 'ordf': '\u00AA', 'laquo': '\u00AB', | 29 | | - 'not': '\u00AC', 'shy': '\u00AD', 'reg': '\u00AE', 'macr': '\u00AF', | 30 | | - 'deg': '\u00B0', 'plusmn': '\u00B1', 'sup2': '\u00B2', 'sup3': '\u00B3', | 31 | | - 'acute': '\u00B4', 'micro': '\u00B5', 'para': '\u00B6', 'middot': '\u00B7', | 32 | | - 'cedil': '\u00B8', 'sup1': '\u00B9', 'ordm': '\u00BA', 'raquo': '\u00BB', | 33 | | - 'frac14': '\u00BC', 'frac12': '\u00BD', 'frac34': '\u00BE', 'iquest': '\u00BF', | 34 | | - 'times': '\u00D7', 'divide': '\u00F7', 'euro': '\u20AC', 'trade': '\u2122' | 35 | | - }; | 36 | | - return input.toString().replace(/&(?:#\d+|#x[0-9a-fA-F]+|[a-zA-Z][a-zA-Z0-9]*);/g, function (match) { | 37 | | - let body = match.slice(1, -1); | 38 | | - if (body[0] === '#') { | 39 | | - let code; | 40 | | - if (body[1] === 'x' || body[1] === 'X') { | 41 | | - code = parseInt(body.slice(2), 16); | 42 | | - } else { | 43 | | - code = parseInt(body.slice(1), 10); | 44 | | - } | 45 | | - if (isNaN(code)) { return match; } | 46 | | - try { | 47 | | - return String.fromCodePoint(code); | 48 | | - } catch (e) { | 49 | | - return match; | 50 | | - } | | 33 | +function htmlDecode(input) { | | 34 | + if (input == null) return ''; | | 35 | + const entities = { | | 36 | + 'amp': '&', 'lt': '<', 'gt': '>', 'quot': '"', 'apos': "'", | | 37 | + 'nbsp': '\u00A0', 'iexcl': '\u00A1', 'cent': '\u00A2', 'pound': '\u00A3', | | 38 | + 'curren': '\u00A4', 'yen': '\u00A5', 'brvbar': '\u00A6', 'sect': '\u00A7', | | 39 | + 'uml': '\u00A8', 'copy': '\u00A9', 'ordf': '\u00AA', 'laquo': '\u00AB', | | 40 | + 'not': '\u00AC', 'shy': '\u00AD', 'reg': '\u00AE', 'macr': '\u00AF', | | 41 | + 'deg': '\u00B0', 'plusmn': '\u00B1', 'sup2': '\u00B2', 'sup3': '\u00B3', | | 42 | + 'acute': '\u00B4', 'micro': '\u00B5', 'para': '\u00B6', 'middot': '\u00B7', | | 43 | + 'cedil': '\u00B8', 'sup1': '\u00B9', 'ordm': '\u00BA', 'raquo': '\u00BB', | | 44 | + 'frac14': '\u00BC', 'frac12': '\u00BD', 'frac34': '\u00BE', 'iquest': '\u00BF', | | 45 | + 'times': '\u00D7', 'divide': '\u00F7', 'euro': '\u20AC', 'trade': '\u2122' | | 46 | + }; | | 47 | + return input.toString().replace(/&(?:#\d+|#x[0-9a-fA-F]+|[a-zA-Z][a-zA-Z0-9]*);/g, function (match) { | | 48 | + let body = match.slice(1, -1); | | 49 | + if (body[0] === '#') { | | 50 | + let code; | | 51 | + if (body[1] === 'x' || body[1] === 'X') { | | 52 | + code = parseInt(body.slice(2), 16); | | 53 | + } else { | | 54 | + code = parseInt(body.slice(1), 10); | 51 | 55 | } | 52 | | - let v = entities[body]; | 53 | | - return v !== undefined ? v : match; | 54 | | - }); | 55 | | - } | | 56 | + if (isNaN(code)) { return match; } | | 57 | + try { | | 58 | + return String.fromCodePoint(code); | | 59 | + } catch (e) { | | 60 | + return match; | | 61 | + } | | 62 | + } | | 63 | + let v = entities[body]; | | 64 | + return v !== undefined ? v : match; | | 65 | + }); | 56 | 66 | } | 57 | | - | 58 | | -export { Function_HTMLDECODE }; | 59 | | - | |
Collapse file Copy file name to clipboard +29-22Lines changed: 29 additions & 22 deletions | Original file line number | Diff line number | Diff line change |
|---|
| 1 | 1 | import { Function_1 } from '../Function_1.js'; | 2 | 2 | import { Operand } from '../../../Operand.js'; | 3 | 3 |
| | 4 | +/** | | 5 | + * Function_HTMLENCODE | | 6 | + */ | | 7 | +export class Function_HTMLENCODE extends Function_1 { | | 8 | + /** | | 9 | + * @param {FunctionBase[]} funcs | | 10 | + */ | | 11 | + constructor(funcs) { | | 12 | + super(funcs); | | 13 | + } | 4 | 14 |
| 5 | | -class Function_HTMLENCODE extends Function_1 { | 6 | 15 | get Name() { | 7 | 16 | return "HtmlEncode"; | 8 | 17 | } | 9 | 18 |
| 10 | | - constructor(a) { | 11 | | - super(a); | 12 | | - } | 13 | | - | | 19 | + /** | | 20 | + * @param {AlgorithmEngine} engine | | 21 | + * @param {Function} tempParameter | | 22 | + * @returns {Operand} | | 23 | + */ | 14 | 24 | evaluate(engine, tempParameter) { | 15 | 25 | let args1 = this.getText_1(engine, tempParameter); | 16 | 26 | if (args1.IsError) { return args1; } | 17 | 27 | let s = args1.TextValue; | 18 | | - let r = Function_HTMLENCODE.HtmlEncode(s); | | 28 | + let r = htmlEncode(s); | 19 | 29 | return Operand.Create(r); | 20 | 30 | } | 21 | | - | 22 | | - static HtmlEncode(input) { | 23 | | - if (input == null) return ''; | 24 | | - return input.toString().replace(/[&<>'"]/g, function (match) { | 25 | | - switch (match) { | 26 | | - case '&': return '&'; | 27 | | - case '<': return '<'; | 28 | | - case '>': return '>'; | 29 | | - case '"': return '"'; | 30 | | - case "'": return '''; | 31 | | - default: return match; | 32 | | - } | 33 | | - }); | 34 | | - } | 35 | 31 | } | 36 | 32 |
| 37 | | -export { Function_HTMLENCODE }; | 38 | | - | | 33 | +function htmlEncode(input) { | | 34 | + if (input == null) return ''; | | 35 | + return input.toString().replace(/[&<>'"]/g, function (match) { | | 36 | + switch (match) { | | 37 | + case '&': return '&'; | | 38 | + case '<': return '<'; | | 39 | + case '>': return '>'; | | 40 | + case '"': return '"'; | | 41 | + case "'": return '''; | | 42 | + default: return match; | | 43 | + } | | 44 | + }); | | 45 | +} |
Collapse file Copy file name to clipboardExpand all lines: JavaScript/src/Internals/Functions/CsharpWeb/Function_TEXTTOBASE64.js +16-9Lines changed: 16 additions & 9 deletions | Original file line number | Diff line number | Diff line change |
|---|
| 1 | 1 | import { Function_1 } from '../Function_1.js'; | 2 | 2 | import { Operand } from '../../../Operand.js'; | 3 | 3 |
| | 4 | +/** | | 5 | + * Function_TEXTTOBASE64 | | 6 | + */ | | 7 | +export class Function_TEXTTOBASE64 extends Function_1 { | | 8 | + /** | | 9 | + * @param {FunctionBase[]} funcs | | 10 | + */ | | 11 | + constructor(funcs) { | | 12 | + super(funcs); | | 13 | + } | 4 | 14 |
| 5 | | -class Function_TEXTTOBASE64 extends Function_1 { | 6 | 15 | get Name() { | 7 | 16 | return "TextToBase64"; | 8 | 17 | } | 9 | 18 |
| 10 | | - constructor(a) { | 11 | | - super(a); | 12 | | - } | 13 | | - | | 19 | + /** | | 20 | + * @param {AlgorithmEngine} engine | | 21 | + * @param {Function} tempParameter | | 22 | + * @returns {Operand} | | 23 | + */ | 14 | 24 | evaluate(engine, tempParameter) { | 15 | 25 | let args1 = this.getText_1(engine, tempParameter); | 16 | 26 | if (args1.IsError) { return args1; } | @@ -19,10 +29,7 @@ class Function_TEXTTOBASE64 extends Function_1 { | 19 | 29 | let t = buffer.toString('base64'); | 20 | 30 | return Operand.Create(t); | 21 | 31 | } catch (e) { | 22 | | - return this.functionError(); | | 32 | + return this.parameterError(1); | 23 | 33 | } | 24 | 34 | } | 25 | 35 | } | 26 | | - | 27 | | -export { Function_TEXTTOBASE64 }; | 28 | | - | |
Collapse file Copy file name to clipboardExpand all lines: JavaScript/src/Internals/Functions/CsharpWeb/Function_TEXTTOBASE64URL.js +16-9Lines changed: 16 additions & 9 deletions | Original file line number | Diff line number | Diff line change |
|---|
| 1 | 1 | import { Function_1 } from '../Function_1.js'; | 2 | 2 | import { Operand } from '../../../Operand.js'; | 3 | 3 |
| | 4 | +/** | | 5 | + * Function_TEXTTOBASE64URL | | 6 | + */ | | 7 | +export class Function_TEXTTOBASE64URL extends Function_1 { | | 8 | + /** | | 9 | + * @param {FunctionBase[]} funcs | | 10 | + */ | | 11 | + constructor(funcs) { | | 12 | + super(funcs); | | 13 | + } | 4 | 14 |
| 5 | | -class Function_TEXTTOBASE64URL extends Function_1 { | 6 | 15 | get Name() { | 7 | 16 | return "TextToBase64Url"; | 8 | 17 | } | 9 | 18 |
| 10 | | - constructor(a) { | 11 | | - super(a); | 12 | | - } | 13 | | - | | 19 | + /** | | 20 | + * @param {AlgorithmEngine} engine | | 21 | + * @param {Function} tempParameter | | 22 | + * @returns {Operand} | | 23 | + */ | 14 | 24 | evaluate(engine, tempParameter) { | 15 | 25 | let args1 = this.getText_1(engine, tempParameter); | 16 | 26 | if (args1.IsError) { return args1; } | @@ -22,10 +32,7 @@ class Function_TEXTTOBASE64URL extends Function_1 { | 22 | 32 | .replace(/\//g, '_'); | 23 | 33 | return Operand.Create(t); | 24 | 34 | } catch (e) { | 25 | | - return this.functionError(); | | 35 | + return this.parameterError(1); | 26 | 36 | } | 27 | 37 | } | 28 | 38 | } | 29 | | - | 30 | | -export { Function_TEXTTOBASE64URL }; | 31 | | - | |
Collapse file Copy file name to clipboardExpand all lines: JavaScript/src/Internals/Functions/CsharpWeb/Function_URLDECODE.js +16-9Lines changed: 16 additions & 9 deletions | Original file line number | Diff line number | Diff line change |
|---|
| 1 | 1 | import { Function_1 } from '../Function_1.js'; | 2 | 2 | import { Operand } from '../../../Operand.js'; | 3 | 3 |
| | 4 | +/** | | 5 | + * Function_URLDECODE | | 6 | + */ | | 7 | +export class Function_URLDECODE extends Function_1 { | | 8 | + /** | | 9 | + * @param {FunctionBase[]} funcs | | 10 | + */ | | 11 | + constructor(funcs) { | | 12 | + super(funcs); | | 13 | + } | 4 | 14 |
| 5 | | -class Function_URLDECODE extends Function_1 { | 6 | 15 | get Name() { | 7 | 16 | return "UrlDecode"; | 8 | 17 | } | 9 | 18 |
| 10 | | - constructor(a) { | 11 | | - super(a); | 12 | | - } | 13 | | - | | 19 | + /** | | 20 | + * @param {AlgorithmEngine} engine | | 21 | + * @param {Function} tempParameter | | 22 | + * @returns {Operand} | | 23 | + */ | 14 | 24 | evaluate(engine, tempParameter) { | 15 | 25 | let args1 = this.getText_1(engine, tempParameter); | 16 | 26 | if (args1.IsError) { return args1; } | @@ -20,11 +30,8 @@ class Function_URLDECODE extends Function_1 { | 20 | 30 | let r = decodeURIComponent(s2); | 21 | 31 | return Operand.Create(r); | 22 | 32 | } catch (e) { | 23 | | - // C# HttpUtility.UrlDecode 对无效编码不抛异常,原样返回 | | 33 | + // C# HttpUtility.UrlDecode 对无效编码不抛异常,返回部分解码结果 | 24 | 34 | return Operand.Create(s2); | 25 | 35 | } | 26 | 36 | } | 27 | 37 | } | 28 | | - | 29 | | -export { Function_URLDECODE }; | 30 | | - | |
|