@integration-app/react 0.1.26 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. package/README.md +83 -0
  2. package/dist/index.d.ts +302 -0
  3. package/dist/index.js +426 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/index.module.d.ts +302 -0
  6. package/dist/index.module.mjs +393 -0
  7. package/dist/index.module.mjs.map +1 -0
  8. package/dist/index.umd.d.ts +302 -0
  9. package/dist/index.umd.js +428 -0
  10. package/dist/index.umd.js.map +1 -0
  11. package/package.json +50 -27
  12. package/rollup.dts.config.mjs +21 -0
  13. package/src/app-events/useAppEventSubscription.ts +20 -0
  14. package/src/app-events/useAppEventSubscriptions.ts +18 -0
  15. package/src/app-events/useAppEventType.ts +15 -0
  16. package/src/app-events/useAppEventTypes.ts +13 -0
  17. package/src/app-events/useAppEvents.ts +13 -0
  18. package/src/contexts/integration-app-context.tsx +55 -0
  19. package/src/data-form/index.tsx +3 -0
  20. package/src/data-sources/useDataSource.ts +12 -0
  21. package/src/data-sources/useDataSourceEvents.ts +16 -0
  22. package/src/data-sources/useDataSourceInstance.ts +48 -0
  23. package/src/data-sources/useDataSourceInstanceCollection.ts +19 -0
  24. package/src/data-sources/useDataSourceInstanceLocations.ts +30 -0
  25. package/src/data-sources/useDataSourceInstances.ts +16 -0
  26. package/src/data-sources/useDataSources.ts +13 -0
  27. package/src/field-mappings/useFieldMapping.ts +14 -0
  28. package/src/field-mappings/useFieldMappingInstance.ts +31 -0
  29. package/src/field-mappings/useFieldMappingInstances.ts +18 -0
  30. package/src/field-mappings/useFieldMappings.ts +13 -0
  31. package/src/flows/useFlow.ts +12 -0
  32. package/src/flows/useFlowInstance.ts +16 -0
  33. package/src/flows/useFlowInstances.ts +13 -0
  34. package/src/flows/useFlowRun.ts +12 -0
  35. package/src/flows/useFlowRuns.ts +11 -0
  36. package/src/flows/useFlowTemplate.ts +0 -0
  37. package/src/flows/useFlowTemplates.ts +0 -0
  38. package/src/flows/useFlows.ts +11 -0
  39. package/src/hooks/useElement.tsx +187 -0
  40. package/src/hooks/useElements.tsx +101 -0
  41. package/src/hooks/useGetter.tsx +38 -0
  42. package/src/index.tsx +40 -0
  43. package/src/integrations/useConnection.ts +12 -0
  44. package/src/integrations/useConnections.ts +13 -0
  45. package/src/integrations/useConnectorSpec.ts +25 -0
  46. package/src/integrations/useIntegration.ts +14 -0
  47. package/src/integrations/useIntegrations.ts +13 -0
  48. package/tsconfig.json +40 -0
  49. package/app-events/useAppEventSubscription.d.ts +0 -14
  50. package/app-events/useAppEventSubscription.js +0 -10
  51. package/app-events/useAppEventSubscription.js.map +0 -1
  52. package/app-events/useAppEventSubscriptions.d.ts +0 -8
  53. package/app-events/useAppEventSubscriptions.js +0 -12
  54. package/app-events/useAppEventSubscriptions.js.map +0 -1
  55. package/app-events/useAppEventType.d.ts +0 -13
  56. package/app-events/useAppEventType.js +0 -10
  57. package/app-events/useAppEventType.js.map +0 -1
  58. package/app-events/useAppEventTypes.d.ts +0 -8
  59. package/app-events/useAppEventTypes.js +0 -12
  60. package/app-events/useAppEventTypes.js.map +0 -1
  61. package/app-events/useAppEvents.d.ts +0 -8
  62. package/app-events/useAppEvents.js +0 -12
  63. package/app-events/useAppEvents.js.map +0 -1
  64. package/contexts/integration-app-context.d.ts +0 -11
  65. package/contexts/integration-app-context.js +0 -22
  66. package/contexts/integration-app-context.js.map +0 -1
  67. package/data-form/index.d.ts +0 -1
  68. package/data-form/index.js +0 -8
  69. package/data-form/index.js.map +0 -1
  70. package/data-sources/useDataSource.d.ts +0 -12
  71. package/data-sources/useDataSource.js +0 -10
  72. package/data-sources/useDataSource.js.map +0 -1
  73. package/data-sources/useDataSourceEvents.d.ts +0 -8
  74. package/data-sources/useDataSourceEvents.js +0 -12
  75. package/data-sources/useDataSourceEvents.js.map +0 -1
  76. package/data-sources/useDataSourceInstance.d.ts +0 -28
  77. package/data-sources/useDataSourceInstance.js +0 -28
  78. package/data-sources/useDataSourceInstance.js.map +0 -1
  79. package/data-sources/useDataSourceInstanceCollection.d.ts +0 -7
  80. package/data-sources/useDataSourceInstanceCollection.js +0 -16
  81. package/data-sources/useDataSourceInstanceCollection.js.map +0 -1
  82. package/data-sources/useDataSourceInstanceLocations.d.ts +0 -10
  83. package/data-sources/useDataSourceInstanceLocations.js +0 -21
  84. package/data-sources/useDataSourceInstanceLocations.js.map +0 -1
  85. package/data-sources/useDataSources.d.ts +0 -8
  86. package/data-sources/useDataSources.js +0 -12
  87. package/data-sources/useDataSources.js.map +0 -1
  88. package/field-mappings/useFieldMapping.d.ts +0 -12
  89. package/field-mappings/useFieldMapping.js +0 -10
  90. package/field-mappings/useFieldMapping.js.map +0 -1
  91. package/field-mappings/useFieldMappingInstance.d.ts +0 -17
  92. package/field-mappings/useFieldMappingInstance.js +0 -17
  93. package/field-mappings/useFieldMappingInstance.js.map +0 -1
  94. package/field-mappings/useFieldMappingInstances.d.ts +0 -8
  95. package/field-mappings/useFieldMappingInstances.js +0 -12
  96. package/field-mappings/useFieldMappingInstances.js.map +0 -1
  97. package/field-mappings/useFieldMappings.d.ts +0 -8
  98. package/field-mappings/useFieldMappings.js +0 -12
  99. package/field-mappings/useFieldMappings.js.map +0 -1
  100. package/flows/useFlow.d.ts +0 -12
  101. package/flows/useFlow.js +0 -10
  102. package/flows/useFlow.js.map +0 -1
  103. package/flows/useFlowInstance.d.ts +0 -14
  104. package/flows/useFlowInstance.js +0 -10
  105. package/flows/useFlowInstance.js.map +0 -1
  106. package/flows/useFlowInstances.d.ts +0 -8
  107. package/flows/useFlowInstances.js +0 -12
  108. package/flows/useFlowInstances.js.map +0 -1
  109. package/flows/useFlowRun.d.ts +0 -12
  110. package/flows/useFlowRun.js +0 -10
  111. package/flows/useFlowRun.js.map +0 -1
  112. package/flows/useFlowRuns.d.ts +0 -8
  113. package/flows/useFlowRuns.js +0 -10
  114. package/flows/useFlowRuns.js.map +0 -1
  115. package/flows/useFlows.d.ts +0 -8
  116. package/flows/useFlows.js +0 -10
  117. package/flows/useFlows.js.map +0 -1
  118. package/hooks/useElement.d.ts +0 -25
  119. package/hooks/useElement.js +0 -71
  120. package/hooks/useElement.js.map +0 -1
  121. package/hooks/useElements.d.ts +0 -15
  122. package/hooks/useElements.js +0 -59
  123. package/hooks/useElements.js.map +0 -1
  124. package/hooks/useGetter.d.ts +0 -6
  125. package/hooks/useGetter.js +0 -32
  126. package/hooks/useGetter.js.map +0 -1
  127. package/index.d.ts +0 -28
  128. package/index.js +0 -61
  129. package/index.js.map +0 -1
  130. package/integrations/useConnection.d.ts +0 -12
  131. package/integrations/useConnection.js +0 -10
  132. package/integrations/useConnection.js.map +0 -1
  133. package/integrations/useConnectionSpec.d.ts +0 -5
  134. package/integrations/useConnectionSpec.js +0 -25
  135. package/integrations/useConnectionSpec.js.map +0 -1
  136. package/integrations/useConnections.d.ts +0 -8
  137. package/integrations/useConnections.js +0 -12
  138. package/integrations/useConnections.js.map +0 -1
  139. package/integrations/useIntegration.d.ts +0 -12
  140. package/integrations/useIntegration.js +0 -10
  141. package/integrations/useIntegration.js.map +0 -1
  142. package/integrations/useIntegrations.d.ts +0 -8
  143. package/integrations/useIntegrations.js +0 -12
  144. package/integrations/useIntegrations.js.map +0 -1
@@ -0,0 +1,302 @@
1
+ import * as _integration_app_sdk from '@integration-app/sdk';
2
+ import { IntegrationAppClient, ConnectionSpec, Integration, IntegrationAccessor, FindIntegrationsQuery, Connection, ConnectionAccessor, FindConnectionsQuery, FieldMapping, FieldMappingAccessor, FindFieldMappingsQuery, FieldMappingInstanceSelector, FieldMappingInstance, FieldMappingInstanceAccessor, OpenFieldMappingInstanceConfigurationOptions, FindFieldMappingInstancesQuery, DataSource, DataSourceAccessor, FindDataSourcesQuery, DataSourceInstanceSelector, DataSourceInstance, DataSourceInstanceAccessor, OpenDataSourceConfigurationOptions, DataCollectionFindRequest, DataCollectionCreateRequest, DataCollectionUpdateRequest, FindDataSourceInstancesQuery, DataCollectionSpec, FindDataSourceEventsQuery, DataSourceEvent, FindAppEventsQuery, AppEvent, AppEventType, AppEventTypeAccessor, FindAppEventTypesQuery, AppEventSubscriptionSelector, AppEventSubscription, AppEventSubscriptionAccessor, FindAppEventSubscriptionsQuery, FlowSelector, Flow, FlowAccessor, FindFlowsRequest, FlowInstanceSelector, FlowInstance, FlowInstanceAccessor, FindFlowInstancesQuery, FlowRun, FlowRunAccessor, FindFlowRunsRequest } from '@integration-app/sdk';
3
+ export { DataForm } from '@integration-app/sdk';
4
+ import { ReactNode } from 'react';
5
+
6
+ interface IntegrationAppProviderProps {
7
+ token?: string;
8
+ fetchToken?: () => Promise<string>;
9
+ credentials?: any;
10
+ fetchCredentials?: () => Promise<any>;
11
+ apiUri?: string;
12
+ uiUri?: string;
13
+ children: ReactNode;
14
+ }
15
+ declare const IntegrationAppProvider: ({ token, fetchToken, credentials, fetchCredentials, apiUri, uiUri, children, }: IntegrationAppProviderProps) => JSX.Element;
16
+ declare function useIntegrationApp(): IntegrationAppClient;
17
+
18
+ declare function useConnectorSpec(integrationKey: string): {
19
+ data: ConnectionSpec;
20
+ loading: boolean;
21
+ error: Error;
22
+ };
23
+
24
+ declare function useIntegration(idOrKey: string): {
25
+ loading: boolean;
26
+ error?: Error;
27
+ create: (data: _integration_app_sdk.CreateIntegrationRequest) => Promise<Integration>;
28
+ patch: (data: _integration_app_sdk.UpdateIntegrationRequest) => Promise<Integration>;
29
+ put: (data: _integration_app_sdk.CreateIntegrationRequest) => Promise<Integration>;
30
+ archive: () => Promise<void>;
31
+ refresh: () => void;
32
+ accessor: IntegrationAccessor;
33
+ integration: Integration;
34
+ };
35
+
36
+ declare function useIntegrations(query?: FindIntegrationsQuery): {
37
+ items: Integration[];
38
+ loading: boolean;
39
+ error?: Error;
40
+ refresh(): Promise<void>;
41
+ loadMore(): Promise<void>;
42
+ };
43
+
44
+ declare function useConnection(id: string): {
45
+ loading: boolean;
46
+ error?: Error;
47
+ create: (data: Partial<Connection>) => Promise<Connection>;
48
+ patch: (data: Partial<Connection>) => Promise<Connection>;
49
+ put: (data: Partial<Connection>) => Promise<Connection>;
50
+ archive: () => Promise<void>;
51
+ refresh: () => void;
52
+ accessor: ConnectionAccessor;
53
+ connection: Connection;
54
+ };
55
+
56
+ declare function useConnections(query?: FindConnectionsQuery): {
57
+ items: Connection[];
58
+ loading: boolean;
59
+ error?: Error;
60
+ refresh(): Promise<void>;
61
+ loadMore(): Promise<void>;
62
+ };
63
+
64
+ declare function useFieldMapping(idOrKey: string): {
65
+ loading: boolean;
66
+ error?: Error;
67
+ create: (data: _integration_app_sdk.CreateFieldMappingRequest) => Promise<FieldMapping>;
68
+ patch: (data: Partial<_integration_app_sdk.CreateFieldMappingRequest>) => Promise<FieldMapping>;
69
+ put: (data: _integration_app_sdk.CreateFieldMappingRequest) => Promise<FieldMapping>;
70
+ archive: () => Promise<void>;
71
+ refresh: () => void;
72
+ accessor: FieldMappingAccessor;
73
+ fieldMapping: FieldMapping;
74
+ };
75
+
76
+ declare function useFieldMappings(query?: FindFieldMappingsQuery): {
77
+ items: FieldMapping[];
78
+ loading: boolean;
79
+ error?: Error;
80
+ refresh(): Promise<void>;
81
+ loadMore(): Promise<void>;
82
+ };
83
+
84
+ declare function useFieldMappingInstance(selector: FieldMappingInstanceSelector | {
85
+ id: string;
86
+ }): {
87
+ loading: boolean;
88
+ error?: Error;
89
+ create: (data: _integration_app_sdk.CreateFieldMappingInstanceRequest) => Promise<FieldMappingInstance>;
90
+ patch: (data: _integration_app_sdk.UpdateFieldMappingInstanceRequest) => Promise<FieldMappingInstance>;
91
+ put: (data: _integration_app_sdk.CreateFieldMappingInstanceRequest) => Promise<FieldMappingInstance>;
92
+ archive: () => Promise<void>;
93
+ refresh: () => void;
94
+ accessor: FieldMappingInstanceAccessor;
95
+ fieldMappingInstance: FieldMappingInstance;
96
+ setup: () => Promise<void>;
97
+ reset: () => Promise<void>;
98
+ openConfiguration: (options?: OpenFieldMappingInstanceConfigurationOptions) => Promise<void>;
99
+ };
100
+
101
+ declare function useFieldMappingInstances(query?: FindFieldMappingInstancesQuery): {
102
+ items: FieldMappingInstance[];
103
+ loading: boolean;
104
+ error?: Error;
105
+ refresh(): Promise<void>;
106
+ loadMore(): Promise<void>;
107
+ };
108
+
109
+ declare function useDataSource(idOrKey: string): {
110
+ loading: boolean;
111
+ error?: Error;
112
+ create: (data: _integration_app_sdk.CreateDataSourceRequest) => Promise<DataSource>;
113
+ patch: (data: Partial<_integration_app_sdk.CreateDataSourceRequest>) => Promise<DataSource>;
114
+ put: (data: _integration_app_sdk.CreateDataSourceRequest) => Promise<DataSource>;
115
+ archive: () => Promise<void>;
116
+ refresh: () => void;
117
+ accessor: DataSourceAccessor;
118
+ dataSource: DataSource;
119
+ };
120
+
121
+ declare function useDataSources(query?: FindDataSourcesQuery): {
122
+ items: DataSource[];
123
+ loading: boolean;
124
+ error?: Error;
125
+ refresh(): Promise<void>;
126
+ loadMore(): Promise<void>;
127
+ };
128
+
129
+ declare function useDataSourceInstance(selector: DataSourceInstanceSelector | {
130
+ id: string;
131
+ }): {
132
+ loading: boolean;
133
+ error?: Error;
134
+ create: (data: _integration_app_sdk.CreateDataSourceInstanceRequest) => Promise<DataSourceInstance>;
135
+ patch: (data: _integration_app_sdk.UpdateDataSourceInstanceRequest) => Promise<DataSourceInstance>;
136
+ put: (data: _integration_app_sdk.CreateDataSourceInstanceRequest) => Promise<DataSourceInstance>;
137
+ archive: () => Promise<void>;
138
+ refresh: () => void;
139
+ accessor: DataSourceInstanceAccessor;
140
+ dataSourceInstance: DataSourceInstance;
141
+ setup: () => Promise<void>;
142
+ subscribe: (eventType: any) => Promise<void>;
143
+ resubscribe: (eventType: any) => Promise<void>;
144
+ unsubscribe: (eventType: any) => Promise<void>;
145
+ pullUpdates: () => Promise<void>;
146
+ fullSync: () => Promise<void>;
147
+ reset: () => Promise<void>;
148
+ openConfiguration: (options?: OpenDataSourceConfigurationOptions) => Promise<void>;
149
+ findRecords: (request?: DataCollectionFindRequest) => Promise<_integration_app_sdk.DataCollectionFindResponse>;
150
+ findRecordById: (id: string) => Promise<_integration_app_sdk.DataCollectionFindByIdResponse>;
151
+ createRecord: (request?: DataCollectionCreateRequest) => Promise<_integration_app_sdk.DataCollectionCreateResponse>;
152
+ updateRecord: (request?: DataCollectionUpdateRequest) => Promise<_integration_app_sdk.DataCollectionUpdateResponse>;
153
+ deleteRecord: (id?: string) => Promise<_integration_app_sdk.DataCollectionDeleteResponse>;
154
+ unifiedFieldsToNative: (unifiedFields: any) => Promise<any>;
155
+ };
156
+
157
+ declare function useDataSourceInstances(query?: FindDataSourceInstancesQuery): {
158
+ items: DataSourceInstance[];
159
+ loading: boolean;
160
+ error?: Error;
161
+ refresh(): Promise<void>;
162
+ loadMore(): Promise<void>;
163
+ };
164
+
165
+ declare function useDataSourceInstanceCollection(dataSourceInstance: DataSourceInstance): {
166
+ loading: boolean;
167
+ error: Error;
168
+ refresh: () => void;
169
+ collection: DataCollectionSpec;
170
+ };
171
+
172
+ declare function useDataSourceInstanceLocations(dataSourceInstance: DataSourceInstance, args?: {
173
+ path?: string;
174
+ cursor?: string;
175
+ }): {
176
+ loading: boolean;
177
+ error: Error;
178
+ refresh: () => void;
179
+ locations: _integration_app_sdk.DataLocation[];
180
+ };
181
+
182
+ declare function useDataSourceEvents(query?: FindDataSourceEventsQuery): {
183
+ items: DataSourceEvent[];
184
+ loading: boolean;
185
+ error?: Error;
186
+ refresh(): Promise<void>;
187
+ loadMore(): Promise<void>;
188
+ };
189
+
190
+ declare function useAppEvents(query?: FindAppEventsQuery): {
191
+ items: AppEvent[];
192
+ loading: boolean;
193
+ error?: Error;
194
+ refresh(): Promise<void>;
195
+ loadMore(): Promise<void>;
196
+ };
197
+
198
+ declare function useAppEventType(idOrKey: string): {
199
+ loading: boolean;
200
+ error?: Error;
201
+ create: (data: _integration_app_sdk.CreateAppEventTypeRequest) => Promise<AppEventType>;
202
+ patch: (data: _integration_app_sdk.CreateAppEventTypeRequest) => Promise<AppEventType>;
203
+ put: (data: _integration_app_sdk.CreateAppEventTypeRequest) => Promise<AppEventType>;
204
+ archive: () => Promise<void>;
205
+ refresh: () => void;
206
+ accessor: AppEventTypeAccessor;
207
+ appEventType: AppEventType;
208
+ };
209
+
210
+ declare function useAppEventTypes(query?: FindAppEventTypesQuery): {
211
+ items: AppEventType[];
212
+ loading: boolean;
213
+ error?: Error;
214
+ refresh(): Promise<void>;
215
+ loadMore(): Promise<void>;
216
+ };
217
+
218
+ declare function useAppEventSubscription(selector: AppEventSubscriptionSelector | {
219
+ id: string;
220
+ }): {
221
+ loading: boolean;
222
+ error?: Error;
223
+ create: (data: _integration_app_sdk.IAppEventSubscriptionUpdate) => Promise<AppEventSubscription>;
224
+ patch: (data: _integration_app_sdk.IAppEventSubscriptionUpdate) => Promise<AppEventSubscription>;
225
+ put: (data: _integration_app_sdk.IAppEventSubscriptionUpdate) => Promise<AppEventSubscription>;
226
+ archive: () => Promise<void>;
227
+ refresh: () => void;
228
+ accessor: AppEventSubscriptionAccessor;
229
+ appEventSubscription: AppEventSubscription;
230
+ };
231
+
232
+ declare function useAppEventSubscriptions(query?: FindAppEventSubscriptionsQuery): {
233
+ items: AppEventSubscription[];
234
+ loading: boolean;
235
+ error?: Error;
236
+ refresh(): Promise<void>;
237
+ loadMore(): Promise<void>;
238
+ };
239
+
240
+ declare function useFlow(idOrSelector: string | FlowSelector): {
241
+ loading: boolean;
242
+ error?: Error;
243
+ create: (data: Partial<Flow>) => Promise<Flow>;
244
+ patch: (data: Partial<Flow>) => Promise<Flow>;
245
+ put: (data: Partial<Flow>) => Promise<Flow>;
246
+ archive: () => Promise<void>;
247
+ refresh: () => void;
248
+ accessor: FlowAccessor;
249
+ flow: Flow;
250
+ };
251
+
252
+ declare function useFlows(query?: FindFlowsRequest): {
253
+ items: Flow[];
254
+ loading: boolean;
255
+ error?: Error;
256
+ refresh(): Promise<void>;
257
+ loadMore(): Promise<void>;
258
+ };
259
+
260
+ declare function useFlowInstance(props: FlowInstanceSelector | {
261
+ id: string;
262
+ }): {
263
+ loading: boolean;
264
+ error?: Error;
265
+ create: (data: _integration_app_sdk.CreateFlowInstanceRequest) => Promise<FlowInstance>;
266
+ patch: (data: _integration_app_sdk.UpdateFlowInstanceRequest) => Promise<FlowInstance>;
267
+ put: (data: _integration_app_sdk.CreateFlowInstanceRequest) => Promise<FlowInstance>;
268
+ archive: () => Promise<void>;
269
+ refresh: () => void;
270
+ accessor: FlowInstanceAccessor;
271
+ flowInstance: FlowInstance;
272
+ };
273
+
274
+ declare function useFlowInstances(query?: FindFlowInstancesQuery): {
275
+ items: FlowInstance[];
276
+ loading: boolean;
277
+ error?: Error;
278
+ refresh(): Promise<void>;
279
+ loadMore(): Promise<void>;
280
+ };
281
+
282
+ declare function useFlowRun(id: string): {
283
+ loading: boolean;
284
+ error?: Error;
285
+ create: (data: Partial<FlowRun>) => Promise<FlowRun>;
286
+ patch: (data: Partial<FlowRun>) => Promise<FlowRun>;
287
+ put: (data: Partial<FlowRun>) => Promise<FlowRun>;
288
+ archive: () => Promise<void>;
289
+ refresh: () => void;
290
+ accessor: FlowRunAccessor;
291
+ flowRun: FlowRun;
292
+ };
293
+
294
+ declare function useFlowRuns(query?: FindFlowRunsRequest): {
295
+ items: FlowRun[];
296
+ loading: boolean;
297
+ error?: Error;
298
+ refresh(): Promise<void>;
299
+ loadMore(): Promise<void>;
300
+ };
301
+
302
+ export { IntegrationAppProvider, useAppEventSubscription, useAppEventSubscriptions, useAppEventType, useAppEventTypes, useAppEvents, useConnection, useConnections, useConnectorSpec, useDataSource, useDataSourceInstanceCollection as useDataSourceCollection, useDataSourceEvents, useDataSourceInstance, useDataSourceInstances, useDataSourceInstanceLocations as useDataSourceLocations, useDataSources, useFieldMapping, useFieldMappingInstance, useFieldMappingInstances, useFieldMappings, useFlow, useFlowInstance, useFlowInstances, useFlowRun, useFlowRuns, useFlows, useIntegration, useIntegrationApp, useIntegrations };
@@ -0,0 +1,393 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { IntegrationAppClient } from '@integration-app/sdk';
3
+ export { DataForm } from '@integration-app/sdk';
4
+ import { createContext, useMemo, useContext, useState, useEffect, useRef } from 'react';
5
+
6
+ const IntegrationAppContext = createContext(null);
7
+ IntegrationAppContext.displayName = 'IntegrationAppClientContext';
8
+ const IntegrationAppProvider = ({ token, fetchToken, credentials, fetchCredentials, apiUri = null, uiUri = null, children, }) => {
9
+ const client = useMemo(() => new IntegrationAppClient({
10
+ token,
11
+ fetchToken,
12
+ credentials,
13
+ fetchCredentials,
14
+ apiUri,
15
+ uiUri,
16
+ }), [token, JSON.stringify(credentials), apiUri, uiUri]);
17
+ return (jsx(IntegrationAppContext.Provider, { value: client, children: children }));
18
+ };
19
+ function useIntegrationApp() {
20
+ return useContext(IntegrationAppContext);
21
+ }
22
+
23
+ function useConnectorSpec(integrationKey) {
24
+ const integrationApp = useIntegrationApp();
25
+ const [data, setData] = useState(null);
26
+ const [loading, setLoading] = useState(true);
27
+ const [error, setError] = useState(null);
28
+ useEffect(() => {
29
+ if (!integrationApp) {
30
+ return;
31
+ }
32
+ integrationApp
33
+ .integration(integrationKey)
34
+ .getConnectorSpec()
35
+ .then(setData)
36
+ .catch(setError)
37
+ .finally(() => setLoading(false));
38
+ }, [integrationApp, integrationKey]);
39
+ return { data, loading, error };
40
+ }
41
+
42
+ function useElement(props, accessorGenerator) {
43
+ const integrationApp = useIntegrationApp();
44
+ const [data, setData] = useState();
45
+ const [loading, setLoading] = useState(true);
46
+ const [error, setError] = useState(null);
47
+ const [refreshCounter, setRefreshCounter] = useState(0);
48
+ function updateDataWith(newData) {
49
+ if (data !== undefined) {
50
+ setData({
51
+ ...data,
52
+ ...newData,
53
+ });
54
+ }
55
+ }
56
+ function replaceDataWith(newData) {
57
+ setData(newData);
58
+ }
59
+ const selector = (props === null || props === void 0 ? void 0 : props.id)
60
+ ? props.id
61
+ : props;
62
+ const accessor = integrationApp
63
+ ? accessorGenerator(integrationApp)(selector)
64
+ : null;
65
+ useEffect(() => {
66
+ setLoading(true);
67
+ setError(null);
68
+ if (integrationApp && selector) {
69
+ accessor
70
+ .get()
71
+ .then(setData)
72
+ .catch(setError)
73
+ .finally(() => setLoading(false));
74
+ }
75
+ else {
76
+ setError(new Error('IntegrationApp not found. Was this component wrapped in <IntegrationAppProvider>?'));
77
+ }
78
+ }, [
79
+ integrationApp,
80
+ JSON.stringify(selector),
81
+ JSON.stringify(props),
82
+ refreshCounter,
83
+ ]);
84
+ async function create(createData) {
85
+ const returnedData = await accessor.create(createData);
86
+ replaceDataWith(returnedData);
87
+ return returnedData;
88
+ }
89
+ function refresh() {
90
+ setRefreshCounter(refreshCounter + 1);
91
+ }
92
+ async function patch(patch) {
93
+ if (typeof patch === 'object') {
94
+ updateDataWith(patch !== null && patch !== void 0 ? patch : {});
95
+ return accessor.patch(patch);
96
+ }
97
+ else {
98
+ return data;
99
+ }
100
+ }
101
+ async function put(putData) {
102
+ updateDataWith(putData);
103
+ return await accessor.put(putData);
104
+ }
105
+ async function archive() {
106
+ setData(null);
107
+ return accessor.archive();
108
+ }
109
+ return {
110
+ data,
111
+ create,
112
+ patch,
113
+ put,
114
+ archive,
115
+ refresh,
116
+ loading,
117
+ error,
118
+ accessor,
119
+ };
120
+ }
121
+
122
+ function useIntegration(idOrKey) {
123
+ const { data: integration, ...rest } = useElement(idOrKey, (integrationApp) => integrationApp.integration.bind(integrationApp));
124
+ return { integration, ...rest };
125
+ }
126
+
127
+ function useElements(initialQuery, accessorGenerator) {
128
+ const integrationApp = useIntegrationApp();
129
+ const refreshId = useRef(0);
130
+ const [items, setItems] = useState([]);
131
+ const [nextCursor, setNextCursor] = useState(undefined);
132
+ const [loading, setLoading] = useState(false);
133
+ const [error, setError] = useState(null);
134
+ async function loadMore() {
135
+ const startingRefreshId = refreshId.current;
136
+ const isFirstPage = !nextCursor;
137
+ function setStateIfCurrentRefresh(stateSetter, valueGetter) {
138
+ stateSetter((value) => startingRefreshId === refreshId.current ? valueGetter(value) : value);
139
+ }
140
+ setStateIfCurrentRefresh(setError, () => null);
141
+ setStateIfCurrentRefresh(setLoading, () => true);
142
+ const queryParams = {
143
+ ...initialQuery,
144
+ };
145
+ if (nextCursor)
146
+ queryParams.cursor = nextCursor;
147
+ try {
148
+ const data = await accessorGenerator(integrationApp).find(queryParams);
149
+ setStateIfCurrentRefresh(setNextCursor, () => data.cursor);
150
+ setStateIfCurrentRefresh(setItems, (items) => isFirstPage ? data.items : [...items, ...data.items]);
151
+ }
152
+ catch (e) {
153
+ setStateIfCurrentRefresh(setError, () => e);
154
+ }
155
+ finally {
156
+ setStateIfCurrentRefresh(setLoading, () => false);
157
+ }
158
+ }
159
+ useEffect(() => {
160
+ if (!integrationApp) {
161
+ setError(new Error('IntegrationApp not found. Was this component wrapped in <IntegrationAppProvider>?'));
162
+ return;
163
+ }
164
+ refresh();
165
+ }, [integrationApp, JSON.stringify(initialQuery)]);
166
+ async function refresh() {
167
+ refreshId.current += 1;
168
+ setNextCursor(undefined);
169
+ await loadMore();
170
+ }
171
+ return {
172
+ items,
173
+ refresh,
174
+ loadMore,
175
+ loading,
176
+ error,
177
+ };
178
+ }
179
+
180
+ function useIntegrations(query) {
181
+ const { ...rest } = useElements(query, (integrationApp) => integrationApp.integrations);
182
+ return {
183
+ ...rest,
184
+ };
185
+ }
186
+
187
+ function useConnection(id) {
188
+ const { data: connection, ...rest } = useElement(id, (integrationApp) => integrationApp.connection.bind(integrationApp));
189
+ return { connection, ...rest };
190
+ }
191
+
192
+ function useConnections(query) {
193
+ const { ...rest } = useElements(query, (integrationApp) => integrationApp.connections);
194
+ return {
195
+ ...rest,
196
+ };
197
+ }
198
+
199
+ function useFieldMapping(idOrKey) {
200
+ const { data: fieldMapping, ...rest } = useElement(idOrKey, (integrationApp) => integrationApp.fieldMapping.bind(integrationApp));
201
+ return { fieldMapping, ...rest };
202
+ }
203
+
204
+ function useFieldMappings(query) {
205
+ const { ...rest } = useElements(query, (integrationApp) => integrationApp.fieldMappings);
206
+ return {
207
+ ...rest,
208
+ };
209
+ }
210
+
211
+ function useFieldMappingInstance(selector) {
212
+ const { data: fieldMappingInstance, ...rest } = useElement(selector, (integrationApp) => integrationApp.fieldMappingInstance.bind(integrationApp));
213
+ const accessor = rest.accessor;
214
+ return {
215
+ fieldMappingInstance,
216
+ setup: () => accessor.setup(),
217
+ reset: () => accessor.reset(),
218
+ openConfiguration: (options) => accessor.openConfiguration(options),
219
+ ...rest,
220
+ };
221
+ }
222
+
223
+ function useFieldMappingInstances(query) {
224
+ const { ...rest } = useElements(query, (integrationApp) => integrationApp.fieldMappingInstances);
225
+ return {
226
+ ...rest,
227
+ };
228
+ }
229
+
230
+ function useDataSource(idOrKey) {
231
+ const { data: dataSource, ...rest } = useElement(idOrKey, (integrationApp) => integrationApp.dataSource.bind(integrationApp));
232
+ return { dataSource, ...rest };
233
+ }
234
+
235
+ function useDataSources(query) {
236
+ const { ...rest } = useElements(query, (integrationApp) => integrationApp.dataSources);
237
+ return {
238
+ ...rest,
239
+ };
240
+ }
241
+
242
+ function useDataSourceInstance(selector) {
243
+ const { data: dataSourceInstance, ...rest } = useElement(selector, (integrationApp) => integrationApp.dataSourceInstance.bind(integrationApp));
244
+ const accessor = rest.accessor;
245
+ return {
246
+ dataSourceInstance,
247
+ setup: () => accessor.setup(),
248
+ subscribe: (eventType) => accessor.subscribe(eventType),
249
+ resubscribe: (eventType) => accessor.resubscribe(eventType),
250
+ unsubscribe: (eventType) => accessor.unsubscribe(eventType),
251
+ pullUpdates: () => accessor.pullUpdates(),
252
+ fullSync: () => accessor.fullSync(),
253
+ reset: () => accessor.reset(),
254
+ openConfiguration: (options) => accessor.openConfiguration(options),
255
+ findRecords: (request) => accessor.findRecords(request),
256
+ findRecordById: (id) => accessor.findRecordById(id),
257
+ createRecord: (request) => accessor.createRecord(request),
258
+ updateRecord: (request) => accessor.updateRecord(request),
259
+ deleteRecord: (id) => accessor.deleteRecord(id),
260
+ unifiedFieldsToNative: (unifiedFields) => accessor.unifiedFieldsToNative(unifiedFields),
261
+ ...rest,
262
+ };
263
+ }
264
+
265
+ function useDataSourceInstances(query) {
266
+ const { ...rest } = useElements(query, (integrationApp) => integrationApp.dataSourceInstances);
267
+ return {
268
+ ...rest,
269
+ };
270
+ }
271
+
272
+ function useGetter(key, getter) {
273
+ const integrationApp = useIntegrationApp();
274
+ const [data, setData] = useState();
275
+ const [loading, setLoading] = useState(true);
276
+ const [error, setError] = useState(null);
277
+ const [refreshCounter, setRefreshCounter] = useState(0);
278
+ function refresh() {
279
+ setRefreshCounter(refreshCounter + 1);
280
+ }
281
+ useEffect(() => {
282
+ if (key !== undefined) {
283
+ setLoading(true);
284
+ setError(null);
285
+ if (integrationApp) {
286
+ getter()
287
+ .then(setData)
288
+ .catch(setError)
289
+ .finally(() => setLoading(false));
290
+ }
291
+ else {
292
+ setError(new Error('IntegrationApp not found. Was this component wrapped in <IntegrationAppProvider>?'));
293
+ }
294
+ }
295
+ }, [integrationApp, key, refreshCounter]);
296
+ return { data, loading, error, refresh };
297
+ }
298
+
299
+ function useDataSourceInstanceCollection(dataSourceInstance) {
300
+ const integrationApp = useIntegrationApp();
301
+ const { data: collection, ...rest } = useGetter(dataSourceInstance === null || dataSourceInstance === void 0 ? void 0 : dataSourceInstance.id, () => integrationApp.dataSourceInstance(dataSourceInstance.id).getCollection());
302
+ return {
303
+ collection,
304
+ ...rest,
305
+ };
306
+ }
307
+
308
+ function useDataSourceInstanceLocations(dataSourceInstance, args) {
309
+ var _a;
310
+ const integrationApp = useIntegrationApp();
311
+ const { data, ...rest } = useGetter(dataSourceInstance
312
+ ? `${dataSourceInstance.id}/${JSON.stringify(args)}`
313
+ : undefined, () => integrationApp
314
+ .dataSourceInstance(dataSourceInstance.id)
315
+ .getLocations(args));
316
+ return {
317
+ locations: (_a = data === null || data === void 0 ? void 0 : data.locations) !== null && _a !== void 0 ? _a : [],
318
+ ...rest,
319
+ };
320
+ }
321
+
322
+ function useDataSourceEvents(query) {
323
+ const { ...rest } = useElements(query, (integrationApp) => integrationApp.dataSourceEvents);
324
+ return {
325
+ ...rest,
326
+ };
327
+ }
328
+
329
+ function useAppEvents(query) {
330
+ const { ...rest } = useElements(query, (integrationApp) => integrationApp.appEvents);
331
+ return {
332
+ ...rest,
333
+ };
334
+ }
335
+
336
+ function useAppEventType(idOrKey) {
337
+ const { data: appEventType, ...rest } = useElement(idOrKey, (integrationApp) => integrationApp.appEventType.bind(integrationApp));
338
+ return { appEventType, ...rest };
339
+ }
340
+
341
+ function useAppEventTypes(query) {
342
+ const { ...rest } = useElements(query, (integrationApp) => integrationApp.appEventTypes);
343
+ return {
344
+ ...rest,
345
+ };
346
+ }
347
+
348
+ function useAppEventSubscription(selector) {
349
+ const { data: appEventSubscription, ...rest } = useElement(selector, (integrationApp) => integrationApp.appEventSubscription.bind(integrationApp));
350
+ return { appEventSubscription, ...rest };
351
+ }
352
+
353
+ function useAppEventSubscriptions(query) {
354
+ const { ...rest } = useElements(query, (integrationApp) => integrationApp.appEventSubscriptions);
355
+ return {
356
+ ...rest,
357
+ };
358
+ }
359
+
360
+ function useFlow(idOrSelector) {
361
+ const { data: flow, ...rest } = useElement(idOrSelector, (integrationApp) => integrationApp.flow.bind(integrationApp));
362
+ return { flow, ...rest };
363
+ }
364
+
365
+ function useFlows(query) {
366
+ const { ...rest } = useElements(query, (integrationApp) => integrationApp.flows);
367
+ return { ...rest };
368
+ }
369
+
370
+ function useFlowInstance(props) {
371
+ const { data: flowInstance, ...rest } = useElement(props, (integrationApp) => integrationApp.flowInstance.bind(integrationApp));
372
+ return { flowInstance, ...rest };
373
+ }
374
+
375
+ function useFlowInstances(query) {
376
+ const { ...rest } = useElements(query, (integrationApp) => integrationApp.flowInstances);
377
+ return {
378
+ ...rest,
379
+ };
380
+ }
381
+
382
+ function useFlowRun(id) {
383
+ const { data: flowRun, ...rest } = useElement(id, (integrationApp) => integrationApp.flowRun.bind(integrationApp));
384
+ return { flowRun, ...rest };
385
+ }
386
+
387
+ function useFlowRuns(query) {
388
+ const { ...rest } = useElements(query, (integrationApp) => integrationApp.flowRuns);
389
+ return { ...rest };
390
+ }
391
+
392
+ export { IntegrationAppProvider, useAppEventSubscription, useAppEventSubscriptions, useAppEventType, useAppEventTypes, useAppEvents, useConnection, useConnections, useConnectorSpec, useDataSource, useDataSourceInstanceCollection as useDataSourceCollection, useDataSourceEvents, useDataSourceInstance, useDataSourceInstances, useDataSourceInstanceLocations as useDataSourceLocations, useDataSources, useFieldMapping, useFieldMappingInstance, useFieldMappingInstances, useFieldMappings, useFlow, useFlowInstance, useFlowInstances, useFlowRun, useFlowRuns, useFlows, useIntegration, useIntegrationApp, useIntegrations };
393
+ //# sourceMappingURL=index.module.mjs.map