@unchainedshop/core-files 3.0.0-alpha7 → 3.0.0-rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/lib/files-index.d.ts +3 -1
  2. package/lib/files-index.d.ts.map +1 -1
  3. package/lib/files-index.js +3 -1
  4. package/lib/files-index.js.map +1 -1
  5. package/lib/files-settings.d.ts +2 -0
  6. package/lib/files-settings.d.ts.map +1 -1
  7. package/lib/files-settings.js +3 -1
  8. package/lib/files-settings.js.map +1 -1
  9. package/lib/module/configureFilesModule.d.ts +1 -1
  10. package/lib/module/configureFilesModule.d.ts.map +1 -1
  11. package/lib/module/configureFilesModule.js +2 -4
  12. package/lib/module/configureFilesModule.js.map +1 -1
  13. package/lib/types.d.ts +1 -1
  14. package/lib/types.d.ts.map +1 -1
  15. package/lib/utils/getFileFromFileData.d.ts +13 -0
  16. package/lib/utils/getFileFromFileData.d.ts.map +1 -0
  17. package/lib/utils/getFileFromFileData.js +12 -0
  18. package/lib/utils/getFileFromFileData.js.map +1 -0
  19. package/package.json +10 -14
  20. package/src/files-index.ts +3 -1
  21. package/src/files-settings.ts +5 -1
  22. package/src/module/configureFilesModule.ts +2 -3
  23. package/src/types.ts +1 -1
  24. package/src/utils/getFileFromFileData.ts +14 -0
  25. package/tsconfig.json +5 -7
  26. package/lib/service/createDownloadStreamService.d.ts +0 -11
  27. package/lib/service/createDownloadStreamService.d.ts.map +0 -1
  28. package/lib/service/createDownloadStreamService.js +0 -9
  29. package/lib/service/createDownloadStreamService.js.map +0 -1
  30. package/lib/service/createSignedURLService.d.ts +0 -13
  31. package/lib/service/createSignedURLService.d.ts.map +0 -1
  32. package/lib/service/createSignedURLService.js +0 -15
  33. package/lib/service/createSignedURLService.js.map +0 -1
  34. package/lib/service/fileServices.d.ts +0 -16
  35. package/lib/service/fileServices.d.ts.map +0 -1
  36. package/lib/service/fileServices.js +0 -15
  37. package/lib/service/fileServices.js.map +0 -1
  38. package/lib/service/linkFileService.d.ts +0 -13
  39. package/lib/service/linkFileService.d.ts.map +0 -1
  40. package/lib/service/linkFileService.js +0 -15
  41. package/lib/service/linkFileService.js.map +0 -1
  42. package/lib/service/removeFilesService.d.ts +0 -10
  43. package/lib/service/removeFilesService.d.ts.map +0 -1
  44. package/lib/service/removeFilesService.js +0 -21
  45. package/lib/service/removeFilesService.js.map +0 -1
  46. package/lib/service/uploadFileFromStreamService.d.ts +0 -13
  47. package/lib/service/uploadFileFromStreamService.d.ts.map +0 -1
  48. package/lib/service/uploadFileFromStreamService.js +0 -11
  49. package/lib/service/uploadFileFromStreamService.js.map +0 -1
  50. package/lib/service/uploadFileFromURLService.d.ts +0 -18
  51. package/lib/service/uploadFileFromURLService.d.ts.map +0 -1
  52. package/lib/service/uploadFileFromURLService.js +0 -11
  53. package/lib/service/uploadFileFromURLService.js.map +0 -1
  54. package/src/service/createDownloadStreamService.ts +0 -24
  55. package/src/service/createSignedURLService.ts +0 -32
  56. package/src/service/fileServices.ts +0 -30
  57. package/src/service/linkFileService.ts +0 -24
  58. package/src/service/removeFilesService.ts +0 -38
  59. package/src/service/uploadFileFromStreamService.ts +0 -27
  60. package/src/service/uploadFileFromURLService.ts +0 -37
@@ -1,5 +1,7 @@
1
1
  export * from './types.js';
2
2
  export * from './module/configureFilesModule.js';
3
- export * from './service/fileServices.js';
3
+ export * from './db/MediaObjectsCollection.js';
4
4
  export * from './files-settings.js';
5
+ export * from './utils/getFileAdapter.js';
6
+ export * from './utils/getFileFromFileData.js';
5
7
  //# 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,cAAc,YAAY,CAAC;AAC3B,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,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,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export * from './types.js';
2
2
  export * from './module/configureFilesModule.js';
3
- export * from './service/fileServices.js';
3
+ export * from './db/MediaObjectsCollection.js';
4
4
  export * from './files-settings.js';
5
+ export * from './utils/getFileAdapter.js';
6
+ export * from './utils/getFileFromFileData.js';
5
7
  //# sourceMappingURL=files-index.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"files-index.js","sourceRoot":"","sources":["../src/files-index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC"}
@@ -1,9 +1,11 @@
1
1
  export interface FilesSettingsOptions {
2
2
  transformUrl?: (url: string, params: Record<string, any>) => string;
3
+ privateFileSharingMaxAge?: number;
3
4
  }
4
5
  export interface FilesSettings {
5
6
  transformUrl?: (url: string, params: Record<string, any>) => string;
6
7
  configureSettings: (options?: FilesSettingsOptions) => void;
8
+ privateFileSharingMaxAge?: number;
7
9
  }
8
10
  export declare const defaultTransformUrl: (url: any) => any;
9
11
  export declare const filesSettings: FilesSettings;
@@ -1 +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
+ {"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;IACpE,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;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;IAC5D,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,eAAO,MAAM,mBAAmB,mBAAe,CAAC;AAEhD,eAAO,MAAM,aAAa,EAAE,aAO3B,CAAC"}
@@ -1,8 +1,10 @@
1
1
  export const defaultTransformUrl = (url) => url;
2
2
  export const filesSettings = {
3
3
  transformUrl: null,
4
- configureSettings: async ({ transformUrl }) => {
4
+ privateFileSharingMaxAge: null,
5
+ configureSettings: async ({ transformUrl, privateFileSharingMaxAge }) => {
5
6
  filesSettings.transformUrl = transformUrl || defaultTransformUrl;
7
+ filesSettings.privateFileSharingMaxAge = privateFileSharingMaxAge;
6
8
  },
7
9
  };
8
10
  //# sourceMappingURL=files-settings.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"files-settings.js","sourceRoot":"","sources":["../src/files-settings.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC;AAEhD,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,YAAY,EAAE,IAAI;IAClB,wBAAwB,EAAE,IAAI;IAC9B,iBAAiB,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,wBAAwB,EAAE,EAAE,EAAE;QACtE,aAAa,CAAC,YAAY,GAAG,YAAY,IAAI,mBAAmB,CAAC;QACjE,aAAa,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;IACpE,CAAC;CACF,CAAC"}
@@ -3,7 +3,7 @@ import { File } from '../types.js';
3
3
  import { mongodb } from '@unchainedshop/mongodb';
4
4
  import { FilesSettingsOptions } from '../files-settings.js';
5
5
  export declare const configureFilesModule: ({ db, options: filesOptions, }: ModuleInput<FilesSettingsOptions>) => Promise<{
6
- getUrl: (file: File, params: Record<string, any>) => string | null;
6
+ normalizeUrl: (url: string, params: Record<string, any>) => string;
7
7
  findFile: ({ fileId }: {
8
8
  fileId?: string;
9
9
  }, options?: mongodb.FindOptions<File>) => Promise<File>;
@@ -1 +1 @@
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
+ {"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;wBASZ,MAAM,UAAU,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAG,MAAM;2BAalD;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"}
@@ -9,10 +9,8 @@ export const configureFilesModule = async ({ db, options: filesOptions = {}, })
9
9
  await filesSettings.configureSettings(filesOptions);
10
10
  const Files = await MediaObjectsCollection(db);
11
11
  return {
12
- getUrl: (file, params) => {
13
- if (!file?.url)
14
- return null;
15
- const transformedURLString = filesSettings.transformUrl(file.url, params);
12
+ normalizeUrl: (url, params) => {
13
+ const transformedURLString = filesSettings.transformUrl(url, params);
16
14
  if (URL.canParse(transformedURLString)) {
17
15
  const finalURL = new URL(transformedURLString);
18
16
  return finalURL.href;
@@ -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,YAAY,EAAE,CAAC,GAAW,EAAE,MAA2B,EAAU,EAAE;YACjE,MAAM,oBAAoB,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACrE,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"}
package/lib/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { TimestampFields } from '@unchainedshop/mongodb';
1
+ import { TimestampFields } from '@unchainedshop/mongodb';
2
2
  export type File = {
3
3
  _id?: string;
4
4
  expires?: Date;
@@ -1 +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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,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"}
@@ -0,0 +1,13 @@
1
+ import { UploadFileData } from '@unchainedshop/file-upload';
2
+ export declare const getFileFromFileData: (fileData: UploadFileData, meta: any) => {
3
+ _id: string;
4
+ path: string;
5
+ expires: Date;
6
+ name: string;
7
+ size: number;
8
+ type: string;
9
+ url: string;
10
+ meta: any;
11
+ };
12
+ export default getFileFromFileData;
13
+ //# sourceMappingURL=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,4BAA4B,CAAC;AAE5D,eAAO,MAAM,mBAAmB,aAAc,cAAc,QAAQ,GAAG;;;;;;;;;CASrE,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,12 @@
1
+ export const getFileFromFileData = (fileData, meta) => ({
2
+ _id: fileData._id,
3
+ path: fileData.directoryName,
4
+ expires: fileData.expiryDate,
5
+ name: fileData.fileName,
6
+ size: fileData.size,
7
+ type: fileData.type || 'application/octet-stream',
8
+ url: fileData.url,
9
+ meta,
10
+ });
11
+ export default getFileFromFileData;
12
+ //# sourceMappingURL=getFileFromFileData.js.map
@@ -0,0 +1 @@
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;AAEH,eAAe,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,16 +1,13 @@
1
1
  {
2
2
  "name": "@unchainedshop/core-files",
3
- "version": "3.0.0-alpha7",
3
+ "version": "3.0.0-rc1",
4
4
  "main": "lib/files-index.js",
5
- "exports": {
6
- ".": "./lib/files-index.js",
7
- "./*": "./lib/*"
8
- },
9
5
  "types": "lib/files-index.d.ts",
10
6
  "type": "module",
11
7
  "scripts": {
12
- "clean": "rm -rf lib",
13
- "prepublishOnly": "npm run clean && tsc",
8
+ "clean": "tsc -b --clean",
9
+ "build": "tsc -b",
10
+ "prepublishOnly": "npm run clean && npm run build",
14
11
  "watch": "tsc -w",
15
12
  "test": "NODE_OPTIONS=--experimental-vm-modules jest --detectOpenHandles --forceExit",
16
13
  "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch --detectOpenHandles --forceExit"
@@ -31,16 +28,15 @@
31
28
  },
32
29
  "homepage": "https://github.com/unchainedshop/unchained#readme",
33
30
  "dependencies": {
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"
31
+ "@unchainedshop/events": "^3.0.0-rc1",
32
+ "@unchainedshop/file-upload": "^3.0.0-rc1",
33
+ "@unchainedshop/logger": "^3.0.0-rc1",
34
+ "@unchainedshop/utils": "^3.0.0-rc1"
39
35
  },
40
36
  "devDependencies": {
41
- "@types/node": "^22.8.1",
37
+ "@types/node": "^22.10.2",
42
38
  "jest": "^29.7.0",
43
39
  "ts-jest": "^29.2.5",
44
- "typescript": "^5.6.3"
40
+ "typescript": "^5.7.2"
45
41
  }
46
42
  }
@@ -1,4 +1,6 @@
1
1
  export * from './types.js';
2
2
  export * from './module/configureFilesModule.js';
3
- export * from './service/fileServices.js';
3
+ export * from './db/MediaObjectsCollection.js';
4
4
  export * from './files-settings.js';
5
+ export * from './utils/getFileAdapter.js';
6
+ export * from './utils/getFileFromFileData.js';
@@ -1,17 +1,21 @@
1
1
  export interface FilesSettingsOptions {
2
2
  transformUrl?: (url: string, params: Record<string, any>) => string;
3
+ privateFileSharingMaxAge?: number;
3
4
  }
4
5
 
5
6
  export interface FilesSettings {
6
7
  transformUrl?: (url: string, params: Record<string, any>) => string;
7
8
  configureSettings: (options?: FilesSettingsOptions) => void;
9
+ privateFileSharingMaxAge?: number;
8
10
  }
9
11
 
10
12
  export const defaultTransformUrl = (url) => url;
11
13
 
12
14
  export const filesSettings: FilesSettings = {
13
15
  transformUrl: null,
14
- configureSettings: async ({ transformUrl }) => {
16
+ privateFileSharingMaxAge: null,
17
+ configureSettings: async ({ transformUrl, privateFileSharingMaxAge }) => {
15
18
  filesSettings.transformUrl = transformUrl || defaultTransformUrl;
19
+ filesSettings.privateFileSharingMaxAge = privateFileSharingMaxAge;
16
20
  },
17
21
  };
@@ -19,9 +19,8 @@ export const configureFilesModule = async ({
19
19
  const Files = await MediaObjectsCollection(db);
20
20
 
21
21
  return {
22
- getUrl: (file: File, params: Record<string, any>): string | null => {
23
- if (!file?.url) return null;
24
- const transformedURLString = filesSettings.transformUrl(file.url, params);
22
+ normalizeUrl: (url: string, params: Record<string, any>): string => {
23
+ const transformedURLString = filesSettings.transformUrl(url, params);
25
24
  if (URL.canParse(transformedURLString)) {
26
25
  const finalURL = new URL(transformedURLString);
27
26
  return finalURL.href;
package/src/types.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { TimestampFields } from '@unchainedshop/mongodb';
1
+ import { TimestampFields } from '@unchainedshop/mongodb';
2
2
 
3
3
  export type File = {
4
4
  _id?: string;
@@ -0,0 +1,14 @@
1
+ import { UploadFileData } from '@unchainedshop/file-upload';
2
+
3
+ export const getFileFromFileData = (fileData: UploadFileData, meta: any) => ({
4
+ _id: fileData._id,
5
+ path: fileData.directoryName,
6
+ expires: fileData.expiryDate,
7
+ name: fileData.fileName,
8
+ size: fileData.size,
9
+ type: fileData.type || 'application/octet-stream',
10
+ url: fileData.url,
11
+ meta,
12
+ });
13
+
14
+ export default getFileFromFileData;
package/tsconfig.json CHANGED
@@ -1,11 +1,9 @@
1
1
  {
2
2
  "extends": "../shared/base.tsconfig.json",
3
3
  "compilerOptions": {
4
- "rootDir": "src",
5
- "outDir": "lib",
4
+ "declarationDir": "./lib",
5
+ "rootDir": "./src",
6
+ "outDir": "./lib"
6
7
  },
7
- "exclude": ["**/*.test.ts", "**/*.test.js", "tests"],
8
- "include": [
9
- "./src"
10
- ]
11
- }
8
+ "exclude": ["**/*.test.ts", "**/*.test.js", "tests", "lib"]
9
+ }
@@ -1,11 +0,0 @@
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>;
10
- export declare const createDownloadStreamService: CreateDownloadStreamService;
11
- //# sourceMappingURL=createDownloadStreamService.d.ts.map
@@ -1 +0,0 @@
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,9 +0,0 @@
1
- import { getFileAdapter } from '../utils/getFileAdapter.js';
2
- export const createDownloadStreamService = async ({ fileId }, unchainedContext) => {
3
- const { modules: { files }, } = unchainedContext;
4
- const fileAdapter = getFileAdapter();
5
- const file = await files.findFile({ fileId });
6
- const stream = fileAdapter.createDownloadStream(file, unchainedContext);
7
- return stream;
8
- };
9
- //# sourceMappingURL=createDownloadStreamService.js.map
@@ -1 +0,0 @@
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,13 +0,0 @@
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>;
12
- export declare const createSignedURLService: CreateSignedURLService;
13
- //# sourceMappingURL=createSignedURLService.d.ts.map
@@ -1 +0,0 @@
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,15 +0,0 @@
1
- import { getFileFromFileData } from '@unchainedshop/file-upload';
2
- import { getFileAdapter } from '../utils/getFileAdapter.js';
3
- export const createSignedURLService = async ({ directoryName, fileName, meta }, unchainedContext) => {
4
- const { modules: { files }, } = unchainedContext;
5
- const fileUploadAdapter = getFileAdapter();
6
- const preparedFileData = await fileUploadAdapter.createSignedURL(directoryName, fileName, unchainedContext);
7
- const fileData = getFileFromFileData(preparedFileData, meta);
8
- const fileId = await files.create(fileData);
9
- const file = await files.findFile({ fileId });
10
- return {
11
- ...file,
12
- putURL: preparedFileData.putURL,
13
- };
14
- };
15
- //# sourceMappingURL=createSignedURLService.js.map
@@ -1 +0,0 @@
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,16 +0,0 @@
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
- }
15
- export declare const fileServices: FileServices;
16
- //# sourceMappingURL=fileServices.d.ts.map
@@ -1 +0,0 @@
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,15 +0,0 @@
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 const fileServices = {
8
- linkFile: linkFileService,
9
- createSignedURL: createSignedURLService,
10
- uploadFileFromURL: uploadFileFromURLService,
11
- uploadFileFromStream: uploadFileFromStreamService,
12
- removeFiles: removeFilesService,
13
- createDownloadStream: createDownloadStreamService,
14
- };
15
- //# sourceMappingURL=fileServices.js.map
@@ -1 +0,0 @@
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,13 +0,0 @@
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>;
12
- export declare const linkFileService: LinkFileService;
13
- //# sourceMappingURL=linkFileService.d.ts.map
@@ -1 +0,0 @@
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,15 +0,0 @@
1
- import { FileDirector } from '@unchainedshop/file-upload';
2
- export const linkFileService = async ({ fileId, size, type }, unchainedAPI) => {
3
- const { modules: { files }, } = unchainedAPI;
4
- const file = await files.findFile({ fileId });
5
- if (file?.expires) {
6
- await files.update(file._id, { size: size || file.size, type: type || file.type, expires: null });
7
- const callback = FileDirector.getFileUploadCallback(file.path);
8
- if (callback) {
9
- await callback(file, unchainedAPI);
10
- }
11
- return files.findFile({ fileId });
12
- }
13
- return file;
14
- };
15
- //# sourceMappingURL=linkFileService.js.map
@@ -1 +0,0 @@
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,10 +0,0 @@
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>;
9
- export declare const removeFilesService: RemoveFilesService;
10
- //# sourceMappingURL=removeFilesService.d.ts.map
@@ -1 +0,0 @@
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,21 +0,0 @@
1
- import { getFileAdapter } from '../utils/getFileAdapter.js';
2
- export const removeFilesService = async ({ fileIds }, unchainedAPI) => {
3
- const { modules: { files }, } = unchainedAPI;
4
- if (fileIds && typeof fileIds !== 'string' && !Array.isArray(fileIds))
5
- throw Error('Media id/s to be removed not provided as a string or array');
6
- const selector = {
7
- _id: { $in: fileIds },
8
- };
9
- const fileUploadAdapter = getFileAdapter();
10
- const fileObjects = await files.findFiles(selector);
11
- try {
12
- await fileUploadAdapter.removeFiles(fileObjects, unchainedAPI);
13
- }
14
- catch (e) {
15
- console.warn(e); // eslint-disable-line
16
- }
17
- const fileIdsToDelete = fileObjects.map((f) => f._id).filter(Boolean);
18
- await files.deleteMany(fileIdsToDelete);
19
- return fileIdsToDelete.length;
20
- };
21
- //# sourceMappingURL=removeFilesService.js.map
@@ -1 +0,0 @@
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,13 +0,0 @@
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>;
12
- export declare const uploadFileFromStreamService: UploadFileFromStreamService;
13
- //# sourceMappingURL=uploadFileFromStreamService.d.ts.map
@@ -1 +0,0 @@
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,11 +0,0 @@
1
- import { getFileAdapter } from '../utils/getFileAdapter.js';
2
- import { getFileFromFileData } from '@unchainedshop/file-upload';
3
- export const uploadFileFromStreamService = async ({ directoryName, rawFile, meta }, unchainedContext) => {
4
- const { modules: { files }, } = unchainedContext;
5
- const fileUploadAdapter = getFileAdapter();
6
- const uploadFileData = await fileUploadAdapter.uploadFileFromStream(directoryName, rawFile, unchainedContext);
7
- const fileData = getFileFromFileData(uploadFileData, meta);
8
- const fileId = await files.create(fileData);
9
- return files.findFile({ fileId });
10
- };
11
- //# sourceMappingURL=uploadFileFromStreamService.js.map
@@ -1 +0,0 @@
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,18 +0,0 @@
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>;
17
- export declare const uploadFileFromURLService: UploadFileFromURLService;
18
- //# sourceMappingURL=uploadFileFromURLService.d.ts.map
@@ -1 +0,0 @@
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,11 +0,0 @@
1
- import { getFileAdapter } from '../utils/getFileAdapter.js';
2
- import { getFileFromFileData } from '@unchainedshop/file-upload';
3
- export const uploadFileFromURLService = async ({ directoryName, fileInput, meta }, unchainedContext) => {
4
- const { modules: { files }, } = unchainedContext;
5
- const fileUploadAdapter = getFileAdapter();
6
- const uploadFileData = await fileUploadAdapter.uploadFileFromURL(directoryName, fileInput, unchainedContext);
7
- const fileData = getFileFromFileData(uploadFileData, meta);
8
- const fileId = await files.create(fileData);
9
- return files.findFile({ fileId });
10
- };
11
- //# sourceMappingURL=uploadFileFromURLService.js.map
@@ -1 +0,0 @@
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"}
@@ -1,24 +0,0 @@
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>;
11
-
12
- export const createDownloadStreamService: CreateDownloadStreamService = async (
13
- { fileId },
14
- unchainedContext,
15
- ) => {
16
- const {
17
- modules: { files },
18
- } = unchainedContext;
19
- const fileAdapter = getFileAdapter();
20
-
21
- const file = await files.findFile({ fileId });
22
- const stream = fileAdapter.createDownloadStream(file, unchainedContext);
23
- return stream;
24
- };
@@ -1,32 +0,0 @@
1
- import { getFileFromFileData } from '@unchainedshop/file-upload';
2
- import { getFileAdapter } from '../utils/getFileAdapter.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>;
10
-
11
- export const createSignedURLService: CreateSignedURLService = async (
12
- { directoryName, fileName, meta },
13
- unchainedContext,
14
- ) => {
15
- const {
16
- modules: { files },
17
- } = unchainedContext;
18
- const fileUploadAdapter = getFileAdapter();
19
- const preparedFileData = await fileUploadAdapter.createSignedURL(
20
- directoryName,
21
- fileName,
22
- unchainedContext,
23
- );
24
- const fileData = getFileFromFileData(preparedFileData, meta);
25
- const fileId = await files.create(fileData);
26
- const file = await files.findFile({ fileId });
27
-
28
- return {
29
- ...file,
30
- putURL: preparedFileData.putURL as string,
31
- };
32
- };
@@ -1,30 +0,0 @@
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
- }
22
-
23
- export const fileServices: FileServices = {
24
- linkFile: linkFileService,
25
- createSignedURL: createSignedURLService,
26
- uploadFileFromURL: uploadFileFromURLService,
27
- uploadFileFromStream: uploadFileFromStreamService,
28
- removeFiles: removeFilesService,
29
- createDownloadStream: createDownloadStreamService,
30
- };
@@ -1,24 +0,0 @@
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>;
9
-
10
- export const linkFileService: LinkFileService = async ({ fileId, size, type }, unchainedAPI) => {
11
- const {
12
- modules: { files },
13
- } = unchainedAPI;
14
- const file = await files.findFile({ fileId });
15
- if (file?.expires) {
16
- await files.update(file._id, { size: size || file.size, type: type || file.type, expires: null });
17
- const callback = FileDirector.getFileUploadCallback(file.path);
18
- if (callback) {
19
- await callback(file, unchainedAPI);
20
- }
21
- return files.findFile({ fileId });
22
- }
23
- return file;
24
- };
@@ -1,38 +0,0 @@
1
- import { mongodb } from '@unchainedshop/mongodb';
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>;
10
-
11
- export const removeFilesService: RemoveFilesService = async ({ fileIds }, unchainedAPI) => {
12
- const {
13
- modules: { files },
14
- } = unchainedAPI;
15
-
16
- if (fileIds && typeof fileIds !== 'string' && !Array.isArray(fileIds))
17
- throw Error('Media id/s to be removed not provided as a string or array');
18
-
19
- const selector: mongodb.Filter<File> = {
20
- _id: { $in: fileIds },
21
- };
22
-
23
- const fileUploadAdapter = getFileAdapter();
24
-
25
- const fileObjects = await files.findFiles(selector);
26
-
27
- try {
28
- await fileUploadAdapter.removeFiles(fileObjects, unchainedAPI);
29
- } catch (e) {
30
- console.warn(e); // eslint-disable-line
31
- }
32
-
33
- const fileIdsToDelete = fileObjects.map((f) => f._id).filter(Boolean);
34
-
35
- await files.deleteMany(fileIdsToDelete);
36
-
37
- return fileIdsToDelete.length;
38
- };
@@ -1,27 +0,0 @@
1
- import { getFileAdapter } from '../utils/getFileAdapter.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>;
10
-
11
- export const uploadFileFromStreamService: UploadFileFromStreamService = async (
12
- { directoryName, rawFile, meta },
13
- unchainedContext,
14
- ) => {
15
- const {
16
- modules: { files },
17
- } = unchainedContext;
18
- const fileUploadAdapter = getFileAdapter();
19
- const uploadFileData = await fileUploadAdapter.uploadFileFromStream(
20
- directoryName,
21
- rawFile,
22
- unchainedContext,
23
- );
24
- const fileData = getFileFromFileData(uploadFileData, meta);
25
- const fileId = await files.create(fileData);
26
- return files.findFile({ fileId });
27
- };
@@ -1,37 +0,0 @@
1
- import { getFileAdapter } from '../utils/getFileAdapter.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>;
19
-
20
- export const uploadFileFromURLService: UploadFileFromURLService = async (
21
- { directoryName, fileInput, meta },
22
- unchainedContext,
23
- ) => {
24
- const {
25
- modules: { files },
26
- } = unchainedContext;
27
- const fileUploadAdapter = getFileAdapter();
28
-
29
- const uploadFileData = await fileUploadAdapter.uploadFileFromURL(
30
- directoryName,
31
- fileInput,
32
- unchainedContext,
33
- );
34
- const fileData = getFileFromFileData(uploadFileData, meta);
35
- const fileId = await files.create(fileData);
36
- return files.findFile({ fileId });
37
- };