@shipfox/api-definitions 5.0.0 → 7.1.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 (93) hide show
  1. package/.turbo/turbo-build.log +11 -13
  2. package/CHANGELOG.md +49 -0
  3. package/dist/core/entities/workflow-definition.d.ts +2 -5
  4. package/dist/core/entities/workflow-definition.d.ts.map +1 -1
  5. package/dist/core/entities/workflow-definition.js.map +1 -1
  6. package/dist/core/entities/workflow-model.d.ts +1 -137
  7. package/dist/core/entities/workflow-model.d.ts.map +1 -1
  8. package/dist/core/entities/workflow-model.js.map +1 -1
  9. package/dist/core/integrations.d.ts +25 -0
  10. package/dist/core/integrations.d.ts.map +1 -0
  11. package/dist/core/integrations.js +30 -0
  12. package/dist/core/integrations.js.map +1 -0
  13. package/dist/core/sync-definitions.d.ts +2 -2
  14. package/dist/core/sync-definitions.d.ts.map +1 -1
  15. package/dist/core/sync-definitions.js +23 -14
  16. package/dist/core/sync-definitions.js.map +1 -1
  17. package/dist/core/workflow-model/constants.d.ts +1 -1
  18. package/dist/core/workflow-model/constants.d.ts.map +1 -1
  19. package/dist/core/workflow-model/constants.js +1 -1
  20. package/dist/core/workflow-model/constants.js.map +1 -1
  21. package/dist/core/workflow-model/normalize-job-checkout.d.ts +2 -2
  22. package/dist/core/workflow-model/normalize-job-checkout.d.ts.map +1 -1
  23. package/dist/core/workflow-model/normalize-job-checkout.js +2 -6
  24. package/dist/core/workflow-model/normalize-job-checkout.js.map +1 -1
  25. package/dist/core/workflow-model/normalize-job-success.d.ts +2 -1
  26. package/dist/core/workflow-model/normalize-job-success.d.ts.map +1 -1
  27. package/dist/core/workflow-model/normalize-job-success.js +2 -1
  28. package/dist/core/workflow-model/normalize-job-success.js.map +1 -1
  29. package/dist/db/db.d.ts +2 -2
  30. package/dist/db/schema/sync-states.d.ts +1 -1
  31. package/dist/index.d.ts +5 -7
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +10 -11
  34. package/dist/index.js.map +1 -1
  35. package/dist/presentation/index.d.ts +1 -1
  36. package/dist/presentation/index.d.ts.map +1 -1
  37. package/dist/presentation/index.js +1 -1
  38. package/dist/presentation/index.js.map +1 -1
  39. package/dist/presentation/inter-module.d.ts +4 -0
  40. package/dist/presentation/inter-module.d.ts.map +1 -0
  41. package/dist/presentation/inter-module.js +25 -0
  42. package/dist/presentation/inter-module.js.map +1 -0
  43. package/dist/presentation/routes/create-definition.d.ts +5 -6
  44. package/dist/presentation/routes/create-definition.d.ts.map +1 -1
  45. package/dist/presentation/routes/create-definition.js +7 -19
  46. package/dist/presentation/routes/create-definition.js.map +1 -1
  47. package/dist/presentation/routes/get-definition.d.ts +2 -1
  48. package/dist/presentation/routes/get-definition.d.ts.map +1 -1
  49. package/dist/presentation/routes/get-definition.js +26 -35
  50. package/dist/presentation/routes/get-definition.js.map +1 -1
  51. package/dist/presentation/routes/index.d.ts +1 -2
  52. package/dist/presentation/routes/index.d.ts.map +1 -1
  53. package/dist/presentation/routes/index.js +5 -6
  54. package/dist/presentation/routes/index.js.map +1 -1
  55. package/dist/presentation/routes/list-definitions.d.ts +2 -1
  56. package/dist/presentation/routes/list-definitions.d.ts.map +1 -1
  57. package/dist/presentation/routes/list-definitions.js +36 -45
  58. package/dist/presentation/routes/list-definitions.js.map +1 -1
  59. package/dist/presentation/routes/project-access.d.ts +10 -0
  60. package/dist/presentation/routes/project-access.d.ts.map +1 -0
  61. package/dist/presentation/routes/project-access.js +17 -0
  62. package/dist/presentation/routes/project-access.js.map +1 -0
  63. package/dist/temporal/activities/sync-activities.d.ts +3 -9
  64. package/dist/temporal/activities/sync-activities.d.ts.map +1 -1
  65. package/dist/temporal/activities/sync-activities.js +10 -14
  66. package/dist/temporal/activities/sync-activities.js.map +1 -1
  67. package/dist/temporal/workflows/index.bundle.js +17195 -3337
  68. package/dist/tsconfig.test.tsbuildinfo +1 -1
  69. package/package.json +16 -32
  70. package/src/core/entities/workflow-definition.ts +3 -6
  71. package/src/core/entities/workflow-model.ts +1 -162
  72. package/src/core/integrations.ts +39 -0
  73. package/src/core/sync-definitions.test.ts +19 -17
  74. package/src/core/sync-definitions.ts +26 -20
  75. package/src/core/workflow-model/constants.ts +1 -1
  76. package/src/core/workflow-model/normalize-job-checkout.ts +2 -5
  77. package/src/core/workflow-model/normalize-job-success.ts +2 -1
  78. package/src/db/definitions.test.ts +68 -7
  79. package/src/index.ts +12 -31
  80. package/src/presentation/index.ts +1 -1
  81. package/src/presentation/inter-module.ts +25 -0
  82. package/src/presentation/routes/create-definition.test.ts +59 -63
  83. package/src/presentation/routes/create-definition.ts +15 -34
  84. package/src/presentation/routes/get-definition.test.ts +14 -8
  85. package/src/presentation/routes/get-definition.ts +25 -28
  86. package/src/presentation/routes/index.test.ts +8 -1
  87. package/src/presentation/routes/index.ts +5 -7
  88. package/src/presentation/routes/list-definitions.test.ts +8 -7
  89. package/src/presentation/routes/list-definitions.ts +33 -36
  90. package/src/presentation/routes/project-access.ts +16 -0
  91. package/src/temporal/activities/sync-activities.test.ts +14 -6
  92. package/src/temporal/activities/sync-activities.ts +20 -33
  93. package/tsconfig.build.tsbuildinfo +1 -1
@@ -1,8 +1,5 @@
1
- import type {
2
- AgentToolSelectionCatalogs,
3
- IntegrationSourceControlService,
4
- LoadWorkspaceConnectionSnapshot,
5
- } from '@shipfox/api-integration-core';
1
+ import type {IntegrationsModuleClient} from '@shipfox/api-integration-core-dto';
2
+ import {markErrorReported} from '@shipfox/node-error-monitoring';
6
3
  import {Context} from '@temporalio/activity';
7
4
  import {ApplicationFailure} from '@temporalio/common';
8
5
  import type {DefinitionSyncErrorCode} from '#core/entities/sync-state.js';
@@ -13,6 +10,8 @@ import {
13
10
  resolveSyncSource,
14
11
  UNRESOLVED_SYNC_REF,
15
12
  } from '#core/index.js';
13
+ import type {DefinitionsSourceControl} from '#core/integrations.js';
14
+ import {loadIntegrationValidationContext} from '#core/integrations.js';
16
15
  import {applyVcsDefinitionsBatch, markDefinitionSyncState} from '#db/index.js';
17
16
 
18
17
  export interface SyncWorkflowInput {
@@ -52,29 +51,20 @@ export interface FetchAndApplyActivityResult {
52
51
  deletedCount: number;
53
52
  }
54
53
 
55
- export interface DefinitionSyncIntegrationValidationOptions {
56
- agentToolSelectionCatalogs: AgentToolSelectionCatalogs;
57
- loadWorkspaceConnectionSnapshot: LoadWorkspaceConnectionSnapshot;
58
- getIntegrationConnectionById: (id: string) => Promise<{slug: string} | undefined>;
59
- }
60
-
61
54
  export function createDefinitionSyncActivities(
62
- sourceControl: IntegrationSourceControlService,
63
- integrationValidation?: DefinitionSyncIntegrationValidationOptions | undefined,
55
+ sourceControl: DefinitionsSourceControl,
56
+ integrations?: IntegrationsModuleClient | undefined,
64
57
  ) {
65
58
  return {
66
59
  prepareDefinitionSync: createPrepareDefinitionSyncActivity(sourceControl),
67
60
  discoverDefinitionWorkflows: createDiscoverDefinitionWorkflowsActivity(sourceControl),
68
- fetchAndApplyDefinitionWorkflows: createFetchAndApplyActivity(
69
- sourceControl,
70
- integrationValidation,
71
- ),
61
+ fetchAndApplyDefinitionWorkflows: createFetchAndApplyActivity(sourceControl, integrations),
72
62
  markDefinitionSyncSucceeded: createMarkSyncSucceededActivity(),
73
63
  markDefinitionSyncFailed: createMarkSyncFailedActivity(),
74
64
  };
75
65
  }
76
66
 
77
- function createPrepareDefinitionSyncActivity(sourceControl: IntegrationSourceControlService) {
67
+ function createPrepareDefinitionSyncActivity(sourceControl: DefinitionsSourceControl) {
78
68
  return async function prepareDefinitionSync(
79
69
  input: SyncWorkflowInput,
80
70
  ): Promise<PrepareSyncResult> {
@@ -98,7 +88,7 @@ function createPrepareDefinitionSyncActivity(sourceControl: IntegrationSourceCon
98
88
  };
99
89
  }
100
90
 
101
- function createDiscoverDefinitionWorkflowsActivity(sourceControl: IntegrationSourceControlService) {
91
+ function createDiscoverDefinitionWorkflowsActivity(sourceControl: DefinitionsSourceControl) {
102
92
  return async function discoverDefinitionWorkflows(
103
93
  input: SyncRefScopedInput,
104
94
  ): Promise<DiscoverWorkflowsActivityResult> {
@@ -113,8 +103,8 @@ function createDiscoverDefinitionWorkflowsActivity(sourceControl: IntegrationSou
113
103
  }
114
104
 
115
105
  function createFetchAndApplyActivity(
116
- sourceControl: IntegrationSourceControlService,
117
- integrationValidation?: DefinitionSyncIntegrationValidationOptions | undefined,
106
+ sourceControl: DefinitionsSourceControl,
107
+ integrations?: IntegrationsModuleClient | undefined,
118
108
  ) {
119
109
  return async function fetchAndApplyDefinitionWorkflows(
120
110
  input: FetchAndApplyActivityInput,
@@ -126,18 +116,14 @@ function createFetchAndApplyActivity(
126
116
  sourceControl,
127
117
  onProgress: (path) => Context.current().heartbeat({path}),
128
118
  loadIntegrationValidationContext:
129
- integrationValidation === undefined
119
+ integrations === undefined
130
120
  ? undefined
131
121
  : async () => {
132
- const sourceConnection = await integrationValidation.getIntegrationConnectionById(
122
+ return await loadIntegrationValidationContext(
123
+ integrations,
124
+ input.workspaceId,
133
125
  input.sourceConnectionId,
134
126
  );
135
- return {
136
- agentToolSelectionCatalogs: integrationValidation.agentToolSelectionCatalogs,
137
- workspaceConnectionSnapshot:
138
- await integrationValidation.loadWorkspaceConnectionSnapshot(input.workspaceId),
139
- defaultConnectionSlug: sourceConnection?.slug,
140
- };
141
127
  },
142
128
  });
143
129
 
@@ -198,9 +184,10 @@ async function runWithPermanentTranslation<T>(operation: () => Promise<T>): Prom
198
184
  throw error;
199
185
  }
200
186
  const failure = classifySyncFailure(error);
201
- if (!failure.retryable) {
202
- throw ApplicationFailure.nonRetryable(failure.message, failure.code);
203
- }
204
- throw ApplicationFailure.retryable(failure.message, failure.code);
187
+ const translatedError = failure.retryable
188
+ ? ApplicationFailure.retryable(failure.message, failure.code)
189
+ : ApplicationFailure.nonRetryable(failure.message, failure.code);
190
+ if (failure.code !== 'unknown') markErrorReported(translatedError);
191
+ throw translatedError;
205
192
  }
206
193
  }