From 9b980c44ed8ee177916500e31f08dfd69b1909a3 Mon Sep 17 00:00:00 2001 From: Yukino Song Date: Mon, 1 Jan 2018 04:51:46 +0800 Subject: [PATCH] Add number w/ bool support on values --- package-lock.json | 2886 ++++++++++++++++++++++++++---------- package.json | 14 +- src/eft-parser.js | 22 +- test/ef-core.dev.js.map | 1 + test/ef.min.js | 1 - test/eft-parser.dev.js.map | 2 +- test/index.html | 2 +- test/test.js | 27 +- 8 files changed, 2151 insertions(+), 804 deletions(-) create mode 100644 test/ef-core.dev.js.map delete mode 100644 test/ef.min.js diff --git a/package-lock.json b/package-lock.json index be44294..863d082 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,29 +1,23 @@ { "name": "eft-parser", - "version": "0.5.11", + "version": "0.6.0", "lockfileVersion": 1, "requires": true, "dependencies": { - "abbrev": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", - "dev": true - }, "accepts": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", "dev": true, "requires": { - "mime-types": "2.1.16", + "mime-types": "2.1.17", "negotiator": "0.6.1" } }, "acorn": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz", - "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz", + "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==", "dev": true }, "acorn-jsx": { @@ -43,49 +37,43 @@ } } }, - "acorn-object-spread": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/acorn-object-spread/-/acorn-object-spread-1.0.0.tgz", - "integrity": "sha1-SOrQ9KjrFplaF6Dbn/xqyq2kumg=", + "acorn5-object-spread": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn5-object-spread/-/acorn5-object-spread-4.0.0.tgz", + "integrity": "sha1-1XWAge7ZcSGrC+R+Mcqu8qo5lpc=", "dev": true, "requires": { - "acorn": "3.3.0" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - } + "acorn": "5.3.0" } }, "after": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.1.tgz", - "integrity": "sha1-q11PuIP1loFtNRX495HAr0ht1ic=", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", "dev": true }, "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "ajv-keywords": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", - "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", "dev": true }, "ansi-escapes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz", - "integrity": "sha1-W65SvkJIeN2Xg+iRDj/Cki6DyBs=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", + "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", "dev": true }, "ansi-regex": { @@ -101,13 +89,212 @@ "dev": true }, "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "2.3.11", + "micromatch": "3.1.4", "normalize-path": "2.1.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.0.tgz", + "integrity": "sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.1" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "extglob": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.3.tgz", + "integrity": "sha512-AyptZexgu7qppEPq59DtN/XJGZDrLcVxSHai+4hdgMMS9EpF4GBvygcWWApno8lL9qSjVpYt7Raao28qzJX1ww==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.4.tgz", + "integrity": "sha512-kFRtviKYoAJT+t7HggMl0tBFGNAKLw/S7N+CO9qfEQyisob1Oy4pao+geRbkyeEd+V9aOkvZ4mhuyPvI/q9Sfg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.0", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "extglob": "2.0.3", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.6", + "object.pick": "1.3.0", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + } + } } }, "argparse": { @@ -134,6 +321,12 @@ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -156,9 +349,9 @@ "dev": true }, "arraybuffer.slice": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", - "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", "dev": true }, "arrify": { @@ -179,6 +372,12 @@ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", "dev": true }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, "async": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", @@ -197,12 +396,24 @@ "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=", "dev": true }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, + "atob": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", + "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=", + "dev": true + }, "aws-sign2": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", @@ -238,6 +449,29 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.5", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.0", + "pascalcase": "0.1.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "base64-arraybuffer": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", @@ -245,9 +479,9 @@ "dev": true }, "base64id": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz", - "integrity": "sha1-As4P3u4M709ACA4ec+g08LG/zj8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", "dev": true }, "batch": { @@ -276,9 +510,9 @@ } }, "binary-extensions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", - "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", "dev": true }, "blob": { @@ -335,20 +569,22 @@ } }, "browser-sync": { - "version": "2.18.13", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.18.13.tgz", - "integrity": "sha512-qhdrmgshVGwweogT/bdOKkZDxVxqiF4+9mibaDeAxvDBeoUtdgABk5x7YQ1KCcLRchAfv8AVtp9NuITl5CTNqg==", + "version": "2.23.1", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.23.1.tgz", + "integrity": "sha512-NKlkRzDK1e44ptr01GxWtoEC00YSnr5N2kEIk6zoCfQTxLYypiAh0uTNqAMz/n+jQe4MHmd4gjGdR7OReg1yxw==", "dev": true, "requires": { - "browser-sync-client": "2.5.1", - "browser-sync-ui": "0.6.3", + "browser-sync-ui": "1.0.1", "bs-recipes": "1.3.4", "chokidar": "1.7.0", "connect": "3.5.0", + "connect-history-api-fallback": "1.5.0", "dev-ip": "1.0.1", "easy-extender": "2.3.2", "eazy-logger": "3.0.2", "emitter-steward": "1.0.0", + "etag": "1.8.1", + "fresh": "0.5.2", "fs-extra": "3.0.1", "http-proxy": "1.15.2", "immutable": "3.8.1", @@ -362,34 +598,52 @@ "serve-index": "1.8.0", "serve-static": "1.12.2", "server-destroy": "1.0.1", - "socket.io": "1.6.0", - "socket.io-client": "1.6.0", + "socket.io": "2.0.4", "ua-parser-js": "0.7.12", "yargs": "6.4.0" - } - }, - "browser-sync-client": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.5.1.tgz", - "integrity": "sha1-7BrWmknC4tS2RbGLHAbCmz2a+Os=", - "dev": true, - "requires": { - "etag": "1.8.0", - "fresh": "0.3.0" + }, + "dependencies": { + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.1.3", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + } + } } }, "browser-sync-ui": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-0.6.3.tgz", - "integrity": "sha1-ZApTfBgGiTA9W+krxHa568RBwLw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-1.0.1.tgz", + "integrity": "sha512-RIxmwVVcUFhRd1zxp7m2FfLnXHf59x4Gtj8HFwTA//3VgYI3AKkaQAuDL8KDJnE59XqCshxZa13JYuIWtZlKQg==", "dev": true, "requires": { "async-each-series": "0.1.1", - "connect-history-api-fallback": "1.3.0", + "connect-history-api-fallback": "1.5.0", "immutable": "3.8.1", "server-destroy": "1.0.1", - "stream-throttle": "0.1.3", - "weinre": "2.0.0-pre-I0Z7U9OV" + "socket.io-client": "2.0.4", + "stream-throttle": "0.1.3" } }, "bs-recipes": { @@ -399,31 +653,55 @@ "dev": true }, "buble": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/buble/-/buble-0.15.2.tgz", - "integrity": "sha1-VH/EdIP45egXbYKqXrzLGDsC1hM=", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/buble/-/buble-0.18.0.tgz", + "integrity": "sha512-U3NJxUiSz0H1EB54PEHAuBTxdXgQH4DaQkvkINFXf9kEKCDWSn67EgQfFKbkTzsok4xRrIPsoxWDl2czCHR65g==", "dev": true, "requires": { - "acorn": "3.3.0", + "acorn": "5.3.0", "acorn-jsx": "3.0.1", - "acorn-object-spread": "1.0.0", - "chalk": "1.1.3", - "magic-string": "0.14.0", + "acorn5-object-spread": "4.0.0", + "chalk": "2.3.0", + "magic-string": "0.22.4", "minimist": "1.2.0", - "os-homedir": "1.0.2" + "os-homedir": "1.0.2", + "vlq": "0.2.3" }, "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + } }, "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } } } }, @@ -433,6 +711,31 @@ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", @@ -479,71 +782,288 @@ "supports-color": "2.0.0" } }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.0.tgz", + "integrity": "sha512-OgXCNv2U6TnG04D3tth0gsvdbV4zdbxFG3sYUqcoQMoEFVd1j1pZR6TZ8iknC45o9IJ6PeQI/J6wT/+cHcniAw==", "dev": true, "requires": { - "anymatch": "1.3.2", + "anymatch": "2.0.0", "async-each": "1.0.1", - "fsevents": "1.1.2", - "glob-parent": "2.0.0", + "braces": "2.3.0", + "fsevents": "1.1.3", + "glob-parent": "3.1.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", - "is-glob": "2.0.1", + "is-glob": "4.0.0", + "normalize-path": "2.1.1", "path-is-absolute": "1.0.1", "readdirp": "2.1.0" - } - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "2.0.0" - } - }, - "cli-width": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", - "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, + }, + "dependencies": { + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.0.tgz", + "integrity": "sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "class-utils": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.5.tgz", + "integrity": "sha1-F+eTEDdQ+WJ7IXbqNM/RtWWQPIA=", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "lazy-cache": "2.0.2", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, "color-convert": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", - "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { "color-name": "1.1.3" @@ -577,9 +1097,9 @@ "dev": true }, "component-emitter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", - "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true }, "component-inherit": { @@ -613,14 +1133,31 @@ "requires": { "debug": "2.2.0", "finalhandler": "0.5.0", - "parseurl": "1.3.1", + "parseurl": "1.3.2", "utils-merge": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } } }, "connect-history-api-fallback": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz", - "integrity": "sha1-5R0X+PDvDbkKZP20feMFFVbp8Wk=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", "dev": true }, "cookie": { @@ -629,6 +1166,12 @@ "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", "dev": true }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -673,12 +1216,12 @@ } }, "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "ms": "0.7.1" + "ms": "2.0.0" } }, "decamelize": { @@ -687,12 +1230,27 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, "del": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", @@ -705,7 +1263,7 @@ "object-assign": "4.1.1", "pify": "2.3.0", "pinkie-promise": "2.0.1", - "rimraf": "2.6.1" + "rimraf": "2.6.2" } }, "delayed-stream": { @@ -733,13 +1291,12 @@ "dev": true }, "doctrine": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", - "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.2.tgz", + "integrity": "sha512-y0tm5Pq6ywp3qSTZ1vPgVdAnbDEoeoc5wlOHXoY1c4Wug/a7JvqHIl7BTvwodaHmejWkK/9dSb3sCYfyo/om8A==", "dev": true, "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "2.0.2" } }, "easy-extender": { @@ -749,6 +1306,14 @@ "dev": true, "requires": { "lodash": "3.10.1" + }, + "dependencies": { + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + } } }, "eazy-logger": { @@ -789,108 +1354,62 @@ "dev": true }, "engine.io": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.0.tgz", - "integrity": "sha1-PutfJky3XbvsG6rqJtYfWk6s4qo=", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.1.4.tgz", + "integrity": "sha1-PQIRtwpVLOhB/8fahiezAamkFi4=", "dev": true, "requires": { "accepts": "1.3.3", - "base64id": "0.1.0", + "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "2.3.3", - "engine.io-parser": "1.3.1", - "ws": "1.1.1" + "debug": "2.6.9", + "engine.io-parser": "2.1.2", + "uws": "0.14.5", + "ws": "3.3.3" }, "dependencies": { - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "accepts": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", + "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", "dev": true, "requires": { - "ms": "0.7.2" + "mime-types": "2.1.17", + "negotiator": "0.6.1" } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true } } }, "engine.io-client": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.0.tgz", - "integrity": "sha1-e3MOQSdBQIdZbZvjyI0rxf22z1w=", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.4.tgz", + "integrity": "sha1-T88TcLRxY70s6b4nM5ckMDUNTqE=", "dev": true, "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "2.3.3", - "engine.io-parser": "1.3.1", + "debug": "2.6.9", + "engine.io-parser": "2.1.2", "has-cors": "1.1.0", "indexof": "0.0.1", - "parsejson": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "1.1.1", - "xmlhttprequest-ssl": "1.5.3", + "ws": "3.3.3", + "xmlhttprequest-ssl": "1.5.4", "yeast": "0.1.2" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true, - "requires": { - "ms": "0.7.2" - } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - } } }, "engine.io-parser": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.1.tgz", - "integrity": "sha1-lVTxrjMQfW+9FwylRm0vgz9qB88=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz", + "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", "dev": true, "requires": { - "after": "0.8.1", - "arraybuffer.slice": "0.0.6", + "after": "0.8.2", + "arraybuffer.slice": "0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.4", - "has-binary": "0.1.6", - "wtf-8": "1.0.0" - }, - "dependencies": { - "has-binary": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz", - "integrity": "sha1-JTJvOc+k9hath4eJTjryz7x7bhA=", - "dev": true, - "requires": { - "isarray": "0.0.1" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } + "has-binary2": "1.0.2" } }, "error-ex": { @@ -915,33 +1434,33 @@ "dev": true }, "eslint": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.5.0.tgz", - "integrity": "sha1-u3XTuL3pf7XhPvzVOXRGd/6wGcM=", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.14.0.tgz", + "integrity": "sha512-Ul6CSGRjKscEyg0X/EeNs7o2XdnbTEOD1OM8cTjmx85RPcBJQrEhZLevhuJZNAE/vS2iVl5Uhgiqf3h5uLMCJQ==", "dev": true, "requires": { - "ajv": "5.2.2", + "ajv": "5.5.2", "babel-code-frame": "6.26.0", - "chalk": "2.1.0", + "chalk": "2.3.0", "concat-stream": "1.6.0", "cross-spawn": "5.1.0", - "debug": "2.6.8", - "doctrine": "2.0.0", + "debug": "3.1.0", + "doctrine": "2.0.2", "eslint-scope": "3.7.1", - "espree": "3.5.0", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.2", "esquery": "1.0.0", - "estraverse": "4.2.0", "esutils": "2.0.2", "file-entry-cache": "2.0.0", "functional-red-black-tree": "1.0.1", "glob": "7.1.2", - "globals": "9.18.0", - "ignore": "3.3.3", + "globals": "11.1.0", + "ignore": "3.3.7", "imurmurhash": "0.1.4", - "inquirer": "3.2.2", - "is-resolvable": "1.0.0", - "js-yaml": "3.9.1", - "json-stable-stringify": "1.0.1", + "inquirer": "3.3.0", + "is-resolvable": "1.0.1", + "js-yaml": "3.10.0", + "json-stable-stringify-without-jsonify": "1.0.1", "levn": "0.3.0", "lodash": "4.17.4", "minimatch": "3.0.4", @@ -949,28 +1468,16 @@ "natural-compare": "1.4.0", "optionator": "0.8.2", "path-is-inside": "1.0.2", - "pluralize": "4.0.0", + "pluralize": "7.0.0", "progress": "2.0.0", "require-uncached": "1.0.3", "semver": "5.4.1", "strip-ansi": "4.0.0", "strip-json-comments": "2.0.1", - "table": "4.0.1", + "table": "4.0.2", "text-table": "0.2.0" }, "dependencies": { - "ajv": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.2.tgz", - "integrity": "sha1-R8aNaehvXZUxA7AHSpQw3GPaXjk=", - "dev": true, - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "json-schema-traverse": "0.3.1", - "json-stable-stringify": "1.0.1" - } - }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", @@ -983,50 +1490,29 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "1.9.1" } }, "chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "supports-color": "4.2.1" + "supports-color": "4.5.0" } }, "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { "ms": "2.0.0" } }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -1037,9 +1523,9 @@ } }, "supports-color": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", - "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { "has-flag": "2.0.0" @@ -1057,13 +1543,19 @@ "estraverse": "4.2.0" } }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "dev": true + }, "espree": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.0.tgz", - "integrity": "sha1-mDWGJb3QVYYeon4oZ+pyn69GPY0=", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz", + "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==", "dev": true, "requires": { - "acorn": "5.1.1", + "acorn": "5.3.0", "acorn-jsx": "3.0.1" } }, @@ -1111,9 +1603,9 @@ "dev": true }, "etag": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", - "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true }, "eventemitter3": { @@ -1140,52 +1632,30 @@ "fill-range": "2.2.3" } }, - "express": { - "version": "2.5.11", - "resolved": "https://registry.npmjs.org/express/-/express-2.5.11.tgz", - "integrity": "sha1-TOjqHzY15p5J8Ou0l7aksKUc5vA=", - "dev": true, - "requires": { - "connect": "1.9.2", - "mime": "1.2.4", - "mkdirp": "0.3.0", - "qs": "0.4.2" - }, - "dependencies": { - "connect": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/connect/-/connect-1.9.2.tgz", - "integrity": "sha1-QogKIulDiuWait105Df1iujlKAc=", - "dev": true, - "requires": { - "formidable": "1.0.17", - "mime": "1.2.4", - "qs": "0.4.2" - } - }, - "qs": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-0.4.2.tgz", - "integrity": "sha1-PKxMhh43GoycR3CsI82o3mObjl8=", - "dev": true - } - } - }, "extend": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", "dev": true }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, "external-editor": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz", - "integrity": "sha1-HtkZnanL/i7y96MbL96LDRI2iXI=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", + "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", "dev": true, "requires": { - "iconv-lite": "0.4.18", - "jschardet": "1.5.1", - "tmp": "0.0.31" + "chardet": "0.4.2", + "iconv-lite": "0.4.19", + "tmp": "0.0.33" } }, "extglob": { @@ -1209,6 +1679,12 @@ "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", "dev": true }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", @@ -1230,7 +1706,7 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.2.2", + "flat-cache": "1.3.0", "object-assign": "4.1.1" } }, @@ -1264,6 +1740,23 @@ "on-finished": "2.3.0", "statuses": "1.3.1", "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } } }, "find-up": { @@ -1277,9 +1770,9 @@ } }, "flat-cache": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", - "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { "circular-json": "0.3.3", @@ -1317,19 +1810,22 @@ "requires": { "asynckit": "0.4.0", "combined-stream": "1.0.5", - "mime-types": "2.1.16" + "mime-types": "2.1.17" } }, - "formidable": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.0.17.tgz", - "integrity": "sha1-71SRSQ+UM7cF+qdyScmQKa40hVk=", - "dev": true + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } }, "fresh": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", - "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, "fs-extra": { @@ -1350,14 +1846,14 @@ "dev": true }, "fsevents": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", - "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", "dev": true, "optional": true, "requires": { - "nan": "2.6.2", - "node-pre-gyp": "0.6.36" + "nan": "2.8.0", + "node-pre-gyp": "0.6.39" }, "dependencies": { "abbrev": { @@ -1515,7 +2011,6 @@ "version": "2.0.5", "bundled": true, "dev": true, - "optional": true, "requires": { "boom": "2.10.1" } @@ -1563,6 +2058,12 @@ "dev": true, "optional": true }, + "detect-libc": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, "ecc-jsbn": { "version": "0.1.1", "bundled": true, @@ -1704,7 +2205,6 @@ "version": "3.1.3", "bundled": true, "dev": true, - "optional": true, "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", @@ -1876,11 +2376,13 @@ "optional": true }, "node-pre-gyp": { - "version": "0.6.36", + "version": "0.6.39", "bundled": true, "dev": true, "optional": true, "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", "mkdirp": "0.5.1", "nopt": "4.0.1", "npmlog": "4.1.0", @@ -2088,7 +2590,6 @@ "version": "1.0.9", "bundled": true, "dev": true, - "optional": true, "requires": { "hoek": "2.16.3" } @@ -2118,14 +2619,6 @@ } } }, - "string_decoder": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, "string-width": { "version": "1.0.2", "bundled": true, @@ -2136,6 +2629,14 @@ "strip-ansi": "3.0.1" } }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, "stringstream": { "version": "0.0.5", "bundled": true, @@ -2260,6 +2761,12 @@ "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", "dev": true }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -2311,9 +2818,9 @@ } }, "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.1.0.tgz", + "integrity": "sha512-uEuWt9mqTlPDwSqi+sHjD4nWU/1N+q0fiWI9T1mZpD2UENqX20CFD5T/ziLZvztPaBKl7ZylUi1q6Qfm7E2CiQ==", "dev": true }, "globby": { @@ -2350,6 +2857,18 @@ "requires": { "ajv": "4.11.8", "har-schema": "1.0.5" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + } } }, "has-ansi": { @@ -2361,19 +2880,19 @@ "ansi-regex": "2.1.1" } }, - "has-binary": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", - "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", + "has-binary2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.2.tgz", + "integrity": "sha1-6D26SfC5vk0CbSc2U1DZ8D9Uvpg=", "dev": true, "requires": { - "isarray": "0.0.1" + "isarray": "2.0.1" }, "dependencies": { "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", "dev": true } } @@ -2390,6 +2909,66 @@ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, "hawk": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", @@ -2447,15 +3026,15 @@ } }, "iconv-lite": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", - "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==", + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", "dev": true }, "ignore": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz", - "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", + "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", "dev": true }, "immutable": { @@ -2493,16 +3072,16 @@ "dev": true }, "inquirer": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.2.2.tgz", - "integrity": "sha512-bTKLzEHJVATimZO/YFdLrom0lRx1BHfRYskFHfIMVkGdp8+dIZaxuU+4yrsS1lcu6YWywVQVVsfvdwESzbeqHw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "2.0.0", - "chalk": "2.1.0", + "ansi-escapes": "3.0.0", + "chalk": "2.3.0", "cli-cursor": "2.1.0", - "cli-width": "2.1.0", - "external-editor": "2.0.4", + "cli-width": "2.2.0", + "external-editor": "2.1.0", "figures": "2.0.0", "lodash": "4.17.4", "mute-stream": "0.0.7", @@ -2526,40 +3105,18 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "1.9.1" } }, "chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "supports-color": "4.2.1" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "supports-color": "4.5.0" } }, "strip-ansi": { @@ -2572,9 +3129,9 @@ } }, "supports-color": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", - "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { "has-flag": "2.0.0" @@ -2594,6 +3151,23 @@ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -2606,7 +3180,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.10.0" + "binary-extensions": "1.11.0" } }, "is-buffer": { @@ -2624,6 +3198,42 @@ "builtin-modules": "1.1.1" } }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", @@ -2652,13 +3262,10 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, "is-glob": { "version": "2.0.1", @@ -2693,6 +3300,26 @@ "lodash.isfinite": "3.3.2" } }, + "is-odd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz", + "integrity": "sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=", + "dev": true, + "requires": { + "is-number": "3.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + } + } + }, "is-path-cwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", @@ -2705,18 +3332,35 @@ "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", "dev": true, "requires": { - "is-path-inside": "1.0.0" + "is-path-inside": "1.0.1" } }, "is-path-inside": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", - "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { "path-is-inside": "1.0.2" } }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "is-posix-bracket": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", @@ -2736,13 +3380,10 @@ "dev": true }, "is-resolvable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", - "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", - "dev": true, - "requires": { - "tryit": "1.0.3" - } + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.1.tgz", + "integrity": "sha512-y5CXYbzvB3jTnWAZH1Nl7ykUWb6T3BcTs56HUruwBf8MhF56n1HWqhDWnVFo8GHrUPDgvUUNVhrc2U8W7iqz5g==", + "dev": true }, "is-typedarray": { "version": "1.0.0", @@ -2790,9 +3431,9 @@ "dev": true }, "js-yaml": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.9.1.tgz", - "integrity": "sha512-CbcG379L1e+mWBnLvHWWeLs8GyV/EMw862uLI3c+GxVyDHWZcjZinwuBd3iW2pgxgIlksW/1vNJa4to+RvDOww==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", "dev": true, "requires": { "argparse": "1.0.9", @@ -2806,12 +3447,6 @@ "dev": true, "optional": true }, - "jschardet": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.1.tgz", - "integrity": "sha512-vE2hT1D0HLZCLLclfBSfkfTTedhVj0fubHpJBHKwwUWX0nSbhPAfk+SG9rTX95BYNmau8rGFfCeaT6T5OW1C2A==", - "dev": true - }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -2833,18 +3468,18 @@ "jsonify": "0.0.0" } }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", - "dev": true - }, "jsonfile": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", @@ -2889,6 +3524,15 @@ "is-buffer": "1.1.5" } }, + "lazy-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", + "dev": true, + "requires": { + "set-getter": "0.1.0" + } + }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", @@ -2948,12 +3592,6 @@ "ms": "2.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "yargs": { "version": "3.29.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.29.0.tgz", @@ -2971,9 +3609,9 @@ } }, "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", "dev": true }, "lodash.isfinite": { @@ -2993,12 +3631,27 @@ } }, "magic-string": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.14.0.tgz", - "integrity": "sha1-VyJK7xcByu7Sc7F6OalW5ysXJGI=", + "version": "0.22.4", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.4.tgz", + "integrity": "sha512-kxBL06p6iO2qPBHsqGK2b3cRwiRGpnmSuVWNhwHcMX7qJOUr1HvricYP1LZOCdkQBUp0jiWg2d6WJwR3vYgByw==", "dev": true, "requires": { - "vlq": "0.2.2" + "vlq": "0.2.3" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" } }, "micromatch": { @@ -3023,24 +3676,24 @@ } }, "mime": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.4.tgz", - "integrity": "sha1-EbX9rynCUJJVF2uArVIClPXekrc=", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", "dev": true }, "mime-db": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", - "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=", + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", "dev": true }, "mime-types": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", - "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", "dev": true, "requires": { - "mime-db": "1.29.0" + "mime-db": "1.30.0" } }, "mimic-fn": { @@ -3064,18 +3717,42 @@ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, - "mkdirp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", - "dev": true - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, + "mixin-deep": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.0.tgz", + "integrity": "sha512-dgaCvoh6i1nosAUBKb0l0pfJ78K8+S9fluyIR2YvAeUD/QuMahnFnF3xYty5eYXMjhGSsB0DsW6A0uAZyetoAg==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", @@ -3083,12 +3760,51 @@ "dev": true }, "nan": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", + "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", "dev": true, "optional": true }, + "nanomatch": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.6.tgz", + "integrity": "sha512-WJ6XTCbvWXUFPbi/bDwKcYkCeOGUHzaJj72KbuPqGn78Ba/F5Vu26Zlo6SuMQbCIst1RGKL1zfWBCOGAlbRLAg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "is-odd": "1.0.0", + "kind-of": "5.1.0", + "object.pick": "1.3.0", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -3101,15 +3817,6 @@ "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", "dev": true }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1.1.0" - } - }, "normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", @@ -3155,12 +3862,88 @@ "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", "dev": true }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + } + } + }, "object-path": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=", "dev": true }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", @@ -3171,6 +3954,23 @@ "is-extendable": "0.1.1" } }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -3228,12 +4028,6 @@ "wordwrap": "1.0.0" } }, - "options": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", - "dev": true - }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", @@ -3276,15 +4070,6 @@ "error-ex": "1.3.1" } }, - "parsejson": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", - "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", - "dev": true, - "requires": { - "better-assert": "1.0.2" - } - }, "parseqs": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", @@ -3304,9 +4089,21 @@ } }, "parseurl": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", "dev": true }, "path-exists": { @@ -3375,9 +4172,9 @@ } }, "pluralize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-4.0.0.tgz", - "integrity": "sha1-WbcIwcAZCi9pLxx2GMRGsFL9F2I=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", "dev": true }, "portscanner": { @@ -3390,6 +4187,12 @@ "is-number-like": "1.0.8" } }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -3546,6 +4349,15 @@ "is-primitive": "2.0.0" } }, + "regex-not": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz", + "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1" + } + }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -3583,13 +4395,13 @@ "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", - "mime-types": "2.1.16", + "mime-types": "2.1.17", "oauth-sign": "0.8.2", "performance-now": "0.2.0", "qs": "6.4.0", "safe-buffer": "5.1.1", "stringstream": "0.0.5", - "tough-cookie": "2.3.2", + "tough-cookie": "2.3.3", "tunnel-agent": "0.6.0", "uuid": "3.1.0" }, @@ -3645,13 +4457,19 @@ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", "dev": true }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, "resp-modifier": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", "dev": true, "requires": { - "debug": "2.2.0", + "debug": "2.6.9", "minimatch": "3.0.4" } }, @@ -3666,72 +4484,75 @@ } }, "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { "glob": "7.1.2" } }, "rollup": { - "version": "0.48.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.48.2.tgz", - "integrity": "sha512-5IOVEA87/OWQlojaAPN0WStLAhlaY7GS/5p+pA/IHReXjtc+d7IJYgRD3Y/U2LVXoD7f1SBc3ymYd4g3M/zRzQ==", + "version": "0.53.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.53.2.tgz", + "integrity": "sha512-7KbFOFV9FSxPYmcTi+0LuciI0uixNAz7F1B7u05QxXxVVV8FcFazpd19C/ybLz5//NP4N2L8rmnK0mT9ki+NvA==", "dev": true }, "rollup-plugin-browsersync": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/rollup-plugin-browsersync/-/rollup-plugin-browsersync-0.2.4.tgz", - "integrity": "sha512-lYhadeCUSl6IVRFQ0j6ipY//AE7E+ccLsC1YcTXG2ZAqB0FfAIRepqodijWoggLvpInLih+cVa/xB7yJiDqSag==", + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/rollup-plugin-browsersync/-/rollup-plugin-browsersync-0.2.6.tgz", + "integrity": "sha512-ld9WQ7HLuhhmWKf6za4OwUy1wYwkPcMYMPyxXVVVXRYo/y7mP7oB0qV3K7jrNhoLWwW8Q9J3oWSdff0oh04Ihw==", "dev": true, "requires": { - "browser-sync": "2.18.13" + "browser-sync": "2.23.1" } }, "rollup-plugin-buble": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-buble/-/rollup-plugin-buble-0.15.0.tgz", - "integrity": "sha1-g8PonH/SJmx5GPQbo5gDE1Gcf9A=", - "dev": true, - "requires": { - "buble": "0.15.2", - "rollup-pluginutils": "1.5.2" - } - }, - "rollup-plugin-commonjs": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.1.0.tgz", - "integrity": "sha512-mxLU0oCZPakY+o1P9OeVG+yT7bGOFyRQf6pk3xden2+sEG2NP40CrKWw1h/BHZuK7yegRcOJMCfr/uzLmodrGQ==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-buble/-/rollup-plugin-buble-0.18.0.tgz", + "integrity": "sha512-rd3JG2MxvQXfg5coCw0IyZV8QrsceVI4zfJgGVgkUnntwp+gnjv7TsKWGKGoLNMGAMRKQlhcsSyvUuvOL+vNHw==", "dev": true, "requires": { - "acorn": "4.0.13", - "estree-walker": "0.3.1", - "magic-string": "0.19.1", - "resolve": "1.4.0", + "buble": "0.18.0", "rollup-pluginutils": "2.0.1" }, "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - }, "estree-walker": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.3.1.tgz", "integrity": "sha1-5rGlHPcpJSTnI3wxLl/mZgwc4ao=", "dev": true }, - "magic-string": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.19.1.tgz", - "integrity": "sha1-FNdoATyvLsj96hakmvgvw3fnUgE=", + "rollup-pluginutils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz", + "integrity": "sha1-fslbNXP2VDpGpkYb2afFRFJdD8A=", "dev": true, "requires": { - "vlq": "0.2.2" + "estree-walker": "0.3.1", + "micromatch": "2.3.11" } + } + } + }, + "rollup-plugin-commonjs": { + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.2.6.tgz", + "integrity": "sha512-qK0+uhktmnAgZkHkqFuajNmPw93fjrO7+CysDaxWE5jrUR9XSlSvuao5ZJP+XizxA8weakhgYYBtbVz9SGBpjA==", + "dev": true, + "requires": { + "acorn": "5.3.0", + "estree-walker": "0.5.1", + "magic-string": "0.22.4", + "resolve": "1.4.0", + "rollup-pluginutils": "2.0.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.1.tgz", + "integrity": "sha512-7HgCgz1axW7w5aOvgOQkoR1RMBkllygJrssU3BvymKQ95lxXYv6Pon17fBRDm9qhkvXZGijOULoSF9ShOk/ZLg==", + "dev": true }, "rollup-pluginutils": { "version": "2.0.1", @@ -3741,6 +4562,14 @@ "requires": { "estree-walker": "0.3.1", "micromatch": "2.3.11" + }, + "dependencies": { + "estree-walker": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.3.1.tgz", + "integrity": "sha1-5rGlHPcpJSTnI3wxLl/mZgwc4ao=", + "dev": true + } } } } @@ -3751,7 +4580,7 @@ "integrity": "sha1-n7l8DvW8DXpU7vHygXDxl03JOOw=", "dev": true, "requires": { - "eslint": "4.5.0", + "eslint": "4.14.0", "rollup-pluginutils": "2.0.1" }, "dependencies": { @@ -3867,7 +4696,7 @@ "destroy": "1.0.4", "encodeurl": "1.0.1", "escape-html": "1.0.3", - "etag": "1.8.0", + "etag": "1.8.1", "fresh": "0.5.0", "http-errors": "1.6.2", "mime": "1.3.4", @@ -3912,12 +4741,6 @@ "statuses": "1.3.1" } }, - "mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", - "dev": true - }, "ms": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-1.0.0.tgz", @@ -3938,13 +4761,30 @@ "integrity": "sha1-fF2WwT+xMRAfk8HFd0+FFqHnjTs=", "dev": true, "requires": { - "accepts": "1.3.3", + "accepts": "1.3.4", "batch": "0.5.3", "debug": "2.2.0", "escape-html": "1.0.3", "http-errors": "1.5.1", - "mime-types": "2.1.16", - "parseurl": "1.3.1" + "mime-types": "2.1.17", + "parseurl": "1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } } }, "serve-static": { @@ -3955,7 +4795,7 @@ "requires": { "encodeurl": "1.0.1", "escape-html": "1.0.3", - "parseurl": "1.3.1", + "parseurl": "1.3.2", "send": "0.15.2" } }, @@ -3971,12 +4811,33 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, + "set-getter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", + "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", + "dev": true, + "requires": { + "to-object-path": "0.3.0" + } + }, "set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", "dev": true }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + } + }, "setprototypeof": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz", @@ -4016,143 +4877,191 @@ "dev": true }, "slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", - "dev": true - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "hoek": "2.16.3" + "is-fullwidth-code-point": "2.0.0" } }, - "socket.io": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.6.0.tgz", - "integrity": "sha1-PkDZMmN+a9kjmBslyvfFPoO24uE=", - "dev": true, - "requires": { - "debug": "2.3.3", - "engine.io": "1.8.0", - "has-binary": "0.1.7", - "object-assign": "4.1.0", - "socket.io-adapter": "0.5.0", - "socket.io-client": "1.6.0", - "socket.io-parser": "2.3.1" + "snapdragon": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", + "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", + "dev": true, + "requires": { + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.6", + "source-map-resolve": "0.5.1", + "use": "2.0.2" }, "dependencies": { - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "ms": "0.7.2" + "is-descriptor": "0.1.6" } }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } }, - "object-assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", - "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=", + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, - "socket.io-adapter": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", - "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=", + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "debug": "2.3.3", - "socket.io-parser": "2.3.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true, - "requires": { - "ms": "0.7.2" - } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, - "socket.io-client": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.6.0.tgz", - "integrity": "sha1-W2aPT3cTBN/u0XkGRwg4b6ZxeFM=", + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "backo2": "1.0.2", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "2.3.3", - "engine.io-client": "1.8.0", - "has-binary": "0.1.7", - "indexof": "0.0.1", - "object-component": "0.0.3", + "kind-of": "3.2.2" + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "socket.io": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.0.4.tgz", + "integrity": "sha1-waRZDO/4fs8TxyZS8Eb3FrKeYBQ=", + "dev": true, + "requires": { + "debug": "2.6.9", + "engine.io": "3.1.4", + "socket.io-adapter": "1.1.1", + "socket.io-client": "2.0.4", + "socket.io-parser": "3.1.2" + } + }, + "socket.io-adapter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", + "dev": true + }, + "socket.io-client": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.4.tgz", + "integrity": "sha1-CRilUkBtxeVAs4Dc2Xr8SmQzL44=", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "2.6.9", + "engine.io-client": "3.1.4", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "2.3.1", + "socket.io-parser": "3.1.2", "to-array": "0.1.4" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true, - "requires": { - "ms": "0.7.2" - } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - } } }, "socket.io-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", - "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.2.tgz", + "integrity": "sha1-28IoIVH8T6675Aru3Ady66YZ9/I=", "dev": true, "requires": { - "component-emitter": "1.1.2", - "debug": "2.2.0", - "isarray": "0.0.1", - "json3": "3.3.2" + "component-emitter": "1.2.1", + "debug": "2.6.9", + "has-binary2": "1.0.2", + "isarray": "2.0.1" }, "dependencies": { "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", "dev": true } } @@ -4163,6 +5072,25 @@ "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", "dev": true }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.0.3", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, "spdx-correct": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", @@ -4184,6 +5112,36 @@ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", "dev": true }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -4214,6 +5172,84 @@ } } }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, "statuses": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", @@ -4230,6 +5266,33 @@ "limiter": "1.1.2" } }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", @@ -4239,17 +5302,6 @@ "safe-buffer": "5.1.1" } }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", @@ -4287,54 +5339,46 @@ "dev": true }, "table": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.1.tgz", - "integrity": "sha1-qBFsEz+sLGH0pCCrbN9cTWHw5DU=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "4.11.8", - "ajv-keywords": "1.5.1", - "chalk": "1.1.3", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.3.0", "lodash": "4.17.4", - "slice-ansi": "0.0.4", + "slice-ansi": "1.0.0", "string-width": "2.1.1" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "has-flag": "2.0.0" } } } @@ -4362,9 +5406,9 @@ "dev": true }, "tmp": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", - "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { "os-tmpdir": "1.0.2" @@ -4376,21 +5420,124 @@ "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", "dev": true }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz", + "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "regex-not": "1.0.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + } + } + }, "tough-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", "dev": true, "requires": { "punycode": "1.4.1" } }, - "tryit": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", - "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", - "dev": true - }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -4439,16 +5586,36 @@ } }, "ultron": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", - "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", "dev": true }, - "underscore": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=", - "dev": true + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } }, "universalify": { "version": "0.1.1", @@ -4462,6 +5629,143 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", + "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "isobject": "3.0.1", + "lazy-cache": "2.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -4480,6 +5784,13 @@ "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", "dev": true }, + "uws": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/uws/-/uws-0.14.5.tgz", + "integrity": "sha1-Z6rzPEaypYel9mZtAPdpEyjxSdw=", + "dev": true, + "optional": true + }, "validate-npm-package-license": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", @@ -4510,22 +5821,11 @@ } }, "vlq": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.2.tgz", - "integrity": "sha1-4xbVJXtAuGu0PLjV/qXX9U1rDKE=", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", "dev": true }, - "weinre": { - "version": "2.0.0-pre-I0Z7U9OV", - "resolved": "https://registry.npmjs.org/weinre/-/weinre-2.0.0-pre-I0Z7U9OV.tgz", - "integrity": "sha1-/viqIjkh97QLu71MPtQwL2/QqBM=", - "dev": true, - "requires": { - "express": "2.5.11", - "nopt": "3.0.6", - "underscore": "1.7.0" - } - }, "which": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", @@ -4561,6 +5861,28 @@ "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } } }, "wrappy": { @@ -4576,39 +5898,23 @@ "dev": true, "requires": { "mkdirp": "0.5.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } } }, "ws": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.1.tgz", - "integrity": "sha1-CC3bbGQehdS7RR8D1S8G6r2x8Bg=", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "dev": true, "requires": { - "options": "0.0.6", - "ultron": "1.0.2" + "async-limiter": "1.0.0", + "safe-buffer": "5.1.1", + "ultron": "1.1.1" } }, - "wtf-8": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", - "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=", - "dev": true - }, "xmlhttprequest-ssl": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", - "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.4.tgz", + "integrity": "sha1-BPVgkVcks4kIhxXMDteBPpZ3v1c=", "dev": true }, "y18n": { @@ -4651,6 +5957,26 @@ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", "dev": true }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, "window-size": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", diff --git a/package.json b/package.json index c2e0ce4..70dac2d 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eft-parser", - "version": "0.5.12", + "version": "0.6.0", "description": "ef.js template parser", "main": "dist/eft-parser.min.js", "module": "src/eft-parser.js", @@ -26,12 +26,12 @@ }, "homepage": "https://github.com/ClassicOldSong/eft-parser#readme", "devDependencies": { - "chokidar": "^1.7.0", - "eslint": "^4.5.0", - "rollup": "^0.48.2", - "rollup-plugin-browsersync": "^0.2.4", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-commonjs": "^8.1.0", + "chokidar": "^2.0.0", + "eslint": "^4.14.0", + "rollup": "^0.53.2", + "rollup-plugin-browsersync": "^0.2.6", + "rollup-plugin-buble": "^0.18.0", + "rollup-plugin-commonjs": "^8.2.6", "rollup-plugin-eslint": "^4.0.0", "rollup-plugin-node-resolve": "^3.0.0", "rollup-plugin-progress": "^0.4.0", diff --git a/src/eft-parser.js b/src/eft-parser.js index 94ba8f9..7e7c100 100644 --- a/src/eft-parser.js +++ b/src/eft-parser.js @@ -1,4 +1,4 @@ -import ESCAPE from './escape-parser.js' +import efEscape from './escape-parser.js' const typeSymbols = '>#%@.-+'.split('') const reserved = '__EFPLACEHOLDER__ $parent $key $data $element $refs $methods $mount $umount $subscribe $unsubscribe $update $destroy __DIRECTMOUNT__'.split(' ') @@ -10,6 +10,18 @@ const getErrorMsg = (msg, line = -2) => `Failed to parse eft template: ${msg}. a const isEmpty = string => !string.replace(/\s/, '') +const checkValidType = obj => ['number', 'boolean', 'string'].indexOf(typeof obj) > -1 + +const ESCAPE = (string) => { + try { + const parsed = JSON.parse(string) + if (['number', 'boolean'].indexOf(typeof parsed) === -1) return efEscape(string) + return parsed + } catch (e) { + return efEscape(string) + } +} + const getOffset = (string, parsingInfo) => { if (parsingInfo.offset !== null) return parsingInfo.offset = string.match(/\s*/)[0] @@ -58,7 +70,7 @@ const splitDefault = (string) => { const [_path, ..._default] = string.split('=') const pathArr = _path.trim().split('.') const defaultVal = ESCAPE(_default.join('=').trim()) - if (defaultVal) return [pathArr, defaultVal] + if (checkValidType(defaultVal)) return [pathArr, defaultVal] return [pathArr] } @@ -67,7 +79,7 @@ const splitLiterals = (string) => { if (strs.length === 1) return ESCAPE(string) const tmpl = [] if (strs.length === 2 && !strs[0] && !strs[1]) tmpl.push(0) - else tmpl.push(strs.map(ESCAPE)) + else tmpl.push(strs.map(efEscape)) const mustaches = string.match(mustache) if (mustaches) tmpl.push(...mustaches.map(splitDefault)) return tmpl @@ -79,7 +91,7 @@ const pushStr = (textArr, str) => { const parseText = (string) => { const result = splitLiterals(string) - if (typeof result === 'string') return [result] + if (checkValidType(result)) return [`${result}`] const [strs, ...exprs] = result const textArr = [] for (let i = 0; i < exprs.length; i++) { @@ -276,7 +288,7 @@ const parseLine = ({line, ast, parsingInfo, i}) => { } const parseEft = (template) => { - if (!template) throw new TypeError(getErrorMsg('Template required, but nothing present')) + if (!template) throw new TypeError(getErrorMsg('Template required, but nothing given')) const tplType = typeof template if (tplType !== 'string') throw new TypeError(getErrorMsg(`Expected a string, but got a(n) ${tplType}`)) const lines = template.split(/\r?\n/) diff --git a/test/ef-core.dev.js.map b/test/ef-core.dev.js.map new file mode 100644 index 0000000..22af547 --- /dev/null +++ b/test/ef-core.dev.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ef-core.dev.js","sources":["../src/lib/utils/array-helper.js","../src/lib/utils/literals-mix.js","../src/lib/utils/polyfills.js","../src/lib/utils/render-query.js","../src/lib/utils/resolver.js","../src/lib/utils/binding.js","../src/lib/utils/event-helper.js","../src/lib/utils/element-creator.js","../src/lib/utils/dom-helper.js","../src/lib/utils/dom-arr-helper.js","../src/lib/utils/type-of.js","../src/lib/utils/creator.js","../src/lib/renderer.js","../src/ef-core.js"],"sourcesContent":["const proto = Array.prototype\n\nconst ARR = {\n\tcopy(arr) {\n\t\treturn proto.slice.call(arr, 0)\n\t},\n\tempty(arr) {\n\t\tarr.length = 0\n\t\treturn arr\n\t},\n\tequals(left, right) {\n\t\tif (!Array.isArray(right)) return false\n\t\tif (left === right) return true\n\t\tif (left.length !== right.length) return false\n\t\tfor (let i in left) if (left[i] !== right[i]) return false\n\t\treturn true\n\t},\n\tpop(arr) {\n\t\treturn proto.pop.call(arr)\n\t},\n\tpush(arr, ...items) {\n\t\treturn proto.push.apply(arr, items)\n\t},\n\tremove(arr, item) {\n\t\tconst index = proto.indexOf.call(arr, item)\n\t\tif (index > -1) {\n\t\t\tproto.splice.call(arr, index, 1)\n\t\t\treturn item\n\t\t}\n\t},\n\treverse(arr) {\n\t\treturn proto.reverse.call(arr)\n\t},\n\trightUnique(arr) {\n\t\tconst newArr = []\n\t\tfor (let i = 0; i < arr.length; i++) {\n\t\t\tfor (let j = i + 1; j < arr.length; j++) if (arr[i] === arr[j]) j = i += 1\n\t\t\tnewArr.push(arr[i])\n\t\t}\n\t\treturn newArr\n\t},\n\tshift(arr) {\n\t\treturn proto.shift.call(arr)\n\t},\n\tslice(arr, index, length) {\n\t\treturn proto.slice.call(arr, index, length)\n\t},\n\tsort(arr, fn) {\n\t\treturn proto.sort.call(arr, fn)\n\t},\n\tsplice(arr, ...args) {\n\t\treturn proto.splice.apply(arr, args)\n\t},\n\tunshift(arr, ...items) {\n\t\treturn proto.unshift.apply(arr, items)\n\t}\n}\n\nif (window.Set && Array.from) ARR.unique = arr => Array.from(new Set(arr))\nelse ARR.unique = ARR.rightUnique\n\nexport default ARR\n","const mixStr = (strs, ...exprs) => {\n\tlet string = ''\n\tfor (let i = 0; i < exprs.length; i++) string += (strs[i] + exprs[i])\n\treturn string + strs[strs.length - 1]\n}\n\nconst getVal = ({dataNode, _key}) => dataNode[_key]\n\nconst mixVal = (strs, ...exprs) => {\n\tif (!strs) return getVal(exprs[0])\n\tconst template = [strs]\n\ttemplate.push(...exprs.map(getVal))\n\treturn mixStr(...template)\n}\n\nexport { mixStr, mixVal }\n","// Enough for ef's usage, so no need for a full polyfill\nconst _assign = (ee, er) => {\n\tfor (let i in er) ee[i] = er[i]\n\treturn ee\n}\n\nconst assign = Object.assign || _assign\n\nexport { assign }\n","import ARR from './array-helper.js'\n\nconst query = []\nconst domQuery = []\nconst userQuery = []\nlet count = 0\n\nconst queue = handlers => query.push(...handlers)\nconst queueDom = handler => domQuery.push(handler)\nconst onNextRender = handler => userQuery.push(handler)\n\nconst inform = () => {\n\tcount += 1\n\treturn count\n}\n\nconst execModifications = () => {\n\tconst renderQuery = ARR.unique(query)\n\tfor (let i of renderQuery) i()\n\tif (process.env.NODE_ENV !== 'production') console.info('[EF]', `${query.length} modification operation(s) cached, ${renderQuery.length} executed.`)\n\tARR.empty(query)\n}\n\nconst execDomModifications = () => {\n\tconst domRenderQuery = ARR.rightUnique(domQuery)\n\tfor (let i of domRenderQuery) i()\n\tif (process.env.NODE_ENV !== 'production') console.info('[EF]', `${domQuery.length} DOM operation(s) cached, ${domRenderQuery.length} executed.`)\n\tARR.empty(domQuery)\n}\n\nconst execUserQuery = () => {\n\tif (userQuery.length === 0) return\n\tconst userFnQuery = ARR.unique(userQuery)\n\tfor (let i of userFnQuery) i()\n\tif (process.env.NODE_ENV !== 'production') console.info('[EF]', `${userQuery.length} user operation(s) cached, ${userFnQuery.length} executed.`)\n\tARR.empty(userQuery)\n}\n\nconst exec = (immediate) => {\n\tif (!immediate && (count -= 1) > 0) return count\n\tcount = 0\n\n\tif (query.length > 0) execModifications()\n\n\tif (domQuery.length > 0) execDomModifications()\n\n\t// Execute user query after DOM update\n\tif (userQuery.length > 0) setTimeout(execUserQuery, 0)\n\n\treturn count\n}\n\nconst bundle = (cb) => {\n\tinform()\n\treturn exec(cb(inform, exec))\n}\n\nexport { queue, queueDom, onNextRender, inform, exec, bundle }\n","import { assign } from './polyfills.js'\nimport { inform, exec } from './render-query.js'\n\nconst resolveAllPath = ({_path, handlers, subscribers, innerData}) => {\n\tfor (let i of _path) {\n\t\tif (!handlers[i]) handlers[i] = {}\n\t\tif (!subscribers[i]) subscribers[i] = {}\n\t\tif (!innerData[i]) innerData[i] = {}\n\t\thandlers = handlers[i]\n\t\tsubscribers = subscribers[i]\n\t\tinnerData = innerData[i]\n\t}\n\treturn {\n\t\thandlerNode: handlers,\n\t\tsubscriberNode: subscribers,\n\t\tdataNode: innerData\n\t}\n}\n\nconst resolveReactivePath = (_path, obj, enume) => {\n\tfor (let i of _path) {\n\t\tif (!obj[i]) {\n\t\t\tconst node = {}\n\t\t\tObject.defineProperty(obj, i, {\n\t\t\t\tget() {\n\t\t\t\t\treturn node\n\t\t\t\t},\n\t\t\t\tset(data) {\n\t\t\t\t\tinform()\n\t\t\t\t\tassign(node, data)\n\t\t\t\t\texec()\n\t\t\t\t},\n\t\t\t\tconfigurable: !enume,\n\t\t\t\tenumerable: enume\n\t\t\t})\n\t\t}\n\t\tobj = obj[i]\n\t}\n\treturn obj\n}\n\nconst resolve = ({ _path, _key, data, handlers, subscribers, innerData }) => {\n\tconst parentNode = resolveReactivePath(_path, data, true)\n\tconst {handlerNode, subscriberNode, dataNode} = resolveAllPath({_path, handlers, subscribers, innerData})\n\tif (!handlerNode[_key]) handlerNode[_key] = []\n\tif (!subscriberNode[_key]) subscriberNode[_key] = []\n\tif (!Object.prototype.hasOwnProperty.call(dataNode, _key)) dataNode[_key] = ''\n\treturn { parentNode, handlerNode: handlerNode[_key], subscriberNode: subscriberNode[_key], dataNode }\n}\n\nconst resolveSubscriber = (_path, subscribers) => {\n\tconst pathArr = _path.split('.')\n\tconst key = pathArr.pop()\n\tfor (let i of pathArr) {\n\t\tif (!subscribers[i]) subscribers[i] = {}\n\t\tsubscribers = subscribers[i]\n\t}\n\treturn subscribers[key]\n}\n\nexport { resolveReactivePath, resolve, resolveSubscriber }\n","import ARR from './array-helper.js'\nimport { resolve } from './resolver.js'\nimport { queue, inform, exec } from './render-query.js'\n\nconst initDataNode = ({parentNode, dataNode, handlerNode, subscriberNode, state, _key}) => {\n\tObject.defineProperty(parentNode, _key, {\n\t\tget() {\n\t\t\treturn dataNode[_key]\n\t\t},\n\t\tset(value) {\n\t\t\tif (dataNode[_key] === value) return\n\t\t\tdataNode[_key] = value\n\t\t\tqueue(handlerNode)\n\t\t\tinform()\n\t\t\tfor (let j of subscriberNode) j({state, value})\n\t\t\texec()\n\t\t},\n\t\tenumerable: true\n\t})\n}\n\nconst initBinding = ({bind, state, handlers, subscribers, innerData}) => {\n\tconst _path = ARR.copy(bind[0])\n\tconst _default = bind[1]\n\tconst _key = _path.pop()\n\tconst { parentNode, handlerNode, subscriberNode, dataNode } = resolve({\n\t\t_path,\n\t\t_key,\n\t\tdata: state.$data,\n\t\thandlers,\n\t\tsubscribers,\n\t\tinnerData\n\t})\n\n\t// Initlize data binding node if not exist\n\tif (!Object.prototype.hasOwnProperty.call(parentNode, _key)) initDataNode({parentNode, dataNode, handlerNode, subscriberNode, state, _key})\n\t// Update default value\n\tif (_default) parentNode[_key] = _default\n\n\treturn {dataNode, handlerNode, subscriberNode, _key}\n}\n\nexport default initBinding\n","/* Get new events that works in all target browsers\n * though a little bit old-fashioned\n */\nconst getEvent = (name, props = {\n\tbubbles: false,\n\tcancelable: false\n}) => {\n\tconst event = document.createEvent('Event')\n\tevent.initEvent(name, props.bubbles, props.cancelable)\n\treturn event\n}\n\nexport default getEvent\n","import ARR from './array-helper.js'\nimport { mixVal } from './literals-mix.js'\nimport initBinding from './binding.js'\nimport { queue, inform, exec } from './render-query.js'\nimport getEvent from './event-helper.js'\n\nconst checkValidType = obj => ['number', 'boolean', 'string'].indexOf(typeof obj) > -1\n\n// SVG tags require namespace to work properly\nconst createByTag = (tag, svg) => {\n\tif (svg) return document.createElementNS('http://www.w3.org/2000/svg', tag)\n\treturn document.createElement(tag)\n}\n\nconst getElement = ({tag, ref, refs, svg}) => {\n\tconst element = createByTag(tag, svg)\n\tif (ref) Object.defineProperty(refs, ref, {\n\t\tvalue: element,\n\t\tenumerable: true\n\t})\n\treturn element\n}\n\nconst regTmpl = ({val, state, handlers, subscribers, innerData, handler}) => {\n\tif (Array.isArray(val)) {\n\t\tconst [strs, ...exprs] = val\n\t\tconst tmpl = [strs]\n\t\tconst _handler = () => handler(mixVal(...tmpl))\n\t\ttmpl.push(...exprs.map((item) => {\n\t\t\tconst {dataNode, handlerNode, _key} = initBinding({bind: item, state, handlers, subscribers, innerData})\n\t\t\thandlerNode.push(_handler)\n\t\t\treturn {dataNode, _key}\n\t\t}))\n\t\treturn _handler\n\t}\n\treturn () => val\n}\n\nconst updateOthers = ({dataNode, handlerNode, subscriberNode, _handler, state, _key, value}) => {\n\tif (dataNode[_key] === value) return\n\tdataNode[_key] = value\n\tconst query = ARR.copy(handlerNode)\n\tARR.remove(query, _handler)\n\tqueue(query)\n\tinform()\n\tfor (let i of subscriberNode) i({state, value})\n\texec()\n}\n\nconst addValListener = ({_handler, state, handlers, subscribers, innerData, element, key, expr}) => {\n\tconst {dataNode, handlerNode, subscriberNode, _key} = initBinding({bind: expr, state, handlers, subscribers, innerData})\n\tconst _update = () => updateOthers({dataNode, handlerNode, subscriberNode, _handler, state, _key, value: element.value})\n\tif (key === 'value') {\n\t\t// Listen to input, keyup and change events in order to work in most browsers.\n\t\telement.addEventListener('input', _update, true)\n\t\telement.addEventListener('keyup', _update, true)\n\t\telement.addEventListener('change', _update, true)\n\t} else {\n\t\telement.addEventListener('change', () => {\n\t\t\t// Trigger change to the element it-self\n\t\t\telement.dispatchEvent(getEvent('ef-change-event'))\n\t\t\tif (element.tagName === 'INPUT' && element.type === 'radio' && element.name !== '') {\n\t\t\t\t// Trigger change to the the same named radios\n\t\t\t\tconst radios = document.querySelectorAll(`input[name=${element.name}]`)\n\t\t\t\tif (radios) {\n\t\t\t\t\tconst selected = ARR.copy(radios)\n\t\t\t\t\tARR.remove(selected, element)\n\n\t\t\t\t\t/* Event triggering could cause unwanted render triggers\n\t\t\t\t\t * no better ways came up at the moment\n\t\t\t\t\t */\n\t\t\t\t\tfor (let i of selected) i.dispatchEvent(getEvent('ef-change-event'))\n\t\t\t\t}\n\t\t\t}\n\t\t}, true)\n\t\t// Use custom event to avoid loops and conflicts\n\t\telement.addEventListener('ef-change-event', () => updateOthers({dataNode, handlerNode, subscriberNode, _handler, state, _key, value: element.checked}))\n\t}\n}\n\nconst getAttrHandler = (element, key) => {\n\tif (key === 'class') return (val) => {\n\t\tval = `${val}`.replace(/\\s+/g, ' ').trim()\n\t\t// Remove attribute when value is empty\n\t\tif (!val) return element.removeAttribute(key)\n\t\telement.setAttribute(key, val)\n\t}\n\treturn (val) => {\n\t\t// Remove attribute when value is empty\n\t\tif (val === '') return element.removeAttribute(key)\n\t\telement.setAttribute(key, val)\n\t}\n}\n\nconst addAttr = ({element, attr, key, state, handlers, subscribers, innerData}) => {\n\tif (checkValidType(attr)) element.setAttribute(key, attr)\n\telse {\n\t\tconst handler = getAttrHandler(element, key)\n\t\tqueue([regTmpl({val: attr, state, handlers, subscribers, innerData, handler})])\n\t}\n}\n\nconst addProp = ({element, prop, key, state, handlers, subscribers, innerData}) => {\n\tif (checkValidType(prop)) element[key] = prop\n\telse {\n\t\tconst handler = (val) => {\n\t\t\telement[key] = val\n\t\t}\n\t\tconst _handler = regTmpl({val: prop, state, handlers, subscribers, innerData, handler})\n\t\tif ((key === 'value' ||\n\t\t\tkey === 'checked') &&\n\t\t\t!prop[0]) addValListener({_handler, state, handlers, subscribers, innerData, element, key, expr: prop[1]})\n\t\tqueue([_handler])\n\t}\n}\n\n\nconst rawHandler = val => val\n\nconst addEvent = ({element, event, state, handlers, subscribers, innerData}) => {\n\n\t/**\n\t * l: listener\t\t\t\t\t\t\t\t\t: string\n\t * m: method : string\n\t * s: stopPropagation : number/undefined\n\t * i: stopImmediatePropagation : number/undefined\n\t * p: preventDefault : number/undefined\n\t * h: shiftKey : number/undefined\n\t * a: altKey : number/undefined\n\t * c: ctrlKey : number/undefined\n\t * t: metaKey : number/undefined\n\t * u: capture : number/undefined\n\t * k: keyCodes : array/undefined\n\t * v: value : string/array/undefined\n\t */\n\tconst {l, m, s, i, p, h, a, c, t, u, k, v} = event\n\tconst _handler = regTmpl({val: v, state, handlers, subscribers, innerData, handler: rawHandler})\n\telement.addEventListener(l, (e) => {\n\t\tif (!!h !== !!e.shiftKey ||\n\t\t\t!!a !== !!e.altKey ||\n\t\t\t!!c !== !!e.ctrlKey ||\n\t\t\t!!t !== !!e.metaKey ||\n\t\t\t(k && k.indexOf(e.which) === -1)) return\n\t\tif (s) e.stopPropagation()\n\t\tif (i) e.stopImmediatePropagation()\n\t\tif (p) e.preventDefault()\n\t\tif (state.$methods[m]) state.$methods[m]({e, value: _handler(), state})\n\t\telse if (process.env.NODE_ENV !== 'production') console.warn('[EF]', `Method named '${m}' not found! Value been passed is:`, _handler())\n\t}, !!u)\n}\n\nconst createElement = ({info, state, innerData, refs, handlers, subscribers, svg}) => {\n\n\t/**\n\t * t: tag : string\n\t * a: attr : object\n\t * p: prop : object\n\t * e: event : array\n\t * r: reference : string\n\t */\n\tconst {t, a, p, e, r} = info\n\tconst element = getElement({tag: t, ref: r, refs, svg})\n\tfor (let i in a) addAttr({element, attr: a[i], key: i, state, handlers, subscribers, innerData})\n\tfor (let i in p) addProp({element, prop: p[i], key: i, state, handlers, subscribers, innerData})\n\tfor (let i in e) addEvent({element, event: e[i], state, handlers, subscribers, innerData})\n\treturn element\n}\n\nexport default createElement\n","const proto = Node.prototype\n// const safeZone = document.createDocumentFragment()\n\nconst DOM = {\n\t// addClass(node, className) {\n\t// \tconst classes = className.split(' ')\n\t// \tnode.classList.add(...classes)\n\t// },\n\n\t// removeClass(node, className) {\n\t// \tconst classes = className.split(' ')\n\t// \tnode.classList.remove(...classes)\n\t// },\n\n\t// toggleClass(node, className) {\n\t// \tconst classes = className.split(' ')\n\t// \tconst classArr = node.className.split(' ')\n\t// \tfor (let i of classes) {\n\t// \t\tconst classIndex = classArr.indexOf(i)\n\t// \t\tif (classIndex > -1) {\n\t// \t\t\tclassArr.splice(classIndex, 1)\n\t// \t\t} else {\n\t// \t\t\tclassArr.push(i)\n\t// \t\t}\n\t// \t}\n\t// \tnode.className = classArr.join(' ').trim()\n\t// },\n\n\t// replaceWith(node, newNode) {\n\t// \tconst parent = node.parentNode\n\t// \tif (parent) proto.replaceChild.call(parent, newNode, node)\n\t// },\n\n\t// swap(node, newNode) {\n\t// \tconst nodeParent = node.parentNode\n\t// \tconst newNodeParent = newNode.parentNode\n\t// \tconst nodeSibling = node.nextSibling\n\t// \tconst newNodeSibling = newNode.nextSibling\n\t// \tif (nodeParent && newNodeParent) {\n\t// \t\tproto.insertBefore.call(nodeParent, newNode, nodeSibling)\n\t// \t\tproto.insertBefore.call(newNodeParent, node, newNodeSibling)\n\t// \t}\n\t// },\n\n\tbefore(node, ...nodes) {\n\t\tconst tempFragment = document.createDocumentFragment()\n\t\tnodes.reverse()\n\t\tfor (let i of nodes) proto.appendChild.call(tempFragment, i)\n\t\tproto.insertBefore.call(node.parentNode, tempFragment, node)\n\t},\n\n\tafter(node, ...nodes) {\n\t\tconst tempFragment = document.createDocumentFragment()\n\t\tfor (let i of nodes) proto.appendChild.call(tempFragment, i)\n\t\tif (node.nextSibling) proto.insertBefore.call(node.parentNode, tempFragment, node.nextSibling)\n\t\telse proto.appendChild.call(node.parentNode, tempFragment)\n\t},\n\n\tappend(node, ...nodes) {\n\t\tif ([1,9,11].indexOf(node.nodeType) === -1) return\n\t\tconst tempFragment = document.createDocumentFragment()\n\t\tfor (let i of nodes) proto.appendChild.call(tempFragment, i)\n\t\tproto.appendChild.call(node, tempFragment)\n\t},\n\n\t// prepend(node, ...nodes) {\n\t// \tif ([1,9,11].indexOf(node.nodeType) === -1) {\n\t// \t\treturn\n\t// \t}\n\t// \tconst tempFragment = document.createDocumentFragment()\n\t// \tnodes.reverse()\n\t// \tfor (let i of nodes) {\n\t// \t\tproto.appendChild.call(tempFragment, i)\n\t// \t}\n\t// \tif (node.firstChild) {\n\t// \t\tproto.insertBefore.call(node, tempFragment, node.firstChild)\n\t// \t} else {\n\t// \t\tproto.appendChild.call(node, tempFragment)\n\t// \t}\n\t// },\n\n\t// appendTo(node, newNode) {\n\t// \tproto.appendChild.call(newNode, node)\n\t// },\n\n\t// prependTo(node, newNode) {\n\t// \tif (newNode.firstChild) {\n\t// \t\tproto.insertBefore.call(newNode, node, node.firstChild)\n\t// \t} else {\n\t// \t\tproto.appendChild.call(newNode, node)\n\t// \t}\n\t// },\n\n\t// empty(node) {\n\t// \tnode.innerHTML = ''\n\t// },\n\n\tremove(node) {\n\t\tproto.removeChild.call(node.parentNode, node)\n\t},\n\n\t// safeRemove(node) {\n\t// \tproto.appendChild.call(safeZone, node)\n\t// }\n}\n\nexport default DOM\n","import DOM from './dom-helper.js'\nimport ARR from './array-helper.js'\nimport { inform, exec } from './render-query.js'\n\nconst DOMARR = {\n\tempty() {\n\t\tinform()\n\t\tfor (let i of ARR.copy(this)) i.$destroy()\n\t\texec()\n\t\tARR.empty(this)\n\t},\n\tpop() {\n\t\tif (this.length === 0) return\n\t\tconst poped = ARR.pop(this)\n\t\tpoped.$umount()\n\t\treturn poped\n\t},\n\tpush({state, key, anchor}, ...items) {\n\t\tconst elements = []\n\t\tinform()\n\t\tfor (let i of items) ARR.push(elements, i.$mount({parent: state, key}))\n\t\tif (this.length === 0) DOM.after(anchor, ...elements)\n\t\telse DOM.after(this[this.length - 1].__EFPLACEHOLDER__, ...elements)\n\t\texec()\n\t\treturn ARR.push(this, ...items)\n\t},\n\tremove(item) {\n\t\tif (this.indexOf(item) === -1) return\n\t\titem.$umount()\n\t\treturn item\n\t},\n\treverse({state, key, anchor}) {\n\t\tif (this.length === 0) return this\n\t\tconst tempArr = ARR.copy(this)\n\t\tconst elements = []\n\t\tinform()\n\t\tfor (let i = tempArr.length - 1; i >= 0; i--) {\n\t\t\ttempArr[i].$umount()\n\t\t\tARR.push(elements, tempArr[i].$mount({parent: state, key}))\n\t\t}\n\t\tARR.push(this, ...ARR.reverse(tempArr))\n\t\tDOM.after(anchor, ...elements)\n\t\texec()\n\t\treturn this\n\t},\n\tshift() {\n\t\tif (this.length === 0) return\n\t\tconst shifted = ARR.shift(this)\n\t\tshifted.$umount()\n\t\treturn shifted\n\t},\n\tsort({state, key, anchor}, fn) {\n\t\tif (this.length === 0) return this\n\t\tconst sorted = ARR.copy(ARR.sort(this, fn))\n\t\tconst elements = []\n\t\tinform()\n\t\tfor (let i of sorted) {\n\t\t\ti.$umount()\n\t\t\tARR.push(elements, i.$mount({parent: state, key}))\n\t\t}\n\t\tARR.push(this, ...sorted)\n\t\tDOM.after(anchor, ...elements)\n\t\texec()\n\t\treturn this\n\t},\n\tsplice(...args) {\n\t\tif (this.length === 0) return this\n\t\tconst spliced = ARR.splice(ARR.copy(this), ...args)\n\t\tinform()\n\t\tfor (let i of spliced) i.$umount()\n\t\texec()\n\t\treturn spliced\n\t},\n\tunshift({state, key, anchor}, ...items) {\n\t\tif (this.length === 0) return this.push(...items).length\n\t\tconst elements = []\n\t\tinform()\n\t\tfor (let i of items) {\n\t\t\tif (i.$parent) {\n\t\t\t\tif (process.env.NODE_ENV !== 'production') console.warn('[EF]', 'Better detach the component before attaching it to a new component!')\n\t\t\t\treturn\n\t\t\t}\n\t\t\ti.$umount()\n\t\t\tARR.push(elements, i.$mount({parent: state, key}))\n\t\t}\n\t\tDOM.after(anchor, ...elements)\n\t\texec()\n\t\treturn ARR.unshift(this, ...items)\n\t}\n}\n\nconst defineArr = (arr, info) => {\n\tObject.defineProperties(arr, {\n\t\tempty: {value: DOMARR.empty},\n\t\tpop: {value: DOMARR.pop},\n\t\tpush: {value: DOMARR.push.bind(arr, info)},\n\t\tremove: {value: DOMARR.remove},\n\t\treverse: {value: DOMARR.reverse.bind(arr, info)},\n\t\tshift: {value: DOMARR.shift},\n\t\tsort: {value: DOMARR.sort.bind(arr, info)},\n\t\tsplice: {value: DOMARR.splice},\n\t\tunshift: {value: DOMARR.unshift.bind(arr, info)}\n\t})\n\treturn arr\n}\n\nexport default defineArr\n","const typeOf = (obj) => {\n\tif (Array.isArray(obj)) return 'array'\n\treturn typeof obj\n}\n\nexport default typeOf\n","import createElement from './element-creator.js'\nimport DOM from './dom-helper.js'\nimport ARR from './array-helper.js'\nimport defineArr from './dom-arr-helper.js'\nimport typeOf from './type-of.js'\nimport initBinding from './binding.js'\nimport { queue, inform, exec } from './render-query.js'\n\nconst bindTextNode = ({node, state, handlers, subscribers, innerData, element}) => {\n\t// Data binding text node\n\tconst textNode = document.createTextNode('')\n\tconst { dataNode, handlerNode, _key } = initBinding({bind: node, state, handlers, subscribers, innerData})\n\tconst handler = () => {\n\t\ttextNode.textContent = dataNode[_key]\n\t}\n\thandlerNode.push(handler)\n\tqueue([handler])\n\n\t// Append element to the component\n\tDOM.append(element, textNode)\n}\n\nconst updateMountingNode = ({state, children, key, anchor, value}) => {\n\tif (children[key] === value) return\n\tif (value) {\n\t\tif (value.$parent && process.env.NODE_ENV !== 'production') console.warn('[EF]', 'Better detach the component before attaching it to a new component!')\n\t\tif (value.$element.contains(state.$element)) {\n\t\t\tif (process.env.NODE_ENV !== 'production') console.warn('[EF]', 'Cannot mount a component to it\\'s child component!')\n\t\t\treturn\n\t\t}\n\t}\n\n\tinform()\n\t// Update component\n\tif (children[key]) children[key].$umount()\n\t// Update stored value\n\tchildren[key] = value\n\tif (value) value.$mount({target: anchor, parent: state, option: 'before', key})\n\texec()\n}\n\nconst bindMountingNode = ({state, key, children, anchor}) => {\n\tObject.defineProperty(state, key, {\n\t\tget() {\n\t\t\treturn children[key]\n\t\t},\n\t\tset(value) {\n\t\t\tupdateMountingNode({state, children, key, anchor, value})\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t})\n}\n\nconst updateMountingList = ({state, children, key, anchor, value}) => {\n\tif (value) value = ARR.copy(value)\n\telse value = []\n\tconst fragment = document.createDocumentFragment()\n\t// Update components\n\tinform()\n\tif (children[key]) {\n\t\tfor (let j of value) {\n\t\t\tif (j.$element.contains(state.$element)) {\n\t\t\t\tif (process.env.NODE_ENV !== 'production') console.warn('[EF]', 'Cannot mount a component to it\\'s child component!')\n\t\t\t\treturn\n\t\t\t}\n\t\t\tj.$umount()\n\t\t\tDOM.append(fragment, j.$mount({parent: state, key}))\n\t\t}\n\t\tfor (let j of ARR.copy(children[key])) j.$umount()\n\t} else for (let j of value) DOM.append(fragment, j.$mount({parent: state, key}))\n\t// Update stored value\n\tchildren[key].length = 0\n\tARR.push(children[key], ...value)\n\t// Append to current component\n\tDOM.after(anchor, fragment)\n\texec()\n}\n\nconst bindMountingList = ({state, key, children, anchor}) => {\n\tchildren[key] = defineArr([], {state, key, anchor})\n\tObject.defineProperty(state, key, {\n\t\tget() {\n\t\t\treturn children[key]\n\t\t},\n\t\tset(value) {\n\t\t\tif (children[key] && ARR.equals(children[key], value)) return\n\t\t\tupdateMountingList({state, children, key, anchor, value})\n\t\t},\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t})\n}\n\nconst resolveAST = ({node, nodeType, element, state, innerData, refs, children, handlers, subscribers, svg, create}) => {\n\tswitch (nodeType) {\n\t\tcase 'string': {\n\t\t\t// Static text node\n\t\t\tDOM.append(element, document.createTextNode(node))\n\t\t\tbreak\n\t\t}\n\t\tcase 'array': {\n\t\t\tif (typeOf(node[0]) === 'object') DOM.append(element, create({node, state, innerData, refs, children, handlers, subscribers, svg, create}))\n\t\t\telse bindTextNode({node, state, handlers, subscribers, innerData, element})\n\t\t\tbreak\n\t\t}\n\t\tcase 'object': {\n\t\t\tconst anchor = document.createTextNode('')\n\t\t\tif (node.t === 0) bindMountingNode({state, key: node.n, children, anchor})\n\t\t\telse if (node.t === 1) bindMountingList({state, key: node.n, children, anchor})\n\t\t\telse throw new TypeError(`Not a standard ef.js AST: Unknown mounting point type '${node.t}'`)\n\t\t\t// Append anchor\n\t\t\tDOM.append(element, anchor)\n\t\t\t// Display anchor indicator in development mode\n\t\t\tif (process.env.NODE_ENV !== 'production') {\n\t\t\t\tDOM.before(anchor, document.createComment(`Start of mounting point '${node.n}'`))\n\t\t\t\tDOM.after(anchor, document.createComment(`End of mounting point '${node.n}'`))\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tdefault: {\n\t\t\tthrow new TypeError(`Not a standard ef.js AST: Unknown node type '${nodeType}'`)\n\t\t}\n\t}\n}\n\nconst create = ({node, state, innerData, refs, children, handlers, subscribers, svg, create}) => {\n\tconst [info, ...childNodes] = node\n\tif (!svg && info.t === 'svg') svg = true\n\t// First create an element according to the description\n\tconst element = createElement({info, state, innerData, refs, handlers, subscribers, svg})\n\n\t// Append child nodes\n\tfor (let i of childNodes) resolveAST({node: i, nodeType: typeOf(i), element, state, innerData, refs, children, handlers, subscribers, svg, create})\n\n\treturn element\n}\n\nexport default create\n","import create from './utils/creator.js'\nimport { resolveReactivePath, resolveSubscriber } from './utils/resolver.js'\nimport initBinding from './utils/binding.js'\nimport ARR from './utils/array-helper.js'\nimport DOM from './utils/dom-helper.js'\nimport { assign } from './utils/polyfills.js'\nimport { queueDom, inform, exec } from './utils/render-query.js'\n\nconst unsubscribe = (_path, fn, subscribers) => {\n\tconst subscriberNode = resolveSubscriber(_path, subscribers)\n\tARR.remove(subscriberNode, fn)\n}\n\nconst update = function(newState) {\n\tinform()\n\tconst tmpState = assign({}, newState)\n\tif (tmpState.$data) {\n\t\tassign(this.$data, tmpState.$data)\n\t\tdelete(tmpState.$data)\n\t}\n\tif (tmpState.$methods) {\n\t\tassign(this.$methods, tmpState.$methods)\n\t\tdelete(tmpState.$methods)\n\t}\n\tassign(this, tmpState)\n\texec()\n}\n\nconst destroy = function() {\n\tconst {$element, __EFPLACEHOLDER__} = this\n\tinform()\n\tthis.$umount()\n\tfor (let i in this) {\n\t\tthis[i] = null\n\t\tdelete this[i]\n\t}\n\t// Push DOM removement operation to query\n\tqueueDom(() => {\n\t\tDOM.remove($element)\n\t\tDOM.remove(__EFPLACEHOLDER__)\n\t})\n\n\t// Remove all references for memory recycling\n\tdelete this.$element\n\tdelete this.__EFPLACEHOLDER__\n\tdelete this.$parent\n\tdelete this.$key\n\tdelete this.$data\n\tdelete this.$methods\n\tdelete this.$refs\n\tdelete this.$mount\n\tdelete this.$umount\n\tdelete this.$subscribe\n\tdelete this.$unsubscribe\n\t// Render\n\treturn exec()\n}\n\nconst state = class {\n\tconstructor (ast) {\n\t\tconst children = {}\n\t\tconst refs = {}\n\t\tconst innerData = {}\n\t\tconst methods = {}\n\t\tconst handlers = {}\n\t\tconst subscribers = {}\n\t\tconst nodeInfo = {\n\t\t\tplaceholder: document.createTextNode(''),\n\t\t\treplace: [],\n\t\t\tparent: null,\n\t\t\tkey: null\n\t\t}\n\n\t\t/* Detatched components will be put in the safe zone.\n\t\t * Split safe zone to each component in order to make\n\t\t * the component memory recycleable when lost reference\n\t\t */\n\t\tconst safeZone = document.createDocumentFragment()\n\n\t\tif (process.env.NODE_ENV !== 'production') nodeInfo.placeholder = document.createComment('EF COMPONENT PLACEHOLDER')\n\n\t\tconst mount = () => {\n\t\t\tif (nodeInfo.replace.length > 0) {\n\t\t\t\tfor (let i of nodeInfo.replace) DOM.remove(i)\n\t\t\t\tARR.empty(nodeInfo.replace)\n\t\t\t}\n\t\t\tDOM.before(nodeInfo.placeholder, nodeInfo.element)\n\t\t}\n\n\t\tinform()\n\t\tObject.defineProperties(this, {\n\t\t\t$element: {\n\t\t\t\tget() {\n\t\t\t\t\treturn nodeInfo.element\n\t\t\t\t},\n\t\t\t\tconfigurable: true\n\t\t\t},\n\t\t\t__EFPLACEHOLDER__: {\n\t\t\t\tget() {\n\t\t\t\t\treturn nodeInfo.placeholder\n\t\t\t\t},\n\t\t\t\tconfigurable: true\n\t\t\t},\n\t\t\t$parent: {\n\t\t\t\tget() {\n\t\t\t\t\treturn nodeInfo.parent\n\t\t\t\t},\n\t\t\t\tconfigurable: true\n\t\t\t},\n\t\t\t$key: {\n\t\t\t\tget() {\n\t\t\t\t\treturn nodeInfo.key\n\t\t\t\t},\n\t\t\t\tconfigurable: true\n\t\t\t},\n\t\t\t$methods: {\n\t\t\t\tget() {\n\t\t\t\t\treturn methods\n\t\t\t\t},\n\t\t\t\tset(newMethods) {\n\t\t\t\t\tassign(methods, newMethods)\n\t\t\t\t},\n\t\t\t\tconfigurable: true\n\t\t\t},\n\t\t\t$refs: {\n\t\t\t\tvalue: refs,\n\t\t\t\tconfigurable: true\n\t\t\t},\n\t\t\t$mount: {\n\t\t\t\tvalue: function({target, option, parent, key}) {\n\t\t\t\t\tif (typeof target === 'string') target = document.querySelector(target)\n\n\t\t\t\t\tinform()\n\t\t\t\t\tif (nodeInfo.parent) {\n\t\t\t\t\t\tthis.$umount()\n\t\t\t\t\t\tif (process.env.NODE_ENV !== 'production') console.warn('[EF]', 'Component detached from previous mounting point.')\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!parent) parent = target\n\t\t\t\t\tif (!key) key = '__DIRECTMOUNT__'\n\t\t\t\t\tnodeInfo.parent = parent\n\t\t\t\t\tnodeInfo.key = key\n\t\t\t\t\tqueueDom(mount)\n\n\t\t\t\t\tif (!target) {\n\t\t\t\t\t\texec()\n\t\t\t\t\t\treturn nodeInfo.placeholder\n\t\t\t\t\t}\n\n\t\t\t\t\tswitch (option) {\n\t\t\t\t\t\tcase 'before': {\n\t\t\t\t\t\t\tDOM.before(target, nodeInfo.placeholder)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase 'after': {\n\t\t\t\t\t\t\tDOM.after(target, nodeInfo.placeholder)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase 'replace': {\n\t\t\t\t\t\t\tDOM.before(target, nodeInfo.placeholder)\n\t\t\t\t\t\t\tnodeInfo.replace.push(target)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\tDOM.append(target, nodeInfo.placeholder)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn exec()\n\t\t\t\t},\n\t\t\t\tconfigurable: true\n\t\t\t},\n\t\t\t$umount: {\n\t\t\t\tvalue: function() {\n\t\t\t\t\tconst {parent, key} = nodeInfo\n\t\t\t\t\tnodeInfo.parent = null\n\t\t\t\t\tnodeInfo.key = null\n\n\t\t\t\t\tinform()\n\t\t\t\t\tif (parent && key !== '__DIRECTMOUNT__' && parent[key]) {\n\t\t\t\t\t\tif (Array.isArray(parent[key])) ARR.remove(parent[key], this)\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tparent[key] = null\n\t\t\t\t\t\t\treturn exec()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tDOM.append(safeZone, nodeInfo.placeholder)\n\t\t\t\t\tqueueDom(mount)\n\t\t\t\t\treturn exec()\n\t\t\t\t},\n\t\t\t\tconfigurable: true\n\t\t\t},\n\t\t\t$subscribe: {\n\t\t\t\tvalue: (pathStr, subscriber) => {\n\t\t\t\t\tconst _path = pathStr.split('.')\n\t\t\t\t\tconst { dataNode, subscriberNode, _key } = initBinding({bind: [_path], state: this, handlers, subscribers, innerData})\n\t\t\t\t\t// Execute subscriber immediately\n\t\t\t\t\tsubscriber({state: this, value: dataNode[_key]})\n\t\t\t\t\tsubscriberNode.push(subscriber)\n\t\t\t\t},\n\t\t\t\tconfigurable: true\n\t\t\t},\n\t\t\t$unsubscribe: {\n\t\t\t\tvalue: (_path, fn) => {\n\t\t\t\t\tunsubscribe(_path, fn, subscribers)\n\t\t\t\t},\n\t\t\t\tconfigurable: true\n\t\t\t}\n\t\t})\n\t\t// Init root data node\n\t\tresolveReactivePath(['$data'], this, false)\n\n\t\tnodeInfo.element = create({node: ast, state: this, innerData, refs, children, handlers, subscribers, svg: false, create})\n\t\tDOM.append(safeZone, nodeInfo.placeholder)\n\t\tqueueDom(mount)\n\t\texec()\n\t}\n}\n\n// Add $update and $destroy method\nObject.defineProperties(state.prototype, {\n\t$update: {value: update},\n\t$destroy: {value: destroy}\n})\n\nexport default state\n","// Import everything\nimport state from './lib/renderer.js'\nimport { onNextRender, inform, exec, bundle } from './lib/utils/render-query.js'\nimport { version } from '../package.json'\n\nconst create = (value) => {\n\tconst ast = value\n\tconst ef = class extends state {\n\t\tconstructor(newState) {\n\t\t\tinform()\n\t\t\tsuper(ast)\n\t\t\tif (newState) this.$update(newState)\n\t\t\texec()\n\t\t}\n\t}\n\treturn ef\n}\n\nexport { create, onNextRender, inform, exec, bundle, version }\n\nif (process.env.NODE_ENV !== 'production') console.info('[EF]', `ef-core v${version} initialized!`)\n"],"names":["const","let","i","proto","this","j","create","super"],"mappings":"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"} \ No newline at end of file diff --git a/test/ef.min.js b/test/ef.min.js deleted file mode 100644 index e23f831..0000000 --- a/test/ef.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.ef=t()}(this,function(){"use strict";var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=function(e,t){return t={exports:{}},e(t,t.exports),t.exports}(function(t){!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof t&&t.exports?t.exports=n():e.log=n()}(e,function(){function e(e){return typeof console!==s&&(void 0!==console[e]?t(console,e):void 0!==console.log?t(console,"log"):i)}function t(e,t){var n=e[t];if("function"==typeof n.bind)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch(t){return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function n(e,t,n){return function(){typeof console!==s&&(r.call(this,t,n),this[e].apply(this,arguments))}}function r(e,t){for(var n=this,r=0;r=0&&t<=c.levels.SILENT))throw"log.setLevel() called with invalid level: "+t;if(l=t,n!==!1&&o(t),r.call(c,t,e),typeof console===s&&t#%@.-+".split(""),T="attached data element refs methods subscribe unsubscribe update destroy".split(" ").map(function(e){return"$"+e}),R=function(e,t){return void 0===t&&(t=-2),"Failed to parse eft template: "+e+". at line "+(t+1)},S=function(e){return!e.replace(/\s/,"")},j=function(e,t){null===t.offset&&(t.offset=e.match(/\s*/)[0],t.offset&&(t.offsetReg=new RegExp("^"+t.offset)))},O=function(e,t,n){if(t.offsetReg){var r=!1;if(e=e.replace(t.offsetReg,function(){return r=!0,""}),!r)throw new SyntaxError(R("Expected indent to be grater than 0 and less than "+(t.prevDepth+1)+", but got -1",n))}return e},C=function(e,t){if(!t.indentReg){var n=e.match(/^(\t*)( *).*/)[2];n&&(t.indentReg=new RegExp(n))}},_=function(e,t,n){var r=0;t.indentReg&&(e=e.replace(/^\s*/,function(e){return e.replace(t.indentReg,"\t")}));var a=e.replace(/^\t*/,function(e){return r=e.length,""});if(/^\s/.test(a))throw new SyntaxError(R("Bad indent",n));return{depth:r,content:a}},L=function(e,t){for(var n=e,r=0;r0&&(t.k=n),t},G=function(e){var t=e.split(":"),n=t[0],r=t.slice(1),a=r.join(":");return a?[n.trim(),I(a)]:[n.trim()]},Y=function(e){var t=e.line,n=e.ast,r=e.parsingInfo,a=e.i;if(!S(t)){C(t,r),j(t,r);var o=_(O(t,r,a),r,a),i=o.depth,s=o.content;if(s){if(i<0||i-r.prevDepth>1||i-r.prevDepth==1&&["comment","tag"].indexOf(r.prevType)===-1||"comment"!==r.prevType&&0===i&&r.topExists)throw new SyntaxError(R("Expected indent to be grater than 0 and less than "+(r.prevDepth+1)+", but got "+i,a));var u=s[0];if(s=s.slice(1),!r.topExists&&k.indexOf(u)>=0&&">"!==u)throw new SyntaxError(R("No top level entry",a));if(!s&&k.indexOf(u)>=0)throw new SyntaxError(R("Empty content",a));switch((i":r.topExists||(r.topExists=!0,r.minDepth=i);var l=q(s),c=[{t:l.tag}];l.class&&(c[0].a={},c[0].a.class=l.class),l.ref&&(c[0].r=l.ref),r.currentNode.push(c),r.currentNode=c,r.prevType="tag";break;case"#":var f=B(s),p=f.name,d=f.value;r.currentNode[0].a||(r.currentNode[0].a={}),r.currentNode[0].a[p]=d,r.prevType="attr";break;case"%":var h=B(s),v=h.name,b=h.value;r.currentNode[0].p||(r.currentNode[0].p={}),r.currentNode[0].p[v]=b,r.prevType="prop";break;case"@":var g=K(s),m=g.name,y=g.value;r.currentNode[0].e||(r.currentNode[0].e=[]);var w=z(m),N=G(y),x=N[0],$=N[1];w.m=x,$&&(w.v=$),r.currentNode[0].e.push(w),r.prevType="event";break;case".":(E=r.currentNode).push.apply(E,F(s)),r.prevType="text";break;case"-":if(T.indexOf(s)!==-1)throw new SyntaxError(R("Reserved name '"+s+"' should not be used",a));r.currentNode.push({n:s,t:0}),r.prevType="node";break;case"+":r.currentNode.push({n:s,t:1}),r.prevType="list";break;default:r.prevType="comment"}}var E}},H=function(e){if(!e)throw new TypeError(R("Template required, but nothing present"));var t=typeof e;if("string"!==t)throw new TypeError(R("Expected a string, but got a(n) "+t));for(var n=e.split(/\r?\n/),r=[],a={indentReg:null,prevDepth:0,offset:null,offsetReg:null,prevType:"comment",currentNode:r,topExists:!1},o=0;o0;)t[n]=arguments[n+1];return Q.push.apply(e,t)},remove:function(e,t){var n=Q.indexOf.call(e,t);if(n>-1)return Q.splice.call(e,n,1),t},reverse:function(e){return Q.reverse.call(e)},shift:function(e){return Q.shift.call(e)},slice:function(e,t,n){return Q.slice.call(e,t,n)},sort:function(e,t){return Q.sort.call(e,t)},splice:function(e){for(var t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];return Q.splice.apply(e,t)},unique:function(e){for(var t=[],n=0;n0;)t[n]=arguments[n+1];return Q.unshift.apply(e,t)}};window.Set&&(V.unique=function(e){return Array.from(new Set(e))});var X=function(e){for(var t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];for(var r="",a=0;a0;)t[n]=arguments[n+1];if(!e)return Z(t[0]);var r=[e];return r.push.apply(r,t.map(Z)),X.apply(void 0,r)},te=function(e,t){for(var n in t)e[n]=t[n];return e},ne=Object.assign||te,re=[],ae=0,oe=function(e){return re.push.apply(re,e)},ie=function(){return ae+=1},se=function(e){if(!e&&(ae-=1)>0)return ae;ae=0;for(var t=V.unique(re),n=0,r=t;n0;)t[n]=arguments[n+1];var r=document.createDocumentFragment();t.reverse();for(var a=0,o=t;a0;)t[n]=arguments[n+1];for(var r=document.createDocumentFragment(),a=0,o=t;a0;)t[n]=arguments[n+1];if([1,9,11].indexOf(e.nodeType)!==-1){for(var r=document.createDocumentFragment(),a=0,o=t;a0;)t[n]=arguments[n+1];for(var r=[],a=0,o=t;a=0;r--)V.push(n,e[r].$element);return De.after.apply(De,[t].concat(n)),De.remove(t),V.reverse(this)},shift:function(){if(0!==this.length){var e=V.shift(this);return De.remove(e.$element),e}},sort:function(e){var t=this;if(0===this.length)return this;var n=document.createTextNode("");De.before(this[0].$element,n);for(var r=V.sort(this,e),a=[],o=0,i=t;o {\n\tthrow new SyntaxError('Octal escape sequences are not allowed in EFML.')\n}\n\n// Escape unicode code point sequence\nconst UC2C = (val) => {\n\tval = val.substr(3, val.length - 4)\n\tval = parseInt(val, 16)\n\tif (!val) throw new SyntaxError('Invalid Unicode escape sequence')\n\ttry {\n\t\treturn String.fromCodePoint(val)\n\t} catch (err) {\n\t\tthrow new SyntaxError('Undefined Unicode code-point')\n\t}\n}\n\n// Escape unicode sequence\nconst U2C = (val) => {\n\tval = val.substring(2)\n\tval = parseInt(val, 16)\n\tif (!val) throw new SyntaxError('Invalid Unicode escape sequence')\n\treturn String.fromCharCode(val)\n}\n\n// Escape hexadecimal sequence\nconst X2C = (val) => {\n\tval = `00${val.substring(2)}`\n\tval = parseInt(val, 16)\n\tif (!val) throw new SyntaxError('Invalid hexadecimal escape sequence')\n\treturn String.fromCharCode(val)\n}\n\nconst ESCAPE = (string) => {\n\t// Split strings\n\tconst splited = string.split(char + char)\n\tconst escaped = []\n\n\t// Escape all known escape characters\n\tfor (let i of splited) {\n\t\tconst escapedStr = i\n\t\t\t.replace(oct, O2C)\n\t\t\t.replace(ucp, UC2C)\n\t\t\t.replace(uni, U2C)\n\t\t\t.replace(hex, X2C)\n\t\t\t.replace(b, '\\b')\n\t\t\t.replace(t, '\\t')\n\t\t\t.replace(n, '\\n')\n\t\t\t.replace(v, '\\v')\n\t\t\t.replace(f, '\\f')\n\t\t\t.replace(r, '\\r')\n\t\t\t// Remove all useless escape characters\n\t\t\t.replace(esc, '')\n\t\tescaped.push(escapedStr)\n\t}\n\t// Return escaped string\n\treturn escaped.join(char)\n}\n\n// export default ESCAPE\nexport default ESCAPE\n","import ESCAPE from './escape-parser.js'\n\nconst typeSymbols = '>#%@.-+'.split('')\nconst reserved = '__EFPLACEHOLDER__ $parent $key $data $element $refs $methods $mount $umount $subscribe $unsubscribe $update $destroy __DIRECTMOUNT__'.split(' ')\nconst mustache = /\\{\\{.+?\\}\\}/g\nconst spaceIndent = /^(\\t*)( *).*/\nconst hashref = /#([^}]|}[^}])*$/\n\nconst getErrorMsg = (msg, line = -2) => `Failed to parse eft template: ${msg}. at line ${line + 1}`\n\nconst isEmpty = string => !string.replace(/\\s/, '')\n\nconst getOffset = (string, parsingInfo) => {\n\tif (parsingInfo.offset !== null) return\n\tparsingInfo.offset = string.match(/\\s*/)[0]\n\tif (parsingInfo.offset) parsingInfo.offsetReg = new RegExp(`^${parsingInfo.offset}`)\n}\n\nconst removeOffset = (string, parsingInfo, i) => {\n\tif (parsingInfo.offsetReg) {\n\t\tlet removed = false\n\t\tstring = string.replace(parsingInfo.offsetReg, () => {\n\t\t\tremoved = true\n\t\t\treturn ''\n\t\t})\n\t\tif (!removed) throw new SyntaxError(getErrorMsg(`Expected indent to be grater than 0 and less than ${parsingInfo.prevDepth + 1}, but got -1`, i))\n\t}\n\treturn string\n}\n\nconst getIndent = (string, parsingInfo) => {\n\tif (parsingInfo.indentReg) return\n\tconst spaces = string.match(spaceIndent)[2]\n\tif (spaces) {\n\t\tparsingInfo.indentReg = new RegExp(spaces, 'g')\n\t}\n}\n\nconst getDepth = (string, parsingInfo, i) => {\n\tlet depth = 0\n\tif (parsingInfo.indentReg) string = string.replace(/^\\s*/, str => str.replace(parsingInfo.indentReg, '\\t'))\n\tconst content = string.replace(/^\\t*/, (str) => {\n\t\tdepth = str.length\n\t\treturn ''\n\t})\n\tif (/^\\s/.test(content)) throw new SyntaxError(getErrorMsg('Bad indent', i))\n\treturn { depth, content }\n}\n\nconst resolveDepth = (ast, depth) => {\n\tlet currentNode = ast\n\tfor (let i = 0; i < depth; i++) currentNode = currentNode[currentNode.length - 1]\n\treturn currentNode\n}\n\nconst splitDefault = (string) => {\n\tstring = string.slice(2, string.length - 2)\n\tconst [_path, ..._default] = string.split('=')\n\tconst pathArr = _path.trim().split('.')\n\tconst defaultVal = ESCAPE(_default.join('=').trim())\n\tif (defaultVal) return [pathArr, defaultVal]\n\treturn [pathArr]\n}\n\nconst splitLiterals = (string) => {\n\tconst strs = string.split(mustache)\n\tif (strs.length === 1) return ESCAPE(string)\n\tconst tmpl = []\n\tif (strs.length === 2 && !strs[0] && !strs[1]) tmpl.push(0)\n\telse tmpl.push(strs.map(ESCAPE))\n\tconst mustaches = string.match(mustache)\n\tif (mustaches) tmpl.push(...mustaches.map(splitDefault))\n\treturn tmpl\n}\n\nconst pushStr = (textArr, str) => {\n\tif (str) textArr.push(str)\n}\n\nconst parseText = (string) => {\n\tconst result = splitLiterals(string)\n\tif (typeof result === 'string') return [result]\n\tconst [strs, ...exprs] = result\n\tconst textArr = []\n\tfor (let i = 0; i < exprs.length; i++) {\n\t\tpushStr(textArr, strs[i])\n\t\ttextArr.push(exprs[i])\n\t}\n\tpushStr(textArr, strs[strs.length - 1])\n\treturn textArr\n}\n\nconst dotToSpace = val => val.replace(/\\./g, ' ')\n\nconst parseTag = (string) => {\n\tconst tagInfo = {}\n\tconst [tag, ...content] = string.replace(hashref, (val) => {\n\t\ttagInfo.ref = val.slice(1)\n\t\treturn ''\n\t}).split('.')\n\ttagInfo.tag = tag\n\ttagInfo.class = splitLiterals(content.join('.'))\n\tif (typeof tagInfo.class === 'string') tagInfo.class = dotToSpace(tagInfo.class).trim()\n\telse if (tagInfo.class[0]) tagInfo.class[0] = tagInfo.class[0].map(dotToSpace)\n\treturn tagInfo\n}\n\nconst parseNodeProps = (string) => {\n\tconst splited = string.split('=')\n\treturn {\n\t\tname: splited.shift().trim(),\n\t\tvalue: splitLiterals(splited.join('=').trim())\n\t}\n}\n\nconst parseEvent = (string) => {\n\tconst splited = string.split('=')\n\treturn {\n\t\tname: splited.shift().trim(),\n\t\tvalue: splited.join('=').trim()\n\t}\n}\n\nconst setOption = (options, option) => {\n\tswitch (option) {\n\t\tcase 'stop': {\n\t\t\toptions.s = 1\n\t\t\tbreak\n\t\t}\n\t\tcase 'stopImmediate': {\n\t\t\toptions.i = 1\n\t\t\tbreak\n\t\t}\n\t\tcase 'prevent': {\n\t\t\toptions.p = 1\n\t\t\tbreak\n\t\t}\n\t\tcase 'shift': {\n\t\t\toptions.h = 1\n\t\t\tbreak\n\t\t}\n\t\tcase 'alt': {\n\t\t\toptions.a = 1\n\t\t\tbreak\n\t\t}\n\t\tcase 'ctrl': {\n\t\t\toptions.c = 1\n\t\t\tbreak\n\t\t}\n\t\tcase 'meta': {\n\t\t\toptions.t = 1\n\t\t\tbreak\n\t\t}\n\t\tcase 'capture': {\n\t\t\toptions.u = 1\n\t\t\tbreak\n\t\t}\n\t\tdefault: {\n\t\t\tconsole.warn(`Abandoned unsupported event option '${option}'.`)\n\t\t}\n\t}\n}\n\nconst getOption = (options, keys, option) => {\n\tconst keyCode = parseInt(option, 10)\n\tif (isNaN(keyCode)) return setOption(options, option)\n\tkeys.push(keyCode)\n}\n\nconst getEventOptions = (name) => {\n\tconst options = {}\n\tconst keys = []\n\tconst [listener, ...ops] = name.split('.')\n\toptions.l = listener\n\tfor (let i of ops) getOption(options, keys, i)\n\tif (keys.length > 0) options.k = keys\n\treturn options\n}\n\nconst splitEvents = (string) => {\n\tconst [name, ...value] = string.split(':')\n\tconst content = value.join(':')\n\tif (content) return [name.trim(), splitLiterals(content)]\n\treturn [name.trim()]\n}\n\nconst parseLine = ({line, ast, parsingInfo, i}) => {\n\tif (isEmpty(line)) return\n\tgetIndent(line, parsingInfo)\n\tgetOffset(line, parsingInfo)\n\n\tlet { depth, content } = getDepth(removeOffset(line, parsingInfo, i), parsingInfo, i)\n\n\tif (content) {\n\t\tif (depth < 0 || depth - parsingInfo.prevDepth > 1 || (depth - parsingInfo.prevDepth === 1 && ['comment', 'tag'].indexOf(parsingInfo.prevType) === -1) || (parsingInfo.prevType !== 'comment' && depth === 0 && parsingInfo.topExists)) throw new SyntaxError(getErrorMsg(`Expected indent to be grater than 0 and less than ${parsingInfo.prevDepth + 1}, but got ${depth}`, i))\n\t\tconst type = content[0]\n\t\tcontent = content.slice(1)\n\t\tif (!parsingInfo.topExists && typeSymbols.indexOf(type) >= 0 && type !== '>') throw new SyntaxError(getErrorMsg('No top level entry', i))\n\t\tif (!content && typeSymbols.indexOf(type) >= 0) throw new SyntaxError(getErrorMsg('Empty content', i))\n\t\t// Jump back to upper level\n\t\tif (depth < parsingInfo.prevDepth || (depth === parsingInfo.prevDepth && parsingInfo.prevType === 'tag')) parsingInfo.currentNode = resolveDepth(ast, depth)\n\t\tparsingInfo.prevDepth = depth\n\n\t\tswitch (type) {\n\t\t\tcase '>': {\n\t\t\t\tif (!parsingInfo.topExists) {\n\t\t\t\t\tparsingInfo.topExists = true\n\t\t\t\t\tparsingInfo.minDepth = depth\n\t\t\t\t}\n\t\t\t\tconst info = parseTag(content)\n\t\t\t\tconst newNode = [{\n\t\t\t\t\tt: info.tag\n\t\t\t\t}]\n\t\t\t\tif (info.class) {\n\t\t\t\t\tnewNode[0].a = {}\n\t\t\t\t\tnewNode[0].a.class = info.class\n\t\t\t\t}\n\t\t\t\tif (info.ref) newNode[0].r = info.ref\n\t\t\t\tparsingInfo.currentNode.push(newNode)\n\t\t\t\tparsingInfo.currentNode = newNode\n\t\t\t\tparsingInfo.prevType = 'tag'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase '#': {\n\t\t\t\tconst { name, value } = parseNodeProps(content)\n\t\t\t\tif (!parsingInfo.currentNode[0].a) parsingInfo.currentNode[0].a = {}\n\t\t\t\tparsingInfo.currentNode[0].a[name] = value\n\t\t\t\tparsingInfo.prevType = 'attr'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase '%': {\n\t\t\t\tconst { name, value } = parseNodeProps(content)\n\t\t\t\tif (!parsingInfo.currentNode[0].p) parsingInfo.currentNode[0].p = {}\n\t\t\t\tparsingInfo.currentNode[0].p[name] = value\n\t\t\t\tparsingInfo.prevType = 'prop'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase '@': {\n\t\t\t\tconst { name, value } = parseEvent(content)\n\t\t\t\tif (!parsingInfo.currentNode[0].e) parsingInfo.currentNode[0].e = []\n\t\t\t\tconst options = getEventOptions(name)\n\t\t\t\tconst [method, _value] = splitEvents(value)\n\t\t\t\toptions.m = method\n\t\t\t\tif (_value) options.v = _value\n\t\t\t\tparsingInfo.currentNode[0].e.push(options)\n\t\t\t\tparsingInfo.prevType = 'event'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase '.': {\n\t\t\t\tparsingInfo.currentNode.push(...parseText(content))\n\t\t\t\tparsingInfo.prevType = 'text'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase '-': {\n\t\t\t\tif (reserved.indexOf(content) !== -1) throw new SyntaxError(getErrorMsg(`Reserved name '${content}' should not be used`, i))\n\t\t\t\tparsingInfo.currentNode.push({\n\t\t\t\t\tn: content,\n\t\t\t\t\tt: 0\n\t\t\t\t})\n\t\t\t\tparsingInfo.prevType = 'node'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase '+': {\n\t\t\t\tparsingInfo.currentNode.push({\n\t\t\t\t\tn: content,\n\t\t\t\t\tt: 1\n\t\t\t\t})\n\t\t\t\tparsingInfo.prevType = 'list'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tparsingInfo.prevType = 'comment'\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst parseEft = (template) => {\n\tif (!template) throw new TypeError(getErrorMsg('Template required, but nothing present'))\n\tconst tplType = typeof template\n\tif (tplType !== 'string') throw new TypeError(getErrorMsg(`Expected a string, but got a(n) ${tplType}`))\n\tconst lines = template.split(/\\r?\\n/)\n\tconst ast = []\n\tconst parsingInfo = {\n\t\tindentReg: null,\n\t\tprevDepth: 0,\n\t\toffset: null,\n\t\toffsetReg: null,\n\t\tprevType: 'comment',\n\t\tcurrentNode: ast,\n\t\ttopExists: false,\n\t}\n\tfor (let i = 0; i < lines.length; i++) parseLine({line: lines[i], ast, parsingInfo, i})\n\n\tif (ast[0]) return ast[0]\n\tthrow new SyntaxError(getErrorMsg('Nothing to be parsed', lines.length - 1))\n}\n\nexport default parseEft\n"],"names":["const","let","name","value"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"eft-parser.dev.js","sources":["../src/escape-parser.js","../src/eft-parser.js"],"sourcesContent":["// Set the escape character\nconst char = '&'\n\n// Initlize RegExp\nconst oct = new RegExp(`\\\\${char}[0-7]{1,3}`, 'g')\nconst ucp = new RegExp(`\\\\${char}u\\\\[.*?\\\\]`, 'g')\nconst uni = new RegExp(`\\\\${char}u.{0,4}`, 'g')\nconst hex = new RegExp(`\\\\${char}x.{0,2}`, 'g')\nconst esc = new RegExp(`\\\\${char}`, 'g')\nconst b = new RegExp(`\\\\${char}b`, 'g')\nconst t = new RegExp(`\\\\${char}t`, 'g')\nconst n = new RegExp(`\\\\${char}n`, 'g')\nconst v = new RegExp(`\\\\${char}v`, 'g')\nconst f = new RegExp(`\\\\${char}f`, 'g')\nconst r = new RegExp(`\\\\${char}r`, 'g')\n\n// Escape octonary sequence\nconst O2C = () => {\n\tthrow new SyntaxError('Octal escape sequences are not allowed in EFML.')\n}\n\n// Escape unicode code point sequence\nconst UC2C = (val) => {\n\tval = val.substr(3, val.length - 4)\n\tval = parseInt(val, 16)\n\tif (!val) throw new SyntaxError('Invalid Unicode escape sequence')\n\ttry {\n\t\treturn String.fromCodePoint(val)\n\t} catch (err) {\n\t\tthrow new SyntaxError('Undefined Unicode code-point')\n\t}\n}\n\n// Escape unicode sequence\nconst U2C = (val) => {\n\tval = val.substring(2)\n\tval = parseInt(val, 16)\n\tif (!val) throw new SyntaxError('Invalid Unicode escape sequence')\n\treturn String.fromCharCode(val)\n}\n\n// Escape hexadecimal sequence\nconst X2C = (val) => {\n\tval = `00${val.substring(2)}`\n\tval = parseInt(val, 16)\n\tif (!val) throw new SyntaxError('Invalid hexadecimal escape sequence')\n\treturn String.fromCharCode(val)\n}\n\nconst ESCAPE = (string) => {\n\t// Split strings\n\tconst splited = string.split(char + char)\n\tconst escaped = []\n\n\t// Escape all known escape characters\n\tfor (let i of splited) {\n\t\tconst escapedStr = i\n\t\t\t.replace(oct, O2C)\n\t\t\t.replace(ucp, UC2C)\n\t\t\t.replace(uni, U2C)\n\t\t\t.replace(hex, X2C)\n\t\t\t.replace(b, '\\b')\n\t\t\t.replace(t, '\\t')\n\t\t\t.replace(n, '\\n')\n\t\t\t.replace(v, '\\v')\n\t\t\t.replace(f, '\\f')\n\t\t\t.replace(r, '\\r')\n\t\t\t// Remove all useless escape characters\n\t\t\t.replace(esc, '')\n\t\tescaped.push(escapedStr)\n\t}\n\t// Return escaped string\n\treturn escaped.join(char)\n}\n\n// export default ESCAPE\nexport default ESCAPE\n","import efEscape from './escape-parser.js'\n\nconst typeSymbols = '>#%@.-+'.split('')\nconst reserved = '__EFPLACEHOLDER__ $parent $key $data $element $refs $methods $mount $umount $subscribe $unsubscribe $update $destroy __DIRECTMOUNT__'.split(' ')\nconst mustache = /\\{\\{.+?\\}\\}/g\nconst spaceIndent = /^(\\t*)( *).*/\nconst hashref = /#([^}]|}[^}])*$/\n\nconst getErrorMsg = (msg, line = -2) => `Failed to parse eft template: ${msg}. at line ${line + 1}`\n\nconst isEmpty = string => !string.replace(/\\s/, '')\n\nconst checkValidType = obj => ['number', 'boolean', 'string'].indexOf(typeof obj) > -1\n\nconst ESCAPE = (string) => {\n\ttry {\n\t\tconst parsed = JSON.parse(string)\n\t\tif (['number', 'boolean'].indexOf(typeof parsed) === -1) return efEscape(string)\n\t\treturn parsed\n\t} catch (e) {\n\t\treturn efEscape(string)\n\t}\n}\n\nconst getOffset = (string, parsingInfo) => {\n\tif (parsingInfo.offset !== null) return\n\tparsingInfo.offset = string.match(/\\s*/)[0]\n\tif (parsingInfo.offset) parsingInfo.offsetReg = new RegExp(`^${parsingInfo.offset}`)\n}\n\nconst removeOffset = (string, parsingInfo, i) => {\n\tif (parsingInfo.offsetReg) {\n\t\tlet removed = false\n\t\tstring = string.replace(parsingInfo.offsetReg, () => {\n\t\t\tremoved = true\n\t\t\treturn ''\n\t\t})\n\t\tif (!removed) throw new SyntaxError(getErrorMsg(`Expected indent to be grater than 0 and less than ${parsingInfo.prevDepth + 1}, but got -1`, i))\n\t}\n\treturn string\n}\n\nconst getIndent = (string, parsingInfo) => {\n\tif (parsingInfo.indentReg) return\n\tconst spaces = string.match(spaceIndent)[2]\n\tif (spaces) {\n\t\tparsingInfo.indentReg = new RegExp(spaces, 'g')\n\t}\n}\n\nconst getDepth = (string, parsingInfo, i) => {\n\tlet depth = 0\n\tif (parsingInfo.indentReg) string = string.replace(/^\\s*/, str => str.replace(parsingInfo.indentReg, '\\t'))\n\tconst content = string.replace(/^\\t*/, (str) => {\n\t\tdepth = str.length\n\t\treturn ''\n\t})\n\tif (/^\\s/.test(content)) throw new SyntaxError(getErrorMsg('Bad indent', i))\n\treturn { depth, content }\n}\n\nconst resolveDepth = (ast, depth) => {\n\tlet currentNode = ast\n\tfor (let i = 0; i < depth; i++) currentNode = currentNode[currentNode.length - 1]\n\treturn currentNode\n}\n\nconst splitDefault = (string) => {\n\tstring = string.slice(2, string.length - 2)\n\tconst [_path, ..._default] = string.split('=')\n\tconst pathArr = _path.trim().split('.')\n\tconst defaultVal = ESCAPE(_default.join('=').trim())\n\tif (checkValidType(defaultVal)) return [pathArr, defaultVal]\n\treturn [pathArr]\n}\n\nconst splitLiterals = (string) => {\n\tconst strs = string.split(mustache)\n\tif (strs.length === 1) return ESCAPE(string)\n\tconst tmpl = []\n\tif (strs.length === 2 && !strs[0] && !strs[1]) tmpl.push(0)\n\telse tmpl.push(strs.map(efEscape))\n\tconst mustaches = string.match(mustache)\n\tif (mustaches) tmpl.push(...mustaches.map(splitDefault))\n\treturn tmpl\n}\n\nconst pushStr = (textArr, str) => {\n\tif (str) textArr.push(str)\n}\n\nconst parseText = (string) => {\n\tconst result = splitLiterals(string)\n\tif (checkValidType(result)) return [`${result}`]\n\tconst [strs, ...exprs] = result\n\tconst textArr = []\n\tfor (let i = 0; i < exprs.length; i++) {\n\t\tpushStr(textArr, strs[i])\n\t\ttextArr.push(exprs[i])\n\t}\n\tpushStr(textArr, strs[strs.length - 1])\n\treturn textArr\n}\n\nconst dotToSpace = val => val.replace(/\\./g, ' ')\n\nconst parseTag = (string) => {\n\tconst tagInfo = {}\n\tconst [tag, ...content] = string.replace(hashref, (val) => {\n\t\ttagInfo.ref = val.slice(1)\n\t\treturn ''\n\t}).split('.')\n\ttagInfo.tag = tag\n\ttagInfo.class = splitLiterals(content.join('.'))\n\tif (typeof tagInfo.class === 'string') tagInfo.class = dotToSpace(tagInfo.class).trim()\n\telse if (tagInfo.class[0]) tagInfo.class[0] = tagInfo.class[0].map(dotToSpace)\n\treturn tagInfo\n}\n\nconst parseNodeProps = (string) => {\n\tconst splited = string.split('=')\n\treturn {\n\t\tname: splited.shift().trim(),\n\t\tvalue: splitLiterals(splited.join('=').trim())\n\t}\n}\n\nconst parseEvent = (string) => {\n\tconst splited = string.split('=')\n\treturn {\n\t\tname: splited.shift().trim(),\n\t\tvalue: splited.join('=').trim()\n\t}\n}\n\nconst setOption = (options, option) => {\n\tswitch (option) {\n\t\tcase 'stop': {\n\t\t\toptions.s = 1\n\t\t\tbreak\n\t\t}\n\t\tcase 'stopImmediate': {\n\t\t\toptions.i = 1\n\t\t\tbreak\n\t\t}\n\t\tcase 'prevent': {\n\t\t\toptions.p = 1\n\t\t\tbreak\n\t\t}\n\t\tcase 'shift': {\n\t\t\toptions.h = 1\n\t\t\tbreak\n\t\t}\n\t\tcase 'alt': {\n\t\t\toptions.a = 1\n\t\t\tbreak\n\t\t}\n\t\tcase 'ctrl': {\n\t\t\toptions.c = 1\n\t\t\tbreak\n\t\t}\n\t\tcase 'meta': {\n\t\t\toptions.t = 1\n\t\t\tbreak\n\t\t}\n\t\tcase 'capture': {\n\t\t\toptions.u = 1\n\t\t\tbreak\n\t\t}\n\t\tdefault: {\n\t\t\tconsole.warn(`Abandoned unsupported event option '${option}'.`)\n\t\t}\n\t}\n}\n\nconst getOption = (options, keys, option) => {\n\tconst keyCode = parseInt(option, 10)\n\tif (isNaN(keyCode)) return setOption(options, option)\n\tkeys.push(keyCode)\n}\n\nconst getEventOptions = (name) => {\n\tconst options = {}\n\tconst keys = []\n\tconst [listener, ...ops] = name.split('.')\n\toptions.l = listener\n\tfor (let i of ops) getOption(options, keys, i)\n\tif (keys.length > 0) options.k = keys\n\treturn options\n}\n\nconst splitEvents = (string) => {\n\tconst [name, ...value] = string.split(':')\n\tconst content = value.join(':')\n\tif (content) return [name.trim(), splitLiterals(content)]\n\treturn [name.trim()]\n}\n\nconst parseLine = ({line, ast, parsingInfo, i}) => {\n\tif (isEmpty(line)) return\n\tgetIndent(line, parsingInfo)\n\tgetOffset(line, parsingInfo)\n\n\tlet { depth, content } = getDepth(removeOffset(line, parsingInfo, i), parsingInfo, i)\n\n\tif (content) {\n\t\tif (depth < 0 || depth - parsingInfo.prevDepth > 1 || (depth - parsingInfo.prevDepth === 1 && ['comment', 'tag'].indexOf(parsingInfo.prevType) === -1) || (parsingInfo.prevType !== 'comment' && depth === 0 && parsingInfo.topExists)) throw new SyntaxError(getErrorMsg(`Expected indent to be grater than 0 and less than ${parsingInfo.prevDepth + 1}, but got ${depth}`, i))\n\t\tconst type = content[0]\n\t\tcontent = content.slice(1)\n\t\tif (!parsingInfo.topExists && typeSymbols.indexOf(type) >= 0 && type !== '>') throw new SyntaxError(getErrorMsg('No top level entry', i))\n\t\tif (!content && typeSymbols.indexOf(type) >= 0) throw new SyntaxError(getErrorMsg('Empty content', i))\n\t\t// Jump back to upper level\n\t\tif (depth < parsingInfo.prevDepth || (depth === parsingInfo.prevDepth && parsingInfo.prevType === 'tag')) parsingInfo.currentNode = resolveDepth(ast, depth)\n\t\tparsingInfo.prevDepth = depth\n\n\t\tswitch (type) {\n\t\t\tcase '>': {\n\t\t\t\tif (!parsingInfo.topExists) {\n\t\t\t\t\tparsingInfo.topExists = true\n\t\t\t\t\tparsingInfo.minDepth = depth\n\t\t\t\t}\n\t\t\t\tconst info = parseTag(content)\n\t\t\t\tconst newNode = [{\n\t\t\t\t\tt: info.tag\n\t\t\t\t}]\n\t\t\t\tif (info.class) {\n\t\t\t\t\tnewNode[0].a = {}\n\t\t\t\t\tnewNode[0].a.class = info.class\n\t\t\t\t}\n\t\t\t\tif (info.ref) newNode[0].r = info.ref\n\t\t\t\tparsingInfo.currentNode.push(newNode)\n\t\t\t\tparsingInfo.currentNode = newNode\n\t\t\t\tparsingInfo.prevType = 'tag'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase '#': {\n\t\t\t\tconst { name, value } = parseNodeProps(content)\n\t\t\t\tif (!parsingInfo.currentNode[0].a) parsingInfo.currentNode[0].a = {}\n\t\t\t\tparsingInfo.currentNode[0].a[name] = value\n\t\t\t\tparsingInfo.prevType = 'attr'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase '%': {\n\t\t\t\tconst { name, value } = parseNodeProps(content)\n\t\t\t\tif (!parsingInfo.currentNode[0].p) parsingInfo.currentNode[0].p = {}\n\t\t\t\tparsingInfo.currentNode[0].p[name] = value\n\t\t\t\tparsingInfo.prevType = 'prop'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase '@': {\n\t\t\t\tconst { name, value } = parseEvent(content)\n\t\t\t\tif (!parsingInfo.currentNode[0].e) parsingInfo.currentNode[0].e = []\n\t\t\t\tconst options = getEventOptions(name)\n\t\t\t\tconst [method, _value] = splitEvents(value)\n\t\t\t\toptions.m = method\n\t\t\t\tif (_value) options.v = _value\n\t\t\t\tparsingInfo.currentNode[0].e.push(options)\n\t\t\t\tparsingInfo.prevType = 'event'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase '.': {\n\t\t\t\tparsingInfo.currentNode.push(...parseText(content))\n\t\t\t\tparsingInfo.prevType = 'text'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase '-': {\n\t\t\t\tif (reserved.indexOf(content) !== -1) throw new SyntaxError(getErrorMsg(`Reserved name '${content}' should not be used`, i))\n\t\t\t\tparsingInfo.currentNode.push({\n\t\t\t\t\tn: content,\n\t\t\t\t\tt: 0\n\t\t\t\t})\n\t\t\t\tparsingInfo.prevType = 'node'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase '+': {\n\t\t\t\tparsingInfo.currentNode.push({\n\t\t\t\t\tn: content,\n\t\t\t\t\tt: 1\n\t\t\t\t})\n\t\t\t\tparsingInfo.prevType = 'list'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tparsingInfo.prevType = 'comment'\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst parseEft = (template) => {\n\tif (!template) throw new TypeError(getErrorMsg('Template required, but nothing given'))\n\tconst tplType = typeof template\n\tif (tplType !== 'string') throw new TypeError(getErrorMsg(`Expected a string, but got a(n) ${tplType}`))\n\tconst lines = template.split(/\\r?\\n/)\n\tconst ast = []\n\tconst parsingInfo = {\n\t\tindentReg: null,\n\t\tprevDepth: 0,\n\t\toffset: null,\n\t\toffsetReg: null,\n\t\tprevType: 'comment',\n\t\tcurrentNode: ast,\n\t\ttopExists: false,\n\t}\n\tfor (let i = 0; i < lines.length; i++) parseLine({line: lines[i], ast, parsingInfo, i})\n\n\tif (ast[0]) return ast[0]\n\tthrow new SyntaxError(getErrorMsg('Nothing to be parsed', lines.length - 1))\n}\n\nexport default parseEft\n"],"names":["const","ESCAPE","let","efEscape","name","value"],"mappings":"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"} \ No newline at end of file diff --git a/test/index.html b/test/index.html index 8c45734..f3cce59 100755 --- a/test/index.html +++ b/test/index.html @@ -4,7 +4,7 @@ eft-parser Test Page - +