@unchainedshop/file-upload 3.0.0-alpha6 → 3.0.0-rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/build-hashed-filename.d.ts +1 -1
- package/lib/build-hashed-filename.d.ts.map +1 -1
- package/lib/build-hashed-filename.js +4 -9
- package/lib/build-hashed-filename.js.map +1 -1
- package/lib/director/FileAdapter.d.ts +1 -0
- package/lib/director/FileAdapter.d.ts.map +1 -1
- package/lib/director/FileAdapter.js +3 -0
- package/lib/director/FileAdapter.js.map +1 -1
- package/lib/file-upload-index.d.ts +1 -2
- package/lib/file-upload-index.d.ts.map +1 -1
- package/lib/file-upload-index.js +1 -2
- package/lib/file-upload-index.js.map +1 -1
- package/package.json +9 -13
- package/src/build-hashed-filename.ts +5 -10
- package/src/director/FileAdapter.ts +4 -0
- package/src/file-upload-index.test.ts +3 -3
- package/src/file-upload-index.ts +1 -2
- package/tsconfig.json +5 -7
- package/lib/get-file-from-file-data.d.ts +0 -13
- package/lib/get-file-from-file-data.d.ts.map +0 -1
- package/lib/get-file-from-file-data.js +0 -12
- package/lib/get-file-from-file-data.js.map +0 -1
- package/src/get-file-from-file-data.ts +0 -14
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export default function buildHashedFilename(directoryName: string, fileName: string, expiryDate: Date): string
|
|
1
|
+
export default function buildHashedFilename(directoryName: string, fileName: string, expiryDate: Date): Promise<string>;
|
|
2
2
|
//# sourceMappingURL=build-hashed-filename.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-hashed-filename.d.ts","sourceRoot":"","sources":["../src/build-hashed-filename.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build-hashed-filename.d.ts","sourceRoot":"","sources":["../src/build-hashed-filename.ts"],"names":[],"mappings":"AAKA,wBAA8B,mBAAmB,CAC/C,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,IAAI,GACf,OAAO,CAAC,MAAM,CAAC,CAYjB"}
|
|
@@ -1,20 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { slugify } from '@unchainedshop/utils';
|
|
1
|
+
import { sha1, slugify } from '@unchainedshop/utils';
|
|
3
2
|
import baseX from 'base-x';
|
|
4
3
|
const b62 = baseX('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
|
|
5
|
-
export default function buildHashedFilename(directoryName, fileName, expiryDate) {
|
|
6
|
-
const hashed =
|
|
7
|
-
.createHash('md5')
|
|
8
|
-
.update(`${directoryName}${fileName}${expiryDate.getTime()}`) // ignore the year, we need
|
|
9
|
-
.digest('hex');
|
|
4
|
+
export default async function buildHashedFilename(directoryName, fileName, expiryDate) {
|
|
5
|
+
const hashed = await sha1(`${directoryName}${fileName}${expiryDate.getTime()}`);
|
|
10
6
|
const splittedFilename = fileName.split('.');
|
|
11
7
|
const ext = splittedFilename?.pop();
|
|
12
8
|
const fileNameWithoutExtension = splittedFilename.join('.') || '';
|
|
13
9
|
const slugifiedFilenameWithExtension = [slugify(fileNameWithoutExtension), ext]
|
|
14
10
|
.filter(Boolean)
|
|
15
11
|
.join('.');
|
|
16
|
-
const
|
|
17
|
-
const b62converted = b62.encode(arr);
|
|
12
|
+
const b62converted = b62.encode(hashed);
|
|
18
13
|
return `${b62converted}-${slugifiedFilenameWithExtension}`;
|
|
19
14
|
}
|
|
20
15
|
//# sourceMappingURL=build-hashed-filename.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-hashed-filename.js","sourceRoot":"","sources":["../src/build-hashed-filename.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"build-hashed-filename.js","sourceRoot":"","sources":["../src/build-hashed-filename.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,MAAM,QAAQ,CAAC;AAE3B,MAAM,GAAG,GAAG,KAAK,CAAC,gEAAgE,CAAC,CAAC;AAEpF,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,mBAAmB,CAC/C,aAAqB,EACrB,QAAgB,EAChB,UAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAEhF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,gBAAgB,EAAE,GAAG,EAAE,CAAC;IACpC,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAClE,MAAM,8BAA8B,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE,GAAG,CAAC;SAC5E,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAExC,OAAO,GAAG,YAAY,IAAI,8BAA8B,EAAE,CAAC;AAC7D,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { Readable } from 'stream';
|
|
|
2
2
|
import { IBaseAdapter } from '@unchainedshop/utils';
|
|
3
3
|
import { UploadedFile, UploadFileData } from '../types.js';
|
|
4
4
|
export interface IFileAdapter<Context = unknown> extends IBaseAdapter {
|
|
5
|
+
createDownloadURL: (file: UploadedFile, expiry?: number) => Promise<string | null>;
|
|
5
6
|
createSignedURL: (directoryName: string, fileName: string, unchainedAPI: Context) => Promise<(UploadFileData & {
|
|
6
7
|
putURL: string;
|
|
7
8
|
}) | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileAdapter.d.ts","sourceRoot":"","sources":["../../src/director/FileAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,WAAW,YAAY,CAAC,OAAO,GAAG,OAAO,CAAE,SAAQ,YAAY;IACnE,eAAe,EAAE,CACf,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,OAAO,KAClB,OAAO,CAAC,CAAC,cAAc,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3D,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,gBAAgB,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtF,oBAAoB,EAAE,CACpB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,GAAG,EACZ,YAAY,EAAE,OAAO,KAClB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACpC,iBAAiB,EAAE,CACjB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,EACD,YAAY,EAAE,OAAO,KAClB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACpC,oBAAoB,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACxF;AACD,eAAO,MAAM,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"FileAdapter.d.ts","sourceRoot":"","sources":["../../src/director/FileAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,WAAW,YAAY,CAAC,OAAO,GAAG,OAAO,CAAE,SAAQ,YAAY;IACnE,iBAAiB,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACnF,eAAe,EAAE,CACf,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,OAAO,KAClB,OAAO,CAAC,CAAC,cAAc,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3D,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,gBAAgB,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtF,oBAAoB,EAAE,CACpB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,GAAG,EACZ,YAAY,EAAE,OAAO,KAClB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACpC,iBAAiB,EAAE,CACjB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,EACD,YAAY,EAAE,OAAO,KAClB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACpC,oBAAoB,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACxF;AACD,eAAO,MAAM,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,CAkCvE,CAAC"}
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"FileAdapter.js","sourceRoot":"","sources":["../../src/director/FileAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AA6BtD,MAAM,CAAC,MAAM,WAAW,GAAoD;IAC1E,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,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,8 +1,7 @@
|
|
|
1
1
|
import buildHashedFilename from './build-hashed-filename.js';
|
|
2
2
|
import resolveExpirationDate from './put-expiration.js';
|
|
3
|
-
import getFileFromFileData from './get-file-from-file-data.js';
|
|
4
3
|
export { FileDirector } from './director/FileDirector.js';
|
|
5
4
|
export { FileAdapter, IFileAdapter } from './director/FileAdapter.js';
|
|
6
|
-
export { buildHashedFilename, resolveExpirationDate
|
|
5
|
+
export { buildHashedFilename, resolveExpirationDate };
|
|
7
6
|
export type * from './types.js';
|
|
8
7
|
//# sourceMappingURL=file-upload-index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-upload-index.d.ts","sourceRoot":"","sources":["../src/file-upload-index.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,4BAA4B,CAAC;AAC7D,OAAO,qBAAqB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"file-upload-index.d.ts","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,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,CAAC;AACtD,mBAAmB,YAAY,CAAC"}
|
package/lib/file-upload-index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import buildHashedFilename from './build-hashed-filename.js';
|
|
2
2
|
import resolveExpirationDate from './put-expiration.js';
|
|
3
|
-
import getFileFromFileData from './get-file-from-file-data.js';
|
|
4
3
|
export { FileDirector } from './director/FileDirector.js';
|
|
5
4
|
export { FileAdapter } from './director/FileAdapter.js';
|
|
6
|
-
export { buildHashedFilename, resolveExpirationDate
|
|
5
|
+
export { buildHashedFilename, resolveExpirationDate };
|
|
7
6
|
//# sourceMappingURL=file-upload-index.js.map
|
|
@@ -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;
|
|
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,16 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/file-upload",
|
|
3
|
-
"version": "3.0.0-
|
|
3
|
+
"version": "3.0.0-rc1",
|
|
4
4
|
"main": "lib/file-upload-index.js",
|
|
5
|
-
"exports": {
|
|
6
|
-
".": "./lib/file-upload-index.js",
|
|
7
|
-
"./*": "./lib/*"
|
|
8
|
-
},
|
|
9
5
|
"types": "lib/file-upload-index.d.ts",
|
|
10
6
|
"type": "module",
|
|
11
7
|
"scripts": {
|
|
12
|
-
"clean": "
|
|
13
|
-
"
|
|
8
|
+
"clean": "tsc -b --clean",
|
|
9
|
+
"build": "tsc -b",
|
|
10
|
+
"prepublishOnly": "npm run clean && npm run build",
|
|
14
11
|
"watch": "tsc -w",
|
|
15
12
|
"test": "NODE_OPTIONS=--experimental-vm-modules jest --detectOpenHandles --forceExit",
|
|
16
13
|
"test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch --detectOpenHandles --forceExit"
|
|
@@ -34,15 +31,14 @@
|
|
|
34
31
|
},
|
|
35
32
|
"homepage": "https://github.com/unchainedshop/unchained#readme",
|
|
36
33
|
"dependencies": {
|
|
37
|
-
"@unchainedshop/logger": "^3.0.0-
|
|
38
|
-
"@unchainedshop/utils": "^3.0.0-
|
|
39
|
-
"base-x": "^5.0.0"
|
|
40
|
-
"mime-types": "^2.1.35"
|
|
34
|
+
"@unchainedshop/logger": "^3.0.0-rc1",
|
|
35
|
+
"@unchainedshop/utils": "^3.0.0-rc1",
|
|
36
|
+
"base-x": "^5.0.0"
|
|
41
37
|
},
|
|
42
38
|
"devDependencies": {
|
|
43
|
-
"@types/node": "^22.
|
|
39
|
+
"@types/node": "^22.10.2",
|
|
44
40
|
"jest": "^29.7.0",
|
|
45
41
|
"ts-jest": "^29.2.5",
|
|
46
|
-
"typescript": "^5.
|
|
42
|
+
"typescript": "^5.7.2"
|
|
47
43
|
}
|
|
48
44
|
}
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { slugify } from '@unchainedshop/utils';
|
|
1
|
+
import { sha1, slugify } from '@unchainedshop/utils';
|
|
3
2
|
import baseX from 'base-x';
|
|
4
3
|
|
|
5
4
|
const b62 = baseX('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
|
|
6
5
|
|
|
7
|
-
export default function buildHashedFilename(
|
|
6
|
+
export default async function buildHashedFilename(
|
|
8
7
|
directoryName: string,
|
|
9
8
|
fileName: string,
|
|
10
9
|
expiryDate: Date,
|
|
11
|
-
): string {
|
|
12
|
-
const hashed =
|
|
13
|
-
.createHash('md5')
|
|
14
|
-
.update(`${directoryName}${fileName}${expiryDate.getTime()}`) // ignore the year, we need
|
|
15
|
-
.digest('hex');
|
|
10
|
+
): Promise<string> {
|
|
11
|
+
const hashed = await sha1(`${directoryName}${fileName}${expiryDate.getTime()}`);
|
|
16
12
|
|
|
17
13
|
const splittedFilename = fileName.split('.');
|
|
18
14
|
const ext = splittedFilename?.pop();
|
|
@@ -20,8 +16,7 @@ export default function buildHashedFilename(
|
|
|
20
16
|
const slugifiedFilenameWithExtension = [slugify(fileNameWithoutExtension), ext]
|
|
21
17
|
.filter(Boolean)
|
|
22
18
|
.join('.');
|
|
23
|
-
const
|
|
24
|
-
const b62converted = b62.encode(arr);
|
|
19
|
+
const b62converted = b62.encode(hashed);
|
|
25
20
|
|
|
26
21
|
return `${b62converted}-${slugifiedFilenameWithExtension}`;
|
|
27
22
|
}
|
|
@@ -4,6 +4,7 @@ import { IBaseAdapter } from '@unchainedshop/utils';
|
|
|
4
4
|
import { UploadedFile, UploadFileData } from '../types.js';
|
|
5
5
|
|
|
6
6
|
export interface IFileAdapter<Context = unknown> extends IBaseAdapter {
|
|
7
|
+
createDownloadURL: (file: UploadedFile, expiry?: number) => Promise<string | null>;
|
|
7
8
|
createSignedURL: (
|
|
8
9
|
directoryName: string,
|
|
9
10
|
fileName: string,
|
|
@@ -28,6 +29,9 @@ export interface IFileAdapter<Context = unknown> extends IBaseAdapter {
|
|
|
28
29
|
createDownloadStream: (file: UploadedFile, unchainedAPI: Context) => Promise<Readable>;
|
|
29
30
|
}
|
|
30
31
|
export const FileAdapter: Omit<IFileAdapter, 'key' | 'label' | 'version'> = {
|
|
32
|
+
async createDownloadURL() {
|
|
33
|
+
throw new Error('Method not implemented');
|
|
34
|
+
},
|
|
31
35
|
createSignedURL() {
|
|
32
36
|
return new Promise<null>((resolve) => {
|
|
33
37
|
resolve(null);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import buildHashedFilename from './build-hashed-filename.js';
|
|
2
2
|
|
|
3
3
|
describe('File Uploader', () => {
|
|
4
|
-
it('Generate unique file name', () => {
|
|
4
|
+
it('Generate unique file name', async () => {
|
|
5
5
|
expect(
|
|
6
|
-
buildHashedFilename('root', 'file1.jpg', new Date(new Date('2022-12-04T17:13:09.285Z'))),
|
|
7
|
-
).toEqual('
|
|
6
|
+
await buildHashedFilename('root', 'file1.jpg', new Date(new Date('2022-12-04T17:13:09.285Z'))),
|
|
7
|
+
).toEqual('NFJAbVaH6tRDuGDn4IPZYqh0AP-file1.jpg');
|
|
8
8
|
});
|
|
9
9
|
});
|
package/src/file-upload-index.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import buildHashedFilename from './build-hashed-filename.js';
|
|
2
2
|
import resolveExpirationDate from './put-expiration.js';
|
|
3
|
-
import getFileFromFileData from './get-file-from-file-data.js';
|
|
4
3
|
|
|
5
4
|
export { FileDirector } from './director/FileDirector.js';
|
|
6
5
|
export { FileAdapter, IFileAdapter } from './director/FileAdapter.js';
|
|
7
|
-
export { buildHashedFilename, resolveExpirationDate
|
|
6
|
+
export { buildHashedFilename, resolveExpirationDate };
|
|
8
7
|
export type * from './types.js';
|
package/tsconfig.json
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"extends": "../shared/base.tsconfig.json",
|
|
3
3
|
"compilerOptions": {
|
|
4
|
-
"
|
|
5
|
-
"
|
|
4
|
+
"declarationDir": "./lib",
|
|
5
|
+
"rootDir": "./src",
|
|
6
|
+
"outDir": "./lib"
|
|
6
7
|
},
|
|
7
|
-
"exclude": ["**/*.test.ts", "**/*.test.js", "tests"]
|
|
8
|
-
|
|
9
|
-
"./src"
|
|
10
|
-
]
|
|
11
|
-
}
|
|
8
|
+
"exclude": ["**/*.test.ts", "**/*.test.js", "tests", "lib"]
|
|
9
|
+
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { UploadFileData } from './types.js';
|
|
2
|
-
export declare const getFileFromFileData: (fileData: UploadFileData, meta: any) => {
|
|
3
|
-
_id: string;
|
|
4
|
-
path: string;
|
|
5
|
-
expires: Date;
|
|
6
|
-
name: string;
|
|
7
|
-
size: number;
|
|
8
|
-
type: string;
|
|
9
|
-
url: string;
|
|
10
|
-
meta: any;
|
|
11
|
-
};
|
|
12
|
-
export default getFileFromFileData;
|
|
13
|
-
//# sourceMappingURL=get-file-from-file-data.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-file-from-file-data.d.ts","sourceRoot":"","sources":["../src/get-file-from-file-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,mBAAmB,aAAc,cAAc,QAAQ,GAAG;;;;;;;;;CASrE,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export const getFileFromFileData = (fileData, meta) => ({
|
|
2
|
-
_id: fileData._id,
|
|
3
|
-
path: fileData.directoryName,
|
|
4
|
-
expires: fileData.expiryDate,
|
|
5
|
-
name: fileData.fileName,
|
|
6
|
-
size: fileData.size,
|
|
7
|
-
type: fileData.type || 'application/octet-stream',
|
|
8
|
-
url: fileData.url,
|
|
9
|
-
meta,
|
|
10
|
-
});
|
|
11
|
-
export default getFileFromFileData;
|
|
12
|
-
//# sourceMappingURL=get-file-from-file-data.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-file-from-file-data.js","sourceRoot":"","sources":["../src/get-file-from-file-data.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAwB,EAAE,IAAS,EAAE,EAAE,CAAC,CAAC;IAC3E,GAAG,EAAE,QAAQ,CAAC,GAAG;IACjB,IAAI,EAAE,QAAQ,CAAC,aAAa;IAC5B,OAAO,EAAE,QAAQ,CAAC,UAAU;IAC5B,IAAI,EAAE,QAAQ,CAAC,QAAQ;IACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;IACnB,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,0BAA0B;IACjD,GAAG,EAAE,QAAQ,CAAC,GAAG;IACjB,IAAI;CACL,CAAC,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { UploadFileData } from './types.js';
|
|
2
|
-
|
|
3
|
-
export const getFileFromFileData = (fileData: UploadFileData, meta: any) => ({
|
|
4
|
-
_id: fileData._id,
|
|
5
|
-
path: fileData.directoryName,
|
|
6
|
-
expires: fileData.expiryDate,
|
|
7
|
-
name: fileData.fileName,
|
|
8
|
-
size: fileData.size,
|
|
9
|
-
type: fileData.type || 'application/octet-stream',
|
|
10
|
-
url: fileData.url,
|
|
11
|
-
meta,
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
export default getFileFromFileData;
|