Comparing version 0.4.2 to 0.4.3
#!/usr/bin/env node | ||
/*! For license information please see ctix.js.LICENSE.txt */ | ||
(()=>{"use strict";var e={181:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Counter=void 0,t.Counter=class{constructor(e){this.count=0,this.verbose=e}get log(){return this.count+=1,this.count}get debug(){return this.count+=this.verbose?1:0,this.count}}},900:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Logger=void 0;class r{constructor(){this._log=console.log,this._debug=()=>{},this._error=console.error}log(...e){this._log(...e)}debug(...e){this._debug(...e)}error(...e){this._error(...e)}switch(e){e?(this._log=console.log,this._debug=console.debug,this._error=console.error):(this._log=console.log,this._debug=()=>{},this._error=console.error)}}t.Logger=r;const o=new r;t.default=o},930:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.clean=t.getCleanFilenames=void 0;const o=r(655),n=r(138),i=(0,o.__importDefault)(r(974)),a=(0,o.__importStar)(r(431)),l=(0,o.__importStar)(r(686)),s=(0,o.__importStar)(r(972)),c=(0,o.__importStar)(r(147)),p=r(352),f=(0,o.__importStar)(r(17)),u=r(734),d=(0,i.default)("ctix:clean-tool");t.getCleanFilenames=({cliOption:e,includeBackupFrom:t})=>async()=>{var r,o;try{const i=(0,n.defaultOption)(),c=null!==(r=null==e?void 0:e.resolvedProjectFilePath)&&void 0!==r?r:i.project,m=null!==(o=null==e?void 0:e.resolvedProjectDirPath)&&void 0!==o?o:i.project,g=null==t||t;if((0,p.isFalse)(await(0,u.exists)(c)))return a.left(new Error(`invalid tsconfig.json path: ${c}`));const h=await l.pipe((0,n.getCTIXOptions)({projectPath:c}),s.chain((t=>(0,n.getMergedConfig)({projectPath:c,cliOption:null!=e?e:i,optionObjects:t}))))();if(a.isLeft(h))return a.left(h.left);const y=(0,u.settify)(h.right.filter((e=>e.dir.indexOf("node_modules")<0)).map((e=>f.join(e.dir,"**",e.option.exportFilename)))),w=(0,u.settify)(h.right.map((e=>f.join(e.dir,"**",`${e.option.exportFilename}.bak`)))),v=await(0,u.fastGlobWrap)(g?y.concat(w).map((e=>(0,u.replaceSepToPosix)(e))):y.map((e=>(0,u.replaceSepToPosix)(e))),{dot:!0,cwd:m,ignore:[(0,u.replaceSepToPosix)(f.join(c,"**","node_modules","**"))]}),x=v.filter((e=>e.startsWith(m)));return d("resolved: ",c,y,v,x),a.right(x)}catch(e){const t=e instanceof Error?e:new Error("unknown error raised from getCleanFilenames");return d("Error raised: ",t.message),d("Error raised: ",t.stack),a.left(t)}},t.clean=async function({filenames:e}){try{const t=(await Promise.all(e.map((e=>async function(e){try{return await c.promises.unlink(e),a.right(!0)}catch(e){const t=e instanceof Error?e:new Error("unknown error raised from unlink");return d("Error raised: ",t.message),d("Error raised: ",t.stack),a.left(t)}}(e))))).map((e=>a.isLeft(e)?e.left.message:"")).filter((e=>""!==e));return t.length>0?a.left(new Error(`invalid filename and path: ${t.join("\n")}`)):a.right(!0)}catch(e){const t=e instanceof Error?e:new Error("unknown error raised from clean");return d("Error raised: ",t.message),d("Error raised: ",t.stack),a.left(t)}}},138:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getConfigFiles=t.getMergedConfig=t.getCTIXOptions=t.getNonEmptyOption=t.readOptionFile=t.defaultOption=t.getExportFilename=void 0;const o=r(655),n=r(734),i=(0,o.__importDefault)(r(974)),a=(0,o.__importDefault)(r(330)),l=(0,o.__importStar)(r(431)),s=(0,o.__importStar)(r(686)),c=(0,o.__importStar)(r(147)),p=(0,o.__importDefault)(r(959)),f=r(352),u=(0,o.__importDefault)(r(17)),d=(0,o.__importDefault)(r(900)),m=r(734),g=(0,i.default)("ctix:config-test-case");function h(e){var t,r;const o=null!==(t=null==e?void 0:e.project)&&void 0!==t?t:u.default.join(process.cwd(),"tsconfig.json");return{addNewline:!0,useSemicolon:!0,useTimestamp:!1,useComment:!0,exportFilename:null!==(r=null==e?void 0:e.exportFilename)&&void 0!==r?r:"index.ts",quote:"'",verbose:!1,useBackupFile:!0,outputDir:o,useRootDir:!1,project:o}}async function y(e,t){var r;try{const t=await c.promises.readFile(e),r=p.default.parse(t.toString());return["project","addNewline","useSemicolon","useTimestamp","useComment","quote","verbose","useBackupFile","exportFilename","useRootDir"].reduce(((e,t)=>{const o=e;return(0,f.isNotEmpty)(r[t])&&(o[t]=r[t]),o}),{})}catch(o){const n=o instanceof Error?o:new Error("unknown error raised");return d.default.error(`Error caused from ${e}`),d.default.error(null!==(r=n.message)&&void 0!==r?r:""),g("---------------------------------------------------------------------------"),g("Error caused from readOptionFile"),g(n.message),g(n.stack),g("---------------------------------------------------------------------------"),h({project:t})}}function w(e,t){var r,o,n,i,a,l,s,c,p,f,u;const d="string"==typeof t?h({project:t}):t;return{project:null!==(r=null==e?void 0:e.project)&&void 0!==r?r:d.project,addNewline:null!==(o=null==e?void 0:e.addNewline)&&void 0!==o?o:d.addNewline,useSemicolon:null!==(n=null==e?void 0:e.useSemicolon)&&void 0!==n?n:d.useSemicolon,useTimestamp:null!==(i=null==e?void 0:e.useTimestamp)&&void 0!==i?i:d.useTimestamp,useComment:null!==(a=null==e?void 0:e.useComment)&&void 0!==a?a:d.useComment,quote:null!==(l=null==e?void 0:e.quote)&&void 0!==l?l:d.quote,verbose:null!==(s=null==e?void 0:e.verbose)&&void 0!==s?s:d.verbose,useBackupFile:null!==(c=null==e?void 0:e.useBackupFile)&&void 0!==c?c:d.useBackupFile,exportFilename:null!==(p=null==e?void 0:e.exportFilename)&&void 0!==p?p:d.exportFilename,outputDir:null!==(f=null==e?void 0:e.outputDir)&&void 0!==f?f:d.outputDir,useRootDir:null!==(u=null==e?void 0:e.useRootDir)&&void 0!==u?u:d.useRootDir}}t.getExportFilename=e=>s.pipe(e,(e=>(0,f.isEmpty)(e)?"index.ts":e),(e=>""===e?"index.ts":e)),t.defaultOption=h,t.readOptionFile=y,t.getNonEmptyOption=w,t.getCTIXOptions=e=>async()=>{try{const t=u.default.resolve(e.projectPath),r=u.default.dirname(t),o=await(0,n.fastGlobWrap)(`${r}/**/*`,{onlyDirectories:!0,ignore:[(0,n.replaceSepToPosix)(u.default.join(r,"**","node_modules","**"))]}),i=await Promise.all([r,...o].map((e=>(async()=>{const o=u.default.join(e,".ctirc"),i=await(0,n.exists)(o),a=(0,m.fpGetDirDepth)(r,e);g("Working configuration file: ",a,o,i);try{return{dir:u.default.resolve(e),exists:i,depth:a,option:i?await y(o,t):void 0}}catch(t){const n=t instanceof Error?t:new Error("unknown error raised");return g(o,i),g(n.message),{dir:e,depth:(0,m.fpGetDirDepth)(r,e),exists:i,option:void 0}}})())));return l.right([...i].sort(((e,t)=>{const r=e.depth-t.depth;return 0===r?e.dir.localeCompare(t.dir):r})))}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return l.left(t)}},t.getMergedConfig=({projectPath:e,cliOption:r,optionObjects:o})=>async()=>{var n;try{if(o.length>1){const i=h({project:e}),s=(0,a.default)(w(o[0].option,i),w(r,i)),c=o[o.length-1],p={...o[0],option:{...s,project:s.project,exportFilename:(0,t.getExportFilename)(s.exportFilename)}},f=new Map(o.map((e=>[e.dir,e]))),u={...p,option:(0,a.default)(h({project:e}),{...null!==(n=p.option)&&void 0!==n?n:i})},d=new Map;d.set(u.dir,u),(0,m.fpTimes)(c.depth,!1).forEach((e=>{g(`directory depth "${e}" processed`),Array.from(f.values()).filter((t=>t.depth===e)).forEach((e=>{var t,r,o,n,l;const s=f.get(e.dir),c=null!==(o=null===(r=d.get((0,m.getParentPath)(null!==(t=null==s?void 0:s.dir)&&void 0!==t?t:"")))||void 0===r?void 0:r.option)&&void 0!==o?o:h();if(void 0!==s&&void 0!==c){const e={...s,option:(0,a.default)(c,null!==(n=s.option)&&void 0!==n?n:h({exportFilename:c.exportFilename,project:c.project}))};d.set(e.dir,e),g("exportFilename-1: ",c.exportFilename,(null!==(l=s.option)&&void 0!==l?l:i).exportFilename,e.option.exportFilename)}else{const t={...e,option:w(null==s?void 0:s.option,i)};d.set(e.dir,t),g("exportFilename-2: ",t.option.exportFilename)}}))}));const y=[u,...Array.from(d.values())];return l.right(y)}return l.right([...o].map((e=>({...e,option:h()}))))}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return l.left(t)}},t.getConfigFiles=async function(e){try{const t=u.default.dirname(u.default.resolve(e.projectPath)),r=u.default.join(t,"**",".ctirc"),o=(await(0,n.fastGlobWrap)(r,{dot:!0})).sort(((e,t)=>e.localeCompare(t)));return g("finded: ",e,r,o),l.right({projectPath:e.projectPath,optionFiles:o})}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return l.left(t)}}},981:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getIgnoredContents=t.getIgnoreFileContents=t.getIgnoreFiles=void 0;const o=r(655),n=(0,o.__importDefault)(r(974)),i=(0,o.__importStar)(r(431)),a=(0,o.__importDefault)(r(147)),l=(0,o.__importDefault)(r(837)),s=(0,o.__importDefault)(r(17)),c=r(734),p=(0,n.default)("ctix:ignore-tool");t.getIgnoreFiles=e=>async()=>{try{const t=s.default.resolve(e),r=s.default.join(t,"**",".ctiignore"),o=s.default.join(t,"**",".npmignore"),n=await(0,c.fastGlobWrap)([r,o],{dot:!0});return p("resolved: ",t,r),i.right({cwd:e,filenames:n})}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return i.left(t)}},t.getIgnoreFileContents=e=>async()=>{try{const t=(await Promise.all(e.filenames.map((e=>(async()=>({filename:e,buffer:await a.default.promises.readFile(e)}))())))).map((e=>({filename:e.filename,buffer:e.buffer.toString()}))).map((e=>({filename:e.filename,directory:s.default.dirname(e.filename),content:(0,l.default)(e.buffer)})));return i.right({cwd:e.cwd,ignores:t})}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return i.left(t)}},t.getIgnoredContents=e=>async()=>{try{const t=e.ignores.map((e=>e.content.map((t=>s.default.join(e.directory,t))))).flatMap((e=>e)),r=t.map((e=>(0,c.replaceSepToPosix)(e))),o=await(0,c.fastGlobWrap)(r,{dot:!0});return p("target ignore file: ",t),p("glob processed ignore file: ",o),i.right({cwd:e.cwd,ignores:o})}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return i.left(t)}}},734:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getParentPath=t.fpGetDirDepth=t.fpReplaceCwd=t.fpRemoveFirstPathSep=t.fpRemoveDrivePath=t.fpRemoveLastPathSep=t.fpTimes=t.fpAddDotPath=t.fpRefineStartSlash=t.fpRefinePathSep=t.fpRemoveExt=t.fpRemoveExtWithTSX=t.fastGlobWrap=t.winify=t.replaceSepToPosix=t.settify=t.getDirname=t.exists=void 0;const o=r(655),n=(0,o.__importDefault)(r(479)),i=(0,o.__importStar)(r(431)),a=r(686),l=(0,o.__importStar)(r(147)),s=r(352),c=(0,o.__importStar)(r(17));async function p(e){try{const t=await l.promises.access(e);return(0,s.isEmpty)(t)}catch(e){return!1}}function f(e){if("/"!==c.sep){const t=c.posix.join(...e.split(c.sep));return e.startsWith(c.sep)?`${c.posix.sep}${t}`:t}return e}t.exists=p,t.getDirname=async function(e,t){try{if((await l.promises.lstat(e)).isDirectory())return null!=t&&t?e:c.resolve(e);const r=c.dirname(e);if((0,s.isFalse)(await p(r)))throw new Error(`Cannot found dirname: ${r}`);return null!=t&&t?r:c.resolve(r)}catch(t){throw t instanceof Error?t:new Error(`unknown error from dirname: ${e}`)}},t.settify=function(e){return Array.from(new Set(e))},t.replaceSepToPosix=f,t.winify=function(e){return e.replace(/\//g,c.sep)},t.fastGlobWrap=async function(e,t){const r=(Array.isArray(e)?e:[e]).map((e=>f(e)));return(await(0,n.default)(r,t)).map((e=>e.replace(/\//g,c.sep)))},t.fpRemoveExtWithTSX=e=>(0,a.pipe)(e,(e=>e.replace(/\.d\.ts$/,"")),(e=>e.replace(/\.tsx$/,"")),(e=>e.replace(/\.ts$/,""))),t.fpRemoveExt=e=>(0,a.pipe)(e,(e=>e.replace(/\.d\.ts$/,"")),(e=>"/index.tsx"!==e&&"index.tsx"!==e?e.replace(/\.tsx$/,""):e),(e=>e.replace(/\.ts$/,""))),t.fpRefinePathSep=e=>(0,a.pipe)(e,(e=>"/"!==c.sep?i.left(e):i.right(e)),i.fold((e=>e.replace(new RegExp(c.sep.replace("\\","\\\\"),"g"),"/")),(e=>e))),t.fpRefineStartSlash=e=>(0,a.pipe)(e,(e=>e.startsWith("/")?i.left(e):i.right(e)),i.fold((e=>e.substring(1,e.length)),(e=>e))),t.fpAddDotPath=e=>(0,a.pipe)(e,(e=>e.startsWith(".")?i.left(e):i.right(e)),i.fold((e=>e),(e=>`./${e}`))),t.fpTimes=(e,t=!0)=>(0,a.pipe)(e,(e=>new Array(e).fill(0)),(e=>e.map(((e,r)=>r+(t?0:1))))),t.fpRemoveLastPathSep=e=>(0,a.pipe)(e,(e=>e.endsWith(c.sep)?i.left(e):i.right(e)),i.fold((e=>e.substring(0,e.length-1>0?e.length-1:e.length)),(e=>e))),t.fpRemoveDrivePath=e=>(0,a.pipe)(e,(e=>e.replace(/^([A-Za-z]:)(.+)/,"$2"))),t.fpRemoveFirstPathSep=e=>(0,a.pipe)(e,(e=>e.startsWith(c.sep)?i.left(e):i.right(e)),i.fold((e=>e.substring(e.length-1>0?1:0,e.length)),(e=>e))),t.fpReplaceCwd=(e,r)=>(0,a.pipe)(e,(e=>(0,t.fpRemoveLastPathSep)(e)),(e=>e===(0,t.fpRemoveLastPathSep)(r)?i.left(e):i.right(e)),i.fold((()=>""),(0,a.flow)((e=>e.endsWith(c.sep)?i.left(e):i.right(e)),i.fold((e=>e),(e=>`${e}${c.sep}`)),(e=>r.replace(e,"")),(e=>(0,t.fpRemoveDrivePath)(e))))),t.fpGetDirDepth=(e,r)=>(0,a.pipe)(e,(e=>(0,t.fpReplaceCwd)(e,r)),(e=>e.split(c.sep)),(e=>e.filter((e=>""!==e))),(e=>e.length)),t.getParentPath=e=>(0,a.pipe)(e,(e=>e.split(c.sep)),(e=>e.slice(0,e.length-1)),(e=>e.join(c.sep)),(e=>c.resolve(e)))},395:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getTypeScriptExportStatement=t.getTypeScriptSource=t.getTypeScriptConfig=void 0;const o=r(655),n=(0,o.__importDefault)(r(974)),i=(0,o.__importStar)(r(431)),a=(0,o.__importStar)(r(686)),l=r(352),s=(0,o.__importDefault)(r(17)),c=(0,o.__importDefault)(r(7)),p=r(734),f=r(887),u=(0,n.default)("ctix:tsfiles"),d=({cliPath:e,tsconfigResolved:t,tsconfigInCliPath:r})=>async()=>await(0,p.exists)(t)?i.right(t):await(0,p.exists)(r)?i.right(s.default.join(e,t)):i.left(new Error(`Cannot found ${t} in ${process.cwd()} or ${e}`));t.getTypeScriptConfig=({tsconfigPath:e})=>async()=>{try{const t=process.cwd(),r=s.default.join(t,"tsconfig.json"),o=(0,l.isNotEmpty)(e)?s.default.resolve(e):s.default.resolve(r),n=await a.flow((()=>({cliPath:t,tsconfigInCliPath:r,tsconfigResolved:o})),d)()();if(i.isLeft(n))return i.left(new Error(`Cannot found ${o} in ${t} or ${t}`));const p={fileExists:c.default.sys.fileExists,readFile:c.default.sys.readFile,readDirectory:c.default.sys.readDirectory,useCaseSensitiveFileNames:!0},f=c.default.readConfigFile(n.right,c.default.sys.readFile),m=c.default.parseJsonConfigFileContent(f.config,p,s.default.dirname(n.right));return u("tsconfig filenames: ",m.fileNames),i.right(m)}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return i.left(t)}},t.getTypeScriptSource=({tsconfig:e,ignores:t})=>async()=>{try{const r=new Map(t.map((e=>s.default.resolve(e))).map((e=>[e,!0]))),o=e.fileNames.map((e=>s.default.resolve(e))).filter((e=>{var t;return(0,l.isFalse)(null!==(t=r.get(e))&&void 0!==t&&t)}));u("typescript configed files: ",e.fileNames),u("typescript process ignored files: ",o);const n=c.default.createProgram(o,e.options);return(0,l.isEmpty)(n)?i.left(new Error("invalid source file")):i.right({program:n,filenames:o})}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return i.left(t)}},t.getTypeScriptExportStatement=async function({program:e,filenames:t}){try{const r=new Map(t.map((e=>[(0,p.replaceSepToPosix)(e),!0]))),o=await Promise.all(e.getSourceFiles().filter((e=>{var t;return null!==(t=r.get(e.fileName))&&void 0!==t&&t})).map((e=>e.statements.map((t=>(0,f.delintNode)({filename:e.fileName,source:t}))))).flatMap((e=>e))),n=o.map((e=>e.export.map((t=>({filename:e.filename,exported:t}))))).flatMap((e=>e)).map((e=>e.filename)).filter((e=>(0,l.isNotEmpty)(e))).map((e=>(0,p.winify)(e))),a=new Set(n),s=Array.from(a).sort(((e,t)=>e.localeCompare(t))),c=o.map((e=>e.default.map((t=>({filename:e.filename,defaulted:t}))))).flatMap((e=>e)).map((e=>e.filename)).map((e=>(0,p.winify)(e))),d=new Set(c),m=Array.from(d).sort(((e,t)=>e.localeCompare(t)));return u("file-1: ",e.getSourceFiles().map((e=>e.fileName)).filter((e=>e.indexOf("node_modules")<0))),u("file-2: ",t),u("export file: ",n," default file: ",c),i.right({program:e,exportFilenames:s,defaultExportFilenames:m})}catch(e){return i.left(e)}}},887:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.delintNode=t.hasExportModifiers=void 0;const o=r(655),n=(0,o.__importDefault)(r(974)),i=(0,o.__importStar)(r(397)),a=r(281),l=r(352),s=(0,o.__importDefault)(r(7)),c=(0,n.default)("ctixd:ignore-tool");t.hasExportModifiers=e=>(0,a.pipe)(e,(e=>e.modifiers),(e=>(0,l.isEmpty)(e)?i.left("none"):i.right(e)),i.fold((e=>e),(e=>{var t,r;const o=null!==(t=e.some((e=>e.kind===s.default.SyntaxKind.ExportKeyword)))&&void 0!==t&&t,n=null!==(r=null==e?void 0:e.some((e=>e.kind===s.default.SyntaxKind.DefaultKeyword)))&&void 0!==r&&r;return o&&n?"default":o&&(0,l.isFalse)(n)?"exported":"none"}))),t.delintNode=async function({source:e,filename:r}){const o=[],n=[];c("delintNode: ",r);let i="";const a=e=>{switch(e.kind){case s.default.SyntaxKind.VariableStatement:case s.default.SyntaxKind.InterfaceDeclaration:case s.default.SyntaxKind.TypeAliasDeclaration:case s.default.SyntaxKind.FunctionDeclaration:case s.default.SyntaxKind.ClassDeclaration:case s.default.SyntaxKind.EnumDeclaration:i=(0,t.hasExportModifiers)(e),"default"===i&&n.push(e),"exported"===i&&o.push(e);break;case s.default.SyntaxKind.ExportAssignment:n.push(e)}s.default.forEachChild(e,a)};return a(e),{filename:r,export:o,default:n}}},453:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.write=t.getSingleFileWriteContents=t.getWriteContents=t.getModuleDir=void 0;const o=r(655),n=r(734),i=r(110),a=(0,o.__importDefault)(r(635)),l=(0,o.__importDefault)(r(974)),s=(0,o.__importStar)(r(431)),c=(0,o.__importStar)(r(686)),p=(0,o.__importStar)(r(972)),f=(0,o.__importStar)(r(147)),u=r(352),d=(0,o.__importStar)(r(17)),m=r(138),g=(0,l.default)("ctix:write");async function h({filename:e,replacer:t,configMap:r}){var o;const i=d.dirname(e);g("createExportContents: ",i);try{const a=r.get(i),l=null!==(o=null==a?void 0:a.option.quote)&&void 0!==o?o:"'",s=t({dirname:i,filename:e}),p=`export * from ${l}${c.flow(n.fpRefinePathSep,n.fpRemoveExt,n.fpRefineStartSlash,n.fpAddDotPath)(s)}${l}`;return{dirname:await(0,n.getDirname)(e),content:p}}catch(t){const r=t instanceof Error?t:new Error("unknown error raised");return g(r.message),g(r.stack),{dirname:d.dirname(e),content:void 0}}}async function y({filename:e,replacer:t,configMap:r}){var o;const a=d.dirname(e);try{const l=r.get(a),s=null!==(o=null==l?void 0:l.option.quote)&&void 0!==o?o:"'",p=t({dirname:a,filename:e}),f=c.flow(n.fpRefinePathSep,n.fpRemoveExt,n.fpRefineStartSlash,n.fpAddDotPath)(p),u=c.flow(n.fpRefinePathSep,n.fpRemoveExtWithTSX)(p),d=`export { default as ${(0,i.camelCase)(u)} } from ${s}${f}${s}`;return{dirname:await(0,n.getDirname)(e),content:d}}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return g(t.message),g(t.stack),{dirname:a,content:void 0}}}function w({project:e,configMap:t,filenames:r}){const o=r.map((t=>{const r=d.dirname(t);return{depth:r.replace(e,"").split(d.sep).length-1,dirname:r,filename:t}})).sort(((e,t)=>{const r=t.depth-e.depth;return 0===r?t.filename.localeCompare(e.filename):r})),[i]=o,a=i.depth;g("dirs: ",a,o);const l=(0,n.fpTimes)(a).map((e=>{const r=o.filter((t=>t.depth===e));return g("current depth: ",e),r.map((r=>{var i,a;const l=o.filter((t=>t.dirname.indexOf(r.dirname)>=0&&t.dirname!==r.dirname&&t.depth-e==1)),s=t.get(r.dirname),p=null!==(i=null==s?void 0:s.option)&&void 0!==i?i:(0,m.defaultOption)(),f=null!==(a=null==s?void 0:s.option.quote)&&void 0!==a?a:"'",u=(0,n.settify)(l.map((e=>d.dirname(e.filename))));if("index.ts"===p.exportFilename||"index.d.ts"===p.exportFilename){const e=u.map((e=>{const t=c.flow(n.fpRefinePathSep,n.fpRemoveExt,n.fpRefineStartSlash)(e.replace(r.dirname,""));return`export * from ${f}./${t}${f}`}));return{dirname:r.dirname,content:e}}const g=u.map((e=>{const t=c.flow(n.fpRefinePathSep,n.fpRemoveExt,n.fpRefineStartSlash)(d.join(e.replace(r.dirname,""),p.exportFilename));return`export * from ${f}./${t}${f}`}));return{dirname:r.dirname,content:g}}))})).flatMap((e=>e)),s=new Map(l.map((e=>[e.dirname,e.content]))),p=Array.from(s.entries()).map((([e,t])=>({dirname:e,content:t}))).filter((e=>Array.isArray(e.content)&&e.content.length>0));return g("module directory: ",p),p.map((e=>e.content.map((t=>({dirname:e.dirname,content:t}))))).flatMap((e=>e))}t.getModuleDir=w,t.getWriteContents=async function(e){try{const t=new Map(e.optionObjects.map((e=>[e.dir,e]))),[r]=e.optionObjects,o=d.resolve(d.dirname(r.option.project));g("exportFilenames: ",e.exportFilenames),g("defaultExportFilenames: ",e.defaultExportFilenames);const n=e=>d.relative(e.dirname,e.filename),i=(await Promise.all(e.exportFilenames.map((e=>h({filename:e,configMap:t,replacer:n}))))).filter((e=>(0,u.isNotEmpty)(e.content))),a=(await Promise.all(e.defaultExportFilenames.map((e=>y({filename:e,configMap:t,replacer:n}))))).filter((e=>(0,u.isNotEmpty)(e.content))),l=w({project:o,configMap:t,filenames:e.exportFilenames.concat(e.defaultExportFilenames)}),c=i.concat(a).concat(l).reduce(((e,t)=>{const r=e;return(0,u.isEmpty)(e[t.dirname])&&(r[t.dirname]=[]),(0,u.isNotEmpty)(t.content)&&(r[t.dirname]=[...r[t.dirname],t.content]),r}),{}),p=Object.entries(c).map((([e,t])=>({pathname:e,content:t}))).sort(((e,t)=>e.pathname.localeCompare(t.pathname)));return s.right(p)}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return s.left(t)}},t.getSingleFileWriteContents=async function(e){try{const t=new Map(e.optionObjects.map((e=>[e.dir,e])));g("exportFilenames: ",e.exportFilenames),g("defaultExportFilenames: ",e.defaultExportFilenames);const r=await(async(e,t)=>{if((0,u.isFalse)(t.useRootDir))return d.resolve(await(0,n.getDirname)(t.outputDir));const r=(e=>{if(void 0!==e.rootDir&&null!==e.rootDir)return d.resolve(e.rootDir);if(void 0!==e.rootDirs&&null!==e.rootDirs){const[t]=e.rootDirs;return d.resolve(t)}})(e.getCompilerOptions());if(null!=r){const e=await(0,n.getDirname)(t.outputDir);return d.relative(r,e).startsWith("..")?r:d.resolve(e)}return d.resolve(await(0,n.getDirname)(t.outputDir))})(e.program,e.rootOptions),o=e=>d.relative(r,e.filename),i=(await Promise.all(e.exportFilenames.map((e=>h({filename:e,configMap:t,replacer:o}))))).filter((e=>(0,u.isNotEmpty)(e.content))),a=(await Promise.all(e.defaultExportFilenames.map((e=>y({filename:e,configMap:t,replacer:o}))))).filter((e=>(0,u.isNotEmpty)(e.content))),l=i.concat(a).reduce(((e,t)=>{const o=e;return(0,u.isEmpty)(o[r])&&(o[r]=[]),(0,u.isNotEmpty)(t.content)&&(o[r]=[...o[r],t.content]),o}),{}),c=Object.entries(l).map((([e,t])=>({pathname:e,content:t})));return s.right(c)}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return s.left(t)}},t.write=async function(e){try{const t=new Map(e.optionObjects.map((e=>[e.dir,e]))),r=async e=>{var r;g("current: ",e.pathname);const o=null!==(r=t.get(e.pathname))&&void 0!==r?r:{dir:e.pathname,depth:0,exists:!1,option:(0,m.defaultOption)()},i=o.option.exportFilename,l=d.resolve(e.pathname,i),h=d.resolve(e.pathname,`${i}.bak`);if((0,u.isTrue)(o.option.useBackupFile)&&await(0,n.exists)(l)){const e=await c.pipe(p.taskify(f.readFile)(l),p.chain((e=>p.taskify(f.writeFile)(h,e))))();if(s.isLeft(e))return g("error caused from backup write, ..."),g(e.left.message),g(e.left.stack),s.left(e.left)}const y=(0,a.default)(),w=c.pipe(o.option.useComment?"// created from ctix":"",(e=>o.option.useComment&&o.option.useTimestamp?`${e} ${y.format("YYYY-MM-DD HH:mm:ss")}`:e),(e=>""!==e?`${e}\n\n`:e)),v=Buffer.from(`${w}${e.content.map((e=>o.option.useSemicolon?`${e};`:e)).join("\n")}${o.option.addNewline?"\n":""}`,"utf8"),x=await p.taskify(f.writeFile)(l,v)();return s.isLeft(x)?(g(`error caused from ${i} write, ...`),g(x.left.message),g(x.left.stack),s.left(x.left)):s.right(1)},o=(await Promise.all(e.contents.map((e=>r(e))))).map((e=>s.isRight(e)?1:0)).reduce(((e,t)=>e+t));return g("successfully writed index: ",o),s.right(o)}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return s.left(t)}}},655:(e,t,r)=>{r.r(t),r.d(t,{__extends:()=>n,__assign:()=>i,__rest:()=>a,__decorate:()=>l,__param:()=>s,__metadata:()=>c,__awaiter:()=>p,__generator:()=>f,__createBinding:()=>u,__exportStar:()=>d,__values:()=>m,__read:()=>g,__spread:()=>h,__spreadArrays:()=>y,__spreadArray:()=>w,__await:()=>v,__asyncGenerator:()=>x,__asyncDelegator:()=>b,__asyncValues:()=>_,__makeTemplateObject:()=>S,__importStar:()=>j,__importDefault:()=>P,__classPrivateFieldGet:()=>F,__classPrivateFieldSet:()=>O});var o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},o(e,t)};function n(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var i=function(){return i=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},i.apply(this,arguments)};function a(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]])}return r}function l(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var l=e.length-1;l>=0;l--)(n=e[l])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a}function s(e,t){return function(r,o){t(r,o,e)}}function c(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function p(e,t,r,o){return new(r||(r=Promise))((function(n,i){function a(e){try{s(o.next(e))}catch(e){i(e)}}function l(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,l)}s((o=o.apply(e,t||[])).next())}))}function f(e,t){var r,o,n,i,a={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,o&&(n=2&i[0]?o.return:i[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,i[1])).done)return n;switch(o=0,n&&(i=[2&i[0],n.value]),i[0]){case 0:case 1:n=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,o=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((n=(n=a.trys).length>0&&n[n.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!n||i[1]>n[0]&&i[1]<n[3])){a.label=i[1];break}if(6===i[0]&&a.label<n[1]){a.label=n[1],n=i;break}if(n&&a.label<n[2]){a.label=n[2],a.ops.push(i);break}n[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],o=0}finally{r=n=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}}var u=Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]};function d(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||u(t,e,r)}function m(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],o=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var o,n,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(o=i.next()).done;)a.push(o.value)}catch(e){n={error:e}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}return a}function h(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(g(arguments[t]));return e}function y(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var o=Array(e),n=0;for(t=0;t<r;t++)for(var i=arguments[t],a=0,l=i.length;a<l;a++,n++)o[n]=i[a];return o}function w(e,t,r){if(r||2===arguments.length)for(var o,n=0,i=t.length;n<i;n++)!o&&n in t||(o||(o=Array.prototype.slice.call(t,0,n)),o[n]=t[n]);return e.concat(o||Array.prototype.slice.call(t))}function v(e){return this instanceof v?(this.v=e,this):new v(e)}function x(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,n=r.apply(e,t||[]),i=[];return o={},a("next"),a("throw"),a("return"),o[Symbol.asyncIterator]=function(){return this},o;function a(e){n[e]&&(o[e]=function(t){return new Promise((function(r,o){i.push([e,t,r,o])>1||l(e,t)}))})}function l(e,t){try{(r=n[e](t)).value instanceof v?Promise.resolve(r.value.v).then(s,c):p(i[0][2],r)}catch(e){p(i[0][3],e)}var r}function s(e){l("next",e)}function c(e){l("throw",e)}function p(e,t){e(t),i.shift(),i.length&&l(i[0][0],i[0][1])}}function b(e){var t,r;return t={},o("next"),o("throw",(function(e){throw e})),o("return"),t[Symbol.iterator]=function(){return this},t;function o(o,n){t[o]=e[o]?function(t){return(r=!r)?{value:v(e[o](t)),done:"return"===o}:n?n(t):t}:n}}function _(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=m(e),t={},o("next"),o("throw"),o("return"),t[Symbol.asyncIterator]=function(){return this},t);function o(r){t[r]=e[r]&&function(t){return new Promise((function(o,n){!function(e,t,r,o){Promise.resolve(o).then((function(t){e({value:t,done:r})}),t)}(o,n,(t=e[r](t)).done,t.value)}))}}}function S(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var E=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function j(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&u(t,e,r);return E(t,e),t}function P(e){return e&&e.__esModule?e:{default:e}}function F(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)}function O(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r}},22:e=>{e.exports=require("chalk")},110:e=>{e.exports=require("change-case")},932:e=>{e.exports=require("cli-ux")},635:e=>{e.exports=require("dayjs")},974:e=>{e.exports=require("debug")},330:e=>{e.exports=require("deepmerge")},479:e=>{e.exports=require("fast-glob")},819:e=>{e.exports=require("fp-ts/Apply")},431:e=>{e.exports=require("fp-ts/Either")},972:e=>{e.exports=require("fp-ts/TaskEither")},686:e=>{e.exports=require("fp-ts/function")},397:e=>{e.exports=require("fp-ts/lib/Either")},281:e=>{e.exports=require("fp-ts/lib/pipeable")},959:e=>{e.exports=require("json5")},352:e=>{e.exports=require("my-easy-fp")},837:e=>{e.exports=require("parse-gitignore")},261:e=>{e.exports=require("source-map-support")},7:e=>{e.exports=require("typescript")},392:e=>{e.exports=require("yargs")},147:e=>{e.exports=require("fs")},17:e=>{e.exports=require("path")}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,r),i.exports}r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};(()=>{var e=o;Object.defineProperty(e,"__esModule",{value:!0});const t=r(655),n=r(930),i=r(181),a=r(138),l=r(981),s=(0,t.__importDefault)(r(900)),c=r(734),p=r(395),f=r(453),u=(0,t.__importDefault)(r(22)),d=(0,t.__importDefault)(r(932)),m=(0,t.__importDefault)(r(974)),g=(0,t.__importStar)(r(819)),h=(0,t.__importStar)(r(431)),y=(0,t.__importStar)(r(686)),w=(0,t.__importStar)(r(972)),v=(0,t.__importStar)(r(147)),x=(0,t.__importStar)(r(17)),b=(0,t.__importDefault)(r(261)),_=(0,t.__importDefault)(r(392)),S=(0,m.default)("ctix:cli-tool");function E(e){return e.option("addNewline",{alias:"n",describe:"add newline on EOF",type:"boolean"}).option("useSemicolon",{alias:"s",describe:"add semicolon on every export statement",type:"boolean"}).option("useTimestamp",{alias:"m",describe:"timestamp write on ctix comment right-side, only works in useComment option set true",type:"boolean"}).option("useComment",{alias:"c",describe:"add ctix comment at first line of creted index.ts file, that remark created from ctix",type:"boolean"}).option("quote",{alias:"q",describe:"change quote character at export syntax",type:"string"}).option("useBackupFile",{alias:"b",describe:"created backup file if exists index.ts file already in directory",type:"boolean"}),e}async function j(e,t){if(await(0,c.exists)(e))return x.resolve(e);if(await(0,c.exists)(t))return x.resolve(t);throw new Error(`invalid project path, don't exist: ${e} or ${null!=t?t:""}`)}b.default.install(),(0,_.default)(process.argv.slice(2)).command({command:"$0 [tsconfigPath]",aliases:"create [tsconfigPath]",builder:e=>E(e),handler:async e=>{var t,r,o,n;s.default.switch(null!==(t=e.verbose)&&void 0!==t&&t);const m=new i.Counter(null!==(r=e.verbose)&&void 0!==r&&r);try{const t=await j(e.tsconfigPath,e.project),r=x.resolve(t),i=await(0,c.getDirname)(r,!0);process.chdir(i),d.default.action.start(u.default`{yellow ctix} ${null!==(o=e.exportFilename)&&void 0!==o?o:"index.ts"} file create mode:`,"initializing",{stdout:!0});const v={...(0,a.getNonEmptyOption)(e,t),resolvedProjectDirPath:i,resolvedProjectFilePath:r};s.default.debug(u.default`{yellow ctix - ${m.debug}:} {blueBright [info]} project directory: ${t}`),s.default.log(u.default`{yellow ctix - ${m.log}:} read ignore file, tsconfig file, cti config {green complete}`),d.default.action.status="processing ...";const b=await g.sequenceT(w.ApplicativeSeq)(y.pipe((0,l.getIgnoreFiles)(i),w.chain(l.getIgnoreFileContents),w.chain(l.getIgnoredContents)),(0,p.getTypeScriptConfig)({tsconfigPath:r}),y.pipe((0,a.getCTIXOptions)({projectPath:r}),w.chain((e=>(0,a.getMergedConfig)({projectPath:r,optionObjects:e,cliOption:v})))))();if(h.isLeft(b))throw b.left;const[_,S,E]=b.right;s.default.log(u.default`{yellow ctix - ${m.log}:} typescript source file parsing {green compile} `),d.default.action.status="processing ...",s.default.debug(u.default`{yellow ctix - ${m.debug}:} {blueBright [info]} ignore content - ${_.ignores.length}`),s.default.debug(u.default`{yellow ctix - ${m.debug}:} {blueBright [info]} typescript file - ${S.fileNames.length}`),s.default.debug(u.default`{yellow ctix - ${m.debug}:} {blueBright [info]} config file - ${E.length}`);const P=await y.pipe(w.right({tsconfig:S,ignores:_.ignores}),w.chain(p.getTypeScriptSource),w.chain((e=>()=>(0,p.getTypeScriptExportStatement)({program:e.program,filenames:e.filenames}))))();if(h.isLeft(P))throw P.left;s.default.log(u.default`{yellow ctix - ${m.log}:} ${null!==(n=e.exportFilename)&&void 0!==n?n:"index.ts"} write on project directory {green compile}`);const F=await(0,f.getWriteContents)({...P.right,optionObjects:E});if(h.isLeft(F))throw F.left;await(0,f.write)({contents:F.right,optionObjects:E})}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");s.default.error(u.default`{red error} message below, `),s.default.error(t.message)}finally{d.default.action.stop("complete")}}}).command({command:"single [tsconfigPath]",aliases:["entrypoint [tsconfigPath]"],builder:e=>{const t=E(e);return t.option("useRootDir",{alias:"r",describe:"output file under rootDir in tsconfig.json",type:"boolean"}),t},handler:async e=>{var t,r,o,n;s.default.switch(null!==(t=e.verbose)&&void 0!==t&&t);const m=new i.Counter(null!==(r=e.verbose)&&void 0!==r&&r);try{const t=await j(e.tsconfigPath,e.project),r=x.resolve(t),i=await(0,c.getDirname)(r,!0);process.chdir(i),d.default.action.start(u.default`{yellow ctix} single ${null!==(o=e.exportFilename)&&void 0!==o?o:"index.ts"} file create mode:`,"initializing",{stdout:!0});const v={...(0,a.getNonEmptyOption)(e,t),resolvedProjectDirPath:i,resolvedProjectFilePath:r};s.default.debug(u.default`{yellow ctix - ${m.debug}:} {blueBright [info]} project directory: ${t}`),s.default.log(u.default`{yellow ctix - ${m.log}:} read ignore file, tsconfig file, cti config {green complete}`),d.default.action.status="processing ...";const b=await g.sequenceT(w.ApplicativeSeq)(y.pipe((0,l.getIgnoreFiles)(i),w.chain(l.getIgnoreFileContents),w.chain(l.getIgnoredContents)),(0,p.getTypeScriptConfig)({tsconfigPath:t}),y.pipe((0,a.getCTIXOptions)({projectPath:r}),w.chain((e=>(0,a.getMergedConfig)({projectPath:r,optionObjects:e,cliOption:v})))))();if(h.isLeft(b))throw b.left;const[_,S,E]=b.right;s.default.log(u.default`{yellow ctix - ${m.log}:} typescript source file parsing {green compile} `),d.default.action.status="processing ...",s.default.debug(u.default`{yellow ctix - ${m.debug}:} {blueBright [info]} ignore content - ${_.ignores.length}`),s.default.debug(u.default`{yellow ctix - ${m.debug}:} {blueBright [info]} typescript file - ${S.fileNames.length}`),s.default.debug(u.default`{yellow ctix - ${m.debug}:} {blueBright [info]} config file - ${E.length}`);const P=await y.pipe(w.right({tsconfig:S,ignores:_.ignores}),w.chain(p.getTypeScriptSource),w.chain((e=>()=>(0,p.getTypeScriptExportStatement)({program:e.program,filenames:e.filenames}))))();if(h.isLeft(P))throw P.left;s.default.log(u.default`{yellow ctix - ${m.log}:} ${null!==(n=e.exportFilename)&&void 0!==n?n:"index.ts"} write on project directory {green compile}`);const F=await(0,f.getSingleFileWriteContents)({...P.right,optionObjects:E,rootOptions:v});if(h.isLeft(F))throw F.left;await(0,f.write)({contents:F.right,optionObjects:E})}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");s.default.error(u.default`{red error} message below, `),s.default.error(t.message)}finally{d.default.action.stop("complete")}}}).command({command:"clean [tsconfigPath]",builder:e=>(e.option("includeBackup",{alias:"b",describe:"clean with backup file",default:!1,type:"boolean"}),e),handler:async e=>{var t,r,o;const l=new i.Counter(null!==(t=e.verbose)&&void 0!==t&&t);s.default.switch(null!==(r=e.verbose)&&void 0!==r&&r);try{const t=await j(e.tsconfigPath,e.project),r=x.resolve(t),i=await(0,c.getDirname)(r,!0);process.chdir(i),S("path.resolve in ctix.ts: ",x.resolve(t)),d.default.action.start(u.default`{yellow ctix} ${null!==(o=e.exportFilename)&&void 0!==o?o:"index.ts"} file clean mode:`,"initializing",{stdout:!0});const p={...(0,a.getNonEmptyOption)(e,t),resolvedProjectDirPath:i,resolvedProjectFilePath:r};S("clean option: ",p);const f=await y.pipe((0,n.getCleanFilenames)({cliOption:p,includeBackupFrom:e.includeBackup}),w.chain((e=>()=>(s.default.log(u.default`{yellow ctix - ${l.log}:} clean file find {green complete}`),s.default.debug(u.default`{yellow ctix - ${l.debug}:} {blueBright [info]} clean file - ${e.length}`),(0,n.clean)({filenames:e})))))();if(h.isLeft(f))throw f.left;s.default.log(u.default`{yellow ctix - ${l.log}:} clean action {green complete}`)}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");s.default.error(u.default`{red error} message below, `),s.default.error(t.message)}finally{d.default.action.stop("complete")}}}).command({command:"init [tsconfigPath]",builder:e=>e,handler:async e=>{var t,r;const o=new i.Counter(null!==(t=e.verbose)&&void 0!==t&&t);s.default.switch(null!==(r=e.verbose)&&void 0!==r&&r);try{const t=await j(e.tsconfigPath,e.project);d.default.action.start(u.default`{yellow ctix} generate .ctirc:`,"initializing",{stdout:!0}),s.default.log(u.default`{yellow ctix - ${o.log}:} default option generation {green compile} `),d.default.action.status="processing ...";const r={...(0,a.defaultOption)()};delete r.project,delete r.verbose;const n=x.dirname(t);await v.promises.writeFile(x.join(n,".ctirc"),JSON.stringify(r)),s.default.log(u.default`{yellow ctix - ${o.log}:} .ctirc file write {green compile} `),d.default.action.status="processing ..."}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");s.default.error(u.default`{red error} message below, `),s.default.error(t.message)}finally{d.default.action.stop("complete")}}}).option("project",{alias:"p",describe:'tsconfig.json path: you must pass path with filename, like this "./tsconfig.json"',type:"string"}).option("exportFilename",{alias:"f",describe:'Export filename, if you not pass this field that use "index.ts" or "index.d.ts"',type:"string"}).option("verbose",{alias:"v",describe:"display more detailed log",type:"boolean"}).help().argv})();var n=exports;for(var i in o)n[i]=o[i];o.__esModule&&Object.defineProperty(n,"__esModule",{value:!0})})(); | ||
(()=>{"use strict";var e={181:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Counter=void 0,t.Counter=class{constructor(e){this.count=0,this.verbose=e}get log(){return this.count+=1,this.count}get debug(){return this.count+=this.verbose?1:0,this.count}}},900:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Logger=void 0;class r{constructor(){this._log=console.log,this._debug=()=>{},this._error=console.error}log(...e){this._log(...e)}debug(...e){this._debug(...e)}error(...e){this._error(...e)}switch(e){e?(this._log=console.log,this._debug=console.debug,this._error=console.error):(this._log=console.log,this._debug=()=>{},this._error=console.error)}}t.Logger=r;const o=new r;t.default=o},930:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.clean=t.getCleanFilenames=void 0;const o=r(655),n=r(138),i=o.__importDefault(r(974)),a=o.__importStar(r(431)),l=o.__importStar(r(686)),s=o.__importStar(r(972)),c=o.__importStar(r(147)),p=r(352),f=o.__importStar(r(17)),u=r(734),d=(0,i.default)("ctix:clean-tool");t.getCleanFilenames=({cliOption:e,includeBackupFrom:t})=>async()=>{var r,o;try{const i=(0,n.defaultOption)(),c=null!==(r=null==e?void 0:e.resolvedProjectFilePath)&&void 0!==r?r:i.project,m=null!==(o=null==e?void 0:e.resolvedProjectDirPath)&&void 0!==o?o:i.project,g=null==t||t;if((0,p.isFalse)(await(0,u.exists)(c)))return a.left(new Error(`invalid tsconfig.json path: ${c}`));const h=await l.pipe((0,n.getCTIXOptions)({projectPath:c}),s.chain((t=>(0,n.getMergedConfig)({projectPath:c,cliOption:null!=e?e:i,optionObjects:t}))))();if(a.isLeft(h))return a.left(h.left);const y=(0,u.settify)(h.right.filter((e=>e.dir.indexOf("node_modules")<0)).map((e=>f.join(e.dir,"**",e.option.exportFilename)))),w=(0,u.settify)(h.right.map((e=>f.join(e.dir,"**",`${e.option.exportFilename}.bak`)))),v=await(0,u.fastGlobWrap)(g?y.concat(w).map((e=>(0,u.replaceSepToPosix)(e))):y.map((e=>(0,u.replaceSepToPosix)(e))),{dot:!0,cwd:m,ignore:[(0,u.replaceSepToPosix)(f.join(c,"**","node_modules","**"))]}),x=v.filter((e=>e.startsWith(m)));return d("resolved: ",c,y,v,x),a.right(x)}catch(e){const t=e instanceof Error?e:new Error("unknown error raised from getCleanFilenames");return d("Error raised: ",t.message),d("Error raised: ",t.stack),a.left(t)}},t.clean=async function({filenames:e}){try{const t=(await Promise.all(e.map((e=>async function(e){try{return await c.promises.unlink(e),a.right(!0)}catch(e){const t=e instanceof Error?e:new Error("unknown error raised from unlink");return d("Error raised: ",t.message),d("Error raised: ",t.stack),a.left(t)}}(e))))).map((e=>a.isLeft(e)?e.left.message:"")).filter((e=>""!==e));return t.length>0?a.left(new Error(`invalid filename and path: ${t.join("\n")}`)):a.right(!0)}catch(e){const t=e instanceof Error?e:new Error("unknown error raised from clean");return d("Error raised: ",t.message),d("Error raised: ",t.stack),a.left(t)}}},138:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getConfigFiles=t.getMergedConfig=t.getCTIXOptions=t.getNonEmptyOption=t.readOptionFile=t.defaultOption=t.getExportFilename=void 0;const o=r(655),n=r(734),i=o.__importDefault(r(974)),a=o.__importDefault(r(330)),l=o.__importStar(r(431)),s=o.__importStar(r(686)),c=o.__importStar(r(147)),p=o.__importDefault(r(959)),f=r(352),u=o.__importDefault(r(17)),d=o.__importDefault(r(900)),m=r(734),g=(0,i.default)("ctix:config-test-case");function h(e){var t,r;const o=null!==(t=null==e?void 0:e.project)&&void 0!==t?t:u.default.join(process.cwd(),"tsconfig.json");return{addNewline:!0,useSemicolon:!0,useTimestamp:!1,useComment:!0,exportFilename:null!==(r=null==e?void 0:e.exportFilename)&&void 0!==r?r:"index.ts",quote:"'",verbose:!1,useBackupFile:!0,outputDir:o,useRootDir:!1,project:o}}async function y(e,t){var r;try{const t=await c.promises.readFile(e),r=p.default.parse(t.toString());return["project","addNewline","useSemicolon","useTimestamp","useComment","quote","verbose","useBackupFile","exportFilename","useRootDir"].reduce(((e,t)=>{const o=e;return(0,f.isNotEmpty)(r[t])&&(o[t]=r[t]),o}),{})}catch(o){const n=o instanceof Error?o:new Error("unknown error raised");return d.default.error(`Error caused from ${e}`),d.default.error(null!==(r=n.message)&&void 0!==r?r:""),g("---------------------------------------------------------------------------"),g("Error caused from readOptionFile"),g(n.message),g(n.stack),g("---------------------------------------------------------------------------"),h({project:t})}}function w(e,t){var r,o,n,i,a,l,s,c,p,f,u;const d="string"==typeof t?h({project:t}):t;return{project:null!==(r=null==e?void 0:e.project)&&void 0!==r?r:d.project,addNewline:null!==(o=null==e?void 0:e.addNewline)&&void 0!==o?o:d.addNewline,useSemicolon:null!==(n=null==e?void 0:e.useSemicolon)&&void 0!==n?n:d.useSemicolon,useTimestamp:null!==(i=null==e?void 0:e.useTimestamp)&&void 0!==i?i:d.useTimestamp,useComment:null!==(a=null==e?void 0:e.useComment)&&void 0!==a?a:d.useComment,quote:null!==(l=null==e?void 0:e.quote)&&void 0!==l?l:d.quote,verbose:null!==(s=null==e?void 0:e.verbose)&&void 0!==s?s:d.verbose,useBackupFile:null!==(c=null==e?void 0:e.useBackupFile)&&void 0!==c?c:d.useBackupFile,exportFilename:null!==(p=null==e?void 0:e.exportFilename)&&void 0!==p?p:d.exportFilename,outputDir:null!==(f=null==e?void 0:e.outputDir)&&void 0!==f?f:d.outputDir,useRootDir:null!==(u=null==e?void 0:e.useRootDir)&&void 0!==u?u:d.useRootDir}}t.getExportFilename=e=>s.pipe(e,(e=>(0,f.isEmpty)(e)?"index.ts":e),(e=>""===e?"index.ts":e)),t.defaultOption=h,t.readOptionFile=y,t.getNonEmptyOption=w,t.getCTIXOptions=e=>async()=>{try{const t=u.default.resolve(e.projectPath),r=u.default.dirname(t),o=await(0,n.fastGlobWrap)(`${r}/**/*`,{onlyDirectories:!0,ignore:[(0,n.replaceSepToPosix)(u.default.join(r,"**","node_modules","**"))]}),i=await Promise.all([r,...o].map((e=>(async()=>{const o=u.default.join(e,".ctirc"),i=await(0,n.exists)(o),a=(0,m.fpGetDirDepth)(r,e);g("Working configuration file: ",a,o,i);try{return{dir:u.default.resolve(e),exists:i,depth:a,option:i?await y(o,t):void 0}}catch(t){const n=t instanceof Error?t:new Error("unknown error raised");return g(o,i),g(n.message),{dir:e,depth:(0,m.fpGetDirDepth)(r,e),exists:i,option:void 0}}})())));return l.right([...i].sort(((e,t)=>{const r=e.depth-t.depth;return 0===r?e.dir.localeCompare(t.dir):r})))}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return l.left(t)}},t.getMergedConfig=({projectPath:e,cliOption:r,optionObjects:o})=>async()=>{var n;try{if(o.length>1){const i=h({project:e}),s=(0,a.default)(w(o[0].option,i),w(r,i)),c=o[o.length-1],p={...o[0],option:{...s,project:s.project,exportFilename:(0,t.getExportFilename)(s.exportFilename)}},f=new Map(o.map((e=>[e.dir,e]))),u={...p,option:(0,a.default)(h({project:e}),{...null!==(n=p.option)&&void 0!==n?n:i})},d=new Map;d.set(u.dir,u),(0,m.fpTimes)(c.depth,!1).forEach((e=>{g(`directory depth "${e}" processed`),Array.from(f.values()).filter((t=>t.depth===e)).forEach((e=>{var t,r,o,n,l;const s=f.get(e.dir),c=null!==(o=null===(r=d.get((0,m.getParentPath)(null!==(t=null==s?void 0:s.dir)&&void 0!==t?t:"")))||void 0===r?void 0:r.option)&&void 0!==o?o:h();if(void 0!==s&&void 0!==c){const e={...s,option:(0,a.default)(c,null!==(n=s.option)&&void 0!==n?n:h({exportFilename:c.exportFilename,project:c.project}))};d.set(e.dir,e),g("exportFilename-1: ",c.exportFilename,(null!==(l=s.option)&&void 0!==l?l:i).exportFilename,e.option.exportFilename)}else{const t={...e,option:w(null==s?void 0:s.option,i)};d.set(e.dir,t),g("exportFilename-2: ",t.option.exportFilename)}}))}));const y=[u,...Array.from(d.values())];return l.right(y)}return l.right([...o].map((e=>({...e,option:h()}))))}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return l.left(t)}},t.getConfigFiles=async function(e){try{const t=u.default.dirname(u.default.resolve(e.projectPath)),r=u.default.join(t,"**",".ctirc"),o=(await(0,n.fastGlobWrap)(r,{dot:!0})).sort(((e,t)=>e.localeCompare(t)));return g("finded: ",e,r,o),l.right({projectPath:e.projectPath,optionFiles:o})}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return l.left(t)}}},981:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getIgnoredContents=t.getIgnoreFileContents=t.getIgnoreFiles=void 0;const o=r(655),n=o.__importDefault(r(974)),i=o.__importStar(r(431)),a=o.__importDefault(r(147)),l=o.__importDefault(r(837)),s=o.__importDefault(r(17)),c=r(734),p=(0,n.default)("ctix:ignore-tool");t.getIgnoreFiles=e=>async()=>{try{const t=s.default.resolve(e),r=s.default.join(t,"**",".ctiignore"),o=s.default.join(t,"**",".npmignore"),n=await(0,c.fastGlobWrap)([r,o],{dot:!0});return p("resolved: ",t,r),i.right({cwd:e,filenames:n})}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return i.left(t)}},t.getIgnoreFileContents=e=>async()=>{try{const t=(await Promise.all(e.filenames.map((e=>(async()=>({filename:e,buffer:await a.default.promises.readFile(e)}))())))).map((e=>({filename:e.filename,buffer:e.buffer.toString()}))).map((e=>({filename:e.filename,directory:s.default.dirname(e.filename),content:(0,l.default)(e.buffer)})));return i.right({cwd:e.cwd,ignores:t})}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return i.left(t)}},t.getIgnoredContents=e=>async()=>{try{const t=e.ignores.map((e=>e.content.map((t=>s.default.join(e.directory,t))))).flatMap((e=>e)),r=t.map((e=>(0,c.replaceSepToPosix)(e))),o=await(0,c.fastGlobWrap)(r,{dot:!0});return p("target ignore file: ",t),p("glob processed ignore file: ",o),i.right({cwd:e.cwd,ignores:o})}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return i.left(t)}}},734:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getParentPath=t.fpGetDirDepth=t.fpReplaceCwd=t.fpRemoveFirstPathSep=t.fpRemoveDrivePath=t.fpRemoveLastPathSep=t.fpTimes=t.fpAddDotPath=t.fpRefineStartSlash=t.fpRefinePathSep=t.fpRemoveExt=t.fpRemoveExtWithTSX=t.fastGlobWrap=t.winify=t.replaceSepToPosix=t.settify=t.getDirname=t.exists=void 0;const o=r(655),n=o.__importDefault(r(479)),i=o.__importStar(r(431)),a=r(686),l=o.__importStar(r(147)),s=r(352),c=o.__importStar(r(17));async function p(e){try{const t=await l.promises.access(e);return(0,s.isEmpty)(t)}catch(e){return!1}}function f(e){if("/"!==c.sep){const t=c.posix.join(...e.split(c.sep));return e.startsWith(c.sep)?`${c.posix.sep}${t}`:t}return e}t.exists=p,t.getDirname=async function(e,t){try{if((await l.promises.lstat(e)).isDirectory())return null!=t&&t?e:c.resolve(e);const r=c.dirname(e);if((0,s.isFalse)(await p(r)))throw new Error(`Cannot found dirname: ${r}`);return null!=t&&t?r:c.resolve(r)}catch(t){throw t instanceof Error?t:new Error(`unknown error from dirname: ${e}`)}},t.settify=function(e){return Array.from(new Set(e))},t.replaceSepToPosix=f,t.winify=function(e){return e.replace(/\//g,c.sep)},t.fastGlobWrap=async function(e,t){const r=(Array.isArray(e)?e:[e]).map((e=>f(e)));return(await(0,n.default)(r,t)).map((e=>e.replace(/\//g,c.sep)))},t.fpRemoveExtWithTSX=e=>(0,a.pipe)(e,(e=>e.replace(/\.d\.ts$/,"")),(e=>e.replace(/\.tsx$/,"")),(e=>e.replace(/\.ts$/,""))),t.fpRemoveExt=e=>(0,a.pipe)(e,(e=>e.replace(/\.d\.ts$/,"")),(e=>"/index.tsx"!==e&&"index.tsx"!==e?e.replace(/\.tsx$/,""):e),(e=>e.replace(/\.ts$/,""))),t.fpRefinePathSep=e=>(0,a.pipe)(e,(e=>"/"!==c.sep?i.left(e):i.right(e)),i.fold((e=>e.replace(new RegExp(c.sep.replace("\\","\\\\"),"g"),"/")),(e=>e))),t.fpRefineStartSlash=e=>(0,a.pipe)(e,(e=>e.startsWith("/")?i.left(e):i.right(e)),i.fold((e=>e.substring(1,e.length)),(e=>e))),t.fpAddDotPath=e=>(0,a.pipe)(e,(e=>e.startsWith(".")?i.left(e):i.right(e)),i.fold((e=>e),(e=>`./${e}`))),t.fpTimes=(e,t=!0)=>(0,a.pipe)(e,(e=>new Array(e).fill(0)),(e=>e.map(((e,r)=>r+(t?0:1))))),t.fpRemoveLastPathSep=e=>(0,a.pipe)(e,(e=>e.endsWith(c.sep)?i.left(e):i.right(e)),i.fold((e=>e.substring(0,e.length-1>0?e.length-1:e.length)),(e=>e))),t.fpRemoveDrivePath=e=>(0,a.pipe)(e,(e=>e.replace(/^([A-Za-z]:)(.+)/,"$2"))),t.fpRemoveFirstPathSep=e=>(0,a.pipe)(e,(e=>e.startsWith(c.sep)?i.left(e):i.right(e)),i.fold((e=>e.substring(e.length-1>0?1:0,e.length)),(e=>e))),t.fpReplaceCwd=(e,r)=>(0,a.pipe)(e,(e=>(0,t.fpRemoveLastPathSep)(e)),(e=>e===(0,t.fpRemoveLastPathSep)(r)?i.left(e):i.right(e)),i.fold((()=>""),(0,a.flow)((e=>e.endsWith(c.sep)?i.left(e):i.right(e)),i.fold((e=>e),(e=>`${e}${c.sep}`)),(e=>r.replace(e,"")),(e=>(0,t.fpRemoveDrivePath)(e))))),t.fpGetDirDepth=(e,r)=>(0,a.pipe)(e,(e=>(0,t.fpReplaceCwd)(e,r)),(e=>e.split(c.sep)),(e=>e.filter((e=>""!==e))),(e=>e.length)),t.getParentPath=e=>(0,a.pipe)(e,(e=>e.split(c.sep)),(e=>e.slice(0,e.length-1)),(e=>e.join(c.sep)),(e=>c.resolve(e)))},395:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getTypeScriptExportStatement=t.getTypeScriptSource=t.getTypeScriptConfig=void 0;const o=r(655),n=o.__importDefault(r(974)),i=o.__importStar(r(431)),a=o.__importStar(r(686)),l=r(352),s=o.__importDefault(r(17)),c=o.__importDefault(r(7)),p=r(734),f=r(887),u=(0,n.default)("ctix:tsfiles"),d=({cliPath:e,tsconfigResolved:t,tsconfigInCliPath:r})=>async()=>await(0,p.exists)(t)?i.right(t):await(0,p.exists)(r)?i.right(s.default.join(e,t)):i.left(new Error(`Cannot found ${t} in ${process.cwd()} or ${e}`));t.getTypeScriptConfig=({tsconfigPath:e})=>async()=>{try{const t=process.cwd(),r=s.default.join(t,"tsconfig.json"),o=(0,l.isNotEmpty)(e)?s.default.resolve(e):s.default.resolve(r),n=await a.flow((()=>({cliPath:t,tsconfigInCliPath:r,tsconfigResolved:o})),d)()();if(i.isLeft(n))return i.left(new Error(`Cannot found ${o} in ${t} or ${t}`));const p={fileExists:c.default.sys.fileExists,readFile:c.default.sys.readFile,readDirectory:c.default.sys.readDirectory,useCaseSensitiveFileNames:!0},f=c.default.readConfigFile(n.right,c.default.sys.readFile),m=c.default.parseJsonConfigFileContent(f.config,p,s.default.dirname(n.right));return u("tsconfig filenames: ",m.fileNames),i.right(m)}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return i.left(t)}},t.getTypeScriptSource=({tsconfig:e,ignores:t})=>async()=>{try{const r=new Map(t.map((e=>s.default.resolve(e))).map((e=>[e,!0]))),o=e.fileNames.map((e=>s.default.resolve(e))).filter((e=>{var t;return(0,l.isFalse)(null!==(t=r.get(e))&&void 0!==t&&t)}));u("typescript configed files: ",e.fileNames),u("typescript process ignored files: ",o);const n=c.default.createProgram(o,e.options);return(0,l.isEmpty)(n)?i.left(new Error("invalid source file")):i.right({program:n,filenames:o})}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return i.left(t)}},t.getTypeScriptExportStatement=async function({program:e,filenames:t}){try{const r=new Map(t.map((e=>[(0,p.replaceSepToPosix)(e),!0]))),o=await Promise.all(e.getSourceFiles().filter((e=>{var t;return null!==(t=r.get(e.fileName))&&void 0!==t&&t})).map((e=>e.statements.map((t=>(0,f.delintNode)({filename:e.fileName,source:t}))))).flatMap((e=>e))),n=o.map((e=>e.export.map((t=>({filename:e.filename,exported:t}))))).flatMap((e=>e)).map((e=>e.filename)).filter((e=>(0,l.isNotEmpty)(e))).map((e=>(0,p.winify)(e))),a=new Set(n),s=Array.from(a).sort(((e,t)=>e.localeCompare(t))),c=o.map((e=>e.default.map((t=>({filename:e.filename,defaulted:t}))))).flatMap((e=>e)).map((e=>e.filename)).map((e=>(0,p.winify)(e))),d=new Set(c),m=Array.from(d).sort(((e,t)=>e.localeCompare(t)));return u("file-1: ",e.getSourceFiles().map((e=>e.fileName)).filter((e=>e.indexOf("node_modules")<0))),u("file-2: ",t),u("export file: ",n," default file: ",c),i.right({program:e,exportFilenames:s,defaultExportFilenames:m})}catch(e){return i.left(e)}}},887:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.delintNode=t.hasExportModifiers=void 0;const o=r(655),n=o.__importDefault(r(974)),i=o.__importStar(r(397)),a=r(281),l=r(352),s=o.__importDefault(r(7)),c=(0,n.default)("ctixd:ignore-tool");t.hasExportModifiers=e=>(0,a.pipe)(e,(e=>e.modifiers),(e=>(0,l.isEmpty)(e)?i.left("none"):i.right(e)),i.fold((e=>e),(e=>{var t,r;const o=null!==(t=e.some((e=>e.kind===s.default.SyntaxKind.ExportKeyword)))&&void 0!==t&&t,n=null!==(r=null==e?void 0:e.some((e=>e.kind===s.default.SyntaxKind.DefaultKeyword)))&&void 0!==r&&r;return o&&n?"default":o&&(0,l.isFalse)(n)?"exported":"none"}))),t.delintNode=async function({source:e,filename:r}){const o=[],n=[];c("delintNode: ",r);let i="";const a=e=>{switch(e.kind){case s.default.SyntaxKind.VariableStatement:case s.default.SyntaxKind.InterfaceDeclaration:case s.default.SyntaxKind.TypeAliasDeclaration:case s.default.SyntaxKind.FunctionDeclaration:case s.default.SyntaxKind.ClassDeclaration:case s.default.SyntaxKind.EnumDeclaration:i=(0,t.hasExportModifiers)(e),"default"===i&&n.push(e),"exported"===i&&o.push(e);break;case s.default.SyntaxKind.ExportAssignment:n.push(e)}s.default.forEachChild(e,a)};return a(e),{filename:r,export:o,default:n}}},453:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.write=t.getSingleFileWriteContents=t.getWriteContents=t.getModuleDir=void 0;const o=r(655),n=r(734),i=r(110),a=o.__importDefault(r(635)),l=o.__importDefault(r(974)),s=o.__importStar(r(431)),c=o.__importStar(r(686)),p=o.__importStar(r(972)),f=o.__importStar(r(147)),u=r(352),d=o.__importStar(r(17)),m=r(138),g=(0,l.default)("ctix:write");async function h({filename:e,replacer:t,configMap:r}){var o;const i=d.dirname(e);g("createExportContents: ",i);try{const a=r.get(i),l=null!==(o=null==a?void 0:a.option.quote)&&void 0!==o?o:"'",s=t({dirname:i,filename:e}),p=`export * from ${l}${c.flow(n.fpRefinePathSep,n.fpRemoveExt,n.fpRefineStartSlash,n.fpAddDotPath)(s)}${l}`;return{dirname:await(0,n.getDirname)(e),content:p}}catch(t){const r=t instanceof Error?t:new Error("unknown error raised");return g(r.message),g(r.stack),{dirname:d.dirname(e),content:void 0}}}async function y({filename:e,replacer:t,configMap:r}){var o;const a=d.dirname(e);try{const l=r.get(a),s=null!==(o=null==l?void 0:l.option.quote)&&void 0!==o?o:"'",p=t({dirname:a,filename:e}),f=c.flow(n.fpRefinePathSep,n.fpRemoveExt,n.fpRefineStartSlash,n.fpAddDotPath)(p),u=c.flow(n.fpRefinePathSep,n.fpRemoveExtWithTSX)(p),d=`export { default as ${(0,i.camelCase)(u)} } from ${s}${f}${s}`;return{dirname:await(0,n.getDirname)(e),content:d}}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return g(t.message),g(t.stack),{dirname:a,content:void 0}}}function w({project:e,configMap:t,filenames:r}){const o=r.map((t=>{const r=d.dirname(t);return{depth:r.replace(e,"").split(d.sep).length-1,dirname:r,filename:t}})).sort(((e,t)=>{const r=t.depth-e.depth;return 0===r?t.filename.localeCompare(e.filename):r})),[i]=o,a=i.depth;g("dirs: ",a,o);const l=(0,n.fpTimes)(a).map((e=>{const r=o.filter((t=>t.depth===e));return g("current depth: ",e),r.map((r=>{var i,a;const l=o.filter((t=>t.dirname.indexOf(r.dirname)>=0&&t.dirname!==r.dirname&&t.depth-e==1)),s=t.get(r.dirname),p=null!==(i=null==s?void 0:s.option)&&void 0!==i?i:(0,m.defaultOption)(),f=null!==(a=null==s?void 0:s.option.quote)&&void 0!==a?a:"'",u=(0,n.settify)(l.map((e=>d.dirname(e.filename))));if("index.ts"===p.exportFilename||"index.d.ts"===p.exportFilename){const e=u.map((e=>{const t=c.flow(n.fpRefinePathSep,n.fpRemoveExt,n.fpRefineStartSlash)(e.replace(r.dirname,""));return`export * from ${f}./${t}${f}`}));return{dirname:r.dirname,content:e}}const g=u.map((e=>{const t=c.flow(n.fpRefinePathSep,n.fpRemoveExt,n.fpRefineStartSlash)(d.join(e.replace(r.dirname,""),p.exportFilename));return`export * from ${f}./${t}${f}`}));return{dirname:r.dirname,content:g}}))})).flatMap((e=>e)),s=new Map(l.map((e=>[e.dirname,e.content]))),p=Array.from(s.entries()).map((([e,t])=>({dirname:e,content:t}))).filter((e=>Array.isArray(e.content)&&e.content.length>0));return g("module directory: ",p),p.map((e=>e.content.map((t=>({dirname:e.dirname,content:t}))))).flatMap((e=>e))}t.getModuleDir=w,t.getWriteContents=async function(e){try{const t=new Map(e.optionObjects.map((e=>[e.dir,e]))),[r]=e.optionObjects,o=d.resolve(d.dirname(r.option.project));g("exportFilenames: ",e.exportFilenames),g("defaultExportFilenames: ",e.defaultExportFilenames);const n=e=>d.relative(e.dirname,e.filename),i=(await Promise.all(e.exportFilenames.map((e=>h({filename:e,configMap:t,replacer:n}))))).filter((e=>(0,u.isNotEmpty)(e.content))),a=(await Promise.all(e.defaultExportFilenames.map((e=>y({filename:e,configMap:t,replacer:n}))))).filter((e=>(0,u.isNotEmpty)(e.content))),l=w({project:o,configMap:t,filenames:e.exportFilenames.concat(e.defaultExportFilenames)}),c=i.concat(a).concat(l).reduce(((e,t)=>{const r=e;return(0,u.isEmpty)(e[t.dirname])&&(r[t.dirname]=[]),(0,u.isNotEmpty)(t.content)&&(r[t.dirname]=[...r[t.dirname],t.content]),r}),{}),p=Object.entries(c).map((([e,t])=>({pathname:e,content:t}))).sort(((e,t)=>e.pathname.localeCompare(t.pathname)));return s.right(p)}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return s.left(t)}},t.getSingleFileWriteContents=async function(e){try{const t=new Map(e.optionObjects.map((e=>[e.dir,e])));g("exportFilenames: ",e.exportFilenames),g("defaultExportFilenames: ",e.defaultExportFilenames);const r=await(async(e,t)=>{if((0,u.isFalse)(t.useRootDir))return d.resolve(await(0,n.getDirname)(t.outputDir));const r=(e=>{if(void 0!==e.rootDir&&null!==e.rootDir)return d.resolve(e.rootDir);if(void 0!==e.rootDirs&&null!==e.rootDirs){const[t]=e.rootDirs;return d.resolve(t)}})(e.getCompilerOptions());if(null!=r){const e=await(0,n.getDirname)(t.outputDir);return d.relative(r,e).startsWith("..")?r:d.resolve(e)}return d.resolve(await(0,n.getDirname)(t.outputDir))})(e.program,e.rootOptions),o=e=>d.relative(r,e.filename),i=(await Promise.all(e.exportFilenames.map((e=>h({filename:e,configMap:t,replacer:o}))))).filter((e=>(0,u.isNotEmpty)(e.content))),a=(await Promise.all(e.defaultExportFilenames.map((e=>y({filename:e,configMap:t,replacer:o}))))).filter((e=>(0,u.isNotEmpty)(e.content))),l=i.concat(a).reduce(((e,t)=>{const o=e;return(0,u.isEmpty)(o[r])&&(o[r]=[]),(0,u.isNotEmpty)(t.content)&&(o[r]=[...o[r],t.content]),o}),{}),c=Object.entries(l).map((([e,t])=>({pathname:e,content:t})));return s.right(c)}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return s.left(t)}},t.write=async function(e){try{const t=new Map(e.optionObjects.map((e=>[e.dir,e]))),r=async e=>{var r;g("current: ",e.pathname);const o=null!==(r=t.get(e.pathname))&&void 0!==r?r:{dir:e.pathname,depth:0,exists:!1,option:(0,m.defaultOption)()},i=o.option.exportFilename,l=d.resolve(e.pathname,i),h=d.resolve(e.pathname,`${i}.bak`);if((0,u.isTrue)(o.option.useBackupFile)&&await(0,n.exists)(l)){const e=await c.pipe(p.taskify(f.readFile)(l),p.chain((e=>p.taskify(f.writeFile)(h,e))))();if(s.isLeft(e))return g("error caused from backup write, ..."),g(e.left.message),g(e.left.stack),s.left(e.left)}const y=(0,a.default)(),w=c.pipe(o.option.useComment?"// created from ctix":"",(e=>o.option.useComment&&o.option.useTimestamp?`${e} ${y.format("YYYY-MM-DD HH:mm:ss")}`:e),(e=>""!==e?`${e}\n\n`:e)),v=Buffer.from(`${w}${e.content.map((e=>o.option.useSemicolon?`${e};`:e)).join("\n")}${o.option.addNewline?"\n":""}`,"utf8"),x=await p.taskify(f.writeFile)(l,v)();return s.isLeft(x)?(g(`error caused from ${i} write, ...`),g(x.left.message),g(x.left.stack),s.left(x.left)):s.right(1)},o=(await Promise.all(e.contents.map((e=>r(e))))).map((e=>s.isRight(e)?1:0)).reduce(((e,t)=>e+t));return g("successfully writed index: ",o),s.right(o)}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");return s.left(t)}}},655:(e,t,r)=>{r.r(t),r.d(t,{__extends:()=>n,__assign:()=>i,__rest:()=>a,__decorate:()=>l,__param:()=>s,__metadata:()=>c,__awaiter:()=>p,__generator:()=>f,__createBinding:()=>u,__exportStar:()=>d,__values:()=>m,__read:()=>g,__spread:()=>h,__spreadArrays:()=>y,__spreadArray:()=>w,__await:()=>v,__asyncGenerator:()=>x,__asyncDelegator:()=>b,__asyncValues:()=>_,__makeTemplateObject:()=>S,__importStar:()=>j,__importDefault:()=>P,__classPrivateFieldGet:()=>F,__classPrivateFieldSet:()=>O});var o=function(e,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},o(e,t)};function n(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var i=function(){return i=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},i.apply(this,arguments)};function a(e,t){var r={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(r[o[n]]=e[o[n]])}return r}function l(e,t,r,o){var n,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,o);else for(var l=e.length-1;l>=0;l--)(n=e[l])&&(a=(i<3?n(a):i>3?n(t,r,a):n(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a}function s(e,t){return function(r,o){t(r,o,e)}}function c(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function p(e,t,r,o){return new(r||(r=Promise))((function(n,i){function a(e){try{s(o.next(e))}catch(e){i(e)}}function l(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,l)}s((o=o.apply(e,t||[])).next())}))}function f(e,t){var r,o,n,i,a={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,o&&(n=2&i[0]?o.return:i[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,i[1])).done)return n;switch(o=0,n&&(i=[2&i[0],n.value]),i[0]){case 0:case 1:n=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,o=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((n=(n=a.trys).length>0&&n[n.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!n||i[1]>n[0]&&i[1]<n[3])){a.label=i[1];break}if(6===i[0]&&a.label<n[1]){a.label=n[1],n=i;break}if(n&&a.label<n[2]){a.label=n[2],a.ops.push(i);break}n[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],o=0}finally{r=n=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}}var u=Object.create?function(e,t,r,o){void 0===o&&(o=r),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]};function d(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||u(t,e,r)}function m(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],o=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var o,n,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(o=i.next()).done;)a.push(o.value)}catch(e){n={error:e}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}return a}function h(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(g(arguments[t]));return e}function y(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var o=Array(e),n=0;for(t=0;t<r;t++)for(var i=arguments[t],a=0,l=i.length;a<l;a++,n++)o[n]=i[a];return o}function w(e,t,r){if(r||2===arguments.length)for(var o,n=0,i=t.length;n<i;n++)!o&&n in t||(o||(o=Array.prototype.slice.call(t,0,n)),o[n]=t[n]);return e.concat(o||Array.prototype.slice.call(t))}function v(e){return this instanceof v?(this.v=e,this):new v(e)}function x(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,n=r.apply(e,t||[]),i=[];return o={},a("next"),a("throw"),a("return"),o[Symbol.asyncIterator]=function(){return this},o;function a(e){n[e]&&(o[e]=function(t){return new Promise((function(r,o){i.push([e,t,r,o])>1||l(e,t)}))})}function l(e,t){try{(r=n[e](t)).value instanceof v?Promise.resolve(r.value.v).then(s,c):p(i[0][2],r)}catch(e){p(i[0][3],e)}var r}function s(e){l("next",e)}function c(e){l("throw",e)}function p(e,t){e(t),i.shift(),i.length&&l(i[0][0],i[0][1])}}function b(e){var t,r;return t={},o("next"),o("throw",(function(e){throw e})),o("return"),t[Symbol.iterator]=function(){return this},t;function o(o,n){t[o]=e[o]?function(t){return(r=!r)?{value:v(e[o](t)),done:"return"===o}:n?n(t):t}:n}}function _(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=m(e),t={},o("next"),o("throw"),o("return"),t[Symbol.asyncIterator]=function(){return this},t);function o(r){t[r]=e[r]&&function(t){return new Promise((function(o,n){!function(e,t,r,o){Promise.resolve(o).then((function(t){e({value:t,done:r})}),t)}(o,n,(t=e[r](t)).done,t.value)}))}}}function S(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var E=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function j(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&u(t,e,r);return E(t,e),t}function P(e){return e&&e.__esModule?e:{default:e}}function F(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)}function O(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r}},22:e=>{e.exports=require("chalk")},110:e=>{e.exports=require("change-case")},932:e=>{e.exports=require("cli-ux")},635:e=>{e.exports=require("dayjs")},974:e=>{e.exports=require("debug")},330:e=>{e.exports=require("deepmerge")},479:e=>{e.exports=require("fast-glob")},819:e=>{e.exports=require("fp-ts/Apply")},431:e=>{e.exports=require("fp-ts/Either")},972:e=>{e.exports=require("fp-ts/TaskEither")},686:e=>{e.exports=require("fp-ts/function")},397:e=>{e.exports=require("fp-ts/lib/Either")},281:e=>{e.exports=require("fp-ts/lib/pipeable")},959:e=>{e.exports=require("json5")},352:e=>{e.exports=require("my-easy-fp")},837:e=>{e.exports=require("parse-gitignore")},261:e=>{e.exports=require("source-map-support")},7:e=>{e.exports=require("typescript")},392:e=>{e.exports=require("yargs")},147:e=>{e.exports=require("fs")},17:e=>{e.exports=require("path")}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,r),i.exports}r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};(()=>{var e=o;Object.defineProperty(e,"__esModule",{value:!0});const t=r(655),n=r(930),i=r(181),a=r(138),l=r(981),s=t.__importDefault(r(900)),c=r(734),p=r(395),f=r(453),u=t.__importDefault(r(22)),d=t.__importDefault(r(932)),m=t.__importDefault(r(974)),g=t.__importStar(r(819)),h=t.__importStar(r(431)),y=t.__importStar(r(686)),w=t.__importStar(r(972)),v=t.__importStar(r(147)),x=t.__importStar(r(17)),b=t.__importDefault(r(261)),_=t.__importDefault(r(392)),S=(0,m.default)("ctix:cli-tool");function E(e){return e.option("addNewline",{alias:"n",describe:"add newline on EOF",type:"boolean"}).option("useSemicolon",{alias:"s",describe:"add semicolon on every export statement",type:"boolean"}).option("useTimestamp",{alias:"m",describe:"timestamp write on ctix comment right-side, only works in useComment option set true",type:"boolean"}).option("useComment",{alias:"c",describe:"add ctix comment at first line of creted index.ts file, that remark created from ctix",type:"boolean"}).option("quote",{alias:"q",describe:"change quote character at export syntax",type:"string"}).option("useBackupFile",{alias:"b",describe:"created backup file if exists index.ts file already in directory",type:"boolean"}),e}async function j(e,t){if(await(0,c.exists)(t))return x.resolve(t);const r=x.join(t,"tsconfig.json");if(await(0,c.exists)(r))return x.resolve(r);if(await(0,c.exists)(e))return x.resolve(e);const o=x.join(e,"tsconfig.json");if(await(0,c.exists)(o))return x.resolve(o);throw new Error(`invalid project path, don't exist: ${e} or ${null!=t?t:""}`)}b.default.install(),(0,_.default)(process.argv.slice(2)).command({command:"$0 [tsconfigPath]",aliases:"create [tsconfigPath]",builder:e=>E(e),handler:async e=>{var t,r,o,n;s.default.switch(null!==(t=e.verbose)&&void 0!==t&&t);const m=new i.Counter(null!==(r=e.verbose)&&void 0!==r&&r);try{const t=await j(e.tsconfigPath,e.project),r=x.resolve(t),i=await(0,c.getDirname)(r,!0);process.chdir(i),d.default.action.start(u.default`{yellow ctix} ${null!==(o=e.exportFilename)&&void 0!==o?o:"index.ts"} file create mode:`,"initializing",{stdout:!0});const v={...(0,a.getNonEmptyOption)(e,t),resolvedProjectDirPath:i,resolvedProjectFilePath:r};s.default.debug(u.default`{yellow ctix - ${m.debug}:} {blueBright [info]} project directory: ${t}`),s.default.log(u.default`{yellow ctix - ${m.log}:} read ignore file, tsconfig file, cti config {green complete}`),d.default.action.status="processing ...";const b=await g.sequenceT(w.ApplicativeSeq)(y.pipe((0,l.getIgnoreFiles)(i),w.chain(l.getIgnoreFileContents),w.chain(l.getIgnoredContents)),(0,p.getTypeScriptConfig)({tsconfigPath:r}),y.pipe((0,a.getCTIXOptions)({projectPath:r}),w.chain((e=>(0,a.getMergedConfig)({projectPath:r,optionObjects:e,cliOption:v})))))();if(h.isLeft(b))throw b.left;const[_,S,E]=b.right;s.default.log(u.default`{yellow ctix - ${m.log}:} typescript source file parsing {green compile} `),d.default.action.status="processing ...",s.default.debug(u.default`{yellow ctix - ${m.debug}:} {blueBright [info]} ignore content - ${_.ignores.length}`),s.default.debug(u.default`{yellow ctix - ${m.debug}:} {blueBright [info]} typescript file - ${S.fileNames.length}`),s.default.debug(u.default`{yellow ctix - ${m.debug}:} {blueBright [info]} config file - ${E.length}`);const P=await y.pipe(w.right({tsconfig:S,ignores:_.ignores}),w.chain(p.getTypeScriptSource),w.chain((e=>()=>(0,p.getTypeScriptExportStatement)({program:e.program,filenames:e.filenames}))))();if(h.isLeft(P))throw P.left;s.default.log(u.default`{yellow ctix - ${m.log}:} ${null!==(n=e.exportFilename)&&void 0!==n?n:"index.ts"} write on project directory {green compile}`);const F=await(0,f.getWriteContents)({...P.right,optionObjects:E});if(h.isLeft(F))throw F.left;await(0,f.write)({contents:F.right,optionObjects:E})}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");s.default.error(u.default`{red error} message below, `),s.default.error(t.message)}finally{d.default.action.stop("complete")}}}).command({command:"single [tsconfigPath]",aliases:["entrypoint [tsconfigPath]"],builder:e=>{const t=E(e);return t.option("useRootDir",{alias:"r",describe:"output file under rootDir in tsconfig.json",type:"boolean"}),t},handler:async e=>{var t,r,o,n;s.default.switch(null!==(t=e.verbose)&&void 0!==t&&t);const m=new i.Counter(null!==(r=e.verbose)&&void 0!==r&&r);try{const t=await j(e.tsconfigPath,e.project),r=x.resolve(t),i=await(0,c.getDirname)(r,!0);process.chdir(i),d.default.action.start(u.default`{yellow ctix} single ${null!==(o=e.exportFilename)&&void 0!==o?o:"index.ts"} file create mode:`,"initializing",{stdout:!0});const v={...(0,a.getNonEmptyOption)(e,t),resolvedProjectDirPath:i,resolvedProjectFilePath:r};s.default.debug(u.default`{yellow ctix - ${m.debug}:} {blueBright [info]} project directory: ${t}`),s.default.log(u.default`{yellow ctix - ${m.log}:} read ignore file, tsconfig file, cti config {green complete}`),d.default.action.status="processing ...";const b=await g.sequenceT(w.ApplicativeSeq)(y.pipe((0,l.getIgnoreFiles)(i),w.chain(l.getIgnoreFileContents),w.chain(l.getIgnoredContents)),(0,p.getTypeScriptConfig)({tsconfigPath:t}),y.pipe((0,a.getCTIXOptions)({projectPath:r}),w.chain((e=>(0,a.getMergedConfig)({projectPath:r,optionObjects:e,cliOption:v})))))();if(h.isLeft(b))throw b.left;const[_,S,E]=b.right;s.default.log(u.default`{yellow ctix - ${m.log}:} typescript source file parsing {green compile} `),d.default.action.status="processing ...",s.default.debug(u.default`{yellow ctix - ${m.debug}:} {blueBright [info]} ignore content - ${_.ignores.length}`),s.default.debug(u.default`{yellow ctix - ${m.debug}:} {blueBright [info]} typescript file - ${S.fileNames.length}`),s.default.debug(u.default`{yellow ctix - ${m.debug}:} {blueBright [info]} config file - ${E.length}`);const P=await y.pipe(w.right({tsconfig:S,ignores:_.ignores}),w.chain(p.getTypeScriptSource),w.chain((e=>()=>(0,p.getTypeScriptExportStatement)({program:e.program,filenames:e.filenames}))))();if(h.isLeft(P))throw P.left;s.default.log(u.default`{yellow ctix - ${m.log}:} ${null!==(n=e.exportFilename)&&void 0!==n?n:"index.ts"} write on project directory {green compile}`);const F=await(0,f.getSingleFileWriteContents)({...P.right,optionObjects:E,rootOptions:v});if(h.isLeft(F))throw F.left;await(0,f.write)({contents:F.right,optionObjects:E})}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");s.default.error(u.default`{red error} message below, `),s.default.error(t.message)}finally{d.default.action.stop("complete")}}}).command({command:"clean [tsconfigPath]",builder:e=>(e.option("includeBackup",{alias:"b",describe:"clean with backup file",default:!1,type:"boolean"}),e),handler:async e=>{var t,r,o;const l=new i.Counter(null!==(t=e.verbose)&&void 0!==t&&t);s.default.switch(null!==(r=e.verbose)&&void 0!==r&&r);try{const t=await j(e.tsconfigPath,e.project),r=x.resolve(t),i=await(0,c.getDirname)(r,!0);process.chdir(i),S("path.resolve in ctix.ts: ",x.resolve(t)),d.default.action.start(u.default`{yellow ctix} ${null!==(o=e.exportFilename)&&void 0!==o?o:"index.ts"} file clean mode:`,"initializing",{stdout:!0});const p={...(0,a.getNonEmptyOption)(e,t),resolvedProjectDirPath:i,resolvedProjectFilePath:r};S("clean option: ",p);const f=await y.pipe((0,n.getCleanFilenames)({cliOption:p,includeBackupFrom:e.includeBackup}),w.chain((e=>()=>(s.default.log(u.default`{yellow ctix - ${l.log}:} clean file find {green complete}`),s.default.debug(u.default`{yellow ctix - ${l.debug}:} {blueBright [info]} clean file - ${e.length}`),(0,n.clean)({filenames:e})))))();if(h.isLeft(f))throw f.left;s.default.log(u.default`{yellow ctix - ${l.log}:} clean action {green complete}`)}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");s.default.error(u.default`{red error} message below, `),s.default.error(t.message)}finally{d.default.action.stop("complete")}}}).command({command:"init [tsconfigPath]",builder:e=>e,handler:async e=>{var t,r;const o=new i.Counter(null!==(t=e.verbose)&&void 0!==t&&t);s.default.switch(null!==(r=e.verbose)&&void 0!==r&&r);try{const t=await j(e.tsconfigPath,e.project);d.default.action.start(u.default`{yellow ctix} generate .ctirc:`,"initializing",{stdout:!0}),s.default.log(u.default`{yellow ctix - ${o.log}:} default option generation {green compile} `),d.default.action.status="processing ...";const r={...(0,a.defaultOption)()};delete r.project,delete r.verbose;const n=x.dirname(t);await v.promises.writeFile(x.join(n,".ctirc"),JSON.stringify(r)),s.default.log(u.default`{yellow ctix - ${o.log}:} .ctirc file write {green compile} `),d.default.action.status="processing ..."}catch(e){const t=e instanceof Error?e:new Error("unknown error raised");s.default.error(u.default`{red error} message below, `),s.default.error(t.message)}finally{d.default.action.stop("complete")}}}).option("project",{alias:"p",describe:'tsconfig.json path: you must pass path with filename, like this "./tsconfig.json"',type:"string"}).option("exportFilename",{alias:"f",describe:'Export filename, if you not pass this field that use "index.ts" or "index.d.ts"',type:"string"}).option("verbose",{alias:"v",describe:"display more detailed log",type:"boolean"}).help().argv})();var n=exports;for(var i in o)n[i]=o[i];o.__esModule&&Object.defineProperty(n,"__esModule",{value:!0})})(); |
{ | ||
"name": "ctix", | ||
"version": "0.4.2", | ||
"version": "0.4.3", | ||
"description": "Automatic create index.ts file", | ||
@@ -21,3 +21,3 @@ "main": "dist/cti.js", | ||
"prepub:prod": "npm run clean && npm run webpack:prod", | ||
"pub:prod": "npm publish --tag beta", | ||
"pub:prod": "npm publish", | ||
"lint": "eslint --ext ts,tsx ./src/*" | ||
@@ -44,33 +44,33 @@ }, | ||
"devDependencies": { | ||
"@jest/test-sequencer": "^27.4.5", | ||
"@jest/test-sequencer": "^27.5.1", | ||
"@types/clui": "^0.3.1", | ||
"@types/debug": "^4.1.7", | ||
"@types/glob": "^7.2.0", | ||
"@types/jest": "^27.0.3", | ||
"@types/jest": "^27.4.1", | ||
"@types/json5": "^2.2.0", | ||
"@types/node": "^16.11.12", | ||
"@types/node": "^17.0.21", | ||
"@types/yargs": "^17.0.7", | ||
"@typescript-eslint/eslint-plugin": "^5.6.0", | ||
"@typescript-eslint/eslint-plugin-tslint": "^5.6.0", | ||
"@typescript-eslint/parser": "^5.6.0", | ||
"@typescript-eslint/eslint-plugin": "^5.13.0", | ||
"@typescript-eslint/eslint-plugin-tslint": "^5.13.0", | ||
"@typescript-eslint/parser": "^5.13.0", | ||
"codecov": "^3.8.3", | ||
"cross-env": "^7.0.3", | ||
"eslint": "^8.4.1", | ||
"eslint": "^8.10.0", | ||
"eslint-config-airbnb-typescript": "^16.1.0", | ||
"eslint-config-prettier": "^8.3.0", | ||
"eslint-plugin-import": "^2.25.3", | ||
"eslint-plugin-jsdoc": "^37.2.0", | ||
"eslint-config-prettier": "^8.4.0", | ||
"eslint-plugin-import": "^2.25.4", | ||
"eslint-plugin-jsdoc": "^37.9.6", | ||
"eslint-plugin-prefer-arrow": "^1.2.3", | ||
"eslint-plugin-prettier": "^4.0.0", | ||
"jest": "^27.4.4", | ||
"prettier-eslint": "^8.2.2", | ||
"jest": "^27.5.1", | ||
"prettier-eslint": "^13.0.0", | ||
"rimraf": "^3.0.2", | ||
"ts-jest": "^27.1.1", | ||
"ts-loader": "^9.2.6", | ||
"ts-node": "^10.4.0", | ||
"ts-jest": "^27.1.3", | ||
"ts-loader": "^9.2.7", | ||
"ts-node": "^10.6.0", | ||
"tsconfig-paths": "^3.12.0", | ||
"tsconfig-paths-webpack-plugin": "^3.5.2", | ||
"tslint": "^6.1.3", | ||
"webpack": "^5.65.0", | ||
"webpack-cli": "^4.9.1", | ||
"webpack": "^5.69.1", | ||
"webpack-cli": "^4.9.2", | ||
"webpack-node-externals": "^3.0.0", | ||
@@ -82,20 +82,18 @@ "webpackbar": "^5.0.2" | ||
"change-case": "^4.1.2", | ||
"cli-ux": "^6.0.6", | ||
"cli-ux": "^6.0.9", | ||
"clui": "^0.3.6", | ||
"dayjs": "^1.10.7", | ||
"dayjs": "^1.10.8", | ||
"debug": "^4.3.3", | ||
"deepmerge": "^4.2.2", | ||
"fast-glob": "^3.2.7", | ||
"fp-ts": "^2.11.5", | ||
"fast-glob": "^3.2.11", | ||
"fp-ts": "^2.11.8", | ||
"glob": "^7.2.0", | ||
"json5": "^2.2.0", | ||
"merge": "^2.1.1", | ||
"minimatch": "^3.0.4", | ||
"my-easy-fp": "^0.9.0", | ||
"my-easy-fp": "^0.10.0", | ||
"parse-gitignore": "^1.0.1", | ||
"source-map-support": "^0.5.21", | ||
"tslib": "^2.3.1", | ||
"typescript": "^4.5.3", | ||
"typescript": "^4.6.2", | ||
"yargs": "^17.3.0" | ||
} | ||
} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
17
64248
+ Addedmy-easy-fp@0.10.0(transitive)
- Removedmerge@^2.1.1
- Removedminimatch@^3.0.4
- Removedmerge@2.1.1(transitive)
- Removedmy-easy-fp@0.9.0(transitive)
- Removedtslib@1.11.1(transitive)
Updatedcli-ux@^6.0.9
Updateddayjs@^1.10.8
Updatedfast-glob@^3.2.11
Updatedfp-ts@^2.11.8
Updatedmy-easy-fp@^0.10.0
Updatedtypescript@^4.6.2