@burdenoff/microfe-channel 2026.510.112

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 (156) hide show
  1. package/README.md +147 -0
  2. package/dist/channel/ChannelRoot.d.ts +32 -0
  3. package/dist/channel/ChannelRoot.d.ts.map +1 -0
  4. package/dist/channel/ChannelRoot.js +81 -0
  5. package/dist/channel/ChannelRoot.js.map +1 -0
  6. package/dist/channel/ChannelRoutes.d.ts +10 -0
  7. package/dist/channel/ChannelRoutes.d.ts.map +1 -0
  8. package/dist/channel/ChannelRoutes.js +104 -0
  9. package/dist/channel/ChannelRoutes.js.map +1 -0
  10. package/dist/channel/components/AdapterCredentialsForm.d.ts +20 -0
  11. package/dist/channel/components/AdapterCredentialsForm.d.ts.map +1 -0
  12. package/dist/channel/components/AdapterCredentialsForm.js +230 -0
  13. package/dist/channel/components/AdapterCredentialsForm.js.map +1 -0
  14. package/dist/channel/components/FeatureNotEnabled.d.ts +10 -0
  15. package/dist/channel/components/FeatureNotEnabled.d.ts.map +1 -0
  16. package/dist/channel/components/FeatureNotEnabled.js +32 -0
  17. package/dist/channel/components/FeatureNotEnabled.js.map +1 -0
  18. package/dist/channel/components/PermissionGuard.d.ts +15 -0
  19. package/dist/channel/components/PermissionGuard.d.ts.map +1 -0
  20. package/dist/channel/components/PermissionGuard.js +23 -0
  21. package/dist/channel/components/PermissionGuard.js.map +1 -0
  22. package/dist/channel/config/adapterCredentials.d.ts +44 -0
  23. package/dist/channel/config/adapterCredentials.d.ts.map +1 -0
  24. package/dist/channel/config/adapterCredentials.js +946 -0
  25. package/dist/channel/config/adapterCredentials.js.map +1 -0
  26. package/dist/channel/constants/permissions.d.ts +32 -0
  27. package/dist/channel/constants/permissions.d.ts.map +1 -0
  28. package/dist/channel/constants/permissions.js +30 -0
  29. package/dist/channel/constants/permissions.js.map +1 -0
  30. package/dist/channel/graphql/global-client.d.ts +11 -0
  31. package/dist/channel/graphql/global-client.d.ts.map +1 -0
  32. package/dist/channel/graphql/global-client.js +56 -0
  33. package/dist/channel/graphql/global-client.js.map +1 -0
  34. package/dist/channel/hooks/useChannelOrgSettings.d.ts +22 -0
  35. package/dist/channel/hooks/useChannelOrgSettings.d.ts.map +1 -0
  36. package/dist/channel/hooks/useChannelOrgSettings.js +61 -0
  37. package/dist/channel/hooks/useChannelOrgSettings.js.map +1 -0
  38. package/dist/channel/hooks/useChannelSubscription.d.ts +36 -0
  39. package/dist/channel/hooks/useChannelSubscription.d.ts.map +1 -0
  40. package/dist/channel/hooks/useChannelSubscription.js +111 -0
  41. package/dist/channel/hooks/useChannelSubscription.js.map +1 -0
  42. package/dist/channel/hooks/useChannels.d.ts +214 -0
  43. package/dist/channel/hooks/useChannels.d.ts.map +1 -0
  44. package/dist/channel/hooks/useChannels.js +416 -0
  45. package/dist/channel/hooks/useChannels.js.map +1 -0
  46. package/dist/channel/index.d.ts +12 -0
  47. package/dist/channel/index.d.ts.map +1 -0
  48. package/dist/channel/index.js +2 -0
  49. package/dist/channel/modules/channels/hooks/useExport.d.ts +45 -0
  50. package/dist/channel/modules/channels/hooks/useExport.d.ts.map +1 -0
  51. package/dist/channel/modules/channels/hooks/useExport.js +195 -0
  52. package/dist/channel/modules/channels/hooks/useExport.js.map +1 -0
  53. package/dist/channel/modules/channels/i18n.d.ts +14 -0
  54. package/dist/channel/modules/channels/i18n.d.ts.map +1 -0
  55. package/dist/channel/modules/channels/i18n.js +110 -0
  56. package/dist/channel/modules/channels/i18n.js.map +1 -0
  57. package/dist/channel/modules/channels/pages/ChannelDashboardPage.d.ts +14 -0
  58. package/dist/channel/modules/channels/pages/ChannelDashboardPage.d.ts.map +1 -0
  59. package/dist/channel/modules/channels/pages/ChannelDashboardPage.js +680 -0
  60. package/dist/channel/modules/channels/pages/ChannelDashboardPage.js.map +1 -0
  61. package/dist/channel/modules/channels/pages/ChannelDetailsPage.d.ts +7 -0
  62. package/dist/channel/modules/channels/pages/ChannelDetailsPage.d.ts.map +1 -0
  63. package/dist/channel/modules/channels/pages/ChannelDetailsPage.js +949 -0
  64. package/dist/channel/modules/channels/pages/ChannelDetailsPage.js.map +1 -0
  65. package/dist/channel/modules/channels/pages/ChannelSettingsPage.d.ts +7 -0
  66. package/dist/channel/modules/channels/pages/ChannelSettingsPage.d.ts.map +1 -0
  67. package/dist/channel/modules/channels/pages/ChannelSettingsPage.js +404 -0
  68. package/dist/channel/modules/channels/pages/ChannelSettingsPage.js.map +1 -0
  69. package/dist/channel/modules/channels/pages/ChannelUsersPage.d.ts +7 -0
  70. package/dist/channel/modules/channels/pages/ChannelUsersPage.d.ts.map +1 -0
  71. package/dist/channel/modules/channels/pages/ChannelUsersPage.js +315 -0
  72. package/dist/channel/modules/channels/pages/ChannelUsersPage.js.map +1 -0
  73. package/dist/channel/modules/channels/pages/ChannelsListPage.d.ts +7 -0
  74. package/dist/channel/modules/channels/pages/ChannelsListPage.d.ts.map +1 -0
  75. package/dist/channel/modules/channels/pages/ChannelsListPage.js +604 -0
  76. package/dist/channel/modules/channels/pages/ChannelsListPage.js.map +1 -0
  77. package/dist/channel/modules/channels/pages/ConnectionDetailsPage.d.ts +7 -0
  78. package/dist/channel/modules/channels/pages/ConnectionDetailsPage.d.ts.map +1 -0
  79. package/dist/channel/modules/channels/pages/ConnectionDetailsPage.js +323 -0
  80. package/dist/channel/modules/channels/pages/ConnectionDetailsPage.js.map +1 -0
  81. package/dist/channel/modules/channels/pages/ConnectionsListPage.d.ts +7 -0
  82. package/dist/channel/modules/channels/pages/ConnectionsListPage.d.ts.map +1 -0
  83. package/dist/channel/modules/channels/pages/ConnectionsListPage.js +276 -0
  84. package/dist/channel/modules/channels/pages/ConnectionsListPage.js.map +1 -0
  85. package/dist/channel/modules/channels/pages/CreateChannelPage.d.ts +12 -0
  86. package/dist/channel/modules/channels/pages/CreateChannelPage.d.ts.map +1 -0
  87. package/dist/channel/modules/channels/pages/CreateChannelPage.js +456 -0
  88. package/dist/channel/modules/channels/pages/CreateChannelPage.js.map +1 -0
  89. package/dist/channel/modules/channels/pages/CreateConnectionPage.d.ts +11 -0
  90. package/dist/channel/modules/channels/pages/CreateConnectionPage.d.ts.map +1 -0
  91. package/dist/channel/modules/channels/pages/CreateConnectionPage.js +219 -0
  92. package/dist/channel/modules/channels/pages/CreateConnectionPage.js.map +1 -0
  93. package/dist/channel/modules/channels/pages/DeliveryHistoryPage.d.ts +7 -0
  94. package/dist/channel/modules/channels/pages/DeliveryHistoryPage.d.ts.map +1 -0
  95. package/dist/channel/modules/channels/pages/DeliveryHistoryPage.js +375 -0
  96. package/dist/channel/modules/channels/pages/DeliveryHistoryPage.js.map +1 -0
  97. package/dist/channel/modules/channels/pages/EditChannelPage.d.ts +8 -0
  98. package/dist/channel/modules/channels/pages/EditChannelPage.d.ts.map +1 -0
  99. package/dist/channel/modules/channels/pages/EditChannelPage.js +459 -0
  100. package/dist/channel/modules/channels/pages/EditChannelPage.js.map +1 -0
  101. package/dist/channel/modules/channels/pages/EditConnectionPage.d.ts +10 -0
  102. package/dist/channel/modules/channels/pages/EditConnectionPage.d.ts.map +1 -0
  103. package/dist/channel/modules/channels/pages/EditConnectionPage.js +199 -0
  104. package/dist/channel/modules/channels/pages/EditConnectionPage.js.map +1 -0
  105. package/dist/channel/modules/channels/pages/SendMessagePage.d.ts +8 -0
  106. package/dist/channel/modules/channels/pages/SendMessagePage.d.ts.map +1 -0
  107. package/dist/channel/modules/channels/pages/SendMessagePage.js +403 -0
  108. package/dist/channel/modules/channels/pages/SendMessagePage.js.map +1 -0
  109. package/dist/channel/modules/channels/pages/WebhookEventsPage.d.ts +7 -0
  110. package/dist/channel/modules/channels/pages/WebhookEventsPage.d.ts.map +1 -0
  111. package/dist/channel/modules/channels/pages/WebhookEventsPage.js +303 -0
  112. package/dist/channel/modules/channels/pages/WebhookEventsPage.js.map +1 -0
  113. package/dist/channel/modules/channels/pages/index.d.ts +18 -0
  114. package/dist/channel/modules/channels/pages/index.d.ts.map +1 -0
  115. package/dist/channel/modules/channels/pages/index.js +14 -0
  116. package/dist/channel/pages/ChannelLandingPage.d.ts +9 -0
  117. package/dist/channel/pages/ChannelLandingPage.d.ts.map +1 -0
  118. package/dist/channel/pages/ChannelLandingPage.js +72 -0
  119. package/dist/channel/pages/ChannelLandingPage.js.map +1 -0
  120. package/dist/channel/providers/ChannelProvider.d.ts +16 -0
  121. package/dist/channel/providers/ChannelProvider.d.ts.map +1 -0
  122. package/dist/channel/providers/ChannelProvider.js +35 -0
  123. package/dist/channel/providers/ChannelProvider.js.map +1 -0
  124. package/dist/channel/types/index.d.ts +89 -0
  125. package/dist/channel/types/index.d.ts.map +1 -0
  126. package/dist/channel/utils/shellBridge.d.ts +59 -0
  127. package/dist/channel/utils/shellBridge.d.ts.map +1 -0
  128. package/dist/channel/utils/shellBridge.js +36 -0
  129. package/dist/channel/utils/shellBridge.js.map +1 -0
  130. package/dist/dev/App.d.ts +6 -0
  131. package/dist/dev/App.d.ts.map +1 -0
  132. package/dist/dev/main.d.ts +2 -0
  133. package/dist/dev/main.d.ts.map +1 -0
  134. package/dist/generated/global-operations.d.ts +1547 -0
  135. package/dist/generated/global-operations.d.ts.map +1 -0
  136. package/dist/generated/global-operations.js +466 -0
  137. package/dist/generated/global-operations.js.map +1 -0
  138. package/dist/generated/global-types.d.ts +21289 -0
  139. package/dist/generated/global-types.d.ts.map +1 -0
  140. package/dist/generated/global-types.js +14 -0
  141. package/dist/generated/global-types.js.map +1 -0
  142. package/dist/generated/wspace-operations.d.ts +2 -0
  143. package/dist/generated/wspace-operations.d.ts.map +1 -0
  144. package/dist/generated/wspace-types.d.ts +55214 -0
  145. package/dist/generated/wspace-types.d.ts.map +1 -0
  146. package/dist/index.d.ts +5 -0
  147. package/dist/index.d.ts.map +1 -0
  148. package/dist/index.js +4 -0
  149. package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js +24 -0
  150. package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +1 -0
  151. package/dist/node_modules/@apollo/client/errors/utils.js +16 -0
  152. package/dist/node_modules/@apollo/client/errors/utils.js.map +1 -0
  153. package/dist/utils/nativeBridge.d.ts +3 -0
  154. package/dist/utils/nativeBridge.d.ts.map +1 -0
  155. package/dist/utils/nativeBridge.js +2 -0
  156. package/package.json +116 -0
@@ -0,0 +1,214 @@
1
+ import { GetChannelsQuery, GetChannelQuery, GetDeliveryAttemptsQuery, GetWebhookEventsQuery, GetUserPlatformConnectionsQuery, GetDeliveryStatsQuery } from '../../generated/global-operations';
2
+ import { ChannelPlatform as _ChannelPlatform, ChannelStatus as _ChannelStatus, ChannelAuthType as _ChannelAuthType, ConnectionHealth as _ConnectionHealth, AdapterType as _AdapterType, DeliveryPriority as _DeliveryPriority, DeliveryStatus as _DeliveryStatus, ChannelFilterInput as _ChannelFilterInput, CreateChannelInput as _CreateChannelInput, UpdateChannelInput as _UpdateChannelInput, CreateConnectionInput as _CreateConnectionInput, UpdateConnectionInput as _UpdateConnectionInput, ChannelHealthCheck as _ChannelHealthCheck, ConnectionTestResult as _ConnectionTestResult, ChannelDeliveryResult as _ChannelDeliveryResult, ChannelDeliveryError as _ChannelDeliveryError, ChannelDeliveryContentInput as _ChannelDeliveryContentInput, ChannelDeliveryInput as _ChannelDeliveryInput, BulkChannelDeliveryResult as _BulkChannelDeliveryResult, UserPresenceStatus as _UserPresenceStatus, PairingStatus as _PairingStatus, WebhookProcessingStatus as _WebhookProcessingStatus } from '../../generated/global-types';
3
+
4
+ /** Communication platform — extends generated enum with values pending backend schema update */
5
+ export type ChannelPlatform = `${_ChannelPlatform}` | 'INAPP';
6
+ /** Channel lifecycle status */
7
+ export type ChannelStatus = `${_ChannelStatus}`;
8
+ /** Authentication method for connections */
9
+ export type ChannelAuthType = `${_ChannelAuthType}`;
10
+ /** Connection health status */
11
+ export type ConnectionHealth = `${_ConnectionHealth}`;
12
+ /** Specific adapter/provider type — extends generated enum with values pending backend schema update */
13
+ export type AdapterType = `${_AdapterType}` | 'INAPP_NATIVE' | 'NOVU' | 'KNOCKLABS' | 'SENDGRID' | 'MAILGUN' | 'POSTMARK' | 'MANDRILL' | 'RESEND' | 'SMTP' | 'VONAGE' | 'PLIVO' | 'MESSAGEBIRD' | 'INFOBIP' | 'APNS' | 'ONESIGNAL' | 'EXPO' | 'WEBCHAT_NATIVE' | 'SLACK_WEBHOOK' | 'TEAMS_WEBHOOK' | 'DISCORD_WEBHOOK';
14
+ /** Delivery priority level */
15
+ export type DeliveryPriority = `${_DeliveryPriority}`;
16
+ /** Message delivery status */
17
+ export type DeliveryStatus = `${_DeliveryStatus}`;
18
+ /** User presence status on a platform */
19
+ export type UserPresenceStatus = `${_UserPresenceStatus}`;
20
+ /** Pairing status for Bundle-2 flow */
21
+ export type PairingStatus = `${_PairingStatus}`;
22
+ /** Webhook event processing status */
23
+ export type WebhookProcessingStatus = `${_WebhookProcessingStatus}`;
24
+ type EnumToString<T> = [T] extends [null] ? null : T extends null | undefined ? EnumToString<NonNullable<T>> | Extract<T, null | undefined> : T extends _ChannelPlatform ? ChannelPlatform : T extends _ChannelStatus ? ChannelStatus : T extends _ChannelAuthType ? ChannelAuthType : T extends _ConnectionHealth ? ConnectionHealth : T extends _AdapterType ? AdapterType : T extends _DeliveryPriority ? DeliveryPriority : T extends _DeliveryStatus ? DeliveryStatus : T extends _UserPresenceStatus ? UserPresenceStatus : T extends _PairingStatus ? PairingStatus : T extends _WebhookProcessingStatus ? WebhookProcessingStatus : T extends Array<infer U> ? Array<EnumToString<U>> : T extends object ? {
25
+ [K in keyof T]: EnumToString<T[K]>;
26
+ } : T;
27
+ export type CreateChannelInput = EnumToString<_CreateChannelInput>;
28
+ export type UpdateChannelInput = EnumToString<_UpdateChannelInput>;
29
+ export type CreateConnectionInput = EnumToString<_CreateConnectionInput>;
30
+ export type UpdateConnectionInput = EnumToString<_UpdateConnectionInput>;
31
+ export type ChannelFilterInput = EnumToString<_ChannelFilterInput>;
32
+ export type ChannelDeliveryContentInput = EnumToString<_ChannelDeliveryContentInput>;
33
+ export type ChannelDeliveryInput = EnumToString<_ChannelDeliveryInput>;
34
+ export type { ChannelPaginationInput, ChannelDeliveryOptionsInput, ChannelRetryPolicyInput, BulkChannelDeliveryInput, } from '../../generated/global-types';
35
+ export type ChannelHealthCheck = EnumToString<_ChannelHealthCheck>;
36
+ export type ConnectionTestResult = EnumToString<_ConnectionTestResult>;
37
+ export type ChannelDeliveryResult = EnumToString<_ChannelDeliveryResult>;
38
+ export type ChannelDeliveryError = EnumToString<_ChannelDeliveryError>;
39
+ export type BulkChannelDeliveryResult = EnumToString<_BulkChannelDeliveryResult>;
40
+ /** Channel as returned by GetChannels query (list item) */
41
+ export type Channel = NonNullable<GetChannelsQuery['getChannels']['items'][number]>;
42
+ /** Channel as returned by GetChannel query (full detail) */
43
+ export type ChannelDetail = NonNullable<GetChannelQuery['getChannel']>;
44
+ /** ChannelConnection from the GetChannel query (full connection detail) */
45
+ export type ChannelConnection = NonNullable<ChannelDetail['connection']>;
46
+ /** ChannelList response shape */
47
+ export type ChannelList = GetChannelsQuery['getChannels'];
48
+ /** Message delivery attempt as returned by GetDeliveryAttempts query */
49
+ export type DeliveryAttempt = NonNullable<GetDeliveryAttemptsQuery['getChannelDeliveryAttempts']['items'][number]>;
50
+ /** Webhook event as returned by GetWebhookEvents query */
51
+ export type WebhookEvent = NonNullable<GetWebhookEventsQuery['getChannelWebhookEvents']['items'][number]>;
52
+ /** User platform connection as returned by GetUserPlatformConnections query */
53
+ export type UserPlatformConnection = NonNullable<GetUserPlatformConnectionsQuery['listUserPlatformConnectionsByChannel']['items'][number]>;
54
+ /** Delivery statistics as returned by GetDeliveryStats query */
55
+ export type DeliveryStats = NonNullable<GetDeliveryStatsQuery['getDeliveryStats']>;
56
+ /**
57
+ * Hook for managing channels list
58
+ */
59
+ export declare function useChannels(initialFilter?: ChannelFilterInput): {
60
+ channels: {
61
+ __typename?: "Channel";
62
+ id: string;
63
+ name: string;
64
+ description?: string | null;
65
+ platform: _ChannelPlatform;
66
+ adapterType?: _AdapterType | null;
67
+ status: _ChannelStatus;
68
+ priority: number;
69
+ connectionHealth: _ConnectionHealth;
70
+ lastHealthCheckAt?: string | null;
71
+ healthCheckError?: string | null;
72
+ consecutiveFailures: number;
73
+ organizationId: string;
74
+ createdBy: string;
75
+ onBehalfOf: string;
76
+ platformConfig?: Record<string, unknown> | null;
77
+ isConnected: boolean;
78
+ messageCount24h: number;
79
+ createdAt: string;
80
+ updatedAt: string;
81
+ connection?: {
82
+ __typename?: "ChannelConnection";
83
+ id: string;
84
+ authType: _ChannelAuthType;
85
+ isActive: boolean;
86
+ isHealthy: boolean;
87
+ needsTokenRefresh: boolean;
88
+ lastTestedAt?: string | null;
89
+ testStatus?: string | null;
90
+ tagAssignments: Array<{
91
+ __typename?: "ChannelConnectionTagAssignment";
92
+ id: string;
93
+ tagId: string;
94
+ }>;
95
+ } | null;
96
+ tagAssignments: Array<{
97
+ __typename?: "ChannelTagAssignment";
98
+ id: string;
99
+ tagId: string;
100
+ }>;
101
+ }[];
102
+ isLoading: boolean;
103
+ error: string | null;
104
+ hasMore: boolean;
105
+ total: number;
106
+ filter: {
107
+ adapterType?: AdapterType | null | undefined;
108
+ channelType?: import('../../generated/global-types').InputMaybe<import('../../generated/global-types').ChannelType> | undefined;
109
+ context?: {
110
+ organizationId?: import('../../generated/global-types').InputMaybe<import('../../generated/global-types').Scalars["ID"]["input"]> | undefined;
111
+ projectId?: import('../../generated/global-types').InputMaybe<import('../../generated/global-types').Scalars["ID"]["input"]> | undefined;
112
+ userId?: import('../../generated/global-types').InputMaybe<import('../../generated/global-types').Scalars["ID"]["input"]> | undefined;
113
+ workspaceId?: import('../../generated/global-types').InputMaybe<import('../../generated/global-types').Scalars["ID"]["input"]> | undefined;
114
+ } | null | undefined;
115
+ createdBy?: import('../../generated/global-types').InputMaybe<import('../../generated/global-types').Scalars["ID"]["input"]> | undefined;
116
+ organizationId?: import('../../generated/global-types').InputMaybe<import('../../generated/global-types').Scalars["ID"]["input"]> | undefined;
117
+ platform?: ChannelPlatform | null | undefined;
118
+ search?: import('../../generated/global-types').InputMaybe<import('../../generated/global-types').Scalars["String"]["input"]> | undefined;
119
+ status?: "ACTIVE" | "ARCHIVED" | "ERROR" | "INACTIVE" | "SUSPENDED" | null | undefined;
120
+ };
121
+ refetch: (pagination?: {
122
+ offset?: number;
123
+ limit?: number;
124
+ }) => Promise<void>;
125
+ createChannel: (input: CreateChannelInput) => Promise<Channel | null>;
126
+ updateChannel: (id: string, input: UpdateChannelInput) => Promise<Channel | null>;
127
+ deleteChannel: (id: string) => Promise<boolean>;
128
+ activateChannel: (id: string) => Promise<boolean>;
129
+ deactivateChannel: (id: string) => Promise<boolean>;
130
+ runHealthCheck: (id: string) => Promise<ChannelHealthCheck | null>;
131
+ updateFilter: (newFilter: Partial<ChannelFilterInput>) => void;
132
+ resetFilter: () => void;
133
+ deliverNotification: (input: ChannelDeliveryInput) => Promise<{
134
+ success: boolean;
135
+ results?: ChannelDeliveryResult[];
136
+ error?: string;
137
+ }>;
138
+ };
139
+ /**
140
+ * Hook for managing a single channel
141
+ */
142
+ export declare function useChannel(id: string | undefined): {
143
+ channel: {
144
+ __typename?: "Channel";
145
+ id: string;
146
+ name: string;
147
+ description?: string | null;
148
+ platform: _ChannelPlatform;
149
+ adapterType?: _AdapterType | null;
150
+ status: _ChannelStatus;
151
+ priority: number;
152
+ connectionHealth: _ConnectionHealth;
153
+ lastHealthCheckAt?: string | null;
154
+ healthCheckError?: string | null;
155
+ consecutiveFailures: number;
156
+ organizationId: string;
157
+ createdBy: string;
158
+ onBehalfOf: string;
159
+ platformConfig?: Record<string, unknown> | null;
160
+ isConnected: boolean;
161
+ messageCount24h: number;
162
+ createdAt: string;
163
+ updatedAt: string;
164
+ connection?: {
165
+ __typename?: "ChannelConnection";
166
+ id: string;
167
+ channelId: string;
168
+ authType: _ChannelAuthType;
169
+ isActive: boolean;
170
+ platformMetadata?: Record<string, unknown> | null;
171
+ tokenExpiresAt?: string | null;
172
+ lastRefreshedAt?: string | null;
173
+ lastTestedAt?: string | null;
174
+ testStatus?: string | null;
175
+ needsTokenRefresh: boolean;
176
+ isHealthy: boolean;
177
+ daysUntilExpiry?: number | null;
178
+ createdAt: string;
179
+ updatedAt: string;
180
+ tagAssignments: Array<{
181
+ __typename?: "ChannelConnectionTagAssignment";
182
+ id: string;
183
+ tagId: string;
184
+ }>;
185
+ } | null;
186
+ tagAssignments: Array<{
187
+ __typename?: "ChannelTagAssignment";
188
+ id: string;
189
+ tagId: string;
190
+ }>;
191
+ } | null;
192
+ isLoading: boolean;
193
+ error: string | null;
194
+ refetch: () => Promise<void>;
195
+ updateChannel: (input: UpdateChannelInput) => Promise<ChannelDetail | null>;
196
+ runHealthCheck: () => Promise<ChannelHealthCheck | null>;
197
+ createConnection: (input: Omit<CreateConnectionInput, "channelId">) => Promise<ChannelConnection | null>;
198
+ updateConnection: (connectionId: string, input: UpdateConnectionInput) => Promise<ChannelConnection | null>;
199
+ deleteConnection: (connectionId: string) => Promise<void>;
200
+ testConnection: (connectionId: string) => Promise<ConnectionTestResult | null>;
201
+ sendTestNotification: (recipient: string, message: string, options?: {
202
+ subject?: string;
203
+ html?: string;
204
+ }) => Promise<ChannelDeliveryResult | null>;
205
+ fetchDeliveryAttempts: (limit?: number) => Promise<DeliveryAttempt[]>;
206
+ fetchWebhookEvents: (limit?: number) => Promise<WebhookEvent[]>;
207
+ fetchUserPlatformConnections: (limit?: number) => Promise<UserPlatformConnection[]>;
208
+ retryDelivery: (attemptId: string) => Promise<{
209
+ success: boolean;
210
+ error?: string;
211
+ }>;
212
+ fetchDeliveryStats: (startDate?: string, endDate?: string) => Promise<DeliveryStats | null>;
213
+ };
214
+ //# sourceMappingURL=useChannels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChannels.d.ts","sourceRoot":"","sources":["../../../src/channel/hooks/useChannels.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,416 @@
1
+ import { useChannel as e } from "../providers/ChannelProvider.js";
2
+ import { emitShellEvent as t } from "../utils/shellBridge.js";
3
+ import { getGlobalChannelClient as n } from "../graphql/global-client.js";
4
+ import { ActivateChannelDocument as r, CreateChannelDocument as i, CreateConnectionDocument as a, DeactivateChannelDocument as o, DeleteChannelDocument as s, DeleteConnectionDocument as c, DeliverNotificationDocument as l, GetChannelDocument as u, GetChannelsDocument as d, GetDeliveryAttemptsDocument as f, GetDeliveryStatsDocument as p, GetUserPlatformConnectionsDocument as m, GetWebhookEventsDocument as h, RetryDeliveryDocument as g, RunChannelHealthCheckDocument as _, TestConnectionHealthDocument as v, UpdateChannelDocument as y, UpdateConnectionDocument as b } from "../../generated/global-operations.js";
5
+ import { useCallback as x, useEffect as S, useState as C } from "react";
6
+ //#region src/channel/hooks/useChannels.ts
7
+ function w(e, t, n = {}) {
8
+ console.error(`[channel] ${t}`, e, n);
9
+ }
10
+ function T(a) {
11
+ let { authToken: c, apiGatewayUrl: u, organizationId: f } = e(), [p, m] = C([]), [h, g] = C(!0), [v, b] = C(null), [T, E] = C(!1), [D, O] = C(0), [k, A] = C(a ?? {}), j = x(() => n(u, c, f), [
12
+ u,
13
+ c,
14
+ f
15
+ ]), M = x(async (e) => {
16
+ g(!0), b(null);
17
+ try {
18
+ let t = (await j().query({
19
+ query: d,
20
+ variables: {
21
+ filter: k,
22
+ pagination: e ?? {
23
+ offset: 0,
24
+ limit: 50
25
+ }
26
+ },
27
+ fetchPolicy: "network-only"
28
+ })).data?.getChannels;
29
+ t && (m(t.items), O(t.total), E(t.hasMore));
30
+ } catch (e) {
31
+ let t = e instanceof Error ? e.message : "Failed to fetch channels";
32
+ w(e, "Failed to fetch channels"), b(t);
33
+ } finally {
34
+ g(!1);
35
+ }
36
+ }, [j, k]);
37
+ return S(() => {
38
+ Promise.resolve().then(() => M());
39
+ }, [M]), {
40
+ channels: p,
41
+ isLoading: h,
42
+ error: v,
43
+ hasMore: T,
44
+ total: D,
45
+ filter: k,
46
+ refetch: M,
47
+ createChannel: x(async (e) => {
48
+ try {
49
+ let n = (await j().mutate({
50
+ mutation: i,
51
+ variables: { input: e }
52
+ })).data?.createChannel ?? null;
53
+ return n && t("channel.created", {
54
+ id: n.id,
55
+ platform: n.platform
56
+ }), await M(), n;
57
+ } catch (e) {
58
+ let t = e instanceof Error ? e.message : "Failed to create channel";
59
+ return w(e, "Failed to create channel"), b(t), null;
60
+ }
61
+ }, [j, M]),
62
+ updateChannel: x(async (e, n) => {
63
+ try {
64
+ let r = await j().mutate({
65
+ mutation: y,
66
+ variables: {
67
+ id: e,
68
+ input: n
69
+ }
70
+ });
71
+ return t("channel.updated", { id: e }), await M(), r.data?.updateChannel ?? null;
72
+ } catch (e) {
73
+ let t = e instanceof Error ? e.message : "Failed to update channel";
74
+ return w(e, "Failed to update channel"), b(t), null;
75
+ }
76
+ }, [j, M]),
77
+ deleteChannel: x(async (e) => {
78
+ try {
79
+ return await j().mutate({
80
+ mutation: s,
81
+ variables: { id: e }
82
+ }), t("channel.deleted", { id: e }), await M(), !0;
83
+ } catch (e) {
84
+ let t = e instanceof Error ? e.message : "Failed to delete channel";
85
+ return w(e, "Failed to delete channel"), b(t), !1;
86
+ }
87
+ }, [j, M]),
88
+ activateChannel: x(async (e) => {
89
+ try {
90
+ return await j().mutate({
91
+ mutation: r,
92
+ variables: { id: e }
93
+ }), t("channel.updated", {
94
+ id: e,
95
+ action: "activated"
96
+ }), await M(), !0;
97
+ } catch (e) {
98
+ let t = e instanceof Error ? e.message : "Failed to activate channel";
99
+ return w(e, "Failed to activate channel"), b(t), !1;
100
+ }
101
+ }, [j, M]),
102
+ deactivateChannel: x(async (e) => {
103
+ try {
104
+ return await j().mutate({
105
+ mutation: o,
106
+ variables: { id: e }
107
+ }), t("channel.updated", {
108
+ id: e,
109
+ action: "deactivated"
110
+ }), await M(), !0;
111
+ } catch (e) {
112
+ let t = e instanceof Error ? e.message : "Failed to deactivate channel";
113
+ return w(e, "Failed to deactivate channel"), b(t), !1;
114
+ }
115
+ }, [j, M]),
116
+ runHealthCheck: x(async (e) => {
117
+ try {
118
+ let t = await j().mutate({
119
+ mutation: _,
120
+ variables: { id: e }
121
+ });
122
+ return await M(), t.data?.runChannelHealthCheck ?? null;
123
+ } catch (e) {
124
+ let t = e instanceof Error ? e.message : "Failed to run health check";
125
+ return w(e, "Failed to run health check"), b(t), null;
126
+ }
127
+ }, [j, M]),
128
+ updateFilter: x((e) => {
129
+ A((t) => ({
130
+ ...t,
131
+ ...e
132
+ }));
133
+ }, []),
134
+ resetFilter: x(() => {
135
+ A({});
136
+ }, []),
137
+ deliverNotification: x(async (e) => {
138
+ try {
139
+ let n = (await j().mutate({
140
+ mutation: l,
141
+ variables: { input: e }
142
+ })).data?.deliverNotification;
143
+ return n ? (t("delivery.completed", {
144
+ success: n.success ?? !1,
145
+ messageId: n.messageId,
146
+ platform: n.platform,
147
+ status: n.status
148
+ }), {
149
+ success: n.success ?? !1,
150
+ results: [n]
151
+ }) : {
152
+ success: !1,
153
+ error: "No data returned"
154
+ };
155
+ } catch (e) {
156
+ let t = e instanceof Error ? e.message : "Failed to deliver notification";
157
+ return w(e, "Failed to deliver notification"), {
158
+ success: !1,
159
+ error: t
160
+ };
161
+ }
162
+ }, [j])
163
+ };
164
+ }
165
+ function E(r) {
166
+ let { authToken: i, apiGatewayUrl: o, organizationId: s } = e(), [d, T] = C(null), [E, D] = C(!0), [O, k] = C(null), A = x(() => n(o, i, s), [
167
+ o,
168
+ i,
169
+ s
170
+ ]), j = x(async () => {
171
+ if (!r) {
172
+ T(null), D(!1);
173
+ return;
174
+ }
175
+ D(!0), k(null);
176
+ try {
177
+ T((await A().query({
178
+ query: u,
179
+ variables: { id: r },
180
+ fetchPolicy: "network-only"
181
+ })).data?.getChannel ?? null);
182
+ } catch (e) {
183
+ let t = e instanceof Error ? e.message : "Failed to fetch channel";
184
+ w(e, "Failed to fetch channel"), k(t);
185
+ } finally {
186
+ D(!1);
187
+ }
188
+ }, [r, A]);
189
+ S(() => {
190
+ Promise.resolve().then(() => j());
191
+ }, [j]);
192
+ let M = x(async (e) => {
193
+ if (!r) return null;
194
+ try {
195
+ let n = await A().mutate({
196
+ mutation: y,
197
+ variables: {
198
+ id: r,
199
+ input: e
200
+ }
201
+ });
202
+ return t("channel.updated", { id: r }), await j(), n.data?.updateChannel ?? null;
203
+ } catch (e) {
204
+ let t = e instanceof Error ? e.message : "Failed to update channel";
205
+ return w(e, "Failed to update channel"), k(t), null;
206
+ }
207
+ }, [
208
+ r,
209
+ A,
210
+ j
211
+ ]), N = x(async () => {
212
+ if (!r) return null;
213
+ try {
214
+ let e = await A().mutate({
215
+ mutation: _,
216
+ variables: { id: r }
217
+ });
218
+ return await j(), e.data?.runChannelHealthCheck ?? null;
219
+ } catch (e) {
220
+ let t = e instanceof Error ? e.message : "Failed to run health check";
221
+ return w(e, "Failed to run health check"), k(t), null;
222
+ }
223
+ }, [
224
+ r,
225
+ A,
226
+ j
227
+ ]), P = x(async (e) => {
228
+ if (!r) return null;
229
+ try {
230
+ let n = (await A().mutate({
231
+ mutation: a,
232
+ variables: { input: {
233
+ ...e,
234
+ channelId: r
235
+ } }
236
+ })).data?.createConnection ?? null;
237
+ return n && t("connection.created", {
238
+ id: n.id,
239
+ channelId: r
240
+ }), await j(), n;
241
+ } catch (e) {
242
+ let t = e instanceof Error ? e.message : "Failed to create connection";
243
+ return w(e, "Failed to create connection"), k(t), null;
244
+ }
245
+ }, [
246
+ r,
247
+ A,
248
+ j
249
+ ]), F = x(async (e, n) => {
250
+ try {
251
+ let r = await A().mutate({
252
+ mutation: b,
253
+ variables: {
254
+ id: e,
255
+ input: n
256
+ }
257
+ });
258
+ return t("connection.updated", { id: e }), await j(), r.data?.updateConnection ?? null;
259
+ } catch (e) {
260
+ let t = e instanceof Error ? e.message : "Failed to update connection";
261
+ return w(e, "Failed to update connection"), k(t), null;
262
+ }
263
+ }, [A, j]), I = x(async (e) => {
264
+ try {
265
+ await A().mutate({
266
+ mutation: c,
267
+ variables: { id: e },
268
+ update(t) {
269
+ t.evict({ id: `ChannelConnection:${e}` }), t.gc();
270
+ }
271
+ }), t("connection.deleted", { id: e }), await j();
272
+ } catch (e) {
273
+ throw w(e, "Failed to delete connection"), e;
274
+ }
275
+ }, [A, j]), L = x(async (e) => {
276
+ try {
277
+ let t = await A().mutate({
278
+ mutation: v,
279
+ variables: { id: e }
280
+ });
281
+ return await j(), t.data?.testConnectionHealth ?? null;
282
+ } catch (e) {
283
+ throw w(e, "Failed to test connection"), e;
284
+ }
285
+ }, [A, j]), R = x(async (e, n, r) => {
286
+ if (!d) return null;
287
+ try {
288
+ let i = A(), a = { text: n };
289
+ d.platform === "EMAIL" ? (a.subject = r?.subject ?? "Test Notification", r?.html && (a.html = r.html)) : d.platform === "PUSH" && (a.title = r?.subject ?? "Test Notification");
290
+ let o = {
291
+ platform: d.platform,
292
+ organizationId: d.organizationId,
293
+ recipient: e,
294
+ content: a,
295
+ connectionId: d.connection?.id
296
+ }, s = (await i.mutate({
297
+ mutation: l,
298
+ variables: { input: o }
299
+ })).data?.deliverNotification ?? null;
300
+ return s && t("delivery.completed", {
301
+ success: s.success ?? !1,
302
+ messageId: s.messageId,
303
+ platform: s.platform,
304
+ status: s.status,
305
+ test: !0
306
+ }), s;
307
+ } catch (e) {
308
+ throw w(e, "Failed to send test message"), e;
309
+ }
310
+ }, [d, A]), z = x(async (e = 50) => {
311
+ if (!r) return [];
312
+ try {
313
+ return (await A().query({
314
+ query: f,
315
+ variables: {
316
+ channelId: r,
317
+ limit: e
318
+ },
319
+ fetchPolicy: "network-only"
320
+ })).data?.getChannelDeliveryAttempts?.items ?? [];
321
+ } catch (e) {
322
+ let t = e instanceof Error ? e.message : "Failed to fetch delivery attempts";
323
+ return w(e, "Failed to fetch delivery attempts"), k(t), [];
324
+ }
325
+ }, [r, A]);
326
+ return {
327
+ channel: d,
328
+ isLoading: E,
329
+ error: O,
330
+ refetch: j,
331
+ updateChannel: M,
332
+ runHealthCheck: N,
333
+ createConnection: P,
334
+ updateConnection: F,
335
+ deleteConnection: I,
336
+ testConnection: L,
337
+ sendTestNotification: R,
338
+ fetchDeliveryAttempts: z,
339
+ fetchWebhookEvents: x(async (e = 50) => {
340
+ if (!r) return [];
341
+ try {
342
+ return (await A().query({
343
+ query: h,
344
+ variables: {
345
+ channelId: r,
346
+ limit: e
347
+ },
348
+ fetchPolicy: "network-only"
349
+ })).data?.getChannelWebhookEvents?.items ?? [];
350
+ } catch (e) {
351
+ let t = e instanceof Error ? e.message : "Failed to fetch webhook events";
352
+ return w(e, "Failed to fetch webhook events"), k(t), [];
353
+ }
354
+ }, [r, A]),
355
+ fetchUserPlatformConnections: x(async (e = 50) => {
356
+ if (!r) return [];
357
+ try {
358
+ return (await A().query({
359
+ query: m,
360
+ variables: {
361
+ channelId: r,
362
+ pagination: { limit: e }
363
+ },
364
+ fetchPolicy: "network-only"
365
+ })).data?.listUserPlatformConnectionsByChannel?.items ?? [];
366
+ } catch (e) {
367
+ let t = e instanceof Error ? e.message : "Failed to fetch user platform connections";
368
+ return w(e, "Failed to fetch user platform connections"), k(t), [];
369
+ }
370
+ }, [r, A]),
371
+ retryDelivery: x(async (e) => {
372
+ try {
373
+ let n = (await A().mutate({
374
+ mutation: g,
375
+ variables: { attemptId: e }
376
+ })).data?.retryDelivery;
377
+ return n?.success ? (t("delivery.completed", {
378
+ success: !0,
379
+ attemptId: e,
380
+ messageId: n.messageId,
381
+ retried: !0
382
+ }), await z(), { success: !0 }) : {
383
+ success: !1,
384
+ error: n?.error || "Retry failed"
385
+ };
386
+ } catch (e) {
387
+ let t = e instanceof Error ? e.message : "Failed to retry delivery";
388
+ return w(e, "Failed to retry delivery"), {
389
+ success: !1,
390
+ error: t
391
+ };
392
+ }
393
+ }, [A, z]),
394
+ fetchDeliveryStats: x(async (e, t) => {
395
+ if (!r) return null;
396
+ try {
397
+ return (await A().query({
398
+ query: p,
399
+ variables: {
400
+ channelId: r,
401
+ startDate: e,
402
+ endDate: t
403
+ },
404
+ fetchPolicy: "network-only"
405
+ })).data?.getDeliveryStats ?? null;
406
+ } catch (e) {
407
+ let t = e instanceof Error ? e.message : "Failed to fetch delivery stats";
408
+ return w(e, "Failed to fetch delivery stats"), k(t), null;
409
+ }
410
+ }, [r, A])
411
+ };
412
+ }
413
+ //#endregion
414
+ export { E as useChannel, T as useChannels };
415
+
416
+ //# sourceMappingURL=useChannels.js.map