@knpkv/codecommit-core 0.6.0 → 0.7.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 (100) hide show
  1. package/dist/AwsClient/AwsClientGated.d.ts +3 -0
  2. package/dist/AwsClient/AwsClientGated.d.ts.map +1 -1
  3. package/dist/AwsClient/AwsClientGated.js +7 -1
  4. package/dist/AwsClient/AwsClientGated.js.map +1 -1
  5. package/dist/AwsClient/createApprovalRule.d.ts +4 -0
  6. package/dist/AwsClient/createApprovalRule.d.ts.map +1 -0
  7. package/dist/AwsClient/createApprovalRule.js +17 -0
  8. package/dist/AwsClient/createApprovalRule.js.map +1 -0
  9. package/dist/AwsClient/deleteApprovalRule.d.ts +4 -0
  10. package/dist/AwsClient/deleteApprovalRule.d.ts.map +1 -0
  11. package/dist/AwsClient/deleteApprovalRule.js +16 -0
  12. package/dist/AwsClient/deleteApprovalRule.js.map +1 -0
  13. package/dist/AwsClient/getPullRequest.d.ts.map +1 -1
  14. package/dist/AwsClient/getPullRequest.js +34 -7
  15. package/dist/AwsClient/getPullRequest.js.map +1 -1
  16. package/dist/AwsClient/getPullRequests.d.ts +81 -1
  17. package/dist/AwsClient/getPullRequests.d.ts.map +1 -1
  18. package/dist/AwsClient/getPullRequests.js +123 -17
  19. package/dist/AwsClient/getPullRequests.js.map +1 -1
  20. package/dist/AwsClient/index.d.ts +13 -1
  21. package/dist/AwsClient/index.d.ts.map +1 -1
  22. package/dist/AwsClient/index.js +16 -1
  23. package/dist/AwsClient/index.js.map +1 -1
  24. package/dist/AwsClient/internal.d.ts +63 -1
  25. package/dist/AwsClient/internal.d.ts.map +1 -1
  26. package/dist/AwsClient/internal.js +37 -3
  27. package/dist/AwsClient/internal.js.map +1 -1
  28. package/dist/AwsClient/updateApprovalRule.d.ts +4 -0
  29. package/dist/AwsClient/updateApprovalRule.d.ts.map +1 -0
  30. package/dist/AwsClient/updateApprovalRule.js +17 -0
  31. package/dist/AwsClient/updateApprovalRule.js.map +1 -0
  32. package/dist/CacheService/Database.d.ts +4 -0
  33. package/dist/CacheService/Database.d.ts.map +1 -1
  34. package/dist/CacheService/Database.js +11 -1
  35. package/dist/CacheService/Database.js.map +1 -1
  36. package/dist/CacheService/diff.d.ts +17 -1
  37. package/dist/CacheService/diff.d.ts.map +1 -1
  38. package/dist/CacheService/diff.js +34 -0
  39. package/dist/CacheService/diff.js.map +1 -1
  40. package/dist/CacheService/index.d.ts +5 -1
  41. package/dist/CacheService/index.d.ts.map +1 -1
  42. package/dist/CacheService/index.js +5 -1
  43. package/dist/CacheService/index.js.map +1 -1
  44. package/dist/CacheService/migrations/0013_approval_rules.d.ts +5 -0
  45. package/dist/CacheService/migrations/0013_approval_rules.d.ts.map +1 -0
  46. package/dist/CacheService/migrations/0013_approval_rules.js +4 -0
  47. package/dist/CacheService/migrations/0013_approval_rules.js.map +1 -0
  48. package/dist/CacheService/migrations/0014_approved_by_arns.d.ts +5 -0
  49. package/dist/CacheService/migrations/0014_approved_by_arns.d.ts.map +1 -0
  50. package/dist/CacheService/migrations/0014_approved_by_arns.js +4 -0
  51. package/dist/CacheService/migrations/0014_approved_by_arns.js.map +1 -0
  52. package/dist/CacheService/migrations/0015_repo_account_id.d.ts +5 -0
  53. package/dist/CacheService/migrations/0015_repo_account_id.d.ts.map +1 -0
  54. package/dist/CacheService/migrations/0015_repo_account_id.js +4 -0
  55. package/dist/CacheService/migrations/0015_repo_account_id.js.map +1 -0
  56. package/dist/CacheService/repos/NotificationRepo.d.ts.map +1 -1
  57. package/dist/CacheService/repos/NotificationRepo.js +2 -2
  58. package/dist/CacheService/repos/NotificationRepo.js.map +1 -1
  59. package/dist/CacheService/repos/PullRequestRepo/index.d.ts +10 -0
  60. package/dist/CacheService/repos/PullRequestRepo/index.d.ts.map +1 -1
  61. package/dist/CacheService/repos/PullRequestRepo/internal.d.ts +15 -0
  62. package/dist/CacheService/repos/PullRequestRepo/internal.d.ts.map +1 -1
  63. package/dist/CacheService/repos/PullRequestRepo/internal.js +30 -4
  64. package/dist/CacheService/repos/PullRequestRepo/internal.js.map +1 -1
  65. package/dist/CacheService/repos/PullRequestRepo/mutations.d.ts +12 -2
  66. package/dist/CacheService/repos/PullRequestRepo/mutations.d.ts.map +1 -1
  67. package/dist/CacheService/repos/PullRequestRepo/mutations.js +21 -5
  68. package/dist/CacheService/repos/PullRequestRepo/mutations.js.map +1 -1
  69. package/dist/CacheService/repos/PullRequestRepo/queries.d.ts +9 -0
  70. package/dist/CacheService/repos/PullRequestRepo/queries.d.ts.map +1 -1
  71. package/dist/CacheService/repos/StatsRepo/internal.d.ts.map +1 -1
  72. package/dist/CacheService/repos/StatsRepo/internal.js +5 -4
  73. package/dist/CacheService/repos/StatsRepo/internal.js.map +1 -1
  74. package/dist/Domain.d.ts +106 -7
  75. package/dist/Domain.d.ts.map +1 -1
  76. package/dist/Domain.js +66 -6
  77. package/dist/Domain.js.map +1 -1
  78. package/dist/PRService/internal.d.ts +23 -0
  79. package/dist/PRService/internal.d.ts.map +1 -1
  80. package/dist/PRService/internal.js +20 -5
  81. package/dist/PRService/internal.js.map +1 -1
  82. package/dist/PRService/refreshFetch.d.ts +5 -1
  83. package/dist/PRService/refreshFetch.d.ts.map +1 -1
  84. package/dist/PRService/refreshFetch.js +15 -4
  85. package/dist/PRService/refreshFetch.js.map +1 -1
  86. package/dist/PRService/refreshSinglePR.d.ts +7 -0
  87. package/dist/PRService/refreshSinglePR.d.ts.map +1 -1
  88. package/dist/PRService/refreshSinglePR.js +16 -3
  89. package/dist/PRService/refreshSinglePR.js.map +1 -1
  90. package/dist/PermissionService/AuditLog.d.ts +1 -0
  91. package/dist/PermissionService/AuditLog.d.ts.map +1 -1
  92. package/dist/PermissionService/AuditLog.js +34 -20
  93. package/dist/PermissionService/AuditLog.js.map +1 -1
  94. package/dist/PermissionService/index.js +1 -1
  95. package/dist/PermissionService/index.js.map +1 -1
  96. package/dist/PermissionService/operations.d.ts +14 -1
  97. package/dist/PermissionService/operations.d.ts.map +1 -1
  98. package/dist/PermissionService/operations.js +15 -2
  99. package/dist/PermissionService/operations.js.map +1 -1
  100. package/package.json +1 -1
package/dist/Domain.d.ts CHANGED
@@ -1,9 +1,41 @@
1
1
  /**
2
2
  * Domain models for CodeCommit operations.
3
3
  *
4
- * Uses `Schema.Class` for rich models with computed properties,
5
- * branded types for compile-time ID safety, and `Schema.Literal`
6
- * for type-safe enumerations.
4
+ * Provides branded types for compile-time ID safety, `Schema.Class` models
5
+ * with computed properties, and `Schema.Literal` enumerations. Central types
6
+ * include {@link PullRequest} (with approval rules, approver ARNs, and
7
+ * review detection), {@link ApprovalRule} (per-PR rule with pool members
8
+ * and satisfaction state), and {@link PersistentNotification} (including
9
+ * approval_requested and review_reminder types).
10
+ *
11
+ * **Mental model**
12
+ *
13
+ * - ApprovalRule: per-PR rule with pool members (normalized names) + raw ARNs
14
+ * - needsMyReview: standalone fn (not method) so it works with wire objects too
15
+ * - PersistentNotificationType: includes approval_requested, review_reminder
16
+ *
17
+ * **Gotchas**
18
+ *
19
+ * - ApprovalRule uses `Schema.Class`, but instances round-trip as plain objects
20
+ * through JSON without class instance checks
21
+ *
22
+ * **Common tasks**
23
+ *
24
+ * - Define approval rule: {@link ApprovalRule}
25
+ * - Check review needed: {@link needsMyReview}
26
+ * - PR console URL: {@link codecommitConsoleUrl}
27
+ * - Notification types: {@link PersistentNotificationType}
28
+ *
29
+ * **Quickstart**
30
+ *
31
+ * ```ts
32
+ * import { needsMyReview, PullRequest } from "./Domain.js"
33
+ *
34
+ * declare const pr: PullRequest
35
+ * if (needsMyReview(pr, "alice")) {
36
+ * console.log(`Review needed: ${pr.consoleUrl}`)
37
+ * }
38
+ * ```
7
39
  *
8
40
  * @category Domain
9
41
  * @module
@@ -83,16 +115,20 @@ declare const Account_base: Schema.Class<Account, {
83
115
  profile: Schema.brand<typeof Schema.String, "AwsProfileName">;
84
116
  region: Schema.brand<typeof Schema.String, "AwsRegion">;
85
117
  awsAccountId: Schema.optional<typeof Schema.String>;
118
+ repoAccountId: Schema.optional<typeof Schema.String>;
86
119
  }, Schema.Struct.Encoded<{
87
120
  profile: Schema.brand<typeof Schema.String, "AwsProfileName">;
88
121
  region: Schema.brand<typeof Schema.String, "AwsRegion">;
89
122
  awsAccountId: Schema.optional<typeof Schema.String>;
123
+ repoAccountId: Schema.optional<typeof Schema.String>;
90
124
  }>, never, {
91
125
  readonly profile: string & import("effect/Brand").Brand<"AwsProfileName">;
92
126
  } & {
93
127
  readonly region: string & import("effect/Brand").Brand<"AwsRegion">;
94
128
  } & {
95
129
  readonly awsAccountId?: string | undefined;
130
+ } & {
131
+ readonly repoAccountId?: string | undefined;
96
132
  }, {}, {}>;
97
133
  /**
98
134
  * AWS account reference (profile + region).
@@ -101,6 +137,44 @@ declare const Account_base: Schema.Class<Account, {
101
137
  */
102
138
  export declare class Account extends Account_base {
103
139
  }
140
+ declare const ApprovalRule_base: Schema.Class<ApprovalRule, {
141
+ ruleName: typeof Schema.String;
142
+ requiredApprovals: typeof Schema.Number;
143
+ poolMembers: Schema.Array$<typeof Schema.String>;
144
+ poolMemberArns: Schema.optionalWith<Schema.Array$<typeof Schema.String>, {
145
+ default: () => never[];
146
+ }>;
147
+ satisfied: typeof Schema.Boolean;
148
+ fromTemplate: Schema.optional<typeof Schema.String>;
149
+ }, Schema.Struct.Encoded<{
150
+ ruleName: typeof Schema.String;
151
+ requiredApprovals: typeof Schema.Number;
152
+ poolMembers: Schema.Array$<typeof Schema.String>;
153
+ poolMemberArns: Schema.optionalWith<Schema.Array$<typeof Schema.String>, {
154
+ default: () => never[];
155
+ }>;
156
+ satisfied: typeof Schema.Boolean;
157
+ fromTemplate: Schema.optional<typeof Schema.String>;
158
+ }>, never, {
159
+ readonly ruleName: string;
160
+ } & {
161
+ readonly requiredApprovals: number;
162
+ } & {
163
+ readonly satisfied: boolean;
164
+ } & {
165
+ readonly poolMembers: readonly string[];
166
+ } & {
167
+ readonly poolMemberArns?: readonly string[];
168
+ } & {
169
+ readonly fromTemplate?: string | undefined;
170
+ }, {}, {}>;
171
+ /**
172
+ * Approval rule attached to a pull request.
173
+ *
174
+ * @category Domain
175
+ */
176
+ export declare class ApprovalRule extends ApprovalRule_base {
177
+ }
104
178
  declare const PullRequest_base: Schema.Class<PullRequest, {
105
179
  id: Schema.brand<typeof Schema.String, "PullRequestId">;
106
180
  title: typeof Schema.String;
@@ -120,8 +194,14 @@ declare const PullRequest_base: Schema.Class<PullRequest, {
120
194
  healthScore: Schema.optional<typeof Schema.Number>;
121
195
  fetchedAt: Schema.optional<typeof Schema.DateFromSelf>;
122
196
  approvedBy: Schema.Array$<typeof Schema.String>;
197
+ approvedByArns: Schema.optionalWith<Schema.Array$<typeof Schema.String>, {
198
+ default: () => never[];
199
+ }>;
123
200
  commentedBy: Schema.Array$<typeof Schema.String>;
124
201
  filesChanged: Schema.optional<typeof Schema.Number>;
202
+ approvalRules: Schema.optionalWith<Schema.Array$<typeof ApprovalRule>, {
203
+ default: () => never[];
204
+ }>;
125
205
  }, Schema.Struct.Encoded<{
126
206
  id: Schema.brand<typeof Schema.String, "PullRequestId">;
127
207
  title: typeof Schema.String;
@@ -141,8 +221,14 @@ declare const PullRequest_base: Schema.Class<PullRequest, {
141
221
  healthScore: Schema.optional<typeof Schema.Number>;
142
222
  fetchedAt: Schema.optional<typeof Schema.DateFromSelf>;
143
223
  approvedBy: Schema.Array$<typeof Schema.String>;
224
+ approvedByArns: Schema.optionalWith<Schema.Array$<typeof Schema.String>, {
225
+ default: () => never[];
226
+ }>;
144
227
  commentedBy: Schema.Array$<typeof Schema.String>;
145
228
  filesChanged: Schema.optional<typeof Schema.Number>;
229
+ approvalRules: Schema.optionalWith<Schema.Array$<typeof ApprovalRule>, {
230
+ default: () => never[];
231
+ }>;
146
232
  }>, never, {
147
233
  readonly link: string;
148
234
  } & {
@@ -179,10 +265,14 @@ declare const PullRequest_base: Schema.Class<PullRequest, {
179
265
  readonly fetchedAt?: Date | undefined;
180
266
  } & {
181
267
  readonly approvedBy: readonly string[];
268
+ } & {
269
+ readonly approvedByArns?: readonly string[];
182
270
  } & {
183
271
  readonly commentedBy: readonly string[];
184
272
  } & {
185
273
  readonly filesChanged?: number | undefined;
274
+ } & {
275
+ readonly approvalRules?: readonly ApprovalRule[];
186
276
  }, {}, {}>;
187
277
  /**
188
278
  * CodeCommit pull request.
@@ -192,6 +282,14 @@ declare const PullRequest_base: Schema.Class<PullRequest, {
192
282
  export declare class PullRequest extends PullRequest_base {
193
283
  get consoleUrl(): string;
194
284
  }
285
+ /**
286
+ * Check if a PR needs review from the given user.
287
+ * Standalone function so it works with both Schema.Class instances and plain wire objects.
288
+ */
289
+ export declare const needsMyReview: (pr: {
290
+ readonly approvalRules: ReadonlyArray<ApprovalRule>;
291
+ readonly approvedBy: ReadonlyArray<string>;
292
+ }, currentUser: string | undefined) => boolean;
195
293
  export declare const codecommitConsoleUrl: (region: string, repo: string, prId: string) => string;
196
294
  declare const Sandbox_base: Schema.Class<Sandbox, {
197
295
  id: Schema.brand<typeof Schema.String, "SandboxId">;
@@ -345,13 +443,13 @@ export declare const PRCommentLocationJson: Schema.Struct<{
345
443
  * @category Domain
346
444
  */
347
445
  export declare const encodeCommentLocations: (locations: ReadonlyArray<PRCommentLocation>) => ReadonlyArray<typeof PRCommentLocationJson.Type>;
348
- export declare const PersistentNotificationType: Schema.Literal<["new_comment", "comment_edited", "comment_deleted", "approval_changed", "merge_changed", "title_changed", "description_changed", "pr_merged", "pr_closed", "pr_reopened"]>;
446
+ export declare const PersistentNotificationType: Schema.Literal<["new_comment", "comment_edited", "comment_deleted", "approval_changed", "approval_requested", "review_reminder", "merge_changed", "title_changed", "description_changed", "pr_merged", "pr_closed", "pr_reopened"]>;
349
447
  export type PersistentNotificationType = typeof PersistentNotificationType.Type;
350
448
  declare const PersistentNotification_base: Schema.Class<PersistentNotification, {
351
449
  id: typeof Schema.Number;
352
450
  pullRequestId: Schema.brand<typeof Schema.String, "PullRequestId">;
353
451
  awsAccountId: typeof Schema.String;
354
- type: Schema.Literal<["new_comment", "comment_edited", "comment_deleted", "approval_changed", "merge_changed", "title_changed", "description_changed", "pr_merged", "pr_closed", "pr_reopened"]>;
452
+ type: Schema.Literal<["new_comment", "comment_edited", "comment_deleted", "approval_changed", "approval_requested", "review_reminder", "merge_changed", "title_changed", "description_changed", "pr_merged", "pr_closed", "pr_reopened"]>;
355
453
  message: typeof Schema.String;
356
454
  createdAt: typeof Schema.DateFromSelf;
357
455
  read: typeof Schema.Boolean;
@@ -359,7 +457,7 @@ declare const PersistentNotification_base: Schema.Class<PersistentNotification,
359
457
  id: typeof Schema.Number;
360
458
  pullRequestId: Schema.brand<typeof Schema.String, "PullRequestId">;
361
459
  awsAccountId: typeof Schema.String;
362
- type: Schema.Literal<["new_comment", "comment_edited", "comment_deleted", "approval_changed", "merge_changed", "title_changed", "description_changed", "pr_merged", "pr_closed", "pr_reopened"]>;
460
+ type: Schema.Literal<["new_comment", "comment_edited", "comment_deleted", "approval_changed", "approval_requested", "review_reminder", "merge_changed", "title_changed", "description_changed", "pr_merged", "pr_closed", "pr_reopened"]>;
363
461
  message: typeof Schema.String;
364
462
  createdAt: typeof Schema.DateFromSelf;
365
463
  read: typeof Schema.Boolean;
@@ -372,7 +470,7 @@ declare const PersistentNotification_base: Schema.Class<PersistentNotification,
372
470
  } & {
373
471
  readonly createdAt: Date;
374
472
  } & {
375
- readonly type: "new_comment" | "comment_edited" | "comment_deleted" | "approval_changed" | "merge_changed" | "title_changed" | "description_changed" | "pr_merged" | "pr_closed" | "pr_reopened";
473
+ readonly type: "new_comment" | "comment_edited" | "comment_deleted" | "approval_changed" | "approval_requested" | "review_reminder" | "merge_changed" | "title_changed" | "description_changed" | "pr_merged" | "pr_closed" | "pr_reopened";
376
474
  } & {
377
475
  readonly message: string;
378
476
  } & {
@@ -567,6 +665,7 @@ export interface AppState {
567
665
  readonly error?: string | undefined;
568
666
  readonly lastUpdated?: Date;
569
667
  readonly currentUser?: string;
668
+ readonly pendingReviewCount?: number;
570
669
  }
571
670
  export {};
572
671
  //# sourceMappingURL=Domain.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Domain.d.ts","sourceRoot":"","sources":["../src/Domain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Domain.d.ts","sourceRoot":"","sources":["../src/Domain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAMrC;;;;GAIG;AACH,eAAO,MAAM,aAAa,qDAAoD,CAAA;AAC9E,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AAErD;;;;GAIG;AACH,eAAO,MAAM,cAAc,sDAAqD,CAAA;AAChF,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD;;;;GAIG;AACH,eAAO,MAAM,cAAc,sDAAqD,CAAA;AAChF,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD;;;;GAIG;AACH,eAAO,MAAM,SAAS,iDAAgD,CAAA;AACtE,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C;;;;GAIG;AACH,eAAO,MAAM,SAAS,iDAAgD,CAAA;AACtE,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C;;;;GAIG;AACH,eAAO,MAAM,SAAS,iDAAgD,CAAA;AACtE,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAM7C;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,8CAA6C,CAAA;AAC3E,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAE7D;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,yDAAwD,CAAA;AACrF,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAA;AAE3D;;;;GAIG;AACH,eAAO,MAAM,SAAS,8CAA6C,CAAA;AACnE,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C;;;;GAIG;AACH,eAAO,MAAM,aAAa,gGAQzB,CAAA;AACD,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;AAMrD;;;;GAIG;AACH,qBAAa,OAAQ,SAAQ,YAK3B;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,iBAOhC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,gBAuB/B;IACA,IAAI,UAAU,IAAI,MAAM,CAEvB;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,GACxB,IAAI;IAAE,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE,EACvG,aAAa,MAAM,GAAG,SAAS,KAC9B,OAMF,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,EAAE,MAAM,MAAM,EAAE,MAAM,MAAM,KAAG,MAC2C,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE7H;;;;GAIG;AACH,qBAAa,OAAQ,SAAQ,YAa3B;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL;;;;GAIG;AACH,qBAAa,SAAU,SAAQ,cAS7B;CAAG;AAEL;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;CAC/C;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;CAChD;AAMD,QAAA,MAAM,aAAa;;;;;;;;;EASjB,CAAA;AAEF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,OAAO,aAAa,CAAC,IAAI,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAA;CAC1D;AAOD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;;;EAKhC,CAAA;AAkBF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GACjC,WAAW,aAAa,CAAC,iBAAiB,CAAC,KAC1C,aAAa,CAAC,OAAO,qBAAqB,CAAC,IAAI,CAM7C,CAAA;AAML,eAAO,MAAM,0BAA0B,qOAatC,CAAA;AACD,MAAM,MAAM,0BAA0B,GAAG,OAAO,0BAA0B,CAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE/E,qBAAa,sBAAuB,SAAQ,2BAQ1C;CAAG;AAEL,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;KAAE,CAAA;IAC7C,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;KAAE,CAAA;IAC9C,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;KAAE,CAAA;IAC/C,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CACtE,CAAC,CAAA;AACF,eAAO,MAAM,YAAY;;;4BALgB,IAAI;;;;4BACH,IAAI;;;;4BACH,IAAI;;;;4BACN,IAAI;wBAAkB,MAAM;;;;4BAH5B,IAAI;;;;;4BACH,IAAI;;;;;4BACH,IAAI;;;;;4BACN,IAAI;wBAAkB,MAAM;;;;;;;;oCAH5B,IAAI;;;;oCACH,IAAI;;;;oCACH,IAAI;;;;oCACN,IAAI;gCAAkB,MAAM;;;;gCAH5B,IAAI;;;gCACH,IAAI;;;gCACH,IAAI;;;gCACN,IAAI;4BAAkB,MAAM;;;;;oCAH5B,IAAI;;;;oCACH,IAAI;;;;oCACH,IAAI;;;;oCACN,IAAI;gCAAkB,MAAM;;;;gCAH5B,IAAI;;;gCACH,IAAI;;;gCACH,IAAI;;;gCACN,IAAI;4BAAkB,MAAM;;;CAEV,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAM3D;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,qBAMpC;CAAG;AAEL;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;CAChD;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IACjD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IAC9C,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CACrC"}
package/dist/Domain.js CHANGED
@@ -1,9 +1,41 @@
1
1
  /**
2
2
  * Domain models for CodeCommit operations.
3
3
  *
4
- * Uses `Schema.Class` for rich models with computed properties,
5
- * branded types for compile-time ID safety, and `Schema.Literal`
6
- * for type-safe enumerations.
4
+ * Provides branded types for compile-time ID safety, `Schema.Class` models
5
+ * with computed properties, and `Schema.Literal` enumerations. Central types
6
+ * include {@link PullRequest} (with approval rules, approver ARNs, and
7
+ * review detection), {@link ApprovalRule} (per-PR rule with pool members
8
+ * and satisfaction state), and {@link PersistentNotification} (including
9
+ * approval_requested and review_reminder types).
10
+ *
11
+ * **Mental model**
12
+ *
13
+ * - ApprovalRule: per-PR rule with pool members (normalized names) + raw ARNs
14
+ * - needsMyReview: standalone fn (not method) so it works with wire objects too
15
+ * - PersistentNotificationType: includes approval_requested, review_reminder
16
+ *
17
+ * **Gotchas**
18
+ *
19
+ * - ApprovalRule uses `Schema.Class`, but instances round-trip as plain objects
20
+ * through JSON without class instance checks
21
+ *
22
+ * **Common tasks**
23
+ *
24
+ * - Define approval rule: {@link ApprovalRule}
25
+ * - Check review needed: {@link needsMyReview}
26
+ * - PR console URL: {@link codecommitConsoleUrl}
27
+ * - Notification types: {@link PersistentNotificationType}
28
+ *
29
+ * **Quickstart**
30
+ *
31
+ * ```ts
32
+ * import { needsMyReview, PullRequest } from "./Domain.js"
33
+ *
34
+ * declare const pr: PullRequest
35
+ * if (needsMyReview(pr, "alice")) {
36
+ * console.log(`Review needed: ${pr.consoleUrl}`)
37
+ * }
38
+ * ```
7
39
  *
8
40
  * @category Domain
9
41
  * @module
@@ -86,7 +118,22 @@ export const SandboxStatus = Schema.Literal("creating", "cloning", "starting", "
86
118
  export class Account extends Schema.Class("Account")({
87
119
  profile: AwsProfileName,
88
120
  region: AwsRegion,
89
- awsAccountId: Schema.optional(Schema.String)
121
+ awsAccountId: Schema.optional(Schema.String),
122
+ repoAccountId: Schema.optional(Schema.String)
123
+ }) {
124
+ }
125
+ /**
126
+ * Approval rule attached to a pull request.
127
+ *
128
+ * @category Domain
129
+ */
130
+ export class ApprovalRule extends Schema.Class("ApprovalRule")({
131
+ ruleName: Schema.String,
132
+ requiredApprovals: Schema.Number,
133
+ poolMembers: Schema.Array(Schema.String),
134
+ poolMemberArns: Schema.optionalWith(Schema.Array(Schema.String), { default: () => [] }),
135
+ satisfied: Schema.Boolean,
136
+ fromTemplate: Schema.optional(Schema.String)
90
137
  }) {
91
138
  }
92
139
  /**
@@ -113,13 +160,26 @@ export class PullRequest extends Schema.Class("PullRequest")({
113
160
  healthScore: Schema.optional(Schema.Number),
114
161
  fetchedAt: Schema.optional(Schema.DateFromSelf),
115
162
  approvedBy: Schema.Array(Schema.String),
163
+ approvedByArns: Schema.optionalWith(Schema.Array(Schema.String), { default: () => [] }),
116
164
  commentedBy: Schema.Array(Schema.String),
117
- filesChanged: Schema.optional(Schema.Number)
165
+ filesChanged: Schema.optional(Schema.Number),
166
+ approvalRules: Schema.optionalWith(Schema.Array(ApprovalRule), { default: () => [] })
118
167
  }) {
119
168
  get consoleUrl() {
120
169
  return codecommitConsoleUrl(this.account.region, this.repositoryName, this.id);
121
170
  }
122
171
  }
172
+ /**
173
+ * Check if a PR needs review from the given user.
174
+ * Standalone function so it works with both Schema.Class instances and plain wire objects.
175
+ */
176
+ export const needsMyReview = (pr, currentUser) => {
177
+ if (!currentUser)
178
+ return false;
179
+ if (pr.approvedBy.includes(currentUser))
180
+ return false;
181
+ return pr.approvalRules.some((rule) => !rule.satisfied && rule.poolMembers.includes(currentUser));
182
+ };
123
183
  export const codecommitConsoleUrl = (region, repo, prId) => `https://${region}.console.aws.amazon.com/codesuite/codecommit/repositories/${repo}/pull-requests/${prId}?region=${region}`;
124
184
  /**
125
185
  * Code sandbox instance for a pull request.
@@ -215,7 +275,7 @@ export const encodeCommentLocations = (locations) => locations.map((loc) => ({
215
275
  // ---------------------------------------------------------------------------
216
276
  // Persistent Notification Types
217
277
  // ---------------------------------------------------------------------------
218
- export const PersistentNotificationType = Schema.Literal("new_comment", "comment_edited", "comment_deleted", "approval_changed", "merge_changed", "title_changed", "description_changed", "pr_merged", "pr_closed", "pr_reopened");
278
+ export const PersistentNotificationType = Schema.Literal("new_comment", "comment_edited", "comment_deleted", "approval_changed", "approval_requested", "review_reminder", "merge_changed", "title_changed", "description_changed", "pr_merged", "pr_closed", "pr_reopened");
219
279
  export class PersistentNotification extends Schema.Class("PersistentNotification")({
220
280
  id: Schema.Number,
221
281
  pullRequestId: PullRequestId,
@@ -1 +1 @@
1
- {"version":3,"file":"Domain.js","sourceRoot":"","sources":["../src/Domain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Domain.js","sourceRoot":"","sources":["../src/Domain.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,13 @@
1
1
  /**
2
+ * PRService internal transforms and helpers.
3
+ *
4
+ * Provides bidirectional Schema transforms between cache rows, domain objects,
5
+ * and SQL upsert inputs: {@link CachedPRToPullRequest} (cache row → PullRequest,
6
+ * including repoAccountId on Account), {@link PullRequestToUpsertInput}
7
+ * (PullRequest → UpsertInput), and {@link prToUpsertInput} (convenience
8
+ * wrapper that ensures approvalRules is always present). Also provides
9
+ * {@link countAllComments} for flattening comment thread trees.
10
+ *
2
11
  * @internal
3
12
  */
4
13
  import type { SubscriptionRef } from "effect";
@@ -9,6 +18,7 @@ export type PRState = SubscriptionRef.SubscriptionRef<AppState>;
9
18
  export declare const CachedPRToPullRequest: Schema.transform<Schema.SchemaClass<{
10
19
  readonly link: string;
11
20
  readonly awsAccountId: string;
21
+ readonly repoAccountId: string | null;
12
22
  readonly id: string & import("effect/Brand").Brand<"PullRequestId">;
13
23
  readonly title: string;
14
24
  readonly author: string;
@@ -25,7 +35,9 @@ export declare const CachedPRToPullRequest: Schema.transform<Schema.SchemaClass<
25
35
  readonly healthScore: number | null;
26
36
  readonly fetchedAt: string;
27
37
  readonly approvedBy: readonly string[];
38
+ readonly approvedByArns: readonly string[];
28
39
  readonly commentedBy: readonly string[];
40
+ readonly approvalRules: readonly import("../Domain.js").ApprovalRule[];
29
41
  readonly mergedBy: string | null;
30
42
  readonly accountProfile: string & import("effect/Brand").Brand<"AwsProfileName">;
31
43
  readonly accountRegion: string & import("effect/Brand").Brand<"AwsRegion">;
@@ -36,6 +48,7 @@ export declare const CachedPRToPullRequest: Schema.transform<Schema.SchemaClass<
36
48
  }, {
37
49
  readonly link: string;
38
50
  readonly awsAccountId: string;
51
+ readonly repoAccountId: string | null;
39
52
  readonly id: string & import("effect/Brand").Brand<"PullRequestId">;
40
53
  readonly title: string;
41
54
  readonly author: string;
@@ -52,7 +65,9 @@ export declare const CachedPRToPullRequest: Schema.transform<Schema.SchemaClass<
52
65
  readonly healthScore: number | null;
53
66
  readonly fetchedAt: string;
54
67
  readonly approvedBy: readonly string[];
68
+ readonly approvedByArns: readonly string[];
55
69
  readonly commentedBy: readonly string[];
70
+ readonly approvalRules: readonly import("../Domain.js").ApprovalRule[];
56
71
  readonly mergedBy: string | null;
57
72
  readonly accountProfile: string & import("effect/Brand").Brand<"AwsProfileName">;
58
73
  readonly accountRegion: string & import("effect/Brand").Brand<"AwsRegion">;
@@ -64,6 +79,7 @@ export declare const CachedPRToPullRequest: Schema.transform<Schema.SchemaClass<
64
79
  export declare const decodeCachedPR: (i: {
65
80
  readonly link: string;
66
81
  readonly awsAccountId: string;
82
+ readonly repoAccountId: string | null;
67
83
  readonly id: string & import("effect/Brand").Brand<"PullRequestId">;
68
84
  readonly title: string;
69
85
  readonly author: string;
@@ -80,7 +96,9 @@ export declare const decodeCachedPR: (i: {
80
96
  readonly healthScore: number | null;
81
97
  readonly fetchedAt: string;
82
98
  readonly approvedBy: readonly string[];
99
+ readonly approvedByArns: readonly string[];
83
100
  readonly commentedBy: readonly string[];
101
+ readonly approvalRules: readonly import("../Domain.js").ApprovalRule[];
84
102
  readonly mergedBy: string | null;
85
103
  readonly accountProfile: string & import("effect/Brand").Brand<"AwsProfileName">;
86
104
  readonly accountRegion: string & import("effect/Brand").Brand<"AwsRegion">;
@@ -92,6 +110,7 @@ export declare const decodeCachedPR: (i: {
92
110
  export declare const PullRequestToUpsertInput: Schema.transform<Schema.Struct<{
93
111
  id: typeof Schema.String;
94
112
  awsAccountId: typeof Schema.String;
113
+ repoAccountId: Schema.NullOr<typeof Schema.String>;
95
114
  accountProfile: typeof Schema.String;
96
115
  accountRegion: typeof Schema.String;
97
116
  title: typeof Schema.String;
@@ -108,6 +127,10 @@ export declare const PullRequestToUpsertInput: Schema.transform<Schema.Struct<{
108
127
  commentCount: Schema.NullOr<typeof Schema.Number>;
109
128
  link: typeof Schema.String;
110
129
  approvedBy: Schema.Array$<typeof Schema.String>;
130
+ approvedByArns: Schema.Array$<typeof Schema.String>;
131
+ approvalRules: Schema.optionalWith<Schema.Array$<typeof import("../Domain.js").ApprovalRule>, {
132
+ default: () => never[];
133
+ }>;
111
134
  }>, typeof PullRequest>;
112
135
  export declare const prToUpsertInput: (pr: PullRequest, awsAccountId: string) => UpsertInput;
113
136
  export declare const countAllComments: (locations: ReadonlyArray<PRCommentLocation>) => number;
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/PRService/internal.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAqB,WAAW,EAAE,MAAM,gDAAgD,CAAA;AAC/F,OAAO,EAAE,KAAK,QAAQ,EAAsB,KAAK,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAErG,MAAM,MAAM,OAAO,GAAG,eAAe,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;AAO/D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BA4DjC,CAAA;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;4EAA2C,CAAA;AAEtE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;uBAoDpC,CAAA;AAID,eAAO,MAAM,eAAe,GAAI,IAAI,WAAW,EAAE,cAAc,MAAM,KAAG,WAGtE,CAAA;AAKF,eAAO,MAAM,gBAAgB,GAAI,WAAW,aAAa,CAAC,iBAAiB,CAAC,KAAG,MAI5E,CAAA"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/PRService/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAqB,WAAW,EAAE,MAAM,gDAAgD,CAAA;AAC/F,OAAO,EAAE,KAAK,QAAQ,EAAsB,KAAK,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAErG,MAAM,MAAM,OAAO,GAAG,eAAe,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;AAO/D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAkEjC,CAAA;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EAA2C,CAAA;AAEtE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;uBA0DpC,CAAA;AAID,eAAO,MAAM,eAAe,GAAI,IAAI,WAAW,EAAE,cAAc,MAAM,KAAG,WAMtE,CAAA;AAKF,eAAO,MAAM,gBAAgB,GAAI,WAAW,aAAa,CAAC,iBAAiB,CAAC,KAAG,MAI5E,CAAA"}
@@ -19,7 +19,8 @@ export const CachedPRToPullRequest = Schema.transform(Schema.typeSchema(CachedPu
19
19
  account: {
20
20
  profile: row.accountProfile,
21
21
  region: row.accountRegion,
22
- awsAccountId: row.awsAccountId
22
+ awsAccountId: row.awsAccountId,
23
+ repoAccountId: row.repoAccountId ?? undefined
23
24
  },
24
25
  status: row.status,
25
26
  sourceBranch: row.sourceBranch,
@@ -30,12 +31,15 @@ export const CachedPRToPullRequest = Schema.transform(Schema.typeSchema(CachedPu
30
31
  healthScore: row.healthScore ?? undefined,
31
32
  fetchedAt: row.fetchedAt ? new Date(row.fetchedAt) : undefined,
32
33
  approvedBy: row.approvedBy,
34
+ approvedByArns: row.approvedByArns,
33
35
  commentedBy: row.commentedBy,
36
+ approvalRules: row.approvalRules,
34
37
  filesChanged: sumFileChanges(row.filesAdded, row.filesModified, row.filesDeleted)
35
38
  }),
36
39
  encode: (_encoded, pr) => ({
37
40
  id: pr.id,
38
41
  awsAccountId: pr.account.awsAccountId ?? "",
42
+ repoAccountId: pr.account.repoAccountId ?? null,
39
43
  accountProfile: pr.account.profile,
40
44
  accountRegion: pr.account.region,
41
45
  title: pr.title,
@@ -59,7 +63,9 @@ export const CachedPRToPullRequest = Schema.transform(Schema.typeSchema(CachedPu
59
63
  closedAt: null,
60
64
  mergedBy: null,
61
65
  approvedBy: pr.approvedBy,
62
- commentedBy: pr.commentedBy
66
+ approvedByArns: pr.approvedByArns,
67
+ commentedBy: pr.commentedBy,
68
+ approvalRules: pr.approvalRules
63
69
  })
64
70
  });
65
71
  export const decodeCachedPR = Schema.decodeSync(CachedPRToPullRequest);
@@ -77,7 +83,8 @@ export const PullRequestToUpsertInput = Schema.transform(UpsertInput, PullReques
77
83
  account: {
78
84
  profile: row.accountProfile,
79
85
  region: row.accountRegion,
80
- awsAccountId: row.awsAccountId
86
+ awsAccountId: row.awsAccountId,
87
+ repoAccountId: row.repoAccountId ?? undefined
81
88
  },
82
89
  status: row.status,
83
90
  sourceBranch: row.sourceBranch,
@@ -88,12 +95,15 @@ export const PullRequestToUpsertInput = Schema.transform(UpsertInput, PullReques
88
95
  healthScore: undefined,
89
96
  fetchedAt: undefined,
90
97
  approvedBy: row.approvedBy,
98
+ approvedByArns: row.approvedByArns,
99
+ approvalRules: row.approvalRules ?? [],
91
100
  commentedBy: [],
92
101
  filesChanged: undefined
93
102
  }),
94
103
  encode: (_encoded, pr) => ({
95
104
  id: pr.id,
96
105
  awsAccountId: pr.account.awsAccountId ?? "",
106
+ repoAccountId: pr.account.repoAccountId ?? null,
97
107
  accountProfile: pr.account.profile,
98
108
  accountRegion: pr.account.region,
99
109
  title: pr.title,
@@ -109,13 +119,18 @@ export const PullRequestToUpsertInput = Schema.transform(UpsertInput, PullReques
109
119
  isApproved: pr.isApproved ? 1 : 0,
110
120
  commentCount: pr.commentCount ?? null,
111
121
  link: pr.link,
112
- approvedBy: pr.approvedBy
122
+ approvedBy: pr.approvedBy,
123
+ approvedByArns: pr.approvedByArns,
124
+ approvalRules: pr.approvalRules
113
125
  })
114
126
  });
115
127
  const encodePRToUpsert = Schema.encodeSync(PullRequestToUpsertInput);
116
128
  export const prToUpsertInput = (pr, awsAccountId) => ({
117
129
  ...encodePRToUpsert(pr),
118
- awsAccountId
130
+ awsAccountId,
131
+ // Explicit: encodePRToUpsert's Encoded type makes approvalRules optional (Schema.optionalWith default),
132
+ // but UpsertInput.Type requires it. Guarantee it's always present.
133
+ approvalRules: pr.approvalRules
119
134
  });
120
135
  const countThreadComments = (thread) => 1 + thread.replies.reduce((sum, r) => sum + countThreadComments(r), 0);
121
136
  export const countAllComments = (locations) => locations.reduce((sum, loc) => sum + loc.comments.reduce((s, t) => s + countThreadComments(t), 0), 0);
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/PRService/internal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/PRService/internal.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  /**
2
+ * Phase 3 of the PR refresh cycle: streams PRs from AWS, diffs subscribed
3
+ * PRs against cache (field changes via {@link diffPR} and approval pool
4
+ * membership via {@link diffApprovalPools}), upserts to cache, and
5
+ * transitions stale OPEN PRs by re-fetching their status.
6
+ *
2
7
  * @internal
3
- * Phase 3: Stream PRs from AWS, diff subscribed PRs, upsert to cache.
4
8
  */
5
9
  import { Effect, Ref } from "effect";
6
10
  import { AwsClient } from "../AwsClient/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"refreshFetch.d.ts","sourceRoot":"","sources":["../../src/PRService/refreshFetch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAS,MAAM,EAAU,GAAG,EAA2B,MAAM,QAAQ,CAAA;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAGjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAA;AAoB7D,eAAO,MAAM,iBAAiB,GAAI,QAAQ;IACxC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACtD,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAChC,KAAG,MAAM,CAAC,MAAM,CACf,IAAI,EACJ,KAAK,EACL,SAAS,GAAG,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,CA+G/D,CAAA"}
1
+ {"version":3,"file":"refreshFetch.d.ts","sourceRoot":"","sources":["../../src/PRService/refreshFetch.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAS,MAAM,EAAU,GAAG,EAA2B,MAAM,QAAQ,CAAA;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAGjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAA;AAoB7D,eAAO,MAAM,iBAAiB,GAAI,QAAQ;IACxC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACtD,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAChC,KAAG,MAAM,CAAC,MAAM,CACf,IAAI,EACJ,KAAK,EACL,SAAS,GAAG,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,CA+H/D,CAAA"}
@@ -1,10 +1,14 @@
1
1
  /**
2
+ * Phase 3 of the PR refresh cycle: streams PRs from AWS, diffs subscribed
3
+ * PRs against cache (field changes via {@link diffPR} and approval pool
4
+ * membership via {@link diffApprovalPools}), upserts to cache, and
5
+ * transitions stale OPEN PRs by re-fetching their status.
6
+ *
2
7
  * @internal
3
- * Phase 3: Stream PRs from AWS, diff subscribed PRs, upsert to cache.
4
8
  */
5
9
  import { Cause, Effect, Option, Ref, Stream, SubscriptionRef } from "effect";
6
10
  import { AwsClient } from "../AwsClient/index.js";
7
- import { diffPR } from "../CacheService/diff.js";
11
+ import { diffApprovalPools, diffPR } from "../CacheService/diff.js";
8
12
  import { NotificationRepo } from "../CacheService/repos/NotificationRepo.js";
9
13
  import { PullRequestRepo } from "../CacheService/repos/PullRequestRepo/index.js";
10
14
  import { SubscriptionRepo } from "../CacheService/repos/SubscriptionRepo.js";
@@ -60,13 +64,18 @@ export const fetchAndUpsertPRs = (params) => Effect.gen(function* () {
60
64
  const cached = yield* prRepo.findByAccountAndId(awsAccountId, pr.id).pipe(Effect.catchAll(() => Effect.succeed(Option.none())));
61
65
  if (Option.isSome(cached)) {
62
66
  const notifications = diffPR(cached.value, prToUpsertInput(pr, awsAccountId), awsAccountId);
63
- yield* Effect.forEach(notifications, (n) => notificationRepo.add(n), { discard: true }).pipe(Effect.catchAll(() => Effect.void));
67
+ const poolNotifications = diffApprovalPools(cached.value.approvalRules ?? [], pr.approvalRules, currentUser, pr.id, awsAccountId, pr.title, pr.account.profile);
68
+ yield* Effect.forEach([...notifications, ...poolNotifications], (n) => notificationRepo.add(n), {
69
+ discard: true
70
+ }).pipe(Effect.catchAll(() => Effect.void));
64
71
  }
65
72
  }
66
73
  // Upsert to cache + auto-subscribe current user's PRs
67
74
  if (awsAccountId) {
68
75
  yield* prRepo.upsert(prToUpsertInput(pr, awsAccountId)).pipe(Effect.tapError((e) => Effect.logWarning("cache upsert error", e)), Effect.catchAll(() => Effect.void));
69
- if (currentUser && pr.author === currentUser) {
76
+ const isAuthor = currentUser && pr.author === currentUser;
77
+ const isApprover = currentUser && pr.approvalRules.some((r) => r.poolMembers.includes(currentUser));
78
+ if (isAuthor || isApprover) {
70
79
  yield* subscriptionRepo.subscribe(awsAccountId, pr.id).pipe(Effect.catchAll(() => Effect.void));
71
80
  yield* Ref.update(subscribedRef, (s) => new Set(s).add(`${awsAccountId}:${pr.id}`));
72
81
  }
@@ -83,5 +92,7 @@ export const fetchAndUpsertPRs = (params) => Effect.gen(function* () {
83
92
  pullRequestId: pr.id
84
93
  })
85
94
  .pipe(Effect.flatMap((detail) => resolveStaleStatus(prRepo, detail, pr.awsAccountId, pr.id)), Effect.catchAll(() => prRepo.deleteOne(pr.awsAccountId, pr.id)), Effect.catchAll(() => Effect.void)), { concurrency: 5, discard: true })), Effect.catchAll(() => Effect.void));
95
+ // Propagate repoAccountId from any PR that has it to all PRs that don't
96
+ yield* prRepo.propagateRepoAccountId().pipe(Effect.catchAll(() => Effect.void));
86
97
  });
87
98
  //# sourceMappingURL=refreshFetch.js.map