Browse Source

Moved PhpDeserialize.js to PHP.js to encompass possible future PHP-related ops

n1474335 7 years ago
parent
commit
fe8049199a

+ 1 - 1
src/core/config/Categories.js

@@ -66,7 +66,6 @@ const Categories = [
             "Encode text",
             "Decode text",
             "Swap endianness",
-            "PHP Deserialize",
         ]
     },
     {
@@ -289,6 +288,7 @@ const Categories = [
             "XPath expression",
             "JPath expression",
             "CSS selector",
+            "PHP Deserialize",
             "Microsoft Script Decoder",
             "Strip HTML tags",
             "Diff",

+ 3 - 3
src/core/config/OperationConfig.js

@@ -26,6 +26,7 @@ import JS from "../operations/JS.js";
 import MAC from "../operations/MAC.js";
 import MorseCode from "../operations/MorseCode.js";
 import NetBIOS from "../operations/NetBIOS.js";
+import PHP from "../operations/PHP.js";
 import PublicKey from "../operations/PublicKey.js";
 import Punycode from "../operations/Punycode.js";
 import Rotate from "../operations/Rotate.js";
@@ -35,7 +36,6 @@ import StrUtils from "../operations/StrUtils.js";
 import Tidy from "../operations/Tidy.js";
 import Unicode from "../operations/Unicode.js";
 import URL_ from "../operations/URL.js";
-import PhpSerialization from "../operations/PhpSerialization.js";
 
 
 /**
@@ -3848,14 +3848,14 @@ const OperationConfig = {
     },
     "PHP Deserialize": {
         module: "Default",
-        description: "PHP Deserialize a given input.<br><br>This function does not support <code>object</code> tags.<br><br><u>Output valid JSON:</u> JSON doesn't support integers as keys, where as PHP serialization does. Enabling this will cast these integers to strings. This will also escape backslashes.",
+        description: "Deserializes PHP serialized data, outputting keyed arrays as JSON.<br><br>This function does not support <code>object</code> tags.<br><br>Example:<br><code>a:2:{s:1:&quot;a&quot;;i:10;i:0;a:1:{s:2:&quot;ab&quot;;b:1;}}</code><br>becomes<br><code>{&quot;a&quot;: 10,0: {&quot;ab&quot;: true}}</code><br><br><u>Output valid JSON:</u> JSON doesn't support integers as keys, whereas PHP serialization does. Enabling this will cast these integers to strings. This will also escape backslashes.",
         inputType: "string",
         outputType: "string",
         args: [
             {
                 name: "Output valid JSON",
                 type: "boolean",
-                value: PhpSerialization.OUTPUT_VALID_JSON
+                value: PHP.OUTPUT_VALID_JSON
             }
         ]
     },

+ 2 - 2
src/core/config/modules/Default.js

@@ -20,6 +20,7 @@ import NetBIOS from "../../operations/NetBIOS.js";
 import Numberwang from "../../operations/Numberwang.js";
 import OS from "../../operations/OS.js";
 import OTP from "../../operations/OTP.js";
+import PHP from "../../operations/PHP.js";
 import QuotedPrintable from "../../operations/QuotedPrintable.js";
 import Rotate from "../../operations/Rotate.js";
 import SeqUtils from "../../operations/SeqUtils.js";
@@ -27,7 +28,6 @@ import StrUtils from "../../operations/StrUtils.js";
 import Tidy from "../../operations/Tidy.js";
 import Unicode from "../../operations/Unicode.js";
 import UUID from "../../operations/UUID.js";
-import PhpSerialization from "../../operations/PhpSerialization";
 
 /**
  * Default module.
@@ -155,7 +155,7 @@ OpModules.Default = {
     "Conditional Jump":     FlowControl.runCondJump,
     "Return":               FlowControl.runReturn,
     "Comment":              FlowControl.runComment,
-    "PHP Deserialize":      PhpSerialization.PhpDeserialize,
+    "PHP Deserialize":      PHP.runDeserialize,
 
 
     /*

+ 11 - 9
src/core/operations/PhpSerialization.js → src/core/operations/PHP.js

@@ -1,8 +1,5 @@
 /**
- * Php Serialization operations.
- * This Javascript implementation is based on the Python implementation by
- * Armin Ronacher (2016), who released it under the 3-Clause BSD license.
- * See: https://github.com/mitsuhiko/phpserialize/
+ * PHP operations.
  *
  * @author Jarmo van Lenthe [github.com/jarmovanlenthe]
  * @copyright Jarmo van Lenthe
@@ -10,8 +7,7 @@
  *
  * @namespace
  */
-
-const PhpSerialization = {
+const PHP = {
 
     /**
      * @constant
@@ -20,12 +16,17 @@ const PhpSerialization = {
     OUTPUT_VALID_JSON: true,
 
     /**
-     * Deserializes a PHP serialized input
+     * PHP Deserialize operation.
+     *
+     * This Javascript implementation is based on the Python implementation by
+     * Armin Ronacher (2016), who released it under the 3-Clause BSD license.
+     * See: https://github.com/mitsuhiko/phpserialize/
+     *
      * @param {string} input
      * @param {Object[]} args
      * @returns {string}
      */
-    PhpDeserialize: function (input, args) {
+    runDeserialize: function (input, args) {
         /**
          * Recursive method for deserializing.
          * @returns {*}
@@ -153,6 +154,7 @@ const PhpSerialization = {
         let inputPart = input.split("");
         return handleInput();
     }
+
 };
 
-export default PhpSerialization;
+export default PHP;

+ 1 - 1
test/index.js

@@ -25,9 +25,9 @@ import "./tests/operations/Hash.js";
 import "./tests/operations/Image.js";
 import "./tests/operations/MorseCode.js";
 import "./tests/operations/MS.js";
+import "./tests/operations/PHP.js";
 import "./tests/operations/StrUtils.js";
 import "./tests/operations/SeqUtils.js";
-import "./tests/operations/PhpSerialization.js";
 
 
 let allTestsPassing = true;

+ 1 - 1
test/tests/operations/PhpSerialization.js → test/tests/operations/PHP.js

@@ -1,5 +1,5 @@
 /**
- * PHP Serialization tests.
+ * PHP tests.
  *
  * @author Jarmo van Lenthe
  *