@unchainedshop/core-files 3.0.0-alpha2 → 3.0.0-alpha4

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 (68) hide show
  1. package/lib/db/MediaObjectsCollection.d.ts +1 -1
  2. package/lib/db/MediaObjectsCollection.d.ts.map +1 -1
  3. package/lib/files-index.d.ts +4 -3
  4. package/lib/files-index.d.ts.map +1 -1
  5. package/lib/files-index.js +4 -3
  6. package/lib/files-index.js.map +1 -1
  7. package/lib/files-settings.d.ts +7 -1
  8. package/lib/files-settings.d.ts.map +1 -1
  9. package/lib/files-settings.js.map +1 -1
  10. package/lib/module/configureFilesModule.d.ts +16 -3
  11. package/lib/module/configureFilesModule.d.ts.map +1 -1
  12. package/lib/module/configureFilesModule.js +14 -10
  13. package/lib/module/configureFilesModule.js.map +1 -1
  14. package/lib/service/createDownloadStreamService.d.ts +9 -1
  15. package/lib/service/createDownloadStreamService.d.ts.map +1 -1
  16. package/lib/service/createDownloadStreamService.js.map +1 -1
  17. package/lib/service/createSignedURLService.d.ts +11 -1
  18. package/lib/service/createSignedURLService.d.ts.map +1 -1
  19. package/lib/service/createSignedURLService.js +1 -1
  20. package/lib/service/createSignedURLService.js.map +1 -1
  21. package/lib/service/fileServices.d.ts +14 -1
  22. package/lib/service/fileServices.d.ts.map +1 -1
  23. package/lib/service/fileServices.js +2 -2
  24. package/lib/service/fileServices.js.map +1 -1
  25. package/lib/service/linkFileService.d.ts +11 -1
  26. package/lib/service/linkFileService.d.ts.map +1 -1
  27. package/lib/service/linkFileService.js.map +1 -1
  28. package/lib/service/removeFilesService.d.ts +8 -1
  29. package/lib/service/removeFilesService.d.ts.map +1 -1
  30. package/lib/service/removeFilesService.js.map +1 -1
  31. package/lib/service/uploadFileFromStreamService.d.ts +11 -1
  32. package/lib/service/uploadFileFromStreamService.d.ts.map +1 -1
  33. package/lib/service/uploadFileFromStreamService.js +1 -1
  34. package/lib/service/uploadFileFromStreamService.js.map +1 -1
  35. package/lib/service/uploadFileFromURLService.d.ts +16 -1
  36. package/lib/service/uploadFileFromURLService.d.ts.map +1 -1
  37. package/lib/service/uploadFileFromURLService.js +1 -1
  38. package/lib/service/uploadFileFromURLService.js.map +1 -1
  39. package/lib/types.d.ts +15 -0
  40. package/lib/types.d.ts.map +1 -0
  41. package/lib/types.js +2 -0
  42. package/lib/types.js.map +1 -0
  43. package/lib/utils/getFileAdapter.d.ts +1 -1
  44. package/lib/utils/getFileAdapter.d.ts.map +1 -1
  45. package/package.json +9 -11
  46. package/src/db/MediaObjectsCollection.ts +1 -1
  47. package/src/files-index.ts +4 -3
  48. package/src/files-settings.ts +8 -1
  49. package/src/module/configureFilesModule.ts +35 -19
  50. package/src/service/createDownloadStreamService.ts +9 -1
  51. package/src/service/createSignedURLService.ts +8 -2
  52. package/src/service/fileServices.ts +21 -7
  53. package/src/service/linkFileService.ts +7 -1
  54. package/src/service/removeFilesService.ts +7 -1
  55. package/src/service/uploadFileFromStreamService.ts +8 -2
  56. package/src/service/uploadFileFromURLService.ts +17 -2
  57. package/src/types.ts +16 -0
  58. package/tests/files-index.test.ts +2 -2
  59. package/lib/db/MediaObjectsSchema.d.ts +0 -3
  60. package/lib/db/MediaObjectsSchema.d.ts.map +0 -1
  61. package/lib/db/MediaObjectsSchema.js +0 -13
  62. package/lib/db/MediaObjectsSchema.js.map +0 -1
  63. package/lib/utils/getFileFromFileData.d.ts +0 -12
  64. package/lib/utils/getFileFromFileData.d.ts.map +0 -1
  65. package/lib/utils/getFileFromFileData.js +0 -11
  66. package/lib/utils/getFileFromFileData.js.map +0 -1
  67. package/src/db/MediaObjectsSchema.ts +0 -16
  68. package/src/utils/getFileFromFileData.ts +0 -12
@@ -1,4 +1,4 @@
1
1
  import { mongodb } from '@unchainedshop/mongodb';
2
- import { File } from '@unchainedshop/types/files.js';
2
+ import { File } from '../types.js';
3
3
  export declare const MediaObjectsCollection: (db: mongodb.Db) => Promise<mongodb.Collection<File>>;
4
4
  //# sourceMappingURL=MediaObjectsCollection.d.ts.map
@@ -1 +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,+BAA+B,CAAC;AAErD,eAAO,MAAM,sBAAsB,OAAc,OAAO,CAAC,EAAE,sCAS1D,CAAC"}
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"}
@@ -1,4 +1,5 @@
1
- export { configureFilesModule } from './module/configureFilesModule.js';
2
- export { fileServices } from './service/fileServices.js';
3
- export { filesSettings } from './files-settings.js';
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.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"files-index.d.ts","sourceRoot":"","sources":["../src/files-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
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"}
@@ -1,4 +1,5 @@
1
- export { configureFilesModule } from './module/configureFilesModule.js';
2
- export { fileServices } from './service/fileServices.js';
3
- export { filesSettings } from './files-settings.js';
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
@@ -1 +1 @@
1
- {"version":3,"file":"files-index.js","sourceRoot":"","sources":["../src/files-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
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"}
@@ -1,4 +1,10 @@
1
- import { FilesSettings } from '@unchainedshop/types/files.js';
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;
4
10
  //# sourceMappingURL=files-settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"files-settings.d.ts","sourceRoot":"","sources":["../src/files-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,eAAO,MAAM,mBAAmB,mBAAe,CAAC;AAEhD,eAAO,MAAM,aAAa,EAAE,aAK3B,CAAC"}
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":"AAEA,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
+ {"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,4 +1,17 @@
1
- import { ModuleInput } from '@unchainedshop/types/core.js';
2
- import { FilesModule, FilesSettingsOptions } from '@unchainedshop/types/files.js';
3
- export declare const configureFilesModule: ({ db, options: filesOptions, }: ModuleInput<FilesSettingsOptions>) => Promise<FilesModule>;
1
+ import { ModuleInput } from '@unchainedshop/mongodb';
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: Partial<File>) => Promise<string>;
14
+ delete: (fileId: string) => Promise<number>;
15
+ }>;
16
+ export type FilesModule = Awaited<ReturnType<typeof configureFilesModule>>;
4
17
  //# sourceMappingURL=configureFilesModule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configureFilesModule.d.ts","sourceRoot":"","sources":["../../src/module/configureFilesModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAmB,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAQ,WAAW,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AASxF,eAAO,MAAM,oBAAoB,mCAG9B,WAAW,CAAC,oBAAoB,CAAC,KAAG,OAAO,CAAC,WAAW,CAwDzD,CAAC"}
1
+ {"version":3,"file":"configureFilesModule.d.ts","sourceRoot":"","sources":["../../src/module/configureFilesModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,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,OAAO,CAAC,IAAI,CAAC;qBAc1B,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, generateDbMutations } from '@unchainedshop/mongodb';
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,9 +8,6 @@ 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)
@@ -38,21 +34,29 @@ export const configureFilesModule = async ({ db, options: filesOptions = {}, })
38
34
  return deletionResult.deletedCount;
39
35
  },
40
36
  create: async (doc) => {
41
- const fileId = await mutations.create(doc);
37
+ const { insertedId: fileId } = await Files.insertOne({
38
+ _id: generateDbObjectId(),
39
+ created: new Date(),
40
+ ...doc,
41
+ });
42
42
  await emit('FILE_CREATE', { fileId });
43
43
  return fileId;
44
44
  },
45
- update: async (_id, doc) => {
46
- const fileId = await mutations.update(_id, { $set: doc });
45
+ update: async (fileId, doc) => {
46
+ await Files.updateOne({ _id: fileId }, {
47
+ $set: {
48
+ updated: new Date(),
49
+ ...doc,
50
+ },
51
+ });
47
52
  await emit('FILE_UPDATE', { fileId });
48
53
  return fileId;
49
54
  },
50
55
  delete: async (fileId) => {
51
- const deletedCount = await mutations.delete(fileId);
56
+ const { deletedCount } = await Files.deleteOne({ _id: fileId });
52
57
  await emit('FILE_REMOVE', { fileId });
53
58
  return deletedCount;
54
59
  },
55
- deletePermanently: mutations.deletePermanently,
56
60
  };
57
61
  };
58
62
  //# sourceMappingURL=configureFilesModule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"configureFilesModule.js","sourceRoot":"","sources":["../../src/module/configureFilesModule.ts"],"names":[],"mappings":"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"}
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,kBAAkB,EAAW,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAwB,MAAM,sBAAsB,CAAC;AAE3E,MAAM,WAAW,GAAa,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,EACzC,EAAE,EACF,OAAO,EAAE,YAAY,GAAG,EAAE,GACQ,EAAE,EAAE;IACtC,cAAc,CAAC,WAAW,CAAC,CAAC;IAE5B,WAAW;IACX,MAAM,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAEpD,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAE/C,OAAO;QACL,MAAM,EAAE,CAAC,IAAU,EAAE,MAA2B,EAAiB,EAAE;YACjE,IAAI,CAAC,IAAI,EAAE,GAAG;gBAAE,OAAO,IAAI,CAAC;YAC5B,MAAM,oBAAoB,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC1E,IAAI,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBACvC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAC/C,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC;iBAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACrE,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC;YACD,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QAED,QAAQ,EAAE,KAAK,EACb,EAAE,MAAM,EAAuB,EAC/B,OAAmC,EACpB,EAAE;YACjB,OAAO,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC;QAED,SAAS,EAAE,KAAK,EACd,QAA8B,EAC9B,OAAmC,EACb,EAAE;YACxB,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;QACjD,CAAC;QAED,UAAU,EAAE,KAAK,EAAE,OAAsB,EAAmB,EAAE;YAC5D,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YACzE,OAAO,cAAc,CAAC,YAAY,CAAC;QACrC,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,GAAS,EAAE,EAAE;YAC1B,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC;gBACnD,GAAG,EAAE,kBAAkB,EAAE;gBACzB,OAAO,EAAE,IAAI,IAAI,EAAE;gBACnB,GAAG,GAAG;aACP,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACtC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,MAAc,EAAE,GAAkB,EAAE,EAAE;YACnD,MAAM,KAAK,CAAC,SAAS,CACnB,EAAE,GAAG,EAAE,MAAM,EAAE,EACf;gBACE,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAI,IAAI,EAAE;oBACnB,GAAG,GAAG;iBACP;aACF,CACF,CAAC;YACF,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACtC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;YAC/B,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YAChE,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACtC,OAAO,YAAY,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,3 +1,11 @@
1
- import { CreateDownloadStreamService } from '@unchainedshop/types/files.js';
1
+ import { Readable } from 'stream';
2
+ import { FilesModule } from '../files-index.js';
3
+ export type CreateDownloadStreamService = (params: {
4
+ fileId: string;
5
+ }, unchainedAPI: {
6
+ modules: {
7
+ files: FilesModule;
8
+ };
9
+ }) => Promise<Readable>;
2
10
  export declare const createDownloadStreamService: CreateDownloadStreamService;
3
11
  //# sourceMappingURL=createDownloadStreamService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createDownloadStreamService.d.ts","sourceRoot":"","sources":["../../src/service/createDownloadStreamService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAG5E,eAAO,MAAM,2BAA2B,EAAE,2BAYzC,CAAC"}
1
+ {"version":3,"file":"createDownloadStreamService.d.ts","sourceRoot":"","sources":["../../src/service/createDownloadStreamService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,MAAM,2BAA2B,GAAG,CACxC,MAAM,EAAE;IACN,MAAM,EAAE,MAAM,CAAC;CAChB,EACD,YAAY,EAAE;IAAE,OAAO,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,CAAA;CAAE,KAC9C,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":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,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
+ {"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,3 +1,13 @@
1
- import { CreateSignedURLService } from '@unchainedshop/types/files.js';
1
+ import { SignedFileUpload } from '../types.js';
2
+ import { FilesModule } from '../files-index.js';
3
+ export type CreateSignedURLService = (params: {
4
+ directoryName: string;
5
+ fileName: string;
6
+ meta?: any;
7
+ }, unchainedAPI: {
8
+ modules: {
9
+ files: FilesModule;
10
+ };
11
+ }) => Promise<SignedFileUpload>;
2
12
  export declare const createSignedURLService: CreateSignedURLService;
3
13
  //# sourceMappingURL=createSignedURLService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createSignedURLService.d.ts","sourceRoot":"","sources":["../../src/service/createSignedURLService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAIvE,eAAO,MAAM,sBAAsB,EAAE,sBAqBpC,CAAC"}
1
+ {"version":3,"file":"createSignedURLService.d.ts","sourceRoot":"","sources":["../../src/service/createSignedURLService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,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;IAAE,OAAO,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,CAAA;CAAE,KAC9C,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/B,eAAO,MAAM,sBAAsB,EAAE,sBAqBpC,CAAC"}
@@ -1,5 +1,5 @@
1
+ import { getFileFromFileData } from '@unchainedshop/file-upload';
1
2
  import { getFileAdapter } from '../utils/getFileAdapter.js';
2
- import { getFileFromFileData } from '../utils/getFileFromFileData.js';
3
3
  export const createSignedURLService = async ({ directoryName, fileName, meta }, unchainedContext) => {
4
4
  const { modules: { files }, } = unchainedContext;
5
5
  const fileUploadAdapter = getFileAdapter();
@@ -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;AAEtE,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
+ {"version":3,"file":"createSignedURLService.js","sourceRoot":"","sources":["../../src/service/createSignedURLService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAS5D,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,3 +1,16 @@
1
- import { FileServices } from '@unchainedshop/types/files.js';
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;
3
16
  //# sourceMappingURL=fileServices.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fileServices.d.ts","sourceRoot":"","sources":["../../src/service/fileServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAQ7D,eAAO,MAAM,YAAY,EAAE,YAO1B,CAAC"}
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":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E,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
+ {"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,3 +1,13 @@
1
- import { LinkFileService } from '@unchainedshop/types/files.js';
1
+ import { File } from '../types.js';
2
+ import { FilesModule } from '../files-index.js';
3
+ export type LinkFileService = (params: {
4
+ fileId: string;
5
+ size: number;
6
+ type?: string;
7
+ }, unchainedAPI: {
8
+ modules: {
9
+ files: FilesModule;
10
+ };
11
+ }) => Promise<File>;
2
12
  export declare const linkFileService: LinkFileService;
3
13
  //# sourceMappingURL=linkFileService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"linkFileService.d.ts","sourceRoot":"","sources":["../../src/service/linkFileService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,eAAO,MAAM,eAAe,EAAE,eAc7B,CAAC"}
1
+ {"version":3,"file":"linkFileService.d.ts","sourceRoot":"","sources":["../../src/service/linkFileService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,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;IAAE,OAAO,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,CAAA;CAAE,KAC9C,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":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,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
+ {"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,3 +1,10 @@
1
- import { RemoveFilesService } from '@unchainedshop/types/files.js';
1
+ import { FilesModule } from '../files-index.js';
2
+ export type RemoveFilesService = (params: {
3
+ fileIds: Array<string>;
4
+ }, unchainedAPI: {
5
+ modules: {
6
+ files: FilesModule;
7
+ };
8
+ }) => Promise<number>;
2
9
  export declare const removeFilesService: RemoveFilesService;
3
10
  //# sourceMappingURL=removeFilesService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"removeFilesService.d.ts","sourceRoot":"","sources":["../../src/service/removeFilesService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAIzE,eAAO,MAAM,kBAAkB,EAAE,kBA2BhC,CAAC"}
1
+ {"version":3,"file":"removeFilesService.d.ts","sourceRoot":"","sources":["../../src/service/removeFilesService.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAAG,CAC/B,MAAM,EAAE;IAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAAE,EAClC,YAAY,EAAE;IAAE,OAAO,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,CAAA;CAAE,KAC9C,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":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,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
+ {"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,3 +1,13 @@
1
- import { UploadFileFromStreamService } from '@unchainedshop/types/files.js';
1
+ import { File } from '../types.js';
2
+ import { FilesModule } from '../files-index.js';
3
+ export type UploadFileFromStreamService = (params: {
4
+ directoryName: string;
5
+ rawFile: any;
6
+ meta?: any;
7
+ }, unchainedAPI: {
8
+ modules: {
9
+ files: FilesModule;
10
+ };
11
+ }) => Promise<File>;
2
12
  export declare const uploadFileFromStreamService: UploadFileFromStreamService;
3
13
  //# sourceMappingURL=uploadFileFromStreamService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"uploadFileFromStreamService.d.ts","sourceRoot":"","sources":["../../src/service/uploadFileFromStreamService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAI5E,eAAO,MAAM,2BAA2B,EAAE,2BAgBzC,CAAC"}
1
+ {"version":3,"file":"uploadFileFromStreamService.d.ts","sourceRoot":"","sources":["../../src/service/uploadFileFromStreamService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,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;IAAE,OAAO,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,CAAA;CAAE,KAC9C,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,eAAO,MAAM,2BAA2B,EAAE,2BAgBzC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { getFileAdapter } from '../utils/getFileAdapter.js';
2
- import { getFileFromFileData } from '../utils/getFileFromFileData.js';
2
+ import { getFileFromFileData } from '@unchainedshop/file-upload';
3
3
  export const uploadFileFromStreamService = async ({ directoryName, rawFile, meta }, unchainedContext) => {
4
4
  const { modules: { files }, } = unchainedContext;
5
5
  const fileUploadAdapter = getFileAdapter();
@@ -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;AAEtE,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
+ {"version":3,"file":"uploadFileFromStreamService.js","sourceRoot":"","sources":["../../src/service/uploadFileFromStreamService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AASjE,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,3 +1,18 @@
1
- import { UploadFileFromURLService } from '@unchainedshop/types/files.js';
1
+ import { File } from '../types.js';
2
+ import { FilesModule } from '../files-index.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: {
13
+ modules: {
14
+ files: FilesModule;
15
+ };
16
+ }) => Promise<File>;
2
17
  export declare const uploadFileFromURLService: UploadFileFromURLService;
3
18
  //# sourceMappingURL=uploadFileFromURLService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"uploadFileFromURLService.d.ts","sourceRoot":"","sources":["../../src/service/uploadFileFromURLService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAIzE,eAAO,MAAM,wBAAwB,EAAE,wBAiBtC,CAAC"}
1
+ {"version":3,"file":"uploadFileFromURLService.d.ts","sourceRoot":"","sources":["../../src/service/uploadFileFromURLService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,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;IAAE,OAAO,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,CAAA;CAAE,KAC9C,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,eAAO,MAAM,wBAAwB,EAAE,wBAiBtC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { getFileAdapter } from '../utils/getFileAdapter.js';
2
- import { getFileFromFileData } from '../utils/getFileFromFileData.js';
2
+ import { getFileFromFileData } from '@unchainedshop/file-upload';
3
3
  export const uploadFileFromURLService = async ({ directoryName, fileInput, meta }, unchainedContext) => {
4
4
  const { modules: { files }, } = unchainedContext;
5
5
  const fileUploadAdapter = getFileAdapter();
@@ -1 +1 @@
1
- {"version":3,"file":"uploadFileFromURLService.js","sourceRoot":"","sources":["../../src/service/uploadFileFromURLService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,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"}
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,4BAA4B,CAAC;AAkBjE,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,15 @@
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
+ //# 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"}
package/lib/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -1,2 +1,2 @@
1
- export declare const getFileAdapter: () => import("@unchainedshop/file-upload").IFileAdapter;
1
+ export declare const getFileAdapter: () => import("@unchainedshop/file-upload").IFileAdapter<unknown>;
2
2
  //# sourceMappingURL=getFileAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getFileAdapter.d.ts","sourceRoot":"","sources":["../../src/utils/getFileAdapter.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,yDAM1B,CAAC"}
1
+ {"version":3,"file":"getFileAdapter.d.ts","sourceRoot":"","sources":["../../src/utils/getFileAdapter.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,kEAM1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/core-files",
3
- "version": "3.0.0-alpha2",
3
+ "version": "3.0.0-alpha4",
4
4
  "main": "lib/files-index.js",
5
5
  "exports": {
6
6
  ".": "./lib/files-index.js",
@@ -31,18 +31,16 @@
31
31
  },
32
32
  "homepage": "https://github.com/unchainedshop/unchained#readme",
33
33
  "dependencies": {
34
- "@unchainedshop/events": "^3.0.0-alpha2",
35
- "@unchainedshop/file-upload": "^3.0.0-alpha2",
36
- "@unchainedshop/logger": "^3.0.0-alpha2",
37
- "@unchainedshop/utils": "^3.0.0-alpha2",
38
- "mime-types": "^2.1.35",
39
- "simpl-schema": "^3.4.6"
34
+ "@unchainedshop/events": "^3.0.0-alpha4",
35
+ "@unchainedshop/file-upload": "^3.0.0-alpha4",
36
+ "@unchainedshop/logger": "^3.0.0-alpha4",
37
+ "@unchainedshop/utils": "^3.0.0-alpha4",
38
+ "mime-types": "^2.1.35"
40
39
  },
41
40
  "devDependencies": {
42
- "@types/node": "^20.14.12",
43
- "@unchainedshop/types": "^3.0.0-alpha2",
41
+ "@types/node": "^22.7.8",
44
42
  "jest": "^29.7.0",
45
- "ts-jest": "^29.2.3",
46
- "typescript": "^5.5.4"
43
+ "ts-jest": "^29.2.5",
44
+ "typescript": "^5.6.3"
47
45
  }
48
46
  }
@@ -1,5 +1,5 @@
1
1
  import { mongodb, buildDbIndexes } from '@unchainedshop/mongodb';
2
- import { File } from '@unchainedshop/types/files.js';
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');
@@ -1,3 +1,4 @@
1
- export { configureFilesModule } from './module/configureFilesModule.js';
2
- export { fileServices } from './service/fileServices.js';
3
- export { filesSettings } from './files-settings.js';
1
+ export * from './types.js';
2
+ export * from './module/configureFilesModule.js';
3
+ export * from './service/fileServices.js';
4
+ export * from './files-settings.js';
@@ -1,4 +1,11 @@
1
- import { FilesSettings } from '@unchainedshop/types/files.js';
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, ModuleMutations } from '@unchainedshop/types/core.js';
2
- import { File, FilesModule, FilesSettingsOptions } from '@unchainedshop/types/files.js';
1
+ import { ModuleInput } from '@unchainedshop/mongodb';
2
+ import { File } from '../types.js';
3
3
  import { emit, registerEvents } from '@unchainedshop/events';
4
- import { generateDbFilterById, generateDbMutations } from '@unchainedshop/mongodb';
4
+ import { generateDbFilterById, generateDbObjectId, mongodb } from '@unchainedshop/mongodb';
5
5
  import { MediaObjectsCollection } from '../db/MediaObjectsCollection.js';
6
- import { MediaObjectsSchema } from '../db/MediaObjectsSchema.js';
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>): Promise<FilesModule> => {
13
+ }: ModuleInput<FilesSettingsOptions>) => {
15
14
  registerEvents(FILE_EVENTS);
16
15
 
17
16
  // Settings
@@ -19,12 +18,8 @@ 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
25
  if (URL.canParse(transformedURLString)) {
@@ -37,34 +32,55 @@ export const configureFilesModule = async ({
37
32
  return transformedURLString;
38
33
  },
39
34
 
40
- findFile: async ({ fileId }, options) => {
35
+ findFile: async (
36
+ { fileId }: { fileId?: string },
37
+ options?: mongodb.FindOptions<File>,
38
+ ): Promise<File> => {
41
39
  return Files.findOne(generateDbFilterById(fileId), options);
42
40
  },
43
41
 
44
- findFiles: async (selector, options) => {
42
+ findFiles: async (
43
+ selector: mongodb.Filter<File>,
44
+ options?: mongodb.FindOptions<File>,
45
+ ): Promise<Array<File>> => {
45
46
  return Files.find(selector, options).toArray();
46
47
  },
47
48
 
48
- deleteMany: async (fileIds) => {
49
+ deleteMany: async (fileIds: Array<string>): Promise<number> => {
49
50
  const deletionResult = await Files.deleteMany({ _id: { $in: fileIds } });
50
51
  return deletionResult.deletedCount;
51
52
  },
52
53
 
53
54
  create: async (doc: File) => {
54
- const fileId = await mutations.create(doc);
55
+ const { insertedId: fileId } = await Files.insertOne({
56
+ _id: generateDbObjectId(),
57
+ created: new Date(),
58
+ ...doc,
59
+ });
55
60
  await emit('FILE_CREATE', { fileId });
56
61
  return fileId;
57
62
  },
58
- update: async (_id: string, doc: File) => {
59
- const fileId = await mutations.update(_id, { $set: doc });
63
+
64
+ update: async (fileId: string, doc: Partial<File>) => {
65
+ await Files.updateOne(
66
+ { _id: fileId },
67
+ {
68
+ $set: {
69
+ updated: new Date(),
70
+ ...doc,
71
+ },
72
+ },
73
+ );
60
74
  await emit('FILE_UPDATE', { fileId });
61
75
  return fileId;
62
76
  },
77
+
63
78
  delete: async (fileId: string) => {
64
- const deletedCount = await mutations.delete(fileId);
79
+ const { deletedCount } = await Files.deleteOne({ _id: fileId });
65
80
  await emit('FILE_REMOVE', { fileId });
66
81
  return deletedCount;
67
82
  },
68
- deletePermanently: mutations.deletePermanently,
69
83
  };
70
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 { Readable } from 'stream';
3
+ import { FilesModule } from '../files-index.js';
4
+
5
+ export type CreateDownloadStreamService = (
6
+ params: {
7
+ fileId: string;
8
+ },
9
+ unchainedAPI: { modules: { files: FilesModule } },
10
+ ) => Promise<Readable>;
3
11
 
4
12
  export const createDownloadStreamService: CreateDownloadStreamService = async (
5
13
  { fileId },
@@ -1,6 +1,12 @@
1
- import { CreateSignedURLService } from '@unchainedshop/types/files.js';
1
+ import { getFileFromFileData } from '@unchainedshop/file-upload';
2
2
  import { getFileAdapter } from '../utils/getFileAdapter.js';
3
- import { getFileFromFileData } from '../utils/getFileFromFileData.js';
3
+ import { SignedFileUpload } from '../types.js';
4
+ import { FilesModule } from '../files-index.js';
5
+
6
+ export type CreateSignedURLService = (
7
+ params: { directoryName: string; fileName: string; meta?: any },
8
+ unchainedAPI: { modules: { files: FilesModule } },
9
+ ) => Promise<SignedFileUpload>;
4
10
 
5
11
  export const createSignedURLService: CreateSignedURLService = async (
6
12
  { directoryName, fileName, meta },
@@ -1,10 +1,24 @@
1
- import { FileServices } from '@unchainedshop/types/files.js';
2
- import { linkFileService } from './linkFileService.js';
3
- import { createSignedURLService } from './createSignedURLService.js';
4
- import { uploadFileFromURLService } from './uploadFileFromURLService.js';
5
- import { uploadFileFromStreamService } from './uploadFileFromStreamService.js';
6
- import { removeFilesService } from './removeFilesService.js';
7
- import { createDownloadStreamService } from './createDownloadStreamService.js';
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 { File } from '../types.js';
3
+ import { FilesModule } from '../files-index.js';
4
+
5
+ export type LinkFileService = (
6
+ params: { fileId: string; size: number; type?: string },
7
+ unchainedAPI: { modules: { files: FilesModule } },
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 { File } from '../types.js';
4
+ import { FilesModule } from '../files-index.js';
5
+
6
+ export type RemoveFilesService = (
7
+ params: { fileIds: Array<string> },
8
+ unchainedAPI: { modules: { files: FilesModule } },
9
+ ) => Promise<number>;
4
10
 
5
11
  export const removeFilesService: RemoveFilesService = async ({ fileIds }, unchainedAPI) => {
6
12
  const {
@@ -1,6 +1,12 @@
1
- import { UploadFileFromStreamService } from '@unchainedshop/types/files.js';
2
1
  import { getFileAdapter } from '../utils/getFileAdapter.js';
3
- import { getFileFromFileData } from '../utils/getFileFromFileData.js';
2
+ import { getFileFromFileData } from '@unchainedshop/file-upload';
3
+ import { File } from '../types.js';
4
+ import { FilesModule } from '../files-index.js';
5
+
6
+ export type UploadFileFromStreamService = (
7
+ params: { directoryName: string; rawFile: any; meta?: any },
8
+ unchainedAPI: { modules: { files: FilesModule } },
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
- import { getFileFromFileData } from '../utils/getFileFromFileData.js';
2
+ import { getFileFromFileData } from '@unchainedshop/file-upload';
3
+ import { File } from '../types.js';
4
+ import { FilesModule } from '../files-index.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: { modules: { files: FilesModule } },
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,16 @@
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
+ };
@@ -1,5 +1,5 @@
1
1
  describe('Files', () => {
2
- it('Init', async () => {
3
- expect(true).toBeTruthy()
2
+ it('Init', () => {
3
+ expect(true).toBeTruthy();
4
4
  });
5
5
  });
@@ -1,3 +0,0 @@
1
- import SimpleSchema from 'simpl-schema';
2
- export declare const MediaObjectsSchema: SimpleSchema;
3
- //# sourceMappingURL=MediaObjectsSchema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MediaObjectsSchema.d.ts","sourceRoot":"","sources":["../../src/db/MediaObjectsSchema.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,cAAc,CAAC;AAExC,eAAO,MAAM,kBAAkB,cAY9B,CAAC"}
@@ -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,12 +0,0 @@
1
- import { UploadFileData } from '@unchainedshop/types/files.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
- //# sourceMappingURL=getFileFromFileData.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getFileFromFileData.d.ts","sourceRoot":"","sources":["../../src/utils/getFileFromFileData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,eAAO,MAAM,mBAAmB,aAAc,cAAc,QAAQ,GAAG;;;;;;;;;CASrE,CAAC"}
@@ -1,11 +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
- //# sourceMappingURL=getFileFromFileData.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getFileFromFileData.js","sourceRoot":"","sources":["../../src/utils/getFileFromFileData.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"}
@@ -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
- );
@@ -1,12 +0,0 @@
1
- import { UploadFileData } from '@unchainedshop/types/files.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
- });