@knpkv/codecommit-web 0.11.2 → 0.11.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/client/assets/index-DvOqBYkk.js +90 -0
  2. package/dist/client/index.html +1 -1
  3. package/dist/main.js +2 -3
  4. package/dist/main.js.map +1 -1
  5. package/dist/server/Api.d.ts +2 -1
  6. package/dist/server/Api.d.ts.map +1 -1
  7. package/dist/server/Server.d.ts +3 -3
  8. package/dist/server/Server.d.ts.map +1 -1
  9. package/dist/server/Server.js +5 -44
  10. package/dist/server/Server.js.map +1 -1
  11. package/dist/server/handlers/events-live.js +5 -5
  12. package/dist/server/handlers/events-live.js.map +1 -1
  13. package/dist/server/handlers/notifications-live.d.ts +2 -1
  14. package/dist/server/handlers/notifications-live.d.ts.map +1 -1
  15. package/dist/server/handlers/notifications-live.js +6 -4
  16. package/dist/server/handlers/notifications-live.js.map +1 -1
  17. package/dist/server/handlers/prs-live.d.ts +2 -1
  18. package/dist/server/handlers/prs-live.d.ts.map +1 -1
  19. package/dist/server/handlers/prs-live.js +6 -4
  20. package/dist/server/handlers/prs-live.js.map +1 -1
  21. package/dist/server/handlers/stats-live.d.ts +4 -3
  22. package/dist/server/handlers/stats-live.d.ts.map +1 -1
  23. package/dist/server/handlers/stats-live.js +5 -3
  24. package/dist/server/handlers/stats-live.js.map +1 -1
  25. package/dist/server/internal/BackgroundScope.d.ts +15 -0
  26. package/dist/server/internal/BackgroundScope.d.ts.map +1 -0
  27. package/dist/server/internal/BackgroundScope.js +12 -0
  28. package/dist/server/internal/BackgroundScope.js.map +1 -0
  29. package/dist/server/internal/BackgroundWorkers.d.ts +7 -0
  30. package/dist/server/internal/BackgroundWorkers.d.ts.map +1 -0
  31. package/dist/server/internal/BackgroundWorkers.js +44 -0
  32. package/dist/server/internal/BackgroundWorkers.js.map +1 -0
  33. package/package.json +2 -2
  34. package/dist/client/assets/index-DSDtEnV5.js +0 -90
@@ -0,0 +1,44 @@
1
+ import { ConfigService, PRService, SandboxService } from "@knpkv/codecommit-core";
2
+ import { Cause, Duration, Effect, Layer } from "effect";
3
+ const continueAfterNonInterruptFailure = (message, delay = Duration.zero) => (effect) => effect.pipe(Effect.catchCauseIf((cause) => !Cause.hasInterrupts(cause), (cause) => Effect.logError(message, cause).pipe(Effect.andThen(Duration.isZero(delay) ? Effect.void : Effect.sleep(delay)))));
4
+ /** Auto-refresh worker owned by the server layer scope. @internal */
5
+ export const autoRefreshLayer = Layer.effectDiscard(Effect.gen(function* () {
6
+ const prService = yield* PRService.PRService;
7
+ const configService = yield* ConfigService.ConfigService;
8
+ const defaultRefreshConfig = { autoRefresh: true, refreshIntervalSeconds: 300 };
9
+ const recoverRefreshFailure = continueAfterNonInterruptFailure("Auto-refresh failed", Duration.seconds(10));
10
+ const recoverRefreshIterationFailure = continueAfterNonInterruptFailure("Auto-refresh iteration failed", Duration.seconds(10));
11
+ const refresh = (successMessage) => prService.refresh.pipe(Effect.tap(() => Effect.logInfo(successMessage)), recoverRefreshFailure);
12
+ const refreshIteration = Effect.gen(function* () {
13
+ const config = yield* configService.load.pipe(Effect.catch(() => Effect.succeed(defaultRefreshConfig)));
14
+ if (config.autoRefresh) {
15
+ yield* Effect.sleep(Duration.seconds(config.refreshIntervalSeconds));
16
+ yield* refresh("Auto-refresh complete");
17
+ }
18
+ else {
19
+ yield* Effect.sleep(Duration.seconds(30));
20
+ }
21
+ }).pipe(recoverRefreshIterationFailure);
22
+ yield* Effect.forkScoped(Effect.gen(function* () {
23
+ yield* refresh("Initial PR refresh complete");
24
+ return yield* Effect.forever(refreshIteration);
25
+ }));
26
+ }));
27
+ /** Sandbox reconciliation and GC worker owned by the server layer scope. @internal */
28
+ export const sandboxStartupLayer = Layer.effectDiscard(Effect.gen(function* () {
29
+ const sandboxService = yield* SandboxService.SandboxService;
30
+ const docker = yield* SandboxService.DockerService;
31
+ const available = yield* docker.isAvailable();
32
+ if (!available) {
33
+ yield* Effect.logWarning("Docker not available — sandbox feature disabled");
34
+ return;
35
+ }
36
+ yield* sandboxService.reconcile();
37
+ yield* Effect.logInfo("Sandbox service ready");
38
+ const gcPass = Effect.gen(function* () {
39
+ yield* Effect.sleep(Duration.minutes(5));
40
+ yield* sandboxService.gcIdle();
41
+ }).pipe(continueAfterNonInterruptFailure("Sandbox GC failed"));
42
+ yield* Effect.forkScoped(Effect.forever(gcPass));
43
+ }));
44
+ //# sourceMappingURL=BackgroundWorkers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackgroundWorkers.js","sourceRoot":"","sources":["../../../src/server/internal/BackgroundWorkers.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.11.2",
3
+ "version": "0.11.4",
4
4
  "description": "Web server and frontend for CodeCommit PR browser",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -36,7 +36,7 @@
36
36
  "tailwind-merge": "^3.6.0",
37
37
  "tailwindcss": "^4.3.2",
38
38
  "tw-animate-css": "^1.4.0",
39
- "@knpkv/codecommit-core": "^0.10.0"
39
+ "@knpkv/codecommit-core": "^0.11.0"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@effect/vitest": "4.0.0-beta.98",