@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,272 @@
1
+ import {
2
+ isDateString,
3
+ makeStreamAsyncIterable
4
+ } from "./chunk-5qtpggzv.js";
5
+ import {
6
+ HttpError
7
+ } from "./chunk-84mqvfsk.js";
8
+
9
+ // source/modules/repository/repository.ts
10
+ import { PassThrough } from "stream";
11
+
12
+ // source/modules/database/enums/databaseErrorKeys.ts
13
+ var DATABASE_ERROR_KEYS = {
14
+ MSSQL_CONNECTION_ERROR: "mssql.error.database.connection_error",
15
+ MSSQL_DISCONNECT_ERROR: "mssql.error.database.disconnect_error",
16
+ MSSQL_NOT_CONNECTED: "mssql.error.database.not_connected",
17
+ MSSQL_NO_RESULT: "mssql.error.database.no_result",
18
+ MSSQL_QUERY_ERROR: "mssql.error.database.query_error",
19
+ MSSQL_DATABASE_ACCESS_DENIED: "mssql.error.database.access_denied",
20
+ MSSQL_DATABASE_AUTHORIZATION8FAILED: "mssql.error.database.authorization_failed",
21
+ MSSQL_DATABASE_SYNTAX_ERROR: "mssql.error.database.syntax_error",
22
+ MSSQL_DATABASE_COLUMN_NOT_FOUND: "mssql.error.database.column_not_found",
23
+ MSSQL_TABLE_NOT_FOUND: "mssql.error.database.table_not_found",
24
+ MSSQL_DATABASE_AMBIGUOUS_COLUMN: "mssql.error.database.ambiguous_column",
25
+ MSSQL_DATABASE_DUPLICATE_KEY: "mssql.error.database.duplicate_key",
26
+ MSSQL_DATABASE_FOREIGN_KEY_VIOLATION: "mssql.error.database.foreign_key_violation",
27
+ MSSQL_DATABASE_UNIQUE_CONSTRAINT_VIOLATION: "mssql.error.database.unique_constraint_violation",
28
+ MSSQL_DATABASE_DEADLOCK_DETECTED: "mssql.error.database.deadlock_detected",
29
+ MSSQL_DATABASE_RESOURCE_LOCKED: "mssql.error.database.resource_locked",
30
+ MSSQL_DATABASE_TRANSACTION_ABORTED: "mssql.error.database.transaction_aborted",
31
+ MSSQL_DATABASE_INSUFFICIENT_MEMORY: "mssql.error.database.insufficient_memory",
32
+ MSSQL_DATABASE_INSUFFICIENT_STORAGE: "mssql.error.database.insufficient_storage",
33
+ MSSQL_DATABASE_QUERY_TIMEOUT: "mssql.error.database.query_timeout",
34
+ MSSQL_DATABASE_TRANSACTION_LOG_FULL: "mssql.error.database.transaction_log_full",
35
+ MSSQL_DATABASE_DATA_TOO_LARGE: "mssql.error.database.data_too_large",
36
+ MSSQL_DATABASE_PERMISSION_DENIED: "mssql.error.database.permission_denied",
37
+ MSSQL_DATABASE_IDENTITY_INSERT_NOT_ALLOWED: "mssql.error.database.identity_insert_not_allowed",
38
+ MSSQL_DATABSE_CANNOT_UPDATE_IDENTITY_COLUMN: "mssql.error.database.cannot_update_identity_column",
39
+ MSSQL_DATABASE_CONVERSION_FAILED: "mssql.error.database.conversion_failed"
40
+ };
41
+
42
+ // source/modules/database/enums/mssqlErrorCode.ts
43
+ var MSSQL_ERROR_CODE = {
44
+ 0: DATABASE_ERROR_KEYS.MSSQL_QUERY_ERROR,
45
+ 4060: DATABASE_ERROR_KEYS.MSSQL_DATABASE_ACCESS_DENIED,
46
+ 18452: DATABASE_ERROR_KEYS.MSSQL_DATABASE_AUTHORIZATION8FAILED,
47
+ 18456: DATABASE_ERROR_KEYS.MSSQL_DATABASE_AUTHORIZATION8FAILED,
48
+ 102: DATABASE_ERROR_KEYS.MSSQL_DATABASE_SYNTAX_ERROR,
49
+ 207: DATABASE_ERROR_KEYS.MSSQL_DATABASE_COLUMN_NOT_FOUND,
50
+ 208: DATABASE_ERROR_KEYS.MSSQL_TABLE_NOT_FOUND,
51
+ 209: DATABASE_ERROR_KEYS.MSSQL_DATABASE_AMBIGUOUS_COLUMN,
52
+ 2627: DATABASE_ERROR_KEYS.MSSQL_DATABASE_DUPLICATE_KEY,
53
+ 547: DATABASE_ERROR_KEYS.MSSQL_DATABASE_FOREIGN_KEY_VIOLATION,
54
+ 2601: DATABASE_ERROR_KEYS.MSSQL_DATABASE_UNIQUE_CONSTRAINT_VIOLATION,
55
+ 1205: DATABASE_ERROR_KEYS.MSSQL_DATABASE_DEADLOCK_DETECTED,
56
+ 1222: DATABASE_ERROR_KEYS.MSSQL_DATABASE_RESOURCE_LOCKED,
57
+ 3928: DATABASE_ERROR_KEYS.MSSQL_DATABASE_TRANSACTION_ABORTED,
58
+ 701: DATABASE_ERROR_KEYS.MSSQL_DATABASE_INSUFFICIENT_MEMORY,
59
+ 1105: DATABASE_ERROR_KEYS.MSSQL_DATABASE_INSUFFICIENT_STORAGE,
60
+ 8645: DATABASE_ERROR_KEYS.MSSQL_DATABASE_QUERY_TIMEOUT,
61
+ 9002: DATABASE_ERROR_KEYS.MSSQL_DATABASE_TRANSACTION_LOG_FULL,
62
+ 8152: DATABASE_ERROR_KEYS.MSSQL_DATABASE_DATA_TOO_LARGE,
63
+ 229: DATABASE_ERROR_KEYS.MSSQL_DATABASE_PERMISSION_DENIED,
64
+ 544: DATABASE_ERROR_KEYS.MSSQL_DATABASE_IDENTITY_INSERT_NOT_ALLOWED,
65
+ 8102: DATABASE_ERROR_KEYS.MSSQL_DATABSE_CANNOT_UPDATE_IDENTITY_COLUMN,
66
+ 8169: DATABASE_ERROR_KEYS.MSSQL_DATABASE_CONVERSION_FAILED
67
+ };
68
+
69
+ // source/modules/repository/repository.ts
70
+ var _operators = {
71
+ $eq: (q, c, v) => q.where(c, v),
72
+ $neq: (q, c, v) => q.whereNot(c, v),
73
+ $lt: (q, c, v) => q.where(c, "<", v),
74
+ $lte: (q, c, v) => q.where(c, "<=", v),
75
+ $gt: (q, c, v) => q.where(c, ">", v),
76
+ $gte: (q, c, v) => q.where(c, ">=", v),
77
+ $in: (q, c, v) => q.whereIn(c, v),
78
+ $nin: (q, c, v) => q.whereNotIn(c, v),
79
+ $between: (q, c, v) => q.whereBetween(c, v),
80
+ $nbetween: (q, c, v) => q.whereNotBetween(c, v),
81
+ $like: (q, c, v) => {
82
+ const likeValue = `%${v}%`;
83
+ if (isDateString(v))
84
+ return q.whereRaw(`CONVERT(VARCHAR, ${c}, 23) LIKE ?`, [likeValue]);
85
+ return q.whereLike(c, likeValue);
86
+ },
87
+ $nlike: (q, c, v) => {
88
+ const likeValue = `%${v}%`;
89
+ if (isDateString(v))
90
+ return q.whereRaw(`CONVERT(VARCHAR, ${c}, 23) NOT LIKE ?`, [likeValue]);
91
+ return q.whereRaw(`${c} NOT LIKE ?`, [likeValue]);
92
+ },
93
+ $isNull: (q, c, v) => v ? q.whereNull(c) : q.whereNotNull(c)
94
+ };
95
+ var _validOperatorKeys = new Set([
96
+ "$eq",
97
+ "$neq",
98
+ "$lt",
99
+ "$lte",
100
+ "$gt",
101
+ "$gte",
102
+ "$in",
103
+ "$nin",
104
+ "$between",
105
+ "$nbetween",
106
+ "$like",
107
+ "$nlike",
108
+ "$isNull"
109
+ ]);
110
+ var _DEFAULT_LIMIT = 100;
111
+ var _DEFAULT_OFFSET = 0;
112
+
113
+ class Repository {
114
+ _knex;
115
+ _table;
116
+ constructor(knex, table) {
117
+ this._knex = knex;
118
+ this._table = table;
119
+ }
120
+ findStream(options) {
121
+ const query = this._knex(this._table.name);
122
+ this._applyQueryOptions(query, options);
123
+ const kStream = query.stream();
124
+ const passThrough = new PassThrough({
125
+ objectMode: true,
126
+ ...options?.transform && { transform: options.transform }
127
+ });
128
+ const cleanup = () => {
129
+ if (!kStream.destroyed)
130
+ kStream.destroy();
131
+ if (!passThrough.destroyed)
132
+ passThrough.destroy();
133
+ };
134
+ kStream.on("error", (error) => {
135
+ const code = error?.number || 0;
136
+ passThrough.emit("error", new HttpError({
137
+ message: MSSQL_ERROR_CODE[code] ?? DATABASE_ERROR_KEYS.MSSQL_QUERY_ERROR,
138
+ cause: {
139
+ query: query.toSQL().sql,
140
+ error
141
+ }
142
+ }));
143
+ });
144
+ passThrough.on("close", cleanup);
145
+ passThrough.on("error", cleanup);
146
+ kStream.pipe(passThrough);
147
+ return makeStreamAsyncIterable(passThrough);
148
+ }
149
+ async find(options) {
150
+ const query = this._knex(this._table.name);
151
+ this._applyQueryOptions(query, options);
152
+ const limit = options?.limit || _DEFAULT_LIMIT;
153
+ const offset = options?.offset || _DEFAULT_OFFSET;
154
+ query.limit(limit).offset(offset);
155
+ return this._executeQuery(query, options?.throwIfNoResult);
156
+ }
157
+ async count(options) {
158
+ const query = this._knex(this._table.name).count({ count: "*" });
159
+ this._applyFilter(query, options?.filters);
160
+ if (options?.transaction)
161
+ query.transacting(options.transaction);
162
+ return this._executeQuery(query, options?.throwIfNoResult).then((result) => result[0].count);
163
+ }
164
+ async insert(data, options) {
165
+ const query = this._knex(this._table.name).insert(data).returning(options?.selectedFields ?? "*");
166
+ if (options?.transaction)
167
+ query.transacting(options.transaction);
168
+ return this._executeQuery(query);
169
+ }
170
+ async update(data, options) {
171
+ const query = this._knex(this._table.name).update(data);
172
+ this._applyQueryOptions(query, options);
173
+ return this._executeQuery(query);
174
+ }
175
+ async delete(options) {
176
+ const query = this._knex(this._table.name).delete();
177
+ this._applyQueryOptions(query, options);
178
+ return this._executeQuery(query);
179
+ }
180
+ _applySelectedFields(query, selectedFields) {
181
+ const qMethod = query._method;
182
+ if (qMethod === "del" || qMethod === "update" || qMethod === "insert")
183
+ query.returning(selectedFields ?? "*");
184
+ else
185
+ query.select(selectedFields ?? "*");
186
+ }
187
+ _applyFilter(query, search) {
188
+ const processing = (query2, search2) => {
189
+ for (const key in search2) {
190
+ const prop = search2[key];
191
+ if (this._filterIsAdaptiveWhereClause(prop)) {
192
+ for (const operator in prop)
193
+ if (operator in _operators && prop[operator] !== undefined)
194
+ _operators[operator](query2, key, prop[operator]);
195
+ } else if (key === "$q" && prop !== null && (typeof prop === "string" || typeof prop === "number")) {
196
+ for (const field of this._table.fields)
197
+ if (prop)
198
+ query2.orWhere(field, "like", `%${prop}%`);
199
+ } else if (key === "$q" && prop !== null && typeof prop === "object" && "selectedFields" in prop && "value" in prop) {
200
+ const { selectedFields, value } = prop;
201
+ if (Array.isArray(selectedFields))
202
+ for (const field of selectedFields)
203
+ query2.orWhere(field, "like", `%${value}%`);
204
+ else
205
+ query2.orWhere(selectedFields, "like", `%${value}%`);
206
+ } else {
207
+ if (prop !== null && typeof prop === "object" && Object.keys(prop).length === 0)
208
+ continue;
209
+ if (prop !== undefined)
210
+ query2.where(key, prop);
211
+ }
212
+ }
213
+ };
214
+ if (search && Array.isArray(search))
215
+ search.reduce((acc, item) => acc.orWhere((q) => this._applyFilter(q, item)), query);
216
+ else if (search)
217
+ processing(query, search);
218
+ }
219
+ _applyOrderBy(query, orderBy) {
220
+ const qMethod = query._method;
221
+ if (!(qMethod === "select"))
222
+ return;
223
+ if (!orderBy)
224
+ query.orderBy(this._table.primaryKey[0], "asc");
225
+ else if (Array.isArray(orderBy))
226
+ orderBy.forEach((item) => {
227
+ query.orderBy(item.selectedField, item.direction);
228
+ });
229
+ else
230
+ query.orderBy(orderBy.selectedField, orderBy.direction);
231
+ }
232
+ _applyQueryOptions(query, options) {
233
+ this._applyFilter(query, options?.filters);
234
+ this._applyOrderBy(query, options?.orderBy);
235
+ this._applySelectedFields(query, options?.selectedFields);
236
+ if (options?.transaction)
237
+ query.transacting(options.transaction);
238
+ }
239
+ _handleError(error, query) {
240
+ if (error instanceof HttpError)
241
+ throw error;
242
+ const code = error?.number || 0;
243
+ throw new HttpError({
244
+ message: MSSQL_ERROR_CODE[code] ?? DATABASE_ERROR_KEYS.MSSQL_QUERY_ERROR,
245
+ cause: {
246
+ query: query.toSQL().sql,
247
+ error
248
+ }
249
+ });
250
+ }
251
+ _filterIsAdaptiveWhereClause(data) {
252
+ return Boolean(data && typeof data === "object" && !Array.isArray(data) && Object.keys(data).some((key) => _validOperatorKeys.has(key)));
253
+ }
254
+ async _executeQuery(query, throwIfNoResult = false) {
255
+ try {
256
+ const result = await query;
257
+ if (throwIfNoResult && result.length === 0)
258
+ throw new HttpError({
259
+ message: DATABASE_ERROR_KEYS.MSSQL_NO_RESULT,
260
+ cause: {
261
+ query: query.toSQL().sql
262
+ },
263
+ httpStatusCode: 404
264
+ });
265
+ return result;
266
+ } catch (error) {
267
+ return this._handleError(error, query);
268
+ }
269
+ }
270
+ }
271
+
272
+ export { DATABASE_ERROR_KEYS, Repository };
@@ -0,0 +1,43 @@
1
+ import {
2
+ BaseError
3
+ } from "./chunk-vknq69e0.js";
4
+
5
+ // source/modules/singletonManager/enums/singletonManagerErrorKeys.ts
6
+ var SINGLETON_MANAGER_ERROR_KEYS = {
7
+ CLASS_CONSTRUCTOR_ALREADY_REGISTERED: "singletonManager.error.class_constructor_already_registered",
8
+ CLASS_CONSTRUCTOR_NOT_REGISTERED: "singletonManager.error.class_constructor_not_registered"
9
+ };
10
+
11
+ // source/modules/singletonManager/singletonManager.ts
12
+ class SingletonManager {
13
+ static _registry = new Map;
14
+ static register(name, constructor, ...args) {
15
+ if (this._registry.has(name))
16
+ throw new BaseError({
17
+ message: SINGLETON_MANAGER_ERROR_KEYS.CLASS_CONSTRUCTOR_ALREADY_REGISTERED,
18
+ cause: { name }
19
+ });
20
+ this._registry.set(name, new constructor(...args));
21
+ }
22
+ static unregister(name) {
23
+ if (!this._registry.has(name))
24
+ throw new BaseError({
25
+ message: SINGLETON_MANAGER_ERROR_KEYS.CLASS_CONSTRUCTOR_NOT_REGISTERED,
26
+ cause: { name }
27
+ });
28
+ this._registry.delete(name);
29
+ }
30
+ static get(name) {
31
+ if (!this._registry.has(name))
32
+ throw new BaseError({
33
+ message: SINGLETON_MANAGER_ERROR_KEYS.CLASS_CONSTRUCTOR_NOT_REGISTERED,
34
+ cause: { name }
35
+ });
36
+ return this._registry.get(name);
37
+ }
38
+ static has(name) {
39
+ return this._registry.has(name);
40
+ }
41
+ }
42
+
43
+ export { SingletonManager };
@@ -0,0 +1,38 @@
1
+ // source/utils/isDateString.ts
2
+ var isDateString = (v) => typeof v === "string" && new Date(v).toString() !== "Invalid Date";
3
+
4
+ // source/utils/stream.ts
5
+ var makeStreamAsyncIterable = (stream) => {
6
+ const asyncIterable = {
7
+ [Symbol.asyncIterator]: () => ({
8
+ next() {
9
+ return new Promise((resolve, reject) => {
10
+ const cleanup = () => {
11
+ stream.off("data", onData);
12
+ stream.off("end", onEnd);
13
+ stream.off("error", onError);
14
+ };
15
+ const onData = (data) => {
16
+ cleanup();
17
+ resolve({ value: data, done: false });
18
+ };
19
+ const onEnd = () => {
20
+ cleanup();
21
+ resolve({ value: undefined, done: true });
22
+ };
23
+ const onError = (error) => {
24
+ cleanup();
25
+ reject(error);
26
+ };
27
+ stream.on("data", onData);
28
+ stream.on("end", onEnd);
29
+ stream.on("error", onError);
30
+ });
31
+ }
32
+ })
33
+ };
34
+ stream[Symbol.asyncIterator] = asyncIterable[Symbol.asyncIterator];
35
+ return stream;
36
+ };
37
+
38
+ export { isDateString, makeStreamAsyncIterable };
@@ -0,0 +1,69 @@
1
+ import {
2
+ BaseError
3
+ } from "./chunk-vknq69e0.js";
4
+
5
+ // source/errors/enums/httpErrorStatusCodes.ts
6
+ var HTTP_ERROR_STATUS_CODES = {
7
+ BAD_REQUEST: 400,
8
+ UNAUTHORIZED: 401,
9
+ PAYMENT_REQUIRED: 402,
10
+ FORBIDDEN: 403,
11
+ NOT_FOUND: 404,
12
+ METHOD_NOT_ALLOWED: 405,
13
+ NOT_ACCEPTABLE: 406,
14
+ PROXY_AUTHENTICATION_REQUIRED: 407,
15
+ REQUEST_TIMEOUT: 408,
16
+ CONFLICT: 409,
17
+ GONE: 410,
18
+ LENGTH_REQUIRED: 411,
19
+ PRECONDITION_FAILED: 412,
20
+ PAYLOAD_TOO_LARGE: 413,
21
+ URI_TOO_LONG: 414,
22
+ UNSUPPORTED_MEDIA_TYPE: 415,
23
+ RANGE_NOT_SATISFIABLE: 416,
24
+ EXPECTATION_FAILED: 417,
25
+ IM_A_TEAPOT: 418,
26
+ MISDIRECTED_REQUEST: 421,
27
+ UNPROCESSABLE_ENTITY: 422,
28
+ LOCKED: 423,
29
+ FAILED_DEPENDENCY: 424,
30
+ TOO_EARLY: 425,
31
+ UPGRADE_REQUIRED: 426,
32
+ PRECONDITION_REQUIRED: 428,
33
+ TOO_MANY_REQUESTS: 429,
34
+ REQUEST_HEADER_FIELDS_TOO_LARGE: 431,
35
+ UNAVAILABLE_FOR_LEGAL_REASONS: 451,
36
+ INTERNAL_SERVER_ERROR: 500,
37
+ NOT_IMPLEMENTED: 501,
38
+ BAD_GATEWAY: 502,
39
+ SERVICE_UNAVAILABLE: 503,
40
+ GATEWAY_TIMEOUT: 504,
41
+ HTTP_VERSION_NOT_SUPPORTED: 505,
42
+ VARIANT_ALSO_NEGOTIATES: 506,
43
+ INSUFFICIENT_STORAGE: 507,
44
+ LOOP_DETECTED: 508,
45
+ NOT_EXTENDED: 510,
46
+ NETWORK_AUTHENTICATION_REQUIRED: 511
47
+ };
48
+
49
+ // source/errors/httpError.ts
50
+ class HttpError extends BaseError {
51
+ _httpStatusCode;
52
+ constructor(options) {
53
+ super(options);
54
+ super.name = "HttpError";
55
+ const statusCodeOption = options?.httpStatusCode;
56
+ this._httpStatusCode = typeof statusCodeOption === "number" ? statusCodeOption : HTTP_ERROR_STATUS_CODES[statusCodeOption ?? "INTERNAL_SERVER_ERROR"] ?? HTTP_ERROR_STATUS_CODES.INTERNAL_SERVER_ERROR;
57
+ }
58
+ get httpStatusCode() {
59
+ return this._httpStatusCode;
60
+ }
61
+ get isClientError() {
62
+ return this._httpStatusCode >= 400 && this._httpStatusCode < 500;
63
+ }
64
+ get isServerError() {
65
+ return this._httpStatusCode >= 500 && this._httpStatusCode < 600;
66
+ }
67
+ }
68
+
69
+ export { HttpError };
@@ -0,0 +1,82 @@
1
+ import {
2
+ BaseError
3
+ } from "./chunk-vknq69e0.js";
4
+
5
+ // source/modules/data/enums/dataErrorKeys.ts
6
+ var DATA_ERROR_KEYS = {
7
+ DATA_IS_NULL: "data.error.is_null"
8
+ };
9
+
10
+ // source/modules/data/data.ts
11
+ var _validateDataNull = (data) => {
12
+ if (data === null || data === undefined)
13
+ throw new BaseError({
14
+ message: DATA_ERROR_KEYS.DATA_IS_NULL
15
+ });
16
+ };
17
+ var filterByKeyExclusion = (data, keys, excludeNullUndefined) => {
18
+ _validateDataNull(data);
19
+ const filteredData = {};
20
+ for (const key in data) {
21
+ const typedKey = key;
22
+ if (!keys.includes(typedKey) && (!excludeNullUndefined || data[typedKey] !== null && data[typedKey] !== undefined))
23
+ filteredData[key] = data[typedKey];
24
+ }
25
+ return filteredData;
26
+ };
27
+ var filterByKeyExclusionRecursive = (data, keys, excludeNullUndefined = false) => {
28
+ _validateDataNull(data);
29
+ const filteredData = {};
30
+ for (const key in data) {
31
+ const typedKey = key;
32
+ if (!keys.includes(typedKey) && (!excludeNullUndefined || data[typedKey] !== null && data[typedKey] !== undefined))
33
+ if (typeof data[typedKey] === "object" && data[typedKey] !== null && !Array.isArray(data[typedKey]))
34
+ filteredData[key] = filterByKeyExclusionRecursive(data[typedKey], keys, excludeNullUndefined);
35
+ else if (Array.isArray(data[typedKey]))
36
+ filteredData[key] = data[typedKey].map((item) => {
37
+ if (typeof item === "object" && item !== null && !Array.isArray(item))
38
+ return filterByKeyExclusionRecursive(item, keys, excludeNullUndefined);
39
+ return item;
40
+ });
41
+ else
42
+ filteredData[key] = data[typedKey];
43
+ }
44
+ for (const symbol of Object.getOwnPropertySymbols(data))
45
+ filteredData[symbol] = data[symbol];
46
+ return filteredData;
47
+ };
48
+ var filterByKeyInclusion = (data, keys, excludeNullUndefined, throwIfDataIsNull = true) => {
49
+ if (throwIfDataIsNull)
50
+ _validateDataNull(data);
51
+ const filteredData = {};
52
+ for (const key of keys) {
53
+ const typedKey = key;
54
+ if (typedKey in data && (!excludeNullUndefined || data[typedKey] !== null && data[typedKey] !== undefined))
55
+ filteredData[key] = data[typedKey];
56
+ }
57
+ return filteredData;
58
+ };
59
+ var filterByValue = (data, predicate, excludeNullUndefined = false, throwIfDataIsNull = true) => {
60
+ if (throwIfDataIsNull)
61
+ _validateDataNull(data);
62
+ const filteredData = {};
63
+ for (const key in data)
64
+ if (Object.hasOwn(data, key)) {
65
+ const typedKey = key;
66
+ if (predicate(data[typedKey]) && (!excludeNullUndefined || data[typedKey] !== null && data[typedKey] !== undefined))
67
+ filteredData[typedKey] = data[typedKey];
68
+ }
69
+ return filteredData;
70
+ };
71
+ var transformKeys = (data, transformer, throwIfDataIsNull = true) => {
72
+ if (throwIfDataIsNull)
73
+ _validateDataNull(data);
74
+ const result = {};
75
+ for (const key in data) {
76
+ const transformedKey = transformer.convertCase(key);
77
+ result[transformedKey] = data[key];
78
+ }
79
+ return result;
80
+ };
81
+
82
+ export { filterByKeyExclusion, filterByKeyExclusionRecursive, filterByKeyInclusion, filterByValue, transformKeys };