@uploadista/vue 1.0.0-beta.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/components/index.d.mts +2 -3
  2. package/dist/components/index.mjs +1 -1
  3. package/dist/components-BMfV_7cn.mjs +2 -0
  4. package/dist/components-BMfV_7cn.mjs.map +1 -0
  5. package/dist/composables/index.d.mts +1 -1
  6. package/dist/composables/index.mjs +1 -1
  7. package/dist/{useUploadMetrics-CJesoLV7.mjs → composables-CH4pv7yG.mjs} +2 -2
  8. package/dist/composables-CH4pv7yG.mjs.map +1 -0
  9. package/dist/{index-CxdtdMrD.d.mts → index-BWeZuHjc.d.mts} +89 -90
  10. package/dist/index-BWeZuHjc.d.mts.map +1 -0
  11. package/dist/{useUploadMetrics-DEdjOjLp.d.mts → index-BlM5dmy_.d.mts} +49 -53
  12. package/dist/index-BlM5dmy_.d.mts.map +1 -0
  13. package/dist/{UploadistaProvider.vue-_qDn5Gvp.d.mts → index-DcNYDFLL.d.mts} +5 -7
  14. package/dist/index-DcNYDFLL.d.mts.map +1 -0
  15. package/dist/index.d.mts +4 -7
  16. package/dist/index.mjs +1 -1
  17. package/dist/providers/index.d.mts +1 -1
  18. package/dist/providers/index.mjs +1 -1
  19. package/dist/{UploadistaProvider-DU4YVCy4.mjs → providers-Dhq5W5tR.mjs} +2 -2
  20. package/dist/providers-Dhq5W5tR.mjs.map +1 -0
  21. package/dist/{upload-y0K2veej.css → style.css} +0 -5
  22. package/dist/{useUploadistaClient-C3qbTB18.mjs → useUploadistaClient-CgabcTy6.mjs} +1 -1
  23. package/dist/{useUploadistaClient-C3qbTB18.mjs.map → useUploadistaClient-CgabcTy6.mjs.map} +1 -1
  24. package/dist/utils/index.d.mts.map +1 -1
  25. package/dist/utils/index.mjs +1 -1
  26. package/dist/utils/index.mjs.map +1 -1
  27. package/package.json +10 -9
  28. package/src/__tests__/setup.ts +1 -5
  29. package/src/components/flow/Flow.vue +1 -1
  30. package/src/components/flow/index.ts +2 -2
  31. package/src/composables/useDragDrop.test.ts +3 -3
  32. package/src/composables/useUploadistaClient.test.ts +7 -3
  33. package/src/utils/index.test.ts +9 -7
  34. package/tsconfig.json +0 -1
  35. package/tsdown.config.ts +3 -1
  36. package/dist/UploadistaProvider-DU4YVCy4.mjs.map +0 -1
  37. package/dist/UploadistaProvider.vue-_qDn5Gvp.d.mts.map +0 -1
  38. package/dist/index-CxdtdMrD.d.mts.map +0 -1
  39. package/dist/is-browser-file-CN7ymiO5.mjs +0 -2
  40. package/dist/is-browser-file-CN7ymiO5.mjs.map +0 -1
  41. package/dist/upload-BJHmqKbp.mjs +0 -2
  42. package/dist/upload-BJHmqKbp.mjs.map +0 -1
  43. package/dist/upload-y0K2veej.css.map +0 -1
  44. package/dist/useUploadMetrics-CJesoLV7.mjs.map +0 -1
  45. package/dist/useUploadMetrics-DEdjOjLp.d.mts.map +0 -1
@@ -1,12 +1,8 @@
1
- import * as vue from "vue";
2
1
  import { App, InjectionKey, Ref } from "vue";
3
- import * as _uploadista_client_browser0 from "@uploadista/client-browser";
4
2
  import { BrowserUploadInput, ChunkMetrics, ChunkMetrics as ChunkMetrics$1, FlowUploadOptions, MultiFlowUploadOptions, PerformanceInsights, PerformanceInsights as PerformanceInsights$1, UploadOptions, UploadSessionMetrics, UploadSessionMetrics as UploadSessionMetrics$1, UploadistaClientOptions, UploadistaEvent, createUploadistaClient } from "@uploadista/client-browser";
5
3
  import { FlowEvent, FlowEventFlowCancel, FlowEventFlowEnd, FlowEventFlowError, FlowEventFlowPause, FlowEventFlowStart, FlowEventJobEnd, FlowEventJobStart, FlowEventNodeEnd, FlowEventNodeError, FlowEventNodePause, FlowEventNodeResume, FlowEventNodeStart } from "@uploadista/core/flow";
6
4
  import { UploadEvent, UploadFile } from "@uploadista/core/types";
7
- import * as _uploadista_client_core0 from "@uploadista/client-core";
8
5
  import { FlowUploadState, FlowUploadStatus as FlowUploadStatus$1, InputExecutionState, UploadMetrics, UploadOptions as UploadOptions$1, UploadState, UploadStatus } from "@uploadista/client-core";
9
- import * as _uploadista_core0 from "@uploadista/core";
10
6
 
11
7
  //#region src/composables/useFlow.d.ts
12
8
  /**
@@ -341,7 +337,7 @@ interface DragDropState {
341
337
  * ```
342
338
  */
343
339
  declare function useDragDrop(options?: DragDropOptions): {
344
- state: Readonly<vue.Ref<{
340
+ state: Readonly<import("vue").Ref<{
345
341
  readonly isDragging: boolean;
346
342
  readonly isOver: boolean;
347
343
  readonly isValid: boolean;
@@ -357,7 +353,7 @@ declare function useDragDrop(options?: DragDropOptions): {
357
353
  onDragLeave: (event: DragEvent) => void;
358
354
  onDrop: (event: DragEvent) => void;
359
355
  onInputChange: (event: Event) => void;
360
- inputProps: vue.ComputedRef<{
356
+ inputProps: import("vue").ComputedRef<{
361
357
  type: "file";
362
358
  multiple: boolean;
363
359
  accept: string | undefined;
@@ -709,7 +705,7 @@ declare function createUploadistaPlugin(options: UploadistaPluginOptions): {
709
705
  * ```
710
706
  */
711
707
  declare function useMultiFlowUpload(options: MultiFlowUploadOptions<BrowserUploadInput>): {
712
- state: Readonly<vue.Ref<{
708
+ state: Readonly<import("vue").Ref<{
713
709
  readonly items: readonly {
714
710
  readonly id: string;
715
711
  readonly file: {
@@ -855,7 +851,7 @@ declare function useMultiFlowUpload(options: MultiFlowUploadOptions<BrowserUploa
855
851
  abortAll: () => void;
856
852
  clear: () => void;
857
853
  retryUpload: (id: string) => void;
858
- isUploading: vue.ComputedRef<boolean>;
854
+ isUploading: import("vue").ComputedRef<boolean>;
859
855
  };
860
856
  //#endregion
861
857
  //#region src/composables/useUpload.d.ts
@@ -898,7 +894,7 @@ type UploadInput = File | Blob;
898
894
  * ```
899
895
  */
900
896
  declare function useUpload(options?: UploadOptions$1): {
901
- state: vue.Ref<{
897
+ state: import("vue").Ref<{
902
898
  status: UploadStatus;
903
899
  progress: number;
904
900
  bytesUploaded: number;
@@ -925,7 +921,7 @@ declare function useUpload(options?: UploadOptions$1): {
925
921
  jobId: string;
926
922
  } | undefined;
927
923
  size?: number | undefined | undefined;
928
- metadata?: Record<string, _uploadista_core0.JsonValue> | undefined;
924
+ metadata?: Record<string, import("@uploadista/core").JsonValue> | undefined;
929
925
  creationDate?: string | undefined | undefined;
930
926
  url?: string | undefined | undefined;
931
927
  sizeIsDeferred?: boolean | undefined | undefined;
@@ -964,7 +960,7 @@ declare function useUpload(options?: UploadOptions$1): {
964
960
  jobId: string;
965
961
  } | undefined;
966
962
  size?: number | undefined | undefined;
967
- metadata?: Record<string, _uploadista_core0.JsonValue> | undefined;
963
+ metadata?: Record<string, import("@uploadista/core").JsonValue> | undefined;
968
964
  creationDate?: string | undefined | undefined;
969
965
  url?: string | undefined | undefined;
970
966
  sizeIsDeferred?: boolean | undefined | undefined;
@@ -981,8 +977,8 @@ declare function useUpload(options?: UploadOptions$1): {
981
977
  abort: () => void;
982
978
  reset: () => void;
983
979
  retry: () => void;
984
- isUploading: vue.ComputedRef<boolean>;
985
- canRetry: vue.ComputedRef<boolean>;
980
+ isUploading: import("vue").ComputedRef<boolean>;
981
+ canRetry: import("vue").ComputedRef<boolean>;
986
982
  metrics: UploadMetrics;
987
983
  };
988
984
  //#endregion
@@ -1125,7 +1121,7 @@ interface MultiUploadState {
1125
1121
  * ```
1126
1122
  */
1127
1123
  declare function useMultiUpload(options?: MultiUploadOptions): {
1128
- state: Readonly<vue.Ref<{
1124
+ state: Readonly<import("vue").Ref<{
1129
1125
  readonly total: number;
1130
1126
  readonly completed: number;
1131
1127
  readonly successful: number;
@@ -1148,7 +1144,7 @@ declare function useMultiUpload(options?: MultiUploadOptions): {
1148
1144
  readonly isUploading: boolean;
1149
1145
  readonly isComplete: boolean;
1150
1146
  }>>;
1151
- items: Readonly<vue.Ref<readonly {
1147
+ items: Readonly<import("vue").Ref<readonly {
1152
1148
  readonly id: string;
1153
1149
  readonly file: {
1154
1150
  readonly lastModified: number;
@@ -1336,7 +1332,7 @@ declare function useMultiUpload(options?: MultiUploadOptions): {
1336
1332
  jobId: string;
1337
1333
  } | undefined;
1338
1334
  size?: number | undefined | undefined;
1339
- metadata?: Record<string, _uploadista_core0.JsonValue> | undefined;
1335
+ metadata?: Record<string, import("@uploadista/core").JsonValue> | undefined;
1340
1336
  creationDate?: string | undefined | undefined;
1341
1337
  url?: string | undefined | undefined;
1342
1338
  sizeIsDeferred?: boolean | undefined | undefined;
@@ -1382,7 +1378,7 @@ declare function useMultiUpload(options?: MultiUploadOptions): {
1382
1378
  */
1383
1379
  declare function useUploadistaClient(): {
1384
1380
  client: {
1385
- upload: (file: _uploadista_client_browser0.BrowserUploadInput, {
1381
+ upload: (file: import("@uploadista/client-browser").BrowserUploadInput, {
1386
1382
  uploadLengthDeferred,
1387
1383
  uploadSize,
1388
1384
  onProgress,
@@ -1390,10 +1386,10 @@ declare function useUploadistaClient(): {
1390
1386
  onSuccess,
1391
1387
  onShouldRetry,
1392
1388
  onError
1393
- }?: _uploadista_client_core0.UploadistaUploadOptions) => Promise<{
1389
+ }?: import("@uploadista/client-core").UploadistaUploadOptions) => Promise<{
1394
1390
  abort: () => void;
1395
1391
  }>;
1396
- uploadWithFlow: (file: _uploadista_client_browser0.BrowserUploadInput, flowConfig: _uploadista_client_core0.FlowUploadConfig, {
1392
+ uploadWithFlow: (file: import("@uploadista/client-browser").BrowserUploadInput, flowConfig: import("@uploadista/client-core").FlowUploadConfig, {
1397
1393
  onProgress,
1398
1394
  onChunkComplete,
1399
1395
  onSuccess,
@@ -1401,7 +1397,7 @@ declare function useUploadistaClient(): {
1401
1397
  onJobStart,
1402
1398
  onError,
1403
1399
  onAbort
1404
- }?: Omit<_uploadista_client_core0.UploadistaUploadOptions, "uploadLengthDeferred" | "uploadSize" | "metadata"> & {
1400
+ }?: Omit<import("@uploadista/client-core").UploadistaUploadOptions, "uploadLengthDeferred" | "uploadSize" | "metadata"> & {
1405
1401
  onAbort?: () => void;
1406
1402
  }) => Promise<{
1407
1403
  abort: () => Promise<void>;
@@ -1409,7 +1405,7 @@ declare function useUploadistaClient(): {
1409
1405
  resume: () => Promise<void>;
1410
1406
  jobId: string;
1411
1407
  }>;
1412
- multiInputFlowUpload: (inputs: Record<string, unknown>, flowConfig: _uploadista_client_core0.FlowUploadConfig, {
1408
+ multiInputFlowUpload: (inputs: Record<string, unknown>, flowConfig: import("@uploadista/client-core").FlowUploadConfig, {
1413
1409
  onProgress,
1414
1410
  onChunkComplete,
1415
1411
  onShouldRetry,
@@ -1418,7 +1414,7 @@ declare function useUploadistaClient(): {
1418
1414
  onInputProgress,
1419
1415
  onInputComplete,
1420
1416
  onInputError
1421
- }?: Omit<_uploadista_client_core0.UploadistaUploadOptions, "uploadLengthDeferred" | "uploadSize" | "metadata"> & {
1417
+ }?: Omit<import("@uploadista/client-core").UploadistaUploadOptions, "uploadLengthDeferred" | "uploadSize" | "metadata"> & {
1422
1418
  onInputProgress?: (nodeId: string, progress: number, bytesUploaded: number, totalBytes: number | null) => void;
1423
1419
  onInputComplete?: (nodeId: string) => void;
1424
1420
  onInputError?: (nodeId: string, error: Error) => void;
@@ -1441,17 +1437,17 @@ declare function useUploadistaClient(): {
1441
1437
  }: {
1442
1438
  uploadId: string;
1443
1439
  uploadIdStorageKey: string | undefined;
1444
- retryTimeout: _uploadista_client_core0.Timeout | null;
1440
+ retryTimeout: import("@uploadista/client-core").Timeout | null;
1445
1441
  shouldTerminate: boolean;
1446
- abortController: _uploadista_client_core0.AbortControllerLike;
1447
- uploadistaApi: _uploadista_client_core0.UploadistaApi;
1448
- platformService: _uploadista_client_core0.PlatformService;
1442
+ abortController: import("@uploadista/client-core").AbortControllerLike;
1443
+ uploadistaApi: import("@uploadista/client-core").UploadistaApi;
1444
+ platformService: import("@uploadista/client-core").PlatformService;
1449
1445
  retryDelays?: number[];
1450
- clientStorage: _uploadista_client_core0.ClientStorage;
1446
+ clientStorage: import("@uploadista/client-core").ClientStorage;
1451
1447
  }) => Promise<void>>[0]) => Promise<void>;
1452
1448
  getFlow: (flowId: string) => Promise<{
1453
1449
  status: number;
1454
- flow: _uploadista_core0.FlowData;
1450
+ flow: import("@uploadista/core").FlowData;
1455
1451
  }>;
1456
1452
  runFlow: ({
1457
1453
  flowId,
@@ -1463,7 +1459,7 @@ declare function useUploadistaClient(): {
1463
1459
  storageId?: string;
1464
1460
  }) => Promise<{
1465
1461
  status: number;
1466
- job: _uploadista_core0.FlowJob;
1462
+ job: import("@uploadista/core").FlowJob;
1467
1463
  }>;
1468
1464
  resumeFlow: ({
1469
1465
  jobId,
@@ -1475,13 +1471,13 @@ declare function useUploadistaClient(): {
1475
1471
  nodeId: string;
1476
1472
  newData: unknown;
1477
1473
  contentType?: "application/json" | "application/octet-stream";
1478
- }) => Promise<_uploadista_core0.FlowJob>;
1479
- pauseFlow: (jobId: string) => Promise<_uploadista_core0.FlowJob>;
1480
- cancelFlow: (jobId: string) => Promise<_uploadista_core0.FlowJob>;
1474
+ }) => Promise<import("@uploadista/core").FlowJob>;
1475
+ pauseFlow: (jobId: string) => Promise<import("@uploadista/core").FlowJob>;
1476
+ cancelFlow: (jobId: string) => Promise<import("@uploadista/core").FlowJob>;
1481
1477
  findInputNode: (flowId: string) => Promise<{
1482
1478
  inputNodes: {
1483
1479
  id: string;
1484
- type: _uploadista_core0.NodeType;
1480
+ type: import("@uploadista/core").NodeType;
1485
1481
  name: string;
1486
1482
  }[];
1487
1483
  single: boolean;
@@ -1491,12 +1487,12 @@ declare function useUploadistaClient(): {
1491
1487
  onJobStart?: (jobId: string) => void;
1492
1488
  }) => Promise<{
1493
1489
  status: number;
1494
- job: _uploadista_core0.FlowJob;
1490
+ job: import("@uploadista/core").FlowJob;
1495
1491
  }>;
1496
- getJobStatus: (jobId: string) => Promise<_uploadista_core0.FlowJob>;
1497
- openUploadWebSocket: (uploadId: string) => Promise<_uploadista_client_core0.WebSocketLike>;
1498
- openFlowWebSocket: (jobId: string) => Promise<_uploadista_client_core0.WebSocketLike>;
1499
- openWebSocket: (id: string) => Promise<_uploadista_client_core0.WebSocketLike>;
1492
+ getJobStatus: (jobId: string) => Promise<import("@uploadista/core").FlowJob>;
1493
+ openUploadWebSocket: (uploadId: string) => Promise<import("@uploadista/client-core").WebSocketLike>;
1494
+ openFlowWebSocket: (jobId: string) => Promise<import("@uploadista/client-core").WebSocketLike>;
1495
+ openWebSocket: (id: string) => Promise<import("@uploadista/client-core").WebSocketLike>;
1500
1496
  closeWebSocket: (id: string) => void;
1501
1497
  closeAllWebSockets: () => void;
1502
1498
  sendPing: (jobId: string) => boolean;
@@ -1507,16 +1503,16 @@ declare function useUploadistaClient(): {
1507
1503
  flow: number;
1508
1504
  total: number;
1509
1505
  };
1510
- getNetworkMetrics: () => _uploadista_client_core0.NetworkMetrics;
1511
- getNetworkCondition: () => _uploadista_client_core0.NetworkCondition;
1512
- getChunkingInsights: () => _uploadista_client_core0.PerformanceInsights;
1506
+ getNetworkMetrics: () => import("@uploadista/client-core").NetworkMetrics;
1507
+ getNetworkCondition: () => import("@uploadista/client-core").NetworkCondition;
1508
+ getChunkingInsights: () => import("@uploadista/client-core").PerformanceInsights;
1513
1509
  exportMetrics: () => {
1514
- session: Partial<_uploadista_client_core0.UploadSessionMetrics>;
1515
- chunks: _uploadista_client_core0.ChunkMetrics[];
1516
- insights: _uploadista_client_core0.PerformanceInsights;
1510
+ session: Partial<import("@uploadista/client-core").UploadSessionMetrics>;
1511
+ chunks: import("@uploadista/client-core").ChunkMetrics[];
1512
+ insights: import("@uploadista/client-core").PerformanceInsights;
1517
1513
  };
1518
- getConnectionMetrics: () => _uploadista_client_core0.ConnectionMetrics;
1519
- getDetailedConnectionMetrics: () => _uploadista_client_core0.DetailedConnectionMetrics;
1514
+ getConnectionMetrics: () => import("@uploadista/client-core").ConnectionMetrics;
1515
+ getDetailedConnectionMetrics: () => import("@uploadista/client-core").DetailedConnectionMetrics;
1520
1516
  warmupConnections: (urls: string[]) => Promise<void>;
1521
1517
  getConnectionPoolingInsights: () => Promise<{
1522
1518
  isOptimized: boolean;
@@ -1525,18 +1521,18 @@ declare function useUploadistaClient(): {
1525
1521
  connectionOverhead: number;
1526
1522
  }>;
1527
1523
  resetMetrics: () => Promise<void>;
1528
- validateConfiguration: (options: _uploadista_client_core0.UploadistaClientOptions<_uploadista_client_browser0.BrowserUploadInput>) => {
1524
+ validateConfiguration: (options: import("@uploadista/client-core").UploadistaClientOptions<import("@uploadista/client-browser").BrowserUploadInput>) => {
1529
1525
  valid: boolean;
1530
1526
  errors: string[];
1531
1527
  warnings: string[];
1532
1528
  };
1533
- validateConfigurationAsync: (options: _uploadista_client_core0.UploadistaClientOptions<_uploadista_client_browser0.BrowserUploadInput>) => Promise<{
1529
+ validateConfigurationAsync: (options: import("@uploadista/client-core").UploadistaClientOptions<import("@uploadista/client-browser").BrowserUploadInput>) => Promise<{
1534
1530
  valid: boolean;
1535
1531
  errors: string[];
1536
1532
  warnings: string[];
1537
- capabilities: _uploadista_core0.DataStoreCapabilities;
1533
+ capabilities: import("@uploadista/core").DataStoreCapabilities;
1538
1534
  }>;
1539
- getCapabilities: () => Promise<_uploadista_core0.DataStoreCapabilities>;
1535
+ getCapabilities: () => Promise<import("@uploadista/core").DataStoreCapabilities>;
1540
1536
  };
1541
1537
  subscribeToEvents: (handler: (event: UploadistaEvent) => void) => () => void;
1542
1538
  };
@@ -1701,7 +1697,7 @@ interface UseUploadMetricsOptions {
1701
1697
  * ```
1702
1698
  */
1703
1699
  declare function useUploadMetrics(options?: UseUploadMetricsOptions): {
1704
- metrics: Readonly<vue.Ref<{
1700
+ metrics: Readonly<import("vue").Ref<{
1705
1701
  readonly totalBytesUploaded: number;
1706
1702
  readonly totalBytes: number;
1707
1703
  readonly averageSpeed: number;
@@ -1802,7 +1798,7 @@ declare function useUploadMetrics(options?: UseUploadMetricsOptions): {
1802
1798
  readonly chunkingStrategy?: string | undefined;
1803
1799
  }[];
1804
1800
  }>>;
1805
- fileMetrics: Readonly<vue.Ref<readonly {
1801
+ fileMetrics: Readonly<import("vue").Ref<readonly {
1806
1802
  readonly id: string;
1807
1803
  readonly filename: string;
1808
1804
  readonly size: number;
@@ -1911,4 +1907,4 @@ declare function useUploadMetrics(options?: UseUploadMetricsOptions): {
1911
1907
  };
1912
1908
  //#endregion
1913
1909
  export { UseFlowEventsOptions as A, InputExecutionState as B, UploadFileEventData as C, UploadValidationWarningEventData as D, UploadValidationSuccessEventData as E, DragDropState as F, useFlow as H, useDragDrop as I, FlowInputMetadata as L, isFlowEvent as M, isUploadEvent as N, UseUploadEventsOptions as O, DragDropOptions as P, FlowUploadState as R, UploadFailedEventData as S, UploadValidationFailedEventData as T, UseFlowReturn as V, useMultiFlowUpload as _, useUploadistaClient as a, createUploadistaPlugin as b, UploadItem as c, PerformanceInsights$1 as d, UploadInput as f, useUpload as g, UploadStatus as h, UseUploadistaClientReturn as i, useFlowEvents as j, useUploadEvents as k, useMultiUpload as l, UploadState as m, UseUploadMetricsOptions as n, MultiUploadOptions as o, UploadSessionMetrics$1 as p, useUploadMetrics as r, MultiUploadState as s, FileUploadMetrics as t, ChunkMetrics$1 as u, UPLOADISTA_CLIENT_KEY as v, UploadProgressEventData as w, useUploadistaEvents as x, UploadistaPluginOptions as y, FlowUploadStatus$1 as z };
1914
- //# sourceMappingURL=useUploadMetrics-DEdjOjLp.d.mts.map
1910
+ //# sourceMappingURL=index-BlM5dmy_.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BlM5dmy_.d.mts","names":[],"sources":["../src/composables/useFlow.ts","../src/composables/useDragDrop.ts","../src/composables/eventUtils.ts","../src/composables/useFlowEvents.ts","../src/composables/useUploadEvents.ts","../src/composables/useUploadistaEvents.ts","../src/composables/plugin.ts","../src/composables/useMultiFlowUpload.ts","../src/composables/useUpload.ts","../src/composables/useMultiUpload.ts","../src/composables/useUploadistaClient.ts","../src/composables/useUploadMetrics.ts"],"mappings":"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"}
@@ -1,11 +1,9 @@
1
- import * as vue from "vue";
2
-
3
1
  //#region src/providers/FlowManagerProvider.vue.d.ts
4
2
  declare var __VLS_1: {};
5
3
  type __VLS_Slots$1 = {} & {
6
4
  default?: (props: typeof __VLS_1) => any;
7
5
  };
8
- declare const __VLS_base$1: vue.DefineComponent<{}, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
6
+ declare const __VLS_base$1: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
9
7
  declare const __VLS_export$1: __VLS_WithSlots$1<typeof __VLS_base$1, __VLS_Slots$1>;
10
8
  declare const _default$1: typeof __VLS_export$1;
11
9
  type __VLS_WithSlots$1<T, S> = T & {
@@ -27,13 +25,13 @@ declare var __VLS_8: {};
27
25
  type __VLS_Slots = {} & {
28
26
  default?: (props: typeof __VLS_8) => any;
29
27
  };
30
- declare const __VLS_base: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
31
- uploadistaBasePath: string;
28
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
32
29
  storageId: string;
30
+ uploadistaBasePath: string;
33
31
  chunkSize: number;
34
32
  parallelUploads: number;
35
33
  storeFingerprintForResuming: boolean;
36
- }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
34
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
37
35
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
38
36
  declare const _default: typeof __VLS_export;
39
37
  type __VLS_WithSlots<T, S> = T & {
@@ -43,4 +41,4 @@ type __VLS_WithSlots<T, S> = T & {
43
41
  }; //# sourceMappingURL=UploadistaProvider.vue.d.ts.map
44
42
  //#endregion
45
43
  export { _default$1 as n, _default as t };
46
- //# sourceMappingURL=UploadistaProvider.vue-_qDn5Gvp.d.mts.map
44
+ //# sourceMappingURL=index-DcNYDFLL.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DcNYDFLL.d.mts","names":[],"sources":["../src/providers/FlowManagerProvider.vue","../src/providers/UploadistaProvider.vue"],"mappings":";YAuTI,OAAA;AAAA,KACC,aAAA;EACD,OAAA,IAAW,KAAA,SAAc,OAAO;AAAA;AAAA,cAC9B,YAAA,gBAAU,eAAA,mCAAA,qBAAA,gBAAA,qBAAA,4BAAA,WAAA,EAAA,QAAA,OAAA,QAAA,4CAAA,uBAAA;AAAA,cAEV,cAAA,EAAqB,iBAAA,QAAuB,YAAA,EAAY,aAAA;AAAA,cAAW,UAAA,SAC7C,cAAY;AAAA,KACnC,iBAAA,SAAwB,CAAA;EAAA;IAE3B,MAAA,EAAQ,CAAC;EAAA;AAAA;;;KCjPN,WAAA;EACD,SAAA;EACA,SAAA;EACA,kBAAA;EACA,SAAA;EACA,eAAA;EACA,2BAAA;AAAA;AAAA,YA0EA,OAAA;AAAA,KACC,WAAA;EACD,OAAA,IAAW,KAAA,SAAc,OAAO;AAAA;AAAA,cAG9B,UAAA,gBAAU,eAAA,CAAA,WAAA,gCAAA,qBAAA,gBAAA,qBAAA,4BAAA,WAAA,EAAA,QAAA,CAAA,WAAA,IAAA,QAAA;;;;;;;cAIV,YAAA,EAAqB,eAAA,QAAuB,UAAA,EAAY,WAAA;AAAA,cAAW,QAAA,SAC7C,YAAY;AAAA,KAWnC,eAAA,SAAwB,CAAA;EAAA;IAE3B,MAAA,EAAQ,CAAC;EAAA;AAAA"}
package/dist/index.d.mts CHANGED
@@ -1,8 +1,5 @@
1
- import { $ as FlowErrorSlotProps, A as _default$15, B as FlowInputPreviewSlotProps, C as _default$19, D as _default$17, E as UploadProps, F as _default$11, G as FlowInputProps, H as FlowInputDropZoneProps, I as FlowInputUrlFieldProps, J as FLOW_CONTEXT_KEY, K as FlowInputSlotProps, L as _default$7, M as _default$14, N as _default$12, O as _default$30, P as FlowProgressSlotProps, Q as useFlowInputContext, R as FlowInputsSlotProps, S as _default$20, T as UploadContextValue, U as FlowInputDropZoneSlotProps, V as _default$6, W as _default$5, X as FlowInputContextValue, Y as FLOW_INPUT_CONTEXT_KEY, Z as useFlowContext, _ as useUploadItemContext, a as _default$26, at as _default$10, b as UploadDropZoneProps, c as UploadItemsSlotProps, ct as FlowProps, d as UploadItemSlotProps, et as _default$3, f as _default$22, g as useUploadContext, h as UploadItemContextValue, i as _default$27, it as _default$13, j as FlowStatusSlotProps, k as _default$24, l as _default$23, lt as _default, m as UPLOAD_ITEM_CONTEXT_KEY, n as _default$29, nt as FlowDropZoneSlotProps, o as UploadProgressSlotProps, ot as _default$1, p as UPLOAD_CONTEXT_KEY, q as _default$4, r as _default$28, rt as _default$2, s as _default$25, st as FlowContextValue, t as UploadStatusSlotProps, tt as FlowDropZoneProps, u as UploadItemProps, ut as _default$16, v as UploadErrorSlotProps, w as _default$18, x as UploadDropZoneSlotProps, y as _default$21, z as _default$8 } from "./index-CxdtdMrD.mjs";
2
- import { A as UseFlowEventsOptions, B as InputExecutionState, C as UploadFileEventData, D as UploadValidationWarningEventData, E as UploadValidationSuccessEventData, F as DragDropState, H as useFlow, I as useDragDrop, L as FlowInputMetadata, M as isFlowEvent, N as isUploadEvent, O as UseUploadEventsOptions, P as DragDropOptions, R as FlowUploadState, S as UploadFailedEventData, T as UploadValidationFailedEventData, V as UseFlowReturn, _ as useMultiFlowUpload, a as useUploadistaClient, b as createUploadistaPlugin, c as UploadItem, d as PerformanceInsights, f as UploadInput, g as useUpload, h as UploadStatus, i as UseUploadistaClientReturn, j as useFlowEvents, k as useUploadEvents, l as useMultiUpload, m as UploadState, n as UseUploadMetricsOptions, o as MultiUploadOptions, p as UploadSessionMetrics, r as useUploadMetrics, s as MultiUploadState, t as FileUploadMetrics, u as ChunkMetrics, v as UPLOADISTA_CLIENT_KEY, w as UploadProgressEventData, x as useUploadistaEvents, y as UploadistaPluginOptions, z as FlowUploadStatus } from "./useUploadMetrics-DEdjOjLp.mjs";
3
- import "./composables/index.mjs";
4
- import "./components/index.mjs";
5
- import { n as _default$9, t as _default$31 } from "./UploadistaProvider.vue-_qDn5Gvp.mjs";
6
- import "./providers/index.mjs";
1
+ import { $ as useFlowContext, A as _default$15, B as FlowInputsSlotProps, C as _default$19, D as _default$17, E as UploadProps, F as FlowProgressSlotProps, G as FlowInputDropZoneSlotProps, H as FlowInputPreviewSlotProps, I as _default$11, J as FlowInputSlotProps, K as _default$5, L as _default$10, M as _default$14, N as _default$13, O as _default$30, P as _default$12, Q as FlowInputContextValue, R as FlowInputUrlFieldProps, S as _default$20, T as UploadContextValue, U as _default$6, V as _default$8, W as FlowInputDropZoneProps, X as FLOW_CONTEXT_KEY, Y as _default$4, Z as FLOW_INPUT_CONTEXT_KEY, _ as useUploadItemContext, a as _default$26, at as _default$2, b as UploadDropZoneProps, c as UploadItemsSlotProps, ct as FlowProps, d as UploadItemSlotProps, et as useFlowInputContext, f as _default$22, g as useUploadContext, h as UploadItemContextValue, i as _default$27, it as FlowDropZoneSlotProps, j as FlowStatusSlotProps, k as _default$24, l as _default$23, lt as _default, m as UPLOAD_ITEM_CONTEXT_KEY, n as _default$29, nt as _default$3, o as UploadProgressSlotProps, ot as _default$1, p as UPLOAD_CONTEXT_KEY, q as FlowInputProps, r as _default$28, rt as FlowDropZoneProps, s as _default$25, st as FlowContextValue, t as UploadStatusSlotProps, tt as FlowErrorSlotProps, u as UploadItemProps, ut as _default$16, v as UploadErrorSlotProps, w as _default$18, x as UploadDropZoneSlotProps, y as _default$21, z as _default$7 } from "./index-BWeZuHjc.mjs";
2
+ import { A as UseFlowEventsOptions, B as InputExecutionState, C as UploadFileEventData, D as UploadValidationWarningEventData, E as UploadValidationSuccessEventData, F as DragDropState, H as useFlow, I as useDragDrop, L as FlowInputMetadata, M as isFlowEvent, N as isUploadEvent, O as UseUploadEventsOptions, P as DragDropOptions, R as FlowUploadState, S as UploadFailedEventData, T as UploadValidationFailedEventData, V as UseFlowReturn, _ as useMultiFlowUpload, a as useUploadistaClient, b as createUploadistaPlugin, c as UploadItem, d as PerformanceInsights, f as UploadInput, g as useUpload, h as UploadStatus, i as UseUploadistaClientReturn, j as useFlowEvents, k as useUploadEvents, l as useMultiUpload, m as UploadState, n as UseUploadMetricsOptions, o as MultiUploadOptions, p as UploadSessionMetrics, r as useUploadMetrics, s as MultiUploadState, t as FileUploadMetrics, u as ChunkMetrics, v as UPLOADISTA_CLIENT_KEY, w as UploadProgressEventData, x as useUploadistaEvents, y as UploadistaPluginOptions, z as FlowUploadStatus } from "./index-BlM5dmy_.mjs";
3
+ import { n as _default$9, t as _default$31 } from "./index-DcNYDFLL.mjs";
7
4
  import { calculateProgress, createFilePreview, formatDuration, formatFileSize, formatSpeed, generateUploadId, getFileExtension, isAudioFile, isBrowserFile, isDocumentFile, isImageFile, isVideoFile, revokeFilePreview, validateFileType } from "./utils/index.mjs";
8
- export { type ChunkMetrics, type DragDropOptions, type DragDropState, FLOW_CONTEXT_KEY, FLOW_INPUT_CONTEXT_KEY, type FileUploadMetrics, _default as Flow, _default$1 as FlowCancel, FlowContextValue, _default$2 as FlowDropZone, FlowDropZoneProps, FlowDropZoneSlotProps, _default$3 as FlowError, FlowErrorSlotProps, _default$4 as FlowInput, FlowInputContextValue, _default$5 as FlowInputDropZone, FlowInputDropZoneProps, FlowInputDropZoneSlotProps, type FlowInputMetadata, _default$6 as FlowInputPreview, FlowInputPreviewSlotProps, FlowInputProps, FlowInputSlotProps, _default$7 as FlowInputUrlField, FlowInputUrlFieldProps, _default$8 as FlowInputs, FlowInputsSlotProps, _default$9 as FlowManagerProvider, _default$10 as FlowPause, _default$11 as FlowProgress, FlowProgressSlotProps, FlowProps, _default$12 as FlowReset, _default$13 as FlowResume, _default$14 as FlowStatus, FlowStatusSlotProps, _default$15 as FlowSubmit, _default$16 as FlowUploadList, type FlowUploadState, type FlowUploadStatus, type InputExecutionState, type UploadItem as MultiUploadItem, type MultiUploadOptions, type MultiUploadState, type PerformanceInsights, UPLOADISTA_CLIENT_KEY, UPLOAD_CONTEXT_KEY, UPLOAD_ITEM_CONTEXT_KEY, _default$17 as Upload, _default$18 as UploadCancel, _default$19 as UploadClearCompleted, UploadContextValue, _default$20 as UploadDropZone, UploadDropZoneProps, UploadDropZoneSlotProps, _default$21 as UploadError, UploadErrorSlotProps, type UploadFailedEventData, type UploadFileEventData, type UploadInput, _default$22 as UploadItem, UploadItemContextValue, UploadItemProps, UploadItemSlotProps, _default$23 as UploadItems, UploadItemsSlotProps, _default$24 as UploadList, _default$25 as UploadProgress, type UploadProgressEventData, UploadProgressSlotProps, UploadProps, _default$26 as UploadReset, _default$27 as UploadRetry, type UploadSessionMetrics, _default$28 as UploadStartAll, type UploadState, _default$29 as UploadStatus, UploadStatusSlotProps, type UploadStatus as UploadStatusType, type UploadValidationFailedEventData, type UploadValidationSuccessEventData, type UploadValidationWarningEventData, _default$30 as UploadZone, type UploadistaPluginOptions, _default$31 as UploadistaProvider, type UseFlowEventsOptions, type UseFlowReturn, type UseUploadEventsOptions, type UseUploadMetricsOptions, type UseUploadistaClientReturn, calculateProgress, createFilePreview, createUploadistaPlugin, formatDuration, formatFileSize, formatSpeed, generateUploadId, getFileExtension, isAudioFile, isBrowserFile, isDocumentFile, isFlowEvent, isImageFile, isUploadEvent, isVideoFile, revokeFilePreview, useDragDrop, useFlow, useFlowContext, useFlowEvents, useFlowInputContext, useMultiFlowUpload, useMultiUpload, useUpload, useUploadContext, useUploadEvents, useUploadItemContext, useUploadMetrics, useUploadistaClient, useUploadistaEvents, validateFileType };
5
+ export { type ChunkMetrics, type DragDropOptions, type DragDropState, FLOW_CONTEXT_KEY, FLOW_INPUT_CONTEXT_KEY, type FileUploadMetrics, _default as Flow, _default$1 as FlowCancel, type FlowContextValue, _default$2 as FlowDropZone, type FlowDropZoneProps, type FlowDropZoneSlotProps, _default$3 as FlowError, type FlowErrorSlotProps, _default$4 as FlowInput, type FlowInputContextValue, _default$5 as FlowInputDropZone, type FlowInputDropZoneProps, type FlowInputDropZoneSlotProps, type FlowInputMetadata, _default$6 as FlowInputPreview, type FlowInputPreviewSlotProps, type FlowInputProps, type FlowInputSlotProps, _default$7 as FlowInputUrlField, type FlowInputUrlFieldProps, _default$8 as FlowInputs, type FlowInputsSlotProps, _default$9 as FlowManagerProvider, _default$10 as FlowPause, _default$11 as FlowProgress, type FlowProgressSlotProps, type FlowProps, _default$12 as FlowReset, _default$13 as FlowResume, _default$14 as FlowStatus, type FlowStatusSlotProps, _default$15 as FlowSubmit, _default$16 as FlowUploadList, type FlowUploadState, type FlowUploadStatus, type InputExecutionState, type UploadItem as MultiUploadItem, type MultiUploadOptions, type MultiUploadState, type PerformanceInsights, UPLOADISTA_CLIENT_KEY, UPLOAD_CONTEXT_KEY, UPLOAD_ITEM_CONTEXT_KEY, _default$17 as Upload, _default$18 as UploadCancel, _default$19 as UploadClearCompleted, type UploadContextValue, _default$20 as UploadDropZone, type UploadDropZoneProps, type UploadDropZoneSlotProps, _default$21 as UploadError, type UploadErrorSlotProps, type UploadFailedEventData, type UploadFileEventData, type UploadInput, _default$22 as UploadItem, type UploadItemContextValue, type UploadItemProps, type UploadItemSlotProps, _default$23 as UploadItems, type UploadItemsSlotProps, _default$24 as UploadList, _default$25 as UploadProgress, type UploadProgressEventData, type UploadProgressSlotProps, type UploadProps, _default$26 as UploadReset, _default$27 as UploadRetry, type UploadSessionMetrics, _default$28 as UploadStartAll, type UploadState, _default$29 as UploadStatus, type UploadStatusSlotProps, type UploadStatus as UploadStatusType, type UploadValidationFailedEventData, type UploadValidationSuccessEventData, type UploadValidationWarningEventData, _default$30 as UploadZone, type UploadistaPluginOptions, _default$31 as UploadistaProvider, type UseFlowEventsOptions, type UseFlowReturn, type UseUploadEventsOptions, type UseUploadMetricsOptions, type UseUploadistaClientReturn, calculateProgress, createFilePreview, createUploadistaPlugin, formatDuration, formatFileSize, formatSpeed, generateUploadId, getFileExtension, isAudioFile, isBrowserFile, isDocumentFile, isFlowEvent, isImageFile, isUploadEvent, isVideoFile, revokeFilePreview, useDragDrop, useFlow, useFlowContext, useFlowEvents, useFlowInputContext, useMultiFlowUpload, useMultiUpload, useUpload, useUploadContext, useUploadEvents, useUploadItemContext, useUploadMetrics, useUploadistaClient, useUploadistaEvents, validateFileType };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./is-browser-file-CN7ymiO5.mjs";import{calculateProgress as t,createFilePreview as n,formatDuration as r,formatFileSize as i,formatSpeed as a,generateUploadId as o,getFileExtension as s,isAudioFile as c,isDocumentFile as l,isImageFile as u,isVideoFile as d,revokeFilePreview as f,validateFileType as p}from"./utils/index.mjs";import{A as m,C as h,D as g,E as _,F as v,I as y,L as b,M as x,N as S,O as C,P as w,R as T,S as E,T as D,_ as O,a as k,b as A,c as j,d as M,f as N,g as P,h as F,i as I,j as L,k as R,l as z,m as B,n as V,o as H,p as U,r as W,s as G,t as K,u as q,v as J,w as Y,x as X,y as Z}from"./upload-BJHmqKbp.mjs";import{a as Q,c as $,d as ee,i as te,l as ne,n as re,o as ie,r as ae,s as oe,t as se,u as ce}from"./useUploadMetrics-CJesoLV7.mjs";import{i as le,n as ue,t as de}from"./useUploadistaClient-C3qbTB18.mjs";import"./composables/index.mjs";import"./components/index.mjs";import{n as fe,t as pe}from"./UploadistaProvider-DU4YVCy4.mjs";import"./providers/index.mjs";export{S as FLOW_CONTEXT_KEY,w as FLOW_INPUT_CONTEXT_KEY,b as Flow,x as FlowCancel,R as FlowDropZone,C as FlowError,g as FlowInput,_ as FlowInputDropZone,D as FlowInputPreview,h as FlowInputUrlField,Y as FlowInputs,fe as FlowManagerProvider,L as FlowPause,E as FlowProgress,X as FlowReset,m as FlowResume,A as FlowStatus,Z as FlowSubmit,T as FlowUploadList,ue as UPLOADISTA_CLIENT_KEY,U as UPLOAD_CONTEXT_KEY,B as UPLOAD_ITEM_CONTEXT_KEY,N as Upload,M as UploadCancel,q as UploadClearCompleted,z as UploadDropZone,j as UploadError,G as UploadItem,H as UploadItems,J as UploadList,k as UploadProgress,I as UploadReset,W as UploadRetry,V as UploadStartAll,K as UploadStatus,O as UploadZone,pe as UploadistaProvider,t as calculateProgress,n as createFilePreview,le as createUploadistaPlugin,r as formatDuration,i as formatFileSize,a as formatSpeed,o as generateUploadId,s as getFileExtension,c as isAudioFile,e as isBrowserFile,l as isDocumentFile,$ as isFlowEvent,u as isImageFile,ne as isUploadEvent,d as isVideoFile,f as revokeFilePreview,ce as useDragDrop,ee as useFlow,v as useFlowContext,oe as useFlowEvents,y as useFlowInputContext,te as useMultiFlowUpload,ae as useMultiUpload,re as useUpload,F as useUploadContext,ie as useUploadEvents,P as useUploadItemContext,se as useUploadMetrics,de as useUploadistaClient,Q as useUploadistaEvents,p as validateFileType};
1
+ import{calculateProgress as e,createFilePreview as t,formatDuration as n,formatFileSize as r,formatSpeed as i,generateUploadId as a,getFileExtension as o,isAudioFile as s,isBrowserFile as c,isDocumentFile as l,isImageFile as u,isVideoFile as d,revokeFilePreview as f,validateFileType as p}from"./utils/index.mjs";import{A as m,C as h,D as g,E as _,F as v,I as y,L as b,M as x,N as S,O as C,P as w,R as T,S as E,T as D,_ as O,a as k,b as A,c as j,d as M,f as N,g as P,h as F,i as I,j as L,k as R,l as z,m as B,n as V,o as H,p as U,r as W,s as G,t as K,u as q,v as J,w as Y,x as X,y as Z}from"./components-BMfV_7cn.mjs";import{a as Q,c as $,d as ee,i as te,l as ne,n as re,o as ie,r as ae,s as oe,t as se,u as ce}from"./composables-CH4pv7yG.mjs";import{i as le,n as ue,t as de}from"./useUploadistaClient-CgabcTy6.mjs";import{n as fe,t as pe}from"./providers-Dhq5W5tR.mjs";export{S as FLOW_CONTEXT_KEY,w as FLOW_INPUT_CONTEXT_KEY,b as Flow,x as FlowCancel,L as FlowDropZone,m as FlowError,R as FlowInput,C as FlowInputDropZone,g as FlowInputPreview,D as FlowInputUrlField,_ as FlowInputs,fe as FlowManagerProvider,Y as FlowPause,h as FlowProgress,E as FlowReset,X as FlowResume,A as FlowStatus,Z as FlowSubmit,T as FlowUploadList,ue as UPLOADISTA_CLIENT_KEY,U as UPLOAD_CONTEXT_KEY,B as UPLOAD_ITEM_CONTEXT_KEY,N as Upload,M as UploadCancel,q as UploadClearCompleted,z as UploadDropZone,j as UploadError,G as UploadItem,H as UploadItems,J as UploadList,k as UploadProgress,I as UploadReset,W as UploadRetry,V as UploadStartAll,K as UploadStatus,O as UploadZone,pe as UploadistaProvider,e as calculateProgress,t as createFilePreview,le as createUploadistaPlugin,n as formatDuration,r as formatFileSize,i as formatSpeed,a as generateUploadId,o as getFileExtension,s as isAudioFile,c as isBrowserFile,l as isDocumentFile,$ as isFlowEvent,u as isImageFile,ne as isUploadEvent,d as isVideoFile,f as revokeFilePreview,ce as useDragDrop,ee as useFlow,v as useFlowContext,oe as useFlowEvents,y as useFlowInputContext,te as useMultiFlowUpload,ae as useMultiUpload,re as useUpload,F as useUploadContext,ie as useUploadEvents,P as useUploadItemContext,se as useUploadMetrics,de as useUploadistaClient,Q as useUploadistaEvents,p as validateFileType};
@@ -1,2 +1,2 @@
1
- import { n as _default, t as _default$1 } from "../UploadistaProvider.vue-_qDn5Gvp.mjs";
1
+ import { n as _default, t as _default$1 } from "../index-DcNYDFLL.mjs";
2
2
  export { _default as FlowManagerProvider, _default$1 as UploadistaProvider };
@@ -1 +1 @@
1
- import"../useUploadistaClient-C3qbTB18.mjs";import{n as e,t}from"../UploadistaProvider-DU4YVCy4.mjs";export{e as FlowManagerProvider,t as UploadistaProvider};
1
+ import{n as e,t}from"../providers-Dhq5W5tR.mjs";export{e as FlowManagerProvider,t as UploadistaProvider};
@@ -1,2 +1,2 @@
1
- import{n as e,r as t,t as n}from"./useUploadistaClient-C3qbTB18.mjs";import{createBlock as r,defineComponent as i,onBeforeUnmount as a,onMounted as o,openBlock as s,provide as c,ref as l,renderSlot as u,withCtx as d}from"vue";import{createUploadistaClient as f}from"@uploadista/client-browser";import{EventType as p}from"@uploadista/core/flow";import{UploadEventType as m}from"@uploadista/core/types";import{FlowManager as h}from"@uploadista/client-core";const g=i({__name:`FlowManagerProvider`,setup(e){function t(e){let t=e;return t.eventType===p.FlowStart||t.eventType===p.FlowEnd||t.eventType===p.FlowError||t.eventType===p.NodeStart||t.eventType===p.NodeEnd||t.eventType===p.NodePause||t.eventType===p.NodeResume||t.eventType===p.NodeError}let{client:r,subscribeToEvents:i}=n(),s=new Map,l=null;return o(()=>{l=i(e=>{if(t(e)){for(let t of s.values())t.manager.handleFlowEvent(e);return}if(`type`in e&&e.type===m.UPLOAD_PROGRESS&&`data`in e){let t=e;for(let e of s.values())e.manager.handleUploadProgress(t.data.id,t.data.progress,t.data.total)}})}),a(()=>{l?.();for(let e of s.values())e.manager.cleanup();s.clear()}),c(`flowManagerContext`,{getManager:(e,t,n)=>{let i=s.get(e);if(i)return i.refCount++,i.manager;let a=new h(r.uploadWithFlow,t,n,r.multiInputFlowUpload);return s.set(e,{manager:a,refCount:1,flowId:e}),a},releaseManager:e=>{let t=s.get(e);t&&(t.refCount--,t.refCount<=0&&(t.manager.cleanup(),s.delete(e)))}}),(e,t)=>u(e.$slots,`default`)}}),_=i({__name:`UploadistaProvider`,props:{serverUrl:{},storageId:{default:`local`},uploadistaBasePath:{default:`uploadista`},chunkSize:{default:1024*1024},parallelUploads:{default:1},storeFingerprintForResuming:{type:Boolean,default:!0}},setup(n){let i=n,o=l(new Set),p=f({baseUrl:i.serverUrl,storageId:i.storageId,uploadistaBasePath:i.uploadistaBasePath,chunkSize:i.chunkSize,parallelUploads:i.parallelUploads,storeFingerprintForResuming:i.storeFingerprintForResuming,onEvent:e=>{o.value.forEach(t=>{try{t(e)}catch(e){console.error(`Error in event subscriber:`,e)}})}});return c(e,p),c(t,o),a(()=>{p.closeAllWebSockets()}),(e,t)=>(s(),r(g,null,{default:d(()=>[u(e.$slots,`default`)]),_:3}))}});export{g as n,_ as t};
2
- //# sourceMappingURL=UploadistaProvider-DU4YVCy4.mjs.map
1
+ import{n as e,r as t,t as n}from"./useUploadistaClient-CgabcTy6.mjs";import{createBlock as r,defineComponent as i,onBeforeUnmount as a,onMounted as o,openBlock as s,provide as c,ref as l,renderSlot as u,withCtx as d}from"vue";import{createUploadistaClient as f}from"@uploadista/client-browser";import{EventType as p}from"@uploadista/core/flow";import{UploadEventType as m}from"@uploadista/core/types";import{FlowManager as h}from"@uploadista/client-core";const g=i({__name:`FlowManagerProvider`,setup(e){function t(e){let t=e;return t.eventType===p.FlowStart||t.eventType===p.FlowEnd||t.eventType===p.FlowError||t.eventType===p.NodeStart||t.eventType===p.NodeEnd||t.eventType===p.NodePause||t.eventType===p.NodeResume||t.eventType===p.NodeError}let{client:r,subscribeToEvents:i}=n(),s=new Map,l=null;return o(()=>{l=i(e=>{if(t(e)){for(let t of s.values())t.manager.handleFlowEvent(e);return}if(`type`in e&&e.type===m.UPLOAD_PROGRESS&&`data`in e){let t=e;for(let e of s.values())e.manager.handleUploadProgress(t.data.id,t.data.progress,t.data.total)}})}),a(()=>{l?.();for(let e of s.values())e.manager.cleanup();s.clear()}),c(`flowManagerContext`,{getManager:(e,t,n)=>{let i=s.get(e);if(i)return i.refCount++,i.manager;let a=new h(r.uploadWithFlow,t,n,r.multiInputFlowUpload);return s.set(e,{manager:a,refCount:1,flowId:e}),a},releaseManager:e=>{let t=s.get(e);t&&(t.refCount--,t.refCount<=0&&(t.manager.cleanup(),s.delete(e)))}}),(e,t)=>u(e.$slots,`default`)}}),_=i({__name:`UploadistaProvider`,props:{serverUrl:{},storageId:{default:`local`},uploadistaBasePath:{default:`uploadista`},chunkSize:{default:1024*1024},parallelUploads:{default:1},storeFingerprintForResuming:{type:Boolean,default:!0}},setup(n){let i=n,o=l(new Set),p=f({baseUrl:i.serverUrl,storageId:i.storageId,uploadistaBasePath:i.uploadistaBasePath,chunkSize:i.chunkSize,parallelUploads:i.parallelUploads,storeFingerprintForResuming:i.storeFingerprintForResuming,onEvent:e=>{o.value.forEach(t=>{try{t(e)}catch(e){console.error(`Error in event subscriber:`,e)}})}});return c(e,p),c(t,o),a(()=>{p.closeAllWebSockets()}),(e,t)=>(s(),r(g,null,{default:d(()=>[u(e.$slots,`default`)]),_:3}))}});export{g as n,_ as t};
2
+ //# sourceMappingURL=providers-Dhq5W5tR.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers-Dhq5W5tR.mjs","names":[],"sources":["../src/providers/FlowManagerProvider.vue","../src/providers/UploadistaProvider.vue"],"sourcesContent":["<template>\n <slot />\n</template>\n\n<script setup lang=\"ts\">\nimport type {\n BrowserUploadInput,\n UploadistaEvent,\n} from \"@uploadista/client-browser\";\nimport {\n FlowManager,\n type FlowManagerCallbacks,\n type FlowUploadOptions,\n} from \"@uploadista/client-core\";\nimport { EventType, type FlowEvent } from \"@uploadista/core/flow\";\nimport { UploadEventType } from \"@uploadista/core/types\";\nimport { onBeforeUnmount, onMounted, provide } from \"vue\";\nimport { useUploadistaClient } from \"../composables/useUploadistaClient\";\n\n/**\n * Type guard to check if an event is a flow event\n */\nfunction isFlowEvent(event: UploadistaEvent): event is FlowEvent {\n const flowEvent = event as FlowEvent;\n return (\n flowEvent.eventType === EventType.FlowStart ||\n flowEvent.eventType === EventType.FlowEnd ||\n flowEvent.eventType === EventType.FlowError ||\n flowEvent.eventType === EventType.NodeStart ||\n flowEvent.eventType === EventType.NodeEnd ||\n flowEvent.eventType === EventType.NodePause ||\n flowEvent.eventType === EventType.NodeResume ||\n flowEvent.eventType === EventType.NodeError\n );\n}\n\n/**\n * Internal manager registry entry with ref counting\n */\ninterface ManagerEntry {\n manager: FlowManager<unknown>;\n refCount: number;\n flowId: string;\n}\n\n/**\n * Context value providing access to flow managers\n */\ninterface FlowManagerContextValue {\n getManager: (\n flowId: string,\n callbacks: FlowManagerCallbacks,\n options: FlowUploadOptions,\n ) => FlowManager<unknown>;\n releaseManager: (flowId: string) => void;\n}\n\nconst { client, subscribeToEvents } = useUploadistaClient();\nconst managers = new Map<string, ManagerEntry>();\nlet unsubscribe: (() => void) | null = null;\n\n// Subscribe to events and route to managers\nonMounted(() => {\n unsubscribe = subscribeToEvents((event: UploadistaEvent) => {\n // Route flow events to all managers (they filter by jobId internally)\n if (isFlowEvent(event)) {\n for (const entry of managers.values()) {\n entry.manager.handleFlowEvent(event);\n }\n return;\n }\n\n // Route upload progress events to all managers\n if (\n \"type\" in event &&\n event.type === UploadEventType.UPLOAD_PROGRESS &&\n \"data\" in event\n ) {\n const uploadEvent = event;\n\n for (const entry of managers.values()) {\n entry.manager.handleUploadProgress(\n uploadEvent.data.id,\n uploadEvent.data.progress,\n uploadEvent.data.total,\n );\n }\n }\n });\n});\n\n// Cleanup on unmount\nonBeforeUnmount(() => {\n unsubscribe?.();\n for (const entry of managers.values()) {\n entry.manager.cleanup();\n }\n managers.clear();\n});\n\nconst getManager = (\n flowId: string,\n callbacks: FlowManagerCallbacks,\n options: FlowUploadOptions,\n): FlowManager<unknown> => {\n const existing = managers.get(flowId);\n\n if (existing) {\n // Increment ref count for existing manager\n existing.refCount++;\n return existing.manager;\n }\n\n // Create new manager\n const manager = new FlowManager<BrowserUploadInput>(\n client.uploadWithFlow,\n callbacks,\n options,\n client.multiInputFlowUpload,\n );\n\n managers.set(flowId, {\n manager,\n refCount: 1,\n flowId,\n });\n\n return manager;\n};\n\nconst releaseManager = (flowId: string) => {\n const existing = managers.get(flowId);\n if (!existing) return;\n\n existing.refCount--;\n\n // Clean up when no more refs\n if (existing.refCount <= 0) {\n existing.manager.cleanup();\n managers.delete(flowId);\n }\n};\n\n// Provide the context\nconst flowManagerContext: FlowManagerContextValue = {\n getManager,\n releaseManager,\n};\n\nprovide(\"flowManagerContext\", flowManagerContext);\n</script>\n","<script setup lang=\"ts\">\nimport {\n createUploadistaClient,\n type UploadistaEvent,\n} from \"@uploadista/client-browser\";\nimport { onBeforeUnmount, provide, ref } from \"vue\";\nimport {\n UPLOADISTA_CLIENT_KEY,\n UPLOADISTA_EVENT_SUBSCRIBERS_KEY,\n} from \"../composables/plugin\";\nimport FlowManagerProvider from \"./FlowManagerProvider.vue\";\n\nconst props = withDefaults(\n defineProps<{\n serverUrl: string;\n storageId?: string;\n uploadistaBasePath?: string;\n chunkSize?: number;\n parallelUploads?: number;\n storeFingerprintForResuming?: boolean;\n }>(),\n {\n storageId: \"local\",\n uploadistaBasePath: \"uploadista\",\n chunkSize: 1024 * 1024,\n parallelUploads: 1,\n storeFingerprintForResuming: true,\n },\n);\n\n// Create a shared set of event subscribers\nconst eventSubscribers = ref(new Set<(event: UploadistaEvent) => void>());\n\nconst client = createUploadistaClient({\n baseUrl: props.serverUrl,\n storageId: props.storageId,\n uploadistaBasePath: props.uploadistaBasePath,\n chunkSize: props.chunkSize,\n parallelUploads: props.parallelUploads,\n storeFingerprintForResuming: props.storeFingerprintForResuming,\n onEvent: (event) => {\n // Dispatch to all subscribers registered via subscribeToEvents\n eventSubscribers.value.forEach((subscriber) => {\n try {\n subscriber(event);\n } catch (err) {\n console.error(\"Error in event subscriber:\", err);\n }\n });\n },\n});\n\nprovide(UPLOADISTA_CLIENT_KEY, client);\nprovide(UPLOADISTA_EVENT_SUBSCRIBERS_KEY, eventSubscribers);\n\nonBeforeUnmount(() => {\n client.closeAllWebSockets();\n});\n</script>\n\n<template>\n <FlowManagerProvider>\n <slot />\n </FlowManagerProvider>\n</template>\n"],"mappings":"wfAsBA,SAAS,EAAY,EAA4C,CAC/D,IAAM,EAAY,EAClB,OACE,EAAU,YAAc,EAAU,WAClC,EAAU,YAAc,EAAU,SAClC,EAAU,YAAc,EAAU,WAClC,EAAU,YAAc,EAAU,WAClC,EAAU,YAAc,EAAU,SAClC,EAAU,YAAc,EAAU,WAClC,EAAU,YAAc,EAAU,YAClC,EAAU,YAAc,EAAU,SAEtC,CAuBA,GAAM,CAAE,SAAQ,qBAAsB,EAAoB,EACpD,EAAW,IAAI,IACjB,EAAmC,YAGvC,MAAgB,CACd,EAAc,EAAmB,GAA2B,CAE1D,GAAI,EAAY,CAAK,EAAG,CACtB,IAAK,IAAM,KAAS,EAAS,OAAO,EAClC,EAAM,QAAQ,gBAAgB,CAAK,EAErC,MACF,CAGA,GACE,SAAU,GACV,EAAM,OAAS,EAAgB,iBAC/B,SAAU,EACV,CACA,IAAM,EAAc,EAEpB,IAAK,IAAM,KAAS,EAAS,OAAO,EAClC,EAAM,QAAQ,qBACZ,EAAY,KAAK,GACjB,EAAY,KAAK,SACjB,EAAY,KAAK,KACnB,CAEJ,CACF,CAAC,CACH,CAAC,EAGD,MAAsB,CACpB,IAAc,EACd,IAAK,IAAM,KAAS,EAAS,OAAO,EAClC,EAAM,QAAQ,QAAQ,EAExB,EAAS,MAAM,CACjB,CAAC,EAmDD,EAAQ,qBAAsB,CAJ5B,YA5CA,EACA,EACA,IACyB,CACzB,IAAM,EAAW,EAAS,IAAI,CAAM,EAEpC,GAAI,EAGF,MADA,GAAS,WACF,EAAS,QAIlB,IAAM,EAAU,IAAI,EAClB,EAAO,eACP,EACA,EACA,EAAO,oBACT,EAQA,OANA,EAAS,IAAI,EAAQ,CACnB,UACA,SAAU,EACV,QACF,CAAC,EAEM,CACT,EAkBE,eAhBsB,GAAmB,CACzC,IAAM,EAAW,EAAS,IAAI,CAAM,EAC/B,IAEL,EAAS,WAGL,EAAS,UAAY,IACvB,EAAS,QAAQ,QAAQ,EACzB,EAAS,OAAO,CAAM,GAE1B,CAQ8B,CAAkB,SApJ9C,EAAQ,EAAA,OAAA,SAAA,0PCWV,IAAM,EAAQ,EAmBR,EAAmB,EAAI,IAAI,GAAuC,EAElE,EAAS,EAAuB,CACpC,QAAS,EAAM,UACf,UAAW,EAAM,UACjB,mBAAoB,EAAM,mBAC1B,UAAW,EAAM,UACjB,gBAAiB,EAAM,gBACvB,4BAA6B,EAAM,4BACnC,QAAU,GAAU,CAElB,EAAiB,MAAM,QAAS,GAAe,CAC7C,GAAI,CACF,EAAW,CAAK,CAClB,OAAS,EAAK,CACZ,QAAQ,MAAM,6BAA8B,CAAG,CACjD,CACF,CAAC,CACH,CACF,CAAC,SAED,EAAQ,EAAuB,CAAM,EACrC,EAAQ,EAAkC,CAAgB,EAE1D,MAAsB,CACpB,EAAO,mBAAmB,CAC5B,CAAC,cAIC,EAEsB,EAAA,KAAA,eADZ,CAAR,EAAQ,EAAA,OAAA,SAAA,CAAA,CAAA"}
@@ -83,7 +83,6 @@
83
83
  border-radius: 0.25rem;
84
84
  }
85
85
 
86
-
87
86
  .upload-list[data-v-270204db] {
88
87
  display: flex;
89
88
  flex-direction: column;
@@ -153,7 +152,6 @@
153
152
  border-radius: 0.25rem;
154
153
  }
155
154
 
156
-
157
155
  .upload-zone[data-v-c73032fa] {
158
156
  cursor: pointer;
159
157
  user-select: none;
@@ -176,6 +174,3 @@
176
174
  .upload-zone__errors p[data-v-c73032fa] {
177
175
  margin: 0.25rem 0;
178
176
  }
179
-
180
-
181
- /*# sourceMappingURL=upload-y0K2veej.css.map*/
@@ -1,2 +1,2 @@
1
1
  import{inject as e,ref as t}from"vue";import{createUploadistaClient as n}from"@uploadista/client-browser";const r=Symbol(`uploadista-client`),i=Symbol(`uploadista-event-subscribers`);function a(e){return{install(a){let o=t(new Set),s=n({...e,onEvent:t=>{o.value.forEach(e=>{e(t)}),e.onEvent?.(t)}});a.provide(r,s),a.provide(i,o)}}}function o(){let t=e(r);if(!t)throw Error(`useUploadistaClient must be used within a component tree that has the Uploadista plugin or provider installed. Make sure to either use app.use(createUploadistaPlugin({ ... })) in your main app file, or wrap your component tree with <UploadistaProvider>.`);let n=e(i);return{client:t,subscribeToEvents:e=>n?(n.value.add(e),()=>{n.value.delete(e)}):(console.warn(`subscribeToEvents called but no event subscribers provided. Events will not be dispatched. Make sure to use UploadistaProvider or createUploadistaPlugin with proper configuration.`),()=>{})}}export{a as i,r as n,i as r,o as t};
2
- //# sourceMappingURL=useUploadistaClient-C3qbTB18.mjs.map
2
+ //# sourceMappingURL=useUploadistaClient-CgabcTy6.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUploadistaClient-C3qbTB18.mjs","names":[],"sources":["../src/composables/plugin.ts","../src/composables/useUploadistaClient.ts"],"sourcesContent":["import {\n createUploadistaClient,\n type UploadistaClientOptions,\n type UploadistaEvent,\n} from \"@uploadista/client-browser\";\nimport type { App, InjectionKey, Ref } from \"vue\";\nimport { ref } from \"vue\";\n\nexport interface UploadistaPluginOptions extends UploadistaClientOptions {\n /**\n * Global event handler for all upload and flow events from this client\n */\n onEvent?: UploadistaClientOptions[\"onEvent\"];\n}\n\nexport const UPLOADISTA_CLIENT_KEY: InjectionKey<\n ReturnType<typeof createUploadistaClient>\n> = Symbol(\"uploadista-client\");\n\nexport const UPLOADISTA_EVENT_SUBSCRIBERS_KEY: InjectionKey<\n Ref<Set<(event: UploadistaEvent) => void>>\n> = Symbol(\"uploadista-event-subscribers\");\n\n/**\n * Vue plugin for providing Uploadista client instance globally.\n * Uses Vue's provide/inject pattern to make the client available\n * throughout the component tree.\n *\n * @param options - Uploadista client configuration options\n * @returns Vue plugin object\n *\n * @example\n * ```typescript\n * import { createApp } from 'vue';\n * import { createUploadistaPlugin } from '@uploadista/vue';\n * import App from './App.vue';\n *\n * const app = createApp(App);\n *\n * app.use(createUploadistaPlugin({\n * baseUrl: 'https://api.example.com',\n * storageId: 'my-storage',\n * chunkSize: 1024 * 1024, // 1MB\n * storeFingerprintForResuming: true,\n * onEvent: (event) => {\n * console.log('Upload event:', event);\n * }\n * }));\n *\n * app.mount('#app');\n * ```\n */\nexport function createUploadistaPlugin(options: UploadistaPluginOptions) {\n return {\n install(app: App) {\n // Create a shared set of event subscribers\n const eventSubscribers = ref(new Set<(event: UploadistaEvent) => void>());\n\n const client = createUploadistaClient({\n ...options,\n onEvent: (event) => {\n // Dispatch to all subscribers registered via subscribeToEvents\n eventSubscribers.value.forEach((subscriber) => {\n subscriber(event);\n });\n\n // Call the original onEvent handler if provided\n options.onEvent?.(event);\n },\n });\n\n app.provide(UPLOADISTA_CLIENT_KEY, client);\n app.provide(UPLOADISTA_EVENT_SUBSCRIBERS_KEY, eventSubscribers);\n },\n };\n}\n","import type { UploadistaEvent } from \"@uploadista/client-browser\";\nimport { inject, type Ref } from \"vue\";\nimport {\n UPLOADISTA_CLIENT_KEY,\n UPLOADISTA_EVENT_SUBSCRIBERS_KEY,\n} from \"./plugin\";\n\n/**\n * Access the Uploadista client instance from the plugin or provider.\n * Must be used within a component tree that has the Uploadista plugin or provider installed.\n *\n * @returns Uploadista client instance with event subscription\n * @throws Error if used outside of Uploadista plugin/provider context\n *\n * @example\n * ```vue\n * <script setup lang=\"ts\">\n * import { useUploadistaClient } from '@uploadista/vue';\n *\n * const { client, subscribeToEvents } = useUploadistaClient();\n *\n * // Subscribe to all events\n * const unsubscribe = subscribeToEvents((event) => {\n * console.log('Upload event:', event);\n * });\n *\n * // Clean up on unmount\n * onUnmounted(() => {\n * unsubscribe();\n * });\n * </script>\n * ```\n */\nexport function useUploadistaClient() {\n const client = inject(UPLOADISTA_CLIENT_KEY);\n\n if (!client) {\n throw new Error(\n \"useUploadistaClient must be used within a component tree that has the Uploadista plugin or provider installed. \" +\n \"Make sure to either use app.use(createUploadistaPlugin({ ... })) in your main app file, \" +\n \"or wrap your component tree with <UploadistaProvider>.\",\n );\n }\n\n // Try to get the shared event subscribers from the provider\n const eventSubscribersRef = inject<\n Ref<Set<(event: UploadistaEvent) => void>> | undefined\n >(UPLOADISTA_EVENT_SUBSCRIBERS_KEY);\n\n const subscribeToEvents = (handler: (event: UploadistaEvent) => void) => {\n if (!eventSubscribersRef) {\n console.warn(\n \"subscribeToEvents called but no event subscribers provided. Events will not be dispatched. \" +\n \"Make sure to use UploadistaProvider or createUploadistaPlugin with proper configuration.\",\n );\n return () => {\n // No-op unsubscribe if subscribers aren't available\n };\n }\n\n eventSubscribersRef.value.add(handler);\n return () => {\n eventSubscribersRef.value.delete(handler);\n };\n };\n\n return {\n client,\n subscribeToEvents,\n };\n}\n\nexport type UseUploadistaClientReturn = ReturnType<typeof useUploadistaClient>;\n"],"mappings":"0GAeA,MAAa,EAET,OAAO,oBAAoB,CAElB,EAET,OAAO,+BAA+B,CA+B1C,SAAgB,EAAuB,EAAkC,CACvE,MAAO,CACL,QAAQ,EAAU,CAEhB,IAAM,EAAmB,EAAI,IAAI,IAAwC,CAEnE,EAAS,EAAuB,CACpC,GAAG,EACH,QAAU,GAAU,CAElB,EAAiB,MAAM,QAAS,GAAe,CAC7C,EAAW,EAAM,EACjB,CAGF,EAAQ,UAAU,EAAM,EAE3B,CAAC,CAEF,EAAI,QAAQ,EAAuB,EAAO,CAC1C,EAAI,QAAQ,EAAkC,EAAiB,EAElE,CCzCH,SAAgB,GAAsB,CACpC,IAAM,EAAS,EAAO,EAAsB,CAE5C,GAAI,CAAC,EACH,MAAU,MACR,gQAGD,CAIH,IAAM,EAAsB,EAE1B,EAAiC,CAmBnC,MAAO,CACL,SACA,kBAnByB,GACpB,GAUL,EAAoB,MAAM,IAAI,EAAQ,KACzB,CACX,EAAoB,MAAM,OAAO,EAAQ,IAXzC,QAAQ,KACN,sLAED,KACY,IAchB"}
1
+ {"version":3,"file":"useUploadistaClient-CgabcTy6.mjs","names":[],"sources":["../src/composables/plugin.ts","../src/composables/useUploadistaClient.ts"],"sourcesContent":["import {\n createUploadistaClient,\n type UploadistaClientOptions,\n type UploadistaEvent,\n} from \"@uploadista/client-browser\";\nimport type { App, InjectionKey, Ref } from \"vue\";\nimport { ref } from \"vue\";\n\nexport interface UploadistaPluginOptions extends UploadistaClientOptions {\n /**\n * Global event handler for all upload and flow events from this client\n */\n onEvent?: UploadistaClientOptions[\"onEvent\"];\n}\n\nexport const UPLOADISTA_CLIENT_KEY: InjectionKey<\n ReturnType<typeof createUploadistaClient>\n> = Symbol(\"uploadista-client\");\n\nexport const UPLOADISTA_EVENT_SUBSCRIBERS_KEY: InjectionKey<\n Ref<Set<(event: UploadistaEvent) => void>>\n> = Symbol(\"uploadista-event-subscribers\");\n\n/**\n * Vue plugin for providing Uploadista client instance globally.\n * Uses Vue's provide/inject pattern to make the client available\n * throughout the component tree.\n *\n * @param options - Uploadista client configuration options\n * @returns Vue plugin object\n *\n * @example\n * ```typescript\n * import { createApp } from 'vue';\n * import { createUploadistaPlugin } from '@uploadista/vue';\n * import App from './App.vue';\n *\n * const app = createApp(App);\n *\n * app.use(createUploadistaPlugin({\n * baseUrl: 'https://api.example.com',\n * storageId: 'my-storage',\n * chunkSize: 1024 * 1024, // 1MB\n * storeFingerprintForResuming: true,\n * onEvent: (event) => {\n * console.log('Upload event:', event);\n * }\n * }));\n *\n * app.mount('#app');\n * ```\n */\nexport function createUploadistaPlugin(options: UploadistaPluginOptions) {\n return {\n install(app: App) {\n // Create a shared set of event subscribers\n const eventSubscribers = ref(new Set<(event: UploadistaEvent) => void>());\n\n const client = createUploadistaClient({\n ...options,\n onEvent: (event) => {\n // Dispatch to all subscribers registered via subscribeToEvents\n eventSubscribers.value.forEach((subscriber) => {\n subscriber(event);\n });\n\n // Call the original onEvent handler if provided\n options.onEvent?.(event);\n },\n });\n\n app.provide(UPLOADISTA_CLIENT_KEY, client);\n app.provide(UPLOADISTA_EVENT_SUBSCRIBERS_KEY, eventSubscribers);\n },\n };\n}\n","import type { UploadistaEvent } from \"@uploadista/client-browser\";\nimport { inject, type Ref } from \"vue\";\nimport {\n UPLOADISTA_CLIENT_KEY,\n UPLOADISTA_EVENT_SUBSCRIBERS_KEY,\n} from \"./plugin\";\n\n/**\n * Access the Uploadista client instance from the plugin or provider.\n * Must be used within a component tree that has the Uploadista plugin or provider installed.\n *\n * @returns Uploadista client instance with event subscription\n * @throws Error if used outside of Uploadista plugin/provider context\n *\n * @example\n * ```vue\n * <script setup lang=\"ts\">\n * import { useUploadistaClient } from '@uploadista/vue';\n *\n * const { client, subscribeToEvents } = useUploadistaClient();\n *\n * // Subscribe to all events\n * const unsubscribe = subscribeToEvents((event) => {\n * console.log('Upload event:', event);\n * });\n *\n * // Clean up on unmount\n * onUnmounted(() => {\n * unsubscribe();\n * });\n * </script>\n * ```\n */\nexport function useUploadistaClient() {\n const client = inject(UPLOADISTA_CLIENT_KEY);\n\n if (!client) {\n throw new Error(\n \"useUploadistaClient must be used within a component tree that has the Uploadista plugin or provider installed. \" +\n \"Make sure to either use app.use(createUploadistaPlugin({ ... })) in your main app file, \" +\n \"or wrap your component tree with <UploadistaProvider>.\",\n );\n }\n\n // Try to get the shared event subscribers from the provider\n const eventSubscribersRef = inject<\n Ref<Set<(event: UploadistaEvent) => void>> | undefined\n >(UPLOADISTA_EVENT_SUBSCRIBERS_KEY);\n\n const subscribeToEvents = (handler: (event: UploadistaEvent) => void) => {\n if (!eventSubscribersRef) {\n console.warn(\n \"subscribeToEvents called but no event subscribers provided. Events will not be dispatched. \" +\n \"Make sure to use UploadistaProvider or createUploadistaPlugin with proper configuration.\",\n );\n return () => {\n // No-op unsubscribe if subscribers aren't available\n };\n }\n\n eventSubscribersRef.value.add(handler);\n return () => {\n eventSubscribersRef.value.delete(handler);\n };\n };\n\n return {\n client,\n subscribeToEvents,\n };\n}\n\nexport type UseUploadistaClientReturn = ReturnType<typeof useUploadistaClient>;\n"],"mappings":"0GAeA,MAAa,EAET,OAAO,mBAAmB,EAEjB,EAET,OAAO,8BAA8B,EA+BzC,SAAgB,EAAuB,EAAkC,CACvE,MAAO,CACL,QAAQ,EAAU,CAEhB,IAAM,EAAmB,EAAI,IAAI,GAAuC,EAElE,EAAS,EAAuB,CACpC,GAAG,EACH,QAAU,GAAU,CAElB,EAAiB,MAAM,QAAS,GAAe,CAC7C,EAAW,CAAK,CAClB,CAAC,EAGD,EAAQ,UAAU,CAAK,CACzB,CACF,CAAC,EAED,EAAI,QAAQ,EAAuB,CAAM,EACzC,EAAI,QAAQ,EAAkC,CAAgB,CAChE,CACF,CACF,CC1CA,SAAgB,GAAsB,CACpC,IAAM,EAAS,EAAO,CAAqB,EAE3C,GAAI,CAAC,EACH,MAAU,MACR,+PAGF,EAIF,IAAM,EAAsB,EAE1B,CAAgC,EAmBlC,MAAO,CACL,SACA,kBAnByB,GACpB,GAUL,EAAoB,MAAM,IAAI,CAAO,MACxB,CACX,EAAoB,MAAM,OAAO,CAAO,CAC1C,IAZE,QAAQ,KACN,qLAEF,MACa,CAEb,EAYJ,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/utils/is-browser-file.ts","../../src/utils/index.ts"],"mappings":";cAAa,aAAA,GAAiB,KAAA,cAAiB,KAAA,IAAS,IAAA;;;;AAAxD;;;;;iBCOgB,cAAA,CAAe,KAAA;;;;iBAWf,WAAA,CAAY,cAAA;;;AAX5B;iBAsBgB,cAAA,CAAe,YAAA;;;;iBAuBf,gBAAA,CAAiB,IAAA,EAAM,IAAA,EAAM,MAAA;;;;iBAsB7B,gBAAA,CAAA;AA7ChB;;;AAAA,iBAoDgB,gBAAA,CAAiB,QAAA;;AA7BjC;;iBAqCgB,WAAA,CAAY,IAAA,EAAM,IAAA;;;;iBAOlB,WAAA,CAAY,IAAA,EAAM,IAAA;;;AAtBlC;iBA6BgB,WAAA,CAAY,IAAA,EAAM,IAAA;;;;iBAOlB,cAAA,CAAe,IAAA,EAAM,IAAA;;;;iBAoBrB,iBAAA,CAAkB,IAAA,EAAM,IAAA;AAzCxC;;;AAAA,iBAmDgB,iBAAA,CAAkB,UAAA;;AA5ClC;;iBAmDgB,iBAAA,CAAkB,OAAA,UAAiB,KAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/utils/is-browser-file.ts","../../src/utils/index.ts"],"mappings":";cAAa,aAAA,GAAiB,KAAA,cAAiB,KAAA,IAAS,IACF;;;;AADtD;;;;;iBCOgB,cAAA,CAAe,KAAa;;;ADNU;iBCiBtC,WAAA,CAAY,cAAsB;;;AAXlD;iBAsBgB,cAAA,CAAe,YAAoB;;;AAtBP;iBA6C5B,gBAAA,CAAiB,IAAA,EAAM,IAAI,EAAE,MAAA;;;;iBAsB7B,gBAAA;AA7ChB;;;AAAA,iBAoDgB,gBAAA,CAAiB,QAAgB;AApDE;AAuBnD;;AAvBmD,iBA4DnC,WAAA,CAAY,IAAU,EAAJ,IAAI;;;;iBAOtB,WAAA,CAAY,IAAU,EAAJ,IAAI;;AA5CuB;AAsB7D;iBA6BgB,WAAA,CAAY,IAAU,EAAJ,IAAI;;;AA7BN;iBAoChB,cAAA,CAAe,IAAU,EAAJ,IAAI;;;;iBAoBzB,iBAAA,CAAkB,IAAU,EAAJ,IAAI;AAzC5C;;;AAAA,iBAmDgB,iBAAA,CAAkB,UAAkB;AAnDd;AAOtC;;AAPsC,iBA0DtB,iBAAA,CAAkB,OAAA,UAAiB,KAAa"}
@@ -1,2 +1,2 @@
1
- import{t as e}from"../is-browser-file-CN7ymiO5.mjs";function t(e){if(e===0)return`0 Bytes`;let t=1024,n=[`Bytes`,`KB`,`MB`,`GB`,`TB`],r=Math.floor(Math.log(e)/Math.log(t));return`${Number.parseFloat((e/t**r).toFixed(2))} ${n[r]}`}function n(e){if(e===0)return`0 B/s`;let t=1024,n=[`B/s`,`KB/s`,`MB/s`,`GB/s`],r=Math.floor(Math.log(e)/Math.log(t));return`${Number.parseFloat((e/t**r).toFixed(1))} ${n[r]}`}function r(e){if(e<1e3)return`${Math.round(e)}ms`;if(e<6e4)return`${Math.round(e/1e3)}s`;if(e<36e5){let t=Math.floor(e/6e4),n=Math.round(e%6e4/1e3);return n>0?`${t}m ${n}s`:`${t}m`}let t=Math.floor(e/36e5),n=Math.round(e%36e5/6e4);return n>0?`${t}h ${n}m`:`${t}h`}function i(e,t){return!t||t.length===0?!0:t.some(t=>{if(t.startsWith(`.`))return e.name.toLowerCase().endsWith(t.toLowerCase());if(t.endsWith(`/*`)){let n=t.slice(0,-2);return e.type.startsWith(n)}return e.type===t})}function a(){return`upload-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}function o(e){let t=e.lastIndexOf(`.`);return t===-1?``:e.substring(t+1).toLowerCase()}function s(e){return e.type.startsWith(`image/`)}function c(e){return e.type.startsWith(`video/`)}function l(e){return e.type.startsWith(`audio/`)}function u(e){return[`application/pdf`,`application/msword`,`application/vnd.openxmlformats-officedocument.wordprocessingml.document`,`application/vnd.ms-excel`,`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,`application/vnd.ms-powerpoint`,`application/vnd.openxmlformats-officedocument.presentationml.presentation`,`text/plain`,`text/csv`,`application/rtf`].includes(e.type)}function d(e){return s(e)||c(e)||l(e)?URL.createObjectURL(e):null}function f(e){URL.revokeObjectURL(e)}function p(e,t){return t===0?0:Math.min(100,Math.max(0,Math.round(e/t*100)))}export{p as calculateProgress,d as createFilePreview,r as formatDuration,t as formatFileSize,n as formatSpeed,a as generateUploadId,o as getFileExtension,l as isAudioFile,e as isBrowserFile,u as isDocumentFile,s as isImageFile,c as isVideoFile,f as revokeFilePreview,i as validateFileType};
1
+ const e=e=>typeof File<`u`&&e instanceof File;function t(e){if(e===0)return`0 Bytes`;let t=1024,n=[`Bytes`,`KB`,`MB`,`GB`,`TB`],r=Math.floor(Math.log(e)/Math.log(t));return`${Number.parseFloat((e/t**r).toFixed(2))} ${n[r]}`}function n(e){if(e===0)return`0 B/s`;let t=1024,n=[`B/s`,`KB/s`,`MB/s`,`GB/s`],r=Math.floor(Math.log(e)/Math.log(t));return`${Number.parseFloat((e/t**r).toFixed(1))} ${n[r]}`}function r(e){if(e<1e3)return`${Math.round(e)}ms`;if(e<6e4)return`${Math.round(e/1e3)}s`;if(e<36e5){let t=Math.floor(e/6e4),n=Math.round(e%6e4/1e3);return n>0?`${t}m ${n}s`:`${t}m`}let t=Math.floor(e/36e5),n=Math.round(e%36e5/6e4);return n>0?`${t}h ${n}m`:`${t}h`}function i(e,t){return!t||t.length===0?!0:t.some(t=>{if(t.startsWith(`.`))return e.name.toLowerCase().endsWith(t.toLowerCase());if(t.endsWith(`/*`)){let n=t.slice(0,-2);return e.type.startsWith(n)}return e.type===t})}function a(){return`upload-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}function o(e){let t=e.lastIndexOf(`.`);return t===-1?``:e.substring(t+1).toLowerCase()}function s(e){return e.type.startsWith(`image/`)}function c(e){return e.type.startsWith(`video/`)}function l(e){return e.type.startsWith(`audio/`)}function u(e){return[`application/pdf`,`application/msword`,`application/vnd.openxmlformats-officedocument.wordprocessingml.document`,`application/vnd.ms-excel`,`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`,`application/vnd.ms-powerpoint`,`application/vnd.openxmlformats-officedocument.presentationml.presentation`,`text/plain`,`text/csv`,`application/rtf`].includes(e.type)}function d(e){return s(e)||c(e)||l(e)?URL.createObjectURL(e):null}function f(e){URL.revokeObjectURL(e)}function p(e,t){return t===0?0:Math.min(100,Math.max(0,Math.round(e/t*100)))}export{p as calculateProgress,d as createFilePreview,r as formatDuration,t as formatFileSize,n as formatSpeed,a as generateUploadId,o as getFileExtension,l as isAudioFile,e as isBrowserFile,u as isDocumentFile,s as isImageFile,c as isVideoFile,f as revokeFilePreview,i as validateFileType};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/utils/index.ts"],"sourcesContent":["/**\n * Utility functions for the Vue upload client\n */\n\n/**\n * Format file size in human-readable format\n */\nexport function formatFileSize(bytes: number): string {\n if (bytes === 0) return \"0 Bytes\";\n const k = 1024;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return `${Number.parseFloat((bytes / k ** i).toFixed(2))} ${sizes[i]}`;\n}\n\n/**\n * Format upload speed in human-readable format\n */\nexport function formatSpeed(bytesPerSecond: number): string {\n if (bytesPerSecond === 0) return \"0 B/s\";\n const k = 1024;\n const sizes = [\"B/s\", \"KB/s\", \"MB/s\", \"GB/s\"];\n const i = Math.floor(Math.log(bytesPerSecond) / Math.log(k));\n return `${Number.parseFloat((bytesPerSecond / k ** i).toFixed(1))} ${sizes[i]}`;\n}\n\n/**\n * Format duration in human-readable format\n */\nexport function formatDuration(milliseconds: number): string {\n if (milliseconds < 1000) {\n return `${Math.round(milliseconds)}ms`;\n }\n\n if (milliseconds < 60000) {\n return `${Math.round(milliseconds / 1000)}s`;\n }\n\n if (milliseconds < 3600000) {\n const minutes = Math.floor(milliseconds / 60000);\n const seconds = Math.round((milliseconds % 60000) / 1000);\n return seconds > 0 ? `${minutes}m ${seconds}s` : `${minutes}m`;\n }\n\n const hours = Math.floor(milliseconds / 3600000);\n const minutes = Math.round((milliseconds % 3600000) / 60000);\n return minutes > 0 ? `${hours}h ${minutes}m` : `${hours}h`;\n}\n\n/**\n * Validate file type against accepted types\n */\nexport function validateFileType(file: File, accept: string[]): boolean {\n if (!accept || accept.length === 0) return true;\n\n return accept.some((acceptType) => {\n if (acceptType.startsWith(\".\")) {\n // File extension check\n return file.name.toLowerCase().endsWith(acceptType.toLowerCase());\n }\n\n // MIME type check (supports wildcards like image/*)\n if (acceptType.endsWith(\"/*\")) {\n const baseType = acceptType.slice(0, -2);\n return file.type.startsWith(baseType);\n }\n\n return file.type === acceptType;\n });\n}\n\n/**\n * Generate a unique ID for upload items\n */\nexport function generateUploadId(): string {\n return `upload-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n}\n\n/**\n * Get file extension from filename\n */\nexport function getFileExtension(filename: string): string {\n const lastDot = filename.lastIndexOf(\".\");\n return lastDot !== -1 ? filename.substring(lastDot + 1).toLowerCase() : \"\";\n}\n\n/**\n * Check if a file is an image\n */\nexport function isImageFile(file: File): boolean {\n return file.type.startsWith(\"image/\");\n}\n\n/**\n * Check if a file is a video\n */\nexport function isVideoFile(file: File): boolean {\n return file.type.startsWith(\"video/\");\n}\n\n/**\n * Check if a file is an audio file\n */\nexport function isAudioFile(file: File): boolean {\n return file.type.startsWith(\"audio/\");\n}\n\n/**\n * Check if a file is a document\n */\nexport function isDocumentFile(file: File): boolean {\n const documentTypes = [\n \"application/pdf\",\n \"application/msword\",\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n \"application/vnd.ms-excel\",\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n \"application/vnd.ms-powerpoint\",\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\n \"text/plain\",\n \"text/csv\",\n \"application/rtf\",\n ];\n\n return documentTypes.includes(file.type);\n}\n\n/**\n * Create a preview URL for a file (if supported)\n */\nexport function createFilePreview(file: File): string | null {\n if (isImageFile(file) || isVideoFile(file) || isAudioFile(file)) {\n return URL.createObjectURL(file);\n }\n return null;\n}\n\n/**\n * Clean up a preview URL created with createFilePreview\n */\nexport function revokeFilePreview(previewUrl: string): void {\n URL.revokeObjectURL(previewUrl);\n}\n\n/**\n * Calculate progress percentage\n */\nexport function calculateProgress(current: number, total: number): number {\n if (total === 0) return 0;\n return Math.min(100, Math.max(0, Math.round((current / total) * 100)));\n}\n\n/**\n * Check if a value is a browser file\n */\nexport * from \"./is-browser-file\";\n"],"mappings":"oDAOA,SAAgB,EAAe,EAAuB,CACpD,GAAI,IAAU,EAAG,MAAO,UACxB,IAAM,EAAI,KACJ,EAAQ,CAAC,QAAS,KAAM,KAAM,KAAM,KAAK,CACzC,EAAI,KAAK,MAAM,KAAK,IAAI,EAAM,CAAG,KAAK,IAAI,EAAE,CAAC,CACnD,MAAO,GAAG,OAAO,YAAY,EAAQ,GAAK,GAAG,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAM,KAMpE,SAAgB,EAAY,EAAgC,CAC1D,GAAI,IAAmB,EAAG,MAAO,QACjC,IAAM,EAAI,KACJ,EAAQ,CAAC,MAAO,OAAQ,OAAQ,OAAO,CACvC,EAAI,KAAK,MAAM,KAAK,IAAI,EAAe,CAAG,KAAK,IAAI,EAAE,CAAC,CAC5D,MAAO,GAAG,OAAO,YAAY,EAAiB,GAAK,GAAG,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAM,KAM7E,SAAgB,EAAe,EAA8B,CAC3D,GAAI,EAAe,IACjB,MAAO,GAAG,KAAK,MAAM,EAAa,CAAC,IAGrC,GAAI,EAAe,IACjB,MAAO,GAAG,KAAK,MAAM,EAAe,IAAK,CAAC,GAG5C,GAAI,EAAe,KAAS,CAC1B,IAAM,EAAU,KAAK,MAAM,EAAe,IAAM,CAC1C,EAAU,KAAK,MAAO,EAAe,IAAS,IAAK,CACzD,OAAO,EAAU,EAAI,GAAG,EAAQ,IAAI,EAAQ,GAAK,GAAG,EAAQ,GAG9D,IAAM,EAAQ,KAAK,MAAM,EAAe,KAAQ,CAC1C,EAAU,KAAK,MAAO,EAAe,KAAW,IAAM,CAC5D,OAAO,EAAU,EAAI,GAAG,EAAM,IAAI,EAAQ,GAAK,GAAG,EAAM,GAM1D,SAAgB,EAAiB,EAAY,EAA2B,CAGtE,MAFI,CAAC,GAAU,EAAO,SAAW,EAAU,GAEpC,EAAO,KAAM,GAAe,CACjC,GAAI,EAAW,WAAW,IAAI,CAE5B,OAAO,EAAK,KAAK,aAAa,CAAC,SAAS,EAAW,aAAa,CAAC,CAInE,GAAI,EAAW,SAAS,KAAK,CAAE,CAC7B,IAAM,EAAW,EAAW,MAAM,EAAG,GAAG,CACxC,OAAO,EAAK,KAAK,WAAW,EAAS,CAGvC,OAAO,EAAK,OAAS,GACrB,CAMJ,SAAgB,GAA2B,CACzC,MAAO,UAAU,KAAK,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,OAAO,EAAG,EAAE,GAMxE,SAAgB,EAAiB,EAA0B,CACzD,IAAM,EAAU,EAAS,YAAY,IAAI,CACzC,OAAO,IAAY,GAAqD,GAAhD,EAAS,UAAU,EAAU,EAAE,CAAC,aAAa,CAMvE,SAAgB,EAAY,EAAqB,CAC/C,OAAO,EAAK,KAAK,WAAW,SAAS,CAMvC,SAAgB,EAAY,EAAqB,CAC/C,OAAO,EAAK,KAAK,WAAW,SAAS,CAMvC,SAAgB,EAAY,EAAqB,CAC/C,OAAO,EAAK,KAAK,WAAW,SAAS,CAMvC,SAAgB,EAAe,EAAqB,CAclD,MAbsB,CACpB,kBACA,qBACA,0EACA,2BACA,oEACA,gCACA,4EACA,aACA,WACA,kBACD,CAEoB,SAAS,EAAK,KAAK,CAM1C,SAAgB,EAAkB,EAA2B,CAI3D,OAHI,EAAY,EAAK,EAAI,EAAY,EAAK,EAAI,EAAY,EAAK,CACtD,IAAI,gBAAgB,EAAK,CAE3B,KAMT,SAAgB,EAAkB,EAA0B,CAC1D,IAAI,gBAAgB,EAAW,CAMjC,SAAgB,EAAkB,EAAiB,EAAuB,CAExE,OADI,IAAU,EAAU,EACjB,KAAK,IAAI,IAAK,KAAK,IAAI,EAAG,KAAK,MAAO,EAAU,EAAS,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/utils/is-browser-file.ts","../../src/utils/index.ts"],"sourcesContent":["export const isBrowserFile = (value: unknown): value is File =>\n typeof File !== \"undefined\" && value instanceof File;\n","/**\n * Utility functions for the Vue upload client\n */\n\n/**\n * Format file size in human-readable format\n */\nexport function formatFileSize(bytes: number): string {\n if (bytes === 0) return \"0 Bytes\";\n const k = 1024;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return `${Number.parseFloat((bytes / k ** i).toFixed(2))} ${sizes[i]}`;\n}\n\n/**\n * Format upload speed in human-readable format\n */\nexport function formatSpeed(bytesPerSecond: number): string {\n if (bytesPerSecond === 0) return \"0 B/s\";\n const k = 1024;\n const sizes = [\"B/s\", \"KB/s\", \"MB/s\", \"GB/s\"];\n const i = Math.floor(Math.log(bytesPerSecond) / Math.log(k));\n return `${Number.parseFloat((bytesPerSecond / k ** i).toFixed(1))} ${sizes[i]}`;\n}\n\n/**\n * Format duration in human-readable format\n */\nexport function formatDuration(milliseconds: number): string {\n if (milliseconds < 1000) {\n return `${Math.round(milliseconds)}ms`;\n }\n\n if (milliseconds < 60000) {\n return `${Math.round(milliseconds / 1000)}s`;\n }\n\n if (milliseconds < 3600000) {\n const minutes = Math.floor(milliseconds / 60000);\n const seconds = Math.round((milliseconds % 60000) / 1000);\n return seconds > 0 ? `${minutes}m ${seconds}s` : `${minutes}m`;\n }\n\n const hours = Math.floor(milliseconds / 3600000);\n const minutes = Math.round((milliseconds % 3600000) / 60000);\n return minutes > 0 ? `${hours}h ${minutes}m` : `${hours}h`;\n}\n\n/**\n * Validate file type against accepted types\n */\nexport function validateFileType(file: File, accept: string[]): boolean {\n if (!accept || accept.length === 0) return true;\n\n return accept.some((acceptType) => {\n if (acceptType.startsWith(\".\")) {\n // File extension check\n return file.name.toLowerCase().endsWith(acceptType.toLowerCase());\n }\n\n // MIME type check (supports wildcards like image/*)\n if (acceptType.endsWith(\"/*\")) {\n const baseType = acceptType.slice(0, -2);\n return file.type.startsWith(baseType);\n }\n\n return file.type === acceptType;\n });\n}\n\n/**\n * Generate a unique ID for upload items\n */\nexport function generateUploadId(): string {\n return `upload-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n}\n\n/**\n * Get file extension from filename\n */\nexport function getFileExtension(filename: string): string {\n const lastDot = filename.lastIndexOf(\".\");\n return lastDot !== -1 ? filename.substring(lastDot + 1).toLowerCase() : \"\";\n}\n\n/**\n * Check if a file is an image\n */\nexport function isImageFile(file: File): boolean {\n return file.type.startsWith(\"image/\");\n}\n\n/**\n * Check if a file is a video\n */\nexport function isVideoFile(file: File): boolean {\n return file.type.startsWith(\"video/\");\n}\n\n/**\n * Check if a file is an audio file\n */\nexport function isAudioFile(file: File): boolean {\n return file.type.startsWith(\"audio/\");\n}\n\n/**\n * Check if a file is a document\n */\nexport function isDocumentFile(file: File): boolean {\n const documentTypes = [\n \"application/pdf\",\n \"application/msword\",\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n \"application/vnd.ms-excel\",\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n \"application/vnd.ms-powerpoint\",\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\n \"text/plain\",\n \"text/csv\",\n \"application/rtf\",\n ];\n\n return documentTypes.includes(file.type);\n}\n\n/**\n * Create a preview URL for a file (if supported)\n */\nexport function createFilePreview(file: File): string | null {\n if (isImageFile(file) || isVideoFile(file) || isAudioFile(file)) {\n return URL.createObjectURL(file);\n }\n return null;\n}\n\n/**\n * Clean up a preview URL created with createFilePreview\n */\nexport function revokeFilePreview(previewUrl: string): void {\n URL.revokeObjectURL(previewUrl);\n}\n\n/**\n * Calculate progress percentage\n */\nexport function calculateProgress(current: number, total: number): number {\n if (total === 0) return 0;\n return Math.min(100, Math.max(0, Math.round((current / total) * 100)));\n}\n\n/**\n * Check if a value is a browser file\n */\nexport * from \"./is-browser-file\";\n"],"mappings":"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"}