@uploadista/client-core 0.0.3

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 (235) hide show
  1. package/.turbo/turbo-build.log +5 -0
  2. package/LICENSE +21 -0
  3. package/README.md +100 -0
  4. package/dist/auth/auth-http-client.d.ts +50 -0
  5. package/dist/auth/auth-http-client.d.ts.map +1 -0
  6. package/dist/auth/auth-http-client.js +110 -0
  7. package/dist/auth/direct-auth.d.ts +38 -0
  8. package/dist/auth/direct-auth.d.ts.map +1 -0
  9. package/dist/auth/direct-auth.js +95 -0
  10. package/dist/auth/index.d.ts +6 -0
  11. package/dist/auth/index.d.ts.map +1 -0
  12. package/dist/auth/index.js +5 -0
  13. package/dist/auth/no-auth.d.ts +26 -0
  14. package/dist/auth/no-auth.d.ts.map +1 -0
  15. package/dist/auth/no-auth.js +33 -0
  16. package/dist/auth/saas-auth.d.ts +80 -0
  17. package/dist/auth/saas-auth.d.ts.map +1 -0
  18. package/dist/auth/saas-auth.js +167 -0
  19. package/dist/auth/types.d.ts +101 -0
  20. package/dist/auth/types.d.ts.map +1 -0
  21. package/dist/auth/types.js +8 -0
  22. package/dist/chunk-buffer.d.ts +209 -0
  23. package/dist/chunk-buffer.d.ts.map +1 -0
  24. package/dist/chunk-buffer.js +236 -0
  25. package/dist/client/create-uploadista-client.d.ts +369 -0
  26. package/dist/client/create-uploadista-client.d.ts.map +1 -0
  27. package/dist/client/create-uploadista-client.js +518 -0
  28. package/dist/client/index.d.ts +4 -0
  29. package/dist/client/index.d.ts.map +1 -0
  30. package/dist/client/index.js +3 -0
  31. package/dist/client/uploadista-api.d.ts +284 -0
  32. package/dist/client/uploadista-api.d.ts.map +1 -0
  33. package/dist/client/uploadista-api.js +444 -0
  34. package/dist/client/uploadista-websocket-manager.d.ts +110 -0
  35. package/dist/client/uploadista-websocket-manager.d.ts.map +1 -0
  36. package/dist/client/uploadista-websocket-manager.js +207 -0
  37. package/dist/error.d.ts +106 -0
  38. package/dist/error.d.ts.map +1 -0
  39. package/dist/error.js +69 -0
  40. package/dist/index.d.ts +9 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.js +12 -0
  43. package/dist/logger.d.ts +70 -0
  44. package/dist/logger.d.ts.map +1 -0
  45. package/dist/logger.js +59 -0
  46. package/dist/mock-data-store.d.ts +30 -0
  47. package/dist/mock-data-store.d.ts.map +1 -0
  48. package/dist/mock-data-store.js +88 -0
  49. package/dist/network-monitor.d.ts +262 -0
  50. package/dist/network-monitor.d.ts.map +1 -0
  51. package/dist/network-monitor.js +291 -0
  52. package/dist/services/abort-controller-service.d.ts +19 -0
  53. package/dist/services/abort-controller-service.d.ts.map +1 -0
  54. package/dist/services/abort-controller-service.js +4 -0
  55. package/dist/services/checksum-service.d.ts +4 -0
  56. package/dist/services/checksum-service.d.ts.map +1 -0
  57. package/dist/services/checksum-service.js +1 -0
  58. package/dist/services/file-reader-service.d.ts +38 -0
  59. package/dist/services/file-reader-service.d.ts.map +1 -0
  60. package/dist/services/file-reader-service.js +4 -0
  61. package/dist/services/fingerprint-service.d.ts +4 -0
  62. package/dist/services/fingerprint-service.d.ts.map +1 -0
  63. package/dist/services/fingerprint-service.js +1 -0
  64. package/dist/services/http-client.d.ts +182 -0
  65. package/dist/services/http-client.d.ts.map +1 -0
  66. package/dist/services/http-client.js +1 -0
  67. package/dist/services/id-generation-service.d.ts +10 -0
  68. package/dist/services/id-generation-service.d.ts.map +1 -0
  69. package/dist/services/id-generation-service.js +1 -0
  70. package/dist/services/index.d.ts +11 -0
  71. package/dist/services/index.d.ts.map +1 -0
  72. package/dist/services/index.js +10 -0
  73. package/dist/services/platform-service.d.ts +48 -0
  74. package/dist/services/platform-service.d.ts.map +1 -0
  75. package/dist/services/platform-service.js +10 -0
  76. package/dist/services/service-container.d.ts +25 -0
  77. package/dist/services/service-container.d.ts.map +1 -0
  78. package/dist/services/service-container.js +1 -0
  79. package/dist/services/storage-service.d.ts +26 -0
  80. package/dist/services/storage-service.d.ts.map +1 -0
  81. package/dist/services/storage-service.js +1 -0
  82. package/dist/services/websocket-service.d.ts +36 -0
  83. package/dist/services/websocket-service.d.ts.map +1 -0
  84. package/dist/services/websocket-service.js +4 -0
  85. package/dist/smart-chunker.d.ts +72 -0
  86. package/dist/smart-chunker.d.ts.map +1 -0
  87. package/dist/smart-chunker.js +317 -0
  88. package/dist/storage/client-storage.d.ts +148 -0
  89. package/dist/storage/client-storage.d.ts.map +1 -0
  90. package/dist/storage/client-storage.js +62 -0
  91. package/dist/storage/in-memory-storage-service.d.ts +7 -0
  92. package/dist/storage/in-memory-storage-service.d.ts.map +1 -0
  93. package/dist/storage/in-memory-storage-service.js +24 -0
  94. package/dist/storage/index.d.ts +3 -0
  95. package/dist/storage/index.d.ts.map +1 -0
  96. package/dist/storage/index.js +2 -0
  97. package/dist/types/buffered-chunk.d.ts +6 -0
  98. package/dist/types/buffered-chunk.d.ts.map +1 -0
  99. package/dist/types/buffered-chunk.js +1 -0
  100. package/dist/types/chunk-metrics.d.ts +12 -0
  101. package/dist/types/chunk-metrics.d.ts.map +1 -0
  102. package/dist/types/chunk-metrics.js +1 -0
  103. package/dist/types/flow-result.d.ts +11 -0
  104. package/dist/types/flow-result.d.ts.map +1 -0
  105. package/dist/types/flow-result.js +1 -0
  106. package/dist/types/flow-upload-config.d.ts +54 -0
  107. package/dist/types/flow-upload-config.d.ts.map +1 -0
  108. package/dist/types/flow-upload-config.js +1 -0
  109. package/dist/types/flow-upload-item.d.ts +16 -0
  110. package/dist/types/flow-upload-item.d.ts.map +1 -0
  111. package/dist/types/flow-upload-item.js +1 -0
  112. package/dist/types/flow-upload-options.d.ts +41 -0
  113. package/dist/types/flow-upload-options.d.ts.map +1 -0
  114. package/dist/types/flow-upload-options.js +1 -0
  115. package/dist/types/index.d.ts +14 -0
  116. package/dist/types/index.d.ts.map +1 -0
  117. package/dist/types/index.js +13 -0
  118. package/dist/types/multi-flow-upload-options.d.ts +33 -0
  119. package/dist/types/multi-flow-upload-options.d.ts.map +1 -0
  120. package/dist/types/multi-flow-upload-options.js +1 -0
  121. package/dist/types/multi-flow-upload-state.d.ts +9 -0
  122. package/dist/types/multi-flow-upload-state.d.ts.map +1 -0
  123. package/dist/types/multi-flow-upload-state.js +1 -0
  124. package/dist/types/performance-insights.d.ts +11 -0
  125. package/dist/types/performance-insights.d.ts.map +1 -0
  126. package/dist/types/performance-insights.js +1 -0
  127. package/dist/types/previous-upload.d.ts +20 -0
  128. package/dist/types/previous-upload.d.ts.map +1 -0
  129. package/dist/types/previous-upload.js +9 -0
  130. package/dist/types/upload-options.d.ts +40 -0
  131. package/dist/types/upload-options.d.ts.map +1 -0
  132. package/dist/types/upload-options.js +1 -0
  133. package/dist/types/upload-response.d.ts +6 -0
  134. package/dist/types/upload-response.d.ts.map +1 -0
  135. package/dist/types/upload-response.js +1 -0
  136. package/dist/types/upload-result.d.ts +57 -0
  137. package/dist/types/upload-result.d.ts.map +1 -0
  138. package/dist/types/upload-result.js +1 -0
  139. package/dist/types/upload-session-metrics.d.ts +16 -0
  140. package/dist/types/upload-session-metrics.d.ts.map +1 -0
  141. package/dist/types/upload-session-metrics.js +1 -0
  142. package/dist/upload/chunk-upload.d.ts +40 -0
  143. package/dist/upload/chunk-upload.d.ts.map +1 -0
  144. package/dist/upload/chunk-upload.js +82 -0
  145. package/dist/upload/flow-upload.d.ts +48 -0
  146. package/dist/upload/flow-upload.d.ts.map +1 -0
  147. package/dist/upload/flow-upload.js +240 -0
  148. package/dist/upload/index.d.ts +3 -0
  149. package/dist/upload/index.d.ts.map +1 -0
  150. package/dist/upload/index.js +2 -0
  151. package/dist/upload/parallel-upload.d.ts +65 -0
  152. package/dist/upload/parallel-upload.d.ts.map +1 -0
  153. package/dist/upload/parallel-upload.js +231 -0
  154. package/dist/upload/single-upload.d.ts +118 -0
  155. package/dist/upload/single-upload.d.ts.map +1 -0
  156. package/dist/upload/single-upload.js +332 -0
  157. package/dist/upload/upload-manager.d.ts +30 -0
  158. package/dist/upload/upload-manager.d.ts.map +1 -0
  159. package/dist/upload/upload-manager.js +57 -0
  160. package/dist/upload/upload-metrics.d.ts +37 -0
  161. package/dist/upload/upload-metrics.d.ts.map +1 -0
  162. package/dist/upload/upload-metrics.js +236 -0
  163. package/dist/upload/upload-storage.d.ts +32 -0
  164. package/dist/upload/upload-storage.d.ts.map +1 -0
  165. package/dist/upload/upload-storage.js +46 -0
  166. package/dist/upload/upload-strategy.d.ts +66 -0
  167. package/dist/upload/upload-strategy.d.ts.map +1 -0
  168. package/dist/upload/upload-strategy.js +171 -0
  169. package/dist/upload/upload-utils.d.ts +26 -0
  170. package/dist/upload/upload-utils.d.ts.map +1 -0
  171. package/dist/upload/upload-utils.js +80 -0
  172. package/package.json +29 -0
  173. package/src/__tests__/smart-chunking.test.ts +399 -0
  174. package/src/auth/__tests__/auth-http-client.test.ts +327 -0
  175. package/src/auth/__tests__/direct-auth.test.ts +135 -0
  176. package/src/auth/__tests__/no-auth.test.ts +40 -0
  177. package/src/auth/__tests__/saas-auth.test.ts +337 -0
  178. package/src/auth/auth-http-client.ts +150 -0
  179. package/src/auth/direct-auth.ts +121 -0
  180. package/src/auth/index.ts +5 -0
  181. package/src/auth/no-auth.ts +39 -0
  182. package/src/auth/saas-auth.ts +218 -0
  183. package/src/auth/types.ts +105 -0
  184. package/src/chunk-buffer.ts +287 -0
  185. package/src/client/create-uploadista-client.ts +901 -0
  186. package/src/client/index.ts +3 -0
  187. package/src/client/uploadista-api.ts +857 -0
  188. package/src/client/uploadista-websocket-manager.ts +275 -0
  189. package/src/error.ts +149 -0
  190. package/src/index.ts +13 -0
  191. package/src/logger.ts +104 -0
  192. package/src/mock-data-store.ts +97 -0
  193. package/src/network-monitor.ts +445 -0
  194. package/src/services/abort-controller-service.ts +21 -0
  195. package/src/services/checksum-service.ts +3 -0
  196. package/src/services/file-reader-service.ts +44 -0
  197. package/src/services/fingerprint-service.ts +6 -0
  198. package/src/services/http-client.ts +229 -0
  199. package/src/services/id-generation-service.ts +9 -0
  200. package/src/services/index.ts +10 -0
  201. package/src/services/platform-service.ts +65 -0
  202. package/src/services/service-container.ts +24 -0
  203. package/src/services/storage-service.ts +29 -0
  204. package/src/services/websocket-service.ts +33 -0
  205. package/src/smart-chunker.ts +451 -0
  206. package/src/storage/client-storage.ts +186 -0
  207. package/src/storage/in-memory-storage-service.ts +33 -0
  208. package/src/storage/index.ts +2 -0
  209. package/src/types/buffered-chunk.ts +5 -0
  210. package/src/types/chunk-metrics.ts +11 -0
  211. package/src/types/flow-result.ts +14 -0
  212. package/src/types/flow-upload-config.ts +56 -0
  213. package/src/types/flow-upload-item.ts +16 -0
  214. package/src/types/flow-upload-options.ts +56 -0
  215. package/src/types/index.ts +13 -0
  216. package/src/types/multi-flow-upload-options.ts +39 -0
  217. package/src/types/multi-flow-upload-state.ts +9 -0
  218. package/src/types/performance-insights.ts +7 -0
  219. package/src/types/previous-upload.ts +22 -0
  220. package/src/types/upload-options.ts +56 -0
  221. package/src/types/upload-response.ts +6 -0
  222. package/src/types/upload-result.ts +60 -0
  223. package/src/types/upload-session-metrics.ts +15 -0
  224. package/src/upload/chunk-upload.ts +151 -0
  225. package/src/upload/flow-upload.ts +367 -0
  226. package/src/upload/index.ts +2 -0
  227. package/src/upload/parallel-upload.ts +387 -0
  228. package/src/upload/single-upload.ts +554 -0
  229. package/src/upload/upload-manager.ts +106 -0
  230. package/src/upload/upload-metrics.ts +340 -0
  231. package/src/upload/upload-storage.ts +87 -0
  232. package/src/upload/upload-strategy.ts +296 -0
  233. package/src/upload/upload-utils.ts +114 -0
  234. package/tsconfig.json +23 -0
  235. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,284 @@
1
+ import type { FlowData, FlowJob } from "@uploadista/core/flow";
2
+ import type { DataStoreCapabilities, InputFile, UploadFile } from "@uploadista/core/types";
3
+ import { type AuthManager } from "../auth";
4
+ import type { Logger } from "../logger";
5
+ import type { AbortControllerLike } from "../services/abort-controller-service";
6
+ import type { ConnectionMetrics, DetailedConnectionMetrics, HttpClient } from "../services/http-client";
7
+ import type { WebSocketFactory, WebSocketLike } from "../services/websocket-service";
8
+ /**
9
+ * Response from upload-related API calls.
10
+ *
11
+ * Contains the upload metadata and HTTP status code.
12
+ */
13
+ export type UploadistaUploadResponse = {
14
+ /** Upload file metadata, undefined if request failed */
15
+ upload?: UploadFile;
16
+ /** HTTP status code */
17
+ status: number;
18
+ };
19
+ /**
20
+ * Response from delete upload API call.
21
+ */
22
+ export type UploadistaDeleteUploadResponse = {
23
+ /** Successfully deleted (no content) */
24
+ status: 204;
25
+ } | {
26
+ /** Other status codes (e.g., 404, 500) */
27
+ status: number;
28
+ };
29
+ /**
30
+ * Response from flow retrieval API call.
31
+ */
32
+ export type FlowResponse = {
33
+ /** HTTP status code */
34
+ status: number;
35
+ /** Flow configuration and metadata */
36
+ flow: FlowData;
37
+ };
38
+ /**
39
+ * Unified Uploadista API interface combining upload and flow operations.
40
+ *
41
+ * This low-level API provides direct access to server endpoints for:
42
+ * - Upload CRUD operations (create, get, delete, patch chunks)
43
+ * - Flow operations (get, run, continue)
44
+ * - Job status tracking
45
+ * - WebSocket connections for real-time updates
46
+ * - Server capabilities discovery
47
+ * - Connection pooling metrics
48
+ *
49
+ * Most applications should use the higher-level {@link UploadistaClient} instead,
50
+ * which provides a more convenient interface with automatic retry, resumption,
51
+ * and smart chunking.
52
+ *
53
+ * @example Direct API usage (advanced)
54
+ * ```typescript
55
+ * const api = createUploadistaApi(baseUrl, basePath, {
56
+ * httpClient,
57
+ * logger,
58
+ * authManager,
59
+ * webSocketFactory,
60
+ * });
61
+ *
62
+ * // Create an upload
63
+ * const { upload } = await api.createUpload({
64
+ * storageId: 'my-storage',
65
+ * size: 1024000,
66
+ * metadata: { filename: 'test.txt' },
67
+ * });
68
+ *
69
+ * // Upload a chunk
70
+ * const chunk = new Uint8Array(1024);
71
+ * await api.uploadChunk(upload.id, chunk, {});
72
+ *
73
+ * // Check status
74
+ * const { upload: updated } = await api.getUpload(upload.id);
75
+ * console.log(`Progress: ${updated.offset}/${updated.size}`);
76
+ * ```
77
+ *
78
+ * @see {@link createUploadistaApi} for creating an instance
79
+ */
80
+ export type UploadistaApi = {
81
+ /**
82
+ * Retrieves upload metadata and current status.
83
+ *
84
+ * @param uploadId - Unique upload identifier
85
+ * @returns Upload metadata including current offset and status
86
+ * @throws {UploadistaError} If upload not found or request fails
87
+ */
88
+ getUpload: (uploadId: string) => Promise<UploadistaUploadResponse>;
89
+ /**
90
+ * Deletes an upload and its associated data.
91
+ *
92
+ * @param uploadId - Unique upload identifier
93
+ * @returns Response with status 204 on success
94
+ * @throws {UploadistaError} If upload not found or deletion fails
95
+ */
96
+ deleteUpload: (uploadId: string) => Promise<UploadistaDeleteUploadResponse>;
97
+ /**
98
+ * Creates a new upload on the server.
99
+ *
100
+ * @param body - Upload configuration including storageId, size, and metadata
101
+ * @returns Created upload metadata with unique ID
102
+ * @throws {UploadistaError} If creation fails or validation errors occur
103
+ */
104
+ createUpload: (body: InputFile) => Promise<UploadistaUploadResponse>;
105
+ /**
106
+ * Uploads a chunk of data to an existing upload.
107
+ *
108
+ * @param uploadId - Upload identifier to append data to
109
+ * @param data - Chunk data bytes, or null to finalize without data
110
+ * @param options - Upload options including abort controller and progress callback
111
+ * @returns Updated upload metadata with new offset
112
+ * @throws {UploadistaError} If chunk upload fails or upload is locked
113
+ */
114
+ uploadChunk: (uploadId: string, data: Uint8Array | null, options: {
115
+ abortController?: AbortControllerLike;
116
+ onProgress?: (bytes: number, total: number) => void;
117
+ }) => Promise<UploadistaUploadResponse>;
118
+ /**
119
+ * Retrieves flow configuration and metadata.
120
+ *
121
+ * @param flowId - Unique flow identifier
122
+ * @returns Flow configuration including nodes and edges
123
+ * @throws {UploadistaError} If flow not found
124
+ */
125
+ getFlow: (flowId: string) => Promise<FlowResponse>;
126
+ /**
127
+ * Executes a flow with the provided inputs.
128
+ *
129
+ * @param flowId - Flow to execute
130
+ * @param storageId - Storage backend to use for flow outputs
131
+ * @param inputs - Input data for flow nodes (keyed by node ID)
132
+ * @returns Job metadata including job ID and initial state
133
+ * @throws {UploadistaError} If flow execution fails or inputs are invalid
134
+ */
135
+ runFlow: (flowId: string, storageId: string, inputs: Record<string, unknown>) => Promise<{
136
+ status: number;
137
+ job: FlowJob;
138
+ }>;
139
+ /**
140
+ * Continues a paused flow execution with new data.
141
+ *
142
+ * Used for interactive flows that wait for user input or external data.
143
+ *
144
+ * @param jobId - Job identifier for the paused flow
145
+ * @param nodeId - Node ID where execution should continue
146
+ * @param newData - Data to provide to the node
147
+ * @param options - Options including content type for binary data
148
+ * @returns Updated job metadata
149
+ * @throws {UploadistaError} If job not found or continuation fails
150
+ */
151
+ continueFlow: (jobId: string, nodeId: string, newData: unknown, options?: {
152
+ contentType?: "application/json" | "application/octet-stream";
153
+ }) => Promise<FlowJob>;
154
+ /**
155
+ * Retrieves current job status and outputs.
156
+ *
157
+ * Works for both upload and flow jobs.
158
+ *
159
+ * @param jobId - Job identifier
160
+ * @returns Job metadata including state, progress, and outputs
161
+ * @throws {UploadistaError} If job not found
162
+ */
163
+ getJobStatus: (jobId: string) => Promise<FlowJob>;
164
+ /**
165
+ * Opens a WebSocket connection for upload progress events.
166
+ *
167
+ * @param uploadId - Upload to monitor
168
+ * @returns WebSocket instance for receiving real-time updates
169
+ */
170
+ openUploadWebSocket: (uploadId: string) => Promise<WebSocketLike>;
171
+ /**
172
+ * Opens a WebSocket connection for flow job events.
173
+ *
174
+ * @param jobId - Flow job to monitor
175
+ * @returns WebSocket instance for receiving real-time updates
176
+ */
177
+ openFlowWebSocket: (jobId: string) => Promise<WebSocketLike>;
178
+ /**
179
+ * Closes a WebSocket connection.
180
+ *
181
+ * @param ws - WebSocket instance to close
182
+ */
183
+ closeWebSocket: (ws: WebSocketLike) => void;
184
+ /**
185
+ * Returns current connection pool metrics.
186
+ *
187
+ * @returns Basic metrics including active connections and reuse rate
188
+ */
189
+ getConnectionMetrics: () => ConnectionMetrics;
190
+ /**
191
+ * Returns detailed connection pool metrics with health diagnostics.
192
+ *
193
+ * @returns Comprehensive metrics including health status and recommendations
194
+ */
195
+ getDetailedConnectionMetrics: () => DetailedConnectionMetrics;
196
+ /**
197
+ * Pre-warms connections to the specified URLs.
198
+ *
199
+ * Useful for reducing latency on first upload by establishing
200
+ * connections ahead of time.
201
+ *
202
+ * @param urls - URLs to pre-connect to
203
+ */
204
+ warmupConnections: (urls: string[]) => Promise<void>;
205
+ /**
206
+ * Fetches server capabilities for the specified storage backend.
207
+ *
208
+ * Returns information about chunk size constraints, supported features,
209
+ * and storage-specific requirements. Falls back to default capabilities
210
+ * if the request fails.
211
+ *
212
+ * @param storageId - Storage backend identifier
213
+ * @returns Storage capabilities including chunk size limits
214
+ */
215
+ getCapabilities: (storageId: string) => Promise<DataStoreCapabilities>;
216
+ };
217
+ /**
218
+ * Creates an Uploadista API instance for direct server communication.
219
+ *
220
+ * This factory creates a low-level API client that handles:
221
+ * - HTTP requests to upload and flow endpoints
222
+ * - Authentication via AuthManager (optional)
223
+ * - WebSocket connections for real-time updates
224
+ * - Error mapping from server to client error types
225
+ * - Connection pooling and metrics
226
+ *
227
+ * Most applications should use {@link createUploadistaClient} instead,
228
+ * which wraps this API with higher-level features like automatic retry,
229
+ * resumption, and smart chunking.
230
+ *
231
+ * @param baseURL - Base URL of the Uploadista server (e.g., "https://upload.example.com")
232
+ * @param uploadistBasePath - Base path for endpoints, typically "uploadista"
233
+ * @param options - Configuration object
234
+ * @param options.httpClient - HTTP client for making requests
235
+ * @param options.logger - Optional logger for debugging
236
+ * @param options.authManager - Optional authentication manager
237
+ * @param options.webSocketFactory - Factory for creating WebSocket connections
238
+ * @returns UploadistaApi instance
239
+ *
240
+ * @example Basic API instance
241
+ * ```typescript
242
+ * import { createUploadistaApi } from '@uploadista/client-core';
243
+ *
244
+ * const api = createUploadistaApi(
245
+ * 'https://upload.example.com',
246
+ * 'uploadista',
247
+ * {
248
+ * httpClient: myHttpClient,
249
+ * logger: console,
250
+ * webSocketFactory: {
251
+ * create: (url) => new WebSocket(url),
252
+ * },
253
+ * }
254
+ * );
255
+ *
256
+ * // Use the API directly
257
+ * const { upload } = await api.createUpload({
258
+ * storageId: 'my-storage',
259
+ * size: 1024,
260
+ * });
261
+ * ```
262
+ *
263
+ * @example With authentication
264
+ * ```typescript
265
+ * const authManager = new DirectAuthManager(authConfig, platformService, logger);
266
+ *
267
+ * const api = createUploadistaApi(baseUrl, 'uploadista', {
268
+ * httpClient,
269
+ * logger,
270
+ * authManager, // Automatically adds auth headers to requests
271
+ * webSocketFactory,
272
+ * });
273
+ * ```
274
+ *
275
+ * @see {@link UploadistaApi} for the API interface
276
+ * @see {@link createUploadistaClient} for the high-level client
277
+ */
278
+ export declare function createUploadistaApi(baseURL: string, uploadistBasePath: string, { httpClient: baseHttpClient, logger, authManager, webSocketFactory, }: {
279
+ httpClient: HttpClient;
280
+ logger?: Logger;
281
+ authManager?: AuthManager;
282
+ webSocketFactory: WebSocketFactory;
283
+ }): UploadistaApi;
284
+ //# sourceMappingURL=uploadista-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploadista-api.d.ts","sourceRoot":"","sources":["../../src/client/uploadista-api.ts"],"names":[],"mappings":"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"}