@socketsecurity/lib 1.0.1 → 1.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,12 @@ 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
+ ## [1.0.2] - 2025-10-21
9
+
10
+ ### Fixed
11
+
12
+ - Fixed module resolution error in packages/normalize module (corrected require path from `../../constants/socket` to `../constants/socket`)
13
+
8
14
  ## [1.0.1] - 2025-10-21
9
15
 
10
16
  ### Fixed
@@ -31,7 +31,7 @@ let _REGISTRY_SCOPE_DELIMITER;
31
31
  function getRegistryScopeDelimiter() {
32
32
  if (_REGISTRY_SCOPE_DELIMITER === void 0) {
33
33
  _REGISTRY_SCOPE_DELIMITER = /*@__INLINE__*/
34
- require("../../constants/socket").REGISTRY_SCOPE_DELIMITER;
34
+ require("../constants/socket").REGISTRY_SCOPE_DELIMITER;
35
35
  }
36
36
  return _REGISTRY_SCOPE_DELIMITER;
37
37
  }
@@ -39,7 +39,7 @@ let _SOCKET_REGISTRY_SCOPE;
39
39
  function getSocketRegistryScope() {
40
40
  if (_SOCKET_REGISTRY_SCOPE === void 0) {
41
41
  _SOCKET_REGISTRY_SCOPE = /*@__INLINE__*/
42
- require("../../constants/socket").SOCKET_REGISTRY_SCOPE;
42
+ require("../constants/socket").SOCKET_REGISTRY_SCOPE;
43
43
  }
44
44
  return _SOCKET_REGISTRY_SCOPE;
45
45
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/packages/normalize.ts"],
4
- "sourcesContent": ["/**\n * @fileoverview Package.json normalization utilities.\n */\n\nimport { merge } from '../objects'\n\nimport type { NormalizeOptions, PackageJson } from '../packages'\n\nconst ArrayIsArray = Array.isArray\nconst ObjectHasOwn = Object.hasOwn\n\n// Lazy load constants to avoid circular dependencies.\nlet _REGISTRY_SCOPE_DELIMITER: string | undefined\nfunction getRegistryScopeDelimiter(): string {\n if (_REGISTRY_SCOPE_DELIMITER === undefined) {\n _REGISTRY_SCOPE_DELIMITER =\n /*@__INLINE__*/ require('../../constants/socket').REGISTRY_SCOPE_DELIMITER\n }\n return _REGISTRY_SCOPE_DELIMITER as string\n}\n\nlet _SOCKET_REGISTRY_SCOPE: string | undefined\nfunction getSocketRegistryScope(): string {\n if (_SOCKET_REGISTRY_SCOPE === undefined) {\n _SOCKET_REGISTRY_SCOPE =\n /*@__INLINE__*/ require('../../constants/socket').SOCKET_REGISTRY_SCOPE\n }\n return _SOCKET_REGISTRY_SCOPE as string\n}\n\nlet _escapeRegExp: ((s: string) => string) | undefined\nfunction getEscapeRegExp(): (s: string) => string {\n if (_escapeRegExp === undefined) {\n _escapeRegExp = /*@__PURE__*/ require('../regexps').escapeRegExp\n }\n return _escapeRegExp as (s: string) => string\n}\n\nfunction getEscapedScopeRegExp(): RegExp {\n const REGISTRY_SCOPE_DELIMITER = getRegistryScopeDelimiter()\n const escapeRegExp = getEscapeRegExp()\n const firstChar = REGISTRY_SCOPE_DELIMITER[0] as string\n return new RegExp(\n `^[^${escapeRegExp(firstChar)}]+${escapeRegExp(REGISTRY_SCOPE_DELIMITER)}(?!${escapeRegExp(firstChar)})`,\n )\n}\n\nlet _normalizePackageData: typeof import('normalize-package-data') | undefined\n/**\n * Get the normalize-package-data module.\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getNormalizePackageData() {\n if (_normalizePackageData === undefined) {\n _normalizePackageData =\n /*@__PURE__*/ require('../../external/normalize-package-data')\n }\n return _normalizePackageData as typeof import('normalize-package-data')\n}\n\n/**\n * Normalize a package.json object with standard npm package normalization.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function normalizePackageJson(\n pkgJson: PackageJson,\n options?: NormalizeOptions,\n): PackageJson {\n const { preserve } = { __proto__: null, ...options } as NormalizeOptions\n // Add default version if not present.\n if (!ObjectHasOwn(pkgJson, 'version')) {\n pkgJson.version = '0.0.0'\n }\n const preserved = [\n ['_id', undefined],\n ['readme', undefined],\n ...(ObjectHasOwn(pkgJson, 'bugs') ? [] : [['bugs', undefined]]),\n ...(ObjectHasOwn(pkgJson, 'homepage') ? [] : [['homepage', undefined]]),\n ...(ObjectHasOwn(pkgJson, 'name') ? [] : [['name', undefined]]),\n ...(ArrayIsArray(preserve)\n ? preserve.map(k => [\n k,\n ObjectHasOwn(pkgJson, k) ? pkgJson[k] : undefined,\n ])\n : []),\n ]\n const normalizePackageData = getNormalizePackageData()\n normalizePackageData(pkgJson)\n // Import findPackageExtensions from operations to avoid circular dependency.\n const { findPackageExtensions } = require('./operations')\n if (pkgJson.name && pkgJson.version) {\n merge(pkgJson, findPackageExtensions(pkgJson.name, pkgJson.version))\n }\n // Revert/remove properties we don't care to have normalized.\n // Properties with undefined values are omitted when saved as JSON.\n for (const { 0: key, 1: value } of preserved) {\n pkgJson[key as keyof typeof pkgJson] = value\n }\n return pkgJson\n}\n\n/**\n * Extract escaped scope from a Socket registry package name.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function resolveEscapedScope(\n sockRegPkgName: string,\n): string | undefined {\n const escapedScopeRegExp = getEscapedScopeRegExp()\n const match = escapedScopeRegExp.exec(sockRegPkgName)?.[0]\n return match || undefined\n}\n\n/**\n * Resolve original package name from Socket registry package name.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function resolveOriginalPackageName(sockRegPkgName: string): string {\n const SOCKET_REGISTRY_SCOPE = getSocketRegistryScope()\n const name = sockRegPkgName.startsWith(`${SOCKET_REGISTRY_SCOPE}/`)\n ? sockRegPkgName.slice(SOCKET_REGISTRY_SCOPE.length + 1)\n : sockRegPkgName\n const escapedScope = resolveEscapedScope(name)\n return escapedScope\n ? `${unescapeScope(escapedScope)}/${name.slice(escapedScope.length)}`\n : name\n}\n\n/**\n * Convert escaped scope to standard npm scope format.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function unescapeScope(escapedScope: string): string {\n const REGISTRY_SCOPE_DELIMITER = getRegistryScopeDelimiter()\n return `@${escapedScope.slice(0, -REGISTRY_SCOPE_DELIMITER.length)}`\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * @fileoverview Package.json normalization utilities.\n */\n\nimport { merge } from '../objects'\n\nimport type { NormalizeOptions, PackageJson } from '../packages'\n\nconst ArrayIsArray = Array.isArray\nconst ObjectHasOwn = Object.hasOwn\n\n// Lazy load constants to avoid circular dependencies.\nlet _REGISTRY_SCOPE_DELIMITER: string | undefined\nfunction getRegistryScopeDelimiter(): string {\n if (_REGISTRY_SCOPE_DELIMITER === undefined) {\n _REGISTRY_SCOPE_DELIMITER =\n /*@__INLINE__*/ require('../constants/socket').REGISTRY_SCOPE_DELIMITER\n }\n return _REGISTRY_SCOPE_DELIMITER as string\n}\n\nlet _SOCKET_REGISTRY_SCOPE: string | undefined\nfunction getSocketRegistryScope(): string {\n if (_SOCKET_REGISTRY_SCOPE === undefined) {\n _SOCKET_REGISTRY_SCOPE =\n /*@__INLINE__*/ require('../constants/socket').SOCKET_REGISTRY_SCOPE\n }\n return _SOCKET_REGISTRY_SCOPE as string\n}\n\nlet _escapeRegExp: ((s: string) => string) | undefined\nfunction getEscapeRegExp(): (s: string) => string {\n if (_escapeRegExp === undefined) {\n _escapeRegExp = /*@__PURE__*/ require('../regexps').escapeRegExp\n }\n return _escapeRegExp as (s: string) => string\n}\n\nfunction getEscapedScopeRegExp(): RegExp {\n const REGISTRY_SCOPE_DELIMITER = getRegistryScopeDelimiter()\n const escapeRegExp = getEscapeRegExp()\n const firstChar = REGISTRY_SCOPE_DELIMITER[0] as string\n return new RegExp(\n `^[^${escapeRegExp(firstChar)}]+${escapeRegExp(REGISTRY_SCOPE_DELIMITER)}(?!${escapeRegExp(firstChar)})`,\n )\n}\n\nlet _normalizePackageData: typeof import('normalize-package-data') | undefined\n/**\n * Get the normalize-package-data module.\n */\n/*@__NO_SIDE_EFFECTS__*/\nfunction getNormalizePackageData() {\n if (_normalizePackageData === undefined) {\n _normalizePackageData =\n /*@__PURE__*/ require('../../external/normalize-package-data')\n }\n return _normalizePackageData as typeof import('normalize-package-data')\n}\n\n/**\n * Normalize a package.json object with standard npm package normalization.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function normalizePackageJson(\n pkgJson: PackageJson,\n options?: NormalizeOptions,\n): PackageJson {\n const { preserve } = { __proto__: null, ...options } as NormalizeOptions\n // Add default version if not present.\n if (!ObjectHasOwn(pkgJson, 'version')) {\n pkgJson.version = '0.0.0'\n }\n const preserved = [\n ['_id', undefined],\n ['readme', undefined],\n ...(ObjectHasOwn(pkgJson, 'bugs') ? [] : [['bugs', undefined]]),\n ...(ObjectHasOwn(pkgJson, 'homepage') ? [] : [['homepage', undefined]]),\n ...(ObjectHasOwn(pkgJson, 'name') ? [] : [['name', undefined]]),\n ...(ArrayIsArray(preserve)\n ? preserve.map(k => [\n k,\n ObjectHasOwn(pkgJson, k) ? pkgJson[k] : undefined,\n ])\n : []),\n ]\n const normalizePackageData = getNormalizePackageData()\n normalizePackageData(pkgJson)\n // Import findPackageExtensions from operations to avoid circular dependency.\n const { findPackageExtensions } = require('./operations')\n if (pkgJson.name && pkgJson.version) {\n merge(pkgJson, findPackageExtensions(pkgJson.name, pkgJson.version))\n }\n // Revert/remove properties we don't care to have normalized.\n // Properties with undefined values are omitted when saved as JSON.\n for (const { 0: key, 1: value } of preserved) {\n pkgJson[key as keyof typeof pkgJson] = value\n }\n return pkgJson\n}\n\n/**\n * Extract escaped scope from a Socket registry package name.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function resolveEscapedScope(\n sockRegPkgName: string,\n): string | undefined {\n const escapedScopeRegExp = getEscapedScopeRegExp()\n const match = escapedScopeRegExp.exec(sockRegPkgName)?.[0]\n return match || undefined\n}\n\n/**\n * Resolve original package name from Socket registry package name.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function resolveOriginalPackageName(sockRegPkgName: string): string {\n const SOCKET_REGISTRY_SCOPE = getSocketRegistryScope()\n const name = sockRegPkgName.startsWith(`${SOCKET_REGISTRY_SCOPE}/`)\n ? sockRegPkgName.slice(SOCKET_REGISTRY_SCOPE.length + 1)\n : sockRegPkgName\n const escapedScope = resolveEscapedScope(name)\n return escapedScope\n ? `${unescapeScope(escapedScope)}/${name.slice(escapedScope.length)}`\n : name\n}\n\n/**\n * Convert escaped scope to standard npm scope format.\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function unescapeScope(escapedScope: string): string {\n const REGISTRY_SCOPE_DELIMITER = getRegistryScopeDelimiter()\n return `@${escapedScope.slice(0, -REGISTRY_SCOPE_DELIMITER.length)}`\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@socketsecurity/lib",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "license": "MIT",
5
5
  "description": "Core utilities and infrastructure for Socket.dev security tools",
6
6
  "keywords": [
@@ -721,24 +721,19 @@
721
721
  "build:watch": "node scripts/build-js.mjs --watch",
722
722
  "check": "node scripts/check.mjs",
723
723
  "claude": "node scripts/claude.mjs",
724
- "clean": "del-cli dist '**/*.tsbuildinfo'",
724
+ "clean": "node scripts/clean.mjs",
725
725
  "cover": "node scripts/cover.mjs",
726
726
  "dev": "pnpm run build:watch",
727
- "fix": "node scripts/fix.mjs",
727
+ "fix": "node scripts/lint.mjs --fix",
728
728
  "fix:exports": "node scripts/generate-package-exports.mjs && node scripts/fix-commonjs-exports.mjs",
729
- "lint": "biome check .",
729
+ "lint": "node scripts/lint.mjs",
730
730
  "lint-ci": "pnpm run lint",
731
731
  "prepare": "husky",
732
732
  "prepublishOnly": "pnpm run build",
733
- "test": "vitest",
733
+ "test": "node scripts/test.mjs",
734
734
  "test-ci": "vitest run",
735
735
  "type-ci": "pnpm run check"
736
736
  },
737
- "dependencies": {
738
- "semver": "7.7.2",
739
- "which": "5.0.0",
740
- "yoctocolors-cjs": "2.1.3"
741
- },
742
737
  "devDependencies": {
743
738
  "@babel/core": "7.28.4",
744
739
  "@babel/parser": "7.28.4",
@@ -746,6 +741,8 @@
746
741
  "@babel/types": "7.28.4",
747
742
  "@biomejs/biome": "2.2.4",
748
743
  "@dotenvx/dotenvx": "1.49.0",
744
+ "@eslint/compat": "1.4.0",
745
+ "@eslint/js": "9.38.0",
749
746
  "@inquirer/confirm": "5.1.16",
750
747
  "@inquirer/input": "4.2.2",
751
748
  "@inquirer/password": "4.0.18",
@@ -767,7 +764,11 @@
767
764
  "del-cli": "6.0.0",
768
765
  "esbuild": "0.25.11",
769
766
  "eslint": "9.35.0",
767
+ "eslint-import-resolver-typescript": "4.4.4",
768
+ "eslint-plugin-import-x": "4.16.1",
770
769
  "eslint-plugin-n": "17.23.1",
770
+ "eslint-plugin-sort-destructure-keys": "2.0.0",
771
+ "eslint-plugin-unicorn": "61.0.2",
771
772
  "fast-glob": "3.3.3",
772
773
  "fast-sort": "3.4.1",
773
774
  "get-east-asian-width": "1.3.0",