@knpkv/codecommit-core 0.5.0 → 0.6.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 (177) hide show
  1. package/dist/AwsClient/AwsClientGated.d.ts +27 -0
  2. package/dist/AwsClient/AwsClientGated.d.ts.map +1 -0
  3. package/dist/AwsClient/AwsClientGated.js +105 -0
  4. package/dist/AwsClient/AwsClientGated.js.map +1 -0
  5. package/dist/AwsClient/getDifferences.d.ts +16 -0
  6. package/dist/AwsClient/getDifferences.d.ts.map +1 -0
  7. package/dist/AwsClient/getDifferences.js +22 -0
  8. package/dist/AwsClient/getDifferences.js.map +1 -0
  9. package/dist/AwsClient/getPullRequest.d.ts.map +1 -1
  10. package/dist/AwsClient/getPullRequest.js +26 -5
  11. package/dist/AwsClient/getPullRequest.js.map +1 -1
  12. package/dist/AwsClient/getPullRequests.d.ts.map +1 -1
  13. package/dist/AwsClient/getPullRequests.js +29 -11
  14. package/dist/AwsClient/getPullRequests.js.map +1 -1
  15. package/dist/AwsClient/index.d.ts +21 -13
  16. package/dist/AwsClient/index.d.ts.map +1 -1
  17. package/dist/AwsClient/index.js +3 -1
  18. package/dist/AwsClient/index.js.map +1 -1
  19. package/dist/AwsClient/internal.d.ts +23 -0
  20. package/dist/AwsClient/internal.d.ts.map +1 -1
  21. package/dist/AwsClient/internal.js +4 -1
  22. package/dist/AwsClient/internal.js.map +1 -1
  23. package/dist/CacheService/Database.d.ts.map +1 -1
  24. package/dist/CacheService/Database.js +13 -1
  25. package/dist/CacheService/Database.js.map +1 -1
  26. package/dist/CacheService/EventsHub.d.ts +44 -4
  27. package/dist/CacheService/EventsHub.d.ts.map +1 -1
  28. package/dist/CacheService/EventsHub.js.map +1 -1
  29. package/dist/CacheService/index.d.ts +3 -2
  30. package/dist/CacheService/index.d.ts.map +1 -1
  31. package/dist/CacheService/index.js +2 -1
  32. package/dist/CacheService/index.js.map +1 -1
  33. package/dist/CacheService/migrations/0007_stats_columns.d.ts +5 -0
  34. package/dist/CacheService/migrations/0007_stats_columns.d.ts.map +1 -0
  35. package/dist/CacheService/migrations/0007_stats_columns.js +13 -0
  36. package/dist/CacheService/migrations/0007_stats_columns.js.map +1 -0
  37. package/dist/CacheService/migrations/0008_merged_by.d.ts +5 -0
  38. package/dist/CacheService/migrations/0008_merged_by.d.ts.map +1 -0
  39. package/dist/CacheService/migrations/0008_merged_by.js +4 -0
  40. package/dist/CacheService/migrations/0008_merged_by.js.map +1 -0
  41. package/dist/CacheService/migrations/0009_approved_by.d.ts +5 -0
  42. package/dist/CacheService/migrations/0009_approved_by.d.ts.map +1 -0
  43. package/dist/CacheService/migrations/0009_approved_by.js +4 -0
  44. package/dist/CacheService/migrations/0009_approved_by.js.map +1 -0
  45. package/dist/CacheService/migrations/0010_commented_by.d.ts +5 -0
  46. package/dist/CacheService/migrations/0010_commented_by.d.ts.map +1 -0
  47. package/dist/CacheService/migrations/0010_commented_by.js +4 -0
  48. package/dist/CacheService/migrations/0010_commented_by.js.map +1 -0
  49. package/dist/CacheService/migrations/0011_audit_log.d.ts +5 -0
  50. package/dist/CacheService/migrations/0011_audit_log.d.ts.map +1 -0
  51. package/dist/CacheService/migrations/0011_audit_log.js +19 -0
  52. package/dist/CacheService/migrations/0011_audit_log.js.map +1 -0
  53. package/dist/CacheService/migrations/0012_audit_log_indexes.d.ts +5 -0
  54. package/dist/CacheService/migrations/0012_audit_log_indexes.d.ts.map +1 -0
  55. package/dist/CacheService/migrations/0012_audit_log_indexes.js +7 -0
  56. package/dist/CacheService/migrations/0012_audit_log_indexes.js.map +1 -0
  57. package/dist/CacheService/repos/PullRequestRepo/index.d.ts +132 -0
  58. package/dist/CacheService/repos/PullRequestRepo/index.d.ts.map +1 -0
  59. package/dist/CacheService/repos/PullRequestRepo/index.js +35 -0
  60. package/dist/CacheService/repos/PullRequestRepo/index.js.map +1 -0
  61. package/dist/CacheService/repos/PullRequestRepo/internal.d.ts +72 -0
  62. package/dist/CacheService/repos/PullRequestRepo/internal.d.ts.map +1 -0
  63. package/dist/CacheService/repos/PullRequestRepo/internal.js +69 -0
  64. package/dist/CacheService/repos/PullRequestRepo/internal.js.map +1 -0
  65. package/dist/CacheService/repos/PullRequestRepo/mutations.d.ts +24 -0
  66. package/dist/CacheService/repos/PullRequestRepo/mutations.d.ts.map +1 -0
  67. package/dist/CacheService/repos/PullRequestRepo/mutations.js +94 -0
  68. package/dist/CacheService/repos/PullRequestRepo/mutations.js.map +1 -0
  69. package/dist/CacheService/repos/PullRequestRepo/queries.d.ts +113 -0
  70. package/dist/CacheService/repos/PullRequestRepo/queries.d.ts.map +1 -0
  71. package/dist/CacheService/repos/PullRequestRepo/queries.js +89 -0
  72. package/dist/CacheService/repos/PullRequestRepo/queries.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/DateUtils.d.ts +28 -0
  90. package/dist/DateUtils.d.ts.map +1 -1
  91. package/dist/DateUtils.js +69 -1
  92. package/dist/DateUtils.js.map +1 -1
  93. package/dist/Domain.d.ts +13 -3
  94. package/dist/Domain.d.ts.map +1 -1
  95. package/dist/Domain.js +6 -5
  96. package/dist/Domain.js.map +1 -1
  97. package/dist/Errors.d.ts +14 -1
  98. package/dist/Errors.d.ts.map +1 -1
  99. package/dist/Errors.js +10 -0
  100. package/dist/Errors.js.map +1 -1
  101. package/dist/PRService/index.d.ts +3 -3
  102. package/dist/PRService/index.d.ts.map +1 -1
  103. package/dist/PRService/index.js +1 -1
  104. package/dist/PRService/index.js.map +1 -1
  105. package/dist/PRService/internal.d.ts +24 -2
  106. package/dist/PRService/internal.d.ts.map +1 -1
  107. package/dist/PRService/internal.js +23 -8
  108. package/dist/PRService/internal.js.map +1 -1
  109. package/dist/PRService/refresh.d.ts +1 -1
  110. package/dist/PRService/refresh.d.ts.map +1 -1
  111. package/dist/PRService/refresh.js +2 -0
  112. package/dist/PRService/refresh.js.map +1 -1
  113. package/dist/PRService/refreshDiffs.d.ts +16 -0
  114. package/dist/PRService/refreshDiffs.d.ts.map +1 -0
  115. package/dist/PRService/refreshDiffs.js +54 -0
  116. package/dist/PRService/refreshDiffs.js.map +1 -0
  117. package/dist/PRService/refreshEnrich.d.ts +1 -1
  118. package/dist/PRService/refreshEnrich.d.ts.map +1 -1
  119. package/dist/PRService/refreshEnrich.js +3 -1
  120. package/dist/PRService/refreshEnrich.js.map +1 -1
  121. package/dist/PRService/refreshFetch.d.ts +1 -1
  122. package/dist/PRService/refreshFetch.d.ts.map +1 -1
  123. package/dist/PRService/refreshFetch.js +12 -3
  124. package/dist/PRService/refreshFetch.js.map +1 -1
  125. package/dist/PRService/refreshHistory.d.ts +19 -0
  126. package/dist/PRService/refreshHistory.d.ts.map +1 -0
  127. package/dist/PRService/refreshHistory.js +110 -0
  128. package/dist/PRService/refreshHistory.js.map +1 -0
  129. package/dist/PRService/refreshResolve.d.ts +1 -1
  130. package/dist/PRService/refreshResolve.d.ts.map +1 -1
  131. package/dist/PRService/refreshResolve.js +1 -1
  132. package/dist/PRService/refreshResolve.js.map +1 -1
  133. package/dist/PRService/refreshScore.d.ts +1 -1
  134. package/dist/PRService/refreshScore.d.ts.map +1 -1
  135. package/dist/PRService/refreshScore.js +1 -1
  136. package/dist/PRService/refreshScore.js.map +1 -1
  137. package/dist/PRService/refreshSinglePR.d.ts +1 -1
  138. package/dist/PRService/refreshSinglePR.d.ts.map +1 -1
  139. package/dist/PRService/refreshSinglePR.js +4 -3
  140. package/dist/PRService/refreshSinglePR.js.map +1 -1
  141. package/dist/PermissionService/AuditLog.d.ts +62 -0
  142. package/dist/PermissionService/AuditLog.d.ts.map +1 -0
  143. package/dist/PermissionService/AuditLog.js +113 -0
  144. package/dist/PermissionService/AuditLog.js.map +1 -0
  145. package/dist/PermissionService/PermissionGate.d.ts +47 -0
  146. package/dist/PermissionService/PermissionGate.d.ts.map +1 -0
  147. package/dist/PermissionService/PermissionGate.js +14 -0
  148. package/dist/PermissionService/PermissionGate.js.map +1 -0
  149. package/dist/PermissionService/PermissionGateLive.d.ts +41 -0
  150. package/dist/PermissionService/PermissionGateLive.d.ts.map +1 -0
  151. package/dist/PermissionService/PermissionGateLive.js +83 -0
  152. package/dist/PermissionService/PermissionGateLive.js.map +1 -0
  153. package/dist/PermissionService/index.d.ts +39 -0
  154. package/dist/PermissionService/index.d.ts.map +1 -0
  155. package/dist/PermissionService/index.js +87 -0
  156. package/dist/PermissionService/index.js.map +1 -0
  157. package/dist/PermissionService/operations.d.ts +40 -0
  158. package/dist/PermissionService/operations.d.ts.map +1 -0
  159. package/dist/PermissionService/operations.js +38 -0
  160. package/dist/PermissionService/operations.js.map +1 -0
  161. package/dist/StatsService/WeeklyStats.d.ts +174 -0
  162. package/dist/StatsService/WeeklyStats.d.ts.map +1 -0
  163. package/dist/StatsService/WeeklyStats.js +110 -0
  164. package/dist/StatsService/WeeklyStats.js.map +1 -0
  165. package/dist/StatsService/index.d.ts +45 -0
  166. package/dist/StatsService/index.d.ts.map +1 -0
  167. package/dist/StatsService/index.js +145 -0
  168. package/dist/StatsService/index.js.map +1 -0
  169. package/dist/index.d.ts +2 -0
  170. package/dist/index.d.ts.map +1 -1
  171. package/dist/index.js +2 -0
  172. package/dist/index.js.map +1 -1
  173. package/package.json +1 -1
  174. package/dist/CacheService/repos/PullRequestRepo.d.ts +0 -112
  175. package/dist/CacheService/repos/PullRequestRepo.d.ts.map +0 -1
  176. package/dist/CacheService/repos/PullRequestRepo.js +0 -146
  177. package/dist/CacheService/repos/PullRequestRepo.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"refreshResolve.js","sourceRoot":"","sources":["../../src/PRService/refreshResolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refreshResolve.js","sourceRoot":"","sources":["../../src/PRService/refreshResolve.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * Phase 5: Calculate and store health scores.
4
4
  */
5
5
  import { Effect } from "effect";
6
- import { PullRequestRepo } from "../CacheService/repos/PullRequestRepo.js";
6
+ import { PullRequestRepo } from "../CacheService/repos/PullRequestRepo/index.js";
7
7
  import { type PRState } from "./internal.js";
8
8
  export declare const calculateHealthScores: (state: PRState) => Effect.Effect<void, never, PullRequestRepo>;
9
9
  //# sourceMappingURL=refreshScore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"refreshScore.d.ts","sourceRoot":"","sources":["../../src/PRService/refreshScore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAmB,MAAM,EAAmB,MAAM,QAAQ,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAE1E,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5D,eAAO,MAAM,qBAAqB,GAChC,OAAO,OAAO,KACb,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAuBzC,CAAA"}
1
+ {"version":3,"file":"refreshScore.d.ts","sourceRoot":"","sources":["../../src/PRService/refreshScore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAmB,MAAM,EAAmB,MAAM,QAAQ,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAEhF,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5D,eAAO,MAAM,qBAAqB,GAChC,OAAO,OAAO,KACb,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAuBzC,CAAA"}
@@ -3,7 +3,7 @@
3
3
  * Phase 5: Calculate and store health scores.
4
4
  */
5
5
  import { Clock, DateTime, Effect, SubscriptionRef } from "effect";
6
- import { PullRequestRepo } from "../CacheService/repos/PullRequestRepo.js";
6
+ import { PullRequestRepo } from "../CacheService/repos/PullRequestRepo/index.js";
7
7
  import { scoreTotalOr } from "../HealthScore.js";
8
8
  import { decodeCachedPR } from "./internal.js";
9
9
  export const calculateHealthScores = (state) => Effect.gen(function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"refreshScore.js","sourceRoot":"","sources":["../../src/PRService/refreshScore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAgB,MAAM,eAAe,CAAA;AAE5D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAAc,EAC+B,EAAE,CAC/C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;IAErC,KAAK,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,GAAG,CAAC;QACJ,YAAY,EAAE,2BAA2B;KAC1C,CAAC,CAAC,CAAA;IAEH,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACzF,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAA;IACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;IACjE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,SAAS,EACT,CAAC,GAAG,EAAE,EAAE;QACN,MAAM,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;QAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QAC3C,OAAO,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CACnE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CACnC,CAAA;IACH,CAAC,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAA;AACH,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"refreshScore.js","sourceRoot":"","sources":["../../src/PRService/refreshScore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAgB,MAAM,eAAe,CAAA;AAE5D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAAc,EAC+B,EAAE,CAC/C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;IAErC,KAAK,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,GAAG,CAAC;QACJ,YAAY,EAAE,2BAA2B;KAC1C,CAAC,CAAC,CAAA;IAEH,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACzF,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAA;IACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;IACjE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,SAAS,EACT,CAAC,GAAG,EAAE,EAAE;QACN,MAAM,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;QAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QAC3C,OAAO,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CACnE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CACnC,CAAA;IACH,CAAC,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -5,7 +5,7 @@ import { Effect } from "effect";
5
5
  import { AwsClient } from "../AwsClient/index.js";
6
6
  import { CommentRepo } from "../CacheService/repos/CommentRepo.js";
7
7
  import { NotificationRepo } from "../CacheService/repos/NotificationRepo.js";
8
- import { PullRequestRepo } from "../CacheService/repos/PullRequestRepo.js";
8
+ import { PullRequestRepo } from "../CacheService/repos/PullRequestRepo/index.js";
9
9
  import { SubscriptionRepo } from "../CacheService/repos/SubscriptionRepo.js";
10
10
  import { ConfigService } from "../ConfigService/index.js";
11
11
  import { type PRState } from "./internal.js";
@@ -1 +1 @@
1
- {"version":3,"file":"refreshSinglePR.d.ts","sourceRoot":"","sources":["../../src/PRService/refreshSinglePR.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAS,MAAM,EAA2B,MAAM,QAAQ,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEzD,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAA;AAqB9D,eAAO,MAAM,mBAAmB,GAC9B,OAAO,OAAO,wNAsGV,CAAA"}
1
+ {"version":3,"file":"refreshSinglePR.d.ts","sourceRoot":"","sources":["../../src/PRService/refreshSinglePR.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAS,MAAM,EAA2B,MAAM,QAAQ,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEzD,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAA;AAqB9D,eAAO,MAAM,mBAAmB,GAC9B,OAAO,OAAO,wNAsGV,CAAA"}
@@ -6,9 +6,10 @@ import { AwsClient } from "../AwsClient/index.js";
6
6
  import { diffComments, diffPR } from "../CacheService/diff.js";
7
7
  import { CommentRepo } from "../CacheService/repos/CommentRepo.js";
8
8
  import { NotificationRepo } from "../CacheService/repos/NotificationRepo.js";
9
- import { PullRequestRepo } from "../CacheService/repos/PullRequestRepo.js";
9
+ import { PullRequestRepo } from "../CacheService/repos/PullRequestRepo/index.js";
10
10
  import { SubscriptionRepo } from "../CacheService/repos/SubscriptionRepo.js";
11
11
  import { ConfigService } from "../ConfigService/index.js";
12
+ import { codecommitConsoleUrl } from "../Domain.js";
12
13
  import { countAllComments } from "./internal.js";
13
14
  /** Resolve profile/region from any cached PR with matching awsAccountId, or from config */
14
15
  const resolveAccountFromCache = (prRepo, awsAccountId) => Effect.gen(function* () {
@@ -77,8 +78,8 @@ export const makeRefreshSinglePR = (state) => Effect.fn("PRService.refreshSingle
77
78
  isMergeable: cached ? (cached.isMergeable ? 1 : 0) : detail.status === "MERGED" ? 1 : 0,
78
79
  isApproved: cached ? (cached.isApproved ? 1 : 0) : detail.status === "MERGED" ? 1 : 0,
79
80
  commentCount: countAllComments(locs),
80
- link: cached?.link ?? pr?.link
81
- ?? `https://${account.region}.console.aws.amazon.com/codesuite/codecommit/repositories/${detail.repositoryName}/pull-requests/${prId}?region=${account.region}`
81
+ link: cached?.link ?? pr?.link ?? codecommitConsoleUrl(account.region, detail.repositoryName, prId),
82
+ approvedBy: cached?.approvedBy ?? []
82
83
  };
83
84
  // Diff for subscribed PRs
84
85
  const isSubscribed = yield* subscriptionRepo.isSubscribed(awsAccountId, prId).pipe(Effect.catchAll(() => Effect.succeed(false)));
@@ -1 +1 @@
1
- {"version":3,"file":"refreshSinglePR.js","sourceRoot":"","sources":["../../src/PRService/refreshSinglePR.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refreshSinglePR.js","sourceRoot":"","sources":["../../src/PRService/refreshSinglePR.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @title AuditLogRepo — records every AWS API call
3
+ *
4
+ * Every call through the permission gate gets recorded — allowed, denied,
5
+ * or timed out.
6
+ *
7
+ * Design constraints:
8
+ * - MUST never block API calls (catchAll on write failures at call site)
9
+ * - MUST handle high volume (~17 ops per refresh × every 5min)
10
+ * - MUST auto-prune (150k entries/month without pruning)
11
+ * - MUST support filtered queries (for the audit log UI page)
12
+ *
13
+ * `durationMs` is null when the API call was denied/timed out (never ran).
14
+ * When present, it reflects actual AWS API latency — not permission prompt wait.
15
+ *
16
+ * @module
17
+ */
18
+ import * as SqlClient from "@effect/sql/SqlClient";
19
+ import { Effect, Schema } from "effect";
20
+ import { CacheError } from "../CacheService/CacheError.js";
21
+ export declare const AuditLogEntry: Schema.Struct<{
22
+ id: typeof Schema.Number;
23
+ timestamp: typeof Schema.String;
24
+ operation: typeof Schema.String;
25
+ accountProfile: typeof Schema.String;
26
+ region: typeof Schema.String;
27
+ permissionState: Schema.Literal<["allowed", "always_allowed", "denied", "timed_out"]>;
28
+ context: typeof Schema.String;
29
+ durationMs: Schema.NullOr<typeof Schema.Number>;
30
+ }>;
31
+ export type AuditLogEntry = typeof AuditLogEntry.Type;
32
+ export type NewAuditLogEntry = Omit<AuditLogEntry, "id">;
33
+ export interface PaginatedAuditLog {
34
+ readonly items: ReadonlyArray<AuditLogEntry>;
35
+ readonly total: number;
36
+ readonly nextCursor?: number;
37
+ }
38
+ declare const AuditLogRepo_base: Effect.Service.Class<AuditLogRepo, "AuditLogRepo", {
39
+ 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>];
40
+ readonly effect: Effect.Effect<{
41
+ log: (entry: NewAuditLogEntry) => Effect.Effect<void, CacheError, never>;
42
+ findAll: (opts?: {
43
+ readonly limit?: number | undefined;
44
+ readonly offset?: number | undefined;
45
+ readonly operation?: string | undefined;
46
+ readonly accountProfile?: string | undefined;
47
+ readonly permissionState?: string | undefined;
48
+ readonly from?: string | undefined;
49
+ readonly to?: string | undefined;
50
+ readonly search?: string | undefined;
51
+ }) => Effect.Effect<PaginatedAuditLog, CacheError>;
52
+ prune: (retentionDays: number) => Effect.Effect<number, CacheError>;
53
+ exportAll: (opts?: {
54
+ readonly from?: string | undefined;
55
+ readonly to?: string | undefined;
56
+ }) => Effect.Effect<ReadonlyArray<AuditLogEntry>, CacheError>;
57
+ }, never, SqlClient.SqlClient>;
58
+ }>;
59
+ export declare class AuditLogRepo extends AuditLogRepo_base {
60
+ }
61
+ export {};
62
+ //# sourceMappingURL=AuditLog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuditLog.d.ts","sourceRoot":"","sources":["../../src/PermissionService/AuditLog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAG1D,eAAO,MAAM,aAAa;;;;;;;;;EASxB,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AAErD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;AAExD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;;;;qBA6BkB,gBAAgB;yBAQZ;YACf,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YAC5C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YAClC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SACrC,KAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC;+BAuDzB,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;2BAY9C;YACjB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YAClC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SACjC,KAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC;;;AA5GjE,qBAAa,YAAa,SAAQ,iBA8HhC;CAAG"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * @title AuditLogRepo — records every AWS API call
3
+ *
4
+ * Every call through the permission gate gets recorded — allowed, denied,
5
+ * or timed out.
6
+ *
7
+ * Design constraints:
8
+ * - MUST never block API calls (catchAll on write failures at call site)
9
+ * - MUST handle high volume (~17 ops per refresh × every 5min)
10
+ * - MUST auto-prune (150k entries/month without pruning)
11
+ * - MUST support filtered queries (for the audit log UI page)
12
+ *
13
+ * `durationMs` is null when the API call was denied/timed out (never ran).
14
+ * When present, it reflects actual AWS API latency — not permission prompt wait.
15
+ *
16
+ * @module
17
+ */
18
+ import * as SqlClient from "@effect/sql/SqlClient";
19
+ import * as SqlSchema from "@effect/sql/SqlSchema";
20
+ import { Effect, Schema } from "effect";
21
+ import { CacheError } from "../CacheService/CacheError.js";
22
+ import { DatabaseLive } from "../CacheService/Database.js";
23
+ export const AuditLogEntry = Schema.Struct({
24
+ id: Schema.Number,
25
+ timestamp: Schema.String,
26
+ operation: Schema.String,
27
+ accountProfile: Schema.String,
28
+ region: Schema.String,
29
+ permissionState: Schema.Literal("allowed", "always_allowed", "denied", "timed_out"),
30
+ context: Schema.String,
31
+ durationMs: Schema.NullOr(Schema.Number)
32
+ });
33
+ const cacheError = (op) => (effect) => effect.pipe(Effect.mapError((cause) => new CacheError({ operation: `AuditLogRepo.${op}`, cause })), Effect.withSpan(`AuditLogRepo.${op}`, { captureStackTrace: false }));
34
+ export class AuditLogRepo extends Effect.Service()("AuditLogRepo", {
35
+ dependencies: [DatabaseLive],
36
+ effect: Effect.gen(function* () {
37
+ const sql = yield* SqlClient.SqlClient;
38
+ const findAll_ = SqlSchema.findAll({
39
+ Result: AuditLogEntry,
40
+ Request: Schema.Struct({
41
+ limit: Schema.Number,
42
+ offset: Schema.Number
43
+ }),
44
+ execute: (req) => sql `SELECT * FROM audit_log ORDER BY id DESC LIMIT ${req.limit} OFFSET ${req.offset}`
45
+ });
46
+ const countAll = SqlSchema.single({
47
+ Result: Schema.Struct({ count: Schema.Number }),
48
+ Request: Schema.Void,
49
+ execute: () => sql `SELECT count(*) as count FROM audit_log`
50
+ });
51
+ return {
52
+ log: (entry) => sql `INSERT INTO audit_log (timestamp, operation, account_profile, region, permission_state, context, duration_ms)
53
+ VALUES (${entry.timestamp}, ${entry.operation}, ${entry.accountProfile}, ${entry.region}, ${entry.permissionState}, ${entry.context}, ${entry.durationMs})`
54
+ .pipe(Effect.asVoid, cacheError("log")),
55
+ findAll: (opts) => {
56
+ // Clamp numeric params to prevent injection via malformed input
57
+ const limit = Math.max(1, Math.min(200, Math.floor(opts?.limit ?? 50)));
58
+ const offset = Math.max(0, Math.floor(opts?.offset ?? 0));
59
+ // For filtered queries, build dynamic SQL
60
+ if (opts?.operation || opts?.accountProfile || opts?.permissionState || opts?.from || opts?.to || opts?.search) {
61
+ const conditions = [];
62
+ if (opts?.operation)
63
+ conditions.push(`operation = '${opts.operation.replace(/'/g, "''")}'`);
64
+ if (opts?.accountProfile) {
65
+ conditions.push(`account_profile = '${opts.accountProfile.replace(/'/g, "''")}'`);
66
+ }
67
+ if (opts?.permissionState) {
68
+ conditions.push(`permission_state = '${opts.permissionState.replace(/'/g, "''")}'`);
69
+ }
70
+ if (opts?.from)
71
+ conditions.push(`timestamp >= '${opts.from.replace(/'/g, "''")}'`);
72
+ if (opts?.to)
73
+ conditions.push(`timestamp <= '${opts.to.replace(/'/g, "''")}'`);
74
+ if (opts?.search) {
75
+ const escaped = opts.search.replace(/'/g, "''");
76
+ conditions.push(`(operation LIKE '%${escaped}%' OR context LIKE '%${escaped}%')`);
77
+ }
78
+ const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
79
+ return Effect.all([
80
+ sql.unsafe(`SELECT * FROM audit_log ${where} ORDER BY id DESC LIMIT ${limit} OFFSET ${offset}`).pipe(Effect.map((rows) => rows.map((r) => r))),
81
+ sql.unsafe(`SELECT count(*) as count FROM audit_log ${where}`).pipe(Effect.map((rows) => rows[0]?.count ?? 0))
82
+ ]).pipe(Effect.map(([items, total]) => ({
83
+ items,
84
+ total,
85
+ ...(items.length === limit ? { nextCursor: offset + limit } : {})
86
+ })), cacheError("findAll"));
87
+ }
88
+ return Effect.all([
89
+ findAll_({ limit, offset }),
90
+ countAll(undefined)
91
+ ]).pipe(Effect.map(([items, { count }]) => ({
92
+ items,
93
+ total: count,
94
+ ...(items.length === limit ? { nextCursor: offset + limit } : {})
95
+ })), cacheError("findAll"));
96
+ },
97
+ prune: (retentionDays) => {
98
+ const days = Math.max(1, Math.floor(retentionDays));
99
+ return sql.unsafe(`DELETE FROM audit_log WHERE timestamp < datetime('now', '-${days} days')`).pipe(
100
+ // DELETE returns no rows — use changes() to get actual deleted count
101
+ Effect.flatMap(() => sql `SELECT changes() as n`), Effect.map((rows) => rows[0]?.n ?? 0), cacheError("prune"));
102
+ },
103
+ exportAll: (opts) => {
104
+ if (opts?.from && opts?.to) {
105
+ return sql.unsafe(`SELECT * FROM audit_log WHERE timestamp >= '${opts.from.replace(/'/g, "''")}' AND timestamp <= '${opts.to.replace(/'/g, "''")}' ORDER BY id DESC`).pipe(Effect.map((rows) => rows.map((r) => r)), cacheError("exportAll"));
106
+ }
107
+ return sql.unsafe("SELECT * FROM audit_log ORDER BY id DESC").pipe(Effect.map((rows) => rows.map((r) => r)), cacheError("exportAll"));
108
+ }
109
+ };
110
+ })
111
+ }) {
112
+ }
113
+ //# sourceMappingURL=AuditLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuditLog.js","sourceRoot":"","sources":["../../src/PermissionService/AuditLog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @title PermissionGate — abstract "ask the user" interface
3
+ *
4
+ * Context.Tag (not Effect.Service) so different environments can
5
+ * provide different implementations:
6
+ * - Web: Deferred + SSE push (PermissionGateLive.ts)
7
+ * - TUI: stdin prompt (future)
8
+ * - Test: auto-allow Layer
9
+ *
10
+ * Only exposes `request` — the caller's view. The concrete implementation
11
+ * (PermissionGateLive) adds `resolve` and `getFirstPending` for the
12
+ * HTTP handler and SSE builder.
13
+ *
14
+ * @module
15
+ */
16
+ import type { Effect } from "effect";
17
+ import { Context, Schema } from "effect";
18
+ import type { PermissionDeniedError } from "../Errors.js";
19
+ declare const PermissionPrompt_base: Schema.Class<PermissionPrompt, {
20
+ id: typeof Schema.String;
21
+ operation: typeof Schema.String;
22
+ category: Schema.Literal<["read", "write"]>;
23
+ context: typeof Schema.String;
24
+ }, Schema.Struct.Encoded<{
25
+ id: typeof Schema.String;
26
+ operation: typeof Schema.String;
27
+ category: Schema.Literal<["read", "write"]>;
28
+ context: typeof Schema.String;
29
+ }>, never, {
30
+ readonly id: string;
31
+ } & {
32
+ readonly operation: string;
33
+ } & {
34
+ readonly context: string;
35
+ } & {
36
+ readonly category: "read" | "write";
37
+ }, {}, {}>;
38
+ export declare class PermissionPrompt extends PermissionPrompt_base {
39
+ }
40
+ export type PermissionResponse = "allow_once" | "always_allow" | "deny";
41
+ declare const PermissionGate_base: Context.TagClass<PermissionGate, "@knpkv/codecommit-core/PermissionGate", {
42
+ readonly request: (prompt: PermissionPrompt) => Effect.Effect<PermissionResponse, PermissionDeniedError>;
43
+ }>;
44
+ export declare class PermissionGate extends PermissionGate_base {
45
+ }
46
+ export {};
47
+ //# sourceMappingURL=PermissionGate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PermissionGate.d.ts","sourceRoot":"","sources":["../../src/PermissionService/PermissionGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;;;;;;;;;;;;;;;;;;;;AAGzD,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;AAEL,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,cAAc,GAAG,MAAM,CAAA;;sBAOjD,CAAC,MAAM,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;;AAH5G,qBAAa,cAAe,SAAQ,mBAKjC;CAAG"}
@@ -0,0 +1,14 @@
1
+ import { Context, Schema } from "effect";
2
+ // UUID correlates the SSE prompt → client modal → POST response
3
+ export class PermissionPrompt extends Schema.Class("PermissionPrompt")({
4
+ id: Schema.String,
5
+ operation: Schema.String,
6
+ category: Schema.Literal("read", "write"),
7
+ context: Schema.String
8
+ }) {
9
+ }
10
+ // Blocks the calling fiber until user responds or 30s timeout.
11
+ // Returns the response, or fails with PermissionDeniedError.
12
+ export class PermissionGate extends Context.Tag("@knpkv/codecommit-core/PermissionGate")() {
13
+ }
14
+ //# sourceMappingURL=PermissionGate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PermissionGate.js","sourceRoot":"","sources":["../../src/PermissionService/PermissionGate.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAGxC,gEAAgE;AAChE,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,KAAK,CAAmB,kBAAkB,CAAC,CAAC;IACvF,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CAAC;CAAG;AAIL,+DAA+D;AAC/D,6DAA6D;AAC7D,MAAM,OAAO,cAAe,SAAQ,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,EAKrF;CAAG"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @title PermissionGateLive — Deferred-based prompt flow
3
+ *
4
+ * One `Deferred<PermissionResponse>` per prompt.
5
+ *
6
+ * Flow:
7
+ * 1. API call fiber creates Deferred, stores in pending Map
8
+ * 2. Publishes PermissionRequired → SSE rebuilds payload with prompt
9
+ * 3. Fiber blocks on Deferred.await (up to 30s)
10
+ * 4. User clicks modal → POST /api/permissions/respond
11
+ * 5. HTTP handler calls resolve() → Deferred.succeed → fiber unblocks
12
+ * 6. Publishes PermissionResolved → SSE removes prompt from payload
13
+ *
14
+ * Multi-tab: Deferred.succeed is idempotent — first responder wins,
15
+ * second tab's POST is a no-op. Both see prompt disappear via SSE.
16
+ *
17
+ * Separate Effect.Service tag (not just PermissionGate) because the
18
+ * HTTP handler and SSE builder need `resolve` and `getFirstPending`
19
+ * which the abstract interface doesn't expose.
20
+ *
21
+ * @module
22
+ */
23
+ import { Effect, Layer } from "effect";
24
+ import { EventsHub } from "../CacheService/EventsHub.js";
25
+ import { PermissionDeniedError } from "../Errors.js";
26
+ import { PermissionGate, type PermissionPrompt, type PermissionResponse } from "./PermissionGate.js";
27
+ export interface PermissionGateLive {
28
+ readonly request: (prompt: PermissionPrompt) => Effect.Effect<PermissionResponse, PermissionDeniedError>;
29
+ readonly resolve: (promptId: string, response: PermissionResponse) => Effect.Effect<void>;
30
+ readonly getFirstPending: () => Effect.Effect<PermissionPrompt | undefined>;
31
+ }
32
+ export declare const PermissionGateLiveTag: Effect.Service.Class<PermissionGateLive, "PermissionGateLive", {
33
+ readonly dependencies: readonly [Layer.Layer<EventsHub, never, never>];
34
+ readonly effect: Effect.Effect<{
35
+ request: (prompt: PermissionPrompt) => Effect.Effect<PermissionResponse, PermissionDeniedError>;
36
+ resolve: (promptId: string, response: PermissionResponse) => Effect.Effect<void>;
37
+ getFirstPending: () => Effect.Effect<PermissionPrompt | undefined>;
38
+ }, never, EventsHub>;
39
+ }>;
40
+ export declare const PermissionGateLiveLayer: Layer.Layer<PermissionGate, never, PermissionGateLive>;
41
+ //# sourceMappingURL=PermissionGateLive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PermissionGateLive.d.ts","sourceRoot":"","sources":["../../src/PermissionService/PermissionGateLive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAY,MAAM,EAAE,KAAK,EAAO,MAAM,QAAQ,CAAA;AACrD,OAAO,EAAE,SAAS,EAAc,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAOpG,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAA;IACxG,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzF,QAAQ,CAAC,eAAe,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAA;CAC5E;AAED,eAAO,MAAM,qBAAqB;;;0BAWL,gBAAgB,KAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;4BAqCzE,MAAM,YAAY,kBAAkB,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;+BAUzD,MAAM,CAAC,MAAM,CAAC,gBAAgB,GAAG,SAAS,CAAC;;EAUzE,CAAA;AAKF,eAAO,MAAM,uBAAuB,wDAGnC,CAAA"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @title PermissionGateLive — Deferred-based prompt flow
3
+ *
4
+ * One `Deferred<PermissionResponse>` per prompt.
5
+ *
6
+ * Flow:
7
+ * 1. API call fiber creates Deferred, stores in pending Map
8
+ * 2. Publishes PermissionRequired → SSE rebuilds payload with prompt
9
+ * 3. Fiber blocks on Deferred.await (up to 30s)
10
+ * 4. User clicks modal → POST /api/permissions/respond
11
+ * 5. HTTP handler calls resolve() → Deferred.succeed → fiber unblocks
12
+ * 6. Publishes PermissionResolved → SSE removes prompt from payload
13
+ *
14
+ * Multi-tab: Deferred.succeed is idempotent — first responder wins,
15
+ * second tab's POST is a no-op. Both see prompt disappear via SSE.
16
+ *
17
+ * Separate Effect.Service tag (not just PermissionGate) because the
18
+ * HTTP handler and SSE builder need `resolve` and `getFirstPending`
19
+ * which the abstract interface doesn't expose.
20
+ *
21
+ * @module
22
+ */
23
+ import { Deferred, Effect, Layer, Ref } from "effect";
24
+ import { EventsHub, RepoChange } from "../CacheService/EventsHub.js";
25
+ import { PermissionDeniedError } from "../Errors.js";
26
+ import { PermissionGate } from "./PermissionGate.js";
27
+ export const PermissionGateLiveTag = Effect.Service()("PermissionGateLive", {
28
+ // EventsHub needed to publish PermissionRequired/Resolved events
29
+ // that trigger SSE payload rebuilds
30
+ dependencies: [EventsHub.Default],
31
+ effect: Effect.gen(function* () {
32
+ const hub = yield* EventsHub;
33
+ // Map<promptId, { deferred, prompt }>. Concurrent-safe via Ref.
34
+ // Multiple prompts can be pending simultaneously (e.g. initial
35
+ // refresh triggers getCallerIdentity + listRepositories at once).
36
+ const pending = yield* Ref.make(new Map());
37
+ const request = (prompt) => Effect.gen(function* () {
38
+ const deferred = yield* Deferred.make();
39
+ yield* Ref.update(pending, (m) => new Map(m).set(prompt.id, { deferred, prompt }));
40
+ yield* hub.publish(RepoChange.PermissionRequired());
41
+ const response = yield* Deferred.await(deferred).pipe(Effect.timeout("30 seconds"), Effect.catchTag("TimeoutException", () => {
42
+ return Effect.gen(function* () {
43
+ yield* Ref.update(pending, (m) => {
44
+ const n = new Map(m);
45
+ n.delete(prompt.id);
46
+ return n;
47
+ });
48
+ yield* hub.publish(RepoChange.PermissionResolved());
49
+ return yield* new PermissionDeniedError({ operation: prompt.operation, reason: "timeout" });
50
+ });
51
+ }));
52
+ yield* Ref.update(pending, (m) => {
53
+ const n = new Map(m);
54
+ n.delete(prompt.id);
55
+ return n;
56
+ });
57
+ yield* hub.publish(RepoChange.PermissionResolved());
58
+ if (response === "deny") {
59
+ return yield* new PermissionDeniedError({ operation: prompt.operation, reason: "denied" });
60
+ }
61
+ return response;
62
+ });
63
+ // Called by POST /api/permissions/respond handler.
64
+ // Deferred.succeed is idempotent — second call is a no-op.
65
+ // This is how multi-tab "first responder wins" works.
66
+ const resolve = (promptId, response) => Ref.get(pending).pipe(Effect.flatMap((m) => {
67
+ const entry = m.get(promptId);
68
+ return entry ? Deferred.succeed(entry.deferred, response) : Effect.void;
69
+ }));
70
+ // For SSE payload builder — shows one prompt at a time (FIFO).
71
+ // Remaining prompts queue behind; they'll surface as each resolves.
72
+ const getFirstPending = () => Ref.get(pending).pipe(Effect.map((m) => {
73
+ const first = m.values().next();
74
+ return first.done ? undefined : first.value.prompt;
75
+ }));
76
+ return { request, resolve, getFirstPending };
77
+ })
78
+ });
79
+ // Bridge: concrete service → abstract Context.Tag.
80
+ // Handlers use PermissionGateLiveTag (for resolve/getFirstPending),
81
+ // AwsClientGated uses PermissionGate (for request only).
82
+ export const PermissionGateLiveLayer = Layer.effect(PermissionGate, Effect.map(PermissionGateLiveTag, (live) => ({ request: live.request })));
83
+ //# sourceMappingURL=PermissionGateLive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PermissionGateLive.js","sourceRoot":"","sources":["../../src/PermissionService/PermissionGateLive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @title PermissionService — permission state management
3
+ *
4
+ * Ref<Config> backed by `~/.codecommit/permissions.json`.
5
+ *
6
+ * On construction (Layer build time), reads the file
7
+ * into a Ref. All subsequent `check()` calls are O(1) Ref lookups — no disk
8
+ * I/O. Only `set()` mutates the Ref AND writes to disk (atomic: tmp → rename).
9
+ *
10
+ * Key invariant: an operation missing from the file defaults to `"allow"`,
11
+ * which means "prompt the user". A fresh install with empty permissions.json
12
+ * prompts for every API call — zero-trust by default.
13
+ *
14
+ * @module
15
+ */
16
+ import { FileSystem } from "@effect/platform";
17
+ import { Effect, Schema } from "effect";
18
+ import { allOperations, getOperationMeta, type OperationName, registerOperation } from "./operations.js";
19
+ export type { BuiltinOperation, OperationMeta, OperationName } from "./operations.js";
20
+ export { allOperations, getOperationMeta, registerOperation };
21
+ export declare const PermissionState: Schema.Literal<["always_allow", "allow", "deny"]>;
22
+ export type PermissionState = typeof PermissionState.Type;
23
+ declare const PermissionService_base: Effect.Service.Class<PermissionService, "PermissionService", {
24
+ readonly effect: Effect.Effect<{
25
+ check: (operation: OperationName) => Effect.Effect<PermissionState>;
26
+ set: (operation: OperationName, state: PermissionState) => Effect.Effect<void>;
27
+ getAll: () => Effect.Effect<Record<string, PermissionState>>;
28
+ resetAll: () => Effect.Effect<void>;
29
+ isAuditEnabled: () => Effect.Effect<boolean>;
30
+ getAuditRetention: () => Effect.Effect<number>;
31
+ setAudit: (opts: {
32
+ enabled?: boolean | undefined;
33
+ retentionDays?: number | undefined;
34
+ }) => Effect.Effect<void>;
35
+ }, never, FileSystem.FileSystem>;
36
+ }>;
37
+ export declare class PermissionService extends PermissionService_base {
38
+ }
39
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/PermissionService/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAU,MAAM,EAAO,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAExG,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACrF,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAA;AAK7D,eAAO,MAAM,eAAe,mDAAkD,CAAA;AAC9E,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;;;2BA6D3B,aAAa,KAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;yBAGhD,aAAa,SAAS,eAAe,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;sBAShE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;wBAG5C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;8BAMb,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;iCAEnB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;yBAI3C;YAAE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;YAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,KAC1E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;;AAzC1B,qBAAa,iBAAkB,SAAQ,sBAuDrC;CAAG"}