@mbc-cqrs-serverless/core 0.1.8-beta.0 → 0.1.10-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 (352) hide show
  1. package/dist/app.controller.d.ts +8 -0
  2. package/dist/app.controller.js +44 -0
  3. package/dist/app.controller.js.map +1 -0
  4. package/dist/app.module-definition.d.ts +2 -0
  5. package/dist/app.module-definition.js +9 -0
  6. package/dist/app.module-definition.js.map +1 -0
  7. package/dist/app.module.d.ts +5 -0
  8. package/dist/app.module.js +76 -0
  9. package/dist/app.module.js.map +1 -0
  10. package/dist/app.service.d.ts +3 -0
  11. package/dist/app.service.js +20 -0
  12. package/dist/app.service.js.map +1 -0
  13. package/dist/bootstrap.d.ts +3 -0
  14. package/dist/bootstrap.js +118 -0
  15. package/dist/bootstrap.js.map +1 -0
  16. package/dist/command-events/data-sync.module.d.ts +2 -0
  17. package/dist/command-events/data-sync.module.js +21 -0
  18. package/dist/command-events/data-sync.module.js.map +1 -0
  19. package/dist/command-events/data-sync.new.event.d.ts +16 -0
  20. package/dist/command-events/data-sync.new.event.handler.d.ts +14 -0
  21. package/dist/command-events/data-sync.new.event.handler.js +47 -0
  22. package/dist/command-events/data-sync.new.event.handler.js.map +1 -0
  23. package/dist/command-events/data-sync.new.event.js +20 -0
  24. package/dist/command-events/data-sync.new.event.js.map +1 -0
  25. package/dist/command-events/data-sync.sfn.event.d.ts +24 -0
  26. package/dist/command-events/data-sync.sfn.event.handler.d.ts +11 -0
  27. package/dist/command-events/data-sync.sfn.event.handler.js +38 -0
  28. package/dist/command-events/data-sync.sfn.event.handler.js.map +1 -0
  29. package/dist/command-events/data-sync.sfn.event.js +57 -0
  30. package/dist/command-events/data-sync.sfn.event.js.map +1 -0
  31. package/dist/command-events/index.d.ts +6 -0
  32. package/dist/command-events/index.js +23 -0
  33. package/dist/command-events/index.js.map +1 -0
  34. package/dist/command-events/sfn-name.enum.d.ts +10 -0
  35. package/dist/command-events/sfn-name.enum.js +15 -0
  36. package/dist/command-events/sfn-name.enum.js.map +1 -0
  37. package/dist/commands/command.event.handler.d.ts +23 -0
  38. package/dist/commands/command.event.handler.js +143 -0
  39. package/dist/commands/command.event.handler.js.map +1 -0
  40. package/dist/commands/command.module-definition.d.ts +2 -0
  41. package/dist/commands/command.module-definition.js +7 -0
  42. package/dist/commands/command.module-definition.js.map +1 -0
  43. package/dist/commands/command.module.d.ts +5 -0
  44. package/dist/commands/command.module.js +46 -0
  45. package/dist/commands/command.module.js.map +1 -0
  46. package/dist/commands/command.service.d.ts +40 -0
  47. package/dist/commands/command.service.js +249 -0
  48. package/dist/commands/command.service.js.map +1 -0
  49. package/dist/commands/data.service.d.ts +25 -0
  50. package/dist/commands/data.service.js +85 -0
  51. package/dist/commands/data.service.js.map +1 -0
  52. package/dist/commands/enums/index.d.ts +1 -0
  53. package/dist/commands/enums/index.js +18 -0
  54. package/dist/commands/enums/index.js.map +1 -0
  55. package/dist/commands/enums/status.enum.d.ts +6 -0
  56. package/dist/commands/enums/status.enum.js +14 -0
  57. package/dist/commands/enums/status.enum.js.map +1 -0
  58. package/dist/commands/handlers/data-sync-dds.handler.d.ts +10 -0
  59. package/dist/commands/handlers/data-sync-dds.handler.js +35 -0
  60. package/dist/commands/handlers/data-sync-dds.handler.js.map +1 -0
  61. package/dist/commands/handlers/index.d.ts +1 -0
  62. package/dist/commands/handlers/index.js +18 -0
  63. package/dist/commands/handlers/index.js.map +1 -0
  64. package/dist/commands/history.service.d.ts +17 -0
  65. package/dist/commands/history.service.js +57 -0
  66. package/dist/commands/history.service.js.map +1 -0
  67. package/dist/commands/index.d.ts +7 -0
  68. package/dist/commands/index.js +24 -0
  69. package/dist/commands/index.js.map +1 -0
  70. package/dist/constants/dynamodb-table.d.ts +3 -0
  71. package/dist/constants/dynamodb-table.js +7 -0
  72. package/dist/constants/dynamodb-table.js.map +1 -0
  73. package/dist/constants/index.d.ts +5 -0
  74. package/dist/constants/index.js +22 -0
  75. package/dist/constants/index.js.map +1 -0
  76. package/dist/constants/key.d.ts +4 -0
  77. package/dist/constants/key.js +8 -0
  78. package/dist/constants/key.js.map +1 -0
  79. package/dist/constants/role.d.ts +1 -0
  80. package/dist/constants/role.js +5 -0
  81. package/dist/constants/role.js.map +1 -0
  82. package/dist/constants/sqs-queue.d.ts +1 -0
  83. package/dist/constants/sqs-queue.js +5 -0
  84. package/dist/constants/sqs-queue.js.map +1 -0
  85. package/dist/constants/tenant.d.ts +2 -0
  86. package/dist/constants/tenant.js +6 -0
  87. package/dist/constants/tenant.js.map +1 -0
  88. package/dist/context/index.d.ts +2 -0
  89. package/dist/context/index.js +19 -0
  90. package/dist/context/index.js.map +1 -0
  91. package/dist/context/invoke.d.ts +73 -0
  92. package/dist/context/invoke.js +57 -0
  93. package/dist/context/invoke.js.map +1 -0
  94. package/dist/context/user.d.ts +13 -0
  95. package/dist/context/user.js +36 -0
  96. package/dist/context/user.js.map +1 -0
  97. package/dist/data-store/data-store.module.d.ts +2 -0
  98. package/dist/data-store/data-store.module.js +23 -0
  99. package/dist/data-store/data-store.module.js.map +1 -0
  100. package/dist/data-store/dynamodb.service.d.ts +36 -0
  101. package/dist/data-store/dynamodb.service.js +317 -0
  102. package/dist/data-store/dynamodb.service.js.map +1 -0
  103. package/dist/data-store/index.d.ts +3 -0
  104. package/dist/data-store/index.js +20 -0
  105. package/dist/data-store/index.js.map +1 -0
  106. package/dist/data-store/s3.service.d.ts +16 -0
  107. package/dist/data-store/s3.service.js +55 -0
  108. package/dist/data-store/s3.service.js.map +1 -0
  109. package/dist/decorators/auth.decorator.d.ts +7 -0
  110. package/dist/decorators/auth.decorator.js +29 -0
  111. package/dist/decorators/auth.decorator.js.map +1 -0
  112. package/dist/decorators/constants.d.ts +5 -0
  113. package/dist/decorators/constants.js +9 -0
  114. package/dist/decorators/constants.js.map +1 -0
  115. package/dist/decorators/context.decorator.d.ts +1 -0
  116. package/dist/decorators/context.decorator.js +9 -0
  117. package/dist/decorators/context.decorator.js.map +1 -0
  118. package/dist/decorators/data-sync-handler.decorator.d.ts +2 -0
  119. package/dist/decorators/data-sync-handler.decorator.js +12 -0
  120. package/dist/decorators/data-sync-handler.decorator.js.map +1 -0
  121. package/dist/decorators/event-factory.decorator.d.ts +2 -0
  122. package/dist/decorators/event-factory.decorator.js +12 -0
  123. package/dist/decorators/event-factory.decorator.js.map +1 -0
  124. package/dist/decorators/event-handler.decorator.d.ts +3 -0
  125. package/dist/decorators/event-handler.decorator.js +16 -0
  126. package/dist/decorators/event-handler.decorator.js.map +1 -0
  127. package/dist/decorators/index.d.ts +8 -0
  128. package/dist/decorators/index.js +25 -0
  129. package/dist/decorators/index.js.map +1 -0
  130. package/dist/decorators/roles.decorator.d.ts +1 -0
  131. package/dist/decorators/roles.decorator.js +8 -0
  132. package/dist/decorators/roles.decorator.js.map +1 -0
  133. package/dist/decorators/swagger-response.decorator.d.ts +2 -0
  134. package/dist/decorators/swagger-response.decorator.js +10 -0
  135. package/dist/decorators/swagger-response.decorator.js.map +1 -0
  136. package/dist/env.validation.d.ts +30 -0
  137. package/dist/env.validation.js +132 -0
  138. package/dist/env.validation.js.map +1 -0
  139. package/dist/events/default-event-factory.d.ts +10 -0
  140. package/dist/events/default-event-factory.js +51 -0
  141. package/dist/events/default-event-factory.js.map +1 -0
  142. package/dist/events/event-bus.d.ts +16 -0
  143. package/dist/events/event-bus.js +70 -0
  144. package/dist/events/event-bus.js.map +1 -0
  145. package/dist/events/event-metadata.interface.d.ts +3 -0
  146. package/dist/events/event-metadata.interface.js +3 -0
  147. package/dist/events/event-metadata.interface.js.map +1 -0
  148. package/dist/events/event.controller.d.ts +14 -0
  149. package/dist/events/event.controller.js +131 -0
  150. package/dist/events/event.controller.js.map +1 -0
  151. package/dist/events/event.module.d.ts +12 -0
  152. package/dist/events/event.module.js +48 -0
  153. package/dist/events/event.module.js.map +1 -0
  154. package/dist/events/event.services.d.ts +21 -0
  155. package/dist/events/event.services.js +72 -0
  156. package/dist/events/event.services.js.map +1 -0
  157. package/dist/events/index.d.ts +6 -0
  158. package/dist/events/index.js +23 -0
  159. package/dist/events/index.js.map +1 -0
  160. package/dist/events/mocks/event-handler.mock.d.ts +8 -0
  161. package/dist/events/mocks/event-handler.mock.js +27 -0
  162. package/dist/events/mocks/event-handler.mock.js.map +1 -0
  163. package/dist/events/mocks/other-event-handler.mock.d.ts +8 -0
  164. package/dist/events/mocks/other-event-handler.mock.js +27 -0
  165. package/dist/events/mocks/other-event-handler.mock.js.map +1 -0
  166. package/dist/exceptions/event-not-found.exception.d.ts +3 -0
  167. package/dist/exceptions/event-not-found.exception.js +10 -0
  168. package/dist/exceptions/event-not-found.exception.js.map +1 -0
  169. package/dist/exceptions/event-source.exeption.d.ts +3 -0
  170. package/dist/exceptions/event-source.exeption.js +10 -0
  171. package/dist/exceptions/event-source.exeption.js.map +1 -0
  172. package/dist/exceptions/index.d.ts +3 -0
  173. package/dist/exceptions/index.js +20 -0
  174. package/dist/exceptions/index.js.map +1 -0
  175. package/dist/exceptions/invalid-event-handler.exception.d.ts +3 -0
  176. package/dist/exceptions/invalid-event-handler.exception.js +10 -0
  177. package/dist/exceptions/invalid-event-handler.exception.js.map +1 -0
  178. package/dist/filters/dynamodb-exception.filter.d.ts +13 -0
  179. package/dist/filters/dynamodb-exception.filter.js +60 -0
  180. package/dist/filters/dynamodb-exception.filter.js.map +1 -0
  181. package/dist/filters/event-source-exception.filter.d.ts +4 -0
  182. package/dist/filters/event-source-exception.filter.js +19 -0
  183. package/dist/filters/event-source-exception.filter.js.map +1 -0
  184. package/dist/filters/index.d.ts +2 -0
  185. package/dist/filters/index.js +19 -0
  186. package/dist/filters/index.js.map +1 -0
  187. package/dist/guard/index.d.ts +1 -0
  188. package/dist/guard/index.js +18 -0
  189. package/dist/guard/index.js.map +1 -0
  190. package/dist/guard/roles.guard.d.ts +11 -0
  191. package/dist/guard/roles.guard.js +60 -0
  192. package/dist/guard/roles.guard.js.map +1 -0
  193. package/dist/helpers/datetime.d.ts +4 -0
  194. package/dist/helpers/datetime.js +47 -0
  195. package/dist/helpers/datetime.js.map +1 -0
  196. package/dist/helpers/event-type.d.ts +2 -0
  197. package/dist/helpers/event-type.js +26 -0
  198. package/dist/helpers/event-type.js.map +1 -0
  199. package/dist/helpers/index.d.ts +6 -0
  200. package/dist/helpers/index.js +26 -0
  201. package/dist/helpers/index.js.map +1 -0
  202. package/dist/helpers/key.d.ts +9 -0
  203. package/dist/helpers/key.js +44 -0
  204. package/dist/helpers/key.js.map +1 -0
  205. package/dist/helpers/object.d.ts +5 -0
  206. package/dist/helpers/object.js +51 -0
  207. package/dist/helpers/object.js.map +1 -0
  208. package/dist/helpers/source.d.ts +1 -0
  209. package/dist/helpers/source.js +8 -0
  210. package/dist/helpers/source.js.map +1 -0
  211. package/dist/index.d.ts +20 -0
  212. package/dist/index.js +37 -0
  213. package/dist/index.js.map +1 -0
  214. package/dist/interfaces/app-module-options.interface.d.ts +6 -0
  215. package/dist/interfaces/app-module-options.interface.js +3 -0
  216. package/dist/interfaces/app-module-options.interface.js.map +1 -0
  217. package/dist/interfaces/aws/index.d.ts +1 -0
  218. package/dist/interfaces/aws/index.js +18 -0
  219. package/dist/interfaces/aws/index.js.map +1 -0
  220. package/dist/interfaces/aws/step-function.interface.d.ts +27 -0
  221. package/dist/interfaces/aws/step-function.interface.js +3 -0
  222. package/dist/interfaces/aws/step-function.interface.js.map +1 -0
  223. package/dist/interfaces/command-input-model.interface.d.ts +19 -0
  224. package/dist/interfaces/command-input-model.interface.js +3 -0
  225. package/dist/interfaces/command-input-model.interface.js.map +1 -0
  226. package/dist/interfaces/command-model.interface.d.ts +12 -0
  227. package/dist/interfaces/command-model.interface.js +3 -0
  228. package/dist/interfaces/command-model.interface.js.map +1 -0
  229. package/dist/interfaces/command-module-options.interface.d.ts +8 -0
  230. package/dist/interfaces/command-module-options.interface.js +3 -0
  231. package/dist/interfaces/command-module-options.interface.js.map +1 -0
  232. package/dist/interfaces/command.dto.d.ts +15 -0
  233. package/dist/interfaces/command.dto.js +76 -0
  234. package/dist/interfaces/command.dto.js.map +1 -0
  235. package/dist/interfaces/command.entity.d.ts +26 -0
  236. package/dist/interfaces/command.entity.js +103 -0
  237. package/dist/interfaces/command.entity.js.map +1 -0
  238. package/dist/interfaces/command.options.interface.d.ts +6 -0
  239. package/dist/interfaces/command.options.interface.js +3 -0
  240. package/dist/interfaces/command.options.interface.js.map +1 -0
  241. package/dist/interfaces/data-list.entity.d.ts +7 -0
  242. package/dist/interfaces/data-list.entity.js +35 -0
  243. package/dist/interfaces/data-list.entity.js.map +1 -0
  244. package/dist/interfaces/data-model.interface.d.ts +5 -0
  245. package/dist/interfaces/data-model.interface.js +3 -0
  246. package/dist/interfaces/data-model.interface.js.map +1 -0
  247. package/dist/interfaces/data-sync-handler.interface.d.ts +6 -0
  248. package/dist/interfaces/data-sync-handler.interface.js +3 -0
  249. package/dist/interfaces/data-sync-handler.interface.js.map +1 -0
  250. package/dist/interfaces/data.entity.d.ts +28 -0
  251. package/dist/interfaces/data.entity.js +110 -0
  252. package/dist/interfaces/data.entity.js.map +1 -0
  253. package/dist/interfaces/ddb-update-item.interface.d.ts +19 -0
  254. package/dist/interfaces/ddb-update-item.interface.js +3 -0
  255. package/dist/interfaces/ddb-update-item.interface.js.map +1 -0
  256. package/dist/interfaces/detail-key.interface.d.ts +4 -0
  257. package/dist/interfaces/detail-key.interface.js +3 -0
  258. package/dist/interfaces/detail-key.interface.js.map +1 -0
  259. package/dist/interfaces/detail.dto.d.ts +5 -0
  260. package/dist/interfaces/detail.dto.js +28 -0
  261. package/dist/interfaces/detail.dto.js.map +1 -0
  262. package/dist/interfaces/event-factory.interface.d.ts +11 -0
  263. package/dist/interfaces/event-factory.interface.js +3 -0
  264. package/dist/interfaces/event-factory.interface.js.map +1 -0
  265. package/dist/interfaces/event-handler.interface.d.ts +4 -0
  266. package/dist/interfaces/event-handler.interface.js +3 -0
  267. package/dist/interfaces/event-handler.interface.js.map +1 -0
  268. package/dist/interfaces/event-raw.interface.d.ts +2 -0
  269. package/dist/interfaces/event-raw.interface.js +3 -0
  270. package/dist/interfaces/event-raw.interface.js.map +1 -0
  271. package/dist/interfaces/event.interface.d.ts +3 -0
  272. package/dist/interfaces/event.interface.js +3 -0
  273. package/dist/interfaces/event.interface.js.map +1 -0
  274. package/dist/interfaces/index.d.ts +21 -0
  275. package/dist/interfaces/index.js +38 -0
  276. package/dist/interfaces/index.js.map +1 -0
  277. package/dist/interfaces/notification.interface.d.ts +17 -0
  278. package/dist/interfaces/notification.interface.js +3 -0
  279. package/dist/interfaces/notification.interface.js.map +1 -0
  280. package/dist/interfaces/paginate.dto.d.ts +5 -0
  281. package/dist/interfaces/paginate.dto.js +38 -0
  282. package/dist/interfaces/paginate.dto.js.map +1 -0
  283. package/dist/interfaces/search.dto.d.ts +8 -0
  284. package/dist/interfaces/search.dto.js +48 -0
  285. package/dist/interfaces/search.dto.js.map +1 -0
  286. package/dist/notifications/appsync.service.d.ts +13 -0
  287. package/dist/notifications/appsync.service.js +102 -0
  288. package/dist/notifications/appsync.service.js.map +1 -0
  289. package/dist/notifications/email.service.d.ts +11 -0
  290. package/dist/notifications/email.service.js +49 -0
  291. package/dist/notifications/email.service.js.map +1 -0
  292. package/dist/notifications/event/index.d.ts +2 -0
  293. package/dist/notifications/event/index.js +19 -0
  294. package/dist/notifications/event/index.js.map +1 -0
  295. package/dist/notifications/event/notification.event.d.ts +15 -0
  296. package/dist/notifications/event/notification.event.handler.d.ts +9 -0
  297. package/dist/notifications/event/notification.event.handler.js +34 -0
  298. package/dist/notifications/event/notification.event.handler.js.map +1 -0
  299. package/dist/notifications/event/notification.event.js +13 -0
  300. package/dist/notifications/event/notification.event.js.map +1 -0
  301. package/dist/notifications/index.d.ts +4 -0
  302. package/dist/notifications/index.js +21 -0
  303. package/dist/notifications/index.js.map +1 -0
  304. package/dist/notifications/notification.module.d.ts +2 -0
  305. package/dist/notifications/notification.module.js +24 -0
  306. package/dist/notifications/notification.module.js.map +1 -0
  307. package/dist/pipe/class.validation.pipe.d.ts +5 -0
  308. package/dist/pipe/class.validation.pipe.js +34 -0
  309. package/dist/pipe/class.validation.pipe.js.map +1 -0
  310. package/dist/pipe/index.d.ts +1 -0
  311. package/dist/pipe/index.js +18 -0
  312. package/dist/pipe/index.js.map +1 -0
  313. package/dist/queue/index.d.ts +3 -0
  314. package/dist/queue/index.js +20 -0
  315. package/dist/queue/index.js.map +1 -0
  316. package/dist/queue/queue.module.d.ts +2 -0
  317. package/dist/queue/queue.module.js +22 -0
  318. package/dist/queue/queue.module.js.map +1 -0
  319. package/dist/queue/sns.event.d.ts +3 -0
  320. package/dist/queue/sns.event.js +3 -0
  321. package/dist/queue/sns.event.js.map +1 -0
  322. package/dist/queue/sns.service.d.ts +13 -0
  323. package/dist/queue/sns.service.js +47 -0
  324. package/dist/queue/sns.service.js.map +1 -0
  325. package/dist/services/explorer.service.d.ts +20 -0
  326. package/dist/services/explorer.service.js +62 -0
  327. package/dist/services/explorer.service.js.map +1 -0
  328. package/dist/services/index.d.ts +2 -0
  329. package/dist/services/index.js +19 -0
  330. package/dist/services/index.js.map +1 -0
  331. package/dist/services/mocks/event-factory.mock.d.ts +3 -0
  332. package/dist/services/mocks/event-factory.mock.js +22 -0
  333. package/dist/services/mocks/event-factory.mock.js.map +1 -0
  334. package/dist/services/mocks/event-handler.mock.d.ts +7 -0
  335. package/dist/services/mocks/event-handler.mock.js +23 -0
  336. package/dist/services/mocks/event-handler.mock.js.map +1 -0
  337. package/dist/services/mocks/sync-data.handler.mock.d.ts +6 -0
  338. package/dist/services/mocks/sync-data.handler.mock.js +28 -0
  339. package/dist/services/mocks/sync-data.handler.mock.js.map +1 -0
  340. package/dist/services/request-logger.service.d.ts +15 -0
  341. package/dist/services/request-logger.service.js +89 -0
  342. package/dist/services/request-logger.service.js.map +1 -0
  343. package/dist/step-func/index.d.ts +2 -0
  344. package/dist/step-func/index.js +19 -0
  345. package/dist/step-func/index.js.map +1 -0
  346. package/dist/step-func/step-function.module.d.ts +2 -0
  347. package/dist/step-func/step-function.module.js +22 -0
  348. package/dist/step-func/step-function.module.js.map +1 -0
  349. package/dist/step-func/step-function.service.d.ts +11 -0
  350. package/dist/step-func/step-function.service.js +41 -0
  351. package/dist/step-func/step-function.service.js.map +1 -0
  352. package/package.json +3 -3
@@ -0,0 +1,13 @@
1
+ import { ExecutionContext } from '@nestjs/common';
2
+ import { IInvoke } from './invoke';
3
+ export interface CustomRole {
4
+ tenant: string;
5
+ role: string;
6
+ }
7
+ export declare class UserContext {
8
+ userId: string;
9
+ tenantRole: string;
10
+ tenantCode: string;
11
+ constructor(partial: Partial<UserContext>);
12
+ }
13
+ export declare function getUserContext(ctx: IInvoke | ExecutionContext): UserContext;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUserContext = exports.UserContext = void 0;
4
+ const constants_1 = require("../constants");
5
+ const invoke_1 = require("./invoke");
6
+ class UserContext {
7
+ constructor(partial) {
8
+ Object.assign(this, partial);
9
+ }
10
+ }
11
+ exports.UserContext = UserContext;
12
+ function getUserContext(ctx) {
13
+ if ('getHandler' in ctx) {
14
+ ctx = (0, invoke_1.extractInvokeContext)(ctx);
15
+ }
16
+ const claims = (0, invoke_1.getAuthorizerClaims)(ctx);
17
+ const userId = claims.sub;
18
+ const tenantCode = claims['custom:tenant'] || (ctx?.event?.headers || {})[constants_1.HEADER_TENANT_CODE];
19
+ const roles = JSON.parse(claims['custom:roles'] || '[]').map((role) => ({ ...role, tenant: (role.tenant || '').toLowerCase() }));
20
+ let tenantRole = '';
21
+ for (const { tenant, role } of roles) {
22
+ if (tenant === '' || tenant === tenantCode) {
23
+ tenantRole = role;
24
+ if (tenant !== '') {
25
+ break;
26
+ }
27
+ }
28
+ }
29
+ return {
30
+ userId,
31
+ tenantRole,
32
+ tenantCode,
33
+ };
34
+ }
35
+ exports.getUserContext = getUserContext;
36
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/context/user.ts"],"names":[],"mappings":";;;AAEA,4CAAiD;AACjD,qCAA6E;AAO7E,MAAa,WAAW;IAKtB,YAAY,OAA6B;QACvC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC9B,CAAC;CACF;AARD,kCAQC;AAED,SAAgB,cAAc,CAAC,GAA+B;IAC5D,IAAI,YAAY,IAAI,GAAG,EAAE,CAAC;QACxB,GAAG,GAAG,IAAA,6BAAoB,EAAC,GAAG,CAAC,CAAA;IACjC,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,4BAAmB,EAAC,GAAG,CAAC,CAAA;IAEvC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA;IACzB,MAAM,UAAU,GACd,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,8BAAkB,CAAC,CAAA;IAE5E,MAAM,KAAK,GACT,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,IAAI,CAC1C,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAA;IACzE,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;QACrC,IAAI,MAAM,KAAK,EAAE,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YAC3C,UAAU,GAAG,IAAI,CAAA;YACjB,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;gBAClB,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM;QACN,UAAU;QACV,UAAU;KACX,CAAA;AACH,CAAC;AA5BD,wCA4BC"}
@@ -0,0 +1,2 @@
1
+ export declare class DataStoreModule {
2
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DataStoreModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const dynamodb_service_1 = require("./dynamodb.service");
12
+ const s3_service_1 = require("./s3.service");
13
+ let DataStoreModule = class DataStoreModule {
14
+ };
15
+ exports.DataStoreModule = DataStoreModule;
16
+ exports.DataStoreModule = DataStoreModule = __decorate([
17
+ (0, common_1.Global)(),
18
+ (0, common_1.Module)({
19
+ providers: [dynamodb_service_1.DynamoDbService, s3_service_1.S3Service],
20
+ exports: [dynamodb_service_1.DynamoDbService, s3_service_1.S3Service],
21
+ })
22
+ ], DataStoreModule);
23
+ //# sourceMappingURL=data-store.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-store.module.js","sourceRoot":"","sources":["../../src/data-store/data-store.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA+C;AAE/C,yDAAoD;AACpD,6CAAwC;AAOjC,IAAM,eAAe,GAArB,MAAM,eAAe;CAAG,CAAA;AAAlB,0CAAe;0BAAf,eAAe;IAL3B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,kCAAe,EAAE,sBAAS,CAAC;QACvC,OAAO,EAAE,CAAC,kCAAe,EAAE,sBAAS,CAAC;KACtC,CAAC;GACW,eAAe,CAAG"}
@@ -0,0 +1,36 @@
1
+ import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
2
+ import { ConfigService } from '@nestjs/config';
3
+ import { DdbUpdateItem, DetailKey } from '../interfaces';
4
+ import { S3Service } from './s3.service';
5
+ declare const CLIENT_INSTANCE: unique symbol;
6
+ export declare class DynamoDbService {
7
+ private readonly config;
8
+ private readonly s3Service;
9
+ private readonly logger;
10
+ private readonly [CLIENT_INSTANCE];
11
+ private readonly tablePrefix;
12
+ constructor(config: ConfigService, s3Service: S3Service);
13
+ get client(): DynamoDBClient;
14
+ putItem(tableName: string, item: Record<string, any>, conditions?: string): Promise<Record<string, any>>;
15
+ updateItem(tableName: string, key: DetailKey, item: DdbUpdateItem, conditions?: string): Promise<any>;
16
+ getItem(tableName: string, key: DetailKey): Promise<any>;
17
+ listItemsByPk(tableName: string, pk: string, sk?: {
18
+ skExpession: string;
19
+ skAttributeValues: Record<string, string>;
20
+ skAttributeNames?: Record<string, string>;
21
+ }, startFromSk?: string, limit?: number, order?: 'asc' | 'desc'): Promise<any>;
22
+ listAllItems(tableName: string, startKey?: DetailKey, limit?: number): Promise<{
23
+ lastKey: DetailKey;
24
+ items: any[];
25
+ }>;
26
+ private ddbItemToObj;
27
+ private objToDdbItem;
28
+ private toDdbKey;
29
+ private buildUpdateExpression;
30
+ private buildUpdateSetExpression;
31
+ private buildUpdateRemoveExpression;
32
+ private buildUpdateDeleteExpression;
33
+ getTableName(moduleName: string, type?: 'command' | 'data' | 'history'): string;
34
+ getModuleName(tableName: string): string;
35
+ }
36
+ export {};
@@ -0,0 +1,317 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var DynamoDbService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.DynamoDbService = void 0;
14
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
15
+ const util_dynamodb_1 = require("@aws-sdk/util-dynamodb");
16
+ const common_1 = require("@nestjs/common");
17
+ const config_1 = require("@nestjs/config");
18
+ const ulid_1 = require("ulid");
19
+ const helpers_1 = require("../helpers");
20
+ const object_1 = require("../helpers/object");
21
+ const s3_service_1 = require("./s3.service");
22
+ const CLIENT_INSTANCE = Symbol();
23
+ let DynamoDbService = DynamoDbService_1 = class DynamoDbService {
24
+ constructor(config, s3Service) {
25
+ this.config = config;
26
+ this.s3Service = s3Service;
27
+ this.logger = new common_1.Logger(DynamoDbService_1.name);
28
+ this[CLIENT_INSTANCE] = new client_dynamodb_1.DynamoDBClient({
29
+ endpoint: config.get('DYNAMODB_ENDPOINT'),
30
+ region: config.get('DYNAMODB_REGION'),
31
+ });
32
+ this.tablePrefix = `${config.get('NODE_ENV')}-${config.get('APP_NAME')}-`;
33
+ }
34
+ get client() {
35
+ return this[CLIENT_INSTANCE];
36
+ }
37
+ async putItem(tableName, item, conditions) {
38
+ const data = await this.objToDdbItem(tableName, item);
39
+ await this.client.send(new client_dynamodb_1.PutItemCommand({
40
+ TableName: tableName,
41
+ Item: data,
42
+ ConditionExpression: conditions,
43
+ ReturnValues: 'NONE',
44
+ }));
45
+ return item;
46
+ }
47
+ async updateItem(tableName, key, item, conditions) {
48
+ if (!item.set?.updatedAt) {
49
+ const updatedAt = new Date();
50
+ if (!item.set) {
51
+ item.set = { updatedAt };
52
+ }
53
+ else {
54
+ item.set.updatedAt = updatedAt;
55
+ }
56
+ }
57
+ const { updateExpression, expressionAttributeNames, expressionAttributeValues, } = this.buildUpdateExpression(item);
58
+ this.logger.debug(updateExpression);
59
+ this.logger.debug(expressionAttributeNames);
60
+ this.logger.debug(expressionAttributeValues);
61
+ const res = await this.client.send(new client_dynamodb_1.UpdateItemCommand({
62
+ TableName: tableName,
63
+ Key: this.toDdbKey(key),
64
+ UpdateExpression: updateExpression,
65
+ ExpressionAttributeNames: expressionAttributeNames,
66
+ ExpressionAttributeValues: await this.objToDdbItem(tableName, expressionAttributeValues),
67
+ ConditionExpression: conditions,
68
+ ReturnValues: 'ALL_NEW',
69
+ }));
70
+ return this.ddbItemToObj(res.Attributes);
71
+ }
72
+ async getItem(tableName, key) {
73
+ const { Item } = await this.client.send(new client_dynamodb_1.GetItemCommand({
74
+ TableName: tableName,
75
+ Key: this.toDdbKey(key),
76
+ }));
77
+ return await this.ddbItemToObj(Item);
78
+ }
79
+ async listItemsByPk(tableName, pk, sk, startFromSk, limit = 10, order = 'asc') {
80
+ const res = await this.client.send(new client_dynamodb_1.QueryCommand({
81
+ TableName: tableName,
82
+ Limit: limit,
83
+ ScanIndexForward: order === 'asc',
84
+ ExclusiveStartKey: startFromSk
85
+ ? this.toDdbKey({ pk, sk: startFromSk })
86
+ : undefined,
87
+ KeyConditionExpression: 'pk = :pk' + (sk ? ` and ${sk.skExpession}` : ''),
88
+ ExpressionAttributeNames: sk?.skAttributeNames,
89
+ ExpressionAttributeValues: await this.objToDdbItem(tableName, {
90
+ ...sk?.skAttributeValues,
91
+ ':pk': pk,
92
+ }),
93
+ }));
94
+ const lastSk = res.LastEvaluatedKey
95
+ ? (0, util_dynamodb_1.unmarshall)(res.LastEvaluatedKey).sk
96
+ : undefined;
97
+ const items = await Promise.all(res.Items?.map((item) => this.ddbItemToObj(item)));
98
+ return {
99
+ lastSk,
100
+ items,
101
+ };
102
+ }
103
+ async listAllItems(tableName, startKey, limit = 10) {
104
+ const res = await this.client.send(new client_dynamodb_1.ScanCommand({
105
+ TableName: tableName,
106
+ Limit: limit,
107
+ ExclusiveStartKey: startKey ? this.toDdbKey(startKey) : undefined,
108
+ }));
109
+ const lastKey = res.LastEvaluatedKey
110
+ ? (0, util_dynamodb_1.unmarshall)(res.LastEvaluatedKey)
111
+ : undefined;
112
+ const items = await Promise.all(res.Items?.map((item) => this.ddbItemToObj(item)));
113
+ return {
114
+ lastKey,
115
+ items,
116
+ };
117
+ }
118
+ async ddbItemToObj(item) {
119
+ if (!item) {
120
+ return item;
121
+ }
122
+ const obj = (0, util_dynamodb_1.unmarshall)(item);
123
+ if ((0, helpers_1.isS3AttributeKey)(obj.attributes)) {
124
+ const { key } = (0, helpers_1.parseS3AttributeKey)(obj.attributes);
125
+ obj.attributes = await this.s3Service.getItem(key);
126
+ }
127
+ if (obj.createdAt) {
128
+ obj.createdAt = new Date(obj.createdAt);
129
+ }
130
+ if (obj.updatedAt) {
131
+ obj.updatedAt = new Date(obj.updatedAt);
132
+ }
133
+ return obj;
134
+ }
135
+ async objToDdbItem(tableName, obj) {
136
+ if (!obj) {
137
+ return obj;
138
+ }
139
+ const data = { ...obj };
140
+ for (const key in data) {
141
+ const value = data[key];
142
+ if (value instanceof Date) {
143
+ data[key] = (0, helpers_1.toISOStringWithTimezone)(value);
144
+ }
145
+ }
146
+ if (data.attributes || data[':attributes']) {
147
+ const attributes = data.attributes || data[':attributes'];
148
+ const bytes = (0, object_1.objectBytes)(data.attributes || data[':attributes']);
149
+ if (bytes > this.config.get('ATTRIBUTE_LIMIT_SIZE')) {
150
+ const { pk, sk } = data;
151
+ const key = `ddb/${tableName}/${pk}/${sk}/${(0, ulid_1.ulid)()}.json`;
152
+ const s3Key = await this.s3Service.putItem(key, attributes);
153
+ data.attributes = (0, helpers_1.toS3AttributeKey)(s3Key.Bucket, s3Key.Key);
154
+ }
155
+ }
156
+ return (0, util_dynamodb_1.marshall)(data, {
157
+ convertClassInstanceToMap: true,
158
+ removeUndefinedValues: true,
159
+ });
160
+ }
161
+ toDdbKey(key) {
162
+ return (0, util_dynamodb_1.marshall)(key, {
163
+ convertClassInstanceToMap: true,
164
+ removeUndefinedValues: true,
165
+ });
166
+ }
167
+ buildUpdateExpression(input) {
168
+ const ret = {
169
+ updateExpression: '',
170
+ expressionAttributeNames: {},
171
+ expressionAttributeValues: {},
172
+ };
173
+ const mapper = {
174
+ set: this.buildUpdateSetExpression.bind(this),
175
+ remove: this.buildUpdateRemoveExpression.bind(this),
176
+ delete: this.buildUpdateDeleteExpression.bind(this),
177
+ };
178
+ for (const key in mapper) {
179
+ if (!input[key]) {
180
+ continue;
181
+ }
182
+ const expr = mapper[key](input[key]);
183
+ ret.updateExpression += ' ' + expr.updateExpression;
184
+ ret.expressionAttributeNames = {
185
+ ...ret.expressionAttributeNames,
186
+ ...expr.expressionAttributeNames,
187
+ };
188
+ ret.expressionAttributeValues = {
189
+ ...ret.expressionAttributeValues,
190
+ ...expr.expressionAttributeValues,
191
+ };
192
+ }
193
+ return ret;
194
+ }
195
+ buildUpdateSetExpression(inputSet) {
196
+ const ret = {
197
+ updateExpression: '',
198
+ expressionAttributeNames: {},
199
+ expressionAttributeValues: {},
200
+ };
201
+ const updExprList = [];
202
+ for (const key in inputSet) {
203
+ const val = inputSet[key];
204
+ if (typeof val === 'undefined') {
205
+ continue;
206
+ }
207
+ let updExpr = `#${key}=:${key}`;
208
+ ret.expressionAttributeNames[`#${key}`] = key;
209
+ if (typeof val === 'object') {
210
+ let isSetValue = false;
211
+ if ('ifNotExists' in val) {
212
+ isSetValue = true;
213
+ const ifNotExists = val.ifNotExists;
214
+ const path = `#${ifNotExists.path || key}`;
215
+ const value = `:${key}InitVal`;
216
+ updExpr = `#${key}=if_not_exists(${path}, ${value})`;
217
+ ret.expressionAttributeValues[value] =
218
+ ifNotExists.value || ifNotExists;
219
+ if (!ret.expressionAttributeNames[path]) {
220
+ ret.expressionAttributeNames[path] = path.substring(1);
221
+ }
222
+ }
223
+ if ('incrementBy' in val) {
224
+ isSetValue = true;
225
+ const value = `:${key}IncrementBy`;
226
+ updExpr += ` + ${value}`;
227
+ ret.expressionAttributeValues[value] = val.incrementBy;
228
+ }
229
+ if ('decrementBy' in val) {
230
+ isSetValue = true;
231
+ const value = `:${key}DecrementBy`;
232
+ updExpr += ` - ${value}`;
233
+ ret.expressionAttributeValues[value] = val.decrementBy;
234
+ }
235
+ if ('listAppend' in val) {
236
+ isSetValue = true;
237
+ const listAppend = val.listAppend;
238
+ const path = `#${listAppend.path || key}`;
239
+ const value = `:appendFor${path.substring(1)}`;
240
+ updExpr = `#${key}=list_append(${path}, ${value})`;
241
+ ret.expressionAttributeValues[value] = listAppend.value || listAppend;
242
+ if (!ret.expressionAttributeNames[path]) {
243
+ ret.expressionAttributeNames[path] = path.substring(1);
244
+ }
245
+ }
246
+ if (!isSetValue) {
247
+ ret.expressionAttributeValues[`:${key}`] = val;
248
+ }
249
+ }
250
+ else {
251
+ ret.expressionAttributeValues[`:${key}`] = val;
252
+ }
253
+ updExprList.push(updExpr);
254
+ }
255
+ ret.updateExpression += `SET ${updExprList.join(', ')}`;
256
+ return ret;
257
+ }
258
+ buildUpdateRemoveExpression(inputRemove) {
259
+ const ret = {
260
+ updateExpression: '',
261
+ expressionAttributeNames: {},
262
+ expressionAttributeValues: {},
263
+ };
264
+ const updExprList = [];
265
+ for (const key in inputRemove) {
266
+ const val = inputRemove[key];
267
+ if (!val) {
268
+ continue;
269
+ }
270
+ let updExpr = `#${key}`;
271
+ if (typeof val === 'object' && 'index' in val) {
272
+ updExpr += `[${val.index}]`;
273
+ }
274
+ updExprList.push(updExpr);
275
+ ret.expressionAttributeNames[`#${key}`] = key;
276
+ }
277
+ ret.updateExpression += `REMOVE ${updExprList.join(', ')}`;
278
+ return ret;
279
+ }
280
+ buildUpdateDeleteExpression(inputDelete) {
281
+ const ret = {
282
+ updateExpression: '',
283
+ expressionAttributeNames: {},
284
+ expressionAttributeValues: {},
285
+ };
286
+ const updExprList = [];
287
+ for (const key in inputDelete) {
288
+ const val = inputDelete[key];
289
+ if (typeof val === 'undefined') {
290
+ continue;
291
+ }
292
+ updExprList.push(`#${key} :${key}`);
293
+ ret.expressionAttributeNames[`#${key}`] = key;
294
+ ret.expressionAttributeValues[`:${key}`] = val;
295
+ }
296
+ ret.updateExpression += `DELETE ${updExprList.join(', ')}`;
297
+ return ret;
298
+ }
299
+ getTableName(moduleName, type) {
300
+ let tableName = this.tablePrefix + moduleName;
301
+ if (type) {
302
+ tableName = `${tableName}-${type}`;
303
+ }
304
+ return tableName;
305
+ }
306
+ getModuleName(tableName) {
307
+ const removedPrefix = tableName.substring(this.tablePrefix.length);
308
+ return removedPrefix.substring(0, removedPrefix.lastIndexOf('-'));
309
+ }
310
+ };
311
+ exports.DynamoDbService = DynamoDbService;
312
+ exports.DynamoDbService = DynamoDbService = DynamoDbService_1 = __decorate([
313
+ (0, common_1.Injectable)(),
314
+ __metadata("design:paramtypes", [config_1.ConfigService,
315
+ s3_service_1.S3Service])
316
+ ], DynamoDbService);
317
+ //# sourceMappingURL=dynamodb.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamodb.service.js","sourceRoot":"","sources":["../../src/data-store/dynamodb.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './data-store.module';
2
+ export * from './dynamodb.service';
3
+ export * from './s3.service';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./data-store.module"), exports);
18
+ __exportStar(require("./dynamodb.service"), exports);
19
+ __exportStar(require("./s3.service"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data-store/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,qDAAkC;AAClC,+CAA4B"}
@@ -0,0 +1,16 @@
1
+ import { S3Client } from '@aws-sdk/client-s3';
2
+ import { ConfigService } from '@nestjs/config';
3
+ declare const CLIENT_INSTANCE: unique symbol;
4
+ export declare class S3Service {
5
+ private readonly config;
6
+ private readonly [CLIENT_INSTANCE];
7
+ readonly privateBucket: string;
8
+ constructor(config: ConfigService);
9
+ get client(): S3Client;
10
+ putItem(key: string, item: any): Promise<{
11
+ Bucket: string;
12
+ Key: string;
13
+ }>;
14
+ getItem(key: string): Promise<any>;
15
+ }
16
+ export {};
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.S3Service = void 0;
13
+ const client_s3_1 = require("@aws-sdk/client-s3");
14
+ const common_1 = require("@nestjs/common");
15
+ const config_1 = require("@nestjs/config");
16
+ const CLIENT_INSTANCE = Symbol();
17
+ let S3Service = class S3Service {
18
+ constructor(config) {
19
+ this.config = config;
20
+ this[CLIENT_INSTANCE] = new client_s3_1.S3Client({
21
+ endpoint: config.get('S3_ENDPOINT'),
22
+ region: config.get('S3_REGION'),
23
+ forcePathStyle: true,
24
+ });
25
+ this.privateBucket = config.get('S3_BUCKET_NAME');
26
+ }
27
+ get client() {
28
+ return this[CLIENT_INSTANCE];
29
+ }
30
+ async putItem(key, item) {
31
+ const ret = {
32
+ Bucket: this.privateBucket,
33
+ Key: key,
34
+ };
35
+ await this.client.send(new client_s3_1.PutObjectCommand({
36
+ ...ret,
37
+ Body: JSON.stringify(item),
38
+ }));
39
+ return ret;
40
+ }
41
+ async getItem(key) {
42
+ const result = await this.client.send(new client_s3_1.GetObjectCommand({
43
+ Bucket: this.privateBucket,
44
+ Key: key,
45
+ }));
46
+ const body = await result.Body.transformToString();
47
+ return JSON.parse(body);
48
+ }
49
+ };
50
+ exports.S3Service = S3Service;
51
+ exports.S3Service = S3Service = __decorate([
52
+ (0, common_1.Injectable)(),
53
+ __metadata("design:paramtypes", [config_1.ConfigService])
54
+ ], S3Service);
55
+ //# sourceMappingURL=s3.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3.service.js","sourceRoot":"","sources":["../../src/data-store/s3.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAI2B;AAC3B,2CAA2C;AAC3C,2CAA8C;AAE9C,MAAM,eAAe,GAAG,MAAM,EAAE,CAAA;AAGzB,IAAM,SAAS,GAAf,MAAM,SAAS;IAIpB,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QAChD,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,oBAAQ,CAAC;YACnC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAS,aAAa,CAAC;YAC3C,MAAM,EAAE,MAAM,CAAC,GAAG,CAAS,WAAW,CAAC;YACvC,cAAc,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,GAAG,CAAS,gBAAgB,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,IAAS;QAClC,MAAM,GAAG,GAAG;YACV,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,GAAG,EAAE,GAAG;SACT,CAAA;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,IAAI,4BAAgB,CAAC;YACnB,GAAG,GAAG;YACN,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CACH,CAAA;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACnC,IAAI,4BAAgB,CAAC;YACnB,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,GAAG,EAAE,GAAG;SACT,CAAC,CACH,CAAA;QAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAElD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;CACF,CAAA;AA5CY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;qCAK0B,sBAAa;GAJvC,SAAS,CA4CrB"}
@@ -0,0 +1,7 @@
1
+ import { CanActivate } from '@nestjs/common';
2
+ export declare function Auth(...roles: string[]): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
3
+ export declare function AuthGuard({ guard, roles, }: {
4
+ guard?: CanActivate | Function;
5
+ roles: string[];
6
+ }): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
7
+ export declare function HeaderTenant(): MethodDecorator & ClassDecorator;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HeaderTenant = exports.AuthGuard = exports.Auth = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const swagger_1 = require("@nestjs/swagger");
6
+ const constants_1 = require("../constants");
7
+ const guard_1 = require("../guard");
8
+ const roles_decorator_1 = require("./roles.decorator");
9
+ function Auth(...roles) {
10
+ return AuthGuard({ roles });
11
+ }
12
+ exports.Auth = Auth;
13
+ function AuthGuard({ guard = guard_1.RolesGuard, roles, }) {
14
+ return (0, common_1.applyDecorators)((0, roles_decorator_1.Roles)(...roles), (0, common_1.UseGuards)(guard), (0, swagger_1.ApiBearerAuth)(), (0, swagger_1.ApiUnauthorizedResponse)({
15
+ description: 'Request unauthorized',
16
+ }));
17
+ }
18
+ exports.AuthGuard = AuthGuard;
19
+ function HeaderTenant() {
20
+ return (0, swagger_1.ApiHeader)({
21
+ name: constants_1.HEADER_TENANT_CODE,
22
+ description: 'current working tenant code',
23
+ required: true,
24
+ allowEmptyValue: false,
25
+ example: 'common',
26
+ });
27
+ }
28
+ exports.HeaderTenant = HeaderTenant;
29
+ //# sourceMappingURL=auth.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.decorator.js","sourceRoot":"","sources":["../../src/decorators/auth.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwE;AACxE,6CAIwB;AAExB,4CAAiD;AACjD,oCAAqC;AACrC,uDAAyC;AAEzC,SAAgB,IAAI,CAAC,GAAG,KAAe;IACrC,OAAO,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;AAC7B,CAAC;AAFD,oBAEC;AAED,SAAgB,SAAS,CAAC,EACxB,KAAK,GAAG,kBAAU,EAClB,KAAK,GAKN;IACC,OAAO,IAAA,wBAAe,EACpB,IAAA,uBAAK,EAAC,GAAG,KAAK,CAAC,EACf,IAAA,kBAAS,EAAC,KAAK,CAAC,EAChB,IAAA,uBAAa,GAAE,EACf,IAAA,iCAAuB,EAAC;QACtB,WAAW,EAAE,sBAAsB;KACpC,CAAC,CACH,CAAA;AACH,CAAC;AAhBD,8BAgBC;AAED,SAAgB,YAAY;IAC1B,OAAO,IAAA,mBAAS,EAAC;QACf,IAAI,EAAE,8BAAkB;QACxB,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,IAAI;QACd,eAAe,EAAE,KAAK;QACtB,OAAO,EAAE,QAAQ;KAClB,CAAC,CAAA;AACJ,CAAC;AARD,oCAQC"}
@@ -0,0 +1,5 @@
1
+ export declare const EVENT_METADATA = "__event__";
2
+ export declare const EVENT_HANDLER_METADATA = "__eventHandler__";
3
+ export declare const EVENT_FACTORY_METADATA = "__eventFactory__";
4
+ export declare const DATA_SYNC_HANDLER_METADATA = "__dataSyncHandler__";
5
+ export declare const ROLE_METADATA = "__allowedRoles__";
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ROLE_METADATA = exports.DATA_SYNC_HANDLER_METADATA = exports.EVENT_FACTORY_METADATA = exports.EVENT_HANDLER_METADATA = exports.EVENT_METADATA = void 0;
4
+ exports.EVENT_METADATA = '__event__';
5
+ exports.EVENT_HANDLER_METADATA = '__eventHandler__';
6
+ exports.EVENT_FACTORY_METADATA = '__eventFactory__';
7
+ exports.DATA_SYNC_HANDLER_METADATA = '__dataSyncHandler__';
8
+ exports.ROLE_METADATA = '__allowedRoles__';
9
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/decorators/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,WAAW,CAAA;AAC5B,QAAA,sBAAsB,GAAG,kBAAkB,CAAA;AAC3C,QAAA,sBAAsB,GAAG,kBAAkB,CAAA;AAC3C,QAAA,0BAA0B,GAAG,qBAAqB,CAAA;AAClD,QAAA,aAAa,GAAG,kBAAkB,CAAA"}
@@ -0,0 +1 @@
1
+ export declare const INVOKE_CONTEXT: (...dataOrPipes: unknown[]) => ParameterDecorator;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.INVOKE_CONTEXT = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const context_1 = require("../context");
6
+ exports.INVOKE_CONTEXT = (0, common_1.createParamDecorator)((_data, ctx) => {
7
+ return (0, context_1.extractInvokeContext)(ctx);
8
+ });
9
+ //# sourceMappingURL=context.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.decorator.js","sourceRoot":"","sources":["../../src/decorators/context.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAuE;AAEvE,wCAAiD;AAEpC,QAAA,cAAc,GAAG,IAAA,6BAAoB,EAChD,CAAC,KAAc,EAAE,GAAqB,EAAE,EAAE;IACxC,OAAO,IAAA,8BAAoB,EAAC,GAAG,CAAC,CAAA;AAClC,CAAC,CACF,CAAA"}