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.
- package/dist/lib/addons/datadog.d.ts.map +1 -1
- package/dist/lib/addons/datadog.js +9 -7
- package/dist/lib/addons/datadog.js.map +1 -1
- package/dist/lib/addons/feature-event-formatter-md-events.d.ts +8 -0
- package/dist/lib/addons/feature-event-formatter-md-events.d.ts.map +1 -0
- package/dist/lib/addons/feature-event-formatter-md-events.js +297 -0
- package/dist/lib/addons/feature-event-formatter-md-events.js.map +1 -0
- package/dist/lib/addons/feature-event-formatter-md.d.ts +17 -6
- package/dist/lib/addons/feature-event-formatter-md.d.ts.map +1 -1
- package/dist/lib/addons/feature-event-formatter-md.js +32 -246
- package/dist/lib/addons/feature-event-formatter-md.js.map +1 -1
- package/dist/lib/addons/feature-event-formatter-md.test.js +3 -1
- package/dist/lib/addons/feature-event-formatter-md.test.js.map +1 -1
- package/dist/lib/addons/new-relic.d.ts.map +1 -1
- package/dist/lib/addons/new-relic.js +3 -1
- package/dist/lib/addons/new-relic.js.map +1 -1
- package/dist/lib/addons/slack-app.d.ts.map +1 -1
- package/dist/lib/addons/slack-app.js +12 -7
- package/dist/lib/addons/slack-app.js.map +1 -1
- package/dist/lib/addons/slack.d.ts.map +1 -1
- package/dist/lib/addons/slack.js +14 -9
- package/dist/lib/addons/slack.js.map +1 -1
- package/dist/lib/addons/teams.d.ts.map +1 -1
- package/dist/lib/addons/teams.js +9 -7
- package/dist/lib/addons/teams.js.map +1 -1
- package/dist/lib/addons/webhook.d.ts.map +1 -1
- package/dist/lib/addons/webhook.js +3 -1
- package/dist/lib/addons/webhook.js.map +1 -1
- package/dist/lib/db/account-store.d.ts +2 -1
- package/dist/lib/db/account-store.d.ts.map +1 -1
- package/dist/lib/db/account-store.js +18 -0
- package/dist/lib/db/account-store.js.map +1 -1
- package/dist/lib/features/events/event-search-controller.d.ts +3 -1
- package/dist/lib/features/events/event-search-controller.d.ts.map +1 -1
- package/dist/lib/features/events/event-search-controller.js +21 -2
- package/dist/lib/features/events/event-search-controller.js.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-service.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-service.js +4 -12
- package/dist/lib/features/feature-toggle/feature-toggle-service.js.map +1 -1
- package/dist/lib/features/feature-toggle/tests/feature-toggle-service.e2e.test.js +2 -11
- package/dist/lib/features/feature-toggle/tests/feature-toggle-service.e2e.test.js.map +1 -1
- package/dist/lib/features/index.d.ts +1 -0
- package/dist/lib/features/index.d.ts.map +1 -1
- package/dist/lib/features/index.js +1 -0
- package/dist/lib/features/index.js.map +1 -1
- package/dist/lib/features/metrics/client-metrics/client-metrics-store-v2.js +1 -1
- package/dist/lib/features/metrics/client-metrics/client-metrics-store-v2.js.map +1 -1
- package/dist/lib/features/onboarding/onboarding-read-model.d.ts.map +1 -1
- package/dist/lib/features/onboarding/onboarding-read-model.js +1 -0
- package/dist/lib/features/onboarding/onboarding-read-model.js.map +1 -1
- package/dist/lib/features/personal-dashboard/createPersonalDashboardService.d.ts +6 -0
- package/dist/lib/features/personal-dashboard/createPersonalDashboardService.d.ts.map +1 -0
- package/dist/lib/features/personal-dashboard/createPersonalDashboardService.js +39 -0
- package/dist/lib/features/personal-dashboard/createPersonalDashboardService.js.map +1 -0
- package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.d.ts +8 -0
- package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.d.ts.map +1 -0
- package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.js +16 -0
- package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.js.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.d.ts +16 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.d.ts.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.e2e.test.d.ts +2 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.e2e.test.d.ts.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.e2e.test.js +237 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.e2e.test.js.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.js +71 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.js.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-read-model-type.d.ts +27 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-read-model-type.d.ts.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-read-model-type.js +3 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-read-model-type.js.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-read-model.d.ts +9 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-read-model.d.ts.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-read-model.js +78 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-read-model.js.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-service.d.ts +25 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-service.d.ts.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-service.js +75 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-service.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/flexible-rollout-strategy.d.ts.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/flexible-rollout-strategy.js +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/flexible-rollout-strategy.js.map +1 -1
- package/dist/lib/features/project/fake-project-owners-read-model.d.ts +6 -3
- package/dist/lib/features/project/fake-project-owners-read-model.d.ts.map +1 -1
- package/dist/lib/features/project/fake-project-owners-read-model.js +6 -0
- package/dist/lib/features/project/fake-project-owners-read-model.js.map +1 -1
- package/dist/lib/features/project/fake-project-read-model.d.ts +2 -0
- package/dist/lib/features/project/fake-project-read-model.d.ts.map +1 -1
- package/dist/lib/features/project/fake-project-read-model.js +6 -0
- package/dist/lib/features/project/fake-project-read-model.js.map +1 -1
- package/dist/lib/features/project/project-owners-read-model.d.ts +10 -5
- package/dist/lib/features/project/project-owners-read-model.d.ts.map +1 -1
- package/dist/lib/features/project/project-owners-read-model.js +26 -10
- package/dist/lib/features/project/project-owners-read-model.js.map +1 -1
- package/dist/lib/features/project/project-owners-read-model.test.js +62 -20
- package/dist/lib/features/project/project-owners-read-model.test.js.map +1 -1
- package/dist/lib/features/project/project-owners-read-model.type.d.ts +13 -5
- package/dist/lib/features/project/project-owners-read-model.type.d.ts.map +1 -1
- package/dist/lib/features/project/project-read-model-type.d.ts +5 -4
- package/dist/lib/features/project/project-read-model-type.d.ts.map +1 -1
- package/dist/lib/features/project/project-read-model.d.ts +4 -2
- package/dist/lib/features/project/project-read-model.d.ts.map +1 -1
- package/dist/lib/features/project/project-read-model.js +48 -20
- package/dist/lib/features/project/project-read-model.js.map +1 -1
- package/dist/lib/features/project/project-service.d.ts +4 -4
- package/dist/lib/features/project/project-service.d.ts.map +1 -1
- package/dist/lib/features/project/project-service.e2e.test.js +20 -3
- package/dist/lib/features/project/project-service.e2e.test.js.map +1 -1
- package/dist/lib/features/project/project-service.js +7 -15
- package/dist/lib/features/project/project-service.js.map +1 -1
- package/dist/lib/features/project/project-store-type.d.ts +4 -6
- package/dist/lib/features/project/project-store-type.d.ts.map +1 -1
- package/dist/lib/features/project/project-store.d.ts +1 -5
- package/dist/lib/features/project/project-store.d.ts.map +1 -1
- package/dist/lib/features/project/project-store.e2e.test.js +1 -1
- package/dist/lib/features/project/project-store.e2e.test.js.map +1 -1
- package/dist/lib/features/project/project-store.js +5 -135
- package/dist/lib/features/project/project-store.js.map +1 -1
- package/dist/lib/metrics.d.ts.map +1 -1
- package/dist/lib/metrics.js +18 -1
- package/dist/lib/metrics.js.map +1 -1
- package/dist/lib/metrics.test.js +2 -2
- package/dist/lib/metrics.test.js.map +1 -1
- package/dist/lib/openapi/spec/event-schema.d.ts +10 -0
- package/dist/lib/openapi/spec/event-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/event-schema.js +10 -0
- package/dist/lib/openapi/spec/event-schema.js.map +1 -1
- package/dist/lib/openapi/spec/event-search-response-schema.d.ts +10 -0
- package/dist/lib/openapi/spec/event-search-response-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/events-schema.d.ts +10 -0
- package/dist/lib/openapi/spec/events-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/feature-events-schema.d.ts +10 -0
- package/dist/lib/openapi/spec/feature-events-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/index.d.ts +2 -0
- package/dist/lib/openapi/spec/index.d.ts.map +1 -1
- package/dist/lib/openapi/spec/index.js +2 -0
- package/dist/lib/openapi/spec/index.js.map +1 -1
- package/dist/lib/openapi/spec/integration-event-schema.d.ts +10 -0
- package/dist/lib/openapi/spec/integration-event-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/integration-events-schema.d.ts +20 -0
- package/dist/lib/openapi/spec/integration-events-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.d.ts +168 -0
- package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.d.ts.map +1 -0
- package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.js +81 -0
- package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.js.map +1 -0
- package/dist/lib/openapi/spec/personal-dashboard-schema.d.ts +142 -0
- package/dist/lib/openapi/spec/personal-dashboard-schema.d.ts.map +1 -0
- package/dist/lib/openapi/spec/personal-dashboard-schema.js +149 -0
- package/dist/lib/openapi/spec/personal-dashboard-schema.js.map +1 -0
- package/dist/lib/routes/admin-api/index.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/index.js +2 -0
- package/dist/lib/routes/admin-api/index.js.map +1 -1
- package/dist/lib/schema/role-schema.js +1 -1
- package/dist/lib/schema/role-schema.js.map +1 -1
- package/dist/lib/services/access-service.d.ts +1 -0
- package/dist/lib/services/access-service.d.ts.map +1 -1
- package/dist/lib/services/access-service.js +15 -6
- package/dist/lib/services/access-service.js.map +1 -1
- package/dist/lib/services/access-service.test.js +22 -0
- package/dist/lib/services/access-service.test.js.map +1 -1
- package/dist/lib/services/clean-permission-environment.test.d.ts +2 -0
- package/dist/lib/services/clean-permission-environment.test.d.ts.map +1 -0
- package/dist/lib/services/clean-permission-environment.test.js +114 -0
- package/dist/lib/services/clean-permission-environment.test.js.map +1 -0
- package/dist/lib/services/index.d.ts +2 -1
- package/dist/lib/services/index.d.ts.map +1 -1
- package/dist/lib/services/index.js +12 -1
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/types/events.d.ts +4 -0
- package/dist/lib/types/events.d.ts.map +1 -1
- package/dist/lib/types/events.js.map +1 -1
- package/dist/lib/types/experimental.d.ts +1 -1
- package/dist/lib/types/experimental.d.ts.map +1 -1
- package/dist/lib/types/experimental.js +2 -5
- package/dist/lib/types/experimental.js.map +1 -1
- package/dist/lib/types/model.d.ts +1 -10
- package/dist/lib/types/model.d.ts.map +1 -1
- package/dist/lib/types/services.d.ts +3 -0
- package/dist/lib/types/services.d.ts.map +1 -1
- package/dist/lib/types/stores/account-store.d.ts +2 -1
- package/dist/lib/types/stores/account-store.d.ts.map +1 -1
- package/dist/lib/types/user.d.ts +1 -0
- package/dist/lib/types/user.d.ts.map +1 -1
- package/dist/lib/types/user.js.map +1 -1
- package/dist/migrations/20240919083625-client-metrics-env-variants-daily-to-bigint.d.ts +3 -0
- package/dist/migrations/20240919083625-client-metrics-env-variants-daily-to-bigint.d.ts.map +1 -0
- package/dist/migrations/20240919083625-client-metrics-env-variants-daily-to-bigint.js +8 -0
- package/dist/migrations/20240919083625-client-metrics-env-variants-daily-to-bigint.js.map +1 -0
- package/dist/server-dev.js +1 -3
- package/dist/server-dev.js.map +1 -1
- package/dist/test/fixtures/fake-access-store.d.ts +2 -2
- package/dist/test/fixtures/fake-access-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-access-store.js +5 -3
- package/dist/test/fixtures/fake-access-store.js.map +1 -1
- package/dist/test/fixtures/fake-account-store.d.ts +1 -0
- package/dist/test/fixtures/fake-account-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-account-store.js +3 -0
- package/dist/test/fixtures/fake-account-store.js.map +1 -1
- package/dist/test/fixtures/fake-project-store.d.ts +2 -4
- package/dist/test/fixtures/fake-project-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-project-store.js +0 -20
- package/dist/test/fixtures/fake-project-store.js.map +1 -1
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/{AdvancedPlayground-CRdeeG3w.js → AdvancedPlayground-eDTjzS3E.js} +2 -2
- package/frontend/build/static/{CreateProject-8AyZj2dp.js → CreateProject-DEpFVLhl.js} +1 -1
- package/frontend/build/static/FeatureMetricsChart-CZKpaUOH.js +2 -0
- package/frontend/build/static/FeatureStaleDialog-2jleuqhn.js +7 -0
- package/frontend/build/static/FeatureViewLazyExport-CeAl2Yig.js +10 -0
- package/frontend/build/static/FlagMetricsChart-BRMGXeEU.js +2 -0
- package/frontend/build/static/{LazyAdminExport-0g_UOhr3.js → LazyAdminExport-CpfHUB52.js} +14 -14
- package/frontend/build/static/LazyProjectExport-XXHA0k8I.js +735 -0
- package/frontend/build/static/{LineChartComponent-BLXX5chp.js → LineChartComponent-B5O_VFku.js} +1 -1
- package/frontend/build/static/{NetworkOverview-DqGLVIJ6.js → NetworkOverview-DU1OT7gB.js} +1 -1
- package/frontend/build/static/NetworkTraffic-DQdYqYoU.js +1 -0
- package/frontend/build/static/NetworkTrafficUsage-CkyWiuAD.js +1 -0
- package/frontend/build/static/{ReactJSONEditor-Bvhd5heT.js → ReactJSONEditor-DlQuk0pf.js} +1 -1
- package/frontend/build/static/{RoleCell-DGcue0jn.js → RoleCell-DMPAgQMx.js} +1 -1
- package/frontend/build/static/{StrategyItemContainer-Das6_30A.js → StrategyItemContainer-L9vwk9uU.js} +1 -1
- package/frontend/build/static/aggregateFeatureMetrics-CLK9MToQ.js +1 -0
- package/frontend/build/static/formatTickValue-DArtcDRb.js +6 -0
- package/frontend/build/static/{index-BsIpdLcw.js → index-DK5jinWf.js} +1 -1
- package/frontend/build/static/index-JQ6lMAyk.js +524 -0
- package/frontend/build/static/onboardingConcepts-1jcVefeL.png +0 -0
- package/frontend/build/static/unknownify-C7SyNno2.js +1 -0
- package/frontend/build/static/{useApiTokens-5JgqgHim.js → useApiTokens-DQBXJ3PL.js} +1 -1
- package/frontend/package.json +13 -13
- package/package.json +7 -6
- package/frontend/build/static/FeatureMetricsChart-DEo4WxO1.js +0 -2
- package/frontend/build/static/FeatureStaleDialog-CrsbH2rq.js +0 -7
- package/frontend/build/static/FeatureViewLazyExport-BwY7TYmZ.js +0 -10
- package/frontend/build/static/LazyProjectExport-C1eSkT3Z.js +0 -177
- package/frontend/build/static/NetworkTraffic-BWFLlaz7.js +0 -1
- package/frontend/build/static/NetworkTrafficUsage-BvoBumVR.js +0 -6
- package/frontend/build/static/index-Cx91uh9W.js +0 -524
- package/frontend/build/static/unknownify-8qa4PVkQ.js +0 -1
package/dist/lib/features/playground/feature-evaluator/strategy/flexible-rollout-strategy.js.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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
|
|
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,
|
|
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":";;;
|
|
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;
|
|
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;
|
|
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,
|
|
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
|
|
6
|
+
static addOwnerData<T extends {
|
|
7
|
+
id: string;
|
|
8
|
+
}>(projects: T[], owners: ProjectOwnersDictionary): WithProjectOwners<T>;
|
|
8
9
|
private getAllProjectUsersByRole;
|
|
9
10
|
private getAllProjectGroupsByRole;
|
|
10
|
-
|
|
11
|
-
|
|
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,
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
93
|
-
const
|
|
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":";;;AACA,uCAAuC;AACvC,
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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('
|
|
264
|
-
const
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
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 {
|
|
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 =
|
|
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
|
|
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,
|
|
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 {
|
|
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,
|
|
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;
|
|
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 (
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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 (
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
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
|