├── .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 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
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 | [](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 |
--------------------------------------------------------------------------------