Launch Week Day 5: Introducing Reachability for PHP.Learn More
Socket
Book a DemoSign in
Socket

@ts-bridge/cli

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ts-bridge/cli - npm Package Compare versions

Comparing version
0.4.4
to
0.5.0
+14
-1
CHANGELOG.md

@@ -10,2 +10,14 @@ # Changelog

## [0.5.0]
### Added
- Add shim for `require.resolve` ([#51](https://github.com/ts-bridge/ts-bridge/pull/51))
- This will replace `require.resolve` calls with an ESM-compatible version
when targeting ESM.
### Fixed
- Fix detection of global symbols ([#50](https://github.com/ts-bridge/ts-bridge/pull/50))
## [0.4.4]

@@ -127,3 +139,4 @@

[Unreleased]: https://github.com/ts-bridge/ts-bridge/compare/@ts-bridge/cli@0.4.4...HEAD
[Unreleased]: https://github.com/ts-bridge/ts-bridge/compare/@ts-bridge/cli@0.5.0...HEAD
[0.5.0]: https://github.com/ts-bridge/ts-bridge/compare/@ts-bridge/cli@0.4.4...@ts-bridge/cli@0.5.0
[0.4.4]: https://github.com/ts-bridge/ts-bridge/compare/@ts-bridge/cli@0.4.3...@ts-bridge/cli@0.4.4

@@ -130,0 +143,0 @@ [0.4.3]: https://github.com/ts-bridge/ts-bridge/compare/@ts-bridge/cli@0.4.2...@ts-bridge/cli@0.4.3

+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,IAAI,EAEJ,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,MAAM,EACN,iBAAiB,EACjB,SAAS,EACT,eAAe,EAChB,MAAM,YAAY,CAAC;AACpB,OAAO,UAAU,MAAM,YAAY,CAAC;AAgBpC;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,WAUnB;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,WAWnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,UAQb;AAED;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB;;;OAGG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;OAIG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACxB,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,SAAS,CAAC,eAAe,CAAC,GAClC,OAAO,CA2BT;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,MAAM,GACb,SAAS,GAAG,SAAS,EAAE,CA8GzB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,iCA4BxD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,iCAqBxD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAW9D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,wCAQ/B;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,YAElC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,aAAa,GAAE,OAA+B,2BAqB/C"}
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,IAAI,EACJ,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,MAAM,EACN,iBAAiB,EACjB,SAAS,EACT,eAAe,EAChB,MAAM,YAAY,CAAC;AACpB,OAAO,UAAU,MAAM,YAAY,CAAC;AAgBpC;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,WAUnB;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,WAiBnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,UAQb;AAED;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB;;;OAGG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;OAIG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACxB,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,SAAS,CAAC,eAAe,CAAC,GAClC,OAAO,CA2BT;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,MAAM,GACb,SAAS,GAAG,SAAS,EAAE,CA8GzB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,iCA4BxD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,iCAqBxD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAW9D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,wCAQ/B;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,YAElC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,aAAa,GAAE,OAA+B,2BAqB/C"}
import typescript from 'typescript';
import { getCommonJsExports, isCommonJs } from './module-resolver.js';
import { getIdentifierName } from './utils.js';
import { getDefinedArray, getIdentifierName } from './utils.js';
const { factory, isNamedExports, isNamedImports, isNamespaceImport, isStringLiteral, NodeFlags, SymbolFlags, SyntaxKind, } = typescript;

@@ -30,3 +30,9 @@ /**

symbol.escapedName === `_${symbolName}`);
return foundSymbol?.parent?.escapedName === '__global';
const declarations = getDefinedArray(foundSymbol?.getDeclarations());
for (const declaration of declarations) {
if (declaration.getSourceFile().isDeclarationFile) {
return true;
}
}
return false;
}

@@ -33,0 +39,0 @@ /**

@@ -100,8 +100,5 @@ import type { Statement } from 'typescript';

* ```ts
* import { createRequire } from 'module';
* import { createRequire as $createRequire } from 'module';
*
* function require(identifier: string, url: string): any {
* const fn = createRequire(url);
* return fn(identifier);
* }
* const $require = $createRequire(import.meta.url);
* ```

@@ -113,6 +110,8 @@ *

*
* @param functionName - The name of the function to create.
* @param functionName - The name of the require function to create.
* @param createRequireFunctionName - The name of the `createRequire` function
* to import.
* @returns The AST for the `require` function.
*/
export declare function getRequireHelperFunction(functionName: string): [Statement, Statement];
export declare function getRequireHelperFunction(functionName: string, createRequireFunctionName: string): [Statement, Statement];
//# sourceMappingURL=shims.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"shims.d.ts","sourceRoot":"","sources":["../src/shims.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,UAAU,MAAM,YAAY,CAAC;AAIpC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,MAAM,kCAyDlE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,kCA6H5D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,yBAAyB,EAAE,MAAM,EACjC,mBAAmB,EAAE,MAAM,kCAqC5B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,kCA+E5D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,GACnB,CAAC,SAAS,EAAE,SAAS,CAAC,CA0ExB"}
{"version":3,"file":"shims.d.ts","sourceRoot":"","sources":["../src/shims.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,UAAU,MAAM,YAAY,CAAC;AAIpC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,MAAM,kCAyDlE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,kCA6H5D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,yBAAyB,EAAE,MAAM,EACjC,mBAAmB,EAAE,MAAM,kCAqC5B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,kCA+E5D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,yBAAyB,EAAE,MAAM,GAChC,CAAC,SAAS,EAAE,SAAS,CAAC,CA6CxB"}

@@ -156,8 +156,5 @@ import typescript from 'typescript';

* ```ts
* import { createRequire } from 'module';
* import { createRequire as $createRequire } from 'module';
*
* function require(identifier: string, url: string): any {
* const fn = createRequire(url);
* return fn(identifier);
* }
* const $require = $createRequire(import.meta.url);
* ```

@@ -169,20 +166,18 @@ *

*
* @param functionName - The name of the function to create.
* @param functionName - The name of the require function to create.
* @param createRequireFunctionName - The name of the `createRequire` function
* to import.
* @returns The AST for the `require` function.
*/
export function getRequireHelperFunction(functionName) {
export function getRequireHelperFunction(functionName, createRequireFunctionName) {
return [
factory.createImportDeclaration(undefined, factory.createImportClause(false, undefined, factory.createNamedImports([
factory.createImportSpecifier(false, factory.createIdentifier('createRequire'), factory.createIdentifier(functionName)),
factory.createImportSpecifier(false, factory.createIdentifier('createRequire'), factory.createIdentifier(createRequireFunctionName)),
])), factory.createStringLiteral('module'), undefined),
factory.createFunctionDeclaration(undefined, undefined, factory.createIdentifier('require'), undefined, [
factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier('identifier'), undefined, factory.createKeywordTypeNode(SyntaxKind.StringKeyword), undefined),
factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier('url'), undefined, factory.createKeywordTypeNode(SyntaxKind.StringKeyword), undefined),
], factory.createKeywordTypeNode(SyntaxKind.AnyKeyword), factory.createBlock([
factory.createVariableStatement(undefined, factory.createVariableDeclarationList([
factory.createVariableDeclaration(factory.createIdentifier('fn'), undefined, undefined, factory.createCallExpression(factory.createIdentifier(functionName), undefined, [factory.createIdentifier('url')])),
], NodeFlags.Const)),
factory.createReturnStatement(factory.createCallExpression(factory.createIdentifier('fn'), undefined, [factory.createIdentifier('identifier')])),
], true)),
factory.createVariableStatement(undefined, factory.createVariableDeclarationList([
factory.createVariableDeclaration(factory.createIdentifier(functionName), undefined, undefined, factory.createCallExpression(factory.createIdentifier(createRequireFunctionName), undefined, [
factory.createPropertyAccessExpression(factory.createMetaProperty(SyntaxKind.ImportKeyword, factory.createIdentifier('meta')), factory.createIdentifier('url')),
])),
], NodeFlags.Const)),
];
}

@@ -187,10 +187,7 @@ import { evaluateModule, getVirtualEnvironment } from '@ts-bridge/test-utils';

it('returns the `require` helper function', () => {
const ast = getRequireHelperFunction('createRequire');
const ast = getRequireHelperFunction('require', 'createRequire');
expect(compile(ast)).toMatchInlineSnapshot(`
""use strict";
import { createRequire as createRequire } from "module";
function require(identifier, url) {
const fn = createRequire(url);
return fn(identifier);
}
const require = createRequire(import.meta.url);
"

@@ -203,3 +200,3 @@ `);

const code = `
${compile(getRequireHelperFunction('createRequire'))}
${compile(getRequireHelperFunction('require', 'createRequire'))}
export { require };

@@ -206,0 +203,0 @@ `;

@@ -1,1 +0,1 @@

{"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../src/transformers.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../src/transformers.ts"],"names":[],"mappings":"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"}

@@ -253,2 +253,3 @@ import typescript from 'typescript';

let insertShim = false;
const requireFunctionName = getUniqueIdentifier(typeChecker, sourceFile, 'require');
const createRequireFunctionName = getUniqueIdentifier(typeChecker, sourceFile, 'createRequire');

@@ -262,4 +263,14 @@ const visitor = (node) => {

insertShim = true;
return factory.createCallExpression(factory.createIdentifier('require'), undefined, [node.arguments[0], getImportMetaUrl()]);
return factory.createCallExpression(factory.createIdentifier(requireFunctionName), undefined, [node.arguments[0]]);
}
if (isCallExpression(node) &&
isPropertyAccessExpression(node.expression) &&
isIdentifier(node.expression.expression) &&
node.expression.expression.text === 'require' &&
node.expression.name.text === 'resolve' &&
isGlobal(typeChecker, node, 'require') &&
node.arguments[0]) {
insertShim = true;
return factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier(requireFunctionName), 'resolve'), undefined, [node.arguments[0]]);
}
return visitEachChild(node, visitor, context);

@@ -270,3 +281,3 @@ };

return factory.updateSourceFile(modifiedSourceFile, [
...getRequireHelperFunction(createRequireFunctionName),
...getRequireHelperFunction(requireFunctionName, createRequireFunctionName),
...modifiedSourceFile.statements,

@@ -273,0 +284,0 @@ ]);

@@ -508,7 +508,4 @@ import { getFixture } from '@ts-bridge/test-utils';

"import { createRequire as $createRequire } from "module";
function require(identifier, url) {
const fn = $createRequire(url);
return fn(identifier);
}
const { builtinModules } = require('module', import.meta.url);
const $require = $createRequire(import.meta.url);
const { builtinModules } = $require('module');
console.log(builtinModules);

@@ -518,2 +515,10 @@ "

});
it('adds a shim when using `require.resolve`', async () => {
expect(files['require-resolve.js']).toMatchInlineSnapshot(`
"import { createRequire as $createRequire } from "module";
const $require = $createRequire(import.meta.url);
console.log($require.resolve('path/to/file.js'));
"
`);
});
it('does not add a shim when `require` refers to a variable in scope', async () => {

@@ -520,0 +525,0 @@ expect(files['require-in-scope.js']).toMatchInlineSnapshot(`

{
"name": "@ts-bridge/cli",
"version": "0.4.4",
"version": "0.5.0",
"description": "Bridge the gap between ES modules and CommonJS modules with an easy-to-use alternative to `tsc`.",

@@ -5,0 +5,0 @@ "keywords": [