@scaleflex/uploader 0.2.7 → 0.2.8

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 (110) hide show
  1. package/.claude/skills/integrate-uploader/SKILL.md +4 -3
  2. package/CHANGELOG.md +16 -1
  3. package/dist/components/actions-bar.d.ts +2 -0
  4. package/dist/components/actions-bar.d.ts.map +1 -1
  5. package/dist/components/file-item.d.ts +6 -0
  6. package/dist/components/file-item.d.ts.map +1 -1
  7. package/dist/components/toast.d.ts +18 -0
  8. package/dist/components/toast.d.ts.map +1 -0
  9. package/dist/define.cjs +1 -1
  10. package/dist/define.js +1 -1
  11. package/dist/engine/index.d.ts +1 -0
  12. package/dist/engine/index.d.ts.map +1 -1
  13. package/dist/engine/tus-upload.d.ts +52 -0
  14. package/dist/engine/tus-upload.d.ts.map +1 -0
  15. package/dist/engine/upload-engine.d.ts +14 -0
  16. package/dist/engine/upload-engine.d.ts.map +1 -1
  17. package/dist/engine/xhr-upload.d.ts.map +1 -1
  18. package/dist/events/public-events.d.ts +2 -0
  19. package/dist/events/public-events.d.ts.map +1 -1
  20. package/dist/index-D7hE18PK.js +3541 -0
  21. package/dist/index-DuX47Oy3.cjs +1625 -0
  22. package/dist/index.cjs +1 -1
  23. package/dist/index.d.ts +3 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/metadata/bulk/bulk-meta-diff-view.d.ts +17 -0
  27. package/dist/metadata/bulk/bulk-meta-diff-view.d.ts.map +1 -0
  28. package/dist/metadata/bulk/bulk-meta-op-bar.d.ts +38 -0
  29. package/dist/metadata/bulk/bulk-meta-op-bar.d.ts.map +1 -0
  30. package/dist/metadata/bulk/bulk-meta-row.d.ts +35 -0
  31. package/dist/metadata/bulk/bulk-meta-row.d.ts.map +1 -0
  32. package/dist/metadata/bulk/bulk-meta-sidebar.d.ts +20 -0
  33. package/dist/metadata/bulk/bulk-meta-sidebar.d.ts.map +1 -0
  34. package/dist/metadata/bulk/bulk-meta-table.d.ts +20 -0
  35. package/dist/metadata/bulk/bulk-meta-table.d.ts.map +1 -0
  36. package/dist/metadata/bulk/bulk-metadata-modal.d.ts +46 -0
  37. package/dist/metadata/bulk/bulk-metadata-modal.d.ts.map +1 -0
  38. package/dist/metadata/bulk/bulk-metadata.styles.d.ts +7 -0
  39. package/dist/metadata/bulk/bulk-metadata.styles.d.ts.map +1 -0
  40. package/dist/metadata/bulk/bulk-operations.d.ts +14 -0
  41. package/dist/metadata/bulk/bulk-operations.d.ts.map +1 -0
  42. package/dist/metadata/bulk/diff-utils.d.ts +19 -0
  43. package/dist/metadata/bulk/diff-utils.d.ts.map +1 -0
  44. package/dist/metadata/bulk/index.d.ts +3 -0
  45. package/dist/metadata/bulk/index.d.ts.map +1 -0
  46. package/dist/metadata/field-type-icons.d.ts +4 -0
  47. package/dist/metadata/field-type-icons.d.ts.map +1 -0
  48. package/dist/metadata/fields/boolean-field.d.ts +17 -0
  49. package/dist/metadata/fields/boolean-field.d.ts.map +1 -0
  50. package/dist/metadata/fields/date-field.d.ts +10 -0
  51. package/dist/metadata/fields/date-field.d.ts.map +1 -0
  52. package/dist/metadata/fields/field-base.d.ts +14 -0
  53. package/dist/metadata/fields/field-base.d.ts.map +1 -0
  54. package/dist/metadata/fields/geo-point-field.d.ts +10 -0
  55. package/dist/metadata/fields/geo-point-field.d.ts.map +1 -0
  56. package/dist/metadata/fields/multi-select-field.d.ts +23 -0
  57. package/dist/metadata/fields/multi-select-field.d.ts.map +1 -0
  58. package/dist/metadata/fields/number-field.d.ts +10 -0
  59. package/dist/metadata/fields/number-field.d.ts.map +1 -0
  60. package/dist/metadata/fields/select-field.d.ts +21 -0
  61. package/dist/metadata/fields/select-field.d.ts.map +1 -0
  62. package/dist/metadata/fields/tags-field.d.ts +29 -0
  63. package/dist/metadata/fields/tags-field.d.ts.map +1 -0
  64. package/dist/metadata/fields/text-field.d.ts +9 -0
  65. package/dist/metadata/fields/text-field.d.ts.map +1 -0
  66. package/dist/metadata/fields/textarea-field.d.ts +11 -0
  67. package/dist/metadata/fields/textarea-field.d.ts.map +1 -0
  68. package/dist/metadata/index.d.ts +9 -0
  69. package/dist/metadata/index.d.ts.map +1 -0
  70. package/dist/metadata/metadata-field-edit.d.ts +16 -0
  71. package/dist/metadata/metadata-field-edit.d.ts.map +1 -0
  72. package/dist/metadata/metadata-field-view.d.ts +10 -0
  73. package/dist/metadata/metadata-field-view.d.ts.map +1 -0
  74. package/dist/metadata/metadata-field.d.ts +22 -0
  75. package/dist/metadata/metadata-field.d.ts.map +1 -0
  76. package/dist/metadata/metadata-form.d.ts +15 -0
  77. package/dist/metadata/metadata-form.d.ts.map +1 -0
  78. package/dist/metadata/metadata-panel.d.ts +37 -0
  79. package/dist/metadata/metadata-panel.d.ts.map +1 -0
  80. package/dist/metadata/metadata.styles.d.ts +11 -0
  81. package/dist/metadata/metadata.styles.d.ts.map +1 -0
  82. package/dist/metadata/schema/required-fields.d.ts +24 -0
  83. package/dist/metadata/schema/required-fields.d.ts.map +1 -0
  84. package/dist/metadata/schema/schema-parser.d.ts +3 -0
  85. package/dist/metadata/schema/schema-parser.d.ts.map +1 -0
  86. package/dist/metadata/schema/schema-service.d.ts +5 -0
  87. package/dist/metadata/schema/schema-service.d.ts.map +1 -0
  88. package/dist/metadata/schema/schema.types.d.ts +112 -0
  89. package/dist/metadata/schema/schema.types.d.ts.map +1 -0
  90. package/dist/metadata/schema/validation.d.ts +4 -0
  91. package/dist/metadata/schema/validation.d.ts.map +1 -0
  92. package/dist/metadata/schema/value-transforms.d.ts +5 -0
  93. package/dist/metadata/schema/value-transforms.d.ts.map +1 -0
  94. package/dist/metadata/tags/tag-utils.d.ts +6 -0
  95. package/dist/metadata/tags/tag-utils.d.ts.map +1 -0
  96. package/dist/metadata/tags/tags-autocomplete.d.ts +7 -0
  97. package/dist/metadata/tags/tags-autocomplete.d.ts.map +1 -0
  98. package/dist/{provider-browser-CXFOnoRc.cjs → provider-browser-D9DOIUnq.cjs} +1 -1
  99. package/dist/{provider-browser-B33dyOPN.js → provider-browser-qRo0t4Wt.js} +1 -1
  100. package/dist/{search-provider-browser-gtlEKi5h.js → search-provider-browser-DarbREgH.js} +1 -1
  101. package/dist/{search-provider-browser-CIRU1j5X.cjs → search-provider-browser-xP28_tO-.cjs} +1 -1
  102. package/dist/sfx-uploader-BqMTQWrE.cjs +4913 -0
  103. package/dist/{sfx-uploader-BBQinsQB.js → sfx-uploader-D9z-E7SI.js} +4209 -1230
  104. package/dist/sfx-uploader.d.ts +53 -6
  105. package/dist/sfx-uploader.d.ts.map +1 -1
  106. package/dist/store/store.types.d.ts +3 -1
  107. package/dist/store/store.types.d.ts.map +1 -1
  108. package/dist/test-utils.d.ts.map +1 -1
  109. package/package.json +3 -2
  110. package/dist/sfx-uploader-DNjq8DwX.cjs +0 -4649
@@ -196,10 +196,11 @@ uploader.config = {
196
196
 
197
197
  // Display
198
198
  mode: 'modal', // 'modal' (default) or 'inline'
199
- headerButton: 'close', // 'none' | 'close' | 'back'
199
+ header: 'close', // boolean | 'close' | 'back'
200
200
  // modal default: 'close'
201
- // inline default: 'none'
201
+ // inline default: true (no button)
202
202
  // 'back': for wizard/step flows
203
+ // false: hide header entirely
203
204
  sourcesLayout: 'pills', // 'pills' (default) or 'cards'
204
205
 
205
206
  // Upload behavior
@@ -421,7 +422,7 @@ config = {
421
422
  config = {
422
423
  auth: { /* ... */ },
423
424
  mode: 'modal',
424
- headerButton: 'back',
425
+ header: 'back',
425
426
  clearOnClose: false, // preserve files across open/close
426
427
  };
427
428
  ```
package/CHANGELOG.md CHANGED
@@ -7,13 +7,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Added
11
+
12
+ - Bulk metadata editing modal — click "Fill Metadata" to open a full-screen overlay for editing metadata across multiple files at once
13
+ - Sidebar field navigator with schema groups, active highlight, and filled/required indicators
14
+ - Operation bar with SET, ADD, DELETE operations (ADD/DELETE available for array fields: multi-select, tags)
15
+ - Per-file table with inline click-to-edit and sortable name column
16
+ - Staged changes with diff-only save (only modified fields are persisted)
17
+ - Select-all / deselect-all with three-state checkbox
18
+ - `sfx-metadata-field-edit` dispatcher component for rendering the correct field editor by type
19
+ - `sfx-metadata-field-view` read-only value display component
20
+
21
+ ### Fixed
22
+
23
+ - Dropdown fields (select, multi-select, boolean) closing immediately when clicking options inside Shadow DOM — fixed outside-click detection to use `composedPath()` instead of `e.target`
24
+
10
25
  ## [0.2.0] - 2026-03-22
11
26
 
12
27
  ### Added
13
28
 
14
29
  - Cards layout for import-from sources (`sourcesLayout: 'cards'`) — responsive grid of square cards with large icons
15
30
  - Video thumbnail generation from first frame
16
- - Configurable `headerButton` option (`close`, `back`, `none`)
31
+ - Configurable `header` option (`'close'`, `'back'`, `true`, `false`)
17
32
  - Screen capture source
18
33
  - Prev/next navigation arrows on preview image
19
34
  - Custom dropdown selects replacing native selects with preview panel scroll
@@ -7,6 +7,8 @@ export declare class SfxActionsBar extends LitElement {
7
7
  totalSize: number;
8
8
  failedCount: number;
9
9
  showFillMetadata: boolean;
10
+ uploadDisabled: boolean;
11
+ uploadDisabledReason: string;
10
12
  completedCount: number;
11
13
  uploadProgress: number;
12
14
  private _clear;
@@ -1 +1 @@
1
- {"version":3,"file":"actions-bar.d.ts","sourceRoot":"","sources":["../../src/components/actions-bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAE9D,qBAAa,aAAc,SAAQ,UAAU;IAC3C,MAAM,CAAC,MAAM,4BAoJV;IAEyB,WAAW,EAAE,iBAAiB,CAAU;IACxC,SAAS,SAAK;IACd,SAAS,SAAK;IACd,WAAW,SAAK;IACf,gBAAgB,UAAS;IAC1B,cAAc,SAAK;IACnB,cAAc,SAAK;IAE/C,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,SAAS;IAIjB,MAAM;IAkEN,OAAO,CAAC,mBAAmB;CAgC5B"}
1
+ {"version":3,"file":"actions-bar.d.ts","sourceRoot":"","sources":["../../src/components/actions-bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAE9D,qBAAa,aAAc,SAAQ,UAAU;IAC3C,MAAM,CAAC,MAAM,4BAoJV;IAEyB,WAAW,EAAE,iBAAiB,CAAU;IACxC,SAAS,SAAK;IACd,SAAS,SAAK;IACd,WAAW,SAAK;IACf,gBAAgB,UAAS;IACzB,cAAc,UAAS;IACxB,oBAAoB,SAAM;IAC1B,cAAc,SAAK;IACnB,cAAc,SAAK;IAE/C,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,SAAS;IAIjB,MAAM;IAkEN,OAAO,CAAC,mBAAmB;CAiC5B"}
@@ -3,8 +3,14 @@ import { UploadFile } from '../store/store.types';
3
3
  export declare class SfxFileItem extends LitElement {
4
4
  static styles: import('lit').CSSResult;
5
5
  file: UploadFile;
6
+ private _dims;
7
+ updated(changed: Map<string, unknown>): void;
8
+ private _emit;
6
9
  private _remove;
7
10
  private _retry;
11
+ private _pause;
12
+ private _resume;
13
+ private _rename;
8
14
  private _preview;
9
15
  render(): typeof nothing | import('lit-html').TemplateResult<1>;
10
16
  private _formatDuration;
@@ -1 +1 @@
1
- {"version":3,"file":"file-item.d.ts","sourceRoot":"","sources":["../../src/components/file-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,qBAAa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,MAAM,0BA6XX;IAE8B,IAAI,EAAG,UAAU,CAAC;IAElD,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,QAAQ;IAWhB,MAAM;IAiHN,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,eAAe;CAcxB"}
1
+ {"version":3,"file":"file-item.d.ts","sourceRoot":"","sources":["../../src/components/file-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,qBAAa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,MAAM,0BA0aX;IAE8B,IAAI,EAAG,UAAU,CAAC;IACzC,OAAO,CAAC,KAAK,CAAM;IAE5B,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAYrC,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IAEf,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,QAAQ;IAKhB,MAAM;IA8IN,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,eAAe;CAcxB"}
@@ -0,0 +1,18 @@
1
+ import { LitElement } from 'lit';
2
+ export type ToastType = 'error' | 'warning' | 'info';
3
+ /**
4
+ * Lightweight toast notification container.
5
+ * Renders stacked toasts in the bottom-right corner.
6
+ * Auto-dismisses after a configurable duration.
7
+ */
8
+ export declare class SfxToast extends LitElement {
9
+ static styles: import('lit').CSSResult;
10
+ duration: number;
11
+ private _toasts;
12
+ private _nextId;
13
+ show(message: string, type?: ToastType): void;
14
+ private _dismiss;
15
+ private _iconForType;
16
+ render(): import('lit-html').TemplateResult<1>;
17
+ }
18
+ //# sourceMappingURL=toast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../src/components/toast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AASrD;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,MAAM,0BAwFX;IAE0B,QAAQ,SAAQ;IAEnC,OAAO,CAAC,OAAO,CAAmB;IAE3C,OAAO,CAAC,OAAO,CAAK;IAEpB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,SAAmB;IAO/C,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,YAAY;IAgBpB,MAAM;CAqBP"}
package/dist/define.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";const e=require("./sfx-uploader-DNjq8DwX.cjs"),s=(f,i)=>{typeof customElements<"u"&&!customElements.get(f)&&customElements.define(f,i)};s("sfx-uploader",e.SfxUploader);s("sfx-drop-zone",e.SfxDropZone);s("sfx-import-divider",e.SfxImportDivider);s("sfx-source-pills",e.SfxSourcePills);s("sfx-file-list",e.SfxFileList);s("sfx-file-item",e.SfxFileItem);s("sfx-success-card",e.SfxSuccessCard);s("sfx-actions-bar",e.SfxActionsBar);s("sfx-url-dialog",e.SfxUrlDialog);s("sfx-camera-dialog",e.SfxCameraDialog);s("sfx-screen-cast-dialog",e.SfxScreenCastDialog);
1
+ "use strict";const e=require("./sfx-uploader-BqMTQWrE.cjs"),s=(f,i)=>{typeof customElements<"u"&&!customElements.get(f)&&customElements.define(f,i)};s("sfx-uploader",e.SfxUploader);s("sfx-drop-zone",e.SfxDropZone);s("sfx-import-divider",e.SfxImportDivider);s("sfx-source-pills",e.SfxSourcePills);s("sfx-file-list",e.SfxFileList);s("sfx-file-item",e.SfxFileItem);s("sfx-success-card",e.SfxSuccessCard);s("sfx-actions-bar",e.SfxActionsBar);s("sfx-url-dialog",e.SfxUrlDialog);s("sfx-camera-dialog",e.SfxCameraDialog);s("sfx-screen-cast-dialog",e.SfxScreenCastDialog);
package/dist/define.js CHANGED
@@ -1,4 +1,4 @@
1
- import { g as f, a as i, d as o, e as r, c as l, b as x, f as t, S as c, n as d, o as S, p as m } from "./sfx-uploader-BBQinsQB.js";
1
+ import { g as f, a as i, d as o, e as r, c as l, b as x, f as t, S as c, n as d, o as S, p as m } from "./sfx-uploader-D9z-E7SI.js";
2
2
  const s = (e, a) => {
3
3
  typeof customElements < "u" && !customElements.get(e) && customElements.define(e, a);
4
4
  };
@@ -1,2 +1,3 @@
1
1
  export { UploadEngine, type UploadEngineConfig } from './upload-engine';
2
+ export { type TusConfig } from './tus-upload';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { UploadFile, UploadResponse } from '../store/store.types';
2
+ import { AuthHeaders } from '../auth/auth.types';
3
+ export interface TusConfig {
4
+ /** Files larger than this (bytes) use tus. Default: 10 MB. Set to 0 to always use tus. */
5
+ sizeThreshold?: number;
6
+ /** Chunk size in bytes. Default: 5 MB. */
7
+ chunkSize?: number;
8
+ /**
9
+ * Override the tus endpoint.
10
+ * Default: Scaleflex Companion (`https://eu-on-24001.connector.filerobot.com/files`).
11
+ */
12
+ endpoint?: string;
13
+ /** Persist upload fingerprints for cross-session resume. Default: true. */
14
+ resumable?: boolean;
15
+ /** Number of parallel chunk uploads. Default: 1. */
16
+ parallelChunks?: number;
17
+ /** tus retry delays in ms. Default: [0, 1000, 3000, 5000]. */
18
+ retryDelays?: number[];
19
+ }
20
+ export interface TusUploadOptions {
21
+ apiBase: string;
22
+ authHeaders: AuthHeaders;
23
+ /** Returns the latest auth headers — called before each chunk request so renewed SASS keys are picked up. */
24
+ getAuthHeaders?: () => AuthHeaders;
25
+ folder: string;
26
+ tusConfig: TusConfig;
27
+ onProgress: (bytesUploaded: number, bytesTotal: number) => void;
28
+ onComplete: (response: UploadResponse) => void;
29
+ onError: (error: Error) => void;
30
+ /** Called when the tus upload is paused externally (e.g. network offline). */
31
+ onPause?: () => void;
32
+ /** Called when the tus upload is resumed externally (e.g. network back online). */
33
+ onResume?: () => void;
34
+ /** Called when the tus upload URL is assigned — allows storing it for cross-session resume. */
35
+ onUploadUrlAvailable?: (url: string) => void;
36
+ }
37
+ export interface TusUploadHandle {
38
+ abort: () => void;
39
+ pause: () => void;
40
+ resume: () => void;
41
+ isPaused: () => boolean;
42
+ }
43
+ /**
44
+ * Should this file use tus instead of regular XHR?
45
+ */
46
+ export declare function shouldUseTus(file: UploadFile, tusConfig: TusConfig | undefined): boolean;
47
+ /**
48
+ * Upload a local File via the tus resumable upload protocol.
49
+ * Returns a handle with abort/pause/resume.
50
+ */
51
+ export declare function tusUploadFile(uploadFile: UploadFile, opts: TusUploadOptions): TusUploadHandle;
52
+ //# sourceMappingURL=tus-upload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tus-upload.d.ts","sourceRoot":"","sources":["../../src/engine/tus-upload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,SAAS;IACxB,0FAA0F;IAC1F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAOD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,6GAA6G;IAC7G,cAAc,CAAC,EAAE,MAAM,WAAW,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,UAAU,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAC/C,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,+FAA+F;IAC/F,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAIxF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,gBAAgB,GACrB,eAAe,CA6NjB"}
@@ -1,14 +1,17 @@
1
1
  import { Store } from '../store/store';
2
2
  import { UploaderState } from '../store/store.types';
3
3
  import { AuthHeaders } from '../auth/auth.types';
4
+ import { TusConfig } from './tus-upload';
4
5
  export interface UploadEngineConfig {
5
6
  apiBase: string;
6
7
  authHeaders: AuthHeaders;
8
+ tusConfig?: TusConfig;
7
9
  }
8
10
  export declare class UploadEngine {
9
11
  private store;
10
12
  private config;
11
13
  private activeUploads;
14
+ private pausedUploads;
12
15
  private retryTimers;
13
16
  private unsubscribe;
14
17
  constructor(store: Store<UploaderState>, config: UploadEngineConfig);
@@ -29,6 +32,16 @@ export declare class UploadEngine {
29
32
  * Retry all failed/errored files.
30
33
  */
31
34
  retryAll(): void;
35
+ /**
36
+ * Pause a single tus upload.
37
+ * Removes from active slots so another queued file can start (v5 pattern).
38
+ */
39
+ pauseFile(fileId: string): void;
40
+ /**
41
+ * Resume a single paused tus upload.
42
+ * Re-queues through processQueue so it respects concurrency limits (v5 pattern).
43
+ */
44
+ resumeFile(fileId: string): void;
32
45
  /**
33
46
  * Cancel a single file upload.
34
47
  */
@@ -49,6 +62,7 @@ export declare class UploadEngine {
49
62
  private startUpload;
50
63
  private handleComplete;
51
64
  private handleError;
65
+ private abortPausedUpload;
52
66
  private abortUpload;
53
67
  private updateTotalProgress;
54
68
  private checkAllComplete;
@@ -1 +1 @@
1
- {"version":3,"file":"upload-engine.d.ts","sourceRoot":"","sources":["../../src/engine/upload-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAA0B,MAAM,sBAAsB,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKtD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,WAAW,CAAoD;IACvE,OAAO,CAAC,WAAW,CAA6B;gBAEpC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,kBAAkB;IAKnE;;;OAGG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,SAAS,IAAI,IAAI;IAiBjB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAc/B;;OAEG;IACH,QAAQ,IAAI,IAAI;IAgBhB;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOhC;;OAEG;IACH,SAAS,IAAI,IAAI;IAWjB;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAItD;;OAEG;IACH,OAAO,IAAI,IAAI;IAcf,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,WAAW;IAgDnB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,WAAW;IAuCnB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,gBAAgB;CAYzB"}
1
+ {"version":3,"file":"upload-engine.d.ts","sourceRoot":"","sources":["../../src/engine/upload-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAA0B,MAAM,sBAAsB,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,EAA+B,KAAK,SAAS,EAAwB,MAAM,cAAc,CAAC;AAEjG,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,aAAa,CAAwD;IAC7E,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,WAAW,CAAoD;IACvE,OAAO,CAAC,WAAW,CAA6B;gBAEpC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,kBAAkB;IAKnE;;;OAGG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,SAAS,IAAI,IAAI;IAiBjB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAc/B;;OAEG;IACH,QAAQ,IAAI,IAAI;IAgBhB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAa/B;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAkBhC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUhC;;OAEG;IACH,SAAS,IAAI,IAAI;IAYjB;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAItD;;OAEG;IACH,OAAO,IAAI,IAAI;IAiBf,OAAO,CAAC,YAAY;IAmCpB,OAAO,CAAC,WAAW;IA2EnB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,WAAW;IAuCnB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,mBAAmB;IAgC3B,OAAO,CAAC,gBAAgB;CAazB"}
@@ -1 +1 @@
1
- {"version":3,"file":"xhr-upload.d.ts","sourceRoot":"","sources":["../../src/engine/xhr-upload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,UAAU,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAC/C,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,gBAAgB,GACrB,eAAe,CAgFjB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,GAClE,eAAe,CA8DjB"}
1
+ {"version":3,"file":"xhr-upload.d.ts","sourceRoot":"","sources":["../../src/engine/xhr-upload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,UAAU,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAC/C,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,gBAAgB,GACrB,eAAe,CAkFjB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,GAClE,eAAe,CA8DjB"}
@@ -7,6 +7,8 @@ export declare const PublicEvents: {
7
7
  readonly UPLOAD_COMPLETE: "sfx-upload-complete";
8
8
  readonly UPLOAD_ERROR: "sfx-upload-error";
9
9
  readonly UPLOAD_RETRY: "sfx-upload-retry";
10
+ readonly UPLOAD_PAUSED: "sfx-upload-paused";
11
+ readonly UPLOAD_RESUMED: "sfx-upload-resumed";
10
12
  readonly ALL_COMPLETE: "sfx-all-complete";
11
13
  readonly TOTAL_PROGRESS: "sfx-total-progress";
12
14
  readonly BEFORE_UPLOAD: "sfx-before-upload";
@@ -1 +1 @@
1
- {"version":3,"file":"public-events.d.ts","sourceRoot":"","sources":["../../src/events/public-events.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;CAkBf,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,OAAO,YAAY,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"public-events.d.ts","sourceRoot":"","sources":["../../src/events/public-events.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;CAoBf,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,OAAO,YAAY,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC"}