├── .eslintrc.json ├── .forceignore ├── .gitignore ├── .prettierignore ├── .prettierrc ├── .vscode ├── extensions.json ├── launch.json └── settings.json ├── LICENSE ├── README.md ├── config └── project-scratch-def.json ├── force-app └── main │ └── default │ ├── aura │ └── anyLocalAction │ │ ├── anyLocalAction.cmp │ │ ├── anyLocalAction.cmp-meta.xml │ │ ├── anyLocalAction.design │ │ └── anyLocalActionController.js │ ├── classes │ ├── DeserializeInvocable.cls │ ├── DeserializeInvocable.cls-meta.xml │ ├── DeserializeInvocableTest.cls │ ├── DeserializeInvocableTest.cls-meta.xml │ ├── SerializeInvocable.cls │ ├── SerializeInvocable.cls-meta.xml │ ├── SerializeInvocableTest.cls │ └── SerializeInvocableTest.cls-meta.xml │ └── flows │ └── Test_Any_flow_Local_Action.flow-meta.xml ├── media ├── flow-anyaction-2.gif └── flow-anyaction-3.gif ├── package-lock.json ├── package.json └── sfdx-project.json /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es6": true 5 | }, 6 | "extends": "eslint:recommended", 7 | "globals": { 8 | "Atomics": "readonly", 9 | "SharedArrayBuffer": "readonly" 10 | }, 11 | "parserOptions": { 12 | "ecmaVersion": 2018, 13 | "sourceType": "module" 14 | }, 15 | "rules": { 16 | } 17 | } -------------------------------------------------------------------------------- /.forceignore: -------------------------------------------------------------------------------- 1 | # List files or directories below to ignore them when running force:source:push, force:source:pull, and force:source:status 2 | # More information: https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_exclude_source.htm 3 | # 4 | 5 | package.xml 6 | 7 | # LWC configuration files 8 | **/jsconfig.json 9 | **/.eslintrc.json 10 | 11 | # LWC Jest 12 | **/__tests__/** 13 | 14 | # Profiles 15 | **/profiles/** 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # This file is used for Git repositories to specify intentionally untracked files that Git should ignore. 2 | # If you are not using git, you can delete this file. For more information see: https://git-scm.com/docs/gitignore 3 | # For useful gitignore templates see: https://github.com/github/gitignore 4 | 5 | # Salesforce cache 6 | .sfdx/ 7 | .localdevserver/ 8 | 9 | # LWC VSCode autocomplete 10 | **/lwc/jsconfig.json 11 | 12 | # Logs 13 | logs 14 | *.log 15 | npm-debug.log* 16 | yarn-debug.log* 17 | yarn-error.log* 18 | 19 | # Dependency directories 20 | node_modules/ 21 | 22 | # Eslint cache 23 | .eslintcache 24 | 25 | # MacOS system files 26 | .DS_Store 27 | 28 | # Windows system files 29 | Thumbs.db 30 | ehthumbs.db 31 | [Dd]esktop.ini 32 | $RECYCLE.BIN/ 33 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # List files or directories below to ignore them when running prettier 2 | # More information: https://prettier.io/docs/en/ignore.html 3 | # 4 | 5 | .sfdx 6 | .localdevserver -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "none", 3 | "overrides": [ 4 | { 5 | "files": "**/lwc/**/*.html", 6 | "options": { "parser": "lwc" } 7 | }, 8 | { 9 | "files": "*.{cmp,page,component}", 10 | "options": { "parser": "html" } 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "salesforce.salesforcedx-vscode", 4 | "redhat.vscode-xml", 5 | "dbaeumer.vscode-eslint", 6 | "esbenp.prettier-vscode" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "name": "Launch Apex Replay Debugger", 9 | "type": "apex-replay", 10 | "request": "launch", 11 | "logFile": "${command:AskForLogFileName}", 12 | "stopOnEntry": true, 13 | "trace": true 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "search.exclude": { 3 | "**/node_modules": true, 4 | "**/bower_components": true, 5 | "**/.sfdx": true 6 | } 7 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Suraj Pillai 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. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Execute any JS in Screen Flows. Work around the limitations of flows using JS 2 | 3 | Convert strings in flows to arrays/collections, concat, use map, reduce, filters, and more..!. 4 | 5 | Use Invocable Actions to serialize record collections and deserialize them back after processing. So flows can now be as simple as `Get Records -> Serialize -> Process using JS -> Deserialize -> Update Records`. Avoid loops and make your flows more linear. A sample flow is included. 6 | 7 | Example 1: JS Only (No Record interactions) 8 | 9 | ![](media/flow-anyaction-2.gif) 10 | 11 | Example 2: Get Records -> Serialize -> Add Phone and Type using JS -> Deserialize -> Update Records 12 | 13 | ![](media/flow-anyaction-3.gif) 14 | -------------------------------------------------------------------------------- /config/project-scratch-def.json: -------------------------------------------------------------------------------- 1 | { 2 | "orgName": "suraj company", 3 | "edition": "Developer", 4 | "features": [] 5 | } 6 | -------------------------------------------------------------------------------- /force-app/main/default/aura/anyLocalAction/anyLocalAction.cmp: -------------------------------------------------------------------------------- 1 | 2 | 9 | 15 | 21 | 27 | 33 | 34 | -------------------------------------------------------------------------------- /force-app/main/default/aura/anyLocalAction/anyLocalAction.cmp-meta.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 48.0 4 | A Lightning Component Bundle 5 | -------------------------------------------------------------------------------- /force-app/main/default/aura/anyLocalAction/anyLocalAction.design: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /force-app/main/default/aura/anyLocalAction/anyLocalActionController.js: -------------------------------------------------------------------------------- 1 | ({ 2 | invoke: function (component) { 3 | let js = component.get("v.js"); 4 | let showError = component.get("v.showErrorToast"); 5 | try { 6 | let args = JSON.parse(component.get("v.args") || "{}"); 7 | let op = Function("args", `${js}`)(args); 8 | if (Array.isArray(op)) component.set("v.outputArray", op); 9 | else component.set("v.output", op); 10 | } catch (err) { 11 | console.error(err); 12 | if (showError) { 13 | //eslint-disable-next-line 14 | let toastEvent = $A.get("e.force:showToast"); 15 | toastEvent.setParams({ title: "Error!", message: err.message }); 16 | toastEvent.fire(); 17 | } 18 | throw err; 19 | } 20 | } 21 | }); 22 | -------------------------------------------------------------------------------- /force-app/main/default/classes/DeserializeInvocable.cls: -------------------------------------------------------------------------------- 1 | /** 2 | Deserialize collection of records 3 | @author Suraj Pillai 4 | **/ 5 | public with sharing class DeserializeInvocable { 6 | @InvocableMethod( 7 | label='Deserialize' 8 | description='Deserialize SObject Collection' 9 | ) 10 | public static List deserialize(List recordsArrayStr) { 11 | List opArray = new List(); 12 | for (String record : recordsArrayStr) { 13 | opArray.add((SObject[]) JSON.deserialize(record, List.class)); 14 | } 15 | return opArray; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /force-app/main/default/classes/DeserializeInvocable.cls-meta.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 48.0 4 | Active 5 | 6 | -------------------------------------------------------------------------------- /force-app/main/default/classes/DeserializeInvocableTest.cls: -------------------------------------------------------------------------------- 1 | @isTest 2 | public with sharing class DeserializeInvocableTest { 3 | @isTest 4 | public static void testDeserialize() { 5 | String[] acctStringArray = new List{ 6 | '[{"attributes":{"type":"Account"},"Name":"Sample 1","Rating":"Hot","Industry":"Agriculture"},{"attributes":{"type":"Account"},"Name":"Sample 2","Rating":"Warm","Industry":"Healthcare"}]' 7 | }; 8 | List sobjectListArray = DeserializeInvocable.deserialize( 9 | acctStringArray 10 | ); 11 | Account[] acctsList = (Account[]) sobjectListArray[0]; 12 | system.assertEquals(2, acctsList.size()); 13 | system.assertEquals('Sample 1', acctsList[0].Name); 14 | system.assertEquals('Agriculture', acctsList[0].Industry); 15 | system.assertEquals('Healthcare', acctsList[1].Industry); 16 | system.assertEquals('Sample 2', acctsList[1].Name); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /force-app/main/default/classes/DeserializeInvocableTest.cls-meta.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 48.0 4 | Active 5 | 6 | -------------------------------------------------------------------------------- /force-app/main/default/classes/SerializeInvocable.cls: -------------------------------------------------------------------------------- 1 | /** 2 | Serialize Record Collection 3 | @author Suraj Pillai 4 | **/ 5 | public with sharing class SerializeInvocable { 6 | @InvocableMethod(label='Serialize' description='Serialize SObjec') 7 | public static List doSerialize(List sobjectArrays) { 8 | String[] arraysList = new List{}; 9 | for (SObject[] recArr : sobjectArrays) { 10 | arraysList.add(JSON.serialize(recArr)); 11 | } 12 | return arraysList; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /force-app/main/default/classes/SerializeInvocable.cls-meta.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 48.0 4 | Active 5 | 6 | -------------------------------------------------------------------------------- /force-app/main/default/classes/SerializeInvocableTest.cls: -------------------------------------------------------------------------------- 1 | @isTest 2 | public with sharing class SerializeInvocableTest { 3 | @isTest 4 | public static void testSerialize() { 5 | Account[] acctsList = new List{}; 6 | acctsList.add( 7 | new Account(name = 'Sample 1', Rating = 'Hot', Industry = 'Agriculture') 8 | ); 9 | acctsList.add( 10 | new Account(name = 'Sample 2', Rating = 'Warm', Industry = 'Healthcare`') 11 | ); 12 | String[] acctsListString = SerializeInvocable.doSerialize( 13 | new List{ acctsList } 14 | ); 15 | system.assertEquals('[{"attributes":{"type":"Account"},"Name":"Sample 1","Rating":"Hot","Industry":"Agriculture"},{"attributes":{"type":"Account"},"Name":"Sample 2","Rating":"Warm","Industry":"Healthcare`"}]',acctsListString[0]); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /force-app/main/default/classes/SerializeInvocableTest.cls-meta.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 48.0 4 | Active 5 | 6 | -------------------------------------------------------------------------------- /force-app/main/default/flows/Test_Any_flow_Local_Action.flow-meta.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Add_Account_Phone 5 | 6 | 286 7 | 265 8 | c:anyLocalAction 9 | component 10 | 11 | Deserialize_Accounts 12 | 13 | 14 | args 15 | 16 | {"names":{!vAccountsCollStr}} 17 | 18 | 19 | 20 | js 21 | 22 | return JSON.stringify(args.names.map(row=>{row.Phone='33243242';row.Type='Customer - Direct';return row})) 23 | 24 | 25 | 26 | vActionOpString 27 | output 28 | 29 | 30 | vActionOpArray 31 | outputArray 32 | 33 | 34 | 35 | Deserialize_Accounts 36 | 37 | 457 38 | 125 39 | DeserializeInvocable 40 | apex 41 | 42 | UpdateAccountRecords 43 | 44 | 45 | U__output 46 | Account 47 | 48 | 49 | recordsArrayStr 50 | 51 | vActionOpString 52 | 53 | 54 | 55 | AccountsColl 56 | output 57 | 58 | 59 | 60 | Serialize_Accounts_Coll 61 | 62 | 138 63 | 228 64 | SerializeInvocable 65 | apex 66 | 67 | Add_Account_Phone 68 | 69 | 70 | T__sobjectArrays 71 | Account 72 | 73 | 74 | sobjectArrays 75 | 76 | AccountsColl 77 | 78 | 79 | 80 | vAccountsCollStr 81 | output 82 | 83 | 84 | Test Any flow Local Action {!$Flow.CurrentDateTime} 85 | 86 | 87 | BuilderType 88 | 89 | LightningFlowBuilder 90 | 91 | 92 | 93 | OriginBuilderType 94 | 95 | LightningFlowBuilder 96 | 97 | 98 | Flow 99 | 100 | Get_Accounts 101 | 102 | 233 103 | 92 104 | true 105 | 106 | Serialize_Accounts_Coll 107 | 108 | Account 109 | AccountsColl 110 | Id 111 | Name 112 | Industry 113 | 114 | 115 | UpdateAccountRecords 116 | 117 | 658 118 | 107 119 | AccountsColl 120 | 121 | 122 | 50 123 | 50 124 | 125 | Get_Accounts 126 | 127 | 128 | Draft 129 | 130 | AccountsColl 131 | SObject 132 | true 133 | false 134 | false 135 | Account 136 | 137 | 138 | vAccountsCollStr 139 | String 140 | false 141 | false 142 | false 143 | 144 | 145 | vActionOpArray 146 | String 147 | true 148 | false 149 | false 150 | 151 | 152 | vActionOpString 153 | String 154 | false 155 | false 156 | false 157 | 158 | 159 | vLoopVar 160 | String 161 | false 162 | false 163 | false 164 | 165 | 166 | -------------------------------------------------------------------------------- /media/flow-anyaction-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surajp/any-js-local-action/225d6e387f9bdd8acf53a44de9ab22c2fb04fb3b/media/flow-anyaction-2.gif -------------------------------------------------------------------------------- /media/flow-anyaction-3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/surajp/any-js-local-action/225d6e387f9bdd8acf53a44de9ab22c2fb04fb3b/media/flow-anyaction-3.gif -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "any-js-local-action", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.10.1", 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", 10 | "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", 11 | "dev": true, 12 | "requires": { 13 | "@babel/highlight": "^7.10.1" 14 | } 15 | }, 16 | "@babel/helper-validator-identifier": { 17 | "version": "7.10.1", 18 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", 19 | "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", 20 | "dev": true 21 | }, 22 | "@babel/highlight": { 23 | "version": "7.10.1", 24 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", 25 | "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", 26 | "dev": true, 27 | "requires": { 28 | "@babel/helper-validator-identifier": "^7.10.1", 29 | "chalk": "^2.0.0", 30 | "js-tokens": "^4.0.0" 31 | }, 32 | "dependencies": { 33 | "chalk": { 34 | "version": "2.4.2", 35 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 36 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 37 | "dev": true, 38 | "requires": { 39 | "ansi-styles": "^3.2.1", 40 | "escape-string-regexp": "^1.0.5", 41 | "supports-color": "^5.3.0" 42 | } 43 | } 44 | } 45 | }, 46 | "@types/color-name": { 47 | "version": "1.1.1", 48 | "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", 49 | "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", 50 | "dev": true 51 | }, 52 | "acorn": { 53 | "version": "7.3.1", 54 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", 55 | "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", 56 | "dev": true 57 | }, 58 | "acorn-jsx": { 59 | "version": "5.2.0", 60 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", 61 | "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", 62 | "dev": true 63 | }, 64 | "ajv": { 65 | "version": "6.12.2", 66 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", 67 | "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", 68 | "dev": true, 69 | "requires": { 70 | "fast-deep-equal": "^3.1.1", 71 | "fast-json-stable-stringify": "^2.0.0", 72 | "json-schema-traverse": "^0.4.1", 73 | "uri-js": "^4.2.2" 74 | } 75 | }, 76 | "ansi-escapes": { 77 | "version": "4.3.1", 78 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", 79 | "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", 80 | "dev": true, 81 | "requires": { 82 | "type-fest": "^0.11.0" 83 | }, 84 | "dependencies": { 85 | "type-fest": { 86 | "version": "0.11.0", 87 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", 88 | "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", 89 | "dev": true 90 | } 91 | } 92 | }, 93 | "ansi-regex": { 94 | "version": "5.0.0", 95 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 96 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", 97 | "dev": true 98 | }, 99 | "ansi-styles": { 100 | "version": "3.2.1", 101 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 102 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 103 | "dev": true, 104 | "requires": { 105 | "color-convert": "^1.9.0" 106 | } 107 | }, 108 | "argparse": { 109 | "version": "1.0.10", 110 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 111 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 112 | "dev": true, 113 | "requires": { 114 | "sprintf-js": "~1.0.2" 115 | } 116 | }, 117 | "astral-regex": { 118 | "version": "1.0.0", 119 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", 120 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", 121 | "dev": true 122 | }, 123 | "balanced-match": { 124 | "version": "1.0.0", 125 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 126 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 127 | "dev": true 128 | }, 129 | "brace-expansion": { 130 | "version": "1.1.11", 131 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 132 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 133 | "dev": true, 134 | "requires": { 135 | "balanced-match": "^1.0.0", 136 | "concat-map": "0.0.1" 137 | } 138 | }, 139 | "callsites": { 140 | "version": "3.1.0", 141 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 142 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 143 | "dev": true 144 | }, 145 | "chalk": { 146 | "version": "4.1.0", 147 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 148 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 149 | "dev": true, 150 | "requires": { 151 | "ansi-styles": "^4.1.0", 152 | "supports-color": "^7.1.0" 153 | }, 154 | "dependencies": { 155 | "ansi-styles": { 156 | "version": "4.2.1", 157 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", 158 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", 159 | "dev": true, 160 | "requires": { 161 | "@types/color-name": "^1.1.1", 162 | "color-convert": "^2.0.1" 163 | } 164 | }, 165 | "color-convert": { 166 | "version": "2.0.1", 167 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 168 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 169 | "dev": true, 170 | "requires": { 171 | "color-name": "~1.1.4" 172 | } 173 | }, 174 | "color-name": { 175 | "version": "1.1.4", 176 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 177 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 178 | "dev": true 179 | }, 180 | "has-flag": { 181 | "version": "4.0.0", 182 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 183 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 184 | "dev": true 185 | }, 186 | "supports-color": { 187 | "version": "7.1.0", 188 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", 189 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", 190 | "dev": true, 191 | "requires": { 192 | "has-flag": "^4.0.0" 193 | } 194 | } 195 | } 196 | }, 197 | "chardet": { 198 | "version": "0.7.0", 199 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", 200 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", 201 | "dev": true 202 | }, 203 | "cli-cursor": { 204 | "version": "3.1.0", 205 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", 206 | "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", 207 | "dev": true, 208 | "requires": { 209 | "restore-cursor": "^3.1.0" 210 | } 211 | }, 212 | "cli-width": { 213 | "version": "2.2.1", 214 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", 215 | "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", 216 | "dev": true 217 | }, 218 | "color-convert": { 219 | "version": "1.9.3", 220 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 221 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 222 | "dev": true, 223 | "requires": { 224 | "color-name": "1.1.3" 225 | } 226 | }, 227 | "color-name": { 228 | "version": "1.1.3", 229 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 230 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 231 | "dev": true 232 | }, 233 | "concat-map": { 234 | "version": "0.0.1", 235 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 236 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 237 | "dev": true 238 | }, 239 | "cross-spawn": { 240 | "version": "7.0.3", 241 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 242 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 243 | "dev": true, 244 | "requires": { 245 | "path-key": "^3.1.0", 246 | "shebang-command": "^2.0.0", 247 | "which": "^2.0.1" 248 | } 249 | }, 250 | "debug": { 251 | "version": "4.1.1", 252 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 253 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 254 | "dev": true, 255 | "requires": { 256 | "ms": "^2.1.1" 257 | } 258 | }, 259 | "deep-is": { 260 | "version": "0.1.3", 261 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 262 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 263 | "dev": true 264 | }, 265 | "doctrine": { 266 | "version": "3.0.0", 267 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 268 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 269 | "dev": true, 270 | "requires": { 271 | "esutils": "^2.0.2" 272 | } 273 | }, 274 | "emoji-regex": { 275 | "version": "8.0.0", 276 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 277 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 278 | "dev": true 279 | }, 280 | "escape-string-regexp": { 281 | "version": "1.0.5", 282 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 283 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 284 | "dev": true 285 | }, 286 | "eslint": { 287 | "version": "7.2.0", 288 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.2.0.tgz", 289 | "integrity": "sha512-B3BtEyaDKC5MlfDa2Ha8/D6DsS4fju95zs0hjS3HdGazw+LNayai38A25qMppK37wWGWNYSPOR6oYzlz5MHsRQ==", 290 | "dev": true, 291 | "requires": { 292 | "@babel/code-frame": "^7.0.0", 293 | "ajv": "^6.10.0", 294 | "chalk": "^4.0.0", 295 | "cross-spawn": "^7.0.2", 296 | "debug": "^4.0.1", 297 | "doctrine": "^3.0.0", 298 | "eslint-scope": "^5.1.0", 299 | "eslint-utils": "^2.0.0", 300 | "eslint-visitor-keys": "^1.2.0", 301 | "espree": "^7.1.0", 302 | "esquery": "^1.2.0", 303 | "esutils": "^2.0.2", 304 | "file-entry-cache": "^5.0.1", 305 | "functional-red-black-tree": "^1.0.1", 306 | "glob-parent": "^5.0.0", 307 | "globals": "^12.1.0", 308 | "ignore": "^4.0.6", 309 | "import-fresh": "^3.0.0", 310 | "imurmurhash": "^0.1.4", 311 | "inquirer": "^7.0.0", 312 | "is-glob": "^4.0.0", 313 | "js-yaml": "^3.13.1", 314 | "json-stable-stringify-without-jsonify": "^1.0.1", 315 | "levn": "^0.4.1", 316 | "lodash": "^4.17.14", 317 | "minimatch": "^3.0.4", 318 | "natural-compare": "^1.4.0", 319 | "optionator": "^0.9.1", 320 | "progress": "^2.0.0", 321 | "regexpp": "^3.1.0", 322 | "semver": "^7.2.1", 323 | "strip-ansi": "^6.0.0", 324 | "strip-json-comments": "^3.1.0", 325 | "table": "^5.2.3", 326 | "text-table": "^0.2.0", 327 | "v8-compile-cache": "^2.0.3" 328 | } 329 | }, 330 | "eslint-scope": { 331 | "version": "5.1.0", 332 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", 333 | "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", 334 | "dev": true, 335 | "requires": { 336 | "esrecurse": "^4.1.0", 337 | "estraverse": "^4.1.1" 338 | } 339 | }, 340 | "eslint-utils": { 341 | "version": "2.0.0", 342 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", 343 | "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", 344 | "dev": true, 345 | "requires": { 346 | "eslint-visitor-keys": "^1.1.0" 347 | } 348 | }, 349 | "eslint-visitor-keys": { 350 | "version": "1.2.0", 351 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz", 352 | "integrity": "sha512-WFb4ihckKil6hu3Dp798xdzSfddwKKU3+nGniKF6HfeW6OLd2OUDEPP7TcHtB5+QXOKg2s6B2DaMPE1Nn/kxKQ==", 353 | "dev": true 354 | }, 355 | "espree": { 356 | "version": "7.1.0", 357 | "resolved": "https://registry.npmjs.org/espree/-/espree-7.1.0.tgz", 358 | "integrity": "sha512-dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw==", 359 | "dev": true, 360 | "requires": { 361 | "acorn": "^7.2.0", 362 | "acorn-jsx": "^5.2.0", 363 | "eslint-visitor-keys": "^1.2.0" 364 | } 365 | }, 366 | "esprima": { 367 | "version": "4.0.1", 368 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 369 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 370 | "dev": true 371 | }, 372 | "esquery": { 373 | "version": "1.3.1", 374 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", 375 | "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", 376 | "dev": true, 377 | "requires": { 378 | "estraverse": "^5.1.0" 379 | }, 380 | "dependencies": { 381 | "estraverse": { 382 | "version": "5.1.0", 383 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", 384 | "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", 385 | "dev": true 386 | } 387 | } 388 | }, 389 | "esrecurse": { 390 | "version": "4.2.1", 391 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", 392 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", 393 | "dev": true, 394 | "requires": { 395 | "estraverse": "^4.1.0" 396 | } 397 | }, 398 | "estraverse": { 399 | "version": "4.3.0", 400 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 401 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 402 | "dev": true 403 | }, 404 | "esutils": { 405 | "version": "2.0.3", 406 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 407 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 408 | "dev": true 409 | }, 410 | "external-editor": { 411 | "version": "3.1.0", 412 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", 413 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", 414 | "dev": true, 415 | "requires": { 416 | "chardet": "^0.7.0", 417 | "iconv-lite": "^0.4.24", 418 | "tmp": "^0.0.33" 419 | } 420 | }, 421 | "fast-deep-equal": { 422 | "version": "3.1.3", 423 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 424 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 425 | "dev": true 426 | }, 427 | "fast-json-stable-stringify": { 428 | "version": "2.1.0", 429 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 430 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 431 | "dev": true 432 | }, 433 | "fast-levenshtein": { 434 | "version": "2.0.6", 435 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 436 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 437 | "dev": true 438 | }, 439 | "figures": { 440 | "version": "3.2.0", 441 | "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", 442 | "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", 443 | "dev": true, 444 | "requires": { 445 | "escape-string-regexp": "^1.0.5" 446 | } 447 | }, 448 | "file-entry-cache": { 449 | "version": "5.0.1", 450 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", 451 | "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", 452 | "dev": true, 453 | "requires": { 454 | "flat-cache": "^2.0.1" 455 | } 456 | }, 457 | "flat-cache": { 458 | "version": "2.0.1", 459 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", 460 | "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", 461 | "dev": true, 462 | "requires": { 463 | "flatted": "^2.0.0", 464 | "rimraf": "2.6.3", 465 | "write": "1.0.3" 466 | } 467 | }, 468 | "flatted": { 469 | "version": "2.0.2", 470 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", 471 | "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", 472 | "dev": true 473 | }, 474 | "fs.realpath": { 475 | "version": "1.0.0", 476 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 477 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 478 | "dev": true 479 | }, 480 | "functional-red-black-tree": { 481 | "version": "1.0.1", 482 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 483 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 484 | "dev": true 485 | }, 486 | "glob": { 487 | "version": "7.1.6", 488 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 489 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 490 | "dev": true, 491 | "requires": { 492 | "fs.realpath": "^1.0.0", 493 | "inflight": "^1.0.4", 494 | "inherits": "2", 495 | "minimatch": "^3.0.4", 496 | "once": "^1.3.0", 497 | "path-is-absolute": "^1.0.0" 498 | } 499 | }, 500 | "glob-parent": { 501 | "version": "5.1.2", 502 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 503 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 504 | "dev": true, 505 | "requires": { 506 | "is-glob": "^4.0.1" 507 | } 508 | }, 509 | "globals": { 510 | "version": "12.4.0", 511 | "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", 512 | "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", 513 | "dev": true, 514 | "requires": { 515 | "type-fest": "^0.8.1" 516 | } 517 | }, 518 | "has-flag": { 519 | "version": "3.0.0", 520 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 521 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 522 | "dev": true 523 | }, 524 | "iconv-lite": { 525 | "version": "0.4.24", 526 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 527 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 528 | "dev": true, 529 | "requires": { 530 | "safer-buffer": ">= 2.1.2 < 3" 531 | } 532 | }, 533 | "ignore": { 534 | "version": "4.0.6", 535 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", 536 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", 537 | "dev": true 538 | }, 539 | "import-fresh": { 540 | "version": "3.2.1", 541 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", 542 | "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", 543 | "dev": true, 544 | "requires": { 545 | "parent-module": "^1.0.0", 546 | "resolve-from": "^4.0.0" 547 | } 548 | }, 549 | "imurmurhash": { 550 | "version": "0.1.4", 551 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 552 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 553 | "dev": true 554 | }, 555 | "inflight": { 556 | "version": "1.0.6", 557 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 558 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 559 | "dev": true, 560 | "requires": { 561 | "once": "^1.3.0", 562 | "wrappy": "1" 563 | } 564 | }, 565 | "inherits": { 566 | "version": "2.0.4", 567 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 568 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 569 | "dev": true 570 | }, 571 | "inquirer": { 572 | "version": "7.1.0", 573 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", 574 | "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", 575 | "dev": true, 576 | "requires": { 577 | "ansi-escapes": "^4.2.1", 578 | "chalk": "^3.0.0", 579 | "cli-cursor": "^3.1.0", 580 | "cli-width": "^2.0.0", 581 | "external-editor": "^3.0.3", 582 | "figures": "^3.0.0", 583 | "lodash": "^4.17.15", 584 | "mute-stream": "0.0.8", 585 | "run-async": "^2.4.0", 586 | "rxjs": "^6.5.3", 587 | "string-width": "^4.1.0", 588 | "strip-ansi": "^6.0.0", 589 | "through": "^2.3.6" 590 | }, 591 | "dependencies": { 592 | "ansi-styles": { 593 | "version": "4.2.1", 594 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", 595 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", 596 | "dev": true, 597 | "requires": { 598 | "@types/color-name": "^1.1.1", 599 | "color-convert": "^2.0.1" 600 | } 601 | }, 602 | "chalk": { 603 | "version": "3.0.0", 604 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", 605 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", 606 | "dev": true, 607 | "requires": { 608 | "ansi-styles": "^4.1.0", 609 | "supports-color": "^7.1.0" 610 | } 611 | }, 612 | "color-convert": { 613 | "version": "2.0.1", 614 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 615 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 616 | "dev": true, 617 | "requires": { 618 | "color-name": "~1.1.4" 619 | } 620 | }, 621 | "color-name": { 622 | "version": "1.1.4", 623 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 624 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 625 | "dev": true 626 | }, 627 | "has-flag": { 628 | "version": "4.0.0", 629 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 630 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 631 | "dev": true 632 | }, 633 | "supports-color": { 634 | "version": "7.1.0", 635 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", 636 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", 637 | "dev": true, 638 | "requires": { 639 | "has-flag": "^4.0.0" 640 | } 641 | } 642 | } 643 | }, 644 | "is-extglob": { 645 | "version": "2.1.1", 646 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 647 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 648 | "dev": true 649 | }, 650 | "is-fullwidth-code-point": { 651 | "version": "3.0.0", 652 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 653 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 654 | "dev": true 655 | }, 656 | "is-glob": { 657 | "version": "4.0.1", 658 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 659 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 660 | "dev": true, 661 | "requires": { 662 | "is-extglob": "^2.1.1" 663 | } 664 | }, 665 | "isexe": { 666 | "version": "2.0.0", 667 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 668 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 669 | "dev": true 670 | }, 671 | "js-tokens": { 672 | "version": "4.0.0", 673 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 674 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 675 | "dev": true 676 | }, 677 | "js-yaml": { 678 | "version": "3.14.0", 679 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", 680 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", 681 | "dev": true, 682 | "requires": { 683 | "argparse": "^1.0.7", 684 | "esprima": "^4.0.0" 685 | } 686 | }, 687 | "json-schema-traverse": { 688 | "version": "0.4.1", 689 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 690 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 691 | "dev": true 692 | }, 693 | "json-stable-stringify-without-jsonify": { 694 | "version": "1.0.1", 695 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 696 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 697 | "dev": true 698 | }, 699 | "levn": { 700 | "version": "0.4.1", 701 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 702 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 703 | "dev": true, 704 | "requires": { 705 | "prelude-ls": "^1.2.1", 706 | "type-check": "~0.4.0" 707 | } 708 | }, 709 | "lodash": { 710 | "version": "4.17.21", 711 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 712 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 713 | "dev": true 714 | }, 715 | "mimic-fn": { 716 | "version": "2.1.0", 717 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 718 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 719 | "dev": true 720 | }, 721 | "minimatch": { 722 | "version": "3.0.4", 723 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 724 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 725 | "dev": true, 726 | "requires": { 727 | "brace-expansion": "^1.1.7" 728 | } 729 | }, 730 | "minimist": { 731 | "version": "1.2.5", 732 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 733 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 734 | "dev": true 735 | }, 736 | "mkdirp": { 737 | "version": "0.5.5", 738 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 739 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 740 | "dev": true, 741 | "requires": { 742 | "minimist": "^1.2.5" 743 | } 744 | }, 745 | "ms": { 746 | "version": "2.1.2", 747 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 748 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 749 | "dev": true 750 | }, 751 | "mute-stream": { 752 | "version": "0.0.8", 753 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", 754 | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", 755 | "dev": true 756 | }, 757 | "natural-compare": { 758 | "version": "1.4.0", 759 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 760 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 761 | "dev": true 762 | }, 763 | "once": { 764 | "version": "1.4.0", 765 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 766 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 767 | "dev": true, 768 | "requires": { 769 | "wrappy": "1" 770 | } 771 | }, 772 | "onetime": { 773 | "version": "5.1.0", 774 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", 775 | "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", 776 | "dev": true, 777 | "requires": { 778 | "mimic-fn": "^2.1.0" 779 | } 780 | }, 781 | "optionator": { 782 | "version": "0.9.1", 783 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 784 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", 785 | "dev": true, 786 | "requires": { 787 | "deep-is": "^0.1.3", 788 | "fast-levenshtein": "^2.0.6", 789 | "levn": "^0.4.1", 790 | "prelude-ls": "^1.2.1", 791 | "type-check": "^0.4.0", 792 | "word-wrap": "^1.2.3" 793 | } 794 | }, 795 | "os-tmpdir": { 796 | "version": "1.0.2", 797 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 798 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 799 | "dev": true 800 | }, 801 | "parent-module": { 802 | "version": "1.0.1", 803 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 804 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 805 | "dev": true, 806 | "requires": { 807 | "callsites": "^3.0.0" 808 | } 809 | }, 810 | "path-is-absolute": { 811 | "version": "1.0.1", 812 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 813 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 814 | "dev": true 815 | }, 816 | "path-key": { 817 | "version": "3.1.1", 818 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 819 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 820 | "dev": true 821 | }, 822 | "prelude-ls": { 823 | "version": "1.2.1", 824 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 825 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 826 | "dev": true 827 | }, 828 | "progress": { 829 | "version": "2.0.3", 830 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 831 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 832 | "dev": true 833 | }, 834 | "punycode": { 835 | "version": "2.1.1", 836 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 837 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 838 | "dev": true 839 | }, 840 | "regexpp": { 841 | "version": "3.1.0", 842 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", 843 | "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", 844 | "dev": true 845 | }, 846 | "resolve-from": { 847 | "version": "4.0.0", 848 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 849 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 850 | "dev": true 851 | }, 852 | "restore-cursor": { 853 | "version": "3.1.0", 854 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", 855 | "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", 856 | "dev": true, 857 | "requires": { 858 | "onetime": "^5.1.0", 859 | "signal-exit": "^3.0.2" 860 | } 861 | }, 862 | "rimraf": { 863 | "version": "2.6.3", 864 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", 865 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", 866 | "dev": true, 867 | "requires": { 868 | "glob": "^7.1.3" 869 | } 870 | }, 871 | "run-async": { 872 | "version": "2.4.1", 873 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", 874 | "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", 875 | "dev": true 876 | }, 877 | "rxjs": { 878 | "version": "6.5.5", 879 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", 880 | "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", 881 | "dev": true, 882 | "requires": { 883 | "tslib": "^1.9.0" 884 | } 885 | }, 886 | "safer-buffer": { 887 | "version": "2.1.2", 888 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 889 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 890 | "dev": true 891 | }, 892 | "semver": { 893 | "version": "7.3.2", 894 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", 895 | "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", 896 | "dev": true 897 | }, 898 | "shebang-command": { 899 | "version": "2.0.0", 900 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 901 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 902 | "dev": true, 903 | "requires": { 904 | "shebang-regex": "^3.0.0" 905 | } 906 | }, 907 | "shebang-regex": { 908 | "version": "3.0.0", 909 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 910 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 911 | "dev": true 912 | }, 913 | "signal-exit": { 914 | "version": "3.0.3", 915 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 916 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", 917 | "dev": true 918 | }, 919 | "slice-ansi": { 920 | "version": "2.1.0", 921 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", 922 | "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", 923 | "dev": true, 924 | "requires": { 925 | "ansi-styles": "^3.2.0", 926 | "astral-regex": "^1.0.0", 927 | "is-fullwidth-code-point": "^2.0.0" 928 | }, 929 | "dependencies": { 930 | "is-fullwidth-code-point": { 931 | "version": "2.0.0", 932 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 933 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 934 | "dev": true 935 | } 936 | } 937 | }, 938 | "sprintf-js": { 939 | "version": "1.0.3", 940 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 941 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 942 | "dev": true 943 | }, 944 | "string-width": { 945 | "version": "4.2.0", 946 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", 947 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", 948 | "dev": true, 949 | "requires": { 950 | "emoji-regex": "^8.0.0", 951 | "is-fullwidth-code-point": "^3.0.0", 952 | "strip-ansi": "^6.0.0" 953 | } 954 | }, 955 | "strip-ansi": { 956 | "version": "6.0.0", 957 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 958 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 959 | "dev": true, 960 | "requires": { 961 | "ansi-regex": "^5.0.0" 962 | } 963 | }, 964 | "strip-json-comments": { 965 | "version": "3.1.0", 966 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", 967 | "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", 968 | "dev": true 969 | }, 970 | "supports-color": { 971 | "version": "5.5.0", 972 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 973 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 974 | "dev": true, 975 | "requires": { 976 | "has-flag": "^3.0.0" 977 | } 978 | }, 979 | "table": { 980 | "version": "5.4.6", 981 | "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", 982 | "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", 983 | "dev": true, 984 | "requires": { 985 | "ajv": "^6.10.2", 986 | "lodash": "^4.17.14", 987 | "slice-ansi": "^2.1.0", 988 | "string-width": "^3.0.0" 989 | }, 990 | "dependencies": { 991 | "ansi-regex": { 992 | "version": "4.1.0", 993 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 994 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 995 | "dev": true 996 | }, 997 | "emoji-regex": { 998 | "version": "7.0.3", 999 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 1000 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 1001 | "dev": true 1002 | }, 1003 | "is-fullwidth-code-point": { 1004 | "version": "2.0.0", 1005 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 1006 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 1007 | "dev": true 1008 | }, 1009 | "string-width": { 1010 | "version": "3.1.0", 1011 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 1012 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 1013 | "dev": true, 1014 | "requires": { 1015 | "emoji-regex": "^7.0.1", 1016 | "is-fullwidth-code-point": "^2.0.0", 1017 | "strip-ansi": "^5.1.0" 1018 | } 1019 | }, 1020 | "strip-ansi": { 1021 | "version": "5.2.0", 1022 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 1023 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 1024 | "dev": true, 1025 | "requires": { 1026 | "ansi-regex": "^4.1.0" 1027 | } 1028 | } 1029 | } 1030 | }, 1031 | "text-table": { 1032 | "version": "0.2.0", 1033 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 1034 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 1035 | "dev": true 1036 | }, 1037 | "through": { 1038 | "version": "2.3.8", 1039 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 1040 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 1041 | "dev": true 1042 | }, 1043 | "tmp": { 1044 | "version": "0.0.33", 1045 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 1046 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 1047 | "dev": true, 1048 | "requires": { 1049 | "os-tmpdir": "~1.0.2" 1050 | } 1051 | }, 1052 | "tslib": { 1053 | "version": "1.13.0", 1054 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", 1055 | "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", 1056 | "dev": true 1057 | }, 1058 | "type-check": { 1059 | "version": "0.4.0", 1060 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 1061 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 1062 | "dev": true, 1063 | "requires": { 1064 | "prelude-ls": "^1.2.1" 1065 | } 1066 | }, 1067 | "type-fest": { 1068 | "version": "0.8.1", 1069 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", 1070 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", 1071 | "dev": true 1072 | }, 1073 | "uri-js": { 1074 | "version": "4.2.2", 1075 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 1076 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 1077 | "dev": true, 1078 | "requires": { 1079 | "punycode": "^2.1.0" 1080 | } 1081 | }, 1082 | "v8-compile-cache": { 1083 | "version": "2.1.1", 1084 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", 1085 | "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", 1086 | "dev": true 1087 | }, 1088 | "which": { 1089 | "version": "2.0.2", 1090 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1091 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1092 | "dev": true, 1093 | "requires": { 1094 | "isexe": "^2.0.0" 1095 | } 1096 | }, 1097 | "word-wrap": { 1098 | "version": "1.2.3", 1099 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 1100 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 1101 | "dev": true 1102 | }, 1103 | "wrappy": { 1104 | "version": "1.0.2", 1105 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1106 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1107 | "dev": true 1108 | }, 1109 | "write": { 1110 | "version": "1.0.3", 1111 | "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", 1112 | "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", 1113 | "dev": true, 1114 | "requires": { 1115 | "mkdirp": "^0.5.1" 1116 | } 1117 | } 1118 | } 1119 | } 1120 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "any-js-local-action", 3 | "version": "1.0.0", 4 | "description": "Convert strings in flows to arrays/collections, concat, use map, reduce, filters, and more..!.", 5 | "main": "index.js", 6 | "dependencies": {}, 7 | "devDependencies": { 8 | "eslint": "^7.2.0" 9 | }, 10 | "scripts": { 11 | "test": "echo \"Error: no test specified\" && exit 1" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "git@suraj.github.com:surajp/any-js-local-action.git" 16 | }, 17 | "keywords": [], 18 | "author": "", 19 | "license": "ISC" 20 | } 21 | -------------------------------------------------------------------------------- /sfdx-project.json: -------------------------------------------------------------------------------- 1 | { 2 | "packageDirectories": [ 3 | { 4 | "path": "force-app", 5 | "default": true 6 | } 7 | ], 8 | "namespace": "", 9 | "sfdcLoginUrl": "https://login.salesforce.com", 10 | "sourceApiVersion": "48.0" 11 | } --------------------------------------------------------------------------------