@contractspec/example.integration-hub 1.57.0 → 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 (190) hide show
  1. package/dist/browser/connection/connection.enum.js +12 -0
  2. package/dist/browser/connection/connection.operation.js +101 -0
  3. package/dist/browser/connection/connection.presentation.js +99 -0
  4. package/dist/browser/connection/connection.schema.js +48 -0
  5. package/dist/browser/connection/index.js +104 -0
  6. package/dist/browser/docs/index.js +104 -0
  7. package/dist/browser/docs/integration-hub.docblock.js +104 -0
  8. package/dist/browser/events.js +211 -0
  9. package/dist/browser/example.js +42 -0
  10. package/dist/browser/handlers/index.js +246 -0
  11. package/dist/browser/handlers/integration.handlers.js +246 -0
  12. package/dist/browser/index.js +1595 -0
  13. package/dist/browser/integration/index.js +92 -0
  14. package/dist/browser/integration/integration.enum.js +12 -0
  15. package/dist/browser/integration/integration.operations.js +89 -0
  16. package/dist/browser/integration/integration.presentation.js +117 -0
  17. package/dist/browser/integration/integration.schema.js +42 -0
  18. package/dist/browser/integration-hub.capability.js +40 -0
  19. package/dist/browser/integration-hub.feature.js +114 -0
  20. package/dist/browser/seeders/index.js +60 -0
  21. package/dist/browser/sync/index.js +332 -0
  22. package/dist/browser/sync/sync.enum.js +26 -0
  23. package/dist/browser/sync/sync.operations.js +321 -0
  24. package/dist/browser/sync/sync.presentation.js +298 -0
  25. package/dist/browser/sync/sync.schema.js +154 -0
  26. package/dist/browser/sync-engine/index.js +186 -0
  27. package/dist/browser/tests/operations.test-spec.js +85 -0
  28. package/dist/browser/ui/IntegrationDashboard.js +369 -0
  29. package/dist/browser/ui/hooks/index.js +57 -0
  30. package/dist/browser/ui/hooks/useIntegrationData.js +54 -0
  31. package/dist/browser/ui/index.js +644 -0
  32. package/dist/browser/ui/renderers/index.js +273 -0
  33. package/dist/browser/ui/renderers/integration.markdown.js +273 -0
  34. package/dist/connection/connection.enum.d.ts +1 -6
  35. package/dist/connection/connection.enum.d.ts.map +1 -1
  36. package/dist/connection/connection.enum.js +11 -15
  37. package/dist/connection/connection.operation.d.ts +78 -84
  38. package/dist/connection/connection.operation.d.ts.map +1 -1
  39. package/dist/connection/connection.operation.js +99 -60
  40. package/dist/connection/connection.presentation.d.ts +2 -7
  41. package/dist/connection/connection.presentation.d.ts.map +1 -1
  42. package/dist/connection/connection.presentation.js +96 -56
  43. package/dist/connection/connection.schema.d.ts +54 -59
  44. package/dist/connection/connection.schema.d.ts.map +1 -1
  45. package/dist/connection/connection.schema.js +46 -73
  46. package/dist/connection/index.d.ts +7 -4
  47. package/dist/connection/index.d.ts.map +1 -0
  48. package/dist/connection/index.js +104 -4
  49. package/dist/docs/index.d.ts +2 -1
  50. package/dist/docs/index.d.ts.map +1 -0
  51. package/dist/docs/index.js +105 -1
  52. package/dist/docs/integration-hub.docblock.d.ts +2 -1
  53. package/dist/docs/integration-hub.docblock.d.ts.map +1 -0
  54. package/dist/docs/integration-hub.docblock.js +45 -56
  55. package/dist/events.d.ts +137 -143
  56. package/dist/events.d.ts.map +1 -1
  57. package/dist/events.js +210 -287
  58. package/dist/example.d.ts +2 -6
  59. package/dist/example.d.ts.map +1 -1
  60. package/dist/example.js +41 -55
  61. package/dist/handlers/index.d.ts +2 -2
  62. package/dist/handlers/index.d.ts.map +1 -0
  63. package/dist/handlers/index.js +247 -3
  64. package/dist/handlers/integration.handlers.d.ts +114 -113
  65. package/dist/handlers/integration.handlers.d.ts.map +1 -1
  66. package/dist/handlers/integration.handlers.js +232 -267
  67. package/dist/index.d.ts +12 -19
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +1596 -20
  70. package/dist/integration/index.d.ts +7 -4
  71. package/dist/integration/index.d.ts.map +1 -0
  72. package/dist/integration/index.js +92 -4
  73. package/dist/integration/integration.enum.d.ts +1 -6
  74. package/dist/integration/integration.enum.d.ts.map +1 -1
  75. package/dist/integration/integration.enum.js +11 -15
  76. package/dist/integration/integration.operations.d.ts +74 -80
  77. package/dist/integration/integration.operations.d.ts.map +1 -1
  78. package/dist/integration/integration.operations.js +87 -54
  79. package/dist/integration/integration.presentation.d.ts +3 -8
  80. package/dist/integration/integration.presentation.d.ts.map +1 -1
  81. package/dist/integration/integration.presentation.js +114 -73
  82. package/dist/integration/integration.schema.d.ts +54 -59
  83. package/dist/integration/integration.schema.d.ts.map +1 -1
  84. package/dist/integration/integration.schema.js +40 -73
  85. package/dist/integration-hub.capability.d.ts +3 -8
  86. package/dist/integration-hub.capability.d.ts.map +1 -1
  87. package/dist/integration-hub.capability.js +41 -38
  88. package/dist/integration-hub.feature.d.ts +1 -6
  89. package/dist/integration-hub.feature.d.ts.map +1 -1
  90. package/dist/integration-hub.feature.js +113 -242
  91. package/dist/node/connection/connection.enum.js +12 -0
  92. package/dist/node/connection/connection.operation.js +101 -0
  93. package/dist/node/connection/connection.presentation.js +99 -0
  94. package/dist/node/connection/connection.schema.js +48 -0
  95. package/dist/node/connection/index.js +104 -0
  96. package/dist/node/docs/index.js +104 -0
  97. package/dist/node/docs/integration-hub.docblock.js +104 -0
  98. package/dist/node/events.js +211 -0
  99. package/dist/node/example.js +42 -0
  100. package/dist/node/handlers/index.js +246 -0
  101. package/dist/node/handlers/integration.handlers.js +246 -0
  102. package/dist/node/index.js +1595 -0
  103. package/dist/node/integration/index.js +92 -0
  104. package/dist/node/integration/integration.enum.js +12 -0
  105. package/dist/node/integration/integration.operations.js +89 -0
  106. package/dist/node/integration/integration.presentation.js +117 -0
  107. package/dist/node/integration/integration.schema.js +42 -0
  108. package/dist/node/integration-hub.capability.js +40 -0
  109. package/dist/node/integration-hub.feature.js +114 -0
  110. package/dist/node/seeders/index.js +60 -0
  111. package/dist/node/sync/index.js +332 -0
  112. package/dist/node/sync/sync.enum.js +26 -0
  113. package/dist/node/sync/sync.operations.js +321 -0
  114. package/dist/node/sync/sync.presentation.js +298 -0
  115. package/dist/node/sync/sync.schema.js +154 -0
  116. package/dist/node/sync-engine/index.js +186 -0
  117. package/dist/node/tests/operations.test-spec.js +85 -0
  118. package/dist/node/ui/IntegrationDashboard.js +369 -0
  119. package/dist/node/ui/hooks/index.js +57 -0
  120. package/dist/node/ui/hooks/useIntegrationData.js +54 -0
  121. package/dist/node/ui/index.js +644 -0
  122. package/dist/node/ui/renderers/index.js +273 -0
  123. package/dist/node/ui/renderers/integration.markdown.js +273 -0
  124. package/dist/seeders/index.d.ts +4 -8
  125. package/dist/seeders/index.d.ts.map +1 -1
  126. package/dist/seeders/index.js +54 -52
  127. package/dist/sync/index.d.ts +7 -4
  128. package/dist/sync/index.d.ts.map +1 -0
  129. package/dist/sync/index.js +332 -4
  130. package/dist/sync/sync.enum.d.ts +3 -8
  131. package/dist/sync/sync.enum.d.ts.map +1 -1
  132. package/dist/sync/sync.enum.js +23 -31
  133. package/dist/sync/sync.operations.d.ts +413 -419
  134. package/dist/sync/sync.operations.d.ts.map +1 -1
  135. package/dist/sync/sync.operations.js +316 -197
  136. package/dist/sync/sync.presentation.d.ts +6 -11
  137. package/dist/sync/sync.presentation.d.ts.map +1 -1
  138. package/dist/sync/sync.presentation.js +291 -160
  139. package/dist/sync/sync.schema.d.ts +317 -322
  140. package/dist/sync/sync.schema.d.ts.map +1 -1
  141. package/dist/sync/sync.schema.js +146 -295
  142. package/dist/sync-engine/index.d.ts +88 -91
  143. package/dist/sync-engine/index.d.ts.map +1 -1
  144. package/dist/sync-engine/index.js +181 -142
  145. package/dist/tests/operations.test-spec.d.ts +3 -8
  146. package/dist/tests/operations.test-spec.d.ts.map +1 -1
  147. package/dist/tests/operations.test-spec.js +82 -90
  148. package/dist/ui/IntegrationDashboard.d.ts +1 -6
  149. package/dist/ui/IntegrationDashboard.d.ts.map +1 -1
  150. package/dist/ui/IntegrationDashboard.js +365 -261
  151. package/dist/ui/hooks/index.d.ts +2 -2
  152. package/dist/ui/hooks/index.d.ts.map +1 -0
  153. package/dist/ui/hooks/index.js +57 -4
  154. package/dist/ui/hooks/useIntegrationData.d.ts +16 -20
  155. package/dist/ui/hooks/useIntegrationData.d.ts.map +1 -1
  156. package/dist/ui/hooks/useIntegrationData.js +51 -55
  157. package/dist/ui/index.d.ts +7 -6
  158. package/dist/ui/index.d.ts.map +1 -0
  159. package/dist/ui/index.js +644 -5
  160. package/dist/ui/renderers/index.d.ts +2 -2
  161. package/dist/ui/renderers/index.d.ts.map +1 -0
  162. package/dist/ui/renderers/index.js +274 -3
  163. package/dist/ui/renderers/integration.markdown.d.ts +13 -14
  164. package/dist/ui/renderers/integration.markdown.d.ts.map +1 -1
  165. package/dist/ui/renderers/integration.markdown.js +268 -264
  166. package/package.json +360 -71
  167. package/dist/connection/connection.enum.js.map +0 -1
  168. package/dist/connection/connection.operation.js.map +0 -1
  169. package/dist/connection/connection.presentation.js.map +0 -1
  170. package/dist/connection/connection.schema.js.map +0 -1
  171. package/dist/docs/integration-hub.docblock.js.map +0 -1
  172. package/dist/events.js.map +0 -1
  173. package/dist/example.js.map +0 -1
  174. package/dist/handlers/integration.handlers.js.map +0 -1
  175. package/dist/integration/integration.enum.js.map +0 -1
  176. package/dist/integration/integration.operations.js.map +0 -1
  177. package/dist/integration/integration.presentation.js.map +0 -1
  178. package/dist/integration/integration.schema.js.map +0 -1
  179. package/dist/integration-hub.capability.js.map +0 -1
  180. package/dist/integration-hub.feature.js.map +0 -1
  181. package/dist/seeders/index.js.map +0 -1
  182. package/dist/sync/sync.enum.js.map +0 -1
  183. package/dist/sync/sync.operations.js.map +0 -1
  184. package/dist/sync/sync.presentation.js.map +0 -1
  185. package/dist/sync/sync.schema.js.map +0 -1
  186. package/dist/sync-engine/index.js.map +0 -1
  187. package/dist/tests/operations.test-spec.js.map +0 -1
  188. package/dist/ui/IntegrationDashboard.js.map +0 -1
  189. package/dist/ui/hooks/useIntegrationData.js.map +0 -1
  190. 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
+ };