devchain-cli 0.22.0 → 0.23.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 (241) hide show
  1. package/dist/drizzle/0077_familiar_morbius.sql +6 -0
  2. package/dist/drizzle/0078_preserve_legacy_connection_ownership.sql +180 -0
  3. package/dist/drizzle/0079_premium_forgotten_one.sql +18 -0
  4. package/dist/drizzle/0080_lethal_thunderbolt_ross.sql +49 -0
  5. package/dist/drizzle/0081_early_kronos.sql +58 -0
  6. package/dist/drizzle/0082_huge_black_queen.sql +14 -0
  7. package/dist/drizzle/meta/0077_snapshot.json +6957 -0
  8. package/dist/drizzle/meta/0078_snapshot.json +6957 -0
  9. package/dist/drizzle/meta/0079_snapshot.json +7093 -0
  10. package/dist/drizzle/meta/0080_snapshot.json +7241 -0
  11. package/dist/drizzle/meta/0081_snapshot.json +7482 -0
  12. package/dist/drizzle/meta/0082_snapshot.json +7571 -0
  13. package/dist/drizzle/meta/_journal.json +42 -0
  14. package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
  15. package/dist/server/common/errors/error-types.d.ts +7 -0
  16. package/dist/server/common/errors/error-types.js +7 -1
  17. package/dist/server/common/errors/error-types.js.map +1 -1
  18. package/dist/server/modules/epic-time/controllers/agent-time-buffer.controller.d.ts +8 -0
  19. package/dist/server/modules/epic-time/controllers/agent-time-buffer.controller.js +67 -0
  20. package/dist/server/modules/epic-time/controllers/agent-time-buffer.controller.js.map +1 -0
  21. package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.d.ts +12 -0
  22. package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.js +322 -0
  23. package/dist/server/modules/epic-time/controllers/external-estimate-log.controller.js.map +1 -0
  24. package/dist/server/modules/epic-time/epic-time.module.js +14 -4
  25. package/dist/server/modules/epic-time/epic-time.module.js.map +1 -1
  26. package/dist/server/modules/epic-time/models/epic-time-daily-allocator.d.ts +30 -0
  27. package/dist/server/modules/epic-time/models/epic-time-daily-allocator.js +125 -0
  28. package/dist/server/modules/epic-time/models/epic-time-daily-allocator.js.map +1 -0
  29. package/dist/server/modules/epic-time/models/epic-time-local-day.d.ts +9 -0
  30. package/dist/server/modules/epic-time/models/epic-time-local-day.js +164 -0
  31. package/dist/server/modules/epic-time/models/epic-time-local-day.js.map +1 -0
  32. package/dist/server/modules/epic-time/models/epic-time.models.d.ts +138 -0
  33. package/dist/server/modules/epic-time/models/epic-time.models.js +2 -0
  34. package/dist/server/modules/epic-time/models/epic-time.models.js.map +1 -1
  35. package/dist/server/modules/epic-time/services/agent-time-accounting.service.d.ts +1 -0
  36. package/dist/server/modules/epic-time/services/agent-time-accounting.service.js +31 -8
  37. package/dist/server/modules/epic-time/services/agent-time-accounting.service.js.map +1 -1
  38. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.d.ts +37 -0
  39. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js +716 -0
  40. package/dist/server/modules/epic-time/services/epic-estimate-logging.service.js.map +1 -0
  41. package/dist/server/modules/epic-time/services/epic-time.service.d.ts +12 -3
  42. package/dist/server/modules/epic-time/services/epic-time.service.js +155 -69
  43. package/dist/server/modules/epic-time/services/epic-time.service.js.map +1 -1
  44. package/dist/server/modules/epic-time/services/epic-time.store.d.ts +29 -3
  45. package/dist/server/modules/epic-time/services/epic-time.store.js +524 -40
  46. package/dist/server/modules/epic-time/services/epic-time.store.js.map +1 -1
  47. package/dist/server/modules/epics/controllers/epics.controller.d.ts +10 -1
  48. package/dist/server/modules/epics/controllers/epics.controller.js +108 -2
  49. package/dist/server/modules/epics/controllers/epics.controller.js.map +1 -1
  50. package/dist/server/modules/epics/epics.module.js +8 -2
  51. package/dist/server/modules/epics/epics.module.js.map +1 -1
  52. package/dist/server/modules/epics/models/epic-relations.models.d.ts +34 -0
  53. package/dist/server/modules/epics/models/epic-relations.models.js +16 -0
  54. package/dist/server/modules/epics/models/epic-relations.models.js.map +1 -0
  55. package/dist/server/modules/epics/services/epic-relation-target-resolver.d.ts +8 -0
  56. package/dist/server/modules/epics/services/epic-relation-target-resolver.js +37 -0
  57. package/dist/server/modules/epics/services/epic-relation-target-resolver.js.map +1 -0
  58. package/dist/server/modules/epics/services/epic-relations.service.d.ts +52 -0
  59. package/dist/server/modules/epics/services/epic-relations.service.js +135 -0
  60. package/dist/server/modules/epics/services/epic-relations.service.js.map +1 -0
  61. package/dist/server/modules/epics/services/epics.service.d.ts +9 -2
  62. package/dist/server/modules/epics/services/epics.service.js +115 -11
  63. package/dist/server/modules/epics/services/epics.service.js.map +1 -1
  64. package/dist/server/modules/events/catalog/broadcast-registry.js +16 -0
  65. package/dist/server/modules/events/catalog/broadcast-registry.js.map +1 -1
  66. package/dist/server/modules/events/catalog/epic.relations.invalidated.d.ts +12 -0
  67. package/dist/server/modules/events/catalog/epic.relations.invalidated.js +13 -0
  68. package/dist/server/modules/events/catalog/epic.relations.invalidated.js.map +1 -0
  69. package/dist/server/modules/events/catalog/epic.time.scope.invalidated.d.ts +12 -0
  70. package/dist/server/modules/events/catalog/epic.time.scope.invalidated.js +13 -0
  71. package/dist/server/modules/events/catalog/epic.time.scope.invalidated.js.map +1 -0
  72. package/dist/server/modules/events/catalog/index.d.ts +27 -4
  73. package/dist/server/modules/events/catalog/index.js +6 -0
  74. package/dist/server/modules/events/catalog/index.js.map +1 -1
  75. package/dist/server/modules/events/catalog/integration.connection.created.d.ts +4 -1
  76. package/dist/server/modules/events/catalog/integration.connection.created.js +5 -2
  77. package/dist/server/modules/events/catalog/integration.connection.created.js.map +1 -1
  78. package/dist/server/modules/events/catalog/integration.connection.deleted.d.ts +4 -1
  79. package/dist/server/modules/events/catalog/integration.connection.deleted.js +5 -2
  80. package/dist/server/modules/events/catalog/integration.connection.deleted.js.map +1 -1
  81. package/dist/server/modules/events/catalog/integration.connection.legacy.d.ts +85 -0
  82. package/dist/server/modules/events/catalog/integration.connection.legacy.js +41 -0
  83. package/dist/server/modules/events/catalog/integration.connection.legacy.js.map +1 -0
  84. package/dist/server/modules/events/catalog/integration.connection.updated.d.ts +4 -1
  85. package/dist/server/modules/events/catalog/integration.connection.updated.js +5 -2
  86. package/dist/server/modules/events/catalog/integration.connection.updated.js.map +1 -1
  87. package/dist/server/modules/events/services/committed-event-replay.d.ts +10 -0
  88. package/dist/server/modules/events/services/committed-event-replay.js +30 -0
  89. package/dist/server/modules/events/services/committed-event-replay.js.map +1 -0
  90. package/dist/server/modules/events/services/committed-event.store.d.ts +1 -0
  91. package/dist/server/modules/events/services/committed-event.store.js +12 -7
  92. package/dist/server/modules/events/services/committed-event.store.js.map +1 -1
  93. package/dist/server/modules/events/services/durable-event-registry.service.d.ts +9 -2
  94. package/dist/server/modules/events/services/durable-event-registry.service.js.map +1 -1
  95. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.d.ts +7 -0
  96. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js +158 -50
  97. package/dist/server/modules/external-integrations/adapters/clickup-external-task.provider.js.map +1 -1
  98. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.d.ts +4 -0
  99. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js +73 -33
  100. package/dist/server/modules/external-integrations/adapters/jira-external-task.provider.js.map +1 -1
  101. package/dist/server/modules/external-integrations/connections/integration-connections.controller.d.ts +6 -3
  102. package/dist/server/modules/external-integrations/connections/integration-connections.controller.js +67 -12
  103. package/dist/server/modules/external-integrations/connections/integration-connections.controller.js.map +1 -1
  104. package/dist/server/modules/external-integrations/connections/integration-connections.service.d.ts +35 -3
  105. package/dist/server/modules/external-integrations/connections/integration-connections.service.js +178 -17
  106. package/dist/server/modules/external-integrations/connections/integration-connections.service.js.map +1 -1
  107. package/dist/server/modules/external-integrations/connections/managed-subtask-sync.controller.d.ts +6 -3
  108. package/dist/server/modules/external-integrations/connections/managed-subtask-sync.controller.js +51 -11
  109. package/dist/server/modules/external-integrations/connections/managed-subtask-sync.controller.js.map +1 -1
  110. package/dist/server/modules/external-integrations/external-integrations.module.js +6 -1
  111. package/dist/server/modules/external-integrations/external-integrations.module.js.map +1 -1
  112. package/dist/server/modules/external-integrations/models/external-edit-session.models.d.ts +1 -0
  113. package/dist/server/modules/external-integrations/models/external-provider.models.d.ts +6 -2
  114. package/dist/server/modules/external-integrations/models/external-provider.models.js +2 -3
  115. package/dist/server/modules/external-integrations/models/external-provider.models.js.map +1 -1
  116. package/dist/server/modules/external-integrations/models/external-time-mutation.models.d.ts +33 -2
  117. package/dist/server/modules/external-integrations/models/external-time-mutation.models.js +14 -0
  118. package/dist/server/modules/external-integrations/models/external-time-mutation.models.js.map +1 -1
  119. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.d.ts +10 -9
  120. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js +81 -46
  121. package/dist/server/modules/external-integrations/my-work/external-edit-session.service.js.map +1 -1
  122. package/dist/server/modules/external-integrations/my-work/external-my-work.controller.d.ts +22 -20
  123. package/dist/server/modules/external-integrations/my-work/external-my-work.controller.js +136 -64
  124. package/dist/server/modules/external-integrations/my-work/external-my-work.controller.js.map +1 -1
  125. package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.d.ts +7 -0
  126. package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.js +289 -4
  127. package/dist/server/modules/external-integrations/my-work/external-my-work.openapi.js.map +1 -1
  128. package/dist/server/modules/external-integrations/my-work/external-my-work.service.d.ts +12 -7
  129. package/dist/server/modules/external-integrations/my-work/external-my-work.service.js +114 -54
  130. package/dist/server/modules/external-integrations/my-work/external-my-work.service.js.map +1 -1
  131. package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.d.ts +19 -6
  132. package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js +346 -46
  133. package/dist/server/modules/external-integrations/my-work/external-time-mutation.service.js.map +1 -1
  134. package/dist/server/modules/external-integrations/sessions/external-edit-session.store.d.ts +2 -1
  135. package/dist/server/modules/external-integrations/sessions/external-edit-session.store.js +3 -2
  136. package/dist/server/modules/external-integrations/sessions/external-edit-session.store.js.map +1 -1
  137. package/dist/server/modules/external-integrations/sessions/external-time-mutation.store.d.ts +6 -1
  138. package/dist/server/modules/external-integrations/sessions/external-time-mutation.store.js +19 -0
  139. package/dist/server/modules/external-integrations/sessions/external-time-mutation.store.js.map +1 -1
  140. package/dist/server/modules/external-integrations/sessions/provider-operation-gate.d.ts +15 -2
  141. package/dist/server/modules/external-integrations/sessions/provider-operation-gate.js +33 -6
  142. package/dist/server/modules/external-integrations/sessions/provider-operation-gate.js.map +1 -1
  143. package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.d.ts +13 -6
  144. package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.js +212 -75
  145. package/dist/server/modules/external-integrations/subscribers/external-subtask-sync.subscriber.js.map +1 -1
  146. package/dist/server/modules/external-integrations/subscribers/managed-subtask-content.d.ts +13 -4
  147. package/dist/server/modules/external-integrations/subscribers/managed-subtask-content.js +98 -0
  148. package/dist/server/modules/external-integrations/subscribers/managed-subtask-content.js.map +1 -1
  149. package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.d.ts +10 -4
  150. package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.js +57 -18
  151. package/dist/server/modules/external-integrations/subscribers/managed-subtask-sync-health.service.js.map +1 -1
  152. package/dist/server/modules/mcp/dtos/mcp.dto.d.ts +139 -0
  153. package/dist/server/modules/mcp/dtos/mcp.dto.js +41 -1
  154. package/dist/server/modules/mcp/dtos/mcp.dto.js.map +1 -1
  155. package/dist/server/modules/mcp/services/handlers/epic-context.d.ts +2 -0
  156. package/dist/server/modules/mcp/services/handlers/epic-tools.d.ts +4 -0
  157. package/dist/server/modules/mcp/services/handlers/epic-tools.js +275 -0
  158. package/dist/server/modules/mcp/services/handlers/epic-tools.js.map +1 -1
  159. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.d.ts +2 -1
  160. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js +13 -8
  161. package/dist/server/modules/mcp/services/mcp-tool-binding.registry.js.map +1 -1
  162. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.d.ts +1 -1
  163. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js +1 -1
  164. package/dist/server/modules/mcp/services/testing/mcp-tool-binding-registry.fixture.js.map +1 -1
  165. package/dist/server/modules/mcp/tool-descriptors/binding-types.d.ts +2 -0
  166. package/dist/server/modules/mcp/tool-descriptors/binding-types.js.map +1 -1
  167. package/dist/server/modules/mcp/tool-descriptors/epic.bindings.js +6 -0
  168. package/dist/server/modules/mcp/tool-descriptors/epic.bindings.js.map +1 -1
  169. package/dist/server/modules/mcp/tool-descriptors/epic.metadata.js +132 -0
  170. package/dist/server/modules/mcp/tool-descriptors/epic.metadata.js.map +1 -1
  171. package/dist/server/modules/projects/controllers/projects.controller.js +1 -4
  172. package/dist/server/modules/projects/controllers/projects.controller.js.map +1 -1
  173. package/dist/server/modules/projects/projects.module.js +2 -0
  174. package/dist/server/modules/projects/projects.module.js.map +1 -1
  175. package/dist/server/modules/projects/services/projects.service.d.ts +4 -1
  176. package/dist/server/modules/projects/services/projects.service.js +23 -2
  177. package/dist/server/modules/projects/services/projects.service.js.map +1 -1
  178. package/dist/server/modules/providers/adapters/claude.adapter.d.ts +4 -2
  179. package/dist/server/modules/providers/adapters/claude.adapter.js +31 -0
  180. package/dist/server/modules/providers/adapters/claude.adapter.js.map +1 -1
  181. package/dist/server/modules/providers/services/provider-mcp-ensure.service.d.ts +7 -0
  182. package/dist/server/modules/providers/services/provider-mcp-ensure.service.js +69 -4
  183. package/dist/server/modules/providers/services/provider-mcp-ensure.service.js.map +1 -1
  184. package/dist/server/modules/session-reader/data/pricing.json +452 -56
  185. package/dist/server/modules/session-reader/services/session-reader.service.d.ts +2 -0
  186. package/dist/server/modules/session-reader/services/session-reader.service.js +85 -9
  187. package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -1
  188. package/dist/server/modules/session-reader/services/transcript-path-validator.service.js +8 -2
  189. package/dist/server/modules/session-reader/services/transcript-path-validator.service.js.map +1 -1
  190. package/dist/server/modules/session-reader/services/transcript-watcher.service.js +44 -17
  191. package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
  192. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.d.ts +1 -0
  193. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js +1 -0
  194. package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js.map +1 -1
  195. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js +11 -1
  196. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js.map +1 -1
  197. package/dist/server/modules/sessions/utils/claude-config.d.ts +4 -1
  198. package/dist/server/modules/sessions/utils/claude-config.js +265 -60
  199. package/dist/server/modules/sessions/utils/claude-config.js.map +1 -1
  200. package/dist/server/modules/storage/db/schema.d.ts +1109 -98
  201. package/dist/server/modules/storage/db/schema.js +141 -3
  202. package/dist/server/modules/storage/db/schema.js.map +1 -1
  203. package/dist/server/modules/storage/db/sqlite-json.d.ts +1 -0
  204. package/dist/server/modules/storage/db/sqlite-json.js +4 -0
  205. package/dist/server/modules/storage/db/sqlite-json.js.map +1 -1
  206. package/dist/server/modules/storage/interfaces/storage.interface.d.ts +58 -10
  207. package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
  208. package/dist/server/modules/storage/local/delegates/epic.delegate.d.ts +30 -5
  209. package/dist/server/modules/storage/local/delegates/epic.delegate.js +718 -14
  210. package/dist/server/modules/storage/local/delegates/epic.delegate.js.map +1 -1
  211. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.d.ts +52 -0
  212. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js +659 -0
  213. package/dist/server/modules/storage/local/delegates/external-estimate-log.delegate.js.map +1 -0
  214. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.d.ts +2 -1
  215. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js +17 -4
  216. package/dist/server/modules/storage/local/delegates/external-managed-subtask.delegate.js.map +1 -1
  217. package/dist/server/modules/storage/local/delegates/integration.delegate.d.ts +23 -8
  218. package/dist/server/modules/storage/local/delegates/integration.delegate.js +238 -52
  219. package/dist/server/modules/storage/local/delegates/integration.delegate.js.map +1 -1
  220. package/dist/server/modules/storage/local/delegates/project.delegate.d.ts +2 -0
  221. package/dist/server/modules/storage/local/delegates/project.delegate.js +180 -130
  222. package/dist/server/modules/storage/local/delegates/project.delegate.js.map +1 -1
  223. package/dist/server/modules/storage/local/local-storage.service.d.ts +45 -10
  224. package/dist/server/modules/storage/local/local-storage.service.js +99 -15
  225. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
  226. package/dist/server/modules/storage/models/domain.models.d.ts +170 -0
  227. package/dist/server/modules/storage/models/domain.models.js +9 -0
  228. package/dist/server/modules/storage/models/domain.models.js.map +1 -1
  229. package/dist/server/templates/teams-dev.json +311 -301
  230. package/dist/server/tsconfig.tsbuildinfo +1 -1
  231. package/dist/server/ui/assets/{ExternalRichEditor-DMtnZIMZ.js → ExternalRichEditor-BG9SopK8.js} +1 -1
  232. package/dist/server/ui/assets/{ReviewDetailPage-BmyiM5IR.js → ReviewDetailPage-DNo7Qx3m.js} +1 -1
  233. package/dist/server/ui/assets/{ReviewsPage-CQ87BMwT.js → ReviewsPage-Cay-IObR.js} +1 -1
  234. package/dist/server/ui/assets/index-C1Fdqua-.js +1197 -0
  235. package/dist/server/ui/assets/index-CV8ydm7w.css +32 -0
  236. package/dist/server/ui/assets/{useReviewSubscription-DjbEUzt4.js → useReviewSubscription-sAAfh4k9.js} +1 -1
  237. package/dist/server/ui/index.html +2 -2
  238. package/dist/templates/teams-dev.json +311 -301
  239. package/package.json +19 -2
  240. package/dist/server/ui/assets/index-BX6Yze-A.js +0 -1177
  241. package/dist/server/ui/assets/index-qoQEv_u4.css +0 -32
@@ -20,6 +20,7 @@ const external_task_provider_registry_1 = require("../external-task-provider.reg
20
20
  const external_edit_session_store_1 = require("../sessions/external-edit-session.store");
21
21
  const provider_operation_gate_1 = require("../sessions/provider-operation-gate");
22
22
  const events_service_1 = require("../../events/services/events.service");
23
+ const CONNECTION_DIRECTORY_PROJECT_LIMIT = 100;
23
24
  let IntegrationConnectionsService = class IntegrationConnectionsService {
24
25
  storage;
25
26
  providers;
@@ -33,8 +34,12 @@ let IntegrationConnectionsService = class IntegrationConnectionsService {
33
34
  this.editSessions = editSessions;
34
35
  this.eventsService = eventsService;
35
36
  }
36
- async listConnections() {
37
- const stored = await this.storage.listIntegrationConnections();
37
+ async listConnections(projectId) {
38
+ await this.requireProject(projectId);
39
+ const stored = await this.storage.listIntegrationConnections(projectId);
40
+ for (const connection of stored) {
41
+ this.assertConnectionScope(connection, projectId, connection.provider);
42
+ }
38
43
  const byProvider = new Map(stored.map((connection) => [connection.provider, connection]));
39
44
  return {
40
45
  items: this.providers
@@ -42,11 +47,106 @@ let IntegrationConnectionsService = class IntegrationConnectionsService {
42
47
  .map((provider) => this.toState(provider, byProvider.get(provider))),
43
48
  };
44
49
  }
50
+ async listDirectory() {
51
+ const [projectPage, workspaces, connections] = await Promise.all([
52
+ this.storage.listProjects({ limit: CONNECTION_DIRECTORY_PROJECT_LIMIT, offset: 0 }),
53
+ this.storage.listProjectWorkspaces(),
54
+ this.storage.listIntegrationConnections(),
55
+ ]);
56
+ const workspaceById = new Map(workspaces.map((workspace) => [workspace.id, workspace]));
57
+ const connectionByProjectProvider = new Map(connections
58
+ .filter((connection) => connection.projectId !== null)
59
+ .map((connection) => [
60
+ this.connectionMapKey(connection.projectId, connection.provider),
61
+ connection,
62
+ ]));
63
+ const projects = [...projectPage.items].sort((a, b) => a.workspaceId.localeCompare(b.workspaceId) ||
64
+ a.name.localeCompare(b.name) ||
65
+ a.id.localeCompare(b.id));
66
+ return {
67
+ items: projects.flatMap((project) => {
68
+ const workspace = workspaceById.get(project.workspaceId);
69
+ if (!workspace) {
70
+ throw new error_types_1.ValidationError('Project workspace scope is unavailable.', {
71
+ projectId: project.id,
72
+ workspaceId: project.workspaceId,
73
+ });
74
+ }
75
+ return this.providers.getSupportedProviders().map((provider) => {
76
+ const connection = connectionByProjectProvider.get(this.connectionMapKey(project.id, provider));
77
+ return {
78
+ project: { id: project.id, name: project.name },
79
+ workspace: { id: workspace.id, name: workspace.name },
80
+ provider,
81
+ configured: connection !== undefined,
82
+ updatedAt: connection?.updatedAt ?? null,
83
+ subtaskSyncEnabled: connection?.subtaskSyncEnabled ?? false,
84
+ hasMigratedSharedOrigin: connection !== undefined && connection.legacySourceConnectionId !== null,
85
+ };
86
+ });
87
+ }),
88
+ unassignedConnections: connections
89
+ .filter((connection) => connection.projectId === null)
90
+ .map((connection) => this.toState(connection.provider, connection)),
91
+ truncated: projectPage.total > projectPage.items.length,
92
+ };
93
+ }
94
+ async assignLegacyConnection(connectionId, projectId) {
95
+ await this.requireProject(projectId);
96
+ const legacy = await this.requireUnassignedConnection(connectionId);
97
+ const occupied = await this.getScopedConnection(projectId, legacy.provider);
98
+ if (occupied) {
99
+ throw new error_types_1.ConflictError('Project already has a connection for this provider.', {
100
+ projectId,
101
+ provider: legacy.provider,
102
+ });
103
+ }
104
+ return this.operationGate.run({ connectionId: legacy.id, provider: legacy.provider }, () => this.operationGate.run({ projectId, provider: legacy.provider }, async () => {
105
+ let prepared = null;
106
+ const assigned = await this.storage.assignUnassignedIntegrationConnection(legacy.id, projectId, (current, previous) => {
107
+ if (!this.eventsService) {
108
+ return null;
109
+ }
110
+ prepared = this.eventsService.prepareCommitted('integration.connection.updated', {
111
+ connectionId: current.id,
112
+ projectId: this.requireProjectId(current),
113
+ provider: current.provider,
114
+ previousGeneration: previous.generation,
115
+ generation: current.generation,
116
+ previousSubtaskSyncEnabled: previous.subtaskSyncEnabled,
117
+ subtaskSyncEnabled: current.subtaskSyncEnabled,
118
+ previousSyncSettingRevision: previous.syncSettingRevision,
119
+ syncSettingRevision: current.syncSettingRevision,
120
+ createdAt: current.createdAt,
121
+ updatedAt: current.updatedAt,
122
+ });
123
+ return prepared;
124
+ });
125
+ if (prepared) {
126
+ this.eventsService?.emitCommitted(prepared);
127
+ }
128
+ this.assertConnectionScope(assigned, projectId, legacy.provider);
129
+ return this.toState(legacy.provider, assigned);
130
+ }));
131
+ }
132
+ async disconnectLegacyConnection(connectionId, acknowledgeOrphanRisk = false) {
133
+ const legacy = await this.requireUnassignedConnection(connectionId);
134
+ return this.operationGate.run({ connectionId: legacy.id, provider: legacy.provider }, async () => {
135
+ await this.storage.disconnectUnassignedIntegrationConnection(legacy.id, undefined, {
136
+ acknowledgeOrphanRisk,
137
+ });
138
+ this.editSessions.invalidateConnection(legacy.id);
139
+ return this.toState(legacy.provider);
140
+ });
141
+ }
45
142
  async replaceConnection(input) {
46
- return this.operationGate.run(input.provider, async () => {
47
- const credentials = await this.resolveCredentials(input);
143
+ await this.requireProject(input.projectId);
144
+ return this.operationGate.run({ projectId: input.projectId, provider: input.provider }, async () => {
145
+ const existing = await this.getScopedConnection(input.projectId, input.provider);
146
+ const credentials = await this.resolveCredentials(input, existing);
48
147
  let prepared = null;
49
148
  const connection = await this.storage.replaceIntegrationConnection({
149
+ projectId: input.projectId,
50
150
  provider: input.provider,
51
151
  credentials,
52
152
  ...(input.subtaskSyncEnabled !== undefined
@@ -64,6 +164,7 @@ let IntegrationConnectionsService = class IntegrationConnectionsService {
64
164
  prepared = previous
65
165
  ? this.eventsService.prepareCommitted('integration.connection.updated', {
66
166
  connectionId: current.id,
167
+ projectId: this.requireProjectId(current),
67
168
  provider: current.provider,
68
169
  previousGeneration: previous.generation,
69
170
  generation: current.generation,
@@ -76,6 +177,7 @@ let IntegrationConnectionsService = class IntegrationConnectionsService {
76
177
  })
77
178
  : this.eventsService.prepareCommitted('integration.connection.created', {
78
179
  connectionId: current.id,
180
+ projectId: this.requireProjectId(current),
79
181
  provider: current.provider,
80
182
  generation: current.generation,
81
183
  subtaskSyncEnabled: current.subtaskSyncEnabled,
@@ -88,19 +190,24 @@ let IntegrationConnectionsService = class IntegrationConnectionsService {
88
190
  if (prepared) {
89
191
  this.eventsService?.emitCommitted(prepared);
90
192
  }
91
- this.editSessions.invalidateProvider(input.provider);
193
+ this.assertConnectionScope(connection, input.projectId, input.provider);
194
+ this.editSessions.invalidateConnection(connection.id);
92
195
  return this.toState(input.provider, connection);
93
196
  });
94
197
  }
95
- async disconnectConnection(provider, acknowledgeOrphanRisk = false) {
96
- return this.operationGate.run(provider, async () => {
198
+ async disconnectConnection(projectId, provider, acknowledgeOrphanRisk = false) {
199
+ await this.requireProject(projectId);
200
+ const existing = await this.requireScopedConnection(projectId, provider);
201
+ return this.operationGate.run({ projectId, provider }, async () => {
97
202
  let prepared = null;
98
- await this.storage.disconnectIntegrationConnection(provider, (connection) => {
203
+ await this.storage.disconnectIntegrationConnection({ projectId, provider }, (connection) => {
204
+ this.assertConnectionScope(connection, projectId, provider);
99
205
  if (!this.eventsService) {
100
206
  return null;
101
207
  }
102
208
  prepared = this.eventsService.prepareCommitted('integration.connection.deleted', {
103
209
  connectionId: connection.id,
210
+ projectId: this.requireProjectId(connection),
104
211
  provider: connection.provider,
105
212
  generation: connection.generation,
106
213
  subtaskSyncEnabled: connection.subtaskSyncEnabled,
@@ -112,19 +219,22 @@ let IntegrationConnectionsService = class IntegrationConnectionsService {
112
219
  if (prepared) {
113
220
  this.eventsService?.emitCommitted(prepared);
114
221
  }
115
- this.editSessions.invalidateProvider(provider);
222
+ this.editSessions.invalidateConnection(existing.id);
116
223
  return this.toState(provider);
117
224
  });
118
225
  }
119
- async updateSyncSettings(provider, input) {
120
- return this.operationGate.run(provider, async () => {
226
+ async updateSyncSettings(projectId, provider, input) {
227
+ await this.requireProject(projectId);
228
+ await this.requireScopedConnection(projectId, provider);
229
+ return this.operationGate.run({ projectId, provider }, async () => {
121
230
  let prepared = null;
122
- const connection = await this.storage.updateIntegrationConnectionSyncSetting(provider, input.subtaskSyncEnabled, (current, previous) => {
231
+ const connection = await this.storage.updateIntegrationConnectionSyncSetting({ projectId, provider }, input.subtaskSyncEnabled, (current, previous) => {
123
232
  if (!this.eventsService) {
124
233
  return null;
125
234
  }
126
235
  prepared = this.eventsService.prepareCommitted('integration.connection.updated', {
127
236
  connectionId: current.id,
237
+ projectId: this.requireProjectId(current),
128
238
  provider: current.provider,
129
239
  previousGeneration: previous.generation,
130
240
  generation: current.generation,
@@ -140,10 +250,11 @@ let IntegrationConnectionsService = class IntegrationConnectionsService {
140
250
  if (prepared) {
141
251
  this.eventsService?.emitCommitted(prepared);
142
252
  }
253
+ this.assertConnectionScope(connection, projectId, provider);
143
254
  return this.toState(provider, connection);
144
255
  });
145
256
  }
146
- async resolveCredentials(input) {
257
+ async resolveCredentials(input, existing) {
147
258
  if (input.provider === 'clickup') {
148
259
  return { provider: 'clickup', token: input.token };
149
260
  }
@@ -155,16 +266,25 @@ let IntegrationConnectionsService = class IntegrationConnectionsService {
155
266
  token: input.token,
156
267
  };
157
268
  }
158
- const existing = await this.storage.getIntegrationConnectionCredentials('jira');
159
- if (!existing || existing.provider !== 'jira') {
269
+ if (!existing) {
160
270
  throw new error_types_1.ValidationError('Jira site URL is required for an initial connection.', {
161
271
  field: 'siteUrl',
162
272
  });
163
273
  }
274
+ const existingCredentials = await this.storage.getIntegrationConnectionCredentials({
275
+ projectId: input.projectId,
276
+ provider: 'jira',
277
+ });
278
+ if (!existingCredentials || existingCredentials.provider !== 'jira') {
279
+ throw new error_types_1.ValidationError('Jira connection credentials are unavailable for this project.', {
280
+ projectId: input.projectId,
281
+ provider: 'jira',
282
+ });
283
+ }
164
284
  return {
165
285
  provider: 'jira',
166
- siteUrl: existing.siteUrl,
167
- email: existing.email,
286
+ siteUrl: existingCredentials.siteUrl,
287
+ email: existingCredentials.email,
168
288
  token: input.token,
169
289
  };
170
290
  }
@@ -179,6 +299,47 @@ let IntegrationConnectionsService = class IntegrationConnectionsService {
179
299
  updatedAt: connection?.updatedAt ?? null,
180
300
  };
181
301
  }
302
+ requireProjectId(connection) {
303
+ if (!connection.projectId) {
304
+ throw new error_types_1.ValidationError('Project-owned connection event requires project identity.');
305
+ }
306
+ return connection.projectId;
307
+ }
308
+ requireProject(projectId) {
309
+ return this.storage.getProject(projectId);
310
+ }
311
+ async getScopedConnection(projectId, provider) {
312
+ const connection = await this.storage.getIntegrationConnection({ projectId, provider });
313
+ if (connection) {
314
+ this.assertConnectionScope(connection, projectId, provider);
315
+ }
316
+ return connection;
317
+ }
318
+ async requireScopedConnection(projectId, provider) {
319
+ const connection = await this.getScopedConnection(projectId, provider);
320
+ if (!connection) {
321
+ throw new error_types_1.NotFoundError('Integration connection');
322
+ }
323
+ return connection;
324
+ }
325
+ async requireUnassignedConnection(connectionId) {
326
+ const connection = await this.storage.getIntegrationConnectionById(connectionId);
327
+ if (!connection || connection.projectId !== null) {
328
+ throw new error_types_1.NotFoundError('Unassigned integration connection', connectionId);
329
+ }
330
+ return connection;
331
+ }
332
+ assertConnectionScope(connection, projectId, provider) {
333
+ if (connection.projectId !== projectId || connection.provider !== provider) {
334
+ throw new error_types_1.ValidationError('Integration connection does not match the requested project.', {
335
+ projectId,
336
+ provider,
337
+ });
338
+ }
339
+ }
340
+ connectionMapKey(projectId, provider) {
341
+ return `${projectId}:${provider}`;
342
+ }
182
343
  };
183
344
  exports.IntegrationConnectionsService = IntegrationConnectionsService;
184
345
  exports.IntegrationConnectionsService = IntegrationConnectionsService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"integration-connections.service.js","sourceRoot":"","sources":["../../../../src/modules/external-integrations/connections/integration-connections.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,oEAAqE;AACrE,kFAAkG;AAMlG,wFAAkF;AAClF,yFAAmF;AACnF,iFAA4E;AAC5E,yEAAqE;AA8B9D,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IAEI;IACzB;IACA;IACA;IACY;IAL/B,YAC4C,OAAuB,EAChD,SAAuC,EACvC,aAAoC,EACpC,YAAsC,EAC1B,aAA6B;QAJhB,YAAO,GAAP,OAAO,CAAgB;QAChD,cAAS,GAAT,SAAS,CAA8B;QACvC,kBAAa,GAAb,aAAa,CAAuB;QACpC,iBAAY,GAAZ,YAAY,CAA0B;QAC1B,kBAAa,GAAb,aAAa,CAAgB;IACzD,CAAC;IAEJ,KAAK,CAAC,eAAe;QACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1F,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,SAAS;iBAClB,qBAAqB,EAAE;iBACvB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;SACvE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,KAA6B;QAGnD,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,QAAQ,GAED,IAAI,CAAC;YAChB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAChE;gBACE,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,WAAW;gBACX,GAAG,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS;oBACxC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE;oBAClD,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,KAAK,CAAC,qBAAqB,KAAK,SAAS;oBAC3C,CAAC,CAAC,EAAE,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,EAAE;oBACxD,CAAC,CAAC,EAAE,CAAC;aACR,EACD,KAAK,EAAE,SAAS,EAAE,EAAE;gBAClB,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC5E,CAAC,EACD,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;gBACpB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,QAAQ,GAAG,QAAQ;oBACjB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,gCAAgC,EAAE;wBACpE,YAAY,EAAE,OAAO,CAAC,EAAE;wBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,kBAAkB,EAAE,QAAQ,CAAC,UAAU;wBACvC,UAAU,EAAE,OAAO,CAAC,UAAU;wBAC9B,0BAA0B,EAAE,QAAQ,CAAC,kBAAkB;wBACvD,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;wBAC9C,2BAA2B,EAAE,QAAQ,CAAC,mBAAmB;wBACzD,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;wBAChD,SAAS,EAAE,OAAO,CAAC,SAAS;wBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;qBAC7B,CAAC;oBACJ,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,gCAAgC,EAAE;wBACpE,YAAY,EAAE,OAAO,CAAC,EAAE;wBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;wBAC9B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;wBAC9C,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;wBAChD,SAAS,EAAE,OAAO,CAAC,SAAS;wBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;qBAC7B,CAAC,CAAC;gBACP,OAAO,QAAQ,CAAC;YAClB,CAAC,CACF,CAAC;YACF,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,QAA6B,EAC7B,qBAAqB,GAAG,KAAK;QAE7B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YACjD,IAAI,QAAQ,GAA2D,IAAI,CAAC;YAC5E,MAAM,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAChD,QAAQ,EACR,CAAC,UAAU,EAAE,EAAE;gBACb,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,gCAAgC,EAAE;oBAC/E,YAAY,EAAE,UAAU,CAAC,EAAE;oBAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,UAAU,EAAE,UAAU,CAAC,UAAU;oBACjC,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;oBACjD,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;oBACnD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CAAC;gBACH,OAAO,QAAQ,CAAC;YAClB,CAAC,EACD,EAAE,qBAAqB,EAAE,CAC1B,CAAC;YACF,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,QAA6B,EAC7B,KAAsC;QAEtC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YACjD,IAAI,QAAQ,GAA2D,IAAI,CAAC;YAC5E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAC1E,QAAQ,EACR,KAAK,CAAC,kBAAkB,EACxB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;gBACpB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,gCAAgC,EAAE;oBAC/E,YAAY,EAAE,OAAO,CAAC,EAAE;oBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,kBAAkB,EAAE,QAAQ,CAAC,UAAU;oBACvC,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,0BAA0B,EAAE,QAAQ,CAAC,kBAAkB;oBACvD,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;oBAC9C,2BAA2B,EAAE,QAAQ,CAAC,mBAAmB;oBACzD,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;oBAChD,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC7B,CAAC,CAAC;gBACH,OAAO,QAAQ,CAAC;YAClB,CAAC,CACF,CAAC;YACF,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,KAA6B;QAC5D,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QACrD,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACjC,OAAO;gBACL,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,MAAM,CAAC,CAAC;QAChF,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC9C,MAAM,IAAI,6BAAe,CAAC,sDAAsD,EAAE;gBAChF,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;QACL,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC;IACJ,CAAC;IAEO,OAAO,CACb,QAA6B,EAC7B,UAAkC;QAElC,OAAO;YACL,QAAQ;YACR,SAAS,EAAE,UAAU,KAAK,SAAS;YACnC,YAAY,EAAE,UAAU,EAAE,EAAE,IAAI,IAAI;YACpC,UAAU,EAAE,UAAU,EAAE,UAAU,IAAI,IAAI;YAC1C,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,IAAI,KAAK;YAC3D,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,IAAI,IAAI;YAC5D,SAAS,EAAE,UAAU,EAAE,SAAS,IAAI,IAAI;SACzC,CAAC;IACJ,CAAC;CACF,CAAA;AA1LY,sEAA6B;wCAA7B,6BAA6B;IADzC,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,mCAAe,CAAC,CAAA;IAIvB,WAAA,IAAA,iBAAQ,GAAE,CAAA;6CAHiB,8DAA4B;QACxB,+CAAqB;QACtB,sDAAwB;QACV,8BAAa;GANjD,6BAA6B,CA0LzC"}
1
+ {"version":3,"file":"integration-connections.service.js","sourceRoot":"","sources":["../../../../src/modules/external-integrations/connections/integration-connections.service.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,10 @@ import { ManagedSubtaskSyncHealthService, type ManagedSubtaskSyncHealth } from '
2
2
  export declare class ManagedSubtaskSyncController {
3
3
  private readonly sync;
4
4
  constructor(sync: ManagedSubtaskSyncHealthService);
5
- getHealth(provider: string): Promise<ManagedSubtaskSyncHealth>;
6
- verify(provider: string, id: string, body: unknown): Promise<import("../subscribers/external-subtask-sync.subscriber").ManagedSubtaskReconcileResult>;
7
- retry(provider: string, id: string, body: unknown): Promise<import("../subscribers/external-subtask-sync.subscriber").ManagedSubtaskReconcileResult>;
5
+ getHealth(provider: string, projectId: unknown): Promise<ManagedSubtaskSyncHealth>;
6
+ getLegacyHealth(connectionId: string): Promise<ManagedSubtaskSyncHealth>;
7
+ verifyLegacy(connectionId: string, id: string, body: unknown): Promise<import("../subscribers/external-subtask-sync.subscriber").ManagedSubtaskReconcileResult>;
8
+ retryLegacy(connectionId: string, id: string, body: unknown): Promise<import("../subscribers/external-subtask-sync.subscriber").ManagedSubtaskReconcileResult>;
9
+ verify(provider: string, id: string, projectId: unknown, body: unknown): Promise<import("../subscribers/external-subtask-sync.subscriber").ManagedSubtaskReconcileResult>;
10
+ retry(provider: string, id: string, projectId: unknown, body: unknown): Promise<import("../subscribers/external-subtask-sync.subscriber").ManagedSubtaskReconcileResult>;
8
11
  }
@@ -20,6 +20,7 @@ const domain_models_1 = require("../../storage/models/domain.models");
20
20
  const request_validation_1 = require("../request-validation");
21
21
  const managed_subtask_sync_health_service_1 = require("../subscribers/managed-subtask-sync-health.service");
22
22
  const providerSchema = zod_1.z.enum(domain_models_1.INTEGRATION_PROVIDER_IDS);
23
+ const projectIdSchema = zod_1.z.string().uuid('projectId must be a valid UUID.');
23
24
  const idSchema = zod_1.z.string().uuid();
24
25
  const emptyBodySchema = zod_1.z.object({}).strict();
25
26
  let ManagedSubtaskSyncController = class ManagedSubtaskSyncController {
@@ -27,42 +28,81 @@ let ManagedSubtaskSyncController = class ManagedSubtaskSyncController {
27
28
  constructor(sync) {
28
29
  this.sync = sync;
29
30
  }
30
- getHealth(provider) {
31
- return this.sync.getHealth((0, request_validation_1.parseOrThrow)(providerSchema, provider, 'Invalid provider.'));
31
+ getHealth(provider, projectId) {
32
+ return this.sync.getHealth((0, request_validation_1.parseOrThrow)(projectIdSchema, projectId, 'Invalid project id.'), (0, request_validation_1.parseOrThrow)(providerSchema, provider, 'Invalid provider.'));
32
33
  }
33
- verify(provider, id, body) {
34
+ getLegacyHealth(connectionId) {
35
+ return this.sync.getLegacyHealth((0, request_validation_1.parseOrThrow)(idSchema, connectionId, 'Invalid connection id.'));
36
+ }
37
+ verifyLegacy(connectionId, id, body) {
34
38
  (0, request_validation_1.parseOrThrow)(emptyBodySchema, body, 'Verification request must be empty.');
35
- return this.sync.verify((0, request_validation_1.parseOrThrow)(providerSchema, provider, 'Invalid provider.'), (0, request_validation_1.parseOrThrow)(idSchema, id, 'Invalid managed subtask id.'));
39
+ return this.sync.verifyLegacy((0, request_validation_1.parseOrThrow)(idSchema, connectionId, 'Invalid connection id.'), (0, request_validation_1.parseOrThrow)(idSchema, id, 'Invalid managed subtask id.'));
36
40
  }
37
- retry(provider, id, body) {
41
+ retryLegacy(connectionId, id, body) {
38
42
  (0, request_validation_1.parseOrThrow)(emptyBodySchema, body, 'Retry request must be empty.');
39
- return this.sync.retry((0, request_validation_1.parseOrThrow)(providerSchema, provider, 'Invalid provider.'), (0, request_validation_1.parseOrThrow)(idSchema, id, 'Invalid managed subtask id.'));
43
+ return this.sync.retryLegacy((0, request_validation_1.parseOrThrow)(idSchema, connectionId, 'Invalid connection id.'), (0, request_validation_1.parseOrThrow)(idSchema, id, 'Invalid managed subtask id.'));
44
+ }
45
+ verify(provider, id, projectId, body) {
46
+ (0, request_validation_1.parseOrThrow)(emptyBodySchema, body, 'Verification request must be empty.');
47
+ return this.sync.verify((0, request_validation_1.parseOrThrow)(projectIdSchema, projectId, 'Invalid project id.'), (0, request_validation_1.parseOrThrow)(providerSchema, provider, 'Invalid provider.'), (0, request_validation_1.parseOrThrow)(idSchema, id, 'Invalid managed subtask id.'));
48
+ }
49
+ retry(provider, id, projectId, body) {
50
+ (0, request_validation_1.parseOrThrow)(emptyBodySchema, body, 'Retry request must be empty.');
51
+ return this.sync.retry((0, request_validation_1.parseOrThrow)(projectIdSchema, projectId, 'Invalid project id.'), (0, request_validation_1.parseOrThrow)(providerSchema, provider, 'Invalid provider.'), (0, request_validation_1.parseOrThrow)(idSchema, id, 'Invalid managed subtask id.'));
40
52
  }
41
53
  };
42
54
  exports.ManagedSubtaskSyncController = ManagedSubtaskSyncController;
43
55
  __decorate([
44
56
  (0, common_1.Get)(':provider/sync-health'),
45
57
  __param(0, (0, common_1.Param)('provider')),
58
+ __param(1, (0, common_1.Query)('projectId')),
46
59
  __metadata("design:type", Function),
47
- __metadata("design:paramtypes", [String]),
60
+ __metadata("design:paramtypes", [String, Object]),
48
61
  __metadata("design:returntype", Promise)
49
62
  ], ManagedSubtaskSyncController.prototype, "getHealth", null);
50
63
  __decorate([
51
- (0, common_1.Post)(':provider/managed-subtasks/:id/verification'),
52
- __param(0, (0, common_1.Param)('provider')),
64
+ (0, common_1.Get)('legacy/:connectionId/sync-health'),
65
+ __param(0, (0, common_1.Param)('connectionId')),
66
+ __metadata("design:type", Function),
67
+ __metadata("design:paramtypes", [String]),
68
+ __metadata("design:returntype", Promise)
69
+ ], ManagedSubtaskSyncController.prototype, "getLegacyHealth", null);
70
+ __decorate([
71
+ (0, common_1.Post)('legacy/:connectionId/managed-subtasks/:id/verification'),
72
+ __param(0, (0, common_1.Param)('connectionId')),
73
+ __param(1, (0, common_1.Param)('id')),
74
+ __param(2, (0, common_1.Body)()),
75
+ __metadata("design:type", Function),
76
+ __metadata("design:paramtypes", [String, String, Object]),
77
+ __metadata("design:returntype", void 0)
78
+ ], ManagedSubtaskSyncController.prototype, "verifyLegacy", null);
79
+ __decorate([
80
+ (0, common_1.Post)('legacy/:connectionId/managed-subtasks/:id/retry'),
81
+ __param(0, (0, common_1.Param)('connectionId')),
53
82
  __param(1, (0, common_1.Param)('id')),
54
83
  __param(2, (0, common_1.Body)()),
55
84
  __metadata("design:type", Function),
56
85
  __metadata("design:paramtypes", [String, String, Object]),
57
86
  __metadata("design:returntype", void 0)
87
+ ], ManagedSubtaskSyncController.prototype, "retryLegacy", null);
88
+ __decorate([
89
+ (0, common_1.Post)(':provider/managed-subtasks/:id/verification'),
90
+ __param(0, (0, common_1.Param)('provider')),
91
+ __param(1, (0, common_1.Param)('id')),
92
+ __param(2, (0, common_1.Query)('projectId')),
93
+ __param(3, (0, common_1.Body)()),
94
+ __metadata("design:type", Function),
95
+ __metadata("design:paramtypes", [String, String, Object, Object]),
96
+ __metadata("design:returntype", void 0)
58
97
  ], ManagedSubtaskSyncController.prototype, "verify", null);
59
98
  __decorate([
60
99
  (0, common_1.Post)(':provider/managed-subtasks/:id/retry'),
61
100
  __param(0, (0, common_1.Param)('provider')),
62
101
  __param(1, (0, common_1.Param)('id')),
63
- __param(2, (0, common_1.Body)()),
102
+ __param(2, (0, common_1.Query)('projectId')),
103
+ __param(3, (0, common_1.Body)()),
64
104
  __metadata("design:type", Function),
65
- __metadata("design:paramtypes", [String, String, Object]),
105
+ __metadata("design:paramtypes", [String, String, Object, Object]),
66
106
  __metadata("design:returntype", void 0)
67
107
  ], ManagedSubtaskSyncController.prototype, "retry", null);
68
108
  exports.ManagedSubtaskSyncController = ManagedSubtaskSyncController = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"managed-subtask-sync.controller.js","sourceRoot":"","sources":["../../../../src/modules/external-integrations/connections/managed-subtask-sync.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA+E;AAC/E,6BAAwB;AACxB,oGAA+F;AAC/F,sEAA8E;AAC9E,8DAAqD;AACrD,4GAG4D;AAE5D,MAAM,cAAc,GAAG,OAAC,CAAC,IAAI,CAAC,wCAAwB,CAAC,CAAC;AACxD,MAAM,QAAQ,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AACnC,MAAM,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAIvC,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IACV;IAA7B,YAA6B,IAAqC;QAArC,SAAI,GAAJ,IAAI,CAAiC;IAAG,CAAC;IAGtE,SAAS,CAAoB,QAAgB;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,iCAAY,EAAC,cAAc,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAC1F,CAAC;IAGD,MAAM,CAAoB,QAAgB,EAAe,EAAU,EAAU,IAAa;QACxF,IAAA,iCAAY,EAAC,eAAe,EAAE,IAAI,EAAE,qCAAqC,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CACrB,IAAA,iCAAY,EAAC,cAAc,EAAE,QAAQ,EAAE,mBAAmB,CAAC,EAC3D,IAAA,iCAAY,EAAC,QAAQ,EAAE,EAAE,EAAE,6BAA6B,CAAC,CAC1D,CAAC;IACJ,CAAC;IAGD,KAAK,CAAoB,QAAgB,EAAe,EAAU,EAAU,IAAa;QACvF,IAAA,iCAAY,EAAC,eAAe,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CACpB,IAAA,iCAAY,EAAC,cAAc,EAAE,QAAQ,EAAE,mBAAmB,CAAC,EAC3D,IAAA,iCAAY,EAAC,QAAQ,EAAE,EAAE,EAAE,6BAA6B,CAAC,CAC1D,CAAC;IACJ,CAAC;CACF,CAAA;AAzBY,oEAA4B;AAIvC;IADC,IAAA,YAAG,EAAC,uBAAuB,CAAC;IAClB,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;;;;6DAE3B;AAGD;IADC,IAAA,aAAI,EAAC,6CAA6C,CAAC;IAC5C,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IAAoB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,aAAI,GAAE,CAAA;;;;0DAM3E;AAGD;IADC,IAAA,aAAI,EAAC,sCAAsC,CAAC;IACtC,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IAAoB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,aAAI,GAAE,CAAA;;;;yDAM1E;uCAxBU,4BAA4B;IAFxC,IAAA,mBAAU,EAAC,8BAA8B,CAAC;IAC1C,IAAA,kBAAS,EAAC,uDAAyB,CAAC;qCAEA,qEAA+B;GADvD,4BAA4B,CAyBxC"}
1
+ {"version":3,"file":"managed-subtask-sync.controller.js","sourceRoot":"","sources":["../../../../src/modules/external-integrations/connections/managed-subtask-sync.controller.ts"],"names":[],"mappings":"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"}
@@ -66,7 +66,12 @@ exports.ExternalIntegrationsModule = ExternalIntegrationsModule = __decorate([
66
66
  external_subtask_sync_subscriber_1.ExternalSubtaskSyncSubscriber,
67
67
  managed_subtask_sync_health_service_1.ManagedSubtaskSyncHealthService,
68
68
  ],
69
- exports: [external_task_provider_registry_1.ExternalTaskProviderRegistry, external_task_provider_1.EXTERNAL_TASK_PROVIDERS, provider_operation_gate_1.ProviderOperationGate],
69
+ exports: [
70
+ external_task_provider_registry_1.ExternalTaskProviderRegistry,
71
+ external_task_provider_1.EXTERNAL_TASK_PROVIDERS,
72
+ provider_operation_gate_1.ProviderOperationGate,
73
+ external_time_mutation_service_1.ExternalTimeMutationService,
74
+ ],
70
75
  })
71
76
  ], ExternalIntegrationsModule);
72
77
  //# sourceMappingURL=external-integrations.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"external-integrations.module.js","sourceRoot":"","sources":["../../../src/modules/external-integrations/external-integrations.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,8FAAwF;AACxF,wFAAkF;AAClF,uFAAiF;AACjF,2EAAoG;AACpG,iFAA2E;AAC3E,8DAA0D;AAC1D,qEAAgE;AAChE,yGAAoG;AACpG,mGAA8F;AAC9F,uFAAiF;AACjF,iFAA2E;AAC3E,2FAAqF;AACrF,6FAAuF;AACvF,wFAAkF;AAClF,0FAAoF;AACpF,gFAA2E;AAC3E,oFAG6C;AAC7C,qGAA+F;AAC/F,2GAAoG;AACpG,mGAA6F;AA2CtF,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;CAAG,CAAA;AAA7B,gEAA0B;qCAA1B,0BAA0B;IAzCtC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,8BAAa,EAAE,qCAAgB,CAAC;QAC1C,WAAW,EAAE;YACX,qEAAgC;YAChC,8DAA4B;YAC5B,sDAAwB;SACzB;QACD,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,8CAAoB;gBAC7B,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,8CAAoB,EAAE;aAC7C;YACD,4DAA2B;YAC3B,sDAAwB;YACxB;gBACE,OAAO,EAAE,gDAAuB;gBAChC,MAAM,EAAE,CAAC,4DAA2B,EAAE,sDAAwB,CAAC;gBAC/D,UAAU,EAAE,CACV,OAAoC,EACpC,IAA8B,EACN,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC;aAC7C;YACD,8DAA4B;YAC5B;gBACE,OAAO,EAAE,6DAAgC;gBACzC,QAAQ,EAAE,uDAA0B;aACrC;YAGD,+CAAqB;YACrB,sDAAwB;YACxB,wDAAyB;YACzB,+DAA6B;YAC7B,gDAAqB;YACrB,0DAA0B;YAC1B,4DAA2B;YAC3B,gEAA6B;YAC7B,qEAA+B;SAChC;QACD,OAAO,EAAE,CAAC,8DAA4B,EAAE,gDAAuB,EAAE,+CAAqB,CAAC;KACxF,CAAC;GACW,0BAA0B,CAAG"}
1
+ {"version":3,"file":"external-integrations.module.js","sourceRoot":"","sources":["../../../src/modules/external-integrations/external-integrations.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,8FAAwF;AACxF,wFAAkF;AAClF,uFAAiF;AACjF,2EAAoG;AACpG,iFAA2E;AAC3E,8DAA0D;AAC1D,qEAAgE;AAChE,yGAAoG;AACpG,mGAA8F;AAC9F,uFAAiF;AACjF,iFAA2E;AAC3E,2FAAqF;AACrF,6FAAuF;AACvF,wFAAkF;AAClF,0FAAoF;AACpF,gFAA2E;AAC3E,oFAG6C;AAC7C,qGAA+F;AAC/F,2GAAoG;AACpG,mGAA6F;AAgDtF,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;CAAG,CAAA;AAA7B,gEAA0B;qCAA1B,0BAA0B;IA9CtC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,8BAAa,EAAE,qCAAgB,CAAC;QAC1C,WAAW,EAAE;YACX,qEAAgC;YAChC,8DAA4B;YAC5B,sDAAwB;SACzB;QACD,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,8CAAoB;gBAC7B,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,8CAAoB,EAAE;aAC7C;YACD,4DAA2B;YAC3B,sDAAwB;YACxB;gBACE,OAAO,EAAE,gDAAuB;gBAChC,MAAM,EAAE,CAAC,4DAA2B,EAAE,sDAAwB,CAAC;gBAC/D,UAAU,EAAE,CACV,OAAoC,EACpC,IAA8B,EACN,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC;aAC7C;YACD,8DAA4B;YAC5B;gBACE,OAAO,EAAE,6DAAgC;gBACzC,QAAQ,EAAE,uDAA0B;aACrC;YAGD,+CAAqB;YACrB,sDAAwB;YACxB,wDAAyB;YACzB,+DAA6B;YAC7B,gDAAqB;YACrB,0DAA0B;YAC1B,4DAA2B;YAC3B,gEAA6B;YAC7B,qEAA+B;SAChC;QACD,OAAO,EAAE;YACP,8DAA4B;YAC5B,gDAAuB;YACvB,+CAAqB;YACrB,4DAA2B;SAC5B;KACF,CAAC;GACW,0BAA0B,CAAG"}
@@ -23,6 +23,7 @@ export interface ExternalEditSession {
23
23
  sessionId: string;
24
24
  kind: ExternalEditSessionKind;
25
25
  provider: IntegrationProvider;
26
+ projectId: string;
26
27
  connectionId: string;
27
28
  connectionGeneration: number;
28
29
  scopeKey: string;
@@ -13,8 +13,7 @@ export declare const MAX_TASK_COMMENT_ID_LENGTH = 256;
13
13
  export declare const MAX_TASK_COMMENT_CURSOR_LENGTH = 1024;
14
14
  export declare const MAX_EXTERNAL_SUBTASK_TITLE_LENGTH = 255;
15
15
  export declare const MAX_EXTERNAL_SUBTASK_DESCRIPTION_LENGTH = 65536;
16
- export declare const MAX_EXTERNAL_SUBTASK_OWNERSHIP_TOKEN_LENGTH = 256;
17
- export declare const EXTERNAL_SUBTASK_MANAGEMENT_NOTE = "Managed by DevChain. Update or delete this subtask in DevChain; remote changes are not imported.";
16
+ export declare const EXTERNAL_SUBTASK_SOURCE_ID_PATTERN: RegExp;
18
17
  export declare const TIME_ENTRY_HISTORY_WINDOW_DAYS = 30;
19
18
  export declare const MAX_TIME_ENTRY_HISTORY_ENTRIES = 100;
20
19
  export interface ExternalProviderAccount {
@@ -180,6 +179,7 @@ export interface ExternalTaskTimeEntry {
180
179
  startedAt: string;
181
180
  note: string | null;
182
181
  noteTruncated: boolean;
182
+ canEdit: boolean;
183
183
  canDelete: boolean;
184
184
  }
185
185
  export interface ExternalTaskTimeEntryHistory {
@@ -203,6 +203,7 @@ export interface ExternalTaskLinkStateSummary extends ExternalTaskLinkLookupInpu
203
203
  epicId: string | null;
204
204
  projectId: string | null;
205
205
  projectName: string | null;
206
+ loggedMinutes: number | null;
206
207
  }
207
208
  export interface ExternalTaskSourceSummary {
208
209
  provider: IntegrationProvider;
@@ -251,6 +252,7 @@ export interface ExternalTimeEntryExactRead {
251
252
  remoteId: string;
252
253
  startedAt: string;
253
254
  durationMs: number;
255
+ note: string | null;
254
256
  owned: boolean;
255
257
  }
256
258
  export interface ExternalTimeEntryRangeIds {
@@ -262,10 +264,12 @@ export interface ExternalTimeEntryCreateProof {
262
264
  }
263
265
  export interface ExternalTimeEntryMutationsCapability {
264
266
  createTimeEntry(credentials: IntegrationCredentials, context: ExternalProviderConnectionContext, remoteTaskId: string, input: ExternalTaskTimeEntryInput): Promise<ExternalTimeEntryCreateProof>;
267
+ updateTimeEntry(credentials: IntegrationCredentials, context: ExternalProviderConnectionContext, remoteTaskId: string, remoteEntryId: string, input: ExternalTaskTimeEntryInput): Promise<void>;
265
268
  deleteTimeEntry(credentials: IntegrationCredentials, context: ExternalProviderConnectionContext, remoteTaskId: string, remoteEntryId: string): Promise<void>;
266
269
  readTimeEntryExact(credentials: IntegrationCredentials, context: ExternalProviderConnectionContext, remoteTaskId: string, remoteEntryId: string): Promise<ExternalTimeEntryExactRead | null>;
267
270
  listOwnTimeEntryIdsInRange(credentials: IntegrationCredentials, context: ExternalProviderConnectionContext, remoteTaskId: string, startedAfterMs: number, startedBeforeMs: number): Promise<ExternalTimeEntryRangeIds>;
268
271
  assertTimeEntryDeletable(credentials: IntegrationCredentials, context: ExternalProviderConnectionContext, remoteTaskId: string, remoteEntryId: string): Promise<void>;
272
+ assertTimeEntryEditable(credentials: IntegrationCredentials, context: ExternalProviderConnectionContext, remoteTaskId: string, remoteEntryId: string): Promise<ExternalTimeEntryExactRead>;
269
273
  }
270
274
  export interface ExternalSubtaskOwnershipProof {
271
275
  remoteTaskId: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MAX_TIME_ENTRY_HISTORY_ENTRIES = exports.TIME_ENTRY_HISTORY_WINDOW_DAYS = exports.EXTERNAL_SUBTASK_MANAGEMENT_NOTE = exports.MAX_EXTERNAL_SUBTASK_OWNERSHIP_TOKEN_LENGTH = exports.MAX_EXTERNAL_SUBTASK_DESCRIPTION_LENGTH = exports.MAX_EXTERNAL_SUBTASK_TITLE_LENGTH = exports.MAX_TASK_COMMENT_CURSOR_LENGTH = exports.MAX_TASK_COMMENT_ID_LENGTH = exports.MAX_TASK_COMMENT_AUTHOR_LENGTH = exports.MAX_TASK_COMMENT_BODY_LENGTH = exports.MAX_TASK_DETAIL_SUBTASKS = exports.MAX_TASK_DETAIL_TEXT_LENGTH = exports.MAX_TIME_ENTRY_DURATION_MS = exports.MAX_TIME_ENTRY_NOTE_LENGTH = exports.MAX_COMMENT_LENGTH = exports.MAX_STATUS_LENGTH = exports.MAX_REMOTE_TASK_ID_LENGTH = void 0;
3
+ exports.MAX_TIME_ENTRY_HISTORY_ENTRIES = exports.TIME_ENTRY_HISTORY_WINDOW_DAYS = exports.EXTERNAL_SUBTASK_SOURCE_ID_PATTERN = exports.MAX_EXTERNAL_SUBTASK_DESCRIPTION_LENGTH = exports.MAX_EXTERNAL_SUBTASK_TITLE_LENGTH = exports.MAX_TASK_COMMENT_CURSOR_LENGTH = exports.MAX_TASK_COMMENT_ID_LENGTH = exports.MAX_TASK_COMMENT_AUTHOR_LENGTH = exports.MAX_TASK_COMMENT_BODY_LENGTH = exports.MAX_TASK_DETAIL_SUBTASKS = exports.MAX_TASK_DETAIL_TEXT_LENGTH = exports.MAX_TIME_ENTRY_DURATION_MS = exports.MAX_TIME_ENTRY_NOTE_LENGTH = exports.MAX_COMMENT_LENGTH = exports.MAX_STATUS_LENGTH = exports.MAX_REMOTE_TASK_ID_LENGTH = void 0;
4
4
  exports.MAX_REMOTE_TASK_ID_LENGTH = 256;
5
5
  exports.MAX_STATUS_LENGTH = 256;
6
6
  exports.MAX_COMMENT_LENGTH = 10_000;
@@ -14,8 +14,7 @@ exports.MAX_TASK_COMMENT_ID_LENGTH = 256;
14
14
  exports.MAX_TASK_COMMENT_CURSOR_LENGTH = 1_024;
15
15
  exports.MAX_EXTERNAL_SUBTASK_TITLE_LENGTH = 255;
16
16
  exports.MAX_EXTERNAL_SUBTASK_DESCRIPTION_LENGTH = 65_536;
17
- exports.MAX_EXTERNAL_SUBTASK_OWNERSHIP_TOKEN_LENGTH = 256;
18
- exports.EXTERNAL_SUBTASK_MANAGEMENT_NOTE = 'Managed by DevChain. Update or delete this subtask in DevChain; remote changes are not imported.';
17
+ exports.EXTERNAL_SUBTASK_SOURCE_ID_PATTERN = /^[0-9a-f]{8}$/;
19
18
  exports.TIME_ENTRY_HISTORY_WINDOW_DAYS = 30;
20
19
  exports.MAX_TIME_ENTRY_HISTORY_ENTRIES = 100;
21
20
  //# sourceMappingURL=external-provider.models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"external-provider.models.js","sourceRoot":"","sources":["../../../../src/modules/external-integrations/models/external-provider.models.ts"],"names":[],"mappings":";;;AAMa,QAAA,yBAAyB,GAAG,GAAG,CAAC;AAChC,QAAA,iBAAiB,GAAG,GAAG,CAAC;AACxB,QAAA,kBAAkB,GAAG,MAAM,CAAC;AAC5B,QAAA,0BAA0B,GAAG,MAAM,CAAC;AACpC,QAAA,0BAA0B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;AACtD,QAAA,2BAA2B,GAAG,MAAM,CAAC;AACrC,QAAA,wBAAwB,GAAG,GAAG,CAAC;AAC/B,QAAA,4BAA4B,GAAG,KAAK,CAAC;AACrC,QAAA,8BAA8B,GAAG,GAAG,CAAC;AACrC,QAAA,0BAA0B,GAAG,GAAG,CAAC;AACjC,QAAA,8BAA8B,GAAG,KAAK,CAAC;AACvC,QAAA,iCAAiC,GAAG,GAAG,CAAC;AACxC,QAAA,uCAAuC,GAAG,MAAM,CAAC;AACjD,QAAA,2CAA2C,GAAG,GAAG,CAAC;AAClD,QAAA,gCAAgC,GAC3C,kGAAkG,CAAC;AACxF,QAAA,8BAA8B,GAAG,EAAE,CAAC;AACpC,QAAA,8BAA8B,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"external-provider.models.js","sourceRoot":"","sources":["../../../../src/modules/external-integrations/models/external-provider.models.ts"],"names":[],"mappings":";;;AAMa,QAAA,yBAAyB,GAAG,GAAG,CAAC;AAChC,QAAA,iBAAiB,GAAG,GAAG,CAAC;AACxB,QAAA,kBAAkB,GAAG,MAAM,CAAC;AAC5B,QAAA,0BAA0B,GAAG,MAAM,CAAC;AACpC,QAAA,0BAA0B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;AACtD,QAAA,2BAA2B,GAAG,MAAM,CAAC;AACrC,QAAA,wBAAwB,GAAG,GAAG,CAAC;AAC/B,QAAA,4BAA4B,GAAG,KAAK,CAAC;AACrC,QAAA,8BAA8B,GAAG,GAAG,CAAC;AACrC,QAAA,0BAA0B,GAAG,GAAG,CAAC;AACjC,QAAA,8BAA8B,GAAG,KAAK,CAAC;AACvC,QAAA,iCAAiC,GAAG,GAAG,CAAC;AACxC,QAAA,uCAAuC,GAAG,MAAM,CAAC;AAKjD,QAAA,kCAAkC,GAAG,eAAe,CAAC;AACrD,QAAA,8BAA8B,GAAG,EAAE,CAAC;AACpC,QAAA,8BAA8B,GAAG,GAAG,CAAC"}