@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgramCommands.d.ts","sourceRoot":"","sources":["../../src/Cli/ProgramCommands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAsBnE;;GAEG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IAIpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IACrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA+B;IACjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,YAAY,CAA4B;IAMhD;;;;OAIG;gBACgB,IAAI,CAAC,EAAE,YAAY;IAqBtC;;;;;;;OAOG;IACI,QAAQ,CAAC,QAAQ,SAAS,KAAK,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,sBAAsB,CAAC,EAAE,MAAM,qBAAqB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAU1K;;;;;OAKG;IAEU,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBvD;;;;;;OAMG;IACI,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI;IA+B1D;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAarD;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrC,OAAO,CAAC,aAAa;CAaxB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAkBpF"}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ProgramCommands = void 0;
5
+ exports.convertKeysToCamelCase = convertKeysToCamelCase;
6
+ const argparse_1 = require("argparse");
7
+ /**
8
+ * @private
9
+ */
10
+ class ProgramCommands {
11
+ // #region Fields
12
+ _commandTypes;
13
+ _commandInstances;
14
+ _parser;
15
+ _currentCommand;
16
+ _currentArgs;
17
+ // #endregion
18
+ // #region Ctor
19
+ /**
20
+ * Constructs a new instance of the `ProgramCommands` class.
21
+ *
22
+ * @public
23
+ */
24
+ constructor(init) {
25
+ this._commandTypes = [];
26
+ this._commandInstances = [];
27
+ this._parser = new argparse_1.ArgumentParser({
28
+ description: init?.description,
29
+ epilog: init?.epilog,
30
+ // eslint-disable-next-line camelcase
31
+ add_help: init?.addHelp,
32
+ // eslint-disable-next-line camelcase
33
+ prefix_chars: init?.prefixChars ?? '-',
34
+ prog: init?.prog,
35
+ usage: init?.usage
36
+ });
37
+ this._currentCommand = null;
38
+ this._currentArgs = null;
39
+ }
40
+ // #endregion
41
+ // #region Methods
42
+ /**
43
+ * Register a command.
44
+ *
45
+ * @public
46
+ * @param commandName - The command name.
47
+ * @param commandType - The command type to register.
48
+ * @param commandInstanceFactory - The optional factory to instaiate the command.
49
+ */
50
+ register(commandName, commandType, commandInstanceFactory) {
51
+ this._commandTypes.push({
52
+ name: commandName,
53
+ type: commandType,
54
+ factory: commandInstanceFactory ?? (() => [])
55
+ });
56
+ return this;
57
+ }
58
+ /**
59
+ * Initalize a command.
60
+ *
61
+ * @public
62
+ * @param command - The optional command to parse.
63
+ */
64
+ async initalize(command) {
65
+ command ??= this.ensureCommand();
66
+ const entry = this._commandTypes.find((x) => x.name === command);
67
+ if (entry) {
68
+ const args = entry.factory();
69
+ const instance = new entry.type(...args);
70
+ await instance.initalize();
71
+ this._commandInstances.push({
72
+ type: entry.type,
73
+ instance: instance,
74
+ config: args[0]
75
+ });
76
+ }
77
+ }
78
+ /**
79
+ * Parse the command from argv.
80
+ *
81
+ * @public
82
+ * @param command - The optional command to parse.
83
+ * @param args - The optional arguments to parse.
84
+ */
85
+ parse(command, args) {
86
+ const allArgs = process.argv.slice(2);
87
+ command ??= allArgs.splice(0, 1).join();
88
+ args ??= allArgs.splice(0, process.argv.length);
89
+ if (command.startsWith('-')) {
90
+ throw new Error('The command is missing or invalid.');
91
+ }
92
+ const entry = this._commandInstances.find((x) => x.instance.name === command);
93
+ if (entry) {
94
+ this._currentCommand = command;
95
+ this._currentArgs = entry.instance.args ?? [];
96
+ this._currentArgs.forEach((x) => {
97
+ if (typeof x.alias === 'string') {
98
+ this._parser.add_argument(x.alias, x.options);
99
+ }
100
+ else {
101
+ this._parser.add_argument(x.alias[0], x.alias[1], x.options);
102
+ }
103
+ });
104
+ // why we need to convert keys to camel case? because argparse sucks and uses snake_case.
105
+ const parserArgs = convertKeysToCamelCase(this._parser.parse_args(args));
106
+ entry.instance.configure(parserArgs);
107
+ return;
108
+ }
109
+ throw new CommandNotFoundError(command, this._commandTypes.map((x) => x.name));
110
+ }
111
+ /**
112
+ * Execute a command.
113
+ *
114
+ * @public
115
+ */
116
+ async execute() {
117
+ const entry = this._commandInstances.find((x) => x.instance.name === this._currentCommand);
118
+ if (entry) {
119
+ return entry.instance.execute();
120
+ }
121
+ return {
122
+ canceled: true,
123
+ error: new CommandNotFoundError(this._currentCommand ?? '', this._commandTypes.map((x) => x.name))
124
+ };
125
+ }
126
+ /**
127
+ * Dispose a command.
128
+ *
129
+ * @public
130
+ */
131
+ async dispose() {
132
+ for (const entry of this._commandInstances) {
133
+ // eslint-disable-next-line no-await-in-loop
134
+ await entry.instance.dispose();
135
+ }
136
+ }
137
+ ensureCommand() {
138
+ const args = process.argv.slice(2);
139
+ const command = args.splice(0, 1).join();
140
+ if (command.startsWith('-')) {
141
+ throw new Error('The command is missing or invalid.');
142
+ }
143
+ return command;
144
+ }
145
+ }
146
+ exports.ProgramCommands = ProgramCommands;
147
+ /**
148
+ * Converts object keys from snake_case to camelCase.
149
+ *
150
+ * @param obj - The object to be converted.
151
+ * @returns A new object with camelCase keys.
152
+ */
153
+ function convertKeysToCamelCase(obj) {
154
+ if (Array.isArray(obj)) {
155
+ return obj.map((item) => typeof item === 'object' && item !== null ? convertKeysToCamelCase(item) : item);
156
+ }
157
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
158
+ if (typeof obj === 'object' && obj !== null) {
159
+ const newObject = {};
160
+ for (const [key, value] of Object.entries(obj)) {
161
+ const camelCaseKey = key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
162
+ newObject[camelCaseKey] = typeof value === 'object' && value !== null ? convertKeysToCamelCase(value) : value;
163
+ }
164
+ return newObject;
165
+ }
166
+ return obj;
167
+ }
168
+ class CommandNotFoundError extends Error {
169
+ constructor(command, commands) {
170
+ super(`The command '${command}' was not found. Available commands: ${commands.join(', ')}`);
171
+ }
172
+ }
173
+ //# sourceMappingURL=ProgramCommands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgramCommands.js","sourceRoot":"","sources":["../../src/Cli/ProgramCommands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { IProgramConfig } from './Interfaces/IProgramConfig';
2
+ /**
3
+ * The program configuration.
4
+ *
5
+ * @private
6
+ */
7
+ export declare class ProgramConfig<TConfig extends Record<string, unknown>> implements IProgramConfig<TConfig> {
8
+ private readonly _config;
9
+ /**
10
+ * Constructs a new instance of the `ProgramConfig` class.
11
+ *
12
+ * @public
13
+ */
14
+ constructor();
15
+ /**
16
+ * Returns the configuration.
17
+ *
18
+ * @public
19
+ * @readonly
20
+ */
21
+ get config(): TConfig;
22
+ assign(value?: Partial<TConfig>): TConfig;
23
+ }
24
+ //# sourceMappingURL=ProgramConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgramConfig.d.ts","sourceRoot":"","sources":["../../src/Cli/ProgramConfig.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAIlE;;;;GAIG;AACH,qBAAa,aAAa,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,YAAW,cAAc,CAAC,OAAO,CAAC;IAIlG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAMlC;;;;OAIG;;IASH;;;;;OAKG;IACH,IAAW,MAAM,IAAI,OAAO,CAE3B;IAMM,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;CAenD"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ProgramConfig = void 0;
5
+ const String_1 = require("../System/String");
6
+ // #endregion
7
+ /**
8
+ * The program configuration.
9
+ *
10
+ * @private
11
+ */
12
+ class ProgramConfig {
13
+ // #region Fields
14
+ _config;
15
+ // #endregion
16
+ // #region Ctor
17
+ /**
18
+ * Constructs a new instance of the `ProgramConfig` class.
19
+ *
20
+ * @public
21
+ */
22
+ constructor() {
23
+ this._config = Object.create({});
24
+ }
25
+ // #endregion
26
+ // #region Properties
27
+ /**
28
+ * Returns the configuration.
29
+ *
30
+ * @public
31
+ * @readonly
32
+ */
33
+ get config() {
34
+ return this._config;
35
+ }
36
+ // #endregion
37
+ // #region Methods
38
+ assign(value) {
39
+ if (value) {
40
+ Object.keys(value).forEach((key) => {
41
+ if (Object.keys(this._config).length > 0) {
42
+ // @ts-ignore fix suppressImplicitAnyIndexErrors
43
+ this._config[String_1.StringExtensions.firstCharToLowerCase(key)] = value[key];
44
+ }
45
+ });
46
+ }
47
+ return this._config;
48
+ }
49
+ }
50
+ exports.ProgramConfig = ProgramConfig;
51
+ //# sourceMappingURL=ProgramConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgramConfig.js","sourceRoot":"","sources":["../../src/Cli/ProgramConfig.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAElB,6CAAoD;AAGpD,aAAa;AAEb;;;;GAIG;AACH,MAAa,aAAa;IAEtB,iBAAiB;IAEA,OAAO,CAAU;IAElC,aAAa;IAEb,eAAe;IAEf;;;;OAIG;IACH;QACI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,aAAa;IAEb,qBAAqB;IAErB;;;;;OAKG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,aAAa;IAEb,kBAAkB;IAEX,MAAM,CAAC,KAAwB;QAClC,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/B,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvC,gDAAgD;oBAChD,IAAI,CAAC,OAAO,CAAC,yBAAgB,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1E,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CAIJ;AApDD,sCAoDC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export type ProgramDoneFn = (error: Error | null, stdout: string, stderr: string) => void;
5
+ //# sourceMappingURL=ProgramDoneFn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgramDoneFn.d.ts","sourceRoot":"","sources":["../../src/Cli/ProgramDoneFn.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ProgramDoneFn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgramDoneFn.js","sourceRoot":"","sources":["../../src/Cli/ProgramDoneFn.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import { type CompilerOptions, Project, type SourceFile } from 'ts-morph';
2
+ /**
3
+ * TypeScript utility functions.
4
+ */
5
+ export declare namespace TypeScript {
6
+ interface ICompileResult {
7
+ program: Project;
8
+ files: Array<SourceFile>;
9
+ }
10
+ /**
11
+ * Compiles an array of files or file using ts-morph.
12
+ *
13
+ * @public
14
+ * @param filePaths - The path(s) to the file(s).
15
+ * @param options - The compiler options.
16
+ */
17
+ function compile(filePaths: string | Array<string>, options?: CompilerOptions): ICompileResult;
18
+ }
19
+ //# sourceMappingURL=TypeScript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeScript.d.ts","sourceRoot":"","sources":["../../src/Compiler/TypeScript.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,eAAe,EAAc,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAwBpG;;GAEG;AACH,yBAAiB,UAAU,CAAC;IAExB,UAAiB,cAAc;QAC3B,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;KAC5B;IAUD;;;;;;OAMG;IACH,SAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,GAAE,eAAgC,GAAG,cAAc,CAYpH;CA6KJ"}
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ // #region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.TypeScript = void 0;
5
+ // Import { type Block, parse } from 'comment-parser';
6
+ const ts_morph_1 = require("ts-morph");
7
+ // #endregion
8
+ /**
9
+ * The most general version of compiler options.
10
+ */
11
+ const defaultOptions = {
12
+ noEmitOnError: false,
13
+ allowJs: true,
14
+ maxNodeModuleJsDepth: 3,
15
+ experimentalDecorators: true,
16
+ target: ts_morph_1.ScriptTarget.Latest,
17
+ downlevelIteration: true,
18
+ module: ts_morph_1.ModuleKind.ESNext,
19
+ strictNullChecks: true,
20
+ esModuleInterop: true,
21
+ noEmit: true,
22
+ allowSyntheticDefaultImports: true,
23
+ allowUnreachableCode: true,
24
+ allowUnusedLabels: true,
25
+ skipLibCheck: true
26
+ };
27
+ /**
28
+ * TypeScript utility functions.
29
+ */
30
+ var TypeScript;
31
+ (function (TypeScript) {
32
+ // Export interface IReadJsDocTagsResult {
33
+ // Program: Project;
34
+ // JsDocTags : Array<{
35
+ // Ref: JSDoc;
36
+ // Parsed: Array<Block>;
37
+ // }>;
38
+ // }
39
+ /**
40
+ * Compiles an array of files or file using ts-morph.
41
+ *
42
+ * @public
43
+ * @param filePaths - The path(s) to the file(s).
44
+ * @param options - The compiler options.
45
+ */
46
+ function compile(filePaths, options = defaultOptions) {
47
+ filePaths = Array.isArray(filePaths) ? filePaths : [filePaths];
48
+ const project = new ts_morph_1.Project({
49
+ // TsConfigFilePath: 'tsconfig.json',
50
+ compilerOptions: options
51
+ });
52
+ const sourceFiles = filePaths.map((filePath) => project.addSourceFileAtPath(filePath));
53
+ return {
54
+ program: project,
55
+ files: sourceFiles
56
+ };
57
+ }
58
+ TypeScript.compile = compile;
59
+ // /**
60
+ // * Reads a TypeScript file and returns its JSDoc tags.
61
+ // *
62
+ // * @public
63
+ // * @param filePath - The path to the file.
64
+ // * @param options - The compiler options.
65
+ // */
66
+ // Export function readJsDocTags(filePath: string, options: CompilerOptions = defaultOptions): IReadJsDocTagsResult {
67
+ // Const project = new Project({
68
+ // CompilerOptions: options
69
+ // });
70
+ // Const sourceFile = project.addSourceFileAtPath(filePath);
71
+ // If (!sourceFile) {
72
+ // Throw new Error(`File not found: ${filePath}`);
73
+ // }
74
+ // Const jsDocTags: Array<{
75
+ // Ref: JSDoc;
76
+ // Parsed: Array<Block>;
77
+ // }> = [];
78
+ // // Function shouldCollect(kind: NodeKind): boolean {
79
+ // // Return filterKinds.includes('all') || filterKinds.includes(kind);
80
+ // // }
81
+ // Function visit(node: Node): void {
82
+ // If (Node.isJSDoc(node)) {
83
+ // JsDocTags.push({
84
+ // Ref: node,
85
+ // Parsed: parse(node.getText())
86
+ // });
87
+ // }
88
+ // If ((node as any).jsDoc) {
89
+ // (node as any).jsDoc?.forEach((jsDoc: any) => {
90
+ // JsDocTags.push({
91
+ // Ref: jsDoc,
92
+ // Parsed: parse(jsDoc.getText())
93
+ // });
94
+ // });
95
+ // }
96
+ // Node.forEachChild(visit);
97
+ // }
98
+ // Function collectJsDocTagsFromType(type: Type): void {
99
+ // Const symbol = type.getSymbol();
100
+ // If (!symbol) {
101
+ // Return;
102
+ // }
103
+ // Symbol.getDeclarations().forEach((declaration) => {
104
+ // If (Node.isClassDeclaration(declaration)) {
105
+ // CollectJsDocTagsFromClass(declaration);
106
+ // } else if (Node.isInterfaceDeclaration(declaration)) {
107
+ // Declaration.getJsDocs().forEach((jsDoc) => {
108
+ // JsDocTags.push({
109
+ // Ref: jsDoc,
110
+ // Parsed: parse(jsDoc.getText())
111
+ // });
112
+ // });
113
+ // } else if (Node.isTypeAliasDeclaration(declaration)) {
114
+ // Const aliasType = declaration.getType();
115
+ // CollectJsDocTagsFromType(aliasType);
116
+ // }
117
+ // });
118
+ // }
119
+ // Function collectJsDocTagsFromClass(classDeclaration: ClassDeclaration): void {
120
+ // If (classDeclaration.getName() === 'LitElement') {
121
+ // Return;
122
+ // }
123
+ // ClassDeclaration.getJsDocs().forEach((jsDoc) => {
124
+ // JsDocTags.push({
125
+ // Ref: jsDoc,
126
+ // Parsed: parse(jsDoc.getText())
127
+ // });
128
+ // });
129
+ // ClassDeclaration.getProperties().forEach((property) => {
130
+ // Property.getJsDocs().forEach((jsDoc) => {
131
+ // JsDocTags.push({
132
+ // Ref: jsDoc,
133
+ // Parsed: parse(jsDoc.getText())
134
+ // });
135
+ // });
136
+ // });
137
+ // ClassDeclaration.getMethods().forEach((method) => {
138
+ // Method.getJsDocs().forEach((jsDoc) => {
139
+ // JsDocTags.push({
140
+ // Ref: jsDoc,
141
+ // Parsed: parse(jsDoc.getText())
142
+ // });
143
+ // });
144
+ // });
145
+ // Const baseTypes = classDeclaration.getBaseTypes();
146
+ // BaseTypes.forEach(collectJsDocTagsFromType);
147
+ // // Handle mixins if any
148
+ // Const heritageClauses = classDeclaration.getHeritageClauses();
149
+ // HeritageClauses.forEach((clause) => {
150
+ // Clause.getTypeNodes().forEach((typeNode) => {
151
+ // Const type = typeNode.getType();
152
+ // CollectJsDocTagsFromType(type);
153
+ // });
154
+ // });
155
+ // }
156
+ // SourceFile.getClasses().forEach((classDeclaration) => {
157
+ // CollectJsDocTagsFromClass(classDeclaration);
158
+ // });
159
+ // SourceFile.forEachChild(visit);
160
+ // Return {
161
+ // Program: project,
162
+ // JsDocTags: jsDocTags
163
+ // };
164
+ // }
165
+ })(TypeScript || (exports.TypeScript = TypeScript = {}));
166
+ //# sourceMappingURL=TypeScript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeScript.js","sourceRoot":"","sources":["../../src/Compiler/TypeScript.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import 'reflect-metadata';
2
+ /**
3
+ * Represents a token that can be used for dependency injection.
4
+ * The token can be either a `Function` or a `string`.
5
+ *
6
+ * @template T The type of the token.
7
+ * @public
8
+ */
9
+ export type Token<T> = (new (...args: Array<any>) => T) | string;
10
+ /**
11
+ * Represents a dependency injection container.
12
+ *
13
+ * @public
14
+ */
15
+ export declare class Container {
16
+ private static _instance;
17
+ private readonly _registry;
18
+ /**
19
+ * Constructs a new instance of the `Container` class.
20
+ *
21
+ * @protected
22
+ */
23
+ protected constructor();
24
+ /**
25
+ * Gets the singleton instance of the `Container` class.
26
+ *
27
+ * @public
28
+ * @static
29
+ * @readonly
30
+ */
31
+ static get instance(): Container;
32
+ /**
33
+ * Registers a class for the specified token.
34
+ *
35
+ * @public
36
+ * @param token - The token to register. Can be a `Function` or `string`.
37
+ * @param clazz - The class to associate with the token. If not provided, the token itself will be used as the class.
38
+ */
39
+ provide<T>(token: Token<T>, clazz?: Token<T>): this;
40
+ /**
41
+ * Registers a factory function for the specified token.
42
+ *
43
+ * @public
44
+ * @param token - The token to register. Can be a `Function` or `string`.
45
+ * @param factory - The factory function to produce the instance.
46
+ */
47
+ provideFactory<T>(token: Token<T>, factory: (c: Container) => T): this;
48
+ /**
49
+ * Registers a static value or object for the specified token.
50
+ *
51
+ * @public
52
+ * @param token - The token to register. Can be a `Function` or `string`.
53
+ * @param value - The static value or object to register.
54
+ */
55
+ provideValue<T>(token: Token<T>, value: T): this;
56
+ /**
57
+ * Resolves an instance for the specified token.
58
+ *
59
+ * @public
60
+ * @param token - The token to resolve. Can be a `Function` or `string`.
61
+ * @returns The resolved instance.
62
+ * @throws Error if no instance is found for the token.
63
+ */
64
+ get<T = any>(token: Token<T>): T;
65
+ /**
66
+ * Reads type information from metadata and resolves dependencies.
67
+ *
68
+ * @private
69
+ * @param clazz - The class to resolve constructor parameters for.
70
+ */
71
+ private getInjectedParams;
72
+ }
73
+ //# sourceMappingURL=Container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../src/DI/Container.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAe1B;;;;;;GAMG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;AAEjE;;;;GAIG;AACH,qBAAa,SAAS;IAIlB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwC;IAMlE;;;;OAIG;IACH,SAAS;IAQT;;;;;;OAMG;IACH,WAAkB,QAAQ,IAAI,SAAS,CAMtC;IAMD;;;;;;OAMG;IACI,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;IAgB1D;;;;;;OAMG;IACI,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,CAAC,GAAG,IAAI;IAS7E;;;;;;OAMG;IACI,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IASvD;;;;;;;OAOG;IACI,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IA+BvC;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;CAY5B"}