@uploadista/client-core 0.0.3 → 0.0.4
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.
- package/dist/index.d.ts +2674 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -12
- package/dist/index.js.map +1 -0
- package/package.json +5 -4
- package/tsdown.config.ts +11 -0
- package/.turbo/turbo-build.log +0 -5
- package/dist/auth/auth-http-client.d.ts +0 -50
- package/dist/auth/auth-http-client.d.ts.map +0 -1
- package/dist/auth/auth-http-client.js +0 -110
- package/dist/auth/direct-auth.d.ts +0 -38
- package/dist/auth/direct-auth.d.ts.map +0 -1
- package/dist/auth/direct-auth.js +0 -95
- package/dist/auth/index.d.ts +0 -6
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/index.js +0 -5
- package/dist/auth/no-auth.d.ts +0 -26
- package/dist/auth/no-auth.d.ts.map +0 -1
- package/dist/auth/no-auth.js +0 -33
- package/dist/auth/saas-auth.d.ts +0 -80
- package/dist/auth/saas-auth.d.ts.map +0 -1
- package/dist/auth/saas-auth.js +0 -167
- package/dist/auth/types.d.ts +0 -101
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/auth/types.js +0 -8
- package/dist/chunk-buffer.d.ts +0 -209
- package/dist/chunk-buffer.d.ts.map +0 -1
- package/dist/chunk-buffer.js +0 -236
- package/dist/client/create-uploadista-client.d.ts +0 -369
- package/dist/client/create-uploadista-client.d.ts.map +0 -1
- package/dist/client/create-uploadista-client.js +0 -518
- package/dist/client/index.d.ts +0 -4
- package/dist/client/index.d.ts.map +0 -1
- package/dist/client/index.js +0 -3
- package/dist/client/uploadista-api.d.ts +0 -284
- package/dist/client/uploadista-api.d.ts.map +0 -1
- package/dist/client/uploadista-api.js +0 -444
- package/dist/client/uploadista-websocket-manager.d.ts +0 -110
- package/dist/client/uploadista-websocket-manager.d.ts.map +0 -1
- package/dist/client/uploadista-websocket-manager.js +0 -207
- package/dist/error.d.ts +0 -106
- package/dist/error.d.ts.map +0 -1
- package/dist/error.js +0 -69
- package/dist/logger.d.ts +0 -70
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -59
- package/dist/mock-data-store.d.ts +0 -30
- package/dist/mock-data-store.d.ts.map +0 -1
- package/dist/mock-data-store.js +0 -88
- package/dist/network-monitor.d.ts +0 -262
- package/dist/network-monitor.d.ts.map +0 -1
- package/dist/network-monitor.js +0 -291
- package/dist/services/abort-controller-service.d.ts +0 -19
- package/dist/services/abort-controller-service.d.ts.map +0 -1
- package/dist/services/abort-controller-service.js +0 -4
- package/dist/services/checksum-service.d.ts +0 -4
- package/dist/services/checksum-service.d.ts.map +0 -1
- package/dist/services/checksum-service.js +0 -1
- package/dist/services/file-reader-service.d.ts +0 -38
- package/dist/services/file-reader-service.d.ts.map +0 -1
- package/dist/services/file-reader-service.js +0 -4
- package/dist/services/fingerprint-service.d.ts +0 -4
- package/dist/services/fingerprint-service.d.ts.map +0 -1
- package/dist/services/fingerprint-service.js +0 -1
- package/dist/services/http-client.d.ts +0 -182
- package/dist/services/http-client.d.ts.map +0 -1
- package/dist/services/http-client.js +0 -1
- package/dist/services/id-generation-service.d.ts +0 -10
- package/dist/services/id-generation-service.d.ts.map +0 -1
- package/dist/services/id-generation-service.js +0 -1
- package/dist/services/index.d.ts +0 -11
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/index.js +0 -10
- package/dist/services/platform-service.d.ts +0 -48
- package/dist/services/platform-service.d.ts.map +0 -1
- package/dist/services/platform-service.js +0 -10
- package/dist/services/service-container.d.ts +0 -25
- package/dist/services/service-container.d.ts.map +0 -1
- package/dist/services/service-container.js +0 -1
- package/dist/services/storage-service.d.ts +0 -26
- package/dist/services/storage-service.d.ts.map +0 -1
- package/dist/services/storage-service.js +0 -1
- package/dist/services/websocket-service.d.ts +0 -36
- package/dist/services/websocket-service.d.ts.map +0 -1
- package/dist/services/websocket-service.js +0 -4
- package/dist/smart-chunker.d.ts +0 -72
- package/dist/smart-chunker.d.ts.map +0 -1
- package/dist/smart-chunker.js +0 -317
- package/dist/storage/client-storage.d.ts +0 -148
- package/dist/storage/client-storage.d.ts.map +0 -1
- package/dist/storage/client-storage.js +0 -62
- package/dist/storage/in-memory-storage-service.d.ts +0 -7
- package/dist/storage/in-memory-storage-service.d.ts.map +0 -1
- package/dist/storage/in-memory-storage-service.js +0 -24
- package/dist/storage/index.d.ts +0 -3
- package/dist/storage/index.d.ts.map +0 -1
- package/dist/storage/index.js +0 -2
- package/dist/types/buffered-chunk.d.ts +0 -6
- package/dist/types/buffered-chunk.d.ts.map +0 -1
- package/dist/types/buffered-chunk.js +0 -1
- package/dist/types/chunk-metrics.d.ts +0 -12
- package/dist/types/chunk-metrics.d.ts.map +0 -1
- package/dist/types/chunk-metrics.js +0 -1
- package/dist/types/flow-result.d.ts +0 -11
- package/dist/types/flow-result.d.ts.map +0 -1
- package/dist/types/flow-result.js +0 -1
- package/dist/types/flow-upload-config.d.ts +0 -54
- package/dist/types/flow-upload-config.d.ts.map +0 -1
- package/dist/types/flow-upload-config.js +0 -1
- package/dist/types/flow-upload-item.d.ts +0 -16
- package/dist/types/flow-upload-item.d.ts.map +0 -1
- package/dist/types/flow-upload-item.js +0 -1
- package/dist/types/flow-upload-options.d.ts +0 -41
- package/dist/types/flow-upload-options.d.ts.map +0 -1
- package/dist/types/flow-upload-options.js +0 -1
- package/dist/types/index.d.ts +0 -14
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -13
- package/dist/types/multi-flow-upload-options.d.ts +0 -33
- package/dist/types/multi-flow-upload-options.d.ts.map +0 -1
- package/dist/types/multi-flow-upload-options.js +0 -1
- package/dist/types/multi-flow-upload-state.d.ts +0 -9
- package/dist/types/multi-flow-upload-state.d.ts.map +0 -1
- package/dist/types/multi-flow-upload-state.js +0 -1
- package/dist/types/performance-insights.d.ts +0 -11
- package/dist/types/performance-insights.d.ts.map +0 -1
- package/dist/types/performance-insights.js +0 -1
- package/dist/types/previous-upload.d.ts +0 -20
- package/dist/types/previous-upload.d.ts.map +0 -1
- package/dist/types/previous-upload.js +0 -9
- package/dist/types/upload-options.d.ts +0 -40
- package/dist/types/upload-options.d.ts.map +0 -1
- package/dist/types/upload-options.js +0 -1
- package/dist/types/upload-response.d.ts +0 -6
- package/dist/types/upload-response.d.ts.map +0 -1
- package/dist/types/upload-response.js +0 -1
- package/dist/types/upload-result.d.ts +0 -57
- package/dist/types/upload-result.d.ts.map +0 -1
- package/dist/types/upload-result.js +0 -1
- package/dist/types/upload-session-metrics.d.ts +0 -16
- package/dist/types/upload-session-metrics.d.ts.map +0 -1
- package/dist/types/upload-session-metrics.js +0 -1
- package/dist/upload/chunk-upload.d.ts +0 -40
- package/dist/upload/chunk-upload.d.ts.map +0 -1
- package/dist/upload/chunk-upload.js +0 -82
- package/dist/upload/flow-upload.d.ts +0 -48
- package/dist/upload/flow-upload.d.ts.map +0 -1
- package/dist/upload/flow-upload.js +0 -240
- package/dist/upload/index.d.ts +0 -3
- package/dist/upload/index.d.ts.map +0 -1
- package/dist/upload/index.js +0 -2
- package/dist/upload/parallel-upload.d.ts +0 -65
- package/dist/upload/parallel-upload.d.ts.map +0 -1
- package/dist/upload/parallel-upload.js +0 -231
- package/dist/upload/single-upload.d.ts +0 -118
- package/dist/upload/single-upload.d.ts.map +0 -1
- package/dist/upload/single-upload.js +0 -332
- package/dist/upload/upload-manager.d.ts +0 -30
- package/dist/upload/upload-manager.d.ts.map +0 -1
- package/dist/upload/upload-manager.js +0 -57
- package/dist/upload/upload-metrics.d.ts +0 -37
- package/dist/upload/upload-metrics.d.ts.map +0 -1
- package/dist/upload/upload-metrics.js +0 -236
- package/dist/upload/upload-storage.d.ts +0 -32
- package/dist/upload/upload-storage.d.ts.map +0 -1
- package/dist/upload/upload-storage.js +0 -46
- package/dist/upload/upload-strategy.d.ts +0 -66
- package/dist/upload/upload-strategy.d.ts.map +0 -1
- package/dist/upload/upload-strategy.js +0 -171
- package/dist/upload/upload-utils.d.ts +0 -26
- package/dist/upload/upload-utils.d.ts.map +0 -1
- package/dist/upload/upload-utils.js +0 -80
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AAEzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAE3B,cAAc,WAAW,CAAC;AAE1B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/buffered-chunk.ts","../src/chunk-buffer.ts","../src/services/abort-controller-service.ts","../src/services/http-client.ts","../src/logger.ts","../src/services/platform-service.ts","../src/auth/types.ts","../src/auth/direct-auth.ts","../src/auth/no-auth.ts","../src/auth/saas-auth.ts","../src/auth/auth-http-client.ts","../src/network-monitor.ts","../src/services/checksum-service.ts","../src/services/file-reader-service.ts","../src/services/fingerprint-service.ts","../src/services/id-generation-service.ts","../src/services/websocket-service.ts","../src/smart-chunker.ts","../src/services/storage-service.ts","../src/types/previous-upload.ts","../src/storage/client-storage.ts","../src/types/flow-upload-config.ts","../src/client/uploadista-api.ts","../src/error.ts","../src/services/service-container.ts","../src/types/upload-response.ts","../src/upload/chunk-upload.ts","../src/types/chunk-metrics.ts","../src/types/performance-insights.ts","../src/types/upload-session-metrics.ts","../src/upload/upload-metrics.ts","../src/upload/single-upload.ts","../src/upload/upload-manager.ts","../src/upload/upload-strategy.ts","../src/client/uploadista-websocket-manager.ts","../src/client/create-uploadista-client.ts","../src/storage/in-memory-storage-service.ts","../src/types/flow-result.ts","../src/types/flow-upload-item.ts","../src/types/flow-upload-options.ts","../src/types/multi-flow-upload-options.ts","../src/types/multi-flow-upload-state.ts","../src/types/upload-options.ts","../src/types/upload-result.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,2 @@
|
|
|
1
|
-
// Service interfaces
|
|
2
|
-
|
|
3
|
-
export * from "./client";
|
|
4
|
-
export * from "./error";
|
|
5
|
-
export * from "./logger";
|
|
6
|
-
// Utilities
|
|
7
|
-
export * from "./network-monitor";
|
|
8
|
-
export * from "./services";
|
|
9
|
-
// Storage
|
|
10
|
-
export * from "./storage";
|
|
11
|
-
// Core types
|
|
12
|
-
export * from "./types";
|
|
1
|
+
import{Base64 as e}from"js-base64";import{UploadStrategyNegotiator as t}from"@uploadista/core/upload";import{webSocketMessageSchema as n}from"@uploadista/core/types";import r from"zod";var i=class{constructor(e){this.buffer=[],this.currentSize=0,this.lastAddTime=0,this.config={minThreshold:e.minThreshold,maxBufferSize:e.maxBufferSize??e.minThreshold*2,timeoutMs:e.timeoutMs??3e4}}add(e){return this.buffer.push(e),this.currentSize+=e.length,this.lastAddTime=Date.now(),this.shouldFlush()?this.flush():null}flush(){if(this.buffer.length===0)return null;let e=new Uint8Array(this.currentSize),t=0;for(let n of this.buffer)e.set(n,t),t+=n.length;let n={data:e,size:this.currentSize,timestamp:this.lastAddTime};return this.reset(),n}shouldFlush(){if(this.currentSize>=this.config.minThreshold||this.currentSize>=this.config.maxBufferSize)return!0;let e=Date.now()-this.lastAddTime;return this.buffer.length>0&&e>this.config.timeoutMs}getBufferInfo(){return{size:this.currentSize,chunkCount:this.buffer.length,isReadyToFlush:this.shouldFlush(),timeSinceLastAdd:Date.now()-this.lastAddTime}}hasPendingData(){return this.buffer.length>0}reset(){this.buffer=[],this.currentSize=0,this.lastAddTime=0}getMinThreshold(){return this.config.minThreshold}},a=class{constructor(e,t){this.httpClient=e,this.authManager=t}async request(e,t={}){try{let n=await this.attachAuthCredentials(t.headers||{},e);return await this.httpClient.request(e,{...t,headers:n,credentials:this.authManager.getType()===`no-auth`||this.authManager.getType()===`saas`?`omit`:t.credentials??`include`})}catch(e){throw e instanceof Error&&e.message.includes(`auth`),e}}async attachAuthCredentials(e,t){if(`attachCredentials`in this.authManager)return await this.authManager.attachCredentials(e);if(`attachToken`in this.authManager){let n=this.extractJobIdFromUrl(t);return await this.authManager.attachToken(e,n)}return e}extractJobIdFromUrl(e){let t=e.match(/\/api\/upload\/([^/?]+)/);if(t)return t[1];let n=e.match(/\/api\/flow\/([^/?]+)/);if(n)return n[1];let r=e.match(/\/api\/jobs\/([^/?]+)/);if(r)return r[1]}getMetrics(){return this.httpClient.getMetrics()}getDetailedMetrics(){return this.httpClient.getDetailedMetrics()}reset(){this.httpClient.reset()}async close(){await this.httpClient.close()}async warmupConnections(e){await this.httpClient.warmupConnections(e)}getAuthManager(){return this.authManager}},o=class{constructor(e){this.type=e}getType(){return this.type}},s=class extends o{constructor(e,t,n){super(`direct`),this.config=e,this.platformService=t,this.logger=n}async attachCredentials(e={}){try{if(!this.config.getCredentials)return e;let t=await Promise.resolve(this.config.getCredentials());if(!t||typeof t!=`object`)throw Error(`getCredentials() must return an object with headers and/or cookies`);let n={...e};return t.headers&&(this.validateHeaders(t.headers),Object.assign(n,t.headers)),t.cookies&&this.attachCookies(n,t.cookies),n}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to attach auth credentials: ${t}`)}}validateHeaders(e){if(typeof e!=`object`||!e)throw Error(`headers must be an object`);for(let[t,n]of Object.entries(e))if(typeof t!=`string`||typeof n!=`string`)throw Error(`Invalid header: key and value must be strings (got ${t}: ${typeof n})`)}attachCookies(e,t){if(this.platformService.isBrowser())this.logger.warn(`DirectAuth: Cookies are automatically handled by the browser. Ensure your server has proper CORS configuration with credentials support.`);else{let n=Object.entries(t).map(([e,t])=>`${e}=${t}`).join(`; `);n&&(e.Cookie=n)}}},c=class extends o{constructor(){super(`no-auth`)}async attachCredentials(e={}){return e}clearToken(e){}clearAllTokens(){}},l=class extends o{constructor(e,t){super(`saas`),this.config=e,this.httpClient=t,this.tokenCache=new Map,this.globalToken=null}async fetchToken(){try{let e=await this.httpClient.request(`${this.config.authServerUrl}/${this.config.clientId}`,{method:`GET`,headers:{"Content-Type":`application/json`}});if(!e.ok){let t=await e.text(),n=`Auth server returned ${e.status}`;try{let e=JSON.parse(t);n=e.error||e.message||n}catch{n=t||e.statusText||n}throw Error(n)}let t=await e.json();if(!t.token||typeof t.token!=`string`)throw Error(`Auth server response missing 'token' field or token is not a string`);return t}catch(e){throw e instanceof Error?Error(`Failed to fetch auth token: ${e.message}`):Error(`Failed to fetch auth token: ${String(e)}`)}}async getOrFetchToken(e){if(e){let t=this.tokenCache.get(e);if(t&&!this.isTokenExpired(t))return t.token}if(!e&&this.globalToken&&!this.isTokenExpired(this.globalToken))return this.globalToken.token;let t=await this.fetchToken(),n=t.expiresIn?Date.now()+t.expiresIn*1e3:void 0,r={token:t.token,expiresAt:n};return e?this.tokenCache.set(e,r):this.globalToken=r,t.token}isTokenExpired(e){return e.expiresAt?Date.now()>e.expiresAt-60*1e3:!1}async attachToken(e={},t){try{let n=await this.getOrFetchToken(t);return{...e,Authorization:`Bearer ${n}`}}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to attach auth token: ${t}`)}}clearToken(e){this.tokenCache.delete(e)}clearAllTokens(){this.tokenCache.clear(),this.globalToken=null}getCacheStats(){return{cachedJobCount:this.tokenCache.size,hasGlobalToken:this.globalToken!==null}}};const u=()=>{};function d(e,t=u){return{log:n=>{e&&t(n)},warn:n=>{e&&t(n)},error:n=>{e&&t(n)}}}var f=class{constructor(e){this.capabilities=e}getCapabilities(){return this.capabilities}validateUploadStrategy(e){switch(e){case`parallel`:return this.capabilities.supportsParallelUploads;case`single`:return!0;default:return!1}}};const p={supportsParallelUploads:!0,supportsConcatenation:!0,supportsDeferredLength:!0,supportsResumableUploads:!0,supportsTransactionalUploads:!1,maxConcurrentUploads:6,minChunkSize:64*1024,maxChunkSize:100*1024*1024,maxParts:1e4,optimalChunkSize:8*1024*1024,requiresOrderedChunks:!1};var m=class{constructor(e={}){this.samples=[],this.config={maxSamples:e.maxSamples??100,smoothingFactor:e.smoothingFactor??.1,minSamplesForCondition:e.minSamplesForCondition??5,slowThreshold:e.slowThreshold??50*1024,fastThreshold:e.fastThreshold??5*1024*1024,unstableThreshold:e.unstableThreshold??.5},this._currentMetrics=this.createEmptyMetrics()}addSample(e){this.samples.push(e),this.samples.length>this.config.maxSamples&&(this.samples=this.samples.slice(-this.config.maxSamples)),this.updateMetrics()}recordUpload(e,t,n,r){this.addSample({size:e,duration:t,success:n,timestamp:Date.now(),latency:r})}getCurrentMetrics(){return{...this._currentMetrics}}getNetworkCondition(){if(this.samples.length<this.config.minSamplesForCondition)return{type:`unknown`,confidence:0};let e=this.getRecentSuccessfulSamples();if(e.length<this.config.minSamplesForCondition)return{type:`unknown`,confidence:.3};let t=e.map(e=>e.size/(e.duration/1e3)),n=t.reduce((e,t)=>e+t,0)/t.length,r=t.reduce((e,t)=>e+(t-n)**2,0)/t.length,i=Math.sqrt(r)/n,a=Math.min(1,this.samples.length/(this.config.minSamplesForCondition*2));return i>this.config.unstableThreshold?{type:`unstable`,confidence:a}:n<this.config.slowThreshold?{type:`slow`,confidence:a}:n>this.config.fastThreshold?{type:`fast`,confidence:a}:{type:`slow`,confidence:a*.7}}getOptimalThroughput(){let e=this.getRecentSuccessfulSamples(10);if(e.length===0)return 0;let t=0,n=0;return e.forEach((e,r)=>{let i=r+1,a=e.size/(e.duration/1e3);n+=a*i,t+=i}),t>0?n/t:0}reset(){this.samples=[],this._currentMetrics=this.createEmptyMetrics()}getRecentSuccessfulSamples(e){let t=this.samples.filter(e=>e.success);return e?t.slice(-e):t}updateMetrics(){let e=this.samples.filter(e=>e.success),t=this.samples.length,n=e.length;if(t===0){this._currentMetrics=this.createEmptyMetrics();return}let r=e.reduce((e,t)=>e+t.size,0),i=e.reduce((e,t)=>e+t.duration,0),a=i>0?r/(i/1e3):0,o=n/t,s=1-o,c=this.samples.filter(e=>e.latency!==void 0);this._currentMetrics={averageSpeed:a,latency:c.length>0?c.reduce((e,t)=>e+(t.latency||0),0)/c.length:0,successRate:o,errorRate:s,totalRequests:t,totalBytes:r,totalTime:i}}createEmptyMetrics(){return{averageSpeed:0,latency:0,successRate:0,errorRate:0,totalRequests:0,totalBytes:0,totalTime:0}}};const h={conservative:{name:`conservative`,minChunkSize:64*1024,maxChunkSize:2*1024*1024,initialChunkSize:256*1024,adaptationRate:.1},balanced:{name:`balanced`,minChunkSize:128*1024,maxChunkSize:8*1024*1024,initialChunkSize:512*1024,adaptationRate:.2},aggressive:{name:`aggressive`,minChunkSize:256*1024,maxChunkSize:32*1024*1024,initialChunkSize:1024*1024,adaptationRate:.3}},g={conservative:{name:`s3-conservative`,minChunkSize:5*1024*1024,maxChunkSize:64*1024*1024,initialChunkSize:8*1024*1024,adaptationRate:.1},balanced:{name:`s3-balanced`,minChunkSize:5*1024*1024,maxChunkSize:128*1024*1024,initialChunkSize:16*1024*1024,adaptationRate:.2},aggressive:{name:`s3-aggressive`,minChunkSize:5*1024*1024,maxChunkSize:256*1024*1024,initialChunkSize:32*1024*1024,adaptationRate:.3}};var _=class{constructor(e,t={}){this.lastDecision=null,this.consecutiveFailures=0,this.consecutiveSuccesses=0,this.connectionMetrics=null,this.networkMonitor=e,this.config={enabled:t.enabled??!0,fallbackChunkSize:t.fallbackChunkSize??1024*1024,minChunkSize:t.minChunkSize??64*1024,maxChunkSize:t.maxChunkSize??32*1024*1024,initialChunkSize:t.initialChunkSize??512*1024,targetUtilization:t.targetUtilization??.85,adaptationRate:t.adaptationRate??.2,conservativeMode:t.conservativeMode??!1,connectionPoolingAware:t.connectionPoolingAware??!0,datastoreConstraints:t.datastoreConstraints},this.currentChunkSize=this.getEffectiveInitialChunkSize()}getEffectiveInitialChunkSize(){return this.config.datastoreConstraints?Math.max(this.config.initialChunkSize,this.config.datastoreConstraints.optimalChunkSize):this.config.initialChunkSize}applyDatastoreConstraints(e){return this.config.datastoreConstraints?Math.max(this.config.datastoreConstraints.minChunkSize,Math.min(this.config.datastoreConstraints.maxChunkSize,e)):e}getNextChunkSize(e){if(!this.config.enabled)return{size:this.config.fallbackChunkSize,strategy:`fixed`,reason:`Smart chunking disabled`,networkCondition:{type:`unknown`,confidence:0}};let t=this.networkMonitor.getNetworkCondition(),n=this.currentChunkSize,r=`adaptive`,i=``;if(t.type===`unknown`)n=this.config.initialChunkSize,r=`initial`,i=`Insufficient network data`;else{let e=this.selectStrategy(t);n=this.calculateOptimalChunkSize(t,e),r=e.name,i=`Network condition: ${t.type} (confidence: ${Math.round(t.confidence*100)}%)`}return e&&e<n&&(n=e,i+=`, limited by remaining bytes (${e})`),n=this.applyDatastoreConstraints(n),n=Math.max(this.config.minChunkSize,Math.min(this.config.maxChunkSize,n)),this.currentChunkSize=n,this.lastDecision={size:n,strategy:r,reason:i,networkCondition:t},this.lastDecision}recordChunkResult(e,t,n){this.networkMonitor.recordUpload(e,t,n),n?(this.consecutiveSuccesses++,this.consecutiveFailures=0):(this.consecutiveFailures++,this.consecutiveSuccesses=0),this.adaptChunkSize(n,t,e)}getCurrentChunkSize(){return this.currentChunkSize}getLastDecision(){return this.lastDecision}reset(){this.currentChunkSize=this.config.initialChunkSize,this.consecutiveFailures=0,this.consecutiveSuccesses=0,this.lastDecision=null,this.connectionMetrics=null}updateConnectionMetrics(e){this.connectionMetrics=e}getConnectionPoolingInsights(){if(!this.connectionMetrics||!this.config.connectionPoolingAware)return{isOptimized:!1,reuseRate:0,recommendedMinChunkSize:this.config.minChunkSize,connectionOverhead:0};let e=this.connectionMetrics.reuseRate,t=this.connectionMetrics.averageConnectionTime,n=(1-e)*t,r=Math.max(this.config.minChunkSize,Math.floor(n*1e4));return{isOptimized:e>.7,reuseRate:e,recommendedMinChunkSize:r,connectionOverhead:n}}selectStrategy(e){let t={name:`fallback`,minChunkSize:128*1024,maxChunkSize:4*1024*1024,initialChunkSize:512*1024,adaptationRate:.2},n=this.config.datastoreConstraints?.minChunkSize===5*1024*1024?g:h;if(this.config.conservativeMode)return n.conservative??t;let r;switch(e.type){case`fast`:r=e.confidence>.7?n.aggressive??t:n.balanced??t;break;case`slow`:r=n.conservative??t;break;case`unstable`:r=n.conservative??t;break;default:r=n.balanced??t}return this.config.connectionPoolingAware&&this.connectionMetrics?this.optimizeStrategyForConnectionPooling(r):r}optimizeStrategyForConnectionPooling(e){if(!this.connectionMetrics)return e;let t=this.getConnectionPoolingInsights(),n=t.reuseRate;return n>.8?{...e,name:`${e.name}-pooled-aggressive`,minChunkSize:Math.max(e.minChunkSize*.5,32*1024),adaptationRate:Math.min(e.adaptationRate*1.3,.5)}:n>.5?{...e,name:`${e.name}-pooled-moderate`,minChunkSize:Math.max(e.minChunkSize*.75,64*1024),adaptationRate:Math.min(e.adaptationRate*1.1,.4)}:{...e,name:`${e.name}-pooled-conservative`,minChunkSize:Math.max(e.minChunkSize*1.5,t.recommendedMinChunkSize),adaptationRate:e.adaptationRate*.8}}calculateOptimalChunkSize(e,t){let n=this.currentChunkSize,r=this.networkMonitor.getOptimalThroughput();if(r>0){let i=r*this.getTargetChunkDuration(e)*this.config.targetUtilization,a=t.adaptationRate;n=this.currentChunkSize*(1-a)+i*a}if(n=Math.max(t.minChunkSize,Math.min(t.maxChunkSize,n)),this.consecutiveFailures>0){let e=Math.min(.5,this.consecutiveFailures*.2);n*=1-e}else if(this.consecutiveSuccesses>2){let e=Math.min(.3,this.consecutiveSuccesses*.05);n*=1+e}return Math.round(n)}getTargetChunkDuration(e){switch(e.type){case`fast`:return 3;case`slow`:return 5;case`unstable`:return 2;default:return 3}}adaptChunkSize(e,t,n){if(!e){this.currentChunkSize=Math.max(this.config.minChunkSize,this.currentChunkSize*.8);return}let r=n/(t/1e3),i=this.networkMonitor.getCurrentMetrics();if(i.averageSpeed>0){let e=r/i.averageSpeed;e<this.config.targetUtilization*.8?this.currentChunkSize=Math.min(this.config.maxChunkSize,this.currentChunkSize*1.1):e>this.config.targetUtilization*1.2&&(this.currentChunkSize=Math.max(this.config.minChunkSize,this.currentChunkSize*.95))}}},v=class extends Error{constructor({name:e,message:t,cause:n,status:r}){super(),this.name=e,this.cause=n,this.message=t,this.status=r}isNetworkError(){return this.name===`NETWORK_ERROR`||this.name===`NETWORK_UNEXPECTED_RESPONSE`}};function y(t){return Object.entries(t).map(([t,n])=>`${t} ${e.encode(String(n))}`).join(`,`)}function b(e,t){return e>=t&&e<t+100}function x(e,{uploadLengthDeferred:t,uploadSize:n}){if(t)return null;if(n!=null)return n;let r=e;if(r==null)throw new v({name:`UPLOAD_SIZE_NOT_SPECIFIED`,message:"cannot automatically derive upload's size from input. Specify it manually using the `uploadSize` option or use the `uploadLengthDeferred` option"});return r}function S(e,t,n){if(t<=1)return[{startByte:0,endByte:e,segmentIndex:0}];let r=[];if(n){let t=0,i=0;for(;t<e;){let a=Math.min(t+n,e);r.push({startByte:t,endByte:a,segmentIndex:i}),t=a,i++}}else{let n=Math.ceil(e/t);for(let i=0;i<t;i++){let t=i*n,a=Math.min(t+n,e);t<e&&r.push({startByte:t,endByte:a,segmentIndex:i})}}return r}async function C({uploadId:e,source:t,offset:n,uploadLengthDeferred:r,abortController:i,onProgress:a,smartChunker:o,uploadistaApi:s,logger:c}){let l=n??0,u=t.size?t.size-l:void 0,d=o.getNextChunkSize(u),f=l+d.size;t.size&&(f===1/0||f>t.size)&&!r&&(f=t.size);let{value:p,size:m,done:h}=await t.slice(l,f),g=m??0,_=Date.now();r&&h&&(t.size=n+g);let y=n+g;if(!r&&h&&y!==t.size)throw new v({name:`WRONG_UPLOAD_SIZE`,message:`upload was configured with a size of ${m} bytes, but the source is done after ${y} bytes`});let b=await s.uploadChunk(e,p,{onProgress:(t,n)=>{a?.(e,t,n)},abortController:i}),x=Date.now()-_,S=b.status>=200&&b.status<300;return o.recordChunkResult(g,x,S),c.log(`Chunk upload ${S?`succeeded`:`failed`}: ${g} bytes in ${x}ms (${d.strategy} strategy)`),b}function w(e,t,n,r,i){return r==null||n>=r.length||!t.isNetworkError()?!1:i?i(t,n):T(e,t)}function T(e,t){let n=t.status??0;return(!b(n,400)||n===409||n===423)&&e.isOnline()}async function E({source:e,flowConfig:t,uploadistaApi:n,logger:r,platformService:i,openWebSocket:a,closeWebSocket:o,...s}){let{flowId:c,storageId:l}=t,{flow:u}=await n.getFlow(c),d=u.nodes.find(e=>e.type===`input`);if(!d){let e=new v({name:`FLOW_INCOMPATIBLE`,message:`Flow ${c} does not have a streaming input node. The flow must contain a node with type "input" to support flow uploads.`});throw s.onError?.(e),e}let f=d.id,p={originalName:e.name??`unknown`,mimeType:e.type??`application/octet-stream`,size:e.size??0,...t.metadata};r.log(`Starting flow upload for flow ${c}, node ${f}`);let{status:m,job:h}=await n.runFlow(c,l,{[f]:{operation:`init`,storageId:l,metadata:p}}),g=h.id;if(!b(m,200)||!g){let e=new v({name:`FLOW_INIT_FAILED`,message:`Failed to initialize flow upload`});throw s.onError?.(e),e}s.onJobStart?.(g),r.log(`Flow job ${g} created, opening WebSocket`),a(g),r.log(`Waiting for upload ID from node`);let _=0,y=await n.getJobStatus(g);for(;y.status!==`paused`&&_<60;)await new Promise(e=>i.setTimeout(e,500)),y=await n.getJobStatus(g),_++;if(y.status!==`paused`){let e=new v({name:`FLOW_TIMEOUT`,message:`Flow did not pause after init (status: ${y.status})`});throw s.onError?.(e),e}let x=y.tasks.find(e=>e.nodeId===f)?.result;if(!x?.id){let e=new v({name:`FLOW_NO_UPLOAD_ID`,message:`Flow did not return upload ID after init`});throw s.onError?.(e),e}return r.log(`Upload ID received: ${x.id}`),s.onStart?.({uploadId:x.id,size:e.size??null}),{jobId:g,uploadFile:x,inputNodeId:f}}async function D({jobId:e,uploadFile:t,inputNodeId:n,offset:r,source:i,retryAttempt:a=0,abortController:o,retryDelays:s,smartChunker:c,uploadistaApi:l,logger:u,smartChunking:d,metrics:f,platformService:p,onRetry:m,...h}){let g=r,_=r;try{let g=i.size?i.size-r:void 0,y=c.getNextChunkSize(g).size,b=Math.min(r+y,i.size??0),x=await i.slice(r,b);if(!x||!x.value)throw new v({name:`NETWORK_ERROR`,message:`Failed to read chunk from file`});let S=x.value,C=Date.now(),w=await l.uploadChunk(t.id,S,{abortController:o}),T=Date.now()-C;if(!w.upload)throw new v({name:`UPLOAD_CHUNK_FAILED`,message:`Upload chunk response missing upload data`});if(_=w.upload.offset,h.onProgress?.(t.id,_,i.size??0),h.onChunkComplete?.(_-r,r,i.size??0),d?.enabled!==!1){let e=Math.floor(r/y);f.recordChunk({chunkIndex:e,size:y,duration:T,speed:y/(T/1e3),success:!0,retryCount:a,networkCondition:c.getLastDecision()?.networkCondition?.type,chunkingStrategy:c.getLastDecision()?.strategy});let t=l.getConnectionMetrics();c.updateConnectionMetrics(t)}if(_>=(i.size??0)){if(i&&i.close(),d?.enabled!==!1){let e=f.endSession();e&&u.log(`Flow upload completed: ${e.totalSize} bytes in ${e.totalDuration}ms, avg speed: ${Math.round(e.averageSpeed/1024)}KB/s`)}u.log(`Finalizing flow upload for job ${e}`);try{await l.continueFlow(e,n,{operation:`finalize`,uploadId:t.id},{contentType:`application/json`})}catch(t){let n=new v({name:`FLOW_FINALIZE_FAILED`,message:`Failed to finalize flow upload for job ${e}`,cause:t});throw h.onError?.(n),n}return}await D({jobId:e,uploadFile:t,inputNodeId:n,offset:_,source:i,platformService:p,retryDelays:s,smartChunker:c,uploadistaApi:l,logger:u,smartChunking:d,metrics:f,onRetry:m,abortController:o,...h})}catch(y){if(s!=null)if(r!=null&&_>g&&(a=0),w(p,y instanceof v?y:new v({name:`NETWORK_ERROR`,message:`Network error during flow upload`,cause:y}),a,s,h.onShouldRetry)){let _=s[a];g=r;let v=p.setTimeout(async()=>{await D({jobId:e,uploadFile:t,inputNodeId:n,offset:r,source:i,retryAttempt:a+1,retryDelays:s,smartChunker:c,uploadistaApi:l,logger:u,smartChunking:d,metrics:f,platformService:p,onRetry:m,abortController:o,...h})},_);m?.(v)}else throw new v({name:`UPLOAD_CHUNK_FAILED`,message:`Failed to upload chunk for job ${e} at offset ${r}`,cause:y})}}async function O(e,t){return e.findUploadsByFingerprint(t)}function ee(e){return{uploadId:e.uploadId??null,parallelUploadUrls:e.parallelUploadUrls,clientStorageKey:e.clientStorageKey}}async function k({clientStorage:e,fingerprint:t,size:n,metadata:r,clientStorageKey:i,storeFingerprintForResuming:a,generateId:o}){if(!a||!t||i!=null)return;let s={size:n,metadata:r,creationTime:new Date().toString(),clientStorageKey:t};return await e.addUpload(t,s,{generateId:o})}async function A(e,t){t&&await e.removeUpload(t)}async function j({uploadId:e,offset:t,source:n,uploadLengthDeferred:r,retryAttempt:i=0,abortController:a,retryDelays:o,smartChunker:s,uploadistaApi:c,logger:l,smartChunking:u,metrics:d,platformService:f,onRetry:p,...m}){let h=t,g=t;try{let h=await C({uploadId:e,source:n,offset:t,uploadLengthDeferred:r,onProgress:m.onProgress,abortController:a,smartChunker:s,uploadistaApi:c,logger:l});if(!b(h.status,200)||h.upload==null)throw new v({name:`NETWORK_UNEXPECTED_RESPONSE`,message:`Unexpected response while uploading chunk`});if(g=h.upload.offset,m.onProgress?.(e,g,h.upload.size??0),m.onChunkComplete?.(g-t,t,h.upload?.size??0),u?.enabled!==!1){let e=Math.floor(t/(g-t||1)),n=g-t,r=Date.now()-(Date.now()-100),a=s.getLastDecision();d.recordChunk({chunkIndex:e,size:n,duration:r,speed:n/(r/1e3),success:!0,retryCount:i,networkCondition:a?.networkCondition?.type,chunkingStrategy:a?.strategy});let o=c.getConnectionMetrics();s.updateConnectionMetrics(o)}if(g>=(n.size??0)){if(n&&n.close(),u?.enabled!==!1){let e=d.endSession();e&&l.log(`Upload completed: ${e.totalSize} bytes in ${e.totalDuration}ms, avg speed: ${Math.round(e.averageSpeed/1024)}KB/s`)}m.onSuccess?.(h.upload);return}await j({uploadId:e,offset:g,source:n,uploadLengthDeferred:r,retryDelays:o,smartChunker:s,platformService:f,uploadistaApi:c,logger:l,smartChunking:u,metrics:d,onRetry:p,abortController:a,...m})}catch(_){if(o!=null)if(t!=null&&g>h&&(i=0),w(f,_ instanceof v?_:new v({name:`NETWORK_ERROR`,message:`Network error`,cause:_}),i,o,m.onShouldRetry)){let g=o[i];h=t;let _=f.setTimeout(async()=>{await j({uploadId:e,offset:t,source:n,retryAttempt:i+1,uploadLengthDeferred:r,retryDelays:o,smartChunker:s,platformService:f,uploadistaApi:c,logger:l,smartChunking:u,metrics:d,onRetry:p,abortController:a,...m})},g);p?.(_)}else throw new v({name:`UPLOAD_CHUNK_FAILED`,message:`failed to upload chunk for ${e} at offset ${t}`,cause:_})}}async function M({fingerprint:e,storageId:t,source:n,uploadLengthDeferred:r,metadata:i,uploadistaApi:a,logger:o,checksumService:s,clientStorage:c,generateId:l,storeFingerprintForResuming:u,openWebSocket:d,closeWebSocket:f,computeChecksum:p=!0,checksumAlgorithm:m=`sha256`,platformService:h,...g}){if(!r&&n.size==null){let e=new v({name:`UPLOAD_SIZE_NOT_SPECIFIED`,message:`expected size to be set`});throw g.onError?.(e),e}let _;if(p&&h.isFileLike(n.input))try{o.log(`Computing file checksum...`),_=await s.computeChecksum(new Uint8Array(n.input)),o.log(`Checksum computed: ${_}`)}catch(e){o.log(`Warning: Failed to compute checksum: ${e instanceof Error?e.message:`Unknown error`}`)}let x={uploadLengthDeferred:r,storageId:t,size:n.size??0,metadata:i?y(i):void 0,fileName:n.name??void 0,type:n.type??``,lastModified:n.lastModified??void 0,checksum:_,checksumAlgorithm:_?m:void 0},{upload:S,status:C}=await a.createUpload(x);if(!b(C,200)||S==null){let e=new v({name:`NETWORK_UNEXPECTED_RESPONSE`,message:`Unexpected response while creating upload`});throw g.onError?.(e),e}if(o.log(`Created upload ${S.id}`),d(S.id),S.size===0){g.onSuccess?.(S),n&&n.close(),f(S.id);return}let w=await k({clientStorage:c,fingerprint:e,size:S.size??0,metadata:S.metadata??{},clientStorageKey:null,storeFingerprintForResuming:u,generateId:l});return g.onStart?.({uploadId:S.id,size:S.size??null}),{uploadIdStorageKey:w,uploadId:S.id,offset:S.offset}}async function N({uploadId:e,storageId:t,uploadIdStorageKey:n,fingerprint:r,source:i,uploadLengthDeferred:a,uploadistaApi:o,logger:s,platformService:c,checksumService:l,clientStorage:u,generateId:d,storeFingerprintForResuming:f,openWebSocket:p,...m}){let h=await o.getUpload(e),g=h.status;if(!b(g,200)){if(g===423){let e=new v({name:`UPLOAD_LOCKED`,message:`upload is currently locked; retry later`});throw m.onError?.(e),e}return b(g,400)&&await A(u,n),await M({platformService:c,fingerprint:r,storageId:t,source:i,uploadLengthDeferred:a,metadata:{},uploadistaApi:o,logger:s,checksumService:l,clientStorage:u,generateId:d,storeFingerprintForResuming:f,openWebSocket:p,closeWebSocket:()=>{},...m})}let _=h.upload;if(_==null){let e=new v({name:`NETWORK_UNEXPECTED_RESPONSE`,message:`Unexpected response while resuming upload`});throw m.onError?.(e),e}if(await k({clientStorage:u,fingerprint:r,size:_.size??0,metadata:_.metadata??{},clientStorageKey:n,storeFingerprintForResuming:f,generateId:d}),_.offset!==_.size)return p(_.id),{uploadId:e,uploadIdStorageKey:n,offset:_.offset}}async function P({source:e,uploadId:t,uploadIdStorageKey:n,storageId:r,fingerprint:i,platformService:a,uploadLengthDeferred:o,uploadistaApi:s,checksumService:c,logger:l,clientStorage:u,generateId:d,storeFingerprintForResuming:f,openWebSocket:p,closeWebSocket:m,...h}){return t!=null&&n!=null?(l.log(`Resuming upload from previous id: ${t}`),await N({uploadId:t,uploadIdStorageKey:n,storageId:r,fingerprint:i,source:e,checksumService:c,uploadLengthDeferred:o,uploadistaApi:s,logger:l,platformService:a,clientStorage:u,generateId:d,storeFingerprintForResuming:f,openWebSocket:p,...h})):(l.log(`Creating a new upload`),await M({fingerprint:i,storageId:r,source:e,uploadLengthDeferred:o,metadata:{},uploadistaApi:s,logger:l,checksumService:c,platformService:a,clientStorage:u,generateId:d,storeFingerprintForResuming:f,openWebSocket:p,closeWebSocket:m,...h}))}async function F({source:e,storageId:t,fingerprint:n,uploadLengthDeferred:r,parallelUploads:i,parallelChunkSize:a,retryDelays:o,smartChunker:s,uploadistaApi:c,logger:l,checksumService:u,smartChunking:d,metrics:f,clientStorage:p,generateId:m,storeFingerprintForResuming:h,openWebSocket:g,closeWebSocket:_,terminate:y,abortControllerFactory:b,platformService:x,...C}){if(!e.size||e.size===0){C.onError?.(new v({name:`UPLOAD_SIZE_NOT_SPECIFIED`,message:`Parallel upload requires a known file size`}));return}let w=S(e.size,i,a);l.log(`Starting parallel upload with ${w.length} segments`);let T={segments:[],totalProgress:0,completed:!1,failed:!1},E=new Map,D=new Map,O=()=>{let e=Array.from(D.values()).reduce((e,t)=>e+t,0),t=Array.from(E.values()).reduce((e,t)=>e+t,0);T.totalProgress=e>0?t/e:0,C.onProgress&&e>0&&C.onProgress(`parallel-upload`,t,e)};try{let i=await Promise.all(w.map(async i=>{let a={...e,size:i.endByte-i.startByte,async slice(t,n){let r=i.startByte+(t??0),a=Math.min(i.startByte+(n??i.endByte-i.startByte),i.endByte);return await e.slice(r,a)}},o=await M({fingerprint:`${n}-segment-${i.segmentIndex}`,storageId:t,source:a,uploadLengthDeferred:r,platformService:x,metadata:{parallelUpload:`true`,segmentIndex:i.segmentIndex.toString(),totalSegments:w.length.toString(),parentFingerprint:n},checksumService:u,uploadistaApi:c,logger:l,clientStorage:p,generateId:m,storeFingerprintForResuming:h,openWebSocket:g,closeWebSocket:_,onSuccess:()=>{},onError:e=>l.log(`Segment ${i.segmentIndex} creation error: ${e}`),onStart:e=>{D.set(i.segmentIndex,e.size??0),O()}});if(!o)throw new v({name:`PARALLEL_SEGMENT_CREATION_FAILED`,message:`Failed to create upload segment ${i.segmentIndex}`});return{segment:{uploadId:o.uploadId,uploadIdStorageKey:o.uploadIdStorageKey,segmentIndex:i.segmentIndex,startByte:i.startByte,endByte:i.endByte,offset:o.offset,abortController:b.create(),retryTimeout:null},source:a}}));T.segments=i.map(e=>e.segment),C.onStart?.({uploadId:`parallel-${T.segments.map(e=>e.uploadId).join(`,`)}`,size:e.size});let a=i.map(async({segment:e,source:t})=>{try{await j({uploadId:e.uploadId,offset:e.offset,source:t,uploadLengthDeferred:r,abortController:e.abortController,retryDelays:o,smartChunker:s,uploadistaApi:c,platformService:x,logger:l,smartChunking:d,metrics:f,onProgress:(t,n,r)=>{E.set(e.segmentIndex,n),r&&D.set(e.segmentIndex,r),O()},onChunkComplete:(e,t,n)=>{C.onChunkComplete&&C.onChunkComplete(e,t,n)},onSuccess:t=>{l.log(`Segment ${e.segmentIndex} completed successfully`),E.set(e.segmentIndex,D.get(e.segmentIndex)??0),O()},onShouldRetry:(t,n)=>(l.log(`Segment ${e.segmentIndex} retry attempt ${n}: ${t}`),n<(o?.length??0)),onRetry:t=>{e.retryTimeout=t},onError:t=>{throw l.log(`Segment ${e.segmentIndex} failed: ${t}`),t}})}catch(t){throw l.log(`Segment ${e.segmentIndex} upload failed: ${t}`),new v({name:`PARALLEL_SEGMENT_UPLOAD_FAILED`,message:`Segment ${e.segmentIndex} upload failed`,cause:t})}});if(await Promise.all(a),T.completed=!0,l.log(`All parallel upload segments completed successfully`),C.onSuccess){let r={id:`parallel-${T.segments.map(e=>e.uploadId).join(`,`)}`,offset:e.size,size:e.size,storage:{id:t,type:`parallel-upload`},metadata:{parallelUpload:`true`,totalSegments:w.length.toString(),fingerprint:n}};C.onSuccess(r)}for(let e of i)e.source.close?.();return{parallelState:T,abort:async()=>{await I(T,l,y,_,x)}}}catch(e){throw T.failed=!0,T.error=e,await I(T,l,y,_,x),C.onError?.(e),e}}async function I(e,t,n,r,i){t.log(`Aborting parallel upload...`);for(let a of e.segments){a.abortController.abort(),a.retryTimeout&&=(i.clearTimeout(a.retryTimeout),null);try{await n(a.uploadId)}catch(e){t.log(`Failed to terminate segment ${a.segmentIndex}: ${e}`)}r(a.uploadId)}e.completed=!1,e.failed=!0,t.log(`Parallel upload aborted`)}async function L(e,t){return new Promise(n=>e.setTimeout(n,t))}async function R(e,t,n,r,i=0){try{if((await t.deleteUpload(e)).status===204)return;throw new v({name:`NETWORK_UNEXPECTED_RESPONSE`,message:`Unexpected response while terminating upload`})}catch(a){if(!w(n,a,i,r))throw a;return await L(n,r?.[i]??0),await R(e,t,n,r,i+1)}}async function z({uploadId:e,uploadIdStorageKey:t,retryTimeout:n,shouldTerminate:r,abortController:i,uploadistaApi:a,platformService:o,retryDelays:s,clientStorage:c}){if(i.abort(),n!=null&&o.clearTimeout(n),!(!r||e==null)&&(await R(e,a,o,s),t!=null))return A(c,t)}var B=class{constructor(e={}){this.chunkHistory=[],this.currentSession={},this.sessionStartTime=0,this.config={maxChunkHistory:e.maxChunkHistory??1e3,enableDetailedMetrics:e.enableDetailedMetrics??!0,performanceThresholds:{slowSpeed:100*1024,fastSpeed:5*1024*1024,highRetryRate:.2,...e.performanceThresholds}}}startSession(e,t,n){this.sessionStartTime=Date.now(),this.currentSession={uploadId:e,totalSize:t,chunksCompleted:0,chunksTotal:Math.ceil(t/(1024*1024)),totalDuration:0,totalRetries:0,adaptiveChunkingEnabled:n,startTime:this.sessionStartTime},this.chunkHistory=[]}recordChunk(e){let t={...e,timestamp:Date.now()};this.chunkHistory.push(t),this.chunkHistory.length>this.config.maxChunkHistory&&(this.chunkHistory=this.chunkHistory.slice(-this.config.maxChunkHistory)),this.currentSession&&t.success&&(this.currentSession.chunksCompleted=(this.currentSession.chunksCompleted||0)+1,this.currentSession.totalDuration=(this.currentSession.totalDuration||0)+t.duration,this.currentSession.totalRetries=(this.currentSession.totalRetries||0)+t.retryCount)}endSession(){if(!this.currentSession.uploadId)return null;let e=Date.now(),t=e-this.sessionStartTime,n=this.chunkHistory.filter(e=>e.success);if(n.length===0)return null;let r=n.map(e=>e.speed),i=r.reduce((e,t)=>e+t,0)/r.length,a=Math.max(...r),o=Math.min(...r),s=n.length/this.chunkHistory.length,c={uploadId:this.currentSession.uploadId||``,totalSize:this.currentSession.totalSize||0,totalDuration:t,chunksCompleted:n.length,chunksTotal:this.chunkHistory.length,averageSpeed:i,peakSpeed:a,minSpeed:o,totalRetries:this.currentSession.totalRetries||0,successRate:s,adaptiveChunkingEnabled:this.currentSession.adaptiveChunkingEnabled||!1,startTime:this.currentSession.startTime||0,endTime:e};return this.currentSession={},c}getCurrentSessionMetrics(){return{...this.currentSession}}getChunkHistory(e){let t=this.chunkHistory.slice();return e?t.slice(-e):t}getPerformanceInsights(){if(this.chunkHistory.length<5)return{overallEfficiency:0,chunkingEffectiveness:0,networkStability:0,recommendations:[`Insufficient data for analysis`],optimalChunkSizeRange:{min:256*1024,max:2*1024*1024}};let e=this.chunkHistory.filter(e=>e.success),t=e.map(e=>e.speed),n=t.length>0?t.reduce((e,t)=>e+t,0)/t.length:0,r=this.calculateVariance(t),i=Math.sqrt(r)/n,a=e.length/this.chunkHistory.length,o=Math.min(1,n/this.config.performanceThresholds.fastSpeed)*.7+a*.3,s=Math.max(0,1-Math.min(1,i));return{overallEfficiency:o,chunkingEffectiveness:this.calculateChunkingEffectiveness(e),networkStability:s,recommendations:this.generateRecommendations(n,a,i),optimalChunkSizeRange:this.calculateOptimalChunkSizeRange(e)}}exportMetrics(){return{session:this.getCurrentSessionMetrics(),chunks:this.getChunkHistory(),insights:this.getPerformanceInsights()}}reset(){this.chunkHistory=[],this.currentSession={},this.sessionStartTime=0}calculateVariance(e){if(e.length===0)return 0;let t=e.reduce((e,t)=>e+t,0)/e.length;return e.map(e=>(e-t)**2).reduce((e,t)=>e+t,0)/e.length}calculateChunkingEffectiveness(e){if(e.length<3)return .5;let t=this.groupChunksBySize(e);if(Object.keys(t).length<2)return .5;let n=Object.values(t).map(e=>{let t=e.map(e=>e.speed),n=t.reduce((e,t)=>e+t,0)/t.length,r=this.calculateVariance(t);return Math.sqrt(r)/n}),r=n.reduce((e,t)=>e+t,0)/n.length;return Math.max(0,1-Math.min(1,r))}groupChunksBySize(e){let t={};return e.forEach(e=>{let n;n=e.size<128*1024?`64KB`:e.size<256*1024?`128KB`:e.size<512*1024?`256KB`:e.size<1024*1024?`512KB`:e.size<2*1024*1024?`1MB`:e.size<4*1024*1024?`2MB`:e.size<8*1024*1024?`4MB`:`8MB+`,t[n]||(t[n]=[]);let r=t[n];r&&r.push(e)}),t}generateRecommendations(e,t,n){let r=[];return e<this.config.performanceThresholds.slowSpeed&&r.push(`Consider using smaller chunk sizes for better performance on slow connections`),e>this.config.performanceThresholds.fastSpeed&&r.push(`Network is fast - larger chunk sizes may improve efficiency`),t<.9&&r.push(`High failure rate detected - consider more conservative chunking strategy`),n>.5&&r.push(`Network appears unstable - smaller, more frequent chunks may be more reliable`),n<.2&&e>this.config.performanceThresholds.slowSpeed&&r.push(`Stable network detected - larger chunks may improve efficiency`),r.length===0&&r.push(`Performance appears optimal with current configuration`),r}calculateOptimalChunkSizeRange(e){if(e.length<5)return{min:256*1024,max:2*1024*1024};let t=e.slice().sort((e,t)=>t.speed-e.speed).slice(0,Math.ceil(e.length*.3)).map(e=>e.size),n=Math.min(...t),r=Math.max(...t);return{min:Math.max(64*1024,n),max:Math.min(32*1024*1024,r)}}};function V(e){return new t(e.getCapabilities(),t=>e.validateUploadStrategy(t))}function te({capabilities:e,fileSize:t,chunkSize:n,parallelUploads:r,uploadLengthDeferred:i,strategyConfig:a,logger:o}){if(a?.enableCapabilityNegotiation!==!1){let i=V(new f(e)),s={fileSize:t||0,preferredStrategy:a?.preferredStrategy===`auto`?void 0:a?.preferredStrategy,preferredChunkSize:n,parallelUploads:r,minChunkSizeForParallel:a?.minFileSizeForParallel||10*1024*1024},c=i.negotiateStrategy(s);o.log(`Upload strategy negotiated: ${c.strategy}`);for(let e of c.reasoning)o.log(` - ${e}`);for(let e of c.warnings)o.log(` Warning: ${e}`);return a?.onStrategySelected?.({chosen:c.strategy,chunkSize:c.chunkSize,parallelUploads:c.parallelUploads,reasoning:c.reasoning,warnings:c.warnings}),c}else{let e=r>1&&t&&t>(a?.minFileSizeForParallel||10*1024*1024)&&!i;return{strategy:e?`parallel`:`single`,chunkSize:n,parallelUploads:e?r:1,reasoning:[`Legacy strategy selection: ${e?`parallel`:`single`}`],warnings:[]}}}function H(e,t=p,n){let r=[],i=[],a=V(new f(t)).validateConfiguration({fileSize:0,preferredStrategy:e.uploadStrategy?.preferredStrategy===`auto`?void 0:e.uploadStrategy?.preferredStrategy,preferredChunkSize:e.chunkSize,parallelUploads:e.parallelUploads});if(a.valid||r.push(...a.errors),e.parallelUploads&&e.parallelUploads<1&&r.push(`parallelUploads must be at least 1`),e.chunkSize&&e.chunkSize<1024&&i.push(`Chunk size below 1KB may impact performance`),e.uploadStrategy?.preferredStrategy===`parallel`&&!e.parallelUploads&&i.push(`Parallel strategy requested but parallelUploads not configured`),r.length>0){n.log(`Configuration validation errors:`);for(let e of r)n.log(` Error: ${e}`)}if(i.length>0){n.log(`Configuration validation warnings:`);for(let e of i)n.log(` Warning: ${e}`)}return{valid:r.length===0,errors:r,warnings:i}}function ne(e,t){let n=H(e,p,t);if(!n.valid){let e=`Upload client configuration validation failed: ${n.errors.join(`, `)}`;throw t.log(e),new v({name:`UPLOAD_SIZE_NOT_SPECIFIED`,message:e})}}const U=(e,t)=>e&&{FILE_NOT_FOUND:`UPLOAD_NOT_FOUND`,UPLOAD_ID_NOT_FOUND:`UPLOAD_NOT_FOUND`,FLOW_JOB_NOT_FOUND:`JOB_NOT_FOUND`,FLOW_NODE_ERROR:`FLOW_RUN_FAILED`,FLOW_STRUCTURE_ERROR:`FLOW_RUN_FAILED`,FLOW_CYCLE_ERROR:`FLOW_RUN_FAILED`,FLOW_INPUT_VALIDATION_ERROR:`FLOW_RUN_FAILED`,FLOW_OUTPUT_VALIDATION_ERROR:`FLOW_RUN_FAILED`,VALIDATION_ERROR:`CREATE_UPLOAD_FAILED`,DATASTORE_NOT_FOUND:`FLOW_RUN_FAILED`}[e]||t;function W(e,t,{httpClient:n,logger:r,authManager:i,webSocketFactory:o}){let s=i?new a(n,i):n,c=`${e}/${t}/api/upload`,l=`${e}/${t}/api/flow`,u=`${e}/${t}/api/jobs`,d=e.replace(`http`,`ws`),f=`${d}/uploadista/ws/upload`,m=`${d}/uploadista/ws/flow`,h=async(e,t)=>{if(r?.log(`Getting auth token for WebSocket (jobId: ${t})`),`attachToken`in e){r?.log(`Detected SaasAuthManager, calling attachToken`);let n=(await e.attachToken({},t)).Authorization;if(n?.startsWith(`Bearer `))return r?.log(`Successfully extracted Bearer token from SaasAuthManager`),n.substring(7);r?.log(`No valid Authorization header from SaasAuthManager: ${n}`)}if(`attachCredentials`in e){r?.log(`Detected DirectAuthManager, calling attachCredentials`);let t=(await e.attachCredentials({})).Authorization;if(t)return r?.log(`Successfully extracted Authorization header from DirectAuthManager`),t.startsWith(`Bearer `)?t.substring(7):t;r?.log(`No Authorization header from DirectAuthManager`)}return r?.log(`No auth token could be extracted from auth manager`),null};return{getUpload:async e=>{let t=await s.request(`${c}/${e}`);if(!t.ok){let n=await t.json().catch(()=>({})),r=U(n.code,`UPLOAD_NOT_FOUND`),i=n.error||n.message||`Upload ${e} not found`;throw new v({name:r,message:n.code?`${i} (${n.code})`:i,status:t.status})}let n=await t.json();return{status:t.status,upload:n}},deleteUpload:async e=>{let t=await s.request(`${c}/${e}`,{method:`DELETE`});if(!t.ok){let n=await t.json().catch(()=>({})),r=U(n.code,`DELETE_UPLOAD_FAILED`),i=n.error||n.message||`Failed to delete upload ${e}`;throw new v({name:r,message:n.code?`${i} (${n.code})`:i,status:t.status})}return{status:t.status}},createUpload:async e=>{r?.log(`createUpload ${JSON.stringify(e)}`);let t=await s.request(c,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok){let e=await t.json().catch(()=>({})),n=U(e.code,`CREATE_UPLOAD_FAILED`),r=e.error||e.message||`Failed to create upload`;throw new v({name:n,message:e.code?`${r} (${e.code})`:r,status:t.status})}let n=await t.json();return r?.log(JSON.stringify(n)),{status:t.status,upload:n}},uploadChunk:async(e,t,{abortController:n})=>{try{let r=await s.request(`${c}/${e}`,{method:`PATCH`,headers:{"Content-Type":`application/octet-stream`},body:t,signal:n?.signal});if(!r.ok){let e=await r.json().catch(()=>({}));throw new v({name:`NETWORK_ERROR`,message:e.error||e.message||`Unknown network error`,status:r.status})}let i=await r.json();return{status:r.status,upload:i}}catch(e){throw e instanceof v?e:new v({name:`NETWORK_ERROR`,message:`Network error`,cause:e})}},getFlow:async e=>{let t=await s.request(`${l}/${e}`);if(!t.ok){let n=await t.json().catch(()=>({})),r=U(n.code,`FLOW_NOT_FOUND`),i=n.error||n.message||`Flow ${e} not found`;throw new v({name:r,message:n.code?`${i} (${n.code})`:i,status:t.status})}let n=await t.json();return r?.log(`getFlow: ${e}`),{status:t.status,flow:n}},runFlow:async(e,t,n)=>{r?.log(`runFlow: ${e} with storage: ${t}`);let i=await s.request(`${l}/${e}/${t}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({inputs:n})});if(!i.ok){let t=await i.json().catch(()=>({})),n=U(t.code,`FLOW_RUN_FAILED`),r=t.error||t.message||`Failed to run flow ${e}`;throw new v({name:n,message:t.code?`${r} (${t.code})`:r,status:i.status})}let a=await i.json();return r?.log(`runFlow response: ${JSON.stringify(a)}`),{status:i.status,job:a}},continueFlow:async(e,t,n,i)=>{r?.log(`continueFlow: ${e} at node: ${t}`);let a=i?.contentType||`application/json`,o;o=a===`application/octet-stream`?n:JSON.stringify({newData:n});let c=await s.request(`${u}/${e}/continue/${t}`,{method:`PATCH`,headers:{"Content-Type":a},body:o});if(!c.ok){let t=await c.json().catch(()=>({})),n=U(t.code,`FLOW_CONTINUE_FAILED`),r=t.error||t.message||`Failed to continue flow for job ${e}`;throw new v({name:n,message:t.code?`${r} (${t.code})`:r,status:c.status})}return await c.json()},getJobStatus:async e=>{let t=await s.request(`${u}/${e}/status`);if(!t.ok){let n=await t.json().catch(()=>({})),r=U(n.code,`JOB_NOT_FOUND`),i=n.error||n.message||`Job ${e} not found`;throw new v({name:r,message:n.code?`${i} (${n.code})`:i,status:t.status})}return await t.json()},openUploadWebSocket:async e=>{let t=`${f}/${e}`;if(i)try{let n=await h(i,e);n?(t+=`?token=${encodeURIComponent(n)}`,r?.log(`WebSocket token attached for upload: ${e}`)):r?.log(`No token for upload WebSocket (using cookie-based auth): ${e}`)}catch(t){let n=t instanceof Error?t.message:String(t);r?.log(`Error getting auth token for upload WebSocket: ${n}`),r?.log(`Proceeding with cookie-based authentication for upload WebSocket: ${e}`)}let n=o.create(t);return n.onopen=()=>{r?.log(`Upload WebSocket connection opened for: ${e}`)},n.onclose=()=>{r?.log(`Upload WebSocket connection closed for: ${e}`)},n.onerror=t=>{r?.log(`Upload WebSocket error for ${e}: ${t}`)},n},openFlowWebSocket:async e=>{let t=`${m}/${e}`;if(i)try{let n=await h(i,e);n?(t+=`?token=${encodeURIComponent(n)}`,r?.log(`WebSocket token attached for flow job: ${e}`)):r?.log(`No token for flow WebSocket (using cookie-based auth): ${e}`)}catch(t){let n=t instanceof Error?t.message:String(t);r?.log(`Error getting auth token for flow WebSocket: ${n}`),r?.log(`Proceeding with cookie-based authentication for flow WebSocket: ${e}`)}let n=o.create(t);return n.onopen=()=>{r?.log(`Flow WebSocket connection opened for job: ${e}`)},n.onclose=()=>{r?.log(`Flow WebSocket connection closed for job: ${e}`)},n.onerror=t=>{r?.log(`Flow WebSocket error for job ${e}: ${t}`)},n},closeWebSocket:e=>{e.close()},getConnectionMetrics:()=>s.getMetrics(),getDetailedConnectionMetrics:()=>s.getDetailedMetrics(),warmupConnections:async e=>s.warmupConnections(e),getCapabilities:async e=>{let t=`${c}/capabilities?storageId=${encodeURIComponent(e)}`;try{let e=await s.request(t,{method:`GET`,headers:{"Content-Type":`application/json`}});return e.ok?(await e.json()).capabilities:(r?.log(`Failed to fetch capabilities: ${e.status} ${e.statusText}`),p)}catch(e){return r?.log(`Failed to fetch server capabilities, using defaults: ${e}`),p}}}}var G=class{constructor(e,t,n){this.uploadistaApi=e,this.logger=t,this.onEvent=n,this.uploadWebsockets=new Map,this.flowWebsockets=new Map}async openUploadWebSocket(e){this.closeUploadWebSocket(e);let t=await this.uploadistaApi.openUploadWebSocket(e);return this.uploadWebsockets.set(e,t),t.onmessage=e=>{try{let t=n.safeParse(JSON.parse(e.data));t.success?t.data.type===`upload_event`&&this.onEvent?.(t.data.payload):this.logger.error(`Error parsing upload event: ${t.error.message}`)}catch(e){this.logger.error(`Error parsing upload event: ${e}`)}},t.onerror=t=>{this.logger.error(`Upload WebSocket error for ${e}: ${t}`)},t.onclose=t=>{this.logger.log(`Upload WebSocket closed for ${e}, \n code: ${t.code}, reason: ${t.reason}`),this.uploadWebsockets.delete(e)},t}async openFlowWebSocket(e){this.closeFlowWebSocket(e);let t=await this.uploadistaApi.openFlowWebSocket(e);return this.flowWebsockets.set(e,t),t.onmessage=t=>{try{let n=JSON.parse(t.data);switch(n.type){case`connection`:this.logger.log(`Flow WebSocket connected for job: ${n.id}`);break;case`subscribed`:this.logger.log(`Flow WebSocket subscribed for job: ${n.payload.jobId}`);break;case`error`:this.logger.error(`Flow WebSocket error: ${n.message} for job ${e} with code ${n.code}`);break;case`pong`:this.logger.log(`Flow WebSocket pong received for job: ${e}`);break;case`flow_event`:this.onEvent?.(n.payload);break;default:this.logger.warn(`Unknown flow WebSocket message type: ${n.type}`)}}catch(e){this.logger.error(`Error parsing flow WebSocket message:${e}`)}},t.onerror=t=>{this.logger.error(`Flow WebSocket error for job ${e}: ${t}`)},t.onclose=t=>{this.logger.log(`Flow WebSocket closed for job ${e}, \n code: ${t.code}, reason: ${t.reason}`),this.flowWebsockets.delete(e)},t}async openWebSocket(e){return e.startsWith(`upload-`)||e.includes(`upload`)?await this.openUploadWebSocket(e):await this.openFlowWebSocket(e)}closeUploadWebSocket(e){let t=this.uploadWebsockets.get(e);t&&(this.uploadistaApi.closeWebSocket(t),this.uploadWebsockets.delete(e))}closeFlowWebSocket(e){let t=this.flowWebsockets.get(e);t&&(this.uploadistaApi.closeWebSocket(t),this.flowWebsockets.delete(e))}closeWebSocket(e){this.closeUploadWebSocket(e),this.closeFlowWebSocket(e)}closeAll(){for(let[e,t]of this.uploadWebsockets.entries())this.uploadistaApi.closeWebSocket(t),this.uploadWebsockets.delete(e);for(let[e,t]of this.flowWebsockets.entries())this.uploadistaApi.closeWebSocket(t),this.flowWebsockets.delete(e)}sendPing(e){let t=this.flowWebsockets.get(e);return t&&t.readyState===t.OPEN?(t.send(JSON.stringify({type:`ping`,timestamp:new Date().toISOString()})),!0):!1}getUploadWebSocket(e){return this.uploadWebsockets.get(e)}getFlowWebSocket(e){return this.flowWebsockets.get(e)}isUploadConnected(e){let t=this.uploadWebsockets.get(e);return t?.readyState===t?.OPEN}isFlowConnected(e){let t=this.flowWebsockets.get(e);return t?.readyState===t?.OPEN}isConnected(e){return this.isUploadConnected(e)||this.isFlowConnected(e)}getConnectionCount(){return this.uploadWebsockets.size+this.flowWebsockets.size}getConnectionCountByType(){return{upload:this.uploadWebsockets.size,flow:this.flowWebsockets.size,total:this.uploadWebsockets.size+this.flowWebsockets.size}}};const K={maxConnectionsPerHost:8,connectionTimeout:2e4,keepAliveTimeout:9e4,enableHttp2:!0,retryOnConnectionError:!0};function q({baseUrl:e,uploadistaBasePath:t=`uploadista`,storageId:n,retryDelays:r=[1e3,3e3,5e3],chunkSize:i,parallelUploads:a=1,parallelChunkSize:o,uploadStrategy:u,smartChunking:f,networkMonitoring:h,uploadMetrics:g,checksumService:v,onEvent:y,generateId:b,httpClient:S,logger:C=d(!0),fileReader:w,fingerprintService:T,clientStorage:k,storeFingerprintForResuming:A=!0,webSocketFactory:M,abortControllerFactory:N,platformService:I,auth:L}){let V=e.replace(/\/$/,``),U=L?L.mode===`direct`?new s(L,I,C):new l(L,S):new c;L&&C.log(`Authentication enabled in ${L.mode} mode${L.mode===`saas`?` (server: ${L.authServerUrl})`:``}`);let K=W(V,t,{logger:C,httpClient:S,authManager:U,webSocketFactory:M}),q=new m(h),J=new B(g),Y=null,X=async()=>Y||(Y=await K.getCapabilities(n),Y),Z,Q=async()=>{if(Z)return Z;let e=await X(),t=e.minChunkSize&&e.maxChunkSize&&e.optimalChunkSize?{minChunkSize:e.minChunkSize,maxChunkSize:e.maxChunkSize,optimalChunkSize:e.optimalChunkSize,requiresOrderedChunks:e.requiresOrderedChunks}:void 0;return Z=new _(q,{enabled:!0,...f,fallbackChunkSize:i,datastoreConstraints:t}),C.log(`Smart chunker initialized with datastore constraints: ${JSON.stringify(t)}`),Z},$=new G(K,C,y);return ne({baseUrl:V,storageId:n,chunkSize:i,parallelUploads:a,parallelChunkSize:o,uploadStrategy:u},C),{upload:async(e,{uploadLengthDeferred:s=!1,uploadSize:c,onProgress:l,onChunkComplete:d,onSuccess:p,onShouldRetry:m,onError:h}={})=>{let g=null,_=null,y=await T.computeFingerprint(e,`${V}/${t}/api/upload`);if(C.log(`fingerprint: ${y}`),!y)throw Error(`unable calculate fingerprint for this input file`);let S=await O(k,y);if(S.length>0&&S[0]!=null){let e=ee(S[0]);_=e.clientStorageKey,g=e.uploadId}let E=await w.openFile(e,i),D=x(E.size,{uploadLengthDeferred:s,uploadSize:c});E.size=D;let M=await Q();f?.enabled!==!1&&J.startSession(y,D||0,!0);let L=te({capabilities:await X(),fileSize:D,chunkSize:i,parallelUploads:a,uploadLengthDeferred:s,strategyConfig:u,logger:C});if(L.strategy===`parallel`){C.log(`Using parallel upload with ${L.parallelUploads} streams`);let e=await F({checksumService:v,source:E,storageId:n,fingerprint:y,uploadLengthDeferred:s,parallelUploads:L.parallelUploads,parallelChunkSize:o,retryDelays:r,smartChunker:M,uploadistaApi:K,logger:C,smartChunking:f,metrics:J,clientStorage:k,generateId:b,storeFingerprintForResuming:A,abortControllerFactory:N,platformService:I,openWebSocket:e=>($.openUploadWebSocket(e),null),closeWebSocket:e=>$.closeUploadWebSocket(e),terminate:e=>R(e,K,I,r),onProgress:l,onChunkComplete:d,onSuccess:p,onError:h});if(e)return{abort:async()=>{await e.abort()}};C.log(`Parallel upload failed, falling back to single upload`)}let B=await P({source:E,storageId:n,uploadId:g,platformService:I,uploadIdStorageKey:_,checksumService:v,fingerprint:y,uploadLengthDeferred:s,uploadistaApi:K,logger:C,clientStorage:k,generateId:b,storeFingerprintForResuming:A,openWebSocket:e=>($.openUploadWebSocket(e),null),closeWebSocket:e=>$.closeUploadWebSocket(e),onProgress:l,onChunkComplete:d,onSuccess:p,onError:h});if(B){let e=N.create(),{uploadId:t,uploadIdStorageKey:n,offset:i}=B,a=null;return j({platformService:I,uploadId:t,offset:i,source:E,uploadLengthDeferred:s,retryDelays:r,smartChunker:M,uploadistaApi:K,logger:C,smartChunking:f,metrics:J,abortController:e,onProgress:l,onChunkComplete:d,onSuccess:p,onShouldRetry:m,onRetry:e=>{a=e},onError:h}),{abort:()=>{z({platformService:I,uploadId:t,uploadIdStorageKey:n,retryTimeout:a,shouldTerminate:!0,abortController:e,uploadistaApi:K,retryDelays:r,clientStorage:k})}}}return{abort:()=>{}}},uploadWithFlow:async(e,n,{onProgress:a,onChunkComplete:o,onSuccess:s,onShouldRetry:c,onJobStart:l,onError:u}={})=>{let d=await w.openFile(e,i),p=await Q();if(f?.enabled!==!1){let n=await T.computeFingerprint(e,`${V}/${t}/api/flow`);J.startSession(n||`unknown`,d.size||0,!0)}let m=await E({source:d,flowConfig:n,uploadistaApi:K,logger:C,platformService:I,openWebSocket:e=>$.openFlowWebSocket(e),closeWebSocket:e=>$.closeWebSocket(e),onProgress:a,onChunkComplete:o,onSuccess:s,onJobStart:l,onError:u});if(!m)return{abort:()=>{},jobId:``};let{jobId:h,uploadFile:g,inputNodeId:_}=m,v=N.create();await $.openUploadWebSocket(g.id);let y=null;return D({jobId:h,uploadFile:g,inputNodeId:_,offset:g.offset,source:d,retryDelays:r,smartChunker:p,uploadistaApi:K,logger:C,smartChunking:f,metrics:J,platformService:I,abortController:v,onProgress:a,onChunkComplete:o,onSuccess:s,onShouldRetry:c,onRetry:e=>{y=e},onError:u}),{abort:()=>{v.abort(),y&&I.clearTimeout(y),$.closeWebSocket(h),$.closeUploadWebSocket(g.id)},jobId:h}},abort:e=>z(e),getFlow:async e=>{let{status:t,flow:n}=await K.getFlow(e);return{status:t,flow:n}},runFlow:async({flowId:e,inputs:t,storageId:r})=>{let{status:i,job:a}=await K.runFlow(e,r||n,t);return{status:i,job:a}},continueFlow:async({jobId:e,nodeId:t,newData:n,contentType:r})=>K.continueFlow(e,t,n,{contentType:r}),getJobStatus:async e=>K.getJobStatus(e),openUploadWebSocket:e=>$.openUploadWebSocket(e),openFlowWebSocket:e=>$.openFlowWebSocket(e),openWebSocket:e=>$.openWebSocket(e),closeWebSocket:e=>$.closeWebSocket(e),closeAllWebSockets:()=>$.closeAll(),sendPing:e=>$.sendPing(e),isWebSocketConnected:e=>$.isConnected(e),getWebSocketConnectionCount:()=>$.getConnectionCount(),getWebSocketConnectionCountByType:()=>$.getConnectionCountByType(),getNetworkMetrics:()=>q.getCurrentMetrics(),getNetworkCondition:()=>q.getNetworkCondition(),getChunkingInsights:()=>J.getPerformanceInsights(),exportMetrics:()=>J.exportMetrics(),getConnectionMetrics:()=>K.getConnectionMetrics(),getDetailedConnectionMetrics:()=>K.getDetailedConnectionMetrics(),warmupConnections:e=>K.warmupConnections(e),getConnectionPoolingInsights:async()=>(await Q()).getConnectionPoolingInsights(),resetMetrics:async()=>{q.reset(),(await Q()).reset(),J.reset()},validateConfiguration:e=>H(e,p,C),validateConfigurationAsync:async e=>{let t=[],n=[],r=await K.getCapabilities(e.storageId),i=H(e,r,C);return t.push(...i.errors),n.push(...i.warnings),{valid:t.length===0,errors:t,warnings:n,capabilities:r}},getCapabilities:X}}const J=r.object({size:r.number().nullable(),metadata:r.record(r.string(),r.union([r.string(),r.number(),r.boolean()])),creationTime:r.string(),uploadId:r.string().optional(),parallelUploadUrls:r.array(r.string()).optional(),clientStorageKey:r.string()});function Y(e){return{findAllUploads:async()=>{let t=await e.find(`uploadista::`);return Object.values(t).map(e=>J.parse(JSON.parse(e)))},findUploadsByFingerprint:async t=>{let n=await e.find(`uploadista::${t}`);return Object.values(n).map(e=>J.parse(JSON.parse(e)))},removeUpload:t=>e.removeItem(t),addUpload:async(t,n,{generateId:r})=>{let i=`uploadista::${t}::${r.generate()}`;return await e.setItem(i,JSON.stringify(n)),i}}}function X(){let e=new Map;return{async getItem(t){return e.get(t)??null},async setItem(t,n){e.set(t,n)},async removeItem(t){e.delete(t)},async findAll(){return Object.fromEntries(e.entries())},async find(t){return Object.fromEntries(Array.from(e.entries()).filter(([e])=>e.startsWith(t)))}}}export{i as ChunkBuffer,m as NetworkMonitor,v as UploadistaError,G as UploadistaWebSocketManager,Y as createClientStorage,X as createInMemoryStorageService,d as createLogger,W as createUploadistaApi,q as createUploadistaClient,K as defaultConnectionPoolingConfig,J as previousUploadSchema,L as wait};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|