unleash-server 6.2.3 → 6.3.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 (234) hide show
  1. package/dist/lib/addons/datadog.d.ts.map +1 -1
  2. package/dist/lib/addons/datadog.js +9 -7
  3. package/dist/lib/addons/datadog.js.map +1 -1
  4. package/dist/lib/addons/feature-event-formatter-md-events.d.ts +8 -0
  5. package/dist/lib/addons/feature-event-formatter-md-events.d.ts.map +1 -0
  6. package/dist/lib/addons/feature-event-formatter-md-events.js +297 -0
  7. package/dist/lib/addons/feature-event-formatter-md-events.js.map +1 -0
  8. package/dist/lib/addons/feature-event-formatter-md.d.ts +17 -6
  9. package/dist/lib/addons/feature-event-formatter-md.d.ts.map +1 -1
  10. package/dist/lib/addons/feature-event-formatter-md.js +32 -246
  11. package/dist/lib/addons/feature-event-formatter-md.js.map +1 -1
  12. package/dist/lib/addons/feature-event-formatter-md.test.js +3 -1
  13. package/dist/lib/addons/feature-event-formatter-md.test.js.map +1 -1
  14. package/dist/lib/addons/new-relic.d.ts.map +1 -1
  15. package/dist/lib/addons/new-relic.js +3 -1
  16. package/dist/lib/addons/new-relic.js.map +1 -1
  17. package/dist/lib/addons/slack-app.d.ts.map +1 -1
  18. package/dist/lib/addons/slack-app.js +12 -7
  19. package/dist/lib/addons/slack-app.js.map +1 -1
  20. package/dist/lib/addons/slack.d.ts.map +1 -1
  21. package/dist/lib/addons/slack.js +14 -9
  22. package/dist/lib/addons/slack.js.map +1 -1
  23. package/dist/lib/addons/teams.d.ts.map +1 -1
  24. package/dist/lib/addons/teams.js +9 -7
  25. package/dist/lib/addons/teams.js.map +1 -1
  26. package/dist/lib/addons/webhook.d.ts.map +1 -1
  27. package/dist/lib/addons/webhook.js +3 -1
  28. package/dist/lib/addons/webhook.js.map +1 -1
  29. package/dist/lib/db/account-store.d.ts +2 -1
  30. package/dist/lib/db/account-store.d.ts.map +1 -1
  31. package/dist/lib/db/account-store.js +18 -0
  32. package/dist/lib/db/account-store.js.map +1 -1
  33. package/dist/lib/features/events/event-search-controller.d.ts +3 -1
  34. package/dist/lib/features/events/event-search-controller.d.ts.map +1 -1
  35. package/dist/lib/features/events/event-search-controller.js +21 -2
  36. package/dist/lib/features/events/event-search-controller.js.map +1 -1
  37. package/dist/lib/features/feature-toggle/feature-toggle-service.d.ts.map +1 -1
  38. package/dist/lib/features/feature-toggle/feature-toggle-service.js +4 -12
  39. package/dist/lib/features/feature-toggle/feature-toggle-service.js.map +1 -1
  40. package/dist/lib/features/feature-toggle/tests/feature-toggle-service.e2e.test.js +2 -11
  41. package/dist/lib/features/feature-toggle/tests/feature-toggle-service.e2e.test.js.map +1 -1
  42. package/dist/lib/features/index.d.ts +1 -0
  43. package/dist/lib/features/index.d.ts.map +1 -1
  44. package/dist/lib/features/index.js +1 -0
  45. package/dist/lib/features/index.js.map +1 -1
  46. package/dist/lib/features/metrics/client-metrics/client-metrics-store-v2.js +1 -1
  47. package/dist/lib/features/metrics/client-metrics/client-metrics-store-v2.js.map +1 -1
  48. package/dist/lib/features/onboarding/onboarding-read-model.d.ts.map +1 -1
  49. package/dist/lib/features/onboarding/onboarding-read-model.js +1 -0
  50. package/dist/lib/features/onboarding/onboarding-read-model.js.map +1 -1
  51. package/dist/lib/features/personal-dashboard/createPersonalDashboardService.d.ts +6 -0
  52. package/dist/lib/features/personal-dashboard/createPersonalDashboardService.d.ts.map +1 -0
  53. package/dist/lib/features/personal-dashboard/createPersonalDashboardService.js +39 -0
  54. package/dist/lib/features/personal-dashboard/createPersonalDashboardService.js.map +1 -0
  55. package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.d.ts +8 -0
  56. package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.d.ts.map +1 -0
  57. package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.js +16 -0
  58. package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.js.map +1 -0
  59. package/dist/lib/features/personal-dashboard/personal-dashboard-controller.d.ts +16 -0
  60. package/dist/lib/features/personal-dashboard/personal-dashboard-controller.d.ts.map +1 -0
  61. package/dist/lib/features/personal-dashboard/personal-dashboard-controller.e2e.test.d.ts +2 -0
  62. package/dist/lib/features/personal-dashboard/personal-dashboard-controller.e2e.test.d.ts.map +1 -0
  63. package/dist/lib/features/personal-dashboard/personal-dashboard-controller.e2e.test.js +237 -0
  64. package/dist/lib/features/personal-dashboard/personal-dashboard-controller.e2e.test.js.map +1 -0
  65. package/dist/lib/features/personal-dashboard/personal-dashboard-controller.js +71 -0
  66. package/dist/lib/features/personal-dashboard/personal-dashboard-controller.js.map +1 -0
  67. package/dist/lib/features/personal-dashboard/personal-dashboard-read-model-type.d.ts +27 -0
  68. package/dist/lib/features/personal-dashboard/personal-dashboard-read-model-type.d.ts.map +1 -0
  69. package/dist/lib/features/personal-dashboard/personal-dashboard-read-model-type.js +3 -0
  70. package/dist/lib/features/personal-dashboard/personal-dashboard-read-model-type.js.map +1 -0
  71. package/dist/lib/features/personal-dashboard/personal-dashboard-read-model.d.ts +9 -0
  72. package/dist/lib/features/personal-dashboard/personal-dashboard-read-model.d.ts.map +1 -0
  73. package/dist/lib/features/personal-dashboard/personal-dashboard-read-model.js +78 -0
  74. package/dist/lib/features/personal-dashboard/personal-dashboard-read-model.js.map +1 -0
  75. package/dist/lib/features/personal-dashboard/personal-dashboard-service.d.ts +25 -0
  76. package/dist/lib/features/personal-dashboard/personal-dashboard-service.d.ts.map +1 -0
  77. package/dist/lib/features/personal-dashboard/personal-dashboard-service.js +75 -0
  78. package/dist/lib/features/personal-dashboard/personal-dashboard-service.js.map +1 -0
  79. package/dist/lib/features/playground/feature-evaluator/strategy/flexible-rollout-strategy.d.ts.map +1 -1
  80. package/dist/lib/features/playground/feature-evaluator/strategy/flexible-rollout-strategy.js +1 -1
  81. package/dist/lib/features/playground/feature-evaluator/strategy/flexible-rollout-strategy.js.map +1 -1
  82. package/dist/lib/features/project/fake-project-owners-read-model.d.ts +6 -3
  83. package/dist/lib/features/project/fake-project-owners-read-model.d.ts.map +1 -1
  84. package/dist/lib/features/project/fake-project-owners-read-model.js +6 -0
  85. package/dist/lib/features/project/fake-project-owners-read-model.js.map +1 -1
  86. package/dist/lib/features/project/fake-project-read-model.d.ts +2 -0
  87. package/dist/lib/features/project/fake-project-read-model.d.ts.map +1 -1
  88. package/dist/lib/features/project/fake-project-read-model.js +6 -0
  89. package/dist/lib/features/project/fake-project-read-model.js.map +1 -1
  90. package/dist/lib/features/project/project-owners-read-model.d.ts +10 -5
  91. package/dist/lib/features/project/project-owners-read-model.d.ts.map +1 -1
  92. package/dist/lib/features/project/project-owners-read-model.js +26 -10
  93. package/dist/lib/features/project/project-owners-read-model.js.map +1 -1
  94. package/dist/lib/features/project/project-owners-read-model.test.js +62 -20
  95. package/dist/lib/features/project/project-owners-read-model.test.js.map +1 -1
  96. package/dist/lib/features/project/project-owners-read-model.type.d.ts +13 -5
  97. package/dist/lib/features/project/project-owners-read-model.type.d.ts.map +1 -1
  98. package/dist/lib/features/project/project-read-model-type.d.ts +5 -4
  99. package/dist/lib/features/project/project-read-model-type.d.ts.map +1 -1
  100. package/dist/lib/features/project/project-read-model.d.ts +4 -2
  101. package/dist/lib/features/project/project-read-model.d.ts.map +1 -1
  102. package/dist/lib/features/project/project-read-model.js +48 -20
  103. package/dist/lib/features/project/project-read-model.js.map +1 -1
  104. package/dist/lib/features/project/project-service.d.ts +4 -4
  105. package/dist/lib/features/project/project-service.d.ts.map +1 -1
  106. package/dist/lib/features/project/project-service.e2e.test.js +20 -3
  107. package/dist/lib/features/project/project-service.e2e.test.js.map +1 -1
  108. package/dist/lib/features/project/project-service.js +7 -15
  109. package/dist/lib/features/project/project-service.js.map +1 -1
  110. package/dist/lib/features/project/project-store-type.d.ts +4 -6
  111. package/dist/lib/features/project/project-store-type.d.ts.map +1 -1
  112. package/dist/lib/features/project/project-store.d.ts +1 -5
  113. package/dist/lib/features/project/project-store.d.ts.map +1 -1
  114. package/dist/lib/features/project/project-store.e2e.test.js +1 -1
  115. package/dist/lib/features/project/project-store.e2e.test.js.map +1 -1
  116. package/dist/lib/features/project/project-store.js +5 -135
  117. package/dist/lib/features/project/project-store.js.map +1 -1
  118. package/dist/lib/metrics.d.ts.map +1 -1
  119. package/dist/lib/metrics.js +18 -1
  120. package/dist/lib/metrics.js.map +1 -1
  121. package/dist/lib/metrics.test.js +2 -2
  122. package/dist/lib/metrics.test.js.map +1 -1
  123. package/dist/lib/openapi/spec/event-schema.d.ts +10 -0
  124. package/dist/lib/openapi/spec/event-schema.d.ts.map +1 -1
  125. package/dist/lib/openapi/spec/event-schema.js +10 -0
  126. package/dist/lib/openapi/spec/event-schema.js.map +1 -1
  127. package/dist/lib/openapi/spec/event-search-response-schema.d.ts +10 -0
  128. package/dist/lib/openapi/spec/event-search-response-schema.d.ts.map +1 -1
  129. package/dist/lib/openapi/spec/events-schema.d.ts +10 -0
  130. package/dist/lib/openapi/spec/events-schema.d.ts.map +1 -1
  131. package/dist/lib/openapi/spec/feature-events-schema.d.ts +10 -0
  132. package/dist/lib/openapi/spec/feature-events-schema.d.ts.map +1 -1
  133. package/dist/lib/openapi/spec/index.d.ts +2 -0
  134. package/dist/lib/openapi/spec/index.d.ts.map +1 -1
  135. package/dist/lib/openapi/spec/index.js +2 -0
  136. package/dist/lib/openapi/spec/index.js.map +1 -1
  137. package/dist/lib/openapi/spec/integration-event-schema.d.ts +10 -0
  138. package/dist/lib/openapi/spec/integration-event-schema.d.ts.map +1 -1
  139. package/dist/lib/openapi/spec/integration-events-schema.d.ts +20 -0
  140. package/dist/lib/openapi/spec/integration-events-schema.d.ts.map +1 -1
  141. package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.d.ts +168 -0
  142. package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.d.ts.map +1 -0
  143. package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.js +81 -0
  144. package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.js.map +1 -0
  145. package/dist/lib/openapi/spec/personal-dashboard-schema.d.ts +142 -0
  146. package/dist/lib/openapi/spec/personal-dashboard-schema.d.ts.map +1 -0
  147. package/dist/lib/openapi/spec/personal-dashboard-schema.js +149 -0
  148. package/dist/lib/openapi/spec/personal-dashboard-schema.js.map +1 -0
  149. package/dist/lib/routes/admin-api/index.d.ts.map +1 -1
  150. package/dist/lib/routes/admin-api/index.js +2 -0
  151. package/dist/lib/routes/admin-api/index.js.map +1 -1
  152. package/dist/lib/schema/role-schema.js +1 -1
  153. package/dist/lib/schema/role-schema.js.map +1 -1
  154. package/dist/lib/services/access-service.d.ts +1 -0
  155. package/dist/lib/services/access-service.d.ts.map +1 -1
  156. package/dist/lib/services/access-service.js +15 -6
  157. package/dist/lib/services/access-service.js.map +1 -1
  158. package/dist/lib/services/access-service.test.js +22 -0
  159. package/dist/lib/services/access-service.test.js.map +1 -1
  160. package/dist/lib/services/clean-permission-environment.test.d.ts +2 -0
  161. package/dist/lib/services/clean-permission-environment.test.d.ts.map +1 -0
  162. package/dist/lib/services/clean-permission-environment.test.js +114 -0
  163. package/dist/lib/services/clean-permission-environment.test.js.map +1 -0
  164. package/dist/lib/services/index.d.ts +2 -1
  165. package/dist/lib/services/index.d.ts.map +1 -1
  166. package/dist/lib/services/index.js +12 -1
  167. package/dist/lib/services/index.js.map +1 -1
  168. package/dist/lib/types/events.d.ts +4 -0
  169. package/dist/lib/types/events.d.ts.map +1 -1
  170. package/dist/lib/types/events.js.map +1 -1
  171. package/dist/lib/types/experimental.d.ts +1 -1
  172. package/dist/lib/types/experimental.d.ts.map +1 -1
  173. package/dist/lib/types/experimental.js +2 -5
  174. package/dist/lib/types/experimental.js.map +1 -1
  175. package/dist/lib/types/model.d.ts +1 -10
  176. package/dist/lib/types/model.d.ts.map +1 -1
  177. package/dist/lib/types/services.d.ts +3 -0
  178. package/dist/lib/types/services.d.ts.map +1 -1
  179. package/dist/lib/types/stores/account-store.d.ts +2 -1
  180. package/dist/lib/types/stores/account-store.d.ts.map +1 -1
  181. package/dist/lib/types/user.d.ts +1 -0
  182. package/dist/lib/types/user.d.ts.map +1 -1
  183. package/dist/lib/types/user.js.map +1 -1
  184. package/dist/migrations/20240919083625-client-metrics-env-variants-daily-to-bigint.d.ts +3 -0
  185. package/dist/migrations/20240919083625-client-metrics-env-variants-daily-to-bigint.d.ts.map +1 -0
  186. package/dist/migrations/20240919083625-client-metrics-env-variants-daily-to-bigint.js +8 -0
  187. package/dist/migrations/20240919083625-client-metrics-env-variants-daily-to-bigint.js.map +1 -0
  188. package/dist/server-dev.js +1 -3
  189. package/dist/server-dev.js.map +1 -1
  190. package/dist/test/fixtures/fake-access-store.d.ts +2 -2
  191. package/dist/test/fixtures/fake-access-store.d.ts.map +1 -1
  192. package/dist/test/fixtures/fake-access-store.js +5 -3
  193. package/dist/test/fixtures/fake-access-store.js.map +1 -1
  194. package/dist/test/fixtures/fake-account-store.d.ts +1 -0
  195. package/dist/test/fixtures/fake-account-store.d.ts.map +1 -1
  196. package/dist/test/fixtures/fake-account-store.js +3 -0
  197. package/dist/test/fixtures/fake-account-store.js.map +1 -1
  198. package/dist/test/fixtures/fake-project-store.d.ts +2 -4
  199. package/dist/test/fixtures/fake-project-store.d.ts.map +1 -1
  200. package/dist/test/fixtures/fake-project-store.js +0 -20
  201. package/dist/test/fixtures/fake-project-store.js.map +1 -1
  202. package/frontend/build/index.html +1 -1
  203. package/frontend/build/static/{AdvancedPlayground-CRdeeG3w.js → AdvancedPlayground-eDTjzS3E.js} +2 -2
  204. package/frontend/build/static/{CreateProject-8AyZj2dp.js → CreateProject-DEpFVLhl.js} +1 -1
  205. package/frontend/build/static/FeatureMetricsChart-CZKpaUOH.js +2 -0
  206. package/frontend/build/static/FeatureStaleDialog-2jleuqhn.js +7 -0
  207. package/frontend/build/static/FeatureViewLazyExport-CeAl2Yig.js +10 -0
  208. package/frontend/build/static/FlagMetricsChart-BRMGXeEU.js +2 -0
  209. package/frontend/build/static/{LazyAdminExport-0g_UOhr3.js → LazyAdminExport-CpfHUB52.js} +14 -14
  210. package/frontend/build/static/LazyProjectExport-XXHA0k8I.js +735 -0
  211. package/frontend/build/static/{LineChartComponent-BLXX5chp.js → LineChartComponent-B5O_VFku.js} +1 -1
  212. package/frontend/build/static/{NetworkOverview-DqGLVIJ6.js → NetworkOverview-DU1OT7gB.js} +1 -1
  213. package/frontend/build/static/NetworkTraffic-DQdYqYoU.js +1 -0
  214. package/frontend/build/static/NetworkTrafficUsage-CkyWiuAD.js +1 -0
  215. package/frontend/build/static/{ReactJSONEditor-Bvhd5heT.js → ReactJSONEditor-DlQuk0pf.js} +1 -1
  216. package/frontend/build/static/{RoleCell-DGcue0jn.js → RoleCell-DMPAgQMx.js} +1 -1
  217. package/frontend/build/static/{StrategyItemContainer-Das6_30A.js → StrategyItemContainer-L9vwk9uU.js} +1 -1
  218. package/frontend/build/static/aggregateFeatureMetrics-CLK9MToQ.js +1 -0
  219. package/frontend/build/static/formatTickValue-DArtcDRb.js +6 -0
  220. package/frontend/build/static/{index-BsIpdLcw.js → index-DK5jinWf.js} +1 -1
  221. package/frontend/build/static/index-JQ6lMAyk.js +524 -0
  222. package/frontend/build/static/onboardingConcepts-1jcVefeL.png +0 -0
  223. package/frontend/build/static/unknownify-C7SyNno2.js +1 -0
  224. package/frontend/build/static/{useApiTokens-5JgqgHim.js → useApiTokens-DQBXJ3PL.js} +1 -1
  225. package/frontend/package.json +13 -13
  226. package/package.json +7 -6
  227. package/frontend/build/static/FeatureMetricsChart-DEo4WxO1.js +0 -2
  228. package/frontend/build/static/FeatureStaleDialog-CrsbH2rq.js +0 -7
  229. package/frontend/build/static/FeatureViewLazyExport-BwY7TYmZ.js +0 -10
  230. package/frontend/build/static/LazyProjectExport-C1eSkT3Z.js +0 -177
  231. package/frontend/build/static/NetworkTraffic-BWFLlaz7.js +0 -1
  232. package/frontend/build/static/NetworkTrafficUsage-BvoBumVR.js +0 -6
  233. package/frontend/build/static/index-Cx91uh9W.js +0 -524
  234. package/frontend/build/static/unknownify-8qa4PVkQ.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"flexible-rollout-strategy.js","sourceRoot":"","sources":["../../../../../../src/lib/features/playground/feature-evaluator/strategy/flexible-rollout-strategy.ts"],"names":[],"mappings":";;AAAA,yCAAsC;AAEtC,iCAAiD;AACjD,wCAAiD;AAEjD,MAAM,UAAU,GAAG;IACf,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;CACnB,CAAC;AAEF,MAAqB,uBAAwB,SAAQ,mBAAQ;IAIzD,YAAY,eAA0B;QAClC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAJrB,oBAAe,GAAa,GAAG,EAAE,CACrC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAIzC,IAAI,eAAe,EAAE,CAAC;YAClB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QAC3C,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,UAAkB,EAAE,OAAgB;QAClD,QAAQ,UAAU,EAAE,CAAC;YACjB,KAAK,UAAU,CAAC,OAAO;gBACnB,OAAO,CACH,OAAO,CAAC,MAAM;oBACd,OAAO,CAAC,SAAS;oBACjB,IAAI,CAAC,eAAe,EAAE,CACzB,CAAC;YACN,KAAK,UAAU,CAAC,MAAM;gBAClB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YAClC;gBACI,OAAO,IAAA,6BAAmB,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED,6EAA6E;IAC7E,SAAS,CACL,UAIC,EACD,OAAgB;QAEhB,MAAM,OAAO,GACT,UAAU,CAAC,OAAO;YAClB,CAAC,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACxD,EAAE,CAAC;QACP,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAW,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC;QACvE,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEjE,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAA,8BAAuB,EAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACxE,OAAO,UAAU,GAAG,CAAC,IAAI,gBAAgB,IAAI,UAAU,CAAC;IAC5D,CAAC;CACJ;AAjDD,0CAiDC"}
1
+ {"version":3,"file":"flexible-rollout-strategy.js","sourceRoot":"","sources":["../../../../../../src/lib/features/playground/feature-evaluator/strategy/flexible-rollout-strategy.ts"],"names":[],"mappings":";;AAAA,yCAAsC;AAEtC,iCAAiD;AACjD,wCAAiD;AAEjD,MAAM,UAAU,GAAG;IACf,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;CACnB,CAAC;AAEF,MAAqB,uBAAwB,SAAQ,mBAAQ;IAIzD,YAAY,eAA0B;QAClC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAJrB,oBAAe,GAAa,GAAG,EAAE,CACrC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAI5C,IAAI,eAAe,EAAE,CAAC;YAClB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QAC3C,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,UAAkB,EAAE,OAAgB;QAClD,QAAQ,UAAU,EAAE,CAAC;YACjB,KAAK,UAAU,CAAC,OAAO;gBACnB,OAAO,CACH,OAAO,CAAC,MAAM;oBACd,OAAO,CAAC,SAAS;oBACjB,IAAI,CAAC,eAAe,EAAE,CACzB,CAAC;YACN,KAAK,UAAU,CAAC,MAAM;gBAClB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YAClC;gBACI,OAAO,IAAA,6BAAmB,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED,6EAA6E;IAC7E,SAAS,CACL,UAIC,EACD,OAAgB;QAEhB,MAAM,OAAO,GACT,UAAU,CAAC,OAAO;YAClB,CAAC,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACxD,EAAE,CAAC;QACP,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAW,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC;QACvE,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEjE,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAA,8BAAuB,EAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACxE,OAAO,UAAU,GAAG,CAAC,IAAI,gBAAgB,IAAI,UAAU,CAAC;IAC5D,CAAC;CACJ;AAjDD,0CAiDC"}
@@ -1,6 +1,9 @@
1
- import type { IProjectOwnersReadModel, IProjectForUiWithOwners } from './project-owners-read-model.type';
2
- import type { ProjectForUi } from './project-read-model-type';
1
+ import type { IProjectOwnersReadModel, ProjectOwners, UserProjectOwner, WithProjectOwners } from './project-owners-read-model.type';
3
2
  export declare class FakeProjectOwnersReadModel implements IProjectOwnersReadModel {
4
- addOwners(projects: ProjectForUi[]): Promise<IProjectForUiWithOwners[]>;
3
+ addOwners<T extends {
4
+ id: string;
5
+ }>(projects: T[]): Promise<WithProjectOwners<T>>;
6
+ getAllUserProjectOwners(): Promise<UserProjectOwner[]>;
7
+ getProjectOwners(): Promise<ProjectOwners>;
5
8
  }
6
9
  //# sourceMappingURL=fake-project-owners-read-model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fake-project-owners-read-model.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/project/fake-project-owners-read-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,uBAAuB,EACvB,uBAAuB,EAC1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,qBAAa,0BAA2B,YAAW,uBAAuB;IAChE,SAAS,CACX,QAAQ,EAAE,YAAY,EAAE,GACzB,OAAO,CAAC,uBAAuB,EAAE,CAAC;CAMxC"}
1
+ {"version":3,"file":"fake-project-owners-read-model.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/project/fake-project-owners-read-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,uBAAuB,EACvB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACpB,MAAM,kCAAkC,CAAC;AAE1C,qBAAa,0BAA2B,YAAW,uBAAuB;IAChE,SAAS,CAAC,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EACpC,QAAQ,EAAE,CAAC,EAAE,GACd,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAO1B,uBAAuB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAItD,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;CAGnD"}
@@ -8,6 +8,12 @@ class FakeProjectOwnersReadModel {
8
8
  owners: [{ ownerType: 'system' }],
9
9
  }));
10
10
  }
11
+ async getAllUserProjectOwners() {
12
+ return [];
13
+ }
14
+ async getProjectOwners() {
15
+ return [];
16
+ }
11
17
  }
12
18
  exports.FakeProjectOwnersReadModel = FakeProjectOwnersReadModel;
13
19
  //# sourceMappingURL=fake-project-owners-read-model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fake-project-owners-read-model.js","sourceRoot":"","sources":["../../../../src/lib/features/project/fake-project-owners-read-model.ts"],"names":[],"mappings":";;;AAMA,MAAa,0BAA0B;IACnC,KAAK,CAAC,SAAS,CACX,QAAwB;QAExB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC9B,GAAG,OAAO;YACV,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;SACpC,CAAC,CAAC,CAAC;IACR,CAAC;CACJ;AATD,gEASC"}
1
+ {"version":3,"file":"fake-project-owners-read-model.js","sourceRoot":"","sources":["../../../../src/lib/features/project/fake-project-owners-read-model.ts"],"names":[],"mappings":";;;AAOA,MAAa,0BAA0B;IACnC,KAAK,CAAC,SAAS,CACX,QAAa;QAEb,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC9B,GAAG,OAAO;YACV,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;SACpC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,KAAK,CAAC,uBAAuB;QACzB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAjBD,gEAiBC"}
@@ -7,5 +7,7 @@ export declare class FakeProjectReadModel implements IProjectReadModel {
7
7
  } | null>;
8
8
  getProjectsForAdminUi(): Promise<ProjectForUi[]>;
9
9
  getProjectsForInsights(): Promise<ProjectForInsights[]>;
10
+ getProjectsByUser(): Promise<string[]>;
11
+ getProjectsFavoritedByUser(): Promise<string[]>;
10
12
  }
11
13
  //# sourceMappingURL=fake-project-read-model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fake-project-read-model.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/project/fake-project-read-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EACR,YAAY,EACZ,kBAAkB,EACrB,MAAM,2BAA2B,CAAC;AAEnC,qBAAa,oBAAqB,YAAW,iBAAiB;IAC1D,iBAAiB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAGzE,qBAAqB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAGhD,sBAAsB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAG1D"}
1
+ {"version":3,"file":"fake-project-read-model.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/project/fake-project-read-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EACR,YAAY,EACZ,kBAAkB,EACrB,MAAM,2BAA2B,CAAC;AAEnC,qBAAa,oBAAqB,YAAW,iBAAiB;IAC1D,iBAAiB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAGzE,qBAAqB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAGhD,sBAAsB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAGvD,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAGtC,0BAA0B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAGlD"}
@@ -11,6 +11,12 @@ class FakeProjectReadModel {
11
11
  getProjectsForInsights() {
12
12
  return Promise.resolve([]);
13
13
  }
14
+ getProjectsByUser() {
15
+ return Promise.resolve([]);
16
+ }
17
+ getProjectsFavoritedByUser() {
18
+ return Promise.resolve([]);
19
+ }
14
20
  }
15
21
  exports.FakeProjectReadModel = FakeProjectReadModel;
16
22
  //# sourceMappingURL=fake-project-read-model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fake-project-read-model.js","sourceRoot":"","sources":["../../../../src/lib/features/project/fake-project-read-model.ts"],"names":[],"mappings":";;;AAMA,MAAa,oBAAoB;IAC7B,iBAAiB;QACb,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,qBAAqB;QACjB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,sBAAsB;QAClB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;CACJ;AAVD,oDAUC"}
1
+ {"version":3,"file":"fake-project-read-model.js","sourceRoot":"","sources":["../../../../src/lib/features/project/fake-project-read-model.ts"],"names":[],"mappings":";;;AAMA,MAAa,oBAAoB;IAC7B,iBAAiB;QACb,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,qBAAqB;QACjB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,sBAAsB;QAClB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,iBAAiB;QACb,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,0BAA0B;QACtB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;CACJ;AAhBD,oDAgBC"}
@@ -1,13 +1,18 @@
1
1
  import type { Db } from '../../db/db';
2
- import type { IProjectOwnersReadModel, IProjectForUiWithOwners, ProjectOwnersDictionary } from './project-owners-read-model.type';
3
- import type { ProjectForUi } from './project-read-model-type';
2
+ import type { IProjectOwnersReadModel, ProjectOwners, ProjectOwnersDictionary, UserProjectOwner, WithProjectOwners } from './project-owners-read-model.type';
4
3
  export declare class ProjectOwnersReadModel implements IProjectOwnersReadModel {
5
4
  private db;
6
5
  constructor(db: Db);
7
- static addOwnerData(projects: ProjectForUi[], owners: ProjectOwnersDictionary): IProjectForUiWithOwners[];
6
+ static addOwnerData<T extends {
7
+ id: string;
8
+ }>(projects: T[], owners: ProjectOwnersDictionary): WithProjectOwners<T>;
8
9
  private getAllProjectUsersByRole;
9
10
  private getAllProjectGroupsByRole;
10
- getAllProjectOwners(anonymizeProjectOwners?: boolean): Promise<ProjectOwnersDictionary>;
11
- addOwners(projects: ProjectForUi[], anonymizeProjectOwners?: boolean): Promise<IProjectForUiWithOwners[]>;
11
+ getProjectOwnersDictionary(): Promise<ProjectOwnersDictionary>;
12
+ getAllUserProjectOwners(projects?: Set<string>): Promise<UserProjectOwner[]>;
13
+ addOwners<T extends {
14
+ id: string;
15
+ }>(projects: T[]): Promise<WithProjectOwners<T>>;
16
+ getProjectOwners(projectId: string): Promise<ProjectOwners>;
12
17
  }
13
18
  //# sourceMappingURL=project-owners-read-model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-owners-read-model.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/project/project-owners-read-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAGtC,OAAO,KAAK,EAER,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EAE1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAS9D,qBAAa,sBAAuB,YAAW,uBAAuB;IAClE,OAAO,CAAC,EAAE,CAAK;gBAEH,EAAE,EAAE,EAAE;IAIlB,MAAM,CAAC,YAAY,CACf,QAAQ,EAAE,YAAY,EAAE,EACxB,MAAM,EAAE,uBAAuB,GAChC,uBAAuB,EAAE;YAOd,wBAAwB;YA6CxB,yBAAyB;IA+BjC,mBAAmB,CACrB,sBAAsB,GAAE,OAAe,GACxC,OAAO,CAAC,uBAAuB,CAAC;IA0B7B,SAAS,CACX,QAAQ,EAAE,YAAY,EAAE,EACxB,sBAAsB,GAAE,OAAe,GACxC,OAAO,CAAC,uBAAuB,EAAE,CAAC;CAKxC"}
1
+ {"version":3,"file":"project-owners-read-model.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/project/project-owners-read-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAGtC,OAAO,KAAK,EAER,uBAAuB,EACvB,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACpB,MAAM,kCAAkC,CAAC;AAS1C,qBAAa,sBAAuB,YAAW,uBAAuB;IAClE,OAAO,CAAC,EAAE,CAAK;gBAEH,EAAE,EAAE,EAAE;IAIlB,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EACxC,QAAQ,EAAE,CAAC,EAAE,EACb,MAAM,EAAE,uBAAuB,GAChC,iBAAiB,CAAC,CAAC,CAAC;YAOT,wBAAwB;YAwCxB,yBAAyB;IA+BjC,0BAA0B,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAuB9D,uBAAuB,CACzB,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACvB,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAqBxB,SAAS,CAAC,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EACpC,QAAQ,EAAE,CAAC,EAAE,GACd,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAM1B,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CAIpE"}
@@ -19,7 +19,7 @@ class ProjectOwnersReadModel {
19
19
  owners: owners[project.id] || [{ ownerType: 'system' }],
20
20
  }));
21
21
  }
22
- async getAllProjectUsersByRole(roleId, anonymizeProjectOwners = false) {
22
+ async getAllProjectUsersByRole(roleId) {
23
23
  const usersResult = await this.db
24
24
  .select('user.id', 'user.username', 'user.name', 'user.email', 'user.image_url', 'ru.created_at', 'ru.project')
25
25
  .from(`${T.ROLE_USER} as ru`)
@@ -28,15 +28,12 @@ class ProjectOwnersReadModel {
28
28
  .where('r.id', roleId)
29
29
  .join(`${T.USERS} as user`, 'ru.user_id', 'user.id');
30
30
  const usersDict = {};
31
- const processSensitiveData = anonymizeProjectOwners
32
- ? util_1.anonymise
33
- : (x) => x;
34
31
  usersResult.forEach((user) => {
35
32
  const project = user.project;
36
33
  const data = {
37
34
  ownerType: 'user',
38
- name: user?.name || user?.username,
39
- email: processSensitiveData(user?.email),
35
+ name: user?.name || user?.username || user?.email,
36
+ email: user?.email,
40
37
  imageUrl: (0, util_1.generateImageUrl)(user),
41
38
  };
42
39
  if (project in usersDict) {
@@ -72,11 +69,11 @@ class ProjectOwnersReadModel {
72
69
  });
73
70
  return groupsDict;
74
71
  }
75
- async getAllProjectOwners(anonymizeProjectOwners = false) {
72
+ async getProjectOwnersDictionary() {
76
73
  const ownerRole = await this.db(T.ROLES)
77
74
  .where({ name: types_1.RoleName.OWNER })
78
75
  .first();
79
- const usersDict = await this.getAllProjectUsersByRole(ownerRole.id, anonymizeProjectOwners);
76
+ const usersDict = await this.getAllProjectUsersByRole(ownerRole.id);
80
77
  const groupsDict = await this.getAllProjectGroupsByRole(ownerRole.id);
81
78
  const dict = usersDict;
82
79
  Object.keys(groupsDict).forEach((project) => {
@@ -89,10 +86,29 @@ class ProjectOwnersReadModel {
89
86
  });
90
87
  return dict;
91
88
  }
92
- async addOwners(projects, anonymizeProjectOwners = false) {
93
- const owners = await this.getAllProjectOwners(anonymizeProjectOwners);
89
+ async getAllUserProjectOwners(projects) {
90
+ const allOwners = await this.getProjectOwnersDictionary();
91
+ const owners = projects
92
+ ? Object.entries(allOwners)
93
+ .filter(([projectId]) => projects.has(projectId))
94
+ .map(([_, owners]) => owners)
95
+ : Object.values(allOwners);
96
+ const ownersDict = owners.flat().reduce((acc, owner) => {
97
+ if (owner.ownerType === 'user') {
98
+ acc[owner.email || owner.name] = owner;
99
+ }
100
+ return acc;
101
+ }, {});
102
+ return Object.values(ownersDict);
103
+ }
104
+ async addOwners(projects) {
105
+ const owners = await this.getProjectOwnersDictionary();
94
106
  return ProjectOwnersReadModel.addOwnerData(projects, owners);
95
107
  }
108
+ async getProjectOwners(projectId) {
109
+ const owners = await this.getProjectOwnersDictionary();
110
+ return owners[projectId] ?? [];
111
+ }
96
112
  }
97
113
  exports.ProjectOwnersReadModel = ProjectOwnersReadModel;
98
114
  //# sourceMappingURL=project-owners-read-model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-owners-read-model.js","sourceRoot":"","sources":["../../../../src/lib/features/project/project-owners-read-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-owners-read-model.js","sourceRoot":"","sources":["../../../../src/lib/features/project/project-owners-read-model.ts"],"names":[],"mappings":"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"}
@@ -114,14 +114,14 @@ afterEach(async () => {
114
114
  });
115
115
  describe('integration tests', () => {
116
116
  test('returns an empty object if there are no projects', async () => {
117
- const owners = await readModel.getAllProjectOwners();
117
+ const owners = await readModel.getProjectOwnersDictionary();
118
118
  expect(owners).toStrictEqual({});
119
119
  });
120
120
  test('name takes precedence over username', async () => {
121
121
  const projectId = (0, util_1.randomId)();
122
122
  await db.stores.projectStore.create({ id: projectId, name: projectId });
123
123
  await db.stores.accessStore.addUserToRole(owner.id, ownerRoleId, projectId);
124
- const owners = await readModel.getAllProjectOwners();
124
+ const owners = await readModel.getProjectOwnersDictionary();
125
125
  expect(owners).toMatchObject({
126
126
  [projectId]: expect.arrayContaining([
127
127
  expect.objectContaining({ name: 'Owner Name' }),
@@ -132,7 +132,7 @@ describe('integration tests', () => {
132
132
  const projectId = (0, util_1.randomId)();
133
133
  await db.stores.projectStore.create({ id: projectId, name: projectId });
134
134
  await db.stores.accessStore.addUserToRole(owner.id, ownerRoleId, projectId);
135
- const owners = await readModel.getAllProjectOwners();
135
+ const owners = await readModel.getProjectOwnersDictionary();
136
136
  expect(owners).toMatchObject({
137
137
  [projectId]: [
138
138
  {
@@ -150,7 +150,7 @@ describe('integration tests', () => {
150
150
  const memberRole = await db.stores.roleStore.getRoleByName(types_1.RoleName.MEMBER);
151
151
  await db.stores.accessStore.addUserToRole(owner.id, ownerRoleId, projectId);
152
152
  await db.stores.accessStore.addUserToRole(member.id, memberRole.id, projectId);
153
- const owners = await readModel.getAllProjectOwners();
153
+ const owners = await readModel.getProjectOwnersDictionary();
154
154
  expect(owners).toMatchObject({
155
155
  [projectId]: [{ name: 'Owner Name' }],
156
156
  });
@@ -159,7 +159,7 @@ describe('integration tests', () => {
159
159
  const projectId = (0, util_1.randomId)();
160
160
  await db.stores.projectStore.create({ id: projectId, name: projectId });
161
161
  await db.stores.accessStore.addGroupToRole(group.id, ownerRoleId, '', projectId);
162
- const owners = await readModel.getAllProjectOwners();
162
+ const owners = await readModel.getProjectOwnersDictionary();
163
163
  expect(owners).toMatchObject({
164
164
  [projectId]: [
165
165
  {
@@ -174,7 +174,7 @@ describe('integration tests', () => {
174
174
  await db.stores.projectStore.create({ id: projectId, name: projectId });
175
175
  await db.stores.accessStore.addGroupToRole(group.id, ownerRoleId, '', projectId);
176
176
  await db.stores.accessStore.addUserToRole(owner.id, ownerRoleId, projectId);
177
- const owners = await readModel.getAllProjectOwners();
177
+ const owners = await readModel.getProjectOwnersDictionary();
178
178
  expect(owners).toMatchObject({
179
179
  [projectId]: [
180
180
  {
@@ -209,7 +209,7 @@ describe('integration tests', () => {
209
209
  });
210
210
  await db.stores.accessStore.addGroupToRole(group.id, ownerRoleId, '', projectId);
211
211
  await db.stores.accessStore.addUserToRole(owner.id, ownerRoleId, projectId);
212
- const owners = await readModel.getAllProjectOwners();
212
+ const owners = await readModel.getProjectOwnersDictionary();
213
213
  expect(owners).toMatchObject({
214
214
  [projectId]: [
215
215
  {
@@ -260,19 +260,61 @@ describe('integration tests', () => {
260
260
  { name: projectIdB, owners: [{ ownerType: 'user' }] },
261
261
  ]);
262
262
  });
263
- test('anonymizes emails when asked to', async () => {
264
- const projectId = (0, util_1.randomId)();
265
- await db.stores.projectStore.create({ id: projectId, name: projectId });
266
- await db.stores.accessStore.addUserToRole(owner.id, ownerRoleId, projectId);
267
- const owners = await readModel.getAllProjectOwners(true);
268
- expect(owners).toMatchObject({
269
- [projectId]: [
270
- {
271
- name: 'Owner Name',
272
- email: expect.stringMatching(/@unleash.run$/),
273
- },
274
- ],
275
- });
263
+ test('filters out system and group owners when getting all user project owners', async () => {
264
+ const createProject = async () => {
265
+ const id = (0, util_1.randomId)();
266
+ return db.stores.projectStore.create({
267
+ id,
268
+ name: id,
269
+ });
270
+ };
271
+ const projectA = await createProject();
272
+ const projectB = await createProject();
273
+ const projectC = await createProject();
274
+ await createProject(); // <- no owner
275
+ await db.stores.accessStore.addUserToRole(owner.id, ownerRoleId, projectA.id);
276
+ await db.stores.accessStore.addUserToRole(owner2.id, ownerRoleId, projectB.id);
277
+ await db.stores.accessStore.addGroupToRole(group.id, ownerRoleId, '', projectC.id);
278
+ const userOwners = await readModel.getAllUserProjectOwners();
279
+ userOwners.sort((a, b) => a.name.localeCompare(b.name));
280
+ expect(userOwners).toMatchObject([
281
+ {
282
+ name: owner.name,
283
+ ownerType: 'user',
284
+ email: owner.email,
285
+ imageUrl: 'https://image-url-1',
286
+ },
287
+ {
288
+ name: owner2.name,
289
+ ownerType: 'user',
290
+ email: owner2.email,
291
+ imageUrl: 'https://image-url-3',
292
+ },
293
+ ]);
294
+ });
295
+ test('only returns projects listed in the projects input if provided', async () => {
296
+ const createProject = async () => {
297
+ const id = (0, util_1.randomId)();
298
+ return db.stores.projectStore.create({
299
+ id,
300
+ name: id,
301
+ });
302
+ };
303
+ const projectA = await createProject();
304
+ const projectB = await createProject();
305
+ await db.stores.accessStore.addUserToRole(owner.id, ownerRoleId, projectA.id);
306
+ await db.stores.accessStore.addUserToRole(owner2.id, ownerRoleId, projectB.id);
307
+ const noOwners = await readModel.getAllUserProjectOwners(new Set());
308
+ expect(noOwners).toMatchObject([]);
309
+ const onlyProjectA = await readModel.getAllUserProjectOwners(new Set([projectA.id]));
310
+ expect(onlyProjectA).toMatchObject([
311
+ {
312
+ name: owner.name,
313
+ ownerType: 'user',
314
+ email: owner.email,
315
+ imageUrl: 'https://image-url-1',
316
+ },
317
+ ]);
276
318
  });
277
319
  });
278
320
  //# sourceMappingURL=project-owners-read-model.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-owners-read-model.test.js","sourceRoot":"","sources":["../../../../src/lib/features/project/project-owners-read-model.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-owners-read-model.test.js","sourceRoot":"","sources":["../../../../src/lib/features/project/project-owners-read-model.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { TransitionalProjectData } from './project-read-model-type';
1
+ import type { ProjectForUi } from './project-read-model-type';
2
2
  export type SystemOwner = {
3
3
  ownerType: 'system';
4
4
  };
@@ -12,13 +12,21 @@ export type GroupProjectOwner = {
12
12
  ownerType: 'group';
13
13
  name: string;
14
14
  };
15
- type ProjectOwners = [SystemOwner] | Array<UserProjectOwner | GroupProjectOwner>;
15
+ export type ProjectOwners = [SystemOwner] | Array<UserProjectOwner | GroupProjectOwner>;
16
16
  export type ProjectOwnersDictionary = Record<string, ProjectOwners>;
17
- export type IProjectForUiWithOwners = TransitionalProjectData & {
17
+ export type IProjectForUiWithOwners = ProjectForUi & {
18
18
  owners: ProjectOwners;
19
19
  };
20
+ export type WithProjectOwners<T extends {
21
+ id: string;
22
+ }> = (T & {
23
+ owners: ProjectOwners;
24
+ })[];
20
25
  export interface IProjectOwnersReadModel {
21
- addOwners(projects: TransitionalProjectData[], anonymizeProjectOwners?: boolean): Promise<IProjectForUiWithOwners[]>;
26
+ addOwners<T extends {
27
+ id: string;
28
+ }>(projects: T[]): Promise<WithProjectOwners<T>>;
29
+ getProjectOwners(projectId: string): Promise<ProjectOwners>;
30
+ getAllUserProjectOwners(projects?: Set<string>): Promise<UserProjectOwner[]>;
22
31
  }
23
- export {};
24
32
  //# sourceMappingURL=project-owners-read-model.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-owners-read-model.type.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/project/project-owners-read-model.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEzE,MAAM,MAAM,WAAW,GAAG;IAAE,SAAS,EAAE,QAAQ,CAAA;CAAE,CAAC;AAClD,MAAM,MAAM,gBAAgB,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,KAAK,aAAa,GACZ,CAAC,WAAW,CAAC,GACb,KAAK,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,CAAC;AAElD,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAEpE,MAAM,MAAM,uBAAuB,GAAG,uBAAuB,GAAG;IAC5D,MAAM,EAAE,aAAa,CAAC;CACzB,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACpC,SAAS,CACL,QAAQ,EAAE,uBAAuB,EAAE,EACnC,sBAAsB,CAAC,EAAE,OAAO,GACjC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;CACzC"}
1
+ {"version":3,"file":"project-owners-read-model.type.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/project/project-owners-read-model.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG;IAAE,SAAS,EAAE,QAAQ,CAAA;CAAE,CAAC;AAClD,MAAM,MAAM,gBAAgB,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,MAAM,MAAM,aAAa,GACnB,CAAC,WAAW,CAAC,GACb,KAAK,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,CAAC;AAElD,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAEpE,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG;IACjD,MAAM,EAAE,aAAa,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,IAAI,CAAC,CAAC,GAAG;IAC3D,MAAM,EAAE,aAAa,CAAC;CACzB,CAAC,EAAE,CAAC;AAEL,MAAM,WAAW,uBAAuB;IACpC,SAAS,CAAC,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAC9B,QAAQ,EAAE,CAAC,EAAE,GACd,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5D,uBAAuB,CACnB,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACvB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;CAClC"}
@@ -1,5 +1,5 @@
1
- import type { IProjectWithCount, ProjectMode } from '../../types';
2
- import type { IProjectQuery } from './project-store-type';
1
+ import type { ProjectMode } from '../../types';
2
+ import type { IProjectQuery, IProjectsQuery } from './project-store-type';
3
3
  export type ProjectForUi = {
4
4
  id: string;
5
5
  name: string;
@@ -14,7 +14,6 @@ export type ProjectForUi = {
14
14
  lastReportedFlagUsage: Date | null;
15
15
  lastUpdatedAt: Date | null;
16
16
  };
17
- export type TransitionalProjectData = ProjectForUi | IProjectWithCount;
18
17
  export type ProjectForInsights = {
19
18
  id: string;
20
19
  health: number;
@@ -25,11 +24,13 @@ export type ProjectForInsights = {
25
24
  avgTimeToProduction: number;
26
25
  };
27
26
  export interface IProjectReadModel {
28
- getProjectsForAdminUi(query?: IProjectQuery, userId?: number): Promise<ProjectForUi[]>;
27
+ getProjectsForAdminUi(query?: IProjectQuery & IProjectsQuery, userId?: number): Promise<ProjectForUi[]>;
29
28
  getProjectsForInsights(query?: IProjectQuery): Promise<ProjectForInsights[]>;
30
29
  getFeatureProject(featureName: string): Promise<{
31
30
  project: string;
32
31
  createdAt: Date;
33
32
  } | null>;
33
+ getProjectsByUser(userId: number): Promise<string[]>;
34
+ getProjectsFavoritedByUser(userId: number): Promise<string[]>;
34
35
  }
35
36
  //# sourceMappingURL=project-read-model-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-read-model-type.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/project/project-read-model-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,IAAI,GAAG,IAAI,CAAC;IACnC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;CAC9B,CAAC;AAGF,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG,iBAAiB,CAAC;AAEvE,MAAM,MAAM,kBAAkB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4BAA4B,EAAE,MAAM,CAAC;IACrC,mBAAmB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAC9B,qBAAqB,CACjB,KAAK,CAAC,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3B,sBAAsB,CAClB,KAAK,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACjC,iBAAiB,CACb,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CAC3D"}
1
+ {"version":3,"file":"project-read-model-type.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/project/project-read-model-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,MAAM,YAAY,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,IAAI,GAAG,IAAI,CAAC;IACnC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4BAA4B,EAAE,MAAM,CAAC;IACrC,mBAAmB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAC9B,qBAAqB,CACjB,KAAK,CAAC,EAAE,aAAa,GAAG,cAAc,EACtC,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3B,sBAAsB,CAClB,KAAK,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACjC,iBAAiB,CACb,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACxD,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACjE"}
@@ -2,7 +2,7 @@
2
2
  import type { IFlagResolver } from '../../types';
3
3
  import type { Db } from '../../db/db';
4
4
  import type { IProjectReadModel, ProjectForInsights, ProjectForUi } from './project-read-model-type';
5
- import type { IProjectQuery } from './project-store-type';
5
+ import type { IProjectQuery, IProjectsQuery } from './project-store-type';
6
6
  import type EventEmitter from 'events';
7
7
  export declare class ProjectReadModel implements IProjectReadModel {
8
8
  private db;
@@ -13,8 +13,10 @@ export declare class ProjectReadModel implements IProjectReadModel {
13
13
  project: string;
14
14
  createdAt: Date;
15
15
  } | null>;
16
- getProjectsForAdminUi(query?: IProjectQuery, userId?: number): Promise<ProjectForUi[]>;
16
+ getProjectsForAdminUi(query?: IProjectQuery & IProjectsQuery, userId?: number): Promise<ProjectForUi[]>;
17
17
  getProjectsForInsights(query?: IProjectQuery): Promise<ProjectForInsights[]>;
18
18
  private getMembersCount;
19
+ getProjectsByUser(userId: number): Promise<string[]>;
20
+ getProjectsFavoritedByUser(userId: number): Promise<string[]>;
19
21
  }
20
22
  //# sourceMappingURL=project-read-model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-read-model.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/project/project-read-model.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EACR,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAqCvC,qBAAa,gBAAiB,YAAW,iBAAiB;IACtD,OAAO,CAAC,EAAE,CAAK;IAEf,OAAO,CAAC,KAAK,CAAW;IAExB,OAAO,CAAC,YAAY,CAAgB;gBAExB,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa;IAUjE,iBAAiB,CACnB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAcjD,qBAAqB,CACvB,KAAK,CAAC,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,EAAE,CAAC;IAyFpB,sBAAsB,CACxB,KAAK,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,kBAAkB,EAAE,CAAC;YA4DlB,eAAe;CA2BhC"}
1
+ {"version":3,"file":"project-read-model.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/project/project-read-model.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EACR,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAqCvC,qBAAa,gBAAiB,YAAW,iBAAiB;IACtD,OAAO,CAAC,EAAE,CAAK;IAEf,OAAO,CAAC,KAAK,CAAW;IAExB,OAAO,CAAC,YAAY,CAAgB;gBAExB,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa;IAUjE,iBAAiB,CACnB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAcjD,qBAAqB,CACvB,KAAK,CAAC,EAAE,aAAa,GAAG,cAAc,EACtC,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,EAAE,CAAC;IAuFpB,sBAAsB,CACxB,KAAK,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAuDlB,eAAe;IA4BvB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgCpD,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAWtE"}
@@ -63,27 +63,26 @@ class ProjectReadModel {
63
63
  join.on('events.feature_name', '=', 'features.name').andOn('events.project', '=', 'projects.id');
64
64
  })
65
65
  .orderBy('projects.name', 'asc');
66
- if (this.flagResolver.isEnabled('archiveProjects')) {
67
- if (query?.archived === true) {
68
- projects = projects.whereNot(`${TABLE}.archived_at`, null);
69
- }
70
- else {
71
- projects = projects.where(`${TABLE}.archived_at`, null);
72
- }
66
+ if (query?.archived === true) {
67
+ projects = projects.whereNot(`${TABLE}.archived_at`, null);
68
+ }
69
+ else {
70
+ projects = projects.where(`${TABLE}.archived_at`, null);
73
71
  }
74
72
  if (query?.id) {
75
73
  projects = projects.where(`${TABLE}.id`, query.id);
76
74
  }
75
+ if (query?.ids) {
76
+ projects = projects.whereIn(`${TABLE}.id`, query.ids);
77
+ }
77
78
  let selectColumns = [
78
79
  this.db.raw('projects.id, projects.name, projects.description, projects.health, projects.created_at, ' +
79
80
  'count(DISTINCT features.name) FILTER (WHERE features.archived_at is null) AS number_of_features, ' +
80
81
  'MAX(last_seen_at_metrics.last_seen_at) AS last_usage, ' +
81
82
  'MAX(events.created_at) AS last_updated'),
82
83
  'project_settings.project_mode',
84
+ 'projects.archived_at',
83
85
  ];
84
- if (this.flagResolver.isEnabled('archiveProjects')) {
85
- selectColumns.push(`${TABLE}.archived_at`);
86
- }
87
86
  let groupByColumns = ['projects.id', 'project_settings.project_mode'];
88
87
  if (userId) {
89
88
  projects = projects.leftJoin(`favorite_projects`, function () {
@@ -115,13 +114,11 @@ class ProjectReadModel {
115
114
  .leftJoin('features', 'features.project', 'projects.id')
116
115
  .leftJoin('project_stats', 'project_stats.project', 'projects.id')
117
116
  .orderBy('projects.name', 'asc');
118
- if (this.flagResolver.isEnabled('archiveProjects')) {
119
- if (query?.archived === true) {
120
- projects = projects.whereNot(`${TABLE}.archived_at`, null);
121
- }
122
- else {
123
- projects = projects.where(`${TABLE}.archived_at`, null);
124
- }
117
+ if (query?.archived === true) {
118
+ projects = projects.whereNot(`${TABLE}.archived_at`, null);
119
+ }
120
+ else {
121
+ projects = projects.where(`${TABLE}.archived_at`, null);
125
122
  }
126
123
  if (query?.id) {
127
124
  projects = projects.where(`${TABLE}.id`, query.id);
@@ -132,10 +129,8 @@ class ProjectReadModel {
132
129
  'count(features.name) FILTER (WHERE features.archived_at is null and features.stale IS TRUE) AS stale_feature_count, ' +
133
130
  'count(features.name) FILTER (WHERE features.archived_at is null and features.potentially_stale IS TRUE) AS potentially_stale_feature_count'),
134
131
  'project_stats.avg_time_to_prod_current_window',
132
+ 'projects.archived_at',
135
133
  ];
136
- if (this.flagResolver.isEnabled('archiveProjects')) {
137
- selectColumns.push(`${TABLE}.archived_at`);
138
- }
139
134
  const groupByColumns = [
140
135
  'projects.id',
141
136
  'project_stats.avg_time_to_prod_current_window',
@@ -176,6 +171,39 @@ class ProjectReadModel {
176
171
  memberTimer();
177
172
  return members;
178
173
  }
174
+ async getProjectsByUser(userId) {
175
+ const projects = await this.db
176
+ .from((db) => {
177
+ db.select('role_user.project')
178
+ .from('role_user')
179
+ .leftJoin('roles', 'role_user.role_id', 'roles.id')
180
+ .leftJoin('projects', 'role_user.project', 'projects.id')
181
+ .where('user_id', userId)
182
+ .andWhere('projects.archived_at', null)
183
+ .union((queryBuilder) => {
184
+ queryBuilder
185
+ .select('group_role.project')
186
+ .from('group_role')
187
+ .leftJoin('group_user', 'group_user.group_id', 'group_role.group_id')
188
+ .leftJoin('projects', 'group_role.project', 'projects.id')
189
+ .where('group_user.user_id', userId)
190
+ .andWhere('projects.archived_at', null);
191
+ })
192
+ .as('query');
193
+ })
194
+ .pluck('project');
195
+ return projects;
196
+ }
197
+ async getProjectsFavoritedByUser(userId) {
198
+ const favoritedProjects = await this.db
199
+ .select('favorite_projects.project')
200
+ .from('favorite_projects')
201
+ .leftJoin('projects', 'favorite_projects.project', 'projects.id')
202
+ .where('favorite_projects.user_id', userId)
203
+ .andWhere('projects.archived_at', null)
204
+ .pluck('project');
205
+ return favoritedProjects;
206
+ }
179
207
  }
180
208
  exports.ProjectReadModel = ProjectReadModel;
181
209
  //# sourceMappingURL=project-read-model.js.map