diff --git a/benchmark/index.js b/benchmark/index.js
new file mode 100644
index 0000000..927543b
--- /dev/null
+++ b/benchmark/index.js
@@ -0,0 +1,46 @@
+const Benchmark = require('benchmark');
+const stub = require('./test/stub');
+
+const suite = new Benchmark.Suite();
+
+// add tests
+suite
+ .add('Regex Based Parser', () => {
+ const RegexParser = require('./test/RegexParser');
+
+ const result = RegexParser.parse(stub);
+ })
+ .add('xBBCode Parser', () => {
+ const xbbcode = require('xbbcode-parser');
+ xbbcode.addTags({
+ ch: {
+ openTag(params, content) {
+ return '
';
+ },
+ closeTag(params, content) {
+ return '
';
+ },
+ restrictChildrenTo: [],
+ },
+ });
+
+ const result = xbbcode.process({
+ text: stub,
+ removeMisalignedTags: false,
+ addInLineBreaks: false,
+ });
+ })
+ .add('BBob Parser', () => {
+ const parse = require('../packages/bbob-parser/lib/index');
+
+ const result = parse(stub);
+ })
+// add listeners
+ .on('cycle', (event) => {
+ console.log(String(event.target));
+ })
+ .on('complete', function onComplete() {
+ console.log(`Fastest is ${this.filter('fastest').map('name')}`);
+ })
+// run async
+ .run({ async: true });
diff --git a/benchmark/parser_test_new.js b/benchmark/parser_test_new.js
deleted file mode 100644
index 9ae5c20..0000000
--- a/benchmark/parser_test_new.js
+++ /dev/null
@@ -1,19 +0,0 @@
-const parse = require('../packages/bbob-parser/lib/index');
-
-const textStub = require('./test/stub');
-
-const count = 0;
-const parsers3 = [];
-
-function test() {
- console.time('newParser');
- for (let i = 0; i <= count; i++) {
- const parser3 = parse(textStub);
-
- parsers3.push(parser3);
- }
- console.timeEnd('newParser');
-}
-
-test();
-// console.log(JSON.stringify(parsers3));
diff --git a/benchmark/parser_test_old.js b/benchmark/parser_test_old.js
deleted file mode 100644
index 89dcec0..0000000
--- a/benchmark/parser_test_old.js
+++ /dev/null
@@ -1,15 +0,0 @@
-const OldParser = require('./OldParser');
-
-const textStub = require('./test/stub');
-
-const count = 0;
-const oldParsers3 = [];
-console.time('oldParser');
-for (let i = 0; i <= count; i++) {
- const oldParser3 = OldParser.parse(textStub);
-
- oldParsers3.push(oldParser3);
-}
-console.timeEnd('oldParser');
-// console.log(JSON.stringify(oldParsers3));
-
diff --git a/benchmark/OldParser.js b/benchmark/test/RegexParser.js
similarity index 100%
rename from benchmark/OldParser.js
rename to benchmark/test/RegexParser.js
diff --git a/benchmark/test/stub2.js b/benchmark/test/stub2.js
deleted file mode 100644
index e69de29..0000000
diff --git a/benchmark/test/stub3.js b/benchmark/test/stub3.js
deleted file mode 100644
index e69de29..0000000
diff --git a/package-lock.json b/package-lock.json
index 907118b..c8a7560 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -419,6 +419,16 @@
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
"dev": true
},
+ "are-we-there-yet": {
+ "version": "1.1.5",
+ "resolved": "https://npm.wsmgroup.ru/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+ "dev": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
"argparse": {
"version": "1.0.10",
"resolved": "https://npm.wsmgroup.ru/argparse/-/argparse-1.0.10.tgz",
@@ -982,6 +992,16 @@
"tweetnacl": "^0.14.3"
}
},
+ "benchmark": {
+ "version": "2.1.4",
+ "resolved": "https://npm.wsmgroup.ru/benchmark/-/benchmark-2.1.4.tgz",
+ "integrity": "sha1-CfPeMckWQl1JjMLuVloOvzwqVik=",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.4",
+ "platform": "^1.3.3"
+ }
+ },
"bfj-node4": {
"version": "5.3.1",
"resolved": "https://npm.wsmgroup.ru/bfj-node4/-/bfj-node4-5.3.1.tgz",
@@ -1005,6 +1025,22 @@
"integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
"dev": true
},
+ "bindings": {
+ "version": "1.3.0",
+ "resolved": "https://npm.wsmgroup.ru/bindings/-/bindings-1.3.0.tgz",
+ "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==",
+ "dev": true
+ },
+ "bl": {
+ "version": "1.2.2",
+ "resolved": "https://npm.wsmgroup.ru/bl/-/bl-1.2.2.tgz",
+ "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
"bluebird": {
"version": "3.5.1",
"resolved": "https://npm.wsmgroup.ru/bluebird/-/bluebird-3.5.1.tgz",
@@ -1203,6 +1239,28 @@
"isarray": "^1.0.0"
}
},
+ "buffer-alloc": {
+ "version": "1.2.0",
+ "resolved": "https://npm.wsmgroup.ru/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+ "dev": true,
+ "requires": {
+ "buffer-alloc-unsafe": "^1.1.0",
+ "buffer-fill": "^1.0.0"
+ }
+ },
+ "buffer-alloc-unsafe": {
+ "version": "1.1.0",
+ "resolved": "https://npm.wsmgroup.ru/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
+ "dev": true
+ },
+ "buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://npm.wsmgroup.ru/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
+ "dev": true
+ },
"buffer-from": {
"version": "1.1.0",
"resolved": "https://npm.wsmgroup.ru/buffer-from/-/buffer-from-1.1.0.tgz",
@@ -1726,6 +1784,12 @@
"date-now": "^0.1.4"
}
},
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://npm.wsmgroup.ru/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "dev": true
+ },
"constants-browserify": {
"version": "1.0.0",
"resolved": "https://npm.wsmgroup.ru/constants-browserify/-/constants-browserify-1.0.0.tgz",
@@ -2001,6 +2065,15 @@
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
"dev": true
},
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://npm.wsmgroup.ru/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "dev": true,
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
"deep-extend": {
"version": "0.6.0",
"resolved": "https://npm.wsmgroup.ru/deep-extend/-/deep-extend-0.6.0.tgz",
@@ -2100,6 +2173,12 @@
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
"dev": true
},
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://npm.wsmgroup.ru/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "dev": true
+ },
"depd": {
"version": "1.1.2",
"resolved": "https://npm.wsmgroup.ru/depd/-/depd-1.1.2.tgz",
@@ -2131,6 +2210,12 @@
"repeating": "^2.0.0"
}
},
+ "detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://npm.wsmgroup.ru/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
+ "dev": true
+ },
"detect-newline": {
"version": "2.1.0",
"resolved": "https://npm.wsmgroup.ru/detect-newline/-/detect-newline-2.1.0.tgz",
@@ -2901,6 +2986,12 @@
}
}
},
+ "expand-template": {
+ "version": "1.1.1",
+ "resolved": "https://npm.wsmgroup.ru/expand-template/-/expand-template-1.1.1.tgz",
+ "integrity": "sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg==",
+ "dev": true
+ },
"expect": {
"version": "23.1.0",
"resolved": "https://npm.wsmgroup.ru/expect/-/expect-23.1.0.tgz",
@@ -3457,6 +3548,12 @@
"readable-stream": "^2.0.0"
}
},
+ "fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://npm.wsmgroup.ru/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+ "dev": true
+ },
"fs-then-native": {
"version": "2.0.0",
"resolved": "https://npm.wsmgroup.ru/fs-then-native/-/fs-then-native-2.0.0.tgz",
@@ -4022,6 +4119,53 @@
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
"dev": true
},
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://npm.wsmgroup.ru/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://npm.wsmgroup.ru/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://npm.wsmgroup.ru/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://npm.wsmgroup.ru/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
+ }
+ },
"get-caller-file": {
"version": "1.0.2",
"resolved": "https://npm.wsmgroup.ru/get-caller-file/-/get-caller-file-1.0.2.tgz",
@@ -4049,6 +4193,12 @@
"assert-plus": "^1.0.0"
}
},
+ "github-from-package": {
+ "version": "0.0.0",
+ "resolved": "https://npm.wsmgroup.ru/github-from-package/-/github-from-package-0.0.0.tgz",
+ "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=",
+ "dev": true
+ },
"glob": {
"version": "7.1.2",
"resolved": "https://npm.wsmgroup.ru/glob/-/glob-7.1.2.tgz",
@@ -4207,6 +4357,12 @@
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://npm.wsmgroup.ru/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+ "dev": true
+ },
"has-value": {
"version": "1.0.0",
"resolved": "https://npm.wsmgroup.ru/has-value/-/has-value-1.0.0.tgz",
@@ -4401,6 +4557,12 @@
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true
},
+ "ini": {
+ "version": "1.3.5",
+ "resolved": "https://npm.wsmgroup.ru/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+ "dev": true
+ },
"inquirer": {
"version": "3.3.0",
"resolved": "https://npm.wsmgroup.ru/inquirer/-/inquirer-3.3.0.tgz",
@@ -5828,6 +5990,17 @@
}
}
},
+ "microtime": {
+ "version": "2.1.8",
+ "resolved": "https://npm.wsmgroup.ru/microtime/-/microtime-2.1.8.tgz",
+ "integrity": "sha1-tDxMWrE+Un4XM3DQMG2eCku/QQ0=",
+ "dev": true,
+ "requires": {
+ "bindings": "1.3.x",
+ "nan": "2.10.x",
+ "prebuild-install": "^2.1.0"
+ }
+ },
"miller-rabin": {
"version": "4.0.1",
"resolved": "https://npm.wsmgroup.ru/miller-rabin/-/miller-rabin-4.0.1.tgz",
@@ -5865,6 +6038,12 @@
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
"dev": true
},
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://npm.wsmgroup.ru/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "dev": true
+ },
"minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://npm.wsmgroup.ru/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
@@ -5976,8 +6155,7 @@
"version": "2.10.0",
"resolved": "https://npm.wsmgroup.ru/nan/-/nan-2.10.0.tgz",
"integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
- "dev": true,
- "optional": true
+ "dev": true
},
"nanomatch": {
"version": "1.2.9",
@@ -6025,6 +6203,15 @@
"integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==",
"dev": true
},
+ "node-abi": {
+ "version": "2.4.3",
+ "resolved": "https://npm.wsmgroup.ru/node-abi/-/node-abi-2.4.3.tgz",
+ "integrity": "sha512-b656V5C0628gOOA2kwcpNA/bxdlqYF9FvxJ+qqVX0ctdXNVZpS8J6xEUYir3WAKc7U0BH/NRlSpNbGsy+azjeg==",
+ "dev": true,
+ "requires": {
+ "semver": "^5.4.1"
+ }
+ },
"node-fetch": {
"version": "1.7.3",
"resolved": "https://npm.wsmgroup.ru/node-fetch/-/node-fetch-1.7.3.tgz",
@@ -6092,6 +6279,12 @@
"which": "^1.3.0"
}
},
+ "noop-logger": {
+ "version": "0.1.1",
+ "resolved": "https://npm.wsmgroup.ru/noop-logger/-/noop-logger-0.1.1.tgz",
+ "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=",
+ "dev": true
+ },
"normalize-package-data": {
"version": "2.4.0",
"resolved": "https://npm.wsmgroup.ru/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
@@ -6122,6 +6315,18 @@
"path-key": "^2.0.0"
}
},
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://npm.wsmgroup.ru/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "dev": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
"number-is-nan": {
"version": "1.0.1",
"resolved": "https://npm.wsmgroup.ru/number-is-nan/-/number-is-nan-1.0.1.tgz",
@@ -6525,6 +6730,12 @@
"find-up": "^2.1.0"
}
},
+ "platform": {
+ "version": "1.3.5",
+ "resolved": "https://npm.wsmgroup.ru/platform/-/platform-1.3.5.tgz",
+ "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==",
+ "dev": true
+ },
"pluralize": {
"version": "7.0.0",
"resolved": "https://npm.wsmgroup.ru/pluralize/-/pluralize-7.0.0.tgz",
@@ -6607,6 +6818,37 @@
"integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
"dev": true
},
+ "prebuild-install": {
+ "version": "2.5.3",
+ "resolved": "https://npm.wsmgroup.ru/prebuild-install/-/prebuild-install-2.5.3.tgz",
+ "integrity": "sha512-/rI36cN2g7vDQnKWN8Uzupi++KjyqS9iS+/fpwG4Ea8d0Pip0PQ5bshUNzVwt+/D2MRfhVAplYMMvWLqWrCF/g==",
+ "dev": true,
+ "requires": {
+ "detect-libc": "^1.0.3",
+ "expand-template": "^1.0.2",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.2.0",
+ "mkdirp": "^0.5.1",
+ "node-abi": "^2.2.0",
+ "noop-logger": "^0.1.1",
+ "npmlog": "^4.0.1",
+ "os-homedir": "^1.0.1",
+ "pump": "^2.0.1",
+ "rc": "^1.1.6",
+ "simple-get": "^2.7.0",
+ "tar-fs": "^1.13.0",
+ "tunnel-agent": "^0.6.0",
+ "which-pm-runs": "^1.0.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://npm.wsmgroup.ru/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
"prelude-ls": {
"version": "1.1.2",
"resolved": "https://npm.wsmgroup.ru/prelude-ls/-/prelude-ls-1.1.2.tgz",
@@ -6861,6 +7103,26 @@
}
}
},
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://npm.wsmgroup.ru/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dev": true,
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://npm.wsmgroup.ru/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
"read-pkg": {
"version": "1.1.0",
"resolved": "https://npm.wsmgroup.ru/read-pkg/-/read-pkg-1.1.0.tgz",
@@ -7655,6 +7917,23 @@
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
"dev": true
},
+ "simple-concat": {
+ "version": "1.0.0",
+ "resolved": "https://npm.wsmgroup.ru/simple-concat/-/simple-concat-1.0.0.tgz",
+ "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=",
+ "dev": true
+ },
+ "simple-get": {
+ "version": "2.8.1",
+ "resolved": "https://npm.wsmgroup.ru/simple-get/-/simple-get-2.8.1.tgz",
+ "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==",
+ "dev": true,
+ "requires": {
+ "decompress-response": "^3.3.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
"size-limit": {
"version": "0.18.5",
"resolved": "https://npm.wsmgroup.ru/size-limit/-/size-limit-0.18.5.tgz",
@@ -8354,6 +8633,45 @@
"integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==",
"dev": true
},
+ "tar-fs": {
+ "version": "1.16.3",
+ "resolved": "https://npm.wsmgroup.ru/tar-fs/-/tar-fs-1.16.3.tgz",
+ "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==",
+ "dev": true,
+ "requires": {
+ "chownr": "^1.0.1",
+ "mkdirp": "^0.5.1",
+ "pump": "^1.0.0",
+ "tar-stream": "^1.1.2"
+ },
+ "dependencies": {
+ "pump": {
+ "version": "1.0.3",
+ "resolved": "https://npm.wsmgroup.ru/pump/-/pump-1.0.3.tgz",
+ "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
+ "tar-stream": {
+ "version": "1.6.1",
+ "resolved": "https://npm.wsmgroup.ru/tar-stream/-/tar-stream-1.6.1.tgz",
+ "integrity": "sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA==",
+ "dev": true,
+ "requires": {
+ "bl": "^1.0.0",
+ "buffer-alloc": "^1.1.0",
+ "end-of-stream": "^1.0.0",
+ "fs-constants": "^1.0.0",
+ "readable-stream": "^2.3.0",
+ "to-buffer": "^1.1.0",
+ "xtend": "^4.0.0"
+ }
+ },
"temp-path": {
"version": "1.0.0",
"resolved": "https://npm.wsmgroup.ru/temp-path/-/temp-path-1.0.0.tgz",
@@ -8470,6 +8788,12 @@
"integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
"dev": true
},
+ "to-buffer": {
+ "version": "1.1.1",
+ "resolved": "https://npm.wsmgroup.ru/to-buffer/-/to-buffer-1.1.1.tgz",
+ "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==",
+ "dev": true
+ },
"to-fast-properties": {
"version": "1.0.3",
"resolved": "https://npm.wsmgroup.ru/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
@@ -9206,6 +9530,21 @@
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
"dev": true
},
+ "which-pm-runs": {
+ "version": "1.0.0",
+ "resolved": "https://npm.wsmgroup.ru/which-pm-runs/-/which-pm-runs-1.0.0.tgz",
+ "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=",
+ "dev": true
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://npm.wsmgroup.ru/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
"window-size": {
"version": "0.1.0",
"resolved": "https://npm.wsmgroup.ru/window-size/-/window-size-0.1.0.tgz",
diff --git a/package.json b/package.json
index bdfa9e1..a2fb037 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,7 @@
},
"license": "MIT",
"devDependencies": {
+ "benchmark": "^2.1.4",
"eslint": "^4.19.1",
"eslint-config-airbnb": "^16.1.0",
"eslint-plugin-import": "^2.12.0",
@@ -20,6 +21,7 @@
"jest": "^23.1.0",
"jsdoc-to-markdown": "^4.0.1",
"lerna": "^2.11.0",
+ "microtime": "^2.1.8",
"rollup": "^0.62.0",
"rollup-plugin-commonjs": "^9.1.3",
"rollup-plugin-node-resolve": "^3.3.0",