@breadstone-infrastructure/utilities 0.0.12-beta.0

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.
Files changed (374) hide show
  1. package/Cli/Abstracts/ProgramCommandBase.d.ts +60 -0
  2. package/Cli/Abstracts/ProgramCommandBase.d.ts.map +1 -0
  3. package/Cli/Abstracts/ProgramCommandBase.js +64 -0
  4. package/Cli/Abstracts/ProgramCommandBase.js.map +1 -0
  5. package/Cli/Builders/ProgramBuilder.d.ts +39 -0
  6. package/Cli/Builders/ProgramBuilder.d.ts.map +1 -0
  7. package/Cli/Builders/ProgramBuilder.js +73 -0
  8. package/Cli/Builders/ProgramBuilder.js.map +1 -0
  9. package/Cli/Builders/ProgramCommandBuilder.d.ts +78 -0
  10. package/Cli/Builders/ProgramCommandBuilder.d.ts.map +1 -0
  11. package/Cli/Builders/ProgramCommandBuilder.js +147 -0
  12. package/Cli/Builders/ProgramCommandBuilder.js.map +1 -0
  13. package/Cli/Interfaces/IProgramArg.d.ts +11 -0
  14. package/Cli/Interfaces/IProgramArg.d.ts.map +1 -0
  15. package/Cli/Interfaces/IProgramArg.js +4 -0
  16. package/Cli/Interfaces/IProgramArg.js.map +1 -0
  17. package/Cli/Interfaces/IProgramArgOptions.d.ts +9 -0
  18. package/Cli/Interfaces/IProgramArgOptions.d.ts.map +1 -0
  19. package/Cli/Interfaces/IProgramArgOptions.js +4 -0
  20. package/Cli/Interfaces/IProgramArgOptions.js.map +1 -0
  21. package/Cli/Interfaces/IProgramArgs.d.ts +27 -0
  22. package/Cli/Interfaces/IProgramArgs.d.ts.map +1 -0
  23. package/Cli/Interfaces/IProgramArgs.js +4 -0
  24. package/Cli/Interfaces/IProgramArgs.js.map +1 -0
  25. package/Cli/Interfaces/IProgramCommand.d.ts +53 -0
  26. package/Cli/Interfaces/IProgramCommand.d.ts.map +1 -0
  27. package/Cli/Interfaces/IProgramCommand.js +4 -0
  28. package/Cli/Interfaces/IProgramCommand.js.map +1 -0
  29. package/Cli/Interfaces/IProgramCommands.d.ts +47 -0
  30. package/Cli/Interfaces/IProgramCommands.d.ts.map +1 -0
  31. package/Cli/Interfaces/IProgramCommands.js +4 -0
  32. package/Cli/Interfaces/IProgramCommands.js.map +1 -0
  33. package/Cli/Interfaces/IProgramConfig.d.ts +10 -0
  34. package/Cli/Interfaces/IProgramConfig.d.ts.map +1 -0
  35. package/Cli/Interfaces/IProgramConfig.js +3 -0
  36. package/Cli/Interfaces/IProgramConfig.js.map +1 -0
  37. package/Cli/Interfaces/IProgramInit.d.ts +14 -0
  38. package/Cli/Interfaces/IProgramInit.d.ts.map +1 -0
  39. package/Cli/Interfaces/IProgramInit.js +3 -0
  40. package/Cli/Interfaces/IProgramInit.js.map +1 -0
  41. package/Cli/Program.d.ts +97 -0
  42. package/Cli/Program.d.ts.map +1 -0
  43. package/Cli/Program.js +217 -0
  44. package/Cli/Program.js.map +1 -0
  45. package/Cli/ProgramArgs.d.ts +39 -0
  46. package/Cli/ProgramArgs.d.ts.map +1 -0
  47. package/Cli/ProgramArgs.js +83 -0
  48. package/Cli/ProgramArgs.js.map +1 -0
  49. package/Cli/ProgramCommandResult.d.ts +13 -0
  50. package/Cli/ProgramCommandResult.d.ts.map +1 -0
  51. package/Cli/ProgramCommandResult.js +3 -0
  52. package/Cli/ProgramCommandResult.js.map +1 -0
  53. package/Cli/ProgramCommands.d.ts +66 -0
  54. package/Cli/ProgramCommands.d.ts.map +1 -0
  55. package/Cli/ProgramCommands.js +173 -0
  56. package/Cli/ProgramCommands.js.map +1 -0
  57. package/Cli/ProgramConfig.d.ts +24 -0
  58. package/Cli/ProgramConfig.d.ts.map +1 -0
  59. package/Cli/ProgramConfig.js +51 -0
  60. package/Cli/ProgramConfig.js.map +1 -0
  61. package/Cli/ProgramDoneFn.d.ts +5 -0
  62. package/Cli/ProgramDoneFn.d.ts.map +1 -0
  63. package/Cli/ProgramDoneFn.js +3 -0
  64. package/Cli/ProgramDoneFn.js.map +1 -0
  65. package/Compiler/TypeScript.d.ts +19 -0
  66. package/Compiler/TypeScript.d.ts.map +1 -0
  67. package/Compiler/TypeScript.js +166 -0
  68. package/Compiler/TypeScript.js.map +1 -0
  69. package/DI/Container.d.ts +73 -0
  70. package/DI/Container.d.ts.map +1 -0
  71. package/DI/Container.js +143 -0
  72. package/DI/Container.js.map +1 -0
  73. package/DI/Inject.d.ts +11 -0
  74. package/DI/Inject.d.ts.map +1 -0
  75. package/DI/Inject.js +18 -0
  76. package/DI/Inject.js.map +1 -0
  77. package/Decorators/EnumerableDecorator.d.ts +6 -0
  78. package/Decorators/EnumerableDecorator.d.ts.map +1 -0
  79. package/Decorators/EnumerableDecorator.js +18 -0
  80. package/Decorators/EnumerableDecorator.js.map +1 -0
  81. package/Events/AsyncEventEmitter.d.ts +8 -0
  82. package/Events/AsyncEventEmitter.d.ts.map +1 -0
  83. package/Events/AsyncEventEmitter.js +37 -0
  84. package/Events/AsyncEventEmitter.js.map +1 -0
  85. package/IO/CustomElementManifest.d.ts +254 -0
  86. package/IO/CustomElementManifest.d.ts.map +1 -0
  87. package/IO/CustomElementManifest.js +56 -0
  88. package/IO/CustomElementManifest.js.map +1 -0
  89. package/IO/Directory.d.ts +78 -0
  90. package/IO/Directory.d.ts.map +1 -0
  91. package/IO/Directory.js +184 -0
  92. package/IO/Directory.js.map +1 -0
  93. package/IO/Encoding.d.ts +2 -0
  94. package/IO/Encoding.d.ts.map +1 -0
  95. package/IO/Encoding.js +3 -0
  96. package/IO/Encoding.js.map +1 -0
  97. package/IO/File.d.ts +148 -0
  98. package/IO/File.d.ts.map +1 -0
  99. package/IO/File.js +314 -0
  100. package/IO/File.js.map +1 -0
  101. package/IO/FileSystemInfo.d.ts +46 -0
  102. package/IO/FileSystemInfo.d.ts.map +1 -0
  103. package/IO/FileSystemInfo.js +129 -0
  104. package/IO/FileSystemInfo.js.map +1 -0
  105. package/IO/FileSystemWatcher.d.ts +49 -0
  106. package/IO/FileSystemWatcher.d.ts.map +1 -0
  107. package/IO/FileSystemWatcher.js +93 -0
  108. package/IO/FileSystemWatcher.js.map +1 -0
  109. package/IO/Glob.d.ts +35 -0
  110. package/IO/Glob.d.ts.map +1 -0
  111. package/IO/Glob.js +152 -0
  112. package/IO/Glob.js.map +1 -0
  113. package/IO/Json.d.ts +84 -0
  114. package/IO/Json.d.ts.map +1 -0
  115. package/IO/Json.js +114 -0
  116. package/IO/Json.js.map +1 -0
  117. package/IO/Path.d.ts +125 -0
  118. package/IO/Path.d.ts.map +1 -0
  119. package/IO/Path.js +283 -0
  120. package/IO/Path.js.map +1 -0
  121. package/IO/PcfControlManifest.d.ts +79 -0
  122. package/IO/PcfControlManifest.d.ts.map +1 -0
  123. package/IO/PcfControlManifest.js +93 -0
  124. package/IO/PcfControlManifest.js.map +1 -0
  125. package/IO/Reader/Interfaces/IFileReader.d.ts +30 -0
  126. package/IO/Reader/Interfaces/IFileReader.d.ts.map +1 -0
  127. package/IO/Reader/Interfaces/IFileReader.js +3 -0
  128. package/IO/Reader/Interfaces/IFileReader.js.map +1 -0
  129. package/IO/Reader/TextFileReader.d.ts +53 -0
  130. package/IO/Reader/TextFileReader.d.ts.map +1 -0
  131. package/IO/Reader/TextFileReader.js +167 -0
  132. package/IO/Reader/TextFileReader.js.map +1 -0
  133. package/IO/Resx.d.ts +49 -0
  134. package/IO/Resx.d.ts.map +1 -0
  135. package/IO/Resx.js +95 -0
  136. package/IO/Resx.js.map +1 -0
  137. package/IO/SymbolikLink.d.ts +6 -0
  138. package/IO/SymbolikLink.d.ts.map +1 -0
  139. package/IO/SymbolikLink.js +10 -0
  140. package/IO/SymbolikLink.js.map +1 -0
  141. package/IO/Template.d.ts +41 -0
  142. package/IO/Template.d.ts.map +1 -0
  143. package/IO/Template.js +71 -0
  144. package/IO/Template.js.map +1 -0
  145. package/IO/TemporaryDirectory.d.ts +28 -0
  146. package/IO/TemporaryDirectory.d.ts.map +1 -0
  147. package/IO/TemporaryDirectory.js +76 -0
  148. package/IO/TemporaryDirectory.js.map +1 -0
  149. package/IO/TemporaryFile.d.ts +28 -0
  150. package/IO/TemporaryFile.d.ts.map +1 -0
  151. package/IO/TemporaryFile.js +77 -0
  152. package/IO/TemporaryFile.js.map +1 -0
  153. package/IO/Writer/Interfaces/IFileWriter.d.ts +31 -0
  154. package/IO/Writer/Interfaces/IFileWriter.d.ts.map +1 -0
  155. package/IO/Writer/Interfaces/IFileWriter.js +4 -0
  156. package/IO/Writer/Interfaces/IFileWriter.js.map +1 -0
  157. package/IO/Writer/TextFileWriter.d.ts +56 -0
  158. package/IO/Writer/TextFileWriter.d.ts.map +1 -0
  159. package/IO/Writer/TextFileWriter.js +129 -0
  160. package/IO/Writer/TextFileWriter.js.map +1 -0
  161. package/IO/vNext/FileCache.d.ts +46 -0
  162. package/IO/vNext/FileCache.d.ts.map +1 -0
  163. package/IO/vNext/FileCache.js +94 -0
  164. package/IO/vNext/FileCache.js.map +1 -0
  165. package/IO/vNext/FileSystem.d.ts +107 -0
  166. package/IO/vNext/FileSystem.d.ts.map +1 -0
  167. package/IO/vNext/FileSystem.js +148 -0
  168. package/IO/vNext/FileSystem.js.map +1 -0
  169. package/IO/vNext/Interfaces/IFileCache.d.ts +56 -0
  170. package/IO/vNext/Interfaces/IFileCache.d.ts.map +1 -0
  171. package/IO/vNext/Interfaces/IFileCache.js +3 -0
  172. package/IO/vNext/Interfaces/IFileCache.js.map +1 -0
  173. package/IO/vNext/Interfaces/IFileSystem.d.ts +102 -0
  174. package/IO/vNext/Interfaces/IFileSystem.d.ts.map +1 -0
  175. package/IO/vNext/Interfaces/IFileSystem.js +4 -0
  176. package/IO/vNext/Interfaces/IFileSystem.js.map +1 -0
  177. package/Index.d.ts +62 -0
  178. package/Index.d.ts.map +1 -0
  179. package/Index.js +132 -0
  180. package/Index.js.map +1 -0
  181. package/Intl/Languages.d.ts +12 -0
  182. package/Intl/Languages.d.ts.map +1 -0
  183. package/Intl/Languages.js +865 -0
  184. package/Intl/Languages.js.map +1 -0
  185. package/LICENSE +21 -0
  186. package/Logging/Appenders/Abstracts/Appender.d.ts +21 -0
  187. package/Logging/Appenders/Abstracts/Appender.d.ts.map +1 -0
  188. package/Logging/Appenders/Abstracts/Appender.js +78 -0
  189. package/Logging/Appenders/Abstracts/Appender.js.map +1 -0
  190. package/Logging/Appenders/Interfaces/IAppender.d.ts +13 -0
  191. package/Logging/Appenders/Interfaces/IAppender.d.ts.map +1 -0
  192. package/Logging/Appenders/Interfaces/IAppender.js +4 -0
  193. package/Logging/Appenders/Interfaces/IAppender.js.map +1 -0
  194. package/Logging/Appenders/Interfaces/IAppenderConfig.d.ts +9 -0
  195. package/Logging/Appenders/Interfaces/IAppenderConfig.d.ts.map +1 -0
  196. package/Logging/Appenders/Interfaces/IAppenderConfig.js +3 -0
  197. package/Logging/Appenders/Interfaces/IAppenderConfig.js.map +1 -0
  198. package/Logging/Appenders/LogLevelAppender.d.ts +29 -0
  199. package/Logging/Appenders/LogLevelAppender.d.ts.map +1 -0
  200. package/Logging/Appenders/LogLevelAppender.js +102 -0
  201. package/Logging/Appenders/LogLevelAppender.js.map +1 -0
  202. package/Logging/Appenders/MessageAppender.d.ts +26 -0
  203. package/Logging/Appenders/MessageAppender.d.ts.map +1 -0
  204. package/Logging/Appenders/MessageAppender.js +91 -0
  205. package/Logging/Appenders/MessageAppender.js.map +1 -0
  206. package/Logging/Appenders/Styles/AppenderTerminalColors.d.ts +20 -0
  207. package/Logging/Appenders/Styles/AppenderTerminalColors.d.ts.map +1 -0
  208. package/Logging/Appenders/Styles/AppenderTerminalColors.js +4 -0
  209. package/Logging/Appenders/Styles/AppenderTerminalColors.js.map +1 -0
  210. package/Logging/Appenders/Styles/LogLevelAppenderStyle.d.ts +5 -0
  211. package/Logging/Appenders/Styles/LogLevelAppenderStyle.d.ts.map +1 -0
  212. package/Logging/Appenders/Styles/LogLevelAppenderStyle.js +3 -0
  213. package/Logging/Appenders/Styles/LogLevelAppenderStyle.js.map +1 -0
  214. package/Logging/Appenders/TagAppender.d.ts +25 -0
  215. package/Logging/Appenders/TagAppender.d.ts.map +1 -0
  216. package/Logging/Appenders/TagAppender.js +49 -0
  217. package/Logging/Appenders/TagAppender.js.map +1 -0
  218. package/Logging/Appenders/TimeStampAppender.d.ts +22 -0
  219. package/Logging/Appenders/TimeStampAppender.d.ts.map +1 -0
  220. package/Logging/Appenders/TimeStampAppender.js +44 -0
  221. package/Logging/Appenders/TimeStampAppender.js.map +1 -0
  222. package/Logging/Interfaces/ILogEntry.d.ts +13 -0
  223. package/Logging/Interfaces/ILogEntry.d.ts.map +1 -0
  224. package/Logging/Interfaces/ILogEntry.js +4 -0
  225. package/Logging/Interfaces/ILogEntry.js.map +1 -0
  226. package/Logging/Interfaces/ILogOptions.d.ts +17 -0
  227. package/Logging/Interfaces/ILogOptions.d.ts.map +1 -0
  228. package/Logging/Interfaces/ILogOptions.js +4 -0
  229. package/Logging/Interfaces/ILogOptions.js.map +1 -0
  230. package/Logging/Interfaces/ILoggerScope.d.ts +7 -0
  231. package/Logging/Interfaces/ILoggerScope.d.ts.map +1 -0
  232. package/Logging/Interfaces/ILoggerScope.js +3 -0
  233. package/Logging/Interfaces/ILoggerScope.js.map +1 -0
  234. package/Logging/Interfaces/ILoggerScopeConfig.d.ts +9 -0
  235. package/Logging/Interfaces/ILoggerScopeConfig.d.ts.map +1 -0
  236. package/Logging/Interfaces/ILoggerScopeConfig.js +4 -0
  237. package/Logging/Interfaces/ILoggerScopeConfig.js.map +1 -0
  238. package/Logging/LogLevel.d.ts +5 -0
  239. package/Logging/LogLevel.d.ts.map +1 -0
  240. package/Logging/LogLevel.js +3 -0
  241. package/Logging/LogLevel.js.map +1 -0
  242. package/Logging/Logger.d.ts +148 -0
  243. package/Logging/Logger.d.ts.map +1 -0
  244. package/Logging/Logger.js +326 -0
  245. package/Logging/Logger.js.map +1 -0
  246. package/Logging/LoggerConfig.d.ts +45 -0
  247. package/Logging/LoggerConfig.d.ts.map +1 -0
  248. package/Logging/LoggerConfig.js +83 -0
  249. package/Logging/LoggerConfig.js.map +1 -0
  250. package/Logging/LoggerScope.d.ts +16 -0
  251. package/Logging/LoggerScope.d.ts.map +1 -0
  252. package/Logging/LoggerScope.js +81 -0
  253. package/Logging/LoggerScope.js.map +1 -0
  254. package/Logging/LoggerSuppressor.d.ts +10 -0
  255. package/Logging/LoggerSuppressor.d.ts.map +1 -0
  256. package/Logging/LoggerSuppressor.js +43 -0
  257. package/Logging/LoggerSuppressor.js.map +1 -0
  258. package/Logging/LoggerUtils.d.ts +47 -0
  259. package/Logging/LoggerUtils.d.ts.map +1 -0
  260. package/Logging/LoggerUtils.js +102 -0
  261. package/Logging/LoggerUtils.js.map +1 -0
  262. package/Logging/vNext/ConsoleLogger.d.ts +56 -0
  263. package/Logging/vNext/ConsoleLogger.d.ts.map +1 -0
  264. package/Logging/vNext/ConsoleLogger.js +76 -0
  265. package/Logging/vNext/ConsoleLogger.js.map +1 -0
  266. package/Logging/vNext/Interfaces/ILogger.d.ts +38 -0
  267. package/Logging/vNext/Interfaces/ILogger.d.ts.map +1 -0
  268. package/Logging/vNext/Interfaces/ILogger.js +3 -0
  269. package/Logging/vNext/Interfaces/ILogger.js.map +1 -0
  270. package/Logging/vNext/LoggerExtensions.d.ts +79 -0
  271. package/Logging/vNext/LoggerExtensions.d.ts.map +1 -0
  272. package/Logging/vNext/LoggerExtensions.js +175 -0
  273. package/Logging/vNext/LoggerExtensions.js.map +1 -0
  274. package/Logging/vNext/Styles/Style.d.ts +9 -0
  275. package/Logging/vNext/Styles/Style.d.ts.map +1 -0
  276. package/Logging/vNext/Styles/Style.js +17 -0
  277. package/Logging/vNext/Styles/Style.js.map +1 -0
  278. package/Logging/vNext/Styles/StyleDirectives.d.ts +61 -0
  279. package/Logging/vNext/Styles/StyleDirectives.d.ts.map +1 -0
  280. package/Logging/vNext/Styles/StyleDirectives.js +118 -0
  281. package/Logging/vNext/Styles/StyleDirectives.js.map +1 -0
  282. package/System/Args.d.ts +20 -0
  283. package/System/Args.d.ts.map +1 -0
  284. package/System/Args.js +45 -0
  285. package/System/Args.js.map +1 -0
  286. package/System/Array.d.ts +41 -0
  287. package/System/Array.d.ts.map +1 -0
  288. package/System/Array.js +91 -0
  289. package/System/Array.js.map +1 -0
  290. package/System/Assign.d.ts +12 -0
  291. package/System/Assign.d.ts.map +1 -0
  292. package/System/Assign.js +40 -0
  293. package/System/Assign.js.map +1 -0
  294. package/System/Boolean.d.ts +20 -0
  295. package/System/Boolean.d.ts.map +1 -0
  296. package/System/Boolean.js +52 -0
  297. package/System/Boolean.js.map +1 -0
  298. package/System/Error.d.ts +9 -0
  299. package/System/Error.d.ts.map +1 -0
  300. package/System/Error.js +20 -0
  301. package/System/Error.js.map +1 -0
  302. package/System/Errors.d.ts +7 -0
  303. package/System/Errors.d.ts.map +1 -0
  304. package/System/Errors.js +18 -0
  305. package/System/Errors.js.map +1 -0
  306. package/System/Formatter.d.ts +4 -0
  307. package/System/Formatter.d.ts.map +1 -0
  308. package/System/Formatter.js +17 -0
  309. package/System/Formatter.js.map +1 -0
  310. package/System/Guard.d.ts +5 -0
  311. package/System/Guard.d.ts.map +1 -0
  312. package/System/Guard.js +29 -0
  313. package/System/Guard.js.map +1 -0
  314. package/System/Interfaces/IType.d.ts +7 -0
  315. package/System/Interfaces/IType.d.ts.map +1 -0
  316. package/System/Interfaces/IType.js +3 -0
  317. package/System/Interfaces/IType.js.map +1 -0
  318. package/System/Interfaces/IUnknown.d.ts +7 -0
  319. package/System/Interfaces/IUnknown.d.ts.map +1 -0
  320. package/System/Interfaces/IUnknown.js +3 -0
  321. package/System/Interfaces/IUnknown.js.map +1 -0
  322. package/System/List.d.ts +27 -0
  323. package/System/List.d.ts.map +1 -0
  324. package/System/List.js +84 -0
  325. package/System/List.js.map +1 -0
  326. package/System/Number.d.ts +10 -0
  327. package/System/Number.d.ts.map +1 -0
  328. package/System/Number.js +28 -0
  329. package/System/Number.js.map +1 -0
  330. package/System/Process.d.ts +30 -0
  331. package/System/Process.d.ts.map +1 -0
  332. package/System/Process.js +167 -0
  333. package/System/Process.js.map +1 -0
  334. package/System/Require.d.ts +8 -0
  335. package/System/Require.d.ts.map +1 -0
  336. package/System/Require.js +20 -0
  337. package/System/Require.js.map +1 -0
  338. package/System/Stopwatch.d.ts +19 -0
  339. package/System/Stopwatch.d.ts.map +1 -0
  340. package/System/Stopwatch.js +73 -0
  341. package/System/Stopwatch.js.map +1 -0
  342. package/System/String.d.ts +19 -0
  343. package/System/String.d.ts.map +1 -0
  344. package/System/String.js +177 -0
  345. package/System/String.js.map +1 -0
  346. package/System/Time.d.ts +7 -0
  347. package/System/Time.d.ts.map +1 -0
  348. package/System/Time.js +16 -0
  349. package/System/Time.js.map +1 -0
  350. package/System/Version.d.ts +20 -0
  351. package/System/Version.d.ts.map +1 -0
  352. package/System/Version.js +135 -0
  353. package/System/Version.js.map +1 -0
  354. package/Terminal/Terminal.d.ts +7 -0
  355. package/Terminal/Terminal.d.ts.map +1 -0
  356. package/Terminal/Terminal.js +21 -0
  357. package/Terminal/Terminal.js.map +1 -0
  358. package/Terminal/TerminalColorType.d.ts +2 -0
  359. package/Terminal/TerminalColorType.d.ts.map +1 -0
  360. package/Terminal/TerminalColorType.js +3 -0
  361. package/Terminal/TerminalColorType.js.map +1 -0
  362. package/Terminal/TerminalColors.d.ts +38 -0
  363. package/Terminal/TerminalColors.d.ts.map +1 -0
  364. package/Terminal/TerminalColors.js +151 -0
  365. package/Terminal/TerminalColors.js.map +1 -0
  366. package/Terminal/TerminalSymbolType.d.ts +2 -0
  367. package/Terminal/TerminalSymbolType.d.ts.map +1 -0
  368. package/Terminal/TerminalSymbolType.js +3 -0
  369. package/Terminal/TerminalSymbolType.js.map +1 -0
  370. package/Terminal/TerminalSymbols.d.ts +7 -0
  371. package/Terminal/TerminalSymbols.d.ts.map +1 -0
  372. package/Terminal/TerminalSymbols.js +30 -0
  373. package/Terminal/TerminalSymbols.js.map +1 -0
  374. package/package.json +26 -0
package/IO/File.js ADDED
@@ -0,0 +1,314 @@
1
+ "use strict";
2
+ // #region Imports
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.File = void 0;
28
+ const crypto = __importStar(require("crypto"));
29
+ const fs = __importStar(require("fs"));
30
+ const fse = __importStar(require("fs-extra"));
31
+ const xml2js = __importStar(require("xml2js"));
32
+ const Error_1 = require("../System/Error");
33
+ const String_1 = require("../System/String");
34
+ const Languages_1 = require("../Intl/Languages");
35
+ const Directory_1 = require("./Directory");
36
+ const Path_1 = require("./Path");
37
+ const Json_1 = require("./Json");
38
+ // #endregion
39
+ class File {
40
+ // #region Methods
41
+ /**
42
+ * Determines whether the specified file exists.
43
+ * @public
44
+ * @static
45
+ * @param {string} path The file to check.
46
+ * @returns {boolean} `true` if the caller has the required permissions and path contains the name of an existing file; otherwise, `false`. This method also returns `false` if `path` is `null`, an invalid path, or a zero-length string. If the caller does not have sufficient permissions to read the specified file, no exception is thrown and the method returns `false` regardless of the existence of `path`.
47
+ */
48
+ static exists(path) {
49
+ if (typeof path !== 'string') {
50
+ throw new Error('Argument \'path\' is not of type string.');
51
+ }
52
+ return fs.existsSync(path);
53
+ }
54
+ /**
55
+ * Copies an existing file to a new file.
56
+ * @public
57
+ * @static
58
+ * @param {string} sourceFileName The file to copy.
59
+ * @param {string} destFileName The name of the destination file.
60
+ * @param {boolean} overwrite `true` if the destination file can be overwritten. Otherwise, `false`.
61
+ * @returns {void}
62
+ */
63
+ static copy(sourceFileName, destFileName, overwrite = false) {
64
+ fse.copySync(sourceFileName, destFileName, { overwrite: overwrite });
65
+ }
66
+ /**
67
+ * Opens a file, reads all text in the file with the specified encoding, and then closes the file.
68
+ * @public
69
+ * @static
70
+ * @param {string} path The file to open for reading.
71
+ * @param {Encoding} encoding The encoding applied to the contents of the file.
72
+ * @returns {string} A string containing all text in the file.
73
+ */
74
+ static readAllText(path, encoding = 'utf8') {
75
+ if (fs.existsSync(path)) {
76
+ let content = fs.readFileSync(path, encoding);
77
+ if (content.charCodeAt(0) === 0xFEFF) {
78
+ content = content.slice(1);
79
+ }
80
+ return content;
81
+ }
82
+ throw new Error(`Unable to read path '${path}'.`);
83
+ }
84
+ /**
85
+ * Opens a binary file, reads the contents of the file into a byte array, and then closes the file.
86
+ * @public
87
+ * @static
88
+ * @param {string} path - The file to open for reading.
89
+ * @returns {Buffer} A buffer containing the contents of the file.
90
+ */
91
+ static readAllBytes(path) {
92
+ return fs.readFileSync(path);
93
+ }
94
+ /**
95
+ * Creates a new file, write the contents to the file, and then closes the file. If the target file already exists, it is overwritten.
96
+ * @public
97
+ * @static
98
+ * @param {string} path The file to write to.
99
+ * @param {string} contents The string to write to the file.
100
+ * @param {Encoding} encoding The encoding to apply to the string.
101
+ * @returns {void}
102
+ */
103
+ static writeAllText(path, contents, encoding = 'utf8') {
104
+ const dirname = Path_1.Path.getDirectoryName(path);
105
+ if (!fs.existsSync(dirname)) {
106
+ fse.mkdirsSync(dirname);
107
+ File.writeAllText(path, contents);
108
+ }
109
+ else {
110
+ if (fs.existsSync(path)) {
111
+ const stat = fs.statSync(path);
112
+ // Check readonly
113
+ if ((stat.mode & 146) === 0) {
114
+ throw new Error(`Path '${path}' could not be written, because it's ready only.`);
115
+ }
116
+ }
117
+ fs.writeFileSync(path, contents, encoding);
118
+ }
119
+ }
120
+ /**
121
+ * Creates a new file, write the contents to the file, and then closes the file. If the target file already exists, it is overwritten.
122
+ * @public
123
+ * @static
124
+ * @param {string} path The file to write to.
125
+ * @param {unknown} data The json data to write
126
+ * @param {Encoding} encoding The encoding to apply to the string.
127
+ * @returns {void}
128
+ */
129
+ static writeAllJson(path, data, encoding = 'utf8') {
130
+ try {
131
+ File.writeAllText(path, JSON.stringify(data, null, 4), encoding);
132
+ }
133
+ catch (error) {
134
+ throw new Error(`Unable to write file '${path}'.${String_1.StringExtensions.newLine}${(0, Error_1.extractError)(error)}`);
135
+ }
136
+ }
137
+ /**
138
+ * Deletes the specified file.
139
+ * @public
140
+ * @static
141
+ * @param {string} path The name of the file to be deleted. Wildcard characters are not supported.
142
+ * @returns {void}
143
+ */
144
+ static delete(path) {
145
+ if (path === '') {
146
+ throw new Error('thThe path cannot be empty.');
147
+ }
148
+ fs.unlinkSync(path);
149
+ }
150
+ /**
151
+ * Moves a specified file to a new location, providing the option to specify a new file name.
152
+ * @public
153
+ * @static
154
+ * @param {string} sourceFileName The name of the file to move. Can include a relative or absolute path.
155
+ * @param {string} destFileName The new path and name for the file.
156
+ * @returns {void}
157
+ */
158
+ static move(sourceFileName, destFileName) {
159
+ fs.renameSync(sourceFileName, destFileName);
160
+ }
161
+ // #endregion
162
+ /**
163
+ * @public
164
+ * @static
165
+ * @param {string} file The json file to read
166
+ * @returns {object} a json object
167
+ */
168
+ static readAllJson(file) {
169
+ try {
170
+ const data = File.readAllText(file);
171
+ return Json_1.Json.parse(data).entries;
172
+ }
173
+ catch (error) {
174
+ throw new Error(`Unable to parse file '${file}'.${String_1.StringExtensions.newLine}${(0, Error_1.extractError)(error)}`);
175
+ }
176
+ }
177
+ /**
178
+ * @public
179
+ * @static
180
+ * @param {string} file The resx file to read
181
+ * @returns {Array<IResxEntry>} a resx object
182
+ */
183
+ static readAllResx(file) {
184
+ try {
185
+ let elements = new Array();
186
+ const data = File.readAllText(file);
187
+ new xml2js.Parser().parseString(data, (err, result) => {
188
+ if (err) {
189
+ throw err;
190
+ }
191
+ if (result?.root?.data) {
192
+ elements = result.root.data.map((x) => ({
193
+ key: x.$.name,
194
+ value: (x.value ?? [])[0],
195
+ comment: (x.comment ?? [])[0] ?? ''
196
+ }), {});
197
+ }
198
+ });
199
+ return elements;
200
+ }
201
+ catch (error) {
202
+ throw new Error(`Unable to parse file '${file}'.${String_1.StringExtensions.newLine}${(0, Error_1.extractError)(error)}`);
203
+ }
204
+ }
205
+ /**
206
+ * @public
207
+ * @static
208
+ * @param {string} file The xml file to read
209
+ * @returns {T} a xml object
210
+ */
211
+ static readAllXml(file) {
212
+ try {
213
+ let result = null;
214
+ const data = File.readAllText(file);
215
+ new xml2js.Parser().parseString(data, (err, r) => {
216
+ if (err) {
217
+ throw err;
218
+ }
219
+ result = r;
220
+ });
221
+ return result;
222
+ }
223
+ catch (error) {
224
+ throw new Error(`Unable to parse file '${file}'.${String_1.StringExtensions.newLine}${(0, Error_1.extractError)(error)}`);
225
+ }
226
+ }
227
+ /**
228
+ * @public
229
+ * @static
230
+ * @param {string} file The file to hash
231
+ * @param {string} algorithm The crypto hash algorithm
232
+ * @param {string} encoding The crypto hash encoding
233
+ * @description Creates a hash from a file.
234
+ * @returns {Promise<string | Buffer>} A promise with hash object as string or buffer
235
+ */
236
+ static hash(file, algorithm = 'md5', encoding = 'hex') {
237
+ const hash = crypto.createHash(algorithm).setEncoding(encoding);
238
+ const stream = fs.createReadStream(file);
239
+ return new Promise((resolve, reject) => {
240
+ stream.on('end', () => {
241
+ hash.end();
242
+ resolve(hash.read());
243
+ });
244
+ stream.on('error', reject);
245
+ stream.pipe(hash);
246
+ });
247
+ }
248
+ /**
249
+ * Find files using glob patterns.
250
+ *
251
+ * @public
252
+ * @static
253
+ * @param {string | string[]} pattern - The globbing pattern
254
+ * @returns {string[]} The Files
255
+ */
256
+ static glob(pattern) {
257
+ return Path_1.Path.glob(pattern, { onlyFiles: true });
258
+ }
259
+ /**
260
+ * Extracts the local from a file.
261
+ *
262
+ * @public
263
+ * @static
264
+ * @param {string} file The file
265
+ * @param {string} defaultLocale The default locale
266
+ * @returns {string[]} The Files
267
+ */
268
+ static getLocale(file, defaultLocale = 'en') {
269
+ let index = file.lastIndexOf('.');
270
+ const fileNameWithoutExt = file.substring(0, index);
271
+ index = fileNameWithoutExt.lastIndexOf('.');
272
+ let match = '';
273
+ if (index >= 0) {
274
+ match = fileNameWithoutExt.substring(index + 1, fileNameWithoutExt.length);
275
+ }
276
+ if (!Languages_1.Languages.has(match)) {
277
+ match = defaultLocale;
278
+ }
279
+ return match;
280
+ }
281
+ /**
282
+ * Gets the size of a file.
283
+ *
284
+ * @public
285
+ * @static
286
+ * @param {string} file The file
287
+ * @returns {number} The file size.
288
+ */
289
+ static size(file) {
290
+ const stats = fs.statSync(file);
291
+ return stats.size;
292
+ }
293
+ /**
294
+ * Create a new symbolic link to an existing file, directory or junction.
295
+ *
296
+ * @public
297
+ * @static
298
+ * @param {string} src The source file or directory.
299
+ * @param {string} dest The destination file or directory.
300
+ * @param {SymbolicLink} symbolicLink The type of symbolic should create.
301
+ */
302
+ static createSymbolicLink(src, dest, symbolicLink) {
303
+ if (!Directory_1.Directory.exists(dest)) {
304
+ Directory_1.Directory.create(dest);
305
+ Directory_1.Directory.delete(dest);
306
+ }
307
+ else {
308
+ Directory_1.Directory.delete(dest);
309
+ }
310
+ fse.symlinkSync(src, dest, symbolicLink);
311
+ }
312
+ }
313
+ exports.File = File;
314
+ //# sourceMappingURL=File.js.map
package/IO/File.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"File.js","sourceRoot":"","sources":["../../src/IO/File.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ export declare class FileSystemInfo {
2
+ private readonly _fullPath;
3
+ /**
4
+ * Constructs a new `FileSystemInfo` instance.
5
+ *
6
+ * @param fullPath - The full path to the file or directory.
7
+ */
8
+ constructor(fullPath: string);
9
+ /**
10
+ * Gets the full path of the file or directory.
11
+ */
12
+ get fullPath(): string;
13
+ /**
14
+ * Gets the directory path of the file or directory.
15
+ */
16
+ get directoryPath(): string;
17
+ /**
18
+ * Gets the name of the file or directory.
19
+ */
20
+ get name(): string;
21
+ /**
22
+ * Determines whether the path represents a file.
23
+ */
24
+ isFile(): boolean;
25
+ /**
26
+ * Determines whether the path represents a directory.
27
+ */
28
+ isDirectory(): boolean;
29
+ /**
30
+ * Gets the creation time of the file or directory.
31
+ */
32
+ get creationTime(): Date | null;
33
+ /**
34
+ * Gets the last modification time of the file or directory.
35
+ */
36
+ get lastModifiedTime(): Date | null;
37
+ /**
38
+ * Gets the size of the file or directory (in bytes).
39
+ */
40
+ get size(): number | null;
41
+ /**
42
+ * Determines if the path exists.
43
+ */
44
+ exists(): boolean;
45
+ }
46
+ //# sourceMappingURL=FileSystemInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileSystemInfo.d.ts","sourceRoot":"","sources":["../../src/IO/FileSystemInfo.ts"],"names":[],"mappings":"AAOA,qBAAa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAMnC;;;;OAIG;gBACgB,QAAQ,EAAE,MAAM;IAQnC;;OAEG;IACH,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED;;OAEG;IACH,IAAW,aAAa,IAAI,MAAM,CAEjC;IAED;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;OAEG;IACI,MAAM,IAAI,OAAO;IAQxB;;OAEG;IACI,WAAW,IAAI,OAAO;IAQ7B;;OAEG;IACH,IAAW,YAAY,IAAI,IAAI,GAAG,IAAI,CAMrC;IAED;;OAEG;IACH,IAAW,gBAAgB,IAAI,IAAI,GAAG,IAAI,CAMzC;IAED;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,GAAG,IAAI,CAM/B;IAMD;;OAEG;IACI,MAAM,IAAI,OAAO;CAM3B"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ // #region Imports
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.FileSystemInfo = void 0;
28
+ const fs = __importStar(require("fs"));
29
+ const Path_1 = require("./Path");
30
+ // #endregion
31
+ class FileSystemInfo {
32
+ // #region Fields
33
+ _fullPath;
34
+ // #endregion
35
+ // #region Ctor
36
+ /**
37
+ * Constructs a new `FileSystemInfo` instance.
38
+ *
39
+ * @param fullPath - The full path to the file or directory.
40
+ */
41
+ constructor(fullPath) {
42
+ this._fullPath = Path_1.Path.resolve(fullPath);
43
+ }
44
+ // #endregion
45
+ // #region Properties
46
+ /**
47
+ * Gets the full path of the file or directory.
48
+ */
49
+ get fullPath() {
50
+ return this._fullPath;
51
+ }
52
+ /**
53
+ * Gets the directory path of the file or directory.
54
+ */
55
+ get directoryPath() {
56
+ return Path_1.Path.getDirectoryName(this._fullPath);
57
+ }
58
+ /**
59
+ * Gets the name of the file or directory.
60
+ */
61
+ get name() {
62
+ return Path_1.Path.getFileName(this._fullPath);
63
+ }
64
+ /**
65
+ * Determines whether the path represents a file.
66
+ */
67
+ isFile() {
68
+ try {
69
+ return fs.statSync(this._fullPath).isFile();
70
+ }
71
+ catch {
72
+ return false;
73
+ }
74
+ }
75
+ /**
76
+ * Determines whether the path represents a directory.
77
+ */
78
+ isDirectory() {
79
+ try {
80
+ return fs.statSync(this._fullPath).isDirectory();
81
+ }
82
+ catch {
83
+ return false;
84
+ }
85
+ }
86
+ /**
87
+ * Gets the creation time of the file or directory.
88
+ */
89
+ get creationTime() {
90
+ try {
91
+ return fs.statSync(this._fullPath).birthtime;
92
+ }
93
+ catch {
94
+ return null;
95
+ }
96
+ }
97
+ /**
98
+ * Gets the last modification time of the file or directory.
99
+ */
100
+ get lastModifiedTime() {
101
+ try {
102
+ return fs.statSync(this._fullPath).mtime;
103
+ }
104
+ catch {
105
+ return null;
106
+ }
107
+ }
108
+ /**
109
+ * Gets the size of the file or directory (in bytes).
110
+ */
111
+ get size() {
112
+ try {
113
+ return this.isFile() ? fs.statSync(this._fullPath).size : null;
114
+ }
115
+ catch {
116
+ return null;
117
+ }
118
+ }
119
+ // #endregion
120
+ // #region Imports
121
+ /**
122
+ * Determines if the path exists.
123
+ */
124
+ exists() {
125
+ return fs.existsSync(this._fullPath);
126
+ }
127
+ }
128
+ exports.FileSystemInfo = FileSystemInfo;
129
+ //# sourceMappingURL=FileSystemInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileSystemInfo.js","sourceRoot":"","sources":["../../src/IO/FileSystemInfo.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;AAElB,uCAAyB;AACzB,iCAA8B;AAE9B,aAAa;AAEb,MAAa,cAAc;IAEvB,iBAAiB;IAEA,SAAS,CAAS;IAEnC,aAAa;IAEb,eAAe;IAEf;;;;OAIG;IACH,YAAmB,QAAgB;QAC/B,IAAI,CAAC,SAAS,GAAG,WAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,aAAa;IAEb,qBAAqB;IAErB;;OAEG;IACH,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAW,aAAa;QACpB,OAAO,WAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,IAAW,IAAI;QACX,OAAO,WAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,MAAM;QACT,IAAI,CAAC;YACD,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED;;OAEG;IACI,WAAW;QACd,IAAI,CAAC;YACD,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAW,YAAY;QACnB,IAAI,CAAC;YACD,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACvB,IAAI,CAAC;YACD,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAW,IAAI;QACX,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,aAAa;IAEb,kBAAkB;IAElB;;OAEG;IACI,MAAM;QACT,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;CAIJ;AAhHD,wCAgHC"}
@@ -0,0 +1,49 @@
1
+ import { EventEmitter } from 'events';
2
+ /**
3
+ * Options for the FileSystemWatcher.
4
+ */
5
+ export interface IFileSystemWatcherOptions {
6
+ path: string;
7
+ includeSubdirectories?: boolean;
8
+ filter?: string | Array<string>;
9
+ }
10
+ /**
11
+ * Events for file system changes.
12
+ */
13
+ export interface IFileSystemWatcherEventMap {
14
+ created: [filePath: string];
15
+ changed: [filePath: string];
16
+ deleted: [filePath: string];
17
+ }
18
+ /**
19
+ * A class to monitor file system changes, inspired by .NET's FileSystemWatcher.
20
+ */
21
+ export declare class FileSystemWatcher extends EventEmitter<IFileSystemWatcherEventMap> {
22
+ private _watcher?;
23
+ private readonly _options;
24
+ private readonly _filteredPaths;
25
+ /**
26
+ * Constructs a new FileSystemWatcher.
27
+ * @param options - The options for the watcher.
28
+ */
29
+ constructor(options: IFileSystemWatcherOptions);
30
+ /**
31
+ * Starts watching the file system for changes.
32
+ */
33
+ start(): void;
34
+ /**
35
+ * Stops watching the file system.
36
+ */
37
+ stop(): void;
38
+ /**
39
+ * Initializes the filtered paths based on the provided glob patterns.
40
+ */
41
+ private initializeFilteredPaths;
42
+ /**
43
+ * Determines if a file path matches the filter criteria.
44
+ * @param filePath - The file path to check.
45
+ * @returns `true` if the path matches the filter, otherwise `false`.
46
+ */
47
+ private isFiltered;
48
+ }
49
+ //# sourceMappingURL=FileSystemWatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileSystemWatcher.d.ts","sourceRoot":"","sources":["../../src/IO/FileSystemWatcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAQtC;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,YAAY,CAAC,0BAA0B,CAAC;IAE3E,OAAO,CAAC,QAAQ,CAAC,CAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAE7C;;;OAGG;gBACgB,OAAO,EAAE,yBAAyB;IAerD;;OAEG;IACI,KAAK,IAAI,IAAI;IA6BpB;;OAEG;IACI,IAAI,IAAI,IAAI;IAKnB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAa/B;;;;OAIG;IACH,OAAO,CAAC,UAAU;CAIrB"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.FileSystemWatcher = void 0;
5
+ const events_1 = require("events");
6
+ const fs_1 = require("fs");
7
+ const File_1 = require("./File");
8
+ const Directory_1 = require("./Directory");
9
+ const Path_1 = require("./Path");
10
+ /**
11
+ * A class to monitor file system changes, inspired by .NET's FileSystemWatcher.
12
+ */
13
+ class FileSystemWatcher extends events_1.EventEmitter {
14
+ _watcher;
15
+ _options;
16
+ _filteredPaths;
17
+ /**
18
+ * Constructs a new FileSystemWatcher.
19
+ * @param options - The options for the watcher.
20
+ */
21
+ constructor(options) {
22
+ super();
23
+ this._filteredPaths = new Set();
24
+ this._options = {
25
+ includeSubdirectories: true,
26
+ ...options
27
+ };
28
+ if (!Directory_1.Directory.exists(this._options.path)) {
29
+ throw new Error(`Path does not exist: ${this._options.path}`);
30
+ }
31
+ this.initializeFilteredPaths();
32
+ }
33
+ /**
34
+ * Starts watching the file system for changes.
35
+ */
36
+ start() {
37
+ const { path, includeSubdirectories } = this._options;
38
+ this._watcher = (0, fs_1.watch)(path, { recursive: includeSubdirectories }, (eventType, filename) => {
39
+ if (!filename) {
40
+ return;
41
+ }
42
+ const fullPath = Path_1.Path.combine(path, filename);
43
+ if (this.isFiltered(fullPath)) {
44
+ switch (eventType) {
45
+ case 'rename':
46
+ if (File_1.File.exists(fullPath)) {
47
+ this.emit('created', fullPath);
48
+ }
49
+ else {
50
+ this.emit('deleted', fullPath);
51
+ }
52
+ break;
53
+ case 'change':
54
+ this.emit('changed', fullPath);
55
+ break;
56
+ default:
57
+ break;
58
+ }
59
+ }
60
+ });
61
+ console.log(`FileSystemWatcher started for path: ${path}`);
62
+ }
63
+ /**
64
+ * Stops watching the file system.
65
+ */
66
+ stop() {
67
+ this._watcher?.close();
68
+ console.log('FileSystemWatcher stopped.');
69
+ }
70
+ /**
71
+ * Initializes the filtered paths based on the provided glob patterns.
72
+ */
73
+ initializeFilteredPaths() {
74
+ const { path, filter } = this._options;
75
+ if (filter) {
76
+ const patterns = Array.isArray(filter) ? filter : [filter];
77
+ const resolvedPaths = Path_1.Path.glob(patterns.map((pattern) => Path_1.Path.combine(path, pattern)));
78
+ for (const resolvedPath of resolvedPaths) {
79
+ this._filteredPaths.add(resolvedPath);
80
+ }
81
+ }
82
+ }
83
+ /**
84
+ * Determines if a file path matches the filter criteria.
85
+ * @param filePath - The file path to check.
86
+ * @returns `true` if the path matches the filter, otherwise `false`.
87
+ */
88
+ isFiltered(filePath) {
89
+ return this._filteredPaths.size === 0 || this._filteredPaths.has(filePath);
90
+ }
91
+ }
92
+ exports.FileSystemWatcher = FileSystemWatcher;
93
+ //# sourceMappingURL=FileSystemWatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileSystemWatcher.js","sourceRoot":"","sources":["../../src/IO/FileSystemWatcher.ts"],"names":[],"mappings":"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"}