@integration-app/react 0.1.25 → 0.2.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 (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