@socketsecurity/lib 3.0.1 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.0.2](https://github.com/SocketDev/socket-lib/releases/tag/v3.0.2) - 2025-11-01
9
+
10
+ ### Fixed
11
+
12
+ - **Critical: Node.js ESM named imports from CommonJS**: Fixed build output to ensure Node.js ESM can properly detect named exports from CommonJS modules
13
+ - Previously, esbuild's minified export pattern placed `module.exports` before variable definitions, causing "Cannot access before initialization" errors
14
+ - Build script now uses `@babel/parser` + `magic-string` for safe AST parsing and transformation
15
+ - Exports are now correctly placed at end of files after all variable definitions
16
+ - Enables proper ESM named imports: `import { getDefaultLogger, Logger } from '@socketsecurity/lib/logger'`
17
+ - Fixes socket-cli issue where named imports were failing with obscure initialization errors
18
+
8
19
  ## [3.0.1](https://github.com/SocketDev/socket-lib/releases/tag/v3.0.1) - 2025-11-01
9
20
 
10
21
  ### Added
@@ -13,7 +13,7 @@ export declare const UNKNOWN_VALUE = "<unknown>";
13
13
  export declare const EMPTY_FILE = "/* empty */\n";
14
14
  export declare const EMPTY_VALUE = "<value>";
15
15
  // Undefined token.
16
- export declare const UNDEFINED_TOKEN: any;
16
+ export declare const UNDEFINED_TOKEN: undefined;
17
17
  // Miscellaneous.
18
18
  export declare const V = "v";
19
19
  export declare const COLUMN_LIMIT = 80;
@@ -1,4 +1,4 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var N=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var c=(t,o)=>{for(var e in o)N(t,e,{get:o[e],enumerable:!0})},O=(t,o,e,E)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of s(o))!_.call(t,n)&&n!==e&&N(t,n,{get:()=>o[n],enumerable:!(E=r(o,n))||E.enumerable});return t};var p=t=>O(N({},"__esModule",{value:!0}),t);var y={};c(y,{COLUMN_LIMIT:()=>V,EMPTY_FILE:()=>D,EMPTY_VALUE:()=>I,LOOP_SENTINEL:()=>T,NODE_AUTH_TOKEN:()=>a,NODE_ENV:()=>k,UNDEFINED_TOKEN:()=>l,UNKNOWN_ERROR:()=>U,UNKNOWN_VALUE:()=>L,V:()=>K,kInternalsSymbol:()=>x});module.exports=p(y);const x=Symbol("@socketregistry.constants.internals"),T=1e6,U="Unknown error",L="<unknown>",D=`/* empty */
3
- `,I="<value>",l=void 0,K="v",V=80,a="NODE_AUTH_TOKEN",k="NODE_ENV";0&&(module.exports={COLUMN_LIMIT,EMPTY_FILE,EMPTY_VALUE,LOOP_SENTINEL,NODE_AUTH_TOKEN,NODE_ENV,UNDEFINED_TOKEN,UNKNOWN_ERROR,UNKNOWN_VALUE,V,kInternalsSymbol});
2
+ var N=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var c=(t,o)=>{for(var e in o)N(t,e,{get:o[e],enumerable:!0})},O=(t,o,e,E)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of s(o))!_.call(t,n)&&n!==e&&N(t,n,{get:()=>o[n],enumerable:!(E=r(o,n))||E.enumerable});return t};var p=t=>O(N({},"__esModule",{value:!0}),t);var i={};c(i,{COLUMN_LIMIT:()=>V,EMPTY_FILE:()=>D,EMPTY_VALUE:()=>I,LOOP_SENTINEL:()=>T,NODE_AUTH_TOKEN:()=>a,NODE_ENV:()=>d,UNDEFINED_TOKEN:()=>l,UNKNOWN_ERROR:()=>U,UNKNOWN_VALUE:()=>L,V:()=>K,kInternalsSymbol:()=>x});module.exports=p(i);const x=Symbol("@socketregistry.constants.internals"),T=1e6,U="Unknown error",L="<unknown>",D=`/* empty */
3
+ `,I="<value>",l=void 0,K="v",V=80,a="NODE_AUTH_TOKEN",d="NODE_ENV";0&&(module.exports={COLUMN_LIMIT,EMPTY_FILE,EMPTY_VALUE,LOOP_SENTINEL,NODE_AUTH_TOKEN,NODE_ENV,UNDEFINED_TOKEN,UNKNOWN_ERROR,UNKNOWN_VALUE,V,kInternalsSymbol});
4
4
  //# sourceMappingURL=core.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants/core.ts"],
4
- "sourcesContent": ["/**\n * Core primitives and fundamental constants.\n * Goal: Minimize this module by finding proper semantic homes for all constants.\n */\n\n// Internal implementation symbol.\nexport const kInternalsSymbol = Symbol('@socketregistry.constants.internals')\n\n// Sentinel values.\nexport const LOOP_SENTINEL = 1_000_000\n\n// Error and unknown values.\nexport const UNKNOWN_ERROR = 'Unknown error'\nexport const UNKNOWN_VALUE = '<unknown>'\n\n// Empty values.\nexport const EMPTY_FILE = '/* empty */\\n'\nexport const EMPTY_VALUE = '<value>'\n\n// Undefined token.\nexport const UNDEFINED_TOKEN = undefined\n\n// Miscellaneous.\nexport const V = 'v'\nexport const COLUMN_LIMIT = 80\n\n// Environment variable name constants.\nexport const NODE_AUTH_TOKEN = 'NODE_AUTH_TOKEN'\nexport const NODE_ENV = 'NODE_ENV'\n"],
5
- "mappings": ";4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,EAAA,eAAAC,EAAA,gBAAAC,EAAA,kBAAAC,EAAA,oBAAAC,EAAA,aAAAC,EAAA,oBAAAC,EAAA,kBAAAC,EAAA,kBAAAC,EAAA,MAAAC,EAAA,qBAAAC,IAAA,eAAAC,EAAAb,GAMO,MAAMY,EAAmB,OAAO,qCAAqC,EAG/DP,EAAgB,IAGhBI,EAAgB,gBAChBC,EAAgB,YAGhBP,EAAa;AAAA,EACbC,EAAc,UAGdI,EAAkB,OAGlBG,EAAI,IACJT,EAAe,GAGfI,EAAkB,kBAClBC,EAAW",
4
+ "sourcesContent": ["/**\n * Core primitives and fundamental constants.\n * Goal: Minimize this module by finding proper semantic homes for all constants.\n */\n\n// Internal implementation symbol.\nexport const kInternalsSymbol = Symbol('@socketregistry.constants.internals')\n\n// Sentinel values.\nexport const LOOP_SENTINEL = 1_000_000\n\n// Error and unknown values.\nexport const UNKNOWN_ERROR = 'Unknown error'\nexport const UNKNOWN_VALUE = '<unknown>'\n\n// Empty values.\nexport const EMPTY_FILE = '/* empty */\\n'\nexport const EMPTY_VALUE = '<value>'\n\n// Undefined token.\nexport const UNDEFINED_TOKEN: undefined = undefined\n\n// Miscellaneous.\nexport const V = 'v'\nexport const COLUMN_LIMIT = 80\n\n// Environment variable name constants.\nexport const NODE_AUTH_TOKEN = 'NODE_AUTH_TOKEN'\nexport const NODE_ENV = 'NODE_ENV'\n"],
5
+ "mappings": ";4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,EAAA,eAAAC,EAAA,gBAAAC,EAAA,kBAAAC,EAAA,oBAAAC,EAAA,aAAAC,EAAA,oBAAAC,EAAA,kBAAAC,EAAA,kBAAAC,EAAA,MAAAC,EAAA,qBAAAC,IAAA,eAAAC,EAAAb,GAMO,MAAMY,EAAmB,OAAO,qCAAqC,EAG/DP,EAAgB,IAGhBI,EAAgB,gBAChBC,EAAgB,YAGhBP,EAAa;AAAA,EACbC,EAAc,UAGdI,EAA6B,OAG7BG,EAAI,IACJT,EAAe,GAGfI,EAAkB,kBAClBC,EAAW",
6
6
  "names": ["core_exports", "__export", "COLUMN_LIMIT", "EMPTY_FILE", "EMPTY_VALUE", "LOOP_SENTINEL", "NODE_AUTH_TOKEN", "NODE_ENV", "UNDEFINED_TOKEN", "UNKNOWN_ERROR", "UNKNOWN_VALUE", "V", "kInternalsSymbol", "__toCommonJS"]
7
7
  }
package/dist/dlx.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var p=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var S=(e,r)=>{for(var t in r)p(e,t,{get:r[t],enumerable:!0})},b=(e,r,t,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of w(r))!E.call(e,n)&&n!==t&&p(e,n,{get:()=>r[n],enumerable:!(s=v(r,n))||s.enumerable});return e};var $=e=>b(p({},"__esModule",{value:!0}),e);var J={};S(J,{clearDlx:()=>j,clearDlxSync:()=>F,dlxDirExists:()=>M,dlxDirExistsAsync:()=>A,ensureDlxDir:()=>I,ensureDlxDirSync:()=>L,generateCacheKey:()=>C,getDlxInstalledPackageDir:()=>f,getDlxPackageDir:()=>l,getDlxPackageJsonPath:()=>T,getDlxPackageNodeModulesDir:()=>m,isDlxPackageInstalled:()=>_,isDlxPackageInstalledAsync:()=>q,isInSocketDlx:()=>X,listDlxPackages:()=>h,listDlxPackagesAsync:()=>D,removeDlxPackage:()=>P,removeDlxPackageSync:()=>k});module.exports=$(J);var x=require("crypto"),i=require("./fs"),c=require("./path"),o=require("./paths"),y=require("./promises");let g;function a(){return g===void 0&&(g=require("node:fs")),g}function C(e){return(0,x.createHash)("sha512").update(e).digest("hex").substring(0,16)}let d;function u(){return d===void 0&&(d=require("node:path")),d}async function j(){const e=await D();await(0,y.pEach)(e,r=>P(r))}function F(){const e=h();for(const r of e)k(r)}function M(){return a().existsSync((0,o.getSocketDlxDir)())}async function A(){const e=a();try{return await e.promises.access((0,o.getSocketDlxDir)()),!0}catch{return!1}}async function I(){await(0,i.safeMkdir)((0,o.getSocketDlxDir)(),{recursive:!0})}function L(){(0,i.safeMkdirSync)((0,o.getSocketDlxDir)(),{recursive:!0})}function f(e){return(0,c.normalizePath)(u().join(m(e),e))}function l(e){return(0,c.normalizePath)(u().join((0,o.getSocketDlxDir)(),e))}function T(e){return(0,c.normalizePath)(u().join(f(e),"package.json"))}function m(e){return(0,c.normalizePath)(u().join(l(e),"node_modules"))}function X(e){if(!e)return!1;const r=u(),t=(0,o.getSocketDlxDir)();return r.resolve(e).startsWith(t+r.sep)}function _(e){return a().existsSync(f(e))}async function q(e){const r=a();try{return await r.promises.access(f(e)),!0}catch{return!1}}function h(){try{return(0,i.readDirNamesSync)((0,o.getSocketDlxDir)(),{sort:!0})}catch{return[]}}async function D(){const e=a();try{return(await e.promises.readdir((0,o.getSocketDlxDir)(),{withFileTypes:!0})).filter(t=>t.isDirectory()).map(t=>t.name).sort()}catch{return[]}}async function P(e){const r=l(e);try{await(0,i.safeDelete)(r,{recursive:!0,force:!0})}catch(t){throw new Error(`Failed to remove DLX package "${e}"`,{cause:t})}}function k(e){const r=a(),t=l(e);try{r.rmSync(t,{recursive:!0,force:!0})}catch(s){const n=s.code;throw n==="EACCES"||n==="EPERM"?new Error(`Permission denied removing DLX package "${e}"
2
+ var p=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var S=(e,r)=>{for(var t in r)p(e,t,{get:r[t],enumerable:!0})},b=(e,r,t,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of w(r))!E.call(e,n)&&n!==t&&p(e,n,{get:()=>r[n],enumerable:!(s=v(r,n))||s.enumerable});return e};var $=e=>b(p({},"__esModule",{value:!0}),e);var J={};S(J,{clearDlx:()=>j,clearDlxSync:()=>F,dlxDirExists:()=>M,dlxDirExistsAsync:()=>A,ensureDlxDir:()=>I,ensureDlxDirSync:()=>L,generateCacheKey:()=>C,getDlxInstalledPackageDir:()=>f,getDlxPackageDir:()=>l,getDlxPackageJsonPath:()=>T,getDlxPackageNodeModulesDir:()=>m,isDlxPackageInstalled:()=>_,isDlxPackageInstalledAsync:()=>q,isInSocketDlx:()=>X,listDlxPackages:()=>h,listDlxPackagesAsync:()=>D,removeDlxPackage:()=>P,removeDlxPackageSync:()=>k});module.exports=$(J);var x=require("crypto"),i=require("./fs"),a=require("./path"),o=require("./paths"),y=require("./promises");let g;function c(){return g===void 0&&(g=require("node:fs")),g}function C(e){return(0,x.createHash)("sha512").update(e).digest("hex").substring(0,16)}let d;function u(){return d===void 0&&(d=require("node:path")),d}async function j(){const e=await D();await(0,y.pEach)(e,r=>P(r))}function F(){const e=h();for(const r of e)k(r)}function M(){return c().existsSync((0,o.getSocketDlxDir)())}async function A(){const e=c();try{return await e.promises.access((0,o.getSocketDlxDir)()),!0}catch{return!1}}async function I(){await(0,i.safeMkdir)((0,o.getSocketDlxDir)(),{recursive:!0})}function L(){(0,i.safeMkdirSync)((0,o.getSocketDlxDir)(),{recursive:!0})}function f(e){return(0,a.normalizePath)(u().join(m(e),e))}function l(e){return(0,a.normalizePath)(u().join((0,o.getSocketDlxDir)(),e))}function T(e){return(0,a.normalizePath)(u().join(f(e),"package.json"))}function m(e){return(0,a.normalizePath)(u().join(l(e),"node_modules"))}function X(e){if(!e)return!1;const r=u(),t=(0,o.getSocketDlxDir)();return(0,a.normalizePath)(r.resolve(e)).startsWith(t+"/")}function _(e){return c().existsSync(f(e))}async function q(e){const r=c();try{return await r.promises.access(f(e)),!0}catch{return!1}}function h(){try{return(0,i.readDirNamesSync)((0,o.getSocketDlxDir)(),{sort:!0})}catch{return[]}}async function D(){const e=c();try{return(await e.promises.readdir((0,o.getSocketDlxDir)(),{withFileTypes:!0})).filter(t=>t.isDirectory()).map(t=>t.name).sort()}catch{return[]}}async function P(e){const r=l(e);try{await(0,i.safeDelete)(r,{recursive:!0,force:!0})}catch(t){throw new Error(`Failed to remove DLX package "${e}"`,{cause:t})}}function k(e){const r=c(),t=l(e);try{r.rmSync(t,{recursive:!0,force:!0})}catch(s){const n=s.code;throw n==="EACCES"||n==="EPERM"?new Error(`Permission denied removing DLX package "${e}"
3
3
  Directory: ${t}
4
4
  To resolve:
5
5
  1. Check file/directory permissions
package/dist/dlx.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/dlx.ts"],
4
- "sourcesContent": ["/** @fileoverview DLX (execute package) utilities for Socket ecosystem shared installations. */\n\nimport { createHash } from 'crypto'\n\nimport { readDirNamesSync, safeDelete, safeMkdir, safeMkdirSync } from './fs'\nimport { normalizePath } from './path'\nimport { getSocketDlxDir } from './paths'\nimport { pEach } from './promises'\n\nlet _fs: typeof import('fs') | undefined\n/**\n * Lazily load the fs module to avoid Webpack errors.\n * Uses non-'node:' prefixed require to prevent Webpack bundling issues.\n *\n * @returns The Node.js fs module\n * @private\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getFs() {\n if (_fs === undefined) {\n // Use non-'node:' prefixed require to avoid Webpack errors.\n\n _fs = /*@__PURE__*/ require('node:fs')\n }\n return _fs as typeof import('fs')\n}\n\n/**\n * Generate a cache directory name using npm/npx approach.\n * Uses first 16 characters of SHA-512 hash (like npm/npx).\n *\n * Rationale for SHA-512 truncated (vs full SHA-256):\n * - Matches npm/npx ecosystem behavior\n * - Shorter paths for Windows MAX_PATH compatibility (260 chars)\n * - 16 hex chars = 64 bits = acceptable collision risk for local cache\n * - Collision probability ~1 in 18 quintillion with 1000 entries\n *\n * Input strategy (aligned with npx):\n * - npx uses package spec strings (e.g., '@scope/pkg@1.0.0', 'prettier@3.0.0')\n * - Caller provides complete spec string with version for accurate cache keying\n * - For package installs: Use PURL-style spec with version\n * Examples: 'npm:prettier@3.0.0', 'pypi:requests@2.31.0', 'gem:rails@7.0.0'\n * Note: Socket uses shorthand format without 'pkg:' prefix\n * (handled by @socketregistry/packageurl-js)\n * - For binary downloads: Use URL:name for uniqueness\n *\n * Reference: npm/cli v11.6.2 libnpmexec/lib/index.js#L233-L244\n * https://github.com/npm/cli/blob/v11.6.2/workspaces/libnpmexec/lib/index.js#L233-L244\n * Implementation: packages.map().sort().join('\\n') \u2192 SHA-512 \u2192 slice(0,16)\n * npx hashes the package spec (name@version), not just name\n */\nexport function generateCacheKey(spec: string): string {\n return createHash('sha512').update(spec).digest('hex').substring(0, 16)\n}\n\nlet _path: typeof import('path') | undefined\n/**\n * Lazily load the path module to avoid Webpack errors.\n * @private\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getPath() {\n if (_path === undefined) {\n // Use non-'node:' prefixed require to avoid Webpack errors.\n\n _path = /*@__PURE__*/ require('node:path')\n }\n return _path!\n}\n\n/**\n * Clear all DLX package installations.\n */\nexport async function clearDlx(): Promise<void> {\n const packages = await listDlxPackagesAsync()\n await pEach(packages, pkg => removeDlxPackage(pkg))\n}\n\n/**\n * Clear all DLX package installations synchronously.\n */\nexport function clearDlxSync(): void {\n const packages = listDlxPackages()\n for (const pkg of packages) {\n removeDlxPackageSync(pkg)\n }\n}\n\n/**\n * Check if the DLX directory exists.\n */\nexport function dlxDirExists(): boolean {\n const fs = getFs()\n return fs.existsSync(getSocketDlxDir())\n}\n\n/**\n * Check if the DLX directory exists asynchronously.\n */\nexport async function dlxDirExistsAsync(): Promise<boolean> {\n const fs = getFs()\n try {\n await fs.promises.access(getSocketDlxDir())\n return true\n } catch {\n return false\n }\n}\n\n/**\n * Ensure the DLX directory exists, creating it if necessary.\n */\nexport async function ensureDlxDir(): Promise<void> {\n await safeMkdir(getSocketDlxDir(), { recursive: true })\n}\n\n/**\n * Ensure the DLX directory exists synchronously, creating it if necessary.\n */\nexport function ensureDlxDirSync(): void {\n safeMkdirSync(getSocketDlxDir(), { recursive: true })\n}\n\n/**\n * Get the installed package directory within DLX node_modules.\n */\nexport function getDlxInstalledPackageDir(packageName: string): string {\n const path = getPath()\n return normalizePath(\n path.join(getDlxPackageNodeModulesDir(packageName), packageName),\n )\n}\n\n/**\n * Get the DLX installation directory for a specific package.\n */\nexport function getDlxPackageDir(packageName: string): string {\n const path = getPath()\n return normalizePath(path.join(getSocketDlxDir(), packageName))\n}\n\n/**\n * Get the package.json path for a DLX installed package.\n */\nexport function getDlxPackageJsonPath(packageName: string): string {\n const path = getPath()\n return normalizePath(\n path.join(getDlxInstalledPackageDir(packageName), 'package.json'),\n )\n}\n\n/**\n * Get the node_modules directory for a DLX package installation.\n */\nexport function getDlxPackageNodeModulesDir(packageName: string): string {\n const path = getPath()\n return normalizePath(path.join(getDlxPackageDir(packageName), 'node_modules'))\n}\n\n/**\n * Check if a file path is within the Socket DLX directory.\n * This is useful for determining if a binary or file is managed by Socket's DLX system.\n *\n * @param filePath - Absolute or relative path to check\n * @returns true if the path is within ~/.socket/_dlx/, false otherwise\n *\n * @example\n * ```typescript\n * isInSocketDlx('/home/user/.socket/_dlx/abc123/bin/socket') // true\n * isInSocketDlx('/usr/local/bin/socket') // false\n * isInSocketDlx(process.argv[0]) // Check if current binary is in DLX\n * ```\n */\nexport function isInSocketDlx(filePath: string): boolean {\n if (!filePath) {\n return false\n }\n\n const path = getPath()\n const dlxDir = getSocketDlxDir()\n const absolutePath = path.resolve(filePath)\n\n // Check if the absolute path starts with the DLX directory.\n return absolutePath.startsWith(dlxDir + path.sep)\n}\n\n/**\n * Check if a package is installed in DLX.\n */\nexport function isDlxPackageInstalled(packageName: string): boolean {\n const fs = getFs()\n return fs.existsSync(getDlxInstalledPackageDir(packageName))\n}\n\n/**\n * Check if a package is installed in DLX asynchronously.\n */\nexport async function isDlxPackageInstalledAsync(\n packageName: string,\n): Promise<boolean> {\n const fs = getFs()\n try {\n await fs.promises.access(getDlxInstalledPackageDir(packageName))\n return true\n } catch {\n return false\n }\n}\n\n/**\n * List all packages installed in DLX.\n */\nexport function listDlxPackages(): string[] {\n try {\n return readDirNamesSync(getSocketDlxDir(), { sort: true })\n } catch {\n return []\n }\n}\n\n/**\n * List all packages installed in DLX asynchronously.\n */\nexport async function listDlxPackagesAsync(): Promise<string[]> {\n const fs = getFs()\n try {\n const entries = await fs.promises.readdir(getSocketDlxDir(), {\n withFileTypes: true,\n })\n return entries\n .filter(e => e.isDirectory())\n .map(e => e.name)\n .sort()\n } catch {\n return []\n }\n}\n\n/**\n * Remove a DLX package installation.\n */\nexport async function removeDlxPackage(packageName: string): Promise<void> {\n const packageDir = getDlxPackageDir(packageName)\n try {\n await safeDelete(packageDir, { recursive: true, force: true })\n } catch (e) {\n throw new Error(`Failed to remove DLX package \"${packageName}\"`, {\n cause: e,\n })\n }\n}\n\n/**\n * Remove a DLX package installation synchronously.\n */\nexport function removeDlxPackageSync(packageName: string): void {\n const fs = getFs()\n const packageDir = getDlxPackageDir(packageName)\n try {\n fs.rmSync(packageDir, { recursive: true, force: true })\n } catch (e) {\n const code = (e as NodeJS.ErrnoException).code\n if (code === 'EACCES' || code === 'EPERM') {\n throw new Error(\n `Permission denied removing DLX package \"${packageName}\"\\n` +\n `Directory: ${packageDir}\\n` +\n 'To resolve:\\n' +\n ' 1. Check file/directory permissions\\n' +\n ' 2. Close any programs using files in this directory\\n' +\n ' 3. Try running with elevated privileges if necessary\\n' +\n ` 4. Manually remove: rm -rf \"${packageDir}\"`,\n { cause: e },\n )\n }\n if (code === 'EROFS') {\n throw new Error(\n `Cannot remove DLX package \"${packageName}\" from read-only filesystem\\n` +\n `Directory: ${packageDir}\\n` +\n 'The filesystem is mounted read-only.',\n { cause: e },\n )\n }\n throw new Error(\n `Failed to remove DLX package \"${packageName}\"\\n` +\n `Directory: ${packageDir}\\n` +\n 'Check permissions and ensure no programs are using this directory.',\n { cause: e },\n )\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/** @fileoverview DLX (execute package) utilities for Socket ecosystem shared installations. */\n\nimport { createHash } from 'crypto'\n\nimport { readDirNamesSync, safeDelete, safeMkdir, safeMkdirSync } from './fs'\nimport { normalizePath } from './path'\nimport { getSocketDlxDir } from './paths'\nimport { pEach } from './promises'\n\nlet _fs: typeof import('fs') | undefined\n/**\n * Lazily load the fs module to avoid Webpack errors.\n * Uses non-'node:' prefixed require to prevent Webpack bundling issues.\n *\n * @returns The Node.js fs module\n * @private\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getFs() {\n if (_fs === undefined) {\n // Use non-'node:' prefixed require to avoid Webpack errors.\n\n _fs = /*@__PURE__*/ require('node:fs')\n }\n return _fs as typeof import('fs')\n}\n\n/**\n * Generate a cache directory name using npm/npx approach.\n * Uses first 16 characters of SHA-512 hash (like npm/npx).\n *\n * Rationale for SHA-512 truncated (vs full SHA-256):\n * - Matches npm/npx ecosystem behavior\n * - Shorter paths for Windows MAX_PATH compatibility (260 chars)\n * - 16 hex chars = 64 bits = acceptable collision risk for local cache\n * - Collision probability ~1 in 18 quintillion with 1000 entries\n *\n * Input strategy (aligned with npx):\n * - npx uses package spec strings (e.g., '@scope/pkg@1.0.0', 'prettier@3.0.0')\n * - Caller provides complete spec string with version for accurate cache keying\n * - For package installs: Use PURL-style spec with version\n * Examples: 'npm:prettier@3.0.0', 'pypi:requests@2.31.0', 'gem:rails@7.0.0'\n * Note: Socket uses shorthand format without 'pkg:' prefix\n * (handled by @socketregistry/packageurl-js)\n * - For binary downloads: Use URL:name for uniqueness\n *\n * Reference: npm/cli v11.6.2 libnpmexec/lib/index.js#L233-L244\n * https://github.com/npm/cli/blob/v11.6.2/workspaces/libnpmexec/lib/index.js#L233-L244\n * Implementation: packages.map().sort().join('\\n') \u2192 SHA-512 \u2192 slice(0,16)\n * npx hashes the package spec (name@version), not just name\n */\nexport function generateCacheKey(spec: string): string {\n return createHash('sha512').update(spec).digest('hex').substring(0, 16)\n}\n\nlet _path: typeof import('path') | undefined\n/**\n * Lazily load the path module to avoid Webpack errors.\n * @private\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getPath() {\n if (_path === undefined) {\n // Use non-'node:' prefixed require to avoid Webpack errors.\n\n _path = /*@__PURE__*/ require('node:path')\n }\n return _path!\n}\n\n/**\n * Clear all DLX package installations.\n */\nexport async function clearDlx(): Promise<void> {\n const packages = await listDlxPackagesAsync()\n await pEach(packages, pkg => removeDlxPackage(pkg))\n}\n\n/**\n * Clear all DLX package installations synchronously.\n */\nexport function clearDlxSync(): void {\n const packages = listDlxPackages()\n for (const pkg of packages) {\n removeDlxPackageSync(pkg)\n }\n}\n\n/**\n * Check if the DLX directory exists.\n */\nexport function dlxDirExists(): boolean {\n const fs = getFs()\n return fs.existsSync(getSocketDlxDir())\n}\n\n/**\n * Check if the DLX directory exists asynchronously.\n */\nexport async function dlxDirExistsAsync(): Promise<boolean> {\n const fs = getFs()\n try {\n await fs.promises.access(getSocketDlxDir())\n return true\n } catch {\n return false\n }\n}\n\n/**\n * Ensure the DLX directory exists, creating it if necessary.\n */\nexport async function ensureDlxDir(): Promise<void> {\n await safeMkdir(getSocketDlxDir(), { recursive: true })\n}\n\n/**\n * Ensure the DLX directory exists synchronously, creating it if necessary.\n */\nexport function ensureDlxDirSync(): void {\n safeMkdirSync(getSocketDlxDir(), { recursive: true })\n}\n\n/**\n * Get the installed package directory within DLX node_modules.\n */\nexport function getDlxInstalledPackageDir(packageName: string): string {\n const path = getPath()\n return normalizePath(\n path.join(getDlxPackageNodeModulesDir(packageName), packageName),\n )\n}\n\n/**\n * Get the DLX installation directory for a specific package.\n */\nexport function getDlxPackageDir(packageName: string): string {\n const path = getPath()\n return normalizePath(path.join(getSocketDlxDir(), packageName))\n}\n\n/**\n * Get the package.json path for a DLX installed package.\n */\nexport function getDlxPackageJsonPath(packageName: string): string {\n const path = getPath()\n return normalizePath(\n path.join(getDlxInstalledPackageDir(packageName), 'package.json'),\n )\n}\n\n/**\n * Get the node_modules directory for a DLX package installation.\n */\nexport function getDlxPackageNodeModulesDir(packageName: string): string {\n const path = getPath()\n return normalizePath(path.join(getDlxPackageDir(packageName), 'node_modules'))\n}\n\n/**\n * Check if a file path is within the Socket DLX directory.\n * This is useful for determining if a binary or file is managed by Socket's DLX system.\n *\n * @param filePath - Absolute or relative path to check\n * @returns true if the path is within ~/.socket/_dlx/, false otherwise\n *\n * @example\n * ```typescript\n * isInSocketDlx('/home/user/.socket/_dlx/abc123/bin/socket') // true\n * isInSocketDlx('/usr/local/bin/socket') // false\n * isInSocketDlx(process.argv[0]) // Check if current binary is in DLX\n * ```\n */\nexport function isInSocketDlx(filePath: string): boolean {\n if (!filePath) {\n return false\n }\n\n const path = getPath()\n const dlxDir = getSocketDlxDir()\n const absolutePath = normalizePath(path.resolve(filePath))\n\n // Check if the absolute path starts with the DLX directory.\n // Both paths are normalized to use forward slashes for consistent comparison.\n return absolutePath.startsWith(dlxDir + '/')\n}\n\n/**\n * Check if a package is installed in DLX.\n */\nexport function isDlxPackageInstalled(packageName: string): boolean {\n const fs = getFs()\n return fs.existsSync(getDlxInstalledPackageDir(packageName))\n}\n\n/**\n * Check if a package is installed in DLX asynchronously.\n */\nexport async function isDlxPackageInstalledAsync(\n packageName: string,\n): Promise<boolean> {\n const fs = getFs()\n try {\n await fs.promises.access(getDlxInstalledPackageDir(packageName))\n return true\n } catch {\n return false\n }\n}\n\n/**\n * List all packages installed in DLX.\n */\nexport function listDlxPackages(): string[] {\n try {\n return readDirNamesSync(getSocketDlxDir(), { sort: true })\n } catch {\n return []\n }\n}\n\n/**\n * List all packages installed in DLX asynchronously.\n */\nexport async function listDlxPackagesAsync(): Promise<string[]> {\n const fs = getFs()\n try {\n const entries = await fs.promises.readdir(getSocketDlxDir(), {\n withFileTypes: true,\n })\n return entries\n .filter(e => e.isDirectory())\n .map(e => e.name)\n .sort()\n } catch {\n return []\n }\n}\n\n/**\n * Remove a DLX package installation.\n */\nexport async function removeDlxPackage(packageName: string): Promise<void> {\n const packageDir = getDlxPackageDir(packageName)\n try {\n await safeDelete(packageDir, { recursive: true, force: true })\n } catch (e) {\n throw new Error(`Failed to remove DLX package \"${packageName}\"`, {\n cause: e,\n })\n }\n}\n\n/**\n * Remove a DLX package installation synchronously.\n */\nexport function removeDlxPackageSync(packageName: string): void {\n const fs = getFs()\n const packageDir = getDlxPackageDir(packageName)\n try {\n fs.rmSync(packageDir, { recursive: true, force: true })\n } catch (e) {\n const code = (e as NodeJS.ErrnoException).code\n if (code === 'EACCES' || code === 'EPERM') {\n throw new Error(\n `Permission denied removing DLX package \"${packageName}\"\\n` +\n `Directory: ${packageDir}\\n` +\n 'To resolve:\\n' +\n ' 1. Check file/directory permissions\\n' +\n ' 2. Close any programs using files in this directory\\n' +\n ' 3. Try running with elevated privileges if necessary\\n' +\n ` 4. Manually remove: rm -rf \"${packageDir}\"`,\n { cause: e },\n )\n }\n if (code === 'EROFS') {\n throw new Error(\n `Cannot remove DLX package \"${packageName}\" from read-only filesystem\\n` +\n `Directory: ${packageDir}\\n` +\n 'The filesystem is mounted read-only.',\n { cause: e },\n )\n }\n throw new Error(\n `Failed to remove DLX package \"${packageName}\"\\n` +\n `Directory: ${packageDir}\\n` +\n 'Check permissions and ensure no programs are using this directory.',\n { cause: e },\n )\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["dlx_exports", "__export", "clearDlx", "clearDlxSync", "dlxDirExists", "dlxDirExistsAsync", "ensureDlxDir", "ensureDlxDirSync", "generateCacheKey", "getDlxInstalledPackageDir", "getDlxPackageDir", "getDlxPackageJsonPath", "getDlxPackageNodeModulesDir", "isDlxPackageInstalled", "isDlxPackageInstalledAsync", "isInSocketDlx", "listDlxPackages", "listDlxPackagesAsync", "removeDlxPackage", "removeDlxPackageSync", "__toCommonJS", "import_crypto", "import_fs", "import_path", "import_paths", "import_promises", "_fs", "getFs", "spec", "_path", "getPath", "packages", "pkg", "fs", "packageName", "filePath", "path", "dlxDir", "e", "packageDir", "code"]
7
7
  }
package/dist/globs.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var l=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var O=(e,o)=>{for(var n in o)l(e,n,{get:o[n],enumerable:!0})},y=(e,o,n,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of h(o))!_.call(e,t)&&t!==n&&l(e,t,{get:()=>o[t],enumerable:!(r=d(o,t))||r.enumerable});return e};var S=e=>y(l({},"__esModule",{value:!0}),e);var L={};O(L,{defaultIgnore:()=>f,getGlobMatcher:()=>w,globStreamLicenses:()=>v});module.exports=S(L);var u=require("./objects");const f=(0,u.objectFreeze)(["**/.git","**/.npmrc","**/node_modules","**/.DS_Store","**/.gitignore","**/.hg","**/.lock-wscript","**/.npmignore","**/.svn","**/.wafpickle-*","**/.*.swp","**/._*/**","**/archived-packages/**","**/build/config.gypi","**/CVS","**/npm-debug.log","**/*.orig","**/.env","**/.eslintcache","**/.nvm","**/.tap","**/.vscode","**/*.tsbuildinfo","**/Thumbs.db","**/bower_components"]);let c;function G(){return c===void 0&&(c=require("./external/picomatch")),c}let b;function E(){if(b===void 0){const e=require("./external/fast-glob");b=e.default||e}return b}function v(e,o){const{ignore:n,ignoreOriginals:r,recursive:t,...a}={__proto__:null,...o},s=[...Array.isArray(n)?n:f,"**/*.{cjs,cts,js,json,mjs,mts,ts}"];return r&&s.push(require("#constants/paths").LICENSE_ORIGINAL_GLOB_RECURSIVE),E().globStream([t?require("#constants/paths").LICENSE_GLOB_RECURSIVE:require("#constants/paths").LICENSE_GLOB],{__proto__:null,absolute:!0,caseSensitiveMatch:!1,cwd:e,...a,...s?{ignore:s}:{}})}const g=new Map;function w(e,o){const n=Array.isArray(e)?e:[e],r=JSON.stringify({patterns:n,options:o});let t=g.get(r);if(t)return t;const a=n.filter(i=>!i.startsWith("!")),s=n.filter(i=>i.startsWith("!")).map(i=>i.slice(1)),p=G(),m={dot:!0,nocase:!0,...o,...s.length>0?{ignore:s}:{}};return t=p(a.length>0?a:n,m),g.set(r,t),t}0&&(module.exports={defaultIgnore,getGlobMatcher,globStreamLicenses});
2
+ var p=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var _=(t,o)=>{for(var n in o)p(t,n,{get:o[n],enumerable:!0})},O=(t,o,n,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of h(o))!y.call(t,e)&&e!==n&&p(t,e,{get:()=>o[e],enumerable:!(r=d(o,e))||r.enumerable});return t};var S=t=>O(p({},"__esModule",{value:!0}),t);var L={};_(L,{defaultIgnore:()=>m,getGlobMatcher:()=>w,globStreamLicenses:()=>v});module.exports=S(L);var u=require("./objects");const m=(0,u.objectFreeze)(["**/.git","**/.npmrc","**/node_modules","**/.DS_Store","**/.gitignore","**/.hg","**/.lock-wscript","**/.npmignore","**/.svn","**/.wafpickle-*","**/.*.swp","**/._*/**","**/archived-packages/**","**/build/config.gypi","**/CVS","**/npm-debug.log","**/*.orig","**/.env","**/.eslintcache","**/.nvm","**/.tap","**/.vscode","**/*.tsbuildinfo","**/Thumbs.db","**/bower_components"]);let b;function E(){return b===void 0&&(b=require("./external/picomatch")),b}let g;function G(){if(g===void 0){const t=require("./external/fast-glob");g="default"in t?t.default:t}return g}function v(t,o){const{ignore:n,ignoreOriginals:r,recursive:e,...i}={__proto__:null,...o},a=[...Array.isArray(n)?n:m,"**/*.{cjs,cts,js,json,mjs,mts,ts}"];if(r){const{LICENSE_ORIGINAL_GLOB_RECURSIVE:s}=require("#constants/paths");a.push(s)}const c=G(),l=require("#constants/paths");return c.globStream([e?l.LICENSE_GLOB_RECURSIVE:l.LICENSE_GLOB],{__proto__:null,absolute:!0,caseSensitiveMatch:!1,cwd:t,...i,...a?{ignore:a}:{}})}const f=new Map;function w(t,o){const n=Array.isArray(t)?t:[t],r=JSON.stringify({patterns:n,options:o});let e=f.get(r);if(e)return e;const i=n.filter(s=>!s.startsWith("!")),a=n.filter(s=>s.startsWith("!")).map(s=>s.slice(1)),c=E(),l={dot:!0,nocase:!0,...o,...a.length>0?{ignore:a}:{}};return e=c(i.length>0?i:n,l),f.set(r,e),e}0&&(module.exports={defaultIgnore,getGlobMatcher,globStreamLicenses});
3
3
  //# sourceMappingURL=globs.js.map
package/dist/globs.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/globs.ts"],
4
- "sourcesContent": ["/**\n * @fileoverview Glob pattern matching utilities with default ignore patterns.\n * Provides file filtering and glob matcher functions for npm-like behavior.\n */\n\n// IMPORTANT: Do not use destructuring here - use direct assignment instead.\nimport { objectFreeze as ObjectFreeze } from './objects'\n\n// Type definitions\ntype Pattern = string\n\ninterface FastGlobOptions {\n absolute?: boolean\n baseNameMatch?: boolean\n braceExpansion?: boolean\n caseSensitiveMatch?: boolean\n concurrency?: number\n cwd?: string\n deep?: number\n dot?: boolean\n extglob?: boolean\n followSymbolicLinks?: boolean\n fs?: unknown\n globstar?: boolean\n ignore?: string[]\n ignoreFiles?: string[]\n markDirectories?: boolean\n objectMode?: boolean\n onlyDirectories?: boolean\n onlyFiles?: boolean\n stats?: boolean\n suppressErrors?: boolean\n throwErrorOnBrokenSymbolicLink?: boolean\n unique?: boolean\n}\n\nexport interface GlobOptions extends FastGlobOptions {\n ignoreOriginals?: boolean\n recursive?: boolean\n}\n\nexport type { Pattern, FastGlobOptions }\n\nexport const defaultIgnore = ObjectFreeze([\n // Most of these ignored files can be included specifically if included in the\n // files globs. Exceptions to this are:\n // https://docs.npmjs.com/cli/v10/configuring-npm/package-json#files\n // These can NOT be included.\n // https://github.com/npm/npm-packlist/blob/v10.0.0/lib/index.js#L280\n '**/.git',\n '**/.npmrc',\n // '**/bun.lockb?',\n '**/node_modules',\n // '**/package-lock.json',\n // '**/pnpm-lock.ya?ml',\n // '**/yarn.lock',\n // Include npm-packlist defaults:\n // https://github.com/npm/npm-packlist/blob/v10.0.0/lib/index.js#L15-L38\n '**/.DS_Store',\n '**/.gitignore',\n '**/.hg',\n '**/.lock-wscript',\n '**/.npmignore',\n '**/.svn',\n '**/.wafpickle-*',\n '**/.*.swp',\n '**/._*/**',\n '**/archived-packages/**',\n '**/build/config.gypi',\n '**/CVS',\n '**/npm-debug.log',\n '**/*.orig',\n // Inline generic socket-registry .gitignore entries.\n '**/.env',\n '**/.eslintcache',\n '**/.nvm',\n '**/.tap',\n '**/.vscode',\n '**/*.tsbuildinfo',\n '**/Thumbs.db',\n // Inline additional ignores.\n '**/bower_components',\n])\n\nlet _picomatch: typeof import('picomatch') | undefined\n/**\n * Lazily load the picomatch module.\n * @private\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getPicomatch() {\n if (_picomatch === undefined) {\n // The 'picomatch' package is browser safe.\n _picomatch = /*@__PURE__*/ require('./external/picomatch')\n }\n return _picomatch as typeof import('picomatch')\n}\n\nlet _fastGlob: typeof import('fast-glob') | undefined\n/**\n * Lazily load the fast-glob module.\n * @private\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getFastGlob() {\n if (_fastGlob === undefined) {\n const globExport = /*@__PURE__*/ require('./external/fast-glob')\n _fastGlob = globExport.default || globExport\n }\n return _fastGlob as typeof import('fast-glob')\n}\n\n/**\n * Create a stream of license file paths matching glob patterns.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function globStreamLicenses(\n dirname: string,\n options?: GlobOptions,\n): NodeJS.ReadableStream {\n const {\n ignore: ignoreOpt,\n ignoreOriginals,\n recursive,\n ...globOptions\n } = { __proto__: null, ...options } as GlobOptions\n const ignore = [\n ...(Array.isArray(ignoreOpt) ? ignoreOpt : defaultIgnore),\n '**/*.{cjs,cts,js,json,mjs,mts,ts}',\n ]\n if (ignoreOriginals) {\n ignore.push(\n /*@__INLINE__*/ require('#constants/paths')\n .LICENSE_ORIGINAL_GLOB_RECURSIVE,\n )\n }\n const fastGlob = getFastGlob()\n return fastGlob.globStream(\n [\n recursive\n ? /*@__INLINE__*/ require('#constants/paths').LICENSE_GLOB_RECURSIVE\n : /*@__INLINE__*/ require('#constants/paths').LICENSE_GLOB,\n ],\n {\n __proto__: null,\n absolute: true,\n caseSensitiveMatch: false,\n cwd: dirname,\n ...globOptions,\n ...(ignore ? { ignore } : {}),\n } as import('fast-glob').Options,\n )\n}\n\nconst matcherCache = new Map()\n/**\n * Get a cached glob matcher function.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function getGlobMatcher(\n glob: Pattern | Pattern[],\n options?: { dot?: boolean; nocase?: boolean; ignore?: string[] },\n): (path: string) => boolean {\n const patterns = Array.isArray(glob) ? glob : [glob]\n const key = JSON.stringify({ patterns, options })\n let matcher = matcherCache.get(key)\n if (matcher) {\n return matcher\n }\n\n // Separate positive and negative patterns.\n const positivePatterns = patterns.filter(p => !p.startsWith('!'))\n const negativePatterns = patterns\n .filter(p => p.startsWith('!'))\n .map(p => p.slice(1))\n\n const picomatch = getPicomatch()\n\n // Use ignore option for negation patterns.\n const matchOptions = {\n dot: true,\n nocase: true,\n ...options,\n ...(negativePatterns.length > 0 ? { ignore: negativePatterns } : {}),\n }\n\n matcher = picomatch(\n positivePatterns.length > 0 ? positivePatterns : patterns,\n matchOptions,\n )\n\n matcherCache.set(key, matcher)\n return matcher\n}\n"],
5
- "mappings": ";4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,EAAA,mBAAAC,EAAA,uBAAAC,IAAA,eAAAC,EAAAL,GAMA,IAAAM,EAA6C,qBAqCtC,MAAMJ,KAAgB,EAAAK,cAAa,CAMxC,UACA,YAEA,kBAMA,eACA,gBACA,SACA,mBACA,gBACA,UACA,kBACA,YACA,YACA,0BACA,uBACA,SACA,mBACA,YAEA,UACA,kBACA,UACA,UACA,aACA,mBACA,eAEA,qBACF,CAAC,EAED,IAAIC,EAMJ,SAASC,GAAe,CACtB,OAAID,IAAe,SAEjBA,EAA2B,QAAQ,sBAAsB,GAEpDA,CACT,CAEA,IAAIE,EAMJ,SAASC,GAAc,CACrB,GAAID,IAAc,OAAW,CAC3B,MAAME,EAA2B,QAAQ,sBAAsB,EAC/DF,EAAYE,EAAW,SAAWA,CACpC,CACA,OAAOF,CACT,CAMO,SAASN,EACdS,EACAC,EACuB,CACvB,KAAM,CACJ,OAAQC,EACR,gBAAAC,EACA,UAAAC,EACA,GAAGC,CACL,EAAI,CAAE,UAAW,KAAM,GAAGJ,CAAQ,EAC5BK,EAAS,CACb,GAAI,MAAM,QAAQJ,CAAS,EAAIA,EAAYb,EAC3C,mCACF,EACA,OAAIc,GACFG,EAAO,KACW,QAAQ,kBAAkB,EACvC,+BACL,EAEeR,EAAY,EACb,WACd,CACEM,EACoB,QAAQ,kBAAkB,EAAE,uBAC5B,QAAQ,kBAAkB,EAAE,YAClD,EACA,CACE,UAAW,KACX,SAAU,GACV,mBAAoB,GACpB,IAAKJ,EACL,GAAGK,EACH,GAAIC,EAAS,CAAE,OAAAA,CAAO,EAAI,CAAC,CAC7B,CACF,CACF,CAEA,MAAMC,EAAe,IAAI,IAKlB,SAASjB,EACdkB,EACAP,EAC2B,CAC3B,MAAMQ,EAAW,MAAM,QAAQD,CAAI,EAAIA,EAAO,CAACA,CAAI,EAC7CE,EAAM,KAAK,UAAU,CAAE,SAAAD,EAAU,QAAAR,CAAQ,CAAC,EAChD,IAAIU,EAAUJ,EAAa,IAAIG,CAAG,EAClC,GAAIC,EACF,OAAOA,EAIT,MAAMC,EAAmBH,EAAS,OAAOI,GAAK,CAACA,EAAE,WAAW,GAAG,CAAC,EAC1DC,EAAmBL,EACtB,OAAOI,GAAKA,EAAE,WAAW,GAAG,CAAC,EAC7B,IAAIA,GAAKA,EAAE,MAAM,CAAC,CAAC,EAEhBE,EAAYnB,EAAa,EAGzBoB,EAAe,CACnB,IAAK,GACL,OAAQ,GACR,GAAGf,EACH,GAAIa,EAAiB,OAAS,EAAI,CAAE,OAAQA,CAAiB,EAAI,CAAC,CACpE,EAEA,OAAAH,EAAUI,EACRH,EAAiB,OAAS,EAAIA,EAAmBH,EACjDO,CACF,EAEAT,EAAa,IAAIG,EAAKC,CAAO,EACtBA,CACT",
6
- "names": ["globs_exports", "__export", "defaultIgnore", "getGlobMatcher", "globStreamLicenses", "__toCommonJS", "import_objects", "ObjectFreeze", "_picomatch", "getPicomatch", "_fastGlob", "getFastGlob", "globExport", "dirname", "options", "ignoreOpt", "ignoreOriginals", "recursive", "globOptions", "ignore", "matcherCache", "glob", "patterns", "key", "matcher", "positivePatterns", "p", "negativePatterns", "picomatch", "matchOptions"]
4
+ "sourcesContent": ["/**\n * @fileoverview Glob pattern matching utilities with default ignore patterns.\n * Provides file filtering and glob matcher functions for npm-like behavior.\n */\n\n// IMPORTANT: Do not use destructuring here - use direct assignment instead.\nimport { objectFreeze as ObjectFreeze } from './objects'\n\n// Type definitions\ntype Pattern = string\n\ninterface FastGlobOptions {\n absolute?: boolean\n baseNameMatch?: boolean\n braceExpansion?: boolean\n caseSensitiveMatch?: boolean\n concurrency?: number\n cwd?: string\n deep?: number\n dot?: boolean\n extglob?: boolean\n followSymbolicLinks?: boolean\n fs?: unknown\n globstar?: boolean\n ignore?: string[]\n ignoreFiles?: string[]\n markDirectories?: boolean\n objectMode?: boolean\n onlyDirectories?: boolean\n onlyFiles?: boolean\n stats?: boolean\n suppressErrors?: boolean\n throwErrorOnBrokenSymbolicLink?: boolean\n unique?: boolean\n}\n\nexport interface GlobOptions extends FastGlobOptions {\n ignoreOriginals?: boolean\n recursive?: boolean\n}\n\nexport type { Pattern, FastGlobOptions }\n\nexport const defaultIgnore = ObjectFreeze([\n // Most of these ignored files can be included specifically if included in the\n // files globs. Exceptions to this are:\n // https://docs.npmjs.com/cli/v10/configuring-npm/package-json#files\n // These can NOT be included.\n // https://github.com/npm/npm-packlist/blob/v10.0.0/lib/index.js#L280\n '**/.git',\n '**/.npmrc',\n // '**/bun.lockb?',\n '**/node_modules',\n // '**/package-lock.json',\n // '**/pnpm-lock.ya?ml',\n // '**/yarn.lock',\n // Include npm-packlist defaults:\n // https://github.com/npm/npm-packlist/blob/v10.0.0/lib/index.js#L15-L38\n '**/.DS_Store',\n '**/.gitignore',\n '**/.hg',\n '**/.lock-wscript',\n '**/.npmignore',\n '**/.svn',\n '**/.wafpickle-*',\n '**/.*.swp',\n '**/._*/**',\n '**/archived-packages/**',\n '**/build/config.gypi',\n '**/CVS',\n '**/npm-debug.log',\n '**/*.orig',\n // Inline generic socket-registry .gitignore entries.\n '**/.env',\n '**/.eslintcache',\n '**/.nvm',\n '**/.tap',\n '**/.vscode',\n '**/*.tsbuildinfo',\n '**/Thumbs.db',\n // Inline additional ignores.\n '**/bower_components',\n])\n\nlet _picomatch: typeof import('picomatch') | undefined\n/**\n * Lazily load the picomatch module.\n * @private\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getPicomatch() {\n if (_picomatch === undefined) {\n // The 'picomatch' package is browser safe.\n _picomatch = /*@__PURE__*/ require('./external/picomatch')\n }\n return _picomatch as typeof import('picomatch')\n}\n\nlet _fastGlob: typeof import('fast-glob') | undefined\n/**\n * Lazily load the fast-glob module.\n * @private\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getFastGlob() {\n if (_fastGlob === undefined) {\n const globExport = /*@__PURE__*/ require('./external/fast-glob') as\n | (typeof import('fast-glob') & { default?: typeof import('fast-glob') })\n | typeof import('fast-glob')\n _fastGlob = (\n 'default' in globExport ? globExport.default : globExport\n ) as typeof import('fast-glob')\n }\n return _fastGlob as typeof import('fast-glob')\n}\n\n/**\n * Create a stream of license file paths matching glob patterns.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function globStreamLicenses(\n dirname: string,\n options?: GlobOptions,\n): NodeJS.ReadableStream {\n const {\n ignore: ignoreOpt,\n ignoreOriginals,\n recursive,\n ...globOptions\n } = { __proto__: null, ...options } as GlobOptions\n const ignore = [\n ...(Array.isArray(ignoreOpt) ? ignoreOpt : defaultIgnore),\n '**/*.{cjs,cts,js,json,mjs,mts,ts}',\n ]\n if (ignoreOriginals) {\n const { LICENSE_ORIGINAL_GLOB_RECURSIVE } =\n /*@__INLINE__*/ require('#constants/paths') as typeof import('#constants/paths')\n ignore.push(LICENSE_ORIGINAL_GLOB_RECURSIVE)\n }\n const fastGlob = getFastGlob()\n const paths =\n /*@__INLINE__*/ require('#constants/paths') as typeof import('#constants/paths')\n return fastGlob.globStream(\n [recursive ? paths.LICENSE_GLOB_RECURSIVE : paths.LICENSE_GLOB],\n {\n __proto__: null,\n absolute: true,\n caseSensitiveMatch: false,\n cwd: dirname,\n ...globOptions,\n ...(ignore ? { ignore } : {}),\n } as import('fast-glob').Options,\n )\n}\n\nconst matcherCache = new Map<string, (path: string) => boolean>()\n/**\n * Get a cached glob matcher function.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function getGlobMatcher(\n glob: Pattern | Pattern[],\n options?: { dot?: boolean; nocase?: boolean; ignore?: string[] },\n): (path: string) => boolean {\n const patterns = Array.isArray(glob) ? glob : [glob]\n const key = JSON.stringify({ patterns, options })\n let matcher: ((path: string) => boolean) | undefined = matcherCache.get(key)\n if (matcher) {\n return matcher\n }\n\n // Separate positive and negative patterns.\n const positivePatterns = patterns.filter(p => !p.startsWith('!'))\n const negativePatterns = patterns\n .filter(p => p.startsWith('!'))\n .map(p => p.slice(1))\n\n const picomatch = getPicomatch()\n\n // Use ignore option for negation patterns.\n const matchOptions = {\n dot: true,\n nocase: true,\n ...options,\n ...(negativePatterns.length > 0 ? { ignore: negativePatterns } : {}),\n }\n\n matcher = picomatch(\n positivePatterns.length > 0 ? positivePatterns : patterns,\n matchOptions,\n ) as (path: string) => boolean\n\n matcherCache.set(key, matcher)\n return matcher\n}\n"],
5
+ "mappings": ";4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,EAAA,mBAAAC,EAAA,uBAAAC,IAAA,eAAAC,EAAAL,GAMA,IAAAM,EAA6C,qBAqCtC,MAAMJ,KAAgB,EAAAK,cAAa,CAMxC,UACA,YAEA,kBAMA,eACA,gBACA,SACA,mBACA,gBACA,UACA,kBACA,YACA,YACA,0BACA,uBACA,SACA,mBACA,YAEA,UACA,kBACA,UACA,UACA,aACA,mBACA,eAEA,qBACF,CAAC,EAED,IAAIC,EAMJ,SAASC,GAAe,CACtB,OAAID,IAAe,SAEjBA,EAA2B,QAAQ,sBAAsB,GAEpDA,CACT,CAEA,IAAIE,EAMJ,SAASC,GAAc,CACrB,GAAID,IAAc,OAAW,CAC3B,MAAME,EAA2B,QAAQ,sBAAsB,EAG/DF,EACE,YAAaE,EAAaA,EAAW,QAAUA,CAEnD,CACA,OAAOF,CACT,CAMO,SAASN,EACdS,EACAC,EACuB,CACvB,KAAM,CACJ,OAAQC,EACR,gBAAAC,EACA,UAAAC,EACA,GAAGC,CACL,EAAI,CAAE,UAAW,KAAM,GAAGJ,CAAQ,EAC5BK,EAAS,CACb,GAAI,MAAM,QAAQJ,CAAS,EAAIA,EAAYb,EAC3C,mCACF,EACA,GAAIc,EAAiB,CACnB,KAAM,CAAE,gCAAAI,CAAgC,EACtB,QAAQ,kBAAkB,EAC5CD,EAAO,KAAKC,CAA+B,CAC7C,CACA,MAAMC,EAAWV,EAAY,EACvBW,EACY,QAAQ,kBAAkB,EAC5C,OAAOD,EAAS,WACd,CAACJ,EAAYK,EAAM,uBAAyBA,EAAM,YAAY,EAC9D,CACE,UAAW,KACX,SAAU,GACV,mBAAoB,GACpB,IAAKT,EACL,GAAGK,EACH,GAAIC,EAAS,CAAE,OAAAA,CAAO,EAAI,CAAC,CAC7B,CACF,CACF,CAEA,MAAMI,EAAe,IAAI,IAKlB,SAASpB,EACdqB,EACAV,EAC2B,CAC3B,MAAMW,EAAW,MAAM,QAAQD,CAAI,EAAIA,EAAO,CAACA,CAAI,EAC7CE,EAAM,KAAK,UAAU,CAAE,SAAAD,EAAU,QAAAX,CAAQ,CAAC,EAChD,IAAIa,EAAmDJ,EAAa,IAAIG,CAAG,EAC3E,GAAIC,EACF,OAAOA,EAIT,MAAMC,EAAmBH,EAAS,OAAOI,GAAK,CAACA,EAAE,WAAW,GAAG,CAAC,EAC1DC,EAAmBL,EACtB,OAAOI,GAAKA,EAAE,WAAW,GAAG,CAAC,EAC7B,IAAIA,GAAKA,EAAE,MAAM,CAAC,CAAC,EAEhBE,EAAYtB,EAAa,EAGzBuB,EAAe,CACnB,IAAK,GACL,OAAQ,GACR,GAAGlB,EACH,GAAIgB,EAAiB,OAAS,EAAI,CAAE,OAAQA,CAAiB,EAAI,CAAC,CACpE,EAEA,OAAAH,EAAUI,EACRH,EAAiB,OAAS,EAAIA,EAAmBH,EACjDO,CACF,EAEAT,EAAa,IAAIG,EAAKC,CAAO,EACtBA,CACT",
6
+ "names": ["globs_exports", "__export", "defaultIgnore", "getGlobMatcher", "globStreamLicenses", "__toCommonJS", "import_objects", "ObjectFreeze", "_picomatch", "getPicomatch", "_fastGlob", "getFastGlob", "globExport", "dirname", "options", "ignoreOpt", "ignoreOriginals", "recursive", "globOptions", "ignore", "LICENSE_ORIGINAL_GLOB_RECURSIVE", "fastGlob", "paths", "matcherCache", "glob", "patterns", "key", "matcher", "positivePatterns", "p", "negativePatterns", "picomatch", "matchOptions"]
7
7
  }
package/dist/logger.js CHANGED
@@ -1,3 +1,9 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var G=Object.create;var w=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var V=(e,t)=>{for(var s in t)w(e,s,{get:t[s],enumerable:!0})},A=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of v(t))!N.call(e,o)&&o!==s&&w(e,o,{get:()=>t[o],enumerable:!(n=Y(t,o))||n.enumerable});return e};var W=(e,t,s)=>(s=e!=null?G(H(e)):{},A(t||!e||!e.__esModule?w(s,"default",{value:e,enumerable:!0}):s,e)),z=e=>A(w({},"__esModule",{value:!0}),e);var X={};V(X,{LOG_SYMBOLS:()=>m,Logger:()=>d,getDefaultLogger:()=>Q,incLogCallCountSymbol:()=>l,lastWasBlankSymbol:()=>u});module.exports=z(X);var P=W(require("./external/@socketregistry/is-unicode-supported")),j=W(require("./external/yoctocolors-cjs")),f=require("./strings"),_=require("./themes/context");const y=console,C=Reflect.apply,D=Reflect.construct;let L;function k(...e){return L===void 0&&(L=require("node:console").Console),D(L,e)}function F(){return j.default}function p(e,t,s){return typeof t=="string"?s[t](e):s.rgb(t[0],t[1],t[2])(e)}const m=(()=>{const e={__proto__:null};let t=!1;const s={__proto__:null},n=()=>{const r=(0,P.default)(),c=F(),a=(0,_.getTheme)(),g=a.colors.success,B=a.colors.error,M=a.colors.warning,$=a.colors.info,K=a.colors.step;e.fail=p(r?"\u2716":"\xD7",B,c),e.info=p(r?"\u2139":"i",$,c),e.step=p(r?"\u2192":">",K,c),e.success=p(r?"\u2714":"\u221A",g,c),e.warn=p(r?"\u26A0":"\u203C",M,c)},o=()=>{if(!t){n(),t=!0;for(const r in s)delete s[r]}},i=()=>{t&&n()};for(const r of Reflect.ownKeys(Reflect)){const c=Reflect[r];typeof c=="function"&&(s[r]=(...a)=>(o(),c(...a)))}return(0,_.onThemeChange)(()=>{i()}),new Proxy(e,s)})(),E=["_stderrErrorHandler","_stdoutErrorHandler","assert","clear","count","countReset","createTask","debug","dir","dirxml","error","info","log","table","time","timeEnd","timeLog","trace","warn"].filter(e=>typeof y[e]=="function").map(e=>[e,y[e].bind(y)]),I={__proto__:null,writable:!0,enumerable:!1,configurable:!0},J=1e3,b=new WeakMap,h=new WeakMap;let S;function q(){return S===void 0&&(S=Object.getOwnPropertySymbols(y)),S}const l=Symbol.for("logger.logCallCount++");let x;function R(){return x===void 0&&(x=q().find(e=>e.label==="kGroupIndentWidth")??Symbol("kGroupIndentWidth")),x}const u=Symbol.for("logger.lastWasBlank");class d{static LOG_SYMBOLS=m;#c;#s;#l;#a;#g="";#f="";#p=!1;#y=!1;#h=0;#o;#w;constructor(...t){h.set(this,t);const s=t[0];typeof s=="object"&&s!==null?(this.#o={__proto__:null,...s},this.#w=s.stdout):this.#o={__proto__:null}}#t(){U();let t=b.get(this);if(!t){const s=h.get(this)??[];if(s.length)t=k(...s);else{t=k({stdout:process.stdout,stderr:process.stderr});for(const{0:n,1:o}of E)t[n]=o}b.set(this,t),h.delete(this)}return t}get stderr(){if(!this.#l){const t=h.get(this)??[],s=new d(...t);s.#c=this,s.#s="stderr",s.#o={__proto__:null,...this.#o},this.#l=s}return this.#l}get stdout(){if(!this.#a){const t=h.get(this)??[],s=new d(...t);s.#c=this,s.#s="stdout",s.#o={__proto__:null,...this.#o},this.#a=s}return this.#a}#r(){return this.#c||this}#n(t){const s=this.#r();return t==="stderr"?s.#g:s.#f}#e(t,s){const n=this.#r();t==="stderr"?n.#g=s:n.#f=s}#d(t){const s=this.#r();return t==="stderr"?s.#p:s.#y}#u(t,s){const n=this.#r();t==="stderr"?n.#p=s:n.#y=s}#m(){return this.#s||"stderr"}#k(t,s,n){const o=this.#t(),i=s.at(0),r=typeof i=="string",c=n||(t==="log"?"stdout":"stderr"),a=this.#n(c),g=r?[(0,f.applyLinePrefix)(i,{prefix:a}),...s.slice(1)]:s;return C(o[t],o,g),this[u](r&&(0,f.isBlankString)(g[0]),c),this[l](),this}#b(t){return t.replace(/^[✖✗×⚠‼✔✓√ℹ→]\uFE0F?\s*/u,"")}#i(t,s){const n=this.#t();let o=s.at(0),i;typeof o=="string"?(o=this.#b(o),i=s.slice(1)):(i=s,o="");const r=this.#n("stderr");return n.error((0,f.applyLinePrefix)(`${m[t]} ${o}`,{prefix:r}),...i),this[u](!1,"stderr"),this[l](),this}get logCallCount(){return this.#r().#h}[l](){const t=this.#r();return t.#h+=1,this}[u](t,s){return s?this.#u(s,!!t):this.#s?this.#u(this.#s,!!t):(this.#u("stderr",!!t),this.#u("stdout",!!t)),this}assert(t,...s){return this.#t().assert(t,s[0],...s.slice(1)),this[u](!1),t?this:this[l]()}clearVisible(){if(this.#s)throw new Error("clearVisible() is only available on the main logger instance, not on stream-bound instances");const t=this.#t();return t.clear(),t._stdout.isTTY&&(this[u](!0),this.#h=0),this}count(t){return this.#t().count(t),this[u](!1),this[l]()}createTask(t){return{run:s=>{this.log(`Starting task: ${t}`);const n=s();return this.log(`Completed task: ${t}`),n}}}dedent(t=2){if(this.#s){const s=this.#n(this.#s);this.#e(this.#s,s.slice(0,-t))}else{const s=this.#n("stderr"),n=this.#n("stdout");this.#e("stderr",s.slice(0,-t)),this.#e("stdout",n.slice(0,-t))}return this}dir(t,s){return this.#t().dir(t,s),this[u](!1),this[l]()}dirxml(...t){return this.#t().dirxml(t),this[u](!1),this[l]()}error(...t){return this.#k("error",t)}errorNewline(){return this.#d("stderr")?this:this.error("")}fail(...t){return this.#i("fail",t)}group(...t){const{length:s}=t;return s&&C(this.log,this,t),this.indent(this[R()]),s&&(this[u](!1),this[l]()),this}groupCollapsed(...t){return C(this.group,this,t)}groupEnd(){return this.dedent(this[R()]),this}indent(t=2){const s=" ".repeat(Math.min(t,J));if(this.#s){const n=this.#n(this.#s);this.#e(this.#s,n+s)}else{const n=this.#n("stderr"),o=this.#n("stdout");this.#e("stderr",n+s),this.#e("stdout",o+s)}return this}info(...t){return this.#i("info",t)}log(...t){return this.#k("log",t)}logNewline(){return this.#d("stdout")?this:this.log("")}resetIndent(){return this.#s?this.#e(this.#s,""):(this.#e("stderr",""),this.#e("stdout","")),this}step(t,...s){this.#d("stdout")||this.log("");const n=this.#b(t),o=this.#n("stdout");return this.#t().log((0,f.applyLinePrefix)(`${m.step} ${n}`,{prefix:o}),...s),this[u](!1,"stdout"),this[l](),this}substep(t,...s){const n=` ${t}`;return this.log(n,...s)}success(...t){return this.#i("success",t)}done(...t){return this.#i("success",t)}table(t,s){return this.#t().table(t,s),this[u](!1),this[l]()}timeEnd(t){return this.#t().timeEnd(t),this[u](!1),this[l]()}timeLog(t,...s){return this.#t().timeLog(t,...s),this[u](!1),this[l]()}trace(t,...s){return this.#t().trace(t,...s),this[u](!1),this[l]()}warn(...t){return this.#i("warn",t)}write(t){const s=this.#t(),n=h.get(this)??[];return(this.#w||n[0]?.stdout||s._stdout).write(t),this[u](!1),this}progress(t){const s=this.#t();return(this.#m()==="stderr"?s._stderr:s._stdout).write(`\u2234 ${t}`),this[u](!1),this}clearLine(){const t=this.#t(),n=this.#m()==="stderr"?t._stderr:t._stdout;return n.isTTY?(n.cursorTo(0),n.clearLine(0)):n.write("\r\x1B[K"),this}}let O=!1;function U(){if(O)return;O=!0;const e=[[R(),{...I,value:2}],[Symbol.toStringTag,{__proto__:null,configurable:!0,value:"logger"}]];for(const{0:t,1:s}of Object.entries(y))if(!d.prototype[t]&&typeof s=="function"){const{[t]:n}={[t](...o){let i=b.get(this);if(i===void 0){const c=h.get(this)??[];if(h.delete(this),c.length)i=k(...c);else{i=k({stdout:process.stdout,stderr:process.stderr});for(const{0:a,1:g}of E)i[a]=g}b.set(this,i)}const r=i[t](...o);return r===void 0||r===i?this:r}};e.push([t,{...I,value:n}])}Object.defineProperties(d.prototype,Object.fromEntries(e))}let T;function Q(){return T===void 0&&(T=new d),T}0&&(module.exports={LOG_SYMBOLS,Logger,getDefaultLogger,incLogCallCountSymbol,lastWasBlankSymbol});
2
+ var G=Object.create;var w=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var V=(e,t)=>{for(var s in t)w(e,s,{get:t[s],enumerable:!0})},A=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of v(t))!N.call(e,o)&&o!==s&&w(e,o,{get:()=>t[o],enumerable:!(n=Y(t,o))||n.enumerable});return e};var W=(e,t,s)=>(s=e!=null?G(H(e)):{},A(t||!e||!e.__esModule?w(s,"default",{value:e,enumerable:!0}):s,e)),z=e=>A(w({},"__esModule",{value:!0}),e);var X={};var P=W(require("./external/@socketregistry/is-unicode-supported")),j=W(require("./external/yoctocolors-cjs")),f=require("./strings"),_=require("./themes/context");const y=console,C=Reflect.apply,D=Reflect.construct;let L;function k(...e){return L===void 0&&(L=require("node:console").Console),D(L,e)}function F(){return j.default}function p(e,t,s){return typeof t=="string"?s[t](e):s.rgb(t[0],t[1],t[2])(e)}const m=(()=>{const e={__proto__:null};let t=!1;const s={__proto__:null},n=()=>{const r=(0,P.default)(),c=F(),a=(0,_.getTheme)(),g=a.colors.success,B=a.colors.error,M=a.colors.warning,$=a.colors.info,K=a.colors.step;e.fail=p(r?"\u2716":"\xD7",B,c),e.info=p(r?"\u2139":"i",$,c),e.step=p(r?"\u2192":">",K,c),e.success=p(r?"\u2714":"\u221A",g,c),e.warn=p(r?"\u26A0":"\u203C",M,c)},o=()=>{if(!t){n(),t=!0;for(const r in s)delete s[r]}},i=()=>{t&&n()};for(const r of Reflect.ownKeys(Reflect)){const c=Reflect[r];typeof c=="function"&&(s[r]=(...a)=>(o(),c(...a)))}return(0,_.onThemeChange)(()=>{i()}),new Proxy(e,s)})(),E=["_stderrErrorHandler","_stdoutErrorHandler","assert","clear","count","countReset","createTask","debug","dir","dirxml","error","info","log","table","time","timeEnd","timeLog","trace","warn"].filter(e=>typeof y[e]=="function").map(e=>[e,y[e].bind(y)]),I={__proto__:null,writable:!0,enumerable:!1,configurable:!0},J=1e3,b=new WeakMap,h=new WeakMap;let S;function q(){return S===void 0&&(S=Object.getOwnPropertySymbols(y)),S}const l=Symbol.for("logger.logCallCount++");let x;function R(){return x===void 0&&(x=q().find(e=>e.label==="kGroupIndentWidth")??Symbol("kGroupIndentWidth")),x}const u=Symbol.for("logger.lastWasBlank");class d{static LOG_SYMBOLS=m;#c;#s;#l;#a;#g="";#f="";#p=!1;#y=!1;#h=0;#o;#w;constructor(...t){h.set(this,t);const s=t[0];typeof s=="object"&&s!==null?(this.#o={__proto__:null,...s},this.#w=s.stdout):this.#o={__proto__:null}}#t(){U();let t=b.get(this);if(!t){const s=h.get(this)??[];if(s.length)t=k(...s);else{t=k({stdout:process.stdout,stderr:process.stderr});for(const{0:n,1:o}of E)t[n]=o}b.set(this,t),h.delete(this)}return t}get stderr(){if(!this.#l){const t=h.get(this)??[],s=new d(...t);s.#c=this,s.#s="stderr",s.#o={__proto__:null,...this.#o},this.#l=s}return this.#l}get stdout(){if(!this.#a){const t=h.get(this)??[],s=new d(...t);s.#c=this,s.#s="stdout",s.#o={__proto__:null,...this.#o},this.#a=s}return this.#a}#r(){return this.#c||this}#n(t){const s=this.#r();return t==="stderr"?s.#g:s.#f}#e(t,s){const n=this.#r();t==="stderr"?n.#g=s:n.#f=s}#d(t){const s=this.#r();return t==="stderr"?s.#p:s.#y}#u(t,s){const n=this.#r();t==="stderr"?n.#p=s:n.#y=s}#m(){return this.#s||"stderr"}#k(t,s,n){const o=this.#t(),i=s.at(0),r=typeof i=="string",c=n||(t==="log"?"stdout":"stderr"),a=this.#n(c),g=r?[(0,f.applyLinePrefix)(i,{prefix:a}),...s.slice(1)]:s;return C(o[t],o,g),this[u](r&&(0,f.isBlankString)(g[0]),c),this[l](),this}#b(t){return t.replace(/^[✖✗×⚠‼✔✓√ℹ→]\uFE0F?\s*/u,"")}#i(t,s){const n=this.#t();let o=s.at(0),i;typeof o=="string"?(o=this.#b(o),i=s.slice(1)):(i=s,o="");const r=this.#n("stderr");return n.error((0,f.applyLinePrefix)(`${m[t]} ${o}`,{prefix:r}),...i),this[u](!1,"stderr"),this[l](),this}get logCallCount(){return this.#r().#h}[l](){const t=this.#r();return t.#h+=1,this}[u](t,s){return s?this.#u(s,!!t):this.#s?this.#u(this.#s,!!t):(this.#u("stderr",!!t),this.#u("stdout",!!t)),this}assert(t,...s){return this.#t().assert(t,s[0],...s.slice(1)),this[u](!1),t?this:this[l]()}clearVisible(){if(this.#s)throw new Error("clearVisible() is only available on the main logger instance, not on stream-bound instances");const t=this.#t();return t.clear(),t._stdout.isTTY&&(this[u](!0),this.#h=0),this}count(t){return this.#t().count(t),this[u](!1),this[l]()}createTask(t){return{run:s=>{this.log(`Starting task: ${t}`);const n=s();return this.log(`Completed task: ${t}`),n}}}dedent(t=2){if(this.#s){const s=this.#n(this.#s);this.#e(this.#s,s.slice(0,-t))}else{const s=this.#n("stderr"),n=this.#n("stdout");this.#e("stderr",s.slice(0,-t)),this.#e("stdout",n.slice(0,-t))}return this}dir(t,s){return this.#t().dir(t,s),this[u](!1),this[l]()}dirxml(...t){return this.#t().dirxml(t),this[u](!1),this[l]()}error(...t){return this.#k("error",t)}errorNewline(){return this.#d("stderr")?this:this.error("")}fail(...t){return this.#i("fail",t)}group(...t){const{length:s}=t;return s&&C(this.log,this,t),this.indent(this[R()]),s&&(this[u](!1),this[l]()),this}groupCollapsed(...t){return C(this.group,this,t)}groupEnd(){return this.dedent(this[R()]),this}indent(t=2){const s=" ".repeat(Math.min(t,J));if(this.#s){const n=this.#n(this.#s);this.#e(this.#s,n+s)}else{const n=this.#n("stderr"),o=this.#n("stdout");this.#e("stderr",n+s),this.#e("stdout",o+s)}return this}info(...t){return this.#i("info",t)}log(...t){return this.#k("log",t)}logNewline(){return this.#d("stdout")?this:this.log("")}resetIndent(){return this.#s?this.#e(this.#s,""):(this.#e("stderr",""),this.#e("stdout","")),this}step(t,...s){this.#d("stdout")||this.log("");const n=this.#b(t),o=this.#n("stdout");return this.#t().log((0,f.applyLinePrefix)(`${m.step} ${n}`,{prefix:o}),...s),this[u](!1,"stdout"),this[l](),this}substep(t,...s){const n=` ${t}`;return this.log(n,...s)}success(...t){return this.#i("success",t)}done(...t){return this.#i("success",t)}table(t,s){return this.#t().table(t,s),this[u](!1),this[l]()}timeEnd(t){return this.#t().timeEnd(t),this[u](!1),this[l]()}timeLog(t,...s){return this.#t().timeLog(t,...s),this[u](!1),this[l]()}trace(t,...s){return this.#t().trace(t,...s),this[u](!1),this[l]()}warn(...t){return this.#i("warn",t)}write(t){const s=this.#t(),n=h.get(this)??[];return(this.#w||n[0]?.stdout||s._stdout).write(t),this[u](!1),this}progress(t){const s=this.#t();return(this.#m()==="stderr"?s._stderr:s._stdout).write(`\u2234 ${t}`),this[u](!1),this}clearLine(){const t=this.#t(),n=this.#m()==="stderr"?t._stderr:t._stdout;return n.isTTY?(n.cursorTo(0),n.clearLine(0)):n.write("\r\x1B[K"),this}}let O=!1;function U(){if(O)return;O=!0;const e=[[R(),{...I,value:2}],[Symbol.toStringTag,{__proto__:null,configurable:!0,value:"logger"}]];for(const{0:t,1:s}of Object.entries(y))if(!d.prototype[t]&&typeof s=="function"){const{[t]:n}={[t](...o){let i=b.get(this);if(i===void 0){const c=h.get(this)??[];if(h.delete(this),c.length)i=k(...c);else{i=k({stdout:process.stdout,stderr:process.stderr});for(const{0:a,1:g}of E)i[a]=g}b.set(this,i)}const r=i[t](...o);return r===void 0||r===i?this:r}};e.push([t,{...I,value:n}])}Object.defineProperties(d.prototype,Object.fromEntries(e))}let T;function Q(){return T===void 0&&(T=new d),T}module.exports = {
3
+ LOG_SYMBOLS: m,
4
+ Logger: d,
5
+ getDefaultLogger: Q,
6
+ incLogCallCountSymbol: l,
7
+ lastWasBlankSymbol: u
8
+ };
3
9
  //# sourceMappingURL=logger.js.map
@@ -1,3 +1,3 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var g=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var P=Object.prototype.hasOwnProperty;var T=(e,t)=>{for(var s in t)g(e,s,{get:t[s],enumerable:!0})},w=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of h(t))!P.call(e,r)&&r!==s&&g(e,r,{get:()=>t[r],enumerable:!(n=G(t,r))||n.enumerable});return e};var R=e=>w(g({},"__esModule",{value:!0}),e);var U={};T(U,{load:()=>v,onExit:()=>k,signals:()=>C,unload:()=>E});module.exports=R(U);const S=Reflect.apply,i=globalThis.process,p=i?.emit,y=i?.platform??"",x=i?.reallyExit,b=y==="win32";let m;function N(){return m===void 0&&(m=require("node:events")),m}let o;function d(){if(o===void 0){if(i?.__signal_exit_emitter__)o=i.__signal_exit_emitter__;else if(i){const e=N().EventEmitter;o=i.__signal_exit_emitter__=new e,o.count=0,o.emitted={__proto__:null}}o&&!o.infinite&&(o.setMaxListeners(Number.POSITIVE_INFINITY),o.infinite=!0)}return o}let c;function L(){if(c===void 0){c={__proto__:null};const e=d(),t=_();for(const s of t)c[s]=function(){if((i?.listeners(s)||[]).length===e.count){const a=b&&s==="SIGHUP"?"SIGINT":s;i?.kill(i?.pid,a)}}}return c}let l;function _(){return l===void 0&&(l=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"],b||l.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),y==="linux"&&l.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")),l}function u(e,t,s){const n=d();n.emitted?.[e]||(n.emitted&&(n.emitted[e]=!0),n.emit(e,t,s))}let f=!1;function v(){if(f||!i)return;f=!0;const e=d();e.count!==void 0&&(e.count+=1);const t=_(),s=L();l=t.filter(n=>{try{return i.on(n,s[n]),!0}catch{}return!1}),i.emit=O,i.reallyExit=M}function O(e,t,...s){if(e==="exit"){let n=t;if(n===void 0){const I=i?.exitCode;n=typeof I=="number"?I:void 0}else i&&(i.exitCode=n);const r=S(p,this,[e,n,...s]),a=typeof n=="number"?n:null;return r}return S(p,this,[e,t,...s])}function M(e){const t=e||0;throw i&&(i.exitCode=t),S(x,i,[t]),new Error("processReallyExit should never return")}function k(e,t){if(!i)return function(){};if(typeof e!="function")throw new TypeError("a callback must be provided for exit handler");const{alwaysLast:s}={__proto__:null,...t};let n="exit";s&&(n="afterexit");const r=d();return r.on(n,e),function(){r.removeListener(n,e),!r.listeners("exit").length&&r.listeners("afterexit").length}}function C(){return l}function E(){if(!f||!i)return;f=!1;const e=_(),t=L();for(const n of e)try{i.removeListener(n,t[n])}catch{}i.emit=p,x!==void 0&&(i.reallyExit=x);const s=d();s.count!==void 0&&(s.count-=1)}0&&(module.exports={load,onExit,signals,unload});
2
+ var g=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var P=Object.prototype.hasOwnProperty;var T=(e,t)=>{for(var s in t)g(e,s,{get:t[s],enumerable:!0})},w=(e,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of h(t))!P.call(e,r)&&r!==s&&g(e,r,{get:()=>t[r],enumerable:!(n=G(t,r))||n.enumerable});return e};var R=e=>w(g({},"__esModule",{value:!0}),e);var U={};T(U,{load:()=>L,onExit:()=>k,signals:()=>C,unload:()=>_});module.exports=R(U);const S=Reflect.apply,i=globalThis.process,p=i?.emit,y=i?.platform??"",x=i?.reallyExit,b=y==="win32";let m;function N(){return m===void 0&&(m=require("node:events")),m}let o;function d(){if(o===void 0){if(i?.__signal_exit_emitter__)o=i.__signal_exit_emitter__;else if(i){const e=N().EventEmitter;o=i.__signal_exit_emitter__=new e,o.count=0,o.emitted={__proto__:null}}o&&!o.infinite&&(o.setMaxListeners(Number.POSITIVE_INFINITY),o.infinite=!0)}return o}let c;function v(){if(c===void 0){c={__proto__:null};const e=d(),t=E();for(const s of t)c[s]=function(){if((i?.listeners(s)||[]).length===e.count){const a=b&&s==="SIGHUP"?"SIGINT":s;i?.kill(i?.pid,a)}}}return c}let l;function E(){return l===void 0&&(l=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"],b||l.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),y==="linux"&&l.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")),l}function u(e,t,s){const n=d();n.emitted?.[e]||(n.emitted&&(n.emitted[e]=!0),n.emit(e,t,s))}let f=!1;function L(){if(f||!i)return;f=!0;const e=d();e.count!==void 0&&(e.count+=1);const t=E(),s=v();l=t.filter(n=>{try{return i.on(n,s[n]),!0}catch{}return!1}),i.emit=O,i.reallyExit=M}function O(e,t,...s){if(e==="exit"){let n=t;if(n===void 0){const I=i?.exitCode;n=typeof I=="number"?I:void 0}else i&&(i.exitCode=n);const r=S(p,this,[e,n,...s]),a=typeof n=="number"?n:null;return r}return S(p,this,[e,t,...s])}function M(e){const t=e||0;throw i&&(i.exitCode=t),S(x,i,[t]),new Error("processReallyExit should never return")}function k(e,t){if(!i)return function(){};if(typeof e!="function")throw new TypeError("a callback must be provided for exit handler");const{alwaysLast:s}={__proto__:null,...t};let n="exit";s&&(n="afterexit");const r=d();return r.on(n,e),function(){r.removeListener(n,e),!r.listeners("exit").length&&r.listeners("afterexit").length}}function C(){return l}function _(){if(!f||!i)return;f=!1;const e=E(),t=v();for(const n of e)try{i.removeListener(n,t[n])}catch{}i.emit=p,x!==void 0&&(i.reallyExit=x);const s=d();s.count!==void 0&&(s.count-=1)}0&&(module.exports={load,onExit,signals,unload});
3
3
  //# sourceMappingURL=signal-exit.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/signal-exit.ts"],
4
- "sourcesContent": ["/**\n * @fileoverview Process signal handling utilities.\n * Provides cross-platform signal exit detection and cleanup handlers.\n */\n\n// Inlined signal-exit:\n// https://socket.dev/npm/package/signal-exit/overview/4.1.0\n// ISC License\n// Copyright (c) 2015-2023 Benjamin Coe, Isaac Z. Schlueter, and Contributors\n\n// This is not the set of all possible signals.\n//\n// It IS, however, the set of all signals that trigger\n// an exit on either Linux or BSD systems. Linux is a\n// superset of the signal names supported on BSD, and\n// the unknown signals just fail to register, so we can\n// catch that easily enough.\n//\n// Don't bother with SIGKILL. It's uncatchable, which\n// means that we can't fire any callbacks anyway.\n//\n// If a user does happen to register a handler on a non-\n// fatal signal like SIGWINCH or something, and then\n// exit, it'll end up firing `process.emit('exit')`, so\n// the handler will be fired anyway.\n//\n// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n// artificially, inherently leave the process in a\n// state from which it is not safe to try and enter JS\n// listeners.\n\n// IMPORTANT: Do not use destructuring here - use direct assignment instead.\n// tsgo has a bug that incorrectly transpiles destructured exports, resulting in\n// `exports.SomeName = void 0;` which causes runtime errors.\n// See: https://github.com/SocketDev/socket-packageurl-js/issues/3\nconst ReflectApply = Reflect.apply\nconst globalProcess = globalThis.process as\n | (NodeJS.Process & {\n __signal_exit_emitter__?: any\n reallyExit?: (code?: number | undefined) => never\n })\n | undefined\nconst originalProcessEmit = globalProcess?.emit\nconst platform = globalProcess?.platform ?? ''\nconst originalProcessReallyExit = globalProcess?.reallyExit as\n | ((code?: number | undefined) => never)\n | undefined\nconst WIN32 = platform === 'win32'\n\nlet _events: typeof import('node:events') | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getEvents() {\n if (_events === undefined) {\n // Use non-'node:' prefixed require to avoid Webpack errors.\n\n _events = /*@__PURE__*/ require('node:events')\n }\n return _events as typeof import('node:events')\n}\n\n// Type for tracking emitted signals.\ntype EmittedSignals = {\n // Using string as signals can include custom events like 'exit' and 'afterexit'.\n [signal: string]: boolean\n}\n\ntype SignalExitEmitter = import('node:events').EventEmitter & {\n count?: number\n emitted?: EmittedSignals\n infinite?: boolean\n}\nlet _emitter: SignalExitEmitter | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getEmitter() {\n if (_emitter === undefined) {\n if (globalProcess?.__signal_exit_emitter__) {\n _emitter = globalProcess.__signal_exit_emitter__\n } else if (globalProcess) {\n const EventEmitter = getEvents().EventEmitter\n _emitter = globalProcess.__signal_exit_emitter__ =\n new EventEmitter() as SignalExitEmitter\n _emitter.count = 0\n _emitter.emitted = { __proto__: null } as unknown as EmittedSignals\n }\n // Because this emitter is a global, we have to check to see if a\n // previous version of this library failed to enable infinite listeners.\n // I know what you're about to say. But literally everything about\n // signal-exit is a compromise with evil. Get used to it.\n if (_emitter && !_emitter.infinite) {\n _emitter.setMaxListeners(Number.POSITIVE_INFINITY)\n _emitter.infinite = true\n }\n }\n return _emitter as SignalExitEmitter\n}\n\ntype SignalListener = () => void\n// Type for signal listeners indexed by signal name.\ntype SignalListenerMap = {\n [signal: string]: SignalListener\n}\nlet _sigListeners: SignalListenerMap | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getSignalListeners() {\n if (_sigListeners === undefined) {\n _sigListeners = { __proto__: null } as unknown as SignalListenerMap\n const emitter = getEmitter()\n const sigs = getSignals()\n for (const sig of sigs) {\n _sigListeners[sig] = function listener() {\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n const listeners = globalProcess?.listeners(sig as NodeJS.Signals) || []\n if (listeners.length === emitter.count) {\n unload()\n emit('exit', null, sig)\n emit('afterexit', null, sig)\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead.\n const killSig = WIN32 && sig === 'SIGHUP' ? 'SIGINT' : sig\n globalProcess?.kill(globalProcess?.pid, killSig)\n }\n }\n }\n }\n return _sigListeners as SignalListenerMap\n}\n\nlet _signals: string[] | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getSignals() {\n if (_signals === undefined) {\n _signals = ['SIGABRT', 'SIGALRM', 'SIGHUP', 'SIGINT', 'SIGTERM']\n if (!WIN32) {\n _signals.push(\n 'SIGVTALRM',\n 'SIGXCPU',\n 'SIGXFSZ',\n 'SIGUSR2',\n 'SIGTRAP',\n 'SIGSYS',\n 'SIGQUIT',\n 'SIGIOT',\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n )\n }\n if (platform === 'linux') {\n _signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT', 'SIGUNUSED')\n }\n }\n return _signals as string[]\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nfunction emit(event: string, code: number | null, signal: string | null): void {\n const emitter = getEmitter()\n if (emitter.emitted?.[event]) {\n return\n }\n if (emitter.emitted) {\n emitter.emitted[event] = true\n }\n emitter.emit(event, code, signal)\n}\n\nlet loaded = false\n\n/**\n * Load signal handlers and hook into process exit events.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function load(): void {\n if (loaded || !globalProcess) {\n return\n }\n loaded = true\n\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n const emitter = getEmitter()\n if (emitter.count !== undefined) {\n emitter.count += 1\n }\n\n const sigs = getSignals()\n const sigListeners = getSignalListeners()\n _signals = sigs.filter(sig => {\n try {\n globalProcess.on(\n sig as NodeJS.Signals,\n sigListeners[sig] as SignalListener,\n )\n return true\n } catch {}\n return false\n })\n\n globalProcess.emit = processEmit as typeof globalProcess.emit\n globalProcess.reallyExit = processReallyExit\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nfunction processEmit(\n this: NodeJS.Process,\n eventName: string,\n exitCode?: number | undefined,\n ...args: any[]\n): boolean {\n if (eventName === 'exit') {\n let actualExitCode = exitCode\n if (actualExitCode === undefined) {\n const processExitCode = globalProcess?.exitCode\n actualExitCode =\n typeof processExitCode === 'number' ? processExitCode : undefined\n } else if (globalProcess) {\n globalProcess.exitCode = actualExitCode\n }\n const result = ReflectApply(\n originalProcessEmit as (...args: unknown[]) => boolean,\n this,\n [eventName, actualExitCode, ...args],\n ) as boolean\n const numExitCode =\n typeof actualExitCode === 'number' ? actualExitCode : null\n emit('exit', numExitCode, null)\n emit('afterexit', numExitCode, null)\n return result\n }\n return ReflectApply(\n originalProcessEmit as (...args: unknown[]) => boolean,\n this,\n [eventName, exitCode, ...args],\n ) as boolean\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nfunction processReallyExit(code?: number | undefined): never {\n const exitCode = code || 0\n if (globalProcess) {\n globalProcess.exitCode = exitCode\n }\n emit('exit', exitCode, null)\n emit('afterexit', exitCode, null)\n ReflectApply(\n originalProcessReallyExit as (code?: number) => never,\n globalProcess,\n [exitCode],\n )\n throw new Error('processReallyExit should never return')\n}\n\nexport interface OnExitOptions {\n alwaysLast?: boolean\n}\n\n/**\n * Register a callback to run on process exit or signal.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function onExit(\n cb: (code: number | null, signal: string | null) => void,\n options?: OnExitOptions | undefined,\n): () => void {\n if (!globalProcess) {\n return function remove() {}\n }\n if (typeof cb !== 'function') {\n throw new TypeError('a callback must be provided for exit handler')\n }\n if (loaded === false) {\n load()\n }\n const { alwaysLast } = { __proto__: null, ...options } as OnExitOptions\n\n let eventName = 'exit'\n if (alwaysLast) {\n eventName = 'afterexit'\n }\n\n const emitter = getEmitter()\n emitter.on(eventName, cb)\n\n return function remove() {\n emitter.removeListener(eventName, cb)\n if (\n !emitter.listeners('exit').length &&\n !emitter.listeners('afterexit').length\n ) {\n unload()\n }\n }\n}\n\n/**\n * Get the list of signals that are currently being monitored.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function signals(): string[] | undefined {\n return _signals\n}\n\n/**\n * Unload signal handlers and restore original process behavior.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function unload(): void {\n if (!loaded || !globalProcess) {\n return\n }\n loaded = false\n\n const sigs = getSignals()\n const sigListeners = getSignalListeners()\n for (const sig of sigs) {\n try {\n globalProcess.removeListener(\n sig as NodeJS.Signals,\n sigListeners[sig] as SignalListener,\n )\n } catch {}\n }\n globalProcess.emit = originalProcessEmit as typeof globalProcess.emit\n if (originalProcessReallyExit !== undefined) {\n globalProcess.reallyExit = originalProcessReallyExit\n }\n const emitter = getEmitter()\n if (emitter.count !== undefined) {\n emitter.count -= 1\n }\n}\n"],
4
+ "sourcesContent": ["/**\n * @fileoverview Process signal handling utilities.\n * Provides cross-platform signal exit detection and cleanup handlers.\n */\n\n// Inlined signal-exit:\n// https://socket.dev/npm/package/signal-exit/overview/4.1.0\n// ISC License\n// Copyright (c) 2015-2023 Benjamin Coe, Isaac Z. Schlueter, and Contributors\n\n// This is not the set of all possible signals.\n//\n// It IS, however, the set of all signals that trigger\n// an exit on either Linux or BSD systems. Linux is a\n// superset of the signal names supported on BSD, and\n// the unknown signals just fail to register, so we can\n// catch that easily enough.\n//\n// Don't bother with SIGKILL. It's uncatchable, which\n// means that we can't fire any callbacks anyway.\n//\n// If a user does happen to register a handler on a non-\n// fatal signal like SIGWINCH or something, and then\n// exit, it'll end up firing `process.emit('exit')`, so\n// the handler will be fired anyway.\n//\n// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n// artificially, inherently leave the process in a\n// state from which it is not safe to try and enter JS\n// listeners.\n\n// IMPORTANT: Do not use destructuring here - use direct assignment instead.\n// tsgo has a bug that incorrectly transpiles destructured exports, resulting in\n// `exports.SomeName = void 0;` which causes runtime errors.\n// See: https://github.com/SocketDev/socket-packageurl-js/issues/3\nconst ReflectApply = Reflect.apply\nconst globalProcess = globalThis.process as\n | (NodeJS.Process & {\n __signal_exit_emitter__?: import('node:events').EventEmitter\n reallyExit?: (code?: number | undefined) => never\n })\n | undefined\nconst originalProcessEmit = globalProcess?.emit\nconst platform = globalProcess?.platform ?? ''\nconst originalProcessReallyExit = globalProcess?.reallyExit as\n | ((code?: number | undefined) => never)\n | undefined\nconst WIN32 = platform === 'win32'\n\nlet _events: typeof import('node:events') | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getEvents() {\n if (_events === undefined) {\n // Use non-'node:' prefixed require to avoid Webpack errors.\n\n _events = /*@__PURE__*/ require('node:events')\n }\n return _events as typeof import('node:events')\n}\n\n// Type for tracking emitted signals.\ntype EmittedSignals = {\n // Using string as signals can include custom events like 'exit' and 'afterexit'.\n [signal: string]: boolean\n}\n\ntype SignalExitEmitter = import('node:events').EventEmitter & {\n count?: number\n emitted?: EmittedSignals\n infinite?: boolean\n}\nlet _emitter: SignalExitEmitter | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getEmitter() {\n if (_emitter === undefined) {\n if (globalProcess?.__signal_exit_emitter__) {\n _emitter = globalProcess.__signal_exit_emitter__\n } else if (globalProcess) {\n const EventEmitter = getEvents().EventEmitter\n _emitter = globalProcess.__signal_exit_emitter__ =\n new EventEmitter() as SignalExitEmitter\n _emitter.count = 0\n _emitter.emitted = { __proto__: null } as unknown as EmittedSignals\n }\n // Because this emitter is a global, we have to check to see if a\n // previous version of this library failed to enable infinite listeners.\n // I know what you're about to say. But literally everything about\n // signal-exit is a compromise with evil. Get used to it.\n if (_emitter && !_emitter.infinite) {\n _emitter.setMaxListeners(Number.POSITIVE_INFINITY)\n _emitter.infinite = true\n }\n }\n return _emitter as SignalExitEmitter\n}\n\ntype SignalListener = () => void\n// Type for signal listeners indexed by signal name.\ntype SignalListenerMap = {\n [signal: string]: SignalListener\n}\nlet _sigListeners: SignalListenerMap | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getSignalListeners() {\n if (_sigListeners === undefined) {\n _sigListeners = { __proto__: null } as unknown as SignalListenerMap\n const emitter = getEmitter()\n const sigs = getSignals()\n for (const sig of sigs) {\n _sigListeners[sig] = function listener() {\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n const listeners = globalProcess?.listeners(sig as NodeJS.Signals) || []\n if (listeners.length === emitter.count) {\n unload()\n emit('exit', null, sig)\n emit('afterexit', null, sig)\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead.\n const killSig = WIN32 && sig === 'SIGHUP' ? 'SIGINT' : sig\n globalProcess?.kill(globalProcess?.pid, killSig)\n }\n }\n }\n }\n return _sigListeners as SignalListenerMap\n}\n\nlet _signals: string[] | undefined\n/*@__NO_SIDE_EFFECTS__*/\nfunction getSignals() {\n if (_signals === undefined) {\n _signals = ['SIGABRT', 'SIGALRM', 'SIGHUP', 'SIGINT', 'SIGTERM']\n if (!WIN32) {\n _signals.push(\n 'SIGVTALRM',\n 'SIGXCPU',\n 'SIGXFSZ',\n 'SIGUSR2',\n 'SIGTRAP',\n 'SIGSYS',\n 'SIGQUIT',\n 'SIGIOT',\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n )\n }\n if (platform === 'linux') {\n _signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT', 'SIGUNUSED')\n }\n }\n return _signals as string[]\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nfunction emit(event: string, code: number | null, signal: string | null): void {\n const emitter = getEmitter()\n if (emitter.emitted?.[event]) {\n return\n }\n if (emitter.emitted) {\n emitter.emitted[event] = true\n }\n emitter.emit(event, code, signal)\n}\n\nlet loaded = false\n\n/**\n * Load signal handlers and hook into process exit events.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function load(): void {\n if (loaded || !globalProcess) {\n return\n }\n loaded = true\n\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n const emitter = getEmitter()\n if (emitter.count !== undefined) {\n emitter.count += 1\n }\n\n const sigs = getSignals()\n const sigListeners = getSignalListeners()\n _signals = sigs.filter(sig => {\n try {\n globalProcess.on(\n sig as NodeJS.Signals,\n sigListeners[sig] as SignalListener,\n )\n return true\n } catch {}\n return false\n })\n\n globalProcess.emit = processEmit as typeof globalProcess.emit\n globalProcess.reallyExit = processReallyExit\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nfunction processEmit(\n this: NodeJS.Process,\n eventName: string,\n exitCode?: number | undefined,\n ...args: any[]\n): boolean {\n if (eventName === 'exit') {\n let actualExitCode = exitCode\n if (actualExitCode === undefined) {\n const processExitCode = globalProcess?.exitCode\n actualExitCode =\n typeof processExitCode === 'number' ? processExitCode : undefined\n } else if (globalProcess) {\n globalProcess.exitCode = actualExitCode\n }\n const result = ReflectApply(\n originalProcessEmit as (...args: unknown[]) => boolean,\n this,\n [eventName, actualExitCode, ...args],\n ) as boolean\n const numExitCode =\n typeof actualExitCode === 'number' ? actualExitCode : null\n emit('exit', numExitCode, null)\n emit('afterexit', numExitCode, null)\n return result\n }\n return ReflectApply(\n originalProcessEmit as (...args: unknown[]) => boolean,\n this,\n [eventName, exitCode, ...args],\n ) as boolean\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nfunction processReallyExit(code?: number | undefined): never {\n const exitCode = code || 0\n if (globalProcess) {\n globalProcess.exitCode = exitCode\n }\n emit('exit', exitCode, null)\n emit('afterexit', exitCode, null)\n ReflectApply(\n originalProcessReallyExit as (code?: number) => never,\n globalProcess,\n [exitCode],\n )\n throw new Error('processReallyExit should never return')\n}\n\nexport interface OnExitOptions {\n alwaysLast?: boolean\n}\n\n/**\n * Register a callback to run on process exit or signal.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function onExit(\n cb: (code: number | null, signal: string | null) => void,\n options?: OnExitOptions | undefined,\n): () => void {\n if (!globalProcess) {\n return function remove() {}\n }\n if (typeof cb !== 'function') {\n throw new TypeError('a callback must be provided for exit handler')\n }\n if (loaded === false) {\n load()\n }\n const { alwaysLast } = { __proto__: null, ...options } as OnExitOptions\n\n let eventName = 'exit'\n if (alwaysLast) {\n eventName = 'afterexit'\n }\n\n const emitter = getEmitter()\n emitter.on(eventName, cb)\n\n return function remove() {\n emitter.removeListener(eventName, cb)\n if (\n !emitter.listeners('exit').length &&\n !emitter.listeners('afterexit').length\n ) {\n unload()\n }\n }\n}\n\n/**\n * Get the list of signals that are currently being monitored.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function signals(): string[] | undefined {\n return _signals\n}\n\n/**\n * Unload signal handlers and restore original process behavior.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function unload(): void {\n if (!loaded || !globalProcess) {\n return\n }\n loaded = false\n\n const sigs = getSignals()\n const sigListeners = getSignalListeners()\n for (const sig of sigs) {\n try {\n globalProcess.removeListener(\n sig as NodeJS.Signals,\n sigListeners[sig] as SignalListener,\n )\n } catch {}\n }\n globalProcess.emit = originalProcessEmit as typeof globalProcess.emit\n if (originalProcessReallyExit !== undefined) {\n globalProcess.reallyExit = originalProcessReallyExit\n }\n const emitter = getEmitter()\n if (emitter.count !== undefined) {\n emitter.count -= 1\n }\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": ["signal_exit_exports", "__export", "load", "onExit", "signals", "unload", "__toCommonJS", "ReflectApply", "globalProcess", "originalProcessEmit", "platform", "originalProcessReallyExit", "WIN32", "_events", "getEvents", "_emitter", "getEmitter", "EventEmitter", "_sigListeners", "getSignalListeners", "emitter", "sigs", "getSignals", "sig", "killSig", "_signals", "emit", "event", "code", "signal", "loaded", "sigListeners", "processEmit", "processReallyExit", "eventName", "exitCode", "args", "actualExitCode", "processExitCode", "result", "numExitCode", "cb", "options", "alwaysLast"]
7
7
  }
package/dist/sorts.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var i=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var p=(e,r)=>{for(var n in r)i(e,n,{get:r[n],enumerable:!0})},d=(e,r,n,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of l(r))!m.call(e,t)&&t!==n&&i(e,t,{get:()=>r[t],enumerable:!(o=f(r,t))||o.enumerable});return e};var g=e=>d(i({},"__esModule",{value:!0}),e);var C={};p(C,{compareSemver:()=>x,compareStr:()=>v,localeCompare:()=>S,naturalCompare:()=>c,naturalSorter:()=>y});module.exports=g(C);let a;function S(e,r){return a===void 0&&(a=new Intl.Collator().compare),a(e,r)}let u;function c(e,r){return u===void 0&&(u=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}).compare),u(e,r)}let s;function y(e){return s===void 0&&(s=require("./external/fast-sort").createNewSortInstance({comparer:c})),s?.(e)}function v(e,r){return e<r?-1:e>r?1:0}function x(e,r){const n=require("./external/semver"),o=n.valid(e),t=n.valid(r);return!o&&!t?0:o?t?n.compare(e,r):1:-1}0&&(module.exports={compareSemver,compareStr,localeCompare,naturalCompare,naturalSorter});
2
+ var i=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var p=(t,r)=>{for(var n in r)i(t,n,{get:r[n],enumerable:!0})},d=(t,r,n,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let e of l(r))!m.call(t,e)&&e!==n&&i(t,e,{get:()=>r[e],enumerable:!(o=f(r,e))||o.enumerable});return t};var g=t=>d(i({},"__esModule",{value:!0}),t);var x={};p(x,{compareSemver:()=>v,compareStr:()=>y,localeCompare:()=>S,naturalCompare:()=>c,naturalSorter:()=>F});module.exports=g(x);let u;function S(t,r){return u===void 0&&(u=new Intl.Collator().compare),u(t,r)}let a;function c(t,r){return a===void 0&&(a=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}).compare),a(t,r)}let s;function F(t){return s===void 0&&(s=require("./external/fast-sort").createNewSortInstance({comparer:c})),s(t)}function y(t,r){return t<r?-1:t>r?1:0}function v(t,r){const n=require("./external/semver"),o=n.valid(t),e=n.valid(r);return!o&&!e?0:o?e?n.compare(t,r):1:-1}0&&(module.exports={compareSemver,compareStr,localeCompare,naturalCompare,naturalSorter});
3
3
  //# sourceMappingURL=sorts.js.map
package/dist/sorts.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/sorts.ts"],
4
- "sourcesContent": ["/**\n * @fileoverview Sorting comparison functions including locale-aware and natural sorting.\n * Provides various comparison utilities for arrays and collections.\n */\n\nlet _localeCompare: ((x: string, y: string) => number) | undefined\n/**\n * Compare two strings using locale-aware comparison.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function localeCompare(x: string, y: string): number {\n if (_localeCompare === undefined) {\n // Lazily call new Intl.Collator() because in Node it can take 10-14ms.\n _localeCompare = new Intl.Collator().compare\n }\n return _localeCompare(x, y)\n}\n\nlet _naturalCompare: ((x: string, y: string) => number) | undefined\n/**\n * Compare two strings using natural sorting (numeric-aware, case-insensitive).\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function naturalCompare(x: string, y: string): number {\n if (_naturalCompare === undefined) {\n // Lazily call new Intl.Collator() because in Node it can take 10-14ms.\n _naturalCompare = new Intl.Collator(\n // The `undefined` locale means it uses the default locale of the user's\n // environment.\n undefined,\n {\n // Enables numeric sorting: numbers in strings are compared by value,\n // e.g. 'file2' comes before 'file10' as numbers and not 'file10' before\n // 'file2' as plain text.\n numeric: true,\n // Makes the comparison case-insensitive and ignores diacritics, e.g.\n // 'a', 'A', and '\u00E1' are treated as equivalent.\n sensitivity: 'base',\n },\n ).compare\n }\n return _naturalCompare(x, y)\n}\n\n// Type for fast-sort sorter function.\ntype FastSortFunction = ReturnType<\n typeof import('fast-sort').createNewSortInstance\n>\n\nlet _naturalSorter: FastSortFunction | undefined\n/**\n * Sort an array using natural comparison.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function naturalSorter<T>(\n arrayToSort: T[],\n): ReturnType<FastSortFunction> {\n if (_naturalSorter === undefined) {\n const fastSort = /*@__PURE__*/ require('./external/fast-sort')\n _naturalSorter = (fastSort as any).createNewSortInstance({\n comparer: naturalCompare,\n })\n }\n return _naturalSorter?.(arrayToSort)\n}\n\n/**\n * Simple string comparison.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function compareStr(a: string, b: string): number {\n return a < b ? -1 : a > b ? 1 : 0\n}\n\n/**\n * Compare semantic versions.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function compareSemver(a: string, b: string): number {\n const semver = /*@__PURE__*/ require('./external/semver')\n const validA = semver.valid(a)\n const validB = semver.valid(b)\n\n if (!validA && !validB) {\n return 0\n }\n if (!validA) {\n return -1\n }\n if (!validB) {\n return 1\n }\n return (semver as any).compare(a, b)\n}\n"],
5
- "mappings": ";4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,EAAA,eAAAC,EAAA,kBAAAC,EAAA,mBAAAC,EAAA,kBAAAC,IAAA,eAAAC,EAAAP,GAKA,IAAIQ,EAKG,SAASJ,EAAcK,EAAWC,EAAmB,CAC1D,OAAIF,IAAmB,SAErBA,EAAiB,IAAI,KAAK,SAAS,EAAE,SAEhCA,EAAeC,EAAGC,CAAC,CAC5B,CAEA,IAAIC,EAKG,SAASN,EAAeI,EAAWC,EAAmB,CAC3D,OAAIC,IAAoB,SAEtBA,EAAkB,IAAI,KAAK,SAGzB,OACA,CAIE,QAAS,GAGT,YAAa,MACf,CACF,EAAE,SAEGA,EAAgBF,EAAGC,CAAC,CAC7B,CAOA,IAAIE,EAKG,SAASN,EACdO,EAC8B,CAC9B,OAAID,IAAmB,SAErBA,EAD+B,QAAQ,sBAAsB,EAC1B,sBAAsB,CACvD,SAAUP,CACZ,CAAC,GAEIO,IAAiBC,CAAW,CACrC,CAMO,SAASV,EAAWW,EAAWC,EAAmB,CACvD,OAAOD,EAAIC,EAAI,GAAKD,EAAIC,EAAI,EAAI,CAClC,CAMO,SAASb,EAAcY,EAAWC,EAAmB,CAC1D,MAAMC,EAAuB,QAAQ,mBAAmB,EAClDC,EAASD,EAAO,MAAMF,CAAC,EACvBI,EAASF,EAAO,MAAMD,CAAC,EAE7B,MAAI,CAACE,GAAU,CAACC,EACP,EAEJD,EAGAC,EAGGF,EAAe,QAAQF,EAAGC,CAAC,EAF1B,EAHA,EAMX",
4
+ "sourcesContent": ["/**\n * @fileoverview Sorting comparison functions including locale-aware and natural sorting.\n * Provides various comparison utilities for arrays and collections.\n */\n\nlet _localeCompare: ((x: string, y: string) => number) | undefined\n/**\n * Compare two strings using locale-aware comparison.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function localeCompare(x: string, y: string): number {\n if (_localeCompare === undefined) {\n // Lazily call new Intl.Collator() because in Node it can take 10-14ms.\n _localeCompare = new Intl.Collator().compare\n }\n return _localeCompare(x, y)\n}\n\nlet _naturalCompare: ((x: string, y: string) => number) | undefined\n/**\n * Compare two strings using natural sorting (numeric-aware, case-insensitive).\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function naturalCompare(x: string, y: string): number {\n if (_naturalCompare === undefined) {\n // Lazily call new Intl.Collator() because in Node it can take 10-14ms.\n _naturalCompare = new Intl.Collator(\n // The `undefined` locale means it uses the default locale of the user's\n // environment.\n undefined,\n {\n // Enables numeric sorting: numbers in strings are compared by value,\n // e.g. 'file2' comes before 'file10' as numbers and not 'file10' before\n // 'file2' as plain text.\n numeric: true,\n // Makes the comparison case-insensitive and ignores diacritics, e.g.\n // 'a', 'A', and '\u00E1' are treated as equivalent.\n sensitivity: 'base',\n },\n ).compare\n }\n return _naturalCompare(x, y)\n}\n\n// Type for fast-sort sorter function.\ntype FastSortFunction = ReturnType<\n typeof import('fast-sort').createNewSortInstance\n>\n\nlet _naturalSorter: FastSortFunction | undefined\n/**\n * Sort an array using natural comparison.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function naturalSorter<T>(\n arrayToSort: T[],\n): ReturnType<FastSortFunction> {\n if (_naturalSorter === undefined) {\n const fastSort =\n /*@__PURE__*/ require('./external/fast-sort') as typeof import('fast-sort')\n _naturalSorter = fastSort.createNewSortInstance({\n comparer: naturalCompare,\n }) as FastSortFunction\n }\n return (_naturalSorter as FastSortFunction)(arrayToSort)\n}\n\n/**\n * Simple string comparison.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function compareStr(a: string, b: string): number {\n return a < b ? -1 : a > b ? 1 : 0\n}\n\n/**\n * Compare semantic versions.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function compareSemver(a: string, b: string): number {\n const semver =\n /*@__PURE__*/ require('./external/semver') as typeof import('semver')\n const validA: string | null = semver.valid(a)\n const validB: string | null = semver.valid(b)\n\n if (!validA && !validB) {\n return 0\n }\n if (!validA) {\n return -1\n }\n if (!validB) {\n return 1\n }\n return semver.compare(a, b) as number\n}\n"],
5
+ "mappings": ";4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,EAAA,eAAAC,EAAA,kBAAAC,EAAA,mBAAAC,EAAA,kBAAAC,IAAA,eAAAC,EAAAP,GAKA,IAAIQ,EAKG,SAASJ,EAAcK,EAAWC,EAAmB,CAC1D,OAAIF,IAAmB,SAErBA,EAAiB,IAAI,KAAK,SAAS,EAAE,SAEhCA,EAAeC,EAAGC,CAAC,CAC5B,CAEA,IAAIC,EAKG,SAASN,EAAeI,EAAWC,EAAmB,CAC3D,OAAIC,IAAoB,SAEtBA,EAAkB,IAAI,KAAK,SAGzB,OACA,CAIE,QAAS,GAGT,YAAa,MACf,CACF,EAAE,SAEGA,EAAgBF,EAAGC,CAAC,CAC7B,CAOA,IAAIE,EAKG,SAASN,EACdO,EAC8B,CAC9B,OAAID,IAAmB,SAGrBA,EADgB,QAAQ,sBAAsB,EACpB,sBAAsB,CAC9C,SAAUP,CACZ,CAAC,GAEKO,EAAoCC,CAAW,CACzD,CAMO,SAASV,EAAWW,EAAWC,EAAmB,CACvD,OAAOD,EAAIC,EAAI,GAAKD,EAAIC,EAAI,EAAI,CAClC,CAMO,SAASb,EAAcY,EAAWC,EAAmB,CAC1D,MAAMC,EACU,QAAQ,mBAAmB,EACrCC,EAAwBD,EAAO,MAAMF,CAAC,EACtCI,EAAwBF,EAAO,MAAMD,CAAC,EAE5C,MAAI,CAACE,GAAU,CAACC,EACP,EAEJD,EAGAC,EAGEF,EAAO,QAAQF,EAAGC,CAAC,EAFjB,EAHA,EAMX",
6
6
  "names": ["sorts_exports", "__export", "compareSemver", "compareStr", "localeCompare", "naturalCompare", "naturalSorter", "__toCommonJS", "_localeCompare", "x", "y", "_naturalCompare", "_naturalSorter", "arrayToSort", "a", "b", "semver", "validA", "validB"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@socketsecurity/lib",
3
- "version": "3.0.1",
3
+ "version": "3.0.2",
4
4
  "license": "MIT",
5
5
  "description": "Core utilities and infrastructure for Socket.dev security tools",
6
6
  "keywords": [