@knpkv/codecommit-web 0.6.1 → 0.8.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-Btvko4l3.js +446 -0
- package/dist/client/assets/index-iKWCommg.css +1 -0
- package/dist/client/index.html +2 -2
- package/dist/server/Api.d.ts +68 -1
- package/dist/server/Api.d.ts.map +1 -1
- package/dist/server/Api.js +82 -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 +28 -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 +12 -2
- 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/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/package.json +2 -2
- package/dist/client/assets/index-3pbogd7M.js +0 -431
- package/dist/client/assets/index-BkSqss6A.css +0 -1
|
@@ -0,0 +1,28 @@
|
|
|
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.mapError((e) => new ApiError({ message: String(e) }))))
|
|
23
|
+
.handle("export", ({ urlParams }) => auditLog.exportAll({
|
|
24
|
+
from: urlParams.from,
|
|
25
|
+
to: urlParams.to
|
|
26
|
+
}).pipe(Effect.mapError((e) => new ApiError({ message: String(e) }))));
|
|
27
|
+
}));
|
|
28
|
+
//# 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,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAC7D,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,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAC7D,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":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"events-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/events-live.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AA6ChE,eAAO,MAAM,UAAU,wVAwGlB,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { HttpApiBuilder, HttpServerResponse } from "@effect/platform";
|
|
2
2
|
import { CacheService, PRService } from "@knpkv/codecommit-core";
|
|
3
3
|
import { AppStatus, PullRequest } from "@knpkv/codecommit-core/Domain.js";
|
|
4
|
+
import { PermissionGateLiveTag } from "@knpkv/codecommit-core/PermissionService/PermissionGateLive.js";
|
|
4
5
|
import { Duration, Effect, Ref, Schedule, Schema, Stream, SubscriptionRef } from "effect";
|
|
5
6
|
import { CodeCommitApi, NotificationResponse, SandboxResponse } from "../Api.js";
|
|
6
7
|
import { encodeSandbox } from "./sandbox-live.js";
|
|
@@ -22,7 +23,13 @@ const SsePayload = Schema.Struct({
|
|
|
22
23
|
items: Schema.Array(NotificationResponse),
|
|
23
24
|
nextCursor: Schema.optional(Schema.Number)
|
|
24
25
|
}),
|
|
25
|
-
sandboxes: Schema.Array(SandboxResponse)
|
|
26
|
+
sandboxes: Schema.Array(SandboxResponse),
|
|
27
|
+
permissionPrompt: Schema.optional(Schema.Struct({
|
|
28
|
+
id: Schema.String,
|
|
29
|
+
operation: Schema.String,
|
|
30
|
+
category: Schema.String,
|
|
31
|
+
context: Schema.String
|
|
32
|
+
}))
|
|
26
33
|
});
|
|
27
34
|
const encode = Schema.encode(SsePayload);
|
|
28
35
|
const encoder = new TextEncoder();
|
|
@@ -34,6 +41,7 @@ export const EventsLive = HttpApiBuilder.group(CodeCommitApi, "events", (handler
|
|
|
34
41
|
const notificationRepo = yield* CacheService.NotificationRepo;
|
|
35
42
|
const sandboxRepo = yield* CacheService.SandboxRepo;
|
|
36
43
|
const hub = yield* CacheService.EventsHub;
|
|
44
|
+
const permGate = yield* PermissionGateLiveTag;
|
|
37
45
|
// Cache unread count + notifications — re-query on relevant triggers
|
|
38
46
|
const initialCount = yield* notificationRepo.unreadCount().pipe(Effect.catchAll(() => Effect.succeed(0)));
|
|
39
47
|
const lastUnreadRef = yield* Ref.make(initialCount);
|
|
@@ -50,6 +58,7 @@ export const EventsLive = HttpApiBuilder.group(CodeCommitApi, "events", (handler
|
|
|
50
58
|
? yield* notificationRepo.findAll({ limit: 20 }).pipe(Effect.tap((p) => Ref.set(lastNotificationsRef, p)), Effect.catchAllCause(() => Ref.get(lastNotificationsRef)))
|
|
51
59
|
: yield* Ref.get(lastNotificationsRef);
|
|
52
60
|
const sandboxes = yield* sandboxRepo.findAll().pipe(Effect.map((rows) => rows.map(encodeSandbox)), Effect.catchAllCause(() => Effect.succeed([])));
|
|
61
|
+
const pendingPrompt = yield* permGate.getFirstPending().pipe(Effect.catchAll(() => Effect.succeed(undefined)));
|
|
53
62
|
const payload = yield* encode({
|
|
54
63
|
accounts: prState.accounts,
|
|
55
64
|
status: prState.status,
|
|
@@ -60,7 +69,8 @@ export const EventsLive = HttpApiBuilder.group(CodeCommitApi, "events", (handler
|
|
|
60
69
|
currentUser: prState.currentUser,
|
|
61
70
|
unreadNotificationCount: unreadCount,
|
|
62
71
|
notifications,
|
|
63
|
-
sandboxes
|
|
72
|
+
sandboxes,
|
|
73
|
+
permissionPrompt: pendingPrompt
|
|
64
74
|
});
|
|
65
75
|
return encoder.encode(`data: ${JSON.stringify(payload)}\n\n`);
|
|
66
76
|
}).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;AACzE,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,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"events-live.js","sourceRoot":"","sources":["../../../src/server/handlers/events-live.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
|
@@ -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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@knpkv/codecommit-web",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Web server and frontend for CodeCommit PR browser",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"tailwind-merge": "^3.4.0",
|
|
40
40
|
"tailwindcss": "^4.1.18",
|
|
41
41
|
"tw-animate-css": "^1.4.0",
|
|
42
|
-
"@knpkv/codecommit-core": "^0.
|
|
42
|
+
"@knpkv/codecommit-core": "^0.6.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@effect/vitest": "latest",
|