@knpkv/codecommit-core 0.19.0 → 0.21.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 (110) hide show
  1. package/dist/AwsClient/AwsClientGated.d.ts.map +1 -1
  2. package/dist/AwsClient/AwsClientGated.js +0 -2
  3. package/dist/AwsClient/AwsClientGated.js.map +1 -1
  4. package/dist/AwsClient/approvalRuleContent.d.ts +2 -1
  5. package/dist/AwsClient/approvalRuleContent.d.ts.map +1 -1
  6. package/dist/AwsClient/approvalRuleContent.js +25 -18
  7. package/dist/AwsClient/approvalRuleContent.js.map +1 -1
  8. package/dist/AwsClient/getPullRequest.d.ts.map +1 -1
  9. package/dist/AwsClient/getPullRequest.js +21 -10
  10. package/dist/AwsClient/getPullRequest.js.map +1 -1
  11. package/dist/AwsClient/getPullRequests.d.ts +30 -23
  12. package/dist/AwsClient/getPullRequests.d.ts.map +1 -1
  13. package/dist/AwsClient/getPullRequests.js +50 -33
  14. package/dist/AwsClient/getPullRequests.js.map +1 -1
  15. package/dist/AwsClient/index.d.ts +1 -10
  16. package/dist/AwsClient/index.d.ts.map +1 -1
  17. package/dist/AwsClient/index.js +0 -1
  18. package/dist/AwsClient/index.js.map +1 -1
  19. package/dist/AwsClient/internal.d.ts +11 -1
  20. package/dist/AwsClient/internal.d.ts.map +1 -1
  21. package/dist/AwsClient/internal.js +7 -0
  22. package/dist/AwsClient/internal.js.map +1 -1
  23. package/dist/CacheService/Database.d.ts +1 -1
  24. package/dist/CacheService/Database.d.ts.map +1 -1
  25. package/dist/CacheService/Database.js +8 -2
  26. package/dist/CacheService/Database.js.map +1 -1
  27. package/dist/CacheService/diff.d.ts +14 -0
  28. package/dist/CacheService/diff.d.ts.map +1 -1
  29. package/dist/CacheService/diff.js +20 -2
  30. package/dist/CacheService/diff.js.map +1 -1
  31. package/dist/CacheService/migrations/0022_pull_request_approval_unknown.d.ts +9 -0
  32. package/dist/CacheService/migrations/0022_pull_request_approval_unknown.d.ts.map +1 -0
  33. package/dist/CacheService/migrations/0022_pull_request_approval_unknown.js +8 -0
  34. package/dist/CacheService/migrations/0022_pull_request_approval_unknown.js.map +1 -0
  35. package/dist/CacheService/migrations/0023_pull_request_row_versions.d.ts +17 -0
  36. package/dist/CacheService/migrations/0023_pull_request_row_versions.d.ts.map +1 -0
  37. package/dist/CacheService/migrations/0023_pull_request_row_versions.js +37 -0
  38. package/dist/CacheService/migrations/0023_pull_request_row_versions.js.map +1 -0
  39. package/dist/CacheService/migrations/0024_pull_request_approval_baseline.d.ts +12 -0
  40. package/dist/CacheService/migrations/0024_pull_request_approval_baseline.d.ts.map +1 -0
  41. package/dist/CacheService/migrations/0024_pull_request_approval_baseline.js +11 -0
  42. package/dist/CacheService/migrations/0024_pull_request_approval_baseline.js.map +1 -0
  43. package/dist/CacheService/repos/NotificationRepo.d.ts +6 -0
  44. package/dist/CacheService/repos/NotificationRepo.d.ts.map +1 -1
  45. package/dist/CacheService/repos/NotificationRepo.js +20 -1
  46. package/dist/CacheService/repos/NotificationRepo.js.map +1 -1
  47. package/dist/CacheService/repos/PullRequestRepo/index.d.ts +38 -8
  48. package/dist/CacheService/repos/PullRequestRepo/index.d.ts.map +1 -1
  49. package/dist/CacheService/repos/PullRequestRepo/index.js +1 -1
  50. package/dist/CacheService/repos/PullRequestRepo/index.js.map +1 -1
  51. package/dist/CacheService/repos/PullRequestRepo/internal.d.ts +71 -2
  52. package/dist/CacheService/repos/PullRequestRepo/internal.d.ts.map +1 -1
  53. package/dist/CacheService/repos/PullRequestRepo/internal.js +75 -2
  54. package/dist/CacheService/repos/PullRequestRepo/internal.js.map +1 -1
  55. package/dist/CacheService/repos/PullRequestRepo/mutations.d.ts +39 -16
  56. package/dist/CacheService/repos/PullRequestRepo/mutations.d.ts.map +1 -1
  57. package/dist/CacheService/repos/PullRequestRepo/mutations.js +61 -92
  58. package/dist/CacheService/repos/PullRequestRepo/mutations.js.map +1 -1
  59. package/dist/CacheService/repos/PullRequestRepo/queries.d.ts +28 -0
  60. package/dist/CacheService/repos/PullRequestRepo/queries.d.ts.map +1 -1
  61. package/dist/CacheService/repos/PullRequestRepo/queries.js +10 -3
  62. package/dist/CacheService/repos/PullRequestRepo/queries.js.map +1 -1
  63. package/dist/CacheService/repos/PullRequestRepo/rowWrites.d.ts +132 -0
  64. package/dist/CacheService/repos/PullRequestRepo/rowWrites.d.ts.map +1 -0
  65. package/dist/CacheService/repos/PullRequestRepo/rowWrites.js +217 -0
  66. package/dist/CacheService/repos/PullRequestRepo/rowWrites.js.map +1 -0
  67. package/dist/CacheService/repos/StatsRepo/internal.d.ts +2 -1
  68. package/dist/CacheService/repos/StatsRepo/internal.d.ts.map +1 -1
  69. package/dist/CacheService/repos/StatsRepo/internal.js.map +1 -1
  70. package/dist/CacheService/repos/StatsRepo/queries.d.ts.map +1 -1
  71. package/dist/CacheService/repos/StatsRepo/queries.js +8 -2
  72. package/dist/CacheService/repos/StatsRepo/queries.js.map +1 -1
  73. package/dist/CacheService/repos/StatsRepo/reviewerData.d.ts.map +1 -1
  74. package/dist/CacheService/repos/StatsRepo/reviewerData.js +1 -2
  75. package/dist/CacheService/repos/StatsRepo/reviewerData.js.map +1 -1
  76. package/dist/Domain.d.ts +81 -0
  77. package/dist/Domain.d.ts.map +1 -1
  78. package/dist/Domain.js +63 -1
  79. package/dist/Domain.js.map +1 -1
  80. package/dist/HealthScore.d.ts +12 -1
  81. package/dist/HealthScore.d.ts.map +1 -1
  82. package/dist/HealthScore.js +76 -18
  83. package/dist/HealthScore.js.map +1 -1
  84. package/dist/PRService/internal.d.ts +19 -1
  85. package/dist/PRService/internal.d.ts.map +1 -1
  86. package/dist/PRService/internal.js +10 -0
  87. package/dist/PRService/internal.js.map +1 -1
  88. package/dist/PRService/refreshDiffs.d.ts.map +1 -1
  89. package/dist/PRService/refreshDiffs.js +8 -5
  90. package/dist/PRService/refreshDiffs.js.map +1 -1
  91. package/dist/PRService/refreshEnrich.d.ts.map +1 -1
  92. package/dist/PRService/refreshEnrich.js +30 -47
  93. package/dist/PRService/refreshEnrich.js.map +1 -1
  94. package/dist/PRService/refreshFetch.d.ts +1 -1
  95. package/dist/PRService/refreshFetch.d.ts.map +1 -1
  96. package/dist/PRService/refreshFetch.js +89 -74
  97. package/dist/PRService/refreshFetch.js.map +1 -1
  98. package/dist/PRService/refreshHistory.d.ts.map +1 -1
  99. package/dist/PRService/refreshHistory.js +17 -10
  100. package/dist/PRService/refreshHistory.js.map +1 -1
  101. package/dist/PRService/refreshScore.d.ts.map +1 -1
  102. package/dist/PRService/refreshScore.js +8 -5
  103. package/dist/PRService/refreshScore.js.map +1 -1
  104. package/dist/PRService/refreshSinglePR.d.ts.map +1 -1
  105. package/dist/PRService/refreshSinglePR.js +49 -29
  106. package/dist/PRService/refreshSinglePR.js.map +1 -1
  107. package/dist/StatsService/index.d.ts.map +1 -1
  108. package/dist/StatsService/index.js +2 -1
  109. package/dist/StatsService/index.js.map +1 -1
  110. package/package.json +7 -4
@@ -1,26 +1,11 @@
1
- /**
2
- * @module PullRequestRepo/mutations
3
- *
4
- * SQL write operations for the pull_requests table. Each function takes `sql`
5
- * and `publish` (change event) and returns the mutation implementations.
6
- *
7
- * Provides upsert (INSERT ON CONFLICT UPDATE with column-specific merge
8
- * strategy), stale cleanup, diff stats updates, status transitions,
9
- * comment count updates, health score updates, and commented-by refresh.
10
- *
11
- * **Gotchas**
12
- *
13
- * - approval_rules uses `= excluded` (no COALESCE) — always fresh from API
14
- * - repo_account_id uses COALESCE — preserves across partial updates
15
- *
16
- * @category CacheService
17
- */
18
1
  import { Effect, Schema } from "effect";
19
2
  import * as SqlSchema from "effect/sql/SqlSchema";
20
3
  import { decodeCommentLocationJson } from "../commentLocations.js";
21
- import { cacheError, joinApprovedBy, UpsertInput } from "./internal.js";
4
+ import { approvalGroupOfListing, approvalGroupOfRead, CachedPullRequest, cacheError, rowGroupOfListing, rowGroupOfRead, UpsertInput } from "./internal.js";
22
5
  import { PullRequestAmbiguityError } from "./queries.js";
6
+ import { rowWrites } from "./rowWrites.js";
23
7
  export const mutations = (sql, publish) => {
8
+ const writes = rowWrites(sql);
24
9
  const countByLegacyIdentity_ = SqlSchema.findOne({
25
10
  Result: Schema.Struct({ count: Schema.Number }),
26
11
  Request: Schema.Struct({ awsAccountId: Schema.String, id: Schema.String }),
@@ -37,80 +22,70 @@ export const mutations = (sql, publish) => {
37
22
  : sql `aws_account_id = ${awsAccountId} AND id = ${id}
38
23
  AND repository_name = ${coordinates.repositoryName}
39
24
  AND account_region = ${coordinates.accountRegion}`;
40
- const upsert_ = SqlSchema.void({
25
+ const encodeUpsert = Schema.encodeEffect(UpsertInput);
26
+ const findReplaced = SqlSchema.findOneOption({
27
+ Result: CachedPullRequest,
41
28
  Request: UpsertInput,
42
- execute: (req) => {
43
- const approvedByStr = joinApprovedBy(req.approvedBy);
44
- const approvedByArnsStr = joinApprovedBy(req.approvedByArns);
45
- const approvalRulesJson = req.approvalRules !== undefined && req.approvalRules.length > 0
46
- ? JSON.stringify(req.approvalRules)
47
- : "[]";
48
- return sql `INSERT INTO pull_requests
49
- (id, aws_account_id, repo_account_id, account_profile, account_region, title, description,
50
- author, repository_name, creation_date, last_modified_date, status,
51
- source_branch, destination_branch, is_mergeable, is_approved,
52
- comment_count, link, approved_by, approved_by_arns, approval_rules, fetched_at)
53
- VALUES (${req.id}, ${req.awsAccountId}, ${req.repoAccountId}, ${req.accountProfile}, ${req.accountRegion},
54
- ${req.title}, ${req.description}, ${req.author}, ${req.repositoryName},
55
- ${req.creationDate}, ${req.lastModifiedDate}, ${req.status},
56
- ${req.sourceBranch}, ${req.destinationBranch}, ${req.isMergeable}, ${req.isApproved},
57
- ${req.commentCount}, ${req.link}, ${approvedByStr}, ${approvedByArnsStr}, ${approvalRulesJson}, strftime('%Y-%m-%dT%H:%M:%SZ', 'now'))
58
- ON CONFLICT (aws_account_id, id, repository_name, account_region) DO UPDATE SET
59
- account_profile = excluded.account_profile,
60
- account_region = excluded.account_region,
61
- title = excluded.title,
62
- description = excluded.description,
63
- author = excluded.author,
64
- repository_name = excluded.repository_name,
65
- creation_date = excluded.creation_date,
66
- last_modified_date = excluded.last_modified_date,
67
- status = excluded.status,
68
- source_branch = excluded.source_branch,
69
- destination_branch = excluded.destination_branch,
70
- is_mergeable = excluded.is_mergeable,
71
- is_approved = excluded.is_approved,
72
- comment_count = COALESCE(excluded.comment_count, pull_requests.comment_count),
73
- health_score = pull_requests.health_score,
74
- link = excluded.link,
75
- approved_by = COALESCE(excluded.approved_by, pull_requests.approved_by),
76
- approved_by_arns = COALESCE(excluded.approved_by_arns, pull_requests.approved_by_arns),
77
- -- Always overwrite: rules are fetched fresh on every sync, unlike approved_by which accumulates
78
- approval_rules = excluded.approval_rules,
79
- repo_account_id = COALESCE(excluded.repo_account_id, pull_requests.repo_account_id),
80
- fetched_at = excluded.fetched_at`;
81
- }
29
+ execute: (req) => sql `SELECT * FROM pull_requests WHERE aws_account_id = ${req.awsAccountId} AND id = ${req.id}
30
+ AND repository_name = ${req.repositoryName} AND account_region = ${req.accountRegion}`
82
31
  });
32
+ /**
33
+ * Read the row and write it in one transaction, so the result carries the row this write replaced:
34
+ * what a notification diffs against, not a snapshot another write may have changed since.
35
+ */
36
+ const upsertWith = (input, row, approval, observation) => sql.withTransaction(Effect.all({
37
+ replaced: findReplaced(input),
38
+ written: encodeUpsert(input).pipe(Effect.flatMap((req) => writes.upsert(req, row, approval, observation)))
39
+ })).pipe(Effect.map(({ replaced, written }) => ({ ...written, replaced })));
40
+ const upsert_ = (input, observation) => upsertWith(input, rowGroupOfListing(input), approvalGroupOfListing(input), observation);
41
+ /** Publish a change only when a write applied. */
42
+ const publishIfApplied = (applied) => applied ? publish : Effect.void;
83
43
  const deleteStale_ = SqlSchema.void({
84
44
  Request: Schema.Struct({ olderThan: Schema.String }),
85
- execute: (req) => sql `DELETE FROM pull_requests WHERE fetched_at < ${req.olderThan}`
45
+ execute: (req) => writes.deleteFetchedBefore(req.olderThan, false)
86
46
  });
87
47
  const deleteStaleOpen_ = SqlSchema.void({
88
48
  Request: Schema.Struct({ olderThan: Schema.String }),
89
- execute: (req) => sql `DELETE FROM pull_requests WHERE status = 'OPEN' AND fetched_at < ${req.olderThan}`
49
+ execute: (req) => writes.deleteFetchedBefore(req.olderThan, true)
90
50
  });
91
51
  const repo = {
92
- upsert: (input) => upsert_(input).pipe(Effect.tap(() => publish), cacheError("upsert")),
93
- upsertMany: (prs) => sql.withTransaction(Effect.forEach(prs, (pr) => upsert_(pr), { discard: true })).pipe(Effect.tap(() => publish), cacheError("upsertMany")),
52
+ /** The next observation number: take it before the provider read whose results a write carries. */
53
+ observe: () => writes.observe().pipe(cacheError("observe")),
54
+ /**
55
+ * Write a listed pull request observed by `observation`: its row and approval groups, each unless
56
+ * that group is newer. The result says which were written; a group not written means a newer read
57
+ * already reached it.
58
+ */
59
+ upsert: (input, observation) => upsert_(input, observation).pipe(Effect.tap((written) => publishIfApplied(written.row || written.approval)), cacheError("upsert")),
60
+ /**
61
+ * Write a pull request read in full (a single-PR refresh): like `upsert`, but both groups come
62
+ * from `read`, so a merged or closed read carries its merger and closing time.
63
+ */
64
+ upsertRead: (input, read, observation) => upsertWith(input, rowGroupOfRead(read), approvalGroupOfRead(read), observation).pipe(Effect.tap((written) => publishIfApplied(written.row || written.approval)), cacheError("upsertRead")),
65
+ upsertMany: (prs, observation) => sql.withTransaction(Effect.forEach(prs, (pr) => upsert_(pr, observation), { discard: true })).pipe(Effect.tap(() => publish), cacheError("upsertMany")),
66
+ /**
67
+ * Write a provider re-read of a cached pull request, observed by `observation`: its whole row group
68
+ * (including a closed or merged status) and approval group, each unless that group is newer.
69
+ */
70
+ writeRead: (awsAccountId, id, read, observation, coordinates) => ensureUnambiguous(awsAccountId, id, coordinates).pipe(Effect.andThen(writes.writeRead(pullRequestWhere(awsAccountId, id, coordinates), { lastActivity: read.lastActivityDate, observation }, rowGroupOfRead(read), approvalGroupOfRead(read))), Effect.tap((written) => publishIfApplied(written.row || written.approval)), cacheError("writeRead")),
71
+ /**
72
+ * Write values recomputed from a cached row (diff stats, comment count, health score), only while
73
+ * the row still holds `observed`, the versions it was read at. True when written.
74
+ */
75
+ writeDerived: (awsAccountId, id, observed, columns, coordinates) => ensureUnambiguous(awsAccountId, id, coordinates).pipe(Effect.andThen(writes.writeDerived(pullRequestWhere(awsAccountId, id, coordinates), observed, columns)), Effect.tap(publishIfApplied), cacheError("writeDerived")),
94
76
  deleteStale: (olderThan) => deleteStale_({ olderThan }).pipe(Effect.tap(() => publish), cacheError("deleteStale")),
95
77
  deleteStaleOpen: (olderThan) => deleteStaleOpen_({ olderThan }).pipe(Effect.tap(() => publish), cacheError("deleteStaleOpen")),
96
- deleteOne: (awsAccountId, id, coordinates) => ensureUnambiguous(awsAccountId, id, coordinates).pipe(Effect.andThen(sql `DELETE FROM pull_requests WHERE ${pullRequestWhere(awsAccountId, id, coordinates)}`), Effect.asVoid, Effect.tap(() => publish), cacheError("deleteOne")),
97
- updateDiffStats: (awsAccountId, id, filesAdded, filesModified, filesDeleted, coordinates) => ensureUnambiguous(awsAccountId, id, coordinates).pipe(Effect.andThen(sql `UPDATE pull_requests SET files_added = ${filesAdded}, files_modified = ${filesModified}, files_deleted = ${filesDeleted}
98
- WHERE ${pullRequestWhere(awsAccountId, id, coordinates)}`), Effect.asVoid, Effect.tap(() => publish), cacheError("updateDiffStats")),
99
- updateStatusAndClosedAt: (awsAccountId, id, status, closedAt, mergedBy, approvedBy, coordinates) => {
100
- const approvedByStr = approvedBy !== undefined ? joinApprovedBy([...approvedBy]) : null;
101
- return ensureUnambiguous(awsAccountId, id, coordinates).pipe(Effect.andThen(sql `UPDATE pull_requests SET status = ${status}, closed_at = ${closedAt}, merged_by = ${mergedBy ?? null},
102
- approved_by = COALESCE(${approvedByStr}, approved_by),
103
- last_modified_date = ${closedAt}
104
- WHERE ${pullRequestWhere(awsAccountId, id, coordinates)}`), Effect.asVoid, Effect.tap(() => publish), cacheError("updateStatusAndClosedAt"));
105
- },
106
- updateCommentCount: (awsAccountId, id, count, coordinates) => ensureUnambiguous(awsAccountId, id, coordinates).pipe(Effect.andThen(sql `UPDATE pull_requests SET comment_count = ${count}
107
- WHERE ${pullRequestWhere(awsAccountId, id, coordinates)}`), Effect.asVoid, Effect.tap(() => publish), cacheError("updateCommentCount")),
108
- updateHealthScore: (awsAccountId, id, score, coordinates) => ensureUnambiguous(awsAccountId, id, coordinates).pipe(Effect.andThen(sql `UPDATE pull_requests SET health_score = ${score}
109
- WHERE ${pullRequestWhere(awsAccountId, id, coordinates)}`), Effect.asVoid, Effect.tap(() => publish), cacheError("updateHealthScore")),
78
+ /**
79
+ * Delete a row the provider answered "does not exist" for, in a read begun at `observation`,
80
+ * unless a read that began later has written it since. True when the row was deleted.
81
+ */
82
+ deleteOne: (awsAccountId, id, observation, coordinates) => ensureUnambiguous(awsAccountId, id, coordinates).pipe(Effect.andThen(writes.deleteIfNotNewer(pullRequestWhere(awsAccountId, id, coordinates), observation)), Effect.tap(publishIfApplied), cacheError("deleteOne")),
110
83
  refreshCommentedBy: () => sql.withTransaction(Effect.gen(function* () {
111
84
  const rows = yield* sql `
112
85
  SELECT c.aws_account_id AS awsAccountId, c.pull_request_id AS pullRequestId,
113
86
  p.repository_name AS repositoryName, p.account_region AS accountRegion,
87
+ p.last_modified_date AS rowAt, p.observation_seq AS rowSeq,
88
+ p.approval_version AS approvalAt, p.approval_observation_seq AS approvalSeq,
114
89
  p.author AS author, c.locations_json AS locationsJson
115
90
  FROM pr_comments c
116
91
  INNER JOIN pull_requests p
@@ -148,23 +123,17 @@ export const mutations = (sql, publish) => {
148
123
  for (const loc of parsed)
149
124
  walk(loc.comments);
150
125
  const commentedBy = commenters.size > 0 ? [...commenters].join(",") : null;
151
- yield* sql `UPDATE pull_requests SET commented_by = ${commentedBy}
152
- WHERE id = ${row.pullRequestId}
153
- AND aws_account_id = ${row.awsAccountId}
154
- AND repository_name = ${row.repositoryName}
155
- AND account_region = ${row.accountRegion}`;
126
+ // Read and written in one transaction, so the versions it read still hold.
127
+ yield* writes.writeDerived(pullRequestWhere(row.awsAccountId, row.pullRequestId, {
128
+ repositoryName: row.repositoryName,
129
+ accountRegion: row.accountRegion
130
+ }), {
131
+ row: { lastActivity: new Date(row.rowAt), observation: row.rowSeq },
132
+ approval: { lastActivity: new Date(row.approvalAt), observation: row.approvalSeq }
133
+ }, { commentedBy });
156
134
  }
157
135
  })).pipe(Effect.asVoid, cacheError("refreshCommentedBy")),
158
- propagateRepoAccountId: () => sql `UPDATE pull_requests
159
- SET repo_account_id = (
160
- SELECT p2.repo_account_id FROM pull_requests p2
161
- WHERE p2.repo_account_id IS NOT NULL
162
- AND p2.aws_account_id = pull_requests.aws_account_id
163
- AND p2.repository_name = pull_requests.repository_name
164
- AND p2.account_region = pull_requests.account_region
165
- LIMIT 1
166
- )
167
- WHERE repo_account_id IS NULL`.pipe(Effect.asVoid, cacheError("propagateRepoAccountId"))
136
+ propagateRepoAccountId: () => writes.fillRepoAccountIds().pipe(Effect.asVoid, cacheError("propagateRepoAccountId"))
168
137
  };
169
138
  return repo;
170
139
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../../../src/CacheService/repos/PullRequestRepo/mutations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../../../src/CacheService/repos/PullRequestRepo/mutations.ts"],"names":[],"mappings":"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"}
@@ -32,11 +32,16 @@ export declare const findAll: (sql: SqlClient.SqlClient) => () => Effect.Effect<
32
32
  readonly repositoryName: string & import("effect/Brand").Brand<"RepositoryName">;
33
33
  readonly creationDate: Date;
34
34
  readonly lastModifiedDate: Date;
35
+ readonly observationSeq: number;
36
+ readonly approvalVersion: Date;
37
+ readonly approvalObservationSeq: number;
35
38
  readonly status: "CLOSED" | "MERGED" | "OPEN";
36
39
  readonly sourceBranch: string;
37
40
  readonly destinationBranch: string;
38
41
  readonly isMergeable: boolean;
39
42
  readonly isApproved: boolean;
43
+ readonly approvalUnknownReason: "NotPermitted" | "ProviderFailed" | "Throttled" | null;
44
+ readonly approvalBaselineKnown: boolean;
40
45
  readonly commentCount: number | null;
41
46
  readonly healthScore: number | null;
42
47
  readonly link: string;
@@ -63,11 +68,16 @@ export declare const findMissingDiffStats: (sql: SqlClient.SqlClient) => () => E
63
68
  readonly repositoryName: string & import("effect/Brand").Brand<"RepositoryName">;
64
69
  readonly creationDate: Date;
65
70
  readonly lastModifiedDate: Date;
71
+ readonly observationSeq: number;
72
+ readonly approvalVersion: Date;
73
+ readonly approvalObservationSeq: number;
66
74
  readonly status: "CLOSED" | "MERGED" | "OPEN";
67
75
  readonly sourceBranch: string;
68
76
  readonly destinationBranch: string;
69
77
  readonly isMergeable: boolean;
70
78
  readonly isApproved: boolean;
79
+ readonly approvalUnknownReason: "NotPermitted" | "ProviderFailed" | "Throttled" | null;
80
+ readonly approvalBaselineKnown: boolean;
71
81
  readonly commentCount: number | null;
72
82
  readonly healthScore: number | null;
73
83
  readonly link: string;
@@ -94,11 +104,16 @@ export declare const findByAccountAndId: (sql: SqlClient.SqlClient) => (awsAccou
94
104
  readonly repositoryName: string & import("effect/Brand").Brand<"RepositoryName">;
95
105
  readonly creationDate: Date;
96
106
  readonly lastModifiedDate: Date;
107
+ readonly observationSeq: number;
108
+ readonly approvalVersion: Date;
109
+ readonly approvalObservationSeq: number;
97
110
  readonly status: "CLOSED" | "MERGED" | "OPEN";
98
111
  readonly sourceBranch: string;
99
112
  readonly destinationBranch: string;
100
113
  readonly isMergeable: boolean;
101
114
  readonly isApproved: boolean;
115
+ readonly approvalUnknownReason: "NotPermitted" | "ProviderFailed" | "Throttled" | null;
116
+ readonly approvalBaselineKnown: boolean;
102
117
  readonly commentCount: number | null;
103
118
  readonly healthScore: number | null;
104
119
  readonly link: string;
@@ -125,11 +140,16 @@ export declare const findByCoordinates: (sql: SqlClient.SqlClient) => (awsAccoun
125
140
  readonly repositoryName: string & import("effect/Brand").Brand<"RepositoryName">;
126
141
  readonly creationDate: Date;
127
142
  readonly lastModifiedDate: Date;
143
+ readonly observationSeq: number;
144
+ readonly approvalVersion: Date;
145
+ readonly approvalObservationSeq: number;
128
146
  readonly status: "CLOSED" | "MERGED" | "OPEN";
129
147
  readonly sourceBranch: string;
130
148
  readonly destinationBranch: string;
131
149
  readonly isMergeable: boolean;
132
150
  readonly isApproved: boolean;
151
+ readonly approvalUnknownReason: "NotPermitted" | "ProviderFailed" | "Throttled" | null;
152
+ readonly approvalBaselineKnown: boolean;
133
153
  readonly commentCount: number | null;
134
154
  readonly healthScore: number | null;
135
155
  readonly link: string;
@@ -154,6 +174,10 @@ export declare const findStaleOpen: (sql: SqlClient.SqlClient) => (olderThan: st
154
174
  readonly repositoryName: string;
155
175
  readonly accountProfile: string & import("effect/Brand").Brand<"AwsProfileName">;
156
176
  readonly accountRegion: string & import("effect/Brand").Brand<"AwsRegion">;
177
+ readonly lastModifiedDate: Date;
178
+ readonly observationSeq: number;
179
+ readonly approvalVersion: Date;
180
+ readonly approvalObservationSeq: number;
157
181
  }[], CacheError, never>;
158
182
  export declare const findOpenInRange: (sql: SqlClient.SqlClient) => (weekStart: string, weekEnd: string) => Effect.Effect<{
159
183
  readonly id: string;
@@ -161,6 +185,10 @@ export declare const findOpenInRange: (sql: SqlClient.SqlClient) => (weekStart:
161
185
  readonly repositoryName: string;
162
186
  readonly accountProfile: string & import("effect/Brand").Brand<"AwsProfileName">;
163
187
  readonly accountRegion: string & import("effect/Brand").Brand<"AwsRegion">;
188
+ readonly lastModifiedDate: Date;
189
+ readonly observationSeq: number;
190
+ readonly approvalVersion: Date;
191
+ readonly approvalObservationSeq: number;
164
192
  }[], CacheError, never>;
165
193
  export {};
166
194
  //# sourceMappingURL=queries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../../src/CacheService/repos/PullRequestRepo/queries.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAQ,MAAM,EAAE,MAAM,EAAqB,MAAM,QAAQ,CAAA;AAChE,OAAO,KAAK,KAAK,SAAS,MAAM,sBAAsB,CAAA;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAA4D,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;;;;AAE3G,sFAAsF;AACtF,qBAAa,yBAA0B,SAAQ,+BAA8C;IAC3F,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAC;CAAG;AAUL,eAAO,MAAM,OAAO,QAAS,SAAS,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAQ/C,CAAA;AAED,eAAO,MAAM,oBAAoB,QAAS,SAAS,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAQ5D,CAAA;AAED,eAAO,MAAM,kBAAkB,QAAS,SAAS,CAAC,SAAS,oBAQnC,MAAM,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDA0BzC,CAAA;AAED,eAAO,MAAM,iBAAiB,QAAS,SAAS,CAAC,SAAS,oBAgBlC,MAAM,MAAM,MAAM,kBAAkB,MAAM,iBAAiB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAExF,CAAA;AAED,eAAO,MAAM,MAAM,QAAS,SAAS,CAAC,SAAS,aAsBpC,MAAM,SACN;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAC3D,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,CAqBjD,CAAA;AAED,eAAO,MAAM,aAAa,QAAS,SAAS,CAAC,SAAS,iBASjC,MAAM;;;;;;uBAC1B,CAAA;AAED,eAAO,MAAM,eAAe,QAAS,SAAS,CAAC,SAAS,iBAanC,MAAM,WAAW,MAAM;;;;;;uBAC3C,CAAA"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../../src/CacheService/repos/PullRequestRepo/queries.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAQ,MAAM,EAAE,MAAM,EAAqB,MAAM,QAAQ,CAAA;AAChE,OAAO,KAAK,KAAK,SAAS,MAAM,sBAAsB,CAAA;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAA4D,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;;;;AAE3G,sFAAsF;AACtF,qBAAa,yBAA0B,SAAQ,+BAA8C;IAC3F,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAC;CAAG;AAeL,eAAO,MAAM,OAAO,QAAS,SAAS,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAQ/C,CAAA;AAED,eAAO,MAAM,oBAAoB,QAAS,SAAS,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAQ5D,CAAA;AAED,eAAO,MAAM,kBAAkB,QAAS,SAAS,CAAC,SAAS,oBAQnC,MAAM,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDA0BzC,CAAA;AAED,eAAO,MAAM,iBAAiB,QAAS,SAAS,CAAC,SAAS,oBAgBlC,MAAM,MAAM,MAAM,kBAAkB,MAAM,iBAAiB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAExF,CAAA;AAED,eAAO,MAAM,MAAM,QAAS,SAAS,CAAC,SAAS,aAsBpC,MAAM,SACN;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAC3D,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,CAqBjD,CAAA;AAED,eAAO,MAAM,aAAa,QAAS,SAAS,CAAC,SAAS,iBAUjC,MAAM;;;;;;;;;;uBAC1B,CAAA;AAED,eAAO,MAAM,eAAe,QAAS,SAAS,CAAC,SAAS,iBAcnC,MAAM,WAAW,MAAM;;;;;;;;;;uBAC3C,CAAA"}
@@ -19,7 +19,12 @@ const StaleOpenRow = Schema.Struct({
19
19
  awsAccountId: Schema.String,
20
20
  repositoryName: Schema.String,
21
21
  accountProfile: AwsProfileName,
22
- accountRegion: AwsRegion
22
+ accountRegion: AwsRegion,
23
+ /** The row's version when read (with `observationSeq`); a write based on this read compares against it. */
24
+ lastModifiedDate: Schema.DateFromString,
25
+ observationSeq: Schema.Number,
26
+ approvalVersion: Schema.DateFromString,
27
+ approvalObservationSeq: Schema.Number
23
28
  });
24
29
  export const findAll = (sql) => {
25
30
  const run = SqlSchema.findAll({
@@ -112,7 +117,8 @@ export const findStaleOpen = (sql) => {
112
117
  const run = SqlSchema.findAll({
113
118
  Result: StaleOpenRow,
114
119
  Request: Schema.Struct({ olderThan: Schema.String }),
115
- execute: (req) => sql `SELECT id, aws_account_id, repository_name, account_profile, account_region
120
+ execute: (req) => sql `SELECT id, aws_account_id, repository_name, account_profile, account_region, last_modified_date, observation_seq,
121
+ approval_version, approval_observation_seq
116
122
  FROM pull_requests
117
123
  WHERE status = 'OPEN' AND fetched_at < ${req.olderThan}`
118
124
  });
@@ -122,7 +128,8 @@ export const findOpenInRange = (sql) => {
122
128
  const run = SqlSchema.findAll({
123
129
  Result: StaleOpenRow,
124
130
  Request: Schema.Struct({ weekStart: Schema.String, weekEnd: Schema.String }),
125
- execute: (req) => sql `SELECT id, aws_account_id, repository_name, account_profile, account_region
131
+ execute: (req) => sql `SELECT id, aws_account_id, repository_name, account_profile, account_region, last_modified_date, observation_seq,
132
+ approval_version, approval_observation_seq
126
133
  FROM pull_requests
127
134
  WHERE status = 'OPEN'
128
135
  AND (
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../../src/CacheService/repos/PullRequestRepo/queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../../src/CacheService/repos/PullRequestRepo/queries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * @module PullRequestRepo/rowWrites
3
+ *
4
+ * The only writers of `pull_requests` rows. A row has two versioned column groups and some
5
+ * recomputed columns:
6
+ *
7
+ * - the row group (title, description, author, status, branches, mergeability, approvers, merge and
8
+ * close details), versioned by `last_modified_date`/`observation_seq`;
9
+ * - the approval group (`is_approved`, `approval_unknown_reason`, `approval_rules`,
10
+ * `approval_baseline_known`), versioned by
11
+ * `approval_version`/`approval_observation_seq`;
12
+ * - recomputed columns (diff stats, comment count, health score, commenters), which carry no version.
13
+ *
14
+ * A version is (provider last activity, observation number), compared in that order. `observe` takes
15
+ * the observation from the database in one statement, before the provider call, so two reads of the
16
+ * same revision are ordered by when they began.
17
+ *
18
+ * Three rules close the class of "an older read overwrites a newer one":
19
+ *
20
+ * 1. A provider read writes whole groups only: `upsert` and `writeRead` take a complete `RowGroup`
21
+ * and `ApprovalGroup`, and each group is written unless its version is newer than the read's.
22
+ * 2. A recomputed write never moves a version: `writeDerived` applies only while both groups still
23
+ * hold exactly the versions it read, so a value computed from an older row is dropped.
24
+ * 3. A tombstone keeps the later of the two groups' versions, so a deletion forgets neither.
25
+ *
26
+ * Two set-based writes carry no version: filling a NULL `repo_account_id` (it never replaces a value),
27
+ * and deleting rows not fetched since a cutoff (cache expiry, not a provider observation).
28
+ * `ast-grep/rules/typescript/no-direct-pull-request-row-write.yml` keeps every other path out.
29
+ *
30
+ * @category CacheService
31
+ */
32
+ import { Effect } from "effect";
33
+ import type * as SqlClient from "effect/sql/SqlClient";
34
+ import type * as Statement from "effect/sql/Statement";
35
+ import { type UpsertInput } from "./internal.js";
36
+ declare const ObservationSequenceMissing_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
37
+ readonly _tag: "ObservationSequenceMissing";
38
+ } & Readonly<A>;
39
+ /**
40
+ * The `observation_sequence` row is missing, so no observation number can be taken. Without one, reads
41
+ * of the same revision can't be ordered; callers skip the read instead.
42
+ */
43
+ export declare class ObservationSequenceMissing extends ObservationSequenceMissing_base<{}> {
44
+ }
45
+ /** A version: the provider last activity a read saw, and the observation it came from. */
46
+ export interface RowVersion {
47
+ readonly lastActivity: Date;
48
+ readonly observation: number;
49
+ }
50
+ /** Both groups' versions, as a read of the row saw them. */
51
+ export interface RowVersions {
52
+ readonly row: RowVersion;
53
+ readonly approval: RowVersion;
54
+ }
55
+ /**
56
+ * The row group, complete: a provider read has every column of it. `approvedBy` null keeps the
57
+ * approvers already stored (they accumulate across reads).
58
+ */
59
+ export interface RowGroup {
60
+ readonly title: string;
61
+ readonly description: string | null;
62
+ readonly author: string;
63
+ readonly status: string;
64
+ readonly creationDate: string;
65
+ readonly sourceBranch: string;
66
+ readonly destinationBranch: string;
67
+ readonly isMergeable: boolean;
68
+ readonly approvedBy: ReadonlyArray<string>;
69
+ readonly approvedByArns: ReadonlyArray<string>;
70
+ readonly mergedBy: string | null;
71
+ readonly closedAt: string | null;
72
+ }
73
+ /**
74
+ * The approval group, complete. While `unknownReason` is set, the stored approval and rules are kept
75
+ * as the last known value and only the reason is written.
76
+ */
77
+ export interface ApprovalGroup {
78
+ readonly isApproved: boolean;
79
+ readonly approvalRules: UpsertInput["approvalRules"];
80
+ readonly unknownReason: string | null;
81
+ }
82
+ /** Recomputed columns: any subset, written without a version. */
83
+ export interface DerivedColumns {
84
+ readonly filesAdded?: number;
85
+ readonly filesModified?: number;
86
+ readonly filesDeleted?: number;
87
+ readonly commentCount?: number | null;
88
+ readonly healthScore?: number | null;
89
+ readonly commentedBy?: string | null;
90
+ }
91
+ /** Which column groups a provider read wrote, and the versions the row now holds. */
92
+ export interface GroupsWritten {
93
+ readonly row: boolean;
94
+ readonly approval: boolean;
95
+ /** The row's versions after the write; absent when the row doesn't exist (a tombstone kept it out). */
96
+ readonly versions: RowVersions | undefined;
97
+ }
98
+ export declare const rowWrites: (sql: SqlClient.SqlClient) => {
99
+ /** The next observation number, taken before a provider read. Fails when the sequence row is missing. */
100
+ observe: () => Effect.Effect<number, ObservationSequenceMissing | import("effect/sql/SqlError").SqlError, never>;
101
+ /**
102
+ * Insert a listed pull request, or write each of its groups unless that group is newer. A deleted
103
+ * pull request comes back only from a read that began after the deletion, of a revision no older
104
+ * than the deleted row's. Recomputed columns are set only on insert; afterwards only
105
+ * `writeDerived` changes them.
106
+ */
107
+ upsert: (req: typeof UpsertInput.Encoded, row: RowGroup, approval: ApprovalGroup, observation: number) => Effect.Effect<GroupsWritten, import("effect/sql/SqlError").SqlError, never>;
108
+ /** Write a provider re-read of an existing row: each group unless that group is newer. */
109
+ writeRead: (where: Statement.Fragment, version: RowVersion, row: RowGroup, approval: ApprovalGroup) => Effect.Effect<GroupsWritten, import("effect/sql/SqlError").SqlError, never>;
110
+ /**
111
+ * Write recomputed columns, only while both groups hold exactly the versions `observed` saw: a value
112
+ * computed from an older row is dropped. Moves no version. True when the row was written.
113
+ */
114
+ writeDerived: (where: Statement.Fragment, observed: RowVersions, columns: DerivedColumns) => Effect.Effect<boolean, import("effect/sql/SqlError").SqlError, never>;
115
+ /**
116
+ * Delete the row matched by `where` for a not-found read begun at `observation`, unless a read that
117
+ * began later has written either group since. A not-found answer carries no revision, so only its
118
+ * observation orders it. The tombstone keeps the later of the two groups' versions and
119
+ * `observation`. True when the row was deleted.
120
+ */
121
+ deleteIfNotNewer: (where: Statement.Fragment, observation: number) => Effect.Effect<boolean, import("effect/sql/SqlError").SqlError, never>;
122
+ /**
123
+ * Cache expiry: delete rows (only OPEN ones with `openOnly`) not fetched since `olderThan`, and
124
+ * tombstones of deletions made before it (both on the cache clock), which no read in flight can
125
+ * still be behind.
126
+ */
127
+ deleteFetchedBefore: (olderThan: string, openOnly: boolean) => Effect.Effect<readonly import("effect/sql/SqlConnection").Row[], import("effect/sql/SqlError").SqlError, never>;
128
+ /** Fill a NULL `repo_account_id` from another row of the same repository; an existing value is kept. */
129
+ fillRepoAccountIds: () => Statement.Statement<import("effect/sql/SqlConnection").Row>;
130
+ };
131
+ export {};
132
+ //# sourceMappingURL=rowWrites.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rowWrites.d.ts","sourceRoot":"","sources":["../../../../src/CacheService/repos/PullRequestRepo/rowWrites.ts"],"names":[],"mappings":"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"}