@knpkv/codecommit-web 0.7.0 → 0.9.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/client/assets/index-C9jULpBN.js +456 -0
- package/dist/client/assets/index-DTVrh9Vx.css +1 -0
- package/dist/client/index.html +2 -2
- package/dist/server/Api.d.ts +105 -2
- package/dist/server/Api.d.ts.map +1 -1
- package/dist/server/Api.js +131 -1
- package/dist/server/Api.js.map +1 -1
- package/dist/server/Server.d.ts.map +1 -1
- package/dist/server/Server.js +27 -7
- package/dist/server/Server.js.map +1 -1
- package/dist/server/handlers/audit-live.d.ts +3 -0
- package/dist/server/handlers/audit-live.d.ts.map +1 -0
- package/dist/server/handlers/audit-live.js +29 -0
- package/dist/server/handlers/audit-live.js.map +1 -0
- package/dist/server/handlers/events-live.d.ts +1 -1
- package/dist/server/handlers/events-live.d.ts.map +1 -1
- package/dist/server/handlers/events-live.js +33 -3
- package/dist/server/handlers/events-live.js.map +1 -1
- package/dist/server/handlers/index.d.ts +2 -0
- package/dist/server/handlers/index.d.ts.map +1 -1
- package/dist/server/handlers/index.js +2 -0
- package/dist/server/handlers/index.js.map +1 -1
- package/dist/server/handlers/notifications-live.d.ts.map +1 -1
- package/dist/server/handlers/notifications-live.js +11 -16
- package/dist/server/handlers/notifications-live.js.map +1 -1
- package/dist/server/handlers/permissions-live.d.ts +3 -0
- package/dist/server/handlers/permissions-live.d.ts.map +1 -0
- package/dist/server/handlers/permissions-live.js +34 -0
- package/dist/server/handlers/permissions-live.js.map +1 -0
- package/dist/server/handlers/prs-live.d.ts.map +1 -1
- package/dist/server/handlers/prs-live.js +72 -11
- package/dist/server/handlers/prs-live.js.map +1 -1
- package/package.json +2 -2
- package/dist/client/assets/index-Bdn-6XJ9.css +0 -1
- package/dist/client/assets/index-DlRfzSp5.js +0 -436
package/dist/server/Server.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { Etag, FetchHttpClient, FileSystem, HttpLayerRouter, HttpPlatform, HttpServerRequest, HttpServerResponse, Path } from "@effect/platform";
|
|
2
2
|
import { BunContext, BunFileSystem, BunHttpServer } from "@effect/platform-bun";
|
|
3
|
-
import { AwsClient, AwsClientConfig, CacheService, ConfigService, PRService, SandboxService, StatsService } from "@knpkv/codecommit-core";
|
|
3
|
+
import { AwsClient, AwsClientConfig, CacheService, ConfigService, PermissionService, PRService, SandboxService, StatsService } from "@knpkv/codecommit-core";
|
|
4
|
+
import { AwsClientGatedLive, InnerAwsClient } from "@knpkv/codecommit-core/AwsClient/AwsClientGated.js";
|
|
5
|
+
import { AuditLogRepo } from "@knpkv/codecommit-core/PermissionService/AuditLog.js";
|
|
6
|
+
import { PermissionGateLiveLayer, PermissionGateLiveTag } from "@knpkv/codecommit-core/PermissionService/PermissionGateLive.js";
|
|
4
7
|
import { Cause, Config, Duration, Effect, Layer, Option, Predicate, Ref } from "effect";
|
|
5
8
|
import { fileURLToPath } from "node:url";
|
|
6
9
|
import { CodeCommitApi } from "./Api.js";
|
|
7
|
-
import { AccountsLive, ConfigLive, EventsLive, NotificationsLive, PrsLive, SandboxLive, StatsLive, SubscriptionsLive } from "./handlers/index.js";
|
|
10
|
+
import { AccountsLive, AuditLive, ConfigLive, EventsLive, NotificationsLive, PermissionsLive, PrsLive, SandboxLive, StatsLive, SubscriptionsLive } from "./handlers/index.js";
|
|
8
11
|
// MIME types for common files
|
|
9
12
|
const mimeTypes = {
|
|
10
13
|
".html": "text/html",
|
|
@@ -65,7 +68,7 @@ const serveStatic = Effect.gen(function* () {
|
|
|
65
68
|
return HttpServerResponse.text("Not Found", { status: 404 });
|
|
66
69
|
});
|
|
67
70
|
// API handlers layer
|
|
68
|
-
const HandlersLive = Layer.mergeAll(PrsLive, ConfigLive, AccountsLive, EventsLive, NotificationsLive, SubscriptionsLive, SandboxLive, StatsLive);
|
|
71
|
+
const HandlersLive = Layer.mergeAll(PrsLive, ConfigLive, AccountsLive, EventsLive, NotificationsLive, SubscriptionsLive, SandboxLive, StatsLive, PermissionsLive, AuditLive);
|
|
69
72
|
// Platform dependencies
|
|
70
73
|
const PlatformLive = Layer.mergeAll(Path.layer, BunFileSystem.layer, FetchHttpClient.layer);
|
|
71
74
|
// Base services - ConfigService needs Platform + EventsHub
|
|
@@ -74,19 +77,36 @@ const ConfigLive_ = ConfigService.ConfigServiceLive.pipe(Layer.provide(PlatformL
|
|
|
74
77
|
// EventsHub.Default is shared across all repos via layer memoization
|
|
75
78
|
// orDie scoped to cache layers only: DB/migration errors become defects here
|
|
76
79
|
const ReposLive = Layer.mergeAll(CacheService.PullRequestRepo.Default, CacheService.CommentRepo.Default, CacheService.NotificationRepo.Default, CacheService.SubscriptionRepo.Default, CacheService.SyncMetadataRepo.Default, CacheService.EventsHub.Default).pipe(Layer.orDie);
|
|
80
|
+
// Permission infrastructure
|
|
81
|
+
const PermissionLive = Layer.mergeAll(PermissionService.PermissionService.Default, PermissionGateLiveTag.Default, AuditLogRepo.Default).pipe(Layer.provide(PlatformLive), Layer.provide(ReposLive));
|
|
82
|
+
// PermissionGate (abstract) provided from PermissionGateLive (concrete)
|
|
83
|
+
const PermissionGateLive_ = PermissionGateLiveLayer.pipe(Layer.provide(PermissionGateLiveTag.Default), Layer.provide(ReposLive));
|
|
84
|
+
// Original AwsClient → InnerAwsClient
|
|
85
|
+
const InnerAwsClientLive = Layer.effect(InnerAwsClient, AwsClient.AwsClient).pipe(Layer.provide(AwsClient.AwsClientLive), Layer.provide(AwsClientConfig.Default), Layer.provide(FetchHttpClient.layer));
|
|
86
|
+
// Gated AwsClient wrapping InnerAwsClient with permission checks + audit
|
|
87
|
+
const GatedAwsClientLive = AwsClientGatedLive.pipe(Layer.provide(InnerAwsClientLive), Layer.provide(PermissionLive), Layer.provide(PermissionGateLive_));
|
|
77
88
|
// PRService dependencies
|
|
78
|
-
const PRServiceDeps = Layer.mergeAll(
|
|
89
|
+
const PRServiceDeps = Layer.mergeAll(GatedAwsClientLive, ReposLive).pipe(Layer.provideMerge(ConfigLive_), Layer.provide(AwsClientConfig.Default), Layer.provide(PlatformLive));
|
|
79
90
|
// PRService with all dependencies
|
|
80
91
|
const PRServiceLive_ = PRService.PRServiceLive.pipe(Layer.provideMerge(PRServiceDeps));
|
|
81
92
|
// AwsClient for handlers that call AWS directly (e.g., createPR)
|
|
82
|
-
const AwsClientLive_ =
|
|
93
|
+
const AwsClientLive_ = GatedAwsClientLive;
|
|
83
94
|
// Sandbox services — DockerService uses `docker` CLI via Command, no HttpClient needed
|
|
84
95
|
// SandboxService reads ConfigService at runtime for sandbox settings
|
|
85
96
|
const SandboxServicesLive = Layer.mergeAll(SandboxService.SandboxService.Default, SandboxService.DockerService.Default, CacheService.SandboxRepo.Default).pipe(Layer.provide(ConfigLive_), Layer.provide(ReposLive), Layer.provide(PlatformLive));
|
|
86
97
|
// Stats service — StatsRepo provided first, then rest via PRServiceDeps
|
|
87
98
|
const StatsServiceLive = StatsService.StatsService.Default.pipe(Layer.provide(CacheService.StatsRepo.Default), Layer.provide(PRServiceDeps));
|
|
88
99
|
// All services needed by handlers
|
|
89
|
-
const AllServicesLive = Layer.mergeAll(PRServiceLive_, ConfigLive_, AwsClientLive_, SandboxServicesLive, StatsServiceLive);
|
|
100
|
+
const AllServicesLive = Layer.mergeAll(PRServiceLive_, ConfigLive_, AwsClientLive_, SandboxServicesLive, StatsServiceLive, PermissionLive);
|
|
101
|
+
// Prune old audit log entries on startup
|
|
102
|
+
const AuditPrune = Layer.effectDiscard(Effect.gen(function* () {
|
|
103
|
+
const auditLog = yield* AuditLogRepo;
|
|
104
|
+
const permService = yield* PermissionService.PermissionService;
|
|
105
|
+
const retentionDays = yield* permService.getAuditRetention();
|
|
106
|
+
const deleted = yield* auditLog.prune(retentionDays).pipe(Effect.catchAll(() => Effect.succeed(0)));
|
|
107
|
+
if (deleted > 0)
|
|
108
|
+
yield* Effect.logInfo(`Pruned ${deleted} audit log entries older than ${retentionDays} days`);
|
|
109
|
+
}));
|
|
90
110
|
// Fork auto-refresh loop: initial refresh + recurring based on config
|
|
91
111
|
const AutoRefresh = Layer.effectDiscard(Effect.gen(function* () {
|
|
92
112
|
const prService = yield* PRService.PRService;
|
|
@@ -128,7 +148,7 @@ const SandboxStartup = Layer.effectDiscard(Effect.gen(function* () {
|
|
|
128
148
|
: Effect.logWarning("Sandbox GC failed", c)))));
|
|
129
149
|
}));
|
|
130
150
|
// API router with handlers — AutoRefresh shares AllServicesLive with handlers
|
|
131
|
-
const ApiLive = Layer.mergeAll(HttpLayerRouter.addHttpApi(CodeCommitApi).pipe(Layer.provide(HandlersLive)), AutoRefresh, SandboxStartup).pipe(Layer.provide(AllServicesLive), Layer.provide(FetchHttpClient.layer));
|
|
151
|
+
const ApiLive = Layer.mergeAll(HttpLayerRouter.addHttpApi(CodeCommitApi).pipe(Layer.provide(HandlersLive)), AutoRefresh, AuditPrune, SandboxStartup).pipe(Layer.provide(AllServicesLive), Layer.provide(FetchHttpClient.layer));
|
|
132
152
|
// Static file router - catches all non-API routes
|
|
133
153
|
const StaticRouter = HttpLayerRouter.use((router) => router.add("GET", "/*", serveStatic));
|
|
134
154
|
const AllowedOrigins = Config.string("ALLOWED_ORIGINS").pipe(Config.map((s) => s.split(",")), Config.withDefault(["http://localhost:3000", "http://127.0.0.1:3000"]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/server/Server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/server/Server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,eAAe,EACf,UAAU,EACV,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,IAAI,EACL,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EACL,SAAS,EACT,eAAe,EACf,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,YAAY,EACb,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAA;AACvG,OAAO,EAAE,YAAY,EAAE,MAAM,sDAAsD,CAAA;AACnF,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,gEAAgE,CAAA;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,OAAO,EACP,WAAW,EACX,SAAS,EACT,iBAAiB,EAClB,MAAM,qBAAqB,CAAA;AAE5B,8BAA8B;AAC9B,MAAM,SAAS,GAA2B;IACxC,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,wBAAwB;IAC/B,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,kBAAkB;IAC1B,QAAQ,EAAE,YAAY;IACtB,MAAM,EAAE,UAAU;CACnB,CAAA;AAED,iEAAiE;AACjE,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACtC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC,iBAAiB,CAAA;IACtD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAA;IAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IAE7B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAA;IAChD,IAAI,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAE/C,uBAAuB;IACvB,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC9B,CAAC;IACD,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QACpB,QAAQ,GAAG,YAAY,CAAA;IACzB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAElD,kEAAkE;IAClE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,OAAO,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,IAAI,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YAClC,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAA;YAChE,OAAO,kBAAkB,CAAC,UAAU,CAAC,OAAO,EAAE;gBAC5C,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE;aACzC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,eAAe;IACf,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;IAChD,IAAI,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjD,OAAO,kBAAkB,CAAC,UAAU,CAAC,OAAO,EAAE;YAC5C,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE;SACzC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;AAC9D,CAAC,CAAC,CAAA;AAEF,qBAAqB;AACrB,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CACjC,OAAO,EACP,UAAU,EACV,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,eAAe,EACf,SAAS,CACV,CAAA;AAED,wBAAwB;AACxB,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CACjC,IAAI,CAAC,KAAK,EACV,aAAa,CAAC,KAAK,EACnB,eAAe,CAAC,KAAK,CACtB,CAAA;AAED,2DAA2D;AAC3D,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC,IAAI,CACtD,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAC3B,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAC9C,CAAA;AAED,yFAAyF;AACzF,qEAAqE;AACrE,6EAA6E;AAC7E,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAC9B,YAAY,CAAC,eAAe,CAAC,OAAO,EACpC,YAAY,CAAC,WAAW,CAAC,OAAO,EAChC,YAAY,CAAC,gBAAgB,CAAC,OAAO,EACrC,YAAY,CAAC,gBAAgB,CAAC,OAAO,EACrC,YAAY,CAAC,gBAAgB,CAAC,OAAO,EACrC,YAAY,CAAC,SAAS,CAAC,OAAO,CAC/B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAEnB,4BAA4B;AAC5B,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CACnC,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,EAC3C,qBAAqB,CAAC,OAAO,EAC7B,YAAY,CAAC,OAAO,CACrB,CAAC,IAAI,CACJ,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAC3B,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CACzB,CAAA;AAED,wEAAwE;AACxE,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,IAAI,CACtD,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAC5C,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CACzB,CAAA;AAED,sCAAsC;AACtC,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CACrC,cAAc,EACd,SAAS,CAAC,SAAS,CACpB,CAAC,IAAI,CACJ,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,EACtC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,EACtC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CACrC,CAAA;AAED,yEAAyE;AACzE,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,IAAI,CAChD,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,EACjC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAC7B,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CACnC,CAAA;AAED,yBAAyB;AACzB,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAClC,kBAAkB,EAClB,SAAS,CACV,CAAC,IAAI,CACJ,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,EAC/B,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,EACtC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAC5B,CAAA;AAED,kCAAkC;AAClC,MAAM,cAAc,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAA;AAEtF,iEAAiE;AACjE,MAAM,cAAc,GAAG,kBAAkB,CAAA;AAEzC,uFAAuF;AACvF,qEAAqE;AACrE,MAAM,mBAAmB,GAAG,KAAK,CAAC,QAAQ,CACxC,cAAc,CAAC,cAAc,CAAC,OAAO,EACrC,cAAc,CAAC,aAAa,CAAC,OAAO,EACpC,YAAY,CAAC,WAAW,CAAC,OAAO,CACjC,CAAC,IAAI,CACJ,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAC1B,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EACxB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAC5B,CAAA;AAED,wEAAwE;AACxE,MAAM,gBAAgB,GAAG,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAC7D,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,EAC7C,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAC7B,CAAA;AAED,kCAAkC;AAClC,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CACpC,cAAc,EACd,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,CACf,CAAA;AAED,yCAAyC;AACzC,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CACpC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IACpC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC,iBAAiB,CAAA;IAC9D,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAA;IAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACnG,IAAI,OAAO,GAAG,CAAC;QAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,OAAO,iCAAiC,aAAa,OAAO,CAAC,CAAA;AAChH,CAAC,CAAC,CACH,CAAA;AAED,sEAAsE;AACtE,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CACrC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAA;IAC5C,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,aAAa,CAAA;IAExD,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAC3C,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAW,CAAC,CAAC,CACnG,CAAA;QACD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAA;YACpE,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAA;YACxB,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAA;QAChD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7B,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC,IAAI,CAChD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CACpD,CACF,CACF,CAAA;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CACtB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAA;QACxB,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAA;QACpD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAChD,CAAC,CAAC,CACH,CAAA;AACH,CAAC,CAAC,CACH,CAAA;AAED,gEAAgE;AAChE,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CACxC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,cAAc,CAAA;IAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,aAAa,CAAA;IAClD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;IAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,iDAAiD,CAAC,CAAA;QAC3E,OAAM;IACR,CAAC;IACD,KAAK,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,CAAA;IACjC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAA;IAE9C,wDAAwD;IACxD,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CACtB,MAAM,CAAC,OAAO,CACZ,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QACxC,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,CAAA;IAChC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CACjC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAC9C,CAAC,CACH,CACF,CAAA;AACH,CAAC,CAAC,CACH,CAAA;AAED,8EAA8E;AAC9E,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAC5B,eAAe,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAC3E,WAAW,EACX,UAAU,EACV,cAAc,CACf,CAAC,IAAI,CACJ,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAC9B,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CACrC,CAAA;AAED,kDAAkD;AAClD,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAA;AAE1F,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAC1D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAC/B,MAAM,CAAC,WAAW,CAAC,CAAC,uBAAuB,EAAE,uBAAuB,CAAC,CAAC,CACvE,CAAA;AAED,6DAA6D;AAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CACjC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,cAAc,EAAE,EAAE,CAC5C,eAAe,CAAC,IAAI,CAAC;IACnB,cAAc;IACd,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;IACpE,cAAc,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;CAClD,CAAC,CAAC,CACN,CAAA;AAED,8EAA8E;AAC9E,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,IAAI,CAC1D,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EACvB,KAAK,CAAC,KAAK,CACZ,CAAA;AAED,6EAA6E;AAC7E,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;AAEpF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAA4C,EAAE,EAAE,CACzE,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI;AACnC,mFAAmF;AACnF,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,EAClE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAC/B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EACzB,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAChC,CAAA;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;AAE1E,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;AAEzE,MAAM,oBAAoB,GAAG,CAC3B,OAAwB,EACxB,UAA2B,EAC3B,EAAE,CACJ,CAAU,IAA4B,EAAE,EAAE,CACxC,IAAI,CAAC,IAAI,CACP,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE,CAChC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC1D,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAChC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACnE,IAAI,SAAS,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACpD,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;QAC9D,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAClB,CACF,CAAA;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEtC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAC1B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACjC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,uCAAuC,CAAC,EAAE,CAAC,CAAA;QACjE,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAA;IACrD,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CACnD,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { AuditLogRepo } from "@knpkv/codecommit-core/PermissionService/AuditLog.js";
|
|
2
|
+
export declare const AuditLive: import("effect/Layer").Layer<import("@effect/platform/HttpApiGroup").ApiGroup<"CodeCommitApi", "audit">, never, AuditLogRepo>;
|
|
3
|
+
//# sourceMappingURL=audit-live.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/audit-live.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,sDAAsD,CAAA;AAInF,eAAO,MAAM,SAAS,+HAqCrB,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title Audit log handler — query and export API call history
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import { HttpApiBuilder } from "@effect/platform";
|
|
7
|
+
import { AuditLogRepo } from "@knpkv/codecommit-core/PermissionService/AuditLog.js";
|
|
8
|
+
import { Effect } from "effect";
|
|
9
|
+
import { ApiError, CodeCommitApi } from "../Api.js";
|
|
10
|
+
export const AuditLive = HttpApiBuilder.group(CodeCommitApi, "audit", (handlers) => Effect.gen(function* () {
|
|
11
|
+
const auditLog = yield* AuditLogRepo;
|
|
12
|
+
return handlers
|
|
13
|
+
.handle("list", ({ urlParams }) => auditLog.findAll({
|
|
14
|
+
limit: urlParams.limit ?? 50,
|
|
15
|
+
offset: urlParams.offset ?? 0,
|
|
16
|
+
operation: urlParams.operation,
|
|
17
|
+
accountProfile: urlParams.accountProfile,
|
|
18
|
+
permissionState: urlParams.permissionState,
|
|
19
|
+
from: urlParams.from,
|
|
20
|
+
to: urlParams.to,
|
|
21
|
+
search: urlParams.search
|
|
22
|
+
}).pipe(Effect.tapError((e) => Effect.logWarning("Audit operation failed", e)), Effect.mapError(() => new ApiError({ message: "Audit query failed" }))))
|
|
23
|
+
.handle("export", ({ urlParams }) => auditLog.exportAll({
|
|
24
|
+
from: urlParams.from,
|
|
25
|
+
to: urlParams.to
|
|
26
|
+
}).pipe(Effect.tapError((e) => Effect.logWarning("Audit operation failed", e)), Effect.mapError(() => new ApiError({ message: "Audit query failed" }))))
|
|
27
|
+
.handle("clear", () => auditLog.clearAll().pipe(Effect.map((deleted) => ({ deleted })), Effect.tapError((e) => Effect.logWarning("Audit operation failed", e)), Effect.mapError(() => new ApiError({ message: "Audit query failed" }))));
|
|
28
|
+
}));
|
|
29
|
+
//# sourceMappingURL=audit-live.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-live.js","sourceRoot":"","sources":["../../../src/server/handlers/audit-live.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sDAAsD,CAAA;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAC3C,aAAa,EACb,OAAO,EACP,CAAC,QAAQ,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAEpC,OAAO,QAAQ;SACZ,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAChC,QAAQ,CAAC,OAAO,CAAC;QACf,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,EAAE;QAC5B,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC;QAC7B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,cAAc,EAAE,SAAS,CAAC,cAAc;QACxC,eAAe,EAAE,SAAS,CAAC,eAAe;QAC1C,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,MAAM,EAAE,SAAS,CAAC,MAAM;KACzB,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,EACtE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC,CACvE,CAAC;SACH,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAClC,QAAQ,CAAC,SAAS,CAAC;QACjB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,EAAE,EAAE,SAAS,CAAC,EAAE;KACjB,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,EACtE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC,CACvE,CAAC;SACH,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CACpB,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,CACtB,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EACtC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,EACtE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC,CACvE,CAAC,CAAA;AACR,CAAC,CAAC,CACL,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { CacheService, PRService } from "@knpkv/codecommit-core";
|
|
2
|
-
export declare const EventsLive: import("effect/Layer").Layer<import("@effect/platform/HttpApiGroup").ApiGroup<"CodeCommitApi", "events">, never, CacheService.EventsHub | CacheService.NotificationRepo | CacheService.PullRequestRepo | CacheService.SandboxRepo | PRService.PRService>;
|
|
2
|
+
export declare const EventsLive: import("effect/Layer").Layer<import("@effect/platform/HttpApiGroup").ApiGroup<"CodeCommitApi", "events">, never, CacheService.EventsHub | CacheService.NotificationRepo | CacheService.PullRequestRepo | CacheService.SandboxRepo | PRService.PRService | import("@knpkv/codecommit-core/PermissionService/PermissionGateLive.js").PermissionGateLive>;
|
|
3
3
|
//# sourceMappingURL=events-live.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/events-live.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/events-live.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AA8ChE,eAAO,MAAM,UAAU,wVA6GlB,CAAA"}
|
|
@@ -1,6 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSE event stream handler — pushes full app state to the browser.
|
|
3
|
+
*
|
|
4
|
+
* Streams a serialized SsePayload (pull requests, accounts, notifications,
|
|
5
|
+
* sandboxes, pending review count, permission prompts) on every state or
|
|
6
|
+
* repo change. Computes `pendingReviewCount` via {@link needsMyReview}.
|
|
7
|
+
*
|
|
8
|
+
* **Mental model**
|
|
9
|
+
*
|
|
10
|
+
* - Uses handleRaw (not handle) to bypass schema response encoding
|
|
11
|
+
* - Merges stateChanges (SubscriptionRef) + repoChanges (EventsHub), debounced 200ms
|
|
12
|
+
* - 30s keepalive heartbeat prevents browser/proxy timeout
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
1
16
|
import { HttpApiBuilder, HttpServerResponse } from "@effect/platform";
|
|
2
17
|
import { CacheService, PRService } from "@knpkv/codecommit-core";
|
|
3
|
-
import { AppStatus, PullRequest } from "@knpkv/codecommit-core/Domain.js";
|
|
18
|
+
import { AppStatus, needsMyReview, PullRequest } from "@knpkv/codecommit-core/Domain.js";
|
|
19
|
+
import { PermissionGateLiveTag } from "@knpkv/codecommit-core/PermissionService/PermissionGateLive.js";
|
|
4
20
|
import { Duration, Effect, Ref, Schedule, Schema, Stream, SubscriptionRef } from "effect";
|
|
5
21
|
import { CodeCommitApi, NotificationResponse, SandboxResponse } from "../Api.js";
|
|
6
22
|
import { encodeSandbox } from "./sandbox-live.js";
|
|
@@ -22,7 +38,14 @@ const SsePayload = Schema.Struct({
|
|
|
22
38
|
items: Schema.Array(NotificationResponse),
|
|
23
39
|
nextCursor: Schema.optional(Schema.Number)
|
|
24
40
|
}),
|
|
25
|
-
|
|
41
|
+
pendingReviewCount: Schema.optionalWith(Schema.Number, { default: () => 0 }),
|
|
42
|
+
sandboxes: Schema.Array(SandboxResponse),
|
|
43
|
+
permissionPrompt: Schema.optional(Schema.Struct({
|
|
44
|
+
id: Schema.String,
|
|
45
|
+
operation: Schema.String,
|
|
46
|
+
category: Schema.String,
|
|
47
|
+
context: Schema.String
|
|
48
|
+
}))
|
|
26
49
|
});
|
|
27
50
|
const encode = Schema.encode(SsePayload);
|
|
28
51
|
const encoder = new TextEncoder();
|
|
@@ -34,6 +57,7 @@ export const EventsLive = HttpApiBuilder.group(CodeCommitApi, "events", (handler
|
|
|
34
57
|
const notificationRepo = yield* CacheService.NotificationRepo;
|
|
35
58
|
const sandboxRepo = yield* CacheService.SandboxRepo;
|
|
36
59
|
const hub = yield* CacheService.EventsHub;
|
|
60
|
+
const permGate = yield* PermissionGateLiveTag;
|
|
37
61
|
// Cache unread count + notifications — re-query on relevant triggers
|
|
38
62
|
const initialCount = yield* notificationRepo.unreadCount().pipe(Effect.catchAll(() => Effect.succeed(0)));
|
|
39
63
|
const lastUnreadRef = yield* Ref.make(initialCount);
|
|
@@ -50,6 +74,10 @@ export const EventsLive = HttpApiBuilder.group(CodeCommitApi, "events", (handler
|
|
|
50
74
|
? yield* notificationRepo.findAll({ limit: 20 }).pipe(Effect.tap((p) => Ref.set(lastNotificationsRef, p)), Effect.catchAllCause(() => Ref.get(lastNotificationsRef)))
|
|
51
75
|
: yield* Ref.get(lastNotificationsRef);
|
|
52
76
|
const sandboxes = yield* sandboxRepo.findAll().pipe(Effect.map((rows) => rows.map(encodeSandbox)), Effect.catchAllCause(() => Effect.succeed([])));
|
|
77
|
+
const pendingPrompt = yield* permGate.getFirstPending().pipe(Effect.catchAll(() => Effect.succeed(undefined)));
|
|
78
|
+
const pendingReviewCount = prState.currentUser
|
|
79
|
+
? pullRequests.filter((pr) => needsMyReview(pr, prState.currentUser)).length
|
|
80
|
+
: 0;
|
|
53
81
|
const payload = yield* encode({
|
|
54
82
|
accounts: prState.accounts,
|
|
55
83
|
status: prState.status,
|
|
@@ -58,9 +86,11 @@ export const EventsLive = HttpApiBuilder.group(CodeCommitApi, "events", (handler
|
|
|
58
86
|
error: prState.error,
|
|
59
87
|
lastUpdated: prState.lastUpdated,
|
|
60
88
|
currentUser: prState.currentUser,
|
|
89
|
+
pendingReviewCount,
|
|
61
90
|
unreadNotificationCount: unreadCount,
|
|
62
91
|
notifications,
|
|
63
|
-
sandboxes
|
|
92
|
+
sandboxes,
|
|
93
|
+
permissionPrompt: pendingPrompt
|
|
64
94
|
});
|
|
65
95
|
return encoder.encode(`data: ${JSON.stringify(payload)}\n\n`);
|
|
66
96
|
}).pipe(Effect.catchAllCause((cause) => Effect.logWarning("SSE payload failed", cause).pipe(Effect.map(() => encoder.encode(":\n\n")))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events-live.js","sourceRoot":"","sources":["../../../src/server/handlers/events-live.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"events-live.js","sourceRoot":"","sources":["../../../src/server/handlers/events-live.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAA;AACtG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AACzF,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC,OAAO;CACxB,CAAC,CAAA;AAEF,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;IACpC,MAAM,EAAE,SAAS;IACjB,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;IACjD,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,uBAAuB,EAAE,MAAM,CAAC,MAAM;IACtC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC;QACzC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;KAC3C,CAAC;IACF,kBAAkB,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IAC5E,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;IACxC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QAC9C,EAAE,EAAE,MAAM,CAAC,MAAM;QACjB,SAAS,EAAE,MAAM,CAAC,MAAM;QACxB,QAAQ,EAAE,MAAM,CAAC,MAAM;QACvB,OAAO,EAAE,MAAM,CAAC,MAAM;KACvB,CAAC,CAAC;CACJ,CAAC,CAAA;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;AAExC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;AAEjC,2CAA2C;AAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAC/B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EACvC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CACtC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CACnF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAA;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,eAAe,CAAA;IAClD,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAA;IAC7D,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,WAAW,CAAA;IACnD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,SAAS,CAAA;IACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,qBAAqB,CAAA;IAE7C,qEAAqE;IACrE,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzG,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACnD,MAAM,oBAAoB,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAC9E,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAqD,EAAE,CAAC,CAAC,CACxG,CAAA;IACD,MAAM,oBAAoB,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAElE,oEAAoE;IACpE,MAAM,YAAY,GAAG,CAAC,aAAsB,EAAE,EAAE,CAC9C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAC3D,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EACtE,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CACzG,CAAA;QACD,MAAM,WAAW,GAAG,aAAa;YAC/B,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,IAAI,CAC1C,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAC5C,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CACnD;YACD,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QACjC,MAAM,aAAa,GAAG,aAAa;YACjC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CACnD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EACnD,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAC1D;YACD,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;QAExC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,IAAI,CACjD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,EAC7C,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAgD,CAAC,CAAC,CAC7F,CAAA;QAED,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,CAC1D,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CACjD,CAAA;QAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW;YAC5C,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;YAC5E,CAAC,CAAC,CAAC,CAAA;QAEL,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,YAAY;YACZ,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,kBAAkB;YAClB,uBAAuB,EAAE,WAAW;YACpC,aAAa;YACb,SAAS;YACT,gBAAgB,EAAE,aAAa;SAChC,CAAC,CAAA;QAEF,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7B,MAAM,CAAC,UAAU,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC,IAAI,CACjD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAC1C,CACF,CACF,CAAA;IAEH,OAAO,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,CACvC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,sDAAsD;QACtD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAE9C,4DAA4D;QAC5D,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAC/C,MAAM,CAAC,GAAG,CAAC,GAAY,EAAE,CAAC,KAAK,CAAC,CACjC,CAAA;QACD,6DAA6D;QAC7D,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CACpC,MAAM,CAAC,GAAG,CAAC,GAAY,EAAE,CAAC,IAAI,CAAC,CAChC,CAAA;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,IAAI,CAC1D,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EACrC,MAAM,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CACjE,CAAA;QAED,2EAA2E;QAC3E,OAAO,kBAAkB,CAAC,MAAM,CAC9B,MAAM,CAAC,KAAK,CACV,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,EACjD,SAAS,CACV,EACD;YACE,OAAO,EAAE;gBACP,cAAc,EAAE,mBAAmB;gBACnC,eAAe,EAAE,UAAU;gBAC3B,YAAY,EAAE,YAAY;aAC3B;SACF,CACF,CAAA;IACH,CAAC,CAAC,CAAC,CAAA;AACP,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export { AccountsLive } from "./accounts-live.js";
|
|
2
|
+
export { AuditLive } from "./audit-live.js";
|
|
2
3
|
export { ConfigLive } from "./config-live.js";
|
|
3
4
|
export { EventsLive } from "./events-live.js";
|
|
4
5
|
export { NotificationsLive } from "./notifications-live.js";
|
|
6
|
+
export { PermissionsLive } from "./permissions-live.js";
|
|
5
7
|
export { PrsLive } from "./prs-live.js";
|
|
6
8
|
export { SandboxLive } from "./sandbox-live.js";
|
|
7
9
|
export { StatsLive } from "./stats-live.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export { AccountsLive } from "./accounts-live.js";
|
|
2
|
+
export { AuditLive } from "./audit-live.js";
|
|
2
3
|
export { ConfigLive } from "./config-live.js";
|
|
3
4
|
export { EventsLive } from "./events-live.js";
|
|
4
5
|
export { NotificationsLive } from "./notifications-live.js";
|
|
6
|
+
export { PermissionsLive } from "./permissions-live.js";
|
|
5
7
|
export { PrsLive } from "./prs-live.js";
|
|
6
8
|
export { SandboxLive } from "./sandbox-live.js";
|
|
7
9
|
export { StatsLive } from "./stats-live.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/notifications-live.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"notifications-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/notifications-live.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAO3E,eAAO,MAAM,iBAAiB,iQAuH7B,CAAA"}
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Notification endpoint handlers — SSO login/logout + CRUD for notifications.
|
|
3
|
+
*
|
|
4
|
+
* Provides list/count/markRead/markUnread/markAllRead for unified notifications,
|
|
5
|
+
* plus ssoLogin (forks daemon: `aws sso login` → getCallerIdentity → refresh)
|
|
6
|
+
* and ssoLogout. Only login success and errors produce system notifications.
|
|
7
|
+
* `ssoSemaphore(1)` serializes concurrent SSO commands.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
1
11
|
import { Command, HttpApiBuilder } from "@effect/platform";
|
|
2
12
|
import { AwsClient, CacheService, PRService } from "@knpkv/codecommit-core";
|
|
3
13
|
import { Duration, Effect, SubscriptionRef } from "effect";
|
|
@@ -20,12 +30,6 @@ export const NotificationsLive = HttpApiBuilder.group(CodeCommitApi, "notificati
|
|
|
20
30
|
.handle("markUnread", ({ payload }) => notificationRepo.markUnread(payload.id).pipe(Effect.map(() => "ok"), Effect.orDie))
|
|
21
31
|
.handle("markAllRead", () => notificationRepo.markAllRead().pipe(Effect.map(() => "ok"), Effect.orDie))
|
|
22
32
|
.handle("ssoLogin", ({ payload }) => Effect.gen(function* () {
|
|
23
|
-
yield* notificationRepo.addSystem({
|
|
24
|
-
type: "info",
|
|
25
|
-
title: payload.profile,
|
|
26
|
-
message: `Starting SSO login for ${payload.profile}...`,
|
|
27
|
-
profile: payload.profile
|
|
28
|
-
});
|
|
29
33
|
const cmd = Command.make("aws", "sso", "login", "--profile", payload.profile).pipe(Command.stdout("inherit"), Command.stderr("inherit"));
|
|
30
34
|
yield* Effect.forkDaemon(ssoSemaphore.withPermits(1)(Command.exitCode(cmd).pipe(Effect.timeout(SSO_TIMEOUT), Effect.tap(() => Effect.gen(function* () {
|
|
31
35
|
const state = yield* SubscriptionRef.get(prService.state);
|
|
@@ -55,17 +59,8 @@ export const NotificationsLive = HttpApiBuilder.group(CodeCommitApi, "notificati
|
|
|
55
59
|
return "ok";
|
|
56
60
|
}).pipe(Effect.mapError((e) => new ApiError({ message: String(e) || "Failed to start SSO login" }))))
|
|
57
61
|
.handle("ssoLogout", () => Effect.gen(function* () {
|
|
58
|
-
yield* notificationRepo.addSystem({
|
|
59
|
-
type: "info",
|
|
60
|
-
title: "SSO",
|
|
61
|
-
message: "Logging out SSO session..."
|
|
62
|
-
});
|
|
63
62
|
const cmd = Command.make("aws", "sso", "logout").pipe(Command.stdout("inherit"), Command.stderr("inherit"));
|
|
64
|
-
yield* Effect.forkDaemon(ssoSemaphore.withPermits(1)(Command.exitCode(cmd).pipe(Effect.timeout(SSO_TIMEOUT), Effect.tap(() => SubscriptionRef.update(prService.state, ({ currentUser: _, ...rest }) => rest)), Effect.
|
|
65
|
-
type: "success",
|
|
66
|
-
title: "SSO",
|
|
67
|
-
message: "SSO logout successful"
|
|
68
|
-
})), Effect.catchAll((e) => Effect.logWarning("SSO logout failed", e).pipe(Effect.zipRight(notificationRepo.addSystem({
|
|
63
|
+
yield* Effect.forkDaemon(ssoSemaphore.withPermits(1)(Command.exitCode(cmd).pipe(Effect.timeout(SSO_TIMEOUT), Effect.tap(() => SubscriptionRef.update(prService.state, ({ currentUser: _, ...rest }) => rest)), Effect.catchAll((e) => Effect.logWarning("SSO logout failed", e).pipe(Effect.zipRight(notificationRepo.addSystem({
|
|
69
64
|
type: "error",
|
|
70
65
|
title: "SSO Logout Failed",
|
|
71
66
|
message: "SSO logout failed"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications-live.js","sourceRoot":"","sources":["../../../src/server/handlers/notifications-live.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"notifications-live.js","sourceRoot":"","sources":["../../../src/server/handlers/notifications-live.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { PermissionService } from "@knpkv/codecommit-core";
|
|
2
|
+
export declare const PermissionsLive: import("effect/Layer").Layer<import("@effect/platform/HttpApiGroup").ApiGroup<"CodeCommitApi", "permissions">, never, PermissionService.PermissionService | import("@knpkv/codecommit-core/PermissionService/PermissionGateLive.js").PermissionGateLive>;
|
|
3
|
+
//# sourceMappingURL=permissions-live.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/permissions-live.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAK1D,eAAO,MAAM,eAAe,0PA0C3B,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @title Permissions handler — respond to prompts, manage permission state
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import { HttpApiBuilder } from "@effect/platform";
|
|
7
|
+
import { PermissionService } from "@knpkv/codecommit-core";
|
|
8
|
+
import { PermissionGateLiveTag } from "@knpkv/codecommit-core/PermissionService/PermissionGateLive.js";
|
|
9
|
+
import { Effect } from "effect";
|
|
10
|
+
import { ApiError, CodeCommitApi } from "../Api.js";
|
|
11
|
+
export const PermissionsLive = HttpApiBuilder.group(CodeCommitApi, "permissions", (handlers) => Effect.gen(function* () {
|
|
12
|
+
const permService = yield* PermissionService.PermissionService;
|
|
13
|
+
const gate = yield* PermissionGateLiveTag;
|
|
14
|
+
return handlers
|
|
15
|
+
.handle("respond", ({ payload }) => gate.resolve(payload.id, payload.response).pipe(Effect.map(() => "ok"), Effect.mapError((e) => new ApiError({ message: String(e) }))))
|
|
16
|
+
.handle("list", () => Effect.gen(function* () {
|
|
17
|
+
const permissions = yield* permService.getAll();
|
|
18
|
+
const ops = PermissionService.allOperations();
|
|
19
|
+
return ops.map(([name, meta]) => ({
|
|
20
|
+
operation: name,
|
|
21
|
+
state: permissions[name] ?? "allow",
|
|
22
|
+
category: meta.category,
|
|
23
|
+
description: meta.description
|
|
24
|
+
}));
|
|
25
|
+
}))
|
|
26
|
+
.handle("update", ({ payload }) => permService.set(payload.operation, payload.state).pipe(Effect.map(() => "ok"), Effect.mapError((e) => new ApiError({ message: String(e) }))))
|
|
27
|
+
.handle("reset", () => permService.resetAll().pipe(Effect.map(() => "ok")))
|
|
28
|
+
.handle("auditSettings", () => Effect.all({
|
|
29
|
+
enabled: permService.isAuditEnabled(),
|
|
30
|
+
retentionDays: permService.getAuditRetention()
|
|
31
|
+
}))
|
|
32
|
+
.handle("updateAuditSettings", ({ payload }) => permService.setAudit(payload).pipe(Effect.map(() => "ok"), Effect.mapError((e) => new ApiError({ message: String(e) }))));
|
|
33
|
+
}));
|
|
34
|
+
//# sourceMappingURL=permissions-live.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions-live.js","sourceRoot":"","sources":["../../../src/server/handlers/permissions-live.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prs-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/prs-live.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prs-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/prs-live.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AA4C3E,eAAO,MAAM,OAAO,uPAkIf,CAAA"}
|
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PR endpoint handlers — list, refresh, create, open, comments, approval rules.
|
|
3
|
+
*
|
|
4
|
+
* Handles PR CRUD (list, search, refresh, create, open in console via Granted),
|
|
5
|
+
* comments fetch, and approval rule management (create/update/delete).
|
|
6
|
+
* {@link buildApprovalRuleContent} constructs the AWS JSON format
|
|
7
|
+
* `{Version, Statements, ApprovalPoolMembers}`. {@link extractAwsMessage}
|
|
8
|
+
* drills into AwsApiError.cause.message for human-readable error text.
|
|
9
|
+
* Approval rule errors produce system notifications via tapError.
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
1
13
|
import { Command, HttpApiBuilder } from "@effect/platform";
|
|
2
14
|
import { AwsClient, CacheService, PRService } from "@knpkv/codecommit-core";
|
|
3
15
|
import { encodeCommentLocations } from "@knpkv/codecommit-core/Domain.js";
|
|
@@ -10,6 +22,35 @@ const copyToClipboard = (text) => {
|
|
|
10
22
|
: Command.make("xclip", "-selection", "clipboard");
|
|
11
23
|
return Command.exitCode(Command.stdin(cmd, Stream.make(text).pipe(Stream.encodeText)));
|
|
12
24
|
};
|
|
25
|
+
const extractAwsMessage = (e) => {
|
|
26
|
+
if (!e || typeof e !== "object")
|
|
27
|
+
return String(e);
|
|
28
|
+
const err = e;
|
|
29
|
+
// AwsApiError.cause may contain the real AWS exception
|
|
30
|
+
const cause = err.cause;
|
|
31
|
+
if (cause && typeof cause === "object" && "message" in cause) {
|
|
32
|
+
return String(cause.message);
|
|
33
|
+
}
|
|
34
|
+
if ("message" in err && typeof err.message === "string" && err.message)
|
|
35
|
+
return err.message;
|
|
36
|
+
// PermissionDeniedError or other tagged errors
|
|
37
|
+
if ("reason" in err)
|
|
38
|
+
return `Permission ${err.reason}: ${err.operation ?? "unknown operation"}`;
|
|
39
|
+
try {
|
|
40
|
+
return JSON.stringify(e);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return String(e);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const buildApprovalRuleContent = (requiredApprovals, poolMembers) => JSON.stringify({
|
|
47
|
+
Version: "2018-11-08",
|
|
48
|
+
Statements: [{
|
|
49
|
+
Type: "Approvers",
|
|
50
|
+
NumberOfApprovalsNeeded: requiredApprovals,
|
|
51
|
+
ApprovalPoolMembers: poolMembers
|
|
52
|
+
}]
|
|
53
|
+
});
|
|
13
54
|
export const PrsLive = HttpApiBuilder.group(CodeCommitApi, "prs", (handlers) => Effect.gen(function* () {
|
|
14
55
|
const prService = yield* PRService.PRService;
|
|
15
56
|
const awsClient = yield* AwsClient.AwsClient;
|
|
@@ -41,23 +82,43 @@ export const PrsLive = HttpApiBuilder.group(CodeCommitApi, "prs", (handlers) =>
|
|
|
41
82
|
}).pipe(Effect.map(encodeCommentLocations), Effect.mapError((e) => new ApiError({ message: e.message }))))
|
|
42
83
|
.handle("open", ({ payload }) => Effect.gen(function* () {
|
|
43
84
|
yield* copyToClipboard(payload.link).pipe(Effect.catchAll(() => Effect.void));
|
|
44
|
-
yield* notificationRepo.addSystem({
|
|
45
|
-
type: "info",
|
|
46
|
-
title: "Assume",
|
|
47
|
-
message: `Opening ${payload.profile} → PR console...`
|
|
48
|
-
});
|
|
49
85
|
// -c: console login, -d: open URL in default browser
|
|
50
86
|
const cmd = Command.make("assume", "-cd", payload.link, payload.profile).pipe(Command.stdout("inherit"), Command.stderr("inherit"), Command.env({ GRANTED_ALIAS_CONFIGURED: "true" }));
|
|
51
|
-
yield* Effect.forkDaemon(Command.exitCode(cmd).pipe(Effect.
|
|
52
|
-
type: "success",
|
|
53
|
-
title: "Assume",
|
|
54
|
-
message: `Assumed ${payload.profile}`
|
|
55
|
-
})), Effect.catchAll((e) => notificationRepo.addSystem({
|
|
87
|
+
yield* Effect.forkDaemon(Command.exitCode(cmd).pipe(Effect.catchAll((e) => notificationRepo.addSystem({
|
|
56
88
|
type: "error",
|
|
57
89
|
title: "Assume Failed",
|
|
58
90
|
message: e instanceof Error ? e.message : String(e)
|
|
59
91
|
}))));
|
|
60
92
|
return payload.link;
|
|
61
|
-
}).pipe(Effect.mapError((e) => new ApiError({ message: String(e) }))))
|
|
93
|
+
}).pipe(Effect.mapError((e) => new ApiError({ message: String(e) }))))
|
|
94
|
+
.handle("createApprovalRule", ({ payload }) => awsClient.createApprovalRule({
|
|
95
|
+
account: { profile: payload.account.profile, region: payload.account.region },
|
|
96
|
+
pullRequestId: payload.pullRequestId,
|
|
97
|
+
approvalRuleName: payload.approvalRuleName,
|
|
98
|
+
approvalRuleContent: buildApprovalRuleContent(payload.requiredApprovals, payload.poolMembers)
|
|
99
|
+
}).pipe(Effect.map(() => "ok"), Effect.tapError((e) => notificationRepo.addSystem({
|
|
100
|
+
type: "error",
|
|
101
|
+
title: "Approval Rule",
|
|
102
|
+
message: extractAwsMessage(e)
|
|
103
|
+
})), Effect.mapError((e) => new ApiError({ message: e.message }))))
|
|
104
|
+
.handle("updateApprovalRule", ({ payload }) => awsClient.updateApprovalRule({
|
|
105
|
+
account: { profile: payload.account.profile, region: payload.account.region },
|
|
106
|
+
pullRequestId: payload.pullRequestId,
|
|
107
|
+
approvalRuleName: payload.approvalRuleName,
|
|
108
|
+
newApprovalRuleContent: buildApprovalRuleContent(payload.requiredApprovals, payload.poolMembers)
|
|
109
|
+
}).pipe(Effect.map(() => "ok"), Effect.tapError((e) => notificationRepo.addSystem({
|
|
110
|
+
type: "error",
|
|
111
|
+
title: "Approval Rule",
|
|
112
|
+
message: extractAwsMessage(e)
|
|
113
|
+
})), Effect.mapError((e) => new ApiError({ message: e.message }))))
|
|
114
|
+
.handle("deleteApprovalRule", ({ payload }) => awsClient.deleteApprovalRule({
|
|
115
|
+
account: { profile: payload.account.profile, region: payload.account.region },
|
|
116
|
+
pullRequestId: payload.pullRequestId,
|
|
117
|
+
approvalRuleName: payload.approvalRuleName
|
|
118
|
+
}).pipe(Effect.map(() => "ok"), Effect.tapError((e) => notificationRepo.addSystem({
|
|
119
|
+
type: "error",
|
|
120
|
+
title: "Approval Rule",
|
|
121
|
+
message: extractAwsMessage(e)
|
|
122
|
+
})), Effect.mapError((e) => new ApiError({ message: e.message }))));
|
|
62
123
|
}));
|
|
63
124
|
//# sourceMappingURL=prs-live.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prs-live.js","sourceRoot":"","sources":["../../../src/server/handlers/prs-live.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prs-live.js","sourceRoot":"","sources":["../../../src/server/handlers/prs-live.ts"],"names":[],"mappings":"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"}
|