@revisium/core 2.2.0 → 2.3.0-alpha.2

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 (285) hide show
  1. package/dist/package.json +16 -7
  2. package/dist/src/api/graphql-api/branch/model/branch.model.js +2 -1
  3. package/dist/src/api/graphql-api/branch/model/branch.model.js.map +1 -1
  4. package/dist/src/api/graphql-api/branch/parent-branch.resolver.d.ts +15 -2
  5. package/dist/src/api/graphql-api/branch/parent-branch.resolver.js +6 -4
  6. package/dist/src/api/graphql-api/branch/parent-branch.resolver.js.map +1 -1
  7. package/dist/src/api/graphql-api/draft/input/create-row.input.js +2 -2
  8. package/dist/src/api/graphql-api/draft/input/create-row.input.js.map +1 -1
  9. package/dist/src/api/graphql-api/draft/input/create-table.input.js +2 -2
  10. package/dist/src/api/graphql-api/draft/input/create-table.input.js.map +1 -1
  11. package/dist/src/api/graphql-api/draft/input/patch-row.input.js +2 -2
  12. package/dist/src/api/graphql-api/draft/input/patch-row.input.js.map +1 -1
  13. package/dist/src/api/graphql-api/draft/input/update-row.input.js +2 -2
  14. package/dist/src/api/graphql-api/draft/input/update-row.input.js.map +1 -1
  15. package/dist/src/api/graphql-api/draft/input/update-table.input.js +2 -2
  16. package/dist/src/api/graphql-api/draft/input/update-table.input.js.map +1 -1
  17. package/dist/src/api/graphql-api/endpoint/model/endpoint.model.js +2 -1
  18. package/dist/src/api/graphql-api/endpoint/model/endpoint.model.js.map +1 -1
  19. package/dist/src/api/graphql-api/graphql-api.module.js +2 -2
  20. package/dist/src/api/graphql-api/graphql-api.module.js.map +1 -1
  21. package/dist/src/api/graphql-api/project/model/project.model.js +2 -1
  22. package/dist/src/api/graphql-api/project/model/project.model.js.map +1 -1
  23. package/dist/src/api/graphql-api/revision/child-branch.resolver.d.ts +15 -2
  24. package/dist/src/api/graphql-api/revision/child-branch.resolver.js +6 -4
  25. package/dist/src/api/graphql-api/revision/child-branch.resolver.js.map +1 -1
  26. package/dist/src/api/graphql-api/revision/model/revision.model.js +2 -1
  27. package/dist/src/api/graphql-api/revision/model/revision.model.js.map +1 -1
  28. package/dist/src/api/graphql-api/revision/revision.resolver.d.ts +15 -2
  29. package/dist/src/api/graphql-api/revision/revision.resolver.js +6 -4
  30. package/dist/src/api/graphql-api/revision/revision.resolver.js.map +1 -1
  31. package/dist/src/api/graphql-api/row/inputs/get-rows.input.js +5 -5
  32. package/dist/src/api/graphql-api/row/inputs/get-rows.input.js.map +1 -1
  33. package/dist/src/api/graphql-api/row/model/row.model.js +5 -5
  34. package/dist/src/api/graphql-api/row/model/row.model.js.map +1 -1
  35. package/dist/src/api/graphql-api/row/row.resolver.js +7 -3
  36. package/dist/src/api/graphql-api/row/row.resolver.js.map +1 -1
  37. package/dist/src/api/graphql-api/table/model/table.model.js +4 -4
  38. package/dist/src/api/graphql-api/table/model/table.model.js.map +1 -1
  39. package/dist/src/api/rest-api/revision/revision-by-id.controller.js +1 -1
  40. package/dist/src/api/rest-api/revision/revision-by-id.controller.js.map +1 -1
  41. package/dist/src/api/rest-api/row/row-by-id.controller.d.ts +2 -3
  42. package/dist/src/api/rest-api/row/row-by-id.controller.js +2 -4
  43. package/dist/src/api/rest-api/row/row-by-id.controller.js.map +1 -1
  44. package/dist/src/core/core.module.js +2 -0
  45. package/dist/src/core/core.module.js.map +1 -1
  46. package/dist/src/features/auth/auth.module.js +3 -1
  47. package/dist/src/features/auth/auth.module.js.map +1 -1
  48. package/dist/src/features/auth/casl-ability.factory.d.ts +3 -1
  49. package/dist/src/features/auth/casl-ability.factory.js +6 -3
  50. package/dist/src/features/auth/casl-ability.factory.js.map +1 -1
  51. package/dist/src/features/auth/commands/auth-api.service.d.ts +11 -0
  52. package/dist/src/features/auth/commands/auth-api.service.js +44 -0
  53. package/dist/src/features/auth/commands/auth-api.service.js.map +1 -0
  54. package/dist/src/features/auth/commands/handlers/check-organization-permission.handler.d.ts +2 -2
  55. package/dist/src/features/auth/commands/handlers/check-organization-permission.handler.js.map +1 -1
  56. package/dist/src/features/auth/commands/handlers/check-project-permission.handler.d.ts +2 -2
  57. package/dist/src/features/auth/commands/handlers/check-project-permission.handler.js.map +1 -1
  58. package/dist/src/features/auth/commands/impl/check-organization-permission.command.d.ts +2 -0
  59. package/dist/src/features/auth/commands/impl/check-project-permission.command.d.ts +2 -0
  60. package/dist/src/features/auth/commands/impl/check-system-permission.command.d.ts +1 -0
  61. package/dist/src/features/auth/guards/base-persmission.guard.d.ts +4 -2
  62. package/dist/src/features/auth/guards/base-persmission.guard.js +6 -4
  63. package/dist/src/features/auth/guards/base-persmission.guard.js.map +1 -1
  64. package/dist/src/features/auth/guards/organization.guard.d.ts +2 -3
  65. package/dist/src/features/auth/guards/organization.guard.js +2 -3
  66. package/dist/src/features/auth/guards/organization.guard.js.map +1 -1
  67. package/dist/src/features/auth/guards/project.guard.d.ts +29 -3
  68. package/dist/src/features/auth/guards/project.guard.js +11 -8
  69. package/dist/src/features/auth/guards/project.guard.js.map +1 -1
  70. package/dist/src/features/auth/guards/system.guard.d.ts +1 -2
  71. package/dist/src/features/auth/guards/system.guard.js +2 -3
  72. package/dist/src/features/auth/guards/system.guard.js.map +1 -1
  73. package/dist/src/features/draft/commands/handlers/__tests__/utils.d.ts +2 -0
  74. package/dist/src/features/draft/commands/handlers/__tests__/utils.js +8 -0
  75. package/dist/src/features/draft/commands/handlers/__tests__/utils.js.map +1 -1
  76. package/dist/src/features/draft/commands/handlers/api-base-row.handler.d.ts +2 -1
  77. package/dist/src/features/draft/commands/handlers/api-base-row.handler.js +2 -1
  78. package/dist/src/features/draft/commands/handlers/api-base-row.handler.js.map +1 -1
  79. package/dist/src/features/draft/commands/handlers/api-create-revision.handler.d.ts +16 -4
  80. package/dist/src/features/draft/commands/handlers/api-create-revision.handler.js +6 -6
  81. package/dist/src/features/draft/commands/handlers/api-create-revision.handler.js.map +1 -1
  82. package/dist/src/features/draft/commands/handlers/api-create-row.handler.js +1 -0
  83. package/dist/src/features/draft/commands/handlers/api-create-row.handler.js.map +1 -1
  84. package/dist/src/features/draft/commands/handlers/api-patch-row.handler.js +1 -0
  85. package/dist/src/features/draft/commands/handlers/api-patch-row.handler.js.map +1 -1
  86. package/dist/src/features/draft/commands/handlers/api-rename-row.handler.js +1 -0
  87. package/dist/src/features/draft/commands/handlers/api-rename-row.handler.js.map +1 -1
  88. package/dist/src/features/draft/commands/handlers/api-update-row.handler.js +1 -0
  89. package/dist/src/features/draft/commands/handlers/api-update-row.handler.js.map +1 -1
  90. package/dist/src/features/draft/commands/handlers/api-upload-file.handler.js +1 -0
  91. package/dist/src/features/draft/commands/handlers/api-upload-file.handler.js.map +1 -1
  92. package/dist/src/features/draft/commands/handlers/create-revision.handler.d.ts +13 -6
  93. package/dist/src/features/draft/commands/handlers/create-revision.handler.js +17 -2
  94. package/dist/src/features/draft/commands/handlers/create-revision.handler.js.map +1 -1
  95. package/dist/src/features/draft/commands/handlers/create-row.handler.d.ts +4 -2
  96. package/dist/src/features/draft/commands/handlers/create-row.handler.js +9 -1
  97. package/dist/src/features/draft/commands/handlers/create-row.handler.js.map +1 -1
  98. package/dist/src/features/draft/commands/handlers/patch-row.handler.d.ts +4 -2
  99. package/dist/src/features/draft/commands/handlers/patch-row.handler.js +9 -1
  100. package/dist/src/features/draft/commands/handlers/patch-row.handler.js.map +1 -1
  101. package/dist/src/features/draft/commands/handlers/remove-row.handler.d.ts +4 -1
  102. package/dist/src/features/draft/commands/handlers/remove-row.handler.js +9 -1
  103. package/dist/src/features/draft/commands/handlers/remove-row.handler.js.map +1 -1
  104. package/dist/src/features/draft/commands/handlers/remove-table.handler.d.ts +4 -2
  105. package/dist/src/features/draft/commands/handlers/remove-table.handler.js +9 -1
  106. package/dist/src/features/draft/commands/handlers/remove-table.handler.js.map +1 -1
  107. package/dist/src/features/draft/commands/handlers/rename-table.handler.d.ts +4 -2
  108. package/dist/src/features/draft/commands/handlers/rename-table.handler.js +9 -1
  109. package/dist/src/features/draft/commands/handlers/rename-table.handler.js.map +1 -1
  110. package/dist/src/features/draft/commands/handlers/revert-changes.handler.d.ts +4 -1
  111. package/dist/src/features/draft/commands/handlers/revert-changes.handler.js +10 -2
  112. package/dist/src/features/draft/commands/handlers/revert-changes.handler.js.map +1 -1
  113. package/dist/src/features/draft/commands/handlers/transactional/internal-rename-row.handler.d.ts +4 -2
  114. package/dist/src/features/draft/commands/handlers/transactional/internal-rename-row.handler.js +10 -2
  115. package/dist/src/features/draft/commands/handlers/transactional/internal-rename-row.handler.js.map +1 -1
  116. package/dist/src/features/draft/commands/handlers/transactional/internal-update-row.handler.d.ts +4 -1
  117. package/dist/src/features/draft/commands/handlers/transactional/internal-update-row.handler.js +10 -2
  118. package/dist/src/features/draft/commands/handlers/transactional/internal-update-row.handler.js.map +1 -1
  119. package/dist/src/features/draft/commands/handlers/transactional/resolve-draft-revision.handler.d.ts +5 -1
  120. package/dist/src/features/draft/commands/handlers/transactional/resolve-draft-revision.handler.js +32 -18
  121. package/dist/src/features/draft/commands/handlers/transactional/resolve-draft-revision.handler.js.map +1 -1
  122. package/dist/src/features/draft/commands/handlers/update-table.handler.d.ts +4 -2
  123. package/dist/src/features/draft/commands/handlers/update-table.handler.js +9 -1
  124. package/dist/src/features/draft/commands/handlers/update-table.handler.js.map +1 -1
  125. package/dist/src/features/draft/commands/types/create-revision.handler.types.d.ts +2 -0
  126. package/dist/src/features/draft/draft.handler.d.ts +1 -1
  127. package/dist/src/features/draft/draft.module.js +2 -0
  128. package/dist/src/features/draft/draft.module.js.map +1 -1
  129. package/dist/src/features/revision/index.d.ts +2 -0
  130. package/dist/src/{utils/prisma-sql-generator → features/revision}/index.js +2 -5
  131. package/dist/src/features/revision/index.js.map +1 -0
  132. package/dist/src/features/revision/internal-revisions-api.service.d.ts +19 -0
  133. package/dist/src/features/revision/internal-revisions-api.service.js +32 -0
  134. package/dist/src/features/revision/internal-revisions-api.service.js.map +1 -0
  135. package/dist/src/features/revision/queries/impl/get-revision.query.d.ts +1 -0
  136. package/dist/src/features/revision/revision.module.js +6 -1
  137. package/dist/src/features/revision/revision.module.js.map +1 -1
  138. package/dist/src/features/revision/revisions-api.service.d.ts +19 -5
  139. package/dist/src/features/revision/revisions-api.service.js +11 -6
  140. package/dist/src/features/revision/revisions-api.service.js.map +1 -1
  141. package/dist/src/features/row/index.d.ts +2 -0
  142. package/dist/src/features/row/index.js +19 -0
  143. package/dist/src/features/row/index.js.map +1 -0
  144. package/dist/src/features/row/internal-row-api.service.d.ts +13 -0
  145. package/dist/src/features/row/internal-row-api.service.js +47 -0
  146. package/dist/src/features/row/internal-row-api.service.js.map +1 -0
  147. package/dist/src/features/row/queries/handlers/get-rows.handler.d.ts +2 -4
  148. package/dist/src/features/row/queries/handlers/get-rows.handler.js +9 -29
  149. package/dist/src/features/row/queries/handlers/get-rows.handler.js.map +1 -1
  150. package/dist/src/features/row/queries/impl/get-row-by-id.query.d.ts +2 -0
  151. package/dist/src/features/row/queries/impl/get-row-by-id.query.js.map +1 -1
  152. package/dist/src/features/row/queries/impl/get-rows.query.d.ts +3 -3
  153. package/dist/src/features/row/queries/impl/get-rows.query.js.map +1 -1
  154. package/dist/src/features/row/row-api.service.d.ts +13 -9
  155. package/dist/src/features/row/row-api.service.js +27 -14
  156. package/dist/src/features/row/row-api.service.js.map +1 -1
  157. package/dist/src/features/row/row.module.js +2 -1
  158. package/dist/src/features/row/row.module.js.map +1 -1
  159. package/dist/src/features/row/utils/get-rows-sql.d.ts +5 -0
  160. package/dist/src/features/row/utils/get-rows-sql.js +70 -0
  161. package/dist/src/features/row/utils/get-rows-sql.js.map +1 -0
  162. package/dist/src/infrastructure/cache/constants/auth-cache.constants.d.ts +18 -0
  163. package/dist/src/infrastructure/cache/constants/auth-cache.constants.js +22 -0
  164. package/dist/src/infrastructure/cache/constants/auth-cache.constants.js.map +1 -0
  165. package/dist/src/infrastructure/cache/constants/revision-cache.constants.d.ts +10 -0
  166. package/dist/src/infrastructure/cache/constants/revision-cache.constants.js +14 -0
  167. package/dist/src/infrastructure/cache/constants/revision-cache.constants.js.map +1 -0
  168. package/dist/src/infrastructure/cache/constants/row-cache.constants.d.ts +13 -0
  169. package/dist/src/infrastructure/cache/constants/row-cache.constants.js +17 -0
  170. package/dist/src/infrastructure/cache/constants/row-cache.constants.js.map +1 -0
  171. package/dist/src/infrastructure/cache/events/base.event.d.ts +4 -0
  172. package/dist/src/infrastructure/cache/events/base.event.js +10 -0
  173. package/dist/src/infrastructure/cache/events/base.event.js.map +1 -0
  174. package/dist/src/infrastructure/cache/events/index.d.ts +10 -0
  175. package/dist/src/infrastructure/cache/events/index.js +27 -0
  176. package/dist/src/infrastructure/cache/events/index.js.map +1 -0
  177. package/dist/src/infrastructure/cache/events/revision/revision-committed.event.d.ts +6 -0
  178. package/dist/src/infrastructure/cache/events/revision/revision-committed.event.js +13 -0
  179. package/dist/src/infrastructure/cache/events/revision/revision-committed.event.js.map +1 -0
  180. package/dist/src/infrastructure/cache/events/revision/revision-reverted.event.d.ts +5 -0
  181. package/dist/src/infrastructure/cache/events/revision/revision-reverted.event.js +12 -0
  182. package/dist/src/infrastructure/cache/events/revision/revision-reverted.event.js.map +1 -0
  183. package/dist/src/infrastructure/cache/events/row/row-created.event.d.ts +7 -0
  184. package/dist/src/infrastructure/cache/events/row/row-created.event.js +14 -0
  185. package/dist/src/infrastructure/cache/events/row/row-created.event.js.map +1 -0
  186. package/dist/src/infrastructure/cache/events/row/row-deleted.event.d.ts +7 -0
  187. package/dist/src/infrastructure/cache/events/row/row-deleted.event.js +14 -0
  188. package/dist/src/infrastructure/cache/events/row/row-deleted.event.js.map +1 -0
  189. package/dist/src/infrastructure/cache/events/row/row-renamed.event.d.ts +8 -0
  190. package/dist/src/infrastructure/cache/events/row/row-renamed.event.js +15 -0
  191. package/dist/src/infrastructure/cache/events/row/row-renamed.event.js.map +1 -0
  192. package/dist/src/infrastructure/cache/events/row/row-updated.event.d.ts +7 -0
  193. package/dist/src/infrastructure/cache/events/row/row-updated.event.js +14 -0
  194. package/dist/src/infrastructure/cache/events/row/row-updated.event.js.map +1 -0
  195. package/dist/src/infrastructure/cache/events/table/table-deleted.event.d.ts +6 -0
  196. package/dist/src/infrastructure/cache/events/table/table-deleted.event.js +13 -0
  197. package/dist/src/infrastructure/cache/events/table/table-deleted.event.js.map +1 -0
  198. package/dist/src/infrastructure/cache/events/table/table-renamed.event.d.ts +7 -0
  199. package/dist/src/infrastructure/cache/events/table/table-renamed.event.js +14 -0
  200. package/dist/src/infrastructure/cache/events/table/table-renamed.event.js.map +1 -0
  201. package/dist/src/infrastructure/cache/events/table/table-schema-updated.event.d.ts +6 -0
  202. package/dist/src/infrastructure/cache/events/table/table-schema-updated.event.js +13 -0
  203. package/dist/src/infrastructure/cache/events/table/table-schema-updated.event.js.map +1 -0
  204. package/dist/src/infrastructure/cache/handlers/index.d.ts +10 -0
  205. package/dist/src/infrastructure/cache/handlers/index.js +24 -0
  206. package/dist/src/infrastructure/cache/handlers/index.js.map +1 -0
  207. package/dist/src/infrastructure/cache/handlers/revision/revision-committed.handler.d.ts +8 -0
  208. package/dist/src/infrastructure/cache/handlers/revision/revision-committed.handler.js +32 -0
  209. package/dist/src/infrastructure/cache/handlers/revision/revision-committed.handler.js.map +1 -0
  210. package/dist/src/infrastructure/cache/handlers/revision/revision-reverted.handler.d.ts +8 -0
  211. package/dist/src/infrastructure/cache/handlers/revision/revision-reverted.handler.js +29 -0
  212. package/dist/src/infrastructure/cache/handlers/revision/revision-reverted.handler.js.map +1 -0
  213. package/dist/src/infrastructure/cache/handlers/row/row-created.handler.d.ts +8 -0
  214. package/dist/src/infrastructure/cache/handlers/row/row-created.handler.js +29 -0
  215. package/dist/src/infrastructure/cache/handlers/row/row-created.handler.js.map +1 -0
  216. package/dist/src/infrastructure/cache/handlers/row/row-deleted.handler.d.ts +8 -0
  217. package/dist/src/infrastructure/cache/handlers/row/row-deleted.handler.js +30 -0
  218. package/dist/src/infrastructure/cache/handlers/row/row-deleted.handler.js.map +1 -0
  219. package/dist/src/infrastructure/cache/handlers/row/row-renamed.handler.d.ts +8 -0
  220. package/dist/src/infrastructure/cache/handlers/row/row-renamed.handler.js +34 -0
  221. package/dist/src/infrastructure/cache/handlers/row/row-renamed.handler.js.map +1 -0
  222. package/dist/src/infrastructure/cache/handlers/row/row-updated.handler.d.ts +8 -0
  223. package/dist/src/infrastructure/cache/handlers/row/row-updated.handler.js +30 -0
  224. package/dist/src/infrastructure/cache/handlers/row/row-updated.handler.js.map +1 -0
  225. package/dist/src/infrastructure/cache/handlers/table/table-deleted.handler.d.ts +8 -0
  226. package/dist/src/infrastructure/cache/handlers/table/table-deleted.handler.js +29 -0
  227. package/dist/src/infrastructure/cache/handlers/table/table-deleted.handler.js.map +1 -0
  228. package/dist/src/infrastructure/cache/handlers/table/table-renamed.handler.d.ts +8 -0
  229. package/dist/src/infrastructure/cache/handlers/table/table-renamed.handler.js +32 -0
  230. package/dist/src/infrastructure/cache/handlers/table/table-renamed.handler.js.map +1 -0
  231. package/dist/src/infrastructure/cache/handlers/table/table-schema-updated.handler.d.ts +8 -0
  232. package/dist/src/infrastructure/cache/handlers/table/table-schema-updated.handler.js +29 -0
  233. package/dist/src/infrastructure/cache/handlers/table/table-schema-updated.handler.js.map +1 -0
  234. package/dist/src/infrastructure/cache/index.d.ts +7 -0
  235. package/dist/src/infrastructure/cache/index.js +24 -0
  236. package/dist/src/infrastructure/cache/index.js.map +1 -0
  237. package/dist/src/infrastructure/cache/pg-bus/pg-bus.driver.d.ts +37 -0
  238. package/dist/src/infrastructure/cache/pg-bus/pg-bus.driver.js +228 -0
  239. package/dist/src/infrastructure/cache/pg-bus/pg-bus.driver.js.map +1 -0
  240. package/dist/src/infrastructure/cache/revisium-cache.module.d.ts +4 -0
  241. package/dist/src/infrastructure/cache/revisium-cache.module.js +140 -0
  242. package/dist/src/infrastructure/cache/revisium-cache.module.js.map +1 -0
  243. package/dist/src/infrastructure/cache/services/auth-cache.service.d.ts +22 -0
  244. package/dist/src/infrastructure/cache/services/auth-cache.service.js +112 -0
  245. package/dist/src/infrastructure/cache/services/auth-cache.service.js.map +1 -0
  246. package/dist/src/infrastructure/cache/services/cache.service.d.ts +11 -0
  247. package/dist/src/infrastructure/cache/services/cache.service.js +38 -0
  248. package/dist/src/infrastructure/cache/services/cache.service.js.map +1 -0
  249. package/dist/src/infrastructure/cache/services/cache.tokens.d.ts +1 -0
  250. package/dist/src/infrastructure/cache/services/cache.tokens.js +5 -0
  251. package/dist/src/infrastructure/cache/services/cache.tokens.js.map +1 -0
  252. package/dist/src/infrastructure/cache/services/noop-cache.service.d.ts +6 -0
  253. package/dist/src/infrastructure/cache/services/noop-cache.service.js +24 -0
  254. package/dist/src/infrastructure/cache/services/noop-cache.service.js.map +1 -0
  255. package/dist/src/infrastructure/cache/services/revision-cache.service.d.ts +10 -0
  256. package/dist/src/infrastructure/cache/services/revision-cache.service.js +39 -0
  257. package/dist/src/infrastructure/cache/services/revision-cache.service.js.map +1 -0
  258. package/dist/src/infrastructure/cache/services/row-cache.service.d.ts +26 -0
  259. package/dist/src/infrastructure/cache/services/row-cache.service.js +68 -0
  260. package/dist/src/infrastructure/cache/services/row-cache.service.js.map +1 -0
  261. package/dist/src/utils/utils/parse-bool.d.ts +1 -0
  262. package/dist/src/utils/utils/parse-bool.js +10 -0
  263. package/dist/src/utils/utils/parse-bool.js.map +1 -0
  264. package/dist/src/utils/utils/stable-cache-key.d.ts +12 -0
  265. package/dist/src/utils/utils/stable-cache-key.js +46 -0
  266. package/dist/src/utils/utils/stable-cache-key.js.map +1 -0
  267. package/dist/tsconfig.build.tsbuildinfo +1 -1
  268. package/package.json +16 -7
  269. package/dist/src/utils/prisma-sql-generator/__tests__/shared-helpers.d.ts +0 -16
  270. package/dist/src/utils/prisma-sql-generator/__tests__/shared-helpers.js +0 -70
  271. package/dist/src/utils/prisma-sql-generator/__tests__/shared-helpers.js.map +0 -1
  272. package/dist/src/utils/prisma-sql-generator/__tests__/test-helpers.d.ts +0 -52
  273. package/dist/src/utils/prisma-sql-generator/__tests__/test-helpers.js +0 -531
  274. package/dist/src/utils/prisma-sql-generator/__tests__/test-helpers.js.map +0 -1
  275. package/dist/src/utils/prisma-sql-generator/index.d.ts +0 -2
  276. package/dist/src/utils/prisma-sql-generator/index.js.map +0 -1
  277. package/dist/src/utils/prisma-sql-generator/json-path.d.ts +0 -14
  278. package/dist/src/utils/prisma-sql-generator/json-path.js +0 -121
  279. package/dist/src/utils/prisma-sql-generator/json-path.js.map +0 -1
  280. package/dist/src/utils/prisma-sql-generator/types.d.ts +0 -105
  281. package/dist/src/utils/prisma-sql-generator/types.js +0 -3
  282. package/dist/src/utils/prisma-sql-generator/types.js.map +0 -1
  283. package/dist/src/utils/prisma-sql-generator/where-generator.prisma.d.ts +0 -21
  284. package/dist/src/utils/prisma-sql-generator/where-generator.prisma.js +0 -499
  285. package/dist/src/utils/prisma-sql-generator/where-generator.prisma.js.map +0 -1
@@ -0,0 +1,29 @@
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.TableSchemaUpdatedEventHandler = void 0;
13
+ const cqrs_1 = require("@nestjs/cqrs");
14
+ const events_1 = require("../../events");
15
+ const row_cache_service_1 = require("../../services/row-cache.service");
16
+ let TableSchemaUpdatedEventHandler = class TableSchemaUpdatedEventHandler {
17
+ constructor(rowCache) {
18
+ this.rowCache = rowCache;
19
+ }
20
+ async handle(event) {
21
+ await this.rowCache.invalidateTableRelatives(event);
22
+ }
23
+ };
24
+ exports.TableSchemaUpdatedEventHandler = TableSchemaUpdatedEventHandler;
25
+ exports.TableSchemaUpdatedEventHandler = TableSchemaUpdatedEventHandler = __decorate([
26
+ (0, cqrs_1.EventsHandler)(events_1.TableSchemaUpdatedEvent),
27
+ __metadata("design:paramtypes", [row_cache_service_1.RowCacheService])
28
+ ], TableSchemaUpdatedEventHandler);
29
+ //# sourceMappingURL=table-schema-updated.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-schema-updated.handler.js","sourceRoot":"","sources":["../../../../../../src/infrastructure/cache/handlers/table/table-schema-updated.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAA4D;AAC5D,yCAA0E;AAC1E,wEAAsF;AAG/E,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IAGzC,YAA6B,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAG,CAAC;IAE1D,KAAK,CAAC,MAAM,CAAC,KAA8B;QACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;CACF,CAAA;AARY,wEAA8B;yCAA9B,8BAA8B;IAD1C,IAAA,oBAAa,EAAC,gCAAuB,CAAC;qCAIE,mCAAe;GAH3C,8BAA8B,CAQ1C"}
@@ -0,0 +1,7 @@
1
+ export * from './revisium-cache.module';
2
+ export * from './services/cache.service';
3
+ export * from './services/row-cache.service';
4
+ export * from './services/revision-cache.service';
5
+ export * from './services/auth-cache.service';
6
+ export * from './events';
7
+ export * from './handlers';
@@ -0,0 +1,24 @@
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("./revisium-cache.module"), exports);
18
+ __exportStar(require("./services/cache.service"), exports);
19
+ __exportStar(require("./services/row-cache.service"), exports);
20
+ __exportStar(require("./services/revision-cache.service"), exports);
21
+ __exportStar(require("./services/auth-cache.service"), exports);
22
+ __exportStar(require("./events"), exports);
23
+ __exportStar(require("./handlers"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/infrastructure/cache/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,2DAAyC;AACzC,+DAA6C;AAC7C,oEAAkD;AAClD,gEAA8C;AAC9C,2CAAyB;AACzB,6CAA2B"}
@@ -0,0 +1,37 @@
1
+ import { BusDriver, BusOptions, CacheBusMessage, CreateBusDriverResult } from 'bentocache/types';
2
+ export type PgBusDriverOptions = {
3
+ connectionString: string;
4
+ applicationName?: string;
5
+ reconnectDelayMs?: number;
6
+ log?: Pick<Console, 'log' | 'warn' | 'error'>;
7
+ debug?: boolean;
8
+ };
9
+ export declare class PgBusDriver implements BusDriver {
10
+ private listener?;
11
+ private publisher;
12
+ private handlers;
13
+ private reconnectCallbacks;
14
+ private connecting;
15
+ private destroyed;
16
+ private connectingPromise?;
17
+ private id?;
18
+ setId: (id: string) => this;
19
+ private readonly cs;
20
+ private readonly app;
21
+ private readonly delay;
22
+ private readonly log;
23
+ private readonly debug;
24
+ constructor(opts: PgBusDriverOptions);
25
+ publish(channel: string, message: CacheBusMessage): Promise<void>;
26
+ subscribe(channel: string, handler: (m: CacheBusMessage) => void): Promise<void>;
27
+ unsubscribe(channel: string): Promise<void>;
28
+ disconnect(): Promise<void>;
29
+ onReconnect(cb: () => void): void;
30
+ private assertChannel;
31
+ private ensureConnected;
32
+ private listen;
33
+ private onNotification;
34
+ private reconnectSoon;
35
+ private sleep;
36
+ }
37
+ export declare function pgBusDriver(opts: PgBusDriverOptions, busOptions?: BusOptions): CreateBusDriverResult;
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PgBusDriver = void 0;
4
+ exports.pgBusDriver = pgBusDriver;
5
+ const pg_1 = require("pg");
6
+ const CHANNEL_NAME_RE = /^[a-z_][a-z0-9_$.:]{0,62}$/i;
7
+ const MAX_PAYLOAD_BYTES = 8000;
8
+ function escapeIdentifier(str) {
9
+ return '"' + str.replace(/"/g, '""') + '"';
10
+ }
11
+ class PgBusDriver {
12
+ constructor(opts) {
13
+ this.handlers = new Map();
14
+ this.reconnectCallbacks = [];
15
+ this.connecting = false;
16
+ this.destroyed = false;
17
+ this.setId = (id) => {
18
+ this.id = id;
19
+ return this;
20
+ };
21
+ this.cs = opts.connectionString;
22
+ this.app = opts.applicationName ?? 'pg-bus';
23
+ this.delay = opts.reconnectDelayMs ?? 1000;
24
+ this.log = opts.log ?? console;
25
+ this.debug = opts.debug ?? false;
26
+ this.publisher = new pg_1.Pool({
27
+ connectionString: this.cs,
28
+ application_name: `${this.app}:pub`,
29
+ });
30
+ }
31
+ async publish(channel, message) {
32
+ this.assertChannel(channel);
33
+ if (!this.id) {
34
+ throw new Error('You must set an id before publishing a message');
35
+ }
36
+ const wrappedMessage = {
37
+ payload: message ?? {},
38
+ busId: this.id,
39
+ };
40
+ const payload = JSON.stringify(wrappedMessage);
41
+ const bytes = Buffer.byteLength(payload, 'utf8');
42
+ if (bytes > MAX_PAYLOAD_BYTES) {
43
+ throw new Error(`NOTIFY payload too large: ${bytes} > ${MAX_PAYLOAD_BYTES}`);
44
+ }
45
+ await this.publisher.query('SELECT pg_notify($1::text, $2::text)', [
46
+ channel,
47
+ payload,
48
+ ]);
49
+ }
50
+ async subscribe(channel, handler) {
51
+ this.assertChannel(channel);
52
+ this.handlers.set(channel, handler);
53
+ await this.ensureConnected();
54
+ if (this.handlers.get(channel) !== handler)
55
+ return;
56
+ await this.listen(channel);
57
+ }
58
+ async unsubscribe(channel) {
59
+ this.handlers.delete(channel);
60
+ if (!this.listener)
61
+ return;
62
+ try {
63
+ this.assertChannel(channel);
64
+ await this.listener.query(`UNLISTEN ${escapeIdentifier(channel)}`);
65
+ }
66
+ catch (e) {
67
+ this.log.warn('[pg-bus] failed to UNLISTEN:', e);
68
+ }
69
+ }
70
+ async disconnect() {
71
+ this.destroyed = true;
72
+ if (this.listener) {
73
+ try {
74
+ await this.listener.query('UNLISTEN *');
75
+ }
76
+ catch (e) {
77
+ this.log.warn('[pg-bus] failed to UNLISTEN * on disconnect:', e);
78
+ }
79
+ try {
80
+ await this.listener.end();
81
+ }
82
+ catch (e) {
83
+ this.log.warn('[pg-bus] failed to close listener connection:', e);
84
+ }
85
+ this.listener = undefined;
86
+ }
87
+ try {
88
+ await this.publisher.end();
89
+ }
90
+ catch (e) {
91
+ this.log.warn('[pg-bus] failed to close publisher pool:', e);
92
+ }
93
+ }
94
+ onReconnect(cb) {
95
+ this.reconnectCallbacks.push(cb);
96
+ }
97
+ assertChannel(name) {
98
+ if (!CHANNEL_NAME_RE.test(name)) {
99
+ throw new Error(`Invalid channel "${name}"`);
100
+ }
101
+ }
102
+ async ensureConnected() {
103
+ if (this.listener || this.destroyed)
104
+ return;
105
+ if (this.connecting && this.connectingPromise) {
106
+ await this.connectingPromise;
107
+ return;
108
+ }
109
+ this.connecting = true;
110
+ this.connectingPromise = (async () => {
111
+ const client = new pg_1.Client({
112
+ connectionString: this.cs,
113
+ application_name: `${this.app}:listen`,
114
+ });
115
+ client.on('error', (err) => {
116
+ this.log.error('[pg-bus] listener error:', err);
117
+ this.reconnectSoon();
118
+ });
119
+ client.on('end', () => {
120
+ this.log.warn('[pg-bus] listener ended');
121
+ this.reconnectSoon();
122
+ });
123
+ try {
124
+ await client.connect();
125
+ client.on('notification', (n) => this.onNotification(n.channel, n.payload ?? ''));
126
+ this.listener = client;
127
+ for (const ch of this.handlers.keys()) {
128
+ await this.listen(ch);
129
+ }
130
+ for (const cb of this.reconnectCallbacks) {
131
+ try {
132
+ cb();
133
+ }
134
+ catch (e) {
135
+ this.log.warn('[pg-bus] onReconnect cb error:', e);
136
+ }
137
+ }
138
+ if (this.debug) {
139
+ this.log.log('[pg-bus] LISTEN connected');
140
+ }
141
+ }
142
+ catch (e) {
143
+ this.log.error('[pg-bus] connect failed:', e);
144
+ await this.sleep(this.delay);
145
+ this.reconnectSoon();
146
+ }
147
+ finally {
148
+ this.connecting = false;
149
+ }
150
+ })();
151
+ try {
152
+ await this.connectingPromise;
153
+ }
154
+ finally {
155
+ this.connectingPromise = undefined;
156
+ }
157
+ }
158
+ async listen(channel) {
159
+ if (!this.listener)
160
+ return;
161
+ try {
162
+ this.assertChannel(channel);
163
+ await this.listener.query(`LISTEN ${escapeIdentifier(channel)}`);
164
+ }
165
+ catch (e) {
166
+ this.log.warn(`[pg-bus] failed to LISTEN ${channel}:`, e);
167
+ }
168
+ }
169
+ onNotification(channel, raw) {
170
+ const h = this.handlers.get(channel);
171
+ if (!h)
172
+ return;
173
+ try {
174
+ const wrappedMsg = raw ? JSON.parse(raw) : { payload: {}, busId: null };
175
+ if (wrappedMsg.busId === this.id) {
176
+ if (this.debug) {
177
+ this.log?.log?.('[pg-bus] ignoring message published by the same bus instance');
178
+ }
179
+ return;
180
+ }
181
+ const payload = wrappedMsg.payload;
182
+ h(payload);
183
+ }
184
+ catch (e) {
185
+ const rawStr = String(raw ?? '');
186
+ const preview = rawStr.length > 256
187
+ ? `${rawStr.slice(0, 256)}…(+${rawStr.length - 256} bytes)`
188
+ : rawStr;
189
+ this.log.warn(`[pg-bus] invalid JSON payload on ${channel}:`, preview, e);
190
+ }
191
+ }
192
+ async reconnectSoon() {
193
+ if (this.destroyed)
194
+ return;
195
+ try {
196
+ if (this.listener) {
197
+ try {
198
+ await this.listener.end();
199
+ }
200
+ catch (e) {
201
+ this.log.warn('[pg-bus] failed to close listener during reconnect:', e);
202
+ }
203
+ }
204
+ }
205
+ catch (e) {
206
+ this.log.warn('[pg-bus] unexpected error in reconnectSoon:', e);
207
+ }
208
+ this.listener = undefined;
209
+ await this.sleep(this.delay);
210
+ await this.ensureConnected();
211
+ }
212
+ sleep(ms) {
213
+ return new Promise((r) => setTimeout(r, ms));
214
+ }
215
+ }
216
+ exports.PgBusDriver = PgBusDriver;
217
+ function pgBusDriver(opts, busOptions) {
218
+ return {
219
+ factory: () => new PgBusDriver(opts),
220
+ options: {
221
+ retryQueue: {
222
+ enabled: busOptions?.retryQueue?.enabled ?? true,
223
+ maxSize: busOptions?.retryQueue?.maxSize,
224
+ },
225
+ },
226
+ };
227
+ }
228
+ //# sourceMappingURL=pg-bus.driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg-bus.driver.js","sourceRoot":"","sources":["../../../../../src/infrastructure/cache/pg-bus/pg-bus.driver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ export declare class RevisiumCacheModule {
3
+ static forRootAsync(): DynamicModule;
4
+ }
@@ -0,0 +1,140 @@
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 RevisiumCacheModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.RevisiumCacheModule = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const config_1 = require("@nestjs/config");
13
+ const cqrs_1 = require("@nestjs/cqrs");
14
+ const pg_bus_driver_1 = require("./pg-bus/pg-bus.driver");
15
+ const auth_cache_service_1 = require("./services/auth-cache.service");
16
+ const cache_service_1 = require("./services/cache.service");
17
+ const revision_cache_service_1 = require("./services/revision-cache.service");
18
+ const row_cache_service_1 = require("./services/row-cache.service");
19
+ const parse_bool_1 = require("../../utils/utils/parse-bool");
20
+ const noop_cache_service_1 = require("./services/noop-cache.service");
21
+ const cache_tokens_1 = require("./services/cache.tokens");
22
+ const handlers_1 = require("./handlers");
23
+ const ioredis_1 = require("ioredis");
24
+ async function loadBentoCacheCore() {
25
+ const { BentoCache, bentostore } = await Promise.resolve().then(() => require('bentocache'));
26
+ const { memoryDriver } = await Promise.resolve().then(() => require('bentocache/drivers/memory'));
27
+ return { BentoCache, bentostore, memoryDriver };
28
+ }
29
+ async function loadBentoCacheRedis() {
30
+ const { redisBusDriver, redisDriver } = await Promise.resolve().then(() => require('bentocache/drivers/redis'));
31
+ return { redisBusDriver, redisDriver };
32
+ }
33
+ let RevisiumCacheModule = RevisiumCacheModule_1 = class RevisiumCacheModule {
34
+ static forRootAsync() {
35
+ return {
36
+ module: RevisiumCacheModule_1,
37
+ global: true,
38
+ imports: [config_1.ConfigModule, cqrs_1.CqrsModule],
39
+ providers: [
40
+ {
41
+ provide: cache_tokens_1.CACHE_SERVICE,
42
+ useFactory: async (cfg) => {
43
+ const logger = new common_1.Logger('RevisiumCacheModule');
44
+ const enabled = (0, parse_bool_1.parseBool)(cfg.get('EXPERIMENTAL_CACHE'));
45
+ if (!enabled) {
46
+ logger.warn('⚠️ Cache disabled (NoopBentoCache). Set EXPERIMENTAL_CACHE=1 to enable.');
47
+ return new noop_cache_service_1.NoopCacheService();
48
+ }
49
+ const l1MaxSize = cfg.get('EXPERIMENTAL_CACHE_L1_MAX_SIZE') || undefined;
50
+ if (l1MaxSize) {
51
+ logger.log(`L1_MAX_SIZE: ${l1MaxSize}`);
52
+ }
53
+ const redisUrl = cfg.get('EXPERIMENTAL_CACHE_L2_REDIS_URL') || null;
54
+ try {
55
+ let bento;
56
+ if (!redisUrl) {
57
+ const datebaseUrl = cfg.getOrThrow('DATABASE_URL');
58
+ const debug = (0, parse_bool_1.parseBool)(cfg.get('EXPERIMENTAL_CACHE_DEBUG'));
59
+ const { BentoCache, bentostore, memoryDriver } = await loadBentoCacheCore();
60
+ bento = new BentoCache({
61
+ default: 'cache',
62
+ stores: {
63
+ cache: bentostore()
64
+ .useL1Layer(memoryDriver({
65
+ maxSize: l1MaxSize,
66
+ }))
67
+ .useBus((0, pg_bus_driver_1.pgBusDriver)({
68
+ connectionString: datebaseUrl,
69
+ debug,
70
+ })),
71
+ },
72
+ });
73
+ logger.log('✅ Cache enabled: L1 only (BentoCache memory).');
74
+ }
75
+ else {
76
+ const redisBusHost = cfg.getOrThrow('EXPERIMENTAL_CACHE_REDIS_BUS_HOST');
77
+ if (redisBusHost) {
78
+ logger.log(`REDIS_BUS_HOST: ${redisBusHost}`);
79
+ }
80
+ const redisBusPort = cfg.getOrThrow('EXPERIMENTAL_CACHE_REDIS_BUS_PORT');
81
+ if (redisBusPort) {
82
+ logger.log(`REDIS_BUS_PORT: ${redisBusPort}`);
83
+ }
84
+ const { BentoCache, bentostore, memoryDriver } = await loadBentoCacheCore();
85
+ const { redisBusDriver, redisDriver } = await loadBentoCacheRedis();
86
+ bento = new BentoCache({
87
+ default: 'cache',
88
+ stores: {
89
+ cache: bentostore()
90
+ .useL1Layer(memoryDriver({
91
+ maxSize: l1MaxSize,
92
+ }))
93
+ .useL2Layer(redisDriver({
94
+ connection: new ioredis_1.default(redisUrl),
95
+ }))
96
+ .useBus(redisBusDriver({
97
+ connection: {
98
+ host: redisBusHost,
99
+ port: parseInt(redisBusPort),
100
+ },
101
+ retryQueue: {
102
+ enabled: true,
103
+ maxSize: undefined,
104
+ },
105
+ })),
106
+ },
107
+ });
108
+ logger.log(`✅ Cache enabled: L1 + L2 (BentoCache + Redis @ ${redisUrl}).`);
109
+ }
110
+ return bento;
111
+ }
112
+ catch (e) {
113
+ const err = e;
114
+ logger.error(`❌ BentoCache setup failed (${redisUrl || 'memory'}), using noop fallback.`, err?.stack ?? String(err));
115
+ return new noop_cache_service_1.NoopCacheService();
116
+ }
117
+ },
118
+ inject: [config_1.ConfigService],
119
+ },
120
+ cache_service_1.CacheService,
121
+ row_cache_service_1.RowCacheService,
122
+ revision_cache_service_1.RevisionCacheService,
123
+ auth_cache_service_1.AuthCacheService,
124
+ ...handlers_1.CACHE_EVENT_HANDLERS,
125
+ ],
126
+ exports: [
127
+ row_cache_service_1.RowCacheService,
128
+ revision_cache_service_1.RevisionCacheService,
129
+ auth_cache_service_1.AuthCacheService,
130
+ cache_service_1.CacheService,
131
+ cache_tokens_1.CACHE_SERVICE,
132
+ ],
133
+ };
134
+ }
135
+ };
136
+ exports.RevisiumCacheModule = RevisiumCacheModule;
137
+ exports.RevisiumCacheModule = RevisiumCacheModule = RevisiumCacheModule_1 = __decorate([
138
+ (0, common_1.Module)({})
139
+ ], RevisiumCacheModule);
140
+ //# sourceMappingURL=revisium-cache.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revisium-cache.module.js","sourceRoot":"","sources":["../../../../src/infrastructure/cache/revisium-cache.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { CacheService } from './cache.service';
2
+ export declare class AuthCacheService {
3
+ private readonly cache;
4
+ constructor(cache: CacheService);
5
+ rolePermissions<T>(role: string, factory: () => Promise<T>): Promise<T>;
6
+ systemPermissionCheck<T>(query: {
7
+ userId?: string;
8
+ }, factory: () => Promise<T>): Promise<T>;
9
+ organizationPermissionCheck<T>(query: {
10
+ organizationId: string;
11
+ userId?: string;
12
+ }, factory: () => Promise<T>): Promise<T>;
13
+ projectPermissionCheck<T>(query: {
14
+ organizationId?: string;
15
+ projectName?: string;
16
+ userId?: string;
17
+ }, factory: () => Promise<T>): Promise<T>;
18
+ invalidateUserPermissions(userId: string): Promise<void>;
19
+ invalidateOrganizationPermissions(organizationId: string): Promise<void>;
20
+ invalidateProjectPermissions(organizationId: string, projectName: string): Promise<void>;
21
+ invalidateAllAuthCaches(): Promise<void>;
22
+ }
@@ -0,0 +1,112 @@
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.AuthCacheService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const cache_service_1 = require("./cache.service");
15
+ const stable_cache_key_1 = require("../../../utils/utils/stable-cache-key");
16
+ const auth_cache_constants_1 = require("../constants/auth-cache.constants");
17
+ let AuthCacheService = class AuthCacheService {
18
+ constructor(cache) {
19
+ this.cache = cache;
20
+ }
21
+ async rolePermissions(role, factory) {
22
+ return this.cache.getOrSet({
23
+ key: auth_cache_constants_1.AUTH_CACHE_KEYS.ROLE_PERMISSIONS(role),
24
+ ttl: auth_cache_constants_1.AUTH_CACHE_CONFIG.ROLE_PERMISSIONS_TTL,
25
+ tags: [auth_cache_constants_1.AUTH_CACHE_TAGS.DICTIONARIES],
26
+ factory,
27
+ });
28
+ }
29
+ async systemPermissionCheck(query, factory) {
30
+ const keyHash = (0, stable_cache_key_1.makeCacheKeyFromArgs)([query], {
31
+ prefix: auth_cache_constants_1.AUTH_CACHE_KEYS.CHECK_SYSTEM_PERMISSION,
32
+ version: auth_cache_constants_1.AUTH_CACHE_CONFIG.KEY_VERSION,
33
+ });
34
+ const userId = query.userId;
35
+ return this.cache.getOrSet({
36
+ key: keyHash,
37
+ ttl: auth_cache_constants_1.AUTH_CACHE_CONFIG.PERMISSION_CHECK_TTL,
38
+ tags: [
39
+ auth_cache_constants_1.AUTH_CACHE_TAGS.AUTH_RELATIVES,
40
+ ...(userId ? [auth_cache_constants_1.AUTH_CACHE_TAGS.USER_PERMISSIONS(userId)] : []),
41
+ ],
42
+ factory,
43
+ });
44
+ }
45
+ async organizationPermissionCheck(query, factory) {
46
+ const keyHash = (0, stable_cache_key_1.makeCacheKeyFromArgs)([query], {
47
+ prefix: auth_cache_constants_1.AUTH_CACHE_KEYS.CHECK_ORGANIZATION_PERMISSION,
48
+ version: auth_cache_constants_1.AUTH_CACHE_CONFIG.KEY_VERSION,
49
+ });
50
+ const userId = query.userId;
51
+ return this.cache.getOrSet({
52
+ key: keyHash,
53
+ ttl: auth_cache_constants_1.AUTH_CACHE_CONFIG.PERMISSION_CHECK_TTL,
54
+ tags: [
55
+ auth_cache_constants_1.AUTH_CACHE_TAGS.AUTH_RELATIVES,
56
+ auth_cache_constants_1.AUTH_CACHE_TAGS.ORGANIZATION_PERMISSIONS(query.organizationId),
57
+ ...(userId ? [auth_cache_constants_1.AUTH_CACHE_TAGS.USER_PERMISSIONS(userId)] : []),
58
+ ],
59
+ factory,
60
+ });
61
+ }
62
+ async projectPermissionCheck(query, factory) {
63
+ const keyHash = (0, stable_cache_key_1.makeCacheKeyFromArgs)([query], {
64
+ prefix: auth_cache_constants_1.AUTH_CACHE_KEYS.CHECK_PROJECT_PERMISSION,
65
+ version: auth_cache_constants_1.AUTH_CACHE_CONFIG.KEY_VERSION,
66
+ });
67
+ const userId = query.userId;
68
+ const organizationId = query.organizationId;
69
+ const projectName = query.projectName;
70
+ return this.cache.getOrSet({
71
+ key: keyHash,
72
+ ttl: auth_cache_constants_1.AUTH_CACHE_CONFIG.PERMISSION_CHECK_TTL,
73
+ tags: [
74
+ auth_cache_constants_1.AUTH_CACHE_TAGS.AUTH_RELATIVES,
75
+ ...(userId ? [auth_cache_constants_1.AUTH_CACHE_TAGS.USER_PERMISSIONS(userId)] : []),
76
+ ...(organizationId
77
+ ? [auth_cache_constants_1.AUTH_CACHE_TAGS.ORGANIZATION_PERMISSIONS(organizationId)]
78
+ : []),
79
+ ...(organizationId && projectName
80
+ ? [auth_cache_constants_1.AUTH_CACHE_TAGS.PROJECT_PERMISSIONS(organizationId, projectName)]
81
+ : []),
82
+ ],
83
+ factory,
84
+ });
85
+ }
86
+ async invalidateUserPermissions(userId) {
87
+ await this.cache.deleteByTag({
88
+ tags: [auth_cache_constants_1.AUTH_CACHE_TAGS.USER_PERMISSIONS(userId)],
89
+ });
90
+ }
91
+ async invalidateOrganizationPermissions(organizationId) {
92
+ await this.cache.deleteByTag({
93
+ tags: [auth_cache_constants_1.AUTH_CACHE_TAGS.ORGANIZATION_PERMISSIONS(organizationId)],
94
+ });
95
+ }
96
+ async invalidateProjectPermissions(organizationId, projectName) {
97
+ await this.cache.deleteByTag({
98
+ tags: [auth_cache_constants_1.AUTH_CACHE_TAGS.PROJECT_PERMISSIONS(organizationId, projectName)],
99
+ });
100
+ }
101
+ async invalidateAllAuthCaches() {
102
+ await this.cache.deleteByTag({
103
+ tags: [auth_cache_constants_1.AUTH_CACHE_TAGS.AUTH_RELATIVES],
104
+ });
105
+ }
106
+ };
107
+ exports.AuthCacheService = AuthCacheService;
108
+ exports.AuthCacheService = AuthCacheService = __decorate([
109
+ (0, common_1.Injectable)(),
110
+ __metadata("design:paramtypes", [cache_service_1.CacheService])
111
+ ], AuthCacheService);
112
+ //# sourceMappingURL=auth-cache.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-cache.service.js","sourceRoot":"","sources":["../../../../../src/infrastructure/cache/services/auth-cache.service.ts"],"names":[],"mappings":"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"}