@integration-app/react 0.1.25 → 0.2.0

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