@knpkv/codecommit-web 0.10.0 → 0.11.1

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 (77) hide show
  1. package/dist/client/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
  2. package/dist/client/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
  3. package/dist/client/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
  4. package/dist/client/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
  5. package/dist/client/assets/geist-mono-cyrillic-ext-wght-normal-I4S5GZfc.woff2 +0 -0
  6. package/dist/client/assets/geist-mono-cyrillic-wght-normal-BmXc_FBt.woff2 +0 -0
  7. package/dist/client/assets/geist-mono-latin-ext-wght-normal-DrnZ1wKl.woff2 +0 -0
  8. package/dist/client/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2 +0 -0
  9. package/dist/client/assets/geist-mono-symbols2-wght-normal-GZpp1pK2.woff2 +0 -0
  10. package/dist/client/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2 +0 -0
  11. package/dist/client/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
  12. package/dist/client/assets/index-DHUFjL8d.css +1 -0
  13. package/dist/client/assets/index-DfsN9fTl.js +90 -0
  14. package/dist/client/index.html +2 -2
  15. package/dist/main.js +5 -3
  16. package/dist/main.js.map +1 -1
  17. package/dist/server/Api.d.ts +457 -468
  18. package/dist/server/Api.d.ts.map +1 -1
  19. package/dist/server/Api.js +218 -200
  20. package/dist/server/Api.js.map +1 -1
  21. package/dist/server/Server.d.ts +3 -3
  22. package/dist/server/Server.d.ts.map +1 -1
  23. package/dist/server/Server.js +26 -23
  24. package/dist/server/Server.js.map +1 -1
  25. package/dist/server/handlers/accounts-live.d.ts +1 -1
  26. package/dist/server/handlers/accounts-live.d.ts.map +1 -1
  27. package/dist/server/handlers/accounts-live.js +1 -1
  28. package/dist/server/handlers/accounts-live.js.map +1 -1
  29. package/dist/server/handlers/audit-live.d.ts +6 -1
  30. package/dist/server/handlers/audit-live.d.ts.map +1 -1
  31. package/dist/server/handlers/audit-live.js +13 -13
  32. package/dist/server/handlers/audit-live.js.map +1 -1
  33. package/dist/server/handlers/config-live.d.ts +2 -1
  34. package/dist/server/handlers/config-live.d.ts.map +1 -1
  35. package/dist/server/handlers/config-live.js +20 -16
  36. package/dist/server/handlers/config-live.js.map +1 -1
  37. package/dist/server/handlers/events-live.d.ts +17 -1
  38. package/dist/server/handlers/events-live.d.ts.map +1 -1
  39. package/dist/server/handlers/events-live.js +20 -13
  40. package/dist/server/handlers/events-live.js.map +1 -1
  41. package/dist/server/handlers/notifications-live.d.ts +12 -1
  42. package/dist/server/handlers/notifications-live.d.ts.map +1 -1
  43. package/dist/server/handlers/notifications-live.js +24 -15
  44. package/dist/server/handlers/notifications-live.js.map +1 -1
  45. package/dist/server/handlers/permissions-live.d.ts +7 -1
  46. package/dist/server/handlers/permissions-live.d.ts.map +1 -1
  47. package/dist/server/handlers/permissions-live.js +3 -2
  48. package/dist/server/handlers/permissions-live.js.map +1 -1
  49. package/dist/server/handlers/prs-live.d.ts +14 -1
  50. package/dist/server/handlers/prs-live.d.ts.map +1 -1
  51. package/dist/server/handlers/prs-live.js +34 -30
  52. package/dist/server/handlers/prs-live.js.map +1 -1
  53. package/dist/server/handlers/sandbox-live.d.ts +1 -1
  54. package/dist/server/handlers/sandbox-live.d.ts.map +1 -1
  55. package/dist/server/handlers/sandbox-live.js +8 -7
  56. package/dist/server/handlers/sandbox-live.js.map +1 -1
  57. package/dist/server/handlers/stats-live.d.ts +11 -1
  58. package/dist/server/handlers/stats-live.d.ts.map +1 -1
  59. package/dist/server/handlers/stats-live.js +7 -7
  60. package/dist/server/handlers/stats-live.js.map +1 -1
  61. package/dist/server/handlers/subscriptions-live.d.ts +1 -1
  62. package/dist/server/handlers/subscriptions-live.d.ts.map +1 -1
  63. package/dist/server/handlers/subscriptions-live.js +1 -1
  64. package/dist/server/handlers/subscriptions-live.js.map +1 -1
  65. package/dist/tooling/production-prototype-boundary.d.ts +6 -0
  66. package/dist/tooling/production-prototype-boundary.d.ts.map +1 -0
  67. package/dist/tooling/production-prototype-boundary.js +21 -0
  68. package/dist/tooling/production-prototype-boundary.js.map +1 -0
  69. package/package.json +26 -29
  70. package/dist/client/assets/geist-cyrillic-wght-normal-CHSlOQsW.woff2 +0 -0
  71. package/dist/client/assets/geist-latin-ext-wght-normal-DMtmJ5ZE.woff2 +0 -0
  72. package/dist/client/assets/geist-latin-wght-normal-Dm3htQBi.woff2 +0 -0
  73. package/dist/client/assets/geist-mono-cyrillic-wght-normal-BZdD_g9V.woff2 +0 -0
  74. package/dist/client/assets/geist-mono-latin-ext-wght-normal-b6lpi8_2.woff2 +0 -0
  75. package/dist/client/assets/geist-mono-latin-wght-normal-Cjtb1TV-.woff2 +0 -0
  76. package/dist/client/assets/index-nrvy41i3.css +0 -1
  77. package/dist/client/assets/index-vzkZdqP0.js +0 -481
@@ -8,37 +8,43 @@
8
8
  *
9
9
  * @module
10
10
  */
11
- import { Command, HttpApiBuilder } from "@effect/platform";
12
11
  import { AwsClient, CacheService, PRService } from "@knpkv/codecommit-core";
13
- import { Duration, Effect, SubscriptionRef } from "effect";
12
+ import { AwsRegion } from "@knpkv/codecommit-core/Domain.js";
13
+ import { Duration, Effect, Schema, Semaphore, SubscriptionRef } from "effect";
14
+ import { HttpApiBuilder } from "effect/unstable/httpapi";
15
+ import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
14
16
  import { ApiError, CodeCommitApi } from "../Api.js";
15
17
  const SSO_TIMEOUT = Duration.minutes(3);
18
+ const exitCode = (cmd) => Effect.flatMap(ChildProcessSpawner.ChildProcessSpawner, (spawner) => spawner.exitCode(cmd));
16
19
  export const NotificationsLive = HttpApiBuilder.group(CodeCommitApi, "notifications", (handlers) => Effect.gen(function* () {
17
20
  const prService = yield* PRService.PRService;
18
21
  const awsClient = yield* AwsClient.AwsClient;
19
22
  const notificationRepo = yield* CacheService.NotificationRepo;
20
- const ssoSemaphore = yield* Effect.makeSemaphore(1);
23
+ const ssoSemaphore = yield* Semaphore.make(1);
21
24
  return handlers
22
- .handle("list", ({ urlParams }) => notificationRepo.findAll({
23
- limit: urlParams.limit ?? 20,
24
- ...(urlParams.cursor !== undefined ? { cursor: urlParams.cursor } : {}),
25
- ...(urlParams.filter !== undefined ? { filter: urlParams.filter } : {}),
26
- ...(urlParams.unreadOnly ? { unreadOnly: true } : {})
25
+ .handle("list", ({ query }) => notificationRepo.findAll({
26
+ limit: query.limit ?? 20,
27
+ ...(query.cursor !== undefined ? { cursor: query.cursor } : {}),
28
+ ...(query.filter !== undefined ? { filter: query.filter } : {}),
29
+ ...(query.unreadOnly ? { unreadOnly: true } : {})
27
30
  }).pipe(Effect.orDie))
28
31
  .handle("count", () => notificationRepo.unreadCount().pipe(Effect.map((unread) => ({ unread })), Effect.orDie))
29
32
  .handle("markRead", ({ payload }) => notificationRepo.markRead(payload.id).pipe(Effect.map(() => "ok"), Effect.orDie))
30
33
  .handle("markUnread", ({ payload }) => notificationRepo.markUnread(payload.id).pipe(Effect.map(() => "ok"), Effect.orDie))
31
34
  .handle("markAllRead", () => notificationRepo.markAllRead().pipe(Effect.map(() => "ok"), Effect.orDie))
32
35
  .handle("ssoLogin", ({ payload }) => Effect.gen(function* () {
33
- const cmd = Command.make("aws", "sso", "login", "--profile", payload.profile).pipe(Command.stdout("inherit"), Command.stderr("inherit"));
34
- yield* Effect.forkDaemon(ssoSemaphore.withPermits(1)(Command.exitCode(cmd).pipe(Effect.timeout(SSO_TIMEOUT), Effect.tap(() => Effect.gen(function* () {
36
+ const cmd = ChildProcess.make("aws", ["sso", "login", "--profile", payload.profile], {
37
+ stdout: "inherit",
38
+ stderr: "inherit"
39
+ });
40
+ yield* Effect.forkDetach(ssoSemaphore.withPermits(1)(exitCode(cmd).pipe(Effect.timeout(SSO_TIMEOUT), Effect.tap(() => Effect.gen(function* () {
35
41
  const state = yield* SubscriptionRef.get(prService.state);
36
42
  const account = state.accounts.find((a) => a.profile === payload.profile);
37
- const region = account?.region ?? "us-east-1";
43
+ const region = account?.region ?? Schema.decodeSync(AwsRegion)("us-east-1");
38
44
  const identity = yield* awsClient.getCallerIdentity({
39
45
  profile: payload.profile,
40
46
  region
41
- }).pipe(Effect.catchAll(() => Effect.succeed(undefined)));
47
+ }).pipe(Effect.catchIf(() => true, () => Effect.succeed(undefined)));
42
48
  if (identity) {
43
49
  yield* SubscriptionRef.update(prService.state, (s) => ({
44
50
  ...s,
@@ -50,7 +56,7 @@ export const NotificationsLive = HttpApiBuilder.group(CodeCommitApi, "notificati
50
56
  title: payload.profile,
51
57
  message: `SSO login successful for ${payload.profile}`,
52
58
  profile: payload.profile
53
- })), Effect.tap(() => prService.refresh), Effect.catchAll((e) => Effect.logWarning("SSO login failed", e).pipe(Effect.zipRight(notificationRepo.addSystem({
59
+ })), Effect.tap(() => prService.refresh), Effect.catchIf(() => true, (e) => Effect.logWarning("SSO login failed", e).pipe(Effect.andThen(notificationRepo.addSystem({
54
60
  type: "error",
55
61
  title: "SSO Login Failed",
56
62
  message: "SSO login failed — check credentials",
@@ -59,8 +65,11 @@ export const NotificationsLive = HttpApiBuilder.group(CodeCommitApi, "notificati
59
65
  return "ok";
60
66
  }).pipe(Effect.mapError((e) => new ApiError({ message: String(e) || "Failed to start SSO login" }))))
61
67
  .handle("ssoLogout", () => Effect.gen(function* () {
62
- const cmd = Command.make("aws", "sso", "logout").pipe(Command.stdout("inherit"), Command.stderr("inherit"));
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({
68
+ const cmd = ChildProcess.make("aws", ["sso", "logout"], {
69
+ stdout: "inherit",
70
+ stderr: "inherit"
71
+ });
72
+ yield* Effect.forkDetach(ssoSemaphore.withPermits(1)(exitCode(cmd).pipe(Effect.timeout(SSO_TIMEOUT), Effect.tap(() => SubscriptionRef.update(prService.state, ({ currentUser: _, ...rest }) => rest)), Effect.catchIf(() => true, (e) => Effect.logWarning("SSO logout failed", e).pipe(Effect.andThen(notificationRepo.addSystem({
64
73
  type: "error",
65
74
  title: "SSO Logout Failed",
66
75
  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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"}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * @title Permissions handler — respond to prompts, manage permission state
3
+ *
4
+ * @module
5
+ */
1
6
  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>;
7
+ import { PermissionGateLiveTag } from "@knpkv/codecommit-core/PermissionService/PermissionGateLive.js";
8
+ export declare const PermissionsLive: import("effect/Layer").Layer<import("effect/unstable/httpapi/HttpApiGroup").Service<"CodeCommitApi", "permissions">, never, PermissionService.PermissionService | PermissionGateLiveTag>;
3
9
  //# sourceMappingURL=permissions-live.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"permissions-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/permissions-live.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAA;AAOtG,eAAO,MAAM,eAAe,0LA0C3B,CAAA"}
@@ -3,11 +3,12 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { HttpApiBuilder } from "@effect/platform";
7
6
  import { PermissionService } from "@knpkv/codecommit-core";
8
7
  import { PermissionGateLiveTag } from "@knpkv/codecommit-core/PermissionService/PermissionGateLive.js";
9
8
  import { Effect } from "effect";
9
+ import { HttpApiBuilder } from "effect/unstable/httpapi";
10
10
  import { ApiError, CodeCommitApi } from "../Api.js";
11
+ const defaultPermissionState = "allow";
11
12
  export const PermissionsLive = HttpApiBuilder.group(CodeCommitApi, "permissions", (handlers) => Effect.gen(function* () {
12
13
  const permService = yield* PermissionService.PermissionService;
13
14
  const gate = yield* PermissionGateLiveTag;
@@ -18,7 +19,7 @@ export const PermissionsLive = HttpApiBuilder.group(CodeCommitApi, "permissions"
18
19
  const ops = PermissionService.allOperations();
19
20
  return ops.map(([name, meta]) => ({
20
21
  operation: name,
21
- state: permissions[name] ?? "allow",
22
+ state: permissions[name] ?? defaultPermissionState,
22
23
  category: meta.category,
23
24
  description: meta.description
24
25
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"permissions-live.js","sourceRoot":"","sources":["../../../src/server/handlers/permissions-live.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions-live.js","sourceRoot":"","sources":["../../../src/server/handlers/permissions-live.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,16 @@
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 { AwsClient, CacheService, PRService } from "@knpkv/codecommit-core";
2
- export declare const PrsLive: import("effect/Layer").Layer<import("@effect/platform/HttpApiGroup").ApiGroup<"CodeCommitApi", "prs">, never, AwsClient.AwsClient | CacheService.NotificationRepo | PRService.PRService | import("@effect/platform/CommandExecutor").CommandExecutor>;
14
+ import { ChildProcessSpawner } from "effect/unstable/process";
15
+ export declare const PrsLive: import("effect/Layer").Layer<import("effect/unstable/httpapi/HttpApiGroup").Service<"CodeCommitApi", "prs">, never, AwsClient.AwsClient | CacheService.NotificationRepo | PRService.PRService | import("effect/unstable/http/HttpRouter").Request<"Requires", ChildProcessSpawner.ChildProcessSpawner> | import("effect/unstable/http/HttpRouter").Request<"Requires", unknown>>;
3
16
  //# sourceMappingURL=prs-live.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"prs-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/prs-live.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAI3E,OAAO,EAAgB,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AA2C3E,eAAO,MAAM,OAAO,kXAiIf,CAAA"}
@@ -10,32 +10,32 @@
10
10
  *
11
11
  * @module
12
12
  */
13
- import { Command, HttpApiBuilder } from "@effect/platform";
14
13
  import { AwsClient, CacheService, PRService } from "@knpkv/codecommit-core";
15
14
  import { encodeCommentLocations } from "@knpkv/codecommit-core/Domain.js";
16
- import { Chunk, Effect, Schema, Stream, SubscriptionRef } from "effect";
17
- import { platform } from "node:os";
15
+ import { Chunk, Effect, Predicate, Schema, Stream, SubscriptionRef } from "effect";
16
+ import { HttpApiBuilder } from "effect/unstable/httpapi";
17
+ import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
18
18
  import { ApiError, CodeCommitApi } from "../Api.js";
19
19
  const copyToClipboard = (text) => {
20
- const cmd = platform() === "darwin"
21
- ? Command.make("pbcopy")
22
- : Command.make("xclip", "-selection", "clipboard");
23
- return Command.exitCode(Command.stdin(cmd, Stream.make(text).pipe(Stream.encodeText)));
20
+ const stdin = Stream.make(text).pipe(Stream.encodeText);
21
+ const copyWith = (cmd) => Effect.flatMap(ChildProcessSpawner.ChildProcessSpawner, (spawner) => spawner.exitCode(cmd));
22
+ return copyWith(ChildProcess.make("pbcopy", { stdin })).pipe(Effect.catchIf(() => true, () => copyWith(ChildProcess.make("xclip", ["-selection", "clipboard"], { stdin }))));
24
23
  };
25
24
  const extractAwsMessage = (e) => {
26
- if (!e || typeof e !== "object")
25
+ if (!Predicate.isObjectKeyword(e))
27
26
  return String(e);
28
- const err = e;
29
27
  // AwsApiError.cause may contain the real AWS exception
30
- const cause = err.cause;
31
- if (cause && typeof cause === "object" && "message" in cause) {
28
+ const cause = Predicate.hasProperty(e, "cause") ? e.cause : undefined;
29
+ if (Predicate.hasProperty(cause, "message")) {
32
30
  return String(cause.message);
33
31
  }
34
- if ("message" in err && typeof err.message === "string" && err.message)
35
- return err.message;
32
+ if (Predicate.hasProperty(e, "message") && typeof e.message === "string" && e.message)
33
+ return e.message;
36
34
  // PermissionDeniedError or other tagged errors
37
- if ("reason" in err)
38
- return `Permission ${err.reason}: ${err.operation ?? "unknown operation"}`;
35
+ if (Predicate.hasProperty(e, "reason")) {
36
+ const operation = Predicate.hasProperty(e, "operation") ? e.operation : "unknown operation";
37
+ return `Permission ${e.reason}: ${operation}`;
38
+ }
39
39
  try {
40
40
  return JSON.stringify(e);
41
41
  }
@@ -57,16 +57,16 @@ export const PrsLive = HttpApiBuilder.group(CodeCommitApi, "prs", (handlers) =>
57
57
  const notificationRepo = yield* CacheService.NotificationRepo;
58
58
  return handlers
59
59
  .handle("list", () => SubscriptionRef.get(prService.state).pipe(Effect.map((state) => Chunk.fromIterable(state.pullRequests))))
60
- .handle("refresh", () => prService.refresh.pipe(Effect.forkDaemon, Effect.map(() => "ok")))
61
- .handle("search", ({ urlParams }) => Effect.gen(function* () {
62
- const result = yield* prService.searchPullRequests(urlParams.q, {
63
- limit: urlParams.limit ?? 20,
64
- offset: urlParams.offset ?? 0
60
+ .handle("refresh", () => prService.refresh.pipe(Effect.forkDetach, Effect.map(() => "ok")))
61
+ .handle("search", ({ query }) => Effect.gen(function* () {
62
+ const result = yield* prService.searchPullRequests(query.q, {
63
+ limit: query.limit ?? 20,
64
+ offset: query.offset ?? 0
65
65
  });
66
- const items = yield* Effect.forEach(result.items, (row) => Schema.encode(CacheService.CachedPullRequest)(row));
66
+ const items = yield* Effect.forEach(result.items, (row) => Schema.encodeEffect(CacheService.CachedPullRequest)(row));
67
67
  return { items, total: result.total, hasMore: result.hasMore };
68
68
  }).pipe(Effect.mapError((e) => new ApiError({ message: String(e) }))))
69
- .handle("refreshSingle", ({ path }) => prService.refreshSinglePR(path.awsAccountId, path.prId).pipe(Effect.forkDaemon, Effect.map(() => "ok")))
69
+ .handle("refreshSingle", ({ params }) => prService.refreshSinglePR(params.awsAccountId, params.prId).pipe(Effect.forkDetach, Effect.map(() => "ok")))
70
70
  .handle("create", ({ payload }) => awsClient.createPullRequest({
71
71
  account: { profile: payload.account.profile, region: payload.account.region },
72
72
  repositoryName: payload.repositoryName,
@@ -75,19 +75,23 @@ export const PrsLive = HttpApiBuilder.group(CodeCommitApi, "prs", (handlers) =>
75
75
  sourceReference: payload.sourceBranch,
76
76
  destinationReference: payload.destinationBranch
77
77
  }).pipe(Effect.mapError((e) => new ApiError({ message: e.message }))))
78
- .handle("comments", ({ urlParams }) => awsClient.getCommentsForPullRequest({
79
- account: { profile: urlParams.profile, region: urlParams.region },
80
- pullRequestId: urlParams.pullRequestId,
81
- repositoryName: urlParams.repositoryName
78
+ .handle("comments", ({ query }) => awsClient.getCommentsForPullRequest({
79
+ account: { profile: query.profile, region: query.region },
80
+ pullRequestId: query.pullRequestId,
81
+ repositoryName: query.repositoryName
82
82
  }).pipe(Effect.map(encodeCommentLocations), Effect.mapError((e) => new ApiError({ message: e.message }))))
83
83
  .handle("open", ({ payload }) => Effect.gen(function* () {
84
- yield* copyToClipboard(payload.link).pipe(Effect.catchAll(() => Effect.void));
84
+ yield* copyToClipboard(payload.link).pipe(Effect.catchIf(() => true, () => Effect.void));
85
85
  // -c: console login, -d: open URL in default browser
86
- const cmd = Command.make("assume", "-cd", payload.link, payload.profile).pipe(Command.stdout("inherit"), Command.stderr("inherit"), Command.env({ GRANTED_ALIAS_CONFIGURED: "true" }));
87
- yield* Effect.forkDaemon(Command.exitCode(cmd).pipe(Effect.catchAll((e) => notificationRepo.addSystem({
86
+ const cmd = ChildProcess.make("assume", ["-cd", payload.link, payload.profile], {
87
+ stdout: "inherit",
88
+ stderr: "inherit",
89
+ env: { GRANTED_ALIAS_CONFIGURED: "true" }
90
+ });
91
+ yield* Effect.forkDetach(Effect.flatMap(ChildProcessSpawner.ChildProcessSpawner, (spawner) => spawner.exitCode(cmd)).pipe(Effect.catchIf(() => true, (e) => notificationRepo.addSystem({
88
92
  type: "error",
89
93
  title: "Assume Failed",
90
- message: e instanceof Error ? e.message : String(e)
94
+ message: Predicate.isError(e) ? e.message : String(e)
91
95
  }))));
92
96
  return payload.link;
93
97
  }).pipe(Effect.mapError((e) => new ApiError({ message: String(e) }))))
@@ -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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"}
@@ -2,5 +2,5 @@ import { SandboxService } from "@knpkv/codecommit-core";
2
2
  import type { SandboxRow } from "@knpkv/codecommit-core/CacheService.js";
3
3
  import { type SandboxResponse } from "../Api.js";
4
4
  export declare const encodeSandbox: (row: SandboxRow) => typeof SandboxResponse.Type;
5
- export declare const SandboxLive: import("effect/Layer").Layer<import("@effect/platform/HttpApiGroup").ApiGroup<"CodeCommitApi", "sandbox">, never, import("@effect/platform/CommandExecutor").CommandExecutor | SandboxService.SandboxService>;
5
+ export declare const SandboxLive: import("effect/Layer").Layer<import("effect/unstable/httpapi/HttpApiGroup").Service<"CodeCommitApi", "sandbox">, never, SandboxService.SandboxService | import("effect/unstable/http/HttpRouter").Request<"Requires", import("effect/FileSystem").FileSystem> | import("effect/unstable/http/HttpRouter").Request<"Requires", import("effect/FileSystem").FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner>>;
6
6
  //# sourceMappingURL=sandbox-live.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/sandbox-live.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAA;AAGxE,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,WAAW,CAAA;AAIzE,eAAO,MAAM,aAAa,GAAI,KAAK,UAAU,KAAG,OAAO,eAAe,CAAC,IAcrE,CAAA;AAEF,eAAO,MAAM,WAAW,+MAmCnB,CAAA"}
1
+ {"version":3,"file":"sandbox-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/sandbox-live.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAA;AAIxE,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,WAAW,CAAA;AAIzE,eAAO,MAAM,aAAa,GAAI,KAAK,UAAU,KAAG,OAAO,eAAe,CAAC,IAcrE,CAAA;AAEF,eAAO,MAAM,WAAW,obAmCnB,CAAA"}
@@ -1,6 +1,7 @@
1
- import { HttpApiBuilder } from "@effect/platform";
2
1
  import { SandboxService } from "@knpkv/codecommit-core";
3
- import { Effect } from "effect";
2
+ import { SandboxStatus } from "@knpkv/codecommit-core/Domain.js";
3
+ import { Effect, Schema } from "effect";
4
+ import { HttpApiBuilder } from "effect/unstable/httpapi";
4
5
  import { ApiError, CodeCommitApi } from "../Api.js";
5
6
  // Explicit field mapping — prevents leaking server-internal fields (e.g. workspacePath)
6
7
  // if SandboxRow gains new fields. Do not replace with object spread.
@@ -12,7 +13,7 @@ export const encodeSandbox = (row) => ({
12
13
  sourceBranch: row.sourceBranch,
13
14
  containerId: row.containerId,
14
15
  port: row.port,
15
- status: row.status,
16
+ status: Schema.decodeUnknownSync(SandboxStatus)(row.status),
16
17
  statusDetail: row.statusDetail,
17
18
  logs: row.logs,
18
19
  error: row.error,
@@ -24,9 +25,9 @@ export const SandboxLive = HttpApiBuilder.group(CodeCommitApi, "sandbox", (handl
24
25
  return handlers
25
26
  .handle("create", ({ payload }) => sandboxService.create(payload).pipe(Effect.map(encodeSandbox), Effect.mapError((e) => new ApiError({ message: e.message }))))
26
27
  .handle("list", () => sandboxService.list().pipe(Effect.map((rows) => rows.map(encodeSandbox)), Effect.mapError((e) => new ApiError({ message: e.message }))))
27
- .handle("get", ({ path }) => sandboxService.get(path.sandboxId).pipe(Effect.map(encodeSandbox), Effect.mapError((e) => new ApiError({ message: e.message }))))
28
- .handle("stop", ({ path }) => sandboxService.stop(path.sandboxId).pipe(Effect.map(() => "ok"), Effect.mapError((e) => new ApiError({ message: e.message }))))
29
- .handle("restart", ({ path }) => sandboxService.restart(path.sandboxId).pipe(Effect.map(() => "ok"), Effect.mapError((e) => new ApiError({ message: e.message }))))
30
- .handle("delete", ({ path }) => sandboxService.cleanup(path.sandboxId).pipe(Effect.map(() => "ok"), Effect.mapError((e) => new ApiError({ message: e.message }))));
28
+ .handle("get", ({ params }) => sandboxService.get(params.sandboxId).pipe(Effect.map(encodeSandbox), Effect.mapError((e) => new ApiError({ message: e.message }))))
29
+ .handle("stop", ({ params }) => sandboxService.stop(params.sandboxId).pipe(Effect.map(() => "ok"), Effect.mapError((e) => new ApiError({ message: e.message }))))
30
+ .handle("restart", ({ params }) => sandboxService.restart(params.sandboxId).pipe(Effect.map(() => "ok"), Effect.mapError((e) => new ApiError({ message: e.message }))))
31
+ .handle("delete", ({ params }) => sandboxService.cleanup(params.sandboxId).pipe(Effect.map(() => "ok"), Effect.mapError((e) => new ApiError({ message: e.message }))));
31
32
  }));
32
33
  //# sourceMappingURL=sandbox-live.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-live.js","sourceRoot":"","sources":["../../../src/server/handlers/sandbox-live.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox-live.js","sourceRoot":"","sources":["../../../src/server/handlers/sandbox-live.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,14 @@
1
+ /**
2
+ * @module StatsLive
3
+ *
4
+ * Mental model: HTTP handler group for the /stats API surface.
5
+ * Maps HttpApi endpoints to StatsService calls. The "get" handler is
6
+ * a synchronous query; the "sync" handler fires-and-forgets a background
7
+ * fiber via Effect.forkDetach for long-running historical re-sync.
8
+ *
9
+ * @category Server
10
+ */
1
11
  import { PRService } from "@knpkv/codecommit-core/PRService/index.js";
2
12
  import { StatsService } from "@knpkv/codecommit-core/StatsService/index.js";
3
- export declare const StatsLive: import("effect/Layer").Layer<import("@effect/platform/HttpApiGroup").ApiGroup<"CodeCommitApi", "stats">, never, PRService | StatsService>;
13
+ export declare const StatsLive: import("effect/Layer").Layer<import("effect/unstable/httpapi/HttpApiGroup").Service<"CodeCommitApi", "stats">, never, PRService | StatsService>;
4
14
  //# sourceMappingURL=stats-live.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stats-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/stats-live.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAA;AAI3E,eAAO,MAAM,SAAS,2IAkCjB,CAAA"}
1
+ {"version":3,"file":"stats-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/stats-live.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAA;AAK3E,eAAO,MAAM,SAAS,iJAkCjB,CAAA"}
@@ -4,27 +4,27 @@
4
4
  * Mental model: HTTP handler group for the /stats API surface.
5
5
  * Maps HttpApi endpoints to StatsService calls. The "get" handler is
6
6
  * a synchronous query; the "sync" handler fires-and-forgets a background
7
- * fiber via Effect.forkDaemon for long-running historical re-sync.
7
+ * fiber via Effect.forkDetach for long-running historical re-sync.
8
8
  *
9
9
  * @category Server
10
10
  */
11
- import { HttpApiBuilder } from "@effect/platform";
12
11
  import { PRService } from "@knpkv/codecommit-core/PRService/index.js";
13
12
  import { StatsService } from "@knpkv/codecommit-core/StatsService/index.js";
14
13
  import { Effect, Ref } from "effect";
14
+ import { HttpApiBuilder } from "effect/unstable/httpapi";
15
15
  import { ApiError, CodeCommitApi } from "../Api.js";
16
16
  export const StatsLive = HttpApiBuilder.group(CodeCommitApi, "stats", (handlers) => Effect.gen(function* () {
17
17
  const statsService = yield* StatsService;
18
18
  const prService = yield* PRService;
19
19
  const syncing = yield* Ref.make(false);
20
20
  return handlers
21
- .handle("get", ({ urlParams }) => statsService.getWeeklyStats(urlParams.week, {
22
- repo: urlParams.repo,
23
- author: urlParams.author,
24
- account: urlParams.account
21
+ .handle("get", ({ query }) => statsService.getWeeklyStats(query.week, {
22
+ repo: query.repo,
23
+ author: query.author,
24
+ account: query.account
25
25
  }).pipe(Effect.mapError((e) => new ApiError({ message: String(e) }))))
26
26
  .handle("sync", ({ payload }) => Ref.get(syncing).pipe(Effect.flatMap((inProgress) => inProgress
27
27
  ? Effect.succeed("sync already in progress")
28
- : Ref.set(syncing, true).pipe(Effect.flatMap(() => Effect.forkDaemon(statsService.syncWeek(payload.week, prService.state).pipe(Effect.tap(() => Effect.logInfo(`Sync ${payload.week} complete`)), Effect.tapErrorCause((cause) => Effect.logWarning(`Sync ${payload.week} failed`, cause)), Effect.ensuring(Ref.set(syncing, false)))).pipe(Effect.as("sync started"))))), Effect.mapError((e) => new ApiError({ message: String(e) }))));
28
+ : Ref.set(syncing, true).pipe(Effect.flatMap(() => Effect.forkDetach(statsService.syncWeek(payload.week, prService.state).pipe(Effect.tap(() => Effect.logInfo(`Sync ${payload.week} complete`)), Effect.tapCause((cause) => Effect.logWarning(`Sync ${payload.week} failed`, cause)), Effect.ensuring(Ref.set(syncing, false)))).pipe(Effect.as("sync started"))))), Effect.mapError((e) => new ApiError({ message: String(e) }))));
29
29
  }));
30
30
  //# sourceMappingURL=stats-live.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stats-live.js","sourceRoot":"","sources":["../../../src/server/handlers/stats-live.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAA;AAC3E,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CACjF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IACxC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,SAAS,CAAA;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAEtC,OAAO,QAAQ;SACZ,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAC/B,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE;QAC1C,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,OAAO,EAAE,SAAS,CAAC,OAAO;KAC3B,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,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAC9B,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CACnB,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAC5B,UAAU;QACR,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC;QAC5C,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAC3B,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAClB,MAAM,CAAC,UAAU,CACf,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CACvD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,CAAC,IAAI,WAAW,CAAC,CAAC,EACjE,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,OAAO,CAAC,IAAI,SAAS,EAAE,KAAK,CAAC,CAAC,EACxF,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CACzC,CACF,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAClC,CACF,CACJ,EACD,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,CAAC,CAAA"}
1
+ {"version":3,"file":"stats-live.js","sourceRoot":"","sources":["../../../src/server/handlers/stats-live.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAA;AAC3E,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CACjF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IACxC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,SAAS,CAAA;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAEtC,OAAO,QAAQ;SACZ,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAC3B,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE;QACtC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,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,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAC9B,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CACnB,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAC5B,UAAU;QACR,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC;QAC5C,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAC3B,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAClB,MAAM,CAAC,UAAU,CACf,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CACvD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,CAAC,IAAI,WAAW,CAAC,CAAC,EACjE,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,OAAO,CAAC,IAAI,SAAS,EAAE,KAAK,CAAC,CAAC,EACnF,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CACzC,CACF,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAClC,CACF,CACJ,EACD,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,CAAC,CAAA"}
@@ -1,3 +1,3 @@
1
1
  import { PRService } from "@knpkv/codecommit-core";
2
- export declare const SubscriptionsLive: import("effect/Layer").Layer<import("@effect/platform/HttpApiGroup").ApiGroup<"CodeCommitApi", "subscriptions">, never, PRService.PRService>;
2
+ export declare const SubscriptionsLive: import("effect/Layer").Layer<import("effect/unstable/httpapi/HttpApiGroup").Service<"CodeCommitApi", "subscriptions">, never, PRService.PRService>;
3
3
  //# sourceMappingURL=subscriptions-live.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/subscriptions-live.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAIlD,eAAO,MAAM,iBAAiB,8IAoB7B,CAAA"}
1
+ {"version":3,"file":"subscriptions-live.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/subscriptions-live.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAKlD,eAAO,MAAM,iBAAiB,oJAoB7B,CAAA"}
@@ -1,6 +1,6 @@
1
- import { HttpApiBuilder } from "@effect/platform";
2
1
  import { PRService } from "@knpkv/codecommit-core";
3
2
  import { Effect } from "effect";
3
+ import { HttpApiBuilder } from "effect/unstable/httpapi";
4
4
  import { ApiError, CodeCommitApi } from "../Api.js";
5
5
  export const SubscriptionsLive = HttpApiBuilder.group(CodeCommitApi, "subscriptions", (handlers) => Effect.gen(function* () {
6
6
  const prService = yield* PRService.PRService;
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions-live.js","sourceRoot":"","sources":["../../../src/server/handlers/subscriptions-live.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEnD,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC,KAAK,CACnD,aAAa,EACb,eAAe,EACf,CAAC,QAAQ,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAA;IAE5C,OAAO,QAAQ;SACZ,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACnC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CACnE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EACtB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,wBAAwB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CACvF,CAAC;SACH,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACrC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CACrE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EACtB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,wBAAwB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CACvF,CAAC;SACH,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAA;AACvD,CAAC,CAAC,CACL,CAAA"}
1
+ {"version":3,"file":"subscriptions-live.js","sourceRoot":"","sources":["../../../src/server/handlers/subscriptions-live.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEnD,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC,KAAK,CACnD,aAAa,EACb,eAAe,EACf,CAAC,QAAQ,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAA;IAE5C,OAAO,QAAQ;SACZ,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACnC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CACnE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EACtB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,wBAAwB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CACvF,CAAC;SACH,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACrC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CACrE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EACtB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,wBAAwB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CACvF,CAAC;SACH,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAA;AACvD,CAAC,CAAC,CACL,CAAA"}
@@ -0,0 +1,6 @@
1
+ import type { Plugin } from "vite";
2
+ /** Return reachable production modules that resolve inside the prototype fixture tree. */
3
+ export declare const inspectProductionPrototypeModules: (moduleIds: Iterable<string>, clientRoot: string) => ReadonlyArray<string>;
4
+ /** Fail a production build if a static, computed, or glob import reaches a prototype fixture. */
5
+ export declare const productionPrototypeBoundary: (clientRoot: string) => Plugin;
6
+ //# sourceMappingURL=production-prototype-boundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"production-prototype-boundary.d.ts","sourceRoot":"","sources":["../../src/tooling/production-prototype-boundary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAKlC,0FAA0F;AAC1F,eAAO,MAAM,iCAAiC,GAC5C,WAAW,QAAQ,CAAC,MAAM,CAAC,EAC3B,YAAY,MAAM,KACjB,aAAa,CAAC,MAAM,CAMtB,CAAA;AAED,iGAAiG;AACjG,eAAO,MAAM,2BAA2B,GAAI,YAAY,MAAM,KAAG,MAW/D,CAAA"}
@@ -0,0 +1,21 @@
1
+ const normalizeModuleId = (moduleId) => moduleId.split("?", 1)[0]?.replaceAll("\\", "/") ?? moduleId.replaceAll("\\", "/");
2
+ /** Return reachable production modules that resolve inside the prototype fixture tree. */
3
+ export const inspectProductionPrototypeModules = (moduleIds, clientRoot) => {
4
+ const normalizedRoot = normalizeModuleId(clientRoot).replace(/\/$/u, "");
5
+ const prototypeRoots = [`${normalizedRoot}/prototype/`, `${normalizedRoot}/prototypes/`];
6
+ return Array.from(moduleIds, normalizeModuleId)
7
+ .filter((moduleId) => prototypeRoots.some((prototypeRoot) => moduleId.startsWith(prototypeRoot)))
8
+ .sort();
9
+ };
10
+ /** Fail a production build if a static, computed, or glob import reaches a prototype fixture. */
11
+ export const productionPrototypeBoundary = (clientRoot) => ({
12
+ name: "codecommit-production-prototype-boundary",
13
+ apply: "build",
14
+ generateBundle() {
15
+ const violations = inspectProductionPrototypeModules(this.getModuleIds(), clientRoot);
16
+ if (violations.length > 0) {
17
+ this.error(`Production client graph includes prototype fixture modules:\n${violations.map((id) => `- ${id}`).join("\n")}`);
18
+ }
19
+ }
20
+ });
21
+ //# sourceMappingURL=production-prototype-boundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"production-prototype-boundary.js","sourceRoot":"","sources":["../../src/tooling/production-prototype-boundary.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAU,EAAE,CACrD,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AAEpF,0FAA0F;AAC1F,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,SAA2B,EAC3B,UAAkB,EACK,EAAE;IACzB,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACxE,MAAM,cAAc,GAAG,CAAC,GAAG,cAAc,aAAa,EAAE,GAAG,cAAc,cAAc,CAAC,CAAA;IACxF,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC;SAC5C,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;SAChG,IAAI,EAAE,CAAA;AACX,CAAC,CAAA;AAED,iGAAiG;AACjG,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,UAAkB,EAAU,EAAE,CAAC,CAAC;IAC1E,IAAI,EAAE,0CAA0C;IAChD,KAAK,EAAE,OAAO;IACd,cAAc;QACZ,MAAM,UAAU,GAAG,iCAAiC,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,CAAC,CAAA;QACrF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CACR,gEAAgE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/G,CAAA;QACH,CAAC;IACH,CAAC;CACF,CAAC,CAAA"}