Socket
Socket
Sign inDemoInstall

cjs-module-lexer

Package Overview
Dependencies
0
Maintainers
1
Versions
39
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.3.0 to 0.3.1

2

dist/lexer.js

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

"use strict";exports.parse=parse;exports.init=init;const A=new Set(["implements","interface","let","package","private","protected","public","static","yield","enum"]);let B,Q;function parse(Q,E="@"){if(!B)throw new Error("Not initialized");const g=(B.__heap_base.value||B.__heap_base)+4*Q.length-B.memory.buffer.byteLength;g>0&&B.memory.grow(Math.ceil(g/65536));const I=B.sa(Q.length);if(function(A,B){const Q=A.length;let E=0;for(;E<Q;)B[E]=A.charCodeAt(E++)}(Q,new Uint16Array(B.memory.buffer,I,Q.length+1)),!B.parseCJS(I,Q.length,0,0))throw Object.assign(new Error(`Parse error ${E}${B.e()}:${Q.slice(0,B.e()).split("\n").length}:${B.e()-Q.lastIndexOf("\n",B.e()-1)}`),{idx:B.e()});let C=new Set,S=new Set;for(;B.rre();)S.add(Q.slice(B.res(),B.ree()));for(;B.re();){let E=Q.slice(B.es(),B.ee());A.has(E)||C.add(E)}return{exports:[...C],reexports:[...S]}}function init(){return Q||(Q=(async()=>{const A=await WebAssembly.compile((Q="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IAYQOg0CQZygASAAIARBAXRqNgIAECFB2wBHDQJBnKABQZygASgCAEECajYCABAhGkGcoAEoAgAiACABIAIQOg0CQZygASAAIANBAXRqNgIAECFB3QBHDQIMAQsgAEHPAEcNAUGcoAEoAgAiAEECakHiAEHqAEHlAEHjAEH0ABAORQ0BQZygASAAQQxqNgIAECFBLkcNAUGcoAFBnKABKAIAQQJqNgIAECFB5ABHDQFBnKABKAIAIgBBAmoQM0UNAUGcoAEgAEEcajYCABAhQShHDQFBnKABQZygASgCAEECajYCABAhEDRFDQEQIUEsRw0BQZygAUGcoAEoAgBBAmo2AgAQIRpBnKABKAIAIgAgASACEDoNAUGcoAEgACADQQF0ajYCABAhQSxHDQFBnKABQZygASgCAEECajYCABAhQfsARw0BQZygAUGcoAEoAgBBAmo2AgAQIUHlAEcNAUGcoAEoAgAiAEECahA2RQ0BQZygASAAQRRqNgIAECFBOkcNAUGcoAFBnKABKAIAQQJqNgIAECFBnKABKAIAIQBB9ABHBEAgAC8BAkHyAEcNAiAALwEEQfUARw0CIAAvAQZB5QBHDQILQZygASAAQQhqNgIAECFBLEcNAUGcoAFBnKABKAIAQQJqNgIAECFB5wBHDQFBnKABKAIAIgAvAQJB5QBHDQEgAC8BBEH0AEcNAUGcoAEgAEEGajYCABAhQTpHDQFBnKABQZygASgCAEECajYCABAhQeYARw0BQZygASgCACIAQQJqQfUAQe4AQeMAQfQAQekAQe8AQe4AEBtFDQFBnKABIABBEGo2AgAQIUEoRw0BQZygAUGcoAEoAgBBAmo2AgAQIUEpRw0BQZygAUGcoAEoAgBBAmo2AgAQIUH7AEcNAUGcoAFBnKABKAIAQQJqNgIAECFB8gBHDQFBnKABKAIAIgBBAmpB5QBB9ABB9QBB8gBB7gAQDkUNAUGcoAEgAEEMajYCABAhGkGcoAEoAgAiACAHIAYQOg0BQZygASAAIARBAXRqNgIAECFB2wBHDQFBnKABQZygASgCAEECajYCABAhGkGcoAEoAgAiACABIAIQOg0BQZygASAAIANBAXRqNgIAECFB3QBHDQFBnKABQZygASgCAEECajYCABAhIgFBO0YEf0GcoAFBnKABKAIAQQJqNgIAECEFIAEL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SXJyciAAQfFeakEPSSAAQf5eakEMSXIgAEGPX2pBBEkgAEGZX2pBB0lyciAAQZ5fakEDSSAAQaJfakEDSXIgAEGqX2pBBEkgAEHAX2pBCklycnJyIABBxh9GIABB1V9qQRRJciAAQedgakEkSSAAQc5RakEDSXJyIABBrlFqQQJJIABBjlFqQQJJciAAQfVPakEDSSAAQaBQakEKSXJyciAAQd0vRiAAQcxQakEgSXIgAEGwRmpBA0kgAEGwR2pBCklyciAAQcBHakEKSSAAQdxHakEUSXIgAEGaSGpBDkkgAEHQSGpBCklycnJyciAAQd9IakENSSAAQYBJakEDSXIgAEGVSWpBCUkgAEGwSWpBCklyciAAQcxJakERSSAAQYBKakEFSXIgAEHQSmpBDkkgAEHwSmpBCklycnIgAEGBS2pBC0kgAEGgS2pBHUlyIABBq0tqQQpJIABB6UtqQQVJcnIgAEGwTGpBC0kgAEG6TWpBCklyIABB0E1qQQxJIABB4E1qQQxJcnJyciAAQakxRiAAQfBPakEKSXIgAEHARGpBOkkgAEGJRmpBA0lyciAAQe05RiAAQY5GakEDSXIgAEGsRmpBFUkgAEGFRGpBBUlycnJycg0AIABB4cEARiAAQZu+f2pBDElyIABBwb9/aiICQRVNQQBBASACdEGDgIABcRtyIABBsL5/akENSSAAQZGmf2pBA0lyIABB/9oARiAAQWBxQeDbAEZycnIgAEHWn39qQQZJIABB555/akECSXIgAEHvzAJGIABBjLN9akEKSXJyIABB4LN9akEKSXJyDQAgAEHisn1qQQJJIABBkLJ9akECSXIgAEH1r31qIgJBHE1BAEEBIAJ0QYGAgPgBcRtyDQACQCAAQf6vfWoiAkEESwRAIABBgK99akECSQ0CDAELIAJBAWsOAwAAAAELIAFBgNMCRiAAQc2sfWpBDklyIABBua19akENSSAAQdqtfWpBCElyciAAQYGufWpBC0kgAEGgrn1qQRJJciAAQcyufWpBEkkgAEGwrn1qQQpJcnJyIABB5dMCRiAAQderfWpBDklyIABBX3FBsKx9akEKSXJyDQAgAEGwq31qQQpJIABBvat9aiIBQQpNQQBBASABdEGBDHEbcg0AIABBnah9aiIBQQpNQQAgAUEIRxsNACAAQdCqfWoiAUERTUEA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i19qQQ1JciAAQcchRiAAQc0hRnJyciAAQbZbakEESSAAQbBeakErSXIgAEGEXmpBzQJJcnINACAAQc5aakEESSAAQfBaakEhSXIgAEGwW2oiA0EJSUEAQf8CIANB//8DcXZBAXEbciAAQfZaakEESSAAQaZbakEESXIgAEGgW2pBKUlycg0AIABBgFFqQTRJIABBklFqQQNJciAAQchaaiIDQQlJQQBB/wIgA0H//wNxdkEBcRtyIABBoFFqQQ1JIABBwFFqQRJJciAAQeBRakESSSAAQfJRakEESXJyciAAQYBSakENSSAAQZJSakELSXIgAEHgUmpBywBJIABB/1JqQRpJcnIgAEGRU2pBEUkgAEH/V2pB7ARJciAAQYhYakEGSSAAQeBYakHWAElycnJyDQAgAEFwcSIDQYAnRiAAQehZakHDAElyIABB7llqQQRJIABBqFpqQTlJcnIgAEG+WmpBBEkgAEG4WmpBD0lyIABB1y9GIABB3C9GcnJyIABB4E9qQdkASSAAQYBMakEXSXIgAEHQTGpBGkkgAEGATWpBLElyciAAQZBNakEFSSAAQbBNakEeSXIgAEGATmpBH0kgAEHQTmpBxgBJcnJycg0AIABBqjFGIABBgE9qQSlJciAAQbtJakEHSSAAQftJakEvSXJyIABBpzVGIABB4EtqQTVJciAAQZdGakEESSAAQcNGakEDSXJyciAAQfBGakErSSAAQYBHakEJSXIgAEGmR2pBJEkgAEGzR2pBA0lyciAAQYBIakEkSSAAQcZIakEsSXIgBEGvN0YgAEH9SGpBHklycnJyDQEgAEGSRmoiBUEJSUEAQY8DIAVB//8DcXZBAXEbDQAgAkHQPkYgAEG4QWpBBklyIABB4EFqQSZJIABB6EFqQQZJcnIgAEGARmpBwAFJIABBgERqQZYCSXJyDQEgAEGhQWpBH0kgAEGAQWpBNUlyIABBp0FqIgJBBE1BAEEBIAJ0QRVxG3INASAAQcpAaiICQQlJQQBB/wIgAkH//wNxdkEBcRsNACAAQY5AakEDSSAAQaBAakENSXIgAUHQP0YgAEGqQGpBBklyciAAQb5AakEDSSAAQbpAakEHSXIgAEHxwABGIABBikBqQQdJcnJyIABB/8AARiAAQfC+f2pBDUlyIABBgsIARiAAQYfCAEZyciAAQZXCAEYg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BQAAAAAAAABSAAAAEwAAAA0AAAAJAAAA1gAAAAYAAAADAAAACAAAABwAAAABAAAAUwAAABAAAAAQAAAACQAAAFIAAAAMAAAACQAAAAkAAABUAAAADgAAAAUAAAAJAAAA8wAAAA4AAACmAAAACQAAAEcAAAAFAAAAAgAAAAEAAAADAAAAAwAAAAIAAAAAAAAAAgAAAAEAAAANAAAACQAAAHgAAAAGAAAAAwAAAAYAAAAEAAAAAAAAAB0AAAAJAAAAKQAAAAYAAAACAAAAAwAAAAkAAAAAAAAACgAAAAoAAAAvAAAADwAAAJYBAAAHAAAAAgAAAAcAAAARAAAACQAAADkAAAAVAAAAAgAAAA0AAAB7AAAABQAAAAQAAAAAAAAAAgAAAAEAAAACAAAABgAAAAIAAAAAAAAACQAAAAkAAAAxAAAABAAAAAIAAAABAAAAAgAAAAQAAAAJAAAACQAAAEoBAAADAAAAaksAAAkAAACHAAAABAAAADwAAAAGAAAAGgAAAAkAAAD2AwAAAAAAAAIAAAA2AAAACAAAAAMAAABSAAAAAAAAAAwAAAABAAAArEwAAAEAAADHFAAABAAAAAQAAAAFAAAACQAAAAcAAAADAAAABgAAAB8AAAADAAAAlQAAAAIAAACKBQAAMQAAAAECAAA2AAAABQAAADEAAAAJAAAAAAAAAA8AAAAAAAAAFwAAAAQAAAACAAAADgAAAFEFAAAGAAAAAgAAABAAAAADAAAABgAAAAIAAAABAAAAAgAAAAQAAAAGAQAABgAAAAoAAAAJAAAAowEAAA0AAADXBQAABgAAAG4AAAAGAAAABgAAAAkAAACXEgAACQAAAAcFDADvAEGYHwsSMIwAAAEAAAACAAAAAAQAANAf","function"==typeof atob?Uint8Array.from(atob(Q),A=>A.charCodeAt(0)):Buffer.from(Q,"base64")));var Q;const{exports:E}=await WebAssembly.instantiate(A);B=E})())}
"use strict";exports.parse=parse;exports.init=init;const A=new Set(["implements","interface","let","package","private","protected","public","static","yield","enum"]);let B,Q;function parse(Q,E="@"){if(!B)throw new Error("Not initialized");const g=(B.__heap_base.value||B.__heap_base)+4*Q.length-B.memory.buffer.byteLength;g>0&&B.memory.grow(Math.ceil(g/65536));const I=B.sa(Q.length);if(function(A,B){const Q=A.length;let E=0;for(;E<Q;)B[E]=A.charCodeAt(E++)}(Q,new Uint16Array(B.memory.buffer,I,Q.length+1)),!B.parseCJS(I,Q.length,0,0))throw Object.assign(new Error(`Parse error ${E}${B.e()}:${Q.slice(0,B.e()).split("\n").length}:${B.e()-Q.lastIndexOf("\n",B.e()-1)}`),{idx:B.e()});let C=new Set,w=new Set;for(;B.rre();)w.add(Q.slice(B.res(),B.ree()));for(;B.re();){let E=Q.slice(B.es(),B.ee());A.has(E)||C.add(E)}return{exports:[...C],reexports:[...w]}}function init(){return Q||(Q=(async()=>{const A=await WebAssembly.compile((Q="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ABAiQZygASgCACICQX5qIQVBKEcNAEGcoAEgAkECajYCABAiQeYARw0AQZygASgCACIAQQJqQfUAQe4AQeMAQfQAQekAQe8AQe4AEB5FDQBBnKABIABBEGo2AgAQIkEoRw0AQZygAUGcoAEoAgBBAmo2AgAQIkGcoAEoAgAhABAoRQ0AQZygASgCACEDECJBKUcNAEGcoAFBnKABKAIAQQJqNgIAECJB+wBHDQBBnKABQZygASgCAEECajYCABAiQekARw0AQZygASgCACICLwECQeYARw0AIAIvAQRBIEcNAEGcoAEgAkEGajYCABAiQShHDQBBnKABQZygASgCAEECajYCABAiGkGcoAEoAgAiASAAIAMgAGsiAhA6DQBBnKABIAEgAkEBdSIDQQF0ajYCAAJAAkAQIiIBQSFHBEAgAUE9Rw0DQZygASgCACIBLwECQT1HDQMgAS8BBEE9Rw0DQZygASABQQZqNgIAECIiAUEnR0EAIAFBIkcbDQNBnKABKAIAIgRBAmpB5ABB5QBB5gBB4QBB9QBB7ABB9AAQHkUNA0GcoAEgBEEQajYCABAiIAFHDQNBnKABQZygASgCAEECajYCABAiQfwARw0DQZygASgCACIBLwECQfwARw0DQZygASABQQRqNgIAECIaQZygASgCACIBIAAgAhA6DQNBnKABIAEgA0EBdGo2AgAQIkE9Rw0DQZygASgCACIBLwECQT1HDQMgAS8BBEE9Rw0DQZygASABQQZqNgIAECIiAUEnR0EAIAFBIkcbDQNBnKABKAIAIgRBAmoQLEUNA0GcoAEgBEEWajYCABAiIAFHDQNBnKABQZygASgCAEECajYCABAiQSlHDQNBnKABQZygASgCAEECajYCABAiQfIARw0DQZygASgCACIBQQJqQeUAQfQAQfUAQfIAQe4AEA5FDQNBnKABIAFBDGo2AgAQIkE7Rg0BDAILQZygASgCACIBLwECQT1HDQIgAS8BBEE9Rw0CQZygASABQQZqNgIAECIiAUEnR0EAIAFBIkcbDQJBnKABKAIAIgRBAmpB5ABB5QBB5gBB4QBB9QBB7ABB9AAQHkUNAkGcoAEgBEEQajYCABAiIAFHDQJBnKABQZygASgCAEECajYCABAiQSlHDQILQZygAUGcoAEoAgBBAmo2AgALIAdrIgZBAXUhBAJA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IABBklJqQQtJciAAQeBSakHLAEkgAEH/UmpBGklyciAAQZFTakERSSAAQf9XakHsBElyIABBiFhqQQZJIABB4FhqQdYASXJycnINACAAQXBxIgNBgCdGIABB6FlqQcMASXIgAEHuWWpBBEkgAEGoWmpBOUlyciAAQb5aakEESSAAQbhaakEPSXIgAEHXL0YgAEHcL0ZycnIgAEHgT2pB2QBJIABBgExqQRdJciAAQdBMakEaSSAAQYBNakEsSXJyIABBkE1qQQVJIABBsE1qQR5JciAAQYBOakEfSSAAQdBOakHGAElycnJyDQAgAEGqMUYgAEGAT2pBKUlyIABBu0lqQQdJIABB+0lqQS9JcnIgAEGnNUYgAEHgS2pBNUlyIABBl0ZqQQRJIABBw0ZqQQNJcnJyIABB8EZqQStJIABBgEdqQQlJciAAQaZHakEkSSAAQbNHakEDSXJyIABBgEhqQSRJIABBxkhqQSxJciAEQa83RiAAQf1IakEeSXJycnINASAAQZJGaiIFQQlJQQBBjwMgBUH//wNxdkEBcRsNACACQdA+RiAAQbhBakEGSXIgAEHgQWpBJkkgAEHoQWpBBklyciAAQYBGakHAAUkgAEGARGpBlgJJcnINASAAQaFBakEfSSAAQYBBakE1SXIgAEGnQWoiAkEETUEAQQEgAnRBFXEbcg0BIABBykBqIgJBCUlBAEH/AiACQf//A3F2QQFxGw0AIABBjkBqQQNJIABBoEBqQQ1JciABQdA/RiAAQapAakEGSXJyIABBvkBqQQNJIABBukBqQQdJciAAQfHAAEYgAEGKQGpBB0lycnIgAEH/wABGIABB8L5/akENSXIgAEGCwgBGIABBh8IARnJyIABBlcIARiAAQfa9f2pBCklycnINASAAQei9f2oiAkERSUEAQb+gBSACdkEBcRsNACABQbzCAEYgAEHWvX9qQRBJcg0BIABBu71/aiICQQpJQQBBnwQgAkH//wNxdkEBcRsNACAAQaCnf2pBhQFJIABB0Kd/akEvSXIgAEGgvX9qQSlJIABBgKh/akEvSXJyDQEgAEGVpn9qIgJBCUlBAEGPAyACQf//A3F2QQFxGw0AIABBp9oARiAAQYCmf2pBJklyIABBrdoARiAAQYC2fWpBjQJJcnIgAEGwtn1qQS5JIABBgMB9akGNCUlyIABBgOR+akHwowFJIABBgJh/akG2M0lycnIgA0Hw4wBGIABB4Jx/akEbSXIgAEHPnX9qQd4ASSAAQfudf2pBK0lyciABQfzhAEYgAEHfnn9qQdoASXIgAEHlnn9qQQVJIABBv59/akHWAElycnJyIABByJ9/akEFSSAAQc+ff2pBBUlyIABB359/akEJSSAAQfuff2pBA0lyciAAQaikf2pBB0kgAEGwpH9qQQdJciAAQbikf2pBB0kgAEHApH9qQQdJcnJyIABByKR/akEHSSAAQdCkf2pBB0lyIABB2KR/akEHSSAAQeCkf2pBB0lyciAAQe/aAEYgAEGApX9qQRdJciAAQdClf2pBOEkgAEH+rn1qQTJJcnJycnIgAEHAr31qQTRJIABB9K99akEXSXIgAEH5r31qQQRJIABB/a99akEDSXJyIABBibB9akELSSAAQfWwfWpBL0lyIABB3rF9akHnAEkgAEHpsX1qQQlJcnJyIABB4LJ9akHQAEkgAEGBs31qQR9JciAEQavMAkYgAEHAs31qQS9JcnIgA0GQzAJGcnJyDQEgAEGOrn1qIgFBDUlBAEG/NCABQf//A3F2QQFxGw0AIABBoK19akEdSSAAQfatfWpBHElyIABB0K19akEXSSAAQbyrfWpBCElyciAAQcCrfWpBA0kgAEGArH1qQSlJciAAQYasfWpBBUkgAEGarH1qQQpJcnJyIABBz9MCRiAAQaCsfWpBBUlyIABB/Kx9akEvSSAAQYKrfWpBMklyciAAQfrUAkYgAEGgq31qQRdJcnJyDQEgAEHPqn1qIgFBEklBAEGxvgogAXZBAXEbDQAgAEGAinxqQQdJIABBkIt8akHqAElyIABBgI58akHuAkkgAEG10HxqQTFJcnIgAEHQ0HxqQRdJIABBgKh9akGk1wBJciAAQZCpfWpB8wBJIABBpKl9akEKSXJyciAAQdCpfWpBK0kgAEHYqX1qQQdJciAAQeCpfWpBB0kgAEHvqX1qQQZJcnIgAEF3cUH/qX1qQQZJIABBjqp9akEDSXIgAEGlqn1qQQNJIABBoKp9akELSXJycnINASAAQe2JfGoiAUELSUEAQZ8IIAFB//8DcXZBAXEbDQAgAEHhiXxqQQpJIABB1ol8akENSXINASAAQciJfGoiAUENSUEAQd82IAFB//8DcXZBAXEbDQAg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","function"==typeof atob?Uint8Array.from(atob(Q),A=>A.charCodeAt(0)):Buffer.from(Q,"base64")));var Q;const{exports:E}=await WebAssembly.instantiate(A);B=E})())}

@@ -79,2 +79,31 @@ let source, pos, end;

if (openTokenDepth === 0) {
switch (ch) {
case 105/*i*/:
if (source.slice(pos + 1, pos + 6) === 'mport' && keywordStart(pos))
throwIfImportStatement();
lastTokenPos = pos;
continue;
case 114/*r*/:
const startPos = pos;
if (tryParseRequire(false) && keywordStart(startPos))
tryBacktrackAddStarExportBinding(startPos - 1);
lastTokenPos = pos;
continue;
case 95/*_*/:
if (source.slice(pos + 1, pos + 8) === '_export' && (keywordStart(pos) || source.charCodeAt(pos - 1) === 46/*.*/)) {
pos += 8;
if (source.slice(pos, pos + 4) === 'Star')
pos += 4;
if (source.charCodeAt(pos) === 40/*(*/) {
openTokenPosStack[openTokenDepth++] = lastTokenPos;
if (source.charCodeAt(++pos) === 114/*r*/)
tryParseRequire(true);
}
}
lastTokenPos = pos;
continue;
}
}
switch (ch) {

@@ -89,6 +118,2 @@ case 101/*e*/:

break;
case 105/*i*/:
if (source.slice(pos + 1, pos + 6) === 'mport' && keywordStart(pos))
throwIfImportStatement();
break;
case 99/*c*/:

@@ -104,22 +129,4 @@ if (keywordStart(pos) && source.slice(pos + 1, pos + 5) === 'lass' && isBrOrWs(source.charCodeAt(pos + 5)))

if (source.slice(pos + 1, pos + 6) === 'bject' && keywordStart(pos))
tryParseObjectDefineOrKeys();
tryParseObjectDefineOrKeys(openTokenDepth === 0);
break;
case 114/*r*/: {
const startPos = pos;
if (openTokenDepth === 0 && tryParseRequire(false) && keywordStart(startPos))
tryBacktrackAddStarExportBinding(startPos - 1);
break;
}
case 95/*_*/:
if (openTokenDepth === 0 && source.slice(pos + 1, pos + 8) === '_export' && (keywordStart(pos) || source.charCodeAt(pos - 1) === 46/*.*/)) {
pos += 8;
if (source.slice(pos, pos + 4) === 'Star')
pos += 4;
if (source.charCodeAt(pos) === 40/*(*/) {
openTokenPosStack[openTokenDepth++] = lastTokenPos;
if (source.charCodeAt(++pos) === 114/*r*/)
tryParseRequire(true);
}
}
break;
case 40/*(*/:

@@ -246,3 +253,3 @@ openTokenPosStack[openTokenDepth++] = lastTokenPos;

function tryParseObjectDefineOrKeys () {
function tryParseObjectDefineOrKeys (keys) {
pos += 6;

@@ -279,3 +286,3 @@ let revertPos = pos - 1;

}
else if (ch === 107/*k*/ && source.slice(pos + 1, pos + 4) === 'eys') {
else if (keys && ch === 107/*k*/ && source.slice(pos + 1, pos + 4) === 'eys') {
while (true) {

@@ -949,3 +956,3 @@ pos += 4;

// Detects one of case, debugger, delete, do, else, in, instanceof, new,
// return, throw, typeof, void, yield ,await
// return, throw, typeof, void, yield, await
function isExpressionKeyword (pos) {

@@ -1046,3 +1053,3 @@ switch (source.charCodeAt(pos)) {

// detects:
// > ; ) -1 finally catch
// => ; ) finally catch else
// as all of these followed by a { will indicate a statement brace

@@ -1049,0 +1056,0 @@ switch (source.charCodeAt(curPos)) {

{
"name": "cjs-module-lexer",
"version": "0.3.0",
"version": "0.3.1",
"description": "Lexes CommonJS modules, returning their named exports metadata",

@@ -5,0 +5,0 @@ "main": "lexer.js",

@@ -7,5 +7,5 @@ # CJS Module Lexer

Outputs the list of named exports (`exports.name = ...`), whether the `__esModule` interop flag is used, and possible module reexports (`module.exports = require('...')`).
Outputs the list of named exports (`exports.name = ...`) and possible module reexports (`module.exports = require('...')`), including the common transpiler variations of these cases.
For an example of the performance, Angular 1 (720KiB) is fully parsed in 5ms, in comparison to the fastest JS parser, Acorn which takes over 100ms.
Forked from https://github.com/guybedford/es-module-lexer.

@@ -58,3 +58,3 @@ _Comprehensively handles the JS language grammar while remaining small and fast. - ~90ms per MB of JS cold and ~15ms per MB of JS warm, [see benchmarks](#benchmarks) for more info._

The Wasm build is around 1.5x faster.
The Wasm build is around 1.5x faster and without a cold start.

@@ -114,91 +114,122 @@ ### Grammar

* The returned export names are the matched `IDENTIFIER` and `IDENTIFIER_STRING` slots for all `EXPORTS_MEMBER`, `EXPORTS_DEFINE` and `EXPORTS_LITERAL` matches.
* The reexport specifiers are taken to be the `STRING_LITERAL` slots of all top-level `MODULE_EXPORTS_ASSIGN` and `EXPORT_STAR` `REQUIRE` matches as well as all `EXPORTS_ASSIGN` matches whose `IDENTIFIER` also matches the first `IDENTIFIER` in `EXPORT_STAR_LIB`
* The reexport specifiers are taken to be the `STRING_LITERAL` slots of all `MODULE_EXPORTS_ASSIGN` as well as all _top-level_ `EXPORT_STAR` `REQUIRE` matches and `EXPORTS_ASSIGN` matches whose `IDENTIFIER` also matches the first `IDENTIFIER` in `EXPORT_STAR_LIB`.
### Not Supported
### Parsing Examples
#### No scope analysis:
#### Named Exports Parsing
The basic matching rules for named exports are `exports.name`, `exports['name']` or `Object.defineProperty(exports, 'name', ...)`. This matching is done without scope analysis and regardless of the expression position:
```js
// "a" WILL be detected as an export
// DETECTS EXPORTS: a, b, c
(function (exports) {
exports.a = 'a';
})(notExports);
// "b" WONT be detected as an export
(function (m) {
m.a = 'a';
exports['b'] = 'b';
Object.defineProperty(exports, 'c', { value: 'c' });
})(exports);
```
#### `module.exports` require assignment only handled at the base-level
Because there is no scope analysis, the above detection may overclassify:
```js
// OK
module.exports = require('./a.js');
// DETECTS EXPORTS: a, b, c
(function (exports, Object) {
exports.a = 'a';
exports['b'] = 'b';
if (false)
Object.defineProperty(exports, 'c', { value: 'c' });
})(NOT_EXPORTS, NOT_OBJECT);
```
// OK
if (condition)
module.exports = require('./b.js');
It will in turn underclassify in cases where the identifiers are renamed:
// NOT OK -> nested top-level detections not implemented
if (condition) {
module.exports = require('./c.js');
}
(function () {
module.exports = require('./d.js');
})();
```js
// DETECTS: NO EXPORTS
(function (e, defineProperty) {
e.a = 'a';
e['b'] = 'b';
defineProperty(e, 'c', { value: 'c' });
})(exports, defineProperty);
```
#### No object expression parsing
#### Exports Object Assignment
A best-effort is made to detect `module.exports` object assignments, but because this is not a full parser, arbitrary expressions are not handled in the
object parsing process.
Simple object definitions are supported:
```js
// These WONT be detected as exports
Object.defineProperties(exports, {
a: { value: 'a' },
b: { value: 'b' }
});
// DETECTS EXPORTS: a, b, c
module.exports = {
a,
b: 'c',
c: c
};
```
Object properties that are not identifiers or string expressions will bail out of the object detection:
```js
// DETECTS EXPORTS: a, b
module.exports = {
// These WILL be detected as exports
a: a,
b: b,
// This WILL be detected as an export
e: require('d'),
// These WONT be detected as exports
// because the object parser stops on the non-identifier
// expression "require('d')"
f: 'f'
a,
b: require('c'),
c: "not detected since require('c') above bails the object detection"
}
```
#### Only specific transpiler-style star export patterns match
`Object.defineProperties` is not currently supported either.
#### module.exports reexport assignment
Any `module.exports = require('mod')` assignment is detected as a reexport:
```js
// './x' detected as star export
var x = require('./x');
Object.keys(x).forEach(function (k) {
if (k !== 'default') Object.defineProperty(exports, k, {
enumerable: true,
get: function () {
return x[k];
}
});
});
// DETECTS REEXPORTS: a, b, c
module.exports = require('a');
(module => module.exports = require('b'))(NOT_MODULE);
if (false) module.exports = require('c');
```
// './y' detected as star export
let y = require('./y');
Object.keys(y).forEach(function (kk) {
if (kk !== 'default') exports[kk] = y[kk];
As a result, the total list of exports would be inferred as the union of all of these reexported modules, which can lead to possible over-classification.
#### Transpiler Re-exports
For named exports, transpiler output works well with the rules described above.
But for star re-exports, special care is taken to support common patterns of transpiler outputs from Babel and TypeScript as well as bundlers like RollupJS.
These reexport and star reexport patterns are restricted to only be detected at the top-level as provided by the direct output of these tools.
For example, `export * from 'external'` is output by Babel as:
```js
"use strict";
exports.__esModule = true;
var _external = require("external");
Object.keys(_external).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
exports[key] = _external[key];
});
```
// './z' NOT detected as star export
let z = require('./z');
for (const key of Object.keys(x)) {
exports[key] = x[key];
Where the `var _external = require("external")` is specifically detected as well as the `Object.keys(_external)` statement, down to the exact
for of that entire expression including minor variations of the output. The `_external` and `key` identifiers are carefully matched in this
detection.
Similarly for TypeScript, `export * from 'external'` is output as:
```js
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("external"));
```
These patterns can be updated over time to match modern transpiler outputs.
Where the `__export(require("external"))` statement is explicitly detected as a reexport, including variations `tslib.__export` and `__exportStar`.

@@ -209,3 +240,3 @@ ### Environment Support

### Grammar Support
### JS Grammar Support

@@ -222,2 +253,4 @@ * Token state parses all line comments, block comments, strings, template strings, blocks, parens and punctuators.

JS Build:
```

@@ -228,29 +261,60 @@ Module load time

test/samples/*.js (3635 KiB)
> 318ms
> 333ms
Warm Runs (average of 25 runs)
test/samples/angular.js (1410 KiB)
> 18.64ms
> 16.48ms
test/samples/angular.min.js (303 KiB)
> 5.96ms
> 5.36ms
test/samples/d3.js (553 KiB)
> 8.88ms
> 8.32ms
test/samples/d3.min.js (250 KiB)
> 4.88ms
> 4.28ms
test/samples/magic-string.js (34 KiB)
> 1ms
test/samples/magic-string.min.js (20 KiB)
> 0.32ms
> 0.36ms
test/samples/rollup.js (698 KiB)
> 11.68ms
> 10.48ms
test/samples/rollup.min.js (367 KiB)
> 7.84ms
> 6.64ms
Warm Runs, All Samples (average of 25 runs)
test/samples/*.js (3635 KiB)
> 54.48ms
> 49.28ms
```
### Wasm Build
Wasm Build:
```
Module load time
> 11ms
Cold Run, All Samples
test/samples/*.js (3635 KiB)
> 48ms
Warm Runs (average of 25 runs)
test/samples/angular.js (1410 KiB)
> 12.32ms
test/samples/angular.min.js (303 KiB)
> 3.76ms
test/samples/d3.js (553 KiB)
> 6.08ms
test/samples/d3.min.js (250 KiB)
> 3ms
test/samples/magic-string.js (34 KiB)
> 0.24ms
test/samples/magic-string.min.js (20 KiB)
> 0ms
test/samples/rollup.js (698 KiB)
> 7.2ms
test/samples/rollup.min.js (367 KiB)
> 4.2ms
Warm Runs, All Samples (average of 25 runs)
test/samples/*.js (3635 KiB)
> 33.6ms
```
### Wasm Build Steps
To build download the WASI SDK from https://github.com/CraneStation/wasi-sdk/releases.

@@ -257,0 +321,0 @@

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc