├── .gitignore ├── README.md ├── demo_compact.js ├── demo_control_flow_flattening.js ├── demo_dead_code_injection.js ├── demo_debug_protection.js ├── demo_disable_console_output.js ├── demo_domain_lock.js ├── demo_identifier_names_generator.js ├── demo_identifiers_prefix.js ├── demo_rename_globals.js ├── demo_self_defending.js ├── demo_string_array.js ├── demo_target.js ├── demo_transform_object_keys.js ├── demo_unicode_escape_sequence.js ├── main.js ├── package-lock.json └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /.idea -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # JavaScript Obfuscate 2 | 3 | Demo of JavaScript Obfuscate. 4 | 5 | ## Usage 6 | 7 | ``` 8 | npm install 9 | node demo_xxx.js 10 | ``` 11 | -------------------------------------------------------------------------------- /demo_compact.js: -------------------------------------------------------------------------------- 1 | const code = ` 2 | let x = '1' + 1 3 | console.log('x', x) 4 | ` 5 | 6 | const options = { 7 | compact: false, 8 | } 9 | 10 | const obfuscator = require('javascript-obfuscator') 11 | 12 | function obfuscate(code, options) { 13 | return obfuscator.obfuscate(code, options).getObfuscatedCode() 14 | } 15 | 16 | console.log(obfuscate(code, options)) 17 | // var _0x151c=['log'];(function(_0x1ce384,_0x20a7c7){var _0x25fc92=function(_0x188aec){while(--_0x188aec){_0x1ce384['push'](_0x1ce384['shift']());}};_0x25fc92(++_0x20a7c7);}(_0x151c,0x1b7));var _0x553e=function(_0x259219,_0x241445){_0x259219=_0x259219-0x0;var _0x56d72d=_0x151c[_0x259219];return _0x56d72d;};let x='1'+0x1;console[_0x553e('0x0')]('x',x); -------------------------------------------------------------------------------- /demo_control_flow_flattening.js: -------------------------------------------------------------------------------- 1 | const code = ` 2 | (function(){ 3 | function foo () { 4 | return function () { 5 | var sum = 1 + 2; 6 | console.log(1); 7 | console.log(2); 8 | console.log(3); 9 | console.log(4); 10 | console.log(5); 11 | console.log(6); 12 | } 13 | } 14 | 15 | foo()(); 16 | })(); 17 | ` 18 | 19 | const options = { 20 | compact: false, 21 | controlFlowFlattening: true 22 | } 23 | 24 | const obfuscator = require('javascript-obfuscator') 25 | 26 | function obfuscate(code, options) { 27 | return obfuscator.obfuscate(code, options).getObfuscatedCode() 28 | } 29 | 30 | console.log(obfuscate(code, options)) -------------------------------------------------------------------------------- /demo_dead_code_injection.js: -------------------------------------------------------------------------------- 1 | const code = ` 2 | console.log('abc'); 3 | console.log('cde'); 4 | console.log('efg'); 5 | console.log('hij'); 6 | ` 7 | 8 | const options = { 9 | compact: false, 10 | deadCodeInjection: true, 11 | deadCodeInjectionThreshold: 1 12 | } 13 | 14 | const obfuscator = require('javascript-obfuscator') 15 | 16 | function obfuscate(code, options) { 17 | return obfuscator.obfuscate(code, options).getObfuscatedCode() 18 | } 19 | 20 | console.log(obfuscate(code, options)) -------------------------------------------------------------------------------- /demo_debug_protection.js: -------------------------------------------------------------------------------- 1 | const code = ` 2 | for (let i = 0; i < 5; i ++) { 3 | console.log('i', i) 4 | } 5 | ` 6 | 7 | const options = { 8 | debugProtection: true 9 | } 10 | 11 | const obfuscator = require('javascript-obfuscator') 12 | 13 | function obfuscate(code, options) { 14 | return obfuscator.obfuscate(code, options).getObfuscatedCode() 15 | } 16 | 17 | console.log(obfuscate(code, options)) -------------------------------------------------------------------------------- /demo_disable_console_output.js: -------------------------------------------------------------------------------- 1 | const code = ` 2 | console.log('hello world') 3 | ` 4 | const options = { 5 | disableConsoleOutput: true 6 | } 7 | 8 | const obfuscator = require('javascript-obfuscator') 9 | 10 | function obfuscate(code, options) { 11 | return obfuscator.obfuscate(code, options).getObfuscatedCode() 12 | } 13 | 14 | console.log(obfuscate(code, options)) -------------------------------------------------------------------------------- /demo_domain_lock.js: -------------------------------------------------------------------------------- 1 | const code = ` 2 | console.log('hello world') 3 | ` 4 | 5 | const options = { 6 | domainLock: ['cuiqingcai.com'] 7 | } 8 | 9 | const obfuscator = require('javascript-obfuscator') 10 | 11 | function obfuscate(code, options) { 12 | return obfuscator.obfuscate(code, options).getObfuscatedCode() 13 | } 14 | 15 | console.log(obfuscate(code, options)) -------------------------------------------------------------------------------- /demo_identifier_names_generator.js: -------------------------------------------------------------------------------- 1 | const code = ` 2 | let hello = '1' + 1 3 | console.log('hello', hello) 4 | ` 5 | 6 | const options = { 7 | compact: true, 8 | identifierNamesGenerator: 'mangled' 9 | } 10 | 11 | const obfuscator = require('javascript-obfuscator') 12 | 13 | function obfuscate(code, options) { 14 | return obfuscator.obfuscate(code, options).getObfuscatedCode() 15 | } 16 | 17 | console.log(obfuscate(code, options)) -------------------------------------------------------------------------------- /demo_identifiers_prefix.js: -------------------------------------------------------------------------------- 1 | const code = ` 2 | let hello = '1' + 1 3 | console.log('hello', hello) 4 | ` 5 | 6 | const options = { 7 | identifiersPrefix: 'germey' 8 | } 9 | 10 | const obfuscator = require('javascript-obfuscator') 11 | 12 | function obfuscate(code, options) { 13 | return obfuscator.obfuscate(code, options).getObfuscatedCode() 14 | } 15 | 16 | console.log(obfuscate(code, options)) -------------------------------------------------------------------------------- /demo_rename_globals.js: -------------------------------------------------------------------------------- 1 | const code = ` 2 | var $ = function(id) { 3 | return document.getElementById(id); 4 | }; 5 | ` 6 | 7 | const options = { 8 | renameGlobals: true 9 | } 10 | 11 | const obfuscator = require('javascript-obfuscator') 12 | 13 | function obfuscate(code, options) { 14 | return obfuscator.obfuscate(code, options).getObfuscatedCode() 15 | } 16 | 17 | console.log(obfuscate(code, options)) -------------------------------------------------------------------------------- /demo_self_defending.js: -------------------------------------------------------------------------------- 1 | const code = ` 2 | console.log('hello world') 3 | ` 4 | 5 | const options = { 6 | selfDefending: true 7 | } 8 | 9 | const obfuscator = require('javascript-obfuscator') 10 | 11 | function obfuscate(code, options) { 12 | return obfuscator.obfuscate(code, options).getObfuscatedCode() 13 | } 14 | 15 | console.log(obfuscate(code, options)) -------------------------------------------------------------------------------- /demo_string_array.js: -------------------------------------------------------------------------------- 1 | const code = ` 2 | var a = 'hello world' 3 | ` 4 | const options = { 5 | stringArray: true, 6 | rotateStringArray: true, 7 | stringArrayEncoding: true, // 'base64' or 'rc4' or false 8 | stringArrayThreshold: 1, 9 | } 10 | 11 | const obfuscator = require('javascript-obfuscator') 12 | 13 | function obfuscate(code, options) { 14 | return obfuscator.obfuscate(code, options).getObfuscatedCode() 15 | } 16 | 17 | console.log(obfuscate(code, options)) -------------------------------------------------------------------------------- /demo_target.js: -------------------------------------------------------------------------------- 1 | const code = ` 2 | console.log('hello world') 3 | ` 4 | 5 | const options = { 6 | target: 'browser-no-eval' 7 | } 8 | 9 | const obfuscator = require('javascript-obfuscator') 10 | 11 | function obfuscate(code, options) { 12 | return obfuscator.obfuscate(code, options).getObfuscatedCode() 13 | } 14 | 15 | console.log(obfuscate(code, options)) -------------------------------------------------------------------------------- /demo_transform_object_keys.js: -------------------------------------------------------------------------------- 1 | const code = ` 2 | (function(){ 3 | var object = { 4 | foo: 'test1', 5 | bar: { 6 | baz: 'test2' 7 | } 8 | }; 9 | })(); 10 | ` 11 | const options = { 12 | compact: false, 13 | transformObjectKeys: true 14 | } 15 | 16 | const obfuscator = require('javascript-obfuscator') 17 | 18 | function obfuscate(code, options) { 19 | return obfuscator.obfuscate(code, options).getObfuscatedCode() 20 | } 21 | 22 | console.log(obfuscate(code, options)) -------------------------------------------------------------------------------- /demo_unicode_escape_sequence.js: -------------------------------------------------------------------------------- 1 | const code = ` 2 | var a = 'hello world' 3 | ` 4 | const options = { 5 | compact: false, 6 | unicodeEscapeSequence: true 7 | } 8 | 9 | const obfuscator = require('javascript-obfuscator') 10 | 11 | function obfuscate(code, options) { 12 | return obfuscator.obfuscate(code, options).getObfuscatedCode() 13 | } 14 | 15 | console.log(obfuscate(code, options)) -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | const code = ` 2 | let x = '1' + 1 3 | console.log('x', x) 4 | ` 5 | 6 | const options = { 7 | compact: false, 8 | controlFlowFlattening: true 9 | } 10 | 11 | const obfuscator = require('javascript-obfuscator') 12 | function obfuscate(code, options) { 13 | return obfuscator.obfuscate(code, options).getObfuscatedCode() 14 | } 15 | console.log(obfuscate(code, options)) 16 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-obfuscate", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/runtime": { 8 | "version": "7.7.4", 9 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.4.tgz", 10 | "integrity": "sha512-r24eVUUr0QqNZa+qrImUk8fn5SPhHq+IfYvIoIMg0do3GdK9sMdiLKP3GYVVaxpPKORgm8KRKaNTEhAjgIpLMw==", 11 | "dev": true, 12 | "requires": { 13 | "regenerator-runtime": "^0.13.2" 14 | } 15 | }, 16 | "@types/color-name": { 17 | "version": "1.1.1", 18 | "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", 19 | "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", 20 | "dev": true 21 | }, 22 | "@types/minimatch": { 23 | "version": "3.0.3", 24 | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", 25 | "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", 26 | "dev": true 27 | }, 28 | "@types/validator": { 29 | "version": "10.11.3", 30 | "resolved": "https://registry.npmjs.org/@types/validator/-/validator-10.11.3.tgz", 31 | "integrity": "sha512-GKF2VnEkMmEeEGvoo03ocrP9ySMuX1ypKazIYMlsjfslfBMhOAtC5dmEWKdJioW4lJN7MZRS88kalTsVClyQ9w==", 32 | "dev": true 33 | }, 34 | "acorn": { 35 | "version": "7.1.1", 36 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", 37 | "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", 38 | "dev": true 39 | }, 40 | "acorn-jsx": { 41 | "version": "5.1.0", 42 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz", 43 | "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==", 44 | "dev": true 45 | }, 46 | "amdefine": { 47 | "version": "1.0.1", 48 | "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", 49 | "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", 50 | "dev": true, 51 | "optional": true 52 | }, 53 | "ansi-escapes": { 54 | "version": "1.4.0", 55 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", 56 | "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", 57 | "dev": true 58 | }, 59 | "ansi-regex": { 60 | "version": "2.1.1", 61 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 62 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 63 | "dev": true 64 | }, 65 | "ansi-styles": { 66 | "version": "4.2.0", 67 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.0.tgz", 68 | "integrity": "sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==", 69 | "dev": true, 70 | "requires": { 71 | "@types/color-name": "^1.1.1", 72 | "color-convert": "^2.0.1" 73 | } 74 | }, 75 | "array-differ": { 76 | "version": "3.0.0", 77 | "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", 78 | "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", 79 | "dev": true 80 | }, 81 | "array-union": { 82 | "version": "2.1.0", 83 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 84 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 85 | "dev": true 86 | }, 87 | "arrify": { 88 | "version": "2.0.1", 89 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", 90 | "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", 91 | "dev": true 92 | }, 93 | "babel-polyfill": { 94 | "version": "6.23.0", 95 | "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", 96 | "integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=", 97 | "dev": true, 98 | "requires": { 99 | "babel-runtime": "^6.22.0", 100 | "core-js": "^2.4.0", 101 | "regenerator-runtime": "^0.10.0" 102 | }, 103 | "dependencies": { 104 | "regenerator-runtime": { 105 | "version": "0.10.5", 106 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", 107 | "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", 108 | "dev": true 109 | } 110 | } 111 | }, 112 | "babel-runtime": { 113 | "version": "6.26.0", 114 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", 115 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", 116 | "dev": true, 117 | "requires": { 118 | "core-js": "^2.4.0", 119 | "regenerator-runtime": "^0.11.0" 120 | }, 121 | "dependencies": { 122 | "regenerator-runtime": { 123 | "version": "0.11.1", 124 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", 125 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", 126 | "dev": true 127 | } 128 | } 129 | }, 130 | "balanced-match": { 131 | "version": "1.0.0", 132 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 133 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 134 | "dev": true 135 | }, 136 | "brace-expansion": { 137 | "version": "1.1.11", 138 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 139 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 140 | "dev": true, 141 | "requires": { 142 | "balanced-match": "^1.0.0", 143 | "concat-map": "0.0.1" 144 | } 145 | }, 146 | "buffer-from": { 147 | "version": "1.1.1", 148 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 149 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 150 | "dev": true 151 | }, 152 | "chalk": { 153 | "version": "3.0.0", 154 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", 155 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", 156 | "dev": true, 157 | "requires": { 158 | "ansi-styles": "^4.1.0", 159 | "supports-color": "^7.1.0" 160 | } 161 | }, 162 | "chance": { 163 | "version": "1.1.3", 164 | "resolved": "https://registry.npmjs.org/chance/-/chance-1.1.3.tgz", 165 | "integrity": "sha512-XeJsdoVAzDb1WRPRuMBesRSiWpW1uNTo5Fd7mYxPJsAfgX71+jfuCOHOdbyBz2uAUZ8TwKcXgWk3DMedFfJkbg==", 166 | "dev": true 167 | }, 168 | "chardet": { 169 | "version": "0.4.2", 170 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", 171 | "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", 172 | "dev": true 173 | }, 174 | "charenc": { 175 | "version": "0.0.2", 176 | "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", 177 | "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", 178 | "dev": true 179 | }, 180 | "class-validator": { 181 | "version": "0.11.0", 182 | "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.11.0.tgz", 183 | "integrity": "sha512-niAmmSPFku9xsnpYYrddy8NZRrCX3yyoZ/rgPKOilE5BG0Ma1eVCIxpR4X0LasL/6BzbYzsutG+mSbAXlh4zNw==", 184 | "dev": true, 185 | "requires": { 186 | "@types/validator": "10.11.3", 187 | "google-libphonenumber": "^3.1.6", 188 | "validator": "12.0.0" 189 | } 190 | }, 191 | "cli-cursor": { 192 | "version": "2.1.0", 193 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 194 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", 195 | "dev": true, 196 | "requires": { 197 | "restore-cursor": "^2.0.0" 198 | } 199 | }, 200 | "cli-width": { 201 | "version": "2.2.0", 202 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", 203 | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", 204 | "dev": true 205 | }, 206 | "color-convert": { 207 | "version": "2.0.1", 208 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 209 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 210 | "dev": true, 211 | "requires": { 212 | "color-name": "~1.1.4" 213 | } 214 | }, 215 | "color-name": { 216 | "version": "1.1.4", 217 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 218 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 219 | "dev": true 220 | }, 221 | "commander": { 222 | "version": "4.0.1", 223 | "resolved": "https://registry.npmjs.org/commander/-/commander-4.0.1.tgz", 224 | "integrity": "sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA==", 225 | "dev": true 226 | }, 227 | "concat-map": { 228 | "version": "0.0.1", 229 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 230 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 231 | "dev": true 232 | }, 233 | "core-js": { 234 | "version": "2.6.11", 235 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", 236 | "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", 237 | "dev": true 238 | }, 239 | "crypt": { 240 | "version": "0.0.2", 241 | "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", 242 | "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", 243 | "dev": true 244 | }, 245 | "deep-is": { 246 | "version": "0.1.3", 247 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 248 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 249 | "dev": true 250 | }, 251 | "encoding": { 252 | "version": "0.1.12", 253 | "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", 254 | "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", 255 | "dev": true, 256 | "requires": { 257 | "iconv-lite": "~0.4.13" 258 | } 259 | }, 260 | "escape-string-regexp": { 261 | "version": "1.0.5", 262 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 263 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 264 | "dev": true 265 | }, 266 | "escodegen-wallaby": { 267 | "version": "1.6.27", 268 | "resolved": "https://registry.npmjs.org/escodegen-wallaby/-/escodegen-wallaby-1.6.27.tgz", 269 | "integrity": "sha512-DFXbfLTNa/wiQRgqSseKhmzyDhwWJ4c/6IwsdAgA6qYL0ntsmSuuTMovEbA/8oCanSGkUR1qaLsDgKiWPllnjg==", 270 | "dev": true, 271 | "requires": { 272 | "esprima": "^2.7.1", 273 | "estraverse": "^1.9.1", 274 | "esutils": "^2.0.2", 275 | "optionator": "^0.8.1", 276 | "source-map": "~0.2.0" 277 | }, 278 | "dependencies": { 279 | "estraverse": { 280 | "version": "1.9.3", 281 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", 282 | "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", 283 | "dev": true 284 | } 285 | } 286 | }, 287 | "eslint-visitor-keys": { 288 | "version": "1.1.0", 289 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", 290 | "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", 291 | "dev": true 292 | }, 293 | "espree": { 294 | "version": "6.1.2", 295 | "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz", 296 | "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==", 297 | "dev": true, 298 | "requires": { 299 | "acorn": "^7.1.0", 300 | "acorn-jsx": "^5.1.0", 301 | "eslint-visitor-keys": "^1.1.0" 302 | } 303 | }, 304 | "esprima": { 305 | "version": "2.7.3", 306 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", 307 | "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", 308 | "dev": true 309 | }, 310 | "estraverse": { 311 | "version": "4.3.0", 312 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 313 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 314 | "dev": true 315 | }, 316 | "esutils": { 317 | "version": "2.0.3", 318 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 319 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 320 | "dev": true 321 | }, 322 | "eventemitter3": { 323 | "version": "4.0.0", 324 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", 325 | "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==", 326 | "dev": true 327 | }, 328 | "external-editor": { 329 | "version": "2.2.0", 330 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", 331 | "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", 332 | "dev": true, 333 | "requires": { 334 | "chardet": "^0.4.0", 335 | "iconv-lite": "^0.4.17", 336 | "tmp": "^0.0.33" 337 | } 338 | }, 339 | "fast-levenshtein": { 340 | "version": "2.0.6", 341 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 342 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 343 | "dev": true 344 | }, 345 | "figures": { 346 | "version": "2.0.0", 347 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 348 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", 349 | "dev": true, 350 | "requires": { 351 | "escape-string-regexp": "^1.0.5" 352 | } 353 | }, 354 | "google-libphonenumber": { 355 | "version": "3.2.6", 356 | "resolved": "https://registry.npmjs.org/google-libphonenumber/-/google-libphonenumber-3.2.6.tgz", 357 | "integrity": "sha512-6QCQAaKJlSd/1dUqvdQf7zzfb3uiZHsG8yhCfOdCVRfMuPZ/VDIEB47y5SYwjPQJPs7ebfW5jj6PeobB9JJ4JA==", 358 | "dev": true 359 | }, 360 | "has-ansi": { 361 | "version": "2.0.0", 362 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 363 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 364 | "dev": true, 365 | "requires": { 366 | "ansi-regex": "^2.0.0" 367 | } 368 | }, 369 | "has-flag": { 370 | "version": "4.0.0", 371 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 372 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 373 | "dev": true 374 | }, 375 | "iconv-lite": { 376 | "version": "0.4.24", 377 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 378 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 379 | "dev": true, 380 | "requires": { 381 | "safer-buffer": ">= 2.1.2 < 3" 382 | } 383 | }, 384 | "inquirer": { 385 | "version": "3.0.6", 386 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz", 387 | "integrity": "sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c=", 388 | "dev": true, 389 | "requires": { 390 | "ansi-escapes": "^1.1.0", 391 | "chalk": "^1.0.0", 392 | "cli-cursor": "^2.1.0", 393 | "cli-width": "^2.0.0", 394 | "external-editor": "^2.0.1", 395 | "figures": "^2.0.0", 396 | "lodash": "^4.3.0", 397 | "mute-stream": "0.0.7", 398 | "run-async": "^2.2.0", 399 | "rx": "^4.1.0", 400 | "string-width": "^2.0.0", 401 | "strip-ansi": "^3.0.0", 402 | "through": "^2.3.6" 403 | }, 404 | "dependencies": { 405 | "ansi-styles": { 406 | "version": "2.2.1", 407 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 408 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 409 | "dev": true 410 | }, 411 | "chalk": { 412 | "version": "1.1.3", 413 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 414 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 415 | "dev": true, 416 | "requires": { 417 | "ansi-styles": "^2.2.1", 418 | "escape-string-regexp": "^1.0.2", 419 | "has-ansi": "^2.0.0", 420 | "strip-ansi": "^3.0.0", 421 | "supports-color": "^2.0.0" 422 | } 423 | }, 424 | "supports-color": { 425 | "version": "2.0.0", 426 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 427 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 428 | "dev": true 429 | } 430 | } 431 | }, 432 | "inversify": { 433 | "version": "5.0.1", 434 | "resolved": "https://registry.npmjs.org/inversify/-/inversify-5.0.1.tgz", 435 | "integrity": "sha512-Ieh06s48WnEYGcqHepdsJUIJUXpwH5o5vodAX+DK2JA/gjy4EbEcQZxw+uFfzysmKjiLXGYwNG3qDZsKVMcINQ==", 436 | "dev": true 437 | }, 438 | "is-buffer": { 439 | "version": "1.1.6", 440 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 441 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 442 | "dev": true 443 | }, 444 | "is-fullwidth-code-point": { 445 | "version": "2.0.0", 446 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 447 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 448 | "dev": true 449 | }, 450 | "is-promise": { 451 | "version": "2.1.0", 452 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", 453 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", 454 | "dev": true 455 | }, 456 | "is-stream": { 457 | "version": "1.1.0", 458 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 459 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 460 | "dev": true 461 | }, 462 | "javascript-obfuscator": { 463 | "version": "0.18.8", 464 | "resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-0.18.8.tgz", 465 | "integrity": "sha512-lh/PT3dwLgv2vP9ymsmNZqjpbkDq1SQqpxLYtAerLzmYgHlQOzVpUe3NbFb8tUFNylMeg6ez1iEpA7oOQw/7Tw==", 466 | "dev": true, 467 | "requires": { 468 | "@babel/runtime": "7.7.4", 469 | "chalk": "3.0.0", 470 | "chance": "1.1.3", 471 | "class-validator": "0.11.0", 472 | "commander": "4.0.1", 473 | "escodegen-wallaby": "1.6.27", 474 | "espree": "^6.1.2", 475 | "estraverse": "4.3.0", 476 | "eventemitter3": "4.0.0", 477 | "inversify": "5.0.1", 478 | "js-string-escape": "1.0.1", 479 | "md5": "2.2.1", 480 | "mkdirp": "0.5.1", 481 | "multimatch": "4.0.0", 482 | "opencollective": "1.0.3", 483 | "reflect-metadata": "0.1.13", 484 | "source-map-support": "0.5.16", 485 | "string-template": "1.0.0", 486 | "tslib": "1.10.0" 487 | } 488 | }, 489 | "js-string-escape": { 490 | "version": "1.0.1", 491 | "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", 492 | "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", 493 | "dev": true 494 | }, 495 | "levn": { 496 | "version": "0.3.0", 497 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 498 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 499 | "dev": true, 500 | "requires": { 501 | "prelude-ls": "~1.1.2", 502 | "type-check": "~0.3.2" 503 | } 504 | }, 505 | "lodash": { 506 | "version": "4.17.21", 507 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 508 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 509 | "dev": true 510 | }, 511 | "md5": { 512 | "version": "2.2.1", 513 | "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", 514 | "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", 515 | "dev": true, 516 | "requires": { 517 | "charenc": "~0.0.1", 518 | "crypt": "~0.0.1", 519 | "is-buffer": "~1.1.1" 520 | } 521 | }, 522 | "mimic-fn": { 523 | "version": "1.2.0", 524 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 525 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", 526 | "dev": true 527 | }, 528 | "minimatch": { 529 | "version": "3.0.4", 530 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 531 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 532 | "dev": true, 533 | "requires": { 534 | "brace-expansion": "^1.1.7" 535 | } 536 | }, 537 | "minimist": { 538 | "version": "0.0.8", 539 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 540 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 541 | "dev": true 542 | }, 543 | "mkdirp": { 544 | "version": "0.5.1", 545 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 546 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 547 | "dev": true, 548 | "requires": { 549 | "minimist": "0.0.8" 550 | } 551 | }, 552 | "multimatch": { 553 | "version": "4.0.0", 554 | "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", 555 | "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", 556 | "dev": true, 557 | "requires": { 558 | "@types/minimatch": "^3.0.3", 559 | "array-differ": "^3.0.0", 560 | "array-union": "^2.1.0", 561 | "arrify": "^2.0.1", 562 | "minimatch": "^3.0.4" 563 | } 564 | }, 565 | "mute-stream": { 566 | "version": "0.0.7", 567 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", 568 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", 569 | "dev": true 570 | }, 571 | "node-fetch": { 572 | "version": "1.6.3", 573 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz", 574 | "integrity": "sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ=", 575 | "dev": true, 576 | "requires": { 577 | "encoding": "^0.1.11", 578 | "is-stream": "^1.0.1" 579 | } 580 | }, 581 | "object-assign": { 582 | "version": "4.1.1", 583 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 584 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 585 | "dev": true 586 | }, 587 | "onetime": { 588 | "version": "2.0.1", 589 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 590 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", 591 | "dev": true, 592 | "requires": { 593 | "mimic-fn": "^1.0.0" 594 | } 595 | }, 596 | "opencollective": { 597 | "version": "1.0.3", 598 | "resolved": "https://registry.npmjs.org/opencollective/-/opencollective-1.0.3.tgz", 599 | "integrity": "sha1-ruY3K8KBRFg2kMPKja7PwSDdDvE=", 600 | "dev": true, 601 | "requires": { 602 | "babel-polyfill": "6.23.0", 603 | "chalk": "1.1.3", 604 | "inquirer": "3.0.6", 605 | "minimist": "1.2.0", 606 | "node-fetch": "1.6.3", 607 | "opn": "4.0.2" 608 | }, 609 | "dependencies": { 610 | "ansi-styles": { 611 | "version": "2.2.1", 612 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 613 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 614 | "dev": true 615 | }, 616 | "chalk": { 617 | "version": "1.1.3", 618 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 619 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 620 | "dev": true, 621 | "requires": { 622 | "ansi-styles": "^2.2.1", 623 | "escape-string-regexp": "^1.0.2", 624 | "has-ansi": "^2.0.0", 625 | "strip-ansi": "^3.0.0", 626 | "supports-color": "^2.0.0" 627 | } 628 | }, 629 | "minimist": { 630 | "version": "1.2.0", 631 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 632 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 633 | "dev": true 634 | }, 635 | "supports-color": { 636 | "version": "2.0.0", 637 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 638 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 639 | "dev": true 640 | } 641 | } 642 | }, 643 | "opn": { 644 | "version": "4.0.2", 645 | "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", 646 | "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", 647 | "dev": true, 648 | "requires": { 649 | "object-assign": "^4.0.1", 650 | "pinkie-promise": "^2.0.0" 651 | } 652 | }, 653 | "optionator": { 654 | "version": "0.8.3", 655 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", 656 | "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", 657 | "dev": true, 658 | "requires": { 659 | "deep-is": "~0.1.3", 660 | "fast-levenshtein": "~2.0.6", 661 | "levn": "~0.3.0", 662 | "prelude-ls": "~1.1.2", 663 | "type-check": "~0.3.2", 664 | "word-wrap": "~1.2.3" 665 | } 666 | }, 667 | "os-tmpdir": { 668 | "version": "1.0.2", 669 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 670 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 671 | "dev": true 672 | }, 673 | "pinkie": { 674 | "version": "2.0.4", 675 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 676 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 677 | "dev": true 678 | }, 679 | "pinkie-promise": { 680 | "version": "2.0.1", 681 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 682 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 683 | "dev": true, 684 | "requires": { 685 | "pinkie": "^2.0.0" 686 | } 687 | }, 688 | "prelude-ls": { 689 | "version": "1.1.2", 690 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 691 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 692 | "dev": true 693 | }, 694 | "reflect-metadata": { 695 | "version": "0.1.13", 696 | "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", 697 | "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", 698 | "dev": true 699 | }, 700 | "regenerator-runtime": { 701 | "version": "0.13.3", 702 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", 703 | "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", 704 | "dev": true 705 | }, 706 | "restore-cursor": { 707 | "version": "2.0.0", 708 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 709 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", 710 | "dev": true, 711 | "requires": { 712 | "onetime": "^2.0.0", 713 | "signal-exit": "^3.0.2" 714 | } 715 | }, 716 | "run-async": { 717 | "version": "2.3.0", 718 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", 719 | "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", 720 | "dev": true, 721 | "requires": { 722 | "is-promise": "^2.1.0" 723 | } 724 | }, 725 | "rx": { 726 | "version": "4.1.0", 727 | "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", 728 | "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", 729 | "dev": true 730 | }, 731 | "safer-buffer": { 732 | "version": "2.1.2", 733 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 734 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 735 | "dev": true 736 | }, 737 | "signal-exit": { 738 | "version": "3.0.2", 739 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 740 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 741 | "dev": true 742 | }, 743 | "source-map": { 744 | "version": "0.2.0", 745 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", 746 | "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", 747 | "dev": true, 748 | "optional": true, 749 | "requires": { 750 | "amdefine": ">=0.0.4" 751 | } 752 | }, 753 | "source-map-support": { 754 | "version": "0.5.16", 755 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", 756 | "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", 757 | "dev": true, 758 | "requires": { 759 | "buffer-from": "^1.0.0", 760 | "source-map": "^0.6.0" 761 | }, 762 | "dependencies": { 763 | "source-map": { 764 | "version": "0.6.1", 765 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 766 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 767 | "dev": true 768 | } 769 | } 770 | }, 771 | "string-template": { 772 | "version": "1.0.0", 773 | "resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz", 774 | "integrity": "sha1-np8iM9wA8hhxjsN5oopWc+zKi5Y=", 775 | "dev": true 776 | }, 777 | "string-width": { 778 | "version": "2.1.1", 779 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 780 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 781 | "dev": true, 782 | "requires": { 783 | "is-fullwidth-code-point": "^2.0.0", 784 | "strip-ansi": "^4.0.0" 785 | }, 786 | "dependencies": { 787 | "ansi-regex": { 788 | "version": "3.0.0", 789 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 790 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 791 | "dev": true 792 | }, 793 | "strip-ansi": { 794 | "version": "4.0.0", 795 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 796 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 797 | "dev": true, 798 | "requires": { 799 | "ansi-regex": "^3.0.0" 800 | } 801 | } 802 | } 803 | }, 804 | "strip-ansi": { 805 | "version": "3.0.1", 806 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 807 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 808 | "dev": true, 809 | "requires": { 810 | "ansi-regex": "^2.0.0" 811 | } 812 | }, 813 | "supports-color": { 814 | "version": "7.1.0", 815 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", 816 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", 817 | "dev": true, 818 | "requires": { 819 | "has-flag": "^4.0.0" 820 | } 821 | }, 822 | "through": { 823 | "version": "2.3.8", 824 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 825 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 826 | "dev": true 827 | }, 828 | "tmp": { 829 | "version": "0.0.33", 830 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 831 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 832 | "dev": true, 833 | "requires": { 834 | "os-tmpdir": "~1.0.2" 835 | } 836 | }, 837 | "tslib": { 838 | "version": "1.10.0", 839 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", 840 | "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", 841 | "dev": true 842 | }, 843 | "type-check": { 844 | "version": "0.3.2", 845 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 846 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 847 | "dev": true, 848 | "requires": { 849 | "prelude-ls": "~1.1.2" 850 | } 851 | }, 852 | "validator": { 853 | "version": "12.0.0", 854 | "resolved": "https://registry.npmjs.org/validator/-/validator-12.0.0.tgz", 855 | "integrity": "sha512-r5zA1cQBEOgYlesRmSEwc9LkbfNLTtji+vWyaHzRZUxCTHdsX3bd+sdHfs5tGZ2W6ILGGsxWxCNwT/h3IY/3ng==", 856 | "dev": true 857 | }, 858 | "word-wrap": { 859 | "version": "1.2.3", 860 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 861 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 862 | "dev": true 863 | } 864 | } 865 | } 866 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-obfuscate", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "Germey", 10 | "license": "MIT", 11 | "devDependencies": { 12 | "javascript-obfuscator": "^0.18.8" 13 | } 14 | } 15 | --------------------------------------------------------------------------------