@knpkv/codecommit-core 0.9.0 → 0.10.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.
Files changed (39) hide show
  1. package/README.md +23 -1
  2. package/dist/ChildEnv.d.ts +36 -0
  3. package/dist/ChildEnv.d.ts.map +1 -0
  4. package/dist/ChildEnv.js +91 -0
  5. package/dist/ChildEnv.js.map +1 -0
  6. package/dist/ReadClient/ReadClient.d.ts.map +1 -1
  7. package/dist/ReadClient/ReadClient.js +24 -6
  8. package/dist/ReadClient/ReadClient.js.map +1 -1
  9. package/dist/ReadClient/models.d.ts +1 -1
  10. package/dist/ReadClient/models.js +1 -1
  11. package/dist/ReadClient/models.js.map +1 -1
  12. package/dist/ReviewClient/ReviewClient.d.ts +28 -0
  13. package/dist/ReviewClient/ReviewClient.d.ts.map +1 -0
  14. package/dist/ReviewClient/ReviewClient.js +232 -0
  15. package/dist/ReviewClient/ReviewClient.js.map +1 -0
  16. package/dist/ReviewClient/ReviewProvider.d.ts +41 -0
  17. package/dist/ReviewClient/ReviewProvider.d.ts.map +1 -0
  18. package/dist/ReviewClient/ReviewProvider.js +54 -0
  19. package/dist/ReviewClient/ReviewProvider.js.map +1 -0
  20. package/dist/ReviewClient/errors.d.ts +15 -0
  21. package/dist/ReviewClient/errors.d.ts.map +1 -0
  22. package/dist/ReviewClient/errors.js +20 -0
  23. package/dist/ReviewClient/errors.js.map +1 -0
  24. package/dist/ReviewClient/index.d.ts +6 -0
  25. package/dist/ReviewClient/index.d.ts.map +1 -0
  26. package/dist/ReviewClient/index.js +6 -0
  27. package/dist/ReviewClient/index.js.map +1 -0
  28. package/dist/ReviewClient/models.d.ts +123 -0
  29. package/dist/ReviewClient/models.d.ts.map +1 -0
  30. package/dist/ReviewClient/models.js +63 -0
  31. package/dist/ReviewClient/models.js.map +1 -0
  32. package/dist/SandboxService/SandboxService.d.ts.map +1 -1
  33. package/dist/SandboxService/SandboxService.js +10 -1
  34. package/dist/SandboxService/SandboxService.js.map +1 -1
  35. package/dist/index.d.ts +2 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +2 -0
  38. package/dist/index.js.map +1 -1
  39. package/package.json +2 -1
package/README.md CHANGED
@@ -46,7 +46,28 @@ const program = Effect.gen(function* () {
46
46
 
47
47
  The models preserve the exact pull request revision, base/head commits, merge base, old/new paths, blob IDs, modes, provider cursor, and requested provider page limit. `getBlob` reads one immutable blob through the same injectable provider and Schema boundary, retains at most 1 MiB, and distinguishes the provider's file limit from the read client's exact observed byte limit. Streams and blob reads inherit Effect interruption, so cancellation stops an in-flight provider call. Provider authentication/API failures, missing objects, malformed responses, and blob size limits remain typed.
48
48
 
49
- `classifyCodeCommitFile` derives conservative binary/generated facts from bounded bytes and stable path signals. Binary detection requires a NUL byte; generated detection recognizes an explicit `generated` path segment, `.generated.`, minified/source-map suffixes, and common lockfiles. It deliberately avoids broad directory guesses such as `dist` or `vendor`. Commit history and comment reads remain later I01 slices; callers must not infer classification merely from a successful inventory read without content.
49
+ `classifyCodeCommitFile` derives conservative binary/generated facts from bounded bytes and stable path signals. Binary detection requires a NUL byte; generated detection recognizes an explicit `generated` path segment, `.generated.`, minified/source-map suffixes, and common lockfiles. It deliberately avoids broad directory guesses such as `dist` or `vendor`. General ReadClient commit-history and comment queries remain later I01 slices; the ReviewClient uses a bounded internal comment read only for reconciliation. Callers must not infer classification merely from a successful inventory read without content.
50
+
51
+ ### ReviewClient
52
+
53
+ The supported `@knpkv/codecommit-core/ReviewClient.js` entry exposes immutable pull-request review actions for server integrations. Every action carries the exact repository, pull request revision, base commit, and head commit that a caller authorized. `preflight` rejects a changed or closed target before a write, `execute` returns a secret-free provider receipt, and `reconcile` inspects provider state without replaying an ambiguous mutation.
54
+
55
+ ```typescript
56
+ import { ReviewClient } from "@knpkv/codecommit-core"
57
+ import { Effect } from "effect"
58
+
59
+ declare const action: ReviewClient.CodeCommitReviewAction
60
+
61
+ const program = Effect.gen(function* () {
62
+ const client = yield* ReviewClient.CodeCommitReviewClient
63
+ yield* client.preflight(action)
64
+ return yield* client.execute(action)
65
+ })
66
+ ```
67
+
68
+ `CodeCommitReviewClient.live` supplies the raw mutation provider and still requires a `CodeCommitReadClient`, `AwsClientConfig`, and `HttpClient` when layers are composed. CodeCommit natively supports approve and revoke approval. It has no request-review or request-changes state mutation, so those actions are target-bound idempotent comments attached to the authorized base/head commits. Comment reconciliation searches by AWS client request token; approval reconciliation reads the signed-in identity’s state and treats an absent caller as a completed revoke.
69
+
70
+ Governed merge is deliberately not exposed. CodeCommit’s pull-request merge operation enforces provider approval rules but cannot compare-and-set the authorized destination commit, while its branch fast-forward operation can compare-and-set the destination but bypasses pull-request approval rules. Until the provider offers one atomic operation with both guarantees, callers must not model either endpoint as a governed PR merge.
50
71
 
51
72
  ### CacheService (SQLite)
52
73
 
@@ -93,6 +114,7 @@ Client-side code must use deep imports to avoid pulling in server-only deps:
93
114
  import { PullRequest } from "@knpkv/codecommit-core/Domain.js"
94
115
  import { AppStatus } from "@knpkv/codecommit-core/Domain.js"
95
116
  import { CodeCommitReadClient } from "@knpkv/codecommit-core/ReadClient.js"
117
+ import { CodeCommitReviewClient } from "@knpkv/codecommit-core/ReviewClient.js"
96
118
  ```
97
119
 
98
120
  The `.js` suffix is required — see package.json exports field.
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Environment construction for profile-scoped child processes.
3
+ *
4
+ * Tools we spawn (`git` with the `aws codecommit credential-helper`, and
5
+ * `assume`) are told which AWS profile to use explicitly. They still need the
6
+ * caller's `PATH`, so they run with `extendEnv: true` — which also inherits any
7
+ * ambient AWS credentials the caller happens to export.
8
+ *
9
+ * That inheritance is not benign. The AWS credential chain resolves environment
10
+ * variables *above* profile configuration, so an ambient `AWS_ACCESS_KEY_ID`
11
+ * silently wins over the profile we asked for and the command authenticates as
12
+ * the wrong identity. Both region variables override the profile's configured
13
+ * region the same way.
14
+ *
15
+ * `profileScopedEnv` removes those variables so the named profile is the only
16
+ * credential and region source, and callers reintroduce a region only by passing
17
+ * it explicitly. Mapping a name to `undefined` drops it from the child
18
+ * environment rather than setting it to the string `"undefined"` — verified on
19
+ * both Node and Bun, the two runtimes this CLI ships on.
20
+ */
21
+ /**
22
+ * Builds a child environment where `overrides` are the only AWS credential and
23
+ * region inputs, dropping any ambient values that would outrank them.
24
+ *
25
+ * Must be paired with `extendEnv: true`; on its own it does not carry `PATH`.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * ChildProcess.make("git", args, {
30
+ * env: ChildEnv.profileScopedEnv({ AWS_PROFILE: profile }),
31
+ * extendEnv: true
32
+ * })
33
+ * ```
34
+ */
35
+ export declare const profileScopedEnv: (overrides: Record<string, string | undefined>) => Record<string, string | undefined>;
36
+ //# sourceMappingURL=ChildEnv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChildEnv.d.ts","sourceRoot":"","sources":["../src/ChildEnv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAoDH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB,cAChB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KAC5C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAMnC,CAAA"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Environment construction for profile-scoped child processes.
3
+ *
4
+ * Tools we spawn (`git` with the `aws codecommit credential-helper`, and
5
+ * `assume`) are told which AWS profile to use explicitly. They still need the
6
+ * caller's `PATH`, so they run with `extendEnv: true` — which also inherits any
7
+ * ambient AWS credentials the caller happens to export.
8
+ *
9
+ * That inheritance is not benign. The AWS credential chain resolves environment
10
+ * variables *above* profile configuration, so an ambient `AWS_ACCESS_KEY_ID`
11
+ * silently wins over the profile we asked for and the command authenticates as
12
+ * the wrong identity. Both region variables override the profile's configured
13
+ * region the same way.
14
+ *
15
+ * `profileScopedEnv` removes those variables so the named profile is the only
16
+ * credential and region source, and callers reintroduce a region only by passing
17
+ * it explicitly. Mapping a name to `undefined` drops it from the child
18
+ * environment rather than setting it to the string `"undefined"` — verified on
19
+ * both Node and Bun, the two runtimes this CLI ships on.
20
+ */
21
+ /**
22
+ * Credential and region variables that outrank profile configuration.
23
+ *
24
+ * Two environment credential providers sit above the profile in the chain, so
25
+ * both have to be cleared:
26
+ *
27
+ * - Static credentials, including `AWS_SECURITY_TOKEN` — the legacy alias for
28
+ * `AWS_SESSION_TOKEN`, still honoured by the CLI.
29
+ * - Web identity, which activates from `AWS_ROLE_ARN` plus
30
+ * `AWS_WEB_IDENTITY_TOKEN_FILE` and would otherwise assume an ambient role.
31
+ *
32
+ * Both `AWS_REGION` and `AWS_DEFAULT_REGION` are cleared. Clearing only one is
33
+ * worse than clearing neither, because which variable leaks through then depends
34
+ * on the caller's shell rather than on anything this module states.
35
+ *
36
+ * Deliberately *not* cleared:
37
+ *
38
+ * - `AWS_CONTAINER_CREDENTIALS_*` and IMDS resolve *below* the shared config
39
+ * file, so they cannot outrank an explicit profile.
40
+ * - `AWS_CONFIG_FILE` and `AWS_SHARED_CREDENTIALS_FILE` select which file the
41
+ * profile is read from. The parent resolved the profile name against those
42
+ * same paths, so clearing them would point the child at a different file and
43
+ * break legitimate custom config locations.
44
+ *
45
+ * KNOWN LIMITATION — Windows casing. Clearing works by mapping each name to
46
+ * `undefined` in an object merged over the inherited environment, which matches
47
+ * keys exactly. Windows environment names are case-insensitive, so a host
48
+ * exporting `Aws_Access_Key_Id` keeps that entry alongside the `AWS_ACCESS_KEY_ID`
49
+ * tombstone and the AWS CLI can still read it. Closing this means filtering the
50
+ * inherited keys case-insensitively, which requires enumerating the parent
51
+ * environment; no Effect service exposes that here, and `globalThis.process` is
52
+ * not available to this code. The two `assume` call sites are POSIX-only in
53
+ * practice — their clipboard step has only `pbcopy` and `xclip` — so the exposed
54
+ * path is the SandboxService clone on a Windows host. Tracked rather than
55
+ * silently accepted; the exact-case behaviour these tests cover is correct on
56
+ * POSIX.
57
+ */
58
+ const OVERRIDING_AWS_VARIABLES = [
59
+ "AWS_ACCESS_KEY_ID",
60
+ "AWS_SECRET_ACCESS_KEY",
61
+ "AWS_SESSION_TOKEN",
62
+ "AWS_SECURITY_TOKEN",
63
+ "AWS_CREDENTIAL_EXPIRATION",
64
+ "AWS_ROLE_ARN",
65
+ "AWS_WEB_IDENTITY_TOKEN_FILE",
66
+ "AWS_ROLE_SESSION_NAME",
67
+ "AWS_REGION",
68
+ "AWS_DEFAULT_REGION"
69
+ ];
70
+ /**
71
+ * Builds a child environment where `overrides` are the only AWS credential and
72
+ * region inputs, dropping any ambient values that would outrank them.
73
+ *
74
+ * Must be paired with `extendEnv: true`; on its own it does not carry `PATH`.
75
+ *
76
+ * @example
77
+ * ```ts
78
+ * ChildProcess.make("git", args, {
79
+ * env: ChildEnv.profileScopedEnv({ AWS_PROFILE: profile }),
80
+ * extendEnv: true
81
+ * })
82
+ * ```
83
+ */
84
+ export const profileScopedEnv = (overrides) => {
85
+ const cleared = {};
86
+ for (const name of OVERRIDING_AWS_VARIABLES) {
87
+ cleared[name] = undefined;
88
+ }
89
+ return { ...cleared, ...overrides };
90
+ };
91
+ //# sourceMappingURL=ChildEnv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChildEnv.js","sourceRoot":"","sources":["../src/ChildEnv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,wBAAwB,GAA0B;IACtD,mBAAmB;IACnB,uBAAuB;IACvB,mBAAmB;IACnB,oBAAoB;IACpB,2BAA2B;IAC3B,cAAc;IACd,6BAA6B;IAC7B,uBAAuB;IACvB,YAAY;IACZ,oBAAoB;CACrB,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,SAA6C,EACT,EAAE;IACtC,MAAM,OAAO,GAAuC,EAAE,CAAA;IACtD,KAAK,MAAM,IAAI,IAAI,wBAAwB,EAAE,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;IAC3B,CAAC;IACD,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;AACrC,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReadClient.d.ts","sourceRoot":"","sources":["../../src/ReadClient/ReadClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAA6B,MAAM,EAAE,MAAM,QAAQ,CAAA;AAGlF,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,aAAa,CAAA;AACpB,OAAO,EAEL,yBAAyB,EACzB,qBAAqB,EAGrB,qBAAqB,EACrB,0BAA0B,EAE1B,yBAAyB,EACzB,6BAA6B,EAC7B,KAAK,qBAAqB,EAC1B,wBAAwB,EACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,sBAAsB,EAEtB,KAAK,sBAAsB,EAC3B,KAAK,iCAAiC,EACtC,KAAK,6BAA6B,EAClC,KAAK,mCAAmC,EACxC,KAAK,mCAAmC,EACzC,MAAM,mBAAmB,CAAA;AAsJ1B,0EAA0E;AAC1E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,eAAe,EAAE,CACxB,OAAO,EAAE,qBAAqB,KAC3B,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,mBAAmB,CAAC,CAAA;IAClE,QAAQ,CAAC,oBAAoB,EAAE,CAC7B,OAAO,EAAE,mCAAmC,KACzC,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,mBAAmB,CAAC,CAAA;IACjE,QAAQ,CAAC,OAAO,EAAE,CAChB,OAAO,EAAE,sBAAsB,KAC5B,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,CAAA;IAC9D,QAAQ,CAAC,oBAAoB,EAAE,CAC7B,OAAO,EAAE,IAAI,CAAC,mCAAmC,EAAE,gBAAgB,CAAC,KACjE,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,mBAAmB,CAAC,CAAA;IAClE,QAAQ,CAAC,kBAAkB,EAAE,CAC3B,OAAO,EAAE,IAAI,CAAC,mCAAmC,EAAE,gBAAgB,GAAG,WAAW,CAAC,KAC/E,MAAM,CAAC,MAAM,CAAC,6BAA6B,EAAE,mBAAmB,CAAC,CAAA;IACtE,QAAQ,CAAC,cAAc,EAAE,CACvB,OAAO,EAAE,6BAA6B,KACnC,MAAM,CAAC,MAAM,CAAC,6BAA6B,EAAE,mBAAmB,CAAC,CAAA;IACtE,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,OAAO,EAAE,IAAI,CAAC,iCAAiC,EAAE,gBAAgB,CAAC,KAC/D,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,mBAAmB,CAAC,CAAA;IACnE,QAAQ,CAAC,kBAAkB,EAAE,CAC3B,OAAO,EAAE,IAAI,CAAC,iCAAiC,EAAE,gBAAgB,GAAG,WAAW,CAAC,KAC7E,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,CAAA;CAC/D;;AAED,8CAA8C;AAC9C,qBAAa,oBAAqB,SAAQ,yBAEzC;IACC,oEAAoE;IACpE,MAAM,CAAC,QAAQ,CAAC,KAAK,mEA2HpB;IAED,8DAA8D;IAC9D,MAAM,CAAC,QAAQ,CAAC,IAAI,mJAA6E;CAClG"}
1
+ {"version":3,"file":"ReadClient.d.ts","sourceRoot":"","sources":["../../src/ReadClient/ReadClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAA6B,MAAM,EAAE,MAAM,QAAQ,CAAA;AAGlF,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,aAAa,CAAA;AACpB,OAAO,EAEL,yBAAyB,EACzB,qBAAqB,EAGrB,qBAAqB,EACrB,0BAA0B,EAE1B,yBAAyB,EACzB,6BAA6B,EAC7B,KAAK,qBAAqB,EAC1B,wBAAwB,EACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,sBAAsB,EAEtB,KAAK,sBAAsB,EAC3B,KAAK,iCAAiC,EACtC,KAAK,6BAA6B,EAClC,KAAK,mCAAmC,EACxC,KAAK,mCAAmC,EACzC,MAAM,mBAAmB,CAAA;AA+K1B,0EAA0E;AAC1E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,eAAe,EAAE,CACxB,OAAO,EAAE,qBAAqB,KAC3B,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,mBAAmB,CAAC,CAAA;IAClE,QAAQ,CAAC,oBAAoB,EAAE,CAC7B,OAAO,EAAE,mCAAmC,KACzC,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,mBAAmB,CAAC,CAAA;IACjE,QAAQ,CAAC,OAAO,EAAE,CAChB,OAAO,EAAE,sBAAsB,KAC5B,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,CAAA;IAC9D,QAAQ,CAAC,oBAAoB,EAAE,CAC7B,OAAO,EAAE,IAAI,CAAC,mCAAmC,EAAE,gBAAgB,CAAC,KACjE,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,mBAAmB,CAAC,CAAA;IAClE,QAAQ,CAAC,kBAAkB,EAAE,CAC3B,OAAO,EAAE,IAAI,CAAC,mCAAmC,EAAE,gBAAgB,GAAG,WAAW,CAAC,KAC/E,MAAM,CAAC,MAAM,CAAC,6BAA6B,EAAE,mBAAmB,CAAC,CAAA;IACtE,QAAQ,CAAC,cAAc,EAAE,CACvB,OAAO,EAAE,6BAA6B,KACnC,MAAM,CAAC,MAAM,CAAC,6BAA6B,EAAE,mBAAmB,CAAC,CAAA;IACtE,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,OAAO,EAAE,IAAI,CAAC,iCAAiC,EAAE,gBAAgB,CAAC,KAC/D,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,mBAAmB,CAAC,CAAA;IACnE,QAAQ,CAAC,kBAAkB,EAAE,CAC3B,OAAO,EAAE,IAAI,CAAC,iCAAiC,EAAE,gBAAgB,GAAG,WAAW,CAAC,KAC7E,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,CAAA;CAC/D;;AAED,8CAA8C;AAC9C,qBAAa,oBAAqB,SAAQ,yBAEzC;IACC,oEAAoE;IACpE,MAAM,CAAC,QAAQ,CAAC,KAAK,mEA2HpB;IAED,8DAA8D;IAC9D,MAAM,CAAC,QAAQ,CAAC,IAAI,mJAA6E;CAClG"}
@@ -9,6 +9,14 @@ import { CodeCommitBlobTooLargeError, CodeCommitMalformedResponseError, CodeComm
9
9
  import { CODECOMMIT_BLOB_MAXIMUM_BYTES, CodeCommitAccountIdentity, CodeCommitBlobContent, CodeCommitBlobId, CodeCommitBlobMetadata, CodeCommitChangedFile, CodeCommitChangedFilesPage, CodeCommitPageToken, CodeCommitPullRequestPage, CodeCommitPullRequestRevision, CodeCommitRepositoryPage } from "./models.js";
10
10
  import { CodeCommitReadProvider, CodeCommitReadProviderLive } from "./ReadProvider.js";
11
11
  const PROVIDER_PAGE_LIMIT = 100;
12
+ /**
13
+ * Concurrency for hydrating a listed page's pull requests via GetPullRequest.
14
+ *
15
+ * CodeCommit's GetPullRequest throttle ceiling is low; a wide fan-out bursts it
16
+ * and surfaces ThrottlingException even for small repositories. Kept low so a
17
+ * single sync stays under the limit, trading a little latency for reliability.
18
+ */
19
+ const PULL_REQUEST_HYDRATION_CONCURRENCY = 2;
12
20
  const RawCallerIdentity = Schema.Struct({
13
21
  Account: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty()),
14
22
  Arn: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty())
@@ -29,9 +37,13 @@ const RawPullRequestResponse = Schema.Struct({
29
37
  pullRequest: Schema.Struct({
30
38
  pullRequestId: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty()),
31
39
  revisionId: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty()),
32
- title: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty()),
40
+ // Provider-supplied free text: CodeCommit does not guarantee a trimmed
41
+ // title (observed trailing "\n"), so normalize on decode instead of rejecting.
42
+ title: Schema.String.check(Schema.isNonEmpty()),
33
43
  description: Schema.optional(Schema.String),
34
- authorArn: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty()),
44
+ // CodeCommit omits authorArn for deleted/system identities (observed "Missing
45
+ // key"); the sibling AwsClient read paths already model it as optional.
46
+ authorArn: Schema.optional(Schema.NullOr(Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty()))),
35
47
  pullRequestStatus: Schema.Literals(["OPEN", "CLOSED"]),
36
48
  pullRequestTargets: Schema.Array(RawPullRequestTarget).check(Schema.isLengthBetween(1, 1)),
37
49
  creationDate: Schema.Date,
@@ -85,7 +97,13 @@ const mapProviderError = (operation) => (error) => {
85
97
  })
86
98
  : error;
87
99
  };
88
- const decodeProvider = (operation, schema, value) => Schema.decodeUnknownEffect(Schema.toType(schema))(value).pipe(Effect.mapError(() => malformed(operation)));
100
+ // Effect Schema error messages embed the rejected value. That is a useful
101
+ // field-level diagnostic for metadata operations, but get-blob carries raw
102
+ // repository file bytes, so its message must never reach the logs.
103
+ const operationLogsRejectedValue = (operation) => operation !== "get-blob";
104
+ const decodeProvider = (operation, schema, value) => Schema.decodeUnknownEffect(Schema.toType(schema))(value).pipe(Effect.tapError((error) => Effect.logError(operationLogsRejectedValue(operation)
105
+ ? `CodeCommit provider response failed schema decode (${operation}): ${error.message}`
106
+ : `CodeCommit provider response failed schema decode (${operation})`)), Effect.mapError(() => malformed(operation)));
89
107
  const decodePullRequest = Effect.fn("CodeCommitReadClient.decodePullRequest")(function* (value) {
90
108
  const raw = yield* decodeProvider("get-pull-request", RawPullRequestResponse, value);
91
109
  const pullRequest = raw.pullRequest;
@@ -96,9 +114,9 @@ const decodePullRequest = Effect.fn("CodeCommitReadClient.decodePullRequest")(fu
96
114
  pullRequestId: pullRequest.pullRequestId,
97
115
  revisionId: pullRequest.revisionId,
98
116
  repositoryName: target.repositoryName,
99
- title: pullRequest.title,
117
+ title: pullRequest.title.trim(),
100
118
  description: pullRequest.description,
101
- authorArn: pullRequest.authorArn,
119
+ authorArn: pullRequest.authorArn ?? null,
102
120
  status: target.mergeMetadata?.isMerged === true ? "MERGED" : pullRequest.pullRequestStatus,
103
121
  sourceReference: target.sourceReference,
104
122
  destinationReference: target.destinationReference,
@@ -169,7 +187,7 @@ export class CodeCommitReadClient extends Context.Service()("@knpkv/codecommit-c
169
187
  const listPullRequestsPage = Effect.fn("CodeCommitReadClient.listPullRequestsPage")(function* (request) {
170
188
  const raw = yield* provider.listPullRequestsPage({ ...request, maximumResults: PROVIDER_PAGE_LIMIT }).pipe(Effect.mapError(mapProviderError("list-pull-requests")));
171
189
  const page = yield* decodeProvider("list-pull-requests", RawPullRequestPage, raw);
172
- const pullRequests = yield* Effect.forEach(page.pullRequestIds, (pullRequestId) => getPullRequest({ account: request.account, pullRequestId }), { concurrency: 5 });
190
+ const pullRequests = yield* Effect.forEach(page.pullRequestIds, (pullRequestId) => getPullRequest({ account: request.account, pullRequestId }), { concurrency: PULL_REQUEST_HYDRATION_CONCURRENCY });
173
191
  return new CodeCommitPullRequestPage({
174
192
  pullRequests,
175
193
  nextToken: page.nextToken === undefined ? null : CodeCommitPageToken.make(page.nextToken)
@@ -1 +1 @@
1
- {"version":3,"file":"ReadClient.js","sourceRoot":"","sources":["../../src/ReadClient/ReadClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReadClient.js","sourceRoot":"","sources":["../../src/ReadClient/ReadClient.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,7 @@ declare const CodeCommitPullRequestRevision_base: Schema.Class<CodeCommitPullReq
56
56
  readonly repositoryName: Schema.brand<Schema.String, "RepositoryName">;
57
57
  readonly title: Schema.String;
58
58
  readonly description: Schema.optional<Schema.String>;
59
- readonly authorArn: Schema.String;
59
+ readonly authorArn: Schema.NullOr<Schema.String>;
60
60
  readonly status: Schema.Literals<readonly ["OPEN", "CLOSED", "MERGED"]>;
61
61
  readonly sourceReference: Schema.String;
62
62
  readonly destinationReference: Schema.String;
@@ -52,7 +52,7 @@ export class CodeCommitPullRequestRevision extends Schema.Class("CodeCommitPullR
52
52
  repositoryName: RepositoryName,
53
53
  title: NonEmptyString,
54
54
  description: Schema.optional(Schema.String),
55
- authorArn: NonEmptyString,
55
+ authorArn: Schema.NullOr(NonEmptyString),
56
56
  status: Schema.Literals(["OPEN", "CLOSED", "MERGED"]),
57
57
  sourceReference: NonEmptyString,
58
58
  destinationReference: NonEmptyString,
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/ReadClient/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/ReadClient/models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Schema-decoded CodeCommit review actions with immutable-head preflight and read-only reconciliation.
3
+ *
4
+ * @category Review client
5
+ * @module
6
+ */
7
+ import { Context, Effect, Layer } from "effect";
8
+ import type { CodeCommitPullRequestRevision } from "../ReadClient/models.js";
9
+ import { CodeCommitReadClient } from "../ReadClient/ReadClient.js";
10
+ import { type CodeCommitReviewError } from "./errors.js";
11
+ import { type CodeCommitReviewAction, CodeCommitReviewReceipt, type CodeCommitReviewReconciliation } from "./models.js";
12
+ import { CodeCommitReviewProvider } from "./ReviewProvider.js";
13
+ /** Public review operations implemented over injectable read and raw-provider boundaries. */
14
+ export interface CodeCommitReviewClientService {
15
+ readonly preflight: (action: CodeCommitReviewAction) => Effect.Effect<CodeCommitPullRequestRevision, CodeCommitReviewError>;
16
+ readonly execute: (action: CodeCommitReviewAction) => Effect.Effect<CodeCommitReviewReceipt, CodeCommitReviewError>;
17
+ readonly reconcile: (action: CodeCommitReviewAction) => Effect.Effect<CodeCommitReviewReconciliation, CodeCommitReviewError>;
18
+ }
19
+ declare const CodeCommitReviewClient_base: Context.ServiceClass<CodeCommitReviewClient, "@knpkv/codecommit-core/CodeCommitReviewClient", CodeCommitReviewClientService>;
20
+ /** Schema-decoded CodeCommit review service. */
21
+ export declare class CodeCommitReviewClient extends CodeCommitReviewClient_base {
22
+ /** Review client implementation requiring read and raw mutation providers. */
23
+ static readonly layer: Layer.Layer<CodeCommitReviewClient, never, CodeCommitReadClient | CodeCommitReviewProvider>;
24
+ /** Live review client backed by production read and mutation providers. */
25
+ static readonly live: Layer.Layer<CodeCommitReviewClient, never, import("../AwsClientConfig.ts").AwsClientConfig | CodeCommitReadClient | import("effect/unstable/http/HttpClient").HttpClient>;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=ReviewClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReviewClient.d.ts","sourceRoot":"","sources":["../../src/ReviewClient/ReviewClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAqB,MAAM,QAAQ,CAAA;AAKlE,OAAO,KAAK,EAA6B,6BAA6B,EAAE,MAAM,yBAAyB,CAAA;AACvG,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAiC,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,EACL,KAAK,sBAAsB,EAC3B,uBAAuB,EACvB,KAAK,8BAA8B,EAEpC,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,wBAAwB,EAAgC,MAAM,qBAAqB,CAAA;AA2J5F,6FAA6F;AAC7F,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,SAAS,EAAE,CAClB,MAAM,EAAE,sBAAsB,KAC3B,MAAM,CAAC,MAAM,CAAC,6BAA6B,EAAE,qBAAqB,CAAC,CAAA;IACxE,QAAQ,CAAC,OAAO,EAAE,CAChB,MAAM,EAAE,sBAAsB,KAC3B,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAA;IAClE,QAAQ,CAAC,SAAS,EAAE,CAClB,MAAM,EAAE,sBAAsB,KAC3B,MAAM,CAAC,MAAM,CAAC,8BAA8B,EAAE,qBAAqB,CAAC,CAAA;CAC1E;;AAED,gDAAgD;AAChD,qBAAa,sBAAuB,SAAQ,2BAGQ;IAClD,8EAA8E;IAC9E,MAAM,CAAC,QAAQ,CAAC,KAAK,8FA4GpB;IAED,2EAA2E;IAC3E,MAAM,CAAC,QAAQ,CAAC,IAAI,4KAEnB;CACF"}
@@ -0,0 +1,232 @@
1
+ /**
2
+ * Schema-decoded CodeCommit review actions with immutable-head preflight and read-only reconciliation.
3
+ *
4
+ * @category Review client
5
+ * @module
6
+ */
7
+ import { Context, Effect, Layer, Predicate, Schema } from "effect";
8
+ import { identityMatches } from "../Domain.js";
9
+ import { CodeCommitMalformedResponseError, CodeCommitReadNotFoundError } from "../ReadClient/errors.js";
10
+ import { CodeCommitReadClient } from "../ReadClient/ReadClient.js";
11
+ import { CodeCommitReviewConflictError } from "./errors.js";
12
+ import { CodeCommitReviewReceipt } from "./models.js";
13
+ import { CodeCommitReviewProvider, CodeCommitReviewProviderLive } from "./ReviewProvider.js";
14
+ const MAXIMUM_COMMENT_PAGES = 20;
15
+ const COMMENT_MARKER_PREFIX = "<!-- knpkv-codecommit-review:";
16
+ const COMMENT_MARKER_SUFFIX = " -->";
17
+ const RawCommentResponse = Schema.Struct({
18
+ comment: Schema.Struct({
19
+ commentId: Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty()),
20
+ clientRequestToken: Schema.optional(Schema.String)
21
+ })
22
+ });
23
+ const RawApprovalStates = Schema.Struct({
24
+ approvals: Schema.optional(Schema.Array(Schema.Struct({
25
+ userArn: Schema.optional(Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty())),
26
+ approvalState: Schema.optional(Schema.Literals(["APPROVE", "REVOKE"]))
27
+ })))
28
+ });
29
+ const RawCommentsPage = Schema.Struct({
30
+ commentsForPullRequestData: Schema.optional(Schema.Array(Schema.Struct({
31
+ comments: Schema.optional(Schema.Array(Schema.Struct({
32
+ commentId: Schema.optional(Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty())),
33
+ clientRequestToken: Schema.optional(Schema.String),
34
+ content: Schema.optional(Schema.String)
35
+ })))
36
+ }))),
37
+ nextToken: Schema.optional(Schema.String.check(Schema.isTrimmed(), Schema.isNonEmpty()))
38
+ });
39
+ const malformed = (operation) => new CodeCommitMalformedResponseError({
40
+ operation,
41
+ diagnosticCode: "provider-response-schema-invalid"
42
+ });
43
+ const decodeProvider = (operation, schema, value) => Schema.decodeUnknownEffect(Schema.toType(schema))(value).pipe(Effect.mapError(() => malformed(operation)));
44
+ const conflictReason = (cause) => {
45
+ if (Predicate.isTagged(cause, "RevisionNotCurrentException"))
46
+ return "revision-changed";
47
+ if (Predicate.isTagged(cause, "TipOfSourceReferenceIsDifferentException"))
48
+ return "source-commit-changed";
49
+ if (Predicate.isTagged(cause, "PullRequestAlreadyClosedException"))
50
+ return "pull-request-closed";
51
+ if (Predicate.isTagged(cause, "PullRequestCannotBeApprovedByAuthorException"))
52
+ return "approval-by-author";
53
+ if (Predicate.isTagged(cause, "MaximumNumberOfApprovalsExceededException")) {
54
+ return "approval-rules-unsatisfied";
55
+ }
56
+ if (Predicate.isTagged(cause, "PullRequestApprovalRulesNotSatisfiedException")) {
57
+ return "approval-rules-unsatisfied";
58
+ }
59
+ if (Predicate.isTagged(cause, "RepositoryNotAssociatedWithPullRequestException"))
60
+ return "repository-changed";
61
+ if (Predicate.isTagged(cause, "CommitDoesNotExistException"))
62
+ return "source-commit-changed";
63
+ if (Predicate.isTagged(cause, "CommentContentSizeLimitExceededException") ||
64
+ Predicate.isTagged(cause, "InvalidClientRequestTokenException") ||
65
+ Predicate.isTagged(cause, "InvalidFileLocationException") ||
66
+ Predicate.isTagged(cause, "InvalidFilePositionException") ||
67
+ Predicate.isTagged(cause, "InvalidPathException") ||
68
+ Predicate.isTagged(cause, "PathDoesNotExistException") ||
69
+ Predicate.isTagged(cause, "InvalidRelativeFileVersionEnumException"))
70
+ return "revision-changed";
71
+ if (Predicate.isTagged(cause, "ConcurrentReferenceUpdateException") ||
72
+ Predicate.isTagged(cause, "ManualMergeRequiredException"))
73
+ return "merge-conflict";
74
+ return null;
75
+ };
76
+ const mapProviderError = (operation) => (error) => {
77
+ if (error._tag !== "AwsApiError")
78
+ return error;
79
+ const reason = conflictReason(error.cause);
80
+ if (reason !== null)
81
+ return new CodeCommitReviewConflictError({ operation, reason });
82
+ if (Predicate.isTagged(error.cause, "PullRequestDoesNotExistException") ||
83
+ Predicate.isTagged(error.cause, "RepositoryDoesNotExistException"))
84
+ return new CodeCommitReadNotFoundError({ operation });
85
+ return error;
86
+ };
87
+ const targetConflict = (target, pullRequest) => {
88
+ if (pullRequest.repositoryName !== target.repositoryName)
89
+ return "repository-changed";
90
+ if (pullRequest.status !== "OPEN")
91
+ return "pull-request-closed";
92
+ if (pullRequest.revisionId !== target.revisionId)
93
+ return "revision-changed";
94
+ if (pullRequest.sourceCommit !== target.sourceCommit)
95
+ return "source-commit-changed";
96
+ if (pullRequest.destinationCommit !== target.destinationCommit)
97
+ return "destination-commit-changed";
98
+ if (pullRequest.destinationReference !== target.destinationReference)
99
+ return "destination-reference-changed";
100
+ return null;
101
+ };
102
+ const arnAccountId = (arn) => {
103
+ const fields = arn.trim().split(":");
104
+ const accountId = fields[4];
105
+ return fields[0]?.toLowerCase() === "arn" && accountId !== undefined && /^[0-9]{12}$/u.test(accountId)
106
+ ? accountId
107
+ : null;
108
+ };
109
+ const approvalIdentityMatches = (identity, approvalArn) => {
110
+ const caller = identity.arn.trim().toLowerCase();
111
+ const approver = approvalArn.trim().toLowerCase();
112
+ if (caller === approver)
113
+ return true;
114
+ return arnAccountId(approvalArn) === identity.accountId && identityMatches(identity.arn, approvalArn);
115
+ };
116
+ const preflightTarget = Effect.fn("CodeCommitReviewClient.preflightTarget")(function* (readClient, target) {
117
+ const pullRequest = yield* readClient.getPullRequest({
118
+ account: target.account,
119
+ pullRequestId: target.pullRequestId
120
+ });
121
+ const reason = targetConflict(target, pullRequest);
122
+ if (reason !== null)
123
+ return yield* new CodeCommitReviewConflictError({ operation: "preflight", reason });
124
+ return pullRequest;
125
+ });
126
+ const commentSummary = (tag) => {
127
+ switch (tag) {
128
+ case "request-review":
129
+ return "Review request posted to the pull request";
130
+ case "request-changes":
131
+ return "Change request posted to the pull request";
132
+ case "comment":
133
+ return "Comment posted to the pull request";
134
+ case "approve":
135
+ return "Pull request revision approved";
136
+ case "revoke-approval":
137
+ return "Pull request approval revoked";
138
+ }
139
+ };
140
+ const commentMarker = (clientRequestToken) => `${COMMENT_MARKER_PREFIX}${clientRequestToken}${COMMENT_MARKER_SUFFIX}`;
141
+ const withCommentMarker = (action) => ({
142
+ ...action,
143
+ content: `${action.content}\n\n${commentMarker(action.clientRequestToken)}`
144
+ });
145
+ /** Schema-decoded CodeCommit review service. */
146
+ export class CodeCommitReviewClient extends Context.Service()("@knpkv/codecommit-core/CodeCommitReviewClient") {
147
+ /** Review client implementation requiring read and raw mutation providers. */
148
+ static layer = Layer.effect(CodeCommitReviewClient, Effect.gen(function* () {
149
+ const provider = yield* CodeCommitReviewProvider;
150
+ const readClient = yield* CodeCommitReadClient;
151
+ const preflight = (action) => preflightTarget(readClient, action.target);
152
+ const execute = Effect.fn("CodeCommitReviewClient.execute")(function* (action) {
153
+ switch (action._tag) {
154
+ case "request-review":
155
+ case "request-changes":
156
+ case "comment": {
157
+ yield* preflightTarget(readClient, action.target);
158
+ const raw = yield* provider.postComment(withCommentMarker(action)).pipe(Effect.mapError(mapProviderError("post-comment")));
159
+ const response = yield* decodeProvider("post-comment", RawCommentResponse, raw);
160
+ return new CodeCommitReviewReceipt({
161
+ operationId: `comment:${response.comment.commentId}`,
162
+ summary: commentSummary(action._tag)
163
+ });
164
+ }
165
+ case "approve":
166
+ case "revoke-approval": {
167
+ yield* preflightTarget(readClient, action.target);
168
+ yield* provider.updateApprovalState(action).pipe(Effect.mapError(mapProviderError("update-approval")));
169
+ return new CodeCommitReviewReceipt({
170
+ operationId: `approval:${action._tag}:${action.target.pullRequestId}:${action.target.revisionId}`,
171
+ summary: commentSummary(action._tag)
172
+ });
173
+ }
174
+ }
175
+ });
176
+ const reconcileComment = Effect.fn("CodeCommitReviewClient.reconcileComment")(function* (action) {
177
+ let nextToken = null;
178
+ for (let pageIndex = 0; pageIndex < MAXIMUM_COMMENT_PAGES; pageIndex += 1) {
179
+ const raw = yield* provider.getCommentsPage({ target: action.target, nextToken }).pipe(Effect.mapError(mapProviderError("reconcile-comment")));
180
+ const page = yield* decodeProvider("reconcile-comment", RawCommentsPage, raw);
181
+ const comment = (page.commentsForPullRequestData ?? [])
182
+ .flatMap(({ comments }) => comments ?? [])
183
+ .find(({ clientRequestToken, content }) => clientRequestToken === action.clientRequestToken ||
184
+ content?.includes(commentMarker(action.clientRequestToken)) === true);
185
+ if (comment?.commentId !== undefined) {
186
+ return {
187
+ _tag: "succeeded",
188
+ receipt: new CodeCommitReviewReceipt({
189
+ operationId: `comment:${comment.commentId}`,
190
+ summary: commentSummary(action._tag)
191
+ })
192
+ };
193
+ }
194
+ nextToken = page.nextToken ?? null;
195
+ if (nextToken === null)
196
+ return { _tag: "pending" };
197
+ }
198
+ return { _tag: "pending" };
199
+ });
200
+ const reconcile = Effect.fn("CodeCommitReviewClient.reconcile")(function* (action) {
201
+ switch (action._tag) {
202
+ case "request-review":
203
+ case "request-changes":
204
+ case "comment":
205
+ return yield* reconcileComment(action);
206
+ case "approve":
207
+ case "revoke-approval": {
208
+ const identity = yield* readClient.discoverAccount(action.target.account);
209
+ const raw = yield* provider.getApprovalStates(action.target).pipe(Effect.mapError(mapProviderError("reconcile-approval")));
210
+ const states = yield* decodeProvider("reconcile-approval", RawApprovalStates, raw);
211
+ const caller = (states.approvals ?? []).find(({ userArn }) => userArn !== undefined && approvalIdentityMatches(identity, userArn));
212
+ const reconciled = action._tag === "approve"
213
+ ? caller?.approvalState === "APPROVE"
214
+ : caller === undefined || caller.approvalState === "REVOKE";
215
+ return reconciled
216
+ ? {
217
+ _tag: "succeeded",
218
+ receipt: new CodeCommitReviewReceipt({
219
+ operationId: `approval:${action._tag}:${action.target.pullRequestId}:${action.target.revisionId}`,
220
+ summary: commentSummary(action._tag)
221
+ })
222
+ }
223
+ : { _tag: "pending" };
224
+ }
225
+ }
226
+ });
227
+ return { execute, preflight, reconcile };
228
+ }));
229
+ /** Live review client backed by production read and mutation providers. */
230
+ static live = CodeCommitReviewClient.layer.pipe(Layer.provide(CodeCommitReviewProviderLive));
231
+ }
232
+ //# sourceMappingURL=ReviewClient.js.map