susee 1.0.1 → 1.0.3

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/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  </div>
7
7
  <!-- markdownlint-enable MD033 -->
8
8
 
9
- [![npm version](https://img.shields.io/npm/v/susee)](https://www.npmjs.com/package/susee) [![license](https://img.shields.io/npm/l/susee)](LICENSE)
9
+ [![npm version](https://img.shields.io/npm/v/susee)](https://www.npmjs.com/package/susee) [![license](https://img.shields.io/npm/l/susee)](LICENSE) [![Socket Badge](https://badge.socket.dev/npm/package/susee/1.0.1)](https://badge.socket.dev/npm/package/susee/1.0.1) [![codecov](https://codecov.io/gh/phothinmg/susee/graph/badge.svg?token=6240Y3L0V1)](https://codecov.io/gh/phothinmg/susee)
10
10
 
11
11
  ## Overview
12
12
 
package/dist/index.cjs CHANGED
@@ -5,4 +5,4 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
5
5
  this file except in compliance with the License. You may obtain a copy of the
6
6
  License at http://www.apache.org/licenses/LICENSE-2.0
7
7
  ***************************************************************************** */
8
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,i,s){void 0===s&&(s=i);var a=Object.getOwnPropertyDescriptor(t,i);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,s,a)}:function(e,t,i,s){void 0===s&&(s=i),e[s]=t[i]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[t.length]=i);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var i={};if(null!=t)for(var s=e(t),a=0;a<s.length;a++)"default"!==s[a]&&__createBinding(i,t,s[a]);return __setModuleDefault(i,t),i}}(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.susee=susee;const tsconfig_1=__importDefault(require("@suseejs/tsconfig")),dependencies_1=__importDefault(require("@suseejs/dependencies")),node_fs_1=__importDefault(require("node:fs")),node_path_1=__importDefault(require("node:path")),resolves_1=__importDefault(require("@phothinmaung/resolves")),tcolor_1=__importDefault(require("@suseejs/tcolor")),transformer_1=__importDefault(require("@suseejs/transformer")),typescript_1=__importDefault(require("typescript")),utils_1=__importDefault(require("@suseejs/utils")),node_buffer_1=require("node:buffer");function splitCamelCase(e){return e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/(_|-|\/)([a-z] || [A-Z])/g," ").replace(/([A-Z])/g,e=>e.toLowerCase()).replace(/^([a-z])/,e=>e.toUpperCase())}function uniqueName(){const e=new Map,t={setPrefix({key:i,value:s}){if(e.has(i))throw console.warn(`${i} already exist`),new Error;return e.set(i,[s,0]),t},getName(t,i){const[s,a]=e.get(t)||[],r=s?`${s}${i}_${(a??0)+1}`:`$nyein${i}_${(a??0)+1}`;return e.set(t,[s??"$nyein",(a??0)+1]),r},getPrefix(t){const[i]=e.get(t)||[];return i}};return t}const exportDefaultExportNameMap=[],exportDefaultImportNameMap=[],prefixKey="AnonymousName",genName=uniqueName().setPrefix({key:prefixKey,value:"__anonymous__"});function anonymousCallExpressionHandler(e){return({file:t,content:i,...s})=>{const a=typescript_1.default.createSourceFile(t,i,typescript_1.default.ScriptTarget.Latest,!0),r=(0,transformer_1.default)(e=>{const{factory:i}=e,s=a=>{if(typescript_1.default.isCallExpression(a)){if(typescript_1.default.isIdentifier(a.expression)){const e=a.expression.text,s=exportDefaultImportNameMap.find(i=>i.base===e&&i.file===t);if(s)return i.updateCallExpression(a,i.createIdentifier(s.newName),a.typeArguments,a.arguments)}}else if(typescript_1.default.isPropertyAccessExpression(a)){if(typescript_1.default.isIdentifier(a.expression)){const e=a.expression.text,s=exportDefaultImportNameMap.find(i=>i.base===e&&i.file===t);if(s)return i.updatePropertyAccessExpression(a,i.createIdentifier(s.newName),a.name)}}else if(typescript_1.default.isNewExpression(a)){if(typescript_1.default.isIdentifier(a.expression)){const e=a.expression.text,s=exportDefaultImportNameMap.find(i=>i.base===e&&i.file===t);if(s)return i.updateNewExpression(a,i.createIdentifier(s.newName),a.typeArguments,a.arguments)}}else if(typescript_1.default.isExportSpecifier(a)&&typescript_1.default.isIdentifier(a.name)){const e=a.name.text,s=exportDefaultImportNameMap.find(i=>i.base===e&&i.file===t);if(s)return i.updateExportSpecifier(a,a.isTypeOnly,a.propertyName,i.createIdentifier(s.newName))}return typescript_1.default.visitEachChild(a,s,e)};return e=>typescript_1.default.visitNode(e,s)},a,e);return{file:t,content:r,...s}}}function anonymousExportHandler(e){return({file:t,content:i,...s})=>{const a=typescript_1.default.createSourceFile(t,i,typescript_1.default.ScriptTarget.Latest,!0),r=(0,transformer_1.default)(e=>{const{factory:i}=e,s=r=>{const n=node_path_1.default.basename(t).split(".")[0];if((typescript_1.default.isFunctionDeclaration(r)||typescript_1.default.isClassDeclaration(r))&&void 0===r.name){let e=!1,t=!1;if(r.modifiers?.forEach(i=>{i.kind===typescript_1.default.SyntaxKind.ExportKeyword&&(e=!0),i.kind===typescript_1.default.SyntaxKind.DefaultKeyword&&(t=!0)}),e&&t){const e=genName.getName(prefixKey,n);if(exportDefaultExportNameMap.push({base:e,file:n,newName:e,isEd:!0}),typescript_1.default.isFunctionDeclaration(r))return i.updateFunctionDeclaration(r,r.modifiers,r.asteriskToken,i.createIdentifier(e),r.typeParameters,r.parameters,r.type,r.body);if(typescript_1.default.isClassDeclaration(r))return i.updateClassDeclaration(r,r.modifiers,i.createIdentifier(e),r.typeParameters,r.heritageClauses,r.members)}}else if(typescript_1.default.isExportAssignment(r)&&!r.name&&!r.isExportEquals){if(typescript_1.default.isArrowFunction(r.expression)){const e=genName.getName(prefixKey,n),t=i.createArrowFunction(r.expression.modifiers,r.expression.typeParameters,r.expression.parameters,r.expression.type,r.expression.equalsGreaterThanToken,r.expression.body),s=i.createVariableDeclaration(i.createIdentifier(e),r.expression.exclamationToken,r.expression.type,t),o=i.createVariableDeclarationList([s],typescript_1.default.NodeFlags.Const),c=i.createVariableStatement(r.expression.modifiers,o),p=i.createExportAssignment(void 0,void 0,i.createIdentifier(e));return exportDefaultExportNameMap.push({base:e,file:n,newName:e,isEd:!0}),i.updateSourceFile(a,[c,p],a.isDeclarationFile,a.referencedFiles,a.typeReferenceDirectives,a.hasNoDefaultLib,a.libReferenceDirectives)}if(typescript_1.default.isObjectLiteralExpression(r.expression)){const e=genName.getName(prefixKey,n),t=i.createVariableDeclaration(i.createIdentifier(e),void 0,void 0,r.expression),s=i.createVariableDeclarationList([t],typescript_1.default.NodeFlags.Const),o=i.createVariableStatement(void 0,s),c=i.createExportAssignment(void 0,void 0,i.createIdentifier(e));return exportDefaultExportNameMap.push({base:e,file:n,newName:e,isEd:!0}),i.updateSourceFile(a,[o,c],a.isDeclarationFile,a.referencedFiles,a.typeReferenceDirectives,a.hasNoDefaultLib,a.libReferenceDirectives)}if(typescript_1.default.isArrayLiteralExpression(r.expression)){const e=genName.getName(prefixKey,n),t=i.createArrayLiteralExpression(r.expression.elements,!0),s=i.createVariableDeclaration(i.createIdentifier(e),void 0,void 0,t),o=i.createVariableDeclarationList([s],typescript_1.default.NodeFlags.Const),c=i.createVariableStatement(void 0,o),p=i.createExportAssignment(void 0,void 0,i.createIdentifier(e));return exportDefaultExportNameMap.push({base:e,file:n,newName:e,isEd:!0}),i.updateSourceFile(a,[c,p],a.isDeclarationFile,a.referencedFiles,a.typeReferenceDirectives,a.hasNoDefaultLib,a.libReferenceDirectives)}if(typescript_1.default.isStringLiteral(r.expression)){const e=genName.getName(prefixKey,n),t=i.createStringLiteral(r.expression.text),s=i.createVariableDeclaration(i.createIdentifier(e),void 0,void 0,t),o=i.createVariableDeclarationList([s],typescript_1.default.NodeFlags.Const),c=i.createVariableStatement(void 0,o),p=i.createExportAssignment(void 0,void 0,i.createIdentifier(e));return exportDefaultExportNameMap.push({base:e,file:n,newName:e,isEd:!0}),i.updateSourceFile(a,[c,p],a.isDeclarationFile,a.referencedFiles,a.typeReferenceDirectives,a.hasNoDefaultLib,a.libReferenceDirectives)}if(typescript_1.default.isNumericLiteral(r.expression)){const e=genName.getName(prefixKey,n),t=i.createNumericLiteral(r.expression.text),s=i.createVariableDeclaration(i.createIdentifier(e),void 0,void 0,t),o=i.createVariableDeclarationList([s],typescript_1.default.NodeFlags.Const),c=i.createVariableStatement(void 0,o),p=i.createExportAssignment(void 0,void 0,i.createIdentifier(e));return exportDefaultExportNameMap.push({base:e,file:n,newName:e,isEd:!0}),i.updateSourceFile(a,[c,p],a.isDeclarationFile,a.referencedFiles,a.typeReferenceDirectives,a.hasNoDefaultLib,a.libReferenceDirectives)}}return typescript_1.default.visitEachChild(r,s,e)};return e=>typescript_1.default.visitNode(e,s)},a,e);return{file:t,content:r,...s}}}function anonymousImportHandler(e){return({file:t,content:i,...s})=>{const a=typescript_1.default.createSourceFile(t,i,typescript_1.default.ScriptTarget.Latest,!0),r=(0,transformer_1.default)(e=>{const{factory:i}=e,s=r=>{if(typescript_1.default.isImportDeclaration(r)){const e=r.moduleSpecifier.getText(a),s=node_path_1.default.basename(e).split(".")[0].trim();if(r.importClause?.name&&typescript_1.default.isIdentifier(r.importClause.name)){const e=r.importClause.name.text.trim(),a=exportDefaultExportNameMap.find(e=>e.file===s);if(a){exportDefaultImportNameMap.push({base:e,file:t,newName:a.newName,isEd:!0});const s=i.updateImportClause(r.importClause,r.importClause.phaseModifier,i.createIdentifier(a.newName),r.importClause.namedBindings);return i.updateImportDeclaration(r,r.modifiers,s,r.moduleSpecifier,r.attributes)}}}return typescript_1.default.visitEachChild(r,s,e)};return e=>typescript_1.default.visitNode(e,s)},a,e);return{file:t,content:r,...s}}}const anonymousHandler=async(e,t)=>{const i=(0,resolves_1.default)([[anonymousExportHandler,t],[anonymousImportHandler,t],[anonymousCallExpressionHandler,t]]),s=await i.concurrent();for(const t of s)e=e.map(t);return e};function duplicates(e,t,i){const s=typescript_1.default.createSourceFile(t,e,typescript_1.default.ScriptTarget.Latest,!0),a=new Map;for(const e of s.statements){if(!typescript_1.default.isImportDeclaration(e)||!e.importClause)continue;const t=e.importClause;if(t.name&&typescript_1.default.isIdentifier(t.name)){const e=t.name.text;a.set(e,(a.get(e)||[]).concat({name:e,node:t}))}else if(t.namedBindings&&typescript_1.default.isNamespaceImport(t.namedBindings)&&typescript_1.default.isIdentifier(t.namedBindings.name)){const e=t.namedBindings.name.text;a.set(e,(a.get(e)||[]).concat({name:e,node:t.namedBindings}))}else if(t.namedBindings&&typescript_1.default.isNamedImports(t.namedBindings))for(const e of t.namedBindings.elements)if(typescript_1.default.isIdentifier(e.name)){const t=e.name.text;a.set(t,(a.get(t)||[]).concat({name:t,node:e}))}}const r=new Map,n=uniqueName();n.setPrefix({key:"DuplicateImport",value:"__dup__"});for(const[e,t]of a.entries())if(t.length>1)for(let i=1;i<t.length;i++){const t=n.getName("DuplicateImport",`${e}_`);r.set(`${e}::${i}`,t),r.set(`${e}::occurrence_${i}`,t)}const o=new Map;for(const[e,t]of a.entries())if(t.length>1)for(let i=1;i<t.length;i++){const s=t[i];s?.node&&o.set(s.node.pos,r.get(`${e}::${i}`))}return(0,transformer_1.default)(e=>{const{factory:t}=e,i=s=>{if(typescript_1.default.isImportDeclaration(s)&&s.importClause){const e=s.importClause;let i=!1,a=e;if(e.name&&typescript_1.default.isIdentifier(e.name)){e.pos;const s=o.get(e.pos);s&&(a=t.updateImportClause(e,e.isTypeOnly,t.createIdentifier(s),e.namedBindings),i=!0)}if(e.namedBindings&&typescript_1.default.isNamespaceImport(e.namedBindings)&&typescript_1.default.isIdentifier(e.namedBindings.name)){const s=o.get(e.namedBindings.pos);if(s){const e=t.createNamespaceImport(t.createIdentifier(s));a=t.updateImportClause(a,a.isTypeOnly,a.name,e),i=!0}}if(e.namedBindings&&typescript_1.default.isNamedImports(e.namedBindings)){const s=e.namedBindings.elements.map(e=>{if(typescript_1.default.isIdentifier(e.name)){const s=o.get(e.pos);if(s)return i=!0,t.updateImportSpecifier(e,e.isTypeOnly,e.propertyName,t.createIdentifier(s))}return e});if(i){const e=t.createNamedImports(s);a=t.updateImportClause(a,a.isTypeOnly,a.name,e)}}if(i)return t.updateImportDeclaration(s,s.modifiers,a,s.moduleSpecifier,s.assertClause)}if(typescript_1.default.isIdentifier(s)){const e=s.text;if(!(e=>{const t=e.parent;if(!t)return!1;switch(t.kind){case typescript_1.default.SyntaxKind.ImportSpecifier:case typescript_1.default.SyntaxKind.NamespaceImport:case typescript_1.default.SyntaxKind.ImportClause:case typescript_1.default.SyntaxKind.VariableDeclaration:case typescript_1.default.SyntaxKind.FunctionDeclaration:case typescript_1.default.SyntaxKind.ClassDeclaration:case typescript_1.default.SyntaxKind.InterfaceDeclaration:case typescript_1.default.SyntaxKind.TypeAliasDeclaration:case typescript_1.default.SyntaxKind.EnumDeclaration:case typescript_1.default.SyntaxKind.Parameter:case typescript_1.default.SyntaxKind.PropertyDeclaration:case typescript_1.default.SyntaxKind.MethodDeclaration:case typescript_1.default.SyntaxKind.BindingElement:return!0;default:return!1}})(s)){if(s.parent&&typescript_1.default.isPropertyAccessExpression(s.parent)&&s.parent.name===s)return s;const i=a.get(e);if(i&&i.length>1)for(let s=1;s<i.length;s++){const i=r.get(`${e}::occurrence_${s}`)||r.get(`${e}::${s}`);if(i)return t.createIdentifier(i)}}}return typescript_1.default.visitEachChild(s,i,e)};return e=>typescript_1.default.visitNode(e,i)},s,i)}function mergeImportsStatement(e){const t=new Map,i=new Map,s=new Map,a=new Map,r=new Map;for(const n of e){const e=n.match(/import\s+(?:type\s+)?(?:(.*?)\s+from\s+)?["']([^"']+)["'];?/);if(!e)continue;const[,o,c]=e,p=n.includes("import type"),l=c;if(!o){const e=n.match(/import\s+(?:type\s+)?(\w+)/);if(e){const t=e[1],i=p?a:s;i.has(l)||i.set(l,new Set),i.get(l)?.add(t)}continue}if(o.startsWith("{")){const e=p?i:t;e.has(l)||e.set(l,new Set);o.replace(/[{}]/g,"").split(",").map(e=>e.trim()).filter(Boolean).forEach(t=>e.get(l)?.add(t))}else if(o.startsWith("* as")){const e=o.match(/\*\s+as\s+(\w+)/);if(e){const t=e[1];r.has(l)||r.set(l,new Set),r.get(l)?.add(t)}}else{const e=p?a:s;e.has(l)||e.set(l,new Set),e.get(l)?.add(o.trim())}}const n=[];for(const[e,s]of t){const t=i.get(e)||new Set,a=new Set([...s]);for(const e of t)s.has(e)||a.add(e);if(a.size>0){const t=Array.from(a).sort().join(", ");n.push(`import { ${t} } from "${e}";`)}}for(const[e,s]of i)if(!t.has(e)&&s.size>0){const t=Array.from(s).sort().join(", ");n.push(`import type { ${t} } from "${e}";`)}for(const[e,t]of s){const i=a.get(e)||new Set,s=new Set([...t]);for(const e of i)t.has(e)||s.add(e);if(s.size>0){const t=Array.from(s).join(", ");n.push(`import ${t} from "${e}";`)}}for(const[e,t]of a)if(!s.has(e)&&t.size>0){const i=Array.from(t).join(", ");n.push(`import type ${i} from "${e}";`)}for(const[e,t]of r)if(t.size>0){const i=Array.from(t).join(", ");n.push(`import * as ${i} from "${e}";`)}return n.sort()}function esmExportRemoveHandler(e){return({file:t,content:i,...s})=>{const a=typescript_1.default.createSourceFile(t,i,typescript_1.default.ScriptTarget.Latest,!0);return{file:t,content:(0,transformer_1.default)(e=>{const{factory:t}=e,i=s=>{if(!utils_1.default.isInsideNamespace(s)&&(typescript_1.default.isFunctionDeclaration(s)||typescript_1.default.isClassDeclaration(s)||typescript_1.default.isInterfaceDeclaration(s)||typescript_1.default.isTypeAliasDeclaration(s)||typescript_1.default.isEnumDeclaration(s)||typescript_1.default.isVariableStatement(s))){const e=s.modifiers?.filter(e=>e.kind!==typescript_1.default.SyntaxKind.ExportKeyword&&e.kind!==typescript_1.default.SyntaxKind.DefaultKeyword);if(e?.length!==s.modifiers?.length){if(typescript_1.default.isFunctionDeclaration(s))return t.updateFunctionDeclaration(s,e,s.asteriskToken,s.name,s.typeParameters,s.parameters,s.type,s.body);if(typescript_1.default.isClassDeclaration(s))return t.updateClassDeclaration(s,e,s.name,s.typeParameters,s.heritageClauses,s.members);if(typescript_1.default.isInterfaceDeclaration(s))return t.updateInterfaceDeclaration(s,e,s.name,s.typeParameters,s.heritageClauses,s.members);if(typescript_1.default.isTypeAliasDeclaration(s))return t.updateTypeAliasDeclaration(s,e,s.name,s.typeParameters,s.type);if(typescript_1.default.isEnumDeclaration(s))return t.updateEnumDeclaration(s,e,s.name,s.members);if(typescript_1.default.isVariableStatement(s))return t.updateVariableStatement(s,e,s.declarationList)}}if(typescript_1.default.isExportDeclaration(s))return t.createEmptyStatement();if(typescript_1.default.isExportAssignment(s)){const e=s.expression;if(typescript_1.default.isIdentifier(e))return t.createEmptyStatement()}return typescript_1.default.visitEachChild(s,i,e)};return e=>typescript_1.default.visitNode(e,i)},a,e),...s}}}let properties=[];const typeObj={},typesNames=[];function findProperty(e){const t=[];return typescript_1.default.isPropertyAccessExpression(e)&&typescript_1.default.isIdentifier(e.expression)&&t.push(e.expression.text),e.forEachChild(e=>findProperty(e)),t}function importAllRemoveHandler(e,t){return({file:i,content:s,...a})=>{const r=typescript_1.default.createSourceFile(i,s,typescript_1.default.ScriptTarget.Latest,!0),n=new Set;for(const e of r.statements)if(typescript_1.default.isImportEqualsDeclaration(e)&&e.isTypeOnly){const t=e.moduleReference;typescript_1.default.isExternalModuleReference(t)&&typescript_1.default.isStringLiteral(t.expression)&&n.add(e.name.text)}const o=(0,transformer_1.default)(t=>{const{factory:s}=t,a=o=>{properties=[...properties,...findProperty(o)];const c={isNamespace:!1,isTypeOnly:!1,isTypeNamespace:!1,source:"",importedString:void 0,importedObject:void 0};if(typescript_1.default.isTypeReferenceNode(o)&&typescript_1.default.isQualifiedName(o.typeName)&&typescript_1.default.isIdentifier(o.typeName.left)&&typescript_1.default.isIdentifier(o.typeName.right)){const e=o.typeName.left.text,t=o.typeName.right.text;if(typesNames.push(e),e in typeObj?typeObj[e]?.push(t):typeObj[e]=[t],utils_1.default.checkModuleType(r,i).isCommonJs&&"ts"!==e&&!n.has(e))return s.updateTypeReferenceNode(o,s.createIdentifier(t),void 0)}if(typescript_1.default.isImportDeclaration(o)){const t=o.getText(r);return e.push(t),s.createEmptyStatement()}if(typescript_1.default.isImportEqualsDeclaration(o)){const t=o.name.text,i=o.moduleReference;let a;if(o.isTypeOnly&&(c.isTypeOnly=!0),c.importedString=t,c.isTypeOnly||properties.includes(t)&&(c.isNamespace=!0),typescript_1.default.isExternalModuleReference(i)&&typescript_1.default.isStringLiteral(i.expression)&&(c.source=i.expression.text),c.importedString&&!c.importedObject&&(a=c.isTypeOnly?n.has(c.importedString)?`import type * as ${c.importedString} from "${c.source}";`:typesNames.includes(c.importedString)?`import type { ${typeObj[c.importedString]?.join(",")} } from "${c.source}";`:`import type ${c.importedString} from "${c.source}";`:c.isNamespace&&c.source&&"typescript"!==c.source?`import * as ${c.importedString} from "${c.source}";`:`import ${c.importedString} from "${c.source}";`),!c.importedString&&c.importedObject&&(a=`import { ${c.importedObject.join(", ")} } from "${c.source}";`),a)return e.push(a),s.createEmptyStatement()}if(typescript_1.default.isVariableStatement(o)){const t=o.declarationList.declarations;if(1===t.length){const i=t[0];if(i.initializer&&typescript_1.default.isCallExpression(i.initializer)&&typescript_1.default.isIdentifier(i.initializer.expression)&&"require"===i.initializer.expression.escapedText){const t=i.initializer.arguments[0];if(typescript_1.default.isStringLiteral(t)&&(c.source=t.text),typescript_1.default.isIdentifier(i.name)){const e=i.name.text;c.importedString=e,properties.includes(e)&&(c.isNamespace=!0)}else if(typescript_1.default.isObjectBindingPattern(i.name)){const e=[];for(const t of i.name.elements)typescript_1.default.isIdentifier(t.name)&&e.push(t.name.text);e.length>0&&(c.importedObject=e)}let a;if(c.importedString&&!c.importedObject&&(a=c.isNamespace?`import * as ${c.importedString} from "${c.source}";`:`import ${c.importedString} from "${c.source}";`),!c.importedString&&c.importedObject&&(a=`import { ${c.importedObject.join(", ")} } from "${c.source}";`),a)return e.push(a),s.createEmptyStatement()}}}return typescript_1.default.visitEachChild(o,a,t)};return e=>typescript_1.default.visitNode(e,a)},r,t);return{file:i,content:o,...a}}}const removeHandlers=async(e,t)=>{const i=(0,resolves_1.default)([[importAllRemoveHandler,e,t],[esmExportRemoveHandler,t]]);return await i.series()};function collectBindingNames(e,t){typescript_1.default.isIdentifier(e)?t.push(e.text):(typescript_1.default.isObjectBindingPattern(e)||typescript_1.default.isArrayBindingPattern(e))&&e.elements.forEach(e=>{typescript_1.default.isBindingElement(e)&&e.name&&collectBindingNames(e.name,t)})}function clearUnusedCode(e,t,i,s={treatExportsAsUsed:!0}){const a=typescript_1.default.createSourceFile(t,e,typescript_1.default.ScriptTarget.Latest,!0),r=new Map,n=new Set,o=(e,t=!1)=>{const i=r.get(e);r.set(e,{exported:!!i?.exported||t})},c=e=>{if(typescript_1.default.isImportDeclaration(e)&&e.importClause){const t=e.importClause;t.name&&typescript_1.default.isIdentifier(t.name)&&o(t.name.text,!1),t.namedBindings&&(typescript_1.default.isNamedImports(t.namedBindings)?t.namedBindings.elements.forEach(e=>{typescript_1.default.isImportSpecifier(e)&&typescript_1.default.isIdentifier(e.name)&&o(e.name.text,!1)}):typescript_1.default.isNamespaceImport(t.namedBindings)&&typescript_1.default.isIdentifier(t.namedBindings.name)&&o(t.namedBindings.name.text,!1))}else if(typescript_1.default.isImportEqualsDeclaration(e)&&typescript_1.default.isIdentifier(e.name))o(e.name.text,!1);else if(typescript_1.default.isVariableStatement(e)){const t=e.modifiers?.some(e=>e.kind===typescript_1.default.SyntaxKind.ExportKeyword)??!1;e.declarationList.declarations.forEach(e=>{collectBindingNames(e.name,[]);const i=[];collectBindingNames(e.name,i),i.forEach(e=>o(e,t))})}else if(typescript_1.default.isFunctionDeclaration(e)&&e.name&&typescript_1.default.isIdentifier(e.name)){const t=e.modifiers?.some(e=>e.kind===typescript_1.default.SyntaxKind.ExportKeyword)??!1;o(e.name.text,t)}else if(typescript_1.default.isClassDeclaration(e)&&e.name&&typescript_1.default.isIdentifier(e.name)){const t=e.modifiers?.some(e=>e.kind===typescript_1.default.SyntaxKind.ExportKeyword)??!1;o(e.name.text,t)}if(typescript_1.default.isIdentifier(e)){const t=e.parent;typescript_1.default.isVariableDeclaration(t)&&t.name===e||typescript_1.default.isFunctionDeclaration(t)&&t.name===e||typescript_1.default.isClassDeclaration(t)&&t.name===e||typescript_1.default.isImportClause(t)&&t.name===e||typescript_1.default.isImportSpecifier(t)&&t.name===e||typescript_1.default.isNamespaceImport(t)&&t.name===e||typescript_1.default.isBindingElement(t)&&t.name===e||typescript_1.default.isParameter(t)&&t.name===e||n.add(e.text)}typescript_1.default.forEachChild(e,c)};c(a);const p=new Set;r.forEach((e,t)=>{n.has(t)||s.treatExportsAsUsed&&e.exported||p.add(t)});return(0,transformer_1.default)(e=>{const t=i=>{if(typescript_1.default.isImportDeclaration(i)&&i.importClause){const e=i.importClause,t=e.name&&typescript_1.default.isIdentifier(e.name)?e.name.text:void 0;let s;const a=[];e.namedBindings&&(typescript_1.default.isNamedImports(e.namedBindings)?e.namedBindings.elements.forEach(e=>{typescript_1.default.isImportSpecifier(e)&&typescript_1.default.isIdentifier(e.name)&&a.push(e)}):typescript_1.default.isNamespaceImport(e.namedBindings)&&typescript_1.default.isIdentifier(e.namedBindings.name)&&(s=e.namedBindings.name.text));const r=!!t&&!p.has(t),n=!!s&&!p.has(s),o=a.filter(e=>!p.has(e.name.text));if(!r&&!n&&0===o.length)return typescript_1.default.factory.createNotEmittedStatement(i);if(!r&&!!e.name||void 0!==s&&!n||o.length!==a.length){let e;e=o.length>0?typescript_1.default.factory.createNamedImports(o):n&&s?typescript_1.default.factory.createNamespaceImport(typescript_1.default.factory.createIdentifier(s)):void 0;const a=r&&t?typescript_1.default.factory.createIdentifier(t):void 0,c=typescript_1.default.factory.createImportClause(!1,a,e);return typescript_1.default.factory.updateImportDeclaration(i,i.modifiers,c,i.moduleSpecifier,i.assertClause)}return i}if((typescript_1.default.isFunctionDeclaration(i)||typescript_1.default.isClassDeclaration(i))&&i.name&&typescript_1.default.isIdentifier(i.name))return p.has(i.name.text)?typescript_1.default.factory.createNotEmittedStatement(i):i;if(typescript_1.default.isVariableStatement(i)){const e=[];i.declarationList.declarations.forEach(t=>collectBindingNames(t.name,e));return e.some(e=>!p.has(e))?i:typescript_1.default.factory.createNotEmittedStatement(i)}return typescript_1.default.visitEachChild(i,t,e)};return e=>typescript_1.default.visitNode(e,t)},a,i)}async function bundler(e){const t="."===e.exportPath?"Main":splitCamelCase(e.exportPath.slice(2));console.time(`${tcolor_1.default.cyan("Bundled")} -> ${tcolor_1.default.brightCyan(t)} ${tcolor_1.default.cyan("export path")}`);let i=e.depFiles;const s=e.rename,a=e.tsOptions.default,r=e.plugins;let n=[];if(r.length)for(let e of r)e="function"==typeof e?e():e,"dependency"===e.type&&(e.async?(i=await e.func(i,a),await utils_1.default.wait(1e3)):i=e.func(i,a));i=await anonymousHandler(i,a);const o=await removeHandlers(n,a);i=i.map(o[0]);const c=i.slice(0,-1).map(o[1]),p=i.slice(-1),l=/["']((?!\.\/|\.\.\/)[^"']+)["']/;n=n.filter(e=>l.test(e)),n=mergeImportsStatement(n);let d=`${n.join("\n").trim()}\n${c.map(e=>`${`//${node_path_1.default.relative(process.cwd(),e.file)}`}\n${e.content}`).join("\n").trim()}\n${p.map(e=>`${`//${node_path_1.default.relative(process.cwd(),e.file)}`}\n${e.content}`).join("\n").trim()}`;if(d=d.replace(/^s*;\s*$/gm,"").trim(),s&&(d=duplicates(d,e.fileName,a)),d=clearUnusedCode(d,e.fileName,a),r.length)for(let e of r)e="function"==typeof e?e():e,"pre-process"===e.type&&(d=e.async?await e.func(d):e.func(d));return console.timeEnd(`${tcolor_1.default.cyan("Bundled")} -> ${tcolor_1.default.brightCyan(t)} ${tcolor_1.default.cyan("export path")}`),{bundledContent:d,...e}}async function bundle(e){const t=[];for(const i of e.points){const e=await bundler(i);t.push(e)}return{points:t,allowUpdatePackageJson:e.allowUpdatePackageJson}}function createHost(e,t){const i={},s={getSourceFile:(i,s)=>{if(i===t)return typescript_1.default.createSourceFile(i,e,s)},writeFile:(e,t)=>{i[e]=t},getDefaultLibFileName:e=>typescript_1.default.getDefaultLibFilePath(e),getCurrentDirectory:()=>"",getDirectories:()=>[],fileExists:e=>e===t,readFile:i=>i===t?e:void 0,getCanonicalFileName:e=>e,useCaseSensitiveFileNames:()=>!0,getNewLine:()=>"\n"};return{createdFiles:i,host:s}}const isCjs=e=>e.commonjs&&e.commonjsTypes,isEsm=e=>e.esm&&e.esmTypes;function getExports(e,t){return isCjs(e)&&isEsm(e)?{[t]:{import:{types:`./${node_path_1.default.relative(process.cwd(),e.esmTypes)}`,default:`./${node_path_1.default.relative(process.cwd(),e.esm)}`},require:{types:`./${node_path_1.default.relative(process.cwd(),e.commonjsTypes)}`,default:`./${node_path_1.default.relative(process.cwd(),e.commonjs)}`}}}:isCjs(e)&&!isEsm(e)?{[t]:{require:{types:`./${node_path_1.default.relative(process.cwd(),e.commonjsTypes)}`,default:`./${node_path_1.default.relative(process.cwd(),e.commonjs)}`}}}:!isCjs(e)&&isEsm(e)?{[t]:{import:{types:`./${node_path_1.default.relative(process.cwd(),e.esmTypes)}`,default:`./${node_path_1.default.relative(process.cwd(),e.esm)}`}}}:{}}async function writePackage(e,t){let i=!0;"."!==t&&(i=!1);const s=typescript_1.default.sys.resolvePath("package.json"),a=node_fs_1.default.readFileSync(s,"utf8"),r=JSON.parse(a);let{name:n,version:o,description:c,main:p,module:l,type:d,types:f,exports:u,...m}=r;await utils_1.default.wait(500),d="module";let y={},_={},g={},h={};if(i)y=e.main?{main:node_path_1.default.relative(process.cwd(),e.main)}:{},_=e.module?{module:node_path_1.default.relative(process.cwd(),e.module)}:{},g=e.types?{types:node_path_1.default.relative(process.cwd(),e.types)}:{},h={exports:{...getExports(e,t)}};else{y=p?{main:p}:{},_=l?{module:l}:{},g=f?{types:f}:{};h={exports:{...u&&"object"==typeof u&&!Array.isArray(u)?{...u}:{},...getExports(e,t)}}}await utils_1.default.wait(1e3);const x={name:n,version:o,description:c,type:d,...y,...g,..._,...h,...m};utils_1.default.writeCompileFile(s,JSON.stringify(x,null,2))}class Compiler{constructor(e){this.object=e,this.files={commonjs:void 0,commonjsTypes:void 0,esm:void 0,esmTypes:void 0,main:void 0,module:void 0,types:void 0}}_isUpdate(){return this.object.allowUpdatePackageJson}async _commonjs(e){const t="."===e.exportPath,i=t?"Main":splitCamelCase(e.exportPath.slice(2));console.time(`${tcolor_1.default.cyan("Compiled CJS")} -> ${tcolor_1.default.brightCyan(i)} ${tcolor_1.default.cyan("export path")}`);const s=e.fileName,a=e.bundledContent,r=e.format,n=e.plugins,o=e.tsOptions.cjs,c=createHost(a,s),p=c.createdFiles,l=c.host;typescript_1.default.createProgram([s],o,l).emit(),Object.entries(p).map(async([e,i])=>{if(".js"===node_path_1.default.extname(e)&&n.length)for(let t of n)t="function"==typeof t?t():t,"post-process"===t.type&&(i=t.async?await t.func(i,e):t.func(i,e));this._isUpdate()&&(e.match(/.js/g)&&(this.files.commonjs=e.replace(/.js/g,".cjs")),e.match(/.d.ts/g)&&(this.files.commonjsTypes=e.replace(/.d.ts/g,".d.cts")),!t||"both"!==r&&"commonjs"!==r||(this.files.commonjs&&(this.files.main=this.files.commonjs),this.files.commonjsTypes&&(this.files.types=this.files.commonjsTypes))),e=(e=(e=e.replace(/.js/g,".cjs")).replace(/.map.js/g,".map.cjs")).replace(/.d.ts/g,".d.cts"),await utils_1.default.wait(500),"commonjs"===r&&await utils_1.default.clearFolder(node_path_1.default.dirname(e)),await utils_1.default.writeCompileFile(e,i)}),console.timeEnd(`${tcolor_1.default.cyan("Compiled CJS")} -> ${tcolor_1.default.brightCyan(i)} ${tcolor_1.default.cyan("export path")}`)}async _esm(e){const t="."===e.exportPath,i=t?"Main":splitCamelCase(e.exportPath.slice(2));console.time(`${tcolor_1.default.cyan("Compiled ESM")} -> ${tcolor_1.default.brightCyan(i)} ${tcolor_1.default.cyan("export path")}`);const s=e.fileName,a=e.bundledContent,r=e.format,n=e.plugins,o=e.tsOptions.esm,c=createHost(a,s),p=c.createdFiles,l=c.host;typescript_1.default.createProgram([s],o,l).emit(),Object.entries(p).map(async([e,i])=>{if(".js"===node_path_1.default.extname(e)&&n.length)for(let t of n)t="function"==typeof t?t():t,"post-process"===t.type&&(i=t.async?await t.func(i,e):t.func(i,e));this._isUpdate()&&(e.match(/.js/g)&&(this.files.esm=e.replace(/.js/g,".mjs")),e.match(/.d.ts/g)&&(this.files.esmTypes=e.replace(/.d.ts/g,".d.mts")),t&&"both"===r&&this.files.esm&&(this.files.module=this.files.esm)),e=(e=(e=e.replace(/.js/g,".mjs")).replace(/.map.js/g,".map.mjs")).replace(/.d.ts/g,".d.mts"),await utils_1.default.wait(500),"commonjs"!==r&&await utils_1.default.clearFolder(node_path_1.default.dirname(e)),await utils_1.default.writeCompileFile(e,i)}),console.timeEnd(`${tcolor_1.default.cyan("Compiled ESM")} -> ${tcolor_1.default.brightCyan(i)} ${tcolor_1.default.cyan("export path")}`)}async compile(){for(const e of this.object.points){switch(await utils_1.default.wait(500),e.format){case"commonjs":await this._commonjs(e),this._isUpdate()&&await writePackage(this.files,e.exportPath);break;case"esm":await this._esm(e),this._isUpdate()&&await writePackage(this.files,e.exportPath);break;case"both":await this._esm(e),await utils_1.default.wait(1e3),await this._commonjs(e),this._isUpdate()&&await writePackage(this.files,e.exportPath)}await utils_1.default.wait(500)}}}var checks;!function(e){function t(e,t){if(!t.noCheck){const i=e.map(e=>e.file);let s=!1;const a=typescript_1.default.createProgram(i,t);for(const e of i){const t=a.getSourceFile(e);t||(console.error(tcolor_1.default.magenta(`File not found: ${e}`)),typescript_1.default.sys.exit(1));const i=[...a.getSyntacticDiagnostics(t),...a.getSemanticDiagnostics(t),...a.getDeclarationDiagnostics(t)];if(i.length>0){const e={getCurrentDirectory:()=>process.cwd(),getCanonicalFileName:e=>e,getNewLine:()=>typescript_1.default.sys.newLine};console.error(typescript_1.default.formatDiagnosticsWithColorAndContext(i,e)),s=!0}}if(!s)return!0;typescript_1.default.sys.exit(1)}}function i(e){let t=0,i=0;for(const s of e)try{const a=typescript_1.default.createSourceFile(s.file,s.content,typescript_1.default.ScriptTarget.Latest,!0);let r=!1,n=!1;function o(e){if((typescript_1.default.isImportDeclaration(e)||typescript_1.default.isImportEqualsDeclaration(e)||typescript_1.default.isExportDeclaration(e)||typescript_1.default.isExportSpecifier(e)||typescript_1.default.isExportAssignment(e))&&(r=!0),(typescript_1.default.isVariableStatement(e)||typescript_1.default.isFunctionDeclaration(e)||typescript_1.default.isInterfaceDeclaration(e)||typescript_1.default.isTypeAliasDeclaration(e)||typescript_1.default.isEnumDeclaration(e)||typescript_1.default.isClassDeclaration(e))&&e.modifiers?.some(e=>e.kind===typescript_1.default.SyntaxKind.ExportKeyword)&&(r=!0),typescript_1.default.isCallExpression(e)&&typescript_1.default.isIdentifier(e.expression)&&"require"===e.expression.text&&e.arguments.length>0&&(n=!0),typescript_1.default.isPropertyAccessExpression(e)){const t=e.getText(a);(t.startsWith("module.exports")||t.startsWith("exports."))&&(n=!0)}typescript_1.default.forEachChild(e,o)}o(a),r&&!n?0:n&&!r?t++:r&&n&&0}catch(c){console.error(tcolor_1.default.magenta(`Error checking module format for ${s.file} : \n ${c}`)),i++}return i&&(console.error(tcolor_1.default.magenta("Unknown error when checking module types in the dependencies tree.")),typescript_1.default.sys.exit(1)),t&&(console.error(tcolor_1.default.magenta("The package detects CommonJs format in the dependencies tree, that unsupported.")),typescript_1.default.sys.exit(1)),!0}function s(e){const t=new Set([".ts",".mts",".cts",".tsx"]);for(const i of e){const e=node_path_1.default.extname(i.file);t.has(e)||(console.error(tcolor_1.default.magenta(`${i.file} has no valid TypeScript extension`)),typescript_1.default.sys.exit(1))}return!0}e.types=async function(e,i){const s=(0,resolves_1.default)([[t,e,i]]);return(await s.series())[0]},e.moduleAndExtension=async function(e){const t=(0,resolves_1.default)([[i,e],[s,e]]);return(await t.concurrent()).every(e=>!0===e)}}(checks||(checks={}));const getConfigPath=()=>{const e=["susee.config.ts","susee.config.js","susee.config.mjs"];let t;for(const i of e){const e=typescript_1.default.sys.resolvePath(i);if(typescript_1.default.sys.fileExists(e)){t=e;break}}return t};function checkEntries(e){e.length<1&&(console.error(tcolor_1.default.magenta("No entry found in susee.config file, at least one entry required")),typescript_1.default.sys.exit(1));const t={},i=[];for(const s of e){const e=s.exportPath;t[e]?i.push(`"${e}"`):t[e]=!0}i.length>0&&(console.error(tcolor_1.default.magenta(`Duplicate export paths/path (${i.join(",")}) found in your susee.config file , that will error for bundled output`)),typescript_1.default.sys.exit(1));for(const t of e)typescript_1.default.sys.fileExists(typescript_1.default.sys.resolvePath(t.entry))||(console.error(tcolor_1.default.magenta(`Entry file ${t.entry} dose not exists.`)),typescript_1.default.sys.exit(1))}async function getConfig(){const e=getConfigPath();void 0===e&&(console.error(tcolor_1.default.magenta('No susee.config file ("susee.config.ts", "susee.config.js", "susee.config.mjs") found')),typescript_1.default.sys.exit(1));const t=(await Promise.resolve(`${e}`).then(e=>__importStar(require(e)))).default,i=(0,resolves_1.default)([[checkEntries,t.entryPoints]]);await i.series(),await utils_1.default.wait(1e3);const s=[];for(const e of t.entryPoints){const i={entry:e.entry,exportPath:e.exportPath,format:e.format??"esm",tsconfigFilePath:e.tsconfigFilePath??void 0,renameDuplicates:e.renameDuplicates??!0,outDir:t.outDir??"dist"};s.push(i)}return{points:s,plugins:t.plugins??[],allowUpdatePackageJson:t.allowUpdatePackageJson??!0}}async function fileSizes(e){const t=await node_fs_1.default.promises.stat(e);return{logical:t.size,allocated:null!==t.blocks?512*t.blocks:null}}const checkExport=(e,t)=>!!(e.match(/export default .*/gm)||e.match(/export = .*/gm)&&t.match(/.cts/g));async function generateDependencies(e){const t=(await(0,dependencies_1.default)(e)).sort(),i=[];await utils_1.default.wait(1e3);for(const e of t){const t=typescript_1.default.sys.resolvePath(e),s=await node_fs_1.default.promises.readFile(t,"utf8"),a=await fileSizes(t),r=s.length,n=checkExport(s,t),o=typescript_1.default.createSourceFile(t,s,typescript_1.default.ScriptTarget.Latest,!0),c=utils_1.default.checkModuleType(o,t).isCommonJs?"cjs":"esm",p={file:t,content:s,length:r,includeDefExport:n,size:{logical:a.logical,allocated:a.allocated,utf8:(new TextEncoder).encode(s).length,buffBytes:node_buffer_1.Buffer.byteLength(s,"utf8")},type:c};i.push(p)}return i}class GetOptions{constructor(e){this._point=e,this._options={}}__init(){const e=new tsconfig_1.default(this._point.tsconfigFilePath),t="."===this._point.exportPath?this._point.outDir:`${this._point.outDir}/${this._point.exportPath.slice(2)}`;e.removeCompilerOption("rootDir"),e.removeCompilerOption("module"),e.editCompilerOptions({moduleResolution:typescript_1.default.ModuleResolutionKind.NodeNext,outDir:t}),this._options=e.getCompilerOptions()}__init2(){this.__init();let{types:e,lib:t,...i}=this._options;return e?e.includes("node")||(e=["node",...e]):e=["node"],t=t?[...new Set(["ESNext",...t])]:["ESNext"],{types:e,lib:t,...i}}get commonjs(){const e=this.__init2(),{module:t,...i}=e;return{module:typescript_1.default.ModuleKind.CommonJS,...i}}get esm(){const e=this.__init2(),{module:t,...i}=e;return{module:typescript_1.default.ModuleKind.ES2020,...i}}get default(){return this.__init2()}}function getOptions(e){return new GetOptions(e)}async function collections(){console.time(`${tcolor_1.default.cyan("Collected Data")}`);const e=await getConfig(),t=e.points,i=e.plugins,s=[];for(const e of t){const t=getOptions(e),a=await generateDependencies(e.entry);await checks.types(a,t.esm)||typescript_1.default.sys.exit(1);let r=!1;if(i.length)for(const e of i){const t="function"==typeof e?e():e;"dependency"===t.type&&t.name&&"@suseejs/plugin-commonjs"===t.name&&(r=!0)}if(!r){await checks.moduleAndExtension(a)||typescript_1.default.sys.exit(1)}const n={fileName:e.entry,exportPath:e.exportPath,format:e.format,rename:e.renameDuplicates,outDir:e.outDir,tsOptions:{cjs:t.commonjs,esm:t.esm,default:t.default},depFiles:a,plugins:i};s.push(n)}return console.timeEnd(`${tcolor_1.default.cyan("Collected Data")}`),{points:s,allowUpdatePackageJson:e.allowUpdatePackageJson}}async function susee(){console.info(`${tcolor_1.default.cyan("Susee Started")} : `),console.time(`${tcolor_1.default.cyan("Susee Done")}`);const e=await collections();await utils_1.default.wait(1e3);const t=await bundle(e);await utils_1.default.wait(1e3);const i=new Compiler(t);await i.compile(),console.timeEnd(`${tcolor_1.default.cyan("Susee Done")}`)}
8
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,i,s){void 0===s&&(s=i);var a=Object.getOwnPropertyDescriptor(t,i);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,s,a)}:function(e,t,i,s){void 0===s&&(s=i),e[s]=t[i]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[t.length]=i);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var i={};if(null!=t)for(var s=e(t),a=0;a<s.length;a++)"default"!==s[a]&&__createBinding(i,t,s[a]);return __setModuleDefault(i,t),i}}(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.susee=susee;const tsconfig_1=__importDefault(require("@suseejs/tsconfig")),node_fs_1=__importDefault(require("node:fs")),mhaehko_1=__importDefault(require("mhaehko")),node_path_1=__importDefault(require("node:path")),resolves_1=__importDefault(require("@phothinmaung/resolves")),tcolor_1=__importDefault(require("@suseejs/tcolor")),transformer_1=__importDefault(require("@suseejs/transformer")),typescript_1=__importDefault(require("typescript")),node_buffer_1=require("node:buffer"),depHooks=[],preProcessHooks=[];var utilities;!function(e){e.splitCamelCase=function(e){return e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/(_|-|\/)([a-z] || [A-Z])/g," ").replace(/([A-Z])/g,e=>e.toLowerCase()).replace(/^([a-z])/,e=>e.toUpperCase())},e.wait=e=>new Promise(t=>setTimeout(t,e)),e.checkModuleType=(e,t)=>{let i=0,s=0,a=0;try{let r=!1,n=!1;function o(t){if((typescript_1.default.isImportDeclaration(t)||typescript_1.default.isImportEqualsDeclaration(t)||typescript_1.default.isExportDeclaration(t)||typescript_1.default.isExportSpecifier(t)||typescript_1.default.isExportAssignment(t))&&(r=!0),(typescript_1.default.isVariableStatement(t)||typescript_1.default.isFunctionDeclaration(t)||typescript_1.default.isInterfaceDeclaration(t)||typescript_1.default.isTypeAliasDeclaration(t)||typescript_1.default.isEnumDeclaration(t)||typescript_1.default.isClassDeclaration(t))&&t.modifiers?.some(e=>e.kind===typescript_1.default.SyntaxKind.ExportKeyword)&&(r=!0),typescript_1.default.isCallExpression(t)&&typescript_1.default.isIdentifier(t.expression)&&"require"===t.expression.text&&t.arguments.length>0&&(n=!0),typescript_1.default.isPropertyAccessExpression(t)){const i=t.getText(e);(i.startsWith("module.exports")||i.startsWith("exports."))&&(n=!0)}typescript_1.default.forEachChild(t,o)}o(e),r&&!n?i++:n&&!r?s++:r&&n&&i++}catch(c){console.error(tcolor_1.default.magenta(`Error checking module format for ${t} : \n ${c}`)),a++}return a>0&&(console.error(tcolor_1.default.magenta("Error checking module format.")),typescript_1.default.sys.exit(1)),{isCommonJs:s>0,isEsm:i>0}},e.isJsxContent=function(e){const t=typescript_1.default.createSourceFile("file.tsx",e,typescript_1.default.ScriptTarget.Latest,!0,typescript_1.default.ScriptKind.TSX);let i=!1;return function e(t){typescript_1.default.isJsxElement(t)||typescript_1.default.isJsxSelfClosingElement(t)||typescript_1.default.isJsxFragment(t)?i=!0:typescript_1.default.forEachChild(t,e)}(t),i},e.writeCompileFile=async function(t,i){const s=typescript_1.default.sys.resolvePath(t),a=node_path_1.default.dirname(s);typescript_1.default.sys.directoryExists(a)||await node_fs_1.default.promises.mkdir(a,{recursive:!0}),await e.wait(500),await node_fs_1.default.promises.writeFile(s,i)},e.isInsideNamespace=e=>{let t=e.parent;for(;t;){if(typescript_1.default.isModuleDeclaration(t)&&t.flags===typescript_1.default.NodeFlags.Namespace)return!0;t=t.parent}return!1},e.clearFolder=async function(e){e=node_path_1.default.resolve(process.cwd(),e);try{const t=await node_fs_1.default.promises.readdir(e,{withFileTypes:!0});await Promise.all(t.map(t=>node_fs_1.default.promises.rm(node_path_1.default.join(e,t.name),{recursive:!0})))}catch(e){if("ENOENT"!==e.code)throw e}}}(utilities||(utilities={}));const getConfigPath=()=>{const e=["susee.config.ts","susee.config.js","susee.config.mjs"];let t;for(const i of e){const e=typescript_1.default.sys.resolvePath(i);if(typescript_1.default.sys.fileExists(e)){t=e;break}}return t};function checkEntries(e){e.length<1&&(console.error(tcolor_1.default.magenta("No entry found in susee.config file, at least one entry required")),typescript_1.default.sys.exit(1));const t={},i=[];for(const s of e){const e=s.exportPath;t[e]?i.push(`"${e}"`):t[e]=!0}i.length>0&&(console.error(tcolor_1.default.magenta(`Duplicate export paths/path (${i.join(",")}) found in your susee.config file , that will error for bundled output`)),typescript_1.default.sys.exit(1));for(const t of e)typescript_1.default.sys.fileExists(typescript_1.default.sys.resolvePath(t.entry))||(console.error(tcolor_1.default.magenta(`Entry file ${t.entry} dose not exists.`)),typescript_1.default.sys.exit(1))}async function finalSuseeConfig(){const e=getConfigPath();void 0===e&&(console.error(tcolor_1.default.magenta('No susee.config file ("susee.config.ts", "susee.config.js", "susee.config.mjs") found')),typescript_1.default.sys.exit(1));const t=(await Promise.resolve(`${e}`).then(e=>__importStar(require(e)))).default,i=(0,resolves_1.default)([[checkEntries,t.entryPoints]]);await i.series(),await utilities.wait(1e3);const s=t.outDir??"dist",a=[];for(const e of t.entryPoints){const t={entry:e.entry,exportPath:e.exportPath,format:e.format??"esm",tsconfigFilePath:e.tsconfigFilePath??void 0,renameDuplicates:e.renameDuplicates??!0,outDirPath:"."===e.exportPath?s:`${s}${e.exportPath.slice(1)}`};a.push(t)}return{points:a,plugins:t.plugins??[],allowUpdatePackageJson:t.allowUpdatePackageJson??!0,outDir:s}}class CompilerOptions{constructor(e){this._point=e,this._options={}}__init(){const e=new tsconfig_1.default(this._point.tsconfigFilePath);e.removeCompilerOption("rootDir"),e.removeCompilerOption("module"),e.editCompilerOptions({moduleResolution:typescript_1.default.ModuleResolutionKind.NodeNext,outDir:this._point.outDirPath}),this._options=e.getCompilerOptions()}__init2(){this.__init();let{types:e,lib:t,...i}=this._options;return e?e.includes("node")||(e=["node",...e]):e=["node"],t=t?[...new Set(["ESNext",...t])]:["ESNext"],{types:e,lib:t,...i}}get commonjs(){const e=this.__init2(),{module:t,...i}=e;return{module:typescript_1.default.ModuleKind.CommonJS,...i}}get esm(){const e=this.__init2(),{module:t,...i}=e;return{module:typescript_1.default.ModuleKind.ES2020,...i}}get default(){return this.__init2()}}function compilerOptions(e){return new CompilerOptions(e)}async function fileSizes(e){const t=await node_fs_1.default.promises.stat(e);return{logical:t.size,allocated:null!==t.blocks?512*t.blocks:null}}const checkExport=(e,t)=>!!(e.match(/export default .*/gm)||e.match(/export = .*/gm)&&t.match(/.cts/g));async function generateDependencies(e){const t=(await(0,mhaehko_1.default)(e)).sort(),i=[];for(const e of t){const t=typescript_1.default.sys.resolvePath(e),s=await node_fs_1.default.promises.readFile(t,"utf8"),a=node_path_1.default.extname(t),r=await fileSizes(t),n=s.length,o=checkExport(s,t),c=typescript_1.default.createSourceFile(t,s,typescript_1.default.ScriptTarget.Latest,!0),p=utilities.checkModuleType(c,t).isCommonJs?"cjs":"esm",l={file:t,content:s,length:n,includeDefExport:o,size:{logical:r.logical,allocated:r.allocated,utf8:(new TextEncoder).encode(s).length,buffBytes:node_buffer_1.Buffer.byteLength(s,"utf8")},moduleType:p,fileExt:a,isJsx:utilities.isJsxContent(s)};i.push(l)}return i}function _typesCheck(e,t){if(!t.noCheck){const i=e.map(e=>e.file);let s=!1;const a=typescript_1.default.createProgram(i,t);for(const e of i){const t=a.getSourceFile(e);t||(console.error(tcolor_1.default.magenta(`File not found: ${e}`)),typescript_1.default.sys.exit(1));const i=[...a.getSyntacticDiagnostics(t),...a.getSemanticDiagnostics(t),...a.getDeclarationDiagnostics(t)];if(i.length>0){const e={getCurrentDirectory:()=>process.cwd(),getCanonicalFileName:e=>e,getNewLine:()=>typescript_1.default.sys.newLine};console.error(typescript_1.default.formatDiagnosticsWithColorAndContext(i,e)),s=!0}}if(!s)return!0;typescript_1.default.sys.exit(1)}}async function typeCheck(e,t){const i=(0,resolves_1.default)([[_typesCheck,e,t]]);return(await i.series())[0]}async function depPluginParser(e,t,i){if(t.length)for(const s of t){const t="function"==typeof s?s():s;"dependency"===t.type&&(e=t.async?await t.func(e,i):t.func(e,i))}return e}async function depHookParser(e,t){if(depHooks.length)for(const i of depHooks)e=i.async?await i.func(e,t):i.func(e,t);return e}async function initializer(){console.time(`${tcolor_1.default.cyan("Collected Data")}`);const e=await finalSuseeConfig(),t=e.points,i=e.plugins,s=[];for(const e of t){const t=compilerOptions(e);let a=await generateDependencies(e.entry);await typeCheck(a,t.esm)||typescript_1.default.sys.exit(1),a=await depPluginParser(a,i,t.default),await utilities.wait(1e3),a=await depHookParser(a,t.default),await utilities.wait(1e3);const r={fileName:e.entry,exportPath:e.exportPath,format:e.format,rename:e.renameDuplicates,outDir:e.outDirPath,tsOptions:{cjs:t.commonjs,esm:t.esm,default:t.default},depFiles:a,plugins:i};s.push(r)}return console.timeEnd(`${tcolor_1.default.cyan("Collected Data")}`),{points:s,allowUpdatePackageJson:e.allowUpdatePackageJson}}function uniqueName(){const e=new Map,t={setPrefix({key:i,value:s}){if(e.has(i))throw console.warn(`${i} already exist`),new Error;return e.set(i,[s,0]),t},getName(t,i){const[s,a]=e.get(t)||[],r=s?`${s}${i}_${(a??0)+1}`:`$nyein${i}_${(a??0)+1}`;return e.set(t,[s??"$nyein",(a??0)+1]),r},getPrefix(t){const[i]=e.get(t)||[];return i}};return t}const exportDefaultExportNameMap=[],exportDefaultImportNameMap=[],prefixKey="AnonymousName",genName=uniqueName().setPrefix({key:prefixKey,value:"__anonymous__"});function anonymousCallExpressionHandler(e){return({file:t,content:i,...s})=>{const a=typescript_1.default.createSourceFile(t,i,typescript_1.default.ScriptTarget.Latest,!0),r=(0,transformer_1.default)(e=>{const{factory:i}=e,s=a=>{if(typescript_1.default.isCallExpression(a)){if(typescript_1.default.isIdentifier(a.expression)){const e=a.expression.text,s=exportDefaultImportNameMap.find(i=>i.base===e&&i.file===t);if(s)return i.updateCallExpression(a,i.createIdentifier(s.newName),a.typeArguments,a.arguments)}}else if(typescript_1.default.isPropertyAccessExpression(a)){if(typescript_1.default.isIdentifier(a.expression)){const e=a.expression.text,s=exportDefaultImportNameMap.find(i=>i.base===e&&i.file===t);if(s)return i.updatePropertyAccessExpression(a,i.createIdentifier(s.newName),a.name)}}else if(typescript_1.default.isNewExpression(a)){if(typescript_1.default.isIdentifier(a.expression)){const e=a.expression.text,s=exportDefaultImportNameMap.find(i=>i.base===e&&i.file===t);if(s)return i.updateNewExpression(a,i.createIdentifier(s.newName),a.typeArguments,a.arguments)}}else if(typescript_1.default.isExportSpecifier(a)&&typescript_1.default.isIdentifier(a.name)){const e=a.name.text,s=exportDefaultImportNameMap.find(i=>i.base===e&&i.file===t);if(s)return i.updateExportSpecifier(a,a.isTypeOnly,a.propertyName,i.createIdentifier(s.newName))}return typescript_1.default.visitEachChild(a,s,e)};return e=>typescript_1.default.visitNode(e,s)},a,e);return{file:t,content:r,...s}}}function anonymousExportHandler(e){return({file:t,content:i,...s})=>{const a=typescript_1.default.createSourceFile(t,i,typescript_1.default.ScriptTarget.Latest,!0),r=(0,transformer_1.default)(e=>{const{factory:i}=e,s=r=>{const n=node_path_1.default.basename(t).split(".")[0];if((typescript_1.default.isFunctionDeclaration(r)||typescript_1.default.isClassDeclaration(r))&&void 0===r.name){let e=!1,t=!1;if(r.modifiers?.forEach(i=>{i.kind===typescript_1.default.SyntaxKind.ExportKeyword&&(e=!0),i.kind===typescript_1.default.SyntaxKind.DefaultKeyword&&(t=!0)}),e&&t){const e=genName.getName(prefixKey,n);if(exportDefaultExportNameMap.push({base:e,file:n,newName:e,isEd:!0}),typescript_1.default.isFunctionDeclaration(r))return i.updateFunctionDeclaration(r,r.modifiers,r.asteriskToken,i.createIdentifier(e),r.typeParameters,r.parameters,r.type,r.body);if(typescript_1.default.isClassDeclaration(r))return i.updateClassDeclaration(r,r.modifiers,i.createIdentifier(e),r.typeParameters,r.heritageClauses,r.members)}}else if(typescript_1.default.isExportAssignment(r)&&!r.name&&!r.isExportEquals){if(typescript_1.default.isArrowFunction(r.expression)){const e=genName.getName(prefixKey,n),t=i.createArrowFunction(r.expression.modifiers,r.expression.typeParameters,r.expression.parameters,r.expression.type,r.expression.equalsGreaterThanToken,r.expression.body),s=i.createVariableDeclaration(i.createIdentifier(e),r.expression.exclamationToken,r.expression.type,t),o=i.createVariableDeclarationList([s],typescript_1.default.NodeFlags.Const),c=i.createVariableStatement(r.expression.modifiers,o),p=i.createExportAssignment(void 0,void 0,i.createIdentifier(e));return exportDefaultExportNameMap.push({base:e,file:n,newName:e,isEd:!0}),i.updateSourceFile(a,[c,p],a.isDeclarationFile,a.referencedFiles,a.typeReferenceDirectives,a.hasNoDefaultLib,a.libReferenceDirectives)}if(typescript_1.default.isObjectLiteralExpression(r.expression)){const e=genName.getName(prefixKey,n),t=i.createVariableDeclaration(i.createIdentifier(e),void 0,void 0,r.expression),s=i.createVariableDeclarationList([t],typescript_1.default.NodeFlags.Const),o=i.createVariableStatement(void 0,s),c=i.createExportAssignment(void 0,void 0,i.createIdentifier(e));return exportDefaultExportNameMap.push({base:e,file:n,newName:e,isEd:!0}),i.updateSourceFile(a,[o,c],a.isDeclarationFile,a.referencedFiles,a.typeReferenceDirectives,a.hasNoDefaultLib,a.libReferenceDirectives)}if(typescript_1.default.isArrayLiteralExpression(r.expression)){const e=genName.getName(prefixKey,n),t=i.createArrayLiteralExpression(r.expression.elements,!0),s=i.createVariableDeclaration(i.createIdentifier(e),void 0,void 0,t),o=i.createVariableDeclarationList([s],typescript_1.default.NodeFlags.Const),c=i.createVariableStatement(void 0,o),p=i.createExportAssignment(void 0,void 0,i.createIdentifier(e));return exportDefaultExportNameMap.push({base:e,file:n,newName:e,isEd:!0}),i.updateSourceFile(a,[c,p],a.isDeclarationFile,a.referencedFiles,a.typeReferenceDirectives,a.hasNoDefaultLib,a.libReferenceDirectives)}if(typescript_1.default.isStringLiteral(r.expression)){const e=genName.getName(prefixKey,n),t=i.createStringLiteral(r.expression.text),s=i.createVariableDeclaration(i.createIdentifier(e),void 0,void 0,t),o=i.createVariableDeclarationList([s],typescript_1.default.NodeFlags.Const),c=i.createVariableStatement(void 0,o),p=i.createExportAssignment(void 0,void 0,i.createIdentifier(e));return exportDefaultExportNameMap.push({base:e,file:n,newName:e,isEd:!0}),i.updateSourceFile(a,[c,p],a.isDeclarationFile,a.referencedFiles,a.typeReferenceDirectives,a.hasNoDefaultLib,a.libReferenceDirectives)}if(typescript_1.default.isNumericLiteral(r.expression)){const e=genName.getName(prefixKey,n),t=i.createNumericLiteral(r.expression.text),s=i.createVariableDeclaration(i.createIdentifier(e),void 0,void 0,t),o=i.createVariableDeclarationList([s],typescript_1.default.NodeFlags.Const),c=i.createVariableStatement(void 0,o),p=i.createExportAssignment(void 0,void 0,i.createIdentifier(e));return exportDefaultExportNameMap.push({base:e,file:n,newName:e,isEd:!0}),i.updateSourceFile(a,[c,p],a.isDeclarationFile,a.referencedFiles,a.typeReferenceDirectives,a.hasNoDefaultLib,a.libReferenceDirectives)}}return typescript_1.default.visitEachChild(r,s,e)};return e=>typescript_1.default.visitNode(e,s)},a,e);return{file:t,content:r,...s}}}function anonymousImportHandler(e){return({file:t,content:i,...s})=>{const a=typescript_1.default.createSourceFile(t,i,typescript_1.default.ScriptTarget.Latest,!0),r=(0,transformer_1.default)(e=>{const{factory:i}=e,s=r=>{if(typescript_1.default.isImportDeclaration(r)){const e=r.moduleSpecifier.getText(a),s=node_path_1.default.basename(e).split(".")[0].trim();if(r.importClause?.name&&typescript_1.default.isIdentifier(r.importClause.name)){const e=r.importClause.name.text.trim(),a=exportDefaultExportNameMap.find(e=>e.file===s);if(a){exportDefaultImportNameMap.push({base:e,file:t,newName:a.newName,isEd:!0});const s=i.updateImportClause(r.importClause,r.importClause.phaseModifier,i.createIdentifier(a.newName),r.importClause.namedBindings);return i.updateImportDeclaration(r,r.modifiers,s,r.moduleSpecifier,r.attributes)}}}return typescript_1.default.visitEachChild(r,s,e)};return e=>typescript_1.default.visitNode(e,s)},a,e);return{file:t,content:r,...s}}}const anonymousHandler=async(e,t)=>{const i=(0,resolves_1.default)([[anonymousExportHandler,t],[anonymousImportHandler,t],[anonymousCallExpressionHandler,t]]),s=await i.concurrent();for(const t of s)e=e.map(t);return e};function duplicates(e,t,i){const s=typescript_1.default.createSourceFile(t,e,typescript_1.default.ScriptTarget.Latest,!0),a=new Map;for(const e of s.statements){if(!typescript_1.default.isImportDeclaration(e)||!e.importClause)continue;const t=e.importClause;if(t.name&&typescript_1.default.isIdentifier(t.name)){const e=t.name.text;a.set(e,(a.get(e)||[]).concat({name:e,node:t}))}else if(t.namedBindings&&typescript_1.default.isNamespaceImport(t.namedBindings)&&typescript_1.default.isIdentifier(t.namedBindings.name)){const e=t.namedBindings.name.text;a.set(e,(a.get(e)||[]).concat({name:e,node:t.namedBindings}))}else if(t.namedBindings&&typescript_1.default.isNamedImports(t.namedBindings))for(const e of t.namedBindings.elements)if(typescript_1.default.isIdentifier(e.name)){const t=e.name.text;a.set(t,(a.get(t)||[]).concat({name:t,node:e}))}}const r=new Map,n=uniqueName();n.setPrefix({key:"DuplicateImport",value:"__dup__"});for(const[e,t]of a.entries())if(t.length>1)for(let i=1;i<t.length;i++){const t=n.getName("DuplicateImport",`${e}_`);r.set(`${e}::${i}`,t),r.set(`${e}::occurrence_${i}`,t)}const o=new Map;for(const[e,t]of a.entries())if(t.length>1)for(let i=1;i<t.length;i++){const s=t[i];s?.node&&o.set(s.node.pos,r.get(`${e}::${i}`))}return(0,transformer_1.default)(e=>{const{factory:t}=e,i=s=>{if(typescript_1.default.isImportDeclaration(s)&&s.importClause){const e=s.importClause;let i=!1,a=e;if(e.name&&typescript_1.default.isIdentifier(e.name)){e.pos;const s=o.get(e.pos);s&&(a=t.updateImportClause(e,e.isTypeOnly,t.createIdentifier(s),e.namedBindings),i=!0)}if(e.namedBindings&&typescript_1.default.isNamespaceImport(e.namedBindings)&&typescript_1.default.isIdentifier(e.namedBindings.name)){const s=o.get(e.namedBindings.pos);if(s){const e=t.createNamespaceImport(t.createIdentifier(s));a=t.updateImportClause(a,a.isTypeOnly,a.name,e),i=!0}}if(e.namedBindings&&typescript_1.default.isNamedImports(e.namedBindings)){const s=e.namedBindings.elements.map(e=>{if(typescript_1.default.isIdentifier(e.name)){const s=o.get(e.pos);if(s)return i=!0,t.updateImportSpecifier(e,e.isTypeOnly,e.propertyName,t.createIdentifier(s))}return e});if(i){const e=t.createNamedImports(s);a=t.updateImportClause(a,a.isTypeOnly,a.name,e)}}if(i)return t.updateImportDeclaration(s,s.modifiers,a,s.moduleSpecifier,s.assertClause)}if(typescript_1.default.isIdentifier(s)){const e=s.text;if(!(e=>{const t=e.parent;if(!t)return!1;switch(t.kind){case typescript_1.default.SyntaxKind.ImportSpecifier:case typescript_1.default.SyntaxKind.NamespaceImport:case typescript_1.default.SyntaxKind.ImportClause:case typescript_1.default.SyntaxKind.VariableDeclaration:case typescript_1.default.SyntaxKind.FunctionDeclaration:case typescript_1.default.SyntaxKind.ClassDeclaration:case typescript_1.default.SyntaxKind.InterfaceDeclaration:case typescript_1.default.SyntaxKind.TypeAliasDeclaration:case typescript_1.default.SyntaxKind.EnumDeclaration:case typescript_1.default.SyntaxKind.Parameter:case typescript_1.default.SyntaxKind.PropertyDeclaration:case typescript_1.default.SyntaxKind.MethodDeclaration:case typescript_1.default.SyntaxKind.BindingElement:return!0;default:return!1}})(s)){if(s.parent&&typescript_1.default.isPropertyAccessExpression(s.parent)&&s.parent.name===s)return s;const i=a.get(e);if(i&&i.length>1)for(let s=1;s<i.length;s++){const i=r.get(`${e}::occurrence_${s}`)||r.get(`${e}::${s}`);if(i)return t.createIdentifier(i)}}}return typescript_1.default.visitEachChild(s,i,e)};return e=>typescript_1.default.visitNode(e,i)},s,i)}function mergeImportsStatement(e){const t=new Map,i=new Map,s=new Map,a=new Map,r=new Map;for(const n of e){const e=n.match(/import\s+(?:type\s+)?(?:(.*?)\s+from\s+)?["']([^"']+)["'];?/);if(!e)continue;const[,o,c]=e,p=n.includes("import type"),l=c;if(!o){const e=n.match(/import\s+(?:type\s+)?(\w+)/);if(e){const t=e[1],i=p?a:s;i.has(l)||i.set(l,new Set),i.get(l)?.add(t)}continue}if(o.startsWith("{")){const e=p?i:t;e.has(l)||e.set(l,new Set);o.replace(/[{}]/g,"").split(",").map(e=>e.trim()).filter(Boolean).forEach(t=>e.get(l)?.add(t))}else if(o.startsWith("* as")){const e=o.match(/\*\s+as\s+(\w+)/);if(e){const t=e[1];r.has(l)||r.set(l,new Set),r.get(l)?.add(t)}}else{const e=p?a:s;e.has(l)||e.set(l,new Set),e.get(l)?.add(o.trim())}}const n=[];for(const[e,s]of t){const t=i.get(e)||new Set,a=new Set([...s]);for(const e of t)s.has(e)||a.add(e);if(a.size>0){const t=Array.from(a).sort().join(", ");n.push(`import { ${t} } from "${e}";`)}}for(const[e,s]of i)if(!t.has(e)&&s.size>0){const t=Array.from(s).sort().join(", ");n.push(`import type { ${t} } from "${e}";`)}for(const[e,t]of s){const i=a.get(e)||new Set,s=new Set([...t]);for(const e of i)t.has(e)||s.add(e);if(s.size>0){const t=Array.from(s).join(", ");n.push(`import ${t} from "${e}";`)}}for(const[e,t]of a)if(!s.has(e)&&t.size>0){const i=Array.from(t).join(", ");n.push(`import type ${i} from "${e}";`)}for(const[e,t]of r)if(t.size>0){const i=Array.from(t).join(", ");n.push(`import * as ${i} from "${e}";`)}return n.sort()}function esmExportRemoveHandler(e){return({file:t,content:i,...s})=>{const a=typescript_1.default.createSourceFile(t,i,typescript_1.default.ScriptTarget.Latest,!0);return{file:t,content:(0,transformer_1.default)(e=>{const{factory:t}=e,i=s=>{if(!utilities.isInsideNamespace(s)&&(typescript_1.default.isFunctionDeclaration(s)||typescript_1.default.isClassDeclaration(s)||typescript_1.default.isInterfaceDeclaration(s)||typescript_1.default.isTypeAliasDeclaration(s)||typescript_1.default.isEnumDeclaration(s)||typescript_1.default.isVariableStatement(s))){const e=s.modifiers?.filter(e=>e.kind!==typescript_1.default.SyntaxKind.ExportKeyword&&e.kind!==typescript_1.default.SyntaxKind.DefaultKeyword);if(e?.length!==s.modifiers?.length){if(typescript_1.default.isFunctionDeclaration(s))return t.updateFunctionDeclaration(s,e,s.asteriskToken,s.name,s.typeParameters,s.parameters,s.type,s.body);if(typescript_1.default.isClassDeclaration(s))return t.updateClassDeclaration(s,e,s.name,s.typeParameters,s.heritageClauses,s.members);if(typescript_1.default.isInterfaceDeclaration(s))return t.updateInterfaceDeclaration(s,e,s.name,s.typeParameters,s.heritageClauses,s.members);if(typescript_1.default.isTypeAliasDeclaration(s))return t.updateTypeAliasDeclaration(s,e,s.name,s.typeParameters,s.type);if(typescript_1.default.isEnumDeclaration(s))return t.updateEnumDeclaration(s,e,s.name,s.members);if(typescript_1.default.isVariableStatement(s))return t.updateVariableStatement(s,e,s.declarationList)}}if(typescript_1.default.isExportDeclaration(s))return t.createEmptyStatement();if(typescript_1.default.isExportAssignment(s)){const e=s.expression;if(typescript_1.default.isIdentifier(e))return t.createEmptyStatement()}return typescript_1.default.visitEachChild(s,i,e)};return e=>typescript_1.default.visitNode(e,i)},a,e),...s}}}let properties=[];const typeObj={},typesNames=[];function findProperty(e){const t=[];return typescript_1.default.isPropertyAccessExpression(e)&&typescript_1.default.isIdentifier(e.expression)&&t.push(e.expression.text),e.forEachChild(e=>findProperty(e)),t}function importAllRemoveHandler(e,t){return({file:i,content:s,...a})=>{const r=typescript_1.default.createSourceFile(i,s,typescript_1.default.ScriptTarget.Latest,!0),n=new Set;for(const e of r.statements)if(typescript_1.default.isImportEqualsDeclaration(e)&&e.isTypeOnly){const t=e.moduleReference;typescript_1.default.isExternalModuleReference(t)&&typescript_1.default.isStringLiteral(t.expression)&&n.add(e.name.text)}const o=(0,transformer_1.default)(t=>{const{factory:s}=t,a=o=>{properties=[...properties,...findProperty(o)];const c={isNamespace:!1,isTypeOnly:!1,isTypeNamespace:!1,source:"",importedString:void 0,importedObject:void 0};if(typescript_1.default.isTypeReferenceNode(o)&&typescript_1.default.isQualifiedName(o.typeName)&&typescript_1.default.isIdentifier(o.typeName.left)&&typescript_1.default.isIdentifier(o.typeName.right)){const e=o.typeName.left.text,t=o.typeName.right.text;if(typesNames.push(e),e in typeObj?typeObj[e]?.push(t):typeObj[e]=[t],utilities.checkModuleType(r,i).isCommonJs&&"ts"!==e&&!n.has(e))return s.updateTypeReferenceNode(o,s.createIdentifier(t),void 0)}if(typescript_1.default.isImportDeclaration(o)){const t=o.getText(r);return e.push(t),s.createEmptyStatement()}if(typescript_1.default.isImportEqualsDeclaration(o)){const t=o.name.text,i=o.moduleReference;let a;if(o.isTypeOnly&&(c.isTypeOnly=!0),c.importedString=t,c.isTypeOnly||properties.includes(t)&&(c.isNamespace=!0),typescript_1.default.isExternalModuleReference(i)&&typescript_1.default.isStringLiteral(i.expression)&&(c.source=i.expression.text),c.importedString&&!c.importedObject&&(a=c.isTypeOnly?n.has(c.importedString)?`import type * as ${c.importedString} from "${c.source}";`:typesNames.includes(c.importedString)?`import type { ${typeObj[c.importedString]?.join(",")} } from "${c.source}";`:`import type ${c.importedString} from "${c.source}";`:c.isNamespace&&c.source&&"typescript"!==c.source?`import * as ${c.importedString} from "${c.source}";`:`import ${c.importedString} from "${c.source}";`),!c.importedString&&c.importedObject&&(a=`import { ${c.importedObject.join(", ")} } from "${c.source}";`),a)return e.push(a),s.createEmptyStatement()}if(typescript_1.default.isVariableStatement(o)){const t=o.declarationList.declarations;if(1===t.length){const i=t[0];if(i.initializer&&typescript_1.default.isCallExpression(i.initializer)&&typescript_1.default.isIdentifier(i.initializer.expression)&&"require"===i.initializer.expression.escapedText){const t=i.initializer.arguments[0];if(typescript_1.default.isStringLiteral(t)&&(c.source=t.text),typescript_1.default.isIdentifier(i.name)){const e=i.name.text;c.importedString=e,properties.includes(e)&&(c.isNamespace=!0)}else if(typescript_1.default.isObjectBindingPattern(i.name)){const e=[];for(const t of i.name.elements)typescript_1.default.isIdentifier(t.name)&&e.push(t.name.text);e.length>0&&(c.importedObject=e)}let a;if(c.importedString&&!c.importedObject&&(a=c.isNamespace?`import * as ${c.importedString} from "${c.source}";`:`import ${c.importedString} from "${c.source}";`),!c.importedString&&c.importedObject&&(a=`import { ${c.importedObject.join(", ")} } from "${c.source}";`),a)return e.push(a),s.createEmptyStatement()}}}return typescript_1.default.visitEachChild(o,a,t)};return e=>typescript_1.default.visitNode(e,a)},r,t);return{file:i,content:o,...a}}}const removeHandlers=async(e,t)=>{const i=(0,resolves_1.default)([[importAllRemoveHandler,e,t],[esmExportRemoveHandler,t]]);return await i.series()};function collectBindingNames(e,t){typescript_1.default.isIdentifier(e)?t.push(e.text):(typescript_1.default.isObjectBindingPattern(e)||typescript_1.default.isArrayBindingPattern(e))&&e.elements.forEach(e=>{typescript_1.default.isBindingElement(e)&&e.name&&collectBindingNames(e.name,t)})}function clearUnusedCode(e,t,i,s={treatExportsAsUsed:!0}){const a=typescript_1.default.createSourceFile(t,e,typescript_1.default.ScriptTarget.Latest,!0),r=new Map,n=new Set,o=(e,t=!1)=>{const i=r.get(e);r.set(e,{exported:!!i?.exported||t})},c=e=>{if(typescript_1.default.isImportDeclaration(e)&&e.importClause){const t=e.importClause;t.name&&typescript_1.default.isIdentifier(t.name)&&o(t.name.text,!1),t.namedBindings&&(typescript_1.default.isNamedImports(t.namedBindings)?t.namedBindings.elements.forEach(e=>{typescript_1.default.isImportSpecifier(e)&&typescript_1.default.isIdentifier(e.name)&&o(e.name.text,!1)}):typescript_1.default.isNamespaceImport(t.namedBindings)&&typescript_1.default.isIdentifier(t.namedBindings.name)&&o(t.namedBindings.name.text,!1))}else if(typescript_1.default.isImportEqualsDeclaration(e)&&typescript_1.default.isIdentifier(e.name))o(e.name.text,!1);else if(typescript_1.default.isVariableStatement(e)){const t=e.modifiers?.some(e=>e.kind===typescript_1.default.SyntaxKind.ExportKeyword)??!1;e.declarationList.declarations.forEach(e=>{collectBindingNames(e.name,[]);const i=[];collectBindingNames(e.name,i),i.forEach(e=>o(e,t))})}else if(typescript_1.default.isFunctionDeclaration(e)&&e.name&&typescript_1.default.isIdentifier(e.name)){const t=e.modifiers?.some(e=>e.kind===typescript_1.default.SyntaxKind.ExportKeyword)??!1;o(e.name.text,t)}else if(typescript_1.default.isClassDeclaration(e)&&e.name&&typescript_1.default.isIdentifier(e.name)){const t=e.modifiers?.some(e=>e.kind===typescript_1.default.SyntaxKind.ExportKeyword)??!1;o(e.name.text,t)}if(typescript_1.default.isIdentifier(e)){const t=e.parent;typescript_1.default.isVariableDeclaration(t)&&t.name===e||typescript_1.default.isFunctionDeclaration(t)&&t.name===e||typescript_1.default.isClassDeclaration(t)&&t.name===e||typescript_1.default.isImportClause(t)&&t.name===e||typescript_1.default.isImportSpecifier(t)&&t.name===e||typescript_1.default.isNamespaceImport(t)&&t.name===e||typescript_1.default.isBindingElement(t)&&t.name===e||typescript_1.default.isParameter(t)&&t.name===e||n.add(e.text)}typescript_1.default.forEachChild(e,c)};c(a);const p=new Set;r.forEach((e,t)=>{n.has(t)||s.treatExportsAsUsed&&e.exported||p.add(t)});return(0,transformer_1.default)(e=>{const t=i=>{if(typescript_1.default.isImportDeclaration(i)&&i.importClause){const e=i.importClause,t=e.name&&typescript_1.default.isIdentifier(e.name)?e.name.text:void 0;let s;const a=[];e.namedBindings&&(typescript_1.default.isNamedImports(e.namedBindings)?e.namedBindings.elements.forEach(e=>{typescript_1.default.isImportSpecifier(e)&&typescript_1.default.isIdentifier(e.name)&&a.push(e)}):typescript_1.default.isNamespaceImport(e.namedBindings)&&typescript_1.default.isIdentifier(e.namedBindings.name)&&(s=e.namedBindings.name.text));const r=!!t&&!p.has(t),n=!!s&&!p.has(s),o=a.filter(e=>!p.has(e.name.text));if(!r&&!n&&0===o.length)return typescript_1.default.factory.createNotEmittedStatement(i);if(!r&&!!e.name||void 0!==s&&!n||o.length!==a.length){let e;e=o.length>0?typescript_1.default.factory.createNamedImports(o):n&&s?typescript_1.default.factory.createNamespaceImport(typescript_1.default.factory.createIdentifier(s)):void 0;const a=r&&t?typescript_1.default.factory.createIdentifier(t):void 0,c=typescript_1.default.factory.createImportClause(!1,a,e);return typescript_1.default.factory.updateImportDeclaration(i,i.modifiers,c,i.moduleSpecifier,i.assertClause)}return i}if((typescript_1.default.isFunctionDeclaration(i)||typescript_1.default.isClassDeclaration(i))&&i.name&&typescript_1.default.isIdentifier(i.name))return p.has(i.name.text)?typescript_1.default.factory.createNotEmittedStatement(i):i;if(typescript_1.default.isVariableStatement(i)){const e=[];i.declarationList.declarations.forEach(t=>collectBindingNames(t.name,e));return e.some(e=>!p.has(e))?i:typescript_1.default.factory.createNotEmittedStatement(i)}return typescript_1.default.visitEachChild(i,t,e)};return e=>typescript_1.default.visitNode(e,t)},a,i)}async function preProcessPluginParser(e,t,i){if(e.length)for(const s of e){const e="function"==typeof s?s():s;"pre-process"===e.type&&(t=e.async?await e.func(t,i):e.func(t,i))}return t}async function preProcessHooksParser(e,t){if(preProcessHooks.length)for(const i of preProcessHooks)e=i.async?await i.func(e,t):i.func(e,t);return e}async function bundler(e){const t="."===e.exportPath?"Main":utilities.splitCamelCase(e.exportPath.slice(2));console.time(`${tcolor_1.default.cyan("Bundled")} -> ${tcolor_1.default.brightCyan(t)} ${tcolor_1.default.cyan("export path")}`);let i=e.depFiles;const s=e.rename,a=e.tsOptions.default,r=e.plugins;let n=[];i=await anonymousHandler(i,a);const o=await removeHandlers(n,a);i=i.map(o[0]);const c=i.slice(0,-1).map(o[1]),p=i.slice(-1),l=/["']((?!\.\/|\.\.\/)[^"']+)["']/;n=n.filter(e=>l.test(e)),n=mergeImportsStatement(n);let d=`${n.join("\n").trim()}\n${c.map(e=>`${`//${node_path_1.default.relative(process.cwd(),e.file)}`}\n${e.content}`).join("\n").trim()}\n${p.map(e=>`${`//${node_path_1.default.relative(process.cwd(),e.file)}`}\n${e.content}`).join("\n").trim()}`;return d=d.replace(/^s*;\s*$/gm,"").trim(),s&&(d=duplicates(d,e.fileName,a)),d=clearUnusedCode(d,e.fileName,a),d=await preProcessPluginParser(r,d),await utilities.wait(1e3),d=await preProcessHooksParser(d),await utilities.wait(1e3),console.timeEnd(`${tcolor_1.default.cyan("Bundled")} -> ${tcolor_1.default.brightCyan(t)} ${tcolor_1.default.cyan("export path")}`),{bundledContent:d,...e}}async function bundle(e){const t=[];for(const i of e.points){const e=await bundler(i);t.push(e)}return{points:t,allowUpdatePackageJson:e.allowUpdatePackageJson}}function createHost(e,t){const i={},s={getSourceFile:(i,s)=>{if(i===t)return typescript_1.default.createSourceFile(i,e,s)},writeFile:(e,t)=>{i[e]=t},getDefaultLibFileName:e=>typescript_1.default.getDefaultLibFilePath(e),getCurrentDirectory:()=>"",getDirectories:()=>[],fileExists:e=>e===t,readFile:i=>i===t?e:void 0,getCanonicalFileName:e=>e,useCaseSensitiveFileNames:()=>!0,getNewLine:()=>"\n"};return{createdFiles:i,host:s}}const isCjs=e=>e.commonjs&&e.commonjsTypes,isEsm=e=>e.esm&&e.esmTypes;function getExports(e,t){return isCjs(e)&&isEsm(e)?{[t]:{import:{types:`./${node_path_1.default.relative(process.cwd(),e.esmTypes)}`,default:`./${node_path_1.default.relative(process.cwd(),e.esm)}`},require:{types:`./${node_path_1.default.relative(process.cwd(),e.commonjsTypes)}`,default:`./${node_path_1.default.relative(process.cwd(),e.commonjs)}`}}}:isCjs(e)&&!isEsm(e)?{[t]:{require:{types:`./${node_path_1.default.relative(process.cwd(),e.commonjsTypes)}`,default:`./${node_path_1.default.relative(process.cwd(),e.commonjs)}`}}}:!isCjs(e)&&isEsm(e)?{[t]:{import:{types:`./${node_path_1.default.relative(process.cwd(),e.esmTypes)}`,default:`./${node_path_1.default.relative(process.cwd(),e.esm)}`}}}:{}}async function writePackage(e,t){let i=!0;"."!==t&&(i=!1);const s=typescript_1.default.sys.resolvePath("package.json"),a=node_fs_1.default.readFileSync(s,"utf8"),r=JSON.parse(a);let{name:n,version:o,description:c,main:p,module:l,type:d,types:f,exports:u,...m}=r;await utilities.wait(500),d="module";let y={},_={},g={},h={};if(i)y=e.main?{main:node_path_1.default.relative(process.cwd(),e.main)}:{},_=e.module?{module:node_path_1.default.relative(process.cwd(),e.module)}:{},g=e.types?{types:node_path_1.default.relative(process.cwd(),e.types)}:{},h={exports:{...getExports(e,t)}};else{y=p?{main:p}:{},_=l?{module:l}:{},g=f?{types:f}:{};h={exports:{...u&&"object"==typeof u&&!Array.isArray(u)?{...u}:{},...getExports(e,t)}}}await utilities.wait(1e3);const x={name:n,version:o,description:c,type:d,...y,...g,..._,...h,...m};utilities.writeCompileFile(s,JSON.stringify(x,null,2))}class Compiler{constructor(e){this.object=e,this.files={commonjs:void 0,commonjsTypes:void 0,esm:void 0,esmTypes:void 0,main:void 0,module:void 0,types:void 0}}_isUpdate(){return this.object.allowUpdatePackageJson}async _commonjs(e){const t="."===e.exportPath,i=t?"Main":utilities.splitCamelCase(e.exportPath.slice(2));console.time(`${tcolor_1.default.cyan("Compiled CJS")} -> ${tcolor_1.default.brightCyan(i)} ${tcolor_1.default.cyan("export path")}`);const s=e.fileName,a=e.bundledContent,r=e.format,n=e.plugins,o=e.tsOptions.cjs,c=createHost(a,s),p=c.createdFiles,l=c.host;typescript_1.default.createProgram([s],o,l).emit(),Object.entries(p).map(async([e,i])=>{if(".js"===node_path_1.default.extname(e)&&n.length)for(let t of n)t="function"==typeof t?t():t,"post-process"===t.type&&(i=t.async?await t.func(i,e):t.func(i,e));this._isUpdate()&&(e.match(/.js/g)&&(this.files.commonjs=e.replace(/.js/g,".cjs")),e.match(/.d.ts/g)&&(this.files.commonjsTypes=e.replace(/.d.ts/g,".d.cts")),!t||"both"!==r&&"commonjs"!==r||(this.files.commonjs&&(this.files.main=this.files.commonjs),this.files.commonjsTypes&&(this.files.types=this.files.commonjsTypes))),e=(e=(e=e.replace(/.js/g,".cjs")).replace(/.map.js/g,".map.cjs")).replace(/.d.ts/g,".d.cts"),await utilities.wait(500),"commonjs"===r&&await utilities.clearFolder(node_path_1.default.dirname(e)),await utilities.writeCompileFile(e,i)}),console.timeEnd(`${tcolor_1.default.cyan("Compiled CJS")} -> ${tcolor_1.default.brightCyan(i)} ${tcolor_1.default.cyan("export path")}`)}async _esm(e){const t="."===e.exportPath,i=t?"Main":utilities.splitCamelCase(e.exportPath.slice(2));console.time(`${tcolor_1.default.cyan("Compiled ESM")} -> ${tcolor_1.default.brightCyan(i)} ${tcolor_1.default.cyan("export path")}`);const s=e.fileName,a=e.bundledContent,r=e.format,n=e.plugins,o=e.tsOptions.esm,c=createHost(a,s),p=c.createdFiles,l=c.host;typescript_1.default.createProgram([s],o,l).emit(),Object.entries(p).map(async([e,i])=>{if(".js"===node_path_1.default.extname(e)&&n.length)for(let t of n)t="function"==typeof t?t():t,"post-process"===t.type&&(i=t.async?await t.func(i,e):t.func(i,e));this._isUpdate()&&(e.match(/.js/g)&&(this.files.esm=e.replace(/.js/g,".mjs")),e.match(/.d.ts/g)&&(this.files.esmTypes=e.replace(/.d.ts/g,".d.mts")),t&&"both"===r&&this.files.esm&&(this.files.module=this.files.esm)),e=(e=(e=e.replace(/.js/g,".mjs")).replace(/.map.js/g,".map.mjs")).replace(/.d.ts/g,".d.mts"),await utilities.wait(500),"commonjs"!==r&&await utilities.clearFolder(node_path_1.default.dirname(e)),await utilities.writeCompileFile(e,i)}),console.timeEnd(`${tcolor_1.default.cyan("Compiled ESM")} -> ${tcolor_1.default.brightCyan(i)} ${tcolor_1.default.cyan("export path")}`)}async compile(){for(const e of this.object.points){switch(await utilities.wait(500),e.format){case"commonjs":await this._commonjs(e),this._isUpdate()&&await writePackage(this.files,e.exportPath);break;case"esm":await this._esm(e),this._isUpdate()&&await writePackage(this.files,e.exportPath);break;case"both":await this._esm(e),await utilities.wait(1e3),await this._commonjs(e),this._isUpdate()&&await writePackage(this.files,e.exportPath)}await utilities.wait(500)}}}async function susee(){console.info(`${tcolor_1.default.cyan("Susee Started")} : `),console.time(`${tcolor_1.default.cyan("Susee Done")}`);const e=await initializer();await utilities.wait(1e3);const t=await bundle(e);await utilities.wait(1e3);const i=new Compiler(t);await i.compile(),console.timeEnd(`${tcolor_1.default.cyan("Susee Done")}`)}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}