@mrxsys/mrx-core 2.4.0 → 2.5.1

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 (312) hide show
  1. package/CHANGELOG.md +329 -31
  2. package/README.md +3 -3
  3. package/dist/chunk-1a3wj3m1.js +272 -0
  4. package/dist/chunk-370444pc.js +43 -0
  5. package/dist/chunk-5qtpggzv.js +38 -0
  6. package/dist/chunk-84mqvfsk.js +69 -0
  7. package/dist/chunk-cq973ydc.js +82 -0
  8. package/dist/chunk-f5z7x01b.js +352 -0
  9. package/dist/chunk-pc66jgqv.js +220 -0
  10. package/dist/chunk-s07amdhx.js +77 -0
  11. package/dist/chunk-v8v7982b.js +58 -0
  12. package/dist/chunk-vknq69e0.js +23 -0
  13. package/dist/chunk-yvyahr2h.js +40 -0
  14. package/dist/errors/baseError.d.ts +9 -0
  15. package/dist/errors/enums/httpErrorStatusCodes.d.ts +42 -0
  16. package/dist/errors/httpError.d.ts +14 -0
  17. package/dist/errors/index.d.ts +2 -0
  18. package/dist/errors/index.js +11 -0
  19. package/dist/errors/types/baseErrorOptions.d.ts +15 -0
  20. package/dist/errors/types/httpErrorOptions.d.ts +13 -0
  21. package/dist/errors/types/index.d.ts +2 -0
  22. package/dist/modules/data/data.d.ts +115 -0
  23. package/dist/modules/data/enums/dataErrorKeys.d.ts +3 -0
  24. package/dist/modules/data/index.d.ts +1 -0
  25. package/dist/modules/data/index.js +16 -0
  26. package/dist/modules/data/transformers/camelCase.d.ts +25 -0
  27. package/dist/modules/data/transformers/index.d.ts +4 -0
  28. package/dist/modules/data/transformers/index.js +32 -0
  29. package/dist/modules/data/transformers/kebabCase.d.ts +25 -0
  30. package/dist/modules/data/transformers/pascalCase.d.ts +25 -0
  31. package/dist/modules/data/transformers/snakeCase.d.ts +25 -0
  32. package/dist/modules/data/types/camelCase.d.ts +1 -0
  33. package/dist/modules/data/types/caseTransformer.d.ts +13 -0
  34. package/dist/modules/data/types/index.d.ts +10 -0
  35. package/dist/modules/data/types/kebabCase.d.ts +1 -0
  36. package/dist/modules/data/types/pascalCase.d.ts +2 -0
  37. package/dist/modules/data/types/snakeCase.d.ts +1 -0
  38. package/dist/modules/data/types/transformKeysCamelCase.d.ts +4 -0
  39. package/dist/modules/data/types/transformKeysKebabCase.d.ts +4 -0
  40. package/dist/modules/data/types/transformKeysPascalCase.d.ts +4 -0
  41. package/dist/modules/data/types/transformKeysSnakeCase.d.ts +4 -0
  42. package/dist/modules/data/types/transformObjectKeys.d.ts +9 -0
  43. package/dist/modules/database/enums/databaseErrorKeys.d.ts +28 -0
  44. package/dist/modules/database/enums/mssqlErrorCode.d.ts +25 -0
  45. package/dist/modules/database/events/index.d.ts +2 -0
  46. package/dist/modules/database/events/mssqlEventMap.d.ts +6 -0
  47. package/dist/modules/database/events/tableEventMap.d.ts +7 -0
  48. package/dist/modules/database/index.d.ts +2 -0
  49. package/dist/modules/database/index.js +14 -0
  50. package/dist/{database → modules/database}/mssql.d.ts +21 -25
  51. package/dist/{database → modules/database}/table.d.ts +6 -6
  52. package/dist/modules/database/types/index.d.ts +3 -0
  53. package/dist/{database → modules/database}/types/mssqlDatabaseOption.d.ts +16 -37
  54. package/dist/modules/database/types/mssqlEventLog.d.ts +14 -0
  55. package/dist/modules/database/types/queryContext.d.ts +11 -0
  56. package/dist/modules/elysia/crud/crud.d.ts +46 -0
  57. package/dist/modules/elysia/crud/index.d.ts +1 -0
  58. package/dist/modules/elysia/crud/index.js +299 -0
  59. package/dist/modules/elysia/crud/types/crudOperationBaseOptions.d.ts +6 -0
  60. package/dist/modules/elysia/crud/types/crudOperationCountOptions.d.ts +2 -0
  61. package/dist/modules/elysia/crud/types/crudOperationDeleteOneOptions.d.ts +2 -0
  62. package/dist/modules/elysia/crud/types/crudOperationDeleteOptions.d.ts +2 -0
  63. package/dist/modules/elysia/crud/types/crudOperationFindOneOptions.d.ts +2 -0
  64. package/dist/modules/elysia/crud/types/crudOperationFindOptions.d.ts +2 -0
  65. package/dist/modules/elysia/crud/types/crudOperationInsertOptions.d.ts +2 -0
  66. package/dist/modules/elysia/crud/types/crudOperationUpdateOneOptions.d.ts +2 -0
  67. package/dist/modules/elysia/crud/types/crudOperationUpdateOptions.d.ts +2 -0
  68. package/dist/modules/elysia/crud/types/crudOperationsOptions.d.ts +18 -0
  69. package/dist/modules/elysia/crud/types/crudOptions.d.ts +23 -0
  70. package/dist/modules/elysia/crud/types/index.d.ts +11 -0
  71. package/dist/modules/elysia/crudSchema/crudSchema.d.ts +18 -0
  72. package/dist/modules/elysia/crudSchema/index.d.ts +1 -0
  73. package/dist/modules/elysia/crudSchema/index.js +10 -0
  74. package/dist/modules/elysia/crudSchema/types/adaptiveWhereClauseSchema.d.ts +31 -0
  75. package/dist/modules/elysia/crudSchema/types/crudModelsType.d.ts +14 -0
  76. package/dist/modules/elysia/crudSchema/types/crudSchemaOperations.d.ts +10 -0
  77. package/dist/modules/elysia/crudSchema/types/crudSchemaOptions.d.ts +13 -0
  78. package/dist/modules/elysia/crudSchema/types/index.d.ts +8 -0
  79. package/dist/modules/elysia/crudSchema/types/orderSchema.d.ts +11 -0
  80. package/dist/modules/elysia/crudSchema/types/qSchema.d.ts +15 -0
  81. package/dist/modules/elysia/crudSchema/types/queryOptionsBuilderOptions.d.ts +11 -0
  82. package/dist/modules/elysia/crudSchema/types/selectedFieldSchema.d.ts +6 -0
  83. package/dist/modules/elysia/crudSchema/utils/createAdaptiveWhereClauseSchema.d.ts +17 -0
  84. package/dist/modules/elysia/crudSchema/utils/createCountResponse200Schema.d.ts +11 -0
  85. package/dist/modules/elysia/crudSchema/utils/createCountSchema.d.ts +16 -0
  86. package/dist/modules/elysia/crudSchema/utils/createDeleteSchema.d.ts +18 -0
  87. package/dist/modules/elysia/crudSchema/utils/createFiltersSchema.d.ts +17 -0
  88. package/dist/modules/elysia/crudSchema/utils/createFindSchema.d.ts +22 -0
  89. package/dist/modules/elysia/crudSchema/utils/createIdParamSchema.d.ts +4 -0
  90. package/dist/modules/elysia/crudSchema/utils/createInsertSchema.d.ts +8 -0
  91. package/dist/modules/elysia/crudSchema/utils/createOrderSchema.d.ts +12 -0
  92. package/dist/modules/elysia/crudSchema/utils/createPropertiesSchema.d.ts +12 -0
  93. package/dist/modules/elysia/crudSchema/utils/createQSchema.d.ts +12 -0
  94. package/dist/modules/elysia/crudSchema/utils/createResponse200Schema.d.ts +5 -0
  95. package/dist/modules/elysia/crudSchema/utils/createSelectedFieldsSchema.d.ts +12 -0
  96. package/dist/modules/elysia/crudSchema/utils/createUpdateOneSchema.d.ts +4 -0
  97. package/dist/modules/elysia/crudSchema/utils/createUpdateSchema.d.ts +10 -0
  98. package/dist/modules/elysia/crudSchema/utils/index.d.ts +15 -0
  99. package/dist/modules/elysia/crudSchema/utils/index.js +37 -0
  100. package/dist/modules/elysia/crudSchema/utils/isDateFromElysiaTypeBox.d.ts +2 -0
  101. package/dist/modules/elysia/dbResolver/dbResolver.d.ts +17 -0
  102. package/dist/modules/elysia/dbResolver/enums/dbResolverErrorKeys.d.ts +3 -0
  103. package/dist/modules/elysia/dbResolver/index.d.ts +1 -0
  104. package/dist/modules/elysia/dbResolver/index.js +14 -0
  105. package/dist/modules/elysia/dbResolver/types/dynamicDbOptions.d.ts +7 -0
  106. package/dist/modules/elysia/dbResolver/types/index.d.ts +1 -0
  107. package/dist/modules/elysia/error/error.d.ts +34 -0
  108. package/dist/modules/elysia/error/index.d.ts +1 -0
  109. package/dist/modules/elysia/error/index.js +58 -0
  110. package/dist/modules/elysia/jwt/enums/jwtErrorKeys.d.ts +4 -0
  111. package/dist/modules/elysia/jwt/index.d.ts +1 -0
  112. package/dist/modules/elysia/jwt/index.js +81 -0
  113. package/dist/modules/elysia/jwt/jwt.d.ts +119 -0
  114. package/dist/modules/elysia/jwt/types/index.d.ts +1 -0
  115. package/dist/modules/elysia/jwt/types/jwtOptions.d.ts +98 -0
  116. package/dist/modules/elysia/microservice/index.d.ts +1 -0
  117. package/dist/modules/elysia/microservice/index.js +96 -0
  118. package/dist/{elysia → modules/elysia/microservice}/microservice.d.ts +1 -1
  119. package/dist/modules/elysia/ratelimit/enums/ratelimitErrorKeys.d.ts +3 -0
  120. package/dist/modules/elysia/ratelimit/index.d.ts +1 -0
  121. package/dist/modules/elysia/ratelimit/index.js +55 -0
  122. package/dist/{elysia → modules/elysia/ratelimit}/ratelimit.d.ts +3 -13
  123. package/dist/modules/elysia/ratelimit/types/index.d.ts +1 -0
  124. package/dist/{elysia → modules/elysia/ratelimit}/types/rateLimitOptions.d.ts +6 -16
  125. package/dist/modules/logger/enums/loggerErrorKeys.d.ts +6 -0
  126. package/dist/modules/logger/events/index.d.ts +1 -0
  127. package/dist/modules/logger/events/loggerEvents.d.ts +11 -0
  128. package/dist/modules/logger/index.d.ts +1 -0
  129. package/dist/modules/logger/index.js +139 -0
  130. package/dist/modules/logger/logger.d.ts +189 -0
  131. package/dist/{logger → modules/logger}/strategies/consoleLogger.d.ts +4 -4
  132. package/dist/{logger → modules/logger}/strategies/fileLogger.d.ts +4 -4
  133. package/dist/modules/logger/strategies/index.d.ts +2 -0
  134. package/dist/modules/logger/strategies/index.js +44 -0
  135. package/dist/modules/logger/types/index.d.ts +6 -0
  136. package/dist/modules/logger/types/index.js +1 -0
  137. package/dist/{logger → modules/logger}/types/logStreamChunk.d.ts +4 -4
  138. package/dist/{logger → modules/logger}/types/loggerStrategy.d.ts +1 -1
  139. package/dist/modules/mailer/enums/mailerErrorKeys.d.ts +5 -0
  140. package/dist/modules/mailer/index.d.ts +1 -0
  141. package/dist/modules/mailer/index.js +64 -0
  142. package/dist/{mailer → modules/mailer}/smtp.d.ts +6 -6
  143. package/dist/modules/mailer/types/index.d.ts +3 -0
  144. package/dist/modules/mailer/types/index.js +1 -0
  145. package/dist/{mailer → modules/mailer}/types/smtpCredentials.d.ts +2 -2
  146. package/dist/{mailer → modules/mailer}/types/smtpOptions.d.ts +5 -5
  147. package/dist/{mailer → modules/mailer}/types/smtpPoolOptions.d.ts +1 -1
  148. package/dist/modules/repository/index.d.ts +1 -0
  149. package/dist/modules/repository/index.js +10 -0
  150. package/dist/modules/repository/repository.d.ts +421 -0
  151. package/dist/modules/repository/types/adaptiveWhereClause.d.ts +30 -0
  152. package/dist/modules/repository/types/filter.d.ts +43 -0
  153. package/dist/modules/repository/types/index.d.ts +8 -0
  154. package/dist/modules/repository/types/index.js +1 -0
  155. package/dist/modules/repository/types/orderByItem.d.ts +42 -0
  156. package/dist/modules/repository/types/queryOptions.d.ts +36 -0
  157. package/dist/{repository → modules/repository}/types/queryOptionsExtendPagination.d.ts +2 -2
  158. package/dist/{repository → modules/repository}/types/queryOptionsExtendStream.d.ts +1 -1
  159. package/dist/modules/repository/types/selectedFields.d.ts +37 -0
  160. package/dist/modules/singletonManager/enums/singletonManagerErrorKeys.d.ts +4 -0
  161. package/dist/modules/singletonManager/index.d.ts +1 -0
  162. package/dist/modules/singletonManager/index.js +8 -0
  163. package/dist/modules/singletonManager/singletonManager.d.ts +75 -0
  164. package/dist/modules/typedEventEmitter/index.d.ts +1 -0
  165. package/dist/modules/typedEventEmitter/index.js +7 -0
  166. package/dist/{typedEventEmitter → modules/typedEventEmitter}/typedEventEmitter.d.ts +33 -11
  167. package/dist/modules/typedEventEmitter/types/index.d.ts +1 -0
  168. package/dist/modules/typedEventEmitter/types/index.js +1 -0
  169. package/dist/utils/enums/utilsErrorKeys.d.ts +3 -0
  170. package/dist/utils/env.d.ts +1 -1
  171. package/dist/utils/index.d.ts +3 -3
  172. package/dist/utils/index.js +32 -1
  173. package/dist/utils/isDateString.d.ts +16 -0
  174. package/dist/utils/stream.d.ts +12 -1
  175. package/dist/utils/types/index.d.ts +1 -1
  176. package/dist/utils/types/streamWithAsyncIterable.d.ts +12 -5
  177. package/package.json +157 -128
  178. package/dist/chunk-1c7w5cx7.js +0 -3
  179. package/dist/chunk-40pg2cqx.js +0 -2
  180. package/dist/chunk-4v4tp5qj.js +0 -2
  181. package/dist/chunk-4w7nd4nw.js +0 -2
  182. package/dist/chunk-5nvsx7md.js +0 -2
  183. package/dist/chunk-89mnpfvy.js +0 -2
  184. package/dist/chunk-91srr77d.js +0 -2
  185. package/dist/chunk-9hj714bv.js +0 -2
  186. package/dist/chunk-9rss6865.js +0 -2
  187. package/dist/chunk-df9xr1f5.js +0 -2
  188. package/dist/chunk-dq00mfya.js +0 -2
  189. package/dist/chunk-fnb68m68.js +0 -2
  190. package/dist/chunk-g6a16nyh.js +0 -2
  191. package/dist/chunk-gtgpa8nc.js +0 -2
  192. package/dist/chunk-gxjax5n3.js +0 -2
  193. package/dist/chunk-h9er1sh5.js +0 -2
  194. package/dist/chunk-mwpajm9x.js +0 -2
  195. package/dist/chunk-n5w9cwwg.js +0 -2
  196. package/dist/chunk-pt7wrvtr.js +0 -2
  197. package/dist/chunk-qndyhwdn.js +0 -2
  198. package/dist/chunk-v5dfx8mh.js +0 -2
  199. package/dist/chunk-wgq0yyqw.js +0 -2
  200. package/dist/chunk-wtfcgg9s.js +0 -2
  201. package/dist/chunk-z00b1r18.js +0 -2
  202. package/dist/data/data.d.ts +0 -99
  203. package/dist/data/enums/dataErrorKeys.d.ts +0 -7
  204. package/dist/data/enums/index.d.ts +0 -1
  205. package/dist/data/enums/index.js +0 -2
  206. package/dist/data/index.d.ts +0 -1
  207. package/dist/data/index.js +0 -2
  208. package/dist/data/transformers/camelCase.d.ts +0 -25
  209. package/dist/data/transformers/index.d.ts +0 -4
  210. package/dist/data/transformers/index.js +0 -2
  211. package/dist/data/transformers/kebabCase.d.ts +0 -25
  212. package/dist/data/transformers/pascalCase.d.ts +0 -25
  213. package/dist/data/transformers/snakeCase.d.ts +0 -25
  214. package/dist/data/types/index.d.ts +0 -1
  215. package/dist/data/types/keyTransformer.d.ts +0 -11
  216. package/dist/database/enums/databaseErrorKeys.d.ts +0 -52
  217. package/dist/database/enums/index.d.ts +0 -2
  218. package/dist/database/enums/index.js +0 -2
  219. package/dist/database/enums/mssqlErrorCode.d.ts +0 -25
  220. package/dist/database/events/index.d.ts +0 -2
  221. package/dist/database/events/mssqlEventMap.d.ts +0 -6
  222. package/dist/database/events/tableEventMap.d.ts +0 -7
  223. package/dist/database/index.d.ts +0 -2
  224. package/dist/database/index.js +0 -2
  225. package/dist/database/types/index.d.ts +0 -3
  226. package/dist/database/types/mssqlEventLog.d.ts +0 -29
  227. package/dist/database/types/queryContext.d.ts +0 -11
  228. package/dist/elysia/advancedSearch.d.ts +0 -460
  229. package/dist/elysia/crud.d.ts +0 -609
  230. package/dist/elysia/dynamicDatabaseSelector.d.ts +0 -352
  231. package/dist/elysia/enums/elysiaErrorKeys.d.ts +0 -12
  232. package/dist/elysia/enums/httpStatusCode.d.ts +0 -241
  233. package/dist/elysia/enums/index.d.ts +0 -2
  234. package/dist/elysia/enums/index.js +0 -2
  235. package/dist/elysia/error.d.ts +0 -46
  236. package/dist/elysia/index.d.ts +0 -7
  237. package/dist/elysia/index.js +0 -2
  238. package/dist/elysia/jwt.d.ts +0 -46
  239. package/dist/elysia/schemas/index.d.ts +0 -2
  240. package/dist/elysia/schemas/index.js +0 -2
  241. package/dist/elysia/types/crudOptions.d.ts +0 -126
  242. package/dist/elysia/types/crudRoutes.d.ts +0 -2
  243. package/dist/elysia/types/dynamicDatabaseSelectorPluginOptions.d.ts +0 -30
  244. package/dist/elysia/types/index.d.ts +0 -5
  245. package/dist/elysia/types/jwtOptions.d.ts +0 -92
  246. package/dist/error/coreError.d.ts +0 -89
  247. package/dist/error/index.d.ts +0 -1
  248. package/dist/error/index.js +0 -2
  249. package/dist/error/types/coreErrorOptions.d.ts +0 -21
  250. package/dist/error/types/index.d.ts +0 -1
  251. package/dist/index.d.ts +0 -68
  252. package/dist/index.js +0 -2
  253. package/dist/logger/enums/index.d.ts +0 -1
  254. package/dist/logger/enums/index.js +0 -2
  255. package/dist/logger/enums/loggerErrorKeys.d.ts +0 -6
  256. package/dist/logger/events/index.d.ts +0 -1
  257. package/dist/logger/events/loggerEvents.d.ts +0 -4
  258. package/dist/logger/index.d.ts +0 -1
  259. package/dist/logger/index.js +0 -2
  260. package/dist/logger/logger.d.ts +0 -173
  261. package/dist/logger/strategies/index.d.ts +0 -2
  262. package/dist/logger/strategies/index.js +0 -2
  263. package/dist/logger/types/index.d.ts +0 -6
  264. package/dist/mailer/enums/index.d.ts +0 -1
  265. package/dist/mailer/enums/index.js +0 -2
  266. package/dist/mailer/enums/mailerErrorKeys.d.ts +0 -8
  267. package/dist/mailer/index.d.ts +0 -1
  268. package/dist/mailer/index.js +0 -2
  269. package/dist/mailer/types/index.d.ts +0 -3
  270. package/dist/repository/index.d.ts +0 -1
  271. package/dist/repository/index.js +0 -2
  272. package/dist/repository/repository.d.ts +0 -378
  273. package/dist/repository/types/advancedSearch.d.ts +0 -47
  274. package/dist/repository/types/index.d.ts +0 -8
  275. package/dist/repository/types/orderBy.d.ts +0 -21
  276. package/dist/repository/types/queryOptions.d.ts +0 -33
  277. package/dist/repository/types/selectedFields.d.ts +0 -16
  278. package/dist/repository/types/whereClause.d.ts +0 -15
  279. package/dist/singletonManager/enums/index.d.ts +0 -1
  280. package/dist/singletonManager/enums/index.js +0 -2
  281. package/dist/singletonManager/enums/singletonManagerErrorKeys.d.ts +0 -7
  282. package/dist/singletonManager/index.d.ts +0 -1
  283. package/dist/singletonManager/index.js +0 -2
  284. package/dist/singletonManager/singletonManager.d.ts +0 -112
  285. package/dist/store/index.d.ts +0 -1
  286. package/dist/store/index.js +0 -2
  287. package/dist/store/redis.d.ts +0 -6
  288. package/dist/typedEventEmitter/index.d.ts +0 -1
  289. package/dist/typedEventEmitter/index.js +0 -2
  290. package/dist/typedEventEmitter/types/index.d.ts +0 -1
  291. package/dist/utils/enums/index.d.ts +0 -1
  292. package/dist/utils/enums/index.js +0 -2
  293. package/dist/utils/enums/utilErrorKeys.d.ts +0 -4
  294. package/dist/utils/isIsoDateString.d.ts +0 -1
  295. /package/dist/{data → errors}/types/index.js +0 -0
  296. /package/dist/{database/events → modules/data/types}/index.js +0 -0
  297. /package/dist/{database/types → modules/database/events}/index.js +0 -0
  298. /package/dist/{elysia → modules/database}/types/index.js +0 -0
  299. /package/dist/{error → modules/elysia/crud}/types/index.js +0 -0
  300. /package/dist/{logger/events → modules/elysia/crudSchema/types}/index.js +0 -0
  301. /package/dist/{logger → modules/elysia/dbResolver}/types/index.js +0 -0
  302. /package/dist/{mailer → modules/elysia/jwt}/types/index.js +0 -0
  303. /package/dist/{elysia → modules/elysia/microservice}/schemas/info.d.ts +0 -0
  304. /package/dist/{elysia → modules/elysia/microservice}/schemas/ping.d.ts +0 -0
  305. /package/dist/{repository → modules/elysia/ratelimit}/types/index.js +0 -0
  306. /package/dist/{typedEventEmitter/types → modules/logger/events}/index.js +0 -0
  307. /package/dist/{logger → modules/logger}/types/bodiesIntersection.d.ts +0 -0
  308. /package/dist/{logger → modules/logger}/types/logLevels.d.ts +0 -0
  309. /package/dist/{logger → modules/logger}/types/strategyBody.d.ts +0 -0
  310. /package/dist/{logger → modules/logger}/types/strategyMap.d.ts +0 -0
  311. /package/dist/{repository → modules/repository}/types/transaction.d.ts +0 -0
  312. /package/dist/{typedEventEmitter → modules/typedEventEmitter}/types/eventMap.d.ts +0 -0
@@ -0,0 +1,75 @@
1
+ /**
2
+ * SingletonManager is a static class that manages the singletons in the application.
3
+ * When a class is registered, the SingletonManager creates a new instance of the class when it is requested.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * class ExampleSingleton {
8
+ * private static _count = 0;
9
+ * private readonly _id: number;
10
+ *
11
+ * public constructor() {
12
+ * ExampleSingleton._count += 1;
13
+ * this._id = ExampleSingleton._count;
14
+ * console.log(`ExampleSingleton created with ID: ${this._id}`);
15
+ * }
16
+ *
17
+ * public sayHello(): void {
18
+ * console.log(`Hello from instance ${this._id}!`);
19
+ * }
20
+ * }
21
+ *
22
+ * SingletonManager.register('ExampleSingleton', ExampleSingleton);
23
+ *
24
+ * SingletonManager.get<ExampleSingleton>('ExampleSingleton').sayHello(); // Output: ExampleSingleton created with ID: 1 /n Hello from instance 1!
25
+ * SingletonManager.get<ExampleSingleton>('ExampleSingleton').sayHello(); // Output: Hello from instance 1!
26
+ * ```
27
+ */
28
+ export declare class SingletonManager {
29
+ /**
30
+ * _registry is a private static property that holds the class instances that are registered
31
+ * in the SingletonManager. The key is the name of the class and the value is the instance of the class.
32
+ */
33
+ private static readonly _registry;
34
+ /**
35
+ * Registers a class constructor in the SingletonManager.
36
+ *
37
+ * @template TClass - The type of the class.
38
+ * @template TArgs - The tuple type of the constructor arguments.
39
+ *
40
+ * @param name - The name of the class.
41
+ * @param constructor - The constructor of the class.
42
+ * @param args - The arguments to pass to the constructor of the class.
43
+ *
44
+ * @throws ({@link BaseError}) - If the class constructor is already registered, it throws an error.
45
+ */
46
+ static register<TClass extends object, TArgs extends unknown[]>(name: string, constructor: new (...args: TArgs) => TClass, ...args: TArgs): void;
47
+ /**
48
+ * Unregisters a class from the SingletonManager.
49
+ *
50
+ * @param name - The name of the class to unregister.
51
+ *
52
+ * @throws ({@link BaseError}) If the class constructor is not registered, it throws an error.
53
+ */
54
+ static unregister(name: string): void;
55
+ /**
56
+ * Gets the singleton instance of the class. If the class is not registered, it throws an error.
57
+ *
58
+ * @template TClass - The type of the class.
59
+ *
60
+ * @param name - The name of the class to get the singleton instance.
61
+ *
62
+ * @throws ({@link BaseError}) If the class is not registered, it throws an error.
63
+ *
64
+ * @returns The singleton instance of the class.
65
+ */
66
+ static get<TClass>(name: string): TClass;
67
+ /**
68
+ * Checks if the class is registered in the SingletonManager.
69
+ *
70
+ * @param name - The name of the class to check if it is registered.
71
+ *
72
+ * @returns True if the class is registered, otherwise false.
73
+ */
74
+ static has(name: string): boolean;
75
+ }
@@ -0,0 +1 @@
1
+ export { TypedEventEmitter } from './typedEventEmitter';
@@ -0,0 +1,7 @@
1
+ // @bun
2
+ import {
3
+ TypedEventEmitter
4
+ } from "../../chunk-yvyahr2h.js";
5
+ export {
6
+ TypedEventEmitter
7
+ };
@@ -10,12 +10,14 @@ export declare class TypedEventEmitter<TEvents extends EventMap> extends EventEm
10
10
  * Emits an event with the specified payload.
11
11
  *
12
12
  * @template KEvent - The type of event to emit.
13
+ *
13
14
  * @param event - The event name to emit.
14
15
  * @param payload - The data to send with the event.
16
+ *
15
17
  * @returns Whether the event had listeners.
16
18
  *
17
19
  * @example
18
- * ```typescript
20
+ * ```ts
19
21
  * class MyEmitter extends TypedEventEmitter<{ foo: [string] }> {}
20
22
  * const emitter = new MyEmitter();
21
23
  * emitter.emit('foo', 'hello');
@@ -26,12 +28,14 @@ export declare class TypedEventEmitter<TEvents extends EventMap> extends EventEm
26
28
  * Registers an event listener for the specified event.
27
29
  *
28
30
  * @template KEvent - The type of event to listen for.
31
+ *
29
32
  * @param event - The event name to listen for.
30
33
  * @param listener - The callback function that handles the event.
34
+ *
31
35
  * @returns This instance for chaining.
32
36
  *
33
37
  * @example
34
- * ```typescript
38
+ * ```ts
35
39
  * class MyEmitter extends TypedEventEmitter<{ foo: [string] }> {}
36
40
  * const emitter = new MyEmitter();
37
41
  * emitter.on('foo', payload => {
@@ -44,12 +48,14 @@ export declare class TypedEventEmitter<TEvents extends EventMap> extends EventEm
44
48
  * Registers a one-time event listener for the specified event.
45
49
  *
46
50
  * @template KEvent - The type of event to listen for.
51
+ *
47
52
  * @param event - The event name to listen for.
48
53
  * @param listener - The callback function that handles the event.
54
+ *
49
55
  * @returns This instance for chaining.
50
56
  *
51
57
  * @example
52
- * ```typescript
58
+ * ```ts
53
59
  * class MyEmitter extends TypedEventEmitter<{ bar: [number] }> {}
54
60
  * const emitter = new MyEmitter();
55
61
  * emitter.once('bar', payload => {
@@ -62,12 +68,14 @@ export declare class TypedEventEmitter<TEvents extends EventMap> extends EventEm
62
68
  * Registers an event listener for the specified event (alias for on).
63
69
  *
64
70
  * @template KEvent - The type of event to listen for.
71
+ *
65
72
  * @param event - The event name to listen for.
66
73
  * @param listener - The callback function that handles the event.
74
+ *
67
75
  * @returns This instance for chaining.
68
76
  *
69
77
  * @example
70
- * ```typescript
78
+ * ```ts
71
79
  * class MyEmitter extends TypedEventEmitter<{ baz: [boolean] }> {}
72
80
  * const emitter = new MyEmitter();
73
81
  * emitter.addListener('baz', payload => {
@@ -80,12 +88,14 @@ export declare class TypedEventEmitter<TEvents extends EventMap> extends EventEm
80
88
  * Removes an event listener for the specified event.
81
89
  *
82
90
  * @template KEvent - The type of event.
91
+ *
83
92
  * @param event - The event name.
84
93
  * @param listener - The callback function to remove.
94
+ *
85
95
  * @returns This instance for chaining.
86
96
  *
87
97
  * @example
88
- * ```typescript
98
+ * ```ts
89
99
  * class MyEmitter extends TypedEventEmitter<{ foo: string }> {}
90
100
  * const emitter = new MyEmitter();
91
101
  * const handler = (payload: string) => {};
@@ -98,12 +108,14 @@ export declare class TypedEventEmitter<TEvents extends EventMap> extends EventEm
98
108
  * Removes an event listener for the specified event (alias for removeListener).
99
109
  *
100
110
  * @template KEvent - The type of event.
111
+ *
101
112
  * @param event - The event name.
102
113
  * @param listener - The callback function to remove.
114
+ *
103
115
  * @returns This instance for chaining.
104
116
  *
105
117
  * @example
106
- * ```typescript
118
+ * ```ts
107
119
  * class MyEmitter extends TypedEventEmitter<{ foo: [string] }> {}
108
120
  * const emitter = new MyEmitter();
109
121
  * const handler = (payload: string) => {};
@@ -116,11 +128,13 @@ export declare class TypedEventEmitter<TEvents extends EventMap> extends EventEm
116
128
  * Returns the number of listeners for the specified event.
117
129
  *
118
130
  * @template KEvent - The type of event.
131
+ *
119
132
  * @param event - The event name.
133
+ *
120
134
  * @returns The number of listeners.
121
135
  *
122
136
  * @example
123
- * ```typescript
137
+ * ```ts
124
138
  * class MyEmitter extends TypedEventEmitter<{ foo: [string] }> {}
125
139
  * const emitter = new MyEmitter();
126
140
  * emitter.on('foo', () => {});
@@ -132,11 +146,13 @@ export declare class TypedEventEmitter<TEvents extends EventMap> extends EventEm
132
146
  * Returns a copy of the array of listeners for the specified event.
133
147
  *
134
148
  * @template KEvent - The type of event.
149
+ *
135
150
  * @param event - The event name.
151
+ *
136
152
  * @returns An array of listener functions.
137
153
  *
138
154
  * @example
139
- * ```typescript
155
+ * ```ts
140
156
  * class MyEmitter extends TypedEventEmitter<{ foo: [string] }> {}
141
157
  * const emitter = new MyEmitter();
142
158
  * emitter.on('foo', () => {});
@@ -148,11 +164,13 @@ export declare class TypedEventEmitter<TEvents extends EventMap> extends EventEm
148
164
  * Returns a copy of the array of raw listeners for the specified event.
149
165
  *
150
166
  * @template KEvent - The type of event.
167
+ *
151
168
  * @param event - The event name.
169
+ *
152
170
  * @returns An array of raw listener functions.
153
171
  *
154
172
  * @example
155
- * ```typescript
173
+ * ```ts
156
174
  * class MyEmitter extends TypedEventEmitter<{ foo: [string] }> {}
157
175
  * const emitter = new MyEmitter();
158
176
  * emitter.on('foo', () => {});
@@ -164,12 +182,14 @@ export declare class TypedEventEmitter<TEvents extends EventMap> extends EventEm
164
182
  * Adds a listener to the beginning of the listeners array for the specified event.
165
183
  *
166
184
  * @template KEvent - The type of event.
185
+ *
167
186
  * @param event - The event name.
168
187
  * @param listener - The callback function to add.
188
+ *
169
189
  * @returns This instance for chaining.
170
190
  *
171
191
  * @example
172
- * ```typescript
192
+ * ```ts
173
193
  * class MyEmitter extends TypedEventEmitter<{ foo: [string] }> {}
174
194
  * const emitter = new MyEmitter();
175
195
  * emitter.prependListener('foo', payload => {
@@ -182,12 +202,14 @@ export declare class TypedEventEmitter<TEvents extends EventMap> extends EventEm
182
202
  * Adds a one-time listener to the beginning of the listeners array for the specified event.
183
203
  *
184
204
  * @template KEvent - The type of event.
205
+ *
185
206
  * @param event - The event name.
186
207
  * @param listener - The callback function to add.
208
+ *
187
209
  * @returns This instance for chaining.
188
210
  *
189
211
  * @example
190
- * ```typescript
212
+ * ```ts
191
213
  * class MyEmitter extends TypedEventEmitter<{ foo: [string] }> {}
192
214
  * const emitter = new MyEmitter();
193
215
  * emitter.prependOnceListener('foo', payload => {
@@ -0,0 +1 @@
1
+ export type { EventMap } from './eventMap';
@@ -0,0 +1 @@
1
+ // @bun
@@ -0,0 +1,3 @@
1
+ export declare const UTILS_ERROR_KEYS: {
2
+ readonly INVALID_ENVIRONMENT: "utils.error.invalid_environment";
3
+ };
@@ -5,6 +5,6 @@ import type { TSchema } from '@sinclair/typebox';
5
5
  * @param schema - The schema to validate the environment variables against.
6
6
  * @param env - The environment variables to validate. Defaults to `process.env`.
7
7
  *
8
- * @throws ({@link CoreError}): If the environment variables are invalid based on the schema. ({@link utilErrorKeys.invalidEnvironment})
8
+ * @throws ({@link BaseError}) - If the environment variables are invalid based on the schema.
9
9
  */
10
10
  export declare const validateEnv: (schema: TSchema, env?: Record<string, unknown>) => void;
@@ -1,3 +1,3 @@
1
- export * from './env';
2
- export * from './isIsoDateString';
3
- export * from './stream';
1
+ export { validateEnv } from './env';
2
+ export { isDateString } from './isDateString';
3
+ export { makeStreamAsyncIterable } from './stream';
@@ -1,2 +1,33 @@
1
1
  // @bun
2
- import{b as t}from"../chunk-89mnpfvy.js";import"../chunk-91srr77d.js";import"../chunk-df9xr1f5.js";import{oa as m,pa as p}from"../chunk-9hj714bv.js";import"../chunk-z00b1r18.js";import"../chunk-4w7nd4nw.js";export{t as validateEnv,p as makeStreamAsyncIterable,m as isIsoDateString};
2
+ import {
3
+ isDateString,
4
+ makeStreamAsyncIterable
5
+ } from "../chunk-5qtpggzv.js";
6
+ import {
7
+ BaseError
8
+ } from "../chunk-vknq69e0.js";
9
+
10
+ // source/utils/env.ts
11
+ import { Value } from "@sinclair/typebox/value";
12
+
13
+ // source/utils/enums/utilsErrorKeys.ts
14
+ var UTILS_ERROR_KEYS = {
15
+ INVALID_ENVIRONMENT: "utils.error.invalid_environment"
16
+ };
17
+
18
+ // source/utils/env.ts
19
+ var validateEnv = (schema, env = process.env) => {
20
+ try {
21
+ Value.Assert(schema, Value.Parse(schema, env));
22
+ } catch (error) {
23
+ throw new BaseError({
24
+ message: UTILS_ERROR_KEYS.INVALID_ENVIRONMENT,
25
+ cause: error
26
+ });
27
+ }
28
+ };
29
+ export {
30
+ validateEnv,
31
+ makeStreamAsyncIterable,
32
+ isDateString
33
+ };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Checks if a value is a valid date string.
3
+ *
4
+ * @param v - The value to check.
5
+ *
6
+ * @returns True if the value is a valid date string, false otherwise.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * isDateString('2023-10-01T12:00:00Z'); // true
11
+ * isDateString('invalid-date'); // false
12
+ * isDateString(12345); // false
13
+ * isDateString(new Date().toISOString()); // true
14
+ * ```
15
+ */
16
+ export declare const isDateString: (v: unknown) => v is string;
@@ -6,6 +6,17 @@ import type { Stream } from 'stream';
6
6
  * @template KStream - The type of the stream.
7
7
  * @param stream - The stream to make async iterable.
8
8
  *
9
- * @returns The stream as an async iterable. ({@link KStream} extends {@link Stream} & {@link AsyncIterable})
9
+ * @returns The stream as an async iterable.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { Readable } from 'stream';
14
+ *
15
+ * const readableStream = Readable.from(['data1', 'data2', 'data3']);
16
+ * const asyncIterableStream = makeStreamAsyncIterable(readableStream);
17
+ *
18
+ * for await (const data of asyncIterableStream)
19
+ * console.log(data); // Outputs: data1, data2, data3
20
+ * ```
10
21
  */
11
22
  export declare const makeStreamAsyncIterable: <TModel, KStream extends Stream = Stream>(stream: KStream) => KStream & AsyncIterable<TModel>;
@@ -1 +1 @@
1
- export type * from './streamWithAsyncIterable';
1
+ export type { StreamWithAsyncIterable } from './streamWithAsyncIterable';
@@ -7,20 +7,27 @@ import type { PassThrough } from 'stream';
7
7
  * @template TModel - The type of the object to retrieve.
8
8
  *
9
9
  * @example
10
- * ```typescript
10
+ * Define a model
11
+ * ```ts
11
12
  * interface User {
12
13
  * id: string;
13
14
  * name: string;
14
15
  * }
15
- *
16
+ * ```
17
+ * @example
18
+ * Use the stream with async iterable
19
+ * ```ts
16
20
  * const users: StreamWithAsyncIterable<User> = ...;
17
21
  *
18
- * // Method 1
19
22
  * for await (const user of users)
20
23
  * console.log(user);
24
+ *```
25
+ * @example
26
+ * Use the stream with event listeners
27
+ * ```ts
28
+ * const users: StreamWithAsyncIterable<User> = ...;
21
29
  *
22
- * // Method 2
23
30
  * users.on('data', (user: User) => console.log(user));
24
31
  * ```
25
32
  */
26
- export type StreamWithAsyncIterable<TModel> = PassThrough & AsyncIterable<TModel extends (infer Model)[] ? Model : never>;
33
+ export type StreamWithAsyncIterable<TModel> = AsyncIterable<TModel> & PassThrough;