@@ -574,239 +574,148 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
574574
575575### Changed
576576
577- - Removed # path imports and replaced with relative paths
577+ - Replaced ` # ` - path imports with relative paths
578578
579579## [ 4.0.0] ( https://github.com/SocketDev/socket-lib/releases/tag/v4.0.0 ) - 2025-11-15
580580
581581### Changed
582582
583- - ** paths ** : Reorganized path utilities into dedicated ` paths/* ` submodules for improved modularity
584- - ** imports ** : Converted lazy require() calls to ES6 static imports for better tree-shaking and bundler compatibility
583+ - ** BREAKING ** : ` paths ` reorganized into dedicated ` paths/* ` submodules
584+ - Lazy ` require() ` calls converted to ES6 static imports for better tree-shaking
585585
586586## [ 3.5.0] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.5.0 ) - 2025-11-14
587587
588588### Added
589589
590- - ** argv/quote** : New utilities for quoting command-line arguments when using ` spawn() ` with ` shell: true `
591- - ` posixQuote(arg) ` : Quote arguments for POSIX shells (bash, sh, zsh) using single quotes
592- - ` win32Quote(arg) ` : Quote arguments for Windows cmd.exe using double quotes
590+ - ` argv/quote ` — ` posixQuote(arg) ` (single-quote for bash/sh/zsh) and ` win32Quote(arg) ` (double-quote for cmd.exe). Use when invoking ` spawn() ` with ` shell: true `
593591
594592## [ 3.4.0] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.4.0 ) - 2025-11-14
595593
596594### Added
597595
598- - ** Spinner** : New ` skip() ` and ` skipAndStop() ` methods for displaying skipped operations
599- - ` skip(text) ` : Display skip message alongside spinner (e.g., "Skipping optional step...")
600- - ` skipAndStop(text) ` : Display skip message and stop spinner in one call
601- - Uses cyan ↻ (refresh/reload) symbol with @ ASCII fallback
602- - Normalizes text formatting consistently with other spinner methods
603- - Useful for communicating skipped steps during long-running operations
604-
605- - ** Logger** : New ` skip() ` method and symbol for skipped operations
606- - ` LOG_SYMBOLS.skip ` : New cyan ↻ symbol for skip output (@ ASCII fallback)
607- - ` skip(message) ` : Display skip messages with dedicated symbol
608- - Complements existing info/step/success/error/warning/reason methods
596+ - ` Spinner ` ` skip(text) ` / ` skipAndStop(text) ` — display skip messages with cyan ↻ symbol
597+ - ` Logger ` ` skip(message) ` and ` LOG_SYMBOLS.skip `
609598
610599## [ 3.3.11] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.3.11 ) - 2025-11-14
611600
612601### Fixed
613602
614- - ** prompts** : Fix "inquirerPrompt is not a function" error in interactive prompts
615- - Properly handle inquirer modules with multiple exports (select, search)
603+ - ` prompts ` — "inquirerPrompt is not a function" when inquirer modules expose multiple exports (select, search)
616604
617605## [ 3.3.10] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.3.10 ) - 2025-11-14
618606
619607### Fixed
620608
621- - ** deps** : Add string-width and wrap-ansi overrides for bundling compatibility
622- - Forces string-width@8.1.0 and wrap-ansi@9.0.2 for compatibility with strip-ansi@7.1.2
609+ - ` string-width@8.1.0 ` and ` wrap-ansi@9.0.2 ` overrides for ` strip-ansi@7.1.2 ` compatibility
623610
624611## [ 3.3.9] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.3.9 ) - 2025-11-14
625612
626613### Fixed
627614
628- - ** deps** : Add strip-ansi override to fix bundling compatibility
629- - Forces strip-ansi@7.1.2 for compatibility with ansi-regex@6.2.2
615+ - ` strip-ansi@7.1.2 ` override for ` ansi-regex@6.2.2 ` compatibility
630616
631617## [ 3.3.8] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.3.8 ) - 2025-11-14
632618
633619### Fixed
634620
635- - ** spinner** : Clear remaining artifacts after withSpinner stops
636- - Fixed rogue spinner characters persisting after spinner completes
621+ - ` spinner ` — clear remaining artifacts after ` withSpinner ` stops (rogue spinner characters)
637622
638623## [ 3.3.7] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.3.7 ) - 2025-11-13
639624
640625### Changed
641626
642- - ** refactor** : Add explicit ` .js ` extensions to external require calls
643- - Improves module resolution clarity and compatibility with modern bundlers
644- - Updated 18 require calls across 10 source files
627+ - Explicit ` .js ` extensions on external ` require() ` calls for modern bundler compat
645628
646629## [ 3.3.6] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.3.6 ) - 2025-11-13
647630
648631### Changed
649632
650- - ** deps** : Add pnpm overrides to consolidate package versions
651- - Force single versions: ` @npmcli/arborist@9.1.6 ` , ` @npmcli/run-script@10.0.0 ` , ` semver@7.7.2 ` , ` ansi-regex@6.2.2 ` , ` lru-cache@11.2.2 `
652- - Update patch from ` @npmcli/run-script@9.1.0 ` to ` @npmcli/run-script@10.0.0 `
653- - Reduces duplicate dependencies and potential version conflicts
633+ - pnpm overrides consolidate ` @npmcli/arborist@9.1.6 ` , ` @npmcli/run-script@10.0.0 ` , ` semver@7.7.2 ` , ` ansi-regex@6.2.2 ` , ` lru-cache@11.2.2 ` to single versions
654634
655635## [ 3.3.5] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.3.5 ) - 2025-11-13
656636
657637### Fixed
658638
659- - ** build ** : Add patches to prevent node-gyp bundling issues
639+ - Patches to prevent ` node-gyp ` bundling issues
660640
661641## [ 3.3.4] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.3.4 ) - 2025-11-13
662642
663643### Fixed
664644
665- - ** build ** : Mark node-gyp as external in npm-pack bundle
645+ - ` node-gyp ` marked external in ` npm-pack ` bundle
666646
667647## [ 3.3.3] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.3.3 ) - 2025-11-13
668648
669649### Fixed
670650
671- - ** build ** : Break node-gyp string to prevent bundler issues with ESM/CJS interop
651+ - ` node-gyp ` string broken to prevent bundler ESM/CJS interop issues
672652
673653## [ 3.3.2] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.3.2 ) - 2025-11-13
674654
675655### Changed
676656
677- - ** dlx** : Install package dependencies after download
678- - ** external ** : Optimize npm package bundle sizes ( ~ 3MB reduction)
657+ - ` dlx ` installs package dependencies after download
658+ - npm package bundle sizes reduced ~ 3 MB
679659
680660## [ 3.3.1] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.3.1 ) - 2025-11-11
681661
682662### Added
683663
684- - Added ` SOCKET_DOCS_CONTACT_URL ` constant for documentation contact support page
685- - Added ` checkbox ` prompt support
664+ - ` SOCKET_DOCS_CONTACT_URL ` constant
665+ - ` checkbox ` prompt support
686666
687667## [ 3.3.0] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.3.0 ) - 2025-11-07
688668
689669### Added
690670
691- - ** Spinner** : New ` reason() ` and ` reasonAndStop() ` methods for displaying working/thinking output
692- - ` reason(text) ` : Display reason text alongside spinner (e.g., "Analyzing dependencies...")
693- - ` reasonAndStop(text) ` : Display reason text and stop spinner in one call
694- - Normalizes text formatting consistently with other spinner methods
695- - Useful for communicating progress steps during long-running operations
696-
697- - ** Logger** : New ` reason() ` method and symbol for working/thinking output
698- - ` LOG_SYMBOLS.reason ` : New symbol for reason output (distinct from info/step symbols)
699- - ` reason(message) ` : Display reason messages with dedicated symbol
700- - Complements existing info/step/success/error/warning methods
671+ - ` Spinner ` ` reason(text) ` / ` reasonAndStop(text) ` — display working/thinking output
672+ - ` Logger ` ` reason(message) ` and ` LOG_SYMBOLS.reason `
701673
702674## [ 3.2.8] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.2.8 ) - 2025-11-05
703675
704676### Fixed
705677
706- - ** build** : Fix CommonJS export script edge cases
707- - Fixed stray semicolons after comment placeholders in transformed modules
708- - Fixed incorrect transformation of ` module.exports.default ` to ` module.module.exports `
709- - Ensures external dependencies and default exports work correctly
678+ - CommonJS export script edge cases (stray semicolons after comment placeholders; incorrect ` module.exports.default ` → ` module.module.exports ` )
710679
711680## [ 3.2.7] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.2.7 ) - 2025-11-05
712681
713682### Fixed
714683
715- - ** build-externals** : Disable minification to preserve exports
716- - External dependencies are no longer minified during bundling
717- - Prevents export name mangling that breaks CommonJS interop
718- - Fixes ` semver.parse() ` and ` semver.major() ` being undefined
719-
720- - ** build** : Fix CommonJS export interop for TypeScript default exports
721- - Modules with ` export default ` now work without requiring ` .default ` accessor
722-
723- ### Changed
724-
725- - ** docs** : Moved packages README to correct location (` src/packages/README.md ` )
684+ - External dependency minification disabled to preserve exports (was breaking ` semver.parse() ` , ` semver.major() ` )
685+ - CommonJS export interop for TypeScript ` export default ` no longer needs ` .default ` accessor
726686
727687## [ 3.2.6] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.2.6 ) - 2025-11-05
728688
729689### Fixed
730690
731- - ** logger** : Replace yoctocolors-cjs rgb() with manual ANSI codes
732- - The yoctocolors-cjs package doesn't have an rgb() method
733- - Manually construct ANSI escape sequences for RGB colors (ESC[ 38;2;r;g;bm...ESC[ 39m)
734- - Affects ` src/logger.ts ` and ` src/stdio/prompts.ts ` applyColor() functions
691+ - ` logger ` and ` stdio/prompts ` — manual ANSI escape sequences for RGB colors (yoctocolors-cjs has no ` rgb() ` method)
735692
736693## [ 3.2.5] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.2.5 ) - 2025-11-05
737694
738695### Added
739696
740- - ** scripts** : Add path alias resolution script (` fix-path-aliases.mjs ` )
741- - Resolves internal path aliases (` #lib/* ` , ` #constants/* ` , etc.) to relative paths in built CommonJS files
742-
743- - ** build** : Integrate path alias resolution into build pipeline
744- - Add path alias plugin to esbuild config
745- - Integrate ` fix-path-aliases.mjs ` into build process
746- - Ensures path aliases work correctly in compiled CommonJS output
697+ - Path alias resolution in build pipeline — ` #lib/* ` / ` #constants/* ` aliases resolve to relative paths in compiled CommonJS
747698
748699## [ 3.2.4] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.2.4 ) - 2025-11-04
749700
750701### Added
751702
752- - ** Logger** : New ` time() ` method for timing operations with automatic duration reporting
753- - Starts a named timer and returns a ` stop() ` function
754- - Automatically logs completion with formatted duration (e.g., "Operation completed in 1.23s")
755- - Useful for performance monitoring and debugging
703+ - ` Logger ` ` time() ` — start a named timer; returns ` stop() ` that logs completion with formatted duration
756704
757705### Fixed
758706
759- - ** Spinner effects** : Fixed star spinner frames by adding trailing space for consistent spacing
760- - ** Build system** : Fixed external dependency bundling issues
761- - Bundle ` @npmcli/package-json ` with subpath exports support
762- - Use ` src/external ` files as bundle entry points for proper module resolution
763- - Bundle libnpmexec from npm instead of using vendored version
764- - Prevent circular dependencies with ` createForceNodeModulesPlugin() ` to force resolution from node_modules
765-
766- ## [ 3.2.3] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.2.3 ) - 2025-11-03
767-
768- ### Internal
769-
770- - ** Build system** : Added stub infrastructure for external dependency bundling
771- - Created organized ` scripts/build-externals/stubs/ ` directory with utility and active stubs
772- - Added conservative stubs for unused dependencies: ` encoding ` /` iconv-lite ` and ` debug `
773- - Reduces external bundle size by ~ 18KB (9KB from encoding stubs, 9KB from debug stubs)
707+ - Star spinner frames — added trailing space for consistent spacing
774708
775709## [ 3.2.2] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.2.2 ) - 2025-11-03
776710
777711### Added
778712
779- - ** DLX** : Binary permission management with chmod 0o755 for all package binaries
780- - New ` makePackageBinsExecutable() ` function ensures all binaries in installed packages are executable
781- - Aligns with npm's cmd-shim approach for binary permissions
782- - Handles both single and multiple binary packages
783- - No-op on Windows (permissions not needed)
784-
785- - ** DLX** : npm-compatible bin resolution via vendored ` getBinFromManifest `
786- - Cherry-picked ` getBinFromManifest ` from libnpmexec@10.1.8 (~ 1.5 KB)
787- - Avoids 1.1 MB bundle by vendoring single function instead of full package
788- - Provides battle-tested npm bin resolution strategy
789- - Maintains user-friendly fallbacks for edge cases
790-
791- ### Changed
792-
793- - ** DLX** : Enhanced ` findBinaryPath() ` with npm's resolution strategy
794- - Primary: npm's ` getBinFromManifest ` (handles standard cases and aliases)
795- - Fallback: user-provided ` binaryName ` parameter
796- - Fallback: last segment of package name
797- - Last resort: first binary in list
713+ - ` dlx ` ` makePackageBinsExecutable() ` — chmod 0o755 on all package binaries (no-op on Windows)
714+ - ` dlx ` ` findBinaryPath() ` adopts npm's resolution strategy (vendored ` getBinFromManifest ` from libnpmexec)
798715
799716### Performance
800717
801- - ** Optimized package size** : Reduced bundle size through strategic export minimization and vendoring
802- - Vendored ` getBinFromManifest ` function instead of bundling full libnpmexec (~ 1.1 MB savings)
803- - Minimized external module exports for better tree-shaking:
804- - ` fast-sort ` : Now exports only ` { createNewSortInstance } ` (2.1 KB, 96% reduction from ~ 56 KB)
805- - ` fast-glob ` : Now exports only ` { globStream } ` (82 KB bundle)
806- - ` del ` : Now exports only ` { deleteAsync, deleteSync } ` (100 KB bundle)
807- - ` streaming-iterables ` : Now exports only ` { parallelMap, transform } ` (11 KB, 93% reduction from ~ 168 KB)
808- - Total savings: ~ 1.3 MB (1.1 MB from vendoring + 211 KB from minimized exports)
809- - Establishes pattern for future external module additions
718+ - Bundle size reduced ~ 1.3 MB total — vendored ` getBinFromManifest ` (1.1 MB savings) + minimized exports for ` fast-sort ` , ` fast-glob ` , ` del ` , ` streaming-iterables `
810719
811720## [ 3.2.1] ( https://github.com/SocketDev/socket-lib/releases/tag/v3.2.1 ) - 2025-11-02
812721
0 commit comments