@contractspec/example.integration-hub 1.56.1 → 1.58.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 (191) hide show
  1. package/README.md +9 -19
  2. package/dist/browser/connection/connection.enum.js +12 -0
  3. package/dist/browser/connection/connection.operation.js +101 -0
  4. package/dist/browser/connection/connection.presentation.js +99 -0
  5. package/dist/browser/connection/connection.schema.js +48 -0
  6. package/dist/browser/connection/index.js +104 -0
  7. package/dist/browser/docs/index.js +104 -0
  8. package/dist/browser/docs/integration-hub.docblock.js +104 -0
  9. package/dist/browser/events.js +211 -0
  10. package/dist/browser/example.js +42 -0
  11. package/dist/browser/handlers/index.js +246 -0
  12. package/dist/browser/handlers/integration.handlers.js +246 -0
  13. package/dist/browser/index.js +1595 -0
  14. package/dist/browser/integration/index.js +92 -0
  15. package/dist/browser/integration/integration.enum.js +12 -0
  16. package/dist/browser/integration/integration.operations.js +89 -0
  17. package/dist/browser/integration/integration.presentation.js +117 -0
  18. package/dist/browser/integration/integration.schema.js +42 -0
  19. package/dist/browser/integration-hub.capability.js +40 -0
  20. package/dist/browser/integration-hub.feature.js +114 -0
  21. package/dist/browser/seeders/index.js +60 -0
  22. package/dist/browser/sync/index.js +332 -0
  23. package/dist/browser/sync/sync.enum.js +26 -0
  24. package/dist/browser/sync/sync.operations.js +321 -0
  25. package/dist/browser/sync/sync.presentation.js +298 -0
  26. package/dist/browser/sync/sync.schema.js +154 -0
  27. package/dist/browser/sync-engine/index.js +186 -0
  28. package/dist/browser/tests/operations.test-spec.js +85 -0
  29. package/dist/browser/ui/IntegrationDashboard.js +369 -0
  30. package/dist/browser/ui/hooks/index.js +57 -0
  31. package/dist/browser/ui/hooks/useIntegrationData.js +54 -0
  32. package/dist/browser/ui/index.js +644 -0
  33. package/dist/browser/ui/renderers/index.js +273 -0
  34. package/dist/browser/ui/renderers/integration.markdown.js +273 -0
  35. package/dist/connection/connection.enum.d.ts +1 -6
  36. package/dist/connection/connection.enum.d.ts.map +1 -1
  37. package/dist/connection/connection.enum.js +11 -15
  38. package/dist/connection/connection.operation.d.ts +78 -84
  39. package/dist/connection/connection.operation.d.ts.map +1 -1
  40. package/dist/connection/connection.operation.js +99 -60
  41. package/dist/connection/connection.presentation.d.ts +2 -7
  42. package/dist/connection/connection.presentation.d.ts.map +1 -1
  43. package/dist/connection/connection.presentation.js +96 -56
  44. package/dist/connection/connection.schema.d.ts +54 -59
  45. package/dist/connection/connection.schema.d.ts.map +1 -1
  46. package/dist/connection/connection.schema.js +46 -73
  47. package/dist/connection/index.d.ts +7 -4
  48. package/dist/connection/index.d.ts.map +1 -0
  49. package/dist/connection/index.js +104 -4
  50. package/dist/docs/index.d.ts +2 -1
  51. package/dist/docs/index.d.ts.map +1 -0
  52. package/dist/docs/index.js +105 -1
  53. package/dist/docs/integration-hub.docblock.d.ts +2 -1
  54. package/dist/docs/integration-hub.docblock.d.ts.map +1 -0
  55. package/dist/docs/integration-hub.docblock.js +46 -56
  56. package/dist/events.d.ts +137 -143
  57. package/dist/events.d.ts.map +1 -1
  58. package/dist/events.js +210 -287
  59. package/dist/example.d.ts +2 -6
  60. package/dist/example.d.ts.map +1 -1
  61. package/dist/example.js +40 -55
  62. package/dist/handlers/index.d.ts +2 -2
  63. package/dist/handlers/index.d.ts.map +1 -0
  64. package/dist/handlers/index.js +247 -3
  65. package/dist/handlers/integration.handlers.d.ts +114 -114
  66. package/dist/handlers/integration.handlers.d.ts.map +1 -1
  67. package/dist/handlers/integration.handlers.js +232 -267
  68. package/dist/index.d.ts +12 -19
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +1596 -20
  71. package/dist/integration/index.d.ts +7 -4
  72. package/dist/integration/index.d.ts.map +1 -0
  73. package/dist/integration/index.js +92 -4
  74. package/dist/integration/integration.enum.d.ts +1 -6
  75. package/dist/integration/integration.enum.d.ts.map +1 -1
  76. package/dist/integration/integration.enum.js +11 -15
  77. package/dist/integration/integration.operations.d.ts +74 -80
  78. package/dist/integration/integration.operations.d.ts.map +1 -1
  79. package/dist/integration/integration.operations.js +87 -54
  80. package/dist/integration/integration.presentation.d.ts +3 -8
  81. package/dist/integration/integration.presentation.d.ts.map +1 -1
  82. package/dist/integration/integration.presentation.js +114 -73
  83. package/dist/integration/integration.schema.d.ts +54 -59
  84. package/dist/integration/integration.schema.d.ts.map +1 -1
  85. package/dist/integration/integration.schema.js +40 -73
  86. package/dist/integration-hub.capability.d.ts +3 -8
  87. package/dist/integration-hub.capability.d.ts.map +1 -1
  88. package/dist/integration-hub.capability.js +41 -38
  89. package/dist/integration-hub.feature.d.ts +1 -6
  90. package/dist/integration-hub.feature.d.ts.map +1 -1
  91. package/dist/integration-hub.feature.js +113 -242
  92. package/dist/node/connection/connection.enum.js +12 -0
  93. package/dist/node/connection/connection.operation.js +101 -0
  94. package/dist/node/connection/connection.presentation.js +99 -0
  95. package/dist/node/connection/connection.schema.js +48 -0
  96. package/dist/node/connection/index.js +104 -0
  97. package/dist/node/docs/index.js +104 -0
  98. package/dist/node/docs/integration-hub.docblock.js +104 -0
  99. package/dist/node/events.js +211 -0
  100. package/dist/node/example.js +42 -0
  101. package/dist/node/handlers/index.js +246 -0
  102. package/dist/node/handlers/integration.handlers.js +246 -0
  103. package/dist/node/index.js +1595 -0
  104. package/dist/node/integration/index.js +92 -0
  105. package/dist/node/integration/integration.enum.js +12 -0
  106. package/dist/node/integration/integration.operations.js +89 -0
  107. package/dist/node/integration/integration.presentation.js +117 -0
  108. package/dist/node/integration/integration.schema.js +42 -0
  109. package/dist/node/integration-hub.capability.js +40 -0
  110. package/dist/node/integration-hub.feature.js +114 -0
  111. package/dist/node/seeders/index.js +60 -0
  112. package/dist/node/sync/index.js +332 -0
  113. package/dist/node/sync/sync.enum.js +26 -0
  114. package/dist/node/sync/sync.operations.js +321 -0
  115. package/dist/node/sync/sync.presentation.js +298 -0
  116. package/dist/node/sync/sync.schema.js +154 -0
  117. package/dist/node/sync-engine/index.js +186 -0
  118. package/dist/node/tests/operations.test-spec.js +85 -0
  119. package/dist/node/ui/IntegrationDashboard.js +369 -0
  120. package/dist/node/ui/hooks/index.js +57 -0
  121. package/dist/node/ui/hooks/useIntegrationData.js +54 -0
  122. package/dist/node/ui/index.js +644 -0
  123. package/dist/node/ui/renderers/index.js +273 -0
  124. package/dist/node/ui/renderers/integration.markdown.js +273 -0
  125. package/dist/seeders/index.d.ts +4 -8
  126. package/dist/seeders/index.d.ts.map +1 -1
  127. package/dist/seeders/index.js +58 -16
  128. package/dist/sync/index.d.ts +7 -4
  129. package/dist/sync/index.d.ts.map +1 -0
  130. package/dist/sync/index.js +332 -4
  131. package/dist/sync/sync.enum.d.ts +3 -8
  132. package/dist/sync/sync.enum.d.ts.map +1 -1
  133. package/dist/sync/sync.enum.js +23 -31
  134. package/dist/sync/sync.operations.d.ts +413 -419
  135. package/dist/sync/sync.operations.d.ts.map +1 -1
  136. package/dist/sync/sync.operations.js +316 -197
  137. package/dist/sync/sync.presentation.d.ts +6 -11
  138. package/dist/sync/sync.presentation.d.ts.map +1 -1
  139. package/dist/sync/sync.presentation.js +291 -160
  140. package/dist/sync/sync.schema.d.ts +317 -322
  141. package/dist/sync/sync.schema.d.ts.map +1 -1
  142. package/dist/sync/sync.schema.js +146 -295
  143. package/dist/sync-engine/index.d.ts +88 -91
  144. package/dist/sync-engine/index.d.ts.map +1 -1
  145. package/dist/sync-engine/index.js +181 -142
  146. package/dist/tests/operations.test-spec.d.ts +3 -8
  147. package/dist/tests/operations.test-spec.d.ts.map +1 -1
  148. package/dist/tests/operations.test-spec.js +82 -90
  149. package/dist/ui/IntegrationDashboard.d.ts +1 -6
  150. package/dist/ui/IntegrationDashboard.d.ts.map +1 -1
  151. package/dist/ui/IntegrationDashboard.js +365 -261
  152. package/dist/ui/hooks/index.d.ts +2 -2
  153. package/dist/ui/hooks/index.d.ts.map +1 -0
  154. package/dist/ui/hooks/index.js +57 -4
  155. package/dist/ui/hooks/useIntegrationData.d.ts +16 -20
  156. package/dist/ui/hooks/useIntegrationData.d.ts.map +1 -1
  157. package/dist/ui/hooks/useIntegrationData.js +51 -55
  158. package/dist/ui/index.d.ts +7 -6
  159. package/dist/ui/index.d.ts.map +1 -0
  160. package/dist/ui/index.js +644 -5
  161. package/dist/ui/renderers/index.d.ts +2 -2
  162. package/dist/ui/renderers/index.d.ts.map +1 -0
  163. package/dist/ui/renderers/index.js +274 -3
  164. package/dist/ui/renderers/integration.markdown.d.ts +13 -15
  165. package/dist/ui/renderers/integration.markdown.d.ts.map +1 -1
  166. package/dist/ui/renderers/integration.markdown.js +268 -250
  167. package/package.json +361 -72
  168. package/dist/connection/connection.enum.js.map +0 -1
  169. package/dist/connection/connection.operation.js.map +0 -1
  170. package/dist/connection/connection.presentation.js.map +0 -1
  171. package/dist/connection/connection.schema.js.map +0 -1
  172. package/dist/docs/integration-hub.docblock.js.map +0 -1
  173. package/dist/events.js.map +0 -1
  174. package/dist/example.js.map +0 -1
  175. package/dist/handlers/integration.handlers.js.map +0 -1
  176. package/dist/integration/integration.enum.js.map +0 -1
  177. package/dist/integration/integration.operations.js.map +0 -1
  178. package/dist/integration/integration.presentation.js.map +0 -1
  179. package/dist/integration/integration.schema.js.map +0 -1
  180. package/dist/integration-hub.capability.js.map +0 -1
  181. package/dist/integration-hub.feature.js.map +0 -1
  182. package/dist/seeders/index.js.map +0 -1
  183. package/dist/sync/sync.enum.js.map +0 -1
  184. package/dist/sync/sync.operations.js.map +0 -1
  185. package/dist/sync/sync.presentation.js.map +0 -1
  186. package/dist/sync/sync.schema.js.map +0 -1
  187. package/dist/sync-engine/index.js.map +0 -1
  188. package/dist/tests/operations.test-spec.js.map +0 -1
  189. package/dist/ui/IntegrationDashboard.js.map +0 -1
  190. package/dist/ui/hooks/useIntegrationData.js.map +0 -1
  191. package/dist/ui/renderers/integration.markdown.js.map +0 -1
@@ -1,168 +1,299 @@
1
- import { FieldMappingModel, SyncConfigModel, SyncRunModel } from "./sync.schema.js";
2
- import { StabilityEnum, definePresentation } from "@contractspec/lib.contracts";
1
+ // @bun
2
+ // src/sync/sync.enum.ts
3
+ import { defineEnum } from "@contractspec/lib.schema";
4
+ var SyncDirectionEnum = defineEnum("SyncDirection", [
5
+ "INBOUND",
6
+ "OUTBOUND",
7
+ "BIDIRECTIONAL"
8
+ ]);
9
+ var SyncStatusEnum = defineEnum("SyncStatus", [
10
+ "PENDING",
11
+ "RUNNING",
12
+ "COMPLETED",
13
+ "FAILED",
14
+ "CANCELLED"
15
+ ]);
16
+ var MappingTypeEnum = defineEnum("MappingType", [
17
+ "DIRECT",
18
+ "TRANSFORM",
19
+ "LOOKUP",
20
+ "CONSTANT",
21
+ "COMPUTED"
22
+ ]);
3
23
 
4
- //#region src/sync/sync.presentation.ts
5
- const SyncConfigListPresentation = definePresentation({
6
- meta: {
7
- key: "integration.syncConfig.list",
8
- version: "1.0.0",
9
- title: "Sync Config List",
10
- description: "List of sync configurations",
11
- domain: "integration",
12
- owners: ["@integration-team"],
13
- tags: [
14
- "integration",
15
- "sync",
16
- "config",
17
- "list"
18
- ],
19
- stability: StabilityEnum.Experimental,
20
- goal: "Show users their current sync configurations.",
21
- context: "Management view for data synchronization."
22
- },
23
- source: {
24
- type: "component",
25
- framework: "react",
26
- componentKey: "SyncConfigList",
27
- props: SyncConfigModel
28
- },
29
- targets: ["react", "markdown"],
30
- policy: { flags: ["integration.sync.enabled"] }
24
+ // src/sync/sync.schema.ts
25
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
26
+ var FieldMappingModel = defineSchemaModel({
27
+ name: "FieldMappingModel",
28
+ fields: {
29
+ id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
30
+ sourceField: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
31
+ targetField: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
32
+ mappingType: { type: MappingTypeEnum, isOptional: false },
33
+ transformExpression: {
34
+ type: ScalarTypeEnum.String_unsecure(),
35
+ isOptional: true
36
+ },
37
+ isRequired: { type: ScalarTypeEnum.Boolean(), isOptional: false }
38
+ }
31
39
  });
32
- const SyncConfigEditorPresentation = definePresentation({
33
- meta: {
34
- key: "integration.syncConfig.editor",
35
- version: "1.0.0",
36
- title: "Sync Config Editor",
37
- description: "Editor for sync configuration settings",
38
- domain: "integration",
39
- owners: ["@integration-team"],
40
- tags: [
41
- "integration",
42
- "sync",
43
- "config",
44
- "editor"
45
- ],
46
- stability: StabilityEnum.Experimental,
47
- goal: "Allow users to configure schedule, filters, and settings for a sync.",
48
- context: "Configuration interface for sync jobs."
49
- },
50
- source: {
51
- type: "component",
52
- framework: "react",
53
- componentKey: "SyncConfigEditor",
54
- props: SyncConfigModel
55
- },
56
- targets: ["react"],
57
- policy: { flags: ["integration.sync.enabled"] }
40
+ var SyncConfigModel = defineSchemaModel({
41
+ name: "SyncConfigModel",
42
+ fields: {
43
+ id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
44
+ integrationId: {
45
+ type: ScalarTypeEnum.String_unsecure(),
46
+ isOptional: false
47
+ },
48
+ connectionId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
49
+ name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
50
+ direction: { type: SyncDirectionEnum, isOptional: false },
51
+ sourceObject: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
52
+ targetObject: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
53
+ scheduleEnabled: { type: ScalarTypeEnum.Boolean(), isOptional: false },
54
+ scheduleCron: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
55
+ isActive: { type: ScalarTypeEnum.Boolean(), isOptional: false },
56
+ lastSyncAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },
57
+ fieldMappings: { type: FieldMappingModel, isArray: true, isOptional: true }
58
+ }
58
59
  });
59
- const FieldMappingEditorPresentation = definePresentation({
60
- meta: {
61
- key: "integration.fieldMapping.editor",
62
- version: "1.0.0",
63
- title: "Field Mapping Editor",
64
- description: "Visual field mapping editor",
65
- domain: "integration",
66
- owners: ["@integration-team"],
67
- tags: [
68
- "integration",
69
- "field-mapping",
70
- "editor"
71
- ],
72
- stability: StabilityEnum.Experimental,
73
- goal: "Allow users to map source fields to target fields visually.",
74
- context: "Schema mapping tool for data consistency."
75
- },
76
- source: {
77
- type: "component",
78
- framework: "react",
79
- componentKey: "FieldMappingEditor",
80
- props: FieldMappingModel
81
- },
82
- targets: ["react"],
83
- policy: { flags: ["integration.sync.enabled"] }
60
+ var SyncRunModel = defineSchemaModel({
61
+ name: "SyncRunModel",
62
+ fields: {
63
+ id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
64
+ syncConfigId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
65
+ status: { type: SyncStatusEnum, isOptional: false },
66
+ direction: { type: SyncDirectionEnum, isOptional: false },
67
+ trigger: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
68
+ recordsProcessed: {
69
+ type: ScalarTypeEnum.Int_unsecure(),
70
+ isOptional: false
71
+ },
72
+ recordsCreated: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
73
+ recordsUpdated: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
74
+ recordsFailed: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
75
+ errorMessage: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
76
+ startedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },
77
+ completedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },
78
+ createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
79
+ }
84
80
  });
85
- const SyncRunListPresentation = definePresentation({
86
- meta: {
87
- key: "integration.syncRun.viewList",
88
- version: "1.0.0",
89
- title: "Sync Run History",
90
- description: "History of sync runs",
91
- domain: "integration",
92
- owners: ["@integration-team"],
93
- tags: [
94
- "integration",
95
- "sync",
96
- "runs",
97
- "history"
98
- ],
99
- stability: StabilityEnum.Experimental,
100
- goal: "Provide a historical log of all sync attempts and their results.",
101
- context: "Audit and troubleshooting view for sync jobs."
102
- },
103
- source: {
104
- type: "component",
105
- framework: "react",
106
- componentKey: "SyncRunList",
107
- props: SyncRunModel
108
- },
109
- targets: ["react", "markdown"],
110
- policy: { flags: ["integration.sync.enabled"] }
81
+ var CreateSyncConfigInputModel = defineSchemaModel({
82
+ name: "CreateSyncConfigInput",
83
+ fields: {
84
+ integrationId: {
85
+ type: ScalarTypeEnum.String_unsecure(),
86
+ isOptional: false
87
+ },
88
+ connectionId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
89
+ name: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
90
+ direction: { type: SyncDirectionEnum, isOptional: false },
91
+ sourceObject: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
92
+ targetObject: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
93
+ scheduleEnabled: { type: ScalarTypeEnum.Boolean(), isOptional: true },
94
+ scheduleCron: { type: ScalarTypeEnum.String_unsecure(), isOptional: true }
95
+ }
111
96
  });
112
- const SyncRunDetailPresentation = definePresentation({
113
- meta: {
114
- key: "integration.syncRun.detail",
115
- version: "1.0.0",
116
- title: "Sync Run Details",
117
- description: "Detailed view of a sync run with logs",
118
- domain: "integration",
119
- owners: ["@integration-team"],
120
- tags: [
121
- "integration",
122
- "sync",
123
- "run",
124
- "detail"
125
- ],
126
- stability: StabilityEnum.Experimental,
127
- goal: "Show granular details and logs for a specific sync run.",
128
- context: "Detailed troubleshooting view."
129
- },
130
- source: {
131
- type: "component",
132
- framework: "react",
133
- componentKey: "SyncRunDetail",
134
- props: SyncRunModel
135
- },
136
- targets: ["react", "markdown"],
137
- policy: { flags: ["integration.sync.enabled"] }
97
+ var AddFieldMappingInputModel = defineSchemaModel({
98
+ name: "AddFieldMappingInput",
99
+ fields: {
100
+ syncConfigId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
101
+ sourceField: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
102
+ targetField: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
103
+ mappingType: { type: MappingTypeEnum, isOptional: false },
104
+ transformExpression: {
105
+ type: ScalarTypeEnum.String_unsecure(),
106
+ isOptional: true
107
+ },
108
+ lookupConfig: { type: ScalarTypeEnum.JSON(), isOptional: true },
109
+ constantValue: { type: ScalarTypeEnum.JSON(), isOptional: true },
110
+ isRequired: { type: ScalarTypeEnum.Boolean(), isOptional: true },
111
+ defaultValue: { type: ScalarTypeEnum.JSON(), isOptional: true }
112
+ }
138
113
  });
139
- const SyncActivityPresentation = definePresentation({
140
- meta: {
141
- key: "integration.sync.activity",
142
- version: "1.0.0",
143
- title: "Sync Activity Monitor",
144
- description: "Real-time sync activity monitor",
145
- domain: "integration",
146
- owners: ["@integration-team"],
147
- tags: [
148
- "integration",
149
- "sync",
150
- "activity",
151
- "realtime"
152
- ],
153
- stability: StabilityEnum.Experimental,
154
- goal: "Monitor live data flow and sync performance.",
155
- context: "Real-time operations monitor."
156
- },
157
- source: {
158
- type: "component",
159
- framework: "react",
160
- componentKey: "SyncActivity"
161
- },
162
- targets: ["react", "markdown"],
163
- policy: { flags: ["integration.sync.enabled"] }
114
+ var TriggerSyncInputModel = defineSchemaModel({
115
+ name: "TriggerSyncInput",
116
+ fields: {
117
+ syncConfigId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
118
+ direction: { type: SyncDirectionEnum, isOptional: true },
119
+ fullSync: { type: ScalarTypeEnum.Boolean(), isOptional: true }
120
+ }
121
+ });
122
+ var ListSyncRunsInputModel = defineSchemaModel({
123
+ name: "ListSyncRunsInput",
124
+ fields: {
125
+ syncConfigId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
126
+ status: { type: SyncStatusEnum, isOptional: true },
127
+ limit: {
128
+ type: ScalarTypeEnum.Int_unsecure(),
129
+ isOptional: true,
130
+ defaultValue: 20
131
+ },
132
+ offset: {
133
+ type: ScalarTypeEnum.Int_unsecure(),
134
+ isOptional: true,
135
+ defaultValue: 0
136
+ }
137
+ }
138
+ });
139
+ var ListSyncRunsOutputModel = defineSchemaModel({
140
+ name: "ListSyncRunsOutput",
141
+ fields: {
142
+ runs: { type: SyncRunModel, isArray: true, isOptional: false },
143
+ total: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false }
144
+ }
164
145
  });
165
146
 
166
- //#endregion
167
- export { FieldMappingEditorPresentation, SyncActivityPresentation, SyncConfigEditorPresentation, SyncConfigListPresentation, SyncRunDetailPresentation, SyncRunListPresentation };
168
- //# sourceMappingURL=sync.presentation.js.map
147
+ // src/sync/sync.presentation.ts
148
+ import { definePresentation, StabilityEnum } from "@contractspec/lib.contracts";
149
+ var SyncConfigListPresentation = definePresentation({
150
+ meta: {
151
+ key: "integration.syncConfig.list",
152
+ version: "1.0.0",
153
+ title: "Sync Config List",
154
+ description: "List of sync configurations",
155
+ domain: "integration",
156
+ owners: ["@integration-team"],
157
+ tags: ["integration", "sync", "config", "list"],
158
+ stability: StabilityEnum.Experimental,
159
+ goal: "Show users their current sync configurations.",
160
+ context: "Management view for data synchronization."
161
+ },
162
+ source: {
163
+ type: "component",
164
+ framework: "react",
165
+ componentKey: "SyncConfigList",
166
+ props: SyncConfigModel
167
+ },
168
+ targets: ["react", "markdown"],
169
+ policy: {
170
+ flags: ["integration.sync.enabled"]
171
+ }
172
+ });
173
+ var SyncConfigEditorPresentation = definePresentation({
174
+ meta: {
175
+ key: "integration.syncConfig.editor",
176
+ version: "1.0.0",
177
+ title: "Sync Config Editor",
178
+ description: "Editor for sync configuration settings",
179
+ domain: "integration",
180
+ owners: ["@integration-team"],
181
+ tags: ["integration", "sync", "config", "editor"],
182
+ stability: StabilityEnum.Experimental,
183
+ goal: "Allow users to configure schedule, filters, and settings for a sync.",
184
+ context: "Configuration interface for sync jobs."
185
+ },
186
+ source: {
187
+ type: "component",
188
+ framework: "react",
189
+ componentKey: "SyncConfigEditor",
190
+ props: SyncConfigModel
191
+ },
192
+ targets: ["react"],
193
+ policy: {
194
+ flags: ["integration.sync.enabled"]
195
+ }
196
+ });
197
+ var FieldMappingEditorPresentation = definePresentation({
198
+ meta: {
199
+ key: "integration.fieldMapping.editor",
200
+ version: "1.0.0",
201
+ title: "Field Mapping Editor",
202
+ description: "Visual field mapping editor",
203
+ domain: "integration",
204
+ owners: ["@integration-team"],
205
+ tags: ["integration", "field-mapping", "editor"],
206
+ stability: StabilityEnum.Experimental,
207
+ goal: "Allow users to map source fields to target fields visually.",
208
+ context: "Schema mapping tool for data consistency."
209
+ },
210
+ source: {
211
+ type: "component",
212
+ framework: "react",
213
+ componentKey: "FieldMappingEditor",
214
+ props: FieldMappingModel
215
+ },
216
+ targets: ["react"],
217
+ policy: {
218
+ flags: ["integration.sync.enabled"]
219
+ }
220
+ });
221
+ var SyncRunListPresentation = definePresentation({
222
+ meta: {
223
+ key: "integration.syncRun.viewList",
224
+ version: "1.0.0",
225
+ title: "Sync Run History",
226
+ description: "History of sync runs",
227
+ domain: "integration",
228
+ owners: ["@integration-team"],
229
+ tags: ["integration", "sync", "runs", "history"],
230
+ stability: StabilityEnum.Experimental,
231
+ goal: "Provide a historical log of all sync attempts and their results.",
232
+ context: "Audit and troubleshooting view for sync jobs."
233
+ },
234
+ source: {
235
+ type: "component",
236
+ framework: "react",
237
+ componentKey: "SyncRunList",
238
+ props: SyncRunModel
239
+ },
240
+ targets: ["react", "markdown"],
241
+ policy: {
242
+ flags: ["integration.sync.enabled"]
243
+ }
244
+ });
245
+ var SyncRunDetailPresentation = definePresentation({
246
+ meta: {
247
+ key: "integration.syncRun.detail",
248
+ version: "1.0.0",
249
+ title: "Sync Run Details",
250
+ description: "Detailed view of a sync run with logs",
251
+ domain: "integration",
252
+ owners: ["@integration-team"],
253
+ tags: ["integration", "sync", "run", "detail"],
254
+ stability: StabilityEnum.Experimental,
255
+ goal: "Show granular details and logs for a specific sync run.",
256
+ context: "Detailed troubleshooting view."
257
+ },
258
+ source: {
259
+ type: "component",
260
+ framework: "react",
261
+ componentKey: "SyncRunDetail",
262
+ props: SyncRunModel
263
+ },
264
+ targets: ["react", "markdown"],
265
+ policy: {
266
+ flags: ["integration.sync.enabled"]
267
+ }
268
+ });
269
+ var SyncActivityPresentation = definePresentation({
270
+ meta: {
271
+ key: "integration.sync.activity",
272
+ version: "1.0.0",
273
+ title: "Sync Activity Monitor",
274
+ description: "Real-time sync activity monitor",
275
+ domain: "integration",
276
+ owners: ["@integration-team"],
277
+ tags: ["integration", "sync", "activity", "realtime"],
278
+ stability: StabilityEnum.Experimental,
279
+ goal: "Monitor live data flow and sync performance.",
280
+ context: "Real-time operations monitor."
281
+ },
282
+ source: {
283
+ type: "component",
284
+ framework: "react",
285
+ componentKey: "SyncActivity"
286
+ },
287
+ targets: ["react", "markdown"],
288
+ policy: {
289
+ flags: ["integration.sync.enabled"]
290
+ }
291
+ });
292
+ export {
293
+ SyncRunListPresentation,
294
+ SyncRunDetailPresentation,
295
+ SyncConfigListPresentation,
296
+ SyncConfigEditorPresentation,
297
+ SyncActivityPresentation,
298
+ FieldMappingEditorPresentation
299
+ };