@knpkv/codecommit-core 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/dist/AwsClient/getDifferences.d.ts +16 -0
  2. package/dist/AwsClient/getDifferences.d.ts.map +1 -0
  3. package/dist/AwsClient/getDifferences.js +22 -0
  4. package/dist/AwsClient/getDifferences.js.map +1 -0
  5. package/dist/AwsClient/getPullRequest.d.ts.map +1 -1
  6. package/dist/AwsClient/getPullRequest.js +28 -7
  7. package/dist/AwsClient/getPullRequest.js.map +1 -1
  8. package/dist/AwsClient/getPullRequests.d.ts.map +1 -1
  9. package/dist/AwsClient/getPullRequests.js +31 -13
  10. package/dist/AwsClient/getPullRequests.js.map +1 -1
  11. package/dist/AwsClient/index.d.ts +21 -13
  12. package/dist/AwsClient/index.d.ts.map +1 -1
  13. package/dist/AwsClient/index.js +3 -1
  14. package/dist/AwsClient/index.js.map +1 -1
  15. package/dist/AwsClient/internal.d.ts +23 -0
  16. package/dist/AwsClient/internal.d.ts.map +1 -1
  17. package/dist/AwsClient/internal.js +4 -1
  18. package/dist/AwsClient/internal.js.map +1 -1
  19. package/dist/CacheService/Database.d.ts.map +1 -1
  20. package/dist/CacheService/Database.js +13 -1
  21. package/dist/CacheService/Database.js.map +1 -1
  22. package/dist/CacheService/EventsHub.d.ts +24 -4
  23. package/dist/CacheService/EventsHub.d.ts.map +1 -1
  24. package/dist/CacheService/EventsHub.js.map +1 -1
  25. package/dist/CacheService/index.d.ts +5 -2
  26. package/dist/CacheService/index.d.ts.map +1 -1
  27. package/dist/CacheService/index.js +3 -1
  28. package/dist/CacheService/index.js.map +1 -1
  29. package/dist/CacheService/migrations/0005_add_sandboxes.d.ts +5 -0
  30. package/dist/CacheService/migrations/0005_add_sandboxes.d.ts.map +1 -0
  31. package/dist/CacheService/migrations/0005_add_sandboxes.js +23 -0
  32. package/dist/CacheService/migrations/0005_add_sandboxes.js.map +1 -0
  33. package/dist/CacheService/migrations/0006_sandbox_logs.d.ts +5 -0
  34. package/dist/CacheService/migrations/0006_sandbox_logs.d.ts.map +1 -0
  35. package/dist/CacheService/migrations/0006_sandbox_logs.js +7 -0
  36. package/dist/CacheService/migrations/0006_sandbox_logs.js.map +1 -0
  37. package/dist/CacheService/migrations/0007_stats_columns.d.ts +5 -0
  38. package/dist/CacheService/migrations/0007_stats_columns.d.ts.map +1 -0
  39. package/dist/CacheService/migrations/0007_stats_columns.js +13 -0
  40. package/dist/CacheService/migrations/0007_stats_columns.js.map +1 -0
  41. package/dist/CacheService/migrations/0008_merged_by.d.ts +5 -0
  42. package/dist/CacheService/migrations/0008_merged_by.d.ts.map +1 -0
  43. package/dist/CacheService/migrations/0008_merged_by.js +4 -0
  44. package/dist/CacheService/migrations/0008_merged_by.js.map +1 -0
  45. package/dist/CacheService/migrations/0009_approved_by.d.ts +5 -0
  46. package/dist/CacheService/migrations/0009_approved_by.d.ts.map +1 -0
  47. package/dist/CacheService/migrations/0009_approved_by.js +4 -0
  48. package/dist/CacheService/migrations/0009_approved_by.js.map +1 -0
  49. package/dist/CacheService/migrations/0010_commented_by.d.ts +5 -0
  50. package/dist/CacheService/migrations/0010_commented_by.d.ts.map +1 -0
  51. package/dist/CacheService/migrations/0010_commented_by.js +4 -0
  52. package/dist/CacheService/migrations/0010_commented_by.js.map +1 -0
  53. package/dist/CacheService/repos/PullRequestRepo/index.d.ts +132 -0
  54. package/dist/CacheService/repos/PullRequestRepo/index.d.ts.map +1 -0
  55. package/dist/CacheService/repos/PullRequestRepo/index.js +35 -0
  56. package/dist/CacheService/repos/PullRequestRepo/index.js.map +1 -0
  57. package/dist/CacheService/repos/PullRequestRepo/internal.d.ts +72 -0
  58. package/dist/CacheService/repos/PullRequestRepo/internal.d.ts.map +1 -0
  59. package/dist/CacheService/repos/PullRequestRepo/internal.js +69 -0
  60. package/dist/CacheService/repos/PullRequestRepo/internal.js.map +1 -0
  61. package/dist/CacheService/repos/PullRequestRepo/mutations.d.ts +24 -0
  62. package/dist/CacheService/repos/PullRequestRepo/mutations.d.ts.map +1 -0
  63. package/dist/CacheService/repos/PullRequestRepo/mutations.js +94 -0
  64. package/dist/CacheService/repos/PullRequestRepo/mutations.js.map +1 -0
  65. package/dist/CacheService/repos/PullRequestRepo/queries.d.ts +113 -0
  66. package/dist/CacheService/repos/PullRequestRepo/queries.d.ts.map +1 -0
  67. package/dist/CacheService/repos/PullRequestRepo/queries.js +89 -0
  68. package/dist/CacheService/repos/PullRequestRepo/queries.js.map +1 -0
  69. package/dist/CacheService/repos/SandboxRepo.d.ts +116 -0
  70. package/dist/CacheService/repos/SandboxRepo.d.ts.map +1 -0
  71. package/dist/CacheService/repos/SandboxRepo.js +88 -0
  72. package/dist/CacheService/repos/SandboxRepo.js.map +1 -0
  73. package/dist/CacheService/repos/StatsRepo/index.d.ts +93 -0
  74. package/dist/CacheService/repos/StatsRepo/index.d.ts.map +1 -0
  75. package/dist/CacheService/repos/StatsRepo/index.js +41 -0
  76. package/dist/CacheService/repos/StatsRepo/index.js.map +1 -0
  77. package/dist/CacheService/repos/StatsRepo/internal.d.ts +120 -0
  78. package/dist/CacheService/repos/StatsRepo/internal.d.ts.map +1 -0
  79. package/dist/CacheService/repos/StatsRepo/internal.js +34 -0
  80. package/dist/CacheService/repos/StatsRepo/internal.js.map +1 -0
  81. package/dist/CacheService/repos/StatsRepo/queries.d.ts +42 -0
  82. package/dist/CacheService/repos/StatsRepo/queries.d.ts.map +1 -0
  83. package/dist/CacheService/repos/StatsRepo/queries.js +182 -0
  84. package/dist/CacheService/repos/StatsRepo/queries.js.map +1 -0
  85. package/dist/CacheService/repos/StatsRepo/reviewerData.d.ts +47 -0
  86. package/dist/CacheService/repos/StatsRepo/reviewerData.d.ts.map +1 -0
  87. package/dist/CacheService/repos/StatsRepo/reviewerData.js +172 -0
  88. package/dist/CacheService/repos/StatsRepo/reviewerData.js.map +1 -0
  89. package/dist/ConfigService/index.d.ts +1 -1
  90. package/dist/ConfigService/index.d.ts.map +1 -1
  91. package/dist/ConfigService/index.js +1 -1
  92. package/dist/ConfigService/index.js.map +1 -1
  93. package/dist/ConfigService/internal.d.ts +98 -0
  94. package/dist/ConfigService/internal.d.ts.map +1 -1
  95. package/dist/ConfigService/internal.js +16 -1
  96. package/dist/ConfigService/internal.js.map +1 -1
  97. package/dist/ConfigService/load.d.ts +15 -0
  98. package/dist/ConfigService/load.d.ts.map +1 -1
  99. package/dist/ConfigService/load.js +10 -3
  100. package/dist/ConfigService/load.js.map +1 -1
  101. package/dist/ConfigService/reset.d.ts.map +1 -1
  102. package/dist/ConfigService/reset.js +3 -2
  103. package/dist/ConfigService/reset.js.map +1 -1
  104. package/dist/DateUtils.d.ts +28 -0
  105. package/dist/DateUtils.d.ts.map +1 -1
  106. package/dist/DateUtils.js +69 -1
  107. package/dist/DateUtils.js.map +1 -1
  108. package/dist/Domain.d.ts +87 -5
  109. package/dist/Domain.d.ts.map +1 -1
  110. package/dist/Domain.js +38 -5
  111. package/dist/Domain.js.map +1 -1
  112. package/dist/Errors.d.ts +28 -1
  113. package/dist/Errors.d.ts.map +1 -1
  114. package/dist/Errors.js +22 -1
  115. package/dist/Errors.js.map +1 -1
  116. package/dist/PRService/index.d.ts +3 -3
  117. package/dist/PRService/index.d.ts.map +1 -1
  118. package/dist/PRService/index.js +1 -1
  119. package/dist/PRService/index.js.map +1 -1
  120. package/dist/PRService/internal.d.ts +24 -2
  121. package/dist/PRService/internal.d.ts.map +1 -1
  122. package/dist/PRService/internal.js +23 -8
  123. package/dist/PRService/internal.js.map +1 -1
  124. package/dist/PRService/refresh.d.ts +1 -1
  125. package/dist/PRService/refresh.d.ts.map +1 -1
  126. package/dist/PRService/refresh.js +2 -0
  127. package/dist/PRService/refresh.js.map +1 -1
  128. package/dist/PRService/refreshDiffs.d.ts +16 -0
  129. package/dist/PRService/refreshDiffs.d.ts.map +1 -0
  130. package/dist/PRService/refreshDiffs.js +54 -0
  131. package/dist/PRService/refreshDiffs.js.map +1 -0
  132. package/dist/PRService/refreshEnrich.d.ts +1 -1
  133. package/dist/PRService/refreshEnrich.d.ts.map +1 -1
  134. package/dist/PRService/refreshEnrich.js +3 -1
  135. package/dist/PRService/refreshEnrich.js.map +1 -1
  136. package/dist/PRService/refreshFetch.d.ts +1 -1
  137. package/dist/PRService/refreshFetch.d.ts.map +1 -1
  138. package/dist/PRService/refreshFetch.js +12 -3
  139. package/dist/PRService/refreshFetch.js.map +1 -1
  140. package/dist/PRService/refreshHistory.d.ts +19 -0
  141. package/dist/PRService/refreshHistory.d.ts.map +1 -0
  142. package/dist/PRService/refreshHistory.js +110 -0
  143. package/dist/PRService/refreshHistory.js.map +1 -0
  144. package/dist/PRService/refreshResolve.d.ts +1 -1
  145. package/dist/PRService/refreshResolve.d.ts.map +1 -1
  146. package/dist/PRService/refreshResolve.js +1 -1
  147. package/dist/PRService/refreshResolve.js.map +1 -1
  148. package/dist/PRService/refreshScore.d.ts +1 -1
  149. package/dist/PRService/refreshScore.d.ts.map +1 -1
  150. package/dist/PRService/refreshScore.js +1 -1
  151. package/dist/PRService/refreshScore.js.map +1 -1
  152. package/dist/PRService/refreshSinglePR.d.ts +1 -1
  153. package/dist/PRService/refreshSinglePR.d.ts.map +1 -1
  154. package/dist/PRService/refreshSinglePR.js +4 -3
  155. package/dist/PRService/refreshSinglePR.js.map +1 -1
  156. package/dist/SandboxService/DockerService.d.ts +57 -0
  157. package/dist/SandboxService/DockerService.d.ts.map +1 -0
  158. package/dist/SandboxService/DockerService.js +83 -0
  159. package/dist/SandboxService/DockerService.js.map +1 -0
  160. package/dist/SandboxService/PluginService.d.ts +38 -0
  161. package/dist/SandboxService/PluginService.d.ts.map +1 -0
  162. package/dist/SandboxService/PluginService.js +26 -0
  163. package/dist/SandboxService/PluginService.js.map +1 -0
  164. package/dist/SandboxService/SandboxService.d.ts +102 -0
  165. package/dist/SandboxService/SandboxService.d.ts.map +1 -0
  166. package/dist/SandboxService/SandboxService.js +272 -0
  167. package/dist/SandboxService/SandboxService.js.map +1 -0
  168. package/dist/SandboxService/index.d.ts +13 -0
  169. package/dist/SandboxService/index.d.ts.map +1 -0
  170. package/dist/SandboxService/index.js +10 -0
  171. package/dist/SandboxService/index.js.map +1 -0
  172. package/dist/SandboxService/plugins/ClaudeCodePlugin.d.ts +18 -0
  173. package/dist/SandboxService/plugins/ClaudeCodePlugin.d.ts.map +1 -0
  174. package/dist/SandboxService/plugins/ClaudeCodePlugin.js +24 -0
  175. package/dist/SandboxService/plugins/ClaudeCodePlugin.js.map +1 -0
  176. package/dist/StatsService/WeeklyStats.d.ts +174 -0
  177. package/dist/StatsService/WeeklyStats.d.ts.map +1 -0
  178. package/dist/StatsService/WeeklyStats.js +110 -0
  179. package/dist/StatsService/WeeklyStats.js.map +1 -0
  180. package/dist/StatsService/index.d.ts +45 -0
  181. package/dist/StatsService/index.d.ts.map +1 -0
  182. package/dist/StatsService/index.js +145 -0
  183. package/dist/StatsService/index.js.map +1 -0
  184. package/dist/index.d.ts +2 -0
  185. package/dist/index.d.ts.map +1 -1
  186. package/dist/index.js +2 -0
  187. package/dist/index.js.map +1 -1
  188. package/package.json +1 -1
  189. package/dist/CacheService/repos/PullRequestRepo.d.ts +0 -112
  190. package/dist/CacheService/repos/PullRequestRepo.d.ts.map +0 -1
  191. package/dist/CacheService/repos/PullRequestRepo.js +0 -146
  192. package/dist/CacheService/repos/PullRequestRepo.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAA;AACvD,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AAGjD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAA;AACvD,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAA;AAGvD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA"}
package/dist/index.js CHANGED
@@ -21,6 +21,8 @@ export * as DateUtils from "./DateUtils.js";
21
21
  export * as Domain from "./Domain.js";
22
22
  export * as Errors from "./Errors.js";
23
23
  export * as PRService from "./PRService/index.js";
24
+ export * as SandboxService from "./SandboxService/index.js";
25
+ export * as StatsService from "./StatsService/index.js";
24
26
  // Re-export Effect dependencies for convenience
25
27
  export { Registry } from "@effect-atom/atom";
26
28
  export { Reactivity } from "@effect/experimental";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAA;AACvD,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AAEjD,gDAAgD;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAA;AACvD,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAA;AAEvD,gDAAgD;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knpkv/codecommit-core",
3
- "version": "0.4.0",
3
+ "version": "0.5.1",
4
4
  "description": "Core logic for CodeCommit PR browser",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,112 +0,0 @@
1
- import * as Model from "@effect/sql/Model";
2
- import * as SqlClient from "@effect/sql/SqlClient";
3
- import { Effect, Option, Schema } from "effect";
4
- import { CacheError } from "../CacheError.js";
5
- import { EventsHub } from "../EventsHub.js";
6
- export declare const CachedPullRequest: Schema.Struct<{
7
- id: Schema.brand<typeof Schema.String, "PullRequestId">;
8
- awsAccountId: typeof Schema.String;
9
- accountProfile: Schema.brand<typeof Schema.String, "AwsProfileName">;
10
- accountRegion: Schema.brand<typeof Schema.String, "AwsRegion">;
11
- title: typeof Schema.String;
12
- description: Schema.NullOr<typeof Schema.String>;
13
- author: typeof Schema.String;
14
- repositoryName: Schema.brand<typeof Schema.String, "RepositoryName">;
15
- creationDate: typeof Schema.DateFromString;
16
- lastModifiedDate: typeof Schema.DateFromString;
17
- status: Schema.Literal<["OPEN", "CLOSED", "MERGED"]>;
18
- sourceBranch: typeof Schema.String;
19
- destinationBranch: typeof Schema.String;
20
- isMergeable: typeof Model.BooleanFromNumber;
21
- isApproved: typeof Model.BooleanFromNumber;
22
- commentCount: Schema.NullOr<typeof Schema.Number>;
23
- healthScore: Schema.NullOr<typeof Schema.Number>;
24
- link: typeof Schema.String;
25
- fetchedAt: typeof Schema.String;
26
- }>;
27
- export type CachedPullRequest = typeof CachedPullRequest.Type;
28
- export interface SearchResult {
29
- readonly items: ReadonlyArray<CachedPullRequest>;
30
- readonly total: number;
31
- readonly hasMore: boolean;
32
- }
33
- export declare const UpsertInput: Schema.Struct<{
34
- id: typeof Schema.String;
35
- awsAccountId: typeof Schema.String;
36
- accountProfile: typeof Schema.String;
37
- accountRegion: typeof Schema.String;
38
- title: typeof Schema.String;
39
- description: Schema.NullOr<typeof Schema.String>;
40
- author: typeof Schema.String;
41
- repositoryName: typeof Schema.String;
42
- creationDate: typeof Schema.String;
43
- lastModifiedDate: typeof Schema.String;
44
- status: typeof Schema.String;
45
- sourceBranch: typeof Schema.String;
46
- destinationBranch: typeof Schema.String;
47
- isMergeable: typeof Schema.Number;
48
- isApproved: typeof Schema.Number;
49
- commentCount: Schema.NullOr<typeof Schema.Number>;
50
- link: typeof Schema.String;
51
- }>;
52
- export type UpsertInput = typeof UpsertInput.Type;
53
- declare const PullRequestRepo_base: Effect.Service.Class<PullRequestRepo, "PullRequestRepo", {
54
- readonly dependencies: readonly [import("effect/Layer").Layer<SqlClient.SqlClient | import("@effect/sql-libsql/LibsqlClient").LibsqlClient, import("@effect/sql/SqlError").SqlError | import("effect/ConfigError").ConfigError | import("@effect/sql/Migrator").MigrationError, import("@effect/platform/FileSystem").FileSystem>, import("effect/Layer").Layer<EventsHub, never, never>];
55
- readonly effect: Effect.Effect<{
56
- readonly findAll: () => Effect.Effect<readonly {
57
- readonly link: string;
58
- readonly awsAccountId: string;
59
- readonly id: string & import("effect/Brand").Brand<"PullRequestId">;
60
- readonly title: string;
61
- readonly author: string;
62
- readonly repositoryName: string & import("effect/Brand").Brand<"RepositoryName">;
63
- readonly creationDate: Date;
64
- readonly lastModifiedDate: Date;
65
- readonly status: "OPEN" | "CLOSED" | "MERGED";
66
- readonly sourceBranch: string;
67
- readonly destinationBranch: string;
68
- readonly isMergeable: boolean;
69
- readonly isApproved: boolean;
70
- readonly description: string | null;
71
- readonly commentCount: number | null;
72
- readonly healthScore: number | null;
73
- readonly fetchedAt: string;
74
- readonly accountProfile: string & import("effect/Brand").Brand<"AwsProfileName">;
75
- readonly accountRegion: string & import("effect/Brand").Brand<"AwsRegion">;
76
- }[], CacheError, never>;
77
- readonly findByAccountAndId: (awsAccountId: string, id: string) => Effect.Effect<Option.Option<{
78
- readonly link: string;
79
- readonly awsAccountId: string;
80
- readonly id: string & import("effect/Brand").Brand<"PullRequestId">;
81
- readonly title: string;
82
- readonly author: string;
83
- readonly repositoryName: string & import("effect/Brand").Brand<"RepositoryName">;
84
- readonly creationDate: Date;
85
- readonly lastModifiedDate: Date;
86
- readonly status: "OPEN" | "CLOSED" | "MERGED";
87
- readonly sourceBranch: string;
88
- readonly destinationBranch: string;
89
- readonly isMergeable: boolean;
90
- readonly isApproved: boolean;
91
- readonly description: string | null;
92
- readonly commentCount: number | null;
93
- readonly healthScore: number | null;
94
- readonly fetchedAt: string;
95
- readonly accountProfile: string & import("effect/Brand").Brand<"AwsProfileName">;
96
- readonly accountRegion: string & import("effect/Brand").Brand<"AwsRegion">;
97
- }>, CacheError, never>;
98
- readonly upsert: (input: UpsertInput) => Effect.Effect<void, CacheError, never>;
99
- readonly upsertMany: (prs: ReadonlyArray<UpsertInput>) => Effect.Effect<void, CacheError, never>;
100
- readonly search: (query: string, opts?: {
101
- readonly limit?: number;
102
- readonly offset?: number;
103
- }) => Effect.Effect<SearchResult, CacheError>;
104
- readonly deleteStale: (olderThan: string) => Effect.Effect<void, CacheError, never>;
105
- readonly updateCommentCount: (awsAccountId: string, id: string, count: number | null) => Effect.Effect<void, CacheError, never>;
106
- readonly updateHealthScore: (awsAccountId: string, id: string, score: number) => Effect.Effect<void, CacheError, never>;
107
- }, never, SqlClient.SqlClient | EventsHub>;
108
- }>;
109
- export declare class PullRequestRepo extends PullRequestRepo_base {
110
- }
111
- export {};
112
- //# sourceMappingURL=PullRequestRepo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PullRequestRepo.d.ts","sourceRoot":"","sources":["../../../src/CacheService/repos/PullRequestRepo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,SAAS,EAAc,MAAM,iBAAiB,CAAA;AAEvD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;EAoB5B,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAE7D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;EAkBtB,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;oDAqGR,MAAM,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;iCAErC,WAAW;mCACT,aAAa,CAAC,WAAW,CAAC;iCAGnC,MAAM,SACN;YAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,KAC3D,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC;0CAoBjB,MAAM;oDAEI,MAAM,MAAM,MAAM,SAAS,MAAM,GAAG,IAAI;mDAEzC,MAAM,MAAM,MAAM,SAAS,MAAM;;;AA7HzE,qBAAa,eAAgB,SAAQ,oBAiInC;CAAG"}
@@ -1,146 +0,0 @@
1
- import * as Model from "@effect/sql/Model";
2
- import * as SqlClient from "@effect/sql/SqlClient";
3
- import * as SqlSchema from "@effect/sql/SqlSchema";
4
- import { Effect, Option, Schema } from "effect";
5
- import { AwsProfileName, AwsRegion, PullRequestId, PullRequestStatus, RepositoryName } from "../../Domain.js";
6
- import { CacheError } from "../CacheError.js";
7
- import { DatabaseLive } from "../Database.js";
8
- import { EventsHub, RepoChange } from "../EventsHub.js";
9
- export const CachedPullRequest = Schema.Struct({
10
- id: PullRequestId,
11
- awsAccountId: Schema.String,
12
- accountProfile: AwsProfileName,
13
- accountRegion: AwsRegion,
14
- title: Schema.String,
15
- description: Schema.NullOr(Schema.String),
16
- author: Schema.String,
17
- repositoryName: RepositoryName,
18
- creationDate: Schema.DateFromString,
19
- lastModifiedDate: Schema.DateFromString,
20
- status: PullRequestStatus,
21
- sourceBranch: Schema.String,
22
- destinationBranch: Schema.String,
23
- isMergeable: Model.BooleanFromNumber,
24
- isApproved: Model.BooleanFromNumber,
25
- commentCount: Schema.NullOr(Schema.Number),
26
- healthScore: Schema.NullOr(Schema.Number),
27
- link: Schema.String,
28
- fetchedAt: Schema.String
29
- });
30
- export const UpsertInput = Schema.Struct({
31
- id: Schema.String,
32
- awsAccountId: Schema.String,
33
- accountProfile: Schema.String,
34
- accountRegion: Schema.String,
35
- title: Schema.String,
36
- description: Schema.NullOr(Schema.String),
37
- author: Schema.String,
38
- repositoryName: Schema.String,
39
- creationDate: Schema.String,
40
- lastModifiedDate: Schema.String,
41
- status: Schema.String,
42
- sourceBranch: Schema.String,
43
- destinationBranch: Schema.String,
44
- isMergeable: Schema.Number,
45
- isApproved: Schema.Number,
46
- commentCount: Schema.NullOr(Schema.Number),
47
- link: Schema.String
48
- });
49
- const cacheError = (op) => (effect) => effect.pipe(Effect.mapError((cause) => new CacheError({ operation: `PullRequestRepo.${op}`, cause })), Effect.withSpan(`PullRequestRepo.${op}`, { captureStackTrace: false }));
50
- export class PullRequestRepo extends Effect.Service()("PullRequestRepo", {
51
- dependencies: [DatabaseLive, EventsHub.Default],
52
- effect: Effect.gen(function* () {
53
- const sql = yield* SqlClient.SqlClient;
54
- const hub = yield* EventsHub;
55
- const findAll_ = SqlSchema.findAll({
56
- Result: CachedPullRequest,
57
- Request: Schema.Void,
58
- execute: () => sql `SELECT * FROM pull_requests ORDER BY creation_date DESC`
59
- });
60
- const findByAccountAndId_ = SqlSchema.findOne({
61
- Result: CachedPullRequest,
62
- Request: Schema.Struct({ awsAccountId: Schema.String, id: Schema.String }),
63
- execute: (req) => sql `SELECT * FROM pull_requests
64
- WHERE aws_account_id = ${req.awsAccountId} AND id = ${req.id}`
65
- });
66
- const upsert_ = SqlSchema.void({
67
- Request: UpsertInput,
68
- execute: (req) => sql `INSERT INTO pull_requests
69
- (id, aws_account_id, account_profile, account_region, title, description,
70
- author, repository_name, creation_date, last_modified_date, status,
71
- source_branch, destination_branch, is_mergeable, is_approved,
72
- comment_count, link, fetched_at)
73
- VALUES (${req.id}, ${req.awsAccountId}, ${req.accountProfile}, ${req.accountRegion},
74
- ${req.title}, ${req.description}, ${req.author}, ${req.repositoryName},
75
- ${req.creationDate}, ${req.lastModifiedDate}, ${req.status},
76
- ${req.sourceBranch}, ${req.destinationBranch}, ${req.isMergeable}, ${req.isApproved},
77
- ${req.commentCount}, ${req.link}, strftime('%Y-%m-%dT%H:%M:%SZ', 'now'))
78
- ON CONFLICT (aws_account_id, id) DO UPDATE SET
79
- account_profile = excluded.account_profile,
80
- account_region = excluded.account_region,
81
- title = excluded.title,
82
- description = excluded.description,
83
- author = excluded.author,
84
- repository_name = excluded.repository_name,
85
- creation_date = excluded.creation_date,
86
- last_modified_date = excluded.last_modified_date,
87
- status = excluded.status,
88
- source_branch = excluded.source_branch,
89
- destination_branch = excluded.destination_branch,
90
- is_mergeable = excluded.is_mergeable,
91
- is_approved = excluded.is_approved,
92
- comment_count = COALESCE(excluded.comment_count, pull_requests.comment_count),
93
- health_score = COALESCE(excluded.health_score, pull_requests.health_score),
94
- link = excluded.link,
95
- fetched_at = excluded.fetched_at`
96
- });
97
- const search_ = SqlSchema.findAll({
98
- Result: CachedPullRequest,
99
- Request: Schema.Struct({ query: Schema.String, limit: Schema.Number, offset: Schema.Number }),
100
- execute: (req) => sql `SELECT pull_requests.* FROM pull_requests
101
- JOIN pull_requests_fts fts ON pull_requests.rowid = fts.rowid
102
- WHERE pull_requests_fts MATCH ${req.query}
103
- ORDER BY rank
104
- LIMIT ${req.limit} OFFSET ${req.offset}`
105
- });
106
- const searchCount_ = SqlSchema.findOne({
107
- Result: Schema.Struct({ count: Schema.Number }),
108
- Request: Schema.Struct({ query: Schema.String }),
109
- execute: (req) => sql `SELECT count(*) as count FROM pull_requests
110
- JOIN pull_requests_fts fts ON pull_requests.rowid = fts.rowid
111
- WHERE pull_requests_fts MATCH ${req.query}`
112
- });
113
- const deleteStale_ = SqlSchema.void({
114
- Request: Schema.Struct({ olderThan: Schema.String }),
115
- execute: (req) => sql `DELETE FROM pull_requests WHERE fetched_at < ${req.olderThan}`
116
- });
117
- const updateCommentCount_ = (awsAccountId, id, count) => sql `UPDATE pull_requests SET comment_count = ${count}
118
- WHERE id = ${id} AND aws_account_id = ${awsAccountId}`.pipe(Effect.asVoid);
119
- const updateHealthScore_ = (awsAccountId, id, score) => sql `UPDATE pull_requests SET health_score = ${score}
120
- WHERE id = ${id} AND aws_account_id = ${awsAccountId}`.pipe(Effect.asVoid);
121
- const upsertMany_ = (prs) => sql.withTransaction(Effect.forEach(prs, (pr) => upsert_(pr), { discard: true }));
122
- const publish = hub.publish(RepoChange.PullRequests());
123
- return {
124
- findAll: () => findAll_(undefined).pipe(cacheError("findAll")),
125
- findByAccountAndId: (awsAccountId, id) => findByAccountAndId_({ awsAccountId, id }).pipe(cacheError("findByAccountAndId")),
126
- upsert: (input) => upsert_(input).pipe(Effect.tap(() => publish), cacheError("upsert")),
127
- upsertMany: (prs) => upsertMany_(prs).pipe(Effect.tap(() => publish), cacheError("upsertMany")),
128
- search: (query, opts) => {
129
- const limit = opts?.limit ?? 20;
130
- const offset = opts?.offset ?? 0;
131
- const stripped = query.replace(/[*^"]/g, "").replace(/\b(NEAR|OR|NOT|AND)\b/gi, "");
132
- const escaped = stripped.replace(/"/g, `""`);
133
- const ftsQuery = `"${escaped}"`;
134
- return Effect.all({
135
- items: search_({ query: ftsQuery, limit, offset }),
136
- total: searchCount_({ query: ftsQuery }).pipe(Effect.map((r) => r.pipe(Option.getOrElse(() => ({ count: 0 }))).count))
137
- }).pipe(Effect.map(({ items, total }) => ({ items, total, hasMore: offset + items.length < total })), Effect.catchTag("SqlError", () => Effect.logWarning("FTS search failed").pipe(Effect.as({ items: [], total: 0, hasMore: false }))), cacheError("search"));
138
- },
139
- deleteStale: (olderThan) => deleteStale_({ olderThan }).pipe(Effect.tap(() => publish), cacheError("deleteStale")),
140
- updateCommentCount: (awsAccountId, id, count) => updateCommentCount_(awsAccountId, id, count).pipe(Effect.tap(() => publish), cacheError("updateCommentCount")),
141
- updateHealthScore: (awsAccountId, id, score) => updateHealthScore_(awsAccountId, id, score).pipe(Effect.tap(() => publish), cacheError("updateHealthScore"))
142
- };
143
- })
144
- }) {
145
- }
146
- //# sourceMappingURL=PullRequestRepo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PullRequestRepo.js","sourceRoot":"","sources":["../../../src/CacheService/repos/PullRequestRepo.ts"],"names":[],"mappings":"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"}