diff --git a/packages/coding-agent/src/extensibility/plugins/legacy-pi-compat.ts b/packages/coding-agent/src/extensibility/plugins/legacy-pi-compat.ts index 7d9b287f2..c044a9f43 100644 --- a/packages/coding-agent/src/extensibility/plugins/legacy-pi-compat.ts +++ b/packages/coding-agent/src/extensibility/plugins/legacy-pi-compat.ts @@ -130,6 +130,11 @@ function collectExtensionSpecifierReferences( record("import", node.source); } else if (node.type === "ImportExpression") { record("import", node.source); + } else if ( + node.type === "TSImportEqualsDeclaration" && + node.moduleReference.type === "TSExternalModuleReference" + ) { + record("require", node.moduleReference.expression); } else if (node.type === "CallExpression") { if (node.callee.type === "Import") { record("import", node.arguments[0]); diff --git a/packages/coding-agent/test/extensibility/legacy-pi-inplace-load.test.ts b/packages/coding-agent/test/extensibility/legacy-pi-inplace-load.test.ts index df4525529..d84c2dc3f 100644 --- a/packages/coding-agent/test/extensibility/legacy-pi-inplace-load.test.ts +++ b/packages/coding-agent/test/extensibility/legacy-pi-inplace-load.test.ts @@ -1094,12 +1094,13 @@ describe("legacy-pi in-place module loading (issue #1674)", () => { 'const binding = require("@fixture/native-platform");', 'const plain = require("plain-dep");', 'const conditional = require("condition-dep");', + 'import conditionalEquals = require("condition-dep");', 'const local = require("./local.node");', 'const member = loader.require("plain-dep");', 'const importText = `from"plain-dep"`;', 'const importPattern = /from"typebox"/;', 'function shadowed(require) { return require("plain-dep"); }', - "export { binding, conditional, importPattern, importText, local, member, plain, shadowed };", + "export { binding, conditional, conditionalEquals, importPattern, importText, local, member, plain, shadowed };", ].join("\n"), importer, ); @@ -1110,6 +1111,7 @@ describe("legacy-pi in-place module loading (issue #1674)", () => { expect(rewritten).toContain(`require("${addon.replaceAll("\\", "/")}")`); expect(rewritten).toContain(`require("${plainDep.replaceAll("\\", "/")}")`); expect(rewritten).toContain(`require("${conditionalDep.replaceAll("\\", "/")}")`); + expect(rewritten).toContain(`import conditionalEquals = require("${conditionalDep.replaceAll("\\", "/")}")`); expect(rewritten).toContain('require("./local.node")'); expect(rewritten).toContain('loader.require("plain-dep")'); expect(rewritten).toContain('`from"plain-dep"`');