@unchainedshop/file-upload 2.5.12 → 2.6.1

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.
@@ -1,2 +1,19 @@
1
- import { IFileAdapter } from '@unchainedshop/types/files.js';
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { IBaseAdapter } from '@unchainedshop/types/common.js';
3
+ import { UnchainedCore } from '@unchainedshop/types/core.js';
4
+ import { File, UploadFileData } from '@unchainedshop/types/files.js';
5
+ import { Readable } from 'stream';
6
+ export interface IFileAdapter extends IBaseAdapter {
7
+ createSignedURL: (directoryName: string, fileName: string, unchainedAPI: UnchainedCore) => Promise<(UploadFileData & {
8
+ putURL: string;
9
+ }) | null>;
10
+ removeFiles: (files: Array<File>, unchainedContext: UnchainedCore) => Promise<void>;
11
+ uploadFileFromStream: (directoryName: string, rawFile: any, unchainedAPI: UnchainedCore) => Promise<UploadFileData | null>;
12
+ uploadFileFromURL: (directoryName: string, fileInput: {
13
+ fileLink: string;
14
+ fileName: string;
15
+ headers?: Record<string, unknown>;
16
+ }, unchainedAPI: UnchainedCore) => Promise<UploadFileData | null>;
17
+ createDownloadStream: (file: File, unchainedAPI: UnchainedCore) => Promise<Readable>;
18
+ }
2
19
  export declare const FileAdapter: Omit<IFileAdapter, 'key' | 'label' | 'version'>;
@@ -15,6 +15,11 @@ export const FileAdapter = {
15
15
  resolve(null);
16
16
  });
17
17
  },
18
+ createDownloadStream() {
19
+ return new Promise((resolve) => {
20
+ resolve(null);
21
+ });
22
+ },
18
23
  uploadFileFromURL() {
19
24
  return new Promise((resolve) => {
20
25
  resolve(null);
@@ -1 +1 @@
1
- {"version":3,"file":"FileAdapter.js","sourceRoot":"","sources":["../../src/director/FileAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,MAAM,WAAW,GAAoD;IAC1E,eAAe;QACb,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IACD,oBAAoB;QAClB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,iBAAiB;QACf,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,OAAe,EAAE,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE;QAC9D,OAAO,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"FileAdapter.js","sourceRoot":"","sources":["../../src/director/FileAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAyBtD,MAAM,CAAC,MAAM,WAAW,GAAoD;IAC1E,eAAe;QACb,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IACD,oBAAoB;QAClB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,oBAAoB;QAClB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,iBAAiB;QACf,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,OAAe,EAAE,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE;QAC9D,OAAO,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF,CAAC"}
@@ -1,2 +1,14 @@
1
- import { IFileDirector } from '@unchainedshop/types/files.js';
2
- export declare const FileDirector: IFileDirector;
1
+ import { UnchainedCore } from '@unchainedshop/types/core.js';
2
+ import { File } from '@unchainedshop/types/files.js';
3
+ import { IFileAdapter } from './FileAdapter.js';
4
+ export type UploadFileCallback = (file: File, unchainedAPI: UnchainedCore) => Promise<void>;
5
+ export declare const FileDirector: {
6
+ registerFileUploadCallback(directoryName: string, fn: UploadFileCallback): void;
7
+ getFileUploadCallback(directoryName: string): UploadFileCallback;
8
+ getAdapters: (options?: {
9
+ adapterFilter?: (adapter: IFileAdapter) => boolean;
10
+ }) => IFileAdapter[];
11
+ getAdapter: (key: string) => IFileAdapter;
12
+ registerAdapter: (A: IFileAdapter) => void;
13
+ unregisterAdapter: (key: string) => boolean;
14
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"FileDirector.js","sourceRoot":"","sources":["../../src/director/FileDirector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA8B,CAAC;AAEjE,MAAM,YAAY,GAAG,YAAY,CAAe,cAAc,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,YAAY,GAAkB;IACzC,GAAG,YAAY;IAEf,0BAA0B,CAAC,aAAa,EAAE,EAAE;QAC1C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAC3C,kBAAkB,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,qBAAqB,CAAC,aAAa;QACjC,OAAO,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"FileDirector.js","sourceRoot":"","sources":["../../src/director/FileDirector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAOpD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA8B,CAAC;AAEjE,MAAM,YAAY,GAAG,YAAY,CAAe,cAAc,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,GAAG,YAAY;IAEf,0BAA0B,CAAC,aAAqB,EAAE,EAAsB;QACtE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAC3C,kBAAkB,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,qBAAqB,CAAC,aAAqB;QACzC,OAAO,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;CACF,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import buildHashedFilename from './build-hashed-filename.js';
2
2
  import resolveExpirationDate from './put-expiration.js';
3
3
  export { FileDirector } from './director/FileDirector.js';
4
- export { FileAdapter } from './director/FileAdapter.js';
4
+ export { FileAdapter, IFileAdapter } from './director/FileAdapter.js';
5
5
  export { buildHashedFilename, resolveExpirationDate };
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload-index.js","sourceRoot":"","sources":["../src/file-upload-index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,4BAA4B,CAAC;AAC7D,OAAO,qBAAqB,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"file-upload-index.js","sourceRoot":"","sources":["../src/file-upload-index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,4BAA4B,CAAC;AAC7D,OAAO,qBAAqB,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAgB,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/file-upload",
3
- "version": "2.5.12",
3
+ "version": "2.6.1",
4
4
  "main": "lib/file-upload-index.js",
5
5
  "exports": {
6
6
  ".": "./lib/file-upload-index.js",
@@ -31,16 +31,16 @@
31
31
  },
32
32
  "homepage": "https://github.com/unchainedshop/unchained#readme",
33
33
  "dependencies": {
34
- "@unchainedshop/logger": "^2.5.12",
35
- "@unchainedshop/utils": "^2.5.12",
34
+ "@unchainedshop/logger": "^2.6.1",
35
+ "@unchainedshop/utils": "^2.6.1",
36
36
  "base-x": "4.0.0",
37
37
  "mime-types": "^2.1.35"
38
38
  },
39
39
  "devDependencies": {
40
- "@types/node": "^20.10.1",
41
- "@unchainedshop/types": "^2.5.12",
40
+ "@types/node": "^20.11.10",
41
+ "@unchainedshop/types": "^2.6.1",
42
42
  "jest": "^29.7.0",
43
- "ts-jest": "^29.1.1",
44
- "typescript": "^5.3.2"
43
+ "ts-jest": "^29.1.2",
44
+ "typescript": "^5.3.3"
45
45
  }
46
46
  }
@@ -1,6 +1,28 @@
1
- import { IFileAdapter } from '@unchainedshop/types/files.js';
2
1
  import { log, LogLevel } from '@unchainedshop/logger';
2
+ import { IBaseAdapter } from '@unchainedshop/types/common.js';
3
+ import { UnchainedCore } from '@unchainedshop/types/core.js';
4
+ import { File, UploadFileData } from '@unchainedshop/types/files.js';
5
+ import { Readable } from 'stream';
3
6
 
7
+ export interface IFileAdapter extends IBaseAdapter {
8
+ createSignedURL: (
9
+ directoryName: string,
10
+ fileName: string,
11
+ unchainedAPI: UnchainedCore,
12
+ ) => Promise<(UploadFileData & { putURL: string }) | null>;
13
+ removeFiles: (files: Array<File>, unchainedContext: UnchainedCore) => Promise<void>;
14
+ uploadFileFromStream: (
15
+ directoryName: string,
16
+ rawFile: any,
17
+ unchainedAPI: UnchainedCore,
18
+ ) => Promise<UploadFileData | null>;
19
+ uploadFileFromURL: (
20
+ directoryName: string,
21
+ fileInput: { fileLink: string; fileName: string; headers?: Record<string, unknown> },
22
+ unchainedAPI: UnchainedCore,
23
+ ) => Promise<UploadFileData | null>;
24
+ createDownloadStream: (file: File, unchainedAPI: UnchainedCore) => Promise<Readable>;
25
+ }
4
26
  export const FileAdapter: Omit<IFileAdapter, 'key' | 'label' | 'version'> = {
5
27
  createSignedURL() {
6
28
  return new Promise<null>((resolve) => {
@@ -18,6 +40,11 @@ export const FileAdapter: Omit<IFileAdapter, 'key' | 'label' | 'version'> = {
18
40
  resolve(null);
19
41
  });
20
42
  },
43
+ createDownloadStream() {
44
+ return new Promise<null>((resolve) => {
45
+ resolve(null);
46
+ });
47
+ },
21
48
  uploadFileFromURL() {
22
49
  return new Promise<null>((resolve) => {
23
50
  resolve(null);
@@ -1,20 +1,24 @@
1
- import { IFileAdapter, IFileDirector, UploadFileCallback } from '@unchainedshop/types/files.js';
2
1
  import { BaseDirector } from '@unchainedshop/utils';
2
+ import { UnchainedCore } from '@unchainedshop/types/core.js';
3
+ import { File } from '@unchainedshop/types/files.js';
4
+ import { IFileAdapter } from './FileAdapter.js';
5
+
6
+ export type UploadFileCallback = (file: File, unchainedAPI: UnchainedCore) => Promise<void>;
3
7
 
4
8
  const FileUploadRegistry = new Map<string, UploadFileCallback>();
5
9
 
6
10
  const baseDirector = BaseDirector<IFileAdapter>('FileDirector');
7
11
 
8
- export const FileDirector: IFileDirector = {
12
+ export const FileDirector = {
9
13
  ...baseDirector,
10
14
 
11
- registerFileUploadCallback(directoryName, fn) {
15
+ registerFileUploadCallback(directoryName: string, fn: UploadFileCallback) {
12
16
  if (!FileUploadRegistry.has(directoryName)) {
13
17
  FileUploadRegistry.set(directoryName, fn);
14
18
  }
15
19
  },
16
20
 
17
- getFileUploadCallback(directoryName) {
21
+ getFileUploadCallback(directoryName: string): UploadFileCallback {
18
22
  return FileUploadRegistry.get(directoryName);
19
23
  },
20
24
  };
@@ -2,5 +2,5 @@ import buildHashedFilename from './build-hashed-filename.js';
2
2
  import resolveExpirationDate from './put-expiration.js';
3
3
 
4
4
  export { FileDirector } from './director/FileDirector.js';
5
- export { FileAdapter } from './director/FileAdapter.js';
5
+ export { FileAdapter, IFileAdapter } from './director/FileAdapter.js';
6
6
  export { buildHashedFilename, resolveExpirationDate };