├── .github ├── CONTRIBUTING.md ├── FEATURES.md ├── FUNDING.yml ├── PRIVACY.md ├── README.md ├── USER_AGREEMENT.md ├── changelog.md └── guideIMGS │ ├── LeaveAnStar.png │ └── LogoNodeJS.png ├── LICENSE ├── app ├── Settings │ └── config.js ├── app.js └── methods.js ├── index.js ├── install.bat ├── node version.txt ├── package-lock.json ├── package.json └── start.bat /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to become a contributor? 2 | 3 | ## Contributor License Agreement 4 | 5 | By making a contribution to this project, I certify that: 6 | 7 | * (a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license under which is this project; or 8 | 9 | * (b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or 10 | 11 | * (c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it. 12 | 13 | * (d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. 14 | 15 | ## How to submit your contributions? 16 | 17 | 1. Submit an issue describing your proposed change to the repo in question. 18 | 1. The repo owner will respond to your issue promptly. 19 | 1. Fork the desired repo, develop and test your code changes. 20 | 1. Ensure that your code has an appropriate set of unit tests which all pass. 21 | 1. Submit a pull request writing an detail report with all information about the changes you made. 22 | -------------------------------------------------------------------------------- /.github/FEATURES.md: -------------------------------------------------------------------------------- 1 | # Features 2 | 3 | #### Main features: 4 | 5 | - Accepting incoming friend requests (can be disabled in config) 6 | - Checking and accepting offline friend requests - requests sent while bot was offline - (can be disabled in config) 7 | - Sending welcome message (message can be disabled or set in config) 8 | - After accepting request adding to the group (group can be set in config or inviting disabled) 9 | - Ignoring requests from users that are below level (level can be set in config or put 0 to disable) 10 | - Displaying custom playing game status message. 11 | - Clean and understandable console logs. 12 | - Easy to setup config. 13 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | custom: ["https://refloow.com/cdonate", "https://steamcommunity.com/tradeoffer/new/?partner=994828078&token=XEUdbqp6"] 4 | -------------------------------------------------------------------------------- /.github/PRIVACY.md: -------------------------------------------------------------------------------- 1 | # Privacy Policy 2 | 3 | OSL-Works takes your privacy seriously.
4 | To better protect your privacy we provide this privacy policy notice explaining the way your personal information is collected and used. 5 | 6 | 7 | ## Collection Of Information 8 | 9 | We do not collect/share any of the sensitive information ("You", "The User") provide through use of our software - (Configurations and other sensitive data is stored locally within the app/software files) Please be aware that in case someone gets the files they will have all the credentials and we do not take responsibility in such cases. Make sure that your device is protected and not to share config details with people on the internet. 10 | 11 | In case of project requiring an connection to an database connection details [ip] might be visible to us and the database host but not collected or shared. 12 | 13 | ## Changes To This Privacy Policy 14 | 15 | This Privacy Policy is effective as of (12/30/2020) and will remain in effect except with respect to any changes in its provisions in the future, which will be in effect immediately after being posted on this page. 16 | [We] reserve the right to update or change our Privacy Policy at any time and you should check this Privacy Policy periodically. If we make any material changes to this Privacy Policy, We will notify the users through out the announcements. 17 | 18 | ## Agreement 19 | 20 | By using our software you agree with the terms and conditions stated above. 21 | 22 | 23 | ## Contact Information 24 | 25 | For any questions or concerns regarding the privacy policy, please send us an email to [[refloowlibrarycontact@gmail.com]]. 26 | -------------------------------------------------------------------------------- /.github/README.md: -------------------------------------------------------------------------------- 1 | ### `Read this page before asking any questions` 2 | > **[Important Guides](https://github.com/OSL-Works/Steam-Auto-Friend#important-links)**
3 | > **[Join our DISCORD](discord.gg/4enDY8yhuS)**
4 | 5 |

6 | 7 |

8 | 9 |

10 | About 11 | 12 |

13 | 14 |

15 | Steam-Auto-Friend is Node.js based script for steam to accept all incoming friend requests on steam sending one custom welcome message, adding user to selected group and displaying custom playing game status message. 16 |


17 |

18 | 19 |

20 | GitHub package version 21 | 22 | 23 | GitHub forks 24 | 25 | 26 | GitHub stars 27 | 28 | 29 | GitHub license 30 | 31 | 32 | Support 33 | 34 | 35 | Language 36 | 37 | 38 | Language 39 | 40 | 41 | Steam 42 | 43 |

44 | 45 |

46 | 47 | 48 | 49 |

50 | 51 |

Leave a star, we push updates based on activity

52 | 53 | # Note: 54 | 55 |
56 | 57 | **To everyone who plan to sell our project by stating that they coded it or that they sell edited version.**
58 | **Project is licensed under the MIT license**
59 | 60 | ### "`The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.`"
61 | 62 |
63 | 64 | This means that if you plan to sell our project to make quick buck please keep the copyright notice and copy of original license.
65 | **In case of breaking licensing terms we may take legal charges against you.** 66 | 67 | Project is made open source and **free for all.**
68 | **We cant prohibit reselling of our project but if you do please follow the licensing terms.**
69 | 70 |
71 |
72 | 73 | # Important Links 74 | 75 |
76 | 77 | ### `Setup Guide` 78 | > **[Step By Step Setup Guide](https://github.com/OSL-Works/Steam-Auto-Friend/wiki)**(currenty writing)
79 | ### `Troubleshooting Guide` 80 | > **[List of common user made errors and how to solve them](https://refloow.com/Open-Source-Projects/troubleshooting)**
81 | ### `Contributions` 82 | > **[Want to contribute? Read how](https://github.com/OSL-Works/Steam-Auto-Friend/blob/master/.github/CONTRIBUTING.md)**
83 | ### `Features` 84 | > **[See list of features](https://github.com/OSL-Works/Steam-Auto-Friend/blob/master/.github/FEATURES.md)**
85 | > **[See version changelogs](https://github.com/OSL-Works/Steam-Auto-Friend/blob/master/.github/changelog.md)**
86 | ### `Policies & Agreements` 87 | > **[User Agreement](https://github.com/OSL-Works/Steam-Auto-Friend/blob/master/.github/USER_AGREEMENT.md)**
88 | > **[Privacy Policy](https://github.com/OSL-Works/Steam-Auto-Friend/blob/master/.github/PRIVACY.md)**
89 | ### `FAQ` 90 | > **[Frequently Asked Questions]()**(currenty writing)
91 | 92 | This file will be updated as soon as writing guides has been finished 93 | 94 |
95 | 96 | # DISCORD Support Server 97 | 98 | **https://discord.gg/XxvjjPs** 99 | 100 |
101 | 102 | # Support the project 103 | - **If you like the project and the fact that is free you can support us by giving an donation.** 104 | - We are accepting donations: 105 | 106 | 1. Crypto: https://refloow.com/cdonate 107 | 2. Steam: https://steamcommunity.com/tradeoffer/new/?partner=994828078&token=XEUdbqp6 108 | 109 |
110 | 111 | # Want Improvements ? 112 | 113 | If you have some private requests feel free to contact main dev : https://steamcommunity.com/id/MajokingGames/
114 | Or mail at refloowlibrarycontact@gmail.com
115 | **Note that we wont add any platform breaking TOS Modifications to any of our existing or requested projects** 116 | 117 |
118 | 119 | # Prerequisites 120 | 121 | - Node.js - (Version recommended for most users) (https://nodejs.org/en/) 122 | 123 | - Text editor (recommend sublime: https://www.sublimetext.com/3) 124 | 125 | # Essentials 126 | - Steam Account 127 | - Shared Secret code ([What is ?](https://searchsecurity.techtarget.com/definition/shared-secret) | [How to get it on IOS ?](https://forums.backpack.tf/topic/45995-guide-how-to-get-your-shared-secret-from-ios-device-steam-mobile/) | [How to get it on android ?](https://forums.backpack.tf/topic/46354-guide-how-to-find-the-steam-identity_secret-on-an-android-phone/)) 128 | 129 | # Setup Guide (Step By Step) 130 | 131 | To setup bot follow next steps. 132 | 133 | Step 1 (Get the files) 134 | - Click clone or download, get the files unzip them. 135 | 136 | Step 2 (Install requirements) 137 | - Next thing to install if previously not installed is node.js and text editor 138 | - GET NODE.JS HERE: https://nodejs.org/en/ 139 | - To edit config file you need text editor by choice you can use notepad ++, visual studio code and many more... 140 | - MY CHOICE IS SUBLIME text editor 141 | - GET SUBLIME HERE: https://www.sublimetext.com/3 142 | 143 | Step 3 (Fill config) 144 | - Fill the config with sensitive data such as steam username, password, shared secret. 145 | - Fill the group id (can be found in browser go to group page and inspect element) 146 | - Fill the welcome custom message for bot to sent custom message when request is accepted. 147 | - Personalize configuration in config 148 | 149 | Step 4 (install bot modules) 150 | - Double click install.bat file for modules to be installed. 151 | 152 | Step 5 (run the bot) 153 | - Click start.bat file to run bot. 154 | 155 | If there is any questions feel free to ask me on: https://steamcommunity.com/id/MajokingGames/ 156 | 157 | 158 | ## Stars over time 159 | 160 | [![Stargazers over time](https://starchart.cc/Refloow/Steam-Auto-Friend.svg)](https://starchart.cc/Refloow/Steam-Auto-Friend) 161 | 162 | -------------------------------------------------------------------------------- /.github/USER_AGREEMENT.md: -------------------------------------------------------------------------------- 1 | ## User Agreement 2 | 3 | This "User Agreement" is an agreement between you the ("User") and
4 | provider of this software ("OSL-Works", "Refloow") for project "Steam-Auto-Friend".
5 | 6 | By use of our software, you accept and agree with the terms and conditions of this agreement.
7 | If you do not agree to all of the terms and conditions, then do not install or use 8 | our software. 9 | 10 | 11 | ### 1. Harmfull modifications, breaking Steam's TOS Agreement 12 | 13 | > Project is open source, therefore [project licence](https://github.com/OSL-Works/Steam-Auto-Friend/blob/master/LICENSE) grants: 14 | 15 | Permission for: 16 | 1. Commercial use 17 | 2. Modification 18 | 3. Distribution 19 | 4. Private use
20 | 21 | _By Use/abuse of our project, with or without TOS breaking modifications,
22 | user is responsible for any action that platform might take against the user for using/abusing the project.
23 | Project is for educational purposes. We as the project creators dont encourage people to use the project for any harm against the platform._ 24 | 25 | Part of the [STEAM TOS - Steam Subscriber Agreement](https://store.steampowered.com/subscriber_agreement/)
26 | 27 | > You may not use Cheats, automation software (bots), mods, hacks, or any other unauthorized third-party software, to modify or automate any Subscription Marketplace process. 28 | 29 | > As a Subscriber you may obtain access to certain services, software and content available to Subscribers. The Steam client software and any other software, content, and updates you download or access via Steam, including but not limited to Valve or third-party video games and in-game content, and any virtual items you trade, sell or purchase in a Steam Subscription Marketplace are referred to in this Agreement as “Content and Services”; the rights to access and/or use any Contents and Services accessible through Steam are referred to in this Agreement as "Subscriptions 30 | 31 | Adding modifications for usage of community market or causing the spam on the platform might make the platform to take actions. 32 | -------------------------------------------------------------------------------- /.github/changelog.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | # Version 1.3.1 4 | 5 | ## Improved 6 | 7 | - Compatibility 8 | - Code now works with older and newer versions of nodejs 9 | 10 | ## Added 11 | 12 | - Added two login protocol enabling & disabling two factor auth for an account 13 | 14 | ## Changed 15 | 16 | - Updated all modules to latest versions 17 | - Code has been adjusted to the new module versions 18 | 19 | ## Removed [temporary] - Coming back in next update 20 | 21 | - Level Check filter for accepting friend requests 22 | - %name% feature in welcome message 23 | - Name of user in console logs. 24 | 25 | 26 | 27 | 28 | # PREVIOUS VERSIONS ARE DEPRECIATED BY NEW VERSION OF NODEJS 29 | 30 | Here is a link of the node.js version that previous versions of project are compatible with & will work without any errors: 31 | https://nodejs.org/dist/latest-v12.x/ 32 | 33 | Shod download: 34 | node-v12.19.0-x64.msi 35 | or 36 | node-v12.19.0-x86.msi 37 | 38 | on windows 86x is for x32 systems and for 64x is 64x installer 39 | 40 | 41 | # Version 1.3.0 42 | 43 | - Fixed issue for correctly checking for user level and accepting friend request 44 | - Added sending friend message to accepted offline friend requests 45 | - Separated messaging actions upon accepting friend request to new event (when request accepted) 46 | - Added more detailed comments for everything 47 | - Added option for disabling update notifications 48 | - Added session expire reload 49 | 50 | # Update 1.2.2 51 | 52 | - Added feature (enabled toggling custom displayed message and chaning state to online) 53 | - Added new info messages 54 | - Added new method for togling custom displayed ingame messages 55 | 56 | # Hotfix 1.2.1 57 | - Temporarily Removed some of the features (used to crash bot) untill we re-impliment them (New code will be released in new update 58 | - Features removed: 59 | - Different welcome message for users that waited (added bot while he was offline) 60 | 61 | # Version 1.2.0 62 | - Updated info cmd messages 63 | - Added new cmd info messages 64 | - Added new notes to the code 65 | - Added checking for offline friend requests 66 | - Added sending different message for offline friend requests 67 | - Added new config options 68 | - Options added to config: 69 | Disable responding to offline friend requests (requests that are sent while bot is off) 70 | Option to set different message for offline friend requests 71 | - Added new methods 72 | - Methods added: 73 | messagesEnabledOffline, 74 | acceptFriendsOffline, 75 | manageMessageOffline 76 | - Updated package file 77 | 78 | # Version 1.1.0 79 | - Added changelog 80 | - Updated cmd info messages 81 | - Added new cmd info messages 82 | - Added checking version on github and checking for updates on script that user is running 83 | - Removed non important options in config 84 | - Added minimum level (From now you can in config set if you want bot to ignore friend requests from users that are below set level.) 85 | - Updated config 86 | - Added new options to config 87 | - Options added to config: 88 | Disable welcome message after request is accepted 89 | Disable group invite 90 | Disable friend request accepts (for some reason) 91 | Minimum level option 92 | - Added new modules in package 93 | - All new added modules: 94 | "moment": "^2.22.2", 95 | "request": "2.88.0" 96 | -------------------------------------------------------------------------------- /.github/guideIMGS/LeaveAnStar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Refloow/Steam-Auto-Friend/77c936a61b28910203b07cff830245d2d2ab627c/.github/guideIMGS/LeaveAnStar.png -------------------------------------------------------------------------------- /.github/guideIMGS/LogoNodeJS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Refloow/Steam-Auto-Friend/77c936a61b28910203b07cff830245d2d2ab627c/.github/guideIMGS/LogoNodeJS.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020-2025 Veljko Vuckovic (Refloow.com) 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 | -------------------------------------------------------------------------------- /app/Settings/config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | // Copyright notice: 4 | 5 | /* Original work: Copyright (c) 2020-2024 Veljko Vuckovic (Refloow.com) All rights reserved. 6 | Code origin (Free GitHub publish): https://github.com/Refloow/Steam-Auto-Friend*/ 7 | 8 | 9 | /* 10 | 11 | Want active support and new updates with new features all for free? 12 | 13 | Leave an star on github repo its free ( we push updates based on the engagement ) 14 | Repo link: https://github.com/Refloow/Steam-Auto-Friend 15 | 16 | Discord Support Server: https://discord.gg/D8WCtDD (Open an ticket) 17 | 18 | */ 19 | 20 | 21 | /* 22 | Here is contact info: refloowlibrarycontact@gmail.com 23 | main dev steam: https://steamcommunity.com/id/MajokingGames/ 24 | 25 | * Donations: 26 | Crypto: https://refloow.com/cdonate 27 | Steam: https://steamcommunity.com/tradeoffer/new/?partner=994828078&token=XEUdbqp6 28 | 29 | */ 30 | 31 | 32 | 33 | 34 | // Bot account information // 35 | 36 | accountName: '', 37 | password: '', 38 | 39 | // Set false to disable 40 | Has2FactorAuth: true, // [true/false] - In case account has no authentication set to false and leave shared_secret empty 41 | shared_secret: '', 42 | 43 | // ---------------------------- // 44 | 45 | // Settings // 46 | 47 | // Set false to disable 48 | EnableCustomPlayingMessage: true, // [true/false] Enable or disable | custom playing message if is set to true set it down or if is into false bot will show online state. 49 | CustomPlayingMessage: `Smth`, // Message that will be displayed as playing game if EnableCustomPlayingMessage is set to true | 50 | 51 | 52 | // Set false to disable 53 | group_inviting: false, // [true/false] inviting user to the selected group 54 | INVITETOGROUPID: '', // id of the group that bot will invite user after accepting friend request, make sure you configure it properly if you set group_inviting to true 55 | 56 | // Set false to disable 57 | welcome_message_enable: true, // [true/false] senting message after accepting friend request 58 | add_message: 'Hi, how can i help you ?', // Leave the '%' to get it to replace it with the user's name 59 | // Soon add_offline_message: 'Hi ! Sorry for waiting to be accepted, how can i help you ? ', // Message that bot sent to users which requests that are sent when bot was offline. 60 | 61 | 62 | // Other Features // 63 | 64 | 65 | // Soon adding messages_offline // [true/false] senting message after accepting friend request that is sent offline. 66 | auto_accept: true, // [true/false] Enable or disable automatically accepting friend requests. 67 | auto_accept_offline: true, // [true/false] Enable or disable checking and accepting firend requests that are sent while bot is offline. 68 | UpdateNotif: true, // [true/false] Enable or disable | Notification in dev console uppon new version update 69 | 70 | // Soon adding minimum_level: 0, // Minimum level required to be automatically accepted if setting above is true 71 | // Soon adding minimum_level_offline // Minimum level required to be automaticly accepted if your request is sent while bot is offline 72 | 73 | 74 | checkdata: false, // [true/false] Enable or disable | This feature is used for monitoring it shows scripts ussage of system resources 75 | showtimer: 60000, // Time in ms of cycle when will next info be shown. (By default set to 10min); 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | // Non-important settings // 85 | 86 | clock: 'en', // Language code for your 87 | persona: 'Online', // Steam persona status 88 | game: [440, 730, 735], 89 | } 90 | 91 | -------------------------------------------------------------------------------- /app/app.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | // Copyright notice: 4 | 5 | /*--------------------------------------------------------------------------------------------- 6 | * Original work: Copyright (c) 2020-2024 Veljko Vuckovic (Refloow.com) All rights reserved. 7 | 8 | * Code origin: https://github.com/Refloow/Steam-Auto-Friend 9 | * Developer name: Veljko Vuckovic 10 | * Licensed under the MIT License. See LICENSE in the project root for license information. 11 | * Published License: https://github.com/Refloow/Steam-Auto-Friend/master/LICENSE 12 | 13 | * Contact information: 14 | Discord Support Server: https://discord.gg/D8WCtDD 15 | Main developer steam: https://steamcommunity.com/id/MajokingGames/ 16 | Mail: refloowlibrarycontact@gmail.com 17 | 18 | * Donations: 19 | Crypto: https://refloow.com/cdonate 20 | Steam: https://steamcommunity.com/tradeoffer/new/?partner=994828078&token=XEUdbqp6 21 | 22 | --------------------------------------------------------------------------------------------*/ 23 | 24 | /* 25 | 26 | // legal advice: PERMISSIONS AND RIGHTS 27 | 28 | * License does not prohibit modification, distribution, private/commercial use or sale of copies as long as the original LICENSE file 29 | and authors copyright notice are left as they are in the project files. 30 | * Copyright notice could be included ones or multiple times within the file. 31 | * Copyright notice should not be removed even within the larger works (Larger modifications applied). 32 | * Original file tags cannot be removed without creators exclusive permission. 33 | * Adding own tags in files is possible in case of modification - even in that case original tags must be kept. 34 | * Year on the copyright notice breakdown: 35 | * Generally, the “year of first publication of the work” refers to the year in which the work was first distributed to the public (first year mentioned) 36 | * Any year after represents the year of added modifications. 37 | * Copyright cannot expire so therefore you cannot remove copyright notice if its not updated to the latest year. 38 | * Editing existing copyright notice(s) is also prohibited. 39 | 40 | =================================================================================== 41 | Removing copyright notice & distributing, using or selling the software without 42 | the original license and copyright notice is licence agreement breach and its considered criminal offense and piracy. 43 | =================================================================================== 44 | 45 | */ 46 | 47 | // Checking if all modules are correctly installed 48 | 49 | try { 50 | // Checking if module steam-user is correctly installed 51 | SteamUser = require('steam-user'); 52 | // Checking if module steam-totp is correctly installed 53 | SteamTotp = require('steam-totp'); 54 | // Checking if module steamcommunity is correctly installed 55 | SteamCommunity = require('steamcommunity'); 56 | // Checking if module console-master is correctly installed 57 | Console = require('console-master'); 58 | } catch (ex) { 59 | // If modules are not installed showing an clear error message to user. 60 | console.log('| [Modules] |: Missing dependencies. Install a version with dependecies or use npm install.'); 61 | console.log(ex); 62 | process.exit(1); 63 | } 64 | 65 | // Importing files into project 66 | const config = require('./Settings/config.js'); 67 | const method = require('./methods'); 68 | 69 | // Steam Client Name 70 | const refloow = new SteamUser(); 71 | 72 | // var name; 73 | 74 | // Login option (auto generating 2fa codes) 75 | const logOnOptions2FA = { 76 | accountName: config.accountName, 77 | password: config.password, 78 | twoFactorCode: SteamTotp.generateAuthCode(config.shared_secret) 79 | }; 80 | 81 | // Login option (login without 2fa codes) 82 | const logOnOptionsNO2FA = { 83 | accountName: config.accountName, 84 | password: config.password, 85 | }; 86 | 87 | 88 | // Checking for correct version (updates) for bot on github 89 | 90 | if(method.DisableUpdateNotif()) { 91 | // Checking for new version 92 | method.check(); 93 | } 94 | 95 | // ----------------------------- APP START -------------------------------- 96 | 97 | 98 | // LOGING ON 99 | 100 | // If auto generate method is used use options for login auto 101 | if(method.AutoGenerateLoginCodes()) 102 | { 103 | refloow.logOn(logOnOptions2FA); 104 | } 105 | // If auto generate method is disabled use options for login manual 106 | if(!method.AutoGenerateLoginCodes()) 107 | { 108 | refloow.logOn(logOnOptionsNO2FA); 109 | } 110 | 111 | refloow.on('loggedOn', () => { 112 | refloow.getPersonas([refloow.steamID], (personas) => { 113 | Console.true("| [Refloow] | LOGIN |: User #" + refloow.steamID + " is logged and script is ready to accept incoming friend requests."); 114 | }); 115 | refloow.setPersona(1); 116 | if(method.DisableCustomMessage()) { 117 | Console.true(`| [Refloow] | ONLINE |: Setting Custom Playing Message.`) 118 | refloow.gamesPlayed(config.CustomPlayingMessage); 119 | } else Console.true(`| [Refloow] | ONLINE |: Custom Playing Message is disabled.`) 120 | if(method.acceptFriendsOffline()) { 121 | Console.true(`| [Refloow] | OFFLINE |: Checking for pending requests that are sent offline...`) 122 | } 123 | else 124 | Console.true('| [Refloow] | OFFLINE |: Check for offline requests is disabled. Skiping....') 125 | }); 126 | 127 | 128 | // Script to accept all incoming friend requests welcome them with custom message sent in config and invite them to selected group. 129 | 130 | 131 | refloow.on('friendRelationship', (SENDER, REL) => { 132 | if(method.acceptFriends()) { 133 | if(REL == 2) { 134 | Console.true(`| [Steam] | NEW NOTIFICATION |: Steam ID: ${SENDER.getSteamID64()} has added us!`); 135 | info = 'info'; 136 | 137 | //refloow.getPersonas(SENDER, (personas) => { 138 | 139 | //var persona = personas[SENDER.getSteamID64()]; 140 | //var name = persona ? persona.player_name : (`['${SENDER.getSteamID64()}']`); 141 | 142 | //refloow.getSteamLevels([SENDER], function(results) { 143 | // var level = results[SENDER] 144 | 145 | //Utils.getBadges(SENDER.getSteamID64(), (ERR, DATA, CURRENTLEVEL, XPNEEDED) => { 146 | 147 | //if(method.highEnoughLevel(level)) { 148 | 149 | refloow.addFriend(SENDER); 150 | Console.info(`| [Steam] | FRIEND |: I'm now friends with ${SENDER.getSteamID64()},`); 151 | //} 152 | //else 153 | //Console.info(`| [Steam] | FRIEND |: ${personas[SENDER.steamID].player_name} sent a friend request, not accepting user since his/her level is only ${level}`); 154 | // }); 155 | //}); 156 | } else if (REL === 3) { 157 | if(method.inviteEnabled()) { 158 | refloow.inviteToGroup(SENDER, config.INVITETOGROUPID); 159 | Console.info(`| [Steam] | GROUP |: Invited ${SENDER.getSteamID64()} to the selected group !`); 160 | } else { 161 | Console.info('| [Steam] | GROUP |: User is already in group or group invites are disabled.'); 162 | }; 163 | }} 164 | }); 165 | 166 | 167 | // Alert when someone remove us from friendlist. 168 | 169 | refloow.on('friendRelationship', function (SENDER, REL) { 170 | if (REL == 0) { 171 | Console.fail(`| [Steam] | FRIEND |: USER ID: ${SENDER.getSteamID64()} has deleted us from their friendlist.`); 172 | } 173 | }); 174 | 175 | 176 | // Message uppon friend request accepting event 177 | 178 | refloow.on('friendRelationship', function (SENDER, REL) { 179 | if (REL == 3) { 180 | // refloow.getPersonas(SENDER, (personas) => { 181 | 182 | // var persona = personas[SENDER.getSteamID64()]; 183 | // var name = persona ? persona.player_name : (`['${SENDER.getSteamID64()}']`); 184 | 185 | if(method.messagesEnabled()) { 186 | 187 | refloow.chatMessage(SENDER, config.add_message); 188 | Console.info(`| [Steam] | FRIEND |: I sent a welcome message to ${SENDER.getSteamID64()}: "${config.add_message}"`); 189 | } 190 | else 191 | Console.info(`| [Steam] | FRIEND |: Sending welcome message to user is disabled.`) 192 | // }); 193 | } 194 | }) 195 | 196 | 197 | 198 | 199 | 200 | // Checking and accepting offline pending friend requests. 201 | // SOON ADDING CHECKING LEVEL FOR OFFLINE REQUESTS // 202 | // SOON ADDING SENDING MESSAGES AFTER RESPONDING TO OFFLINE REQUESTS // 203 | 204 | refloow.on("friendsList", function(steamid64, relationship) { 205 | // Check if accepting offline users is turned on. 206 | if(method.acceptFriendsOffline()) { 207 | for (var steamid64 in refloow.myFriends) { 208 | // This is the relation we have with the user. 209 | var relationship = refloow.myFriends[steamid64]; 210 | // Check if they send us a friend request 211 | 212 | if (relationship == SteamUser.EFriendRelationship.RequestRecipient) { 213 | // Add them back. 214 | refloow.addFriend(steamid64); 215 | // DEV Console 216 | Console.info(`| [Steam] | Offline Request |: Accepted offline friend request from: ${steamid64} `); 217 | } 218 | } 219 | } 220 | }); 221 | 222 | // Copyright notice: 223 | 224 | /* Original work: Copyright (c) 2020-2024 Refloow All rights reserved. 225 | Code origin (Free GitHub publish): https://github.com/Refloow/Steam-Auto-Friend*/ 226 | -------------------------------------------------------------------------------- /app/methods.js: -------------------------------------------------------------------------------- 1 | 2 | // Copyright notice: 3 | 4 | /*--------------------------------------------------------------------------------------------- 5 | * Original work: Copyright (c) 2020-2024 Veljko Vuckovic (Refloow.com) All rights reserved. 6 | 7 | * Code origin: https://github.com/Refloow/Steam-Auto-Friend 8 | * Developer name: Veljko Vuckovic 9 | * Licensed under the MIT License. See LICENSE in the project root for license information. 10 | * Published License: https://github.com/Refloow/Steam-Auto-Friend/master/LICENSE 11 | 12 | * Contact information: 13 | Discord Support Server: https://discord.gg/D8WCtDD 14 | Main developer steam: https://steamcommunity.com/id/MajokingGames/ 15 | Mail: refloowlibrarycontact@gmail.com 16 | 17 | * Donations: 18 | Crypto: https://refloow.com/cdonate 19 | Steam: https://steamcommunity.com/tradeoffer/new/?partner=994828078&token=XEUdbqp6 20 | --------------------------------------------------------------------------------------------*/ 21 | 22 | /* 23 | 24 | // legal advice: PERMISSIONS AND RIGHTS 25 | 26 | * License does not prohibit modification, distribution, private/commercial use or sale of copies as long as the original LICENSE file 27 | and authors copyright notice are left as they are in the project files. 28 | * Copyright notice could be included ones or multiple times within the file. 29 | * Copyright notice should not be removed even within the larger works (Larger modifications applied). 30 | * Original file tags cannot be removed without creators exclusive permission. 31 | * Adding own tags in files is possible in case of modification - even in that case original tags must be kept. 32 | * Year on the copyright notice breakdown: 33 | * Generally, the “year of first publication of the work” refers to the year in which the work was first distributed to the public (first year mentioned) 34 | * Any year after represents the year of added modifications. 35 | * Copyright cannot expire so therefore you cannot remove copyright notice if its not updated to the latest year. 36 | * Editing existing copyright notice(s) is also prohibited. 37 | 38 | =================================================================================== 39 | Removing copyright notice & distributing, using or selling the software without 40 | the original license and copyright notice is licence agreement breach and its considered criminal offense and piracy. 41 | =================================================================================== 42 | 43 | */ 44 | 45 | // Checking if all modules are correctly installed 46 | 47 | try { 48 | // Checking if module colors is correctly installed 49 | colors = require('colors'); 50 | // Checking if module moment is correctly installed 51 | moment = require('moment'); 52 | } catch (ex) { 53 | // If modules are not installed showing an clear error message to user. 54 | console.log('| [Modules] |: Missing dependencies. Install a version with dependecies or use npm install.'); 55 | console.log(ex); 56 | process.exit(1); 57 | } 58 | 59 | // Importing files 60 | const package = require('./../package.json'); 61 | const config = require('./Settings/config.js'); 62 | 63 | // Exporting method module 64 | t = module.exports = { 65 | 66 | // Method for disabling update notifications 67 | DisableUpdateNotif: function() { 68 | return config.UpdateNotif == true; 69 | }, 70 | 71 | CheckData: function() { 72 | return config.checkdata == true; 73 | }, 74 | 75 | // Method for disabling adding welcome message 76 | messagesEnabled: function() { 77 | return config.welcome_message_enable == true; 78 | }, 79 | 80 | 81 | // Two login protocol 82 | AutoGenerateLoginCodes: function() { 83 | return config.Has2FactorAuth == true; 84 | }, 85 | 86 | // Method for disabling inviting in selected group 87 | inviteEnabled: function() { 88 | return config.group_inviting == true; 89 | }, 90 | 91 | // Method for disabling auto accepting for friend requests 92 | acceptFriends: function() { 93 | return config.auto_accept == true; 94 | }, 95 | 96 | // Method for disabling accepting offline friend requests 97 | acceptFriendsOffline: function() { 98 | return config.auto_accept_offline == true; 99 | }, 100 | 101 | // Method for checking level 102 | highEnoughLevel: function(level) { 103 | return level >= config.minimum_level; 104 | }, 105 | 106 | // Method for config % name placeholder 107 | manageMessage: function(name) { 108 | var message = config.add_message; 109 | if(message.indexOf('%') > -1) 110 | return message.replace('%', name); 111 | return message; 112 | }, 113 | 114 | // Method for disabling custom playing message 115 | DisableCustomMessage: function() { 116 | return config.EnableCustomPlayingMessage == true; 117 | }, 118 | 119 | games: function() { 120 | if(config.game) { 121 | config.game.unshift(package.name) 122 | return config.game; 123 | } 124 | return package.name 125 | }, 126 | 127 | // Method for checking updates 128 | check: function() { 129 | const request = require('request'); 130 | var options = { 131 | url: 'https://raw.githubusercontent.com/Refloow/Steam-Auto-Friend/master/package.json', 132 | method: 'GET', 133 | }; 134 | function look(error, JSONresponse, body) { 135 | var page = JSON.parse(body) 136 | const v = package.version; 137 | if(page.version != v) 138 | console.log(`| [GitHub] | VERSION |: ${'New update available for '+package.name+ ' v'+page.version.green+'! You\'re currently only running version '+v.yellow+''}\n${`| [GitHub] | VERSION |: Go to https://github.com/Refloow/Steam-Auto-Friend to update now!`}\n\n`) 139 | else 140 | console.log(`| [GitHub] | VERSION |: You're running the latest version of steam-auto-friend (v${v.green})\n\n`) 141 | } 142 | request(options, look) 143 | } 144 | } 145 | 146 | // Copyright notice: 147 | 148 | /* Original work: Copyright (c) 2020-2024 Veljko Vuckovic (Refloow.com) All rights reserved. 149 | Code origin (Free GitHub publish): https://github.com/Refloow/Steam-Auto-Friend*/ 150 | 151 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 2 | // Copyright notice: 3 | 4 | /*--------------------------------------------------------------------------------------------- 5 | * Original work: Copyright (c) 2020-2024 Veljko Vuckovic (Refloow.com) All rights reserved. 6 | 7 | * Code origin: https://github.com/Refloow/Steam-Auto-Friend 8 | * Developer name: Veljko Vuckovic 9 | * Licensed under the MIT License. See LICENSE in the project root for license information. 10 | * Published License: https://github.com/Refloow/Steam-Auto-Friend/master/LICENSE 11 | 12 | * Contact information: 13 | Discord Support Server: https://discord.gg/D8WCtDD 14 | Main developer steam: https://steamcommunity.com/id/MajokingGames/ 15 | Mail: refloowlibrarycontact@gmail.com 16 | 17 | * Donations: 18 | Crypto: https://refloow.com/cdonate 19 | Steam: https://steamcommunity.com/tradeoffer/new/?partner=994828078&token=XEUdbqp6 20 | --------------------------------------------------------------------------------------------*/ 21 | 22 | /* 23 | 24 | // legal advice: PERMISSIONS AND RIGHTS 25 | 26 | * License does not prohibit modification, distribution, private/commercial use or sale of copies as long as the original LICENSE file 27 | and authors copyright notice are left as they are in the project files. 28 | * Copyright notice could be included ones or multiple times within the file. 29 | * Copyright notice should not be removed even within the larger works (Larger modifications applied). 30 | * Original file tags cannot be removed without creators exclusive permission. 31 | * Adding own tags in files is possible in case of modification - even in that case original tags must be kept. 32 | * Year on the copyright notice breakdown: 33 | * Generally, the “year of first publication of the work” refers to the year in which the work was first distributed to the public (first year mentioned) 34 | * Any year after represents the year of added modifications. 35 | * Copyright cannot expire so therefore you cannot remove copyright notice if its not updated to the latest year. 36 | * Editing existing copyright notice(s) is also prohibited. 37 | 38 | =================================================================================== 39 | Removing copyright notice & distributing, using or selling the software without 40 | the original license and copyright notice is licence agreement breach and its considered criminal offense and piracy. 41 | =================================================================================== 42 | 43 | */ 44 | 45 | 46 | 47 | // Checking if all modules are correctly installed 48 | 49 | try { 50 | // Checking if module colors is correctly installed 51 | colors = require('colors'); 52 | } catch (ex) { 53 | // If modules are not installed showing an clear error message to user. 54 | console.log('\n\n| [Modules] |: Missing dependencies. Install a version with dependecies or use npm install.\n\n'); 55 | console.log(ex); 56 | process.exit(1); 57 | } 58 | 59 | // Importing required files 60 | const package = require('./package.json'); 61 | const diagnostics = require('saf-diagnostics'); 62 | const method = require('./app/methods.js') 63 | const config = require('./app/settings/config.js') 64 | const v = package.version; 65 | 66 | // Basic display information on app start 67 | 68 | console.log('8888888b. .d888888 '.cyan); 69 | console.log('888 Y88b d88P" 888 '.cyan); 70 | console.log('888 888 888 888 '.cyan); 71 | console.log('888 d88P .d88b. 888888888 .d88b. .d88b. 888 888 888'.cyan); 72 | console.log('8888888P" d8P Y8b888 888d88""88bd88""88b888 888 888'.cyan); 73 | console.log('888 T88b 88888888888 888888 888888 888888 888 888'.cyan); 74 | console.log('888 T88b Y8b. 888 888Y88..88PY88..88PY88b 888 d88P '.cyan); 75 | console.log('888 T88b "Y8888 888 888 "Y88P" "Y88P" "Y8888888P" \n\n\n'.cyan); 76 | console.log('/* Original work: Copyright (c) 2020-2024 Veljko Vuckovic (Refloow.com) All rights reserved. \n Code origin (Free GitHub publish): https://github.com/Refloow/Steam-Auto-Friend*/\n'.cyan); 77 | console.log('This bot was developed by Veljko Vuckovic'.cyan); 78 | console.log(`Verision v${v}`.cyan); 79 | console.log('Thanks for choosing us.'.cyan); 80 | console.log('This version doesnt contain UI'.red); 81 | console.log('Loading config file...'.green ); 82 | console.log('Starting bot...'.green ); 83 | console.log('If bot doesnt start in next 1 minute steam is down.\n\n'.green ); 84 | 85 | console.log('If you enjoy using our projects, you can support us via donations, '.brightYellow); 86 | console.log('that way we can keep releasing free projects & updates for existing ones!'.brightYellow); 87 | console.log('Check links down below:\n'.brightYellow); 88 | console.log('Crypto: https://refloow.com/cdonate'.green); 89 | console.log('Steam: https://steamcommunity.com/tradeoffer/new/?partner=908829436&token=wCNxGnyr (ingame items)\n\n'.green); 90 | 91 | // Importing main app file 92 | require('./app/app.js'); 93 | 94 | function call() { 95 | setInterval(getit, config.showtimer); 96 | } 97 | 98 | function getit() { 99 | diagnostics.getusage(); 100 | } 101 | 102 | if(method.CheckData()) { 103 | call(); 104 | } 105 | 106 | // Copyright notice: 107 | 108 | /* Original work: Copyright (c) 2020-2024 Refloow All rights reserved. 109 | Code origin (Free GitHub publish): https://github.com/Refloow/Steam-Auto-Friend*/ 110 | 111 | -------------------------------------------------------------------------------- /install.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | echo Good job! We are almost done now. 3 | echo 8888888b. .d888888 4 | echo 888 Y88b d88P 888 5 | echo 888 888 888 888 6 | echo 888 d88P .d88b. 888888888 .d88b. .d88b. 888 888 888 7 | echo 888888P d8P Y8b888 888d88 88bd88 88b888 888 888 8 | echo 888 T88b 88888888888 888888 888888 888888 888 888 9 | echo 888 T88b Y8b. 888 888Y88..88PY88..88PY88b 888 d88P 10 | echo 888 T88b Y8888 888 888 Y88P Y88P Y8888888P 11 | echo . 12 | echo . 13 | echo // Copyright notice: 14 | echo . 15 | echo /* Original work: Copyright (c) 2020-2025 Refloow All rights reserved. 16 | echo Code origin (Free GitHub publish): https://github.com/Refloow/Steam-Auto-Friend */ 17 | echo . 18 | echo . 19 | explorer "https://discord.gg/D8WCtDD" 20 | echo Installing the required modules. 21 | npm install 22 | echo Modules finsished! You can close this window now. 23 | pause 24 | -------------------------------------------------------------------------------- /node version.txt: -------------------------------------------------------------------------------- 1 | Rcently updated node.js version. 2 | This is node.js version needed for program to run (and install exactly the same as on development machine) 3 | v20.10.0 4 | https://nodejs.org/dist/v20.10.0/ 5 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "steam-auto-friend", 3 | "version": "1.3.4", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "steam-auto-friend", 9 | "version": "1.3.4", 10 | "license": "MIT", 11 | "dependencies": { 12 | "colors": "1.4.0", 13 | "console-master": "^1.0.3", 14 | "moment": "2.28.0", 15 | "request": "2.88.0", 16 | "request-promise": "4.2.6", 17 | "saf-diagnostics": "^1.0.2", 18 | "steam-totp": "2.1.2", 19 | "steam-user": "5.2.3", 20 | "steamcommunity": "3.48.8", 21 | "winston": "3.3.3" 22 | } 23 | }, 24 | "node_modules/@bbob/parser": { 25 | "version": "2.9.0", 26 | "resolved": "https://registry.npmjs.org/@bbob/parser/-/parser-2.9.0.tgz", 27 | "integrity": "sha512-tldSYsMoEclke/B1nqL7+HbYMWZHTKvpbEHRSHuY+sZvS1o7Jpdfjb+KPpwP9wLI3p3r7GPv69/wGy+Xibs9yA==", 28 | "dependencies": { 29 | "@bbob/plugin-helper": "^2.9.0" 30 | } 31 | }, 32 | "node_modules/@bbob/plugin-helper": { 33 | "version": "2.9.0", 34 | "resolved": "https://registry.npmjs.org/@bbob/plugin-helper/-/plugin-helper-2.9.0.tgz", 35 | "integrity": "sha512-idpUcNQ2co6T1oU/7/DG/ZRfipSSkTn9Ozw9f5vaXH7nzV3qhqZnhFVlHTzGGnRlzKlBwWOBzOdWi4Zeqg1c5A==" 36 | }, 37 | "node_modules/@colors/colors": { 38 | "version": "1.6.0", 39 | "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", 40 | "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", 41 | "engines": { 42 | "node": ">=0.1.90" 43 | } 44 | }, 45 | "node_modules/@dabh/diagnostics": { 46 | "version": "2.0.3", 47 | "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", 48 | "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", 49 | "dependencies": { 50 | "colorspace": "1.1.x", 51 | "enabled": "2.0.x", 52 | "kuler": "^2.0.0" 53 | } 54 | }, 55 | "node_modules/@doctormckay/stats-reporter": { 56 | "version": "1.0.5", 57 | "resolved": "https://registry.npmjs.org/@doctormckay/stats-reporter/-/stats-reporter-1.0.5.tgz", 58 | "integrity": "sha512-lCAuKW053zz91sKZZcGfOHxigBqn0Lo+/JvHBQq3XqzLJxn0YeZ5mJ96+PZto+PDCkgg+c/BX2Xo8DvAN44xLg==", 59 | "engines": { 60 | "node": ">=4.0.0" 61 | } 62 | }, 63 | "node_modules/@doctormckay/stdlib": { 64 | "version": "2.10.0", 65 | "resolved": "https://registry.npmjs.org/@doctormckay/stdlib/-/stdlib-2.10.0.tgz", 66 | "integrity": "sha512-bwy+gPn6oa2KTpfxJKX3leZoV/wHDVtO0/gq3usPvqPswG//dcf3jVB8LcbRRsKO3BXCt5DqctOQ+Xb07ivxnw==", 67 | "dependencies": { 68 | "psl": "^1.9.0" 69 | }, 70 | "engines": { 71 | "node": ">=12.22.0" 72 | } 73 | }, 74 | "node_modules/@doctormckay/steam-crypto": { 75 | "version": "1.2.0", 76 | "resolved": "https://registry.npmjs.org/@doctormckay/steam-crypto/-/steam-crypto-1.2.0.tgz", 77 | "integrity": "sha512-lsxgLw640gEdZBOXpVIcYWcYD+V+QbtEsMPzRvjmjz2XXKc7QeEMyHL07yOFRmay+cUwO4ObKTJO0dSInEuq5g==" 78 | }, 79 | "node_modules/@doctormckay/user-agents": { 80 | "version": "1.0.0", 81 | "resolved": "https://registry.npmjs.org/@doctormckay/user-agents/-/user-agents-1.0.0.tgz", 82 | "integrity": "sha512-F+sL1YmebZTY2CnjoR9BXFEULpq7y8dxyLx48LZVa0BSDseXdLG/DtPISfM1iNv1XKCeiBzVNfAT/MOQ69v1Zw==" 83 | }, 84 | "node_modules/@protobufjs/aspromise": { 85 | "version": "1.1.2", 86 | "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", 87 | "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" 88 | }, 89 | "node_modules/@protobufjs/base64": { 90 | "version": "1.1.2", 91 | "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", 92 | "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" 93 | }, 94 | "node_modules/@protobufjs/codegen": { 95 | "version": "2.0.4", 96 | "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", 97 | "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" 98 | }, 99 | "node_modules/@protobufjs/eventemitter": { 100 | "version": "1.1.0", 101 | "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", 102 | "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" 103 | }, 104 | "node_modules/@protobufjs/fetch": { 105 | "version": "1.1.0", 106 | "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", 107 | "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", 108 | "dependencies": { 109 | "@protobufjs/aspromise": "^1.1.1", 110 | "@protobufjs/inquire": "^1.1.0" 111 | } 112 | }, 113 | "node_modules/@protobufjs/float": { 114 | "version": "1.0.2", 115 | "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", 116 | "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" 117 | }, 118 | "node_modules/@protobufjs/inquire": { 119 | "version": "1.1.0", 120 | "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", 121 | "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" 122 | }, 123 | "node_modules/@protobufjs/path": { 124 | "version": "1.1.2", 125 | "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", 126 | "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" 127 | }, 128 | "node_modules/@protobufjs/pool": { 129 | "version": "1.1.0", 130 | "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", 131 | "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" 132 | }, 133 | "node_modules/@protobufjs/utf8": { 134 | "version": "1.1.0", 135 | "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", 136 | "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" 137 | }, 138 | "node_modules/@types/long": { 139 | "version": "4.0.2", 140 | "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", 141 | "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" 142 | }, 143 | "node_modules/@types/node": { 144 | "version": "22.15.29", 145 | "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.29.tgz", 146 | "integrity": "sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==", 147 | "dependencies": { 148 | "undici-types": "~6.21.0" 149 | } 150 | }, 151 | "node_modules/@types/triple-beam": { 152 | "version": "1.3.5", 153 | "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", 154 | "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==" 155 | }, 156 | "node_modules/adm-zip": { 157 | "version": "0.5.16", 158 | "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", 159 | "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", 160 | "engines": { 161 | "node": ">=12.0" 162 | } 163 | }, 164 | "node_modules/agent-base": { 165 | "version": "6.0.2", 166 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", 167 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 168 | "dependencies": { 169 | "debug": "4" 170 | }, 171 | "engines": { 172 | "node": ">= 6.0.0" 173 | } 174 | }, 175 | "node_modules/ajv": { 176 | "version": "6.12.6", 177 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 178 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 179 | "dependencies": { 180 | "fast-deep-equal": "^3.1.1", 181 | "fast-json-stable-stringify": "^2.0.0", 182 | "json-schema-traverse": "^0.4.1", 183 | "uri-js": "^4.2.2" 184 | }, 185 | "funding": { 186 | "type": "github", 187 | "url": "https://github.com/sponsors/epoberezkin" 188 | } 189 | }, 190 | "node_modules/asn1": { 191 | "version": "0.2.6", 192 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", 193 | "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", 194 | "dependencies": { 195 | "safer-buffer": "~2.1.0" 196 | } 197 | }, 198 | "node_modules/assert-plus": { 199 | "version": "1.0.0", 200 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 201 | "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", 202 | "engines": { 203 | "node": ">=0.8" 204 | } 205 | }, 206 | "node_modules/async": { 207 | "version": "2.6.4", 208 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", 209 | "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", 210 | "dependencies": { 211 | "lodash": "^4.17.14" 212 | } 213 | }, 214 | "node_modules/asynckit": { 215 | "version": "0.4.0", 216 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 217 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 218 | }, 219 | "node_modules/aws-sign2": { 220 | "version": "0.7.0", 221 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 222 | "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", 223 | "engines": { 224 | "node": "*" 225 | } 226 | }, 227 | "node_modules/aws4": { 228 | "version": "1.13.2", 229 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", 230 | "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==" 231 | }, 232 | "node_modules/bcrypt-pbkdf": { 233 | "version": "1.0.2", 234 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 235 | "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", 236 | "dependencies": { 237 | "tweetnacl": "^0.14.3" 238 | } 239 | }, 240 | "node_modules/binarykvparser": { 241 | "version": "2.3.0", 242 | "resolved": "https://registry.npmjs.org/binarykvparser/-/binarykvparser-2.3.0.tgz", 243 | "integrity": "sha512-B1N5ZxC8I9oSLis7Rg36DxsZJoIikUGU2XwpI0FKFCaPIJIEYi0B9UeIk3QU006axzq0TI9KC3iXelfGGgnWew==", 244 | "bundleDependencies": [ 245 | "long" 246 | ], 247 | "dependencies": { 248 | "long": "^3.2.0" 249 | } 250 | }, 251 | "node_modules/bluebird": { 252 | "version": "3.7.2", 253 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", 254 | "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" 255 | }, 256 | "node_modules/boolbase": { 257 | "version": "1.0.0", 258 | "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 259 | "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" 260 | }, 261 | "node_modules/bytebuffer": { 262 | "version": "5.0.1", 263 | "resolved": "https://registry.npmjs.org/bytebuffer/-/bytebuffer-5.0.1.tgz", 264 | "integrity": "sha512-IuzSdmADppkZ6DlpycMkm8l9zeEq16fWtLvunEwFiYciR/BHo4E8/xs5piFquG+Za8OWmMqHF8zuRviz2LHvRQ==", 265 | "dependencies": { 266 | "long": "~3" 267 | }, 268 | "engines": { 269 | "node": ">=0.8" 270 | } 271 | }, 272 | "node_modules/caseless": { 273 | "version": "0.12.0", 274 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 275 | "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" 276 | }, 277 | "node_modules/cheerio": { 278 | "version": "0.22.0", 279 | "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", 280 | "integrity": "sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA==", 281 | "dependencies": { 282 | "css-select": "~1.2.0", 283 | "dom-serializer": "~0.1.0", 284 | "entities": "~1.1.1", 285 | "htmlparser2": "^3.9.1", 286 | "lodash.assignin": "^4.0.9", 287 | "lodash.bind": "^4.1.4", 288 | "lodash.defaults": "^4.0.1", 289 | "lodash.filter": "^4.4.0", 290 | "lodash.flatten": "^4.2.0", 291 | "lodash.foreach": "^4.3.0", 292 | "lodash.map": "^4.4.0", 293 | "lodash.merge": "^4.4.0", 294 | "lodash.pick": "^4.2.1", 295 | "lodash.reduce": "^4.4.0", 296 | "lodash.reject": "^4.4.0", 297 | "lodash.some": "^4.4.0" 298 | }, 299 | "engines": { 300 | "node": ">= 0.6" 301 | } 302 | }, 303 | "node_modules/color": { 304 | "version": "3.2.1", 305 | "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", 306 | "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", 307 | "dependencies": { 308 | "color-convert": "^1.9.3", 309 | "color-string": "^1.6.0" 310 | } 311 | }, 312 | "node_modules/color-convert": { 313 | "version": "1.9.3", 314 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 315 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 316 | "dependencies": { 317 | "color-name": "1.1.3" 318 | } 319 | }, 320 | "node_modules/color-name": { 321 | "version": "1.1.3", 322 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 323 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 324 | }, 325 | "node_modules/color-string": { 326 | "version": "1.9.1", 327 | "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", 328 | "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", 329 | "dependencies": { 330 | "color-name": "^1.0.0", 331 | "simple-swizzle": "^0.2.2" 332 | } 333 | }, 334 | "node_modules/colors": { 335 | "version": "1.4.0", 336 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", 337 | "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", 338 | "engines": { 339 | "node": ">=0.1.90" 340 | } 341 | }, 342 | "node_modules/colorspace": { 343 | "version": "1.1.4", 344 | "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", 345 | "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", 346 | "dependencies": { 347 | "color": "^3.1.3", 348 | "text-hex": "1.0.x" 349 | } 350 | }, 351 | "node_modules/combined-stream": { 352 | "version": "1.0.8", 353 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 354 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 355 | "dependencies": { 356 | "delayed-stream": "~1.0.0" 357 | }, 358 | "engines": { 359 | "node": ">= 0.8" 360 | } 361 | }, 362 | "node_modules/console-master": { 363 | "version": "1.0.3", 364 | "resolved": "https://registry.npmjs.org/console-master/-/console-master-1.0.3.tgz", 365 | "integrity": "sha512-R0BTU3NvYmrM6O36LKBfXh1uQKhH71xifPqdP8MwuQ/PBzgKTmTrbDunNaP49g5+MOKB+D8OxQb2LtpsEvJD3Q==", 366 | "dependencies": { 367 | "winston": "3.3.3" 368 | } 369 | }, 370 | "node_modules/core-util-is": { 371 | "version": "1.0.2", 372 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 373 | "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" 374 | }, 375 | "node_modules/css-select": { 376 | "version": "1.2.0", 377 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", 378 | "integrity": "sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA==", 379 | "dependencies": { 380 | "boolbase": "~1.0.0", 381 | "css-what": "2.1", 382 | "domutils": "1.5.1", 383 | "nth-check": "~1.0.1" 384 | } 385 | }, 386 | "node_modules/css-what": { 387 | "version": "2.1.3", 388 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", 389 | "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", 390 | "engines": { 391 | "node": "*" 392 | } 393 | }, 394 | "node_modules/cuint": { 395 | "version": "0.2.2", 396 | "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", 397 | "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" 398 | }, 399 | "node_modules/dashdash": { 400 | "version": "1.14.1", 401 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 402 | "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", 403 | "dependencies": { 404 | "assert-plus": "^1.0.0" 405 | }, 406 | "engines": { 407 | "node": ">=0.10" 408 | } 409 | }, 410 | "node_modules/debug": { 411 | "version": "4.4.1", 412 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", 413 | "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", 414 | "dependencies": { 415 | "ms": "^2.1.3" 416 | }, 417 | "engines": { 418 | "node": ">=6.0" 419 | }, 420 | "peerDependenciesMeta": { 421 | "supports-color": { 422 | "optional": true 423 | } 424 | } 425 | }, 426 | "node_modules/delayed-stream": { 427 | "version": "1.0.0", 428 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 429 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", 430 | "engines": { 431 | "node": ">=0.4.0" 432 | } 433 | }, 434 | "node_modules/dom-serializer": { 435 | "version": "0.1.1", 436 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", 437 | "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", 438 | "dependencies": { 439 | "domelementtype": "^1.3.0", 440 | "entities": "^1.1.1" 441 | } 442 | }, 443 | "node_modules/domelementtype": { 444 | "version": "1.3.1", 445 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", 446 | "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" 447 | }, 448 | "node_modules/domhandler": { 449 | "version": "2.4.2", 450 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", 451 | "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", 452 | "dependencies": { 453 | "domelementtype": "1" 454 | } 455 | }, 456 | "node_modules/domutils": { 457 | "version": "1.5.1", 458 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", 459 | "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==", 460 | "dependencies": { 461 | "dom-serializer": "0", 462 | "domelementtype": "1" 463 | } 464 | }, 465 | "node_modules/ecc-jsbn": { 466 | "version": "0.1.2", 467 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 468 | "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", 469 | "dependencies": { 470 | "jsbn": "~0.1.0", 471 | "safer-buffer": "^2.1.0" 472 | } 473 | }, 474 | "node_modules/enabled": { 475 | "version": "2.0.0", 476 | "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", 477 | "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" 478 | }, 479 | "node_modules/entities": { 480 | "version": "1.1.2", 481 | "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", 482 | "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" 483 | }, 484 | "node_modules/extend": { 485 | "version": "3.0.2", 486 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 487 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 488 | }, 489 | "node_modules/extsprintf": { 490 | "version": "1.3.0", 491 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 492 | "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", 493 | "engines": [ 494 | "node >=0.6.0" 495 | ] 496 | }, 497 | "node_modules/fast-deep-equal": { 498 | "version": "3.1.3", 499 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 500 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 501 | }, 502 | "node_modules/fast-json-stable-stringify": { 503 | "version": "2.1.0", 504 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 505 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" 506 | }, 507 | "node_modules/fecha": { 508 | "version": "4.2.3", 509 | "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", 510 | "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" 511 | }, 512 | "node_modules/file-manager": { 513 | "version": "2.0.1", 514 | "resolved": "https://registry.npmjs.org/file-manager/-/file-manager-2.0.1.tgz", 515 | "integrity": "sha512-y/K/1OCha04OXOxzo3cXJYtIzEk/CUMBb7Okipxueu0u+xCiuoocbwPyh1smUBasOobo4GAYmjgjD9Vh5zI51w==", 516 | "dependencies": { 517 | "@doctormckay/stdlib": "^1.14.1" 518 | }, 519 | "engines": { 520 | "node": ">=8.0.0" 521 | } 522 | }, 523 | "node_modules/file-manager/node_modules/@doctormckay/stdlib": { 524 | "version": "1.16.1", 525 | "resolved": "https://registry.npmjs.org/@doctormckay/stdlib/-/stdlib-1.16.1.tgz", 526 | "integrity": "sha512-XhuUOzElz6fnNdt70IYNKqhPAEpGaL4JHOhAvklRh0hAhVPW+/wLxaWT3DWUbaG5Dta5YvIp7+cZK3GhIpAuug==", 527 | "engines": { 528 | "node": ">=6.0.0" 529 | } 530 | }, 531 | "node_modules/fn.name": { 532 | "version": "1.1.0", 533 | "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", 534 | "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" 535 | }, 536 | "node_modules/forever-agent": { 537 | "version": "0.6.1", 538 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 539 | "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", 540 | "engines": { 541 | "node": "*" 542 | } 543 | }, 544 | "node_modules/form-data": { 545 | "version": "2.3.3", 546 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 547 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 548 | "dependencies": { 549 | "asynckit": "^0.4.0", 550 | "combined-stream": "^1.0.6", 551 | "mime-types": "^2.1.12" 552 | }, 553 | "engines": { 554 | "node": ">= 0.12" 555 | } 556 | }, 557 | "node_modules/getpass": { 558 | "version": "0.1.7", 559 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 560 | "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", 561 | "dependencies": { 562 | "assert-plus": "^1.0.0" 563 | } 564 | }, 565 | "node_modules/har-schema": { 566 | "version": "2.0.0", 567 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 568 | "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", 569 | "engines": { 570 | "node": ">=4" 571 | } 572 | }, 573 | "node_modules/har-validator": { 574 | "version": "5.1.5", 575 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", 576 | "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", 577 | "deprecated": "this library is no longer supported", 578 | "dependencies": { 579 | "ajv": "^6.12.3", 580 | "har-schema": "^2.0.0" 581 | }, 582 | "engines": { 583 | "node": ">=6" 584 | } 585 | }, 586 | "node_modules/htmlparser2": { 587 | "version": "3.10.1", 588 | "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", 589 | "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", 590 | "dependencies": { 591 | "domelementtype": "^1.3.1", 592 | "domhandler": "^2.3.0", 593 | "domutils": "^1.5.1", 594 | "entities": "^1.1.1", 595 | "inherits": "^2.0.1", 596 | "readable-stream": "^3.1.1" 597 | } 598 | }, 599 | "node_modules/http-signature": { 600 | "version": "1.2.0", 601 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 602 | "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", 603 | "dependencies": { 604 | "assert-plus": "^1.0.0", 605 | "jsprim": "^1.2.2", 606 | "sshpk": "^1.7.0" 607 | }, 608 | "engines": { 609 | "node": ">=0.8", 610 | "npm": ">=1.3.7" 611 | } 612 | }, 613 | "node_modules/image-size": { 614 | "version": "0.8.3", 615 | "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.8.3.tgz", 616 | "integrity": "sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg==", 617 | "dependencies": { 618 | "queue": "6.0.1" 619 | }, 620 | "bin": { 621 | "image-size": "bin/image-size.js" 622 | }, 623 | "engines": { 624 | "node": ">=6.9.0" 625 | } 626 | }, 627 | "node_modules/inherits": { 628 | "version": "2.0.4", 629 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 630 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 631 | }, 632 | "node_modules/ip-address": { 633 | "version": "9.0.5", 634 | "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", 635 | "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", 636 | "dependencies": { 637 | "jsbn": "1.1.0", 638 | "sprintf-js": "^1.1.3" 639 | }, 640 | "engines": { 641 | "node": ">= 12" 642 | } 643 | }, 644 | "node_modules/ip-address/node_modules/jsbn": { 645 | "version": "1.1.0", 646 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", 647 | "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" 648 | }, 649 | "node_modules/is-arrayish": { 650 | "version": "0.3.2", 651 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", 652 | "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" 653 | }, 654 | "node_modules/is-stream": { 655 | "version": "2.0.1", 656 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 657 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 658 | "engines": { 659 | "node": ">=8" 660 | }, 661 | "funding": { 662 | "url": "https://github.com/sponsors/sindresorhus" 663 | } 664 | }, 665 | "node_modules/is-typedarray": { 666 | "version": "1.0.0", 667 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 668 | "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" 669 | }, 670 | "node_modules/isstream": { 671 | "version": "0.1.2", 672 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 673 | "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" 674 | }, 675 | "node_modules/jsbn": { 676 | "version": "0.1.1", 677 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 678 | "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" 679 | }, 680 | "node_modules/json-schema": { 681 | "version": "0.4.0", 682 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", 683 | "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" 684 | }, 685 | "node_modules/json-schema-traverse": { 686 | "version": "0.4.1", 687 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 688 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 689 | }, 690 | "node_modules/json-stringify-safe": { 691 | "version": "5.0.1", 692 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 693 | "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" 694 | }, 695 | "node_modules/jsprim": { 696 | "version": "1.4.2", 697 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", 698 | "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", 699 | "dependencies": { 700 | "assert-plus": "1.0.0", 701 | "extsprintf": "1.3.0", 702 | "json-schema": "0.4.0", 703 | "verror": "1.10.0" 704 | }, 705 | "engines": { 706 | "node": ">=0.6.0" 707 | } 708 | }, 709 | "node_modules/kuler": { 710 | "version": "2.0.0", 711 | "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", 712 | "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" 713 | }, 714 | "node_modules/kvparser": { 715 | "version": "1.0.2", 716 | "resolved": "https://registry.npmjs.org/kvparser/-/kvparser-1.0.2.tgz", 717 | "integrity": "sha512-5P/5qpTAHjVYWqcI55B3yQwSY2FUrYYrJj5i65V1Wmg7/4W4OnBcaodaEvLyVuugeOnS+BAaKm9LbPazGJcRyA==", 718 | "engines": { 719 | "node": ">=4.0.0" 720 | } 721 | }, 722 | "node_modules/lodash": { 723 | "version": "4.17.21", 724 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 725 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 726 | }, 727 | "node_modules/lodash.assignin": { 728 | "version": "4.2.0", 729 | "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", 730 | "integrity": "sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg==" 731 | }, 732 | "node_modules/lodash.bind": { 733 | "version": "4.2.1", 734 | "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", 735 | "integrity": "sha512-lxdsn7xxlCymgLYo1gGvVrfHmkjDiyqVv62FAeF2i5ta72BipE1SLxw8hPEPLhD4/247Ijw07UQH7Hq/chT5LA==" 736 | }, 737 | "node_modules/lodash.defaults": { 738 | "version": "4.2.0", 739 | "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", 740 | "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" 741 | }, 742 | "node_modules/lodash.filter": { 743 | "version": "4.6.0", 744 | "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", 745 | "integrity": "sha512-pXYUy7PR8BCLwX5mgJ/aNtyOvuJTdZAo9EQFUvMIYugqmJxnrYaANvTbgndOzHSCSR0wnlBBfRXJL5SbWxo3FQ==" 746 | }, 747 | "node_modules/lodash.flatten": { 748 | "version": "4.4.0", 749 | "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", 750 | "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" 751 | }, 752 | "node_modules/lodash.foreach": { 753 | "version": "4.5.0", 754 | "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", 755 | "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==" 756 | }, 757 | "node_modules/lodash.map": { 758 | "version": "4.6.0", 759 | "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", 760 | "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==" 761 | }, 762 | "node_modules/lodash.merge": { 763 | "version": "4.6.2", 764 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 765 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" 766 | }, 767 | "node_modules/lodash.pick": { 768 | "version": "4.4.0", 769 | "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", 770 | "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", 771 | "deprecated": "This package is deprecated. Use destructuring assignment syntax instead." 772 | }, 773 | "node_modules/lodash.reduce": { 774 | "version": "4.6.0", 775 | "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", 776 | "integrity": "sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw==" 777 | }, 778 | "node_modules/lodash.reject": { 779 | "version": "4.6.0", 780 | "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", 781 | "integrity": "sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ==" 782 | }, 783 | "node_modules/lodash.some": { 784 | "version": "4.6.0", 785 | "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", 786 | "integrity": "sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ==" 787 | }, 788 | "node_modules/logform": { 789 | "version": "2.7.0", 790 | "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", 791 | "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", 792 | "dependencies": { 793 | "@colors/colors": "1.6.0", 794 | "@types/triple-beam": "^1.3.2", 795 | "fecha": "^4.2.0", 796 | "ms": "^2.1.1", 797 | "safe-stable-stringify": "^2.3.1", 798 | "triple-beam": "^1.3.0" 799 | }, 800 | "engines": { 801 | "node": ">= 12.0.0" 802 | } 803 | }, 804 | "node_modules/long": { 805 | "version": "3.2.0", 806 | "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", 807 | "integrity": "sha512-ZYvPPOMqUwPoDsbJaR10iQJYnMuZhRTvHYl62ErLIEX7RgFlziSBUUvrt3OVfc47QlHHpzPZYP17g3Fv7oeJkg==", 808 | "engines": { 809 | "node": ">=0.6" 810 | } 811 | }, 812 | "node_modules/lzma": { 813 | "version": "2.3.2", 814 | "resolved": "https://registry.npmjs.org/lzma/-/lzma-2.3.2.tgz", 815 | "integrity": "sha512-DcfiawQ1avYbW+hsILhF38IKAlnguc/fjHrychs9hdxe4qLykvhT5VTGNs5YRWgaNePh7NTxGD4uv4gKsRomCQ==", 816 | "bin": { 817 | "lzma.js": "bin/lzma.js" 818 | } 819 | }, 820 | "node_modules/mime-db": { 821 | "version": "1.52.0", 822 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 823 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 824 | "engines": { 825 | "node": ">= 0.6" 826 | } 827 | }, 828 | "node_modules/mime-types": { 829 | "version": "2.1.35", 830 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 831 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 832 | "dependencies": { 833 | "mime-db": "1.52.0" 834 | }, 835 | "engines": { 836 | "node": ">= 0.6" 837 | } 838 | }, 839 | "node_modules/moment": { 840 | "version": "2.28.0", 841 | "resolved": "https://registry.npmjs.org/moment/-/moment-2.28.0.tgz", 842 | "integrity": "sha512-Z5KOjYmnHyd/ukynmFd/WwyXHd7L4J9vTI/nn5Ap9AVUgaAE15VvQ9MOGmJJygEUklupqIrFnor/tjTwRU+tQw==", 843 | "engines": { 844 | "node": "*" 845 | } 846 | }, 847 | "node_modules/ms": { 848 | "version": "2.1.3", 849 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 850 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 851 | }, 852 | "node_modules/node-bignumber": { 853 | "version": "1.2.2", 854 | "resolved": "https://registry.npmjs.org/node-bignumber/-/node-bignumber-1.2.2.tgz", 855 | "integrity": "sha512-VoTZHmdFQpZH1+q1dz2qcHNCwTWsJg2T3PYwlAyDNFOfVhSYUKQBLFcCpCud+wJBGgCttGavZILaIggDIKqEQQ==", 856 | "engines": { 857 | "node": ">=0.4.0" 858 | } 859 | }, 860 | "node_modules/nth-check": { 861 | "version": "1.0.2", 862 | "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", 863 | "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", 864 | "dependencies": { 865 | "boolbase": "~1.0.0" 866 | } 867 | }, 868 | "node_modules/oauth-sign": { 869 | "version": "0.9.0", 870 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 871 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", 872 | "engines": { 873 | "node": "*" 874 | } 875 | }, 876 | "node_modules/one-time": { 877 | "version": "1.0.0", 878 | "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", 879 | "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", 880 | "dependencies": { 881 | "fn.name": "1.x.x" 882 | } 883 | }, 884 | "node_modules/performance-now": { 885 | "version": "2.1.0", 886 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 887 | "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" 888 | }, 889 | "node_modules/permessage-deflate": { 890 | "version": "0.1.7", 891 | "resolved": "https://registry.npmjs.org/permessage-deflate/-/permessage-deflate-0.1.7.tgz", 892 | "integrity": "sha512-EUNi/RIsyJ1P1u9QHFwMOUWMYetqlE22ZgGbad7YP856WF4BFF0B7DuNy6vEGsgNNud6c/SkdWzkne71hH8MjA==", 893 | "dependencies": { 894 | "safe-buffer": "*" 895 | }, 896 | "engines": { 897 | "node": ">=0.8.0" 898 | } 899 | }, 900 | "node_modules/protobufjs": { 901 | "version": "7.5.3", 902 | "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.3.tgz", 903 | "integrity": "sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==", 904 | "hasInstallScript": true, 905 | "dependencies": { 906 | "@protobufjs/aspromise": "^1.1.2", 907 | "@protobufjs/base64": "^1.1.2", 908 | "@protobufjs/codegen": "^2.0.4", 909 | "@protobufjs/eventemitter": "^1.1.0", 910 | "@protobufjs/fetch": "^1.1.0", 911 | "@protobufjs/float": "^1.0.2", 912 | "@protobufjs/inquire": "^1.1.0", 913 | "@protobufjs/path": "^1.1.2", 914 | "@protobufjs/pool": "^1.1.0", 915 | "@protobufjs/utf8": "^1.1.0", 916 | "@types/node": ">=13.7.0", 917 | "long": "^5.0.0" 918 | }, 919 | "engines": { 920 | "node": ">=12.0.0" 921 | } 922 | }, 923 | "node_modules/protobufjs/node_modules/long": { 924 | "version": "5.3.2", 925 | "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", 926 | "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==" 927 | }, 928 | "node_modules/psl": { 929 | "version": "1.15.0", 930 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", 931 | "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", 932 | "dependencies": { 933 | "punycode": "^2.3.1" 934 | }, 935 | "funding": { 936 | "url": "https://github.com/sponsors/lupomontero" 937 | } 938 | }, 939 | "node_modules/punycode": { 940 | "version": "2.3.1", 941 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", 942 | "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", 943 | "engines": { 944 | "node": ">=6" 945 | } 946 | }, 947 | "node_modules/qs": { 948 | "version": "6.5.3", 949 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", 950 | "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", 951 | "engines": { 952 | "node": ">=0.6" 953 | } 954 | }, 955 | "node_modules/queue": { 956 | "version": "6.0.1", 957 | "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.1.tgz", 958 | "integrity": "sha512-AJBQabRCCNr9ANq8v77RJEv73DPbn55cdTb+Giq4X0AVnNVZvMHlYp7XlQiN+1npCZj1DuSmaA2hYVUUDgxFDg==", 959 | "dependencies": { 960 | "inherits": "~2.0.3" 961 | } 962 | }, 963 | "node_modules/readable-stream": { 964 | "version": "3.6.2", 965 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", 966 | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", 967 | "dependencies": { 968 | "inherits": "^2.0.3", 969 | "string_decoder": "^1.1.1", 970 | "util-deprecate": "^1.0.1" 971 | }, 972 | "engines": { 973 | "node": ">= 6" 974 | } 975 | }, 976 | "node_modules/request": { 977 | "version": "2.88.0", 978 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", 979 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", 980 | "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", 981 | "dependencies": { 982 | "aws-sign2": "~0.7.0", 983 | "aws4": "^1.8.0", 984 | "caseless": "~0.12.0", 985 | "combined-stream": "~1.0.6", 986 | "extend": "~3.0.2", 987 | "forever-agent": "~0.6.1", 988 | "form-data": "~2.3.2", 989 | "har-validator": "~5.1.0", 990 | "http-signature": "~1.2.0", 991 | "is-typedarray": "~1.0.0", 992 | "isstream": "~0.1.2", 993 | "json-stringify-safe": "~5.0.1", 994 | "mime-types": "~2.1.19", 995 | "oauth-sign": "~0.9.0", 996 | "performance-now": "^2.1.0", 997 | "qs": "~6.5.2", 998 | "safe-buffer": "^5.1.2", 999 | "tough-cookie": "~2.4.3", 1000 | "tunnel-agent": "^0.6.0", 1001 | "uuid": "^3.3.2" 1002 | }, 1003 | "engines": { 1004 | "node": ">= 4" 1005 | } 1006 | }, 1007 | "node_modules/request-promise": { 1008 | "version": "4.2.6", 1009 | "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.6.tgz", 1010 | "integrity": "sha512-HCHI3DJJUakkOr8fNoCc73E5nU5bqITjOYFMDrKHYOXWXrgD/SBaC7LjwuPymUprRyuF06UK7hd/lMHkmUXglQ==", 1011 | "deprecated": "request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", 1012 | "dependencies": { 1013 | "bluebird": "^3.5.0", 1014 | "request-promise-core": "1.1.4", 1015 | "stealthy-require": "^1.1.1", 1016 | "tough-cookie": "^2.3.3" 1017 | }, 1018 | "engines": { 1019 | "node": ">=0.10.0" 1020 | }, 1021 | "peerDependencies": { 1022 | "request": "^2.34" 1023 | } 1024 | }, 1025 | "node_modules/request-promise-core": { 1026 | "version": "1.1.4", 1027 | "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", 1028 | "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", 1029 | "dependencies": { 1030 | "lodash": "^4.17.19" 1031 | }, 1032 | "engines": { 1033 | "node": ">=0.10.0" 1034 | }, 1035 | "peerDependencies": { 1036 | "request": "^2.34" 1037 | } 1038 | }, 1039 | "node_modules/saf-diagnostics": { 1040 | "version": "1.0.2", 1041 | "resolved": "https://registry.npmjs.org/saf-diagnostics/-/saf-diagnostics-1.0.2.tgz", 1042 | "integrity": "sha512-E3aEVJP18g5A0OEtASUEZqi3kNWuyb6iTbTlPgQGONvXWDWs/FglEGM9zU+/6NOdZK4xIUKDWrIZcF8igHNDtg==" 1043 | }, 1044 | "node_modules/safe-buffer": { 1045 | "version": "5.2.1", 1046 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1047 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 1048 | "funding": [ 1049 | { 1050 | "type": "github", 1051 | "url": "https://github.com/sponsors/feross" 1052 | }, 1053 | { 1054 | "type": "patreon", 1055 | "url": "https://www.patreon.com/feross" 1056 | }, 1057 | { 1058 | "type": "consulting", 1059 | "url": "https://feross.org/support" 1060 | } 1061 | ] 1062 | }, 1063 | "node_modules/safe-stable-stringify": { 1064 | "version": "2.5.0", 1065 | "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", 1066 | "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", 1067 | "engines": { 1068 | "node": ">=10" 1069 | } 1070 | }, 1071 | "node_modules/safer-buffer": { 1072 | "version": "2.1.2", 1073 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1074 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1075 | }, 1076 | "node_modules/sax": { 1077 | "version": "1.4.1", 1078 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", 1079 | "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" 1080 | }, 1081 | "node_modules/simple-swizzle": { 1082 | "version": "0.2.2", 1083 | "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", 1084 | "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", 1085 | "dependencies": { 1086 | "is-arrayish": "^0.3.1" 1087 | } 1088 | }, 1089 | "node_modules/smart-buffer": { 1090 | "version": "4.2.0", 1091 | "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", 1092 | "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", 1093 | "engines": { 1094 | "node": ">= 6.0.0", 1095 | "npm": ">= 3.0.0" 1096 | } 1097 | }, 1098 | "node_modules/socks": { 1099 | "version": "2.8.4", 1100 | "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", 1101 | "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", 1102 | "dependencies": { 1103 | "ip-address": "^9.0.5", 1104 | "smart-buffer": "^4.2.0" 1105 | }, 1106 | "engines": { 1107 | "node": ">= 10.0.0", 1108 | "npm": ">= 3.0.0" 1109 | } 1110 | }, 1111 | "node_modules/socks-proxy-agent": { 1112 | "version": "7.0.0", 1113 | "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", 1114 | "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", 1115 | "dependencies": { 1116 | "agent-base": "^6.0.2", 1117 | "debug": "^4.3.3", 1118 | "socks": "^2.6.2" 1119 | }, 1120 | "engines": { 1121 | "node": ">= 10" 1122 | } 1123 | }, 1124 | "node_modules/sprintf-js": { 1125 | "version": "1.1.3", 1126 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", 1127 | "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" 1128 | }, 1129 | "node_modules/sshpk": { 1130 | "version": "1.18.0", 1131 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", 1132 | "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", 1133 | "dependencies": { 1134 | "asn1": "~0.2.3", 1135 | "assert-plus": "^1.0.0", 1136 | "bcrypt-pbkdf": "^1.0.0", 1137 | "dashdash": "^1.12.0", 1138 | "ecc-jsbn": "~0.1.1", 1139 | "getpass": "^0.1.1", 1140 | "jsbn": "~0.1.0", 1141 | "safer-buffer": "^2.0.2", 1142 | "tweetnacl": "~0.14.0" 1143 | }, 1144 | "bin": { 1145 | "sshpk-conv": "bin/sshpk-conv", 1146 | "sshpk-sign": "bin/sshpk-sign", 1147 | "sshpk-verify": "bin/sshpk-verify" 1148 | }, 1149 | "engines": { 1150 | "node": ">=0.10.0" 1151 | } 1152 | }, 1153 | "node_modules/stack-trace": { 1154 | "version": "0.0.10", 1155 | "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", 1156 | "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", 1157 | "engines": { 1158 | "node": "*" 1159 | } 1160 | }, 1161 | "node_modules/stealthy-require": { 1162 | "version": "1.1.1", 1163 | "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", 1164 | "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==", 1165 | "engines": { 1166 | "node": ">=0.10.0" 1167 | } 1168 | }, 1169 | "node_modules/steam-appticket": { 1170 | "version": "1.0.2", 1171 | "resolved": "https://registry.npmjs.org/steam-appticket/-/steam-appticket-1.0.2.tgz", 1172 | "integrity": "sha512-zwDwZALGv3RanE8RHNYcQU3u4Ez23EzMuQ4Lh15uIHddpDh6TI6uFGbC0HNyt6y+UJYSILe77A33VhFZKQiaqQ==", 1173 | "dependencies": { 1174 | "@doctormckay/stdlib": "^1.6.0", 1175 | "@doctormckay/steam-crypto": "^1.2.0", 1176 | "bytebuffer": "^5.0.1", 1177 | "protobufjs": "^6.8.8", 1178 | "steamid": "^1.1.0" 1179 | }, 1180 | "engines": { 1181 | "node": ">=4.0.0" 1182 | } 1183 | }, 1184 | "node_modules/steam-appticket/node_modules/@doctormckay/stdlib": { 1185 | "version": "1.16.1", 1186 | "resolved": "https://registry.npmjs.org/@doctormckay/stdlib/-/stdlib-1.16.1.tgz", 1187 | "integrity": "sha512-XhuUOzElz6fnNdt70IYNKqhPAEpGaL4JHOhAvklRh0hAhVPW+/wLxaWT3DWUbaG5Dta5YvIp7+cZK3GhIpAuug==", 1188 | "engines": { 1189 | "node": ">=6.0.0" 1190 | } 1191 | }, 1192 | "node_modules/steam-appticket/node_modules/long": { 1193 | "version": "4.0.0", 1194 | "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", 1195 | "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" 1196 | }, 1197 | "node_modules/steam-appticket/node_modules/protobufjs": { 1198 | "version": "6.11.4", 1199 | "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz", 1200 | "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==", 1201 | "hasInstallScript": true, 1202 | "dependencies": { 1203 | "@protobufjs/aspromise": "^1.1.2", 1204 | "@protobufjs/base64": "^1.1.2", 1205 | "@protobufjs/codegen": "^2.0.4", 1206 | "@protobufjs/eventemitter": "^1.1.0", 1207 | "@protobufjs/fetch": "^1.1.0", 1208 | "@protobufjs/float": "^1.0.2", 1209 | "@protobufjs/inquire": "^1.1.0", 1210 | "@protobufjs/path": "^1.1.2", 1211 | "@protobufjs/pool": "^1.1.0", 1212 | "@protobufjs/utf8": "^1.1.0", 1213 | "@types/long": "^4.0.1", 1214 | "@types/node": ">=13.7.0", 1215 | "long": "^4.0.0" 1216 | }, 1217 | "bin": { 1218 | "pbjs": "bin/pbjs", 1219 | "pbts": "bin/pbts" 1220 | } 1221 | }, 1222 | "node_modules/steam-appticket/node_modules/steamid": { 1223 | "version": "1.1.3", 1224 | "resolved": "https://registry.npmjs.org/steamid/-/steamid-1.1.3.tgz", 1225 | "integrity": "sha512-t86YjtP1LtPt8D+TaIARm6PtC9tBnF1FhxQeLFs6ohG7vDUfQuy/M8II14rx1TTUkVuYoWHP/7DlvTtoCGULcw==", 1226 | "dependencies": { 1227 | "cuint": "^0.2.1" 1228 | } 1229 | }, 1230 | "node_modules/steam-session": { 1231 | "version": "1.9.3", 1232 | "resolved": "https://registry.npmjs.org/steam-session/-/steam-session-1.9.3.tgz", 1233 | "integrity": "sha512-leunJ8205CpEg/QW98S3LS+18qWHGb6wfe1oh2y4v/EChW0gq7Hd/buKb4R/TVh7VbFvb4taMUbwPvMkNaOPyg==", 1234 | "dependencies": { 1235 | "@doctormckay/stdlib": "^2.9.0", 1236 | "@doctormckay/user-agents": "^1.0.0", 1237 | "debug": "^4.3.4", 1238 | "kvparser": "^1.0.1", 1239 | "node-bignumber": "^1.2.2", 1240 | "protobufjs": "^7.1.0", 1241 | "socks-proxy-agent": "^7.0.0", 1242 | "steamid": "^2.0.0", 1243 | "tiny-typed-emitter": "^2.1.0", 1244 | "websocket13": "^4.0.0" 1245 | }, 1246 | "engines": { 1247 | "node": ">=12.22.0" 1248 | } 1249 | }, 1250 | "node_modules/steam-totp": { 1251 | "version": "2.1.2", 1252 | "resolved": "https://registry.npmjs.org/steam-totp/-/steam-totp-2.1.2.tgz", 1253 | "integrity": "sha512-bTKlc/NoIUQId+my+O556s55DDsNNXfVIPWFDNVu68beql7AJhV0c+GTjFxfwCDYfdc4NkAme+0WrDdnY2D2VA==", 1254 | "engines": { 1255 | "node": ">=6.0.0" 1256 | } 1257 | }, 1258 | "node_modules/steam-user": { 1259 | "version": "5.2.3", 1260 | "resolved": "https://registry.npmjs.org/steam-user/-/steam-user-5.2.3.tgz", 1261 | "integrity": "sha512-6Yzaa0l7fcSRaaJzHjfuqettYqAsrW3+1AEu/cj4M/lgRYXa0DfOAjuWj0/wesfkogwuXNE4N/ZMZvNir8TVtw==", 1262 | "dependencies": { 1263 | "@bbob/parser": "^2.2.0", 1264 | "@doctormckay/stdlib": "^2.9.1", 1265 | "@doctormckay/steam-crypto": "^1.2.0", 1266 | "adm-zip": "^0.5.10", 1267 | "binarykvparser": "^2.2.0", 1268 | "bytebuffer": "^5.0.0", 1269 | "file-manager": "^2.0.0", 1270 | "kvparser": "^1.0.1", 1271 | "lzma": "^2.3.2", 1272 | "protobufjs": "^7.2.4", 1273 | "socks-proxy-agent": "^7.0.0", 1274 | "steam-appticket": "^1.0.1", 1275 | "steam-session": "^1.8.0", 1276 | "steam-totp": "^2.0.1", 1277 | "steamid": "^2.0.0", 1278 | "websocket13": "^4.0.0", 1279 | "zstddec": "^0.1.0" 1280 | }, 1281 | "engines": { 1282 | "node": ">=14.0.0" 1283 | } 1284 | }, 1285 | "node_modules/steamcommunity": { 1286 | "version": "3.48.8", 1287 | "resolved": "https://registry.npmjs.org/steamcommunity/-/steamcommunity-3.48.8.tgz", 1288 | "integrity": "sha512-K5piaCVNhAm/5tuRBU7Nqj4gAJeobKQy1vi12iZhXHiVhsfaZoioUxiNQS5sbBBXXBUxtBI7kDZL1CEgcCnQdA==", 1289 | "dependencies": { 1290 | "@doctormckay/user-agents": "^1.0.0", 1291 | "async": "^2.6.3", 1292 | "cheerio": "0.22.0", 1293 | "image-size": "^0.8.2", 1294 | "request": "^2.88.0", 1295 | "steam-session": "^1.9.1", 1296 | "steam-totp": "^1.5.0", 1297 | "steamid": "^1.1.3", 1298 | "xml2js": "^0.6.2" 1299 | }, 1300 | "engines": { 1301 | "node": ">=4.0.0" 1302 | } 1303 | }, 1304 | "node_modules/steamcommunity/node_modules/steam-totp": { 1305 | "version": "1.5.0", 1306 | "resolved": "https://registry.npmjs.org/steam-totp/-/steam-totp-1.5.0.tgz", 1307 | "integrity": "sha512-RMlBK5dFtgplDMYYGg/k80RqEntzBcl7C/0RF18fQh9+XPe/iEMsfKmIE+xj8I3hqJW1akANAC6gf+YpfZq52w==", 1308 | "dependencies": { 1309 | "@doctormckay/stats-reporter": "^1.0.0" 1310 | } 1311 | }, 1312 | "node_modules/steamcommunity/node_modules/steamid": { 1313 | "version": "1.1.3", 1314 | "resolved": "https://registry.npmjs.org/steamid/-/steamid-1.1.3.tgz", 1315 | "integrity": "sha512-t86YjtP1LtPt8D+TaIARm6PtC9tBnF1FhxQeLFs6ohG7vDUfQuy/M8II14rx1TTUkVuYoWHP/7DlvTtoCGULcw==", 1316 | "dependencies": { 1317 | "cuint": "^0.2.1" 1318 | } 1319 | }, 1320 | "node_modules/steamid": { 1321 | "version": "2.1.0", 1322 | "resolved": "https://registry.npmjs.org/steamid/-/steamid-2.1.0.tgz", 1323 | "integrity": "sha512-ndt1cvuuSC+i8fcxVsmeyRlgGsR1QsoAuIXz+eabj8/Y4GIWE2+mgHA7Hys61JDHOxttfWtXHtN2m5TNYTlORg==", 1324 | "engines": { 1325 | "node": ">=12.0.0" 1326 | } 1327 | }, 1328 | "node_modules/string_decoder": { 1329 | "version": "1.3.0", 1330 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 1331 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 1332 | "dependencies": { 1333 | "safe-buffer": "~5.2.0" 1334 | } 1335 | }, 1336 | "node_modules/text-hex": { 1337 | "version": "1.0.0", 1338 | "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", 1339 | "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" 1340 | }, 1341 | "node_modules/tiny-typed-emitter": { 1342 | "version": "2.1.0", 1343 | "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", 1344 | "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" 1345 | }, 1346 | "node_modules/tough-cookie": { 1347 | "version": "2.4.3", 1348 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", 1349 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", 1350 | "dependencies": { 1351 | "psl": "^1.1.24", 1352 | "punycode": "^1.4.1" 1353 | }, 1354 | "engines": { 1355 | "node": ">=0.8" 1356 | } 1357 | }, 1358 | "node_modules/tough-cookie/node_modules/punycode": { 1359 | "version": "1.4.1", 1360 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 1361 | "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" 1362 | }, 1363 | "node_modules/triple-beam": { 1364 | "version": "1.4.1", 1365 | "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", 1366 | "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", 1367 | "engines": { 1368 | "node": ">= 14.0.0" 1369 | } 1370 | }, 1371 | "node_modules/tunnel-agent": { 1372 | "version": "0.6.0", 1373 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 1374 | "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", 1375 | "dependencies": { 1376 | "safe-buffer": "^5.0.1" 1377 | }, 1378 | "engines": { 1379 | "node": "*" 1380 | } 1381 | }, 1382 | "node_modules/tweetnacl": { 1383 | "version": "0.14.5", 1384 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 1385 | "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" 1386 | }, 1387 | "node_modules/undici-types": { 1388 | "version": "6.21.0", 1389 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", 1390 | "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==" 1391 | }, 1392 | "node_modules/uri-js": { 1393 | "version": "4.4.1", 1394 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 1395 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 1396 | "dependencies": { 1397 | "punycode": "^2.1.0" 1398 | } 1399 | }, 1400 | "node_modules/util-deprecate": { 1401 | "version": "1.0.2", 1402 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1403 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 1404 | }, 1405 | "node_modules/uuid": { 1406 | "version": "3.4.0", 1407 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", 1408 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", 1409 | "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", 1410 | "bin": { 1411 | "uuid": "bin/uuid" 1412 | } 1413 | }, 1414 | "node_modules/verror": { 1415 | "version": "1.10.0", 1416 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 1417 | "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", 1418 | "engines": [ 1419 | "node >=0.6.0" 1420 | ], 1421 | "dependencies": { 1422 | "assert-plus": "^1.0.0", 1423 | "core-util-is": "1.0.2", 1424 | "extsprintf": "^1.2.0" 1425 | } 1426 | }, 1427 | "node_modules/websocket-extensions": { 1428 | "version": "0.1.4", 1429 | "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", 1430 | "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", 1431 | "engines": { 1432 | "node": ">=0.8.0" 1433 | } 1434 | }, 1435 | "node_modules/websocket13": { 1436 | "version": "4.0.0", 1437 | "resolved": "https://registry.npmjs.org/websocket13/-/websocket13-4.0.0.tgz", 1438 | "integrity": "sha512-/ujP9ZfihyAZIXKGxcYpoe7Gj4r5o3WYSfP93o9lVNhhqoBtYba4m1s3mxdjKZu/HOhX5Mcqrt89dv/gC3b06A==", 1439 | "dependencies": { 1440 | "@doctormckay/stdlib": "^2.7.1", 1441 | "bytebuffer": "^5.0.1", 1442 | "permessage-deflate": "^0.1.7", 1443 | "tiny-typed-emitter": "^2.1.0", 1444 | "websocket-extensions": "^0.1.4" 1445 | }, 1446 | "engines": { 1447 | "node": ">=12.22.0" 1448 | } 1449 | }, 1450 | "node_modules/winston": { 1451 | "version": "3.3.3", 1452 | "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", 1453 | "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", 1454 | "dependencies": { 1455 | "@dabh/diagnostics": "^2.0.2", 1456 | "async": "^3.1.0", 1457 | "is-stream": "^2.0.0", 1458 | "logform": "^2.2.0", 1459 | "one-time": "^1.0.0", 1460 | "readable-stream": "^3.4.0", 1461 | "stack-trace": "0.0.x", 1462 | "triple-beam": "^1.3.0", 1463 | "winston-transport": "^4.4.0" 1464 | }, 1465 | "engines": { 1466 | "node": ">= 6.4.0" 1467 | } 1468 | }, 1469 | "node_modules/winston-transport": { 1470 | "version": "4.9.0", 1471 | "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", 1472 | "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", 1473 | "dependencies": { 1474 | "logform": "^2.7.0", 1475 | "readable-stream": "^3.6.2", 1476 | "triple-beam": "^1.3.0" 1477 | }, 1478 | "engines": { 1479 | "node": ">= 12.0.0" 1480 | } 1481 | }, 1482 | "node_modules/winston/node_modules/async": { 1483 | "version": "3.2.6", 1484 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", 1485 | "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==" 1486 | }, 1487 | "node_modules/xml2js": { 1488 | "version": "0.6.2", 1489 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", 1490 | "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", 1491 | "dependencies": { 1492 | "sax": ">=0.6.0", 1493 | "xmlbuilder": "~11.0.0" 1494 | }, 1495 | "engines": { 1496 | "node": ">=4.0.0" 1497 | } 1498 | }, 1499 | "node_modules/xmlbuilder": { 1500 | "version": "11.0.1", 1501 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", 1502 | "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", 1503 | "engines": { 1504 | "node": ">=4.0" 1505 | } 1506 | }, 1507 | "node_modules/zstddec": { 1508 | "version": "0.1.0", 1509 | "resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz", 1510 | "integrity": "sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==" 1511 | } 1512 | } 1513 | } 1514 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "steam-auto-friend", 3 | "version": "1.3.4", 4 | "description": "Node.js based script to accept incoming friend requests on steam sending one custom welcome message and displaying custom playing game status message.", 5 | "main": "index.js", 6 | "bugs": { 7 | "url": "https://github.com/Refloow/Steam-Auto-Friend/issues" 8 | }, 9 | "homepage": "https://github.com/Refloow/Steam-Auto-Friend", 10 | "dependencies": { 11 | "colors": "1.4.0", 12 | "console-master": "^1.0.3", 13 | "moment": "2.28.0", 14 | "request": "2.88.0", 15 | "request-promise": "4.2.6", 16 | "saf-diagnostics": "^1.0.2", 17 | "steam-totp": "2.1.2", 18 | "steam-user": "5.2.3", 19 | "steamcommunity": "3.48.8", 20 | "winston": "3.3.3" 21 | }, 22 | "scripts": { 23 | "test": "echo \"Error: no test specified\" && exit 1", 24 | "start": "title Refloow / Steam-Auto-Friend & node index.js pause" 25 | }, 26 | "repository": { 27 | "type": "git", 28 | "url": "git+https://https://github.com/Refloow/Steam-Auto-Friend.git" 29 | }, 30 | "author": "Veljko Vuckovic", 31 | "license": "MIT", 32 | "years": "2020-2022-2023-2024-2025" 33 | } 34 | -------------------------------------------------------------------------------- /start.bat: -------------------------------------------------------------------------------- 1 | title Refloow / Steam-Auto-Friend 2 | cls 3 | node index.js 4 | pause 5 | --------------------------------------------------------------------------------