diff --git a/Gruntfile.js b/Gruntfile.js
index 206e1630..aeba4eee 100755
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -186,7 +186,10 @@ module.exports = function (grunt) {
options: webpackConfig,
metaConf: {
target: "node",
- entry: "./src/core/config/OperationConfig.js",
+ entry: [
+ "babel-polyfill",
+ "./src/core/config/OperationConfig.js"
+ ],
output: {
filename: "MetaConfig.js",
path: __dirname + "/src/core/config/",
@@ -198,7 +201,10 @@ module.exports = function (grunt) {
},
metaConfDev: {
target: "node",
- entry: "./src/core/config/OperationConfig.js",
+ entry: [
+ "babel-polyfill",
+ "./src/core/config/OperationConfig.js"
+ ],
output: {
filename: "MetaConfig.js",
path: __dirname + "/src/core/config/",
diff --git a/src/core/config/Categories.js b/src/core/config/Categories.js
index 187cb405..a038465b 100755
--- a/src/core/config/Categories.js
+++ b/src/core/config/Categories.js
@@ -201,6 +201,7 @@ const Categories = [
"Escape string",
"Unescape string",
"Pseudo-Random Number Generator",
+ "Sleep",
]
},
{
@@ -213,6 +214,7 @@ const Categories = [
"Windows Filetime to UNIX Timestamp",
"UNIX Timestamp to Windows Filetime",
"Extract dates",
+ "Sleep",
]
},
{
diff --git a/src/core/config/OperationConfig.js b/src/core/config/OperationConfig.js
index e7775e1c..dd83a154 100755
--- a/src/core/config/OperationConfig.js
+++ b/src/core/config/OperationConfig.js
@@ -2441,6 +2441,19 @@ const OperationConfig = {
}
]
},
+ "Sleep": {
+ module: "Default",
+ description: "Sleep causes the recipe to wait for a specified number of milliseconds before continuing execution.",
+ inputType: "ArrayBuffer",
+ outputType: "ArrayBuffer",
+ args: [
+ {
+ name: "Time (ms)",
+ type: "number",
+ value: 1000
+ }
+ ]
+ },
"Windows Filetime to UNIX Timestamp": {
module: "JSBN",
description: "Converts a Windows Filetime value to a UNIX timestamp.
A Windows Filetime is a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 UTC.
A UNIX timestamp is a 32-bit value representing the number of seconds since January 1, 1970 UTC (the UNIX epoch).
This operation also supports UNIX timestamps in milliseconds, microseconds and nanoseconds.",
diff --git a/src/core/config/modules/Default.js b/src/core/config/modules/Default.js
index 1afb8bcc..ac48e6e2 100644
--- a/src/core/config/modules/Default.js
+++ b/src/core/config/modules/Default.js
@@ -130,6 +130,7 @@ OpModules.Default = {
"Translate DateTime Format": DateTime.runTranslateFormat,
"From UNIX Timestamp": DateTime.runFromUnixTimestamp,
"To UNIX Timestamp": DateTime.runToUnixTimestamp,
+ "Sleep": DateTime.runSleep,
"Microsoft Script Decoder": MS.runDecodeScript,
"Entropy": Entropy.runEntropy,
"Frequency distribution": Entropy.runFreqDistrib,
diff --git a/src/core/operations/DateTime.js b/src/core/operations/DateTime.js
index 7211d7cb..9f87939d 100755
--- a/src/core/operations/DateTime.js
+++ b/src/core/operations/DateTime.js
@@ -189,6 +189,20 @@ const DateTime = {
},
+ /**
+ * Sleep operation.
+ *
+ * @param {ArrayBuffer} input
+ * @param {Object[]} args
+ * @returns {ArrayBuffer}
+ */
+ runSleep: async function(input, args) {
+ const ms = args[0];
+ await new Promise(r => setTimeout(r, ms));
+ return input;
+ },
+
+
/**
* @constant
*/