Skip to content

Latest commit

 

History

History
325 lines (209 loc) · 11.7 KB

File metadata and controls

325 lines (209 loc) · 11.7 KB

Release Notes

v2.4.1 - Dependency Security Refresh

Validation: 171 tests and ESLint pass; all 44 generated files (43 schema modules plus loader) reproduce exactly. The packed package passes offline consumer smoke tests on Node.js 14.21.3 and 24.18.1 with SteamUser 4.29.3 and 5.3.0.

Changed

  • Raised the protobuf runtime minimum to ^7.6.6 and the generator to ^1.3.3 for security fixes; regenerated all 43 static schema modules
  • Updated ESLint to ^10.10.0, Prettier to ^3.9.6, Vitest to ^4.1.11, and the development Steam client to ^5.3.0
  • Refreshed the Bun lockfile, including patched transitive tooling dependencies
  • Preserved Node.js 14+ runtime support and the existing steam-user >=4.2.0 peer requirement
  • Normalized the npm repository URL

Tests

  • Added offline integration tests using the real SteamUser constructor, outgoing GC payloads, and incoming inspection event dispatch

Known limitations

  • The Steam peer dependency still brings audit findings through adm-zip and steam-appticket's protobufjs 6 dependency. This release does not force major-version overrides of those upstream dependencies.
  • Live Steam authentication and GC operations were not tested.

v2.4.0 - CS2 Protocol Refresh and Masked Inspect Links

Release Date: September 8, 2026

CS2 embedded/masked inspect links now work with inspectItem() without contacting the Game Coordinator. The Promise and callback APIs preserve string item IDs, normalize wear and sticker data, and emit the existing inspection events. Legacy S/M links continue to use the GC. Malformed embedded tokens throw synchronously.

Updated cstrike15_usermessages.proto and econ_gcmessages.proto and regenerated their JavaScript modules. The schemas now include custom HUD clicks and VAC reviewer messages and remove obsolete trading enum entries. Legacy trading constants in language.js remain for compatibility.

Upstream protobuf snapshot: GameTracking-CS2 fd04856, August 24, 2026. Masked inspect wire format is based on DoctorMcKay/node-globaloffensive's decoder.

The Bun lockfile now matches the dependency ranges already declared in the package manifest. Validation: 169 tests pass, ESLint passes, all 43 upstream schema hashes match the pinned snapshot, and the packed npm artifact passes a consumer smoke test. No live Steam account or GC operations were used for validation.


v2.3.1 - Latest Protobuf Sync

Release Date: July 2026

Summary

This release syncs protobuf definitions with the latest upstream GameTracking-CS2 versions and keeps GC message ID mappings current.

Changes

  • Updated 13 upstream .proto files from GameTracking-CS2
  • Regenerated all protobufs/generated/*.js modules
  • Added SetClanId (9229) and VolatileShopSubscribe (9228) to language.js
  • New upstream fields include cheating_penalty_level, clan_id on CSOPersonaDataPublic, and CMsgGCCStrike15_v2_SetClanId

Technical Details

  • All changes are backward compatible for existing consumers
  • Package version bumped from 2.3.0 to 2.3.1 for npm publishing

v2.3.0 - Latest Protobufs, Commendations & Crate Field Support

Release Date: June 2026

Summary

This release updates protobuf definitions to the latest upstream GameTracking-CS2 versions and adds public API coverage for newly supported CS2 message fields.

New Features

  • Added commendPlayer(accountId, commendation, matchId, tokens) for CMsgGCCStrike15_v2_ClientCommendPlayer
  • Added optional volatileLimit support to openCrate()
  • Added steammessages_gc.proto and generated protobufs/generated/steammessages_gc.js
  • Added public helloGC() wrapper for the documented manual GC hello/retry flow

Changes

  • Updated and regenerated protobuf definitions from GameTracking-CS2
  • Made scripts/generate-protos.js deterministic by sorting proto files and removing timestamp-only loader changes
  • Added focused tests for openCrate() and commendPlayer() payload generation
  • Updated README, examples, detailed documentation, release notes, and TypeScript declarations to match the current public API
  • Cleaned up lint warnings in inspectItem()

Technical Details

  • All changes are backward compatible for existing consumers
  • Package version bumped from 2.2.4 to 2.3.0 for npm publishing

v2.2.4 - Proto Update Script & Latest Protobuf Definitions

Release Date: March 2026

Summary

This release adds an automated protobuf download script and updates all protobuf definitions to the latest upstream GameTracking-CS2 versions.

New Features

Proto Update Script

  • Added scripts/download-protos.js to automatically fetch latest .proto files from SteamDatabase/GameTracking-CS2
  • Added npm scripts: download-protos, generate-protos, and update-protos (runs both)
  • Enables one-command protobuf updates via npm run update-protos

New Protobuf Definitions

  • Added source2_steam_stats.proto with Steam stats message definitions
  • Added cs_usercmd.proto / usercmd.proto with user command definitions

Changes

Updated Protobuf Definitions

  • Updated netmessages.proto with new network message fields
  • Updated enums_clientserver.proto with new enum values
  • Updated uifontfile_format.proto, usermessages.proto, demo.proto with latest upstream changes
  • Updated base_gcmessages.proto and cstrike15_gcmessages.proto with new fields
  • Removed outdated steammessages_base.proto (no longer in upstream)

Regenerated JS Files

  • All protobufs/generated/*.js files regenerated from updated .proto sources

Housekeeping

  • Removed outdated internal documentation files
  • Updated dev dependencies (eslint, prettier, vitest, protobufjs-cli)
  • Added bun.lock

Technical Details

  • All changes are non-breaking for existing consumers
  • 100% backward compatible
  • Proto files now match latest GameTracking-CS2 upstream

v2.2.3 - Code Quality, TypeScript Definitions & Developer Tooling

Release Date: March 2026

Summary

This release focuses on developer experience and code maintainability. It introduces TypeScript type definitions, extracts magic numbers into named constants, adds ESLint + Prettier for consistent formatting, and sets up Vitest for testing.

New Features

TypeScript Type Definitions

  • Added comprehensive types/index.d.ts with full type definitions for all public APIs
  • Typed all methods, events, enums, and item structures
  • Enables IntelliSense and compile-time type checking for TypeScript projects

Named Constants

  • Added constants.js extracting all magic numbers into descriptive named constants
  • Covers Steam/App IDs, GC connection parameters, operation timeouts, shared object types, item definition indices, and attribute definition indices
  • Improves code readability and maintainability

Improvements

Developer Tooling

  • Added ESLint configuration (eslint.config.js) with Prettier integration
  • Added Prettier configuration (.prettierrc, .prettierignore)
  • Added Vitest configuration (vitest.config.mjs) for unit testing
  • Added lint, lint:fix, format, and test npm scripts

Code Formatting

  • Standardized code formatting across all source files using Prettier
  • Improved readability in index.js, handlers.js, enums.js, language.js, and scripts/generate-protos.js

Technical Details

  • All changes are additive and non-breaking
  • 100% backward compatible
  • Published files list updated to include constants.js and types/

v2.2.0 - Crate Opening & Item Customization Operations

Release Date: December 19, 2024

Summary

This release adds comprehensive support for crate opening and item customization operations, including sticker extraction/encapsulation, patch management, and keychain operations.

New Features

Crate Opening

  • Added openCrate() method to open crates using keys
  • Full Promise and callback API support
  • Configurable timeout (_crateTimeout, default: 30000ms)

Sticker Operations

  • Added extractSticker() method to extract stickers from items
  • Added encapsulateSticker() method to encapsulate stickers
  • Configurable timeout (_stickerTimeout, default: 10000ms)

Patch Operations

  • Added applyPatch() method to apply patches to items
  • Added removePatch() method to remove patches from items
  • Configurable timeout (_stickerTimeout, default: 10000ms)

Keychain Operations

  • Added applyKeychain() method to apply keychains to items
  • Added removeKeychain() method to remove keychains from items
  • Configurable timeout (_stickerTimeout, default: 10000ms)

Technical Details

  • All operations use CMsgGCItemCustomizationNotification protobuf message
  • Automatic event handling via ItemCustomizationNotification
  • Full error handling and validation
  • 100% backward compatible

Documentation

  • Updated EXAMPLES.md with comprehensive examples
  • Updated DETAILED_DOCUMENTATION.md with complete API reference
  • Updated README.md with quick start examples

v2.1.0 - Missing Message IDs & Notification Types

Release Date: December 19, 2024

Summary

This release adds missing message IDs and notification types, preparing the library for future feature implementations.

Changes

Added Missing Message IDs to language.js

From EGCItemMsg (7 new IDs):

  • Dev_SchemaReservationRequest: 2004
  • RecurringSubscriptionStatus: 2530
  • AdjustEquipSlotsManual: 2531
  • AdjustEquipSlotsShuffle: 2532
  • OpenCrate: 2534
  • AcknowledgeRentalExpiration: 2535
  • VolatileItemLoadContents: 2536

From ECsgoGCMsg (11 new IDs):

  • BetaEnrollment: 9217
  • SetPlayerLeaderboardSafeName: 9218
  • ClientRedeemFreeReward: 9219
  • ClientNetworkConfig: 9220
  • GC2ClientNotifyXPShop: 9221
  • Client2GcAckXPShopTracks: 9222
  • MatchmakingGC2ClientSearchStats: 9223
  • PremierSeasonSummary: 9224
  • RequestRecurringMissionSchedule: 9225
  • RecurringMissionSchema: 9226
  • VolatileItemClaimReward: 9227

Added Missing Notification Types to enums.js

New ItemCustomizationNotification types (10 added):

  • ExtractSticker: 1054
  • EncapsulateSticker: 1055
  • RemovePatch: 1089
  • ApplyPatch: 1090
  • ApplyKeychain: 1091
  • RemoveKeychain: 1092
  • ClientRedeemMissionReward: 9209
  • ClientRedeemFreeReward: 9219
  • XpShopUseTicket: 9221
  • XpShopAckTracks: 9222

Impact

  • Backward Compatible: All changes are additive, no breaking changes
  • Future Ready: Message IDs are now available for implementing new features
  • Complete Coverage: All known CS2 message IDs from latest protobuf definitions are included

v2.0.1 - Initial Fork Release

Release Date: December 2024

Summary

Initial release of the node-cs2 fork with updated protobuf definitions and bug fixes.

Changes

  • Updated to latest GameTracking-CS2 protobuf definitions
  • Fixed missing highlight_reel field in stickers, keychains, and variations
  • Fixed missing wrapped_sticker field in sticker data
  • Added support for variations array
  • Enhanced error handling with try-catch blocks
  • Added field validation for critical data
  • Code deduplication with reusable helper functions
  • Promise-based API support for async methods
  • Configurable timeouts for all async operations

Bug Fixes

  • Fixed missing highlight_reel field extraction
  • Fixed missing wrapped_sticker field extraction
  • Fixed protobuf decoding errors not being caught
  • Fixed missing field validation causing runtime errors

Improvements

  • Added Promise support to inspectItem(), getCasketContents(), requestPlayersProfile()
  • Added configurable timeouts: _inspectTimeout, _casketTimeout, _profileTimeout
  • Improved error handling throughout the codebase
  • Better code maintainability with helper functions