├── .github └── FUNDING.yml ├── .gitignore ├── LICENSE ├── README.md ├── index.js ├── manifest.yml ├── package-lock.json └── package.json /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [iamanishroy] -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Tom Bonnike 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # netlify-plugin-js-obfuscator 2 | 3 | A Netlify Build plugin to extract and obfuscate your JavaScript Source Code, which provide protection for your source code. [JS Obfuscator](https://github.com/iamanishroy/netlify-plugin-js-obfuscator), built on top of the [javascript-obfuscator](https://github.com/javascript-obfuscator/javascript-obfuscator). 4 | JavaScript Obfuscator is a powerful free obfuscator for JavaScript, containing a variety of features which provide protection for your source code. 5 | 6 | **Key features:** 7 | 8 | - variables renaming 9 | - strings extraction and encryption 10 | - dead code injection 11 | - control flow flattening 12 | - various code transformations 13 | 14 | The example of obfuscated code: [github.com](https://github.com/javascript-obfuscator/javascript-obfuscator/blob/master/examples/javascript-obfuscator.js) 15 | 16 | ## :warning: Important 17 | 18 | As describe in the [`javascript-obfuscator` package](https://github.com/javascript-obfuscator/javascript-obfuscator/blob/master/README.md#warning-important), code obfuscation may impact your website's performance. 19 | 20 | ## Usage and inputs 21 | 22 | To install the plugin in the Netlify UI, use this [direct in-app installation link](https://app.netlify.com/plugins/netlify-plugin-js-obfuscator/install) or go to the [Plugins directory](https://app.netlify.com/plugins). 23 | 24 | For file-based installation, add it to your `netlify.toml` file. 25 | 26 | ```toml 27 | [[plugins]] 28 | package = "netlify-plugin-js-obfuscator" 29 | 30 | # All inputs are optional, so you can omit this section. 31 | # Defaults are shown below. 32 | # You can also refer to `javascript-obfuscator`’s documentation: https://github.com/javascript-obfuscator/javascript-obfuscator. 33 | [plugins.inputs] 34 | # Compact code output on one line. 35 | compact = false 36 | # Enables numbers conversion to expressions 37 | numbersToExpressions = true 38 | # Enables additional code obfuscation through simplification. 39 | simplify = true 40 | # Randomly shuffles the stringArray array items 41 | shuffleStringArray = true 42 | # Splits literal strings into chunks with length of splitStringsChunkLength option value 43 | splitStrings = true 44 | ``` 45 | 46 | To complete file-based installation, from your project's base directory, use npm package manager to add the plugin to `devDependencies` in `package.json`. 47 | 48 | ```bash 49 | npm install -D netlify-plugin-js-obfuscator 50 | ``` 51 | 52 | Once installed and configured, the plugin will automatically run on the Netlify CI. 53 | 54 | ### Testing locally 55 | 56 | To test this plugin locally, you can use the [Netlify CLI](https://github.com/netlify/cli): 57 | 58 | ```bash 59 | # Install the Netlify CLI. 60 | npm install netlify-cli -g 61 | 62 | # In the project working directory, run the build as Netlify would with the build bot. 63 | netlify build 64 | ``` 65 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | const util = require("util"); 3 | const readFile = util.promisify(fs.readFile); 4 | const writeFile = util.promisify(fs.writeFile); 5 | const readdirp = require("readdirp"); 6 | const JavaScriptObfuscator = require("javascript-obfuscator"); 7 | var excludedDir = ["!node_modules", "!plugins"]; 8 | 9 | // listing all the '.js' files 10 | const getJsFiles = async (directory, func_dir) => { 11 | if (func_dir) { 12 | excludedDir.push(`!${func_dir}`); 13 | } 14 | const files = await readdirp.promise(directory, { 15 | fileFilter: "*.js", 16 | directoryFilter: excludedDir, 17 | }); 18 | return files.map((file) => file.fullPath); 19 | }; 20 | 21 | // Reading the files -> obfuscating the code -> Writing the obfuscated code 22 | const obfuscateCode = async (filePath, custom, utils) => { 23 | var file = await readFile(filePath, "utf8"); 24 | try { 25 | var obfuscationResult = JavaScriptObfuscator.obfuscate(file, { 26 | compact: custom[0], 27 | controlFlowFlattening: true, 28 | controlFlowFlatteningThreshold: 1, 29 | numbersToExpressions: custom[1], 30 | simplify: custom[2], 31 | shuffleStringArray: custom[3], 32 | splitStrings: custom[4], 33 | }); 34 | } catch (error) { 35 | return utils.build.failBuild(`Failed to Obfuscate '${filePath}' .`, { error }); 36 | } 37 | await writeFile(filePath, obfuscationResult.getObfuscatedCode()); 38 | return 1; 39 | }; 40 | module.exports = { 41 | onPostBuild: async ({ inputs, constants, utils }) => { 42 | const jsFiles = await getJsFiles( 43 | constants.PUBLISH_DIR, 44 | constants.FUNCTIONS_SRC 45 | ); 46 | for (const filePath of jsFiles) { 47 | console.log(filePath); 48 | await obfuscateCode( 49 | filePath, 50 | [ 51 | inputs.compact, 52 | inputs.numbersToExpressions, 53 | inputs.simplify, 54 | inputs.shuffleStringArray, 55 | inputs.splitStrings, 56 | ], 57 | utils 58 | ); 59 | } 60 | console.log("JS files successfully Obfuscated!"); 61 | }, 62 | }; 63 | -------------------------------------------------------------------------------- /manifest.yml: -------------------------------------------------------------------------------- 1 | name: netlify-plugin-js-obfuscator 2 | 3 | inputs: 4 | - name: compact 5 | description: Compact code output on one line. 6 | default: false 7 | - name: numbersToExpressions 8 | description: Enables numbers conversion to expressions 9 | default: true 10 | - name: simplify 11 | description: Enables additional code obfuscation through simplification. 12 | default: true 13 | - name: shuffleStringArray 14 | description: Randomly shuffles the stringArray array items 15 | default: true 16 | - name: splitStrings 17 | description: Splits literal strings into chunks with length of splitStringsChunkLength option value 18 | default: true 19 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "netlify-plugin-js-obfuscator", 3 | "version": "1.0.20", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@javascript-obfuscator/escodegen": { 8 | "version": "2.1.1", 9 | "resolved": "https://registry.npmjs.org/@javascript-obfuscator/escodegen/-/escodegen-2.1.1.tgz", 10 | "integrity": "sha512-d5TIrhngNyqphUPgjWRVcepw55+aIrN2YX6BHy+4XOTq3/6AZCFj18Ym0tYSDm8T7+hLN6Culif18cepF/NpDQ==", 11 | "requires": { 12 | "esprima": "^4.0.1", 13 | "estraverse": "^5.2.0", 14 | "esutils": "^2.0.2", 15 | "optionator": "^0.8.1", 16 | "source-map": "~0.6.1" 17 | } 18 | }, 19 | "@nuxtjs/opencollective": { 20 | "version": "0.3.2", 21 | "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", 22 | "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", 23 | "requires": { 24 | "chalk": "^4.1.0", 25 | "consola": "^2.15.0", 26 | "node-fetch": "^2.6.1" 27 | } 28 | }, 29 | "@types/minimatch": { 30 | "version": "3.0.3", 31 | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", 32 | "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" 33 | }, 34 | "@types/validator": { 35 | "version": "13.1.3", 36 | "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.1.3.tgz", 37 | "integrity": "sha512-DaOWN1zf7j+8nHhqXhIgNmS+ltAC53NXqGxYuBhWqWgqolRhddKzfZU814lkHQSTG0IUfQxU7Cg0gb8fFWo2mA==" 38 | }, 39 | "acorn": { 40 | "version": "8.0.4", 41 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.0.4.tgz", 42 | "integrity": "sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ==" 43 | }, 44 | "ansi-styles": { 45 | "version": "4.3.0", 46 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 47 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 48 | "requires": { 49 | "color-convert": "^2.0.1" 50 | } 51 | }, 52 | "array-differ": { 53 | "version": "3.0.0", 54 | "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", 55 | "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==" 56 | }, 57 | "array-filter": { 58 | "version": "1.0.0", 59 | "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", 60 | "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=" 61 | }, 62 | "array-union": { 63 | "version": "2.1.0", 64 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 65 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" 66 | }, 67 | "arrify": { 68 | "version": "2.0.1", 69 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", 70 | "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" 71 | }, 72 | "assert": { 73 | "version": "2.0.0", 74 | "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", 75 | "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", 76 | "requires": { 77 | "es6-object-assign": "^1.1.0", 78 | "is-nan": "^1.2.1", 79 | "object-is": "^1.0.1", 80 | "util": "^0.12.0" 81 | } 82 | }, 83 | "available-typed-arrays": { 84 | "version": "1.0.2", 85 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", 86 | "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", 87 | "requires": { 88 | "array-filter": "^1.0.0" 89 | } 90 | }, 91 | "balanced-match": { 92 | "version": "1.0.0", 93 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 94 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 95 | }, 96 | "brace-expansion": { 97 | "version": "1.1.11", 98 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 99 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 100 | "requires": { 101 | "balanced-match": "^1.0.0", 102 | "concat-map": "0.0.1" 103 | } 104 | }, 105 | "buffer-from": { 106 | "version": "1.1.1", 107 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 108 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" 109 | }, 110 | "call-bind": { 111 | "version": "1.0.2", 112 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 113 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 114 | "requires": { 115 | "function-bind": "^1.1.1", 116 | "get-intrinsic": "^1.0.2" 117 | } 118 | }, 119 | "chalk": { 120 | "version": "4.1.0", 121 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 122 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 123 | "requires": { 124 | "ansi-styles": "^4.1.0", 125 | "supports-color": "^7.1.0" 126 | } 127 | }, 128 | "chance": { 129 | "version": "1.1.7", 130 | "resolved": "https://registry.npmjs.org/chance/-/chance-1.1.7.tgz", 131 | "integrity": "sha512-bua/2cZEfzS6qPm0vi3JEvGNbriDLcMj9lKxCQOjUcCJRcyjA7umP0zZm6bKWWlBN04vA0L99QGH/CZQawr0eg==" 132 | }, 133 | "char-regex": { 134 | "version": "1.0.2", 135 | "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", 136 | "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" 137 | }, 138 | "charenc": { 139 | "version": "0.0.2", 140 | "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", 141 | "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" 142 | }, 143 | "class-validator": { 144 | "version": "0.13.1", 145 | "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.1.tgz", 146 | "integrity": "sha512-zWIeYFhUitvAHBwNhDdCRK09hWx+P0HUwFE8US8/CxFpMVzkUK8RJl7yOIE+BVu2lxyPNgeOaFv78tLE47jBIg==", 147 | "requires": { 148 | "@types/validator": "^13.1.3", 149 | "libphonenumber-js": "^1.9.7", 150 | "validator": "^13.5.2" 151 | } 152 | }, 153 | "color-convert": { 154 | "version": "2.0.1", 155 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 156 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 157 | "requires": { 158 | "color-name": "~1.1.4" 159 | } 160 | }, 161 | "color-name": { 162 | "version": "1.1.4", 163 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 164 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 165 | }, 166 | "commander": { 167 | "version": "7.0.0", 168 | "resolved": "https://registry.npmjs.org/commander/-/commander-7.0.0.tgz", 169 | "integrity": "sha512-ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA==" 170 | }, 171 | "concat-map": { 172 | "version": "0.0.1", 173 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 174 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 175 | }, 176 | "consola": { 177 | "version": "2.15.0", 178 | "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.0.tgz", 179 | "integrity": "sha512-vlcSGgdYS26mPf7qNi+dCisbhiyDnrN1zaRbw3CSuc2wGOMEGGPsp46PdRG5gqXwgtJfjxDkxRNAgRPr1B77vQ==" 180 | }, 181 | "crypt": { 182 | "version": "0.0.2", 183 | "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", 184 | "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" 185 | }, 186 | "deep-is": { 187 | "version": "0.1.3", 188 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 189 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" 190 | }, 191 | "define-properties": { 192 | "version": "1.1.3", 193 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 194 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 195 | "requires": { 196 | "object-keys": "^1.0.12" 197 | } 198 | }, 199 | "es-abstract": { 200 | "version": "1.18.0-next.2", 201 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", 202 | "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", 203 | "requires": { 204 | "call-bind": "^1.0.2", 205 | "es-to-primitive": "^1.2.1", 206 | "function-bind": "^1.1.1", 207 | "get-intrinsic": "^1.0.2", 208 | "has": "^1.0.3", 209 | "has-symbols": "^1.0.1", 210 | "is-callable": "^1.2.2", 211 | "is-negative-zero": "^2.0.1", 212 | "is-regex": "^1.1.1", 213 | "object-inspect": "^1.9.0", 214 | "object-keys": "^1.1.1", 215 | "object.assign": "^4.1.2", 216 | "string.prototype.trimend": "^1.0.3", 217 | "string.prototype.trimstart": "^1.0.3" 218 | } 219 | }, 220 | "es-to-primitive": { 221 | "version": "1.2.1", 222 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 223 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 224 | "requires": { 225 | "is-callable": "^1.1.4", 226 | "is-date-object": "^1.0.1", 227 | "is-symbol": "^1.0.2" 228 | } 229 | }, 230 | "es6-object-assign": { 231 | "version": "1.1.0", 232 | "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", 233 | "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" 234 | }, 235 | "eslint-scope": { 236 | "version": "5.1.1", 237 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", 238 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 239 | "requires": { 240 | "esrecurse": "^4.3.0", 241 | "estraverse": "^4.1.1" 242 | }, 243 | "dependencies": { 244 | "estraverse": { 245 | "version": "4.3.0", 246 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 247 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" 248 | } 249 | } 250 | }, 251 | "esprima": { 252 | "version": "4.0.1", 253 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 254 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" 255 | }, 256 | "esrecurse": { 257 | "version": "4.3.0", 258 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 259 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 260 | "requires": { 261 | "estraverse": "^5.2.0" 262 | } 263 | }, 264 | "estraverse": { 265 | "version": "5.2.0", 266 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", 267 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" 268 | }, 269 | "esutils": { 270 | "version": "2.0.3", 271 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 272 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" 273 | }, 274 | "fast-deep-equal": { 275 | "version": "3.1.3", 276 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 277 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 278 | }, 279 | "fast-levenshtein": { 280 | "version": "2.0.6", 281 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 282 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" 283 | }, 284 | "foreach": { 285 | "version": "2.0.5", 286 | "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", 287 | "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" 288 | }, 289 | "function-bind": { 290 | "version": "1.1.1", 291 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 292 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 293 | }, 294 | "get-intrinsic": { 295 | "version": "1.1.0", 296 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.0.tgz", 297 | "integrity": "sha512-M11rgtQp5GZMZzDL7jLTNxbDfurpzuau5uqRWDPvlHjfvg3TdScAZo96GLvhMjImrmR8uAt0FS2RLoMrfWGKlg==", 298 | "requires": { 299 | "function-bind": "^1.1.1", 300 | "has": "^1.0.3", 301 | "has-symbols": "^1.0.1" 302 | } 303 | }, 304 | "has": { 305 | "version": "1.0.3", 306 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 307 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 308 | "requires": { 309 | "function-bind": "^1.1.1" 310 | } 311 | }, 312 | "has-flag": { 313 | "version": "4.0.0", 314 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 315 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 316 | }, 317 | "has-symbols": { 318 | "version": "1.0.1", 319 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", 320 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" 321 | }, 322 | "inherits": { 323 | "version": "2.0.4", 324 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 325 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 326 | }, 327 | "inversify": { 328 | "version": "5.0.5", 329 | "resolved": "https://registry.npmjs.org/inversify/-/inversify-5.0.5.tgz", 330 | "integrity": "sha512-60QsfPz8NAU/GZqXu8hJ+BhNf/C/c+Hp0eDc6XMIJTxBiP36AQyyQKpBkOVTLWBFDQWYVHpbbEuIsHu9dLuJDA==" 331 | }, 332 | "is-arguments": { 333 | "version": "1.1.0", 334 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", 335 | "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", 336 | "requires": { 337 | "call-bind": "^1.0.0" 338 | } 339 | }, 340 | "is-buffer": { 341 | "version": "1.1.6", 342 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 343 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" 344 | }, 345 | "is-callable": { 346 | "version": "1.2.2", 347 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", 348 | "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" 349 | }, 350 | "is-date-object": { 351 | "version": "1.0.2", 352 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", 353 | "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" 354 | }, 355 | "is-generator-function": { 356 | "version": "1.0.8", 357 | "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz", 358 | "integrity": "sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==" 359 | }, 360 | "is-nan": { 361 | "version": "1.3.2", 362 | "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", 363 | "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", 364 | "requires": { 365 | "call-bind": "^1.0.0", 366 | "define-properties": "^1.1.3" 367 | } 368 | }, 369 | "is-negative-zero": { 370 | "version": "2.0.1", 371 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", 372 | "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" 373 | }, 374 | "is-regex": { 375 | "version": "1.1.1", 376 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", 377 | "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", 378 | "requires": { 379 | "has-symbols": "^1.0.1" 380 | } 381 | }, 382 | "is-symbol": { 383 | "version": "1.0.3", 384 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", 385 | "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", 386 | "requires": { 387 | "has-symbols": "^1.0.1" 388 | } 389 | }, 390 | "is-typed-array": { 391 | "version": "1.1.4", 392 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.4.tgz", 393 | "integrity": "sha512-ILaRgn4zaSrVNXNGtON6iFNotXW3hAPF3+0fB1usg2jFlWqo5fEDdmJkz0zBfoi7Dgskr8Khi2xZ8cXqZEfXNA==", 394 | "requires": { 395 | "available-typed-arrays": "^1.0.2", 396 | "call-bind": "^1.0.0", 397 | "es-abstract": "^1.18.0-next.1", 398 | "foreach": "^2.0.5", 399 | "has-symbols": "^1.0.1" 400 | } 401 | }, 402 | "javascript-obfuscator": { 403 | "version": "2.10.3", 404 | "resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-2.10.3.tgz", 405 | "integrity": "sha512-zyP8KmjGnCkKNE1PYCJ69AkgOXCqiO/kci7fHJc73U9D9Se2E5V5vFd4ftBYihAXovudpJ3tpzbrxaK4IuAZRg==", 406 | "requires": { 407 | "@javascript-obfuscator/escodegen": "2.1.1", 408 | "@nuxtjs/opencollective": "0.3.2", 409 | "acorn": "8.0.4", 410 | "assert": "2.0.0", 411 | "chalk": "4.1.0", 412 | "chance": "1.1.7", 413 | "class-validator": "0.13.1", 414 | "commander": "7.0.0", 415 | "eslint-scope": "5.1.1", 416 | "estraverse": "5.2.0", 417 | "fast-deep-equal": "3.1.3", 418 | "inversify": "5.0.5", 419 | "js-string-escape": "1.0.1", 420 | "md5": "2.3.0", 421 | "mkdirp": "1.0.4", 422 | "multimatch": "5.0.0", 423 | "process": "0.11.10", 424 | "reflect-metadata": "0.1.13", 425 | "source-map-support": "0.5.19", 426 | "string-template": "1.0.0", 427 | "stringz": "2.1.0", 428 | "tslib": "2.1.0" 429 | } 430 | }, 431 | "js-string-escape": { 432 | "version": "1.0.1", 433 | "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", 434 | "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=" 435 | }, 436 | "levn": { 437 | "version": "0.3.0", 438 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 439 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 440 | "requires": { 441 | "prelude-ls": "~1.1.2", 442 | "type-check": "~0.3.2" 443 | } 444 | }, 445 | "libphonenumber-js": { 446 | "version": "1.9.8", 447 | "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.8.tgz", 448 | "integrity": "sha512-gXzuhvlqdH20MlKAy1jXOVouCYByz43ZGCAeNnNuKQXUM+Wl36gbql0M27QQI3ahYCHJErd2W8ciqWweoQdbrQ==" 449 | }, 450 | "md5": { 451 | "version": "2.3.0", 452 | "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", 453 | "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", 454 | "requires": { 455 | "charenc": "0.0.2", 456 | "crypt": "0.0.2", 457 | "is-buffer": "~1.1.6" 458 | } 459 | }, 460 | "minimatch": { 461 | "version": "3.0.4", 462 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 463 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 464 | "requires": { 465 | "brace-expansion": "^1.1.7" 466 | } 467 | }, 468 | "mkdirp": { 469 | "version": "1.0.4", 470 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", 471 | "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" 472 | }, 473 | "multimatch": { 474 | "version": "5.0.0", 475 | "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", 476 | "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", 477 | "requires": { 478 | "@types/minimatch": "^3.0.3", 479 | "array-differ": "^3.0.0", 480 | "array-union": "^2.1.0", 481 | "arrify": "^2.0.1", 482 | "minimatch": "^3.0.4" 483 | } 484 | }, 485 | "node-fetch": { 486 | "version": "2.6.1", 487 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", 488 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" 489 | }, 490 | "object-inspect": { 491 | "version": "1.9.0", 492 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", 493 | "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==" 494 | }, 495 | "object-is": { 496 | "version": "1.1.4", 497 | "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", 498 | "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", 499 | "requires": { 500 | "call-bind": "^1.0.0", 501 | "define-properties": "^1.1.3" 502 | } 503 | }, 504 | "object-keys": { 505 | "version": "1.1.1", 506 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 507 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" 508 | }, 509 | "object.assign": { 510 | "version": "4.1.2", 511 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", 512 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", 513 | "requires": { 514 | "call-bind": "^1.0.0", 515 | "define-properties": "^1.1.3", 516 | "has-symbols": "^1.0.1", 517 | "object-keys": "^1.1.1" 518 | } 519 | }, 520 | "optionator": { 521 | "version": "0.8.3", 522 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", 523 | "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", 524 | "requires": { 525 | "deep-is": "~0.1.3", 526 | "fast-levenshtein": "~2.0.6", 527 | "levn": "~0.3.0", 528 | "prelude-ls": "~1.1.2", 529 | "type-check": "~0.3.2", 530 | "word-wrap": "~1.2.3" 531 | } 532 | }, 533 | "picomatch": { 534 | "version": "2.2.2", 535 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", 536 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" 537 | }, 538 | "prelude-ls": { 539 | "version": "1.1.2", 540 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 541 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" 542 | }, 543 | "process": { 544 | "version": "0.11.10", 545 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 546 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" 547 | }, 548 | "readdirp": { 549 | "version": "3.5.0", 550 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", 551 | "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", 552 | "requires": { 553 | "picomatch": "^2.2.1" 554 | } 555 | }, 556 | "reflect-metadata": { 557 | "version": "0.1.13", 558 | "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", 559 | "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" 560 | }, 561 | "safe-buffer": { 562 | "version": "5.2.1", 563 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 564 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 565 | }, 566 | "source-map": { 567 | "version": "0.6.1", 568 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 569 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" 570 | }, 571 | "source-map-support": { 572 | "version": "0.5.19", 573 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", 574 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", 575 | "requires": { 576 | "buffer-from": "^1.0.0", 577 | "source-map": "^0.6.0" 578 | } 579 | }, 580 | "string-template": { 581 | "version": "1.0.0", 582 | "resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz", 583 | "integrity": "sha1-np8iM9wA8hhxjsN5oopWc+zKi5Y=" 584 | }, 585 | "string.prototype.trimend": { 586 | "version": "1.0.3", 587 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", 588 | "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", 589 | "requires": { 590 | "call-bind": "^1.0.0", 591 | "define-properties": "^1.1.3" 592 | } 593 | }, 594 | "string.prototype.trimstart": { 595 | "version": "1.0.3", 596 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", 597 | "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", 598 | "requires": { 599 | "call-bind": "^1.0.0", 600 | "define-properties": "^1.1.3" 601 | } 602 | }, 603 | "stringz": { 604 | "version": "2.1.0", 605 | "resolved": "https://registry.npmjs.org/stringz/-/stringz-2.1.0.tgz", 606 | "integrity": "sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A==", 607 | "requires": { 608 | "char-regex": "^1.0.2" 609 | } 610 | }, 611 | "supports-color": { 612 | "version": "7.2.0", 613 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 614 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 615 | "requires": { 616 | "has-flag": "^4.0.0" 617 | } 618 | }, 619 | "tslib": { 620 | "version": "2.1.0", 621 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", 622 | "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" 623 | }, 624 | "type-check": { 625 | "version": "0.3.2", 626 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 627 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 628 | "requires": { 629 | "prelude-ls": "~1.1.2" 630 | } 631 | }, 632 | "util": { 633 | "version": "0.12.3", 634 | "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz", 635 | "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==", 636 | "requires": { 637 | "inherits": "^2.0.3", 638 | "is-arguments": "^1.0.4", 639 | "is-generator-function": "^1.0.7", 640 | "is-typed-array": "^1.1.3", 641 | "safe-buffer": "^5.1.2", 642 | "which-typed-array": "^1.1.2" 643 | } 644 | }, 645 | "validator": { 646 | "version": "13.5.2", 647 | "resolved": "https://registry.npmjs.org/validator/-/validator-13.5.2.tgz", 648 | "integrity": "sha512-mD45p0rvHVBlY2Zuy3F3ESIe1h5X58GPfAtslBjY7EtTqGquZTj+VX/J4RnHWN8FKq0C9WRVt1oWAcytWRuYLQ==" 649 | }, 650 | "which-typed-array": { 651 | "version": "1.1.4", 652 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", 653 | "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", 654 | "requires": { 655 | "available-typed-arrays": "^1.0.2", 656 | "call-bind": "^1.0.0", 657 | "es-abstract": "^1.18.0-next.1", 658 | "foreach": "^2.0.5", 659 | "function-bind": "^1.1.1", 660 | "has-symbols": "^1.0.1", 661 | "is-typed-array": "^1.1.3" 662 | } 663 | }, 664 | "word-wrap": { 665 | "version": "1.2.3", 666 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 667 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" 668 | } 669 | } 670 | } 671 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "netlify-plugin-js-obfuscator", 3 | "version": "1.0.20", 4 | "description": "JavaScript Obfuscator for your sites hosted on netlify, which provide protection for your source code.", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/iamanishroy/netlify-plugin-js-obfuscator.git" 12 | }, 13 | "keywords": [ 14 | "netlify", 15 | "netlify-plugin", 16 | "JavaScript", 17 | "JS", 18 | "obfuscator", 19 | "plugin" 20 | ], 21 | "author": "", 22 | "license": "MIT", 23 | "bugs": { 24 | "url": "https://github.com/iamanishroy/netlify-plugin-js-obfuscator/issues" 25 | }, 26 | "homepage": "https://github.com/iamanishroy/netlify-plugin-js-obfuscator#readme", 27 | "dependencies": { 28 | "readdirp": "^3.5.0", 29 | "javascript-obfuscator": "^2.10.3" 30 | } 31 | } 32 | --------------------------------------------------------------------------------