refactor: rename scripts/*.mjs to *.mts for native TypeScript#1204
Merged
John-David Dalton (jdalton) merged 7 commits intomainfrom Apr 15, 2026
Merged
refactor: rename scripts/*.mjs to *.mts for native TypeScript#1204John-David Dalton (jdalton) merged 7 commits intomainfrom
John-David Dalton (jdalton) merged 7 commits intomainfrom
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Bugbot Autofix prepared fixes for both issues found in the latest run.
- ✅ Fixed: CLI package.json references non-existent
.mtsscript files- Reverted all local script references in packages/cli/package.json (19 entries) and packages/package-builder/package.json (5 entries) from .mts back to .mjs to match the actual filenames on disk.
- ✅ Fixed: Cross-package imports reference non-existent
.mtsfiles- Fixed 7 cross-package import specifiers in 6 root scripts (build.mts, clean-cache.mts, validate-checksums.mts, download-iocraft-binaries.mts, get-platform-matrix.mts, get-platform-targets.mts) to use .mjs extensions matching the actual files in packages/build-infra/lib/ and packages/cli/scripts/constants/.
Or push these changes by commenting:
@cursor push 4e9bb17aa7
Preview (4e9bb17aa7)
diff --git a/packages/cli/package.json b/packages/cli/package.json
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -18,12 +18,12 @@
"logo-light.png"
],
"scripts": {
- "build": "node --max-old-space-size=8192 --import=./scripts/load.mjs scripts/build.mts",
- "build:force": "node --max-old-space-size=8192 --import=./scripts/load.mjs scripts/build.mts --force",
- "build:watch": "node --max-old-space-size=8192 --import=./scripts/load.mjs scripts/build.mts --watch",
- "restore-cache": "node --import=./scripts/load.mjs scripts/restore-cache.mts",
- "build:sea": "node --max-old-space-size=8192 --import=./scripts/load.mjs scripts/build-sea.mts",
- "build:js": "node scripts/build-js.mts",
+ "build": "node --max-old-space-size=8192 --import=./scripts/load.mjs scripts/build.mjs",
+ "build:force": "node --max-old-space-size=8192 --import=./scripts/load.mjs scripts/build.mjs --force",
+ "build:watch": "node --max-old-space-size=8192 --import=./scripts/load.mjs scripts/build.mjs --watch",
+ "restore-cache": "node --import=./scripts/load.mjs scripts/restore-cache.mjs",
+ "build:sea": "node --max-old-space-size=8192 --import=./scripts/load.mjs scripts/build-sea.mjs",
+ "build:js": "node scripts/build-js.mjs",
"dev:watch": "pnpm run build:watch",
"check": "node ../../scripts/check.mts",
"check-ci": "pnpm run check",
@@ -31,8 +31,8 @@
"lint-ci": "pnpm run lint",
"type": "tsc --noEmit",
"type-ci": "pnpm run type",
- "sync-checksums": "node scripts/sync-checksums.mts",
- "cover": "node --import=./scripts/load.mjs scripts/cover.mts",
+ "sync-checksums": "node scripts/sync-checksums.mjs",
+ "cover": "node --import=./scripts/load.mjs scripts/cover.mjs",
"clean": "run-p -c --aggregate-output clean:*",
"clean:binject": "del-cli 'build/binject'",
"clean:cache": "del-cli '**/.cache'",
@@ -49,22 +49,22 @@
"dev:npm": "cross-env SOCKET_CLI_MODE=npm node --experimental-strip-types src/cli-dispatch.mts",
"dev:npx": "cross-env SOCKET_CLI_MODE=npx node --experimental-strip-types src/cli-dispatch.mts",
"e2e-tests": "dotenvx -q run -f .env.test -- vitest run --config vitest.e2e.config.mts",
- "e2e:js": "node scripts/e2e.mts --js",
- "e2e:sea": "node scripts/e2e.mts --sea",
- "e2e:all": "node scripts/e2e.mts --all",
+ "e2e:js": "node scripts/e2e.mjs --js",
+ "e2e:sea": "node scripts/e2e.mjs --sea",
+ "e2e:all": "node scripts/e2e.mjs --all",
"test": "run-s check test:*",
"test:prepare": "dotenvx -q run -f .env.test -- pnpm build && del-cli 'test/**/node_modules'",
- "test:unit": "node --import=./scripts/load.mjs scripts/test-wrapper.mts",
- "test:unit:update": "node --import=./scripts/load.mjs scripts/test-wrapper.mts --update",
- "test:unit:coverage": "node --import=./scripts/load.mjs scripts/test-wrapper.mts --coverage",
- "test:validate": "node --import=./scripts/load.mjs scripts/validate-tests.mts",
+ "test:unit": "node --import=./scripts/load.mjs scripts/test-wrapper.mjs",
+ "test:unit:update": "node --import=./scripts/load.mjs scripts/test-wrapper.mjs --update",
+ "test:unit:coverage": "node --import=./scripts/load.mjs scripts/test-wrapper.mjs --coverage",
+ "test:validate": "node --import=./scripts/load.mjs scripts/validate-tests.mjs",
"test-ci": "run-s test:*",
"test-pre-commit": "cross-env PRE_COMMIT=1 pnpm test",
"update": "node ../../scripts/update.mts",
- "verify": "node scripts/verify-package.mts",
- "wasm": "node scripts/wasm.mts",
- "wasm:build": "node scripts/wasm.mts --build",
- "wasm:download": "node scripts/wasm.mts --download"
+ "verify": "node scripts/verify-package.mjs",
+ "wasm": "node scripts/wasm.mjs",
+ "wasm:build": "node scripts/wasm.mjs --build",
+ "wasm:download": "node scripts/wasm.mjs --download"
},
"devDependencies": {
"@babel/generator": "catalog:",
diff --git a/packages/package-builder/package.json b/packages/package-builder/package.json
--- a/packages/package-builder/package.json
+++ b/packages/package-builder/package.json
@@ -8,11 +8,11 @@
"./scripts/*": "./scripts/*"
},
"scripts": {
- "generate:all": "node scripts/generate-all.mts",
- "generate:cli": "node scripts/generate-cli-packages.mts",
- "generate:cli-sentry": "node scripts/generate-cli-sentry-package.mts",
- "generate:socketaddon": "node scripts/generate-socketaddon-packages.mts",
- "generate:socketbin": "node scripts/generate-socketbin-packages.mts"
+ "generate:all": "node scripts/generate-all.mjs",
+ "generate:cli": "node scripts/generate-cli-packages.mjs",
+ "generate:cli-sentry": "node scripts/generate-cli-sentry-package.mjs",
+ "generate:socketaddon": "node scripts/generate-socketaddon-packages.mjs",
+ "generate:socketbin": "node scripts/generate-socketbin-packages.mjs"
},
"dependencies": {
"@socketsecurity/lib": "catalog:",
diff --git a/scripts/build.mts b/scripts/build.mts
--- a/scripts/build.mts
+++ b/scripts/build.mts
@@ -33,7 +33,7 @@
PLATFORM_TARGETS,
formatPlatformTarget,
parsePlatformTarget,
-} from '../packages/build-infra/lib/platform-targets.mts'
+} from '../packages/build-infra/lib/platform-targets.mjs'
const logger = getDefaultLogger()
const __filename = fileURLToPath(import.meta.url)
diff --git a/scripts/clean-cache.mts b/scripts/clean-cache.mts
--- a/scripts/clean-cache.mts
+++ b/scripts/clean-cache.mts
@@ -15,7 +15,7 @@
import { safeDelete } from '@socketsecurity/lib/fs'
import { getDefaultLogger } from '@socketsecurity/lib/logger'
-import { getGlobalCacheDirs } from '../packages/cli/scripts/constants/paths.mts'
+import { getGlobalCacheDirs } from '../packages/cli/scripts/constants/paths.mjs'
const logger = getDefaultLogger()
diff --git a/scripts/download-iocraft-binaries.mts b/scripts/download-iocraft-binaries.mts
--- a/scripts/download-iocraft-binaries.mts
+++ b/scripts/download-iocraft-binaries.mts
@@ -19,8 +19,8 @@
import {
PLATFORM_CONFIGS,
parsePlatformArgs,
-} from '../packages/build-infra/lib/platform-targets.mts'
-import { logTransientErrorHelp } from '../packages/build-infra/lib/github-error-utils.mts'
+} from '../packages/build-infra/lib/platform-targets.mjs'
+import { logTransientErrorHelp } from '../packages/build-infra/lib/github-error-utils.mjs'
import { getDefaultLogger } from '@socketsecurity/lib/logger'
import { downloadSocketBtmRelease } from '@socketsecurity/lib/releases/socket-btm'
diff --git a/scripts/get-platform-matrix.mts b/scripts/get-platform-matrix.mts
--- a/scripts/get-platform-matrix.mts
+++ b/scripts/get-platform-matrix.mts
@@ -8,7 +8,7 @@
* # Outputs: {"include":[...]}
*/
-import { PLATFORM_CONFIGS } from '../packages/build-infra/lib/platform-targets.mts'
+import { PLATFORM_CONFIGS } from '../packages/build-infra/lib/platform-targets.mjs'
const matrix = {
include: PLATFORM_CONFIGS.map(c => ({
diff --git a/scripts/get-platform-targets.mts b/scripts/get-platform-targets.mts
--- a/scripts/get-platform-targets.mts
+++ b/scripts/get-platform-targets.mts
@@ -8,6 +8,6 @@
* # Outputs space-separated: linux-x64 linux-arm64 ...
*/
-import { PLATFORM_TARGETS } from '../packages/build-infra/lib/platform-targets.mts'
+import { PLATFORM_TARGETS } from '../packages/build-infra/lib/platform-targets.mjs'
console.log(PLATFORM_TARGETS.join(' '))
diff --git a/scripts/validate-checksums.mts b/scripts/validate-checksums.mts
--- a/scripts/validate-checksums.mts
+++ b/scripts/validate-checksums.mts
@@ -19,7 +19,7 @@
import { getDefaultLogger } from '@socketsecurity/lib/logger'
-import { PLATFORM_MAP_TOOLS } from '../packages/cli/scripts/constants/external-tools-platforms.mts'
+import { PLATFORM_MAP_TOOLS } from '../packages/cli/scripts/constants/external-tools-platforms.mjs'
const logger = getDefaultLogger()
const __dirname = path.dirname(fileURLToPath(import.meta.url))You can send follow-ups to the cloud agent here.
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 400717d. Configure here.
e985d35 to
049107c
Compare
Bill Li (billxinli)
approved these changes
Apr 15, 2026
- scripts/check.mts: update 4 validate-* spawn paths from .mjs to .mts - scripts/validate-no-cdn-refs.mts: fix self-skip check extension - scripts/lib/build-exec.mts: fix dynamic import of build-helpers - .github/workflows/provenance.yml: update 11 root script references - packages/cli/package.json: revert local script refs back to .mjs (only root scripts/ were renamed, not packages/cli/scripts/)
Root scripts/ were renamed to .mts but files in packages/build-infra/ and packages/cli/scripts/ were not. Fix 7 cross-package imports that incorrectly referenced .mts extensions, and revert package-builder package.json script entries to .mjs.
This reverts commit 9f5a661.
Rename all .mjs scripts in packages/build-infra/lib/, packages/cli/scripts/, packages/cli/.config/, packages/package-builder/scripts/, and template files to .mts to match the root scripts/ rename from commit 049107c. - 73 files renamed via git mv (.mjs -> .mts) - Updated all internal imports within renamed files - Updated package.json script commands in cli, build-infra, package-builder, and template packages - Updated cross-package imports in root scripts/ - Preserved socketaddon-main/index.mjs (published npm entry point) - Preserved .mjs extension checks in bundle validation scripts
1234e81 to
6ba0337
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Node 25.9.0 supports .mts natively. Rename all scripts from .mjs to .mts for explicit ESM TypeScript.
Note
Medium Risk
Broad rename of build/test/lint/setup script entrypoints and internal imports to
.mtscould break local dev/CI if any callers or workflows still reference.mjsor if Node/TS loader assumptions differ. Commit-hook hardening is low risk but affects developer commit flow if paths/permissions are misconfigured.Overview
Updates the repo’s Node script toolchain to run TypeScript ESM directly by switching root and package-level
package.jsonscripts fromscripts/*.mjstoscripts/*.mts, and updating cross-script imports accordingly.Hardens commit message hooks by improving error handling/cleanup in
.git-hooks/commit-msgand making.husky/commit-msgfail fast with a clear error when the underlying hook is missing or non-executable.Minor docs/metadata tweaks: points security tooling docs at
external-tools.jsonand marks thesecurity-scanskill as user-invocable while removing outdated hook documentation.Reviewed by Cursor Bugbot for commit 400717d. Configure here.