@unchainedshop/core-files 3.0.0-alpha1 → 3.0.0-alpha3
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/db/MediaObjectsCollection.d.ts +2 -1
- package/lib/db/MediaObjectsCollection.d.ts.map +1 -0
- package/lib/files-index.d.ts +5 -3
- package/lib/files-index.d.ts.map +1 -0
- package/lib/files-index.js +4 -3
- package/lib/files-index.js.map +1 -1
- package/lib/files-settings.d.ts +8 -1
- package/lib/files-settings.d.ts.map +1 -0
- package/lib/files-settings.js.map +1 -1
- package/lib/module/configureFilesModule.d.ts +17 -3
- package/lib/module/configureFilesModule.d.ts.map +1 -0
- package/lib/module/configureFilesModule.js +19 -22
- package/lib/module/configureFilesModule.js.map +1 -1
- package/lib/service/createDownloadStreamService.d.ts +6 -1
- package/lib/service/createDownloadStreamService.d.ts.map +1 -0
- package/lib/service/createDownloadStreamService.js.map +1 -1
- package/lib/service/createSignedURLService.d.ts +8 -1
- package/lib/service/createSignedURLService.d.ts.map +1 -0
- package/lib/service/createSignedURLService.js.map +1 -1
- package/lib/service/fileServices.d.ts +15 -1
- package/lib/service/fileServices.d.ts.map +1 -0
- package/lib/service/fileServices.js +2 -2
- package/lib/service/fileServices.js.map +1 -1
- package/lib/service/linkFileService.d.ts +8 -1
- package/lib/service/linkFileService.d.ts.map +1 -0
- package/lib/service/linkFileService.js.map +1 -1
- package/lib/service/removeFilesService.d.ts +5 -1
- package/lib/service/removeFilesService.d.ts.map +1 -0
- package/lib/service/removeFilesService.js.map +1 -1
- package/lib/service/uploadFileFromStreamService.d.ts +8 -1
- package/lib/service/uploadFileFromStreamService.d.ts.map +1 -0
- package/lib/service/uploadFileFromStreamService.js.map +1 -1
- package/lib/service/uploadFileFromURLService.d.ts +13 -1
- package/lib/service/uploadFileFromURLService.d.ts.map +1 -0
- package/lib/service/uploadFileFromURLService.js.map +1 -1
- package/lib/types.d.ts +26 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +2 -0
- package/lib/types.js.map +1 -0
- package/lib/utils/getFileAdapter.d.ts +1 -0
- package/lib/utils/getFileAdapter.d.ts.map +1 -0
- package/lib/utils/getFileFromFileData.d.ts +2 -1
- package/lib/utils/getFileFromFileData.d.ts.map +1 -0
- package/package.json +10 -12
- package/src/db/MediaObjectsCollection.ts +1 -1
- package/src/files-index.ts +4 -3
- package/src/files-settings.ts +8 -1
- package/src/module/configureFilesModule.ts +40 -30
- package/src/service/createDownloadStreamService.ts +9 -1
- package/src/service/createSignedURLService.ts +7 -1
- package/src/service/fileServices.ts +21 -7
- package/src/service/linkFileService.ts +7 -1
- package/src/service/removeFilesService.ts +7 -1
- package/src/service/uploadFileFromStreamService.ts +7 -1
- package/src/service/uploadFileFromURLService.ts +16 -1
- package/src/types.ts +28 -0
- package/src/utils/getFileFromFileData.ts +1 -1
- package/lib/db/MediaObjectsSchema.d.ts +0 -2
- package/lib/db/MediaObjectsSchema.js +0 -13
- package/lib/db/MediaObjectsSchema.js.map +0 -1
- package/src/db/MediaObjectsSchema.ts +0 -16
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { mongodb } from '@unchainedshop/mongodb';
|
|
2
|
-
import { File } from '
|
|
2
|
+
import { File } from '../types.js';
|
|
3
3
|
export declare const MediaObjectsCollection: (db: mongodb.Db) => Promise<mongodb.Collection<File>>;
|
|
4
|
+
//# sourceMappingURL=MediaObjectsCollection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaObjectsCollection.d.ts","sourceRoot":"","sources":["../../src/db/MediaObjectsCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,eAAO,MAAM,sBAAsB,OAAc,OAAO,CAAC,EAAE,sCAS1D,CAAC"}
|
package/lib/files-index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
1
|
+
export * from './types.js';
|
|
2
|
+
export * from './module/configureFilesModule.js';
|
|
3
|
+
export * from './service/fileServices.js';
|
|
4
|
+
export * from './files-settings.js';
|
|
5
|
+
//# sourceMappingURL=files-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files-index.d.ts","sourceRoot":"","sources":["../src/files-index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC"}
|
package/lib/files-index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
1
|
+
export * from './types.js';
|
|
2
|
+
export * from './module/configureFilesModule.js';
|
|
3
|
+
export * from './service/fileServices.js';
|
|
4
|
+
export * from './files-settings.js';
|
|
4
5
|
//# sourceMappingURL=files-index.js.map
|
package/lib/files-index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files-index.js","sourceRoot":"","sources":["../src/files-index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"files-index.js","sourceRoot":"","sources":["../src/files-index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC"}
|
package/lib/files-settings.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
export interface FilesSettingsOptions {
|
|
2
|
+
transformUrl?: (url: string, params: Record<string, any>) => string;
|
|
3
|
+
}
|
|
4
|
+
export interface FilesSettings {
|
|
5
|
+
transformUrl?: (url: string, params: Record<string, any>) => string;
|
|
6
|
+
configureSettings: (options?: FilesSettingsOptions) => void;
|
|
7
|
+
}
|
|
2
8
|
export declare const defaultTransformUrl: (url: any) => any;
|
|
3
9
|
export declare const filesSettings: FilesSettings;
|
|
10
|
+
//# sourceMappingURL=files-settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files-settings.d.ts","sourceRoot":"","sources":["../src/files-settings.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC;CACrE;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC;IACpE,iBAAiB,EAAE,CAAC,OAAO,CAAC,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC7D;AAED,eAAO,MAAM,mBAAmB,mBAAe,CAAC;AAEhD,eAAO,MAAM,aAAa,EAAE,aAK3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files-settings.js","sourceRoot":"","sources":["../src/files-settings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"files-settings.js","sourceRoot":"","sources":["../src/files-settings.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC;AAEhD,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QAC5C,aAAa,CAAC,YAAY,GAAG,YAAY,IAAI,mBAAmB,CAAC;IACnE,CAAC;CACF,CAAC"}
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
-
import { ModuleInput } from '@unchainedshop/
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { ModuleInput } from '@unchainedshop/core';
|
|
2
|
+
import { File } from '../types.js';
|
|
3
|
+
import { mongodb } from '@unchainedshop/mongodb';
|
|
4
|
+
import { FilesSettingsOptions } from '../files-settings.js';
|
|
5
|
+
export declare const configureFilesModule: ({ db, options: filesOptions, }: ModuleInput<FilesSettingsOptions>) => Promise<{
|
|
6
|
+
getUrl: (file: File, params: Record<string, any>) => string | null;
|
|
7
|
+
findFile: ({ fileId }: {
|
|
8
|
+
fileId?: string;
|
|
9
|
+
}, options?: mongodb.FindOptions<File>) => Promise<File>;
|
|
10
|
+
findFiles: (selector: mongodb.Filter<File>, options?: mongodb.FindOptions<File>) => Promise<Array<File>>;
|
|
11
|
+
deleteMany: (fileIds: Array<string>) => Promise<number>;
|
|
12
|
+
create: (doc: File) => Promise<string>;
|
|
13
|
+
update: (fileId: string, doc: File) => Promise<string>;
|
|
14
|
+
delete: (fileId: string) => Promise<number>;
|
|
15
|
+
}>;
|
|
16
|
+
export type FilesModule = Awaited<ReturnType<typeof configureFilesModule>>;
|
|
17
|
+
//# sourceMappingURL=configureFilesModule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configureFilesModule.d.ts","sourceRoot":"","sources":["../../src/module/configureFilesModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,OAAO,EAA4C,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAE3F,OAAO,EAAiB,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAI3E,eAAO,MAAM,oBAAoB,mCAG9B,WAAW,CAAC,oBAAoB,CAAC;mBASjB,IAAI,UAAU,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAG,MAAM,GAAG,IAAI;2BAclD;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,YACrB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAClC,OAAO,CAAC,IAAI,CAAC;0BAKJ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,YACpB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAClC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;0BAIK,KAAK,CAAC,MAAM,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC;kBAKvC,IAAI;qBAUD,MAAM,OAAO,IAAI;qBAcjB,MAAM;EAMhC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { emit, registerEvents } from '@unchainedshop/events';
|
|
2
|
-
import { generateDbFilterById,
|
|
2
|
+
import { generateDbFilterById, generateDbObjectId } from '@unchainedshop/mongodb';
|
|
3
3
|
import { MediaObjectsCollection } from '../db/MediaObjectsCollection.js';
|
|
4
|
-
import { MediaObjectsSchema } from '../db/MediaObjectsSchema.js';
|
|
5
4
|
import { filesSettings } from '../files-settings.js';
|
|
6
5
|
const FILE_EVENTS = ['FILE_CREATE', 'FILE_UPDATE', 'FILE_REMOVE'];
|
|
7
6
|
export const configureFilesModule = async ({ db, options: filesOptions = {}, }) => {
|
|
@@ -9,30 +8,20 @@ export const configureFilesModule = async ({ db, options: filesOptions = {}, })
|
|
|
9
8
|
// Settings
|
|
10
9
|
await filesSettings.configureSettings(filesOptions);
|
|
11
10
|
const Files = await MediaObjectsCollection(db);
|
|
12
|
-
const mutations = generateDbMutations(Files, MediaObjectsSchema, {
|
|
13
|
-
permanentlyDeleteByDefault: true,
|
|
14
|
-
});
|
|
15
11
|
return {
|
|
16
12
|
getUrl: (file, params) => {
|
|
17
13
|
if (!file?.url)
|
|
18
14
|
return null;
|
|
19
15
|
const transformedURLString = filesSettings.transformUrl(file.url, params);
|
|
20
|
-
|
|
21
|
-
// If the url is absolute, return
|
|
16
|
+
if (URL.canParse(transformedURLString)) {
|
|
22
17
|
const finalURL = new URL(transformedURLString);
|
|
23
18
|
return finalURL.href;
|
|
24
19
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const finalURL = new URL(transformedURLString, process.env.ROOT_URL);
|
|
29
|
-
return finalURL.href;
|
|
30
|
-
}
|
|
31
|
-
catch (e2) {
|
|
32
|
-
// else return the transformed string because it's not an URL
|
|
33
|
-
return transformedURLString;
|
|
34
|
-
}
|
|
20
|
+
else if (URL.canParse(transformedURLString, process.env.ROOT_URL)) {
|
|
21
|
+
const finalURL = new URL(transformedURLString, process.env.ROOT_URL);
|
|
22
|
+
return finalURL.href;
|
|
35
23
|
}
|
|
24
|
+
return transformedURLString;
|
|
36
25
|
},
|
|
37
26
|
findFile: async ({ fileId }, options) => {
|
|
38
27
|
return Files.findOne(generateDbFilterById(fileId), options);
|
|
@@ -45,21 +34,29 @@ export const configureFilesModule = async ({ db, options: filesOptions = {}, })
|
|
|
45
34
|
return deletionResult.deletedCount;
|
|
46
35
|
},
|
|
47
36
|
create: async (doc) => {
|
|
48
|
-
const fileId = await
|
|
37
|
+
const { insertedId: fileId } = await Files.insertOne({
|
|
38
|
+
_id: generateDbObjectId(),
|
|
39
|
+
created: new Date(),
|
|
40
|
+
...doc,
|
|
41
|
+
});
|
|
49
42
|
await emit('FILE_CREATE', { fileId });
|
|
50
43
|
return fileId;
|
|
51
44
|
},
|
|
52
|
-
update: async (
|
|
53
|
-
|
|
45
|
+
update: async (fileId, doc) => {
|
|
46
|
+
await Files.updateOne({ _id: fileId }, {
|
|
47
|
+
$set: {
|
|
48
|
+
updated: new Date(),
|
|
49
|
+
...doc,
|
|
50
|
+
},
|
|
51
|
+
});
|
|
54
52
|
await emit('FILE_UPDATE', { fileId });
|
|
55
53
|
return fileId;
|
|
56
54
|
},
|
|
57
55
|
delete: async (fileId) => {
|
|
58
|
-
const deletedCount = await
|
|
56
|
+
const { deletedCount } = await Files.deleteOne({ _id: fileId });
|
|
59
57
|
await emit('FILE_REMOVE', { fileId });
|
|
60
58
|
return deletedCount;
|
|
61
59
|
},
|
|
62
|
-
deletePermanently: mutations.deletePermanently,
|
|
63
60
|
};
|
|
64
61
|
};
|
|
65
62
|
//# sourceMappingURL=configureFilesModule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureFilesModule.js","sourceRoot":"","sources":["../../src/module/configureFilesModule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"configureFilesModule.js","sourceRoot":"","sources":["../../src/module/configureFilesModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UnchainedCore } from '@unchainedshop/core';
|
|
2
|
+
import { Readable } from 'stream';
|
|
3
|
+
export type CreateDownloadStreamService = (params: {
|
|
4
|
+
fileId: string;
|
|
5
|
+
}, unchainedAPI: UnchainedCore) => Promise<Readable>;
|
|
2
6
|
export declare const createDownloadStreamService: CreateDownloadStreamService;
|
|
7
|
+
//# sourceMappingURL=createDownloadStreamService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createDownloadStreamService.d.ts","sourceRoot":"","sources":["../../src/service/createDownloadStreamService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,MAAM,MAAM,2BAA2B,GAAG,CACxC,MAAM,EAAE;IACN,MAAM,EAAE,MAAM,CAAC;CAChB,EACD,YAAY,EAAE,aAAa,KACxB,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,eAAO,MAAM,2BAA2B,EAAE,2BAYzC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createDownloadStreamService.js","sourceRoot":"","sources":["../../src/service/createDownloadStreamService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createDownloadStreamService.js","sourceRoot":"","sources":["../../src/service/createDownloadStreamService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAW5D,MAAM,CAAC,MAAM,2BAA2B,GAAgC,KAAK,EAC3E,EAAE,MAAM,EAAE,EACV,gBAAgB,EAChB,EAAE;IACF,MAAM,EACJ,OAAO,EAAE,EAAE,KAAK,EAAE,GACnB,GAAG,gBAAgB,CAAC;IACrB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,WAAW,CAAC,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACxE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UnchainedCore } from '@unchainedshop/core';
|
|
2
|
+
import { SignedFileUpload } from '../types.js';
|
|
3
|
+
export type CreateSignedURLService = (params: {
|
|
4
|
+
directoryName: string;
|
|
5
|
+
fileName: string;
|
|
6
|
+
meta?: any;
|
|
7
|
+
}, unchainedAPI: UnchainedCore) => Promise<SignedFileUpload>;
|
|
2
8
|
export declare const createSignedURLService: CreateSignedURLService;
|
|
9
|
+
//# sourceMappingURL=createSignedURLService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createSignedURLService.d.ts","sourceRoot":"","sources":["../../src/service/createSignedURLService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,MAAM,sBAAsB,GAAG,CACnC,MAAM,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAA;CAAE,EAC/D,YAAY,EAAE,aAAa,KACxB,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/B,eAAO,MAAM,sBAAsB,EAAE,sBAqBpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSignedURLService.js","sourceRoot":"","sources":["../../src/service/createSignedURLService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"createSignedURLService.js","sourceRoot":"","sources":["../../src/service/createSignedURLService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAQtE,MAAM,CAAC,MAAM,sBAAsB,GAA2B,KAAK,EACjE,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,EACjC,gBAAgB,EAChB,EAAE;IACF,MAAM,EACJ,OAAO,EAAE,EAAE,KAAK,EAAE,GACnB,GAAG,gBAAgB,CAAC;IACrB,MAAM,iBAAiB,GAAG,cAAc,EAAE,CAAC;IAC3C,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,CAAC,eAAe,CAC9D,aAAa,EACb,QAAQ,EACR,gBAAgB,CACjB,CAAC;IACF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAE9C,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE,gBAAgB,CAAC,MAAgB;KAC1C,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,2 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LinkFileService } from './linkFileService.js';
|
|
2
|
+
import { CreateSignedURLService } from './createSignedURLService.js';
|
|
3
|
+
import { UploadFileFromURLService } from './uploadFileFromURLService.js';
|
|
4
|
+
import { UploadFileFromStreamService } from './uploadFileFromStreamService.js';
|
|
5
|
+
import { RemoveFilesService } from './removeFilesService.js';
|
|
6
|
+
import { CreateDownloadStreamService } from './createDownloadStreamService.js';
|
|
7
|
+
export interface FileServices {
|
|
8
|
+
linkFile: LinkFileService;
|
|
9
|
+
uploadFileFromStream: UploadFileFromStreamService;
|
|
10
|
+
uploadFileFromURL: UploadFileFromURLService;
|
|
11
|
+
createSignedURL: CreateSignedURLService;
|
|
12
|
+
removeFiles: RemoveFilesService;
|
|
13
|
+
createDownloadStream: CreateDownloadStreamService;
|
|
14
|
+
}
|
|
2
15
|
export declare const fileServices: FileServices;
|
|
16
|
+
//# sourceMappingURL=fileServices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileServices.d.ts","sourceRoot":"","sources":["../../src/service/fileServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAmB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAA0B,MAAM,6BAA6B,CAAC;AAC7F,OAAO,EAAE,wBAAwB,EAA4B,MAAM,+BAA+B,CAAC;AACnG,OAAO,EACL,2BAA2B,EAE5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAsB,MAAM,yBAAyB,CAAC;AACjF,OAAO,EACL,2BAA2B,EAE5B,MAAM,kCAAkC,CAAC;AAE1C,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,eAAe,CAAC;IAC1B,oBAAoB,EAAE,2BAA2B,CAAC;IAClD,iBAAiB,EAAE,wBAAwB,CAAC;IAC5C,eAAe,EAAE,sBAAsB,CAAC;IACxC,WAAW,EAAE,kBAAkB,CAAC;IAChC,oBAAoB,EAAE,2BAA2B,CAAC;CACnD;AAED,eAAO,MAAM,YAAY,EAAE,YAO1B,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { linkFileService } from './linkFileService.js';
|
|
2
2
|
import { createSignedURLService } from './createSignedURLService.js';
|
|
3
3
|
import { uploadFileFromURLService } from './uploadFileFromURLService.js';
|
|
4
|
-
import { uploadFileFromStreamService } from './uploadFileFromStreamService.js';
|
|
4
|
+
import { uploadFileFromStreamService, } from './uploadFileFromStreamService.js';
|
|
5
5
|
import { removeFilesService } from './removeFilesService.js';
|
|
6
|
-
import { createDownloadStreamService } from './createDownloadStreamService.js';
|
|
6
|
+
import { createDownloadStreamService, } from './createDownloadStreamService.js';
|
|
7
7
|
export const fileServices = {
|
|
8
8
|
linkFile: linkFileService,
|
|
9
9
|
createSignedURL: createSignedURLService,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileServices.js","sourceRoot":"","sources":["../../src/service/fileServices.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fileServices.js","sourceRoot":"","sources":["../../src/service/fileServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAA0B,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC7F,OAAO,EAA4B,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACnG,OAAO,EAEL,2BAA2B,GAC5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAsB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAEL,2BAA2B,GAC5B,MAAM,kCAAkC,CAAC;AAW1C,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,QAAQ,EAAE,eAAe;IACzB,eAAe,EAAE,sBAAsB;IACvC,iBAAiB,EAAE,wBAAwB;IAC3C,oBAAoB,EAAE,2BAA2B;IACjD,WAAW,EAAE,kBAAkB;IAC/B,oBAAoB,EAAE,2BAA2B;CAClD,CAAC"}
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UnchainedCore } from '@unchainedshop/core';
|
|
2
|
+
import { File } from '../types.js';
|
|
3
|
+
export type LinkFileService = (params: {
|
|
4
|
+
fileId: string;
|
|
5
|
+
size: number;
|
|
6
|
+
type?: string;
|
|
7
|
+
}, unchainedAPI: UnchainedCore) => Promise<File>;
|
|
2
8
|
export declare const linkFileService: LinkFileService;
|
|
9
|
+
//# sourceMappingURL=linkFileService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linkFileService.d.ts","sourceRoot":"","sources":["../../src/service/linkFileService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,MAAM,MAAM,eAAe,GAAG,CAC5B,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACvD,YAAY,EAAE,aAAa,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,eAAO,MAAM,eAAe,EAAE,eAc7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linkFileService.js","sourceRoot":"","sources":["../../src/service/linkFileService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"linkFileService.js","sourceRoot":"","sources":["../../src/service/linkFileService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAS1D,MAAM,CAAC,MAAM,eAAe,GAAoB,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE;IAC7F,MAAM,EACJ,OAAO,EAAE,EAAE,KAAK,EAAE,GACnB,GAAG,YAAY,CAAC;IACjB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;QAClB,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClG,MAAM,QAAQ,GAAG,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UnchainedCore } from '@unchainedshop/core';
|
|
2
|
+
export type RemoveFilesService = (params: {
|
|
3
|
+
fileIds: Array<string>;
|
|
4
|
+
}, unchainedAPI: UnchainedCore) => Promise<number>;
|
|
2
5
|
export declare const removeFilesService: RemoveFilesService;
|
|
6
|
+
//# sourceMappingURL=removeFilesService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removeFilesService.d.ts","sourceRoot":"","sources":["../../src/service/removeFilesService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,MAAM,kBAAkB,GAAG,CAC/B,MAAM,EAAE;IAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAAE,EAClC,YAAY,EAAE,aAAa,KACxB,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,eAAO,MAAM,kBAAkB,EAAE,kBA2BhC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeFilesService.js","sourceRoot":"","sources":["../../src/service/removeFilesService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"removeFilesService.js","sourceRoot":"","sources":["../../src/service/removeFilesService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAS5D,MAAM,CAAC,MAAM,kBAAkB,GAAuB,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,EAAE;IACxF,MAAM,EACJ,OAAO,EAAE,EAAE,KAAK,EAAE,GACnB,GAAG,YAAY,CAAC;IAEjB,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACnE,MAAM,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAE5E,MAAM,QAAQ,GAAyB;QACrC,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;KACtB,CAAC;IAEF,MAAM,iBAAiB,GAAG,cAAc,EAAE,CAAC;IAE3C,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEpD,IAAI,CAAC;QACH,MAAM,iBAAiB,CAAC,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB;IACzC,CAAC;IAED,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEtE,MAAM,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAExC,OAAO,eAAe,CAAC,MAAM,CAAC;AAChC,CAAC,CAAC"}
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UnchainedCore } from '@unchainedshop/core';
|
|
2
|
+
import { File } from '../types.js';
|
|
3
|
+
export type UploadFileFromStreamService = (params: {
|
|
4
|
+
directoryName: string;
|
|
5
|
+
rawFile: any;
|
|
6
|
+
meta?: any;
|
|
7
|
+
}, unchainedAPI: UnchainedCore) => Promise<File>;
|
|
2
8
|
export declare const uploadFileFromStreamService: UploadFileFromStreamService;
|
|
9
|
+
//# sourceMappingURL=uploadFileFromStreamService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploadFileFromStreamService.d.ts","sourceRoot":"","sources":["../../src/service/uploadFileFromStreamService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,MAAM,MAAM,2BAA2B,GAAG,CACxC,MAAM,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAA;CAAE,EAC3D,YAAY,EAAE,aAAa,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,eAAO,MAAM,2BAA2B,EAAE,2BAgBzC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadFileFromStreamService.js","sourceRoot":"","sources":["../../src/service/uploadFileFromStreamService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"uploadFileFromStreamService.js","sourceRoot":"","sources":["../../src/service/uploadFileFromStreamService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAQtE,MAAM,CAAC,MAAM,2BAA2B,GAAgC,KAAK,EAC3E,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,EAChC,gBAAgB,EAChB,EAAE;IACF,MAAM,EACJ,OAAO,EAAE,EAAE,KAAK,EAAE,GACnB,GAAG,gBAAgB,CAAC;IACrB,MAAM,iBAAiB,GAAG,cAAc,EAAE,CAAC;IAC3C,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CACjE,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB,CAAC;IACF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AACpC,CAAC,CAAC"}
|
|
@@ -1,2 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UnchainedCore } from '@unchainedshop/core';
|
|
2
|
+
import { File } from '../types.js';
|
|
3
|
+
export type UploadFileFromURLService = (params: {
|
|
4
|
+
directoryName: string;
|
|
5
|
+
fileInput: {
|
|
6
|
+
fileLink: string;
|
|
7
|
+
fileName: string;
|
|
8
|
+
fileId?: string;
|
|
9
|
+
headers?: Record<string, unknown>;
|
|
10
|
+
};
|
|
11
|
+
meta?: any;
|
|
12
|
+
}, unchainedAPI: UnchainedCore) => Promise<File>;
|
|
2
13
|
export declare const uploadFileFromURLService: UploadFileFromURLService;
|
|
14
|
+
//# sourceMappingURL=uploadFileFromURLService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploadFileFromURLService.d.ts","sourceRoot":"","sources":["../../src/service/uploadFileFromURLService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,MAAM,MAAM,wBAAwB,GAAG,CACrC,MAAM,EAAE;IACN,aAAa,EAAE,MAAM,CAAC;IACtB,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,CAAC;IACF,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ,EACD,YAAY,EAAE,aAAa,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,eAAO,MAAM,wBAAwB,EAAE,wBAiBtC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadFileFromURLService.js","sourceRoot":"","sources":["../../src/service/uploadFileFromURLService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"uploadFileFromURLService.js","sourceRoot":"","sources":["../../src/service/uploadFileFromURLService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAkBtE,MAAM,CAAC,MAAM,wBAAwB,GAA6B,KAAK,EACrE,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,EAClC,gBAAgB,EAChB,EAAE;IACF,MAAM,EACJ,OAAO,EAAE,EAAE,KAAK,EAAE,GACnB,GAAG,gBAAgB,CAAC;IACrB,MAAM,iBAAiB,GAAG,cAAc,EAAE,CAAC;IAE3C,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CAC9D,aAAa,EACb,SAAS,EACT,gBAAgB,CACjB,CAAC;IACF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AACpC,CAAC,CAAC"}
|
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { TimestampFields } from '@unchainedshop/mongodb';
|
|
2
|
+
export type File = {
|
|
3
|
+
_id?: string;
|
|
4
|
+
expires?: Date;
|
|
5
|
+
path: string;
|
|
6
|
+
meta?: Record<string, unknown>;
|
|
7
|
+
name: string;
|
|
8
|
+
size?: number;
|
|
9
|
+
type?: string;
|
|
10
|
+
url?: string;
|
|
11
|
+
} & TimestampFields;
|
|
12
|
+
export type SignedFileUpload = File & {
|
|
13
|
+
putURL: string;
|
|
14
|
+
};
|
|
15
|
+
export interface UploadFileData {
|
|
16
|
+
_id?: string;
|
|
17
|
+
directoryName: string;
|
|
18
|
+
expiryDate: Date;
|
|
19
|
+
fileName: string;
|
|
20
|
+
hash: string;
|
|
21
|
+
hashedName: string;
|
|
22
|
+
size?: number;
|
|
23
|
+
type: string;
|
|
24
|
+
url: string;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,IAAI,GAAG;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,eAAe,CAAC;AAEpB,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb"}
|
package/lib/types.js
ADDED
package/lib/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFileAdapter.d.ts","sourceRoot":"","sources":["../../src/utils/getFileAdapter.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,yDAM1B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UploadFileData } from '
|
|
1
|
+
import { UploadFileData } from '../types.js';
|
|
2
2
|
export declare const getFileFromFileData: (fileData: UploadFileData, meta: any) => {
|
|
3
3
|
_id: string;
|
|
4
4
|
path: string;
|
|
@@ -9,3 +9,4 @@ export declare const getFileFromFileData: (fileData: UploadFileData, meta: any)
|
|
|
9
9
|
url: string;
|
|
10
10
|
meta: any;
|
|
11
11
|
};
|
|
12
|
+
//# sourceMappingURL=getFileFromFileData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFileFromFileData.d.ts","sourceRoot":"","sources":["../../src/utils/getFileFromFileData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,mBAAmB,aAAc,cAAc,QAAQ,GAAG;;;;;;;;;CASrE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/core-files",
|
|
3
|
-
"version": "3.0.0-
|
|
3
|
+
"version": "3.0.0-alpha3",
|
|
4
4
|
"main": "lib/files-index.js",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./lib/files-index.js",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"type": "module",
|
|
11
11
|
"scripts": {
|
|
12
12
|
"clean": "rm -rf lib",
|
|
13
|
-
"
|
|
13
|
+
"prepublishOnly": "npm run clean && tsc",
|
|
14
14
|
"watch": "tsc -w",
|
|
15
15
|
"test": "NODE_OPTIONS=--experimental-vm-modules jest --detectOpenHandles --forceExit",
|
|
16
16
|
"test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch --detectOpenHandles --forceExit"
|
|
@@ -31,18 +31,16 @@
|
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://github.com/unchainedshop/unchained#readme",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@unchainedshop/events": "^3.0.0-
|
|
35
|
-
"@unchainedshop/file-upload": "^3.0.0-
|
|
36
|
-
"@unchainedshop/logger": "^3.0.0-
|
|
37
|
-
"@unchainedshop/utils": "^3.0.0-
|
|
38
|
-
"mime-types": "^2.1.35"
|
|
39
|
-
"simpl-schema": "^3.4.6"
|
|
34
|
+
"@unchainedshop/events": "^3.0.0-alpha3",
|
|
35
|
+
"@unchainedshop/file-upload": "^3.0.0-alpha3",
|
|
36
|
+
"@unchainedshop/logger": "^3.0.0-alpha3",
|
|
37
|
+
"@unchainedshop/utils": "^3.0.0-alpha3",
|
|
38
|
+
"mime-types": "^2.1.35"
|
|
40
39
|
},
|
|
41
40
|
"devDependencies": {
|
|
42
|
-
"@types/node": "^
|
|
43
|
-
"@unchainedshop/types": "^3.0.0-alpha1",
|
|
41
|
+
"@types/node": "^22.5.5",
|
|
44
42
|
"jest": "^29.7.0",
|
|
45
|
-
"ts-jest": "^29.
|
|
46
|
-
"typescript": "^5.
|
|
43
|
+
"ts-jest": "^29.2.5",
|
|
44
|
+
"typescript": "^5.6.2"
|
|
47
45
|
}
|
|
48
46
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { mongodb, buildDbIndexes } from '@unchainedshop/mongodb';
|
|
2
|
-
import { File } from '
|
|
2
|
+
import { File } from '../types.js';
|
|
3
3
|
|
|
4
4
|
export const MediaObjectsCollection = async (db: mongodb.Db) => {
|
|
5
5
|
const MediaObjects = db.collection<File>('media_objects');
|
package/src/files-index.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
1
|
+
export * from './types.js';
|
|
2
|
+
export * from './module/configureFilesModule.js';
|
|
3
|
+
export * from './service/fileServices.js';
|
|
4
|
+
export * from './files-settings.js';
|
package/src/files-settings.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
export interface FilesSettingsOptions {
|
|
2
|
+
transformUrl?: (url: string, params: Record<string, any>) => string;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export interface FilesSettings {
|
|
6
|
+
transformUrl?: (url: string, params: Record<string, any>) => string;
|
|
7
|
+
configureSettings: (options?: FilesSettingsOptions) => void;
|
|
8
|
+
}
|
|
2
9
|
|
|
3
10
|
export const defaultTransformUrl = (url) => url;
|
|
4
11
|
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import { ModuleInput
|
|
2
|
-
import { File
|
|
1
|
+
import { ModuleInput } from '@unchainedshop/core';
|
|
2
|
+
import { File } from '../types.js';
|
|
3
3
|
import { emit, registerEvents } from '@unchainedshop/events';
|
|
4
|
-
import { generateDbFilterById,
|
|
4
|
+
import { generateDbFilterById, generateDbObjectId, mongodb } from '@unchainedshop/mongodb';
|
|
5
5
|
import { MediaObjectsCollection } from '../db/MediaObjectsCollection.js';
|
|
6
|
-
import {
|
|
7
|
-
import { filesSettings } from '../files-settings.js';
|
|
6
|
+
import { filesSettings, FilesSettingsOptions } from '../files-settings.js';
|
|
8
7
|
|
|
9
8
|
const FILE_EVENTS: string[] = ['FILE_CREATE', 'FILE_UPDATE', 'FILE_REMOVE'];
|
|
10
9
|
|
|
11
10
|
export const configureFilesModule = async ({
|
|
12
11
|
db,
|
|
13
12
|
options: filesOptions = {},
|
|
14
|
-
}: ModuleInput<FilesSettingsOptions>)
|
|
13
|
+
}: ModuleInput<FilesSettingsOptions>) => {
|
|
15
14
|
registerEvents(FILE_EVENTS);
|
|
16
15
|
|
|
17
16
|
// Settings
|
|
@@ -19,58 +18,69 @@ export const configureFilesModule = async ({
|
|
|
19
18
|
|
|
20
19
|
const Files = await MediaObjectsCollection(db);
|
|
21
20
|
|
|
22
|
-
const mutations = generateDbMutations<File>(Files, MediaObjectsSchema, {
|
|
23
|
-
permanentlyDeleteByDefault: true,
|
|
24
|
-
}) as ModuleMutations<File>;
|
|
25
|
-
|
|
26
21
|
return {
|
|
27
|
-
getUrl: (file, params) => {
|
|
22
|
+
getUrl: (file: File, params: Record<string, any>): string | null => {
|
|
28
23
|
if (!file?.url) return null;
|
|
29
24
|
const transformedURLString = filesSettings.transformUrl(file.url, params);
|
|
30
|
-
|
|
31
|
-
// If the url is absolute, return
|
|
25
|
+
if (URL.canParse(transformedURLString)) {
|
|
32
26
|
const finalURL = new URL(transformedURLString);
|
|
33
27
|
return finalURL.href;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const finalURL = new URL(transformedURLString, process.env.ROOT_URL);
|
|
38
|
-
return finalURL.href;
|
|
39
|
-
} catch (e2) {
|
|
40
|
-
// else return the transformed string because it's not an URL
|
|
41
|
-
return transformedURLString;
|
|
42
|
-
}
|
|
28
|
+
} else if (URL.canParse(transformedURLString, process.env.ROOT_URL)) {
|
|
29
|
+
const finalURL = new URL(transformedURLString, process.env.ROOT_URL);
|
|
30
|
+
return finalURL.href;
|
|
43
31
|
}
|
|
32
|
+
return transformedURLString;
|
|
44
33
|
},
|
|
45
34
|
|
|
46
|
-
findFile: async (
|
|
35
|
+
findFile: async (
|
|
36
|
+
{ fileId }: { fileId?: string },
|
|
37
|
+
options?: mongodb.FindOptions<File>,
|
|
38
|
+
): Promise<File> => {
|
|
47
39
|
return Files.findOne(generateDbFilterById(fileId), options);
|
|
48
40
|
},
|
|
49
41
|
|
|
50
|
-
findFiles: async (
|
|
42
|
+
findFiles: async (
|
|
43
|
+
selector: mongodb.Filter<File>,
|
|
44
|
+
options?: mongodb.FindOptions<File>,
|
|
45
|
+
): Promise<Array<File>> => {
|
|
51
46
|
return Files.find(selector, options).toArray();
|
|
52
47
|
},
|
|
53
48
|
|
|
54
|
-
deleteMany: async (fileIds) => {
|
|
49
|
+
deleteMany: async (fileIds: Array<string>): Promise<number> => {
|
|
55
50
|
const deletionResult = await Files.deleteMany({ _id: { $in: fileIds } });
|
|
56
51
|
return deletionResult.deletedCount;
|
|
57
52
|
},
|
|
58
53
|
|
|
59
54
|
create: async (doc: File) => {
|
|
60
|
-
const fileId = await
|
|
55
|
+
const { insertedId: fileId } = await Files.insertOne({
|
|
56
|
+
_id: generateDbObjectId(),
|
|
57
|
+
created: new Date(),
|
|
58
|
+
...doc,
|
|
59
|
+
});
|
|
61
60
|
await emit('FILE_CREATE', { fileId });
|
|
62
61
|
return fileId;
|
|
63
62
|
},
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
|
|
64
|
+
update: async (fileId: string, doc: File) => {
|
|
65
|
+
await Files.updateOne(
|
|
66
|
+
{ _id: fileId },
|
|
67
|
+
{
|
|
68
|
+
$set: {
|
|
69
|
+
updated: new Date(),
|
|
70
|
+
...doc,
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
);
|
|
66
74
|
await emit('FILE_UPDATE', { fileId });
|
|
67
75
|
return fileId;
|
|
68
76
|
},
|
|
77
|
+
|
|
69
78
|
delete: async (fileId: string) => {
|
|
70
|
-
const deletedCount = await
|
|
79
|
+
const { deletedCount } = await Files.deleteOne({ _id: fileId });
|
|
71
80
|
await emit('FILE_REMOVE', { fileId });
|
|
72
81
|
return deletedCount;
|
|
73
82
|
},
|
|
74
|
-
deletePermanently: mutations.deletePermanently,
|
|
75
83
|
};
|
|
76
84
|
};
|
|
85
|
+
|
|
86
|
+
export type FilesModule = Awaited<ReturnType<typeof configureFilesModule>>;
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
import { CreateDownloadStreamService } from '@unchainedshop/types/files.js';
|
|
2
1
|
import { getFileAdapter } from '../utils/getFileAdapter.js';
|
|
2
|
+
import { UnchainedCore } from '@unchainedshop/core';
|
|
3
|
+
import { Readable } from 'stream';
|
|
4
|
+
|
|
5
|
+
export type CreateDownloadStreamService = (
|
|
6
|
+
params: {
|
|
7
|
+
fileId: string;
|
|
8
|
+
},
|
|
9
|
+
unchainedAPI: UnchainedCore,
|
|
10
|
+
) => Promise<Readable>;
|
|
3
11
|
|
|
4
12
|
export const createDownloadStreamService: CreateDownloadStreamService = async (
|
|
5
13
|
{ fileId },
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UnchainedCore } from '@unchainedshop/core';
|
|
2
2
|
import { getFileAdapter } from '../utils/getFileAdapter.js';
|
|
3
3
|
import { getFileFromFileData } from '../utils/getFileFromFileData.js';
|
|
4
|
+
import { SignedFileUpload } from '../types.js';
|
|
5
|
+
|
|
6
|
+
export type CreateSignedURLService = (
|
|
7
|
+
params: { directoryName: string; fileName: string; meta?: any },
|
|
8
|
+
unchainedAPI: UnchainedCore,
|
|
9
|
+
) => Promise<SignedFileUpload>;
|
|
4
10
|
|
|
5
11
|
export const createSignedURLService: CreateSignedURLService = async (
|
|
6
12
|
{ directoryName, fileName, meta },
|
|
@@ -1,10 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { LinkFileService, linkFileService } from './linkFileService.js';
|
|
2
|
+
import { CreateSignedURLService, createSignedURLService } from './createSignedURLService.js';
|
|
3
|
+
import { UploadFileFromURLService, uploadFileFromURLService } from './uploadFileFromURLService.js';
|
|
4
|
+
import {
|
|
5
|
+
UploadFileFromStreamService,
|
|
6
|
+
uploadFileFromStreamService,
|
|
7
|
+
} from './uploadFileFromStreamService.js';
|
|
8
|
+
import { RemoveFilesService, removeFilesService } from './removeFilesService.js';
|
|
9
|
+
import {
|
|
10
|
+
CreateDownloadStreamService,
|
|
11
|
+
createDownloadStreamService,
|
|
12
|
+
} from './createDownloadStreamService.js';
|
|
13
|
+
|
|
14
|
+
export interface FileServices {
|
|
15
|
+
linkFile: LinkFileService;
|
|
16
|
+
uploadFileFromStream: UploadFileFromStreamService;
|
|
17
|
+
uploadFileFromURL: UploadFileFromURLService;
|
|
18
|
+
createSignedURL: CreateSignedURLService;
|
|
19
|
+
removeFiles: RemoveFilesService;
|
|
20
|
+
createDownloadStream: CreateDownloadStreamService;
|
|
21
|
+
}
|
|
8
22
|
|
|
9
23
|
export const fileServices: FileServices = {
|
|
10
24
|
linkFile: linkFileService,
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import { LinkFileService } from '@unchainedshop/types/files.js';
|
|
2
1
|
import { FileDirector } from '@unchainedshop/file-upload';
|
|
2
|
+
import { UnchainedCore } from '@unchainedshop/core';
|
|
3
|
+
import { File } from '../types.js';
|
|
4
|
+
|
|
5
|
+
export type LinkFileService = (
|
|
6
|
+
params: { fileId: string; size: number; type?: string },
|
|
7
|
+
unchainedAPI: UnchainedCore,
|
|
8
|
+
) => Promise<File>;
|
|
3
9
|
|
|
4
10
|
export const linkFileService: LinkFileService = async ({ fileId, size, type }, unchainedAPI) => {
|
|
5
11
|
const {
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import { File, RemoveFilesService } from '@unchainedshop/types/files.js';
|
|
2
1
|
import { mongodb } from '@unchainedshop/mongodb';
|
|
3
2
|
import { getFileAdapter } from '../utils/getFileAdapter.js';
|
|
3
|
+
import { UnchainedCore } from '@unchainedshop/core';
|
|
4
|
+
import { File } from '../types.js';
|
|
5
|
+
|
|
6
|
+
export type RemoveFilesService = (
|
|
7
|
+
params: { fileIds: Array<string> },
|
|
8
|
+
unchainedAPI: UnchainedCore,
|
|
9
|
+
) => Promise<number>;
|
|
4
10
|
|
|
5
11
|
export const removeFilesService: RemoveFilesService = async ({ fileIds }, unchainedAPI) => {
|
|
6
12
|
const {
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UnchainedCore } from '@unchainedshop/core';
|
|
2
2
|
import { getFileAdapter } from '../utils/getFileAdapter.js';
|
|
3
3
|
import { getFileFromFileData } from '../utils/getFileFromFileData.js';
|
|
4
|
+
import { File } from '../types.js';
|
|
5
|
+
|
|
6
|
+
export type UploadFileFromStreamService = (
|
|
7
|
+
params: { directoryName: string; rawFile: any; meta?: any },
|
|
8
|
+
unchainedAPI: UnchainedCore,
|
|
9
|
+
) => Promise<File>;
|
|
4
10
|
|
|
5
11
|
export const uploadFileFromStreamService: UploadFileFromStreamService = async (
|
|
6
12
|
{ directoryName, rawFile, meta },
|
|
@@ -1,6 +1,21 @@
|
|
|
1
|
-
import { UploadFileFromURLService } from '@unchainedshop/types/files.js';
|
|
2
1
|
import { getFileAdapter } from '../utils/getFileAdapter.js';
|
|
3
2
|
import { getFileFromFileData } from '../utils/getFileFromFileData.js';
|
|
3
|
+
import { UnchainedCore } from '@unchainedshop/core';
|
|
4
|
+
import { File } from '../types.js';
|
|
5
|
+
|
|
6
|
+
export type UploadFileFromURLService = (
|
|
7
|
+
params: {
|
|
8
|
+
directoryName: string;
|
|
9
|
+
fileInput: {
|
|
10
|
+
fileLink: string;
|
|
11
|
+
fileName: string;
|
|
12
|
+
fileId?: string;
|
|
13
|
+
headers?: Record<string, unknown>;
|
|
14
|
+
};
|
|
15
|
+
meta?: any;
|
|
16
|
+
},
|
|
17
|
+
unchainedAPI: UnchainedCore,
|
|
18
|
+
) => Promise<File>;
|
|
4
19
|
|
|
5
20
|
export const uploadFileFromURLService: UploadFileFromURLService = async (
|
|
6
21
|
{ directoryName, fileInput, meta },
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { TimestampFields } from '@unchainedshop/mongodb';
|
|
2
|
+
|
|
3
|
+
export type File = {
|
|
4
|
+
_id?: string;
|
|
5
|
+
expires?: Date;
|
|
6
|
+
path: string;
|
|
7
|
+
meta?: Record<string, unknown>;
|
|
8
|
+
name: string;
|
|
9
|
+
size?: number;
|
|
10
|
+
type?: string;
|
|
11
|
+
url?: string;
|
|
12
|
+
} & TimestampFields;
|
|
13
|
+
|
|
14
|
+
export type SignedFileUpload = File & {
|
|
15
|
+
putURL: string;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export interface UploadFileData {
|
|
19
|
+
_id?: string;
|
|
20
|
+
directoryName: string;
|
|
21
|
+
expiryDate: Date;
|
|
22
|
+
fileName: string;
|
|
23
|
+
hash: string;
|
|
24
|
+
hashedName: string;
|
|
25
|
+
size?: number;
|
|
26
|
+
type: string;
|
|
27
|
+
url: string;
|
|
28
|
+
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Schemas } from '@unchainedshop/utils';
|
|
2
|
-
import SimpleSchema from 'simpl-schema';
|
|
3
|
-
export const MediaObjectsSchema = new SimpleSchema({
|
|
4
|
-
expires: { type: Date },
|
|
5
|
-
path: { type: String, required: true },
|
|
6
|
-
meta: { type: Object, blackbox: true },
|
|
7
|
-
name: { type: String, required: true },
|
|
8
|
-
size: { type: String },
|
|
9
|
-
type: { type: String },
|
|
10
|
-
url: { type: String },
|
|
11
|
-
...Schemas.timestampFields,
|
|
12
|
-
}, { requiredByDefault: false });
|
|
13
|
-
//# sourceMappingURL=MediaObjectsSchema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MediaObjectsSchema.js","sourceRoot":"","sources":["../../src/db/MediaObjectsSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,YAAY,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,YAAY,CAChD;IACE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;IACvB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;IACtB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;IACtB,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;IACrB,GAAG,OAAO,CAAC,eAAe;CAC3B,EACD,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAC7B,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Schemas } from '@unchainedshop/utils';
|
|
2
|
-
import SimpleSchema from 'simpl-schema';
|
|
3
|
-
|
|
4
|
-
export const MediaObjectsSchema = new SimpleSchema(
|
|
5
|
-
{
|
|
6
|
-
expires: { type: Date },
|
|
7
|
-
path: { type: String, required: true },
|
|
8
|
-
meta: { type: Object, blackbox: true },
|
|
9
|
-
name: { type: String, required: true },
|
|
10
|
-
size: { type: String },
|
|
11
|
-
type: { type: String },
|
|
12
|
-
url: { type: String },
|
|
13
|
-
...Schemas.timestampFields,
|
|
14
|
-
},
|
|
15
|
-
{ requiredByDefault: false },
|
|
16
|
-
);
|